in util/fipstools/delocate/delocate.peg.go [367:8064]
func (p *Asm) Init(options ...func(*Asm) error) error {
var (
max token32
position, tokenIndex uint32
buffer []rune
)
for _, option := range options {
err := option(p)
if err != nil {
return err
}
}
p.reset = func() {
max = token32{}
position, tokenIndex = 0, 0
p.buffer = []rune(p.Buffer)
if len(p.buffer) == 0 || p.buffer[len(p.buffer)-1] != endSymbol {
p.buffer = append(p.buffer, endSymbol)
}
buffer = p.buffer
}
p.reset()
_rules := p.rules
tree := p.tokens32
p.parse = func(rule ...int) error {
r := 1
if len(rule) > 0 {
r = rule[0]
}
matches := p.rules[r]()
p.tokens32 = tree
if matches {
p.Trim(tokenIndex)
return nil
}
return &parseError{p, max}
}
add := func(rule pegRule, begin uint32) {
tree.Add(rule, begin, position, tokenIndex)
tokenIndex++
if begin != position && position > max.end {
max = token32{rule, begin, position}
}
}
matchDot := func() bool {
if buffer[position] != endSymbol {
position++
return true
}
return false
}
/*matchChar := func(c byte) bool {
if buffer[position] == c {
position++
return true
}
return false
}*/
/*matchRange := func(lower byte, upper byte) bool {
if c := buffer[position]; c >= lower && c <= upper {
position++
return true
}
return false
}*/
_rules = [...]func() bool{
nil,
/* 0 AsmFile <- <(Statement* !.)> */
func() bool {
position0, tokenIndex0 := position, tokenIndex
{
position1 := position
l2:
{
position3, tokenIndex3 := position, tokenIndex
if !_rules[ruleStatement]() {
goto l3
}
goto l2
l3:
position, tokenIndex = position3, tokenIndex3
}
{
position4, tokenIndex4 := position, tokenIndex
if !matchDot() {
goto l4
}
goto l0
l4:
position, tokenIndex = position4, tokenIndex4
}
add(ruleAsmFile, position1)
}
return true
l0:
position, tokenIndex = position0, tokenIndex0
return false
},
/* 1 Statement <- <(WS? (Label / ((GlobalDirective / LocationDirective / LabelContainingDirective / ZeroDirective / Instruction / Directive / Comment / ) WS? ((Comment? '\n') / ';'))))> */
func() bool {
position5, tokenIndex5 := position, tokenIndex
{
position6 := position
{
position7, tokenIndex7 := position, tokenIndex
if !_rules[ruleWS]() {
goto l7
}
goto l8
l7:
position, tokenIndex = position7, tokenIndex7
}
l8:
{
position9, tokenIndex9 := position, tokenIndex
if !_rules[ruleLabel]() {
goto l10
}
goto l9
l10:
position, tokenIndex = position9, tokenIndex9
{
position11, tokenIndex11 := position, tokenIndex
if !_rules[ruleGlobalDirective]() {
goto l12
}
goto l11
l12:
position, tokenIndex = position11, tokenIndex11
if !_rules[ruleLocationDirective]() {
goto l13
}
goto l11
l13:
position, tokenIndex = position11, tokenIndex11
if !_rules[ruleLabelContainingDirective]() {
goto l14
}
goto l11
l14:
position, tokenIndex = position11, tokenIndex11
if !_rules[ruleZeroDirective]() {
goto l15
}
goto l11
l15:
position, tokenIndex = position11, tokenIndex11
if !_rules[ruleInstruction]() {
goto l16
}
goto l11
l16:
position, tokenIndex = position11, tokenIndex11
if !_rules[ruleDirective]() {
goto l17
}
goto l11
l17:
position, tokenIndex = position11, tokenIndex11
if !_rules[ruleComment]() {
goto l18
}
goto l11
l18:
position, tokenIndex = position11, tokenIndex11
}
l11:
{
position19, tokenIndex19 := position, tokenIndex
if !_rules[ruleWS]() {
goto l19
}
goto l20
l19:
position, tokenIndex = position19, tokenIndex19
}
l20:
{
position21, tokenIndex21 := position, tokenIndex
{
position23, tokenIndex23 := position, tokenIndex
if !_rules[ruleComment]() {
goto l23
}
goto l24
l23:
position, tokenIndex = position23, tokenIndex23
}
l24:
if buffer[position] != rune('\n') {
goto l22
}
position++
goto l21
l22:
position, tokenIndex = position21, tokenIndex21
if buffer[position] != rune(';') {
goto l5
}
position++
}
l21:
}
l9:
add(ruleStatement, position6)
}
return true
l5:
position, tokenIndex = position5, tokenIndex5
return false
},
/* 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)> */
func() bool {
position25, tokenIndex25 := position, tokenIndex
{
position26 := position
{
position27, tokenIndex27 := position, tokenIndex
if buffer[position] != rune('.') {
goto l28
}
position++
{
position29, tokenIndex29 := position, tokenIndex
if buffer[position] != rune('g') {
goto l30
}
position++
goto l29
l30:
position, tokenIndex = position29, tokenIndex29
if buffer[position] != rune('G') {
goto l28
}
position++
}
l29:
{
position31, tokenIndex31 := position, tokenIndex
if buffer[position] != rune('l') {
goto l32
}
position++
goto l31
l32:
position, tokenIndex = position31, tokenIndex31
if buffer[position] != rune('L') {
goto l28
}
position++
}
l31:
{
position33, tokenIndex33 := position, tokenIndex
if buffer[position] != rune('o') {
goto l34
}
position++
goto l33
l34:
position, tokenIndex = position33, tokenIndex33
if buffer[position] != rune('O') {
goto l28
}
position++
}
l33:
{
position35, tokenIndex35 := position, tokenIndex
if buffer[position] != rune('b') {
goto l36
}
position++
goto l35
l36:
position, tokenIndex = position35, tokenIndex35
if buffer[position] != rune('B') {
goto l28
}
position++
}
l35:
{
position37, tokenIndex37 := position, tokenIndex
if buffer[position] != rune('a') {
goto l38
}
position++
goto l37
l38:
position, tokenIndex = position37, tokenIndex37
if buffer[position] != rune('A') {
goto l28
}
position++
}
l37:
{
position39, tokenIndex39 := position, tokenIndex
if buffer[position] != rune('l') {
goto l40
}
position++
goto l39
l40:
position, tokenIndex = position39, tokenIndex39
if buffer[position] != rune('L') {
goto l28
}
position++
}
l39:
goto l27
l28:
position, tokenIndex = position27, tokenIndex27
if buffer[position] != rune('.') {
goto l25
}
position++
{
position41, tokenIndex41 := position, tokenIndex
if buffer[position] != rune('g') {
goto l42
}
position++
goto l41
l42:
position, tokenIndex = position41, tokenIndex41
if buffer[position] != rune('G') {
goto l25
}
position++
}
l41:
{
position43, tokenIndex43 := position, tokenIndex
if buffer[position] != rune('l') {
goto l44
}
position++
goto l43
l44:
position, tokenIndex = position43, tokenIndex43
if buffer[position] != rune('L') {
goto l25
}
position++
}
l43:
{
position45, tokenIndex45 := position, tokenIndex
if buffer[position] != rune('o') {
goto l46
}
position++
goto l45
l46:
position, tokenIndex = position45, tokenIndex45
if buffer[position] != rune('O') {
goto l25
}
position++
}
l45:
{
position47, tokenIndex47 := position, tokenIndex
if buffer[position] != rune('b') {
goto l48
}
position++
goto l47
l48:
position, tokenIndex = position47, tokenIndex47
if buffer[position] != rune('B') {
goto l25
}
position++
}
l47:
{
position49, tokenIndex49 := position, tokenIndex
if buffer[position] != rune('l') {
goto l50
}
position++
goto l49
l50:
position, tokenIndex = position49, tokenIndex49
if buffer[position] != rune('L') {
goto l25
}
position++
}
l49:
}
l27:
if !_rules[ruleWS]() {
goto l25
}
if !_rules[ruleSymbolName]() {
goto l25
}
add(ruleGlobalDirective, position26)
}
return true
l25:
position, tokenIndex = position25, tokenIndex25
return false
},
/* 3 Directive <- <('.' DirectiveName (WS Args)?)> */
func() bool {
position51, tokenIndex51 := position, tokenIndex
{
position52 := position
if buffer[position] != rune('.') {
goto l51
}
position++
if !_rules[ruleDirectiveName]() {
goto l51
}
{
position53, tokenIndex53 := position, tokenIndex
if !_rules[ruleWS]() {
goto l53
}
if !_rules[ruleArgs]() {
goto l53
}
goto l54
l53:
position, tokenIndex = position53, tokenIndex53
}
l54:
add(ruleDirective, position52)
}
return true
l51:
position, tokenIndex = position51, tokenIndex51
return false
},
/* 4 DirectiveName <- <([a-z] / [A-Z] / ([0-9] / [0-9]) / '_')+> */
func() bool {
position55, tokenIndex55 := position, tokenIndex
{
position56 := position
{
position59, tokenIndex59 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l60
}
position++
goto l59
l60:
position, tokenIndex = position59, tokenIndex59
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l61
}
position++
goto l59
l61:
position, tokenIndex = position59, tokenIndex59
{
position63, tokenIndex63 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l64
}
position++
goto l63
l64:
position, tokenIndex = position63, tokenIndex63
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l62
}
position++
}
l63:
goto l59
l62:
position, tokenIndex = position59, tokenIndex59
if buffer[position] != rune('_') {
goto l55
}
position++
}
l59:
l57:
{
position58, tokenIndex58 := position, tokenIndex
{
position65, tokenIndex65 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l66
}
position++
goto l65
l66:
position, tokenIndex = position65, tokenIndex65
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l67
}
position++
goto l65
l67:
position, tokenIndex = position65, tokenIndex65
{
position69, tokenIndex69 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l70
}
position++
goto l69
l70:
position, tokenIndex = position69, tokenIndex69
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l68
}
position++
}
l69:
goto l65
l68:
position, tokenIndex = position65, tokenIndex65
if buffer[position] != rune('_') {
goto l58
}
position++
}
l65:
goto l57
l58:
position, tokenIndex = position58, tokenIndex58
}
add(ruleDirectiveName, position56)
}
return true
l55:
position, tokenIndex = position55, tokenIndex55
return false
},
/* 5 LocationDirective <- <(FileDirective / LocDirective)> */
func() bool {
position71, tokenIndex71 := position, tokenIndex
{
position72 := position
{
position73, tokenIndex73 := position, tokenIndex
if !_rules[ruleFileDirective]() {
goto l74
}
goto l73
l74:
position, tokenIndex = position73, tokenIndex73
if !_rules[ruleLocDirective]() {
goto l71
}
}
l73:
add(ruleLocationDirective, position72)
}
return true
l71:
position, tokenIndex = position71, tokenIndex71
return false
},
/* 6 ZeroDirective <- <('.' ('z' / 'Z') ('e' / 'E') ('r' / 'R') ('o' / 'O') WS (!('#' / '\n') .)+)> */
func() bool {
position75, tokenIndex75 := position, tokenIndex
{
position76 := position
if buffer[position] != rune('.') {
goto l75
}
position++
{
position77, tokenIndex77 := position, tokenIndex
if buffer[position] != rune('z') {
goto l78
}
position++
goto l77
l78:
position, tokenIndex = position77, tokenIndex77
if buffer[position] != rune('Z') {
goto l75
}
position++
}
l77:
{
position79, tokenIndex79 := position, tokenIndex
if buffer[position] != rune('e') {
goto l80
}
position++
goto l79
l80:
position, tokenIndex = position79, tokenIndex79
if buffer[position] != rune('E') {
goto l75
}
position++
}
l79:
{
position81, tokenIndex81 := position, tokenIndex
if buffer[position] != rune('r') {
goto l82
}
position++
goto l81
l82:
position, tokenIndex = position81, tokenIndex81
if buffer[position] != rune('R') {
goto l75
}
position++
}
l81:
{
position83, tokenIndex83 := position, tokenIndex
if buffer[position] != rune('o') {
goto l84
}
position++
goto l83
l84:
position, tokenIndex = position83, tokenIndex83
if buffer[position] != rune('O') {
goto l75
}
position++
}
l83:
if !_rules[ruleWS]() {
goto l75
}
{
position87, tokenIndex87 := position, tokenIndex
{
position88, tokenIndex88 := position, tokenIndex
if buffer[position] != rune('#') {
goto l89
}
position++
goto l88
l89:
position, tokenIndex = position88, tokenIndex88
if buffer[position] != rune('\n') {
goto l87
}
position++
}
l88:
goto l75
l87:
position, tokenIndex = position87, tokenIndex87
}
if !matchDot() {
goto l75
}
l85:
{
position86, tokenIndex86 := position, tokenIndex
{
position90, tokenIndex90 := position, tokenIndex
{
position91, tokenIndex91 := position, tokenIndex
if buffer[position] != rune('#') {
goto l92
}
position++
goto l91
l92:
position, tokenIndex = position91, tokenIndex91
if buffer[position] != rune('\n') {
goto l90
}
position++
}
l91:
goto l86
l90:
position, tokenIndex = position90, tokenIndex90
}
if !matchDot() {
goto l86
}
goto l85
l86:
position, tokenIndex = position86, tokenIndex86
}
add(ruleZeroDirective, position76)
}
return true
l75:
position, tokenIndex = position75, tokenIndex75
return false
},
/* 7 FileDirective <- <('.' ('f' / 'F') ('i' / 'I') ('l' / 'L') ('e' / 'E') WS (!('#' / '\n') .)+)> */
func() bool {
position93, tokenIndex93 := position, tokenIndex
{
position94 := position
if buffer[position] != rune('.') {
goto l93
}
position++
{
position95, tokenIndex95 := position, tokenIndex
if buffer[position] != rune('f') {
goto l96
}
position++
goto l95
l96:
position, tokenIndex = position95, tokenIndex95
if buffer[position] != rune('F') {
goto l93
}
position++
}
l95:
{
position97, tokenIndex97 := position, tokenIndex
if buffer[position] != rune('i') {
goto l98
}
position++
goto l97
l98:
position, tokenIndex = position97, tokenIndex97
if buffer[position] != rune('I') {
goto l93
}
position++
}
l97:
{
position99, tokenIndex99 := position, tokenIndex
if buffer[position] != rune('l') {
goto l100
}
position++
goto l99
l100:
position, tokenIndex = position99, tokenIndex99
if buffer[position] != rune('L') {
goto l93
}
position++
}
l99:
{
position101, tokenIndex101 := position, tokenIndex
if buffer[position] != rune('e') {
goto l102
}
position++
goto l101
l102:
position, tokenIndex = position101, tokenIndex101
if buffer[position] != rune('E') {
goto l93
}
position++
}
l101:
if !_rules[ruleWS]() {
goto l93
}
{
position105, tokenIndex105 := position, tokenIndex
{
position106, tokenIndex106 := position, tokenIndex
if buffer[position] != rune('#') {
goto l107
}
position++
goto l106
l107:
position, tokenIndex = position106, tokenIndex106
if buffer[position] != rune('\n') {
goto l105
}
position++
}
l106:
goto l93
l105:
position, tokenIndex = position105, tokenIndex105
}
if !matchDot() {
goto l93
}
l103:
{
position104, tokenIndex104 := position, tokenIndex
{
position108, tokenIndex108 := position, tokenIndex
{
position109, tokenIndex109 := position, tokenIndex
if buffer[position] != rune('#') {
goto l110
}
position++
goto l109
l110:
position, tokenIndex = position109, tokenIndex109
if buffer[position] != rune('\n') {
goto l108
}
position++
}
l109:
goto l104
l108:
position, tokenIndex = position108, tokenIndex108
}
if !matchDot() {
goto l104
}
goto l103
l104:
position, tokenIndex = position104, tokenIndex104
}
add(ruleFileDirective, position94)
}
return true
l93:
position, tokenIndex = position93, tokenIndex93
return false
},
/* 8 LocDirective <- <('.' ('l' / 'L') ('o' / 'O') ('c' / 'C') WS (!('#' / '/' / '\n') .)+)> */
func() bool {
position111, tokenIndex111 := position, tokenIndex
{
position112 := position
if buffer[position] != rune('.') {
goto l111
}
position++
{
position113, tokenIndex113 := position, tokenIndex
if buffer[position] != rune('l') {
goto l114
}
position++
goto l113
l114:
position, tokenIndex = position113, tokenIndex113
if buffer[position] != rune('L') {
goto l111
}
position++
}
l113:
{
position115, tokenIndex115 := position, tokenIndex
if buffer[position] != rune('o') {
goto l116
}
position++
goto l115
l116:
position, tokenIndex = position115, tokenIndex115
if buffer[position] != rune('O') {
goto l111
}
position++
}
l115:
{
position117, tokenIndex117 := position, tokenIndex
if buffer[position] != rune('c') {
goto l118
}
position++
goto l117
l118:
position, tokenIndex = position117, tokenIndex117
if buffer[position] != rune('C') {
goto l111
}
position++
}
l117:
if !_rules[ruleWS]() {
goto l111
}
{
position121, tokenIndex121 := position, tokenIndex
{
position122, tokenIndex122 := position, tokenIndex
if buffer[position] != rune('#') {
goto l123
}
position++
goto l122
l123:
position, tokenIndex = position122, tokenIndex122
if buffer[position] != rune('/') {
goto l124
}
position++
goto l122
l124:
position, tokenIndex = position122, tokenIndex122
if buffer[position] != rune('\n') {
goto l121
}
position++
}
l122:
goto l111
l121:
position, tokenIndex = position121, tokenIndex121
}
if !matchDot() {
goto l111
}
l119:
{
position120, tokenIndex120 := position, tokenIndex
{
position125, tokenIndex125 := position, tokenIndex
{
position126, tokenIndex126 := position, tokenIndex
if buffer[position] != rune('#') {
goto l127
}
position++
goto l126
l127:
position, tokenIndex = position126, tokenIndex126
if buffer[position] != rune('/') {
goto l128
}
position++
goto l126
l128:
position, tokenIndex = position126, tokenIndex126
if buffer[position] != rune('\n') {
goto l125
}
position++
}
l126:
goto l120
l125:
position, tokenIndex = position125, tokenIndex125
}
if !matchDot() {
goto l120
}
goto l119
l120:
position, tokenIndex = position120, tokenIndex120
}
add(ruleLocDirective, position112)
}
return true
l111:
position, tokenIndex = position111, tokenIndex111
return false
},
/* 9 Args <- <(Arg (WS? ',' WS? Arg)*)> */
func() bool {
position129, tokenIndex129 := position, tokenIndex
{
position130 := position
if !_rules[ruleArg]() {
goto l129
}
l131:
{
position132, tokenIndex132 := position, tokenIndex
{
position133, tokenIndex133 := position, tokenIndex
if !_rules[ruleWS]() {
goto l133
}
goto l134
l133:
position, tokenIndex = position133, tokenIndex133
}
l134:
if buffer[position] != rune(',') {
goto l132
}
position++
{
position135, tokenIndex135 := position, tokenIndex
if !_rules[ruleWS]() {
goto l135
}
goto l136
l135:
position, tokenIndex = position135, tokenIndex135
}
l136:
if !_rules[ruleArg]() {
goto l132
}
goto l131
l132:
position, tokenIndex = position132, tokenIndex132
}
add(ruleArgs, position130)
}
return true
l129:
position, tokenIndex = position129, tokenIndex129
return false
},
/* 10 Arg <- <(QuotedArg / ([0-9] / [0-9] / ([a-z] / [A-Z]) / '%' / '+' / '-' / '*' / '_' / '@' / '.')*)> */
func() bool {
{
position138 := position
{
position139, tokenIndex139 := position, tokenIndex
if !_rules[ruleQuotedArg]() {
goto l140
}
goto l139
l140:
position, tokenIndex = position139, tokenIndex139
l141:
{
position142, tokenIndex142 := position, tokenIndex
{
position143, tokenIndex143 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l144
}
position++
goto l143
l144:
position, tokenIndex = position143, tokenIndex143
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l145
}
position++
goto l143
l145:
position, tokenIndex = position143, tokenIndex143
{
position147, tokenIndex147 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l148
}
position++
goto l147
l148:
position, tokenIndex = position147, tokenIndex147
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l146
}
position++
}
l147:
goto l143
l146:
position, tokenIndex = position143, tokenIndex143
if buffer[position] != rune('%') {
goto l149
}
position++
goto l143
l149:
position, tokenIndex = position143, tokenIndex143
if buffer[position] != rune('+') {
goto l150
}
position++
goto l143
l150:
position, tokenIndex = position143, tokenIndex143
if buffer[position] != rune('-') {
goto l151
}
position++
goto l143
l151:
position, tokenIndex = position143, tokenIndex143
if buffer[position] != rune('*') {
goto l152
}
position++
goto l143
l152:
position, tokenIndex = position143, tokenIndex143
if buffer[position] != rune('_') {
goto l153
}
position++
goto l143
l153:
position, tokenIndex = position143, tokenIndex143
if buffer[position] != rune('@') {
goto l154
}
position++
goto l143
l154:
position, tokenIndex = position143, tokenIndex143
if buffer[position] != rune('.') {
goto l142
}
position++
}
l143:
goto l141
l142:
position, tokenIndex = position142, tokenIndex142
}
}
l139:
add(ruleArg, position138)
}
return true
},
/* 11 QuotedArg <- <('"' QuotedText '"')> */
func() bool {
position155, tokenIndex155 := position, tokenIndex
{
position156 := position
if buffer[position] != rune('"') {
goto l155
}
position++
if !_rules[ruleQuotedText]() {
goto l155
}
if buffer[position] != rune('"') {
goto l155
}
position++
add(ruleQuotedArg, position156)
}
return true
l155:
position, tokenIndex = position155, tokenIndex155
return false
},
/* 12 QuotedText <- <(EscapedChar / (!'"' .))*> */
func() bool {
{
position158 := position
l159:
{
position160, tokenIndex160 := position, tokenIndex
{
position161, tokenIndex161 := position, tokenIndex
if !_rules[ruleEscapedChar]() {
goto l162
}
goto l161
l162:
position, tokenIndex = position161, tokenIndex161
{
position163, tokenIndex163 := position, tokenIndex
if buffer[position] != rune('"') {
goto l163
}
position++
goto l160
l163:
position, tokenIndex = position163, tokenIndex163
}
if !matchDot() {
goto l160
}
}
l161:
goto l159
l160:
position, tokenIndex = position160, tokenIndex160
}
add(ruleQuotedText, position158)
}
return true
},
/* 13 LabelContainingDirective <- <(LabelContainingDirectiveName WS SymbolArgs)> */
func() bool {
position164, tokenIndex164 := position, tokenIndex
{
position165 := position
if !_rules[ruleLabelContainingDirectiveName]() {
goto l164
}
if !_rules[ruleWS]() {
goto l164
}
if !_rules[ruleSymbolArgs]() {
goto l164
}
add(ruleLabelContainingDirective, position165)
}
return true
l164:
position, tokenIndex = position164, tokenIndex164
return false
},
/* 14 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'))> */
func() bool {
position166, tokenIndex166 := position, tokenIndex
{
position167 := position
{
position168, tokenIndex168 := position, tokenIndex
if buffer[position] != rune('.') {
goto l169
}
position++
{
position170, tokenIndex170 := position, tokenIndex
if buffer[position] != rune('x') {
goto l171
}
position++
goto l170
l171:
position, tokenIndex = position170, tokenIndex170
if buffer[position] != rune('X') {
goto l169
}
position++
}
l170:
{
position172, tokenIndex172 := position, tokenIndex
if buffer[position] != rune('w') {
goto l173
}
position++
goto l172
l173:
position, tokenIndex = position172, tokenIndex172
if buffer[position] != rune('W') {
goto l169
}
position++
}
l172:
{
position174, tokenIndex174 := position, tokenIndex
if buffer[position] != rune('o') {
goto l175
}
position++
goto l174
l175:
position, tokenIndex = position174, tokenIndex174
if buffer[position] != rune('O') {
goto l169
}
position++
}
l174:
{
position176, tokenIndex176 := position, tokenIndex
if buffer[position] != rune('r') {
goto l177
}
position++
goto l176
l177:
position, tokenIndex = position176, tokenIndex176
if buffer[position] != rune('R') {
goto l169
}
position++
}
l176:
{
position178, tokenIndex178 := position, tokenIndex
if buffer[position] != rune('d') {
goto l179
}
position++
goto l178
l179:
position, tokenIndex = position178, tokenIndex178
if buffer[position] != rune('D') {
goto l169
}
position++
}
l178:
goto l168
l169:
position, tokenIndex = position168, tokenIndex168
if buffer[position] != rune('.') {
goto l180
}
position++
{
position181, tokenIndex181 := position, tokenIndex
if buffer[position] != rune('w') {
goto l182
}
position++
goto l181
l182:
position, tokenIndex = position181, tokenIndex181
if buffer[position] != rune('W') {
goto l180
}
position++
}
l181:
{
position183, tokenIndex183 := position, tokenIndex
if buffer[position] != rune('o') {
goto l184
}
position++
goto l183
l184:
position, tokenIndex = position183, tokenIndex183
if buffer[position] != rune('O') {
goto l180
}
position++
}
l183:
{
position185, tokenIndex185 := position, tokenIndex
if buffer[position] != rune('r') {
goto l186
}
position++
goto l185
l186:
position, tokenIndex = position185, tokenIndex185
if buffer[position] != rune('R') {
goto l180
}
position++
}
l185:
{
position187, tokenIndex187 := position, tokenIndex
if buffer[position] != rune('d') {
goto l188
}
position++
goto l187
l188:
position, tokenIndex = position187, tokenIndex187
if buffer[position] != rune('D') {
goto l180
}
position++
}
l187:
goto l168
l180:
position, tokenIndex = position168, tokenIndex168
if buffer[position] != rune('.') {
goto l189
}
position++
{
position190, tokenIndex190 := position, tokenIndex
if buffer[position] != rune('h') {
goto l191
}
position++
goto l190
l191:
position, tokenIndex = position190, tokenIndex190
if buffer[position] != rune('H') {
goto l189
}
position++
}
l190:
{
position192, tokenIndex192 := position, tokenIndex
if buffer[position] != rune('w') {
goto l193
}
position++
goto l192
l193:
position, tokenIndex = position192, tokenIndex192
if buffer[position] != rune('W') {
goto l189
}
position++
}
l192:
{
position194, tokenIndex194 := position, tokenIndex
if buffer[position] != rune('o') {
goto l195
}
position++
goto l194
l195:
position, tokenIndex = position194, tokenIndex194
if buffer[position] != rune('O') {
goto l189
}
position++
}
l194:
{
position196, tokenIndex196 := position, tokenIndex
if buffer[position] != rune('r') {
goto l197
}
position++
goto l196
l197:
position, tokenIndex = position196, tokenIndex196
if buffer[position] != rune('R') {
goto l189
}
position++
}
l196:
{
position198, tokenIndex198 := position, tokenIndex
if buffer[position] != rune('d') {
goto l199
}
position++
goto l198
l199:
position, tokenIndex = position198, tokenIndex198
if buffer[position] != rune('D') {
goto l189
}
position++
}
l198:
goto l168
l189:
position, tokenIndex = position168, tokenIndex168
if buffer[position] != rune('.') {
goto l200
}
position++
{
position201, tokenIndex201 := position, tokenIndex
if buffer[position] != rune('l') {
goto l202
}
position++
goto l201
l202:
position, tokenIndex = position201, tokenIndex201
if buffer[position] != rune('L') {
goto l200
}
position++
}
l201:
{
position203, tokenIndex203 := position, tokenIndex
if buffer[position] != rune('o') {
goto l204
}
position++
goto l203
l204:
position, tokenIndex = position203, tokenIndex203
if buffer[position] != rune('O') {
goto l200
}
position++
}
l203:
{
position205, tokenIndex205 := position, tokenIndex
if buffer[position] != rune('n') {
goto l206
}
position++
goto l205
l206:
position, tokenIndex = position205, tokenIndex205
if buffer[position] != rune('N') {
goto l200
}
position++
}
l205:
{
position207, tokenIndex207 := position, tokenIndex
if buffer[position] != rune('g') {
goto l208
}
position++
goto l207
l208:
position, tokenIndex = position207, tokenIndex207
if buffer[position] != rune('G') {
goto l200
}
position++
}
l207:
goto l168
l200:
position, tokenIndex = position168, tokenIndex168
if buffer[position] != rune('.') {
goto l209
}
position++
{
position210, tokenIndex210 := position, tokenIndex
if buffer[position] != rune('s') {
goto l211
}
position++
goto l210
l211:
position, tokenIndex = position210, tokenIndex210
if buffer[position] != rune('S') {
goto l209
}
position++
}
l210:
{
position212, tokenIndex212 := position, tokenIndex
if buffer[position] != rune('e') {
goto l213
}
position++
goto l212
l213:
position, tokenIndex = position212, tokenIndex212
if buffer[position] != rune('E') {
goto l209
}
position++
}
l212:
{
position214, tokenIndex214 := position, tokenIndex
if buffer[position] != rune('t') {
goto l215
}
position++
goto l214
l215:
position, tokenIndex = position214, tokenIndex214
if buffer[position] != rune('T') {
goto l209
}
position++
}
l214:
goto l168
l209:
position, tokenIndex = position168, tokenIndex168
if buffer[position] != rune('.') {
goto l216
}
position++
{
position217, tokenIndex217 := position, tokenIndex
if buffer[position] != rune('b') {
goto l218
}
position++
goto l217
l218:
position, tokenIndex = position217, tokenIndex217
if buffer[position] != rune('B') {
goto l216
}
position++
}
l217:
{
position219, tokenIndex219 := position, tokenIndex
if buffer[position] != rune('y') {
goto l220
}
position++
goto l219
l220:
position, tokenIndex = position219, tokenIndex219
if buffer[position] != rune('Y') {
goto l216
}
position++
}
l219:
{
position221, tokenIndex221 := position, tokenIndex
if buffer[position] != rune('t') {
goto l222
}
position++
goto l221
l222:
position, tokenIndex = position221, tokenIndex221
if buffer[position] != rune('T') {
goto l216
}
position++
}
l221:
{
position223, tokenIndex223 := position, tokenIndex
if buffer[position] != rune('e') {
goto l224
}
position++
goto l223
l224:
position, tokenIndex = position223, tokenIndex223
if buffer[position] != rune('E') {
goto l216
}
position++
}
l223:
goto l168
l216:
position, tokenIndex = position168, tokenIndex168
if buffer[position] != rune('.') {
goto l225
}
position++
if buffer[position] != rune('8') {
goto l225
}
position++
{
position226, tokenIndex226 := position, tokenIndex
if buffer[position] != rune('b') {
goto l227
}
position++
goto l226
l227:
position, tokenIndex = position226, tokenIndex226
if buffer[position] != rune('B') {
goto l225
}
position++
}
l226:
{
position228, tokenIndex228 := position, tokenIndex
if buffer[position] != rune('y') {
goto l229
}
position++
goto l228
l229:
position, tokenIndex = position228, tokenIndex228
if buffer[position] != rune('Y') {
goto l225
}
position++
}
l228:
{
position230, tokenIndex230 := position, tokenIndex
if buffer[position] != rune('t') {
goto l231
}
position++
goto l230
l231:
position, tokenIndex = position230, tokenIndex230
if buffer[position] != rune('T') {
goto l225
}
position++
}
l230:
{
position232, tokenIndex232 := position, tokenIndex
if buffer[position] != rune('e') {
goto l233
}
position++
goto l232
l233:
position, tokenIndex = position232, tokenIndex232
if buffer[position] != rune('E') {
goto l225
}
position++
}
l232:
goto l168
l225:
position, tokenIndex = position168, tokenIndex168
if buffer[position] != rune('.') {
goto l234
}
position++
if buffer[position] != rune('4') {
goto l234
}
position++
{
position235, tokenIndex235 := position, tokenIndex
if buffer[position] != rune('b') {
goto l236
}
position++
goto l235
l236:
position, tokenIndex = position235, tokenIndex235
if buffer[position] != rune('B') {
goto l234
}
position++
}
l235:
{
position237, tokenIndex237 := position, tokenIndex
if buffer[position] != rune('y') {
goto l238
}
position++
goto l237
l238:
position, tokenIndex = position237, tokenIndex237
if buffer[position] != rune('Y') {
goto l234
}
position++
}
l237:
{
position239, tokenIndex239 := position, tokenIndex
if buffer[position] != rune('t') {
goto l240
}
position++
goto l239
l240:
position, tokenIndex = position239, tokenIndex239
if buffer[position] != rune('T') {
goto l234
}
position++
}
l239:
{
position241, tokenIndex241 := position, tokenIndex
if buffer[position] != rune('e') {
goto l242
}
position++
goto l241
l242:
position, tokenIndex = position241, tokenIndex241
if buffer[position] != rune('E') {
goto l234
}
position++
}
l241:
goto l168
l234:
position, tokenIndex = position168, tokenIndex168
if buffer[position] != rune('.') {
goto l243
}
position++
{
position244, tokenIndex244 := position, tokenIndex
if buffer[position] != rune('q') {
goto l245
}
position++
goto l244
l245:
position, tokenIndex = position244, tokenIndex244
if buffer[position] != rune('Q') {
goto l243
}
position++
}
l244:
{
position246, tokenIndex246 := position, tokenIndex
if buffer[position] != rune('u') {
goto l247
}
position++
goto l246
l247:
position, tokenIndex = position246, tokenIndex246
if buffer[position] != rune('U') {
goto l243
}
position++
}
l246:
{
position248, tokenIndex248 := position, tokenIndex
if buffer[position] != rune('a') {
goto l249
}
position++
goto l248
l249:
position, tokenIndex = position248, tokenIndex248
if buffer[position] != rune('A') {
goto l243
}
position++
}
l248:
{
position250, tokenIndex250 := position, tokenIndex
if buffer[position] != rune('d') {
goto l251
}
position++
goto l250
l251:
position, tokenIndex = position250, tokenIndex250
if buffer[position] != rune('D') {
goto l243
}
position++
}
l250:
goto l168
l243:
position, tokenIndex = position168, tokenIndex168
if buffer[position] != rune('.') {
goto l252
}
position++
{
position253, tokenIndex253 := position, tokenIndex
if buffer[position] != rune('t') {
goto l254
}
position++
goto l253
l254:
position, tokenIndex = position253, tokenIndex253
if buffer[position] != rune('T') {
goto l252
}
position++
}
l253:
{
position255, tokenIndex255 := position, tokenIndex
if buffer[position] != rune('c') {
goto l256
}
position++
goto l255
l256:
position, tokenIndex = position255, tokenIndex255
if buffer[position] != rune('C') {
goto l252
}
position++
}
l255:
goto l168
l252:
position, tokenIndex = position168, tokenIndex168
if buffer[position] != rune('.') {
goto l257
}
position++
{
position258, tokenIndex258 := position, tokenIndex
if buffer[position] != rune('l') {
goto l259
}
position++
goto l258
l259:
position, tokenIndex = position258, tokenIndex258
if buffer[position] != rune('L') {
goto l257
}
position++
}
l258:
{
position260, tokenIndex260 := position, tokenIndex
if buffer[position] != rune('o') {
goto l261
}
position++
goto l260
l261:
position, tokenIndex = position260, tokenIndex260
if buffer[position] != rune('O') {
goto l257
}
position++
}
l260:
{
position262, tokenIndex262 := position, tokenIndex
if buffer[position] != rune('c') {
goto l263
}
position++
goto l262
l263:
position, tokenIndex = position262, tokenIndex262
if buffer[position] != rune('C') {
goto l257
}
position++
}
l262:
{
position264, tokenIndex264 := position, tokenIndex
if buffer[position] != rune('a') {
goto l265
}
position++
goto l264
l265:
position, tokenIndex = position264, tokenIndex264
if buffer[position] != rune('A') {
goto l257
}
position++
}
l264:
{
position266, tokenIndex266 := position, tokenIndex
if buffer[position] != rune('l') {
goto l267
}
position++
goto l266
l267:
position, tokenIndex = position266, tokenIndex266
if buffer[position] != rune('L') {
goto l257
}
position++
}
l266:
{
position268, tokenIndex268 := position, tokenIndex
if buffer[position] != rune('e') {
goto l269
}
position++
goto l268
l269:
position, tokenIndex = position268, tokenIndex268
if buffer[position] != rune('E') {
goto l257
}
position++
}
l268:
{
position270, tokenIndex270 := position, tokenIndex
if buffer[position] != rune('n') {
goto l271
}
position++
goto l270
l271:
position, tokenIndex = position270, tokenIndex270
if buffer[position] != rune('N') {
goto l257
}
position++
}
l270:
{
position272, tokenIndex272 := position, tokenIndex
if buffer[position] != rune('t') {
goto l273
}
position++
goto l272
l273:
position, tokenIndex = position272, tokenIndex272
if buffer[position] != rune('T') {
goto l257
}
position++
}
l272:
{
position274, tokenIndex274 := position, tokenIndex
if buffer[position] != rune('r') {
goto l275
}
position++
goto l274
l275:
position, tokenIndex = position274, tokenIndex274
if buffer[position] != rune('R') {
goto l257
}
position++
}
l274:
{
position276, tokenIndex276 := position, tokenIndex
if buffer[position] != rune('y') {
goto l277
}
position++
goto l276
l277:
position, tokenIndex = position276, tokenIndex276
if buffer[position] != rune('Y') {
goto l257
}
position++
}
l276:
goto l168
l257:
position, tokenIndex = position168, tokenIndex168
if buffer[position] != rune('.') {
goto l278
}
position++
{
position279, tokenIndex279 := position, tokenIndex
if buffer[position] != rune('s') {
goto l280
}
position++
goto l279
l280:
position, tokenIndex = position279, tokenIndex279
if buffer[position] != rune('S') {
goto l278
}
position++
}
l279:
{
position281, tokenIndex281 := position, tokenIndex
if buffer[position] != rune('i') {
goto l282
}
position++
goto l281
l282:
position, tokenIndex = position281, tokenIndex281
if buffer[position] != rune('I') {
goto l278
}
position++
}
l281:
{
position283, tokenIndex283 := position, tokenIndex
if buffer[position] != rune('z') {
goto l284
}
position++
goto l283
l284:
position, tokenIndex = position283, tokenIndex283
if buffer[position] != rune('Z') {
goto l278
}
position++
}
l283:
{
position285, tokenIndex285 := position, tokenIndex
if buffer[position] != rune('e') {
goto l286
}
position++
goto l285
l286:
position, tokenIndex = position285, tokenIndex285
if buffer[position] != rune('E') {
goto l278
}
position++
}
l285:
goto l168
l278:
position, tokenIndex = position168, tokenIndex168
if buffer[position] != rune('.') {
goto l287
}
position++
{
position288, tokenIndex288 := position, tokenIndex
if buffer[position] != rune('t') {
goto l289
}
position++
goto l288
l289:
position, tokenIndex = position288, tokenIndex288
if buffer[position] != rune('T') {
goto l287
}
position++
}
l288:
{
position290, tokenIndex290 := position, tokenIndex
if buffer[position] != rune('y') {
goto l291
}
position++
goto l290
l291:
position, tokenIndex = position290, tokenIndex290
if buffer[position] != rune('Y') {
goto l287
}
position++
}
l290:
{
position292, tokenIndex292 := position, tokenIndex
if buffer[position] != rune('p') {
goto l293
}
position++
goto l292
l293:
position, tokenIndex = position292, tokenIndex292
if buffer[position] != rune('P') {
goto l287
}
position++
}
l292:
{
position294, tokenIndex294 := position, tokenIndex
if buffer[position] != rune('e') {
goto l295
}
position++
goto l294
l295:
position, tokenIndex = position294, tokenIndex294
if buffer[position] != rune('E') {
goto l287
}
position++
}
l294:
goto l168
l287:
position, tokenIndex = position168, tokenIndex168
if buffer[position] != rune('.') {
goto l296
}
position++
{
position297, tokenIndex297 := position, tokenIndex
if buffer[position] != rune('u') {
goto l298
}
position++
goto l297
l298:
position, tokenIndex = position297, tokenIndex297
if buffer[position] != rune('U') {
goto l296
}
position++
}
l297:
{
position299, tokenIndex299 := position, tokenIndex
if buffer[position] != rune('l') {
goto l300
}
position++
goto l299
l300:
position, tokenIndex = position299, tokenIndex299
if buffer[position] != rune('L') {
goto l296
}
position++
}
l299:
{
position301, tokenIndex301 := position, tokenIndex
if buffer[position] != rune('e') {
goto l302
}
position++
goto l301
l302:
position, tokenIndex = position301, tokenIndex301
if buffer[position] != rune('E') {
goto l296
}
position++
}
l301:
{
position303, tokenIndex303 := position, tokenIndex
if buffer[position] != rune('b') {
goto l304
}
position++
goto l303
l304:
position, tokenIndex = position303, tokenIndex303
if buffer[position] != rune('B') {
goto l296
}
position++
}
l303:
if buffer[position] != rune('1') {
goto l296
}
position++
if buffer[position] != rune('2') {
goto l296
}
position++
if buffer[position] != rune('8') {
goto l296
}
position++
goto l168
l296:
position, tokenIndex = position168, tokenIndex168
if buffer[position] != rune('.') {
goto l166
}
position++
{
position305, tokenIndex305 := position, tokenIndex
if buffer[position] != rune('s') {
goto l306
}
position++
goto l305
l306:
position, tokenIndex = position305, tokenIndex305
if buffer[position] != rune('S') {
goto l166
}
position++
}
l305:
{
position307, tokenIndex307 := position, tokenIndex
if buffer[position] != rune('l') {
goto l308
}
position++
goto l307
l308:
position, tokenIndex = position307, tokenIndex307
if buffer[position] != rune('L') {
goto l166
}
position++
}
l307:
{
position309, tokenIndex309 := position, tokenIndex
if buffer[position] != rune('e') {
goto l310
}
position++
goto l309
l310:
position, tokenIndex = position309, tokenIndex309
if buffer[position] != rune('E') {
goto l166
}
position++
}
l309:
{
position311, tokenIndex311 := position, tokenIndex
if buffer[position] != rune('b') {
goto l312
}
position++
goto l311
l312:
position, tokenIndex = position311, tokenIndex311
if buffer[position] != rune('B') {
goto l166
}
position++
}
l311:
if buffer[position] != rune('1') {
goto l166
}
position++
if buffer[position] != rune('2') {
goto l166
}
position++
if buffer[position] != rune('8') {
goto l166
}
position++
}
l168:
add(ruleLabelContainingDirectiveName, position167)
}
return true
l166:
position, tokenIndex = position166, tokenIndex166
return false
},
/* 15 SymbolArgs <- <(SymbolArg (WS? ',' WS? SymbolArg)*)> */
func() bool {
position313, tokenIndex313 := position, tokenIndex
{
position314 := position
if !_rules[ruleSymbolArg]() {
goto l313
}
l315:
{
position316, tokenIndex316 := position, tokenIndex
{
position317, tokenIndex317 := position, tokenIndex
if !_rules[ruleWS]() {
goto l317
}
goto l318
l317:
position, tokenIndex = position317, tokenIndex317
}
l318:
if buffer[position] != rune(',') {
goto l316
}
position++
{
position319, tokenIndex319 := position, tokenIndex
if !_rules[ruleWS]() {
goto l319
}
goto l320
l319:
position, tokenIndex = position319, tokenIndex319
}
l320:
if !_rules[ruleSymbolArg]() {
goto l316
}
goto l315
l316:
position, tokenIndex = position316, tokenIndex316
}
add(ruleSymbolArgs, position314)
}
return true
l313:
position, tokenIndex = position313, tokenIndex313
return false
},
/* 16 SymbolArg <- <SymbolExpr> */
func() bool {
position321, tokenIndex321 := position, tokenIndex
{
position322 := position
if !_rules[ruleSymbolExpr]() {
goto l321
}
add(ruleSymbolArg, position322)
}
return true
l321:
position, tokenIndex = position321, tokenIndex321
return false
},
/* 17 SymbolExpr <- <(SymbolAtom (WS? SymbolOperator WS? SymbolExpr)?)> */
func() bool {
position323, tokenIndex323 := position, tokenIndex
{
position324 := position
if !_rules[ruleSymbolAtom]() {
goto l323
}
{
position325, tokenIndex325 := position, tokenIndex
{
position327, tokenIndex327 := position, tokenIndex
if !_rules[ruleWS]() {
goto l327
}
goto l328
l327:
position, tokenIndex = position327, tokenIndex327
}
l328:
if !_rules[ruleSymbolOperator]() {
goto l325
}
{
position329, tokenIndex329 := position, tokenIndex
if !_rules[ruleWS]() {
goto l329
}
goto l330
l329:
position, tokenIndex = position329, tokenIndex329
}
l330:
if !_rules[ruleSymbolExpr]() {
goto l325
}
goto l326
l325:
position, tokenIndex = position325, tokenIndex325
}
l326:
add(ruleSymbolExpr, position324)
}
return true
l323:
position, tokenIndex = position323, tokenIndex323
return false
},
/* 18 SymbolAtom <- <(Offset / SymbolType / LocalLabelRef / (LocalSymbol TCMarker?) / (SymbolName Offset) / (SymbolName TCMarker?) / Dot / (OpenParen WS? SymbolExpr WS? CloseParen))> */
func() bool {
position331, tokenIndex331 := position, tokenIndex
{
position332 := position
{
position333, tokenIndex333 := position, tokenIndex
if !_rules[ruleOffset]() {
goto l334
}
goto l333
l334:
position, tokenIndex = position333, tokenIndex333
if !_rules[ruleSymbolType]() {
goto l335
}
goto l333
l335:
position, tokenIndex = position333, tokenIndex333
if !_rules[ruleLocalLabelRef]() {
goto l336
}
goto l333
l336:
position, tokenIndex = position333, tokenIndex333
if !_rules[ruleLocalSymbol]() {
goto l337
}
{
position338, tokenIndex338 := position, tokenIndex
if !_rules[ruleTCMarker]() {
goto l338
}
goto l339
l338:
position, tokenIndex = position338, tokenIndex338
}
l339:
goto l333
l337:
position, tokenIndex = position333, tokenIndex333
if !_rules[ruleSymbolName]() {
goto l340
}
if !_rules[ruleOffset]() {
goto l340
}
goto l333
l340:
position, tokenIndex = position333, tokenIndex333
if !_rules[ruleSymbolName]() {
goto l341
}
{
position342, tokenIndex342 := position, tokenIndex
if !_rules[ruleTCMarker]() {
goto l342
}
goto l343
l342:
position, tokenIndex = position342, tokenIndex342
}
l343:
goto l333
l341:
position, tokenIndex = position333, tokenIndex333
if !_rules[ruleDot]() {
goto l344
}
goto l333
l344:
position, tokenIndex = position333, tokenIndex333
if !_rules[ruleOpenParen]() {
goto l331
}
{
position345, tokenIndex345 := position, tokenIndex
if !_rules[ruleWS]() {
goto l345
}
goto l346
l345:
position, tokenIndex = position345, tokenIndex345
}
l346:
if !_rules[ruleSymbolExpr]() {
goto l331
}
{
position347, tokenIndex347 := position, tokenIndex
if !_rules[ruleWS]() {
goto l347
}
goto l348
l347:
position, tokenIndex = position347, tokenIndex347
}
l348:
if !_rules[ruleCloseParen]() {
goto l331
}
}
l333:
add(ruleSymbolAtom, position332)
}
return true
l331:
position, tokenIndex = position331, tokenIndex331
return false
},
/* 19 SymbolOperator <- <('+' / '-' / '|' / ('<' '<') / ('>' '>'))> */
func() bool {
position349, tokenIndex349 := position, tokenIndex
{
position350 := position
{
position351, tokenIndex351 := position, tokenIndex
if buffer[position] != rune('+') {
goto l352
}
position++
goto l351
l352:
position, tokenIndex = position351, tokenIndex351
if buffer[position] != rune('-') {
goto l353
}
position++
goto l351
l353:
position, tokenIndex = position351, tokenIndex351
if buffer[position] != rune('|') {
goto l354
}
position++
goto l351
l354:
position, tokenIndex = position351, tokenIndex351
if buffer[position] != rune('<') {
goto l355
}
position++
if buffer[position] != rune('<') {
goto l355
}
position++
goto l351
l355:
position, tokenIndex = position351, tokenIndex351
if buffer[position] != rune('>') {
goto l349
}
position++
if buffer[position] != rune('>') {
goto l349
}
position++
}
l351:
add(ruleSymbolOperator, position350)
}
return true
l349:
position, tokenIndex = position349, tokenIndex349
return false
},
/* 20 OpenParen <- <'('> */
func() bool {
position356, tokenIndex356 := position, tokenIndex
{
position357 := position
if buffer[position] != rune('(') {
goto l356
}
position++
add(ruleOpenParen, position357)
}
return true
l356:
position, tokenIndex = position356, tokenIndex356
return false
},
/* 21 CloseParen <- <')'> */
func() bool {
position358, tokenIndex358 := position, tokenIndex
{
position359 := position
if buffer[position] != rune(')') {
goto l358
}
position++
add(ruleCloseParen, position359)
}
return true
l358:
position, tokenIndex = position358, tokenIndex358
return false
},
/* 22 SymbolType <- <(('@' / '%') (('f' 'u' 'n' 'c' 't' 'i' 'o' 'n') / ('o' 'b' 'j' 'e' 'c' 't')))> */
func() bool {
position360, tokenIndex360 := position, tokenIndex
{
position361 := position
{
position362, tokenIndex362 := position, tokenIndex
if buffer[position] != rune('@') {
goto l363
}
position++
goto l362
l363:
position, tokenIndex = position362, tokenIndex362
if buffer[position] != rune('%') {
goto l360
}
position++
}
l362:
{
position364, tokenIndex364 := position, tokenIndex
if buffer[position] != rune('f') {
goto l365
}
position++
if buffer[position] != rune('u') {
goto l365
}
position++
if buffer[position] != rune('n') {
goto l365
}
position++
if buffer[position] != rune('c') {
goto l365
}
position++
if buffer[position] != rune('t') {
goto l365
}
position++
if buffer[position] != rune('i') {
goto l365
}
position++
if buffer[position] != rune('o') {
goto l365
}
position++
if buffer[position] != rune('n') {
goto l365
}
position++
goto l364
l365:
position, tokenIndex = position364, tokenIndex364
if buffer[position] != rune('o') {
goto l360
}
position++
if buffer[position] != rune('b') {
goto l360
}
position++
if buffer[position] != rune('j') {
goto l360
}
position++
if buffer[position] != rune('e') {
goto l360
}
position++
if buffer[position] != rune('c') {
goto l360
}
position++
if buffer[position] != rune('t') {
goto l360
}
position++
}
l364:
add(ruleSymbolType, position361)
}
return true
l360:
position, tokenIndex = position360, tokenIndex360
return false
},
/* 23 Dot <- <'.'> */
func() bool {
position366, tokenIndex366 := position, tokenIndex
{
position367 := position
if buffer[position] != rune('.') {
goto l366
}
position++
add(ruleDot, position367)
}
return true
l366:
position, tokenIndex = position366, tokenIndex366
return false
},
/* 24 TCMarker <- <('[' 'T' 'C' ']')> */
func() bool {
position368, tokenIndex368 := position, tokenIndex
{
position369 := position
if buffer[position] != rune('[') {
goto l368
}
position++
if buffer[position] != rune('T') {
goto l368
}
position++
if buffer[position] != rune('C') {
goto l368
}
position++
if buffer[position] != rune(']') {
goto l368
}
position++
add(ruleTCMarker, position369)
}
return true
l368:
position, tokenIndex = position368, tokenIndex368
return false
},
/* 25 EscapedChar <- <('\\' .)> */
func() bool {
position370, tokenIndex370 := position, tokenIndex
{
position371 := position
if buffer[position] != rune('\\') {
goto l370
}
position++
if !matchDot() {
goto l370
}
add(ruleEscapedChar, position371)
}
return true
l370:
position, tokenIndex = position370, tokenIndex370
return false
},
/* 26 WS <- <(' ' / '\t')+> */
func() bool {
position372, tokenIndex372 := position, tokenIndex
{
position373 := position
{
position376, tokenIndex376 := position, tokenIndex
if buffer[position] != rune(' ') {
goto l377
}
position++
goto l376
l377:
position, tokenIndex = position376, tokenIndex376
if buffer[position] != rune('\t') {
goto l372
}
position++
}
l376:
l374:
{
position375, tokenIndex375 := position, tokenIndex
{
position378, tokenIndex378 := position, tokenIndex
if buffer[position] != rune(' ') {
goto l379
}
position++
goto l378
l379:
position, tokenIndex = position378, tokenIndex378
if buffer[position] != rune('\t') {
goto l375
}
position++
}
l378:
goto l374
l375:
position, tokenIndex = position375, tokenIndex375
}
add(ruleWS, position373)
}
return true
l372:
position, tokenIndex = position372, tokenIndex372
return false
},
/* 27 Comment <- <((('/' '/') / '#') (!'\n' .)*)> */
func() bool {
position380, tokenIndex380 := position, tokenIndex
{
position381 := position
{
position382, tokenIndex382 := position, tokenIndex
if buffer[position] != rune('/') {
goto l383
}
position++
if buffer[position] != rune('/') {
goto l383
}
position++
goto l382
l383:
position, tokenIndex = position382, tokenIndex382
if buffer[position] != rune('#') {
goto l380
}
position++
}
l382:
l384:
{
position385, tokenIndex385 := position, tokenIndex
{
position386, tokenIndex386 := position, tokenIndex
if buffer[position] != rune('\n') {
goto l386
}
position++
goto l385
l386:
position, tokenIndex = position386, tokenIndex386
}
if !matchDot() {
goto l385
}
goto l384
l385:
position, tokenIndex = position385, tokenIndex385
}
add(ruleComment, position381)
}
return true
l380:
position, tokenIndex = position380, tokenIndex380
return false
},
/* 28 Label <- <((LocalSymbol / LocalLabel / SymbolName) ':')> */
func() bool {
position387, tokenIndex387 := position, tokenIndex
{
position388 := position
{
position389, tokenIndex389 := position, tokenIndex
if !_rules[ruleLocalSymbol]() {
goto l390
}
goto l389
l390:
position, tokenIndex = position389, tokenIndex389
if !_rules[ruleLocalLabel]() {
goto l391
}
goto l389
l391:
position, tokenIndex = position389, tokenIndex389
if !_rules[ruleSymbolName]() {
goto l387
}
}
l389:
if buffer[position] != rune(':') {
goto l387
}
position++
add(ruleLabel, position388)
}
return true
l387:
position, tokenIndex = position387, tokenIndex387
return false
},
/* 29 SymbolName <- <(([a-z] / [A-Z] / '.' / '_') ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]) / '$' / '_')*)> */
func() bool {
position392, tokenIndex392 := position, tokenIndex
{
position393 := position
{
position394, tokenIndex394 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l395
}
position++
goto l394
l395:
position, tokenIndex = position394, tokenIndex394
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l396
}
position++
goto l394
l396:
position, tokenIndex = position394, tokenIndex394
if buffer[position] != rune('.') {
goto l397
}
position++
goto l394
l397:
position, tokenIndex = position394, tokenIndex394
if buffer[position] != rune('_') {
goto l392
}
position++
}
l394:
l398:
{
position399, tokenIndex399 := position, tokenIndex
{
position400, tokenIndex400 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l401
}
position++
goto l400
l401:
position, tokenIndex = position400, tokenIndex400
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l402
}
position++
goto l400
l402:
position, tokenIndex = position400, tokenIndex400
if buffer[position] != rune('.') {
goto l403
}
position++
goto l400
l403:
position, tokenIndex = position400, tokenIndex400
{
position405, tokenIndex405 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l406
}
position++
goto l405
l406:
position, tokenIndex = position405, tokenIndex405
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l404
}
position++
}
l405:
goto l400
l404:
position, tokenIndex = position400, tokenIndex400
if buffer[position] != rune('$') {
goto l407
}
position++
goto l400
l407:
position, tokenIndex = position400, tokenIndex400
if buffer[position] != rune('_') {
goto l399
}
position++
}
l400:
goto l398
l399:
position, tokenIndex = position399, tokenIndex399
}
add(ruleSymbolName, position393)
}
return true
l392:
position, tokenIndex = position392, tokenIndex392
return false
},
/* 30 LocalSymbol <- <('.' 'L' ([a-z] / [A-Z] / ([a-z] / [A-Z]) / '.' / ([0-9] / [0-9]) / '$' / '_')+)> */
func() bool {
position408, tokenIndex408 := position, tokenIndex
{
position409 := position
if buffer[position] != rune('.') {
goto l408
}
position++
if buffer[position] != rune('L') {
goto l408
}
position++
{
position412, tokenIndex412 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l413
}
position++
goto l412
l413:
position, tokenIndex = position412, tokenIndex412
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l414
}
position++
goto l412
l414:
position, tokenIndex = position412, tokenIndex412
{
position416, tokenIndex416 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l417
}
position++
goto l416
l417:
position, tokenIndex = position416, tokenIndex416
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l415
}
position++
}
l416:
goto l412
l415:
position, tokenIndex = position412, tokenIndex412
if buffer[position] != rune('.') {
goto l418
}
position++
goto l412
l418:
position, tokenIndex = position412, tokenIndex412
{
position420, tokenIndex420 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l421
}
position++
goto l420
l421:
position, tokenIndex = position420, tokenIndex420
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l419
}
position++
}
l420:
goto l412
l419:
position, tokenIndex = position412, tokenIndex412
if buffer[position] != rune('$') {
goto l422
}
position++
goto l412
l422:
position, tokenIndex = position412, tokenIndex412
if buffer[position] != rune('_') {
goto l408
}
position++
}
l412:
l410:
{
position411, tokenIndex411 := position, tokenIndex
{
position423, tokenIndex423 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l424
}
position++
goto l423
l424:
position, tokenIndex = position423, tokenIndex423
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l425
}
position++
goto l423
l425:
position, tokenIndex = position423, tokenIndex423
{
position427, tokenIndex427 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l428
}
position++
goto l427
l428:
position, tokenIndex = position427, tokenIndex427
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l426
}
position++
}
l427:
goto l423
l426:
position, tokenIndex = position423, tokenIndex423
if buffer[position] != rune('.') {
goto l429
}
position++
goto l423
l429:
position, tokenIndex = position423, tokenIndex423
{
position431, tokenIndex431 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l432
}
position++
goto l431
l432:
position, tokenIndex = position431, tokenIndex431
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l430
}
position++
}
l431:
goto l423
l430:
position, tokenIndex = position423, tokenIndex423
if buffer[position] != rune('$') {
goto l433
}
position++
goto l423
l433:
position, tokenIndex = position423, tokenIndex423
if buffer[position] != rune('_') {
goto l411
}
position++
}
l423:
goto l410
l411:
position, tokenIndex = position411, tokenIndex411
}
add(ruleLocalSymbol, position409)
}
return true
l408:
position, tokenIndex = position408, tokenIndex408
return false
},
/* 31 LocalLabel <- <([0-9] ([0-9] / '$')*)> */
func() bool {
position434, tokenIndex434 := position, tokenIndex
{
position435 := position
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l434
}
position++
l436:
{
position437, tokenIndex437 := position, tokenIndex
{
position438, tokenIndex438 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l439
}
position++
goto l438
l439:
position, tokenIndex = position438, tokenIndex438
if buffer[position] != rune('$') {
goto l437
}
position++
}
l438:
goto l436
l437:
position, tokenIndex = position437, tokenIndex437
}
add(ruleLocalLabel, position435)
}
return true
l434:
position, tokenIndex = position434, tokenIndex434
return false
},
/* 32 LocalLabelRef <- <([0-9] ([0-9] / '$')* ('b' / 'f'))> */
func() bool {
position440, tokenIndex440 := position, tokenIndex
{
position441 := position
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l440
}
position++
l442:
{
position443, tokenIndex443 := position, tokenIndex
{
position444, tokenIndex444 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l445
}
position++
goto l444
l445:
position, tokenIndex = position444, tokenIndex444
if buffer[position] != rune('$') {
goto l443
}
position++
}
l444:
goto l442
l443:
position, tokenIndex = position443, tokenIndex443
}
{
position446, tokenIndex446 := position, tokenIndex
if buffer[position] != rune('b') {
goto l447
}
position++
goto l446
l447:
position, tokenIndex = position446, tokenIndex446
if buffer[position] != rune('f') {
goto l440
}
position++
}
l446:
add(ruleLocalLabelRef, position441)
}
return true
l440:
position, tokenIndex = position440, tokenIndex440
return false
},
/* 33 Instruction <- <(InstructionName (WS InstructionArg (WS? ','? WS? InstructionArg)*)?)> */
func() bool {
position448, tokenIndex448 := position, tokenIndex
{
position449 := position
if !_rules[ruleInstructionName]() {
goto l448
}
{
position450, tokenIndex450 := position, tokenIndex
if !_rules[ruleWS]() {
goto l450
}
if !_rules[ruleInstructionArg]() {
goto l450
}
l452:
{
position453, tokenIndex453 := position, tokenIndex
{
position454, tokenIndex454 := position, tokenIndex
if !_rules[ruleWS]() {
goto l454
}
goto l455
l454:
position, tokenIndex = position454, tokenIndex454
}
l455:
{
position456, tokenIndex456 := position, tokenIndex
if buffer[position] != rune(',') {
goto l456
}
position++
goto l457
l456:
position, tokenIndex = position456, tokenIndex456
}
l457:
{
position458, tokenIndex458 := position, tokenIndex
if !_rules[ruleWS]() {
goto l458
}
goto l459
l458:
position, tokenIndex = position458, tokenIndex458
}
l459:
if !_rules[ruleInstructionArg]() {
goto l453
}
goto l452
l453:
position, tokenIndex = position453, tokenIndex453
}
goto l451
l450:
position, tokenIndex = position450, tokenIndex450
}
l451:
add(ruleInstruction, position449)
}
return true
l448:
position, tokenIndex = position448, tokenIndex448
return false
},
/* 34 InstructionName <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]))* ('.' / '+' / '-')?)> */
func() bool {
position460, tokenIndex460 := position, tokenIndex
{
position461 := position
{
position462, tokenIndex462 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l463
}
position++
goto l462
l463:
position, tokenIndex = position462, tokenIndex462
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l460
}
position++
}
l462:
l464:
{
position465, tokenIndex465 := position, tokenIndex
{
position466, tokenIndex466 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l467
}
position++
goto l466
l467:
position, tokenIndex = position466, tokenIndex466
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l468
}
position++
goto l466
l468:
position, tokenIndex = position466, tokenIndex466
if buffer[position] != rune('.') {
goto l469
}
position++
goto l466
l469:
position, tokenIndex = position466, tokenIndex466
{
position470, tokenIndex470 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l471
}
position++
goto l470
l471:
position, tokenIndex = position470, tokenIndex470
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l465
}
position++
}
l470:
}
l466:
goto l464
l465:
position, tokenIndex = position465, tokenIndex465
}
{
position472, tokenIndex472 := position, tokenIndex
{
position474, tokenIndex474 := position, tokenIndex
if buffer[position] != rune('.') {
goto l475
}
position++
goto l474
l475:
position, tokenIndex = position474, tokenIndex474
if buffer[position] != rune('+') {
goto l476
}
position++
goto l474
l476:
position, tokenIndex = position474, tokenIndex474
if buffer[position] != rune('-') {
goto l472
}
position++
}
l474:
goto l473
l472:
position, tokenIndex = position472, tokenIndex472
}
l473:
add(ruleInstructionName, position461)
}
return true
l460:
position, tokenIndex = position460, tokenIndex460
return false
},
/* 35 InstructionArg <- <(IndirectionIndicator? (ARMConstantTweak / RegisterOrConstant / LocalLabelRef / TOCRefHigh / TOCRefLow / GOTLocation / GOTSymbolOffset / MemoryRef / AVX512Token))> */
func() bool {
position477, tokenIndex477 := position, tokenIndex
{
position478 := position
{
position479, tokenIndex479 := position, tokenIndex
if !_rules[ruleIndirectionIndicator]() {
goto l479
}
goto l480
l479:
position, tokenIndex = position479, tokenIndex479
}
l480:
{
position481, tokenIndex481 := position, tokenIndex
if !_rules[ruleARMConstantTweak]() {
goto l482
}
goto l481
l482:
position, tokenIndex = position481, tokenIndex481
if !_rules[ruleRegisterOrConstant]() {
goto l483
}
goto l481
l483:
position, tokenIndex = position481, tokenIndex481
if !_rules[ruleLocalLabelRef]() {
goto l484
}
goto l481
l484:
position, tokenIndex = position481, tokenIndex481
if !_rules[ruleTOCRefHigh]() {
goto l485
}
goto l481
l485:
position, tokenIndex = position481, tokenIndex481
if !_rules[ruleTOCRefLow]() {
goto l486
}
goto l481
l486:
position, tokenIndex = position481, tokenIndex481
if !_rules[ruleGOTLocation]() {
goto l487
}
goto l481
l487:
position, tokenIndex = position481, tokenIndex481
if !_rules[ruleGOTSymbolOffset]() {
goto l488
}
goto l481
l488:
position, tokenIndex = position481, tokenIndex481
if !_rules[ruleMemoryRef]() {
goto l489
}
goto l481
l489:
position, tokenIndex = position481, tokenIndex481
if !_rules[ruleAVX512Token]() {
goto l477
}
}
l481:
add(ruleInstructionArg, position478)
}
return true
l477:
position, tokenIndex = position477, tokenIndex477
return false
},
/* 36 GOTLocation <- <('$' '_' 'G' 'L' 'O' 'B' 'A' 'L' '_' 'O' 'F' 'F' 'S' 'E' 'T' '_' 'T' 'A' 'B' 'L' 'E' '_' '-' LocalSymbol)> */
func() bool {
position490, tokenIndex490 := position, tokenIndex
{
position491 := position
if buffer[position] != rune('$') {
goto l490
}
position++
if buffer[position] != rune('_') {
goto l490
}
position++
if buffer[position] != rune('G') {
goto l490
}
position++
if buffer[position] != rune('L') {
goto l490
}
position++
if buffer[position] != rune('O') {
goto l490
}
position++
if buffer[position] != rune('B') {
goto l490
}
position++
if buffer[position] != rune('A') {
goto l490
}
position++
if buffer[position] != rune('L') {
goto l490
}
position++
if buffer[position] != rune('_') {
goto l490
}
position++
if buffer[position] != rune('O') {
goto l490
}
position++
if buffer[position] != rune('F') {
goto l490
}
position++
if buffer[position] != rune('F') {
goto l490
}
position++
if buffer[position] != rune('S') {
goto l490
}
position++
if buffer[position] != rune('E') {
goto l490
}
position++
if buffer[position] != rune('T') {
goto l490
}
position++
if buffer[position] != rune('_') {
goto l490
}
position++
if buffer[position] != rune('T') {
goto l490
}
position++
if buffer[position] != rune('A') {
goto l490
}
position++
if buffer[position] != rune('B') {
goto l490
}
position++
if buffer[position] != rune('L') {
goto l490
}
position++
if buffer[position] != rune('E') {
goto l490
}
position++
if buffer[position] != rune('_') {
goto l490
}
position++
if buffer[position] != rune('-') {
goto l490
}
position++
if !_rules[ruleLocalSymbol]() {
goto l490
}
add(ruleGOTLocation, position491)
}
return true
l490:
position, tokenIndex = position490, tokenIndex490
return false
},
/* 37 GOTSymbolOffset <- <(('$' SymbolName ('@' 'G' 'O' 'T') ('O' 'F' 'F')?) / (':' ('g' / 'G') ('o' / 'O') ('t' / 'T') ':' SymbolName))> */
func() bool {
position492, tokenIndex492 := position, tokenIndex
{
position493 := position
{
position494, tokenIndex494 := position, tokenIndex
if buffer[position] != rune('$') {
goto l495
}
position++
if !_rules[ruleSymbolName]() {
goto l495
}
if buffer[position] != rune('@') {
goto l495
}
position++
if buffer[position] != rune('G') {
goto l495
}
position++
if buffer[position] != rune('O') {
goto l495
}
position++
if buffer[position] != rune('T') {
goto l495
}
position++
{
position496, tokenIndex496 := position, tokenIndex
if buffer[position] != rune('O') {
goto l496
}
position++
if buffer[position] != rune('F') {
goto l496
}
position++
if buffer[position] != rune('F') {
goto l496
}
position++
goto l497
l496:
position, tokenIndex = position496, tokenIndex496
}
l497:
goto l494
l495:
position, tokenIndex = position494, tokenIndex494
if buffer[position] != rune(':') {
goto l492
}
position++
{
position498, tokenIndex498 := position, tokenIndex
if buffer[position] != rune('g') {
goto l499
}
position++
goto l498
l499:
position, tokenIndex = position498, tokenIndex498
if buffer[position] != rune('G') {
goto l492
}
position++
}
l498:
{
position500, tokenIndex500 := position, tokenIndex
if buffer[position] != rune('o') {
goto l501
}
position++
goto l500
l501:
position, tokenIndex = position500, tokenIndex500
if buffer[position] != rune('O') {
goto l492
}
position++
}
l500:
{
position502, tokenIndex502 := position, tokenIndex
if buffer[position] != rune('t') {
goto l503
}
position++
goto l502
l503:
position, tokenIndex = position502, tokenIndex502
if buffer[position] != rune('T') {
goto l492
}
position++
}
l502:
if buffer[position] != rune(':') {
goto l492
}
position++
if !_rules[ruleSymbolName]() {
goto l492
}
}
l494:
add(ruleGOTSymbolOffset, position493)
}
return true
l492:
position, tokenIndex = position492, tokenIndex492
return false
},
/* 38 AVX512Token <- <(WS? '{' '%'? ([0-9] / [a-z])* '}')> */
func() bool {
position504, tokenIndex504 := position, tokenIndex
{
position505 := position
{
position506, tokenIndex506 := position, tokenIndex
if !_rules[ruleWS]() {
goto l506
}
goto l507
l506:
position, tokenIndex = position506, tokenIndex506
}
l507:
if buffer[position] != rune('{') {
goto l504
}
position++
{
position508, tokenIndex508 := position, tokenIndex
if buffer[position] != rune('%') {
goto l508
}
position++
goto l509
l508:
position, tokenIndex = position508, tokenIndex508
}
l509:
l510:
{
position511, tokenIndex511 := position, tokenIndex
{
position512, tokenIndex512 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l513
}
position++
goto l512
l513:
position, tokenIndex = position512, tokenIndex512
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l511
}
position++
}
l512:
goto l510
l511:
position, tokenIndex = position511, tokenIndex511
}
if buffer[position] != rune('}') {
goto l504
}
position++
add(ruleAVX512Token, position505)
}
return true
l504:
position, tokenIndex = position504, tokenIndex504
return false
},
/* 39 TOCRefHigh <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('h' / 'H') ('a' / 'A')))> */
func() bool {
position514, tokenIndex514 := position, tokenIndex
{
position515 := position
if buffer[position] != rune('.') {
goto l514
}
position++
if buffer[position] != rune('T') {
goto l514
}
position++
if buffer[position] != rune('O') {
goto l514
}
position++
if buffer[position] != rune('C') {
goto l514
}
position++
if buffer[position] != rune('.') {
goto l514
}
position++
if buffer[position] != rune('-') {
goto l514
}
position++
{
position516, tokenIndex516 := position, tokenIndex
if buffer[position] != rune('0') {
goto l517
}
position++
if buffer[position] != rune('b') {
goto l517
}
position++
goto l516
l517:
position, tokenIndex = position516, tokenIndex516
if buffer[position] != rune('.') {
goto l514
}
position++
if buffer[position] != rune('L') {
goto l514
}
position++
{
position520, tokenIndex520 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l521
}
position++
goto l520
l521:
position, tokenIndex = position520, tokenIndex520
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l522
}
position++
goto l520
l522:
position, tokenIndex = position520, tokenIndex520
if buffer[position] != rune('_') {
goto l523
}
position++
goto l520
l523:
position, tokenIndex = position520, tokenIndex520
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l514
}
position++
}
l520:
l518:
{
position519, tokenIndex519 := position, tokenIndex
{
position524, tokenIndex524 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l525
}
position++
goto l524
l525:
position, tokenIndex = position524, tokenIndex524
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l526
}
position++
goto l524
l526:
position, tokenIndex = position524, tokenIndex524
if buffer[position] != rune('_') {
goto l527
}
position++
goto l524
l527:
position, tokenIndex = position524, tokenIndex524
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l519
}
position++
}
l524:
goto l518
l519:
position, tokenIndex = position519, tokenIndex519
}
}
l516:
if buffer[position] != rune('@') {
goto l514
}
position++
{
position528, tokenIndex528 := position, tokenIndex
if buffer[position] != rune('h') {
goto l529
}
position++
goto l528
l529:
position, tokenIndex = position528, tokenIndex528
if buffer[position] != rune('H') {
goto l514
}
position++
}
l528:
{
position530, tokenIndex530 := position, tokenIndex
if buffer[position] != rune('a') {
goto l531
}
position++
goto l530
l531:
position, tokenIndex = position530, tokenIndex530
if buffer[position] != rune('A') {
goto l514
}
position++
}
l530:
add(ruleTOCRefHigh, position515)
}
return true
l514:
position, tokenIndex = position514, tokenIndex514
return false
},
/* 40 TOCRefLow <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('l' / 'L')))> */
func() bool {
position532, tokenIndex532 := position, tokenIndex
{
position533 := position
if buffer[position] != rune('.') {
goto l532
}
position++
if buffer[position] != rune('T') {
goto l532
}
position++
if buffer[position] != rune('O') {
goto l532
}
position++
if buffer[position] != rune('C') {
goto l532
}
position++
if buffer[position] != rune('.') {
goto l532
}
position++
if buffer[position] != rune('-') {
goto l532
}
position++
{
position534, tokenIndex534 := position, tokenIndex
if buffer[position] != rune('0') {
goto l535
}
position++
if buffer[position] != rune('b') {
goto l535
}
position++
goto l534
l535:
position, tokenIndex = position534, tokenIndex534
if buffer[position] != rune('.') {
goto l532
}
position++
if buffer[position] != rune('L') {
goto l532
}
position++
{
position538, tokenIndex538 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l539
}
position++
goto l538
l539:
position, tokenIndex = position538, tokenIndex538
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l540
}
position++
goto l538
l540:
position, tokenIndex = position538, tokenIndex538
if buffer[position] != rune('_') {
goto l541
}
position++
goto l538
l541:
position, tokenIndex = position538, tokenIndex538
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l532
}
position++
}
l538:
l536:
{
position537, tokenIndex537 := position, tokenIndex
{
position542, tokenIndex542 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l543
}
position++
goto l542
l543:
position, tokenIndex = position542, tokenIndex542
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l544
}
position++
goto l542
l544:
position, tokenIndex = position542, tokenIndex542
if buffer[position] != rune('_') {
goto l545
}
position++
goto l542
l545:
position, tokenIndex = position542, tokenIndex542
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l537
}
position++
}
l542:
goto l536
l537:
position, tokenIndex = position537, tokenIndex537
}
}
l534:
if buffer[position] != rune('@') {
goto l532
}
position++
{
position546, tokenIndex546 := position, tokenIndex
if buffer[position] != rune('l') {
goto l547
}
position++
goto l546
l547:
position, tokenIndex = position546, tokenIndex546
if buffer[position] != rune('L') {
goto l532
}
position++
}
l546:
add(ruleTOCRefLow, position533)
}
return true
l532:
position, tokenIndex = position532, tokenIndex532
return false
},
/* 41 IndirectionIndicator <- <'*'> */
func() bool {
position548, tokenIndex548 := position, tokenIndex
{
position549 := position
if buffer[position] != rune('*') {
goto l548
}
position++
add(ruleIndirectionIndicator, position549)
}
return true
l548:
position, tokenIndex = position548, tokenIndex548
return false
},
/* 42 RegisterOrConstant <- <((('%' ([a-z] / [A-Z]) ([a-z] / [A-Z] / ([0-9] / [0-9]))*) / ('$' [0-9]+ WS? '*' WS? '(' [0-9]+ WS? '-' WS? [0-9]+ ')') / ('$'? ((Offset Offset) / Offset)) / ('#' Offset ('*' [0-9]+ ('-' [0-9] [0-9]*)?)?) / ('#' '~'? '(' [0-9] WS? ('<' '<') WS? [0-9] [0-9]? ')') / (('#' / '$') '~'? ('0' 'x')? ([0-9] / [0-9] / ([a-f] / [A-F]))+) / ('$' '(' '-' [0-9]+ ')') / ('#' '(' [0-9]+ ')') / ARMRegister) !('f' / 'b' / ':' / '(' / '+' / '-'))> */
func() bool {
position550, tokenIndex550 := position, tokenIndex
{
position551 := position
{
position552, tokenIndex552 := position, tokenIndex
if buffer[position] != rune('%') {
goto l553
}
position++
{
position554, tokenIndex554 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l555
}
position++
goto l554
l555:
position, tokenIndex = position554, tokenIndex554
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l553
}
position++
}
l554:
l556:
{
position557, tokenIndex557 := position, tokenIndex
{
position558, tokenIndex558 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l559
}
position++
goto l558
l559:
position, tokenIndex = position558, tokenIndex558
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l560
}
position++
goto l558
l560:
position, tokenIndex = position558, tokenIndex558
{
position561, tokenIndex561 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l562
}
position++
goto l561
l562:
position, tokenIndex = position561, tokenIndex561
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l557
}
position++
}
l561:
}
l558:
goto l556
l557:
position, tokenIndex = position557, tokenIndex557
}
goto l552
l553:
position, tokenIndex = position552, tokenIndex552
if buffer[position] != rune('$') {
goto l563
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l563
}
position++
l564:
{
position565, tokenIndex565 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l565
}
position++
goto l564
l565:
position, tokenIndex = position565, tokenIndex565
}
{
position566, tokenIndex566 := position, tokenIndex
if !_rules[ruleWS]() {
goto l566
}
goto l567
l566:
position, tokenIndex = position566, tokenIndex566
}
l567:
if buffer[position] != rune('*') {
goto l563
}
position++
{
position568, tokenIndex568 := position, tokenIndex
if !_rules[ruleWS]() {
goto l568
}
goto l569
l568:
position, tokenIndex = position568, tokenIndex568
}
l569:
if buffer[position] != rune('(') {
goto l563
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l563
}
position++
l570:
{
position571, tokenIndex571 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l571
}
position++
goto l570
l571:
position, tokenIndex = position571, tokenIndex571
}
{
position572, tokenIndex572 := position, tokenIndex
if !_rules[ruleWS]() {
goto l572
}
goto l573
l572:
position, tokenIndex = position572, tokenIndex572
}
l573:
if buffer[position] != rune('-') {
goto l563
}
position++
{
position574, tokenIndex574 := position, tokenIndex
if !_rules[ruleWS]() {
goto l574
}
goto l575
l574:
position, tokenIndex = position574, tokenIndex574
}
l575:
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l563
}
position++
l576:
{
position577, tokenIndex577 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l577
}
position++
goto l576
l577:
position, tokenIndex = position577, tokenIndex577
}
if buffer[position] != rune(')') {
goto l563
}
position++
goto l552
l563:
position, tokenIndex = position552, tokenIndex552
{
position579, tokenIndex579 := position, tokenIndex
if buffer[position] != rune('$') {
goto l579
}
position++
goto l580
l579:
position, tokenIndex = position579, tokenIndex579
}
l580:
{
position581, tokenIndex581 := position, tokenIndex
if !_rules[ruleOffset]() {
goto l582
}
if !_rules[ruleOffset]() {
goto l582
}
goto l581
l582:
position, tokenIndex = position581, tokenIndex581
if !_rules[ruleOffset]() {
goto l578
}
}
l581:
goto l552
l578:
position, tokenIndex = position552, tokenIndex552
if buffer[position] != rune('#') {
goto l583
}
position++
if !_rules[ruleOffset]() {
goto l583
}
{
position584, tokenIndex584 := position, tokenIndex
if buffer[position] != rune('*') {
goto l584
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l584
}
position++
l586:
{
position587, tokenIndex587 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l587
}
position++
goto l586
l587:
position, tokenIndex = position587, tokenIndex587
}
{
position588, tokenIndex588 := position, tokenIndex
if buffer[position] != rune('-') {
goto l588
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l588
}
position++
l590:
{
position591, tokenIndex591 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l591
}
position++
goto l590
l591:
position, tokenIndex = position591, tokenIndex591
}
goto l589
l588:
position, tokenIndex = position588, tokenIndex588
}
l589:
goto l585
l584:
position, tokenIndex = position584, tokenIndex584
}
l585:
goto l552
l583:
position, tokenIndex = position552, tokenIndex552
if buffer[position] != rune('#') {
goto l592
}
position++
{
position593, tokenIndex593 := position, tokenIndex
if buffer[position] != rune('~') {
goto l593
}
position++
goto l594
l593:
position, tokenIndex = position593, tokenIndex593
}
l594:
if buffer[position] != rune('(') {
goto l592
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l592
}
position++
{
position595, tokenIndex595 := position, tokenIndex
if !_rules[ruleWS]() {
goto l595
}
goto l596
l595:
position, tokenIndex = position595, tokenIndex595
}
l596:
if buffer[position] != rune('<') {
goto l592
}
position++
if buffer[position] != rune('<') {
goto l592
}
position++
{
position597, tokenIndex597 := position, tokenIndex
if !_rules[ruleWS]() {
goto l597
}
goto l598
l597:
position, tokenIndex = position597, tokenIndex597
}
l598:
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l592
}
position++
{
position599, tokenIndex599 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l599
}
position++
goto l600
l599:
position, tokenIndex = position599, tokenIndex599
}
l600:
if buffer[position] != rune(')') {
goto l592
}
position++
goto l552
l592:
position, tokenIndex = position552, tokenIndex552
{
position602, tokenIndex602 := position, tokenIndex
if buffer[position] != rune('#') {
goto l603
}
position++
goto l602
l603:
position, tokenIndex = position602, tokenIndex602
if buffer[position] != rune('$') {
goto l601
}
position++
}
l602:
{
position604, tokenIndex604 := position, tokenIndex
if buffer[position] != rune('~') {
goto l604
}
position++
goto l605
l604:
position, tokenIndex = position604, tokenIndex604
}
l605:
{
position606, tokenIndex606 := position, tokenIndex
if buffer[position] != rune('0') {
goto l606
}
position++
if buffer[position] != rune('x') {
goto l606
}
position++
goto l607
l606:
position, tokenIndex = position606, tokenIndex606
}
l607:
{
position610, tokenIndex610 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l611
}
position++
goto l610
l611:
position, tokenIndex = position610, tokenIndex610
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l612
}
position++
goto l610
l612:
position, tokenIndex = position610, tokenIndex610
{
position613, tokenIndex613 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('f') {
goto l614
}
position++
goto l613
l614:
position, tokenIndex = position613, tokenIndex613
if c := buffer[position]; c < rune('A') || c > rune('F') {
goto l601
}
position++
}
l613:
}
l610:
l608:
{
position609, tokenIndex609 := position, tokenIndex
{
position615, tokenIndex615 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l616
}
position++
goto l615
l616:
position, tokenIndex = position615, tokenIndex615
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l617
}
position++
goto l615
l617:
position, tokenIndex = position615, tokenIndex615
{
position618, tokenIndex618 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('f') {
goto l619
}
position++
goto l618
l619:
position, tokenIndex = position618, tokenIndex618
if c := buffer[position]; c < rune('A') || c > rune('F') {
goto l609
}
position++
}
l618:
}
l615:
goto l608
l609:
position, tokenIndex = position609, tokenIndex609
}
goto l552
l601:
position, tokenIndex = position552, tokenIndex552
if buffer[position] != rune('$') {
goto l620
}
position++
if buffer[position] != rune('(') {
goto l620
}
position++
if buffer[position] != rune('-') {
goto l620
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l620
}
position++
l621:
{
position622, tokenIndex622 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l622
}
position++
goto l621
l622:
position, tokenIndex = position622, tokenIndex622
}
if buffer[position] != rune(')') {
goto l620
}
position++
goto l552
l620:
position, tokenIndex = position552, tokenIndex552
if buffer[position] != rune('#') {
goto l623
}
position++
if buffer[position] != rune('(') {
goto l623
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l623
}
position++
l624:
{
position625, tokenIndex625 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l625
}
position++
goto l624
l625:
position, tokenIndex = position625, tokenIndex625
}
if buffer[position] != rune(')') {
goto l623
}
position++
goto l552
l623:
position, tokenIndex = position552, tokenIndex552
if !_rules[ruleARMRegister]() {
goto l550
}
}
l552:
{
position626, tokenIndex626 := position, tokenIndex
{
position627, tokenIndex627 := position, tokenIndex
if buffer[position] != rune('f') {
goto l628
}
position++
goto l627
l628:
position, tokenIndex = position627, tokenIndex627
if buffer[position] != rune('b') {
goto l629
}
position++
goto l627
l629:
position, tokenIndex = position627, tokenIndex627
if buffer[position] != rune(':') {
goto l630
}
position++
goto l627
l630:
position, tokenIndex = position627, tokenIndex627
if buffer[position] != rune('(') {
goto l631
}
position++
goto l627
l631:
position, tokenIndex = position627, tokenIndex627
if buffer[position] != rune('+') {
goto l632
}
position++
goto l627
l632:
position, tokenIndex = position627, tokenIndex627
if buffer[position] != rune('-') {
goto l626
}
position++
}
l627:
goto l550
l626:
position, tokenIndex = position626, tokenIndex626
}
add(ruleRegisterOrConstant, position551)
}
return true
l550:
position, tokenIndex = position550, tokenIndex550
return false
},
/* 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')) / (('r' / 'R') ('o' / 'O') ('l' / 'L')) / (('a' / 'A') ('s' / 'S') ('r' / 'R')) / (('a' / 'A') ('s' / 'S') ('l' / 'L')) / (('m' / 'M') ('s' / 'S') ('l' / 'L'))) !([A-Z] / [a-z] / [0-9] / '_'))) (WS '#'? Offset)?) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' ('v' / 'V') ('l' / 'L')))> */
func() bool {
position633, tokenIndex633 := position, tokenIndex
{
position634 := position
{
position635, tokenIndex635 := position, tokenIndex
{
position637, tokenIndex637 := position, tokenIndex
{
position639, tokenIndex639 := position, tokenIndex
if buffer[position] != rune('u') {
goto l640
}
position++
goto l639
l640:
position, tokenIndex = position639, tokenIndex639
if buffer[position] != rune('s') {
goto l638
}
position++
}
l639:
{
position641, tokenIndex641 := position, tokenIndex
if buffer[position] != rune('x') {
goto l642
}
position++
goto l641
l642:
position, tokenIndex = position641, tokenIndex641
if buffer[position] != rune('X') {
goto l638
}
position++
}
l641:
{
position643, tokenIndex643 := position, tokenIndex
if buffer[position] != rune('t') {
goto l644
}
position++
goto l643
l644:
position, tokenIndex = position643, tokenIndex643
if buffer[position] != rune('T') {
goto l638
}
position++
}
l643:
{
position645, tokenIndex645 := position, tokenIndex
if buffer[position] != rune('x') {
goto l646
}
position++
goto l645
l646:
position, tokenIndex = position645, tokenIndex645
if buffer[position] != rune('w') {
goto l647
}
position++
goto l645
l647:
position, tokenIndex = position645, tokenIndex645
if buffer[position] != rune('h') {
goto l648
}
position++
goto l645
l648:
position, tokenIndex = position645, tokenIndex645
if buffer[position] != rune('b') {
goto l638
}
position++
}
l645:
goto l637
l638:
position, tokenIndex = position637, tokenIndex637
{
position649, tokenIndex649 := position, tokenIndex
{
position651, tokenIndex651 := position, tokenIndex
if buffer[position] != rune('l') {
goto l652
}
position++
goto l651
l652:
position, tokenIndex = position651, tokenIndex651
if buffer[position] != rune('L') {
goto l650
}
position++
}
l651:
{
position653, tokenIndex653 := position, tokenIndex
if buffer[position] != rune('s') {
goto l654
}
position++
goto l653
l654:
position, tokenIndex = position653, tokenIndex653
if buffer[position] != rune('S') {
goto l650
}
position++
}
l653:
{
position655, tokenIndex655 := position, tokenIndex
if buffer[position] != rune('l') {
goto l656
}
position++
goto l655
l656:
position, tokenIndex = position655, tokenIndex655
if buffer[position] != rune('L') {
goto l650
}
position++
}
l655:
goto l649
l650:
position, tokenIndex = position649, tokenIndex649
{
position658, tokenIndex658 := position, tokenIndex
if buffer[position] != rune('l') {
goto l659
}
position++
goto l658
l659:
position, tokenIndex = position658, tokenIndex658
if buffer[position] != rune('L') {
goto l657
}
position++
}
l658:
{
position660, tokenIndex660 := position, tokenIndex
if buffer[position] != rune('s') {
goto l661
}
position++
goto l660
l661:
position, tokenIndex = position660, tokenIndex660
if buffer[position] != rune('S') {
goto l657
}
position++
}
l660:
{
position662, tokenIndex662 := position, tokenIndex
if buffer[position] != rune('r') {
goto l663
}
position++
goto l662
l663:
position, tokenIndex = position662, tokenIndex662
if buffer[position] != rune('R') {
goto l657
}
position++
}
l662:
goto l649
l657:
position, tokenIndex = position649, tokenIndex649
{
position665, tokenIndex665 := position, tokenIndex
if buffer[position] != rune('r') {
goto l666
}
position++
goto l665
l666:
position, tokenIndex = position665, tokenIndex665
if buffer[position] != rune('R') {
goto l664
}
position++
}
l665:
{
position667, tokenIndex667 := position, tokenIndex
if buffer[position] != rune('o') {
goto l668
}
position++
goto l667
l668:
position, tokenIndex = position667, tokenIndex667
if buffer[position] != rune('O') {
goto l664
}
position++
}
l667:
{
position669, tokenIndex669 := position, tokenIndex
if buffer[position] != rune('r') {
goto l670
}
position++
goto l669
l670:
position, tokenIndex = position669, tokenIndex669
if buffer[position] != rune('R') {
goto l664
}
position++
}
l669:
goto l649
l664:
position, tokenIndex = position649, tokenIndex649
{
position672, tokenIndex672 := position, tokenIndex
if buffer[position] != rune('r') {
goto l673
}
position++
goto l672
l673:
position, tokenIndex = position672, tokenIndex672
if buffer[position] != rune('R') {
goto l671
}
position++
}
l672:
{
position674, tokenIndex674 := position, tokenIndex
if buffer[position] != rune('o') {
goto l675
}
position++
goto l674
l675:
position, tokenIndex = position674, tokenIndex674
if buffer[position] != rune('O') {
goto l671
}
position++
}
l674:
{
position676, tokenIndex676 := position, tokenIndex
if buffer[position] != rune('l') {
goto l677
}
position++
goto l676
l677:
position, tokenIndex = position676, tokenIndex676
if buffer[position] != rune('L') {
goto l671
}
position++
}
l676:
goto l649
l671:
position, tokenIndex = position649, tokenIndex649
{
position679, tokenIndex679 := position, tokenIndex
if buffer[position] != rune('a') {
goto l680
}
position++
goto l679
l680:
position, tokenIndex = position679, tokenIndex679
if buffer[position] != rune('A') {
goto l678
}
position++
}
l679:
{
position681, tokenIndex681 := position, tokenIndex
if buffer[position] != rune('s') {
goto l682
}
position++
goto l681
l682:
position, tokenIndex = position681, tokenIndex681
if buffer[position] != rune('S') {
goto l678
}
position++
}
l681:
{
position683, tokenIndex683 := position, tokenIndex
if buffer[position] != rune('r') {
goto l684
}
position++
goto l683
l684:
position, tokenIndex = position683, tokenIndex683
if buffer[position] != rune('R') {
goto l678
}
position++
}
l683:
goto l649
l678:
position, tokenIndex = position649, tokenIndex649
{
position686, tokenIndex686 := position, tokenIndex
if buffer[position] != rune('a') {
goto l687
}
position++
goto l686
l687:
position, tokenIndex = position686, tokenIndex686
if buffer[position] != rune('A') {
goto l685
}
position++
}
l686:
{
position688, tokenIndex688 := position, tokenIndex
if buffer[position] != rune('s') {
goto l689
}
position++
goto l688
l689:
position, tokenIndex = position688, tokenIndex688
if buffer[position] != rune('S') {
goto l685
}
position++
}
l688:
{
position690, tokenIndex690 := position, tokenIndex
if buffer[position] != rune('l') {
goto l691
}
position++
goto l690
l691:
position, tokenIndex = position690, tokenIndex690
if buffer[position] != rune('L') {
goto l685
}
position++
}
l690:
goto l649
l685:
position, tokenIndex = position649, tokenIndex649
{
position692, tokenIndex692 := position, tokenIndex
if buffer[position] != rune('m') {
goto l693
}
position++
goto l692
l693:
position, tokenIndex = position692, tokenIndex692
if buffer[position] != rune('M') {
goto l636
}
position++
}
l692:
{
position694, tokenIndex694 := position, tokenIndex
if buffer[position] != rune('s') {
goto l695
}
position++
goto l694
l695:
position, tokenIndex = position694, tokenIndex694
if buffer[position] != rune('S') {
goto l636
}
position++
}
l694:
{
position696, tokenIndex696 := position, tokenIndex
if buffer[position] != rune('l') {
goto l697
}
position++
goto l696
l697:
position, tokenIndex = position696, tokenIndex696
if buffer[position] != rune('L') {
goto l636
}
position++
}
l696:
}
l649:
{
position698, tokenIndex698 := position, tokenIndex
{
position699, tokenIndex699 := position, tokenIndex
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l700
}
position++
goto l699
l700:
position, tokenIndex = position699, tokenIndex699
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l701
}
position++
goto l699
l701:
position, tokenIndex = position699, tokenIndex699
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l702
}
position++
goto l699
l702:
position, tokenIndex = position699, tokenIndex699
if buffer[position] != rune('_') {
goto l698
}
position++
}
l699:
goto l636
l698:
position, tokenIndex = position698, tokenIndex698
}
}
l637:
{
position703, tokenIndex703 := position, tokenIndex
if !_rules[ruleWS]() {
goto l703
}
{
position705, tokenIndex705 := position, tokenIndex
if buffer[position] != rune('#') {
goto l705
}
position++
goto l706
l705:
position, tokenIndex = position705, tokenIndex705
}
l706:
if !_rules[ruleOffset]() {
goto l703
}
goto l704
l703:
position, tokenIndex = position703, tokenIndex703
}
l704:
goto l635
l636:
position, tokenIndex = position635, tokenIndex635
{
position707, tokenIndex707 := position, tokenIndex
if buffer[position] != rune('m') {
goto l708
}
position++
goto l707
l708:
position, tokenIndex = position707, tokenIndex707
if buffer[position] != rune('M') {
goto l633
}
position++
}
l707:
{
position709, tokenIndex709 := position, tokenIndex
if buffer[position] != rune('u') {
goto l710
}
position++
goto l709
l710:
position, tokenIndex = position709, tokenIndex709
if buffer[position] != rune('U') {
goto l633
}
position++
}
l709:
{
position711, tokenIndex711 := position, tokenIndex
if buffer[position] != rune('l') {
goto l712
}
position++
goto l711
l712:
position, tokenIndex = position711, tokenIndex711
if buffer[position] != rune('L') {
goto l633
}
position++
}
l711:
if buffer[position] != rune(' ') {
goto l633
}
position++
{
position713, tokenIndex713 := position, tokenIndex
if buffer[position] != rune('v') {
goto l714
}
position++
goto l713
l714:
position, tokenIndex = position713, tokenIndex713
if buffer[position] != rune('V') {
goto l633
}
position++
}
l713:
{
position715, tokenIndex715 := position, tokenIndex
if buffer[position] != rune('l') {
goto l716
}
position++
goto l715
l716:
position, tokenIndex = position715, tokenIndex715
if buffer[position] != rune('L') {
goto l633
}
position++
}
l715:
}
l635:
add(ruleARMConstantTweak, position634)
}
return true
l633:
position, tokenIndex = position633, tokenIndex633
return false
},
/* 44 ARMRegister <- <((('s' / 'S') ('p' / 'P')) / (('x' / 'w' / 'd' / 'q' / 's' / 'h' / 'b') [0-9] [0-9]? !ARMRegisterBoundary) / (('x' / 'X') ('z' / 'Z') ('r' / 'R')) / (('w' / 'W') ('z' / 'Z') ('r' / 'R')) / (('n' / 'N') ('z' / 'Z') ('c' / 'C') ('v' / 'V')) / ARMVectorRegister / SVE2PredicateRegister / ('{' WS? ARMVectorRegister WS? ((',' / '-') WS? ARMVectorRegister)* WS? '}' ('[' [0-9] [0-9]? ']')?))> */
func() bool {
position717, tokenIndex717 := position, tokenIndex
{
position718 := position
{
position719, tokenIndex719 := position, tokenIndex
{
position721, tokenIndex721 := position, tokenIndex
if buffer[position] != rune('s') {
goto l722
}
position++
goto l721
l722:
position, tokenIndex = position721, tokenIndex721
if buffer[position] != rune('S') {
goto l720
}
position++
}
l721:
{
position723, tokenIndex723 := position, tokenIndex
if buffer[position] != rune('p') {
goto l724
}
position++
goto l723
l724:
position, tokenIndex = position723, tokenIndex723
if buffer[position] != rune('P') {
goto l720
}
position++
}
l723:
goto l719
l720:
position, tokenIndex = position719, tokenIndex719
{
position726, tokenIndex726 := position, tokenIndex
if buffer[position] != rune('x') {
goto l727
}
position++
goto l726
l727:
position, tokenIndex = position726, tokenIndex726
if buffer[position] != rune('w') {
goto l728
}
position++
goto l726
l728:
position, tokenIndex = position726, tokenIndex726
if buffer[position] != rune('d') {
goto l729
}
position++
goto l726
l729:
position, tokenIndex = position726, tokenIndex726
if buffer[position] != rune('q') {
goto l730
}
position++
goto l726
l730:
position, tokenIndex = position726, tokenIndex726
if buffer[position] != rune('s') {
goto l731
}
position++
goto l726
l731:
position, tokenIndex = position726, tokenIndex726
if buffer[position] != rune('h') {
goto l732
}
position++
goto l726
l732:
position, tokenIndex = position726, tokenIndex726
if buffer[position] != rune('b') {
goto l725
}
position++
}
l726:
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l725
}
position++
{
position733, tokenIndex733 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l733
}
position++
goto l734
l733:
position, tokenIndex = position733, tokenIndex733
}
l734:
{
position735, tokenIndex735 := position, tokenIndex
if !_rules[ruleARMRegisterBoundary]() {
goto l735
}
goto l725
l735:
position, tokenIndex = position735, tokenIndex735
}
goto l719
l725:
position, tokenIndex = position719, tokenIndex719
{
position737, tokenIndex737 := position, tokenIndex
if buffer[position] != rune('x') {
goto l738
}
position++
goto l737
l738:
position, tokenIndex = position737, tokenIndex737
if buffer[position] != rune('X') {
goto l736
}
position++
}
l737:
{
position739, tokenIndex739 := position, tokenIndex
if buffer[position] != rune('z') {
goto l740
}
position++
goto l739
l740:
position, tokenIndex = position739, tokenIndex739
if buffer[position] != rune('Z') {
goto l736
}
position++
}
l739:
{
position741, tokenIndex741 := position, tokenIndex
if buffer[position] != rune('r') {
goto l742
}
position++
goto l741
l742:
position, tokenIndex = position741, tokenIndex741
if buffer[position] != rune('R') {
goto l736
}
position++
}
l741:
goto l719
l736:
position, tokenIndex = position719, tokenIndex719
{
position744, tokenIndex744 := position, tokenIndex
if buffer[position] != rune('w') {
goto l745
}
position++
goto l744
l745:
position, tokenIndex = position744, tokenIndex744
if buffer[position] != rune('W') {
goto l743
}
position++
}
l744:
{
position746, tokenIndex746 := position, tokenIndex
if buffer[position] != rune('z') {
goto l747
}
position++
goto l746
l747:
position, tokenIndex = position746, tokenIndex746
if buffer[position] != rune('Z') {
goto l743
}
position++
}
l746:
{
position748, tokenIndex748 := position, tokenIndex
if buffer[position] != rune('r') {
goto l749
}
position++
goto l748
l749:
position, tokenIndex = position748, tokenIndex748
if buffer[position] != rune('R') {
goto l743
}
position++
}
l748:
goto l719
l743:
position, tokenIndex = position719, tokenIndex719
{
position751, tokenIndex751 := position, tokenIndex
if buffer[position] != rune('n') {
goto l752
}
position++
goto l751
l752:
position, tokenIndex = position751, tokenIndex751
if buffer[position] != rune('N') {
goto l750
}
position++
}
l751:
{
position753, tokenIndex753 := position, tokenIndex
if buffer[position] != rune('z') {
goto l754
}
position++
goto l753
l754:
position, tokenIndex = position753, tokenIndex753
if buffer[position] != rune('Z') {
goto l750
}
position++
}
l753:
{
position755, tokenIndex755 := position, tokenIndex
if buffer[position] != rune('c') {
goto l756
}
position++
goto l755
l756:
position, tokenIndex = position755, tokenIndex755
if buffer[position] != rune('C') {
goto l750
}
position++
}
l755:
{
position757, tokenIndex757 := position, tokenIndex
if buffer[position] != rune('v') {
goto l758
}
position++
goto l757
l758:
position, tokenIndex = position757, tokenIndex757
if buffer[position] != rune('V') {
goto l750
}
position++
}
l757:
goto l719
l750:
position, tokenIndex = position719, tokenIndex719
if !_rules[ruleARMVectorRegister]() {
goto l759
}
goto l719
l759:
position, tokenIndex = position719, tokenIndex719
if !_rules[ruleSVE2PredicateRegister]() {
goto l760
}
goto l719
l760:
position, tokenIndex = position719, tokenIndex719
if buffer[position] != rune('{') {
goto l717
}
position++
{
position761, tokenIndex761 := position, tokenIndex
if !_rules[ruleWS]() {
goto l761
}
goto l762
l761:
position, tokenIndex = position761, tokenIndex761
}
l762:
if !_rules[ruleARMVectorRegister]() {
goto l717
}
{
position763, tokenIndex763 := position, tokenIndex
if !_rules[ruleWS]() {
goto l763
}
goto l764
l763:
position, tokenIndex = position763, tokenIndex763
}
l764:
l765:
{
position766, tokenIndex766 := position, tokenIndex
{
position767, tokenIndex767 := position, tokenIndex
if buffer[position] != rune(',') {
goto l768
}
position++
goto l767
l768:
position, tokenIndex = position767, tokenIndex767
if buffer[position] != rune('-') {
goto l766
}
position++
}
l767:
{
position769, tokenIndex769 := position, tokenIndex
if !_rules[ruleWS]() {
goto l769
}
goto l770
l769:
position, tokenIndex = position769, tokenIndex769
}
l770:
if !_rules[ruleARMVectorRegister]() {
goto l766
}
goto l765
l766:
position, tokenIndex = position766, tokenIndex766
}
{
position771, tokenIndex771 := position, tokenIndex
if !_rules[ruleWS]() {
goto l771
}
goto l772
l771:
position, tokenIndex = position771, tokenIndex771
}
l772:
if buffer[position] != rune('}') {
goto l717
}
position++
{
position773, tokenIndex773 := position, tokenIndex
if buffer[position] != rune('[') {
goto l773
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l773
}
position++
{
position775, tokenIndex775 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l775
}
position++
goto l776
l775:
position, tokenIndex = position775, tokenIndex775
}
l776:
if buffer[position] != rune(']') {
goto l773
}
position++
goto l774
l773:
position, tokenIndex = position773, tokenIndex773
}
l774:
}
l719:
add(ruleARMRegister, position718)
}
return true
l717:
position, tokenIndex = position717, tokenIndex717
return false
},
/* 45 ARMVectorRegister <- <(('v' / 'z') [0-9] [0-9]? ('.' [0-9]* ('b' / 's' / 'd' / 'h' / 'q' / 'B' / 'S' / 'D' / 'H' / 'Q') ('[' [0-9] [0-9]? ']')?)?)> */
func() bool {
position777, tokenIndex777 := position, tokenIndex
{
position778 := position
{
position779, tokenIndex779 := position, tokenIndex
if buffer[position] != rune('v') {
goto l780
}
position++
goto l779
l780:
position, tokenIndex = position779, tokenIndex779
if buffer[position] != rune('z') {
goto l777
}
position++
}
l779:
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l777
}
position++
{
position781, tokenIndex781 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l781
}
position++
goto l782
l781:
position, tokenIndex = position781, tokenIndex781
}
l782:
{
position783, tokenIndex783 := position, tokenIndex
if buffer[position] != rune('.') {
goto l783
}
position++
l785:
{
position786, tokenIndex786 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l786
}
position++
goto l785
l786:
position, tokenIndex = position786, tokenIndex786
}
{
position787, tokenIndex787 := position, tokenIndex
if buffer[position] != rune('b') {
goto l788
}
position++
goto l787
l788:
position, tokenIndex = position787, tokenIndex787
if buffer[position] != rune('s') {
goto l789
}
position++
goto l787
l789:
position, tokenIndex = position787, tokenIndex787
if buffer[position] != rune('d') {
goto l790
}
position++
goto l787
l790:
position, tokenIndex = position787, tokenIndex787
if buffer[position] != rune('h') {
goto l791
}
position++
goto l787
l791:
position, tokenIndex = position787, tokenIndex787
if buffer[position] != rune('q') {
goto l792
}
position++
goto l787
l792:
position, tokenIndex = position787, tokenIndex787
if buffer[position] != rune('B') {
goto l793
}
position++
goto l787
l793:
position, tokenIndex = position787, tokenIndex787
if buffer[position] != rune('S') {
goto l794
}
position++
goto l787
l794:
position, tokenIndex = position787, tokenIndex787
if buffer[position] != rune('D') {
goto l795
}
position++
goto l787
l795:
position, tokenIndex = position787, tokenIndex787
if buffer[position] != rune('H') {
goto l796
}
position++
goto l787
l796:
position, tokenIndex = position787, tokenIndex787
if buffer[position] != rune('Q') {
goto l783
}
position++
}
l787:
{
position797, tokenIndex797 := position, tokenIndex
if buffer[position] != rune('[') {
goto l797
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l797
}
position++
{
position799, tokenIndex799 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l799
}
position++
goto l800
l799:
position, tokenIndex = position799, tokenIndex799
}
l800:
if buffer[position] != rune(']') {
goto l797
}
position++
goto l798
l797:
position, tokenIndex = position797, tokenIndex797
}
l798:
goto l784
l783:
position, tokenIndex = position783, tokenIndex783
}
l784:
add(ruleARMVectorRegister, position778)
}
return true
l777:
position, tokenIndex = position777, tokenIndex777
return false
},
/* 46 SVE2PredicateRegister <- <(('p' / 'P') [0-9] [0-9]? '/' ('m' / 'M' / 'z' / 'Z'))> */
func() bool {
position801, tokenIndex801 := position, tokenIndex
{
position802 := position
{
position803, tokenIndex803 := position, tokenIndex
if buffer[position] != rune('p') {
goto l804
}
position++
goto l803
l804:
position, tokenIndex = position803, tokenIndex803
if buffer[position] != rune('P') {
goto l801
}
position++
}
l803:
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l801
}
position++
{
position805, tokenIndex805 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l805
}
position++
goto l806
l805:
position, tokenIndex = position805, tokenIndex805
}
l806:
if buffer[position] != rune('/') {
goto l801
}
position++
{
position807, tokenIndex807 := position, tokenIndex
if buffer[position] != rune('m') {
goto l808
}
position++
goto l807
l808:
position, tokenIndex = position807, tokenIndex807
if buffer[position] != rune('M') {
goto l809
}
position++
goto l807
l809:
position, tokenIndex = position807, tokenIndex807
if buffer[position] != rune('z') {
goto l810
}
position++
goto l807
l810:
position, tokenIndex = position807, tokenIndex807
if buffer[position] != rune('Z') {
goto l801
}
position++
}
l807:
add(ruleSVE2PredicateRegister, position802)
}
return true
l801:
position, tokenIndex = position801, tokenIndex801
return false
},
/* 47 ARMRegisterBoundary <- <([a-z] / [A-Z] / [0-9] / '_')> */
func() bool {
position811, tokenIndex811 := position, tokenIndex
{
position812 := position
{
position813, tokenIndex813 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l814
}
position++
goto l813
l814:
position, tokenIndex = position813, tokenIndex813
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l815
}
position++
goto l813
l815:
position, tokenIndex = position813, tokenIndex813
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l816
}
position++
goto l813
l816:
position, tokenIndex = position813, tokenIndex813
if buffer[position] != rune('_') {
goto l811
}
position++
}
l813:
add(ruleARMRegisterBoundary, position812)
}
return true
l811:
position, tokenIndex = position811, tokenIndex811
return false
},
/* 48 MemoryRef <- <((SymbolRef BaseIndexScale) / SymbolRef / Low12BitsSymbolRef / (Offset* BaseIndexScale) / (SegmentRegister Offset BaseIndexScale) / (SegmentRegister BaseIndexScale) / (SegmentRegister Offset) / ARMBaseIndexScale / BaseIndexScale)> */
func() bool {
position817, tokenIndex817 := position, tokenIndex
{
position818 := position
{
position819, tokenIndex819 := position, tokenIndex
if !_rules[ruleSymbolRef]() {
goto l820
}
if !_rules[ruleBaseIndexScale]() {
goto l820
}
goto l819
l820:
position, tokenIndex = position819, tokenIndex819
if !_rules[ruleSymbolRef]() {
goto l821
}
goto l819
l821:
position, tokenIndex = position819, tokenIndex819
if !_rules[ruleLow12BitsSymbolRef]() {
goto l822
}
goto l819
l822:
position, tokenIndex = position819, tokenIndex819
l824:
{
position825, tokenIndex825 := position, tokenIndex
if !_rules[ruleOffset]() {
goto l825
}
goto l824
l825:
position, tokenIndex = position825, tokenIndex825
}
if !_rules[ruleBaseIndexScale]() {
goto l823
}
goto l819
l823:
position, tokenIndex = position819, tokenIndex819
if !_rules[ruleSegmentRegister]() {
goto l826
}
if !_rules[ruleOffset]() {
goto l826
}
if !_rules[ruleBaseIndexScale]() {
goto l826
}
goto l819
l826:
position, tokenIndex = position819, tokenIndex819
if !_rules[ruleSegmentRegister]() {
goto l827
}
if !_rules[ruleBaseIndexScale]() {
goto l827
}
goto l819
l827:
position, tokenIndex = position819, tokenIndex819
if !_rules[ruleSegmentRegister]() {
goto l828
}
if !_rules[ruleOffset]() {
goto l828
}
goto l819
l828:
position, tokenIndex = position819, tokenIndex819
if !_rules[ruleARMBaseIndexScale]() {
goto l829
}
goto l819
l829:
position, tokenIndex = position819, tokenIndex819
if !_rules[ruleBaseIndexScale]() {
goto l817
}
}
l819:
add(ruleMemoryRef, position818)
}
return true
l817:
position, tokenIndex = position817, tokenIndex817
return false
},
/* 49 SymbolRef <- <((Offset* '+')? (LocalSymbol / SymbolName) Offset* ('@' Section Offset*)?)> */
func() bool {
position830, tokenIndex830 := position, tokenIndex
{
position831 := position
{
position832, tokenIndex832 := position, tokenIndex
l834:
{
position835, tokenIndex835 := position, tokenIndex
if !_rules[ruleOffset]() {
goto l835
}
goto l834
l835:
position, tokenIndex = position835, tokenIndex835
}
if buffer[position] != rune('+') {
goto l832
}
position++
goto l833
l832:
position, tokenIndex = position832, tokenIndex832
}
l833:
{
position836, tokenIndex836 := position, tokenIndex
if !_rules[ruleLocalSymbol]() {
goto l837
}
goto l836
l837:
position, tokenIndex = position836, tokenIndex836
if !_rules[ruleSymbolName]() {
goto l830
}
}
l836:
l838:
{
position839, tokenIndex839 := position, tokenIndex
if !_rules[ruleOffset]() {
goto l839
}
goto l838
l839:
position, tokenIndex = position839, tokenIndex839
}
{
position840, tokenIndex840 := position, tokenIndex
if buffer[position] != rune('@') {
goto l840
}
position++
if !_rules[ruleSection]() {
goto l840
}
l842:
{
position843, tokenIndex843 := position, tokenIndex
if !_rules[ruleOffset]() {
goto l843
}
goto l842
l843:
position, tokenIndex = position843, tokenIndex843
}
goto l841
l840:
position, tokenIndex = position840, tokenIndex840
}
l841:
add(ruleSymbolRef, position831)
}
return true
l830:
position, tokenIndex = position830, tokenIndex830
return false
},
/* 50 Low12BitsSymbolRef <- <(':' ('l' / 'L') ('o' / 'O') '1' '2' ':' (LocalSymbol / SymbolName) Offset?)> */
func() bool {
position844, tokenIndex844 := position, tokenIndex
{
position845 := position
if buffer[position] != rune(':') {
goto l844
}
position++
{
position846, tokenIndex846 := position, tokenIndex
if buffer[position] != rune('l') {
goto l847
}
position++
goto l846
l847:
position, tokenIndex = position846, tokenIndex846
if buffer[position] != rune('L') {
goto l844
}
position++
}
l846:
{
position848, tokenIndex848 := position, tokenIndex
if buffer[position] != rune('o') {
goto l849
}
position++
goto l848
l849:
position, tokenIndex = position848, tokenIndex848
if buffer[position] != rune('O') {
goto l844
}
position++
}
l848:
if buffer[position] != rune('1') {
goto l844
}
position++
if buffer[position] != rune('2') {
goto l844
}
position++
if buffer[position] != rune(':') {
goto l844
}
position++
{
position850, tokenIndex850 := position, tokenIndex
if !_rules[ruleLocalSymbol]() {
goto l851
}
goto l850
l851:
position, tokenIndex = position850, tokenIndex850
if !_rules[ruleSymbolName]() {
goto l844
}
}
l850:
{
position852, tokenIndex852 := position, tokenIndex
if !_rules[ruleOffset]() {
goto l852
}
goto l853
l852:
position, tokenIndex = position852, tokenIndex852
}
l853:
add(ruleLow12BitsSymbolRef, position845)
}
return true
l844:
position, tokenIndex = position844, tokenIndex844
return false
},
/* 51 ARMBaseIndexScale <- <('[' ARMRegister (',' WS? (('#'? Offset (('*' [0-9]+) / ('*' '(' [0-9]+ Operator [0-9]+ ')') / ('+' [0-9]+)*)?) / ('#'? ARMGOTLow12) / ('#'? Low12BitsSymbolRef) / ARMRegister) (',' WS? ARMConstantTweak)?)? ']' ARMPostincrement?)> */
func() bool {
position854, tokenIndex854 := position, tokenIndex
{
position855 := position
if buffer[position] != rune('[') {
goto l854
}
position++
if !_rules[ruleARMRegister]() {
goto l854
}
{
position856, tokenIndex856 := position, tokenIndex
if buffer[position] != rune(',') {
goto l856
}
position++
{
position858, tokenIndex858 := position, tokenIndex
if !_rules[ruleWS]() {
goto l858
}
goto l859
l858:
position, tokenIndex = position858, tokenIndex858
}
l859:
{
position860, tokenIndex860 := position, tokenIndex
{
position862, tokenIndex862 := position, tokenIndex
if buffer[position] != rune('#') {
goto l862
}
position++
goto l863
l862:
position, tokenIndex = position862, tokenIndex862
}
l863:
if !_rules[ruleOffset]() {
goto l861
}
{
position864, tokenIndex864 := position, tokenIndex
{
position866, tokenIndex866 := position, tokenIndex
if buffer[position] != rune('*') {
goto l867
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l867
}
position++
l868:
{
position869, tokenIndex869 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l869
}
position++
goto l868
l869:
position, tokenIndex = position869, tokenIndex869
}
goto l866
l867:
position, tokenIndex = position866, tokenIndex866
if buffer[position] != rune('*') {
goto l870
}
position++
if buffer[position] != rune('(') {
goto l870
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l870
}
position++
l871:
{
position872, tokenIndex872 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l872
}
position++
goto l871
l872:
position, tokenIndex = position872, tokenIndex872
}
if !_rules[ruleOperator]() {
goto l870
}
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l870
}
position++
l873:
{
position874, tokenIndex874 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l874
}
position++
goto l873
l874:
position, tokenIndex = position874, tokenIndex874
}
if buffer[position] != rune(')') {
goto l870
}
position++
goto l866
l870:
position, tokenIndex = position866, tokenIndex866
l875:
{
position876, tokenIndex876 := position, tokenIndex
if buffer[position] != rune('+') {
goto l876
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l876
}
position++
l877:
{
position878, tokenIndex878 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l878
}
position++
goto l877
l878:
position, tokenIndex = position878, tokenIndex878
}
goto l875
l876:
position, tokenIndex = position876, tokenIndex876
}
}
l866:
goto l865
position, tokenIndex = position864, tokenIndex864
}
l865:
goto l860
l861:
position, tokenIndex = position860, tokenIndex860
{
position880, tokenIndex880 := position, tokenIndex
if buffer[position] != rune('#') {
goto l880
}
position++
goto l881
l880:
position, tokenIndex = position880, tokenIndex880
}
l881:
if !_rules[ruleARMGOTLow12]() {
goto l879
}
goto l860
l879:
position, tokenIndex = position860, tokenIndex860
{
position883, tokenIndex883 := position, tokenIndex
if buffer[position] != rune('#') {
goto l883
}
position++
goto l884
l883:
position, tokenIndex = position883, tokenIndex883
}
l884:
if !_rules[ruleLow12BitsSymbolRef]() {
goto l882
}
goto l860
l882:
position, tokenIndex = position860, tokenIndex860
if !_rules[ruleARMRegister]() {
goto l856
}
}
l860:
{
position885, tokenIndex885 := position, tokenIndex
if buffer[position] != rune(',') {
goto l885
}
position++
{
position887, tokenIndex887 := position, tokenIndex
if !_rules[ruleWS]() {
goto l887
}
goto l888
l887:
position, tokenIndex = position887, tokenIndex887
}
l888:
if !_rules[ruleARMConstantTweak]() {
goto l885
}
goto l886
l885:
position, tokenIndex = position885, tokenIndex885
}
l886:
goto l857
l856:
position, tokenIndex = position856, tokenIndex856
}
l857:
if buffer[position] != rune(']') {
goto l854
}
position++
{
position889, tokenIndex889 := position, tokenIndex
if !_rules[ruleARMPostincrement]() {
goto l889
}
goto l890
l889:
position, tokenIndex = position889, tokenIndex889
}
l890:
add(ruleARMBaseIndexScale, position855)
}
return true
l854:
position, tokenIndex = position854, tokenIndex854
return false
},
/* 52 ARMGOTLow12 <- <(':' ('g' / 'G') ('o' / 'O') ('t' / 'T') '_' ('l' / 'L') ('o' / 'O') '1' '2' ':' SymbolName)> */
func() bool {
position891, tokenIndex891 := position, tokenIndex
{
position892 := position
if buffer[position] != rune(':') {
goto l891
}
position++
{
position893, tokenIndex893 := position, tokenIndex
if buffer[position] != rune('g') {
goto l894
}
position++
goto l893
l894:
position, tokenIndex = position893, tokenIndex893
if buffer[position] != rune('G') {
goto l891
}
position++
}
l893:
{
position895, tokenIndex895 := position, tokenIndex
if buffer[position] != rune('o') {
goto l896
}
position++
goto l895
l896:
position, tokenIndex = position895, tokenIndex895
if buffer[position] != rune('O') {
goto l891
}
position++
}
l895:
{
position897, tokenIndex897 := position, tokenIndex
if buffer[position] != rune('t') {
goto l898
}
position++
goto l897
l898:
position, tokenIndex = position897, tokenIndex897
if buffer[position] != rune('T') {
goto l891
}
position++
}
l897:
if buffer[position] != rune('_') {
goto l891
}
position++
{
position899, tokenIndex899 := position, tokenIndex
if buffer[position] != rune('l') {
goto l900
}
position++
goto l899
l900:
position, tokenIndex = position899, tokenIndex899
if buffer[position] != rune('L') {
goto l891
}
position++
}
l899:
{
position901, tokenIndex901 := position, tokenIndex
if buffer[position] != rune('o') {
goto l902
}
position++
goto l901
l902:
position, tokenIndex = position901, tokenIndex901
if buffer[position] != rune('O') {
goto l891
}
position++
}
l901:
if buffer[position] != rune('1') {
goto l891
}
position++
if buffer[position] != rune('2') {
goto l891
}
position++
if buffer[position] != rune(':') {
goto l891
}
position++
if !_rules[ruleSymbolName]() {
goto l891
}
add(ruleARMGOTLow12, position892)
}
return true
l891:
position, tokenIndex = position891, tokenIndex891
return false
},
/* 53 ARMPostincrement <- <'!'> */
func() bool {
position903, tokenIndex903 := position, tokenIndex
{
position904 := position
if buffer[position] != rune('!') {
goto l903
}
position++
add(ruleARMPostincrement, position904)
}
return true
l903:
position, tokenIndex = position903, tokenIndex903
return false
},
/* 54 BaseIndexScale <- <('(' RegisterOrConstant? WS? (',' WS? RegisterOrConstant WS? (',' [0-9]+)?)? ')')> */
func() bool {
position905, tokenIndex905 := position, tokenIndex
{
position906 := position
if buffer[position] != rune('(') {
goto l905
}
position++
{
position907, tokenIndex907 := position, tokenIndex
if !_rules[ruleRegisterOrConstant]() {
goto l907
}
goto l908
l907:
position, tokenIndex = position907, tokenIndex907
}
l908:
{
position909, tokenIndex909 := position, tokenIndex
if !_rules[ruleWS]() {
goto l909
}
goto l910
l909:
position, tokenIndex = position909, tokenIndex909
}
l910:
{
position911, tokenIndex911 := position, tokenIndex
if buffer[position] != rune(',') {
goto l911
}
position++
{
position913, tokenIndex913 := position, tokenIndex
if !_rules[ruleWS]() {
goto l913
}
goto l914
l913:
position, tokenIndex = position913, tokenIndex913
}
l914:
if !_rules[ruleRegisterOrConstant]() {
goto l911
}
{
position915, tokenIndex915 := position, tokenIndex
if !_rules[ruleWS]() {
goto l915
}
goto l916
l915:
position, tokenIndex = position915, tokenIndex915
}
l916:
{
position917, tokenIndex917 := position, tokenIndex
if buffer[position] != rune(',') {
goto l917
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l917
}
position++
l919:
{
position920, tokenIndex920 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l920
}
position++
goto l919
l920:
position, tokenIndex = position920, tokenIndex920
}
goto l918
l917:
position, tokenIndex = position917, tokenIndex917
}
l918:
goto l912
l911:
position, tokenIndex = position911, tokenIndex911
}
l912:
if buffer[position] != rune(')') {
goto l905
}
position++
add(ruleBaseIndexScale, position906)
}
return true
l905:
position, tokenIndex = position905, tokenIndex905
return false
},
/* 55 Operator <- <('+' / '-')> */
func() bool {
position921, tokenIndex921 := position, tokenIndex
{
position922 := position
{
position923, tokenIndex923 := position, tokenIndex
if buffer[position] != rune('+') {
goto l924
}
position++
goto l923
l924:
position, tokenIndex = position923, tokenIndex923
if buffer[position] != rune('-') {
goto l921
}
position++
}
l923:
add(ruleOperator, position922)
}
return true
l921:
position, tokenIndex = position921, tokenIndex921
return false
},
/* 56 OffsetOperator <- <('+' / '-' / '*')> */
func() bool {
position925, tokenIndex925 := position, tokenIndex
{
position926 := position
{
position927, tokenIndex927 := position, tokenIndex
if buffer[position] != rune('+') {
goto l928
}
position++
goto l927
l928:
position, tokenIndex = position927, tokenIndex927
if buffer[position] != rune('-') {
goto l929
}
position++
goto l927
l929:
position, tokenIndex = position927, tokenIndex927
if buffer[position] != rune('*') {
goto l925
}
position++
}
l927:
add(ruleOffsetOperator, position926)
}
return true
l925:
position, tokenIndex = position925, tokenIndex925
return false
},
/* 57 S2nBignumHelper <- <('(' [0-9]+ WS? OffsetOperator WS? [0-9]+ ')' WS? OffsetOperator? WS?)> */
func() bool {
position930, tokenIndex930 := position, tokenIndex
{
position931 := position
if buffer[position] != rune('(') {
goto l930
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l930
}
position++
l932:
{
position933, tokenIndex933 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l933
}
position++
goto l932
l933:
position, tokenIndex = position933, tokenIndex933
}
{
position934, tokenIndex934 := position, tokenIndex
if !_rules[ruleWS]() {
goto l934
}
goto l935
l934:
position, tokenIndex = position934, tokenIndex934
}
l935:
if !_rules[ruleOffsetOperator]() {
goto l930
}
{
position936, tokenIndex936 := position, tokenIndex
if !_rules[ruleWS]() {
goto l936
}
goto l937
l936:
position, tokenIndex = position936, tokenIndex936
}
l937:
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l930
}
position++
l938:
{
position939, tokenIndex939 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l939
}
position++
goto l938
l939:
position, tokenIndex = position939, tokenIndex939
}
if buffer[position] != rune(')') {
goto l930
}
position++
{
position940, tokenIndex940 := position, tokenIndex
if !_rules[ruleWS]() {
goto l940
}
goto l941
l940:
position, tokenIndex = position940, tokenIndex940
}
l941:
{
position942, tokenIndex942 := position, tokenIndex
if !_rules[ruleOffsetOperator]() {
goto l942
}
goto l943
l942:
position, tokenIndex = position942, tokenIndex942
}
l943:
{
position944, tokenIndex944 := position, tokenIndex
if !_rules[ruleWS]() {
goto l944
}
goto l945
l944:
position, tokenIndex = position944, tokenIndex944
}
l945:
add(ruleS2nBignumHelper, position931)
}
return true
l930:
position, tokenIndex = position930, tokenIndex930
return false
},
/* 58 Offset <- <('+'? '-'? (('0' ('b' / 'B') ('0' / '1')+) / ('0' ('x' / 'X') ([0-9] / [0-9] / ([a-f] / [A-F]))+) / ((([0-9]+ WS OffsetOperator [0-9]+) / ([0-9]+ (OffsetOperator '(' [0-9]+ OffsetOperator [0-9]+ ')')?) / ([0-9]+ (OffsetOperator [0-9]+ OffsetOperator [0-9]+)?) / ([0-9]+ (OffsetOperator [0-9]+)?) / (S2nBignumHelper S2nBignumHelper (S2nBignumHelper ([0-9]+ OffsetOperator)? [0-9]+ OffsetOperator)? [0-9]+) / (S2nBignumHelper [0-9]+ ((WS? OffsetOperator [0-9]+ (WS? OffsetOperator [0-9]+)?) / !'x')) / S2nBignumHelper / ('(' [0-9]+ WS? OffsetOperator WS? [0-9]+ WS? OffsetOperator WS? [0-9]+ ')')) !([a-z] / [A-Z]))))> */
func() bool {
position946, tokenIndex946 := position, tokenIndex
{
position947 := position
{
position948, tokenIndex948 := position, tokenIndex
if buffer[position] != rune('+') {
goto l948
}
position++
goto l949
l948:
position, tokenIndex = position948, tokenIndex948
}
l949:
{
position950, tokenIndex950 := position, tokenIndex
if buffer[position] != rune('-') {
goto l950
}
position++
goto l951
l950:
position, tokenIndex = position950, tokenIndex950
}
l951:
{
position952, tokenIndex952 := position, tokenIndex
if buffer[position] != rune('0') {
goto l953
}
position++
{
position954, tokenIndex954 := position, tokenIndex
if buffer[position] != rune('b') {
goto l955
}
position++
goto l954
l955:
position, tokenIndex = position954, tokenIndex954
if buffer[position] != rune('B') {
goto l953
}
position++
}
l954:
{
position958, tokenIndex958 := position, tokenIndex
if buffer[position] != rune('0') {
goto l959
}
position++
goto l958
l959:
position, tokenIndex = position958, tokenIndex958
if buffer[position] != rune('1') {
goto l953
}
position++
}
l958:
l956:
{
position957, tokenIndex957 := position, tokenIndex
{
position960, tokenIndex960 := position, tokenIndex
if buffer[position] != rune('0') {
goto l961
}
position++
goto l960
l961:
position, tokenIndex = position960, tokenIndex960
if buffer[position] != rune('1') {
goto l957
}
position++
}
l960:
goto l956
l957:
position, tokenIndex = position957, tokenIndex957
}
goto l952
l953:
position, tokenIndex = position952, tokenIndex952
if buffer[position] != rune('0') {
goto l962
}
position++
{
position963, tokenIndex963 := position, tokenIndex
if buffer[position] != rune('x') {
goto l964
}
position++
goto l963
l964:
position, tokenIndex = position963, tokenIndex963
if buffer[position] != rune('X') {
goto l962
}
position++
}
l963:
{
position967, tokenIndex967 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l968
}
position++
goto l967
l968:
position, tokenIndex = position967, tokenIndex967
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l969
}
position++
goto l967
l969:
position, tokenIndex = position967, tokenIndex967
{
position970, tokenIndex970 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('f') {
goto l971
}
position++
goto l970
l971:
position, tokenIndex = position970, tokenIndex970
if c := buffer[position]; c < rune('A') || c > rune('F') {
goto l962
}
position++
}
l970:
}
l967:
l965:
{
position966, tokenIndex966 := position, tokenIndex
{
position972, tokenIndex972 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l973
}
position++
goto l972
l973:
position, tokenIndex = position972, tokenIndex972
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l974
}
position++
goto l972
l974:
position, tokenIndex = position972, tokenIndex972
{
position975, tokenIndex975 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('f') {
goto l976
}
position++
goto l975
l976:
position, tokenIndex = position975, tokenIndex975
if c := buffer[position]; c < rune('A') || c > rune('F') {
goto l966
}
position++
}
l975:
}
l972:
goto l965
l966:
position, tokenIndex = position966, tokenIndex966
}
goto l952
l962:
position, tokenIndex = position952, tokenIndex952
{
position977, tokenIndex977 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l978
}
position++
l979:
{
position980, tokenIndex980 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l980
}
position++
goto l979
l980:
position, tokenIndex = position980, tokenIndex980
}
if !_rules[ruleWS]() {
goto l978
}
if !_rules[ruleOffsetOperator]() {
goto l978
}
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l978
}
position++
l981:
{
position982, tokenIndex982 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l982
}
position++
goto l981
l982:
position, tokenIndex = position982, tokenIndex982
}
goto l977
l978:
position, tokenIndex = position977, tokenIndex977
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l983
}
position++
l984:
{
position985, tokenIndex985 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l985
}
position++
goto l984
l985:
position, tokenIndex = position985, tokenIndex985
}
{
position986, tokenIndex986 := position, tokenIndex
if !_rules[ruleOffsetOperator]() {
goto l986
}
if buffer[position] != rune('(') {
goto l986
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l986
}
position++
l988:
{
position989, tokenIndex989 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l989
}
position++
goto l988
l989:
position, tokenIndex = position989, tokenIndex989
}
if !_rules[ruleOffsetOperator]() {
goto l986
}
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l986
}
position++
l990:
{
position991, tokenIndex991 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l991
}
position++
goto l990
l991:
position, tokenIndex = position991, tokenIndex991
}
if buffer[position] != rune(')') {
goto l986
}
position++
goto l987
l986:
position, tokenIndex = position986, tokenIndex986
}
l987:
goto l977
l983:
position, tokenIndex = position977, tokenIndex977
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l992
}
position++
l993:
{
position994, tokenIndex994 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l994
}
position++
goto l993
l994:
position, tokenIndex = position994, tokenIndex994
}
{
position995, tokenIndex995 := position, tokenIndex
if !_rules[ruleOffsetOperator]() {
goto l995
}
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l995
}
position++
l997:
{
position998, tokenIndex998 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l998
}
position++
goto l997
l998:
position, tokenIndex = position998, tokenIndex998
}
if !_rules[ruleOffsetOperator]() {
goto l995
}
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l995
}
position++
l999:
{
position1000, tokenIndex1000 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1000
}
position++
goto l999
l1000:
position, tokenIndex = position1000, tokenIndex1000
}
goto l996
l995:
position, tokenIndex = position995, tokenIndex995
}
l996:
goto l977
l992:
position, tokenIndex = position977, tokenIndex977
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1001
}
position++
l1002:
{
position1003, tokenIndex1003 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1003
}
position++
goto l1002
l1003:
position, tokenIndex = position1003, tokenIndex1003
}
{
position1004, tokenIndex1004 := position, tokenIndex
if !_rules[ruleOffsetOperator]() {
goto l1004
}
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1004
}
position++
l1006:
{
position1007, tokenIndex1007 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1007
}
position++
goto l1006
l1007:
position, tokenIndex = position1007, tokenIndex1007
}
goto l1005
l1004:
position, tokenIndex = position1004, tokenIndex1004
}
l1005:
goto l977
l1001:
position, tokenIndex = position977, tokenIndex977
if !_rules[ruleS2nBignumHelper]() {
goto l1008
}
if !_rules[ruleS2nBignumHelper]() {
goto l1008
}
{
position1009, tokenIndex1009 := position, tokenIndex
if !_rules[ruleS2nBignumHelper]() {
goto l1009
}
{
position1011, tokenIndex1011 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1011
}
position++
l1013:
{
position1014, tokenIndex1014 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1014
}
position++
goto l1013
l1014:
position, tokenIndex = position1014, tokenIndex1014
}
if !_rules[ruleOffsetOperator]() {
goto l1011
}
goto l1012
l1011:
position, tokenIndex = position1011, tokenIndex1011
}
l1012:
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1009
}
position++
l1015:
{
position1016, tokenIndex1016 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1016
}
position++
goto l1015
l1016:
position, tokenIndex = position1016, tokenIndex1016
}
if !_rules[ruleOffsetOperator]() {
goto l1009
}
goto l1010
l1009:
position, tokenIndex = position1009, tokenIndex1009
}
l1010:
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1008
}
position++
l1017:
{
position1018, tokenIndex1018 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1018
}
position++
goto l1017
l1018:
position, tokenIndex = position1018, tokenIndex1018
}
goto l977
l1008:
position, tokenIndex = position977, tokenIndex977
if !_rules[ruleS2nBignumHelper]() {
goto l1019
}
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1019
}
position++
l1020:
{
position1021, tokenIndex1021 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1021
}
position++
goto l1020
l1021:
position, tokenIndex = position1021, tokenIndex1021
}
{
position1022, tokenIndex1022 := position, tokenIndex
{
position1024, tokenIndex1024 := position, tokenIndex
if !_rules[ruleWS]() {
goto l1024
}
goto l1025
l1024:
position, tokenIndex = position1024, tokenIndex1024
}
l1025:
if !_rules[ruleOffsetOperator]() {
goto l1023
}
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1023
}
position++
l1026:
{
position1027, tokenIndex1027 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1027
}
position++
goto l1026
l1027:
position, tokenIndex = position1027, tokenIndex1027
}
{
position1028, tokenIndex1028 := position, tokenIndex
{
position1030, tokenIndex1030 := position, tokenIndex
if !_rules[ruleWS]() {
goto l1030
}
goto l1031
l1030:
position, tokenIndex = position1030, tokenIndex1030
}
l1031:
if !_rules[ruleOffsetOperator]() {
goto l1028
}
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1028
}
position++
l1032:
{
position1033, tokenIndex1033 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1033
}
position++
goto l1032
l1033:
position, tokenIndex = position1033, tokenIndex1033
}
goto l1029
l1028:
position, tokenIndex = position1028, tokenIndex1028
}
l1029:
goto l1022
l1023:
position, tokenIndex = position1022, tokenIndex1022
{
position1034, tokenIndex1034 := position, tokenIndex
if buffer[position] != rune('x') {
goto l1034
}
position++
goto l1019
l1034:
position, tokenIndex = position1034, tokenIndex1034
}
}
l1022:
goto l977
l1019:
position, tokenIndex = position977, tokenIndex977
if !_rules[ruleS2nBignumHelper]() {
goto l1035
}
goto l977
l1035:
position, tokenIndex = position977, tokenIndex977
if buffer[position] != rune('(') {
goto l946
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l946
}
position++
l1036:
{
position1037, tokenIndex1037 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1037
}
position++
goto l1036
l1037:
position, tokenIndex = position1037, tokenIndex1037
}
{
position1038, tokenIndex1038 := position, tokenIndex
if !_rules[ruleWS]() {
goto l1038
}
goto l1039
l1038:
position, tokenIndex = position1038, tokenIndex1038
}
l1039:
if !_rules[ruleOffsetOperator]() {
goto l946
}
{
position1040, tokenIndex1040 := position, tokenIndex
if !_rules[ruleWS]() {
goto l1040
}
goto l1041
l1040:
position, tokenIndex = position1040, tokenIndex1040
}
l1041:
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l946
}
position++
l1042:
{
position1043, tokenIndex1043 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1043
}
position++
goto l1042
l1043:
position, tokenIndex = position1043, tokenIndex1043
}
{
position1044, tokenIndex1044 := position, tokenIndex
if !_rules[ruleWS]() {
goto l1044
}
goto l1045
l1044:
position, tokenIndex = position1044, tokenIndex1044
}
l1045:
if !_rules[ruleOffsetOperator]() {
goto l946
}
{
position1046, tokenIndex1046 := position, tokenIndex
if !_rules[ruleWS]() {
goto l1046
}
goto l1047
l1046:
position, tokenIndex = position1046, tokenIndex1046
}
l1047:
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l946
}
position++
l1048:
{
position1049, tokenIndex1049 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l1049
}
position++
goto l1048
l1049:
position, tokenIndex = position1049, tokenIndex1049
}
if buffer[position] != rune(')') {
goto l946
}
position++
}
l977:
{
position1050, tokenIndex1050 := position, tokenIndex
{
position1051, tokenIndex1051 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l1052
}
position++
goto l1051
l1052:
position, tokenIndex = position1051, tokenIndex1051
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l1050
}
position++
}
l1051:
goto l946
l1050:
position, tokenIndex = position1050, tokenIndex1050
}
}
l952:
add(ruleOffset, position947)
}
return true
l946:
position, tokenIndex = position946, tokenIndex946
return false
},
/* 59 Section <- <([a-z] / [A-Z] / '@')+> */
func() bool {
position1053, tokenIndex1053 := position, tokenIndex
{
position1054 := position
{
position1057, tokenIndex1057 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l1058
}
position++
goto l1057
l1058:
position, tokenIndex = position1057, tokenIndex1057
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l1059
}
position++
goto l1057
l1059:
position, tokenIndex = position1057, tokenIndex1057
if buffer[position] != rune('@') {
goto l1053
}
position++
}
l1057:
l1055:
{
position1056, tokenIndex1056 := position, tokenIndex
{
position1060, tokenIndex1060 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
goto l1061
}
position++
goto l1060
l1061:
position, tokenIndex = position1060, tokenIndex1060
if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l1062
}
position++
goto l1060
l1062:
position, tokenIndex = position1060, tokenIndex1060
if buffer[position] != rune('@') {
goto l1056
}
position++
}
l1060:
goto l1055
l1056:
position, tokenIndex = position1056, tokenIndex1056
}
add(ruleSection, position1054)
}
return true
l1053:
position, tokenIndex = position1053, tokenIndex1053
return false
},
/* 60 SegmentRegister <- <('%' ([c-g] / 's') ('s' ':'))> */
func() bool {
position1063, tokenIndex1063 := position, tokenIndex
{
position1064 := position
if buffer[position] != rune('%') {
goto l1063
}
position++
{
position1065, tokenIndex1065 := position, tokenIndex
if c := buffer[position]; c < rune('c') || c > rune('g') {
goto l1066
}
position++
goto l1065
l1066:
position, tokenIndex = position1065, tokenIndex1065
if buffer[position] != rune('s') {
goto l1063
}
position++
}
l1065:
if buffer[position] != rune('s') {
goto l1063
}
position++
if buffer[position] != rune(':') {
goto l1063
}
position++
add(ruleSegmentRegister, position1064)
}
return true
l1063:
position, tokenIndex = position1063, tokenIndex1063
return false
},
}
p.rules = _rules
return nil
}