diff --git a/util/fipstools/delocate/delocate.peg b/util/fipstools/delocate/delocate.peg index 9837b510e3..b33b00b250 100644 --- a/util/fipstools/delocate/delocate.peg +++ b/util/fipstools/delocate/delocate.peg @@ -84,6 +84,7 @@ RegisterOrConstant <- (('%'[[A-Z]][[A-Z0-9]]*) / ('#' '~'? '(' [0-9] WS? "<<" WS? [0-9] [0-9]? ')' ) / (('#' / '$') '~'? '0x'? [[0-9A-F]]+ ) / ('$(-' [0-9]+ ')') / + ('#(' [0-9]+ ')') / ARMRegister) ![fb:(+\-] ARMConstantTweak <- ((([us] "xt" [xwhb]) / "lsl" / "lsr" / "ror" / "asr") (WS '#'? Offset)?)/ diff --git a/util/fipstools/delocate/delocate.peg.go b/util/fipstools/delocate/delocate.peg.go index 30b59865d6..fba8d272f5 100644 --- a/util/fipstools/delocate/delocate.peg.go +++ b/util/fipstools/delocate/delocate.peg.go @@ -1,14 +1,14 @@ -// Code generated by /Users/dpittman/src/peg/peg delocate.peg. DO NOT EDIT. - package main +// Code generated by /home/ubuntu/go/bin/peg delocate.peg DO NOT EDIT. + import ( - "bytes" "fmt" "io" "os" "sort" "strconv" + "strings" ) const endSymbol rune = 1114112 @@ -254,13 +254,12 @@ func (t *tokens32) Tokens() []token32 { } type Asm struct { - Buffer string - buffer []rune - rules [61]func() bool - parse func(rule ...int) error - reset func() - Pretty bool - disableMemoize bool + Buffer string + buffer []rune + rules [61]func() bool + parse func(rule ...int) error + reset func() + Pretty bool tokens32 } @@ -345,9 +344,9 @@ func (p *Asm) WriteSyntaxTree(w io.Writer) { } func (p *Asm) SprintSyntaxTree() string { - var b bytes.Buffer - p.WriteSyntaxTree(&b) - return b.String() + var bldr strings.Builder + p.WriteSyntaxTree(&bldr) + return bldr.String() } func Pretty(pretty bool) func(*Asm) error { @@ -363,30 +362,11 @@ func Size(size int) func(*Asm) error { return nil } } - -func DisableMemoize() func(*Asm) error { - return func(p *Asm) error { - p.disableMemoize = true - return nil - } -} - -type memo struct { - Matched bool - Partial []token32 -} - -type memoKey struct { - Rule uint32 - Position uint32 -} - func (p *Asm) Init(options ...func(*Asm) error) error { var ( max token32 position, tokenIndex uint32 buffer []rune - memoization map[memoKey]memo ) for _, option := range options { err := option(p) @@ -397,7 +377,7 @@ func (p *Asm) Init(options ...func(*Asm) error) error { p.reset = func() { max = token32{} position, tokenIndex = 0, 0 - memoization = make(map[memoKey]memo) + p.buffer = []rune(p.Buffer) if len(p.buffer) == 0 || p.buffer[len(p.buffer)-1] != endSymbol { p.buffer = append(p.buffer, endSymbol) @@ -430,34 +410,6 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } } - memoize := func(rule uint32, begin uint32, tokenIndexStart uint32, matched bool) { - if p.disableMemoize { - return - } - key := memoKey{rule, begin} - if !matched { - memoization[key] = memo{Matched: false} - } else { - t := tree.tree[tokenIndexStart:tokenIndex] - tokenCopy := make([]token32, len(t)) - copy(tokenCopy, t) - memoization[key] = memo{Matched: true, Partial: tokenCopy} - } - } - - memoizedResult := func(m memo) bool { - if !m.Matched { - return false - } - tree.tree = append(tree.tree[:tokenIndex], m.Partial...) - tokenIndex += uint32(len(m.Partial)) - position = m.Partial[len(m.Partial)-1].end - if tree.tree[tokenIndex-1].begin != position && position > max.end { - max = tree.tree[tokenIndex-1] - } - return true - } - matchDot := func() bool { if buffer[position] != endSymbol { position++ @@ -486,9 +438,6 @@ func (p *Asm) Init(options ...func(*Asm) error) error { nil, /* 0 AsmFile <- <(Statement* !.)> */ func() bool { - if memoized, ok := memoization[memoKey{0, position}]; ok { - return memoizedResult(memoized) - } position0, tokenIndex0 := position, tokenIndex { position1 := position @@ -513,18 +462,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleAsmFile, position1) } - memoize(0, position0, tokenIndex0, true) return true l0: - memoize(0, position0, tokenIndex0, false) position, tokenIndex = position0, tokenIndex0 return false }, /* 1 Statement <- <(WS? (Label / ((GlobalDirective / LocationDirective / LabelContainingDirective / ZeroDirective / Instruction / Directive / Comment / ) WS? ((Comment? '\n') / ';'))))> */ func() bool { - if memoized, ok := memoization[memoKey{1, position}]; ok { - return memoizedResult(memoized) - } position5, tokenIndex5 := position, tokenIndex { position6 := position @@ -631,18 +575,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l9: add(ruleStatement, position6) } - memoize(1, position5, tokenIndex5, true) return true l5: - memoize(1, position5, tokenIndex5, false) 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 { - if memoized, ok := memoization[memoKey{2, position}]; ok { - return memoizedResult(memoized) - } position25, tokenIndex25 := position, tokenIndex { position26 := position @@ -834,18 +773,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleGlobalDirective, position26) } - memoize(2, position25, tokenIndex25, true) return true l25: - memoize(2, position25, tokenIndex25, false) position, tokenIndex = position25, tokenIndex25 return false }, /* 3 Directive <- <('.' DirectiveName (WS Args)?)> */ func() bool { - if memoized, ok := memoization[memoKey{3, position}]; ok { - return memoizedResult(memoized) - } position51, tokenIndex51 := position, tokenIndex { position52 := position @@ -871,18 +805,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l54: add(ruleDirective, position52) } - memoize(3, position51, tokenIndex51, true) return true l51: - memoize(3, position51, tokenIndex51, false) position, tokenIndex = position51, tokenIndex51 return false }, /* 4 DirectiveName <- <([a-z] / [A-Z] / ([0-9] / [0-9]) / '_')+> */ func() bool { - if memoized, ok := memoization[memoKey{4, position}]; ok { - return memoizedResult(memoized) - } position55, tokenIndex55 := position, tokenIndex { position56 := position @@ -975,18 +904,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleDirectiveName, position56) } - memoize(4, position55, tokenIndex55, true) return true l55: - memoize(4, position55, tokenIndex55, false) position, tokenIndex = position55, tokenIndex55 return false }, /* 5 LocationDirective <- <(FileDirective / LocDirective)> */ func() bool { - if memoized, ok := memoization[memoKey{5, position}]; ok { - return memoizedResult(memoized) - } position71, tokenIndex71 := position, tokenIndex { position72 := position @@ -1005,18 +929,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l73: add(ruleLocationDirective, position72) } - memoize(5, position71, tokenIndex71, true) return true l71: - memoize(5, position71, tokenIndex71, false) position, tokenIndex = position71, tokenIndex71 return false }, /* 6 ZeroDirective <- <('.' ('z' / 'Z') ('e' / 'E') ('r' / 'R') ('o' / 'O') WS (!('#' / '\n') .)+)> */ func() bool { - if memoized, ok := memoization[memoKey{6, position}]; ok { - return memoizedResult(memoized) - } position75, tokenIndex75 := position, tokenIndex { position76 := position @@ -1144,18 +1063,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleZeroDirective, position76) } - memoize(6, position75, tokenIndex75, true) return true l75: - memoize(6, position75, tokenIndex75, false) position, tokenIndex = position75, tokenIndex75 return false }, /* 7 FileDirective <- <('.' ('f' / 'F') ('i' / 'I') ('l' / 'L') ('e' / 'E') WS (!('#' / '\n') .)+)> */ func() bool { - if memoized, ok := memoization[memoKey{7, position}]; ok { - return memoizedResult(memoized) - } position93, tokenIndex93 := position, tokenIndex { position94 := position @@ -1283,18 +1197,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleFileDirective, position94) } - memoize(7, position93, tokenIndex93, true) return true l93: - memoize(7, position93, tokenIndex93, false) position, tokenIndex = position93, tokenIndex93 return false }, /* 8 LocDirective <- <('.' ('l' / 'L') ('o' / 'O') ('c' / 'C') WS (!('#' / '/' / '\n') .)+)> */ func() bool { - if memoized, ok := memoization[memoKey{8, position}]; ok { - return memoizedResult(memoized) - } position111, tokenIndex111 := position, tokenIndex { position112 := position @@ -1421,18 +1330,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleLocDirective, position112) } - memoize(8, position111, tokenIndex111, true) return true l111: - memoize(8, position111, tokenIndex111, false) position, tokenIndex = position111, tokenIndex111 return false }, /* 9 Args <- <(Arg (WS? ',' WS? Arg)*)> */ func() bool { - if memoized, ok := memoization[memoKey{9, position}]; ok { - return memoizedResult(memoized) - } position129, tokenIndex129 := position, tokenIndex { position130 := position @@ -1475,19 +1379,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleArgs, position130) } - memoize(9, position129, tokenIndex129, true) return true l129: - memoize(9, position129, tokenIndex129, false) position, tokenIndex = position129, tokenIndex129 return false }, /* 10 Arg <- <(QuotedArg / ([0-9] / [0-9] / ([a-z] / [A-Z]) / '%' / '+' / '-' / '*' / '_' / '@' / '.')*)> */ func() bool { - if memoized, ok := memoization[memoKey{10, position}]; ok { - return memoizedResult(memoized) - } - position137, tokenIndex137 := position, tokenIndex { position138 := position { @@ -1591,14 +1489,10 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l139: add(ruleArg, position138) } - memoize(10, position137, tokenIndex137, true) return true }, /* 11 QuotedArg <- <('"' QuotedText '"')> */ func() bool { - if memoized, ok := memoization[memoKey{11, position}]; ok { - return memoizedResult(memoized) - } position155, tokenIndex155 := position, tokenIndex { position156 := position @@ -1615,19 +1509,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { position++ add(ruleQuotedArg, position156) } - memoize(11, position155, tokenIndex155, true) return true l155: - memoize(11, position155, tokenIndex155, false) position, tokenIndex = position155, tokenIndex155 return false }, /* 12 QuotedText <- <(EscapedChar / (!'"' .))*> */ func() bool { - if memoized, ok := memoization[memoKey{12, position}]; ok { - return memoizedResult(memoized) - } - position157, tokenIndex157 := position, tokenIndex { position158 := position l159: @@ -1662,14 +1550,10 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleQuotedText, position158) } - memoize(12, position157, tokenIndex157, true) return true }, /* 13 LabelContainingDirective <- <(LabelContainingDirectiveName WS SymbolArgs)> */ func() bool { - if memoized, ok := memoization[memoKey{13, position}]; ok { - return memoizedResult(memoized) - } position164, tokenIndex164 := position, tokenIndex { position165 := position @@ -1684,18 +1568,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleLabelContainingDirective, position165) } - memoize(13, position164, tokenIndex164, true) return true l164: - memoize(13, position164, tokenIndex164, false) 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 { - if memoized, ok := memoization[memoKey{14, position}]; ok { - return memoizedResult(memoized) - } position166, tokenIndex166 := position, tokenIndex { position167 := position @@ -2814,18 +2693,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l168: add(ruleLabelContainingDirectiveName, position167) } - memoize(14, position166, tokenIndex166, true) return true l166: - memoize(14, position166, tokenIndex166, false) position, tokenIndex = position166, tokenIndex166 return false }, /* 15 SymbolArgs <- <(SymbolArg (WS? ',' WS? SymbolArg)*)> */ func() bool { - if memoized, ok := memoization[memoKey{15, position}]; ok { - return memoizedResult(memoized) - } position313, tokenIndex313 := position, tokenIndex { position314 := position @@ -2868,18 +2742,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleSymbolArgs, position314) } - memoize(15, position313, tokenIndex313, true) return true l313: - memoize(15, position313, tokenIndex313, false) position, tokenIndex = position313, tokenIndex313 return false }, /* 16 SymbolArg <- */ func() bool { - if memoized, ok := memoization[memoKey{16, position}]; ok { - return memoizedResult(memoized) - } position321, tokenIndex321 := position, tokenIndex { position322 := position @@ -2888,18 +2757,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleSymbolArg, position322) } - memoize(16, position321, tokenIndex321, true) return true l321: - memoize(16, position321, tokenIndex321, false) position, tokenIndex = position321, tokenIndex321 return false }, /* 17 SymbolExpr <- <(SymbolAtom (WS? SymbolOperator WS? SymbolExpr)?)> */ func() bool { - if memoized, ok := memoization[memoKey{17, position}]; ok { - return memoizedResult(memoized) - } position323, tokenIndex323 := position, tokenIndex { position324 := position @@ -2941,18 +2805,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l326: add(ruleSymbolExpr, position324) } - memoize(17, position323, tokenIndex323, true) return true l323: - memoize(17, position323, tokenIndex323, false) 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 { - if memoized, ok := memoization[memoKey{18, position}]; ok { - return memoizedResult(memoized) - } position331, tokenIndex331 := position, tokenIndex { position332 := position @@ -3056,18 +2915,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l333: add(ruleSymbolAtom, position332) } - memoize(18, position331, tokenIndex331, true) return true l331: - memoize(18, position331, tokenIndex331, false) position, tokenIndex = position331, tokenIndex331 return false }, /* 19 SymbolOperator <- <('+' / '-' / '|' / ('<' '<') / ('>' '>'))> */ func() bool { - if memoized, ok := memoization[memoKey{19, position}]; ok { - return memoizedResult(memoized) - } position349, tokenIndex349 := position, tokenIndex { position350 := position @@ -3117,18 +2971,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l351: add(ruleSymbolOperator, position350) } - memoize(19, position349, tokenIndex349, true) return true l349: - memoize(19, position349, tokenIndex349, false) position, tokenIndex = position349, tokenIndex349 return false }, /* 20 OpenParen <- <'('> */ func() bool { - if memoized, ok := memoization[memoKey{20, position}]; ok { - return memoizedResult(memoized) - } position356, tokenIndex356 := position, tokenIndex { position357 := position @@ -3138,18 +2987,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { position++ add(ruleOpenParen, position357) } - memoize(20, position356, tokenIndex356, true) return true l356: - memoize(20, position356, tokenIndex356, false) position, tokenIndex = position356, tokenIndex356 return false }, /* 21 CloseParen <- <')'> */ func() bool { - if memoized, ok := memoization[memoKey{21, position}]; ok { - return memoizedResult(memoized) - } position358, tokenIndex358 := position, tokenIndex { position359 := position @@ -3159,18 +3003,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { position++ add(ruleCloseParen, position359) } - memoize(21, position358, tokenIndex358, true) return true l358: - memoize(21, position358, tokenIndex358, false) position, tokenIndex = position358, tokenIndex358 return false }, /* 22 SymbolType <- <(('@' / '%') (('f' 'u' 'n' 'c' 't' 'i' 'o' 'n') / ('o' 'b' 'j' 'e' 'c' 't')))> */ func() bool { - if memoized, ok := memoization[memoKey{22, position}]; ok { - return memoizedResult(memoized) - } position360, tokenIndex360 := position, tokenIndex { position361 := position @@ -3254,18 +3093,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l364: add(ruleSymbolType, position361) } - memoize(22, position360, tokenIndex360, true) return true l360: - memoize(22, position360, tokenIndex360, false) position, tokenIndex = position360, tokenIndex360 return false }, /* 23 Dot <- <'.'> */ func() bool { - if memoized, ok := memoization[memoKey{23, position}]; ok { - return memoizedResult(memoized) - } position366, tokenIndex366 := position, tokenIndex { position367 := position @@ -3275,18 +3109,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { position++ add(ruleDot, position367) } - memoize(23, position366, tokenIndex366, true) return true l366: - memoize(23, position366, tokenIndex366, false) position, tokenIndex = position366, tokenIndex366 return false }, /* 24 TCMarker <- <('[' 'T' 'C' ']')> */ func() bool { - if memoized, ok := memoization[memoKey{24, position}]; ok { - return memoizedResult(memoized) - } position368, tokenIndex368 := position, tokenIndex { position369 := position @@ -3308,18 +3137,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { position++ add(ruleTCMarker, position369) } - memoize(24, position368, tokenIndex368, true) return true l368: - memoize(24, position368, tokenIndex368, false) position, tokenIndex = position368, tokenIndex368 return false }, /* 25 EscapedChar <- <('\\' .)> */ func() bool { - if memoized, ok := memoization[memoKey{25, position}]; ok { - return memoizedResult(memoized) - } position370, tokenIndex370 := position, tokenIndex { position371 := position @@ -3332,18 +3156,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleEscapedChar, position371) } - memoize(25, position370, tokenIndex370, true) return true l370: - memoize(25, position370, tokenIndex370, false) position, tokenIndex = position370, tokenIndex370 return false }, /* 26 WS <- <(' ' / '\t')+> */ func() bool { - if memoized, ok := memoization[memoKey{26, position}]; ok { - return memoizedResult(memoized) - } position372, tokenIndex372 := position, tokenIndex { position373 := position @@ -3386,18 +3205,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleWS, position373) } - memoize(26, position372, tokenIndex372, true) return true l372: - memoize(26, position372, tokenIndex372, false) position, tokenIndex = position372, tokenIndex372 return false }, /* 27 Comment <- <((('/' '/') / '#') (!'\n' .)*)> */ func() bool { - if memoized, ok := memoization[memoKey{27, position}]; ok { - return memoizedResult(memoized) - } position380, tokenIndex380 := position, tokenIndex { position381 := position @@ -3442,18 +3256,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleComment, position381) } - memoize(27, position380, tokenIndex380, true) return true l380: - memoize(27, position380, tokenIndex380, false) position, tokenIndex = position380, tokenIndex380 return false }, /* 28 Label <- <((LocalSymbol / LocalLabel / SymbolName) ':')> */ func() bool { - if memoized, ok := memoization[memoKey{28, position}]; ok { - return memoizedResult(memoized) - } position387, tokenIndex387 := position, tokenIndex { position388 := position @@ -3482,18 +3291,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { position++ add(ruleLabel, position388) } - memoize(28, position387, tokenIndex387, true) return true l387: - memoize(28, position387, tokenIndex387, false) position, tokenIndex = position387, tokenIndex387 return false }, /* 29 SymbolName <- <(([a-z] / [A-Z] / '.' / '_') ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]) / '$' / '_')*)> */ func() bool { - if memoized, ok := memoization[memoKey{29, position}]; ok { - return memoizedResult(memoized) - } position392, tokenIndex392 := position, tokenIndex { position393 := position @@ -3589,18 +3393,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleSymbolName, position393) } - memoize(29, position392, tokenIndex392, true) return true l392: - memoize(29, position392, tokenIndex392, false) position, tokenIndex = position392, tokenIndex392 return false }, /* 30 LocalSymbol <- <('.' 'L' ([a-z] / [A-Z] / ([a-z] / [A-Z]) / '.' / ([0-9] / [0-9]) / '$' / '_')+)> */ func() bool { - if memoized, ok := memoization[memoKey{30, position}]; ok { - return memoizedResult(memoized) - } position408, tokenIndex408 := position, tokenIndex { position409 := position @@ -3765,18 +3564,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleLocalSymbol, position409) } - memoize(30, position408, tokenIndex408, true) return true l408: - memoize(30, position408, tokenIndex408, false) position, tokenIndex = position408, tokenIndex408 return false }, /* 31 LocalLabel <- <([0-9] ([0-9] / '$')*)> */ func() bool { - if memoized, ok := memoization[memoKey{31, position}]; ok { - return memoizedResult(memoized) - } position434, tokenIndex434 := position, tokenIndex { position435 := position @@ -3808,18 +3602,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleLocalLabel, position435) } - memoize(31, position434, tokenIndex434, true) return true l434: - memoize(31, position434, tokenIndex434, false) position, tokenIndex = position434, tokenIndex434 return false }, /* 32 LocalLabelRef <- <([0-9] ([0-9] / '$')* ('b' / 'f'))> */ func() bool { - if memoized, ok := memoization[memoKey{32, position}]; ok { - return memoizedResult(memoized) - } position440, tokenIndex440 := position, tokenIndex { position441 := position @@ -3866,18 +3655,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l446: add(ruleLocalLabelRef, position441) } - memoize(32, position440, tokenIndex440, true) return true l440: - memoize(32, position440, tokenIndex440, false) position, tokenIndex = position440, tokenIndex440 return false }, /* 33 Instruction <- <(InstructionName (WS InstructionArg (WS? ','? WS? InstructionArg)*)?)> */ func() bool { - if memoized, ok := memoization[memoKey{33, position}]; ok { - return memoizedResult(memoized) - } position448, tokenIndex448 := position, tokenIndex { position449 := position @@ -3940,18 +3724,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l451: add(ruleInstruction, position449) } - memoize(33, position448, tokenIndex448, true) return true l448: - memoize(33, position448, tokenIndex448, false) position, tokenIndex = position448, tokenIndex448 return false }, /* 34 InstructionName <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]))* ('.' / '+' / '-')?)> */ func() bool { - if memoized, ok := memoization[memoKey{34, position}]; ok { - return memoizedResult(memoized) - } position460, tokenIndex460 := position, tokenIndex { position461 := position @@ -4048,18 +3827,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l473: add(ruleInstructionName, position461) } - memoize(34, position460, tokenIndex460, true) return true l460: - memoize(34, position460, tokenIndex460, false) position, tokenIndex = position460, tokenIndex460 return false }, /* 35 InstructionArg <- <(IndirectionIndicator? (ARMConstantTweak / RegisterOrConstant / LocalLabelRef / TOCRefHigh / TOCRefLow / GOTLocation / GOTSymbolOffset / MemoryRef / AVX512Token))> */ func() bool { - if memoized, ok := memoization[memoKey{35, position}]; ok { - return memoizedResult(memoized) - } position477, tokenIndex477 := position, tokenIndex { position478 := position @@ -4130,18 +3904,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l481: add(ruleInstructionArg, position478) } - memoize(35, position477, tokenIndex477, true) return true l477: - memoize(35, position477, tokenIndex477, false) 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 { - if memoized, ok := memoization[memoKey{36, position}]; ok { - return memoizedResult(memoized) - } position490, tokenIndex490 := position, tokenIndex { position491 := position @@ -4242,18 +4011,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } add(ruleGOTLocation, position491) } - memoize(36, position490, tokenIndex490, true) return true l490: - memoize(36, position490, tokenIndex490, false) position, tokenIndex = position490, tokenIndex490 return false }, /* 37 GOTSymbolOffset <- <(('$' SymbolName ('@' 'G' 'O' 'T') ('O' 'F' 'F')?) / (':' ('g' / 'G') ('o' / 'O') ('t' / 'T') ':' SymbolName))> */ func() bool { - if memoized, ok := memoization[memoKey{37, position}]; ok { - return memoizedResult(memoized) - } position492, tokenIndex492 := position, tokenIndex { position493 := position @@ -4364,18 +4128,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l494: add(ruleGOTSymbolOffset, position493) } - memoize(37, position492, tokenIndex492, true) return true l492: - memoize(37, position492, tokenIndex492, false) position, tokenIndex = position492, tokenIndex492 return false }, /* 38 AVX512Token <- <(WS? '{' '%'? ([0-9] / [a-z])* '}')> */ func() bool { - if memoized, ok := memoization[memoKey{38, position}]; ok { - return memoizedResult(memoized) - } position504, tokenIndex504 := position, tokenIndex { position505 := position @@ -4432,18 +4191,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { position++ add(ruleAVX512Token, position505) } - memoize(38, position504, tokenIndex504, true) return true l504: - memoize(38, position504, tokenIndex504, false) 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 { - if memoized, ok := memoization[memoKey{39, position}]; ok { - return memoizedResult(memoized) - } position514, tokenIndex514 := position, tokenIndex { position515 := position @@ -4595,18 +4349,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l530: add(ruleTOCRefHigh, position515) } - memoize(39, position514, tokenIndex514, true) return true l514: - memoize(39, position514, tokenIndex514, false) position, tokenIndex = position514, tokenIndex514 return false }, /* 40 TOCRefLow <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('l' / 'L')))> */ func() bool { - if memoized, ok := memoization[memoKey{40, position}]; ok { - return memoizedResult(memoized) - } position532, tokenIndex532 := position, tokenIndex { position533 := position @@ -4743,18 +4492,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l546: add(ruleTOCRefLow, position533) } - memoize(40, position532, tokenIndex532, true) return true l532: - memoize(40, position532, tokenIndex532, false) position, tokenIndex = position532, tokenIndex532 return false }, /* 41 IndirectionIndicator <- <'*'> */ func() bool { - if memoized, ok := memoization[memoKey{41, position}]; ok { - return memoizedResult(memoized) - } position548, tokenIndex548 := position, tokenIndex { position549 := position @@ -4764,18 +4508,13 @@ func (p *Asm) Init(options ...func(*Asm) error) error { position++ add(ruleIndirectionIndicator, position549) } - memoize(41, position548, tokenIndex548, true) return true l548: - memoize(41, position548, tokenIndex548, false) 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]+ ')') / ARMRegister) !('f' / 'b' / ':' / '(' / '+' / '-'))> */ + /* 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 { - if memoized, ok := memoization[memoKey{42, position}]; ok { - return memoizedResult(memoized) - } position550, tokenIndex550 := position, tokenIndex { position551 := position @@ -5266,6 +5005,36 @@ func (p *Asm) Init(options ...func(*Asm) error) error { 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 @@ -5273,200 +5042,177 @@ func (p *Asm) Init(options ...func(*Asm) error) error { } l552: { - position623, tokenIndex623 := position, tokenIndex + position626, tokenIndex626 := position, tokenIndex { - position624, tokenIndex624 := position, tokenIndex + position627, tokenIndex627 := position, tokenIndex if buffer[position] != rune('f') { - goto l625 + goto l628 } position++ - goto l624 - l625: - position, tokenIndex = position624, tokenIndex624 + goto l627 + l628: + position, tokenIndex = position627, tokenIndex627 if buffer[position] != rune('b') { - goto l626 + goto l629 } position++ - goto l624 - l626: - position, tokenIndex = position624, tokenIndex624 + goto l627 + l629: + position, tokenIndex = position627, tokenIndex627 if buffer[position] != rune(':') { - goto l627 + goto l630 } position++ - goto l624 - l627: - position, tokenIndex = position624, tokenIndex624 + goto l627 + l630: + position, tokenIndex = position627, tokenIndex627 if buffer[position] != rune('(') { - goto l628 + goto l631 } position++ - goto l624 - l628: - position, tokenIndex = position624, tokenIndex624 + goto l627 + l631: + position, tokenIndex = position627, tokenIndex627 if buffer[position] != rune('+') { - goto l629 + goto l632 } position++ - goto l624 - l629: - position, tokenIndex = position624, tokenIndex624 + goto l627 + l632: + position, tokenIndex = position627, tokenIndex627 if buffer[position] != rune('-') { - goto l623 + goto l626 } position++ } - l624: + l627: goto l550 - l623: - position, tokenIndex = position623, tokenIndex623 + l626: + position, tokenIndex = position626, tokenIndex626 } add(ruleRegisterOrConstant, position551) } - memoize(42, position550, tokenIndex550, true) return true l550: - memoize(42, position550, tokenIndex550, false) 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')) / (('a' / 'A') ('s' / 'S') ('r' / 'R'))) (WS '#'? Offset)?) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' ('v' / 'V') ('l' / 'L')))> */ func() bool { - if memoized, ok := memoization[memoKey{43, position}]; ok { - return memoizedResult(memoized) - } - position630, tokenIndex630 := position, tokenIndex + position633, tokenIndex633 := position, tokenIndex { - position631 := position + position634 := position { - position632, tokenIndex632 := position, tokenIndex + position635, tokenIndex635 := position, tokenIndex { - position634, tokenIndex634 := position, tokenIndex + position637, tokenIndex637 := position, tokenIndex { - position636, tokenIndex636 := position, tokenIndex + position639, tokenIndex639 := position, tokenIndex if buffer[position] != rune('u') { - goto l637 + goto l640 } position++ - goto l636 - l637: - position, tokenIndex = position636, tokenIndex636 + goto l639 + l640: + position, tokenIndex = position639, tokenIndex639 if buffer[position] != rune('s') { - goto l635 + goto l638 } position++ } - l636: + l639: { - position638, tokenIndex638 := position, tokenIndex + position641, tokenIndex641 := position, tokenIndex if buffer[position] != rune('x') { - goto l639 + goto l642 } position++ - goto l638 - l639: - position, tokenIndex = position638, tokenIndex638 + goto l641 + l642: + position, tokenIndex = position641, tokenIndex641 if buffer[position] != rune('X') { - goto l635 + goto l638 } position++ } - l638: + l641: { - position640, tokenIndex640 := position, tokenIndex + position643, tokenIndex643 := position, tokenIndex if buffer[position] != rune('t') { - goto l641 + goto l644 } position++ - goto l640 - l641: - position, tokenIndex = position640, tokenIndex640 + goto l643 + l644: + position, tokenIndex = position643, tokenIndex643 if buffer[position] != rune('T') { - goto l635 + goto l638 } position++ } - l640: + l643: { - position642, tokenIndex642 := position, tokenIndex + position645, tokenIndex645 := position, tokenIndex if buffer[position] != rune('x') { - goto l643 + goto l646 } position++ - goto l642 - l643: - position, tokenIndex = position642, tokenIndex642 + goto l645 + l646: + position, tokenIndex = position645, tokenIndex645 if buffer[position] != rune('w') { - goto l644 + goto l647 } position++ - goto l642 - l644: - position, tokenIndex = position642, tokenIndex642 + goto l645 + l647: + position, tokenIndex = position645, tokenIndex645 if buffer[position] != rune('h') { - goto l645 + goto l648 } position++ - goto l642 - l645: - position, tokenIndex = position642, tokenIndex642 + goto l645 + l648: + position, tokenIndex = position645, tokenIndex645 if buffer[position] != rune('b') { - goto l635 + goto l638 } position++ } - l642: - goto l634 - l635: - position, tokenIndex = position634, tokenIndex634 + l645: + goto l637 + l638: + position, tokenIndex = position637, tokenIndex637 { - position647, tokenIndex647 := position, tokenIndex + position650, tokenIndex650 := position, tokenIndex if buffer[position] != rune('l') { - goto l648 + goto l651 } position++ - goto l647 - l648: - position, tokenIndex = position647, tokenIndex647 + goto l650 + l651: + position, tokenIndex = position650, tokenIndex650 if buffer[position] != rune('L') { - goto l646 + goto l649 } position++ } - l647: + l650: { - position649, tokenIndex649 := position, tokenIndex + position652, tokenIndex652 := position, tokenIndex if buffer[position] != rune('s') { - goto l650 + goto l653 } position++ - goto l649 - l650: - position, tokenIndex = position649, tokenIndex649 + goto l652 + l653: + position, tokenIndex = position652, tokenIndex652 if buffer[position] != rune('S') { - goto l646 - } - position++ - } - l649: - { - 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 l646 + goto l649 } position++ } - l651: - goto l634 - l646: - position, tokenIndex = position634, tokenIndex634 + l652: { position654, tokenIndex654 := position, tokenIndex if buffer[position] != rune('l') { @@ -5477,44 +5223,44 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l655: position, tokenIndex = position654, tokenIndex654 if buffer[position] != rune('L') { - goto l653 + goto l649 } position++ } l654: + goto l637 + l649: + position, tokenIndex = position637, tokenIndex637 { - position656, tokenIndex656 := position, tokenIndex - if buffer[position] != rune('s') { - goto l657 + position657, tokenIndex657 := position, tokenIndex + if buffer[position] != rune('l') { + goto l658 } position++ - goto l656 - l657: - position, tokenIndex = position656, tokenIndex656 - if buffer[position] != rune('S') { - goto l653 + goto l657 + l658: + position, tokenIndex = position657, tokenIndex657 + if buffer[position] != rune('L') { + goto l656 } position++ } - l656: + l657: { - position658, tokenIndex658 := position, tokenIndex - if buffer[position] != rune('r') { - goto l659 + position659, tokenIndex659 := position, tokenIndex + if buffer[position] != rune('s') { + goto l660 } position++ - goto l658 - l659: - position, tokenIndex = position658, tokenIndex658 - if buffer[position] != rune('R') { - goto l653 + goto l659 + l660: + position, tokenIndex = position659, tokenIndex659 + if buffer[position] != rune('S') { + goto l656 } position++ } - l658: - goto l634 - l653: - position, tokenIndex = position634, tokenIndex634 + l659: { position661, tokenIndex661 := position, tokenIndex if buffer[position] != rune('r') { @@ -5525,1319 +5271,1280 @@ func (p *Asm) Init(options ...func(*Asm) error) error { l662: position, tokenIndex = position661, tokenIndex661 if buffer[position] != rune('R') { - goto l660 + goto l656 } position++ } l661: + goto l637 + l656: + position, tokenIndex = position637, tokenIndex637 + { + position664, tokenIndex664 := position, tokenIndex + if buffer[position] != rune('r') { + goto l665 + } + position++ + goto l664 + l665: + position, tokenIndex = position664, tokenIndex664 + if buffer[position] != rune('R') { + goto l663 + } + position++ + } + l664: { - position663, tokenIndex663 := position, tokenIndex + position666, tokenIndex666 := position, tokenIndex if buffer[position] != rune('o') { - goto l664 + goto l667 } position++ - goto l663 - l664: - position, tokenIndex = position663, tokenIndex663 + goto l666 + l667: + position, tokenIndex = position666, tokenIndex666 if buffer[position] != rune('O') { - goto l660 + goto l663 } position++ } - l663: + l666: { - position665, tokenIndex665 := position, tokenIndex + position668, tokenIndex668 := position, tokenIndex if buffer[position] != rune('r') { - goto l666 + goto l669 } position++ - goto l665 - l666: - position, tokenIndex = position665, tokenIndex665 + goto l668 + l669: + position, tokenIndex = position668, tokenIndex668 if buffer[position] != rune('R') { - goto l660 + goto l663 } position++ } - l665: - goto l634 - l660: - position, tokenIndex = position634, tokenIndex634 + l668: + goto l637 + l663: + position, tokenIndex = position637, tokenIndex637 { - position667, tokenIndex667 := position, tokenIndex + position670, tokenIndex670 := position, tokenIndex if buffer[position] != rune('a') { - goto l668 + goto l671 } position++ - goto l667 - l668: - position, tokenIndex = position667, tokenIndex667 + goto l670 + l671: + position, tokenIndex = position670, tokenIndex670 if buffer[position] != rune('A') { - goto l633 + goto l636 } position++ } - l667: + l670: { - position669, tokenIndex669 := position, tokenIndex + position672, tokenIndex672 := position, tokenIndex if buffer[position] != rune('s') { - goto l670 + goto l673 } position++ - goto l669 - l670: - position, tokenIndex = position669, tokenIndex669 + goto l672 + l673: + position, tokenIndex = position672, tokenIndex672 if buffer[position] != rune('S') { - goto l633 + goto l636 } position++ } - l669: + l672: { - position671, tokenIndex671 := position, tokenIndex + position674, tokenIndex674 := position, tokenIndex if buffer[position] != rune('r') { - goto l672 + goto l675 } position++ - goto l671 - l672: - position, tokenIndex = position671, tokenIndex671 + goto l674 + l675: + position, tokenIndex = position674, tokenIndex674 if buffer[position] != rune('R') { - goto l633 + goto l636 } position++ } - l671: + l674: } - l634: + l637: { - position673, tokenIndex673 := position, tokenIndex + position676, tokenIndex676 := position, tokenIndex if !_rules[ruleWS]() { - goto l673 + goto l676 } { - position675, tokenIndex675 := position, tokenIndex + position678, tokenIndex678 := position, tokenIndex if buffer[position] != rune('#') { - goto l675 + goto l678 } position++ - goto l676 - l675: - position, tokenIndex = position675, tokenIndex675 + goto l679 + l678: + position, tokenIndex = position678, tokenIndex678 } - l676: + l679: if !_rules[ruleOffset]() { - goto l673 + goto l676 } - goto l674 - l673: - position, tokenIndex = position673, tokenIndex673 + goto l677 + l676: + position, tokenIndex = position676, tokenIndex676 } - l674: - goto l632 - l633: - position, tokenIndex = position632, tokenIndex632 + l677: + goto l635 + l636: + position, tokenIndex = position635, tokenIndex635 { - position677, tokenIndex677 := position, tokenIndex + position680, tokenIndex680 := position, tokenIndex if buffer[position] != rune('m') { - goto l678 + goto l681 } position++ - goto l677 - l678: - position, tokenIndex = position677, tokenIndex677 + goto l680 + l681: + position, tokenIndex = position680, tokenIndex680 if buffer[position] != rune('M') { - goto l630 + goto l633 } position++ } - l677: + l680: { - position679, tokenIndex679 := position, tokenIndex + position682, tokenIndex682 := position, tokenIndex if buffer[position] != rune('u') { - goto l680 + goto l683 } position++ - goto l679 - l680: - position, tokenIndex = position679, tokenIndex679 + goto l682 + l683: + position, tokenIndex = position682, tokenIndex682 if buffer[position] != rune('U') { - goto l630 + goto l633 } position++ } - l679: + l682: { - position681, tokenIndex681 := position, tokenIndex + position684, tokenIndex684 := position, tokenIndex if buffer[position] != rune('l') { - goto l682 + goto l685 } position++ - goto l681 - l682: - position, tokenIndex = position681, tokenIndex681 + goto l684 + l685: + position, tokenIndex = position684, tokenIndex684 if buffer[position] != rune('L') { - goto l630 + goto l633 } position++ } - l681: + l684: if buffer[position] != rune(' ') { - goto l630 + goto l633 } position++ { - position683, tokenIndex683 := position, tokenIndex + position686, tokenIndex686 := position, tokenIndex if buffer[position] != rune('v') { - goto l684 + goto l687 } position++ - goto l683 - l684: - position, tokenIndex = position683, tokenIndex683 + goto l686 + l687: + position, tokenIndex = position686, tokenIndex686 if buffer[position] != rune('V') { - goto l630 + goto l633 } position++ } - l683: + l686: { - position685, tokenIndex685 := position, tokenIndex + position688, tokenIndex688 := position, tokenIndex if buffer[position] != rune('l') { - goto l686 + goto l689 } position++ - goto l685 - l686: - position, tokenIndex = position685, tokenIndex685 + goto l688 + l689: + position, tokenIndex = position688, tokenIndex688 if buffer[position] != rune('L') { - goto l630 + goto l633 } position++ } - l685: + l688: } - l632: - add(ruleARMConstantTweak, position631) + l635: + add(ruleARMConstantTweak, position634) } - memoize(43, position630, tokenIndex630, true) return true - l630: - memoize(43, position630, tokenIndex630, false) - position, tokenIndex = position630, tokenIndex630 + 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 { - if memoized, ok := memoization[memoKey{44, position}]; ok { - return memoizedResult(memoized) - } - position687, tokenIndex687 := position, tokenIndex + position690, tokenIndex690 := position, tokenIndex { - position688 := position + position691 := position { - position689, tokenIndex689 := position, tokenIndex + position692, tokenIndex692 := position, tokenIndex { - position691, tokenIndex691 := position, tokenIndex + position694, tokenIndex694 := position, tokenIndex if buffer[position] != rune('s') { - goto l692 + goto l695 } position++ - goto l691 - l692: - position, tokenIndex = position691, tokenIndex691 + goto l694 + l695: + position, tokenIndex = position694, tokenIndex694 if buffer[position] != rune('S') { - goto l690 + goto l693 } position++ } - l691: + l694: { - position693, tokenIndex693 := position, tokenIndex + position696, tokenIndex696 := position, tokenIndex if buffer[position] != rune('p') { - goto l694 + goto l697 } position++ - goto l693 - l694: - position, tokenIndex = position693, tokenIndex693 + goto l696 + l697: + position, tokenIndex = position696, tokenIndex696 if buffer[position] != rune('P') { - goto l690 + goto l693 } position++ } + l696: + goto l692 l693: - goto l689 - l690: - position, tokenIndex = position689, tokenIndex689 + position, tokenIndex = position692, tokenIndex692 { - position696, tokenIndex696 := position, tokenIndex + position699, tokenIndex699 := position, tokenIndex if buffer[position] != rune('x') { - goto l697 + goto l700 } position++ - goto l696 - l697: - position, tokenIndex = position696, tokenIndex696 + goto l699 + l700: + position, tokenIndex = position699, tokenIndex699 if buffer[position] != rune('w') { - goto l698 + goto l701 } position++ - goto l696 - l698: - position, tokenIndex = position696, tokenIndex696 + goto l699 + l701: + position, tokenIndex = position699, tokenIndex699 if buffer[position] != rune('d') { - goto l699 + goto l702 } position++ - goto l696 - l699: - position, tokenIndex = position696, tokenIndex696 + goto l699 + l702: + position, tokenIndex = position699, tokenIndex699 if buffer[position] != rune('q') { - goto l700 + goto l703 } position++ - goto l696 - l700: - position, tokenIndex = position696, tokenIndex696 + goto l699 + l703: + position, tokenIndex = position699, tokenIndex699 if buffer[position] != rune('s') { - goto l701 + goto l704 } position++ - goto l696 - l701: - position, tokenIndex = position696, tokenIndex696 + goto l699 + l704: + position, tokenIndex = position699, tokenIndex699 if buffer[position] != rune('h') { - goto l702 + goto l705 } position++ - goto l696 - l702: - position, tokenIndex = position696, tokenIndex696 + goto l699 + l705: + position, tokenIndex = position699, tokenIndex699 if buffer[position] != rune('b') { - goto l695 + goto l698 } position++ } - l696: + l699: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l695 + goto l698 } position++ { - position703, tokenIndex703 := position, tokenIndex + position706, tokenIndex706 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l703 + goto l706 } position++ - goto l704 - l703: - position, tokenIndex = position703, tokenIndex703 + goto l707 + l706: + position, tokenIndex = position706, tokenIndex706 } - l704: + l707: { - position705, tokenIndex705 := position, tokenIndex + position708, tokenIndex708 := position, tokenIndex if !_rules[ruleARMRegisterBoundary]() { - goto l705 + goto l708 } - goto l695 - l705: - position, tokenIndex = position705, tokenIndex705 + goto l698 + l708: + position, tokenIndex = position708, tokenIndex708 } - goto l689 - l695: - position, tokenIndex = position689, tokenIndex689 + goto l692 + l698: + position, tokenIndex = position692, tokenIndex692 { - position707, tokenIndex707 := position, tokenIndex + position710, tokenIndex710 := position, tokenIndex if buffer[position] != rune('x') { - goto l708 + goto l711 } position++ - goto l707 - l708: - position, tokenIndex = position707, tokenIndex707 + goto l710 + l711: + position, tokenIndex = position710, tokenIndex710 if buffer[position] != rune('X') { - goto l706 + goto l709 } position++ } - l707: + l710: { - position709, tokenIndex709 := position, tokenIndex + position712, tokenIndex712 := position, tokenIndex if buffer[position] != rune('z') { - goto l710 + goto l713 } position++ - goto l709 - l710: - position, tokenIndex = position709, tokenIndex709 + goto l712 + l713: + position, tokenIndex = position712, tokenIndex712 if buffer[position] != rune('Z') { - goto l706 + goto l709 } position++ } - l709: + l712: { - position711, tokenIndex711 := position, tokenIndex + position714, tokenIndex714 := position, tokenIndex if buffer[position] != rune('r') { - goto l712 + goto l715 } position++ - goto l711 - l712: - position, tokenIndex = position711, tokenIndex711 + goto l714 + l715: + position, tokenIndex = position714, tokenIndex714 if buffer[position] != rune('R') { - goto l706 + goto l709 } position++ } - l711: - goto l689 - l706: - position, tokenIndex = position689, tokenIndex689 + l714: + goto l692 + l709: + position, tokenIndex = position692, tokenIndex692 { - position714, tokenIndex714 := position, tokenIndex + position717, tokenIndex717 := position, tokenIndex if buffer[position] != rune('w') { - goto l715 + goto l718 } position++ - goto l714 - l715: - position, tokenIndex = position714, tokenIndex714 + goto l717 + l718: + position, tokenIndex = position717, tokenIndex717 if buffer[position] != rune('W') { - goto l713 + goto l716 } position++ } - l714: + l717: { - position716, tokenIndex716 := position, tokenIndex + position719, tokenIndex719 := position, tokenIndex if buffer[position] != rune('z') { - goto l717 + goto l720 } position++ - goto l716 - l717: - position, tokenIndex = position716, tokenIndex716 + goto l719 + l720: + position, tokenIndex = position719, tokenIndex719 if buffer[position] != rune('Z') { - goto l713 + goto l716 } position++ } - l716: + l719: { - position718, tokenIndex718 := position, tokenIndex + position721, tokenIndex721 := position, tokenIndex if buffer[position] != rune('r') { - goto l719 + goto l722 } position++ - goto l718 - l719: - position, tokenIndex = position718, tokenIndex718 + goto l721 + l722: + position, tokenIndex = position721, tokenIndex721 if buffer[position] != rune('R') { - goto l713 + goto l716 } position++ } - l718: - goto l689 - l713: - position, tokenIndex = position689, tokenIndex689 + l721: + goto l692 + l716: + position, tokenIndex = position692, tokenIndex692 { - position721, tokenIndex721 := position, tokenIndex + position724, tokenIndex724 := position, tokenIndex if buffer[position] != rune('n') { - goto l722 + goto l725 } position++ - goto l721 - l722: - position, tokenIndex = position721, tokenIndex721 + goto l724 + l725: + position, tokenIndex = position724, tokenIndex724 if buffer[position] != rune('N') { - goto l720 + goto l723 } position++ } - l721: + l724: { - position723, tokenIndex723 := position, tokenIndex + position726, tokenIndex726 := position, tokenIndex if buffer[position] != rune('z') { - goto l724 + goto l727 } position++ - goto l723 - l724: - position, tokenIndex = position723, tokenIndex723 + goto l726 + l727: + position, tokenIndex = position726, tokenIndex726 if buffer[position] != rune('Z') { - goto l720 + goto l723 } position++ } - l723: + l726: { - position725, tokenIndex725 := position, tokenIndex + position728, tokenIndex728 := position, tokenIndex if buffer[position] != rune('c') { - goto l726 + goto l729 } position++ - goto l725 - l726: - position, tokenIndex = position725, tokenIndex725 + goto l728 + l729: + position, tokenIndex = position728, tokenIndex728 if buffer[position] != rune('C') { - goto l720 + goto l723 } position++ } - l725: + l728: { - position727, tokenIndex727 := position, tokenIndex + position730, tokenIndex730 := position, tokenIndex if buffer[position] != rune('v') { - goto l728 + goto l731 } position++ - goto l727 - l728: - position, tokenIndex = position727, tokenIndex727 + goto l730 + l731: + position, tokenIndex = position730, tokenIndex730 if buffer[position] != rune('V') { - goto l720 + goto l723 } position++ } - l727: - goto l689 - l720: - position, tokenIndex = position689, tokenIndex689 + l730: + goto l692 + l723: + position, tokenIndex = position692, tokenIndex692 if !_rules[ruleARMVectorRegister]() { - goto l729 + goto l732 } - goto l689 - l729: - position, tokenIndex = position689, tokenIndex689 + goto l692 + l732: + position, tokenIndex = position692, tokenIndex692 if !_rules[ruleSVE2PredicateRegister]() { - goto l730 + goto l733 } - goto l689 - l730: - position, tokenIndex = position689, tokenIndex689 + goto l692 + l733: + position, tokenIndex = position692, tokenIndex692 if buffer[position] != rune('{') { - goto l687 + goto l690 } position++ { - position731, tokenIndex731 := position, tokenIndex + position734, tokenIndex734 := position, tokenIndex if !_rules[ruleWS]() { - goto l731 + goto l734 } - goto l732 - l731: - position, tokenIndex = position731, tokenIndex731 + goto l735 + l734: + position, tokenIndex = position734, tokenIndex734 } - l732: + l735: if !_rules[ruleARMVectorRegister]() { - goto l687 + goto l690 } { - position733, tokenIndex733 := position, tokenIndex + position736, tokenIndex736 := position, tokenIndex if !_rules[ruleWS]() { - goto l733 + goto l736 } - goto l734 - l733: - position, tokenIndex = position733, tokenIndex733 + goto l737 + l736: + position, tokenIndex = position736, tokenIndex736 } - l734: - l735: + l737: + l738: { - position736, tokenIndex736 := position, tokenIndex + position739, tokenIndex739 := position, tokenIndex { - position737, tokenIndex737 := position, tokenIndex + position740, tokenIndex740 := position, tokenIndex if buffer[position] != rune(',') { - goto l738 + goto l741 } position++ - goto l737 - l738: - position, tokenIndex = position737, tokenIndex737 + goto l740 + l741: + position, tokenIndex = position740, tokenIndex740 if buffer[position] != rune('-') { - goto l736 + goto l739 } position++ } - l737: + l740: { - position739, tokenIndex739 := position, tokenIndex + position742, tokenIndex742 := position, tokenIndex if !_rules[ruleWS]() { - goto l739 + goto l742 } - goto l740 - l739: - position, tokenIndex = position739, tokenIndex739 + goto l743 + l742: + position, tokenIndex = position742, tokenIndex742 } - l740: + l743: if !_rules[ruleARMVectorRegister]() { - goto l736 + goto l739 } - goto l735 - l736: - position, tokenIndex = position736, tokenIndex736 + goto l738 + l739: + position, tokenIndex = position739, tokenIndex739 } { - position741, tokenIndex741 := position, tokenIndex + position744, tokenIndex744 := position, tokenIndex if !_rules[ruleWS]() { - goto l741 + goto l744 } - goto l742 - l741: - position, tokenIndex = position741, tokenIndex741 + goto l745 + l744: + position, tokenIndex = position744, tokenIndex744 } - l742: + l745: if buffer[position] != rune('}') { - goto l687 + goto l690 } position++ { - position743, tokenIndex743 := position, tokenIndex + position746, tokenIndex746 := position, tokenIndex if buffer[position] != rune('[') { - goto l743 + goto l746 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l743 + goto l746 } position++ { - position745, tokenIndex745 := position, tokenIndex + position748, tokenIndex748 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l745 + goto l748 } position++ - goto l746 - l745: - position, tokenIndex = position745, tokenIndex745 + goto l749 + l748: + position, tokenIndex = position748, tokenIndex748 } - l746: + l749: if buffer[position] != rune(']') { - goto l743 + goto l746 } position++ - goto l744 - l743: - position, tokenIndex = position743, tokenIndex743 + goto l747 + l746: + position, tokenIndex = position746, tokenIndex746 } - l744: + l747: } - l689: - add(ruleARMRegister, position688) + l692: + add(ruleARMRegister, position691) } - memoize(44, position687, tokenIndex687, true) return true - l687: - memoize(44, position687, tokenIndex687, false) - position, tokenIndex = position687, tokenIndex687 + l690: + position, tokenIndex = position690, tokenIndex690 return false }, /* 45 ARMVectorRegister <- <(('v' / 'z') [0-9] [0-9]? ('.' [0-9]* ('b' / 's' / 'd' / 'h' / 'q') ('[' [0-9] [0-9]? ']')?)?)> */ func() bool { - if memoized, ok := memoization[memoKey{45, position}]; ok { - return memoizedResult(memoized) - } - position747, tokenIndex747 := position, tokenIndex + position750, tokenIndex750 := position, tokenIndex { - position748 := position + position751 := position { - position749, tokenIndex749 := position, tokenIndex + position752, tokenIndex752 := position, tokenIndex if buffer[position] != rune('v') { - goto l750 + goto l753 } position++ - goto l749 - l750: - position, tokenIndex = position749, tokenIndex749 + goto l752 + l753: + position, tokenIndex = position752, tokenIndex752 if buffer[position] != rune('z') { - goto l747 + goto l750 } position++ } - l749: + l752: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l747 + goto l750 } position++ { - position751, tokenIndex751 := position, tokenIndex + position754, tokenIndex754 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l751 + goto l754 } position++ - goto l752 - l751: - position, tokenIndex = position751, tokenIndex751 + goto l755 + l754: + position, tokenIndex = position754, tokenIndex754 } - l752: + l755: { - position753, tokenIndex753 := position, tokenIndex + position756, tokenIndex756 := position, tokenIndex if buffer[position] != rune('.') { - goto l753 + goto l756 } position++ - l755: + l758: { - position756, tokenIndex756 := position, tokenIndex + position759, tokenIndex759 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l756 + goto l759 } position++ - goto l755 - l756: - position, tokenIndex = position756, tokenIndex756 + goto l758 + l759: + position, tokenIndex = position759, tokenIndex759 } { - position757, tokenIndex757 := position, tokenIndex + position760, tokenIndex760 := position, tokenIndex if buffer[position] != rune('b') { - goto l758 + goto l761 } position++ - goto l757 - l758: - position, tokenIndex = position757, tokenIndex757 + goto l760 + l761: + position, tokenIndex = position760, tokenIndex760 if buffer[position] != rune('s') { - goto l759 + goto l762 } position++ - goto l757 - l759: - position, tokenIndex = position757, tokenIndex757 + goto l760 + l762: + position, tokenIndex = position760, tokenIndex760 if buffer[position] != rune('d') { - goto l760 + goto l763 } position++ - goto l757 - l760: - position, tokenIndex = position757, tokenIndex757 + goto l760 + l763: + position, tokenIndex = position760, tokenIndex760 if buffer[position] != rune('h') { - goto l761 + goto l764 } position++ - goto l757 - l761: - position, tokenIndex = position757, tokenIndex757 + goto l760 + l764: + position, tokenIndex = position760, tokenIndex760 if buffer[position] != rune('q') { - goto l753 + goto l756 } position++ } - l757: + l760: { - position762, tokenIndex762 := position, tokenIndex + position765, tokenIndex765 := position, tokenIndex if buffer[position] != rune('[') { - goto l762 + goto l765 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l762 + goto l765 } position++ { - position764, tokenIndex764 := position, tokenIndex + position767, tokenIndex767 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l764 + goto l767 } position++ - goto l765 - l764: - position, tokenIndex = position764, tokenIndex764 + goto l768 + l767: + position, tokenIndex = position767, tokenIndex767 } - l765: + l768: if buffer[position] != rune(']') { - goto l762 + goto l765 } position++ - goto l763 - l762: - position, tokenIndex = position762, tokenIndex762 + goto l766 + l765: + position, tokenIndex = position765, tokenIndex765 } - l763: - goto l754 - l753: - position, tokenIndex = position753, tokenIndex753 + l766: + goto l757 + l756: + position, tokenIndex = position756, tokenIndex756 } - l754: - add(ruleARMVectorRegister, position748) + l757: + add(ruleARMVectorRegister, position751) } - memoize(45, position747, tokenIndex747, true) return true - l747: - memoize(45, position747, tokenIndex747, false) - position, tokenIndex = position747, tokenIndex747 + l750: + position, tokenIndex = position750, tokenIndex750 return false }, /* 46 SVE2PredicateRegister <- <(('p' / 'P') [0-9] [0-9]? '/' ('m' / 'M' / 'z' / 'Z'))> */ func() bool { - if memoized, ok := memoization[memoKey{46, position}]; ok { - return memoizedResult(memoized) - } - position766, tokenIndex766 := position, tokenIndex + position769, tokenIndex769 := position, tokenIndex { - position767 := position + position770 := position { - position768, tokenIndex768 := position, tokenIndex + position771, tokenIndex771 := position, tokenIndex if buffer[position] != rune('p') { - goto l769 + goto l772 } position++ - goto l768 - l769: - position, tokenIndex = position768, tokenIndex768 + goto l771 + l772: + position, tokenIndex = position771, tokenIndex771 if buffer[position] != rune('P') { - goto l766 + goto l769 } position++ } - l768: + l771: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l766 + goto l769 } position++ { - position770, tokenIndex770 := position, tokenIndex + position773, tokenIndex773 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l770 + goto l773 } position++ - goto l771 - l770: - position, tokenIndex = position770, tokenIndex770 + goto l774 + l773: + position, tokenIndex = position773, tokenIndex773 } - l771: + l774: if buffer[position] != rune('/') { - goto l766 + goto l769 } position++ { - position772, tokenIndex772 := position, tokenIndex + position775, tokenIndex775 := position, tokenIndex if buffer[position] != rune('m') { - goto l773 + goto l776 } position++ - goto l772 - l773: - position, tokenIndex = position772, tokenIndex772 + goto l775 + l776: + position, tokenIndex = position775, tokenIndex775 if buffer[position] != rune('M') { - goto l774 + goto l777 } position++ - goto l772 - l774: - position, tokenIndex = position772, tokenIndex772 + goto l775 + l777: + position, tokenIndex = position775, tokenIndex775 if buffer[position] != rune('z') { - goto l775 + goto l778 } position++ - goto l772 - l775: - position, tokenIndex = position772, tokenIndex772 + goto l775 + l778: + position, tokenIndex = position775, tokenIndex775 if buffer[position] != rune('Z') { - goto l766 + goto l769 } position++ } - l772: - add(ruleSVE2PredicateRegister, position767) + l775: + add(ruleSVE2PredicateRegister, position770) } - memoize(46, position766, tokenIndex766, true) return true - l766: - memoize(46, position766, tokenIndex766, false) - position, tokenIndex = position766, tokenIndex766 + l769: + position, tokenIndex = position769, tokenIndex769 return false }, /* 47 ARMRegisterBoundary <- <([a-z] / [A-Z] / [0-9] / '_')> */ func() bool { - if memoized, ok := memoization[memoKey{47, position}]; ok { - return memoizedResult(memoized) - } - position776, tokenIndex776 := position, tokenIndex + position779, tokenIndex779 := position, tokenIndex { - position777 := position + position780 := position { - position778, tokenIndex778 := position, tokenIndex + position781, tokenIndex781 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l779 + goto l782 } position++ - goto l778 - l779: - position, tokenIndex = position778, tokenIndex778 + goto l781 + l782: + position, tokenIndex = position781, tokenIndex781 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l780 + goto l783 } position++ - goto l778 - l780: - position, tokenIndex = position778, tokenIndex778 + goto l781 + l783: + position, tokenIndex = position781, tokenIndex781 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l781 + goto l784 } position++ - goto l778 - l781: - position, tokenIndex = position778, tokenIndex778 + goto l781 + l784: + position, tokenIndex = position781, tokenIndex781 if buffer[position] != rune('_') { - goto l776 + goto l779 } position++ } - l778: - add(ruleARMRegisterBoundary, position777) + l781: + add(ruleARMRegisterBoundary, position780) } - memoize(47, position776, tokenIndex776, true) return true - l776: - memoize(47, position776, tokenIndex776, false) - position, tokenIndex = position776, tokenIndex776 + l779: + position, tokenIndex = position779, tokenIndex779 return false }, /* 48 MemoryRef <- <((SymbolRef BaseIndexScale) / SymbolRef / Low12BitsSymbolRef / (Offset* BaseIndexScale) / (SegmentRegister Offset BaseIndexScale) / (SegmentRegister BaseIndexScale) / (SegmentRegister Offset) / ARMBaseIndexScale / BaseIndexScale)> */ func() bool { - if memoized, ok := memoization[memoKey{48, position}]; ok { - return memoizedResult(memoized) - } - position782, tokenIndex782 := position, tokenIndex + position785, tokenIndex785 := position, tokenIndex { - position783 := position + position786 := position { - position784, tokenIndex784 := position, tokenIndex + position787, tokenIndex787 := position, tokenIndex if !_rules[ruleSymbolRef]() { - goto l785 + goto l788 } if !_rules[ruleBaseIndexScale]() { - goto l785 + goto l788 } - goto l784 - l785: - position, tokenIndex = position784, tokenIndex784 + goto l787 + l788: + position, tokenIndex = position787, tokenIndex787 if !_rules[ruleSymbolRef]() { - goto l786 + goto l789 } - goto l784 - l786: - position, tokenIndex = position784, tokenIndex784 + goto l787 + l789: + position, tokenIndex = position787, tokenIndex787 if !_rules[ruleLow12BitsSymbolRef]() { - goto l787 + goto l790 } - goto l784 - l787: - position, tokenIndex = position784, tokenIndex784 - l789: + goto l787 + l790: + position, tokenIndex = position787, tokenIndex787 + l792: { - position790, tokenIndex790 := position, tokenIndex + position793, tokenIndex793 := position, tokenIndex if !_rules[ruleOffset]() { - goto l790 + goto l793 } - goto l789 - l790: - position, tokenIndex = position790, tokenIndex790 + goto l792 + l793: + position, tokenIndex = position793, tokenIndex793 } if !_rules[ruleBaseIndexScale]() { - goto l788 + goto l791 } - goto l784 - l788: - position, tokenIndex = position784, tokenIndex784 + goto l787 + l791: + position, tokenIndex = position787, tokenIndex787 if !_rules[ruleSegmentRegister]() { - goto l791 + goto l794 } if !_rules[ruleOffset]() { - goto l791 + goto l794 } if !_rules[ruleBaseIndexScale]() { - goto l791 + goto l794 } - goto l784 - l791: - position, tokenIndex = position784, tokenIndex784 + goto l787 + l794: + position, tokenIndex = position787, tokenIndex787 if !_rules[ruleSegmentRegister]() { - goto l792 + goto l795 } if !_rules[ruleBaseIndexScale]() { - goto l792 + goto l795 } - goto l784 - l792: - position, tokenIndex = position784, tokenIndex784 + goto l787 + l795: + position, tokenIndex = position787, tokenIndex787 if !_rules[ruleSegmentRegister]() { - goto l793 + goto l796 } if !_rules[ruleOffset]() { - goto l793 + goto l796 } - goto l784 - l793: - position, tokenIndex = position784, tokenIndex784 + goto l787 + l796: + position, tokenIndex = position787, tokenIndex787 if !_rules[ruleARMBaseIndexScale]() { - goto l794 + goto l797 } - goto l784 - l794: - position, tokenIndex = position784, tokenIndex784 + goto l787 + l797: + position, tokenIndex = position787, tokenIndex787 if !_rules[ruleBaseIndexScale]() { - goto l782 + goto l785 } } - l784: - add(ruleMemoryRef, position783) + l787: + add(ruleMemoryRef, position786) } - memoize(48, position782, tokenIndex782, true) return true - l782: - memoize(48, position782, tokenIndex782, false) - position, tokenIndex = position782, tokenIndex782 + l785: + position, tokenIndex = position785, tokenIndex785 return false }, /* 49 SymbolRef <- <((Offset* '+')? (LocalSymbol / SymbolName) Offset* ('@' Section Offset*)?)> */ func() bool { - if memoized, ok := memoization[memoKey{49, position}]; ok { - return memoizedResult(memoized) - } - position795, tokenIndex795 := position, tokenIndex + position798, tokenIndex798 := position, tokenIndex { - position796 := position + position799 := position { - position797, tokenIndex797 := position, tokenIndex - l799: + position800, tokenIndex800 := position, tokenIndex + l802: { - position800, tokenIndex800 := position, tokenIndex + position803, tokenIndex803 := position, tokenIndex if !_rules[ruleOffset]() { - goto l800 + goto l803 } - goto l799 - l800: - position, tokenIndex = position800, tokenIndex800 + goto l802 + l803: + position, tokenIndex = position803, tokenIndex803 } if buffer[position] != rune('+') { - goto l797 + goto l800 } position++ - goto l798 - l797: - position, tokenIndex = position797, tokenIndex797 + goto l801 + l800: + position, tokenIndex = position800, tokenIndex800 } - l798: + l801: { - position801, tokenIndex801 := position, tokenIndex + position804, tokenIndex804 := position, tokenIndex if !_rules[ruleLocalSymbol]() { - goto l802 + goto l805 } - goto l801 - l802: - position, tokenIndex = position801, tokenIndex801 + goto l804 + l805: + position, tokenIndex = position804, tokenIndex804 if !_rules[ruleSymbolName]() { - goto l795 + goto l798 } } - l801: - l803: + l804: + l806: { - position804, tokenIndex804 := position, tokenIndex + position807, tokenIndex807 := position, tokenIndex if !_rules[ruleOffset]() { - goto l804 + goto l807 } - goto l803 - l804: - position, tokenIndex = position804, tokenIndex804 + goto l806 + l807: + position, tokenIndex = position807, tokenIndex807 } { - position805, tokenIndex805 := position, tokenIndex + position808, tokenIndex808 := position, tokenIndex if buffer[position] != rune('@') { - goto l805 + goto l808 } position++ if !_rules[ruleSection]() { - goto l805 + goto l808 } - l807: + l810: { - position808, tokenIndex808 := position, tokenIndex + position811, tokenIndex811 := position, tokenIndex if !_rules[ruleOffset]() { - goto l808 + goto l811 } - goto l807 - l808: - position, tokenIndex = position808, tokenIndex808 + goto l810 + l811: + position, tokenIndex = position811, tokenIndex811 } - goto l806 - l805: - position, tokenIndex = position805, tokenIndex805 + goto l809 + l808: + position, tokenIndex = position808, tokenIndex808 } - l806: - add(ruleSymbolRef, position796) + l809: + add(ruleSymbolRef, position799) } - memoize(49, position795, tokenIndex795, true) return true - l795: - memoize(49, position795, tokenIndex795, false) - position, tokenIndex = position795, tokenIndex795 + l798: + position, tokenIndex = position798, tokenIndex798 return false }, /* 50 Low12BitsSymbolRef <- <(':' ('l' / 'L') ('o' / 'O') '1' '2' ':' (LocalSymbol / SymbolName) Offset?)> */ func() bool { - if memoized, ok := memoization[memoKey{50, position}]; ok { - return memoizedResult(memoized) - } - position809, tokenIndex809 := position, tokenIndex + position812, tokenIndex812 := position, tokenIndex { - position810 := position + position813 := position if buffer[position] != rune(':') { - goto l809 + goto l812 } position++ { - position811, tokenIndex811 := position, tokenIndex + position814, tokenIndex814 := position, tokenIndex if buffer[position] != rune('l') { - goto l812 + goto l815 } position++ - goto l811 - l812: - position, tokenIndex = position811, tokenIndex811 + goto l814 + l815: + position, tokenIndex = position814, tokenIndex814 if buffer[position] != rune('L') { - goto l809 + goto l812 } position++ } - l811: + l814: { - position813, tokenIndex813 := position, tokenIndex + position816, tokenIndex816 := position, tokenIndex if buffer[position] != rune('o') { - goto l814 + goto l817 } position++ - goto l813 - l814: - position, tokenIndex = position813, tokenIndex813 + goto l816 + l817: + position, tokenIndex = position816, tokenIndex816 if buffer[position] != rune('O') { - goto l809 + goto l812 } position++ } - l813: + l816: if buffer[position] != rune('1') { - goto l809 + goto l812 } position++ if buffer[position] != rune('2') { - goto l809 + goto l812 } position++ if buffer[position] != rune(':') { - goto l809 + goto l812 } position++ { - position815, tokenIndex815 := position, tokenIndex + position818, tokenIndex818 := position, tokenIndex if !_rules[ruleLocalSymbol]() { - goto l816 + goto l819 } - goto l815 - l816: - position, tokenIndex = position815, tokenIndex815 + goto l818 + l819: + position, tokenIndex = position818, tokenIndex818 if !_rules[ruleSymbolName]() { - goto l809 + goto l812 } } - l815: + l818: { - position817, tokenIndex817 := position, tokenIndex + position820, tokenIndex820 := position, tokenIndex if !_rules[ruleOffset]() { - goto l817 + goto l820 } - goto l818 - l817: - position, tokenIndex = position817, tokenIndex817 + goto l821 + l820: + position, tokenIndex = position820, tokenIndex820 } - l818: - add(ruleLow12BitsSymbolRef, position810) + l821: + add(ruleLow12BitsSymbolRef, position813) } - memoize(50, position809, tokenIndex809, true) return true - l809: - memoize(50, position809, tokenIndex809, false) - position, tokenIndex = position809, tokenIndex809 + l812: + position, tokenIndex = position812, tokenIndex812 return false }, /* 51 ARMBaseIndexScale <- <('[' ARMRegister (',' WS? (('#'? Offset (('*' [0-9]+) / ('*' '(' [0-9]+ Operator [0-9]+ ')') / ('+' [0-9]+)*)?) / ('#'? ARMGOTLow12) / ('#'? Low12BitsSymbolRef) / ARMRegister) (',' WS? ARMConstantTweak)?)? ']' ARMPostincrement?)> */ func() bool { - if memoized, ok := memoization[memoKey{51, position}]; ok { - return memoizedResult(memoized) - } - position819, tokenIndex819 := position, tokenIndex + position822, tokenIndex822 := position, tokenIndex { - position820 := position + position823 := position if buffer[position] != rune('[') { - goto l819 + goto l822 } position++ if !_rules[ruleARMRegister]() { - goto l819 + goto l822 } { - position821, tokenIndex821 := position, tokenIndex + position824, tokenIndex824 := position, tokenIndex if buffer[position] != rune(',') { - goto l821 + goto l824 } position++ { - position823, tokenIndex823 := position, tokenIndex + position826, tokenIndex826 := position, tokenIndex if !_rules[ruleWS]() { - goto l823 + goto l826 } - goto l824 - l823: - position, tokenIndex = position823, tokenIndex823 + goto l827 + l826: + position, tokenIndex = position826, tokenIndex826 } - l824: + l827: { - position825, tokenIndex825 := position, tokenIndex + position828, tokenIndex828 := position, tokenIndex { - position827, tokenIndex827 := position, tokenIndex + position830, tokenIndex830 := position, tokenIndex if buffer[position] != rune('#') { - goto l827 + goto l830 } position++ - goto l828 - l827: - position, tokenIndex = position827, tokenIndex827 + goto l831 + l830: + position, tokenIndex = position830, tokenIndex830 } - l828: + l831: if !_rules[ruleOffset]() { - goto l826 + goto l829 } { - position829, tokenIndex829 := position, tokenIndex + position832, tokenIndex832 := position, tokenIndex { - position831, tokenIndex831 := position, tokenIndex + position834, tokenIndex834 := position, tokenIndex if buffer[position] != rune('*') { - goto l832 + goto l835 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l832 + goto l835 } position++ - l833: + l836: { - position834, tokenIndex834 := position, tokenIndex + position837, tokenIndex837 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l834 + goto l837 } position++ - goto l833 - l834: - position, tokenIndex = position834, tokenIndex834 + goto l836 + l837: + position, tokenIndex = position837, tokenIndex837 } - goto l831 - l832: - position, tokenIndex = position831, tokenIndex831 + goto l834 + l835: + position, tokenIndex = position834, tokenIndex834 if buffer[position] != rune('*') { - goto l835 + goto l838 } position++ if buffer[position] != rune('(') { - goto l835 + goto l838 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l835 + goto l838 } position++ - l836: + l839: { - position837, tokenIndex837 := position, tokenIndex + position840, tokenIndex840 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l837 + goto l840 } position++ - goto l836 - l837: - position, tokenIndex = position837, tokenIndex837 + goto l839 + l840: + position, tokenIndex = position840, tokenIndex840 } if !_rules[ruleOperator]() { - goto l835 + goto l838 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l835 + goto l838 } position++ - l838: + l841: { - position839, tokenIndex839 := position, tokenIndex + position842, tokenIndex842 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l839 + goto l842 } position++ - goto l838 - l839: - position, tokenIndex = position839, tokenIndex839 + goto l841 + l842: + position, tokenIndex = position842, tokenIndex842 } if buffer[position] != rune(')') { - goto l835 + goto l838 } position++ - goto l831 - l835: - position, tokenIndex = position831, tokenIndex831 - l840: + goto l834 + l838: + position, tokenIndex = position834, tokenIndex834 + l843: { - position841, tokenIndex841 := position, tokenIndex + position844, tokenIndex844 := position, tokenIndex if buffer[position] != rune('+') { - goto l841 + goto l844 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l841 + goto l844 } position++ - l842: + l845: { - position843, tokenIndex843 := position, tokenIndex + position846, tokenIndex846 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l843 + goto l846 } position++ - goto l842 - l843: - position, tokenIndex = position843, tokenIndex843 + goto l845 + l846: + position, tokenIndex = position846, tokenIndex846 } - goto l840 - l841: - position, tokenIndex = position841, tokenIndex841 + goto l843 + l844: + position, tokenIndex = position844, tokenIndex844 } } - l831: - goto l830 + l834: + goto l833 - position, tokenIndex = position829, tokenIndex829 - } - l830: - goto l825 - l826: - position, tokenIndex = position825, tokenIndex825 - { - position845, tokenIndex845 := position, tokenIndex - if buffer[position] != rune('#') { - goto l845 - } - position++ - goto l846 - l845: - position, tokenIndex = position845, tokenIndex845 - } - l846: - if !_rules[ruleARMGOTLow12]() { - goto l844 + position, tokenIndex = position832, tokenIndex832 } - goto l825 - l844: - position, tokenIndex = position825, tokenIndex825 + l833: + goto l828 + l829: + position, tokenIndex = position828, tokenIndex828 { position848, tokenIndex848 := position, tokenIndex if buffer[position] != rune('#') { @@ -6849,1280 +6556,1255 @@ func (p *Asm) Init(options ...func(*Asm) error) error { position, tokenIndex = position848, tokenIndex848 } l849: - if !_rules[ruleLow12BitsSymbolRef]() { + if !_rules[ruleARMGOTLow12]() { goto l847 } - goto l825 + goto l828 l847: - position, tokenIndex = position825, tokenIndex825 + position, tokenIndex = position828, tokenIndex828 + { + position851, tokenIndex851 := position, tokenIndex + if buffer[position] != rune('#') { + goto l851 + } + position++ + goto l852 + l851: + position, tokenIndex = position851, tokenIndex851 + } + l852: + if !_rules[ruleLow12BitsSymbolRef]() { + goto l850 + } + goto l828 + l850: + position, tokenIndex = position828, tokenIndex828 if !_rules[ruleARMRegister]() { - goto l821 + goto l824 } } - l825: + l828: { - position850, tokenIndex850 := position, tokenIndex + position853, tokenIndex853 := position, tokenIndex if buffer[position] != rune(',') { - goto l850 + goto l853 } position++ { - position852, tokenIndex852 := position, tokenIndex + position855, tokenIndex855 := position, tokenIndex if !_rules[ruleWS]() { - goto l852 + goto l855 } - goto l853 - l852: - position, tokenIndex = position852, tokenIndex852 + goto l856 + l855: + position, tokenIndex = position855, tokenIndex855 } - l853: + l856: if !_rules[ruleARMConstantTweak]() { - goto l850 + goto l853 } - goto l851 - l850: - position, tokenIndex = position850, tokenIndex850 + goto l854 + l853: + position, tokenIndex = position853, tokenIndex853 } - l851: - goto l822 - l821: - position, tokenIndex = position821, tokenIndex821 + l854: + goto l825 + l824: + position, tokenIndex = position824, tokenIndex824 } - l822: + l825: if buffer[position] != rune(']') { - goto l819 + goto l822 } position++ { - position854, tokenIndex854 := position, tokenIndex + position857, tokenIndex857 := position, tokenIndex if !_rules[ruleARMPostincrement]() { - goto l854 + goto l857 } - goto l855 - l854: - position, tokenIndex = position854, tokenIndex854 + goto l858 + l857: + position, tokenIndex = position857, tokenIndex857 } - l855: - add(ruleARMBaseIndexScale, position820) + l858: + add(ruleARMBaseIndexScale, position823) } - memoize(51, position819, tokenIndex819, true) return true - l819: - memoize(51, position819, tokenIndex819, false) - position, tokenIndex = position819, tokenIndex819 + l822: + position, tokenIndex = position822, tokenIndex822 return false }, /* 52 ARMGOTLow12 <- <(':' ('g' / 'G') ('o' / 'O') ('t' / 'T') '_' ('l' / 'L') ('o' / 'O') '1' '2' ':' SymbolName)> */ func() bool { - if memoized, ok := memoization[memoKey{52, position}]; ok { - return memoizedResult(memoized) - } - position856, tokenIndex856 := position, tokenIndex + position859, tokenIndex859 := position, tokenIndex { - position857 := position + position860 := position if buffer[position] != rune(':') { - goto l856 + goto l859 } position++ { - position858, tokenIndex858 := position, tokenIndex + position861, tokenIndex861 := position, tokenIndex if buffer[position] != rune('g') { - goto l859 + goto l862 } position++ - goto l858 - l859: - position, tokenIndex = position858, tokenIndex858 + goto l861 + l862: + position, tokenIndex = position861, tokenIndex861 if buffer[position] != rune('G') { - goto l856 + goto l859 } position++ } - l858: + l861: { - position860, tokenIndex860 := position, tokenIndex + position863, tokenIndex863 := position, tokenIndex if buffer[position] != rune('o') { - goto l861 + goto l864 } position++ - goto l860 - l861: - position, tokenIndex = position860, tokenIndex860 + goto l863 + l864: + position, tokenIndex = position863, tokenIndex863 if buffer[position] != rune('O') { - goto l856 + goto l859 } position++ } - l860: + l863: { - position862, tokenIndex862 := position, tokenIndex + position865, tokenIndex865 := position, tokenIndex if buffer[position] != rune('t') { - goto l863 + goto l866 } position++ - goto l862 - l863: - position, tokenIndex = position862, tokenIndex862 + goto l865 + l866: + position, tokenIndex = position865, tokenIndex865 if buffer[position] != rune('T') { - goto l856 + goto l859 } position++ } - l862: + l865: if buffer[position] != rune('_') { - goto l856 + goto l859 } position++ { - position864, tokenIndex864 := position, tokenIndex + position867, tokenIndex867 := position, tokenIndex if buffer[position] != rune('l') { - goto l865 + goto l868 } position++ - goto l864 - l865: - position, tokenIndex = position864, tokenIndex864 + goto l867 + l868: + position, tokenIndex = position867, tokenIndex867 if buffer[position] != rune('L') { - goto l856 + goto l859 } position++ } - l864: + l867: { - position866, tokenIndex866 := position, tokenIndex + position869, tokenIndex869 := position, tokenIndex if buffer[position] != rune('o') { - goto l867 + goto l870 } position++ - goto l866 - l867: - position, tokenIndex = position866, tokenIndex866 + goto l869 + l870: + position, tokenIndex = position869, tokenIndex869 if buffer[position] != rune('O') { - goto l856 + goto l859 } position++ } - l866: + l869: if buffer[position] != rune('1') { - goto l856 + goto l859 } position++ if buffer[position] != rune('2') { - goto l856 + goto l859 } position++ if buffer[position] != rune(':') { - goto l856 + goto l859 } position++ if !_rules[ruleSymbolName]() { - goto l856 + goto l859 } - add(ruleARMGOTLow12, position857) + add(ruleARMGOTLow12, position860) } - memoize(52, position856, tokenIndex856, true) return true - l856: - memoize(52, position856, tokenIndex856, false) - position, tokenIndex = position856, tokenIndex856 + l859: + position, tokenIndex = position859, tokenIndex859 return false }, /* 53 ARMPostincrement <- <'!'> */ func() bool { - if memoized, ok := memoization[memoKey{53, position}]; ok { - return memoizedResult(memoized) - } - position868, tokenIndex868 := position, tokenIndex + position871, tokenIndex871 := position, tokenIndex { - position869 := position + position872 := position if buffer[position] != rune('!') { - goto l868 + goto l871 } position++ - add(ruleARMPostincrement, position869) + add(ruleARMPostincrement, position872) } - memoize(53, position868, tokenIndex868, true) return true - l868: - memoize(53, position868, tokenIndex868, false) - position, tokenIndex = position868, tokenIndex868 + l871: + position, tokenIndex = position871, tokenIndex871 return false }, /* 54 BaseIndexScale <- <('(' RegisterOrConstant? WS? (',' WS? RegisterOrConstant WS? (',' [0-9]+)?)? ')')> */ func() bool { - if memoized, ok := memoization[memoKey{54, position}]; ok { - return memoizedResult(memoized) - } - position870, tokenIndex870 := position, tokenIndex + position873, tokenIndex873 := position, tokenIndex { - position871 := position + position874 := position if buffer[position] != rune('(') { - goto l870 + goto l873 } position++ { - position872, tokenIndex872 := position, tokenIndex + position875, tokenIndex875 := position, tokenIndex if !_rules[ruleRegisterOrConstant]() { - goto l872 + goto l875 } - goto l873 - l872: - position, tokenIndex = position872, tokenIndex872 + goto l876 + l875: + position, tokenIndex = position875, tokenIndex875 } - l873: + l876: { - position874, tokenIndex874 := position, tokenIndex + position877, tokenIndex877 := position, tokenIndex if !_rules[ruleWS]() { - goto l874 + goto l877 } - goto l875 - l874: - position, tokenIndex = position874, tokenIndex874 + goto l878 + l877: + position, tokenIndex = position877, tokenIndex877 } - l875: + l878: { - position876, tokenIndex876 := position, tokenIndex + position879, tokenIndex879 := position, tokenIndex if buffer[position] != rune(',') { - goto l876 + goto l879 } position++ { - position878, tokenIndex878 := position, tokenIndex + position881, tokenIndex881 := position, tokenIndex if !_rules[ruleWS]() { - goto l878 + goto l881 } - goto l879 - l878: - position, tokenIndex = position878, tokenIndex878 + goto l882 + l881: + position, tokenIndex = position881, tokenIndex881 } - l879: + l882: if !_rules[ruleRegisterOrConstant]() { - goto l876 + goto l879 } { - position880, tokenIndex880 := position, tokenIndex + position883, tokenIndex883 := position, tokenIndex if !_rules[ruleWS]() { - goto l880 + goto l883 } - goto l881 - l880: - position, tokenIndex = position880, tokenIndex880 + goto l884 + l883: + position, tokenIndex = position883, tokenIndex883 } - l881: + l884: { - position882, tokenIndex882 := position, tokenIndex + position885, tokenIndex885 := position, tokenIndex if buffer[position] != rune(',') { - goto l882 + goto l885 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l882 + goto l885 } position++ - l884: + l887: { - position885, tokenIndex885 := position, tokenIndex + position888, tokenIndex888 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l885 + goto l888 } position++ - goto l884 - l885: - position, tokenIndex = position885, tokenIndex885 + goto l887 + l888: + position, tokenIndex = position888, tokenIndex888 } - goto l883 - l882: - position, tokenIndex = position882, tokenIndex882 + goto l886 + l885: + position, tokenIndex = position885, tokenIndex885 } - l883: - goto l877 - l876: - position, tokenIndex = position876, tokenIndex876 + l886: + goto l880 + l879: + position, tokenIndex = position879, tokenIndex879 } - l877: + l880: if buffer[position] != rune(')') { - goto l870 + goto l873 } position++ - add(ruleBaseIndexScale, position871) + add(ruleBaseIndexScale, position874) } - memoize(54, position870, tokenIndex870, true) return true - l870: - memoize(54, position870, tokenIndex870, false) - position, tokenIndex = position870, tokenIndex870 + l873: + position, tokenIndex = position873, tokenIndex873 return false }, /* 55 Operator <- <('+' / '-')> */ func() bool { - if memoized, ok := memoization[memoKey{55, position}]; ok { - return memoizedResult(memoized) - } - position886, tokenIndex886 := position, tokenIndex + position889, tokenIndex889 := position, tokenIndex { - position887 := position + position890 := position { - position888, tokenIndex888 := position, tokenIndex + position891, tokenIndex891 := position, tokenIndex if buffer[position] != rune('+') { - goto l889 + goto l892 } position++ - goto l888 - l889: - position, tokenIndex = position888, tokenIndex888 + goto l891 + l892: + position, tokenIndex = position891, tokenIndex891 if buffer[position] != rune('-') { - goto l886 + goto l889 } position++ } - l888: - add(ruleOperator, position887) + l891: + add(ruleOperator, position890) } - memoize(55, position886, tokenIndex886, true) return true - l886: - memoize(55, position886, tokenIndex886, false) - position, tokenIndex = position886, tokenIndex886 + l889: + position, tokenIndex = position889, tokenIndex889 return false }, /* 56 OffsetOperator <- <('+' / '-' / '*')> */ func() bool { - if memoized, ok := memoization[memoKey{56, position}]; ok { - return memoizedResult(memoized) - } - position890, tokenIndex890 := position, tokenIndex + position893, tokenIndex893 := position, tokenIndex { - position891 := position + position894 := position { - position892, tokenIndex892 := position, tokenIndex + position895, tokenIndex895 := position, tokenIndex if buffer[position] != rune('+') { - goto l893 + goto l896 } position++ - goto l892 - l893: - position, tokenIndex = position892, tokenIndex892 + goto l895 + l896: + position, tokenIndex = position895, tokenIndex895 if buffer[position] != rune('-') { - goto l894 + goto l897 } position++ - goto l892 - l894: - position, tokenIndex = position892, tokenIndex892 + goto l895 + l897: + position, tokenIndex = position895, tokenIndex895 if buffer[position] != rune('*') { - goto l890 + goto l893 } position++ } - l892: - add(ruleOffsetOperator, position891) + l895: + add(ruleOffsetOperator, position894) } - memoize(56, position890, tokenIndex890, true) return true - l890: - memoize(56, position890, tokenIndex890, false) - position, tokenIndex = position890, tokenIndex890 + l893: + position, tokenIndex = position893, tokenIndex893 return false }, /* 57 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]+)?) / ('(' [0-9]+ WS? OffsetOperator WS? [0-9]+ ')' OffsetOperator [0-9]+ OffsetOperator [0-9]+) / ('(' [0-9]+ WS? OffsetOperator WS? [0-9]+ ')' OffsetOperator [0-9]+ !'x') / ('(' [0-9]+ WS? OffsetOperator WS? [0-9]+ ')') / ('(' [0-9]+ WS? OffsetOperator WS? [0-9]+ WS? OffsetOperator WS? [0-9]+ ')')) !([a-z] / [A-Z]))))> */ func() bool { - if memoized, ok := memoization[memoKey{57, position}]; ok { - return memoizedResult(memoized) - } - position895, tokenIndex895 := position, tokenIndex + position898, tokenIndex898 := position, tokenIndex { - position896 := position + position899 := position { - position897, tokenIndex897 := position, tokenIndex + position900, tokenIndex900 := position, tokenIndex if buffer[position] != rune('+') { - goto l897 + goto l900 } position++ - goto l898 - l897: - position, tokenIndex = position897, tokenIndex897 + goto l901 + l900: + position, tokenIndex = position900, tokenIndex900 } - l898: + l901: { - position899, tokenIndex899 := position, tokenIndex + position902, tokenIndex902 := position, tokenIndex if buffer[position] != rune('-') { - goto l899 + goto l902 } position++ - goto l900 - l899: - position, tokenIndex = position899, tokenIndex899 + goto l903 + l902: + position, tokenIndex = position902, tokenIndex902 } - l900: + l903: { - position901, tokenIndex901 := position, tokenIndex + position904, tokenIndex904 := position, tokenIndex if buffer[position] != rune('0') { - goto l902 + goto l905 } position++ { - position903, tokenIndex903 := position, tokenIndex + position906, tokenIndex906 := position, tokenIndex if buffer[position] != rune('b') { - goto l904 + goto l907 } position++ - goto l903 - l904: - position, tokenIndex = position903, tokenIndex903 + goto l906 + l907: + position, tokenIndex = position906, tokenIndex906 if buffer[position] != rune('B') { - goto l902 + goto l905 } position++ } - l903: + l906: { - position907, tokenIndex907 := position, tokenIndex + position910, tokenIndex910 := position, tokenIndex if buffer[position] != rune('0') { - goto l908 + goto l911 } position++ - goto l907 - l908: - position, tokenIndex = position907, tokenIndex907 + goto l910 + l911: + position, tokenIndex = position910, tokenIndex910 if buffer[position] != rune('1') { - goto l902 + goto l905 } position++ } - l907: - l905: + l910: + l908: { - position906, tokenIndex906 := position, tokenIndex + position909, tokenIndex909 := position, tokenIndex { - position909, tokenIndex909 := position, tokenIndex + position912, tokenIndex912 := position, tokenIndex if buffer[position] != rune('0') { - goto l910 + goto l913 } position++ - goto l909 - l910: - position, tokenIndex = position909, tokenIndex909 + goto l912 + l913: + position, tokenIndex = position912, tokenIndex912 if buffer[position] != rune('1') { - goto l906 + goto l909 } position++ } + l912: + goto l908 l909: - goto l905 - l906: - position, tokenIndex = position906, tokenIndex906 + position, tokenIndex = position909, tokenIndex909 } - goto l901 - l902: - position, tokenIndex = position901, tokenIndex901 + goto l904 + l905: + position, tokenIndex = position904, tokenIndex904 if buffer[position] != rune('0') { - goto l911 + goto l914 } position++ { - position912, tokenIndex912 := position, tokenIndex + position915, tokenIndex915 := position, tokenIndex if buffer[position] != rune('x') { - goto l913 + goto l916 } position++ - goto l912 - l913: - position, tokenIndex = position912, tokenIndex912 + goto l915 + l916: + position, tokenIndex = position915, tokenIndex915 if buffer[position] != rune('X') { - goto l911 + goto l914 } position++ } - l912: + l915: { - position916, tokenIndex916 := position, tokenIndex + position919, tokenIndex919 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l917 + goto l920 } position++ - goto l916 - l917: - position, tokenIndex = position916, tokenIndex916 + goto l919 + l920: + position, tokenIndex = position919, tokenIndex919 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l918 + goto l921 } position++ - goto l916 - l918: - position, tokenIndex = position916, tokenIndex916 + goto l919 + l921: + position, tokenIndex = position919, tokenIndex919 { - position919, tokenIndex919 := position, tokenIndex + position922, tokenIndex922 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l920 + goto l923 } position++ - goto l919 - l920: - position, tokenIndex = position919, tokenIndex919 + goto l922 + l923: + position, tokenIndex = position922, tokenIndex922 if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l911 + goto l914 } position++ } - l919: + l922: } - l916: - l914: + l919: + l917: { - position915, tokenIndex915 := position, tokenIndex + position918, tokenIndex918 := position, tokenIndex { - position921, tokenIndex921 := position, tokenIndex + position924, tokenIndex924 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l922 + goto l925 } position++ - goto l921 - l922: - position, tokenIndex = position921, tokenIndex921 + goto l924 + l925: + position, tokenIndex = position924, tokenIndex924 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l923 + goto l926 } position++ - goto l921 - l923: - position, tokenIndex = position921, tokenIndex921 + goto l924 + l926: + position, tokenIndex = position924, tokenIndex924 { - position924, tokenIndex924 := position, tokenIndex + position927, tokenIndex927 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l925 + goto l928 } position++ - goto l924 - l925: - position, tokenIndex = position924, tokenIndex924 + goto l927 + l928: + position, tokenIndex = position927, tokenIndex927 if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l915 + goto l918 } position++ } - l924: + l927: } - l921: - goto l914 - l915: - position, tokenIndex = position915, tokenIndex915 + l924: + goto l917 + l918: + position, tokenIndex = position918, tokenIndex918 } - goto l901 - l911: - position, tokenIndex = position901, tokenIndex901 + goto l904 + l914: + position, tokenIndex = position904, tokenIndex904 { - position926, tokenIndex926 := position, tokenIndex + position929, tokenIndex929 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l927 + goto l930 } position++ - l928: + l931: { - position929, tokenIndex929 := position, tokenIndex + position932, tokenIndex932 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l929 + goto l932 } position++ - goto l928 - l929: - position, tokenIndex = position929, tokenIndex929 + goto l931 + l932: + position, tokenIndex = position932, tokenIndex932 } if !_rules[ruleWS]() { - goto l927 + goto l930 } if !_rules[ruleOffsetOperator]() { - goto l927 + goto l930 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l927 + goto l930 } position++ - l930: + l933: { - position931, tokenIndex931 := position, tokenIndex + position934, tokenIndex934 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l931 + goto l934 } position++ - goto l930 - l931: - position, tokenIndex = position931, tokenIndex931 + goto l933 + l934: + position, tokenIndex = position934, tokenIndex934 } - goto l926 - l927: - position, tokenIndex = position926, tokenIndex926 + goto l929 + l930: + position, tokenIndex = position929, tokenIndex929 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l932 + goto l935 } position++ - l933: + l936: { - position934, tokenIndex934 := position, tokenIndex + position937, tokenIndex937 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l934 + goto l937 } position++ - goto l933 - l934: - position, tokenIndex = position934, tokenIndex934 + goto l936 + l937: + position, tokenIndex = position937, tokenIndex937 } { - position935, tokenIndex935 := position, tokenIndex + position938, tokenIndex938 := position, tokenIndex if !_rules[ruleOffsetOperator]() { - goto l935 + goto l938 } if buffer[position] != rune('(') { - goto l935 + goto l938 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l935 + goto l938 } position++ - l937: + l940: { - position938, tokenIndex938 := position, tokenIndex + position941, tokenIndex941 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l938 + goto l941 } position++ - goto l937 - l938: - position, tokenIndex = position938, tokenIndex938 + goto l940 + l941: + position, tokenIndex = position941, tokenIndex941 } if !_rules[ruleOffsetOperator]() { - goto l935 + goto l938 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l935 + goto l938 } position++ - l939: + l942: { - position940, tokenIndex940 := position, tokenIndex + position943, tokenIndex943 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l940 + goto l943 } position++ - goto l939 - l940: - position, tokenIndex = position940, tokenIndex940 + goto l942 + l943: + position, tokenIndex = position943, tokenIndex943 } if buffer[position] != rune(')') { - goto l935 + goto l938 } position++ - goto l936 - l935: - position, tokenIndex = position935, tokenIndex935 - } - l936: - goto l926 - l932: - position, tokenIndex = position926, tokenIndex926 + goto l939 + l938: + position, tokenIndex = position938, tokenIndex938 + } + l939: + goto l929 + l935: + position, tokenIndex = position929, tokenIndex929 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l941 + goto l944 } position++ - l942: + l945: { - position943, tokenIndex943 := position, tokenIndex + position946, tokenIndex946 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l943 + goto l946 } position++ - goto l942 - l943: - position, tokenIndex = position943, tokenIndex943 + goto l945 + l946: + position, tokenIndex = position946, tokenIndex946 } { - position944, tokenIndex944 := position, tokenIndex + position947, tokenIndex947 := position, tokenIndex if !_rules[ruleOffsetOperator]() { - goto l944 + goto l947 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l944 + goto l947 } position++ - l946: + l949: { - position947, tokenIndex947 := position, tokenIndex + position950, tokenIndex950 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l947 + goto l950 } position++ - goto l946 - l947: - position, tokenIndex = position947, tokenIndex947 + goto l949 + l950: + position, tokenIndex = position950, tokenIndex950 } if !_rules[ruleOffsetOperator]() { - goto l944 + goto l947 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l944 + goto l947 } position++ - l948: + l951: { - position949, tokenIndex949 := position, tokenIndex + position952, tokenIndex952 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l949 + goto l952 } position++ - goto l948 - l949: - position, tokenIndex = position949, tokenIndex949 - } - goto l945 - l944: - position, tokenIndex = position944, tokenIndex944 - } - l945: - goto l926 - l941: - position, tokenIndex = position926, tokenIndex926 + goto l951 + l952: + position, tokenIndex = position952, tokenIndex952 + } + goto l948 + l947: + position, tokenIndex = position947, tokenIndex947 + } + l948: + goto l929 + l944: + position, tokenIndex = position929, tokenIndex929 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l950 + goto l953 } position++ - l951: + l954: { - position952, tokenIndex952 := position, tokenIndex + position955, tokenIndex955 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l952 + goto l955 } position++ - goto l951 - l952: - position, tokenIndex = position952, tokenIndex952 + goto l954 + l955: + position, tokenIndex = position955, tokenIndex955 } { - position953, tokenIndex953 := position, tokenIndex + position956, tokenIndex956 := position, tokenIndex if !_rules[ruleOffsetOperator]() { - goto l953 + goto l956 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l953 + goto l956 } position++ - l955: + l958: { - position956, tokenIndex956 := position, tokenIndex + position959, tokenIndex959 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l956 + goto l959 } position++ - goto l955 - l956: - position, tokenIndex = position956, tokenIndex956 + goto l958 + l959: + position, tokenIndex = position959, tokenIndex959 } - goto l954 - l953: - position, tokenIndex = position953, tokenIndex953 + goto l957 + l956: + position, tokenIndex = position956, tokenIndex956 } - l954: - goto l926 - l950: - position, tokenIndex = position926, tokenIndex926 + l957: + goto l929 + l953: + position, tokenIndex = position929, tokenIndex929 if buffer[position] != rune('(') { - goto l957 + goto l960 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l957 + goto l960 } position++ - l958: + l961: { - position959, tokenIndex959 := position, tokenIndex + position962, tokenIndex962 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l959 + goto l962 } position++ - goto l958 - l959: - position, tokenIndex = position959, tokenIndex959 + goto l961 + l962: + position, tokenIndex = position962, tokenIndex962 } { - position960, tokenIndex960 := position, tokenIndex + position963, tokenIndex963 := position, tokenIndex if !_rules[ruleWS]() { - goto l960 + goto l963 } - goto l961 - l960: - position, tokenIndex = position960, tokenIndex960 + goto l964 + l963: + position, tokenIndex = position963, tokenIndex963 } - l961: + l964: if !_rules[ruleOffsetOperator]() { - goto l957 + goto l960 } { - position962, tokenIndex962 := position, tokenIndex + position965, tokenIndex965 := position, tokenIndex if !_rules[ruleWS]() { - goto l962 + goto l965 } - goto l963 - l962: - position, tokenIndex = position962, tokenIndex962 + goto l966 + l965: + position, tokenIndex = position965, tokenIndex965 } - l963: + l966: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l957 + goto l960 } position++ - l964: + l967: { - position965, tokenIndex965 := position, tokenIndex + position968, tokenIndex968 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l965 + goto l968 } position++ - goto l964 - l965: - position, tokenIndex = position965, tokenIndex965 + goto l967 + l968: + position, tokenIndex = position968, tokenIndex968 } if buffer[position] != rune(')') { - goto l957 + goto l960 } position++ if !_rules[ruleOffsetOperator]() { - goto l957 + goto l960 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l957 + goto l960 } position++ - l966: + l969: { - position967, tokenIndex967 := position, tokenIndex + position970, tokenIndex970 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l967 + goto l970 } position++ - goto l966 - l967: - position, tokenIndex = position967, tokenIndex967 + goto l969 + l970: + position, tokenIndex = position970, tokenIndex970 } if !_rules[ruleOffsetOperator]() { - goto l957 + goto l960 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l957 + goto l960 } position++ - l968: + l971: { - position969, tokenIndex969 := position, tokenIndex + position972, tokenIndex972 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l969 + goto l972 } position++ - goto l968 - l969: - position, tokenIndex = position969, tokenIndex969 + goto l971 + l972: + position, tokenIndex = position972, tokenIndex972 } - goto l926 - l957: - position, tokenIndex = position926, tokenIndex926 + goto l929 + l960: + position, tokenIndex = position929, tokenIndex929 if buffer[position] != rune('(') { - goto l970 + goto l973 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l970 + goto l973 } position++ - l971: + l974: { - position972, tokenIndex972 := position, tokenIndex + position975, tokenIndex975 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l972 + goto l975 } position++ - goto l971 - l972: - position, tokenIndex = position972, tokenIndex972 + goto l974 + l975: + position, tokenIndex = position975, tokenIndex975 } { - position973, tokenIndex973 := position, tokenIndex + position976, tokenIndex976 := position, tokenIndex if !_rules[ruleWS]() { - goto l973 + goto l976 } - goto l974 - l973: - position, tokenIndex = position973, tokenIndex973 + goto l977 + l976: + position, tokenIndex = position976, tokenIndex976 } - l974: + l977: if !_rules[ruleOffsetOperator]() { - goto l970 + goto l973 } { - position975, tokenIndex975 := position, tokenIndex + position978, tokenIndex978 := position, tokenIndex if !_rules[ruleWS]() { - goto l975 + goto l978 } - goto l976 - l975: - position, tokenIndex = position975, tokenIndex975 + goto l979 + l978: + position, tokenIndex = position978, tokenIndex978 } - l976: + l979: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l970 + goto l973 } position++ - l977: + l980: { - position978, tokenIndex978 := position, tokenIndex + position981, tokenIndex981 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l978 + goto l981 } position++ - goto l977 - l978: - position, tokenIndex = position978, tokenIndex978 + goto l980 + l981: + position, tokenIndex = position981, tokenIndex981 } if buffer[position] != rune(')') { - goto l970 + goto l973 } position++ if !_rules[ruleOffsetOperator]() { - goto l970 + goto l973 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l970 + goto l973 } position++ - l979: + l982: { - position980, tokenIndex980 := position, tokenIndex + position983, tokenIndex983 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l980 + goto l983 } position++ - goto l979 - l980: - position, tokenIndex = position980, tokenIndex980 + goto l982 + l983: + position, tokenIndex = position983, tokenIndex983 } { - position981, tokenIndex981 := position, tokenIndex + position984, tokenIndex984 := position, tokenIndex if buffer[position] != rune('x') { - goto l981 + goto l984 } position++ - goto l970 - l981: - position, tokenIndex = position981, tokenIndex981 + goto l973 + l984: + position, tokenIndex = position984, tokenIndex984 } - goto l926 - l970: - position, tokenIndex = position926, tokenIndex926 + goto l929 + l973: + position, tokenIndex = position929, tokenIndex929 if buffer[position] != rune('(') { - goto l982 + goto l985 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l982 + goto l985 } position++ - l983: + l986: { - position984, tokenIndex984 := position, tokenIndex + position987, tokenIndex987 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l984 + goto l987 } position++ - goto l983 - l984: - position, tokenIndex = position984, tokenIndex984 + goto l986 + l987: + position, tokenIndex = position987, tokenIndex987 } { - position985, tokenIndex985 := position, tokenIndex + position988, tokenIndex988 := position, tokenIndex if !_rules[ruleWS]() { - goto l985 + goto l988 } - goto l986 - l985: - position, tokenIndex = position985, tokenIndex985 + goto l989 + l988: + position, tokenIndex = position988, tokenIndex988 } - l986: + l989: if !_rules[ruleOffsetOperator]() { - goto l982 + goto l985 } { - position987, tokenIndex987 := position, tokenIndex + position990, tokenIndex990 := position, tokenIndex if !_rules[ruleWS]() { - goto l987 + goto l990 } - goto l988 - l987: - position, tokenIndex = position987, tokenIndex987 + goto l991 + l990: + position, tokenIndex = position990, tokenIndex990 } - l988: + l991: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l982 + goto l985 } position++ - l989: + l992: { - position990, tokenIndex990 := position, tokenIndex + position993, tokenIndex993 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l990 + goto l993 } position++ - goto l989 - l990: - position, tokenIndex = position990, tokenIndex990 + goto l992 + l993: + position, tokenIndex = position993, tokenIndex993 } if buffer[position] != rune(')') { - goto l982 + goto l985 } position++ - goto l926 - l982: - position, tokenIndex = position926, tokenIndex926 + goto l929 + l985: + position, tokenIndex = position929, tokenIndex929 if buffer[position] != rune('(') { - goto l895 + goto l898 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l895 + goto l898 } position++ - l991: + l994: { - position992, tokenIndex992 := position, tokenIndex + position995, tokenIndex995 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l992 + goto l995 } position++ - goto l991 - l992: - position, tokenIndex = position992, tokenIndex992 + goto l994 + l995: + position, tokenIndex = position995, tokenIndex995 } { - position993, tokenIndex993 := position, tokenIndex + position996, tokenIndex996 := position, tokenIndex if !_rules[ruleWS]() { - goto l993 + goto l996 } - goto l994 - l993: - position, tokenIndex = position993, tokenIndex993 + goto l997 + l996: + position, tokenIndex = position996, tokenIndex996 } - l994: + l997: if !_rules[ruleOffsetOperator]() { - goto l895 + goto l898 } { - position995, tokenIndex995 := position, tokenIndex + position998, tokenIndex998 := position, tokenIndex if !_rules[ruleWS]() { - goto l995 + goto l998 } - goto l996 - l995: - position, tokenIndex = position995, tokenIndex995 + goto l999 + l998: + position, tokenIndex = position998, tokenIndex998 } - l996: + l999: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l895 + goto l898 } position++ - l997: + l1000: { - position998, tokenIndex998 := position, tokenIndex + position1001, tokenIndex1001 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l998 + goto l1001 } position++ - goto l997 - l998: - position, tokenIndex = position998, tokenIndex998 + goto l1000 + l1001: + position, tokenIndex = position1001, tokenIndex1001 } { - position999, tokenIndex999 := position, tokenIndex + position1002, tokenIndex1002 := position, tokenIndex if !_rules[ruleWS]() { - goto l999 + goto l1002 } - goto l1000 - l999: - position, tokenIndex = position999, tokenIndex999 + goto l1003 + l1002: + position, tokenIndex = position1002, tokenIndex1002 } - l1000: + l1003: if !_rules[ruleOffsetOperator]() { - goto l895 + goto l898 } { - position1001, tokenIndex1001 := position, tokenIndex + position1004, tokenIndex1004 := position, tokenIndex if !_rules[ruleWS]() { - goto l1001 + goto l1004 } - goto l1002 - l1001: - position, tokenIndex = position1001, tokenIndex1001 + goto l1005 + l1004: + position, tokenIndex = position1004, tokenIndex1004 } - l1002: + l1005: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l895 + goto l898 } position++ - l1003: + l1006: { - position1004, tokenIndex1004 := position, tokenIndex + position1007, tokenIndex1007 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l1004 + goto l1007 } position++ - goto l1003 - l1004: - position, tokenIndex = position1004, tokenIndex1004 + goto l1006 + l1007: + position, tokenIndex = position1007, tokenIndex1007 } if buffer[position] != rune(')') { - goto l895 + goto l898 } position++ } - l926: + l929: { - position1005, tokenIndex1005 := position, tokenIndex + position1008, tokenIndex1008 := position, tokenIndex { - position1006, tokenIndex1006 := position, tokenIndex + position1009, tokenIndex1009 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l1007 + goto l1010 } position++ - goto l1006 - l1007: - position, tokenIndex = position1006, tokenIndex1006 + goto l1009 + l1010: + position, tokenIndex = position1009, tokenIndex1009 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l1005 + goto l1008 } position++ } - l1006: - goto l895 - l1005: - position, tokenIndex = position1005, tokenIndex1005 + l1009: + goto l898 + l1008: + position, tokenIndex = position1008, tokenIndex1008 } } - l901: - add(ruleOffset, position896) + l904: + add(ruleOffset, position899) } - memoize(57, position895, tokenIndex895, true) return true - l895: - memoize(57, position895, tokenIndex895, false) - position, tokenIndex = position895, tokenIndex895 + l898: + position, tokenIndex = position898, tokenIndex898 return false }, /* 58 Section <- <([a-z] / [A-Z] / '@')+> */ func() bool { - if memoized, ok := memoization[memoKey{58, position}]; ok { - return memoizedResult(memoized) - } - position1008, tokenIndex1008 := position, tokenIndex + position1011, tokenIndex1011 := position, tokenIndex { - position1009 := position + position1012 := position { - position1012, tokenIndex1012 := position, tokenIndex + position1015, tokenIndex1015 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l1013 + goto l1016 } position++ - goto l1012 - l1013: - position, tokenIndex = position1012, tokenIndex1012 + goto l1015 + l1016: + position, tokenIndex = position1015, tokenIndex1015 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l1014 + goto l1017 } position++ - goto l1012 - l1014: - position, tokenIndex = position1012, tokenIndex1012 + goto l1015 + l1017: + position, tokenIndex = position1015, tokenIndex1015 if buffer[position] != rune('@') { - goto l1008 + goto l1011 } position++ } - l1012: - l1010: + l1015: + l1013: { - position1011, tokenIndex1011 := position, tokenIndex + position1014, tokenIndex1014 := position, tokenIndex { - position1015, tokenIndex1015 := position, tokenIndex + position1018, tokenIndex1018 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l1016 + goto l1019 } position++ - goto l1015 - l1016: - position, tokenIndex = position1015, tokenIndex1015 + goto l1018 + l1019: + position, tokenIndex = position1018, tokenIndex1018 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l1017 + goto l1020 } position++ - goto l1015 - l1017: - position, tokenIndex = position1015, tokenIndex1015 + goto l1018 + l1020: + position, tokenIndex = position1018, tokenIndex1018 if buffer[position] != rune('@') { - goto l1011 + goto l1014 } position++ } - l1015: - goto l1010 - l1011: - position, tokenIndex = position1011, tokenIndex1011 + l1018: + goto l1013 + l1014: + position, tokenIndex = position1014, tokenIndex1014 } - add(ruleSection, position1009) + add(ruleSection, position1012) } - memoize(58, position1008, tokenIndex1008, true) return true - l1008: - memoize(58, position1008, tokenIndex1008, false) - position, tokenIndex = position1008, tokenIndex1008 + l1011: + position, tokenIndex = position1011, tokenIndex1011 return false }, /* 59 SegmentRegister <- <('%' ([c-g] / 's') ('s' ':'))> */ func() bool { - if memoized, ok := memoization[memoKey{59, position}]; ok { - return memoizedResult(memoized) - } - position1018, tokenIndex1018 := position, tokenIndex + position1021, tokenIndex1021 := position, tokenIndex { - position1019 := position + position1022 := position if buffer[position] != rune('%') { - goto l1018 + goto l1021 } position++ { - position1020, tokenIndex1020 := position, tokenIndex + position1023, tokenIndex1023 := position, tokenIndex if c := buffer[position]; c < rune('c') || c > rune('g') { - goto l1021 + goto l1024 } position++ - goto l1020 - l1021: - position, tokenIndex = position1020, tokenIndex1020 + goto l1023 + l1024: + position, tokenIndex = position1023, tokenIndex1023 if buffer[position] != rune('s') { - goto l1018 + goto l1021 } position++ } - l1020: + l1023: if buffer[position] != rune('s') { - goto l1018 + goto l1021 } position++ if buffer[position] != rune(':') { - goto l1018 + goto l1021 } position++ - add(ruleSegmentRegister, position1019) + add(ruleSegmentRegister, position1022) } - memoize(59, position1018, tokenIndex1018, true) return true - l1018: - memoize(59, position1018, tokenIndex1018, false) - position, tokenIndex = position1018, tokenIndex1018 + l1021: + position, tokenIndex = position1021, tokenIndex1021 return false }, }