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