1// Code generated "gen_operations.go"; DO NOT EDIT. 2 3package gogrep 4 5import ( 6 "github.com/quasilyte/go-ruleguard/nodetag" 7) 8 9//go:generate stringer -type=operation -trimprefix=op 10type operation uint8 11 12const ( 13 opInvalid operation = 0 14 15 // Tag: Node 16 opNode operation = 1 17 18 // Tag: Node 19 // ValueIndex: strings | wildcard name 20 opNamedNode operation = 2 21 22 // Tag: Unknown 23 opNodeSeq operation = 3 24 25 // Tag: Unknown 26 // ValueIndex: strings | wildcard name 27 opNamedNodeSeq operation = 4 28 29 // Tag: Unknown 30 opOptNode operation = 5 31 32 // Tag: Unknown 33 // ValueIndex: strings | wildcard name 34 opNamedOptNode operation = 6 35 36 // Tag: StmtList 37 // Args: stmts... 38 // Example: f(); g() 39 opMultiStmt operation = 7 40 41 // Tag: ExprList 42 // Args: exprs... 43 // Example: f(), g() 44 opMultiExpr operation = 8 45 46 // Tag: Unknown 47 opEnd operation = 9 48 49 // Tag: BasicLit 50 // ValueIndex: ifaces | parsed literal value 51 opBasicLit operation = 10 52 53 // Tag: BasicLit 54 // ValueIndex: strings | raw literal value 55 opStrictIntLit operation = 11 56 57 // Tag: BasicLit 58 // ValueIndex: strings | raw literal value 59 opStrictFloatLit operation = 12 60 61 // Tag: BasicLit 62 // ValueIndex: strings | raw literal value 63 opStrictCharLit operation = 13 64 65 // Tag: BasicLit 66 // ValueIndex: strings | raw literal value 67 opStrictStringLit operation = 14 68 69 // Tag: BasicLit 70 // ValueIndex: strings | raw literal value 71 opStrictComplexLit operation = 15 72 73 // Tag: Ident 74 // ValueIndex: strings | ident name 75 opIdent operation = 16 76 77 // Tag: IndexExpr 78 // Args: x expr 79 opIndexExpr operation = 17 80 81 // Tag: SliceExpr 82 // Args: x 83 opSliceExpr operation = 18 84 85 // Tag: SliceExpr 86 // Args: x from 87 // Example: x[from:] 88 opSliceFromExpr operation = 19 89 90 // Tag: SliceExpr 91 // Args: x to 92 // Example: x[:to] 93 opSliceToExpr operation = 20 94 95 // Tag: SliceExpr 96 // Args: x from to 97 // Example: x[from:to] 98 opSliceFromToExpr operation = 21 99 100 // Tag: SliceExpr 101 // Args: x from cap 102 // Example: x[:from:cap] 103 opSliceToCapExpr operation = 22 104 105 // Tag: SliceExpr 106 // Args: x from to cap 107 // Example: x[from:to:cap] 108 opSliceFromToCapExpr operation = 23 109 110 // Tag: FuncLit 111 // Args: type block 112 opFuncLit operation = 24 113 114 // Tag: CompositeLit 115 // Args: elts... 116 // Example: {elts...} 117 opCompositeLit operation = 25 118 119 // Tag: CompositeLit 120 // Args: typ elts... 121 // Example: typ{elts...} 122 opTypedCompositeLit operation = 26 123 124 // Tag: SelectorExpr 125 // Args: x 126 // ValueIndex: strings | selector name 127 opSimpleSelectorExpr operation = 27 128 129 // Tag: SelectorExpr 130 // Args: x sel 131 opSelectorExpr operation = 28 132 133 // Tag: TypeAssertExpr 134 // Args: x typ 135 opTypeAssertExpr operation = 29 136 137 // Tag: TypeAssertExpr 138 // Args: x 139 opTypeSwitchAssertExpr operation = 30 140 141 // Tag: FuncType 142 // Args: params 143 opVoidFuncType operation = 31 144 145 // Tag: FuncType 146 // Args: params results 147 opFuncType operation = 32 148 149 // Tag: ArrayType 150 // Args: length elem 151 opArrayType operation = 33 152 153 // Tag: ArrayType 154 // Args: elem 155 opSliceType operation = 34 156 157 // Tag: MapType 158 // Args: key value 159 opMapType operation = 35 160 161 // Tag: ChanType 162 // Args: value 163 // Value: ast.ChanDir | channel direction 164 opChanType operation = 36 165 166 // Tag: KeyValueExpr 167 // Args: key value 168 opKeyValueExpr operation = 37 169 170 // Tag: Ellipsis 171 opEllipsis operation = 38 172 173 // Tag: Ellipsis 174 // Args: type 175 opTypedEllipsis operation = 39 176 177 // Tag: StarExpr 178 // Args: x 179 opStarExpr operation = 40 180 181 // Tag: UnaryExpr 182 // Args: x 183 // Value: token.Token | unary operator 184 opUnaryExpr operation = 41 185 186 // Tag: BinaryExpr 187 // Args: x y 188 // Value: token.Token | binary operator 189 opBinaryExpr operation = 42 190 191 // Tag: ParenExpr 192 // Args: x 193 opParenExpr operation = 43 194 195 // Tag: CallExpr 196 // Args: fn args... 197 // Example: f(1, xs...) 198 opVariadicCallExpr operation = 44 199 200 // Tag: CallExpr 201 // Args: fn args... 202 // Example: f(1, xs) 203 opCallExpr operation = 45 204 205 // Tag: AssignStmt 206 // Args: lhs rhs 207 // Example: lhs := rhs() 208 // Value: token.Token | ':=' or '=' 209 opAssignStmt operation = 46 210 211 // Tag: AssignStmt 212 // Args: lhs... rhs... 213 // Example: lhs1, lhs2 := rhs() 214 // Value: token.Token | ':=' or '=' 215 opMultiAssignStmt operation = 47 216 217 // Tag: BranchStmt 218 // Args: x 219 // Value: token.Token | branch kind 220 opBranchStmt operation = 48 221 222 // Tag: BranchStmt 223 // Args: x 224 // Value: token.Token | branch kind 225 // ValueIndex: strings | label name 226 opSimpleLabeledBranchStmt operation = 49 227 228 // Tag: BranchStmt 229 // Args: label x 230 // Value: token.Token | branch kind 231 opLabeledBranchStmt operation = 50 232 233 // Tag: LabeledStmt 234 // Args: x 235 // ValueIndex: strings | label name 236 opSimpleLabeledStmt operation = 51 237 238 // Tag: LabeledStmt 239 // Args: label x 240 opLabeledStmt operation = 52 241 242 // Tag: BlockStmt 243 // Args: body... 244 opBlockStmt operation = 53 245 246 // Tag: ExprStmt 247 // Args: x 248 opExprStmt operation = 54 249 250 // Tag: GoStmt 251 // Args: x 252 opGoStmt operation = 55 253 254 // Tag: DeferStmt 255 // Args: x 256 opDeferStmt operation = 56 257 258 // Tag: SendStmt 259 // Args: ch value 260 opSendStmt operation = 57 261 262 // Tag: EmptyStmt 263 opEmptyStmt operation = 58 264 265 // Tag: IncDecStmt 266 // Args: x 267 // Value: token.Token | '++' or '--' 268 opIncDecStmt operation = 59 269 270 // Tag: ReturnStmt 271 // Args: results... 272 opReturnStmt operation = 60 273 274 // Tag: IfStmt 275 // Args: cond block 276 // Example: if cond {} 277 opIfStmt operation = 61 278 279 // Tag: IfStmt 280 // Args: init cond block 281 // Example: if init; cond {} 282 opIfInitStmt operation = 62 283 284 // Tag: IfStmt 285 // Args: cond block else 286 // Example: if cond {} else ... 287 opIfElseStmt operation = 63 288 289 // Tag: IfStmt 290 // Args: init cond block else 291 // Example: if init; cond {} else ... 292 opIfInitElseStmt operation = 64 293 294 // Tag: IfStmt 295 // Args: block 296 // Example: if $*x {} 297 // ValueIndex: strings | wildcard name 298 opIfNamedOptStmt operation = 65 299 300 // Tag: IfStmt 301 // Args: block else 302 // Example: if $*x {} else ... 303 // ValueIndex: strings | wildcard name 304 opIfNamedOptElseStmt operation = 66 305 306 // Tag: SwitchStmt 307 // Args: body... 308 // Example: switch {} 309 opSwitchStmt operation = 67 310 311 // Tag: SwitchStmt 312 // Args: tag body... 313 // Example: switch tag {} 314 opSwitchTagStmt operation = 68 315 316 // Tag: SwitchStmt 317 // Args: init body... 318 // Example: switch init; {} 319 opSwitchInitStmt operation = 69 320 321 // Tag: SwitchStmt 322 // Args: init tag body... 323 // Example: switch init; tag {} 324 opSwitchInitTagStmt operation = 70 325 326 // Tag: SelectStmt 327 // Args: body... 328 opSelectStmt operation = 71 329 330 // Tag: TypeSwitchStmt 331 // Args: x block 332 // Example: switch x.(type) {} 333 opTypeSwitchStmt operation = 72 334 335 // Tag: TypeSwitchStmt 336 // Args: init x block 337 // Example: switch init; x.(type) {} 338 opTypeSwitchInitStmt operation = 73 339 340 // Tag: CaseClause 341 // Args: values... body... 342 opCaseClause operation = 74 343 344 // Tag: CaseClause 345 // Args: body... 346 opDefaultCaseClause operation = 75 347 348 // Tag: CommClause 349 // Args: comm body... 350 opCommClause operation = 76 351 352 // Tag: CommClause 353 // Args: body... 354 opDefaultCommClause operation = 77 355 356 // Tag: ForStmt 357 // Args: blocl 358 // Example: for {} 359 opForStmt operation = 78 360 361 // Tag: ForStmt 362 // Args: post block 363 // Example: for ; ; post {} 364 opForPostStmt operation = 79 365 366 // Tag: ForStmt 367 // Args: cond block 368 // Example: for ; cond; {} 369 opForCondStmt operation = 80 370 371 // Tag: ForStmt 372 // Args: cond post block 373 // Example: for ; cond; post {} 374 opForCondPostStmt operation = 81 375 376 // Tag: ForStmt 377 // Args: init block 378 // Example: for init; ; {} 379 opForInitStmt operation = 82 380 381 // Tag: ForStmt 382 // Args: init post block 383 // Example: for init; ; post {} 384 opForInitPostStmt operation = 83 385 386 // Tag: ForStmt 387 // Args: init cond block 388 // Example: for init; cond; {} 389 opForInitCondStmt operation = 84 390 391 // Tag: ForStmt 392 // Args: init cond post block 393 // Example: for init; cond; post {} 394 opForInitCondPostStmt operation = 85 395 396 // Tag: RangeStmt 397 // Args: x block 398 // Example: for range x {} 399 opRangeStmt operation = 86 400 401 // Tag: RangeStmt 402 // Args: key x block 403 // Example: for key := range x {} 404 // Value: token.Token | ':=' or '=' 405 opRangeKeyStmt operation = 87 406 407 // Tag: RangeStmt 408 // Args: key value x block 409 // Example: for key, value := range x {} 410 // Value: token.Token | ':=' or '=' 411 opRangeKeyValueStmt operation = 88 412 413 // Tag: Unknown 414 // Args: fields... 415 opFieldList operation = 89 416 417 // Tag: Unknown 418 // Args: typ 419 // Example: type 420 opUnnamedField operation = 90 421 422 // Tag: Unknown 423 // Args: typ 424 // Example: name type 425 // ValueIndex: strings | field name 426 opSimpleField operation = 91 427 428 // Tag: Unknown 429 // Args: name typ 430 // Example: $name type 431 opField operation = 92 432 433 // Tag: Unknown 434 // Args: names... typ 435 // Example: name1, name2 type 436 opMultiField operation = 93 437 438 // Tag: ValueSpec 439 // Args: lhs... rhs... 440 // Example: lhs = rhs 441 opValueInitSpec operation = 94 442 443 // Tag: ValueSpec 444 // Args: lhs... type rhs... 445 // Example: lhs typ = rhs 446 opTypedValueInitSpec operation = 95 447 448 // Tag: ValueSpec 449 // Args: lhs... type 450 // Example: lhs typ 451 opTypedValueSpec operation = 96 452 453 // Tag: TypeSpec 454 // Args: name type 455 // Example: name type 456 opTypeSpec operation = 97 457 458 // Tag: TypeSpec 459 // Args: name type 460 // Example: name = type 461 opTypeAliasSpec operation = 98 462 463 // Tag: FuncDecl 464 // Args: name type block 465 opFuncDecl operation = 99 466 467 // Tag: FuncDecl 468 // Args: recv name type block 469 opMethodDecl operation = 100 470 471 // Tag: FuncDecl 472 // Args: name type 473 opFuncProtoDecl operation = 101 474 475 // Tag: FuncDecl 476 // Args: recv name type 477 opMethodProtoDecl operation = 102 478 479 // Tag: GenDecl 480 // Args: valuespecs... 481 opConstDecl operation = 103 482 483 // Tag: GenDecl 484 // Args: valuespecs... 485 opVarDecl operation = 104 486 487 // Tag: GenDecl 488 // Args: typespecs... 489 opTypeDecl operation = 105 490 491 // Tag: File 492 // Args: name 493 opEmptyPackage operation = 106 494) 495 496type operationInfo struct { 497 Tag nodetag.Value 498 NumArgs int 499 ValueKind valueKind 500 ExtraValueKind valueKind 501 VariadicMap bitmap64 502} 503 504var operationInfoTable = [256]operationInfo{ 505 opInvalid: {}, 506 507 opNode: { 508 Tag: nodetag.Node, 509 NumArgs: 0, 510 ValueKind: emptyValue, 511 ExtraValueKind: emptyValue, 512 VariadicMap: 0, // 0 513 }, 514 opNamedNode: { 515 Tag: nodetag.Node, 516 NumArgs: 0, 517 ValueKind: emptyValue, 518 ExtraValueKind: stringValue, 519 VariadicMap: 0, // 0 520 }, 521 opNodeSeq: { 522 Tag: nodetag.Unknown, 523 NumArgs: 0, 524 ValueKind: emptyValue, 525 ExtraValueKind: emptyValue, 526 VariadicMap: 0, // 0 527 }, 528 opNamedNodeSeq: { 529 Tag: nodetag.Unknown, 530 NumArgs: 0, 531 ValueKind: emptyValue, 532 ExtraValueKind: stringValue, 533 VariadicMap: 0, // 0 534 }, 535 opOptNode: { 536 Tag: nodetag.Unknown, 537 NumArgs: 0, 538 ValueKind: emptyValue, 539 ExtraValueKind: emptyValue, 540 VariadicMap: 0, // 0 541 }, 542 opNamedOptNode: { 543 Tag: nodetag.Unknown, 544 NumArgs: 0, 545 ValueKind: emptyValue, 546 ExtraValueKind: stringValue, 547 VariadicMap: 0, // 0 548 }, 549 opMultiStmt: { 550 Tag: nodetag.StmtList, 551 NumArgs: 1, 552 ValueKind: emptyValue, 553 ExtraValueKind: emptyValue, 554 VariadicMap: 1, // 1 555 }, 556 opMultiExpr: { 557 Tag: nodetag.ExprList, 558 NumArgs: 1, 559 ValueKind: emptyValue, 560 ExtraValueKind: emptyValue, 561 VariadicMap: 1, // 1 562 }, 563 opEnd: { 564 Tag: nodetag.Unknown, 565 NumArgs: 0, 566 ValueKind: emptyValue, 567 ExtraValueKind: emptyValue, 568 VariadicMap: 0, // 0 569 }, 570 opBasicLit: { 571 Tag: nodetag.BasicLit, 572 NumArgs: 0, 573 ValueKind: emptyValue, 574 ExtraValueKind: ifaceValue, 575 VariadicMap: 0, // 0 576 }, 577 opStrictIntLit: { 578 Tag: nodetag.BasicLit, 579 NumArgs: 0, 580 ValueKind: emptyValue, 581 ExtraValueKind: stringValue, 582 VariadicMap: 0, // 0 583 }, 584 opStrictFloatLit: { 585 Tag: nodetag.BasicLit, 586 NumArgs: 0, 587 ValueKind: emptyValue, 588 ExtraValueKind: stringValue, 589 VariadicMap: 0, // 0 590 }, 591 opStrictCharLit: { 592 Tag: nodetag.BasicLit, 593 NumArgs: 0, 594 ValueKind: emptyValue, 595 ExtraValueKind: stringValue, 596 VariadicMap: 0, // 0 597 }, 598 opStrictStringLit: { 599 Tag: nodetag.BasicLit, 600 NumArgs: 0, 601 ValueKind: emptyValue, 602 ExtraValueKind: stringValue, 603 VariadicMap: 0, // 0 604 }, 605 opStrictComplexLit: { 606 Tag: nodetag.BasicLit, 607 NumArgs: 0, 608 ValueKind: emptyValue, 609 ExtraValueKind: stringValue, 610 VariadicMap: 0, // 0 611 }, 612 opIdent: { 613 Tag: nodetag.Ident, 614 NumArgs: 0, 615 ValueKind: emptyValue, 616 ExtraValueKind: stringValue, 617 VariadicMap: 0, // 0 618 }, 619 opIndexExpr: { 620 Tag: nodetag.IndexExpr, 621 NumArgs: 2, 622 ValueKind: emptyValue, 623 ExtraValueKind: emptyValue, 624 VariadicMap: 0, // 0 625 }, 626 opSliceExpr: { 627 Tag: nodetag.SliceExpr, 628 NumArgs: 1, 629 ValueKind: emptyValue, 630 ExtraValueKind: emptyValue, 631 VariadicMap: 0, // 0 632 }, 633 opSliceFromExpr: { 634 Tag: nodetag.SliceExpr, 635 NumArgs: 2, 636 ValueKind: emptyValue, 637 ExtraValueKind: emptyValue, 638 VariadicMap: 0, // 0 639 }, 640 opSliceToExpr: { 641 Tag: nodetag.SliceExpr, 642 NumArgs: 2, 643 ValueKind: emptyValue, 644 ExtraValueKind: emptyValue, 645 VariadicMap: 0, // 0 646 }, 647 opSliceFromToExpr: { 648 Tag: nodetag.SliceExpr, 649 NumArgs: 3, 650 ValueKind: emptyValue, 651 ExtraValueKind: emptyValue, 652 VariadicMap: 0, // 0 653 }, 654 opSliceToCapExpr: { 655 Tag: nodetag.SliceExpr, 656 NumArgs: 3, 657 ValueKind: emptyValue, 658 ExtraValueKind: emptyValue, 659 VariadicMap: 0, // 0 660 }, 661 opSliceFromToCapExpr: { 662 Tag: nodetag.SliceExpr, 663 NumArgs: 4, 664 ValueKind: emptyValue, 665 ExtraValueKind: emptyValue, 666 VariadicMap: 0, // 0 667 }, 668 opFuncLit: { 669 Tag: nodetag.FuncLit, 670 NumArgs: 2, 671 ValueKind: emptyValue, 672 ExtraValueKind: emptyValue, 673 VariadicMap: 0, // 0 674 }, 675 opCompositeLit: { 676 Tag: nodetag.CompositeLit, 677 NumArgs: 1, 678 ValueKind: emptyValue, 679 ExtraValueKind: emptyValue, 680 VariadicMap: 1, // 1 681 }, 682 opTypedCompositeLit: { 683 Tag: nodetag.CompositeLit, 684 NumArgs: 2, 685 ValueKind: emptyValue, 686 ExtraValueKind: emptyValue, 687 VariadicMap: 2, // 10 688 }, 689 opSimpleSelectorExpr: { 690 Tag: nodetag.SelectorExpr, 691 NumArgs: 1, 692 ValueKind: emptyValue, 693 ExtraValueKind: stringValue, 694 VariadicMap: 0, // 0 695 }, 696 opSelectorExpr: { 697 Tag: nodetag.SelectorExpr, 698 NumArgs: 2, 699 ValueKind: emptyValue, 700 ExtraValueKind: emptyValue, 701 VariadicMap: 0, // 0 702 }, 703 opTypeAssertExpr: { 704 Tag: nodetag.TypeAssertExpr, 705 NumArgs: 2, 706 ValueKind: emptyValue, 707 ExtraValueKind: emptyValue, 708 VariadicMap: 0, // 0 709 }, 710 opTypeSwitchAssertExpr: { 711 Tag: nodetag.TypeAssertExpr, 712 NumArgs: 1, 713 ValueKind: emptyValue, 714 ExtraValueKind: emptyValue, 715 VariadicMap: 0, // 0 716 }, 717 opVoidFuncType: { 718 Tag: nodetag.FuncType, 719 NumArgs: 1, 720 ValueKind: emptyValue, 721 ExtraValueKind: emptyValue, 722 VariadicMap: 0, // 0 723 }, 724 opFuncType: { 725 Tag: nodetag.FuncType, 726 NumArgs: 2, 727 ValueKind: emptyValue, 728 ExtraValueKind: emptyValue, 729 VariadicMap: 0, // 0 730 }, 731 opArrayType: { 732 Tag: nodetag.ArrayType, 733 NumArgs: 2, 734 ValueKind: emptyValue, 735 ExtraValueKind: emptyValue, 736 VariadicMap: 0, // 0 737 }, 738 opSliceType: { 739 Tag: nodetag.ArrayType, 740 NumArgs: 1, 741 ValueKind: emptyValue, 742 ExtraValueKind: emptyValue, 743 VariadicMap: 0, // 0 744 }, 745 opMapType: { 746 Tag: nodetag.MapType, 747 NumArgs: 2, 748 ValueKind: emptyValue, 749 ExtraValueKind: emptyValue, 750 VariadicMap: 0, // 0 751 }, 752 opChanType: { 753 Tag: nodetag.ChanType, 754 NumArgs: 1, 755 ValueKind: chandirValue, 756 ExtraValueKind: emptyValue, 757 VariadicMap: 0, // 0 758 }, 759 opKeyValueExpr: { 760 Tag: nodetag.KeyValueExpr, 761 NumArgs: 2, 762 ValueKind: emptyValue, 763 ExtraValueKind: emptyValue, 764 VariadicMap: 0, // 0 765 }, 766 opEllipsis: { 767 Tag: nodetag.Ellipsis, 768 NumArgs: 0, 769 ValueKind: emptyValue, 770 ExtraValueKind: emptyValue, 771 VariadicMap: 0, // 0 772 }, 773 opTypedEllipsis: { 774 Tag: nodetag.Ellipsis, 775 NumArgs: 1, 776 ValueKind: emptyValue, 777 ExtraValueKind: emptyValue, 778 VariadicMap: 0, // 0 779 }, 780 opStarExpr: { 781 Tag: nodetag.StarExpr, 782 NumArgs: 1, 783 ValueKind: emptyValue, 784 ExtraValueKind: emptyValue, 785 VariadicMap: 0, // 0 786 }, 787 opUnaryExpr: { 788 Tag: nodetag.UnaryExpr, 789 NumArgs: 1, 790 ValueKind: tokenValue, 791 ExtraValueKind: emptyValue, 792 VariadicMap: 0, // 0 793 }, 794 opBinaryExpr: { 795 Tag: nodetag.BinaryExpr, 796 NumArgs: 2, 797 ValueKind: tokenValue, 798 ExtraValueKind: emptyValue, 799 VariadicMap: 0, // 0 800 }, 801 opParenExpr: { 802 Tag: nodetag.ParenExpr, 803 NumArgs: 1, 804 ValueKind: emptyValue, 805 ExtraValueKind: emptyValue, 806 VariadicMap: 0, // 0 807 }, 808 opVariadicCallExpr: { 809 Tag: nodetag.CallExpr, 810 NumArgs: 2, 811 ValueKind: emptyValue, 812 ExtraValueKind: emptyValue, 813 VariadicMap: 2, // 10 814 }, 815 opCallExpr: { 816 Tag: nodetag.CallExpr, 817 NumArgs: 2, 818 ValueKind: emptyValue, 819 ExtraValueKind: emptyValue, 820 VariadicMap: 2, // 10 821 }, 822 opAssignStmt: { 823 Tag: nodetag.AssignStmt, 824 NumArgs: 2, 825 ValueKind: tokenValue, 826 ExtraValueKind: emptyValue, 827 VariadicMap: 0, // 0 828 }, 829 opMultiAssignStmt: { 830 Tag: nodetag.AssignStmt, 831 NumArgs: 2, 832 ValueKind: tokenValue, 833 ExtraValueKind: emptyValue, 834 VariadicMap: 3, // 11 835 }, 836 opBranchStmt: { 837 Tag: nodetag.BranchStmt, 838 NumArgs: 1, 839 ValueKind: tokenValue, 840 ExtraValueKind: emptyValue, 841 VariadicMap: 0, // 0 842 }, 843 opSimpleLabeledBranchStmt: { 844 Tag: nodetag.BranchStmt, 845 NumArgs: 1, 846 ValueKind: tokenValue, 847 ExtraValueKind: stringValue, 848 VariadicMap: 0, // 0 849 }, 850 opLabeledBranchStmt: { 851 Tag: nodetag.BranchStmt, 852 NumArgs: 2, 853 ValueKind: tokenValue, 854 ExtraValueKind: emptyValue, 855 VariadicMap: 0, // 0 856 }, 857 opSimpleLabeledStmt: { 858 Tag: nodetag.LabeledStmt, 859 NumArgs: 1, 860 ValueKind: emptyValue, 861 ExtraValueKind: stringValue, 862 VariadicMap: 0, // 0 863 }, 864 opLabeledStmt: { 865 Tag: nodetag.LabeledStmt, 866 NumArgs: 2, 867 ValueKind: emptyValue, 868 ExtraValueKind: emptyValue, 869 VariadicMap: 0, // 0 870 }, 871 opBlockStmt: { 872 Tag: nodetag.BlockStmt, 873 NumArgs: 1, 874 ValueKind: emptyValue, 875 ExtraValueKind: emptyValue, 876 VariadicMap: 1, // 1 877 }, 878 opExprStmt: { 879 Tag: nodetag.ExprStmt, 880 NumArgs: 1, 881 ValueKind: emptyValue, 882 ExtraValueKind: emptyValue, 883 VariadicMap: 0, // 0 884 }, 885 opGoStmt: { 886 Tag: nodetag.GoStmt, 887 NumArgs: 1, 888 ValueKind: emptyValue, 889 ExtraValueKind: emptyValue, 890 VariadicMap: 0, // 0 891 }, 892 opDeferStmt: { 893 Tag: nodetag.DeferStmt, 894 NumArgs: 1, 895 ValueKind: emptyValue, 896 ExtraValueKind: emptyValue, 897 VariadicMap: 0, // 0 898 }, 899 opSendStmt: { 900 Tag: nodetag.SendStmt, 901 NumArgs: 2, 902 ValueKind: emptyValue, 903 ExtraValueKind: emptyValue, 904 VariadicMap: 0, // 0 905 }, 906 opEmptyStmt: { 907 Tag: nodetag.EmptyStmt, 908 NumArgs: 0, 909 ValueKind: emptyValue, 910 ExtraValueKind: emptyValue, 911 VariadicMap: 0, // 0 912 }, 913 opIncDecStmt: { 914 Tag: nodetag.IncDecStmt, 915 NumArgs: 1, 916 ValueKind: tokenValue, 917 ExtraValueKind: emptyValue, 918 VariadicMap: 0, // 0 919 }, 920 opReturnStmt: { 921 Tag: nodetag.ReturnStmt, 922 NumArgs: 1, 923 ValueKind: emptyValue, 924 ExtraValueKind: emptyValue, 925 VariadicMap: 1, // 1 926 }, 927 opIfStmt: { 928 Tag: nodetag.IfStmt, 929 NumArgs: 2, 930 ValueKind: emptyValue, 931 ExtraValueKind: emptyValue, 932 VariadicMap: 0, // 0 933 }, 934 opIfInitStmt: { 935 Tag: nodetag.IfStmt, 936 NumArgs: 3, 937 ValueKind: emptyValue, 938 ExtraValueKind: emptyValue, 939 VariadicMap: 0, // 0 940 }, 941 opIfElseStmt: { 942 Tag: nodetag.IfStmt, 943 NumArgs: 3, 944 ValueKind: emptyValue, 945 ExtraValueKind: emptyValue, 946 VariadicMap: 0, // 0 947 }, 948 opIfInitElseStmt: { 949 Tag: nodetag.IfStmt, 950 NumArgs: 4, 951 ValueKind: emptyValue, 952 ExtraValueKind: emptyValue, 953 VariadicMap: 0, // 0 954 }, 955 opIfNamedOptStmt: { 956 Tag: nodetag.IfStmt, 957 NumArgs: 1, 958 ValueKind: emptyValue, 959 ExtraValueKind: stringValue, 960 VariadicMap: 0, // 0 961 }, 962 opIfNamedOptElseStmt: { 963 Tag: nodetag.IfStmt, 964 NumArgs: 2, 965 ValueKind: emptyValue, 966 ExtraValueKind: stringValue, 967 VariadicMap: 0, // 0 968 }, 969 opSwitchStmt: { 970 Tag: nodetag.SwitchStmt, 971 NumArgs: 1, 972 ValueKind: emptyValue, 973 ExtraValueKind: emptyValue, 974 VariadicMap: 1, // 1 975 }, 976 opSwitchTagStmt: { 977 Tag: nodetag.SwitchStmt, 978 NumArgs: 2, 979 ValueKind: emptyValue, 980 ExtraValueKind: emptyValue, 981 VariadicMap: 2, // 10 982 }, 983 opSwitchInitStmt: { 984 Tag: nodetag.SwitchStmt, 985 NumArgs: 2, 986 ValueKind: emptyValue, 987 ExtraValueKind: emptyValue, 988 VariadicMap: 2, // 10 989 }, 990 opSwitchInitTagStmt: { 991 Tag: nodetag.SwitchStmt, 992 NumArgs: 3, 993 ValueKind: emptyValue, 994 ExtraValueKind: emptyValue, 995 VariadicMap: 4, // 100 996 }, 997 opSelectStmt: { 998 Tag: nodetag.SelectStmt, 999 NumArgs: 1, 1000 ValueKind: emptyValue, 1001 ExtraValueKind: emptyValue, 1002 VariadicMap: 1, // 1 1003 }, 1004 opTypeSwitchStmt: { 1005 Tag: nodetag.TypeSwitchStmt, 1006 NumArgs: 2, 1007 ValueKind: emptyValue, 1008 ExtraValueKind: emptyValue, 1009 VariadicMap: 0, // 0 1010 }, 1011 opTypeSwitchInitStmt: { 1012 Tag: nodetag.TypeSwitchStmt, 1013 NumArgs: 3, 1014 ValueKind: emptyValue, 1015 ExtraValueKind: emptyValue, 1016 VariadicMap: 0, // 0 1017 }, 1018 opCaseClause: { 1019 Tag: nodetag.CaseClause, 1020 NumArgs: 2, 1021 ValueKind: emptyValue, 1022 ExtraValueKind: emptyValue, 1023 VariadicMap: 3, // 11 1024 }, 1025 opDefaultCaseClause: { 1026 Tag: nodetag.CaseClause, 1027 NumArgs: 1, 1028 ValueKind: emptyValue, 1029 ExtraValueKind: emptyValue, 1030 VariadicMap: 1, // 1 1031 }, 1032 opCommClause: { 1033 Tag: nodetag.CommClause, 1034 NumArgs: 2, 1035 ValueKind: emptyValue, 1036 ExtraValueKind: emptyValue, 1037 VariadicMap: 2, // 10 1038 }, 1039 opDefaultCommClause: { 1040 Tag: nodetag.CommClause, 1041 NumArgs: 1, 1042 ValueKind: emptyValue, 1043 ExtraValueKind: emptyValue, 1044 VariadicMap: 1, // 1 1045 }, 1046 opForStmt: { 1047 Tag: nodetag.ForStmt, 1048 NumArgs: 1, 1049 ValueKind: emptyValue, 1050 ExtraValueKind: emptyValue, 1051 VariadicMap: 0, // 0 1052 }, 1053 opForPostStmt: { 1054 Tag: nodetag.ForStmt, 1055 NumArgs: 2, 1056 ValueKind: emptyValue, 1057 ExtraValueKind: emptyValue, 1058 VariadicMap: 0, // 0 1059 }, 1060 opForCondStmt: { 1061 Tag: nodetag.ForStmt, 1062 NumArgs: 2, 1063 ValueKind: emptyValue, 1064 ExtraValueKind: emptyValue, 1065 VariadicMap: 0, // 0 1066 }, 1067 opForCondPostStmt: { 1068 Tag: nodetag.ForStmt, 1069 NumArgs: 3, 1070 ValueKind: emptyValue, 1071 ExtraValueKind: emptyValue, 1072 VariadicMap: 0, // 0 1073 }, 1074 opForInitStmt: { 1075 Tag: nodetag.ForStmt, 1076 NumArgs: 2, 1077 ValueKind: emptyValue, 1078 ExtraValueKind: emptyValue, 1079 VariadicMap: 0, // 0 1080 }, 1081 opForInitPostStmt: { 1082 Tag: nodetag.ForStmt, 1083 NumArgs: 3, 1084 ValueKind: emptyValue, 1085 ExtraValueKind: emptyValue, 1086 VariadicMap: 0, // 0 1087 }, 1088 opForInitCondStmt: { 1089 Tag: nodetag.ForStmt, 1090 NumArgs: 3, 1091 ValueKind: emptyValue, 1092 ExtraValueKind: emptyValue, 1093 VariadicMap: 0, // 0 1094 }, 1095 opForInitCondPostStmt: { 1096 Tag: nodetag.ForStmt, 1097 NumArgs: 4, 1098 ValueKind: emptyValue, 1099 ExtraValueKind: emptyValue, 1100 VariadicMap: 0, // 0 1101 }, 1102 opRangeStmt: { 1103 Tag: nodetag.RangeStmt, 1104 NumArgs: 2, 1105 ValueKind: emptyValue, 1106 ExtraValueKind: emptyValue, 1107 VariadicMap: 0, // 0 1108 }, 1109 opRangeKeyStmt: { 1110 Tag: nodetag.RangeStmt, 1111 NumArgs: 3, 1112 ValueKind: tokenValue, 1113 ExtraValueKind: emptyValue, 1114 VariadicMap: 0, // 0 1115 }, 1116 opRangeKeyValueStmt: { 1117 Tag: nodetag.RangeStmt, 1118 NumArgs: 4, 1119 ValueKind: tokenValue, 1120 ExtraValueKind: emptyValue, 1121 VariadicMap: 0, // 0 1122 }, 1123 opFieldList: { 1124 Tag: nodetag.Unknown, 1125 NumArgs: 1, 1126 ValueKind: emptyValue, 1127 ExtraValueKind: emptyValue, 1128 VariadicMap: 1, // 1 1129 }, 1130 opUnnamedField: { 1131 Tag: nodetag.Unknown, 1132 NumArgs: 1, 1133 ValueKind: emptyValue, 1134 ExtraValueKind: emptyValue, 1135 VariadicMap: 0, // 0 1136 }, 1137 opSimpleField: { 1138 Tag: nodetag.Unknown, 1139 NumArgs: 1, 1140 ValueKind: emptyValue, 1141 ExtraValueKind: stringValue, 1142 VariadicMap: 0, // 0 1143 }, 1144 opField: { 1145 Tag: nodetag.Unknown, 1146 NumArgs: 2, 1147 ValueKind: emptyValue, 1148 ExtraValueKind: emptyValue, 1149 VariadicMap: 0, // 0 1150 }, 1151 opMultiField: { 1152 Tag: nodetag.Unknown, 1153 NumArgs: 2, 1154 ValueKind: emptyValue, 1155 ExtraValueKind: emptyValue, 1156 VariadicMap: 1, // 1 1157 }, 1158 opValueInitSpec: { 1159 Tag: nodetag.ValueSpec, 1160 NumArgs: 2, 1161 ValueKind: emptyValue, 1162 ExtraValueKind: emptyValue, 1163 VariadicMap: 3, // 11 1164 }, 1165 opTypedValueInitSpec: { 1166 Tag: nodetag.ValueSpec, 1167 NumArgs: 3, 1168 ValueKind: emptyValue, 1169 ExtraValueKind: emptyValue, 1170 VariadicMap: 5, // 101 1171 }, 1172 opTypedValueSpec: { 1173 Tag: nodetag.ValueSpec, 1174 NumArgs: 2, 1175 ValueKind: emptyValue, 1176 ExtraValueKind: emptyValue, 1177 VariadicMap: 1, // 1 1178 }, 1179 opTypeSpec: { 1180 Tag: nodetag.TypeSpec, 1181 NumArgs: 2, 1182 ValueKind: emptyValue, 1183 ExtraValueKind: emptyValue, 1184 VariadicMap: 0, // 0 1185 }, 1186 opTypeAliasSpec: { 1187 Tag: nodetag.TypeSpec, 1188 NumArgs: 2, 1189 ValueKind: emptyValue, 1190 ExtraValueKind: emptyValue, 1191 VariadicMap: 0, // 0 1192 }, 1193 opFuncDecl: { 1194 Tag: nodetag.FuncDecl, 1195 NumArgs: 3, 1196 ValueKind: emptyValue, 1197 ExtraValueKind: emptyValue, 1198 VariadicMap: 0, // 0 1199 }, 1200 opMethodDecl: { 1201 Tag: nodetag.FuncDecl, 1202 NumArgs: 4, 1203 ValueKind: emptyValue, 1204 ExtraValueKind: emptyValue, 1205 VariadicMap: 0, // 0 1206 }, 1207 opFuncProtoDecl: { 1208 Tag: nodetag.FuncDecl, 1209 NumArgs: 2, 1210 ValueKind: emptyValue, 1211 ExtraValueKind: emptyValue, 1212 VariadicMap: 0, // 0 1213 }, 1214 opMethodProtoDecl: { 1215 Tag: nodetag.FuncDecl, 1216 NumArgs: 3, 1217 ValueKind: emptyValue, 1218 ExtraValueKind: emptyValue, 1219 VariadicMap: 0, // 0 1220 }, 1221 opConstDecl: { 1222 Tag: nodetag.GenDecl, 1223 NumArgs: 1, 1224 ValueKind: emptyValue, 1225 ExtraValueKind: emptyValue, 1226 VariadicMap: 1, // 1 1227 }, 1228 opVarDecl: { 1229 Tag: nodetag.GenDecl, 1230 NumArgs: 1, 1231 ValueKind: emptyValue, 1232 ExtraValueKind: emptyValue, 1233 VariadicMap: 1, // 1 1234 }, 1235 opTypeDecl: { 1236 Tag: nodetag.GenDecl, 1237 NumArgs: 1, 1238 ValueKind: emptyValue, 1239 ExtraValueKind: emptyValue, 1240 VariadicMap: 1, // 1 1241 }, 1242 opEmptyPackage: { 1243 Tag: nodetag.File, 1244 NumArgs: 1, 1245 ValueKind: emptyValue, 1246 ExtraValueKind: emptyValue, 1247 VariadicMap: 0, // 0 1248 }, 1249} 1250