1package main 2 3// Code generated by peg delocate.peg DO NOT EDIT. 4 5import ( 6 "fmt" 7 "io" 8 "os" 9 "sort" 10 "strconv" 11 "strings" 12) 13 14const endSymbol rune = 1114112 15 16/* The rule types inferred from the grammar are below. */ 17type pegRule uint8 18 19const ( 20 ruleUnknown pegRule = iota 21 ruleAsmFile 22 ruleStatement 23 ruleGlobalDirective 24 ruleDirective 25 ruleDirectiveName 26 ruleLocationDirective 27 ruleFileDirective 28 ruleLocDirective 29 ruleArgs 30 ruleArg 31 ruleQuotedArg 32 ruleQuotedText 33 ruleLabelContainingDirective 34 ruleLabelContainingDirectiveName 35 ruleSymbolArgs 36 ruleSymbolArg 37 ruleSymbolExpr 38 ruleSymbolAtom 39 ruleSymbolOperator 40 ruleOpenParen 41 ruleCloseParen 42 ruleSymbolType 43 ruleDot 44 ruleTCMarker 45 ruleEscapedChar 46 ruleWS 47 ruleComment 48 ruleLabel 49 ruleSymbolName 50 ruleLocalSymbol 51 ruleLocalLabel 52 ruleLocalLabelRef 53 ruleInstructionPrefix 54 ruleInstruction 55 ruleInstructionName 56 ruleInstructionArg 57 ruleGOTLocation 58 ruleGOTAddress 59 ruleGOTSymbolOffset 60 ruleAVX512Token 61 ruleTOCRefHigh 62 ruleTOCRefLow 63 ruleIndirectionIndicator 64 ruleRegisterOrConstant 65 ruleARMConstantTweak 66 ruleARMRegister 67 ruleARMVectorRegister 68 ruleSVE2PredicateRegister 69 ruleSVE2SpecialValue 70 ruleMemoryRef 71 ruleSymbolRef 72 ruleLow12BitsSymbolRef 73 ruleARMBaseIndexScale 74 ruleARMGOTLow12 75 ruleARMPostincrement 76 ruleBaseIndexScale 77 ruleOperator 78 ruleOffset 79 ruleSection 80 ruleSegmentRegister 81) 82 83var rul3s = [...]string{ 84 "Unknown", 85 "AsmFile", 86 "Statement", 87 "GlobalDirective", 88 "Directive", 89 "DirectiveName", 90 "LocationDirective", 91 "FileDirective", 92 "LocDirective", 93 "Args", 94 "Arg", 95 "QuotedArg", 96 "QuotedText", 97 "LabelContainingDirective", 98 "LabelContainingDirectiveName", 99 "SymbolArgs", 100 "SymbolArg", 101 "SymbolExpr", 102 "SymbolAtom", 103 "SymbolOperator", 104 "OpenParen", 105 "CloseParen", 106 "SymbolType", 107 "Dot", 108 "TCMarker", 109 "EscapedChar", 110 "WS", 111 "Comment", 112 "Label", 113 "SymbolName", 114 "LocalSymbol", 115 "LocalLabel", 116 "LocalLabelRef", 117 "InstructionPrefix", 118 "Instruction", 119 "InstructionName", 120 "InstructionArg", 121 "GOTLocation", 122 "GOTAddress", 123 "GOTSymbolOffset", 124 "AVX512Token", 125 "TOCRefHigh", 126 "TOCRefLow", 127 "IndirectionIndicator", 128 "RegisterOrConstant", 129 "ARMConstantTweak", 130 "ARMRegister", 131 "ARMVectorRegister", 132 "SVE2PredicateRegister", 133 "SVE2SpecialValue", 134 "MemoryRef", 135 "SymbolRef", 136 "Low12BitsSymbolRef", 137 "ARMBaseIndexScale", 138 "ARMGOTLow12", 139 "ARMPostincrement", 140 "BaseIndexScale", 141 "Operator", 142 "Offset", 143 "Section", 144 "SegmentRegister", 145} 146 147type token32 struct { 148 pegRule 149 begin, end uint32 150} 151 152func (t *token32) String() string { 153 return fmt.Sprintf("\x1B[34m%v\x1B[m %v %v", rul3s[t.pegRule], t.begin, t.end) 154} 155 156type node32 struct { 157 token32 158 up, next *node32 159} 160 161func (node *node32) print(w io.Writer, pretty bool, buffer string) { 162 var print func(node *node32, depth int) 163 print = func(node *node32, depth int) { 164 for node != nil { 165 for c := 0; c < depth; c++ { 166 fmt.Fprintf(w, " ") 167 } 168 rule := rul3s[node.pegRule] 169 quote := strconv.Quote(string(([]rune(buffer)[node.begin:node.end]))) 170 if !pretty { 171 fmt.Fprintf(w, "%v %v\n", rule, quote) 172 } else { 173 fmt.Fprintf(w, "\x1B[36m%v\x1B[m %v\n", rule, quote) 174 } 175 if node.up != nil { 176 print(node.up, depth+1) 177 } 178 node = node.next 179 } 180 } 181 print(node, 0) 182} 183 184func (node *node32) Print(w io.Writer, buffer string) { 185 node.print(w, false, buffer) 186} 187 188func (node *node32) PrettyPrint(w io.Writer, buffer string) { 189 node.print(w, true, buffer) 190} 191 192type tokens32 struct { 193 tree []token32 194} 195 196func (t *tokens32) Trim(length uint32) { 197 t.tree = t.tree[:length] 198} 199 200func (t *tokens32) Print() { 201 for _, token := range t.tree { 202 fmt.Println(token.String()) 203 } 204} 205 206func (t *tokens32) AST() *node32 { 207 type element struct { 208 node *node32 209 down *element 210 } 211 tokens := t.Tokens() 212 var stack *element 213 for _, token := range tokens { 214 if token.begin == token.end { 215 continue 216 } 217 node := &node32{token32: token} 218 for stack != nil && stack.node.begin >= token.begin && stack.node.end <= token.end { 219 stack.node.next = node.up 220 node.up = stack.node 221 stack = stack.down 222 } 223 stack = &element{node: node, down: stack} 224 } 225 if stack != nil { 226 return stack.node 227 } 228 return nil 229} 230 231func (t *tokens32) PrintSyntaxTree(buffer string) { 232 t.AST().Print(os.Stdout, buffer) 233} 234 235func (t *tokens32) WriteSyntaxTree(w io.Writer, buffer string) { 236 t.AST().Print(w, buffer) 237} 238 239func (t *tokens32) PrettyPrintSyntaxTree(buffer string) { 240 t.AST().PrettyPrint(os.Stdout, buffer) 241} 242 243func (t *tokens32) Add(rule pegRule, begin, end, index uint32) { 244 tree, i := t.tree, int(index) 245 if i >= len(tree) { 246 t.tree = append(tree, token32{pegRule: rule, begin: begin, end: end}) 247 return 248 } 249 tree[i] = token32{pegRule: rule, begin: begin, end: end} 250} 251 252func (t *tokens32) Tokens() []token32 { 253 return t.tree 254} 255 256type Asm struct { 257 Buffer string 258 buffer []rune 259 rules [61]func() bool 260 parse func(rule ...int) error 261 reset func() 262 Pretty bool 263 tokens32 264} 265 266func (p *Asm) Parse(rule ...int) error { 267 return p.parse(rule...) 268} 269 270func (p *Asm) Reset() { 271 p.reset() 272} 273 274type textPosition struct { 275 line, symbol int 276} 277 278type textPositionMap map[int]textPosition 279 280func translatePositions(buffer []rune, positions []int) textPositionMap { 281 length, translations, j, line, symbol := len(positions), make(textPositionMap, len(positions)), 0, 1, 0 282 sort.Ints(positions) 283 284search: 285 for i, c := range buffer { 286 if c == '\n' { 287 line, symbol = line+1, 0 288 } else { 289 symbol++ 290 } 291 if i == positions[j] { 292 translations[positions[j]] = textPosition{line, symbol} 293 for j++; j < length; j++ { 294 if i != positions[j] { 295 continue search 296 } 297 } 298 break search 299 } 300 } 301 302 return translations 303} 304 305type parseError struct { 306 p *Asm 307 max token32 308} 309 310func (e *parseError) Error() string { 311 tokens, err := []token32{e.max}, "\n" 312 positions, p := make([]int, 2*len(tokens)), 0 313 for _, token := range tokens { 314 positions[p], p = int(token.begin), p+1 315 positions[p], p = int(token.end), p+1 316 } 317 translations := translatePositions(e.p.buffer, positions) 318 format := "parse error near %v (line %v symbol %v - line %v symbol %v):\n%v\n" 319 if e.p.Pretty { 320 format = "parse error near \x1B[34m%v\x1B[m (line %v symbol %v - line %v symbol %v):\n%v\n" 321 } 322 for _, token := range tokens { 323 begin, end := int(token.begin), int(token.end) 324 err += fmt.Sprintf(format, 325 rul3s[token.pegRule], 326 translations[begin].line, translations[begin].symbol, 327 translations[end].line, translations[end].symbol, 328 strconv.Quote(string(e.p.buffer[begin:end]))) 329 } 330 331 return err 332} 333 334func (p *Asm) PrintSyntaxTree() { 335 if p.Pretty { 336 p.tokens32.PrettyPrintSyntaxTree(p.Buffer) 337 } else { 338 p.tokens32.PrintSyntaxTree(p.Buffer) 339 } 340} 341 342func (p *Asm) WriteSyntaxTree(w io.Writer) { 343 p.tokens32.WriteSyntaxTree(w, p.Buffer) 344} 345 346func (p *Asm) SprintSyntaxTree() string { 347 var bldr strings.Builder 348 p.WriteSyntaxTree(&bldr) 349 return bldr.String() 350} 351 352func Pretty(pretty bool) func(*Asm) error { 353 return func(p *Asm) error { 354 p.Pretty = pretty 355 return nil 356 } 357} 358 359func Size(size int) func(*Asm) error { 360 return func(p *Asm) error { 361 p.tokens32 = tokens32{tree: make([]token32, 0, size)} 362 return nil 363 } 364} 365func (p *Asm) Init(options ...func(*Asm) error) error { 366 var ( 367 max token32 368 position, tokenIndex uint32 369 buffer []rune 370 ) 371 for _, option := range options { 372 err := option(p) 373 if err != nil { 374 return err 375 } 376 } 377 p.reset = func() { 378 max = token32{} 379 position, tokenIndex = 0, 0 380 381 p.buffer = []rune(p.Buffer) 382 if len(p.buffer) == 0 || p.buffer[len(p.buffer)-1] != endSymbol { 383 p.buffer = append(p.buffer, endSymbol) 384 } 385 buffer = p.buffer 386 } 387 p.reset() 388 389 _rules := p.rules 390 tree := p.tokens32 391 p.parse = func(rule ...int) error { 392 r := 1 393 if len(rule) > 0 { 394 r = rule[0] 395 } 396 matches := p.rules[r]() 397 p.tokens32 = tree 398 if matches { 399 p.Trim(tokenIndex) 400 return nil 401 } 402 return &parseError{p, max} 403 } 404 405 add := func(rule pegRule, begin uint32) { 406 tree.Add(rule, begin, position, tokenIndex) 407 tokenIndex++ 408 if begin != position && position > max.end { 409 max = token32{rule, begin, position} 410 } 411 } 412 413 matchDot := func() bool { 414 if buffer[position] != endSymbol { 415 position++ 416 return true 417 } 418 return false 419 } 420 421 /*matchChar := func(c byte) bool { 422 if buffer[position] == c { 423 position++ 424 return true 425 } 426 return false 427 }*/ 428 429 /*matchRange := func(lower byte, upper byte) bool { 430 if c := buffer[position]; c >= lower && c <= upper { 431 position++ 432 return true 433 } 434 return false 435 }*/ 436 437 _rules = [...]func() bool{ 438 nil, 439 /* 0 AsmFile <- <(Statement* !.)> */ 440 func() bool { 441 position0, tokenIndex0 := position, tokenIndex 442 { 443 position1 := position 444 l2: 445 { 446 position3, tokenIndex3 := position, tokenIndex 447 if !_rules[ruleStatement]() { 448 goto l3 449 } 450 goto l2 451 l3: 452 position, tokenIndex = position3, tokenIndex3 453 } 454 { 455 position4, tokenIndex4 := position, tokenIndex 456 if !matchDot() { 457 goto l4 458 } 459 goto l0 460 l4: 461 position, tokenIndex = position4, tokenIndex4 462 } 463 add(ruleAsmFile, position1) 464 } 465 return true 466 l0: 467 position, tokenIndex = position0, tokenIndex0 468 return false 469 }, 470 /* 1 Statement <- <(WS? (Label / ((GlobalDirective / LocationDirective / LabelContainingDirective / Instruction / Directive / Comment / ) WS? ((Comment? '\n') / ';'))))> */ 471 func() bool { 472 position5, tokenIndex5 := position, tokenIndex 473 { 474 position6 := position 475 { 476 position7, tokenIndex7 := position, tokenIndex 477 if !_rules[ruleWS]() { 478 goto l7 479 } 480 goto l8 481 l7: 482 position, tokenIndex = position7, tokenIndex7 483 } 484 l8: 485 { 486 position9, tokenIndex9 := position, tokenIndex 487 if !_rules[ruleLabel]() { 488 goto l10 489 } 490 goto l9 491 l10: 492 position, tokenIndex = position9, tokenIndex9 493 { 494 position11, tokenIndex11 := position, tokenIndex 495 if !_rules[ruleGlobalDirective]() { 496 goto l12 497 } 498 goto l11 499 l12: 500 position, tokenIndex = position11, tokenIndex11 501 if !_rules[ruleLocationDirective]() { 502 goto l13 503 } 504 goto l11 505 l13: 506 position, tokenIndex = position11, tokenIndex11 507 if !_rules[ruleLabelContainingDirective]() { 508 goto l14 509 } 510 goto l11 511 l14: 512 position, tokenIndex = position11, tokenIndex11 513 if !_rules[ruleInstruction]() { 514 goto l15 515 } 516 goto l11 517 l15: 518 position, tokenIndex = position11, tokenIndex11 519 if !_rules[ruleDirective]() { 520 goto l16 521 } 522 goto l11 523 l16: 524 position, tokenIndex = position11, tokenIndex11 525 if !_rules[ruleComment]() { 526 goto l17 527 } 528 goto l11 529 l17: 530 position, tokenIndex = position11, tokenIndex11 531 } 532 l11: 533 { 534 position18, tokenIndex18 := position, tokenIndex 535 if !_rules[ruleWS]() { 536 goto l18 537 } 538 goto l19 539 l18: 540 position, tokenIndex = position18, tokenIndex18 541 } 542 l19: 543 { 544 position20, tokenIndex20 := position, tokenIndex 545 { 546 position22, tokenIndex22 := position, tokenIndex 547 if !_rules[ruleComment]() { 548 goto l22 549 } 550 goto l23 551 l22: 552 position, tokenIndex = position22, tokenIndex22 553 } 554 l23: 555 if buffer[position] != rune('\n') { 556 goto l21 557 } 558 position++ 559 goto l20 560 l21: 561 position, tokenIndex = position20, tokenIndex20 562 if buffer[position] != rune(';') { 563 goto l5 564 } 565 position++ 566 } 567 l20: 568 } 569 l9: 570 add(ruleStatement, position6) 571 } 572 return true 573 l5: 574 position, tokenIndex = position5, tokenIndex5 575 return false 576 }, 577 /* 2 GlobalDirective <- <((('.' ('g' / 'G') ('l' / 'L') ('o' / 'O') ('b' / 'B') ('a' / 'A') ('l' / 'L')) / ('.' ('g' / 'G') ('l' / 'L') ('o' / 'O') ('b' / 'B') ('l' / 'L'))) WS SymbolName)> */ 578 func() bool { 579 position24, tokenIndex24 := position, tokenIndex 580 { 581 position25 := position 582 { 583 position26, tokenIndex26 := position, tokenIndex 584 if buffer[position] != rune('.') { 585 goto l27 586 } 587 position++ 588 { 589 position28, tokenIndex28 := position, tokenIndex 590 if buffer[position] != rune('g') { 591 goto l29 592 } 593 position++ 594 goto l28 595 l29: 596 position, tokenIndex = position28, tokenIndex28 597 if buffer[position] != rune('G') { 598 goto l27 599 } 600 position++ 601 } 602 l28: 603 { 604 position30, tokenIndex30 := position, tokenIndex 605 if buffer[position] != rune('l') { 606 goto l31 607 } 608 position++ 609 goto l30 610 l31: 611 position, tokenIndex = position30, tokenIndex30 612 if buffer[position] != rune('L') { 613 goto l27 614 } 615 position++ 616 } 617 l30: 618 { 619 position32, tokenIndex32 := position, tokenIndex 620 if buffer[position] != rune('o') { 621 goto l33 622 } 623 position++ 624 goto l32 625 l33: 626 position, tokenIndex = position32, tokenIndex32 627 if buffer[position] != rune('O') { 628 goto l27 629 } 630 position++ 631 } 632 l32: 633 { 634 position34, tokenIndex34 := position, tokenIndex 635 if buffer[position] != rune('b') { 636 goto l35 637 } 638 position++ 639 goto l34 640 l35: 641 position, tokenIndex = position34, tokenIndex34 642 if buffer[position] != rune('B') { 643 goto l27 644 } 645 position++ 646 } 647 l34: 648 { 649 position36, tokenIndex36 := position, tokenIndex 650 if buffer[position] != rune('a') { 651 goto l37 652 } 653 position++ 654 goto l36 655 l37: 656 position, tokenIndex = position36, tokenIndex36 657 if buffer[position] != rune('A') { 658 goto l27 659 } 660 position++ 661 } 662 l36: 663 { 664 position38, tokenIndex38 := position, tokenIndex 665 if buffer[position] != rune('l') { 666 goto l39 667 } 668 position++ 669 goto l38 670 l39: 671 position, tokenIndex = position38, tokenIndex38 672 if buffer[position] != rune('L') { 673 goto l27 674 } 675 position++ 676 } 677 l38: 678 goto l26 679 l27: 680 position, tokenIndex = position26, tokenIndex26 681 if buffer[position] != rune('.') { 682 goto l24 683 } 684 position++ 685 { 686 position40, tokenIndex40 := position, tokenIndex 687 if buffer[position] != rune('g') { 688 goto l41 689 } 690 position++ 691 goto l40 692 l41: 693 position, tokenIndex = position40, tokenIndex40 694 if buffer[position] != rune('G') { 695 goto l24 696 } 697 position++ 698 } 699 l40: 700 { 701 position42, tokenIndex42 := position, tokenIndex 702 if buffer[position] != rune('l') { 703 goto l43 704 } 705 position++ 706 goto l42 707 l43: 708 position, tokenIndex = position42, tokenIndex42 709 if buffer[position] != rune('L') { 710 goto l24 711 } 712 position++ 713 } 714 l42: 715 { 716 position44, tokenIndex44 := position, tokenIndex 717 if buffer[position] != rune('o') { 718 goto l45 719 } 720 position++ 721 goto l44 722 l45: 723 position, tokenIndex = position44, tokenIndex44 724 if buffer[position] != rune('O') { 725 goto l24 726 } 727 position++ 728 } 729 l44: 730 { 731 position46, tokenIndex46 := position, tokenIndex 732 if buffer[position] != rune('b') { 733 goto l47 734 } 735 position++ 736 goto l46 737 l47: 738 position, tokenIndex = position46, tokenIndex46 739 if buffer[position] != rune('B') { 740 goto l24 741 } 742 position++ 743 } 744 l46: 745 { 746 position48, tokenIndex48 := position, tokenIndex 747 if buffer[position] != rune('l') { 748 goto l49 749 } 750 position++ 751 goto l48 752 l49: 753 position, tokenIndex = position48, tokenIndex48 754 if buffer[position] != rune('L') { 755 goto l24 756 } 757 position++ 758 } 759 l48: 760 } 761 l26: 762 if !_rules[ruleWS]() { 763 goto l24 764 } 765 if !_rules[ruleSymbolName]() { 766 goto l24 767 } 768 add(ruleGlobalDirective, position25) 769 } 770 return true 771 l24: 772 position, tokenIndex = position24, tokenIndex24 773 return false 774 }, 775 /* 3 Directive <- <('.' DirectiveName (WS Args)?)> */ 776 func() bool { 777 position50, tokenIndex50 := position, tokenIndex 778 { 779 position51 := position 780 if buffer[position] != rune('.') { 781 goto l50 782 } 783 position++ 784 if !_rules[ruleDirectiveName]() { 785 goto l50 786 } 787 { 788 position52, tokenIndex52 := position, tokenIndex 789 if !_rules[ruleWS]() { 790 goto l52 791 } 792 if !_rules[ruleArgs]() { 793 goto l52 794 } 795 goto l53 796 l52: 797 position, tokenIndex = position52, tokenIndex52 798 } 799 l53: 800 add(ruleDirective, position51) 801 } 802 return true 803 l50: 804 position, tokenIndex = position50, tokenIndex50 805 return false 806 }, 807 /* 4 DirectiveName <- <([a-z] / [A-Z] / ([0-9] / [0-9]) / '_')+> */ 808 func() bool { 809 position54, tokenIndex54 := position, tokenIndex 810 { 811 position55 := position 812 { 813 position58, tokenIndex58 := position, tokenIndex 814 if c := buffer[position]; c < rune('a') || c > rune('z') { 815 goto l59 816 } 817 position++ 818 goto l58 819 l59: 820 position, tokenIndex = position58, tokenIndex58 821 if c := buffer[position]; c < rune('A') || c > rune('Z') { 822 goto l60 823 } 824 position++ 825 goto l58 826 l60: 827 position, tokenIndex = position58, tokenIndex58 828 { 829 position62, tokenIndex62 := position, tokenIndex 830 if c := buffer[position]; c < rune('0') || c > rune('9') { 831 goto l63 832 } 833 position++ 834 goto l62 835 l63: 836 position, tokenIndex = position62, tokenIndex62 837 if c := buffer[position]; c < rune('0') || c > rune('9') { 838 goto l61 839 } 840 position++ 841 } 842 l62: 843 goto l58 844 l61: 845 position, tokenIndex = position58, tokenIndex58 846 if buffer[position] != rune('_') { 847 goto l54 848 } 849 position++ 850 } 851 l58: 852 l56: 853 { 854 position57, tokenIndex57 := position, tokenIndex 855 { 856 position64, tokenIndex64 := position, tokenIndex 857 if c := buffer[position]; c < rune('a') || c > rune('z') { 858 goto l65 859 } 860 position++ 861 goto l64 862 l65: 863 position, tokenIndex = position64, tokenIndex64 864 if c := buffer[position]; c < rune('A') || c > rune('Z') { 865 goto l66 866 } 867 position++ 868 goto l64 869 l66: 870 position, tokenIndex = position64, tokenIndex64 871 { 872 position68, tokenIndex68 := position, tokenIndex 873 if c := buffer[position]; c < rune('0') || c > rune('9') { 874 goto l69 875 } 876 position++ 877 goto l68 878 l69: 879 position, tokenIndex = position68, tokenIndex68 880 if c := buffer[position]; c < rune('0') || c > rune('9') { 881 goto l67 882 } 883 position++ 884 } 885 l68: 886 goto l64 887 l67: 888 position, tokenIndex = position64, tokenIndex64 889 if buffer[position] != rune('_') { 890 goto l57 891 } 892 position++ 893 } 894 l64: 895 goto l56 896 l57: 897 position, tokenIndex = position57, tokenIndex57 898 } 899 add(ruleDirectiveName, position55) 900 } 901 return true 902 l54: 903 position, tokenIndex = position54, tokenIndex54 904 return false 905 }, 906 /* 5 LocationDirective <- <(FileDirective / LocDirective)> */ 907 func() bool { 908 position70, tokenIndex70 := position, tokenIndex 909 { 910 position71 := position 911 { 912 position72, tokenIndex72 := position, tokenIndex 913 if !_rules[ruleFileDirective]() { 914 goto l73 915 } 916 goto l72 917 l73: 918 position, tokenIndex = position72, tokenIndex72 919 if !_rules[ruleLocDirective]() { 920 goto l70 921 } 922 } 923 l72: 924 add(ruleLocationDirective, position71) 925 } 926 return true 927 l70: 928 position, tokenIndex = position70, tokenIndex70 929 return false 930 }, 931 /* 6 FileDirective <- <('.' ('f' / 'F') ('i' / 'I') ('l' / 'L') ('e' / 'E') WS (!('#' / '\n') .)+)> */ 932 func() bool { 933 position74, tokenIndex74 := position, tokenIndex 934 { 935 position75 := position 936 if buffer[position] != rune('.') { 937 goto l74 938 } 939 position++ 940 { 941 position76, tokenIndex76 := position, tokenIndex 942 if buffer[position] != rune('f') { 943 goto l77 944 } 945 position++ 946 goto l76 947 l77: 948 position, tokenIndex = position76, tokenIndex76 949 if buffer[position] != rune('F') { 950 goto l74 951 } 952 position++ 953 } 954 l76: 955 { 956 position78, tokenIndex78 := position, tokenIndex 957 if buffer[position] != rune('i') { 958 goto l79 959 } 960 position++ 961 goto l78 962 l79: 963 position, tokenIndex = position78, tokenIndex78 964 if buffer[position] != rune('I') { 965 goto l74 966 } 967 position++ 968 } 969 l78: 970 { 971 position80, tokenIndex80 := position, tokenIndex 972 if buffer[position] != rune('l') { 973 goto l81 974 } 975 position++ 976 goto l80 977 l81: 978 position, tokenIndex = position80, tokenIndex80 979 if buffer[position] != rune('L') { 980 goto l74 981 } 982 position++ 983 } 984 l80: 985 { 986 position82, tokenIndex82 := position, tokenIndex 987 if buffer[position] != rune('e') { 988 goto l83 989 } 990 position++ 991 goto l82 992 l83: 993 position, tokenIndex = position82, tokenIndex82 994 if buffer[position] != rune('E') { 995 goto l74 996 } 997 position++ 998 } 999 l82: 1000 if !_rules[ruleWS]() { 1001 goto l74 1002 } 1003 { 1004 position86, tokenIndex86 := position, tokenIndex 1005 { 1006 position87, tokenIndex87 := position, tokenIndex 1007 if buffer[position] != rune('#') { 1008 goto l88 1009 } 1010 position++ 1011 goto l87 1012 l88: 1013 position, tokenIndex = position87, tokenIndex87 1014 if buffer[position] != rune('\n') { 1015 goto l86 1016 } 1017 position++ 1018 } 1019 l87: 1020 goto l74 1021 l86: 1022 position, tokenIndex = position86, tokenIndex86 1023 } 1024 if !matchDot() { 1025 goto l74 1026 } 1027 l84: 1028 { 1029 position85, tokenIndex85 := position, tokenIndex 1030 { 1031 position89, tokenIndex89 := position, tokenIndex 1032 { 1033 position90, tokenIndex90 := position, tokenIndex 1034 if buffer[position] != rune('#') { 1035 goto l91 1036 } 1037 position++ 1038 goto l90 1039 l91: 1040 position, tokenIndex = position90, tokenIndex90 1041 if buffer[position] != rune('\n') { 1042 goto l89 1043 } 1044 position++ 1045 } 1046 l90: 1047 goto l85 1048 l89: 1049 position, tokenIndex = position89, tokenIndex89 1050 } 1051 if !matchDot() { 1052 goto l85 1053 } 1054 goto l84 1055 l85: 1056 position, tokenIndex = position85, tokenIndex85 1057 } 1058 add(ruleFileDirective, position75) 1059 } 1060 return true 1061 l74: 1062 position, tokenIndex = position74, tokenIndex74 1063 return false 1064 }, 1065 /* 7 LocDirective <- <('.' ('l' / 'L') ('o' / 'O') ('c' / 'C') WS (!('#' / '/' / '\n') .)+)> */ 1066 func() bool { 1067 position92, tokenIndex92 := position, tokenIndex 1068 { 1069 position93 := position 1070 if buffer[position] != rune('.') { 1071 goto l92 1072 } 1073 position++ 1074 { 1075 position94, tokenIndex94 := position, tokenIndex 1076 if buffer[position] != rune('l') { 1077 goto l95 1078 } 1079 position++ 1080 goto l94 1081 l95: 1082 position, tokenIndex = position94, tokenIndex94 1083 if buffer[position] != rune('L') { 1084 goto l92 1085 } 1086 position++ 1087 } 1088 l94: 1089 { 1090 position96, tokenIndex96 := position, tokenIndex 1091 if buffer[position] != rune('o') { 1092 goto l97 1093 } 1094 position++ 1095 goto l96 1096 l97: 1097 position, tokenIndex = position96, tokenIndex96 1098 if buffer[position] != rune('O') { 1099 goto l92 1100 } 1101 position++ 1102 } 1103 l96: 1104 { 1105 position98, tokenIndex98 := position, tokenIndex 1106 if buffer[position] != rune('c') { 1107 goto l99 1108 } 1109 position++ 1110 goto l98 1111 l99: 1112 position, tokenIndex = position98, tokenIndex98 1113 if buffer[position] != rune('C') { 1114 goto l92 1115 } 1116 position++ 1117 } 1118 l98: 1119 if !_rules[ruleWS]() { 1120 goto l92 1121 } 1122 { 1123 position102, tokenIndex102 := position, tokenIndex 1124 { 1125 position103, tokenIndex103 := position, tokenIndex 1126 if buffer[position] != rune('#') { 1127 goto l104 1128 } 1129 position++ 1130 goto l103 1131 l104: 1132 position, tokenIndex = position103, tokenIndex103 1133 if buffer[position] != rune('/') { 1134 goto l105 1135 } 1136 position++ 1137 goto l103 1138 l105: 1139 position, tokenIndex = position103, tokenIndex103 1140 if buffer[position] != rune('\n') { 1141 goto l102 1142 } 1143 position++ 1144 } 1145 l103: 1146 goto l92 1147 l102: 1148 position, tokenIndex = position102, tokenIndex102 1149 } 1150 if !matchDot() { 1151 goto l92 1152 } 1153 l100: 1154 { 1155 position101, tokenIndex101 := position, tokenIndex 1156 { 1157 position106, tokenIndex106 := position, tokenIndex 1158 { 1159 position107, tokenIndex107 := position, tokenIndex 1160 if buffer[position] != rune('#') { 1161 goto l108 1162 } 1163 position++ 1164 goto l107 1165 l108: 1166 position, tokenIndex = position107, tokenIndex107 1167 if buffer[position] != rune('/') { 1168 goto l109 1169 } 1170 position++ 1171 goto l107 1172 l109: 1173 position, tokenIndex = position107, tokenIndex107 1174 if buffer[position] != rune('\n') { 1175 goto l106 1176 } 1177 position++ 1178 } 1179 l107: 1180 goto l101 1181 l106: 1182 position, tokenIndex = position106, tokenIndex106 1183 } 1184 if !matchDot() { 1185 goto l101 1186 } 1187 goto l100 1188 l101: 1189 position, tokenIndex = position101, tokenIndex101 1190 } 1191 add(ruleLocDirective, position93) 1192 } 1193 return true 1194 l92: 1195 position, tokenIndex = position92, tokenIndex92 1196 return false 1197 }, 1198 /* 8 Args <- <(Arg (WS? ',' WS? Arg)*)> */ 1199 func() bool { 1200 position110, tokenIndex110 := position, tokenIndex 1201 { 1202 position111 := position 1203 if !_rules[ruleArg]() { 1204 goto l110 1205 } 1206 l112: 1207 { 1208 position113, tokenIndex113 := position, tokenIndex 1209 { 1210 position114, tokenIndex114 := position, tokenIndex 1211 if !_rules[ruleWS]() { 1212 goto l114 1213 } 1214 goto l115 1215 l114: 1216 position, tokenIndex = position114, tokenIndex114 1217 } 1218 l115: 1219 if buffer[position] != rune(',') { 1220 goto l113 1221 } 1222 position++ 1223 { 1224 position116, tokenIndex116 := position, tokenIndex 1225 if !_rules[ruleWS]() { 1226 goto l116 1227 } 1228 goto l117 1229 l116: 1230 position, tokenIndex = position116, tokenIndex116 1231 } 1232 l117: 1233 if !_rules[ruleArg]() { 1234 goto l113 1235 } 1236 goto l112 1237 l113: 1238 position, tokenIndex = position113, tokenIndex113 1239 } 1240 add(ruleArgs, position111) 1241 } 1242 return true 1243 l110: 1244 position, tokenIndex = position110, tokenIndex110 1245 return false 1246 }, 1247 /* 9 Arg <- <(QuotedArg / ([0-9] / [0-9] / ([a-z] / [A-Z]) / '%' / '+' / '-' / '*' / '_' / '@' / '.')*)> */ 1248 func() bool { 1249 { 1250 position119 := position 1251 { 1252 position120, tokenIndex120 := position, tokenIndex 1253 if !_rules[ruleQuotedArg]() { 1254 goto l121 1255 } 1256 goto l120 1257 l121: 1258 position, tokenIndex = position120, tokenIndex120 1259 l122: 1260 { 1261 position123, tokenIndex123 := position, tokenIndex 1262 { 1263 position124, tokenIndex124 := position, tokenIndex 1264 if c := buffer[position]; c < rune('0') || c > rune('9') { 1265 goto l125 1266 } 1267 position++ 1268 goto l124 1269 l125: 1270 position, tokenIndex = position124, tokenIndex124 1271 if c := buffer[position]; c < rune('0') || c > rune('9') { 1272 goto l126 1273 } 1274 position++ 1275 goto l124 1276 l126: 1277 position, tokenIndex = position124, tokenIndex124 1278 { 1279 position128, tokenIndex128 := position, tokenIndex 1280 if c := buffer[position]; c < rune('a') || c > rune('z') { 1281 goto l129 1282 } 1283 position++ 1284 goto l128 1285 l129: 1286 position, tokenIndex = position128, tokenIndex128 1287 if c := buffer[position]; c < rune('A') || c > rune('Z') { 1288 goto l127 1289 } 1290 position++ 1291 } 1292 l128: 1293 goto l124 1294 l127: 1295 position, tokenIndex = position124, tokenIndex124 1296 if buffer[position] != rune('%') { 1297 goto l130 1298 } 1299 position++ 1300 goto l124 1301 l130: 1302 position, tokenIndex = position124, tokenIndex124 1303 if buffer[position] != rune('+') { 1304 goto l131 1305 } 1306 position++ 1307 goto l124 1308 l131: 1309 position, tokenIndex = position124, tokenIndex124 1310 if buffer[position] != rune('-') { 1311 goto l132 1312 } 1313 position++ 1314 goto l124 1315 l132: 1316 position, tokenIndex = position124, tokenIndex124 1317 if buffer[position] != rune('*') { 1318 goto l133 1319 } 1320 position++ 1321 goto l124 1322 l133: 1323 position, tokenIndex = position124, tokenIndex124 1324 if buffer[position] != rune('_') { 1325 goto l134 1326 } 1327 position++ 1328 goto l124 1329 l134: 1330 position, tokenIndex = position124, tokenIndex124 1331 if buffer[position] != rune('@') { 1332 goto l135 1333 } 1334 position++ 1335 goto l124 1336 l135: 1337 position, tokenIndex = position124, tokenIndex124 1338 if buffer[position] != rune('.') { 1339 goto l123 1340 } 1341 position++ 1342 } 1343 l124: 1344 goto l122 1345 l123: 1346 position, tokenIndex = position123, tokenIndex123 1347 } 1348 } 1349 l120: 1350 add(ruleArg, position119) 1351 } 1352 return true 1353 }, 1354 /* 10 QuotedArg <- <('"' QuotedText '"')> */ 1355 func() bool { 1356 position136, tokenIndex136 := position, tokenIndex 1357 { 1358 position137 := position 1359 if buffer[position] != rune('"') { 1360 goto l136 1361 } 1362 position++ 1363 if !_rules[ruleQuotedText]() { 1364 goto l136 1365 } 1366 if buffer[position] != rune('"') { 1367 goto l136 1368 } 1369 position++ 1370 add(ruleQuotedArg, position137) 1371 } 1372 return true 1373 l136: 1374 position, tokenIndex = position136, tokenIndex136 1375 return false 1376 }, 1377 /* 11 QuotedText <- <(EscapedChar / (!'"' .))*> */ 1378 func() bool { 1379 { 1380 position139 := position 1381 l140: 1382 { 1383 position141, tokenIndex141 := position, tokenIndex 1384 { 1385 position142, tokenIndex142 := position, tokenIndex 1386 if !_rules[ruleEscapedChar]() { 1387 goto l143 1388 } 1389 goto l142 1390 l143: 1391 position, tokenIndex = position142, tokenIndex142 1392 { 1393 position144, tokenIndex144 := position, tokenIndex 1394 if buffer[position] != rune('"') { 1395 goto l144 1396 } 1397 position++ 1398 goto l141 1399 l144: 1400 position, tokenIndex = position144, tokenIndex144 1401 } 1402 if !matchDot() { 1403 goto l141 1404 } 1405 } 1406 l142: 1407 goto l140 1408 l141: 1409 position, tokenIndex = position141, tokenIndex141 1410 } 1411 add(ruleQuotedText, position139) 1412 } 1413 return true 1414 }, 1415 /* 12 LabelContainingDirective <- <(LabelContainingDirectiveName WS SymbolArgs)> */ 1416 func() bool { 1417 position145, tokenIndex145 := position, tokenIndex 1418 { 1419 position146 := position 1420 if !_rules[ruleLabelContainingDirectiveName]() { 1421 goto l145 1422 } 1423 if !_rules[ruleWS]() { 1424 goto l145 1425 } 1426 if !_rules[ruleSymbolArgs]() { 1427 goto l145 1428 } 1429 add(ruleLabelContainingDirective, position146) 1430 } 1431 return true 1432 l145: 1433 position, tokenIndex = position145, tokenIndex145 1434 return false 1435 }, 1436 /* 13 LabelContainingDirectiveName <- <(('.' ('x' / 'X') ('w' / 'W') ('o' / 'O') ('r' / 'R') ('d' / 'D')) / ('.' ('w' / 'W') ('o' / 'O') ('r' / 'R') ('d' / 'D')) / ('.' ('h' / 'H') ('w' / 'W') ('o' / 'O') ('r' / 'R') ('d' / 'D')) / ('.' ('l' / 'L') ('o' / 'O') ('n' / 'N') ('g' / 'G')) / ('.' ('s' / 'S') ('e' / 'E') ('t' / 'T')) / ('.' ('b' / 'B') ('y' / 'Y') ('t' / 'T') ('e' / 'E')) / ('.' '8' ('b' / 'B') ('y' / 'Y') ('t' / 'T') ('e' / 'E')) / ('.' '4' ('b' / 'B') ('y' / 'Y') ('t' / 'T') ('e' / 'E')) / ('.' ('q' / 'Q') ('u' / 'U') ('a' / 'A') ('d' / 'D')) / ('.' ('t' / 'T') ('c' / 'C')) / ('.' ('l' / 'L') ('o' / 'O') ('c' / 'C') ('a' / 'A') ('l' / 'L') ('e' / 'E') ('n' / 'N') ('t' / 'T') ('r' / 'R') ('y' / 'Y')) / ('.' ('s' / 'S') ('i' / 'I') ('z' / 'Z') ('e' / 'E')) / ('.' ('t' / 'T') ('y' / 'Y') ('p' / 'P') ('e' / 'E')) / ('.' ('u' / 'U') ('l' / 'L') ('e' / 'E') ('b' / 'B') '1' '2' '8') / ('.' ('s' / 'S') ('l' / 'L') ('e' / 'E') ('b' / 'B') '1' '2' '8'))> */ 1437 func() bool { 1438 position147, tokenIndex147 := position, tokenIndex 1439 { 1440 position148 := position 1441 { 1442 position149, tokenIndex149 := position, tokenIndex 1443 if buffer[position] != rune('.') { 1444 goto l150 1445 } 1446 position++ 1447 { 1448 position151, tokenIndex151 := position, tokenIndex 1449 if buffer[position] != rune('x') { 1450 goto l152 1451 } 1452 position++ 1453 goto l151 1454 l152: 1455 position, tokenIndex = position151, tokenIndex151 1456 if buffer[position] != rune('X') { 1457 goto l150 1458 } 1459 position++ 1460 } 1461 l151: 1462 { 1463 position153, tokenIndex153 := position, tokenIndex 1464 if buffer[position] != rune('w') { 1465 goto l154 1466 } 1467 position++ 1468 goto l153 1469 l154: 1470 position, tokenIndex = position153, tokenIndex153 1471 if buffer[position] != rune('W') { 1472 goto l150 1473 } 1474 position++ 1475 } 1476 l153: 1477 { 1478 position155, tokenIndex155 := position, tokenIndex 1479 if buffer[position] != rune('o') { 1480 goto l156 1481 } 1482 position++ 1483 goto l155 1484 l156: 1485 position, tokenIndex = position155, tokenIndex155 1486 if buffer[position] != rune('O') { 1487 goto l150 1488 } 1489 position++ 1490 } 1491 l155: 1492 { 1493 position157, tokenIndex157 := position, tokenIndex 1494 if buffer[position] != rune('r') { 1495 goto l158 1496 } 1497 position++ 1498 goto l157 1499 l158: 1500 position, tokenIndex = position157, tokenIndex157 1501 if buffer[position] != rune('R') { 1502 goto l150 1503 } 1504 position++ 1505 } 1506 l157: 1507 { 1508 position159, tokenIndex159 := position, tokenIndex 1509 if buffer[position] != rune('d') { 1510 goto l160 1511 } 1512 position++ 1513 goto l159 1514 l160: 1515 position, tokenIndex = position159, tokenIndex159 1516 if buffer[position] != rune('D') { 1517 goto l150 1518 } 1519 position++ 1520 } 1521 l159: 1522 goto l149 1523 l150: 1524 position, tokenIndex = position149, tokenIndex149 1525 if buffer[position] != rune('.') { 1526 goto l161 1527 } 1528 position++ 1529 { 1530 position162, tokenIndex162 := position, tokenIndex 1531 if buffer[position] != rune('w') { 1532 goto l163 1533 } 1534 position++ 1535 goto l162 1536 l163: 1537 position, tokenIndex = position162, tokenIndex162 1538 if buffer[position] != rune('W') { 1539 goto l161 1540 } 1541 position++ 1542 } 1543 l162: 1544 { 1545 position164, tokenIndex164 := position, tokenIndex 1546 if buffer[position] != rune('o') { 1547 goto l165 1548 } 1549 position++ 1550 goto l164 1551 l165: 1552 position, tokenIndex = position164, tokenIndex164 1553 if buffer[position] != rune('O') { 1554 goto l161 1555 } 1556 position++ 1557 } 1558 l164: 1559 { 1560 position166, tokenIndex166 := position, tokenIndex 1561 if buffer[position] != rune('r') { 1562 goto l167 1563 } 1564 position++ 1565 goto l166 1566 l167: 1567 position, tokenIndex = position166, tokenIndex166 1568 if buffer[position] != rune('R') { 1569 goto l161 1570 } 1571 position++ 1572 } 1573 l166: 1574 { 1575 position168, tokenIndex168 := position, tokenIndex 1576 if buffer[position] != rune('d') { 1577 goto l169 1578 } 1579 position++ 1580 goto l168 1581 l169: 1582 position, tokenIndex = position168, tokenIndex168 1583 if buffer[position] != rune('D') { 1584 goto l161 1585 } 1586 position++ 1587 } 1588 l168: 1589 goto l149 1590 l161: 1591 position, tokenIndex = position149, tokenIndex149 1592 if buffer[position] != rune('.') { 1593 goto l170 1594 } 1595 position++ 1596 { 1597 position171, tokenIndex171 := position, tokenIndex 1598 if buffer[position] != rune('h') { 1599 goto l172 1600 } 1601 position++ 1602 goto l171 1603 l172: 1604 position, tokenIndex = position171, tokenIndex171 1605 if buffer[position] != rune('H') { 1606 goto l170 1607 } 1608 position++ 1609 } 1610 l171: 1611 { 1612 position173, tokenIndex173 := position, tokenIndex 1613 if buffer[position] != rune('w') { 1614 goto l174 1615 } 1616 position++ 1617 goto l173 1618 l174: 1619 position, tokenIndex = position173, tokenIndex173 1620 if buffer[position] != rune('W') { 1621 goto l170 1622 } 1623 position++ 1624 } 1625 l173: 1626 { 1627 position175, tokenIndex175 := position, tokenIndex 1628 if buffer[position] != rune('o') { 1629 goto l176 1630 } 1631 position++ 1632 goto l175 1633 l176: 1634 position, tokenIndex = position175, tokenIndex175 1635 if buffer[position] != rune('O') { 1636 goto l170 1637 } 1638 position++ 1639 } 1640 l175: 1641 { 1642 position177, tokenIndex177 := position, tokenIndex 1643 if buffer[position] != rune('r') { 1644 goto l178 1645 } 1646 position++ 1647 goto l177 1648 l178: 1649 position, tokenIndex = position177, tokenIndex177 1650 if buffer[position] != rune('R') { 1651 goto l170 1652 } 1653 position++ 1654 } 1655 l177: 1656 { 1657 position179, tokenIndex179 := position, tokenIndex 1658 if buffer[position] != rune('d') { 1659 goto l180 1660 } 1661 position++ 1662 goto l179 1663 l180: 1664 position, tokenIndex = position179, tokenIndex179 1665 if buffer[position] != rune('D') { 1666 goto l170 1667 } 1668 position++ 1669 } 1670 l179: 1671 goto l149 1672 l170: 1673 position, tokenIndex = position149, tokenIndex149 1674 if buffer[position] != rune('.') { 1675 goto l181 1676 } 1677 position++ 1678 { 1679 position182, tokenIndex182 := position, tokenIndex 1680 if buffer[position] != rune('l') { 1681 goto l183 1682 } 1683 position++ 1684 goto l182 1685 l183: 1686 position, tokenIndex = position182, tokenIndex182 1687 if buffer[position] != rune('L') { 1688 goto l181 1689 } 1690 position++ 1691 } 1692 l182: 1693 { 1694 position184, tokenIndex184 := position, tokenIndex 1695 if buffer[position] != rune('o') { 1696 goto l185 1697 } 1698 position++ 1699 goto l184 1700 l185: 1701 position, tokenIndex = position184, tokenIndex184 1702 if buffer[position] != rune('O') { 1703 goto l181 1704 } 1705 position++ 1706 } 1707 l184: 1708 { 1709 position186, tokenIndex186 := position, tokenIndex 1710 if buffer[position] != rune('n') { 1711 goto l187 1712 } 1713 position++ 1714 goto l186 1715 l187: 1716 position, tokenIndex = position186, tokenIndex186 1717 if buffer[position] != rune('N') { 1718 goto l181 1719 } 1720 position++ 1721 } 1722 l186: 1723 { 1724 position188, tokenIndex188 := position, tokenIndex 1725 if buffer[position] != rune('g') { 1726 goto l189 1727 } 1728 position++ 1729 goto l188 1730 l189: 1731 position, tokenIndex = position188, tokenIndex188 1732 if buffer[position] != rune('G') { 1733 goto l181 1734 } 1735 position++ 1736 } 1737 l188: 1738 goto l149 1739 l181: 1740 position, tokenIndex = position149, tokenIndex149 1741 if buffer[position] != rune('.') { 1742 goto l190 1743 } 1744 position++ 1745 { 1746 position191, tokenIndex191 := position, tokenIndex 1747 if buffer[position] != rune('s') { 1748 goto l192 1749 } 1750 position++ 1751 goto l191 1752 l192: 1753 position, tokenIndex = position191, tokenIndex191 1754 if buffer[position] != rune('S') { 1755 goto l190 1756 } 1757 position++ 1758 } 1759 l191: 1760 { 1761 position193, tokenIndex193 := position, tokenIndex 1762 if buffer[position] != rune('e') { 1763 goto l194 1764 } 1765 position++ 1766 goto l193 1767 l194: 1768 position, tokenIndex = position193, tokenIndex193 1769 if buffer[position] != rune('E') { 1770 goto l190 1771 } 1772 position++ 1773 } 1774 l193: 1775 { 1776 position195, tokenIndex195 := position, tokenIndex 1777 if buffer[position] != rune('t') { 1778 goto l196 1779 } 1780 position++ 1781 goto l195 1782 l196: 1783 position, tokenIndex = position195, tokenIndex195 1784 if buffer[position] != rune('T') { 1785 goto l190 1786 } 1787 position++ 1788 } 1789 l195: 1790 goto l149 1791 l190: 1792 position, tokenIndex = position149, tokenIndex149 1793 if buffer[position] != rune('.') { 1794 goto l197 1795 } 1796 position++ 1797 { 1798 position198, tokenIndex198 := position, tokenIndex 1799 if buffer[position] != rune('b') { 1800 goto l199 1801 } 1802 position++ 1803 goto l198 1804 l199: 1805 position, tokenIndex = position198, tokenIndex198 1806 if buffer[position] != rune('B') { 1807 goto l197 1808 } 1809 position++ 1810 } 1811 l198: 1812 { 1813 position200, tokenIndex200 := position, tokenIndex 1814 if buffer[position] != rune('y') { 1815 goto l201 1816 } 1817 position++ 1818 goto l200 1819 l201: 1820 position, tokenIndex = position200, tokenIndex200 1821 if buffer[position] != rune('Y') { 1822 goto l197 1823 } 1824 position++ 1825 } 1826 l200: 1827 { 1828 position202, tokenIndex202 := position, tokenIndex 1829 if buffer[position] != rune('t') { 1830 goto l203 1831 } 1832 position++ 1833 goto l202 1834 l203: 1835 position, tokenIndex = position202, tokenIndex202 1836 if buffer[position] != rune('T') { 1837 goto l197 1838 } 1839 position++ 1840 } 1841 l202: 1842 { 1843 position204, tokenIndex204 := position, tokenIndex 1844 if buffer[position] != rune('e') { 1845 goto l205 1846 } 1847 position++ 1848 goto l204 1849 l205: 1850 position, tokenIndex = position204, tokenIndex204 1851 if buffer[position] != rune('E') { 1852 goto l197 1853 } 1854 position++ 1855 } 1856 l204: 1857 goto l149 1858 l197: 1859 position, tokenIndex = position149, tokenIndex149 1860 if buffer[position] != rune('.') { 1861 goto l206 1862 } 1863 position++ 1864 if buffer[position] != rune('8') { 1865 goto l206 1866 } 1867 position++ 1868 { 1869 position207, tokenIndex207 := position, tokenIndex 1870 if buffer[position] != rune('b') { 1871 goto l208 1872 } 1873 position++ 1874 goto l207 1875 l208: 1876 position, tokenIndex = position207, tokenIndex207 1877 if buffer[position] != rune('B') { 1878 goto l206 1879 } 1880 position++ 1881 } 1882 l207: 1883 { 1884 position209, tokenIndex209 := position, tokenIndex 1885 if buffer[position] != rune('y') { 1886 goto l210 1887 } 1888 position++ 1889 goto l209 1890 l210: 1891 position, tokenIndex = position209, tokenIndex209 1892 if buffer[position] != rune('Y') { 1893 goto l206 1894 } 1895 position++ 1896 } 1897 l209: 1898 { 1899 position211, tokenIndex211 := position, tokenIndex 1900 if buffer[position] != rune('t') { 1901 goto l212 1902 } 1903 position++ 1904 goto l211 1905 l212: 1906 position, tokenIndex = position211, tokenIndex211 1907 if buffer[position] != rune('T') { 1908 goto l206 1909 } 1910 position++ 1911 } 1912 l211: 1913 { 1914 position213, tokenIndex213 := position, tokenIndex 1915 if buffer[position] != rune('e') { 1916 goto l214 1917 } 1918 position++ 1919 goto l213 1920 l214: 1921 position, tokenIndex = position213, tokenIndex213 1922 if buffer[position] != rune('E') { 1923 goto l206 1924 } 1925 position++ 1926 } 1927 l213: 1928 goto l149 1929 l206: 1930 position, tokenIndex = position149, tokenIndex149 1931 if buffer[position] != rune('.') { 1932 goto l215 1933 } 1934 position++ 1935 if buffer[position] != rune('4') { 1936 goto l215 1937 } 1938 position++ 1939 { 1940 position216, tokenIndex216 := position, tokenIndex 1941 if buffer[position] != rune('b') { 1942 goto l217 1943 } 1944 position++ 1945 goto l216 1946 l217: 1947 position, tokenIndex = position216, tokenIndex216 1948 if buffer[position] != rune('B') { 1949 goto l215 1950 } 1951 position++ 1952 } 1953 l216: 1954 { 1955 position218, tokenIndex218 := position, tokenIndex 1956 if buffer[position] != rune('y') { 1957 goto l219 1958 } 1959 position++ 1960 goto l218 1961 l219: 1962 position, tokenIndex = position218, tokenIndex218 1963 if buffer[position] != rune('Y') { 1964 goto l215 1965 } 1966 position++ 1967 } 1968 l218: 1969 { 1970 position220, tokenIndex220 := position, tokenIndex 1971 if buffer[position] != rune('t') { 1972 goto l221 1973 } 1974 position++ 1975 goto l220 1976 l221: 1977 position, tokenIndex = position220, tokenIndex220 1978 if buffer[position] != rune('T') { 1979 goto l215 1980 } 1981 position++ 1982 } 1983 l220: 1984 { 1985 position222, tokenIndex222 := position, tokenIndex 1986 if buffer[position] != rune('e') { 1987 goto l223 1988 } 1989 position++ 1990 goto l222 1991 l223: 1992 position, tokenIndex = position222, tokenIndex222 1993 if buffer[position] != rune('E') { 1994 goto l215 1995 } 1996 position++ 1997 } 1998 l222: 1999 goto l149 2000 l215: 2001 position, tokenIndex = position149, tokenIndex149 2002 if buffer[position] != rune('.') { 2003 goto l224 2004 } 2005 position++ 2006 { 2007 position225, tokenIndex225 := position, tokenIndex 2008 if buffer[position] != rune('q') { 2009 goto l226 2010 } 2011 position++ 2012 goto l225 2013 l226: 2014 position, tokenIndex = position225, tokenIndex225 2015 if buffer[position] != rune('Q') { 2016 goto l224 2017 } 2018 position++ 2019 } 2020 l225: 2021 { 2022 position227, tokenIndex227 := position, tokenIndex 2023 if buffer[position] != rune('u') { 2024 goto l228 2025 } 2026 position++ 2027 goto l227 2028 l228: 2029 position, tokenIndex = position227, tokenIndex227 2030 if buffer[position] != rune('U') { 2031 goto l224 2032 } 2033 position++ 2034 } 2035 l227: 2036 { 2037 position229, tokenIndex229 := position, tokenIndex 2038 if buffer[position] != rune('a') { 2039 goto l230 2040 } 2041 position++ 2042 goto l229 2043 l230: 2044 position, tokenIndex = position229, tokenIndex229 2045 if buffer[position] != rune('A') { 2046 goto l224 2047 } 2048 position++ 2049 } 2050 l229: 2051 { 2052 position231, tokenIndex231 := position, tokenIndex 2053 if buffer[position] != rune('d') { 2054 goto l232 2055 } 2056 position++ 2057 goto l231 2058 l232: 2059 position, tokenIndex = position231, tokenIndex231 2060 if buffer[position] != rune('D') { 2061 goto l224 2062 } 2063 position++ 2064 } 2065 l231: 2066 goto l149 2067 l224: 2068 position, tokenIndex = position149, tokenIndex149 2069 if buffer[position] != rune('.') { 2070 goto l233 2071 } 2072 position++ 2073 { 2074 position234, tokenIndex234 := position, tokenIndex 2075 if buffer[position] != rune('t') { 2076 goto l235 2077 } 2078 position++ 2079 goto l234 2080 l235: 2081 position, tokenIndex = position234, tokenIndex234 2082 if buffer[position] != rune('T') { 2083 goto l233 2084 } 2085 position++ 2086 } 2087 l234: 2088 { 2089 position236, tokenIndex236 := position, tokenIndex 2090 if buffer[position] != rune('c') { 2091 goto l237 2092 } 2093 position++ 2094 goto l236 2095 l237: 2096 position, tokenIndex = position236, tokenIndex236 2097 if buffer[position] != rune('C') { 2098 goto l233 2099 } 2100 position++ 2101 } 2102 l236: 2103 goto l149 2104 l233: 2105 position, tokenIndex = position149, tokenIndex149 2106 if buffer[position] != rune('.') { 2107 goto l238 2108 } 2109 position++ 2110 { 2111 position239, tokenIndex239 := position, tokenIndex 2112 if buffer[position] != rune('l') { 2113 goto l240 2114 } 2115 position++ 2116 goto l239 2117 l240: 2118 position, tokenIndex = position239, tokenIndex239 2119 if buffer[position] != rune('L') { 2120 goto l238 2121 } 2122 position++ 2123 } 2124 l239: 2125 { 2126 position241, tokenIndex241 := position, tokenIndex 2127 if buffer[position] != rune('o') { 2128 goto l242 2129 } 2130 position++ 2131 goto l241 2132 l242: 2133 position, tokenIndex = position241, tokenIndex241 2134 if buffer[position] != rune('O') { 2135 goto l238 2136 } 2137 position++ 2138 } 2139 l241: 2140 { 2141 position243, tokenIndex243 := position, tokenIndex 2142 if buffer[position] != rune('c') { 2143 goto l244 2144 } 2145 position++ 2146 goto l243 2147 l244: 2148 position, tokenIndex = position243, tokenIndex243 2149 if buffer[position] != rune('C') { 2150 goto l238 2151 } 2152 position++ 2153 } 2154 l243: 2155 { 2156 position245, tokenIndex245 := position, tokenIndex 2157 if buffer[position] != rune('a') { 2158 goto l246 2159 } 2160 position++ 2161 goto l245 2162 l246: 2163 position, tokenIndex = position245, tokenIndex245 2164 if buffer[position] != rune('A') { 2165 goto l238 2166 } 2167 position++ 2168 } 2169 l245: 2170 { 2171 position247, tokenIndex247 := position, tokenIndex 2172 if buffer[position] != rune('l') { 2173 goto l248 2174 } 2175 position++ 2176 goto l247 2177 l248: 2178 position, tokenIndex = position247, tokenIndex247 2179 if buffer[position] != rune('L') { 2180 goto l238 2181 } 2182 position++ 2183 } 2184 l247: 2185 { 2186 position249, tokenIndex249 := position, tokenIndex 2187 if buffer[position] != rune('e') { 2188 goto l250 2189 } 2190 position++ 2191 goto l249 2192 l250: 2193 position, tokenIndex = position249, tokenIndex249 2194 if buffer[position] != rune('E') { 2195 goto l238 2196 } 2197 position++ 2198 } 2199 l249: 2200 { 2201 position251, tokenIndex251 := position, tokenIndex 2202 if buffer[position] != rune('n') { 2203 goto l252 2204 } 2205 position++ 2206 goto l251 2207 l252: 2208 position, tokenIndex = position251, tokenIndex251 2209 if buffer[position] != rune('N') { 2210 goto l238 2211 } 2212 position++ 2213 } 2214 l251: 2215 { 2216 position253, tokenIndex253 := position, tokenIndex 2217 if buffer[position] != rune('t') { 2218 goto l254 2219 } 2220 position++ 2221 goto l253 2222 l254: 2223 position, tokenIndex = position253, tokenIndex253 2224 if buffer[position] != rune('T') { 2225 goto l238 2226 } 2227 position++ 2228 } 2229 l253: 2230 { 2231 position255, tokenIndex255 := position, tokenIndex 2232 if buffer[position] != rune('r') { 2233 goto l256 2234 } 2235 position++ 2236 goto l255 2237 l256: 2238 position, tokenIndex = position255, tokenIndex255 2239 if buffer[position] != rune('R') { 2240 goto l238 2241 } 2242 position++ 2243 } 2244 l255: 2245 { 2246 position257, tokenIndex257 := position, tokenIndex 2247 if buffer[position] != rune('y') { 2248 goto l258 2249 } 2250 position++ 2251 goto l257 2252 l258: 2253 position, tokenIndex = position257, tokenIndex257 2254 if buffer[position] != rune('Y') { 2255 goto l238 2256 } 2257 position++ 2258 } 2259 l257: 2260 goto l149 2261 l238: 2262 position, tokenIndex = position149, tokenIndex149 2263 if buffer[position] != rune('.') { 2264 goto l259 2265 } 2266 position++ 2267 { 2268 position260, tokenIndex260 := position, tokenIndex 2269 if buffer[position] != rune('s') { 2270 goto l261 2271 } 2272 position++ 2273 goto l260 2274 l261: 2275 position, tokenIndex = position260, tokenIndex260 2276 if buffer[position] != rune('S') { 2277 goto l259 2278 } 2279 position++ 2280 } 2281 l260: 2282 { 2283 position262, tokenIndex262 := position, tokenIndex 2284 if buffer[position] != rune('i') { 2285 goto l263 2286 } 2287 position++ 2288 goto l262 2289 l263: 2290 position, tokenIndex = position262, tokenIndex262 2291 if buffer[position] != rune('I') { 2292 goto l259 2293 } 2294 position++ 2295 } 2296 l262: 2297 { 2298 position264, tokenIndex264 := position, tokenIndex 2299 if buffer[position] != rune('z') { 2300 goto l265 2301 } 2302 position++ 2303 goto l264 2304 l265: 2305 position, tokenIndex = position264, tokenIndex264 2306 if buffer[position] != rune('Z') { 2307 goto l259 2308 } 2309 position++ 2310 } 2311 l264: 2312 { 2313 position266, tokenIndex266 := position, tokenIndex 2314 if buffer[position] != rune('e') { 2315 goto l267 2316 } 2317 position++ 2318 goto l266 2319 l267: 2320 position, tokenIndex = position266, tokenIndex266 2321 if buffer[position] != rune('E') { 2322 goto l259 2323 } 2324 position++ 2325 } 2326 l266: 2327 goto l149 2328 l259: 2329 position, tokenIndex = position149, tokenIndex149 2330 if buffer[position] != rune('.') { 2331 goto l268 2332 } 2333 position++ 2334 { 2335 position269, tokenIndex269 := position, tokenIndex 2336 if buffer[position] != rune('t') { 2337 goto l270 2338 } 2339 position++ 2340 goto l269 2341 l270: 2342 position, tokenIndex = position269, tokenIndex269 2343 if buffer[position] != rune('T') { 2344 goto l268 2345 } 2346 position++ 2347 } 2348 l269: 2349 { 2350 position271, tokenIndex271 := position, tokenIndex 2351 if buffer[position] != rune('y') { 2352 goto l272 2353 } 2354 position++ 2355 goto l271 2356 l272: 2357 position, tokenIndex = position271, tokenIndex271 2358 if buffer[position] != rune('Y') { 2359 goto l268 2360 } 2361 position++ 2362 } 2363 l271: 2364 { 2365 position273, tokenIndex273 := position, tokenIndex 2366 if buffer[position] != rune('p') { 2367 goto l274 2368 } 2369 position++ 2370 goto l273 2371 l274: 2372 position, tokenIndex = position273, tokenIndex273 2373 if buffer[position] != rune('P') { 2374 goto l268 2375 } 2376 position++ 2377 } 2378 l273: 2379 { 2380 position275, tokenIndex275 := position, tokenIndex 2381 if buffer[position] != rune('e') { 2382 goto l276 2383 } 2384 position++ 2385 goto l275 2386 l276: 2387 position, tokenIndex = position275, tokenIndex275 2388 if buffer[position] != rune('E') { 2389 goto l268 2390 } 2391 position++ 2392 } 2393 l275: 2394 goto l149 2395 l268: 2396 position, tokenIndex = position149, tokenIndex149 2397 if buffer[position] != rune('.') { 2398 goto l277 2399 } 2400 position++ 2401 { 2402 position278, tokenIndex278 := position, tokenIndex 2403 if buffer[position] != rune('u') { 2404 goto l279 2405 } 2406 position++ 2407 goto l278 2408 l279: 2409 position, tokenIndex = position278, tokenIndex278 2410 if buffer[position] != rune('U') { 2411 goto l277 2412 } 2413 position++ 2414 } 2415 l278: 2416 { 2417 position280, tokenIndex280 := position, tokenIndex 2418 if buffer[position] != rune('l') { 2419 goto l281 2420 } 2421 position++ 2422 goto l280 2423 l281: 2424 position, tokenIndex = position280, tokenIndex280 2425 if buffer[position] != rune('L') { 2426 goto l277 2427 } 2428 position++ 2429 } 2430 l280: 2431 { 2432 position282, tokenIndex282 := position, tokenIndex 2433 if buffer[position] != rune('e') { 2434 goto l283 2435 } 2436 position++ 2437 goto l282 2438 l283: 2439 position, tokenIndex = position282, tokenIndex282 2440 if buffer[position] != rune('E') { 2441 goto l277 2442 } 2443 position++ 2444 } 2445 l282: 2446 { 2447 position284, tokenIndex284 := position, tokenIndex 2448 if buffer[position] != rune('b') { 2449 goto l285 2450 } 2451 position++ 2452 goto l284 2453 l285: 2454 position, tokenIndex = position284, tokenIndex284 2455 if buffer[position] != rune('B') { 2456 goto l277 2457 } 2458 position++ 2459 } 2460 l284: 2461 if buffer[position] != rune('1') { 2462 goto l277 2463 } 2464 position++ 2465 if buffer[position] != rune('2') { 2466 goto l277 2467 } 2468 position++ 2469 if buffer[position] != rune('8') { 2470 goto l277 2471 } 2472 position++ 2473 goto l149 2474 l277: 2475 position, tokenIndex = position149, tokenIndex149 2476 if buffer[position] != rune('.') { 2477 goto l147 2478 } 2479 position++ 2480 { 2481 position286, tokenIndex286 := position, tokenIndex 2482 if buffer[position] != rune('s') { 2483 goto l287 2484 } 2485 position++ 2486 goto l286 2487 l287: 2488 position, tokenIndex = position286, tokenIndex286 2489 if buffer[position] != rune('S') { 2490 goto l147 2491 } 2492 position++ 2493 } 2494 l286: 2495 { 2496 position288, tokenIndex288 := position, tokenIndex 2497 if buffer[position] != rune('l') { 2498 goto l289 2499 } 2500 position++ 2501 goto l288 2502 l289: 2503 position, tokenIndex = position288, tokenIndex288 2504 if buffer[position] != rune('L') { 2505 goto l147 2506 } 2507 position++ 2508 } 2509 l288: 2510 { 2511 position290, tokenIndex290 := position, tokenIndex 2512 if buffer[position] != rune('e') { 2513 goto l291 2514 } 2515 position++ 2516 goto l290 2517 l291: 2518 position, tokenIndex = position290, tokenIndex290 2519 if buffer[position] != rune('E') { 2520 goto l147 2521 } 2522 position++ 2523 } 2524 l290: 2525 { 2526 position292, tokenIndex292 := position, tokenIndex 2527 if buffer[position] != rune('b') { 2528 goto l293 2529 } 2530 position++ 2531 goto l292 2532 l293: 2533 position, tokenIndex = position292, tokenIndex292 2534 if buffer[position] != rune('B') { 2535 goto l147 2536 } 2537 position++ 2538 } 2539 l292: 2540 if buffer[position] != rune('1') { 2541 goto l147 2542 } 2543 position++ 2544 if buffer[position] != rune('2') { 2545 goto l147 2546 } 2547 position++ 2548 if buffer[position] != rune('8') { 2549 goto l147 2550 } 2551 position++ 2552 } 2553 l149: 2554 add(ruleLabelContainingDirectiveName, position148) 2555 } 2556 return true 2557 l147: 2558 position, tokenIndex = position147, tokenIndex147 2559 return false 2560 }, 2561 /* 14 SymbolArgs <- <(SymbolArg (WS? ',' WS? SymbolArg)*)> */ 2562 func() bool { 2563 position294, tokenIndex294 := position, tokenIndex 2564 { 2565 position295 := position 2566 if !_rules[ruleSymbolArg]() { 2567 goto l294 2568 } 2569 l296: 2570 { 2571 position297, tokenIndex297 := position, tokenIndex 2572 { 2573 position298, tokenIndex298 := position, tokenIndex 2574 if !_rules[ruleWS]() { 2575 goto l298 2576 } 2577 goto l299 2578 l298: 2579 position, tokenIndex = position298, tokenIndex298 2580 } 2581 l299: 2582 if buffer[position] != rune(',') { 2583 goto l297 2584 } 2585 position++ 2586 { 2587 position300, tokenIndex300 := position, tokenIndex 2588 if !_rules[ruleWS]() { 2589 goto l300 2590 } 2591 goto l301 2592 l300: 2593 position, tokenIndex = position300, tokenIndex300 2594 } 2595 l301: 2596 if !_rules[ruleSymbolArg]() { 2597 goto l297 2598 } 2599 goto l296 2600 l297: 2601 position, tokenIndex = position297, tokenIndex297 2602 } 2603 add(ruleSymbolArgs, position295) 2604 } 2605 return true 2606 l294: 2607 position, tokenIndex = position294, tokenIndex294 2608 return false 2609 }, 2610 /* 15 SymbolArg <- <SymbolExpr> */ 2611 func() bool { 2612 position302, tokenIndex302 := position, tokenIndex 2613 { 2614 position303 := position 2615 if !_rules[ruleSymbolExpr]() { 2616 goto l302 2617 } 2618 add(ruleSymbolArg, position303) 2619 } 2620 return true 2621 l302: 2622 position, tokenIndex = position302, tokenIndex302 2623 return false 2624 }, 2625 /* 16 SymbolExpr <- <(SymbolAtom (WS? SymbolOperator WS? SymbolExpr)?)> */ 2626 func() bool { 2627 position304, tokenIndex304 := position, tokenIndex 2628 { 2629 position305 := position 2630 if !_rules[ruleSymbolAtom]() { 2631 goto l304 2632 } 2633 { 2634 position306, tokenIndex306 := position, tokenIndex 2635 { 2636 position308, tokenIndex308 := position, tokenIndex 2637 if !_rules[ruleWS]() { 2638 goto l308 2639 } 2640 goto l309 2641 l308: 2642 position, tokenIndex = position308, tokenIndex308 2643 } 2644 l309: 2645 if !_rules[ruleSymbolOperator]() { 2646 goto l306 2647 } 2648 { 2649 position310, tokenIndex310 := position, tokenIndex 2650 if !_rules[ruleWS]() { 2651 goto l310 2652 } 2653 goto l311 2654 l310: 2655 position, tokenIndex = position310, tokenIndex310 2656 } 2657 l311: 2658 if !_rules[ruleSymbolExpr]() { 2659 goto l306 2660 } 2661 goto l307 2662 l306: 2663 position, tokenIndex = position306, tokenIndex306 2664 } 2665 l307: 2666 add(ruleSymbolExpr, position305) 2667 } 2668 return true 2669 l304: 2670 position, tokenIndex = position304, tokenIndex304 2671 return false 2672 }, 2673 /* 17 SymbolAtom <- <(LocalLabelRef / Offset / SymbolType / (LocalSymbol TCMarker?) / (SymbolName Offset) / (SymbolName TCMarker?) / Dot / (OpenParen WS? SymbolExpr WS? CloseParen))> */ 2674 func() bool { 2675 position312, tokenIndex312 := position, tokenIndex 2676 { 2677 position313 := position 2678 { 2679 position314, tokenIndex314 := position, tokenIndex 2680 if !_rules[ruleLocalLabelRef]() { 2681 goto l315 2682 } 2683 goto l314 2684 l315: 2685 position, tokenIndex = position314, tokenIndex314 2686 if !_rules[ruleOffset]() { 2687 goto l316 2688 } 2689 goto l314 2690 l316: 2691 position, tokenIndex = position314, tokenIndex314 2692 if !_rules[ruleSymbolType]() { 2693 goto l317 2694 } 2695 goto l314 2696 l317: 2697 position, tokenIndex = position314, tokenIndex314 2698 if !_rules[ruleLocalSymbol]() { 2699 goto l318 2700 } 2701 { 2702 position319, tokenIndex319 := position, tokenIndex 2703 if !_rules[ruleTCMarker]() { 2704 goto l319 2705 } 2706 goto l320 2707 l319: 2708 position, tokenIndex = position319, tokenIndex319 2709 } 2710 l320: 2711 goto l314 2712 l318: 2713 position, tokenIndex = position314, tokenIndex314 2714 if !_rules[ruleSymbolName]() { 2715 goto l321 2716 } 2717 if !_rules[ruleOffset]() { 2718 goto l321 2719 } 2720 goto l314 2721 l321: 2722 position, tokenIndex = position314, tokenIndex314 2723 if !_rules[ruleSymbolName]() { 2724 goto l322 2725 } 2726 { 2727 position323, tokenIndex323 := position, tokenIndex 2728 if !_rules[ruleTCMarker]() { 2729 goto l323 2730 } 2731 goto l324 2732 l323: 2733 position, tokenIndex = position323, tokenIndex323 2734 } 2735 l324: 2736 goto l314 2737 l322: 2738 position, tokenIndex = position314, tokenIndex314 2739 if !_rules[ruleDot]() { 2740 goto l325 2741 } 2742 goto l314 2743 l325: 2744 position, tokenIndex = position314, tokenIndex314 2745 if !_rules[ruleOpenParen]() { 2746 goto l312 2747 } 2748 { 2749 position326, tokenIndex326 := position, tokenIndex 2750 if !_rules[ruleWS]() { 2751 goto l326 2752 } 2753 goto l327 2754 l326: 2755 position, tokenIndex = position326, tokenIndex326 2756 } 2757 l327: 2758 if !_rules[ruleSymbolExpr]() { 2759 goto l312 2760 } 2761 { 2762 position328, tokenIndex328 := position, tokenIndex 2763 if !_rules[ruleWS]() { 2764 goto l328 2765 } 2766 goto l329 2767 l328: 2768 position, tokenIndex = position328, tokenIndex328 2769 } 2770 l329: 2771 if !_rules[ruleCloseParen]() { 2772 goto l312 2773 } 2774 } 2775 l314: 2776 add(ruleSymbolAtom, position313) 2777 } 2778 return true 2779 l312: 2780 position, tokenIndex = position312, tokenIndex312 2781 return false 2782 }, 2783 /* 18 SymbolOperator <- <('+' / '-' / '|' / ('<' '<') / ('>' '>'))> */ 2784 func() bool { 2785 position330, tokenIndex330 := position, tokenIndex 2786 { 2787 position331 := position 2788 { 2789 position332, tokenIndex332 := position, tokenIndex 2790 if buffer[position] != rune('+') { 2791 goto l333 2792 } 2793 position++ 2794 goto l332 2795 l333: 2796 position, tokenIndex = position332, tokenIndex332 2797 if buffer[position] != rune('-') { 2798 goto l334 2799 } 2800 position++ 2801 goto l332 2802 l334: 2803 position, tokenIndex = position332, tokenIndex332 2804 if buffer[position] != rune('|') { 2805 goto l335 2806 } 2807 position++ 2808 goto l332 2809 l335: 2810 position, tokenIndex = position332, tokenIndex332 2811 if buffer[position] != rune('<') { 2812 goto l336 2813 } 2814 position++ 2815 if buffer[position] != rune('<') { 2816 goto l336 2817 } 2818 position++ 2819 goto l332 2820 l336: 2821 position, tokenIndex = position332, tokenIndex332 2822 if buffer[position] != rune('>') { 2823 goto l330 2824 } 2825 position++ 2826 if buffer[position] != rune('>') { 2827 goto l330 2828 } 2829 position++ 2830 } 2831 l332: 2832 add(ruleSymbolOperator, position331) 2833 } 2834 return true 2835 l330: 2836 position, tokenIndex = position330, tokenIndex330 2837 return false 2838 }, 2839 /* 19 OpenParen <- <'('> */ 2840 func() bool { 2841 position337, tokenIndex337 := position, tokenIndex 2842 { 2843 position338 := position 2844 if buffer[position] != rune('(') { 2845 goto l337 2846 } 2847 position++ 2848 add(ruleOpenParen, position338) 2849 } 2850 return true 2851 l337: 2852 position, tokenIndex = position337, tokenIndex337 2853 return false 2854 }, 2855 /* 20 CloseParen <- <')'> */ 2856 func() bool { 2857 position339, tokenIndex339 := position, tokenIndex 2858 { 2859 position340 := position 2860 if buffer[position] != rune(')') { 2861 goto l339 2862 } 2863 position++ 2864 add(ruleCloseParen, position340) 2865 } 2866 return true 2867 l339: 2868 position, tokenIndex = position339, tokenIndex339 2869 return false 2870 }, 2871 /* 21 SymbolType <- <(('@' / '%') (('f' 'u' 'n' 'c' 't' 'i' 'o' 'n') / ('o' 'b' 'j' 'e' 'c' 't')))> */ 2872 func() bool { 2873 position341, tokenIndex341 := position, tokenIndex 2874 { 2875 position342 := position 2876 { 2877 position343, tokenIndex343 := position, tokenIndex 2878 if buffer[position] != rune('@') { 2879 goto l344 2880 } 2881 position++ 2882 goto l343 2883 l344: 2884 position, tokenIndex = position343, tokenIndex343 2885 if buffer[position] != rune('%') { 2886 goto l341 2887 } 2888 position++ 2889 } 2890 l343: 2891 { 2892 position345, tokenIndex345 := position, tokenIndex 2893 if buffer[position] != rune('f') { 2894 goto l346 2895 } 2896 position++ 2897 if buffer[position] != rune('u') { 2898 goto l346 2899 } 2900 position++ 2901 if buffer[position] != rune('n') { 2902 goto l346 2903 } 2904 position++ 2905 if buffer[position] != rune('c') { 2906 goto l346 2907 } 2908 position++ 2909 if buffer[position] != rune('t') { 2910 goto l346 2911 } 2912 position++ 2913 if buffer[position] != rune('i') { 2914 goto l346 2915 } 2916 position++ 2917 if buffer[position] != rune('o') { 2918 goto l346 2919 } 2920 position++ 2921 if buffer[position] != rune('n') { 2922 goto l346 2923 } 2924 position++ 2925 goto l345 2926 l346: 2927 position, tokenIndex = position345, tokenIndex345 2928 if buffer[position] != rune('o') { 2929 goto l341 2930 } 2931 position++ 2932 if buffer[position] != rune('b') { 2933 goto l341 2934 } 2935 position++ 2936 if buffer[position] != rune('j') { 2937 goto l341 2938 } 2939 position++ 2940 if buffer[position] != rune('e') { 2941 goto l341 2942 } 2943 position++ 2944 if buffer[position] != rune('c') { 2945 goto l341 2946 } 2947 position++ 2948 if buffer[position] != rune('t') { 2949 goto l341 2950 } 2951 position++ 2952 } 2953 l345: 2954 add(ruleSymbolType, position342) 2955 } 2956 return true 2957 l341: 2958 position, tokenIndex = position341, tokenIndex341 2959 return false 2960 }, 2961 /* 22 Dot <- <'.'> */ 2962 func() bool { 2963 position347, tokenIndex347 := position, tokenIndex 2964 { 2965 position348 := position 2966 if buffer[position] != rune('.') { 2967 goto l347 2968 } 2969 position++ 2970 add(ruleDot, position348) 2971 } 2972 return true 2973 l347: 2974 position, tokenIndex = position347, tokenIndex347 2975 return false 2976 }, 2977 /* 23 TCMarker <- <('[' 'T' 'C' ']')> */ 2978 func() bool { 2979 position349, tokenIndex349 := position, tokenIndex 2980 { 2981 position350 := position 2982 if buffer[position] != rune('[') { 2983 goto l349 2984 } 2985 position++ 2986 if buffer[position] != rune('T') { 2987 goto l349 2988 } 2989 position++ 2990 if buffer[position] != rune('C') { 2991 goto l349 2992 } 2993 position++ 2994 if buffer[position] != rune(']') { 2995 goto l349 2996 } 2997 position++ 2998 add(ruleTCMarker, position350) 2999 } 3000 return true 3001 l349: 3002 position, tokenIndex = position349, tokenIndex349 3003 return false 3004 }, 3005 /* 24 EscapedChar <- <('\\' .)> */ 3006 func() bool { 3007 position351, tokenIndex351 := position, tokenIndex 3008 { 3009 position352 := position 3010 if buffer[position] != rune('\\') { 3011 goto l351 3012 } 3013 position++ 3014 if !matchDot() { 3015 goto l351 3016 } 3017 add(ruleEscapedChar, position352) 3018 } 3019 return true 3020 l351: 3021 position, tokenIndex = position351, tokenIndex351 3022 return false 3023 }, 3024 /* 25 WS <- <(' ' / '\t')+> */ 3025 func() bool { 3026 position353, tokenIndex353 := position, tokenIndex 3027 { 3028 position354 := position 3029 { 3030 position357, tokenIndex357 := position, tokenIndex 3031 if buffer[position] != rune(' ') { 3032 goto l358 3033 } 3034 position++ 3035 goto l357 3036 l358: 3037 position, tokenIndex = position357, tokenIndex357 3038 if buffer[position] != rune('\t') { 3039 goto l353 3040 } 3041 position++ 3042 } 3043 l357: 3044 l355: 3045 { 3046 position356, tokenIndex356 := position, tokenIndex 3047 { 3048 position359, tokenIndex359 := position, tokenIndex 3049 if buffer[position] != rune(' ') { 3050 goto l360 3051 } 3052 position++ 3053 goto l359 3054 l360: 3055 position, tokenIndex = position359, tokenIndex359 3056 if buffer[position] != rune('\t') { 3057 goto l356 3058 } 3059 position++ 3060 } 3061 l359: 3062 goto l355 3063 l356: 3064 position, tokenIndex = position356, tokenIndex356 3065 } 3066 add(ruleWS, position354) 3067 } 3068 return true 3069 l353: 3070 position, tokenIndex = position353, tokenIndex353 3071 return false 3072 }, 3073 /* 26 Comment <- <((('/' '/') / '#') (!'\n' .)*)> */ 3074 func() bool { 3075 position361, tokenIndex361 := position, tokenIndex 3076 { 3077 position362 := position 3078 { 3079 position363, tokenIndex363 := position, tokenIndex 3080 if buffer[position] != rune('/') { 3081 goto l364 3082 } 3083 position++ 3084 if buffer[position] != rune('/') { 3085 goto l364 3086 } 3087 position++ 3088 goto l363 3089 l364: 3090 position, tokenIndex = position363, tokenIndex363 3091 if buffer[position] != rune('#') { 3092 goto l361 3093 } 3094 position++ 3095 } 3096 l363: 3097 l365: 3098 { 3099 position366, tokenIndex366 := position, tokenIndex 3100 { 3101 position367, tokenIndex367 := position, tokenIndex 3102 if buffer[position] != rune('\n') { 3103 goto l367 3104 } 3105 position++ 3106 goto l366 3107 l367: 3108 position, tokenIndex = position367, tokenIndex367 3109 } 3110 if !matchDot() { 3111 goto l366 3112 } 3113 goto l365 3114 l366: 3115 position, tokenIndex = position366, tokenIndex366 3116 } 3117 add(ruleComment, position362) 3118 } 3119 return true 3120 l361: 3121 position, tokenIndex = position361, tokenIndex361 3122 return false 3123 }, 3124 /* 27 Label <- <((LocalSymbol / LocalLabel / SymbolName) ':')> */ 3125 func() bool { 3126 position368, tokenIndex368 := position, tokenIndex 3127 { 3128 position369 := position 3129 { 3130 position370, tokenIndex370 := position, tokenIndex 3131 if !_rules[ruleLocalSymbol]() { 3132 goto l371 3133 } 3134 goto l370 3135 l371: 3136 position, tokenIndex = position370, tokenIndex370 3137 if !_rules[ruleLocalLabel]() { 3138 goto l372 3139 } 3140 goto l370 3141 l372: 3142 position, tokenIndex = position370, tokenIndex370 3143 if !_rules[ruleSymbolName]() { 3144 goto l368 3145 } 3146 } 3147 l370: 3148 if buffer[position] != rune(':') { 3149 goto l368 3150 } 3151 position++ 3152 add(ruleLabel, position369) 3153 } 3154 return true 3155 l368: 3156 position, tokenIndex = position368, tokenIndex368 3157 return false 3158 }, 3159 /* 28 SymbolName <- <(([a-z] / [A-Z] / '.' / '_') ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]) / '$' / '_')*)> */ 3160 func() bool { 3161 position373, tokenIndex373 := position, tokenIndex 3162 { 3163 position374 := position 3164 { 3165 position375, tokenIndex375 := position, tokenIndex 3166 if c := buffer[position]; c < rune('a') || c > rune('z') { 3167 goto l376 3168 } 3169 position++ 3170 goto l375 3171 l376: 3172 position, tokenIndex = position375, tokenIndex375 3173 if c := buffer[position]; c < rune('A') || c > rune('Z') { 3174 goto l377 3175 } 3176 position++ 3177 goto l375 3178 l377: 3179 position, tokenIndex = position375, tokenIndex375 3180 if buffer[position] != rune('.') { 3181 goto l378 3182 } 3183 position++ 3184 goto l375 3185 l378: 3186 position, tokenIndex = position375, tokenIndex375 3187 if buffer[position] != rune('_') { 3188 goto l373 3189 } 3190 position++ 3191 } 3192 l375: 3193 l379: 3194 { 3195 position380, tokenIndex380 := position, tokenIndex 3196 { 3197 position381, tokenIndex381 := position, tokenIndex 3198 if c := buffer[position]; c < rune('a') || c > rune('z') { 3199 goto l382 3200 } 3201 position++ 3202 goto l381 3203 l382: 3204 position, tokenIndex = position381, tokenIndex381 3205 if c := buffer[position]; c < rune('A') || c > rune('Z') { 3206 goto l383 3207 } 3208 position++ 3209 goto l381 3210 l383: 3211 position, tokenIndex = position381, tokenIndex381 3212 if buffer[position] != rune('.') { 3213 goto l384 3214 } 3215 position++ 3216 goto l381 3217 l384: 3218 position, tokenIndex = position381, tokenIndex381 3219 { 3220 position386, tokenIndex386 := position, tokenIndex 3221 if c := buffer[position]; c < rune('0') || c > rune('9') { 3222 goto l387 3223 } 3224 position++ 3225 goto l386 3226 l387: 3227 position, tokenIndex = position386, tokenIndex386 3228 if c := buffer[position]; c < rune('0') || c > rune('9') { 3229 goto l385 3230 } 3231 position++ 3232 } 3233 l386: 3234 goto l381 3235 l385: 3236 position, tokenIndex = position381, tokenIndex381 3237 if buffer[position] != rune('$') { 3238 goto l388 3239 } 3240 position++ 3241 goto l381 3242 l388: 3243 position, tokenIndex = position381, tokenIndex381 3244 if buffer[position] != rune('_') { 3245 goto l380 3246 } 3247 position++ 3248 } 3249 l381: 3250 goto l379 3251 l380: 3252 position, tokenIndex = position380, tokenIndex380 3253 } 3254 add(ruleSymbolName, position374) 3255 } 3256 return true 3257 l373: 3258 position, tokenIndex = position373, tokenIndex373 3259 return false 3260 }, 3261 /* 29 LocalSymbol <- <('.' 'L' ([a-z] / [A-Z] / ([a-z] / [A-Z]) / '.' / ([0-9] / [0-9]) / '$' / '_')+)> */ 3262 func() bool { 3263 position389, tokenIndex389 := position, tokenIndex 3264 { 3265 position390 := position 3266 if buffer[position] != rune('.') { 3267 goto l389 3268 } 3269 position++ 3270 if buffer[position] != rune('L') { 3271 goto l389 3272 } 3273 position++ 3274 { 3275 position393, tokenIndex393 := position, tokenIndex 3276 if c := buffer[position]; c < rune('a') || c > rune('z') { 3277 goto l394 3278 } 3279 position++ 3280 goto l393 3281 l394: 3282 position, tokenIndex = position393, tokenIndex393 3283 if c := buffer[position]; c < rune('A') || c > rune('Z') { 3284 goto l395 3285 } 3286 position++ 3287 goto l393 3288 l395: 3289 position, tokenIndex = position393, tokenIndex393 3290 { 3291 position397, tokenIndex397 := position, tokenIndex 3292 if c := buffer[position]; c < rune('a') || c > rune('z') { 3293 goto l398 3294 } 3295 position++ 3296 goto l397 3297 l398: 3298 position, tokenIndex = position397, tokenIndex397 3299 if c := buffer[position]; c < rune('A') || c > rune('Z') { 3300 goto l396 3301 } 3302 position++ 3303 } 3304 l397: 3305 goto l393 3306 l396: 3307 position, tokenIndex = position393, tokenIndex393 3308 if buffer[position] != rune('.') { 3309 goto l399 3310 } 3311 position++ 3312 goto l393 3313 l399: 3314 position, tokenIndex = position393, tokenIndex393 3315 { 3316 position401, tokenIndex401 := position, tokenIndex 3317 if c := buffer[position]; c < rune('0') || c > rune('9') { 3318 goto l402 3319 } 3320 position++ 3321 goto l401 3322 l402: 3323 position, tokenIndex = position401, tokenIndex401 3324 if c := buffer[position]; c < rune('0') || c > rune('9') { 3325 goto l400 3326 } 3327 position++ 3328 } 3329 l401: 3330 goto l393 3331 l400: 3332 position, tokenIndex = position393, tokenIndex393 3333 if buffer[position] != rune('$') { 3334 goto l403 3335 } 3336 position++ 3337 goto l393 3338 l403: 3339 position, tokenIndex = position393, tokenIndex393 3340 if buffer[position] != rune('_') { 3341 goto l389 3342 } 3343 position++ 3344 } 3345 l393: 3346 l391: 3347 { 3348 position392, tokenIndex392 := position, tokenIndex 3349 { 3350 position404, tokenIndex404 := position, tokenIndex 3351 if c := buffer[position]; c < rune('a') || c > rune('z') { 3352 goto l405 3353 } 3354 position++ 3355 goto l404 3356 l405: 3357 position, tokenIndex = position404, tokenIndex404 3358 if c := buffer[position]; c < rune('A') || c > rune('Z') { 3359 goto l406 3360 } 3361 position++ 3362 goto l404 3363 l406: 3364 position, tokenIndex = position404, tokenIndex404 3365 { 3366 position408, tokenIndex408 := position, tokenIndex 3367 if c := buffer[position]; c < rune('a') || c > rune('z') { 3368 goto l409 3369 } 3370 position++ 3371 goto l408 3372 l409: 3373 position, tokenIndex = position408, tokenIndex408 3374 if c := buffer[position]; c < rune('A') || c > rune('Z') { 3375 goto l407 3376 } 3377 position++ 3378 } 3379 l408: 3380 goto l404 3381 l407: 3382 position, tokenIndex = position404, tokenIndex404 3383 if buffer[position] != rune('.') { 3384 goto l410 3385 } 3386 position++ 3387 goto l404 3388 l410: 3389 position, tokenIndex = position404, tokenIndex404 3390 { 3391 position412, tokenIndex412 := position, tokenIndex 3392 if c := buffer[position]; c < rune('0') || c > rune('9') { 3393 goto l413 3394 } 3395 position++ 3396 goto l412 3397 l413: 3398 position, tokenIndex = position412, tokenIndex412 3399 if c := buffer[position]; c < rune('0') || c > rune('9') { 3400 goto l411 3401 } 3402 position++ 3403 } 3404 l412: 3405 goto l404 3406 l411: 3407 position, tokenIndex = position404, tokenIndex404 3408 if buffer[position] != rune('$') { 3409 goto l414 3410 } 3411 position++ 3412 goto l404 3413 l414: 3414 position, tokenIndex = position404, tokenIndex404 3415 if buffer[position] != rune('_') { 3416 goto l392 3417 } 3418 position++ 3419 } 3420 l404: 3421 goto l391 3422 l392: 3423 position, tokenIndex = position392, tokenIndex392 3424 } 3425 add(ruleLocalSymbol, position390) 3426 } 3427 return true 3428 l389: 3429 position, tokenIndex = position389, tokenIndex389 3430 return false 3431 }, 3432 /* 30 LocalLabel <- <([0-9] ([0-9] / '$')*)> */ 3433 func() bool { 3434 position415, tokenIndex415 := position, tokenIndex 3435 { 3436 position416 := position 3437 if c := buffer[position]; c < rune('0') || c > rune('9') { 3438 goto l415 3439 } 3440 position++ 3441 l417: 3442 { 3443 position418, tokenIndex418 := position, tokenIndex 3444 { 3445 position419, tokenIndex419 := position, tokenIndex 3446 if c := buffer[position]; c < rune('0') || c > rune('9') { 3447 goto l420 3448 } 3449 position++ 3450 goto l419 3451 l420: 3452 position, tokenIndex = position419, tokenIndex419 3453 if buffer[position] != rune('$') { 3454 goto l418 3455 } 3456 position++ 3457 } 3458 l419: 3459 goto l417 3460 l418: 3461 position, tokenIndex = position418, tokenIndex418 3462 } 3463 add(ruleLocalLabel, position416) 3464 } 3465 return true 3466 l415: 3467 position, tokenIndex = position415, tokenIndex415 3468 return false 3469 }, 3470 /* 31 LocalLabelRef <- <([0-9] ([0-9] / '$')* ('b' / 'f'))> */ 3471 func() bool { 3472 position421, tokenIndex421 := position, tokenIndex 3473 { 3474 position422 := position 3475 if c := buffer[position]; c < rune('0') || c > rune('9') { 3476 goto l421 3477 } 3478 position++ 3479 l423: 3480 { 3481 position424, tokenIndex424 := position, tokenIndex 3482 { 3483 position425, tokenIndex425 := position, tokenIndex 3484 if c := buffer[position]; c < rune('0') || c > rune('9') { 3485 goto l426 3486 } 3487 position++ 3488 goto l425 3489 l426: 3490 position, tokenIndex = position425, tokenIndex425 3491 if buffer[position] != rune('$') { 3492 goto l424 3493 } 3494 position++ 3495 } 3496 l425: 3497 goto l423 3498 l424: 3499 position, tokenIndex = position424, tokenIndex424 3500 } 3501 { 3502 position427, tokenIndex427 := position, tokenIndex 3503 if buffer[position] != rune('b') { 3504 goto l428 3505 } 3506 position++ 3507 goto l427 3508 l428: 3509 position, tokenIndex = position427, tokenIndex427 3510 if buffer[position] != rune('f') { 3511 goto l421 3512 } 3513 position++ 3514 } 3515 l427: 3516 add(ruleLocalLabelRef, position422) 3517 } 3518 return true 3519 l421: 3520 position, tokenIndex = position421, tokenIndex421 3521 return false 3522 }, 3523 /* 32 InstructionPrefix <- <(('n' / 'N') ('o' / 'O') ('t' / 'T') ('r' / 'R') ('a' / 'A') ('c' / 'C') ('k' / 'K'))> */ 3524 func() bool { 3525 position429, tokenIndex429 := position, tokenIndex 3526 { 3527 position430 := position 3528 { 3529 position431, tokenIndex431 := position, tokenIndex 3530 if buffer[position] != rune('n') { 3531 goto l432 3532 } 3533 position++ 3534 goto l431 3535 l432: 3536 position, tokenIndex = position431, tokenIndex431 3537 if buffer[position] != rune('N') { 3538 goto l429 3539 } 3540 position++ 3541 } 3542 l431: 3543 { 3544 position433, tokenIndex433 := position, tokenIndex 3545 if buffer[position] != rune('o') { 3546 goto l434 3547 } 3548 position++ 3549 goto l433 3550 l434: 3551 position, tokenIndex = position433, tokenIndex433 3552 if buffer[position] != rune('O') { 3553 goto l429 3554 } 3555 position++ 3556 } 3557 l433: 3558 { 3559 position435, tokenIndex435 := position, tokenIndex 3560 if buffer[position] != rune('t') { 3561 goto l436 3562 } 3563 position++ 3564 goto l435 3565 l436: 3566 position, tokenIndex = position435, tokenIndex435 3567 if buffer[position] != rune('T') { 3568 goto l429 3569 } 3570 position++ 3571 } 3572 l435: 3573 { 3574 position437, tokenIndex437 := position, tokenIndex 3575 if buffer[position] != rune('r') { 3576 goto l438 3577 } 3578 position++ 3579 goto l437 3580 l438: 3581 position, tokenIndex = position437, tokenIndex437 3582 if buffer[position] != rune('R') { 3583 goto l429 3584 } 3585 position++ 3586 } 3587 l437: 3588 { 3589 position439, tokenIndex439 := position, tokenIndex 3590 if buffer[position] != rune('a') { 3591 goto l440 3592 } 3593 position++ 3594 goto l439 3595 l440: 3596 position, tokenIndex = position439, tokenIndex439 3597 if buffer[position] != rune('A') { 3598 goto l429 3599 } 3600 position++ 3601 } 3602 l439: 3603 { 3604 position441, tokenIndex441 := position, tokenIndex 3605 if buffer[position] != rune('c') { 3606 goto l442 3607 } 3608 position++ 3609 goto l441 3610 l442: 3611 position, tokenIndex = position441, tokenIndex441 3612 if buffer[position] != rune('C') { 3613 goto l429 3614 } 3615 position++ 3616 } 3617 l441: 3618 { 3619 position443, tokenIndex443 := position, tokenIndex 3620 if buffer[position] != rune('k') { 3621 goto l444 3622 } 3623 position++ 3624 goto l443 3625 l444: 3626 position, tokenIndex = position443, tokenIndex443 3627 if buffer[position] != rune('K') { 3628 goto l429 3629 } 3630 position++ 3631 } 3632 l443: 3633 add(ruleInstructionPrefix, position430) 3634 } 3635 return true 3636 l429: 3637 position, tokenIndex = position429, tokenIndex429 3638 return false 3639 }, 3640 /* 33 Instruction <- <((InstructionPrefix WS)? InstructionName (WS InstructionArg (WS? ',' WS? InstructionArg)*)?)> */ 3641 func() bool { 3642 position445, tokenIndex445 := position, tokenIndex 3643 { 3644 position446 := position 3645 { 3646 position447, tokenIndex447 := position, tokenIndex 3647 if !_rules[ruleInstructionPrefix]() { 3648 goto l447 3649 } 3650 if !_rules[ruleWS]() { 3651 goto l447 3652 } 3653 goto l448 3654 l447: 3655 position, tokenIndex = position447, tokenIndex447 3656 } 3657 l448: 3658 if !_rules[ruleInstructionName]() { 3659 goto l445 3660 } 3661 { 3662 position449, tokenIndex449 := position, tokenIndex 3663 if !_rules[ruleWS]() { 3664 goto l449 3665 } 3666 if !_rules[ruleInstructionArg]() { 3667 goto l449 3668 } 3669 l451: 3670 { 3671 position452, tokenIndex452 := position, tokenIndex 3672 { 3673 position453, tokenIndex453 := position, tokenIndex 3674 if !_rules[ruleWS]() { 3675 goto l453 3676 } 3677 goto l454 3678 l453: 3679 position, tokenIndex = position453, tokenIndex453 3680 } 3681 l454: 3682 if buffer[position] != rune(',') { 3683 goto l452 3684 } 3685 position++ 3686 { 3687 position455, tokenIndex455 := position, tokenIndex 3688 if !_rules[ruleWS]() { 3689 goto l455 3690 } 3691 goto l456 3692 l455: 3693 position, tokenIndex = position455, tokenIndex455 3694 } 3695 l456: 3696 if !_rules[ruleInstructionArg]() { 3697 goto l452 3698 } 3699 goto l451 3700 l452: 3701 position, tokenIndex = position452, tokenIndex452 3702 } 3703 goto l450 3704 l449: 3705 position, tokenIndex = position449, tokenIndex449 3706 } 3707 l450: 3708 add(ruleInstruction, position446) 3709 } 3710 return true 3711 l445: 3712 position, tokenIndex = position445, tokenIndex445 3713 return false 3714 }, 3715 /* 34 InstructionName <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]))* ('.' / '+' / '-')?)> */ 3716 func() bool { 3717 position457, tokenIndex457 := position, tokenIndex 3718 { 3719 position458 := position 3720 { 3721 position459, tokenIndex459 := position, tokenIndex 3722 if c := buffer[position]; c < rune('a') || c > rune('z') { 3723 goto l460 3724 } 3725 position++ 3726 goto l459 3727 l460: 3728 position, tokenIndex = position459, tokenIndex459 3729 if c := buffer[position]; c < rune('A') || c > rune('Z') { 3730 goto l457 3731 } 3732 position++ 3733 } 3734 l459: 3735 l461: 3736 { 3737 position462, tokenIndex462 := position, tokenIndex 3738 { 3739 position463, tokenIndex463 := position, tokenIndex 3740 if c := buffer[position]; c < rune('a') || c > rune('z') { 3741 goto l464 3742 } 3743 position++ 3744 goto l463 3745 l464: 3746 position, tokenIndex = position463, tokenIndex463 3747 if c := buffer[position]; c < rune('A') || c > rune('Z') { 3748 goto l465 3749 } 3750 position++ 3751 goto l463 3752 l465: 3753 position, tokenIndex = position463, tokenIndex463 3754 if buffer[position] != rune('.') { 3755 goto l466 3756 } 3757 position++ 3758 goto l463 3759 l466: 3760 position, tokenIndex = position463, tokenIndex463 3761 { 3762 position467, tokenIndex467 := position, tokenIndex 3763 if c := buffer[position]; c < rune('0') || c > rune('9') { 3764 goto l468 3765 } 3766 position++ 3767 goto l467 3768 l468: 3769 position, tokenIndex = position467, tokenIndex467 3770 if c := buffer[position]; c < rune('0') || c > rune('9') { 3771 goto l462 3772 } 3773 position++ 3774 } 3775 l467: 3776 } 3777 l463: 3778 goto l461 3779 l462: 3780 position, tokenIndex = position462, tokenIndex462 3781 } 3782 { 3783 position469, tokenIndex469 := position, tokenIndex 3784 { 3785 position471, tokenIndex471 := position, tokenIndex 3786 if buffer[position] != rune('.') { 3787 goto l472 3788 } 3789 position++ 3790 goto l471 3791 l472: 3792 position, tokenIndex = position471, tokenIndex471 3793 if buffer[position] != rune('+') { 3794 goto l473 3795 } 3796 position++ 3797 goto l471 3798 l473: 3799 position, tokenIndex = position471, tokenIndex471 3800 if buffer[position] != rune('-') { 3801 goto l469 3802 } 3803 position++ 3804 } 3805 l471: 3806 goto l470 3807 l469: 3808 position, tokenIndex = position469, tokenIndex469 3809 } 3810 l470: 3811 add(ruleInstructionName, position458) 3812 } 3813 return true 3814 l457: 3815 position, tokenIndex = position457, tokenIndex457 3816 return false 3817 }, 3818 /* 35 InstructionArg <- <(IndirectionIndicator? (ARMConstantTweak / RegisterOrConstant / LocalLabelRef / TOCRefHigh / TOCRefLow / GOTLocation / GOTAddress / GOTSymbolOffset / MemoryRef) AVX512Token*)> */ 3819 func() bool { 3820 position474, tokenIndex474 := position, tokenIndex 3821 { 3822 position475 := position 3823 { 3824 position476, tokenIndex476 := position, tokenIndex 3825 if !_rules[ruleIndirectionIndicator]() { 3826 goto l476 3827 } 3828 goto l477 3829 l476: 3830 position, tokenIndex = position476, tokenIndex476 3831 } 3832 l477: 3833 { 3834 position478, tokenIndex478 := position, tokenIndex 3835 if !_rules[ruleARMConstantTweak]() { 3836 goto l479 3837 } 3838 goto l478 3839 l479: 3840 position, tokenIndex = position478, tokenIndex478 3841 if !_rules[ruleRegisterOrConstant]() { 3842 goto l480 3843 } 3844 goto l478 3845 l480: 3846 position, tokenIndex = position478, tokenIndex478 3847 if !_rules[ruleLocalLabelRef]() { 3848 goto l481 3849 } 3850 goto l478 3851 l481: 3852 position, tokenIndex = position478, tokenIndex478 3853 if !_rules[ruleTOCRefHigh]() { 3854 goto l482 3855 } 3856 goto l478 3857 l482: 3858 position, tokenIndex = position478, tokenIndex478 3859 if !_rules[ruleTOCRefLow]() { 3860 goto l483 3861 } 3862 goto l478 3863 l483: 3864 position, tokenIndex = position478, tokenIndex478 3865 if !_rules[ruleGOTLocation]() { 3866 goto l484 3867 } 3868 goto l478 3869 l484: 3870 position, tokenIndex = position478, tokenIndex478 3871 if !_rules[ruleGOTAddress]() { 3872 goto l485 3873 } 3874 goto l478 3875 l485: 3876 position, tokenIndex = position478, tokenIndex478 3877 if !_rules[ruleGOTSymbolOffset]() { 3878 goto l486 3879 } 3880 goto l478 3881 l486: 3882 position, tokenIndex = position478, tokenIndex478 3883 if !_rules[ruleMemoryRef]() { 3884 goto l474 3885 } 3886 } 3887 l478: 3888 l487: 3889 { 3890 position488, tokenIndex488 := position, tokenIndex 3891 if !_rules[ruleAVX512Token]() { 3892 goto l488 3893 } 3894 goto l487 3895 l488: 3896 position, tokenIndex = position488, tokenIndex488 3897 } 3898 add(ruleInstructionArg, position475) 3899 } 3900 return true 3901 l474: 3902 position, tokenIndex = position474, tokenIndex474 3903 return false 3904 }, 3905 /* 36 GOTLocation <- <('$' '_' 'G' 'L' 'O' 'B' 'A' 'L' '_' 'O' 'F' 'F' 'S' 'E' 'T' '_' 'T' 'A' 'B' 'L' 'E' '_' '-' LocalSymbol)> */ 3906 func() bool { 3907 position489, tokenIndex489 := position, tokenIndex 3908 { 3909 position490 := position 3910 if buffer[position] != rune('$') { 3911 goto l489 3912 } 3913 position++ 3914 if buffer[position] != rune('_') { 3915 goto l489 3916 } 3917 position++ 3918 if buffer[position] != rune('G') { 3919 goto l489 3920 } 3921 position++ 3922 if buffer[position] != rune('L') { 3923 goto l489 3924 } 3925 position++ 3926 if buffer[position] != rune('O') { 3927 goto l489 3928 } 3929 position++ 3930 if buffer[position] != rune('B') { 3931 goto l489 3932 } 3933 position++ 3934 if buffer[position] != rune('A') { 3935 goto l489 3936 } 3937 position++ 3938 if buffer[position] != rune('L') { 3939 goto l489 3940 } 3941 position++ 3942 if buffer[position] != rune('_') { 3943 goto l489 3944 } 3945 position++ 3946 if buffer[position] != rune('O') { 3947 goto l489 3948 } 3949 position++ 3950 if buffer[position] != rune('F') { 3951 goto l489 3952 } 3953 position++ 3954 if buffer[position] != rune('F') { 3955 goto l489 3956 } 3957 position++ 3958 if buffer[position] != rune('S') { 3959 goto l489 3960 } 3961 position++ 3962 if buffer[position] != rune('E') { 3963 goto l489 3964 } 3965 position++ 3966 if buffer[position] != rune('T') { 3967 goto l489 3968 } 3969 position++ 3970 if buffer[position] != rune('_') { 3971 goto l489 3972 } 3973 position++ 3974 if buffer[position] != rune('T') { 3975 goto l489 3976 } 3977 position++ 3978 if buffer[position] != rune('A') { 3979 goto l489 3980 } 3981 position++ 3982 if buffer[position] != rune('B') { 3983 goto l489 3984 } 3985 position++ 3986 if buffer[position] != rune('L') { 3987 goto l489 3988 } 3989 position++ 3990 if buffer[position] != rune('E') { 3991 goto l489 3992 } 3993 position++ 3994 if buffer[position] != rune('_') { 3995 goto l489 3996 } 3997 position++ 3998 if buffer[position] != rune('-') { 3999 goto l489 4000 } 4001 position++ 4002 if !_rules[ruleLocalSymbol]() { 4003 goto l489 4004 } 4005 add(ruleGOTLocation, position490) 4006 } 4007 return true 4008 l489: 4009 position, tokenIndex = position489, tokenIndex489 4010 return false 4011 }, 4012 /* 37 GOTAddress <- <('_' 'G' 'L' 'O' 'B' 'A' 'L' '_' 'O' 'F' 'F' 'S' 'E' 'T' '_' 'T' 'A' 'B' 'L' 'E' '_' '(' '%' 'r' 'i' 'p' ')')> */ 4013 func() bool { 4014 position491, tokenIndex491 := position, tokenIndex 4015 { 4016 position492 := position 4017 if buffer[position] != rune('_') { 4018 goto l491 4019 } 4020 position++ 4021 if buffer[position] != rune('G') { 4022 goto l491 4023 } 4024 position++ 4025 if buffer[position] != rune('L') { 4026 goto l491 4027 } 4028 position++ 4029 if buffer[position] != rune('O') { 4030 goto l491 4031 } 4032 position++ 4033 if buffer[position] != rune('B') { 4034 goto l491 4035 } 4036 position++ 4037 if buffer[position] != rune('A') { 4038 goto l491 4039 } 4040 position++ 4041 if buffer[position] != rune('L') { 4042 goto l491 4043 } 4044 position++ 4045 if buffer[position] != rune('_') { 4046 goto l491 4047 } 4048 position++ 4049 if buffer[position] != rune('O') { 4050 goto l491 4051 } 4052 position++ 4053 if buffer[position] != rune('F') { 4054 goto l491 4055 } 4056 position++ 4057 if buffer[position] != rune('F') { 4058 goto l491 4059 } 4060 position++ 4061 if buffer[position] != rune('S') { 4062 goto l491 4063 } 4064 position++ 4065 if buffer[position] != rune('E') { 4066 goto l491 4067 } 4068 position++ 4069 if buffer[position] != rune('T') { 4070 goto l491 4071 } 4072 position++ 4073 if buffer[position] != rune('_') { 4074 goto l491 4075 } 4076 position++ 4077 if buffer[position] != rune('T') { 4078 goto l491 4079 } 4080 position++ 4081 if buffer[position] != rune('A') { 4082 goto l491 4083 } 4084 position++ 4085 if buffer[position] != rune('B') { 4086 goto l491 4087 } 4088 position++ 4089 if buffer[position] != rune('L') { 4090 goto l491 4091 } 4092 position++ 4093 if buffer[position] != rune('E') { 4094 goto l491 4095 } 4096 position++ 4097 if buffer[position] != rune('_') { 4098 goto l491 4099 } 4100 position++ 4101 if buffer[position] != rune('(') { 4102 goto l491 4103 } 4104 position++ 4105 if buffer[position] != rune('%') { 4106 goto l491 4107 } 4108 position++ 4109 if buffer[position] != rune('r') { 4110 goto l491 4111 } 4112 position++ 4113 if buffer[position] != rune('i') { 4114 goto l491 4115 } 4116 position++ 4117 if buffer[position] != rune('p') { 4118 goto l491 4119 } 4120 position++ 4121 if buffer[position] != rune(')') { 4122 goto l491 4123 } 4124 position++ 4125 add(ruleGOTAddress, position492) 4126 } 4127 return true 4128 l491: 4129 position, tokenIndex = position491, tokenIndex491 4130 return false 4131 }, 4132 /* 38 GOTSymbolOffset <- <(('$' SymbolName ('@' 'G' 'O' 'T') ('O' 'F' 'F')?) / (':' ('g' / 'G') ('o' / 'O') ('t' / 'T') ':' SymbolName))> */ 4133 func() bool { 4134 position493, tokenIndex493 := position, tokenIndex 4135 { 4136 position494 := position 4137 { 4138 position495, tokenIndex495 := position, tokenIndex 4139 if buffer[position] != rune('$') { 4140 goto l496 4141 } 4142 position++ 4143 if !_rules[ruleSymbolName]() { 4144 goto l496 4145 } 4146 if buffer[position] != rune('@') { 4147 goto l496 4148 } 4149 position++ 4150 if buffer[position] != rune('G') { 4151 goto l496 4152 } 4153 position++ 4154 if buffer[position] != rune('O') { 4155 goto l496 4156 } 4157 position++ 4158 if buffer[position] != rune('T') { 4159 goto l496 4160 } 4161 position++ 4162 { 4163 position497, tokenIndex497 := position, tokenIndex 4164 if buffer[position] != rune('O') { 4165 goto l497 4166 } 4167 position++ 4168 if buffer[position] != rune('F') { 4169 goto l497 4170 } 4171 position++ 4172 if buffer[position] != rune('F') { 4173 goto l497 4174 } 4175 position++ 4176 goto l498 4177 l497: 4178 position, tokenIndex = position497, tokenIndex497 4179 } 4180 l498: 4181 goto l495 4182 l496: 4183 position, tokenIndex = position495, tokenIndex495 4184 if buffer[position] != rune(':') { 4185 goto l493 4186 } 4187 position++ 4188 { 4189 position499, tokenIndex499 := position, tokenIndex 4190 if buffer[position] != rune('g') { 4191 goto l500 4192 } 4193 position++ 4194 goto l499 4195 l500: 4196 position, tokenIndex = position499, tokenIndex499 4197 if buffer[position] != rune('G') { 4198 goto l493 4199 } 4200 position++ 4201 } 4202 l499: 4203 { 4204 position501, tokenIndex501 := position, tokenIndex 4205 if buffer[position] != rune('o') { 4206 goto l502 4207 } 4208 position++ 4209 goto l501 4210 l502: 4211 position, tokenIndex = position501, tokenIndex501 4212 if buffer[position] != rune('O') { 4213 goto l493 4214 } 4215 position++ 4216 } 4217 l501: 4218 { 4219 position503, tokenIndex503 := position, tokenIndex 4220 if buffer[position] != rune('t') { 4221 goto l504 4222 } 4223 position++ 4224 goto l503 4225 l504: 4226 position, tokenIndex = position503, tokenIndex503 4227 if buffer[position] != rune('T') { 4228 goto l493 4229 } 4230 position++ 4231 } 4232 l503: 4233 if buffer[position] != rune(':') { 4234 goto l493 4235 } 4236 position++ 4237 if !_rules[ruleSymbolName]() { 4238 goto l493 4239 } 4240 } 4241 l495: 4242 add(ruleGOTSymbolOffset, position494) 4243 } 4244 return true 4245 l493: 4246 position, tokenIndex = position493, tokenIndex493 4247 return false 4248 }, 4249 /* 39 AVX512Token <- <(WS? '{' '%'? ([0-9] / [a-z])* '}')> */ 4250 func() bool { 4251 position505, tokenIndex505 := position, tokenIndex 4252 { 4253 position506 := position 4254 { 4255 position507, tokenIndex507 := position, tokenIndex 4256 if !_rules[ruleWS]() { 4257 goto l507 4258 } 4259 goto l508 4260 l507: 4261 position, tokenIndex = position507, tokenIndex507 4262 } 4263 l508: 4264 if buffer[position] != rune('{') { 4265 goto l505 4266 } 4267 position++ 4268 { 4269 position509, tokenIndex509 := position, tokenIndex 4270 if buffer[position] != rune('%') { 4271 goto l509 4272 } 4273 position++ 4274 goto l510 4275 l509: 4276 position, tokenIndex = position509, tokenIndex509 4277 } 4278 l510: 4279 l511: 4280 { 4281 position512, tokenIndex512 := position, tokenIndex 4282 { 4283 position513, tokenIndex513 := position, tokenIndex 4284 if c := buffer[position]; c < rune('0') || c > rune('9') { 4285 goto l514 4286 } 4287 position++ 4288 goto l513 4289 l514: 4290 position, tokenIndex = position513, tokenIndex513 4291 if c := buffer[position]; c < rune('a') || c > rune('z') { 4292 goto l512 4293 } 4294 position++ 4295 } 4296 l513: 4297 goto l511 4298 l512: 4299 position, tokenIndex = position512, tokenIndex512 4300 } 4301 if buffer[position] != rune('}') { 4302 goto l505 4303 } 4304 position++ 4305 add(ruleAVX512Token, position506) 4306 } 4307 return true 4308 l505: 4309 position, tokenIndex = position505, tokenIndex505 4310 return false 4311 }, 4312 /* 40 TOCRefHigh <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('h' / 'H') ('a' / 'A')))> */ 4313 func() bool { 4314 position515, tokenIndex515 := position, tokenIndex 4315 { 4316 position516 := position 4317 if buffer[position] != rune('.') { 4318 goto l515 4319 } 4320 position++ 4321 if buffer[position] != rune('T') { 4322 goto l515 4323 } 4324 position++ 4325 if buffer[position] != rune('O') { 4326 goto l515 4327 } 4328 position++ 4329 if buffer[position] != rune('C') { 4330 goto l515 4331 } 4332 position++ 4333 if buffer[position] != rune('.') { 4334 goto l515 4335 } 4336 position++ 4337 if buffer[position] != rune('-') { 4338 goto l515 4339 } 4340 position++ 4341 { 4342 position517, tokenIndex517 := position, tokenIndex 4343 if buffer[position] != rune('0') { 4344 goto l518 4345 } 4346 position++ 4347 if buffer[position] != rune('b') { 4348 goto l518 4349 } 4350 position++ 4351 goto l517 4352 l518: 4353 position, tokenIndex = position517, tokenIndex517 4354 if buffer[position] != rune('.') { 4355 goto l515 4356 } 4357 position++ 4358 if buffer[position] != rune('L') { 4359 goto l515 4360 } 4361 position++ 4362 { 4363 position521, tokenIndex521 := position, tokenIndex 4364 if c := buffer[position]; c < rune('a') || c > rune('z') { 4365 goto l522 4366 } 4367 position++ 4368 goto l521 4369 l522: 4370 position, tokenIndex = position521, tokenIndex521 4371 if c := buffer[position]; c < rune('A') || c > rune('Z') { 4372 goto l523 4373 } 4374 position++ 4375 goto l521 4376 l523: 4377 position, tokenIndex = position521, tokenIndex521 4378 if buffer[position] != rune('_') { 4379 goto l524 4380 } 4381 position++ 4382 goto l521 4383 l524: 4384 position, tokenIndex = position521, tokenIndex521 4385 if c := buffer[position]; c < rune('0') || c > rune('9') { 4386 goto l515 4387 } 4388 position++ 4389 } 4390 l521: 4391 l519: 4392 { 4393 position520, tokenIndex520 := position, tokenIndex 4394 { 4395 position525, tokenIndex525 := position, tokenIndex 4396 if c := buffer[position]; c < rune('a') || c > rune('z') { 4397 goto l526 4398 } 4399 position++ 4400 goto l525 4401 l526: 4402 position, tokenIndex = position525, tokenIndex525 4403 if c := buffer[position]; c < rune('A') || c > rune('Z') { 4404 goto l527 4405 } 4406 position++ 4407 goto l525 4408 l527: 4409 position, tokenIndex = position525, tokenIndex525 4410 if buffer[position] != rune('_') { 4411 goto l528 4412 } 4413 position++ 4414 goto l525 4415 l528: 4416 position, tokenIndex = position525, tokenIndex525 4417 if c := buffer[position]; c < rune('0') || c > rune('9') { 4418 goto l520 4419 } 4420 position++ 4421 } 4422 l525: 4423 goto l519 4424 l520: 4425 position, tokenIndex = position520, tokenIndex520 4426 } 4427 } 4428 l517: 4429 if buffer[position] != rune('@') { 4430 goto l515 4431 } 4432 position++ 4433 { 4434 position529, tokenIndex529 := position, tokenIndex 4435 if buffer[position] != rune('h') { 4436 goto l530 4437 } 4438 position++ 4439 goto l529 4440 l530: 4441 position, tokenIndex = position529, tokenIndex529 4442 if buffer[position] != rune('H') { 4443 goto l515 4444 } 4445 position++ 4446 } 4447 l529: 4448 { 4449 position531, tokenIndex531 := position, tokenIndex 4450 if buffer[position] != rune('a') { 4451 goto l532 4452 } 4453 position++ 4454 goto l531 4455 l532: 4456 position, tokenIndex = position531, tokenIndex531 4457 if buffer[position] != rune('A') { 4458 goto l515 4459 } 4460 position++ 4461 } 4462 l531: 4463 add(ruleTOCRefHigh, position516) 4464 } 4465 return true 4466 l515: 4467 position, tokenIndex = position515, tokenIndex515 4468 return false 4469 }, 4470 /* 41 TOCRefLow <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('l' / 'L')))> */ 4471 func() bool { 4472 position533, tokenIndex533 := position, tokenIndex 4473 { 4474 position534 := position 4475 if buffer[position] != rune('.') { 4476 goto l533 4477 } 4478 position++ 4479 if buffer[position] != rune('T') { 4480 goto l533 4481 } 4482 position++ 4483 if buffer[position] != rune('O') { 4484 goto l533 4485 } 4486 position++ 4487 if buffer[position] != rune('C') { 4488 goto l533 4489 } 4490 position++ 4491 if buffer[position] != rune('.') { 4492 goto l533 4493 } 4494 position++ 4495 if buffer[position] != rune('-') { 4496 goto l533 4497 } 4498 position++ 4499 { 4500 position535, tokenIndex535 := position, tokenIndex 4501 if buffer[position] != rune('0') { 4502 goto l536 4503 } 4504 position++ 4505 if buffer[position] != rune('b') { 4506 goto l536 4507 } 4508 position++ 4509 goto l535 4510 l536: 4511 position, tokenIndex = position535, tokenIndex535 4512 if buffer[position] != rune('.') { 4513 goto l533 4514 } 4515 position++ 4516 if buffer[position] != rune('L') { 4517 goto l533 4518 } 4519 position++ 4520 { 4521 position539, tokenIndex539 := position, tokenIndex 4522 if c := buffer[position]; c < rune('a') || c > rune('z') { 4523 goto l540 4524 } 4525 position++ 4526 goto l539 4527 l540: 4528 position, tokenIndex = position539, tokenIndex539 4529 if c := buffer[position]; c < rune('A') || c > rune('Z') { 4530 goto l541 4531 } 4532 position++ 4533 goto l539 4534 l541: 4535 position, tokenIndex = position539, tokenIndex539 4536 if buffer[position] != rune('_') { 4537 goto l542 4538 } 4539 position++ 4540 goto l539 4541 l542: 4542 position, tokenIndex = position539, tokenIndex539 4543 if c := buffer[position]; c < rune('0') || c > rune('9') { 4544 goto l533 4545 } 4546 position++ 4547 } 4548 l539: 4549 l537: 4550 { 4551 position538, tokenIndex538 := position, tokenIndex 4552 { 4553 position543, tokenIndex543 := position, tokenIndex 4554 if c := buffer[position]; c < rune('a') || c > rune('z') { 4555 goto l544 4556 } 4557 position++ 4558 goto l543 4559 l544: 4560 position, tokenIndex = position543, tokenIndex543 4561 if c := buffer[position]; c < rune('A') || c > rune('Z') { 4562 goto l545 4563 } 4564 position++ 4565 goto l543 4566 l545: 4567 position, tokenIndex = position543, tokenIndex543 4568 if buffer[position] != rune('_') { 4569 goto l546 4570 } 4571 position++ 4572 goto l543 4573 l546: 4574 position, tokenIndex = position543, tokenIndex543 4575 if c := buffer[position]; c < rune('0') || c > rune('9') { 4576 goto l538 4577 } 4578 position++ 4579 } 4580 l543: 4581 goto l537 4582 l538: 4583 position, tokenIndex = position538, tokenIndex538 4584 } 4585 } 4586 l535: 4587 if buffer[position] != rune('@') { 4588 goto l533 4589 } 4590 position++ 4591 { 4592 position547, tokenIndex547 := position, tokenIndex 4593 if buffer[position] != rune('l') { 4594 goto l548 4595 } 4596 position++ 4597 goto l547 4598 l548: 4599 position, tokenIndex = position547, tokenIndex547 4600 if buffer[position] != rune('L') { 4601 goto l533 4602 } 4603 position++ 4604 } 4605 l547: 4606 add(ruleTOCRefLow, position534) 4607 } 4608 return true 4609 l533: 4610 position, tokenIndex = position533, tokenIndex533 4611 return false 4612 }, 4613 /* 42 IndirectionIndicator <- <'*'> */ 4614 func() bool { 4615 position549, tokenIndex549 := position, tokenIndex 4616 { 4617 position550 := position 4618 if buffer[position] != rune('*') { 4619 goto l549 4620 } 4621 position++ 4622 add(ruleIndirectionIndicator, position550) 4623 } 4624 return true 4625 l549: 4626 position, tokenIndex = position549, tokenIndex549 4627 return false 4628 }, 4629 /* 43 RegisterOrConstant <- <((('%' ([a-z] / [A-Z]) ([a-z] / [A-Z] / ([0-9] / [0-9]))*) / ('$'? ((Offset Offset) / Offset)) / ('#' Offset ('*' [0-9]+ ('-' [0-9] [0-9]*)?)?) / ('#' '~'? '(' [0-9] WS? ('<' '<') WS? [0-9] ')') / ARMRegister) !('f' / 'b' / ':' / '(' / '+' / '-'))> */ 4630 func() bool { 4631 position551, tokenIndex551 := position, tokenIndex 4632 { 4633 position552 := position 4634 { 4635 position553, tokenIndex553 := position, tokenIndex 4636 if buffer[position] != rune('%') { 4637 goto l554 4638 } 4639 position++ 4640 { 4641 position555, tokenIndex555 := position, tokenIndex 4642 if c := buffer[position]; c < rune('a') || c > rune('z') { 4643 goto l556 4644 } 4645 position++ 4646 goto l555 4647 l556: 4648 position, tokenIndex = position555, tokenIndex555 4649 if c := buffer[position]; c < rune('A') || c > rune('Z') { 4650 goto l554 4651 } 4652 position++ 4653 } 4654 l555: 4655 l557: 4656 { 4657 position558, tokenIndex558 := position, tokenIndex 4658 { 4659 position559, tokenIndex559 := position, tokenIndex 4660 if c := buffer[position]; c < rune('a') || c > rune('z') { 4661 goto l560 4662 } 4663 position++ 4664 goto l559 4665 l560: 4666 position, tokenIndex = position559, tokenIndex559 4667 if c := buffer[position]; c < rune('A') || c > rune('Z') { 4668 goto l561 4669 } 4670 position++ 4671 goto l559 4672 l561: 4673 position, tokenIndex = position559, tokenIndex559 4674 { 4675 position562, tokenIndex562 := position, tokenIndex 4676 if c := buffer[position]; c < rune('0') || c > rune('9') { 4677 goto l563 4678 } 4679 position++ 4680 goto l562 4681 l563: 4682 position, tokenIndex = position562, tokenIndex562 4683 if c := buffer[position]; c < rune('0') || c > rune('9') { 4684 goto l558 4685 } 4686 position++ 4687 } 4688 l562: 4689 } 4690 l559: 4691 goto l557 4692 l558: 4693 position, tokenIndex = position558, tokenIndex558 4694 } 4695 goto l553 4696 l554: 4697 position, tokenIndex = position553, tokenIndex553 4698 { 4699 position565, tokenIndex565 := position, tokenIndex 4700 if buffer[position] != rune('$') { 4701 goto l565 4702 } 4703 position++ 4704 goto l566 4705 l565: 4706 position, tokenIndex = position565, tokenIndex565 4707 } 4708 l566: 4709 { 4710 position567, tokenIndex567 := position, tokenIndex 4711 if !_rules[ruleOffset]() { 4712 goto l568 4713 } 4714 if !_rules[ruleOffset]() { 4715 goto l568 4716 } 4717 goto l567 4718 l568: 4719 position, tokenIndex = position567, tokenIndex567 4720 if !_rules[ruleOffset]() { 4721 goto l564 4722 } 4723 } 4724 l567: 4725 goto l553 4726 l564: 4727 position, tokenIndex = position553, tokenIndex553 4728 if buffer[position] != rune('#') { 4729 goto l569 4730 } 4731 position++ 4732 if !_rules[ruleOffset]() { 4733 goto l569 4734 } 4735 { 4736 position570, tokenIndex570 := position, tokenIndex 4737 if buffer[position] != rune('*') { 4738 goto l570 4739 } 4740 position++ 4741 if c := buffer[position]; c < rune('0') || c > rune('9') { 4742 goto l570 4743 } 4744 position++ 4745 l572: 4746 { 4747 position573, tokenIndex573 := position, tokenIndex 4748 if c := buffer[position]; c < rune('0') || c > rune('9') { 4749 goto l573 4750 } 4751 position++ 4752 goto l572 4753 l573: 4754 position, tokenIndex = position573, tokenIndex573 4755 } 4756 { 4757 position574, tokenIndex574 := position, tokenIndex 4758 if buffer[position] != rune('-') { 4759 goto l574 4760 } 4761 position++ 4762 if c := buffer[position]; c < rune('0') || c > rune('9') { 4763 goto l574 4764 } 4765 position++ 4766 l576: 4767 { 4768 position577, tokenIndex577 := position, tokenIndex 4769 if c := buffer[position]; c < rune('0') || c > rune('9') { 4770 goto l577 4771 } 4772 position++ 4773 goto l576 4774 l577: 4775 position, tokenIndex = position577, tokenIndex577 4776 } 4777 goto l575 4778 l574: 4779 position, tokenIndex = position574, tokenIndex574 4780 } 4781 l575: 4782 goto l571 4783 l570: 4784 position, tokenIndex = position570, tokenIndex570 4785 } 4786 l571: 4787 goto l553 4788 l569: 4789 position, tokenIndex = position553, tokenIndex553 4790 if buffer[position] != rune('#') { 4791 goto l578 4792 } 4793 position++ 4794 { 4795 position579, tokenIndex579 := position, tokenIndex 4796 if buffer[position] != rune('~') { 4797 goto l579 4798 } 4799 position++ 4800 goto l580 4801 l579: 4802 position, tokenIndex = position579, tokenIndex579 4803 } 4804 l580: 4805 if buffer[position] != rune('(') { 4806 goto l578 4807 } 4808 position++ 4809 if c := buffer[position]; c < rune('0') || c > rune('9') { 4810 goto l578 4811 } 4812 position++ 4813 { 4814 position581, tokenIndex581 := position, tokenIndex 4815 if !_rules[ruleWS]() { 4816 goto l581 4817 } 4818 goto l582 4819 l581: 4820 position, tokenIndex = position581, tokenIndex581 4821 } 4822 l582: 4823 if buffer[position] != rune('<') { 4824 goto l578 4825 } 4826 position++ 4827 if buffer[position] != rune('<') { 4828 goto l578 4829 } 4830 position++ 4831 { 4832 position583, tokenIndex583 := position, tokenIndex 4833 if !_rules[ruleWS]() { 4834 goto l583 4835 } 4836 goto l584 4837 l583: 4838 position, tokenIndex = position583, tokenIndex583 4839 } 4840 l584: 4841 if c := buffer[position]; c < rune('0') || c > rune('9') { 4842 goto l578 4843 } 4844 position++ 4845 if buffer[position] != rune(')') { 4846 goto l578 4847 } 4848 position++ 4849 goto l553 4850 l578: 4851 position, tokenIndex = position553, tokenIndex553 4852 if !_rules[ruleARMRegister]() { 4853 goto l551 4854 } 4855 } 4856 l553: 4857 { 4858 position585, tokenIndex585 := position, tokenIndex 4859 { 4860 position586, tokenIndex586 := position, tokenIndex 4861 if buffer[position] != rune('f') { 4862 goto l587 4863 } 4864 position++ 4865 goto l586 4866 l587: 4867 position, tokenIndex = position586, tokenIndex586 4868 if buffer[position] != rune('b') { 4869 goto l588 4870 } 4871 position++ 4872 goto l586 4873 l588: 4874 position, tokenIndex = position586, tokenIndex586 4875 if buffer[position] != rune(':') { 4876 goto l589 4877 } 4878 position++ 4879 goto l586 4880 l589: 4881 position, tokenIndex = position586, tokenIndex586 4882 if buffer[position] != rune('(') { 4883 goto l590 4884 } 4885 position++ 4886 goto l586 4887 l590: 4888 position, tokenIndex = position586, tokenIndex586 4889 if buffer[position] != rune('+') { 4890 goto l591 4891 } 4892 position++ 4893 goto l586 4894 l591: 4895 position, tokenIndex = position586, tokenIndex586 4896 if buffer[position] != rune('-') { 4897 goto l585 4898 } 4899 position++ 4900 } 4901 l586: 4902 goto l551 4903 l585: 4904 position, tokenIndex = position585, tokenIndex585 4905 } 4906 add(ruleRegisterOrConstant, position552) 4907 } 4908 return true 4909 l551: 4910 position, tokenIndex = position551, tokenIndex551 4911 return false 4912 }, 4913 /* 44 ARMConstantTweak <- <((((('u' / 's') (('x' / 'X') ('t' / 'T')) ('x' / 'w' / 'h' / 'b')) / (('l' / 'L') ('s' / 'S') ('l' / 'L')) / (('l' / 'L') ('s' / 'S') ('r' / 'R')) / (('r' / 'R') ('o' / 'O') ('r' / 'R')) / (('a' / 'A') ('s' / 'S') ('r' / 'R'))) (WS '#' Offset)?) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' ('v' / 'V') ('l' / 'L')) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' '#' [0-9]))> */ 4914 func() bool { 4915 position592, tokenIndex592 := position, tokenIndex 4916 { 4917 position593 := position 4918 { 4919 position594, tokenIndex594 := position, tokenIndex 4920 { 4921 position596, tokenIndex596 := position, tokenIndex 4922 { 4923 position598, tokenIndex598 := position, tokenIndex 4924 if buffer[position] != rune('u') { 4925 goto l599 4926 } 4927 position++ 4928 goto l598 4929 l599: 4930 position, tokenIndex = position598, tokenIndex598 4931 if buffer[position] != rune('s') { 4932 goto l597 4933 } 4934 position++ 4935 } 4936 l598: 4937 { 4938 position600, tokenIndex600 := position, tokenIndex 4939 if buffer[position] != rune('x') { 4940 goto l601 4941 } 4942 position++ 4943 goto l600 4944 l601: 4945 position, tokenIndex = position600, tokenIndex600 4946 if buffer[position] != rune('X') { 4947 goto l597 4948 } 4949 position++ 4950 } 4951 l600: 4952 { 4953 position602, tokenIndex602 := position, tokenIndex 4954 if buffer[position] != rune('t') { 4955 goto l603 4956 } 4957 position++ 4958 goto l602 4959 l603: 4960 position, tokenIndex = position602, tokenIndex602 4961 if buffer[position] != rune('T') { 4962 goto l597 4963 } 4964 position++ 4965 } 4966 l602: 4967 { 4968 position604, tokenIndex604 := position, tokenIndex 4969 if buffer[position] != rune('x') { 4970 goto l605 4971 } 4972 position++ 4973 goto l604 4974 l605: 4975 position, tokenIndex = position604, tokenIndex604 4976 if buffer[position] != rune('w') { 4977 goto l606 4978 } 4979 position++ 4980 goto l604 4981 l606: 4982 position, tokenIndex = position604, tokenIndex604 4983 if buffer[position] != rune('h') { 4984 goto l607 4985 } 4986 position++ 4987 goto l604 4988 l607: 4989 position, tokenIndex = position604, tokenIndex604 4990 if buffer[position] != rune('b') { 4991 goto l597 4992 } 4993 position++ 4994 } 4995 l604: 4996 goto l596 4997 l597: 4998 position, tokenIndex = position596, tokenIndex596 4999 { 5000 position609, tokenIndex609 := position, tokenIndex 5001 if buffer[position] != rune('l') { 5002 goto l610 5003 } 5004 position++ 5005 goto l609 5006 l610: 5007 position, tokenIndex = position609, tokenIndex609 5008 if buffer[position] != rune('L') { 5009 goto l608 5010 } 5011 position++ 5012 } 5013 l609: 5014 { 5015 position611, tokenIndex611 := position, tokenIndex 5016 if buffer[position] != rune('s') { 5017 goto l612 5018 } 5019 position++ 5020 goto l611 5021 l612: 5022 position, tokenIndex = position611, tokenIndex611 5023 if buffer[position] != rune('S') { 5024 goto l608 5025 } 5026 position++ 5027 } 5028 l611: 5029 { 5030 position613, tokenIndex613 := position, tokenIndex 5031 if buffer[position] != rune('l') { 5032 goto l614 5033 } 5034 position++ 5035 goto l613 5036 l614: 5037 position, tokenIndex = position613, tokenIndex613 5038 if buffer[position] != rune('L') { 5039 goto l608 5040 } 5041 position++ 5042 } 5043 l613: 5044 goto l596 5045 l608: 5046 position, tokenIndex = position596, tokenIndex596 5047 { 5048 position616, tokenIndex616 := position, tokenIndex 5049 if buffer[position] != rune('l') { 5050 goto l617 5051 } 5052 position++ 5053 goto l616 5054 l617: 5055 position, tokenIndex = position616, tokenIndex616 5056 if buffer[position] != rune('L') { 5057 goto l615 5058 } 5059 position++ 5060 } 5061 l616: 5062 { 5063 position618, tokenIndex618 := position, tokenIndex 5064 if buffer[position] != rune('s') { 5065 goto l619 5066 } 5067 position++ 5068 goto l618 5069 l619: 5070 position, tokenIndex = position618, tokenIndex618 5071 if buffer[position] != rune('S') { 5072 goto l615 5073 } 5074 position++ 5075 } 5076 l618: 5077 { 5078 position620, tokenIndex620 := position, tokenIndex 5079 if buffer[position] != rune('r') { 5080 goto l621 5081 } 5082 position++ 5083 goto l620 5084 l621: 5085 position, tokenIndex = position620, tokenIndex620 5086 if buffer[position] != rune('R') { 5087 goto l615 5088 } 5089 position++ 5090 } 5091 l620: 5092 goto l596 5093 l615: 5094 position, tokenIndex = position596, tokenIndex596 5095 { 5096 position623, tokenIndex623 := position, tokenIndex 5097 if buffer[position] != rune('r') { 5098 goto l624 5099 } 5100 position++ 5101 goto l623 5102 l624: 5103 position, tokenIndex = position623, tokenIndex623 5104 if buffer[position] != rune('R') { 5105 goto l622 5106 } 5107 position++ 5108 } 5109 l623: 5110 { 5111 position625, tokenIndex625 := position, tokenIndex 5112 if buffer[position] != rune('o') { 5113 goto l626 5114 } 5115 position++ 5116 goto l625 5117 l626: 5118 position, tokenIndex = position625, tokenIndex625 5119 if buffer[position] != rune('O') { 5120 goto l622 5121 } 5122 position++ 5123 } 5124 l625: 5125 { 5126 position627, tokenIndex627 := position, tokenIndex 5127 if buffer[position] != rune('r') { 5128 goto l628 5129 } 5130 position++ 5131 goto l627 5132 l628: 5133 position, tokenIndex = position627, tokenIndex627 5134 if buffer[position] != rune('R') { 5135 goto l622 5136 } 5137 position++ 5138 } 5139 l627: 5140 goto l596 5141 l622: 5142 position, tokenIndex = position596, tokenIndex596 5143 { 5144 position629, tokenIndex629 := position, tokenIndex 5145 if buffer[position] != rune('a') { 5146 goto l630 5147 } 5148 position++ 5149 goto l629 5150 l630: 5151 position, tokenIndex = position629, tokenIndex629 5152 if buffer[position] != rune('A') { 5153 goto l595 5154 } 5155 position++ 5156 } 5157 l629: 5158 { 5159 position631, tokenIndex631 := position, tokenIndex 5160 if buffer[position] != rune('s') { 5161 goto l632 5162 } 5163 position++ 5164 goto l631 5165 l632: 5166 position, tokenIndex = position631, tokenIndex631 5167 if buffer[position] != rune('S') { 5168 goto l595 5169 } 5170 position++ 5171 } 5172 l631: 5173 { 5174 position633, tokenIndex633 := position, tokenIndex 5175 if buffer[position] != rune('r') { 5176 goto l634 5177 } 5178 position++ 5179 goto l633 5180 l634: 5181 position, tokenIndex = position633, tokenIndex633 5182 if buffer[position] != rune('R') { 5183 goto l595 5184 } 5185 position++ 5186 } 5187 l633: 5188 } 5189 l596: 5190 { 5191 position635, tokenIndex635 := position, tokenIndex 5192 if !_rules[ruleWS]() { 5193 goto l635 5194 } 5195 if buffer[position] != rune('#') { 5196 goto l635 5197 } 5198 position++ 5199 if !_rules[ruleOffset]() { 5200 goto l635 5201 } 5202 goto l636 5203 l635: 5204 position, tokenIndex = position635, tokenIndex635 5205 } 5206 l636: 5207 goto l594 5208 l595: 5209 position, tokenIndex = position594, tokenIndex594 5210 { 5211 position638, tokenIndex638 := position, tokenIndex 5212 if buffer[position] != rune('m') { 5213 goto l639 5214 } 5215 position++ 5216 goto l638 5217 l639: 5218 position, tokenIndex = position638, tokenIndex638 5219 if buffer[position] != rune('M') { 5220 goto l637 5221 } 5222 position++ 5223 } 5224 l638: 5225 { 5226 position640, tokenIndex640 := position, tokenIndex 5227 if buffer[position] != rune('u') { 5228 goto l641 5229 } 5230 position++ 5231 goto l640 5232 l641: 5233 position, tokenIndex = position640, tokenIndex640 5234 if buffer[position] != rune('U') { 5235 goto l637 5236 } 5237 position++ 5238 } 5239 l640: 5240 { 5241 position642, tokenIndex642 := position, tokenIndex 5242 if buffer[position] != rune('l') { 5243 goto l643 5244 } 5245 position++ 5246 goto l642 5247 l643: 5248 position, tokenIndex = position642, tokenIndex642 5249 if buffer[position] != rune('L') { 5250 goto l637 5251 } 5252 position++ 5253 } 5254 l642: 5255 if buffer[position] != rune(' ') { 5256 goto l637 5257 } 5258 position++ 5259 { 5260 position644, tokenIndex644 := position, tokenIndex 5261 if buffer[position] != rune('v') { 5262 goto l645 5263 } 5264 position++ 5265 goto l644 5266 l645: 5267 position, tokenIndex = position644, tokenIndex644 5268 if buffer[position] != rune('V') { 5269 goto l637 5270 } 5271 position++ 5272 } 5273 l644: 5274 { 5275 position646, tokenIndex646 := position, tokenIndex 5276 if buffer[position] != rune('l') { 5277 goto l647 5278 } 5279 position++ 5280 goto l646 5281 l647: 5282 position, tokenIndex = position646, tokenIndex646 5283 if buffer[position] != rune('L') { 5284 goto l637 5285 } 5286 position++ 5287 } 5288 l646: 5289 goto l594 5290 l637: 5291 position, tokenIndex = position594, tokenIndex594 5292 { 5293 position648, tokenIndex648 := position, tokenIndex 5294 if buffer[position] != rune('m') { 5295 goto l649 5296 } 5297 position++ 5298 goto l648 5299 l649: 5300 position, tokenIndex = position648, tokenIndex648 5301 if buffer[position] != rune('M') { 5302 goto l592 5303 } 5304 position++ 5305 } 5306 l648: 5307 { 5308 position650, tokenIndex650 := position, tokenIndex 5309 if buffer[position] != rune('u') { 5310 goto l651 5311 } 5312 position++ 5313 goto l650 5314 l651: 5315 position, tokenIndex = position650, tokenIndex650 5316 if buffer[position] != rune('U') { 5317 goto l592 5318 } 5319 position++ 5320 } 5321 l650: 5322 { 5323 position652, tokenIndex652 := position, tokenIndex 5324 if buffer[position] != rune('l') { 5325 goto l653 5326 } 5327 position++ 5328 goto l652 5329 l653: 5330 position, tokenIndex = position652, tokenIndex652 5331 if buffer[position] != rune('L') { 5332 goto l592 5333 } 5334 position++ 5335 } 5336 l652: 5337 if buffer[position] != rune(' ') { 5338 goto l592 5339 } 5340 position++ 5341 if buffer[position] != rune('#') { 5342 goto l592 5343 } 5344 position++ 5345 if c := buffer[position]; c < rune('0') || c > rune('9') { 5346 goto l592 5347 } 5348 position++ 5349 } 5350 l594: 5351 add(ruleARMConstantTweak, position593) 5352 } 5353 return true 5354 l592: 5355 position, tokenIndex = position592, tokenIndex592 5356 return false 5357 }, 5358 /* 45 ARMRegister <- <((('s' / 'S') ('p' / 'P')) / (('x' / 'w' / 'd' / 'q' / 's' / 'h' / 'b') [0-9] [0-9]?) / (('x' / 'X') ('z' / 'Z') ('r' / 'R')) / (('w' / 'W') ('z' / 'Z') ('r' / 'R')) / (('n' / 'N') ('z' / 'Z') ('c' / 'C') ('v' / 'V')) / SVE2PredicateRegister / ARMVectorRegister / SVE2SpecialValue / ('{' WS? ARMVectorRegister (',' WS? ARMVectorRegister)* WS? '}' ('[' [0-9] [0-9]? ']')?))> */ 5359 func() bool { 5360 position654, tokenIndex654 := position, tokenIndex 5361 { 5362 position655 := position 5363 { 5364 position656, tokenIndex656 := position, tokenIndex 5365 { 5366 position658, tokenIndex658 := position, tokenIndex 5367 if buffer[position] != rune('s') { 5368 goto l659 5369 } 5370 position++ 5371 goto l658 5372 l659: 5373 position, tokenIndex = position658, tokenIndex658 5374 if buffer[position] != rune('S') { 5375 goto l657 5376 } 5377 position++ 5378 } 5379 l658: 5380 { 5381 position660, tokenIndex660 := position, tokenIndex 5382 if buffer[position] != rune('p') { 5383 goto l661 5384 } 5385 position++ 5386 goto l660 5387 l661: 5388 position, tokenIndex = position660, tokenIndex660 5389 if buffer[position] != rune('P') { 5390 goto l657 5391 } 5392 position++ 5393 } 5394 l660: 5395 goto l656 5396 l657: 5397 position, tokenIndex = position656, tokenIndex656 5398 { 5399 position663, tokenIndex663 := position, tokenIndex 5400 if buffer[position] != rune('x') { 5401 goto l664 5402 } 5403 position++ 5404 goto l663 5405 l664: 5406 position, tokenIndex = position663, tokenIndex663 5407 if buffer[position] != rune('w') { 5408 goto l665 5409 } 5410 position++ 5411 goto l663 5412 l665: 5413 position, tokenIndex = position663, tokenIndex663 5414 if buffer[position] != rune('d') { 5415 goto l666 5416 } 5417 position++ 5418 goto l663 5419 l666: 5420 position, tokenIndex = position663, tokenIndex663 5421 if buffer[position] != rune('q') { 5422 goto l667 5423 } 5424 position++ 5425 goto l663 5426 l667: 5427 position, tokenIndex = position663, tokenIndex663 5428 if buffer[position] != rune('s') { 5429 goto l668 5430 } 5431 position++ 5432 goto l663 5433 l668: 5434 position, tokenIndex = position663, tokenIndex663 5435 if buffer[position] != rune('h') { 5436 goto l669 5437 } 5438 position++ 5439 goto l663 5440 l669: 5441 position, tokenIndex = position663, tokenIndex663 5442 if buffer[position] != rune('b') { 5443 goto l662 5444 } 5445 position++ 5446 } 5447 l663: 5448 if c := buffer[position]; c < rune('0') || c > rune('9') { 5449 goto l662 5450 } 5451 position++ 5452 { 5453 position670, tokenIndex670 := position, tokenIndex 5454 if c := buffer[position]; c < rune('0') || c > rune('9') { 5455 goto l670 5456 } 5457 position++ 5458 goto l671 5459 l670: 5460 position, tokenIndex = position670, tokenIndex670 5461 } 5462 l671: 5463 goto l656 5464 l662: 5465 position, tokenIndex = position656, tokenIndex656 5466 { 5467 position673, tokenIndex673 := position, tokenIndex 5468 if buffer[position] != rune('x') { 5469 goto l674 5470 } 5471 position++ 5472 goto l673 5473 l674: 5474 position, tokenIndex = position673, tokenIndex673 5475 if buffer[position] != rune('X') { 5476 goto l672 5477 } 5478 position++ 5479 } 5480 l673: 5481 { 5482 position675, tokenIndex675 := position, tokenIndex 5483 if buffer[position] != rune('z') { 5484 goto l676 5485 } 5486 position++ 5487 goto l675 5488 l676: 5489 position, tokenIndex = position675, tokenIndex675 5490 if buffer[position] != rune('Z') { 5491 goto l672 5492 } 5493 position++ 5494 } 5495 l675: 5496 { 5497 position677, tokenIndex677 := position, tokenIndex 5498 if buffer[position] != rune('r') { 5499 goto l678 5500 } 5501 position++ 5502 goto l677 5503 l678: 5504 position, tokenIndex = position677, tokenIndex677 5505 if buffer[position] != rune('R') { 5506 goto l672 5507 } 5508 position++ 5509 } 5510 l677: 5511 goto l656 5512 l672: 5513 position, tokenIndex = position656, tokenIndex656 5514 { 5515 position680, tokenIndex680 := position, tokenIndex 5516 if buffer[position] != rune('w') { 5517 goto l681 5518 } 5519 position++ 5520 goto l680 5521 l681: 5522 position, tokenIndex = position680, tokenIndex680 5523 if buffer[position] != rune('W') { 5524 goto l679 5525 } 5526 position++ 5527 } 5528 l680: 5529 { 5530 position682, tokenIndex682 := position, tokenIndex 5531 if buffer[position] != rune('z') { 5532 goto l683 5533 } 5534 position++ 5535 goto l682 5536 l683: 5537 position, tokenIndex = position682, tokenIndex682 5538 if buffer[position] != rune('Z') { 5539 goto l679 5540 } 5541 position++ 5542 } 5543 l682: 5544 { 5545 position684, tokenIndex684 := position, tokenIndex 5546 if buffer[position] != rune('r') { 5547 goto l685 5548 } 5549 position++ 5550 goto l684 5551 l685: 5552 position, tokenIndex = position684, tokenIndex684 5553 if buffer[position] != rune('R') { 5554 goto l679 5555 } 5556 position++ 5557 } 5558 l684: 5559 goto l656 5560 l679: 5561 position, tokenIndex = position656, tokenIndex656 5562 { 5563 position687, tokenIndex687 := position, tokenIndex 5564 if buffer[position] != rune('n') { 5565 goto l688 5566 } 5567 position++ 5568 goto l687 5569 l688: 5570 position, tokenIndex = position687, tokenIndex687 5571 if buffer[position] != rune('N') { 5572 goto l686 5573 } 5574 position++ 5575 } 5576 l687: 5577 { 5578 position689, tokenIndex689 := position, tokenIndex 5579 if buffer[position] != rune('z') { 5580 goto l690 5581 } 5582 position++ 5583 goto l689 5584 l690: 5585 position, tokenIndex = position689, tokenIndex689 5586 if buffer[position] != rune('Z') { 5587 goto l686 5588 } 5589 position++ 5590 } 5591 l689: 5592 { 5593 position691, tokenIndex691 := position, tokenIndex 5594 if buffer[position] != rune('c') { 5595 goto l692 5596 } 5597 position++ 5598 goto l691 5599 l692: 5600 position, tokenIndex = position691, tokenIndex691 5601 if buffer[position] != rune('C') { 5602 goto l686 5603 } 5604 position++ 5605 } 5606 l691: 5607 { 5608 position693, tokenIndex693 := position, tokenIndex 5609 if buffer[position] != rune('v') { 5610 goto l694 5611 } 5612 position++ 5613 goto l693 5614 l694: 5615 position, tokenIndex = position693, tokenIndex693 5616 if buffer[position] != rune('V') { 5617 goto l686 5618 } 5619 position++ 5620 } 5621 l693: 5622 goto l656 5623 l686: 5624 position, tokenIndex = position656, tokenIndex656 5625 if !_rules[ruleSVE2PredicateRegister]() { 5626 goto l695 5627 } 5628 goto l656 5629 l695: 5630 position, tokenIndex = position656, tokenIndex656 5631 if !_rules[ruleARMVectorRegister]() { 5632 goto l696 5633 } 5634 goto l656 5635 l696: 5636 position, tokenIndex = position656, tokenIndex656 5637 if !_rules[ruleSVE2SpecialValue]() { 5638 goto l697 5639 } 5640 goto l656 5641 l697: 5642 position, tokenIndex = position656, tokenIndex656 5643 if buffer[position] != rune('{') { 5644 goto l654 5645 } 5646 position++ 5647 { 5648 position698, tokenIndex698 := position, tokenIndex 5649 if !_rules[ruleWS]() { 5650 goto l698 5651 } 5652 goto l699 5653 l698: 5654 position, tokenIndex = position698, tokenIndex698 5655 } 5656 l699: 5657 if !_rules[ruleARMVectorRegister]() { 5658 goto l654 5659 } 5660 l700: 5661 { 5662 position701, tokenIndex701 := position, tokenIndex 5663 if buffer[position] != rune(',') { 5664 goto l701 5665 } 5666 position++ 5667 { 5668 position702, tokenIndex702 := position, tokenIndex 5669 if !_rules[ruleWS]() { 5670 goto l702 5671 } 5672 goto l703 5673 l702: 5674 position, tokenIndex = position702, tokenIndex702 5675 } 5676 l703: 5677 if !_rules[ruleARMVectorRegister]() { 5678 goto l701 5679 } 5680 goto l700 5681 l701: 5682 position, tokenIndex = position701, tokenIndex701 5683 } 5684 { 5685 position704, tokenIndex704 := position, tokenIndex 5686 if !_rules[ruleWS]() { 5687 goto l704 5688 } 5689 goto l705 5690 l704: 5691 position, tokenIndex = position704, tokenIndex704 5692 } 5693 l705: 5694 if buffer[position] != rune('}') { 5695 goto l654 5696 } 5697 position++ 5698 { 5699 position706, tokenIndex706 := position, tokenIndex 5700 if buffer[position] != rune('[') { 5701 goto l706 5702 } 5703 position++ 5704 if c := buffer[position]; c < rune('0') || c > rune('9') { 5705 goto l706 5706 } 5707 position++ 5708 { 5709 position708, tokenIndex708 := position, tokenIndex 5710 if c := buffer[position]; c < rune('0') || c > rune('9') { 5711 goto l708 5712 } 5713 position++ 5714 goto l709 5715 l708: 5716 position, tokenIndex = position708, tokenIndex708 5717 } 5718 l709: 5719 if buffer[position] != rune(']') { 5720 goto l706 5721 } 5722 position++ 5723 goto l707 5724 l706: 5725 position, tokenIndex = position706, tokenIndex706 5726 } 5727 l707: 5728 } 5729 l656: 5730 add(ruleARMRegister, position655) 5731 } 5732 return true 5733 l654: 5734 position, tokenIndex = position654, tokenIndex654 5735 return false 5736 }, 5737 /* 46 ARMVectorRegister <- <(('p' / 'v' / 'z') [0-9] [0-9]? !([0-9] / [0-9] / ([a-z] / [A-Z]) / '_') ('.' [0-9]* ('b' / 's' / 'd' / 'h' / 'q') ('[' [0-9] [0-9]? ']')?)?)> */ 5738 func() bool { 5739 position710, tokenIndex710 := position, tokenIndex 5740 { 5741 position711 := position 5742 { 5743 position712, tokenIndex712 := position, tokenIndex 5744 if buffer[position] != rune('p') { 5745 goto l713 5746 } 5747 position++ 5748 goto l712 5749 l713: 5750 position, tokenIndex = position712, tokenIndex712 5751 if buffer[position] != rune('v') { 5752 goto l714 5753 } 5754 position++ 5755 goto l712 5756 l714: 5757 position, tokenIndex = position712, tokenIndex712 5758 if buffer[position] != rune('z') { 5759 goto l710 5760 } 5761 position++ 5762 } 5763 l712: 5764 if c := buffer[position]; c < rune('0') || c > rune('9') { 5765 goto l710 5766 } 5767 position++ 5768 { 5769 position715, tokenIndex715 := position, tokenIndex 5770 if c := buffer[position]; c < rune('0') || c > rune('9') { 5771 goto l715 5772 } 5773 position++ 5774 goto l716 5775 l715: 5776 position, tokenIndex = position715, tokenIndex715 5777 } 5778 l716: 5779 { 5780 position717, tokenIndex717 := position, tokenIndex 5781 { 5782 position718, tokenIndex718 := position, tokenIndex 5783 if c := buffer[position]; c < rune('0') || c > rune('9') { 5784 goto l719 5785 } 5786 position++ 5787 goto l718 5788 l719: 5789 position, tokenIndex = position718, tokenIndex718 5790 if c := buffer[position]; c < rune('0') || c > rune('9') { 5791 goto l720 5792 } 5793 position++ 5794 goto l718 5795 l720: 5796 position, tokenIndex = position718, tokenIndex718 5797 { 5798 position722, tokenIndex722 := position, tokenIndex 5799 if c := buffer[position]; c < rune('a') || c > rune('z') { 5800 goto l723 5801 } 5802 position++ 5803 goto l722 5804 l723: 5805 position, tokenIndex = position722, tokenIndex722 5806 if c := buffer[position]; c < rune('A') || c > rune('Z') { 5807 goto l721 5808 } 5809 position++ 5810 } 5811 l722: 5812 goto l718 5813 l721: 5814 position, tokenIndex = position718, tokenIndex718 5815 if buffer[position] != rune('_') { 5816 goto l717 5817 } 5818 position++ 5819 } 5820 l718: 5821 goto l710 5822 l717: 5823 position, tokenIndex = position717, tokenIndex717 5824 } 5825 { 5826 position724, tokenIndex724 := position, tokenIndex 5827 if buffer[position] != rune('.') { 5828 goto l724 5829 } 5830 position++ 5831 l726: 5832 { 5833 position727, tokenIndex727 := position, tokenIndex 5834 if c := buffer[position]; c < rune('0') || c > rune('9') { 5835 goto l727 5836 } 5837 position++ 5838 goto l726 5839 l727: 5840 position, tokenIndex = position727, tokenIndex727 5841 } 5842 { 5843 position728, tokenIndex728 := position, tokenIndex 5844 if buffer[position] != rune('b') { 5845 goto l729 5846 } 5847 position++ 5848 goto l728 5849 l729: 5850 position, tokenIndex = position728, tokenIndex728 5851 if buffer[position] != rune('s') { 5852 goto l730 5853 } 5854 position++ 5855 goto l728 5856 l730: 5857 position, tokenIndex = position728, tokenIndex728 5858 if buffer[position] != rune('d') { 5859 goto l731 5860 } 5861 position++ 5862 goto l728 5863 l731: 5864 position, tokenIndex = position728, tokenIndex728 5865 if buffer[position] != rune('h') { 5866 goto l732 5867 } 5868 position++ 5869 goto l728 5870 l732: 5871 position, tokenIndex = position728, tokenIndex728 5872 if buffer[position] != rune('q') { 5873 goto l724 5874 } 5875 position++ 5876 } 5877 l728: 5878 { 5879 position733, tokenIndex733 := position, tokenIndex 5880 if buffer[position] != rune('[') { 5881 goto l733 5882 } 5883 position++ 5884 if c := buffer[position]; c < rune('0') || c > rune('9') { 5885 goto l733 5886 } 5887 position++ 5888 { 5889 position735, tokenIndex735 := position, tokenIndex 5890 if c := buffer[position]; c < rune('0') || c > rune('9') { 5891 goto l735 5892 } 5893 position++ 5894 goto l736 5895 l735: 5896 position, tokenIndex = position735, tokenIndex735 5897 } 5898 l736: 5899 if buffer[position] != rune(']') { 5900 goto l733 5901 } 5902 position++ 5903 goto l734 5904 l733: 5905 position, tokenIndex = position733, tokenIndex733 5906 } 5907 l734: 5908 goto l725 5909 l724: 5910 position, tokenIndex = position724, tokenIndex724 5911 } 5912 l725: 5913 add(ruleARMVectorRegister, position711) 5914 } 5915 return true 5916 l710: 5917 position, tokenIndex = position710, tokenIndex710 5918 return false 5919 }, 5920 /* 47 SVE2PredicateRegister <- <(('p' / 'P') [0-9] [0-9]? '/' ('m' / 'M' / ('z' / 'Z')))> */ 5921 func() bool { 5922 position737, tokenIndex737 := position, tokenIndex 5923 { 5924 position738 := position 5925 { 5926 position739, tokenIndex739 := position, tokenIndex 5927 if buffer[position] != rune('p') { 5928 goto l740 5929 } 5930 position++ 5931 goto l739 5932 l740: 5933 position, tokenIndex = position739, tokenIndex739 5934 if buffer[position] != rune('P') { 5935 goto l737 5936 } 5937 position++ 5938 } 5939 l739: 5940 if c := buffer[position]; c < rune('0') || c > rune('9') { 5941 goto l737 5942 } 5943 position++ 5944 { 5945 position741, tokenIndex741 := position, tokenIndex 5946 if c := buffer[position]; c < rune('0') || c > rune('9') { 5947 goto l741 5948 } 5949 position++ 5950 goto l742 5951 l741: 5952 position, tokenIndex = position741, tokenIndex741 5953 } 5954 l742: 5955 if buffer[position] != rune('/') { 5956 goto l737 5957 } 5958 position++ 5959 { 5960 position743, tokenIndex743 := position, tokenIndex 5961 if buffer[position] != rune('m') { 5962 goto l744 5963 } 5964 position++ 5965 goto l743 5966 l744: 5967 position, tokenIndex = position743, tokenIndex743 5968 if buffer[position] != rune('M') { 5969 goto l745 5970 } 5971 position++ 5972 goto l743 5973 l745: 5974 position, tokenIndex = position743, tokenIndex743 5975 { 5976 position746, tokenIndex746 := position, tokenIndex 5977 if buffer[position] != rune('z') { 5978 goto l747 5979 } 5980 position++ 5981 goto l746 5982 l747: 5983 position, tokenIndex = position746, tokenIndex746 5984 if buffer[position] != rune('Z') { 5985 goto l737 5986 } 5987 position++ 5988 } 5989 l746: 5990 } 5991 l743: 5992 add(ruleSVE2PredicateRegister, position738) 5993 } 5994 return true 5995 l737: 5996 position, tokenIndex = position737, tokenIndex737 5997 return false 5998 }, 5999 /* 48 SVE2SpecialValue <- <(((('p' / 'P') ('o' / 'O') ('w' / 'W') '2') / (('v' / 'V') ('l' / 'L') ('1' / '2' / '3' / '4' / '5' / '6' / '7' / '8') ![0-9]) / (('v' / 'V') ('l' / 'L') '1' '6') / (('v' / 'V') ('l' / 'L') '3' '2') / (('v' / 'V') ('l' / 'L') '6' '4') / (('v' / 'V') ('l' / 'L') '1' '2' '8') / (('v' / 'V') ('l' / 'L') '2' '5' '6') / (('m' / 'M') ('u' / 'U') ('l' / 'L') '3') / (('m' / 'M') ('u' / 'U') ('l' / 'L') '4') / (('a' / 'A') ('l' / 'L') ('l' / 'L'))) !([0-9] / [0-9] / ([a-z] / [A-Z]) / '_'))> */ 6000 func() bool { 6001 position748, tokenIndex748 := position, tokenIndex 6002 { 6003 position749 := position 6004 { 6005 position750, tokenIndex750 := position, tokenIndex 6006 { 6007 position752, tokenIndex752 := position, tokenIndex 6008 if buffer[position] != rune('p') { 6009 goto l753 6010 } 6011 position++ 6012 goto l752 6013 l753: 6014 position, tokenIndex = position752, tokenIndex752 6015 if buffer[position] != rune('P') { 6016 goto l751 6017 } 6018 position++ 6019 } 6020 l752: 6021 { 6022 position754, tokenIndex754 := position, tokenIndex 6023 if buffer[position] != rune('o') { 6024 goto l755 6025 } 6026 position++ 6027 goto l754 6028 l755: 6029 position, tokenIndex = position754, tokenIndex754 6030 if buffer[position] != rune('O') { 6031 goto l751 6032 } 6033 position++ 6034 } 6035 l754: 6036 { 6037 position756, tokenIndex756 := position, tokenIndex 6038 if buffer[position] != rune('w') { 6039 goto l757 6040 } 6041 position++ 6042 goto l756 6043 l757: 6044 position, tokenIndex = position756, tokenIndex756 6045 if buffer[position] != rune('W') { 6046 goto l751 6047 } 6048 position++ 6049 } 6050 l756: 6051 if buffer[position] != rune('2') { 6052 goto l751 6053 } 6054 position++ 6055 goto l750 6056 l751: 6057 position, tokenIndex = position750, tokenIndex750 6058 { 6059 position759, tokenIndex759 := position, tokenIndex 6060 if buffer[position] != rune('v') { 6061 goto l760 6062 } 6063 position++ 6064 goto l759 6065 l760: 6066 position, tokenIndex = position759, tokenIndex759 6067 if buffer[position] != rune('V') { 6068 goto l758 6069 } 6070 position++ 6071 } 6072 l759: 6073 { 6074 position761, tokenIndex761 := position, tokenIndex 6075 if buffer[position] != rune('l') { 6076 goto l762 6077 } 6078 position++ 6079 goto l761 6080 l762: 6081 position, tokenIndex = position761, tokenIndex761 6082 if buffer[position] != rune('L') { 6083 goto l758 6084 } 6085 position++ 6086 } 6087 l761: 6088 { 6089 position763, tokenIndex763 := position, tokenIndex 6090 if buffer[position] != rune('1') { 6091 goto l764 6092 } 6093 position++ 6094 goto l763 6095 l764: 6096 position, tokenIndex = position763, tokenIndex763 6097 if buffer[position] != rune('2') { 6098 goto l765 6099 } 6100 position++ 6101 goto l763 6102 l765: 6103 position, tokenIndex = position763, tokenIndex763 6104 if buffer[position] != rune('3') { 6105 goto l766 6106 } 6107 position++ 6108 goto l763 6109 l766: 6110 position, tokenIndex = position763, tokenIndex763 6111 if buffer[position] != rune('4') { 6112 goto l767 6113 } 6114 position++ 6115 goto l763 6116 l767: 6117 position, tokenIndex = position763, tokenIndex763 6118 if buffer[position] != rune('5') { 6119 goto l768 6120 } 6121 position++ 6122 goto l763 6123 l768: 6124 position, tokenIndex = position763, tokenIndex763 6125 if buffer[position] != rune('6') { 6126 goto l769 6127 } 6128 position++ 6129 goto l763 6130 l769: 6131 position, tokenIndex = position763, tokenIndex763 6132 if buffer[position] != rune('7') { 6133 goto l770 6134 } 6135 position++ 6136 goto l763 6137 l770: 6138 position, tokenIndex = position763, tokenIndex763 6139 if buffer[position] != rune('8') { 6140 goto l758 6141 } 6142 position++ 6143 } 6144 l763: 6145 { 6146 position771, tokenIndex771 := position, tokenIndex 6147 if c := buffer[position]; c < rune('0') || c > rune('9') { 6148 goto l771 6149 } 6150 position++ 6151 goto l758 6152 l771: 6153 position, tokenIndex = position771, tokenIndex771 6154 } 6155 goto l750 6156 l758: 6157 position, tokenIndex = position750, tokenIndex750 6158 { 6159 position773, tokenIndex773 := position, tokenIndex 6160 if buffer[position] != rune('v') { 6161 goto l774 6162 } 6163 position++ 6164 goto l773 6165 l774: 6166 position, tokenIndex = position773, tokenIndex773 6167 if buffer[position] != rune('V') { 6168 goto l772 6169 } 6170 position++ 6171 } 6172 l773: 6173 { 6174 position775, tokenIndex775 := position, tokenIndex 6175 if buffer[position] != rune('l') { 6176 goto l776 6177 } 6178 position++ 6179 goto l775 6180 l776: 6181 position, tokenIndex = position775, tokenIndex775 6182 if buffer[position] != rune('L') { 6183 goto l772 6184 } 6185 position++ 6186 } 6187 l775: 6188 if buffer[position] != rune('1') { 6189 goto l772 6190 } 6191 position++ 6192 if buffer[position] != rune('6') { 6193 goto l772 6194 } 6195 position++ 6196 goto l750 6197 l772: 6198 position, tokenIndex = position750, tokenIndex750 6199 { 6200 position778, tokenIndex778 := position, tokenIndex 6201 if buffer[position] != rune('v') { 6202 goto l779 6203 } 6204 position++ 6205 goto l778 6206 l779: 6207 position, tokenIndex = position778, tokenIndex778 6208 if buffer[position] != rune('V') { 6209 goto l777 6210 } 6211 position++ 6212 } 6213 l778: 6214 { 6215 position780, tokenIndex780 := position, tokenIndex 6216 if buffer[position] != rune('l') { 6217 goto l781 6218 } 6219 position++ 6220 goto l780 6221 l781: 6222 position, tokenIndex = position780, tokenIndex780 6223 if buffer[position] != rune('L') { 6224 goto l777 6225 } 6226 position++ 6227 } 6228 l780: 6229 if buffer[position] != rune('3') { 6230 goto l777 6231 } 6232 position++ 6233 if buffer[position] != rune('2') { 6234 goto l777 6235 } 6236 position++ 6237 goto l750 6238 l777: 6239 position, tokenIndex = position750, tokenIndex750 6240 { 6241 position783, tokenIndex783 := position, tokenIndex 6242 if buffer[position] != rune('v') { 6243 goto l784 6244 } 6245 position++ 6246 goto l783 6247 l784: 6248 position, tokenIndex = position783, tokenIndex783 6249 if buffer[position] != rune('V') { 6250 goto l782 6251 } 6252 position++ 6253 } 6254 l783: 6255 { 6256 position785, tokenIndex785 := position, tokenIndex 6257 if buffer[position] != rune('l') { 6258 goto l786 6259 } 6260 position++ 6261 goto l785 6262 l786: 6263 position, tokenIndex = position785, tokenIndex785 6264 if buffer[position] != rune('L') { 6265 goto l782 6266 } 6267 position++ 6268 } 6269 l785: 6270 if buffer[position] != rune('6') { 6271 goto l782 6272 } 6273 position++ 6274 if buffer[position] != rune('4') { 6275 goto l782 6276 } 6277 position++ 6278 goto l750 6279 l782: 6280 position, tokenIndex = position750, tokenIndex750 6281 { 6282 position788, tokenIndex788 := position, tokenIndex 6283 if buffer[position] != rune('v') { 6284 goto l789 6285 } 6286 position++ 6287 goto l788 6288 l789: 6289 position, tokenIndex = position788, tokenIndex788 6290 if buffer[position] != rune('V') { 6291 goto l787 6292 } 6293 position++ 6294 } 6295 l788: 6296 { 6297 position790, tokenIndex790 := position, tokenIndex 6298 if buffer[position] != rune('l') { 6299 goto l791 6300 } 6301 position++ 6302 goto l790 6303 l791: 6304 position, tokenIndex = position790, tokenIndex790 6305 if buffer[position] != rune('L') { 6306 goto l787 6307 } 6308 position++ 6309 } 6310 l790: 6311 if buffer[position] != rune('1') { 6312 goto l787 6313 } 6314 position++ 6315 if buffer[position] != rune('2') { 6316 goto l787 6317 } 6318 position++ 6319 if buffer[position] != rune('8') { 6320 goto l787 6321 } 6322 position++ 6323 goto l750 6324 l787: 6325 position, tokenIndex = position750, tokenIndex750 6326 { 6327 position793, tokenIndex793 := position, tokenIndex 6328 if buffer[position] != rune('v') { 6329 goto l794 6330 } 6331 position++ 6332 goto l793 6333 l794: 6334 position, tokenIndex = position793, tokenIndex793 6335 if buffer[position] != rune('V') { 6336 goto l792 6337 } 6338 position++ 6339 } 6340 l793: 6341 { 6342 position795, tokenIndex795 := position, tokenIndex 6343 if buffer[position] != rune('l') { 6344 goto l796 6345 } 6346 position++ 6347 goto l795 6348 l796: 6349 position, tokenIndex = position795, tokenIndex795 6350 if buffer[position] != rune('L') { 6351 goto l792 6352 } 6353 position++ 6354 } 6355 l795: 6356 if buffer[position] != rune('2') { 6357 goto l792 6358 } 6359 position++ 6360 if buffer[position] != rune('5') { 6361 goto l792 6362 } 6363 position++ 6364 if buffer[position] != rune('6') { 6365 goto l792 6366 } 6367 position++ 6368 goto l750 6369 l792: 6370 position, tokenIndex = position750, tokenIndex750 6371 { 6372 position798, tokenIndex798 := position, tokenIndex 6373 if buffer[position] != rune('m') { 6374 goto l799 6375 } 6376 position++ 6377 goto l798 6378 l799: 6379 position, tokenIndex = position798, tokenIndex798 6380 if buffer[position] != rune('M') { 6381 goto l797 6382 } 6383 position++ 6384 } 6385 l798: 6386 { 6387 position800, tokenIndex800 := position, tokenIndex 6388 if buffer[position] != rune('u') { 6389 goto l801 6390 } 6391 position++ 6392 goto l800 6393 l801: 6394 position, tokenIndex = position800, tokenIndex800 6395 if buffer[position] != rune('U') { 6396 goto l797 6397 } 6398 position++ 6399 } 6400 l800: 6401 { 6402 position802, tokenIndex802 := position, tokenIndex 6403 if buffer[position] != rune('l') { 6404 goto l803 6405 } 6406 position++ 6407 goto l802 6408 l803: 6409 position, tokenIndex = position802, tokenIndex802 6410 if buffer[position] != rune('L') { 6411 goto l797 6412 } 6413 position++ 6414 } 6415 l802: 6416 if buffer[position] != rune('3') { 6417 goto l797 6418 } 6419 position++ 6420 goto l750 6421 l797: 6422 position, tokenIndex = position750, tokenIndex750 6423 { 6424 position805, tokenIndex805 := position, tokenIndex 6425 if buffer[position] != rune('m') { 6426 goto l806 6427 } 6428 position++ 6429 goto l805 6430 l806: 6431 position, tokenIndex = position805, tokenIndex805 6432 if buffer[position] != rune('M') { 6433 goto l804 6434 } 6435 position++ 6436 } 6437 l805: 6438 { 6439 position807, tokenIndex807 := position, tokenIndex 6440 if buffer[position] != rune('u') { 6441 goto l808 6442 } 6443 position++ 6444 goto l807 6445 l808: 6446 position, tokenIndex = position807, tokenIndex807 6447 if buffer[position] != rune('U') { 6448 goto l804 6449 } 6450 position++ 6451 } 6452 l807: 6453 { 6454 position809, tokenIndex809 := position, tokenIndex 6455 if buffer[position] != rune('l') { 6456 goto l810 6457 } 6458 position++ 6459 goto l809 6460 l810: 6461 position, tokenIndex = position809, tokenIndex809 6462 if buffer[position] != rune('L') { 6463 goto l804 6464 } 6465 position++ 6466 } 6467 l809: 6468 if buffer[position] != rune('4') { 6469 goto l804 6470 } 6471 position++ 6472 goto l750 6473 l804: 6474 position, tokenIndex = position750, tokenIndex750 6475 { 6476 position811, tokenIndex811 := position, tokenIndex 6477 if buffer[position] != rune('a') { 6478 goto l812 6479 } 6480 position++ 6481 goto l811 6482 l812: 6483 position, tokenIndex = position811, tokenIndex811 6484 if buffer[position] != rune('A') { 6485 goto l748 6486 } 6487 position++ 6488 } 6489 l811: 6490 { 6491 position813, tokenIndex813 := position, tokenIndex 6492 if buffer[position] != rune('l') { 6493 goto l814 6494 } 6495 position++ 6496 goto l813 6497 l814: 6498 position, tokenIndex = position813, tokenIndex813 6499 if buffer[position] != rune('L') { 6500 goto l748 6501 } 6502 position++ 6503 } 6504 l813: 6505 { 6506 position815, tokenIndex815 := position, tokenIndex 6507 if buffer[position] != rune('l') { 6508 goto l816 6509 } 6510 position++ 6511 goto l815 6512 l816: 6513 position, tokenIndex = position815, tokenIndex815 6514 if buffer[position] != rune('L') { 6515 goto l748 6516 } 6517 position++ 6518 } 6519 l815: 6520 } 6521 l750: 6522 { 6523 position817, tokenIndex817 := position, tokenIndex 6524 { 6525 position818, tokenIndex818 := position, tokenIndex 6526 if c := buffer[position]; c < rune('0') || c > rune('9') { 6527 goto l819 6528 } 6529 position++ 6530 goto l818 6531 l819: 6532 position, tokenIndex = position818, tokenIndex818 6533 if c := buffer[position]; c < rune('0') || c > rune('9') { 6534 goto l820 6535 } 6536 position++ 6537 goto l818 6538 l820: 6539 position, tokenIndex = position818, tokenIndex818 6540 { 6541 position822, tokenIndex822 := position, tokenIndex 6542 if c := buffer[position]; c < rune('a') || c > rune('z') { 6543 goto l823 6544 } 6545 position++ 6546 goto l822 6547 l823: 6548 position, tokenIndex = position822, tokenIndex822 6549 if c := buffer[position]; c < rune('A') || c > rune('Z') { 6550 goto l821 6551 } 6552 position++ 6553 } 6554 l822: 6555 goto l818 6556 l821: 6557 position, tokenIndex = position818, tokenIndex818 6558 if buffer[position] != rune('_') { 6559 goto l817 6560 } 6561 position++ 6562 } 6563 l818: 6564 goto l748 6565 l817: 6566 position, tokenIndex = position817, tokenIndex817 6567 } 6568 add(ruleSVE2SpecialValue, position749) 6569 } 6570 return true 6571 l748: 6572 position, tokenIndex = position748, tokenIndex748 6573 return false 6574 }, 6575 /* 49 MemoryRef <- <((SymbolRef BaseIndexScale) / SymbolRef / Low12BitsSymbolRef / (Offset* BaseIndexScale) / (SegmentRegister Offset BaseIndexScale) / (SegmentRegister BaseIndexScale) / (SegmentRegister Offset) / ARMBaseIndexScale / BaseIndexScale)> */ 6576 func() bool { 6577 position824, tokenIndex824 := position, tokenIndex 6578 { 6579 position825 := position 6580 { 6581 position826, tokenIndex826 := position, tokenIndex 6582 if !_rules[ruleSymbolRef]() { 6583 goto l827 6584 } 6585 if !_rules[ruleBaseIndexScale]() { 6586 goto l827 6587 } 6588 goto l826 6589 l827: 6590 position, tokenIndex = position826, tokenIndex826 6591 if !_rules[ruleSymbolRef]() { 6592 goto l828 6593 } 6594 goto l826 6595 l828: 6596 position, tokenIndex = position826, tokenIndex826 6597 if !_rules[ruleLow12BitsSymbolRef]() { 6598 goto l829 6599 } 6600 goto l826 6601 l829: 6602 position, tokenIndex = position826, tokenIndex826 6603 l831: 6604 { 6605 position832, tokenIndex832 := position, tokenIndex 6606 if !_rules[ruleOffset]() { 6607 goto l832 6608 } 6609 goto l831 6610 l832: 6611 position, tokenIndex = position832, tokenIndex832 6612 } 6613 if !_rules[ruleBaseIndexScale]() { 6614 goto l830 6615 } 6616 goto l826 6617 l830: 6618 position, tokenIndex = position826, tokenIndex826 6619 if !_rules[ruleSegmentRegister]() { 6620 goto l833 6621 } 6622 if !_rules[ruleOffset]() { 6623 goto l833 6624 } 6625 if !_rules[ruleBaseIndexScale]() { 6626 goto l833 6627 } 6628 goto l826 6629 l833: 6630 position, tokenIndex = position826, tokenIndex826 6631 if !_rules[ruleSegmentRegister]() { 6632 goto l834 6633 } 6634 if !_rules[ruleBaseIndexScale]() { 6635 goto l834 6636 } 6637 goto l826 6638 l834: 6639 position, tokenIndex = position826, tokenIndex826 6640 if !_rules[ruleSegmentRegister]() { 6641 goto l835 6642 } 6643 if !_rules[ruleOffset]() { 6644 goto l835 6645 } 6646 goto l826 6647 l835: 6648 position, tokenIndex = position826, tokenIndex826 6649 if !_rules[ruleARMBaseIndexScale]() { 6650 goto l836 6651 } 6652 goto l826 6653 l836: 6654 position, tokenIndex = position826, tokenIndex826 6655 if !_rules[ruleBaseIndexScale]() { 6656 goto l824 6657 } 6658 } 6659 l826: 6660 add(ruleMemoryRef, position825) 6661 } 6662 return true 6663 l824: 6664 position, tokenIndex = position824, tokenIndex824 6665 return false 6666 }, 6667 /* 50 SymbolRef <- <((Offset* '+')? (LocalSymbol / SymbolName) Offset* ('@' Section Offset*)?)> */ 6668 func() bool { 6669 position837, tokenIndex837 := position, tokenIndex 6670 { 6671 position838 := position 6672 { 6673 position839, tokenIndex839 := position, tokenIndex 6674 l841: 6675 { 6676 position842, tokenIndex842 := position, tokenIndex 6677 if !_rules[ruleOffset]() { 6678 goto l842 6679 } 6680 goto l841 6681 l842: 6682 position, tokenIndex = position842, tokenIndex842 6683 } 6684 if buffer[position] != rune('+') { 6685 goto l839 6686 } 6687 position++ 6688 goto l840 6689 l839: 6690 position, tokenIndex = position839, tokenIndex839 6691 } 6692 l840: 6693 { 6694 position843, tokenIndex843 := position, tokenIndex 6695 if !_rules[ruleLocalSymbol]() { 6696 goto l844 6697 } 6698 goto l843 6699 l844: 6700 position, tokenIndex = position843, tokenIndex843 6701 if !_rules[ruleSymbolName]() { 6702 goto l837 6703 } 6704 } 6705 l843: 6706 l845: 6707 { 6708 position846, tokenIndex846 := position, tokenIndex 6709 if !_rules[ruleOffset]() { 6710 goto l846 6711 } 6712 goto l845 6713 l846: 6714 position, tokenIndex = position846, tokenIndex846 6715 } 6716 { 6717 position847, tokenIndex847 := position, tokenIndex 6718 if buffer[position] != rune('@') { 6719 goto l847 6720 } 6721 position++ 6722 if !_rules[ruleSection]() { 6723 goto l847 6724 } 6725 l849: 6726 { 6727 position850, tokenIndex850 := position, tokenIndex 6728 if !_rules[ruleOffset]() { 6729 goto l850 6730 } 6731 goto l849 6732 l850: 6733 position, tokenIndex = position850, tokenIndex850 6734 } 6735 goto l848 6736 l847: 6737 position, tokenIndex = position847, tokenIndex847 6738 } 6739 l848: 6740 add(ruleSymbolRef, position838) 6741 } 6742 return true 6743 l837: 6744 position, tokenIndex = position837, tokenIndex837 6745 return false 6746 }, 6747 /* 51 Low12BitsSymbolRef <- <(':' ('l' / 'L') ('o' / 'O') '1' '2' ':' (LocalSymbol / SymbolName) Offset?)> */ 6748 func() bool { 6749 position851, tokenIndex851 := position, tokenIndex 6750 { 6751 position852 := position 6752 if buffer[position] != rune(':') { 6753 goto l851 6754 } 6755 position++ 6756 { 6757 position853, tokenIndex853 := position, tokenIndex 6758 if buffer[position] != rune('l') { 6759 goto l854 6760 } 6761 position++ 6762 goto l853 6763 l854: 6764 position, tokenIndex = position853, tokenIndex853 6765 if buffer[position] != rune('L') { 6766 goto l851 6767 } 6768 position++ 6769 } 6770 l853: 6771 { 6772 position855, tokenIndex855 := position, tokenIndex 6773 if buffer[position] != rune('o') { 6774 goto l856 6775 } 6776 position++ 6777 goto l855 6778 l856: 6779 position, tokenIndex = position855, tokenIndex855 6780 if buffer[position] != rune('O') { 6781 goto l851 6782 } 6783 position++ 6784 } 6785 l855: 6786 if buffer[position] != rune('1') { 6787 goto l851 6788 } 6789 position++ 6790 if buffer[position] != rune('2') { 6791 goto l851 6792 } 6793 position++ 6794 if buffer[position] != rune(':') { 6795 goto l851 6796 } 6797 position++ 6798 { 6799 position857, tokenIndex857 := position, tokenIndex 6800 if !_rules[ruleLocalSymbol]() { 6801 goto l858 6802 } 6803 goto l857 6804 l858: 6805 position, tokenIndex = position857, tokenIndex857 6806 if !_rules[ruleSymbolName]() { 6807 goto l851 6808 } 6809 } 6810 l857: 6811 { 6812 position859, tokenIndex859 := position, tokenIndex 6813 if !_rules[ruleOffset]() { 6814 goto l859 6815 } 6816 goto l860 6817 l859: 6818 position, tokenIndex = position859, tokenIndex859 6819 } 6820 l860: 6821 add(ruleLow12BitsSymbolRef, position852) 6822 } 6823 return true 6824 l851: 6825 position, tokenIndex = position851, tokenIndex851 6826 return false 6827 }, 6828 /* 52 ARMBaseIndexScale <- <('[' ARMRegister (',' WS? (('#' Offset (('*' [0-9]+) / ('*' '(' [0-9]+ Operator [0-9]+ ')') / ('+' [0-9]+)*)?) / ARMGOTLow12 / Low12BitsSymbolRef / ARMRegister) (',' WS? ARMConstantTweak)?)? ']' ARMPostincrement?)> */ 6829 func() bool { 6830 position861, tokenIndex861 := position, tokenIndex 6831 { 6832 position862 := position 6833 if buffer[position] != rune('[') { 6834 goto l861 6835 } 6836 position++ 6837 if !_rules[ruleARMRegister]() { 6838 goto l861 6839 } 6840 { 6841 position863, tokenIndex863 := position, tokenIndex 6842 if buffer[position] != rune(',') { 6843 goto l863 6844 } 6845 position++ 6846 { 6847 position865, tokenIndex865 := position, tokenIndex 6848 if !_rules[ruleWS]() { 6849 goto l865 6850 } 6851 goto l866 6852 l865: 6853 position, tokenIndex = position865, tokenIndex865 6854 } 6855 l866: 6856 { 6857 position867, tokenIndex867 := position, tokenIndex 6858 if buffer[position] != rune('#') { 6859 goto l868 6860 } 6861 position++ 6862 if !_rules[ruleOffset]() { 6863 goto l868 6864 } 6865 { 6866 position869, tokenIndex869 := position, tokenIndex 6867 { 6868 position871, tokenIndex871 := position, tokenIndex 6869 if buffer[position] != rune('*') { 6870 goto l872 6871 } 6872 position++ 6873 if c := buffer[position]; c < rune('0') || c > rune('9') { 6874 goto l872 6875 } 6876 position++ 6877 l873: 6878 { 6879 position874, tokenIndex874 := position, tokenIndex 6880 if c := buffer[position]; c < rune('0') || c > rune('9') { 6881 goto l874 6882 } 6883 position++ 6884 goto l873 6885 l874: 6886 position, tokenIndex = position874, tokenIndex874 6887 } 6888 goto l871 6889 l872: 6890 position, tokenIndex = position871, tokenIndex871 6891 if buffer[position] != rune('*') { 6892 goto l875 6893 } 6894 position++ 6895 if buffer[position] != rune('(') { 6896 goto l875 6897 } 6898 position++ 6899 if c := buffer[position]; c < rune('0') || c > rune('9') { 6900 goto l875 6901 } 6902 position++ 6903 l876: 6904 { 6905 position877, tokenIndex877 := position, tokenIndex 6906 if c := buffer[position]; c < rune('0') || c > rune('9') { 6907 goto l877 6908 } 6909 position++ 6910 goto l876 6911 l877: 6912 position, tokenIndex = position877, tokenIndex877 6913 } 6914 if !_rules[ruleOperator]() { 6915 goto l875 6916 } 6917 if c := buffer[position]; c < rune('0') || c > rune('9') { 6918 goto l875 6919 } 6920 position++ 6921 l878: 6922 { 6923 position879, tokenIndex879 := position, tokenIndex 6924 if c := buffer[position]; c < rune('0') || c > rune('9') { 6925 goto l879 6926 } 6927 position++ 6928 goto l878 6929 l879: 6930 position, tokenIndex = position879, tokenIndex879 6931 } 6932 if buffer[position] != rune(')') { 6933 goto l875 6934 } 6935 position++ 6936 goto l871 6937 l875: 6938 position, tokenIndex = position871, tokenIndex871 6939 l880: 6940 { 6941 position881, tokenIndex881 := position, tokenIndex 6942 if buffer[position] != rune('+') { 6943 goto l881 6944 } 6945 position++ 6946 if c := buffer[position]; c < rune('0') || c > rune('9') { 6947 goto l881 6948 } 6949 position++ 6950 l882: 6951 { 6952 position883, tokenIndex883 := position, tokenIndex 6953 if c := buffer[position]; c < rune('0') || c > rune('9') { 6954 goto l883 6955 } 6956 position++ 6957 goto l882 6958 l883: 6959 position, tokenIndex = position883, tokenIndex883 6960 } 6961 goto l880 6962 l881: 6963 position, tokenIndex = position881, tokenIndex881 6964 } 6965 } 6966 l871: 6967 goto l870 6968 6969 position, tokenIndex = position869, tokenIndex869 6970 } 6971 l870: 6972 goto l867 6973 l868: 6974 position, tokenIndex = position867, tokenIndex867 6975 if !_rules[ruleARMGOTLow12]() { 6976 goto l884 6977 } 6978 goto l867 6979 l884: 6980 position, tokenIndex = position867, tokenIndex867 6981 if !_rules[ruleLow12BitsSymbolRef]() { 6982 goto l885 6983 } 6984 goto l867 6985 l885: 6986 position, tokenIndex = position867, tokenIndex867 6987 if !_rules[ruleARMRegister]() { 6988 goto l863 6989 } 6990 } 6991 l867: 6992 { 6993 position886, tokenIndex886 := position, tokenIndex 6994 if buffer[position] != rune(',') { 6995 goto l886 6996 } 6997 position++ 6998 { 6999 position888, tokenIndex888 := position, tokenIndex 7000 if !_rules[ruleWS]() { 7001 goto l888 7002 } 7003 goto l889 7004 l888: 7005 position, tokenIndex = position888, tokenIndex888 7006 } 7007 l889: 7008 if !_rules[ruleARMConstantTweak]() { 7009 goto l886 7010 } 7011 goto l887 7012 l886: 7013 position, tokenIndex = position886, tokenIndex886 7014 } 7015 l887: 7016 goto l864 7017 l863: 7018 position, tokenIndex = position863, tokenIndex863 7019 } 7020 l864: 7021 if buffer[position] != rune(']') { 7022 goto l861 7023 } 7024 position++ 7025 { 7026 position890, tokenIndex890 := position, tokenIndex 7027 if !_rules[ruleARMPostincrement]() { 7028 goto l890 7029 } 7030 goto l891 7031 l890: 7032 position, tokenIndex = position890, tokenIndex890 7033 } 7034 l891: 7035 add(ruleARMBaseIndexScale, position862) 7036 } 7037 return true 7038 l861: 7039 position, tokenIndex = position861, tokenIndex861 7040 return false 7041 }, 7042 /* 53 ARMGOTLow12 <- <(':' ('g' / 'G') ('o' / 'O') ('t' / 'T') '_' ('l' / 'L') ('o' / 'O') '1' '2' ':' SymbolName)> */ 7043 func() bool { 7044 position892, tokenIndex892 := position, tokenIndex 7045 { 7046 position893 := position 7047 if buffer[position] != rune(':') { 7048 goto l892 7049 } 7050 position++ 7051 { 7052 position894, tokenIndex894 := position, tokenIndex 7053 if buffer[position] != rune('g') { 7054 goto l895 7055 } 7056 position++ 7057 goto l894 7058 l895: 7059 position, tokenIndex = position894, tokenIndex894 7060 if buffer[position] != rune('G') { 7061 goto l892 7062 } 7063 position++ 7064 } 7065 l894: 7066 { 7067 position896, tokenIndex896 := position, tokenIndex 7068 if buffer[position] != rune('o') { 7069 goto l897 7070 } 7071 position++ 7072 goto l896 7073 l897: 7074 position, tokenIndex = position896, tokenIndex896 7075 if buffer[position] != rune('O') { 7076 goto l892 7077 } 7078 position++ 7079 } 7080 l896: 7081 { 7082 position898, tokenIndex898 := position, tokenIndex 7083 if buffer[position] != rune('t') { 7084 goto l899 7085 } 7086 position++ 7087 goto l898 7088 l899: 7089 position, tokenIndex = position898, tokenIndex898 7090 if buffer[position] != rune('T') { 7091 goto l892 7092 } 7093 position++ 7094 } 7095 l898: 7096 if buffer[position] != rune('_') { 7097 goto l892 7098 } 7099 position++ 7100 { 7101 position900, tokenIndex900 := position, tokenIndex 7102 if buffer[position] != rune('l') { 7103 goto l901 7104 } 7105 position++ 7106 goto l900 7107 l901: 7108 position, tokenIndex = position900, tokenIndex900 7109 if buffer[position] != rune('L') { 7110 goto l892 7111 } 7112 position++ 7113 } 7114 l900: 7115 { 7116 position902, tokenIndex902 := position, tokenIndex 7117 if buffer[position] != rune('o') { 7118 goto l903 7119 } 7120 position++ 7121 goto l902 7122 l903: 7123 position, tokenIndex = position902, tokenIndex902 7124 if buffer[position] != rune('O') { 7125 goto l892 7126 } 7127 position++ 7128 } 7129 l902: 7130 if buffer[position] != rune('1') { 7131 goto l892 7132 } 7133 position++ 7134 if buffer[position] != rune('2') { 7135 goto l892 7136 } 7137 position++ 7138 if buffer[position] != rune(':') { 7139 goto l892 7140 } 7141 position++ 7142 if !_rules[ruleSymbolName]() { 7143 goto l892 7144 } 7145 add(ruleARMGOTLow12, position893) 7146 } 7147 return true 7148 l892: 7149 position, tokenIndex = position892, tokenIndex892 7150 return false 7151 }, 7152 /* 54 ARMPostincrement <- <'!'> */ 7153 func() bool { 7154 position904, tokenIndex904 := position, tokenIndex 7155 { 7156 position905 := position 7157 if buffer[position] != rune('!') { 7158 goto l904 7159 } 7160 position++ 7161 add(ruleARMPostincrement, position905) 7162 } 7163 return true 7164 l904: 7165 position, tokenIndex = position904, tokenIndex904 7166 return false 7167 }, 7168 /* 55 BaseIndexScale <- <('(' RegisterOrConstant? WS? (',' WS? RegisterOrConstant WS? (',' [0-9]+)?)? ')')> */ 7169 func() bool { 7170 position906, tokenIndex906 := position, tokenIndex 7171 { 7172 position907 := position 7173 if buffer[position] != rune('(') { 7174 goto l906 7175 } 7176 position++ 7177 { 7178 position908, tokenIndex908 := position, tokenIndex 7179 if !_rules[ruleRegisterOrConstant]() { 7180 goto l908 7181 } 7182 goto l909 7183 l908: 7184 position, tokenIndex = position908, tokenIndex908 7185 } 7186 l909: 7187 { 7188 position910, tokenIndex910 := position, tokenIndex 7189 if !_rules[ruleWS]() { 7190 goto l910 7191 } 7192 goto l911 7193 l910: 7194 position, tokenIndex = position910, tokenIndex910 7195 } 7196 l911: 7197 { 7198 position912, tokenIndex912 := position, tokenIndex 7199 if buffer[position] != rune(',') { 7200 goto l912 7201 } 7202 position++ 7203 { 7204 position914, tokenIndex914 := position, tokenIndex 7205 if !_rules[ruleWS]() { 7206 goto l914 7207 } 7208 goto l915 7209 l914: 7210 position, tokenIndex = position914, tokenIndex914 7211 } 7212 l915: 7213 if !_rules[ruleRegisterOrConstant]() { 7214 goto l912 7215 } 7216 { 7217 position916, tokenIndex916 := position, tokenIndex 7218 if !_rules[ruleWS]() { 7219 goto l916 7220 } 7221 goto l917 7222 l916: 7223 position, tokenIndex = position916, tokenIndex916 7224 } 7225 l917: 7226 { 7227 position918, tokenIndex918 := position, tokenIndex 7228 if buffer[position] != rune(',') { 7229 goto l918 7230 } 7231 position++ 7232 if c := buffer[position]; c < rune('0') || c > rune('9') { 7233 goto l918 7234 } 7235 position++ 7236 l920: 7237 { 7238 position921, tokenIndex921 := position, tokenIndex 7239 if c := buffer[position]; c < rune('0') || c > rune('9') { 7240 goto l921 7241 } 7242 position++ 7243 goto l920 7244 l921: 7245 position, tokenIndex = position921, tokenIndex921 7246 } 7247 goto l919 7248 l918: 7249 position, tokenIndex = position918, tokenIndex918 7250 } 7251 l919: 7252 goto l913 7253 l912: 7254 position, tokenIndex = position912, tokenIndex912 7255 } 7256 l913: 7257 if buffer[position] != rune(')') { 7258 goto l906 7259 } 7260 position++ 7261 add(ruleBaseIndexScale, position907) 7262 } 7263 return true 7264 l906: 7265 position, tokenIndex = position906, tokenIndex906 7266 return false 7267 }, 7268 /* 56 Operator <- <('+' / '-')> */ 7269 func() bool { 7270 position922, tokenIndex922 := position, tokenIndex 7271 { 7272 position923 := position 7273 { 7274 position924, tokenIndex924 := position, tokenIndex 7275 if buffer[position] != rune('+') { 7276 goto l925 7277 } 7278 position++ 7279 goto l924 7280 l925: 7281 position, tokenIndex = position924, tokenIndex924 7282 if buffer[position] != rune('-') { 7283 goto l922 7284 } 7285 position++ 7286 } 7287 l924: 7288 add(ruleOperator, position923) 7289 } 7290 return true 7291 l922: 7292 position, tokenIndex = position922, tokenIndex922 7293 return false 7294 }, 7295 /* 57 Offset <- <('+'? '-'? (('0' ('b' / 'B') ('0' / '1')+) / ('0' ('x' / 'X') ([0-9] / [0-9] / ([a-f] / [A-F]))+) / [0-9]+))> */ 7296 func() bool { 7297 position926, tokenIndex926 := position, tokenIndex 7298 { 7299 position927 := position 7300 { 7301 position928, tokenIndex928 := position, tokenIndex 7302 if buffer[position] != rune('+') { 7303 goto l928 7304 } 7305 position++ 7306 goto l929 7307 l928: 7308 position, tokenIndex = position928, tokenIndex928 7309 } 7310 l929: 7311 { 7312 position930, tokenIndex930 := position, tokenIndex 7313 if buffer[position] != rune('-') { 7314 goto l930 7315 } 7316 position++ 7317 goto l931 7318 l930: 7319 position, tokenIndex = position930, tokenIndex930 7320 } 7321 l931: 7322 { 7323 position932, tokenIndex932 := position, tokenIndex 7324 if buffer[position] != rune('0') { 7325 goto l933 7326 } 7327 position++ 7328 { 7329 position934, tokenIndex934 := position, tokenIndex 7330 if buffer[position] != rune('b') { 7331 goto l935 7332 } 7333 position++ 7334 goto l934 7335 l935: 7336 position, tokenIndex = position934, tokenIndex934 7337 if buffer[position] != rune('B') { 7338 goto l933 7339 } 7340 position++ 7341 } 7342 l934: 7343 { 7344 position938, tokenIndex938 := position, tokenIndex 7345 if buffer[position] != rune('0') { 7346 goto l939 7347 } 7348 position++ 7349 goto l938 7350 l939: 7351 position, tokenIndex = position938, tokenIndex938 7352 if buffer[position] != rune('1') { 7353 goto l933 7354 } 7355 position++ 7356 } 7357 l938: 7358 l936: 7359 { 7360 position937, tokenIndex937 := position, tokenIndex 7361 { 7362 position940, tokenIndex940 := position, tokenIndex 7363 if buffer[position] != rune('0') { 7364 goto l941 7365 } 7366 position++ 7367 goto l940 7368 l941: 7369 position, tokenIndex = position940, tokenIndex940 7370 if buffer[position] != rune('1') { 7371 goto l937 7372 } 7373 position++ 7374 } 7375 l940: 7376 goto l936 7377 l937: 7378 position, tokenIndex = position937, tokenIndex937 7379 } 7380 goto l932 7381 l933: 7382 position, tokenIndex = position932, tokenIndex932 7383 if buffer[position] != rune('0') { 7384 goto l942 7385 } 7386 position++ 7387 { 7388 position943, tokenIndex943 := position, tokenIndex 7389 if buffer[position] != rune('x') { 7390 goto l944 7391 } 7392 position++ 7393 goto l943 7394 l944: 7395 position, tokenIndex = position943, tokenIndex943 7396 if buffer[position] != rune('X') { 7397 goto l942 7398 } 7399 position++ 7400 } 7401 l943: 7402 { 7403 position947, tokenIndex947 := position, tokenIndex 7404 if c := buffer[position]; c < rune('0') || c > rune('9') { 7405 goto l948 7406 } 7407 position++ 7408 goto l947 7409 l948: 7410 position, tokenIndex = position947, tokenIndex947 7411 if c := buffer[position]; c < rune('0') || c > rune('9') { 7412 goto l949 7413 } 7414 position++ 7415 goto l947 7416 l949: 7417 position, tokenIndex = position947, tokenIndex947 7418 { 7419 position950, tokenIndex950 := position, tokenIndex 7420 if c := buffer[position]; c < rune('a') || c > rune('f') { 7421 goto l951 7422 } 7423 position++ 7424 goto l950 7425 l951: 7426 position, tokenIndex = position950, tokenIndex950 7427 if c := buffer[position]; c < rune('A') || c > rune('F') { 7428 goto l942 7429 } 7430 position++ 7431 } 7432 l950: 7433 } 7434 l947: 7435 l945: 7436 { 7437 position946, tokenIndex946 := position, tokenIndex 7438 { 7439 position952, tokenIndex952 := position, tokenIndex 7440 if c := buffer[position]; c < rune('0') || c > rune('9') { 7441 goto l953 7442 } 7443 position++ 7444 goto l952 7445 l953: 7446 position, tokenIndex = position952, tokenIndex952 7447 if c := buffer[position]; c < rune('0') || c > rune('9') { 7448 goto l954 7449 } 7450 position++ 7451 goto l952 7452 l954: 7453 position, tokenIndex = position952, tokenIndex952 7454 { 7455 position955, tokenIndex955 := position, tokenIndex 7456 if c := buffer[position]; c < rune('a') || c > rune('f') { 7457 goto l956 7458 } 7459 position++ 7460 goto l955 7461 l956: 7462 position, tokenIndex = position955, tokenIndex955 7463 if c := buffer[position]; c < rune('A') || c > rune('F') { 7464 goto l946 7465 } 7466 position++ 7467 } 7468 l955: 7469 } 7470 l952: 7471 goto l945 7472 l946: 7473 position, tokenIndex = position946, tokenIndex946 7474 } 7475 goto l932 7476 l942: 7477 position, tokenIndex = position932, tokenIndex932 7478 if c := buffer[position]; c < rune('0') || c > rune('9') { 7479 goto l926 7480 } 7481 position++ 7482 l957: 7483 { 7484 position958, tokenIndex958 := position, tokenIndex 7485 if c := buffer[position]; c < rune('0') || c > rune('9') { 7486 goto l958 7487 } 7488 position++ 7489 goto l957 7490 l958: 7491 position, tokenIndex = position958, tokenIndex958 7492 } 7493 } 7494 l932: 7495 add(ruleOffset, position927) 7496 } 7497 return true 7498 l926: 7499 position, tokenIndex = position926, tokenIndex926 7500 return false 7501 }, 7502 /* 58 Section <- <([a-z] / [A-Z] / '@')+> */ 7503 func() bool { 7504 position959, tokenIndex959 := position, tokenIndex 7505 { 7506 position960 := position 7507 { 7508 position963, tokenIndex963 := position, tokenIndex 7509 if c := buffer[position]; c < rune('a') || c > rune('z') { 7510 goto l964 7511 } 7512 position++ 7513 goto l963 7514 l964: 7515 position, tokenIndex = position963, tokenIndex963 7516 if c := buffer[position]; c < rune('A') || c > rune('Z') { 7517 goto l965 7518 } 7519 position++ 7520 goto l963 7521 l965: 7522 position, tokenIndex = position963, tokenIndex963 7523 if buffer[position] != rune('@') { 7524 goto l959 7525 } 7526 position++ 7527 } 7528 l963: 7529 l961: 7530 { 7531 position962, tokenIndex962 := position, tokenIndex 7532 { 7533 position966, tokenIndex966 := position, tokenIndex 7534 if c := buffer[position]; c < rune('a') || c > rune('z') { 7535 goto l967 7536 } 7537 position++ 7538 goto l966 7539 l967: 7540 position, tokenIndex = position966, tokenIndex966 7541 if c := buffer[position]; c < rune('A') || c > rune('Z') { 7542 goto l968 7543 } 7544 position++ 7545 goto l966 7546 l968: 7547 position, tokenIndex = position966, tokenIndex966 7548 if buffer[position] != rune('@') { 7549 goto l962 7550 } 7551 position++ 7552 } 7553 l966: 7554 goto l961 7555 l962: 7556 position, tokenIndex = position962, tokenIndex962 7557 } 7558 add(ruleSection, position960) 7559 } 7560 return true 7561 l959: 7562 position, tokenIndex = position959, tokenIndex959 7563 return false 7564 }, 7565 /* 59 SegmentRegister <- <('%' ([c-g] / 's') ('s' ':'))> */ 7566 func() bool { 7567 position969, tokenIndex969 := position, tokenIndex 7568 { 7569 position970 := position 7570 if buffer[position] != rune('%') { 7571 goto l969 7572 } 7573 position++ 7574 { 7575 position971, tokenIndex971 := position, tokenIndex 7576 if c := buffer[position]; c < rune('c') || c > rune('g') { 7577 goto l972 7578 } 7579 position++ 7580 goto l971 7581 l972: 7582 position, tokenIndex = position971, tokenIndex971 7583 if buffer[position] != rune('s') { 7584 goto l969 7585 } 7586 position++ 7587 } 7588 l971: 7589 if buffer[position] != rune('s') { 7590 goto l969 7591 } 7592 position++ 7593 if buffer[position] != rune(':') { 7594 goto l969 7595 } 7596 position++ 7597 add(ruleSegmentRegister, position970) 7598 } 7599 return true 7600 l969: 7601 position, tokenIndex = position969, tokenIndex969 7602 return false 7603 }, 7604 } 7605 p.rules = _rules 7606 return nil 7607} 7608