From a71932a0068052b4d9fa2f49c8b64c2ff1f4d814 Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Thu, 24 Aug 2023 14:23:25 -0400 Subject: [PATCH 1/4] Also suppress OPENSSL_LINUX for nanolibc Where the Trusty and Android baremetal cases are unambiguously mistakes in their respective builds, nanolibc is a bit more interesting. nanolibc sometimes build for a non-Linux target (which should not define __linux__), but also sometimes build for Linux. Although technically running in Linux userspace, this lacks all the libc APIs we'd normally expect on Linux, so we treat it as a non-Linux target. Change-Id: Id36f6bbc6e790d96e31193532717630a86f124b8 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/62685 Commit-Queue: David Benjamin Commit-Queue: Adam Langley Reviewed-by: Adam Langley Auto-Submit: David Benjamin (cherry picked from commit dc1c2f0db6c8b61ff16a82f2b9bbfda7d85e3e7c) --- include/openssl/target.h | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/include/openssl/target.h b/include/openssl/target.h index 942d40eef8..f63f235595 100644 --- a/include/openssl/target.h +++ b/include/openssl/target.h @@ -82,13 +82,18 @@ #define OPENSSL_WINDOWS #endif -// Trusty and Android baremetal aren't't Linux but currently define __linux__. -// As a workaround, we exclude them here. +// Trusty and Android baremetal aren't Linux but currently define __linux__. +// As a workaround, we exclude them here. We also exclude nanolibc. nanolibc +// sometimes build for a non-Linux target (which should not define __linux__), +// but also sometimes build for Linux. Although technically running in Linux +// userspace, this lacks all the libc APIs we'd normally expect on Linux, so we +// treat it as a non-Linux target. // // TODO(b/169780122): Remove this workaround once Trusty no longer defines it. // TODO(b/291101350): Remove this workaround once Android baremetal no longer // defines it. -#if defined(__linux__) && !defined(__TRUSTY__) && !defined(ANDROID_BAREMETAL) +#if defined(__linux__) && !defined(__TRUSTY__) && \ + !defined(ANDROID_BAREMETAL) && !defined(OPENSSL_NANOLIBC) #define OPENSSL_LINUX #endif From c12cc4045a4665afc06247f314a2ee0eebc32b7c Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Mon, 28 Aug 2023 16:27:36 -0400 Subject: [PATCH 2/4] Save trampoline state in unwind tests more straightforwardly Rather than sample it from the UnwindCursor, we can just save it immediately before starting the test. Change-Id: Ica1eaa215755b0b772eaa08e03c5885aacec4f70 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/62866 Auto-Submit: David Benjamin Reviewed-by: Adam Langley Commit-Queue: Adam Langley (cherry picked from commit 79532afc453d5400be886ee7ba9ecb92451a573e) --- crypto/test/abi_test.cc | 86 +++++++++++++++++++++-------------------- 1 file changed, 45 insertions(+), 41 deletions(-) diff --git a/crypto/test/abi_test.cc b/crypto/test/abi_test.cc index d9fcde5c19..24cec427db 100644 --- a/crypto/test/abi_test.cc +++ b/crypto/test/abi_test.cc @@ -88,43 +88,6 @@ static void ForEachMismatch(const CallerState &a, const CallerState &b, LOOP_CALLER_STATE_REGISTERS() #undef CALLER_STATE_REGISTER } - -// ReadUnwindResult adds the results of the most recent unwind test to |out|. -static void ReadUnwindResult(Result *out); - -crypto_word_t RunTrampoline(Result *out, crypto_word_t func, - const crypto_word_t *argv, size_t argc, - bool unwind) { - CallerState state; - RAND_bytes(reinterpret_cast(&state), sizeof(state)); - - unwind &= g_unwind_tests_enabled; - CallerState state2 = state; - crypto_word_t ret = abi_test_trampoline(func, &state2, argv, argc, unwind); -#if defined(OPENSSL_X86_64) || defined(OPENSSL_X86) - // Query and clear the direction flag early, so negative tests do not - // interfere with |malloc|. - bool direction_flag = abi_test_get_and_clear_direction_flag(); -#endif // OPENSSL_X86_64 || OPENSSL_X86 - - *out = Result(); - ForEachMismatch(state, state2, [&](const char *reg) { - out->errors.push_back(std::string(reg) + " was not restored after return"); - }); -#if defined(OPENSSL_X86_64) || defined(OPENSSL_X86) - // Linux and Windows ABIs for x86 require the direction flag be cleared on - // return. (Some OpenSSL assembly preserves it, which is stronger, but we only - // require what is specified by the ABI so |CHECK_ABI| works with C compiler - // output.) - if (direction_flag) { - out->errors.emplace_back("Direction flag set after return"); - } -#endif // OPENSSL_X86_64 || OPENSSL_X86 - if (unwind) { - ReadUnwindResult(out); - } - return ret; -} #endif // SUPPORTS_ABI_TEST #if defined(SUPPORTS_UNWIND_TEST) @@ -473,8 +436,8 @@ static bool g_in_trampoline = false; // g_unwind_function_done, if |g_in_trampoline| is true, is whether the function // under test has returned. It is undefined otherwise. static bool g_unwind_function_done; -// g_trampoline_state, if |g_in_trampoline| is true, is the state the function -// under test must preserve. It is undefined otherwise. +// g_trampoline_state, during an unwind-enabled ABI test, is the state the +// function under test must preserve. It is undefined otherwise. static CallerState g_trampoline_state; // g_trampoline_sp, if |g_in_trampoline| is true, is the stack pointer of the // trampoline frame. It is undefined otherwise. @@ -535,8 +498,6 @@ static void CheckUnwind(UnwindCursor *cursor) { g_in_trampoline = true; g_unwind_function_done = false; g_trampoline_sp = sp; - g_trampoline_state = cursor->GetCallerState().ValueOrDie( - "Error getting initial caller state"); } else { if (sp == g_trampoline_sp || g_unwind_function_done) { // |g_unwind_function_done| should imply |sp| is |g_trampoline_sp|, but @@ -607,6 +568,7 @@ static void CheckUnwind(UnwindCursor *cursor) { } } +// ReadUnwindResult adds the results of the most recent unwind test to |out|. static void ReadUnwindResult(Result *out) { for (size_t i = 0; i < g_num_unwind_errors; i++) { #if defined(OPENSSL_WINDOWS) @@ -783,6 +745,48 @@ static void EnableUnwindTestsImpl() {} #endif // SUPPORTS_UNWIND_TEST +#if defined(SUPPORTS_ABI_TEST) +crypto_word_t RunTrampoline(Result *out, crypto_word_t func, + const crypto_word_t *argv, size_t argc, + bool unwind) { + CallerState state; + RAND_bytes(reinterpret_cast(&state), sizeof(state)); + + unwind &= g_unwind_tests_enabled; +#if defined(SUPPORTS_UNWIND_TEST) + if (unwind) { + // Save the caller state for the unwind tester to check for. + g_trampoline_state = state; + } +#endif + CallerState state2 = state; + crypto_word_t ret = abi_test_trampoline(func, &state2, argv, argc, unwind); +#if defined(OPENSSL_X86_64) || defined(OPENSSL_X86) + // Query and clear the direction flag early, so negative tests do not + // interfere with |malloc|. + bool direction_flag = abi_test_get_and_clear_direction_flag(); +#endif // OPENSSL_X86_64 || OPENSSL_X86 + + *out = Result(); + ForEachMismatch(state, state2, [&](const char *reg) { + out->errors.push_back(std::string(reg) + " was not restored after return"); + }); +#if defined(OPENSSL_X86_64) || defined(OPENSSL_X86) + // Linux and Windows ABIs for x86 require the direction flag be cleared on + // return. (Some OpenSSL assembly preserves it, which is stronger, but we only + // require what is specified by the ABI so |CHECK_ABI| works with C compiler + // output.) + if (direction_flag) { + out->errors.emplace_back("Direction flag set after return"); + } +#endif // OPENSSL_X86_64 || OPENSSL_X86 + if (unwind) { + ReadUnwindResult(out); + } + return ret; +} +#endif // SUPPORTS_ABI_TEST + } // namespace internal void EnableUnwindTests() { internal::EnableUnwindTestsImpl(); } From ee478f230dbb28f4e7b963b9b97c9dcc53477f20 Mon Sep 17 00:00:00 2001 From: Shu-Chun Weng Date: Thu, 17 Aug 2023 15:30:07 -0700 Subject: [PATCH 3/4] delocate: accept more directive expressions For example, openssl/asm_base.h expands to include the line .long ((1 << 0) | (1 << 1)); when BTI and PAC are enabled. Change-Id: I07208e0430757721e97b88c706672375f8f58f1f Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/62525 Reviewed-by: David Benjamin Commit-Queue: David Benjamin (cherry picked from commit ab45f42e8e7340df605f378ee03c4800db2709f3) --- util/fipstools/delocate/delocate.go | 71 +- util/fipstools/delocate/delocate.peg | 16 +- util/fipstools/delocate/delocate.peg.go | 4924 ++++++++--------- .../delocate/testdata/aarch64-Basic/out.s | 8 + .../testdata/x86_64-LabelRewrite/out.s | 2 +- 5 files changed, 2498 insertions(+), 2523 deletions(-) diff --git a/util/fipstools/delocate/delocate.go b/util/fipstools/delocate/delocate.go index f8573e3055..6c63c6cc26 100644 --- a/util/fipstools/delocate/delocate.go +++ b/util/fipstools/delocate/delocate.go @@ -300,6 +300,47 @@ func (d *delocation) processDirective(statement, directive *node32) (*node32, er return statement, nil } +func (d *delocation) processSymbolExpr(expr *node32, b *strings.Builder) bool { + changed := false + assertNodeType(expr, ruleSymbolExpr) + + for expr != nil { + atom := expr.up + assertNodeType(atom, ruleSymbolAtom) + + for term := atom.up; term != nil; term = skipWS(term.next) { + if term.pegRule == ruleSymbolExpr { + changed = d.processSymbolExpr(term, b) || changed + continue + } + + if term.pegRule != ruleLocalSymbol { + b.WriteString(d.contents(term)) + continue + } + + oldSymbol := d.contents(term) + newSymbol := d.mapLocalSymbol(oldSymbol) + if newSymbol != oldSymbol { + changed = true + } + + b.WriteString(newSymbol) + } + + next := skipWS(atom.next) + if next == nil { + break + } + assertNodeType(next, ruleSymbolOperator) + b.WriteString(d.contents(next)) + next = skipWS(next.next) + assertNodeType(next, ruleSymbolExpr) + expr = next + } + return changed +} + func (d *delocation) processLabelContainingDirective(statement, directive *node32) (*node32, error) { // The symbols within directives need to be mapped so that local // symbols in two different .s inputs don't collide. @@ -317,24 +358,12 @@ func (d *delocation) processLabelContainingDirective(statement, directive *node3 for node = skipWS(node.up); node != nil; node = skipWS(node.next) { assertNodeType(node, ruleSymbolArg) arg := node.up - var mapped string + assertNodeType(arg, ruleSymbolExpr) - for term := arg; term != nil; term = term.next { - if term.pegRule != ruleLocalSymbol { - mapped += d.contents(term) - continue - } - - oldSymbol := d.contents(term) - newSymbol := d.mapLocalSymbol(oldSymbol) - if newSymbol != oldSymbol { - changed = true - } - - mapped += newSymbol - } + var b strings.Builder + changed = d.processSymbolExpr(arg, &b) || changed - args = append(args, mapped) + args = append(args, b.String()) } if !changed { @@ -1722,6 +1751,16 @@ func writeAarch64Function(w stringWriter, funcName string, writeContents func(st w.WriteString(".type " + funcName + ", @function\n") w.WriteString(funcName + ":\n") w.WriteString(".cfi_startproc\n") + // We insert a landing pad (`bti c` instruction) unconditionally at the beginning of + // every generated function so that they can be called indirectly (with `blr` or + // `br x16/x17`). The instruction is encoded in the HINT space as `hint #34` and is + // a no-op on machines or program states not supporting BTI (Branch Target Identification). + // None of the generated function bodies call other functions (with bl or blr), so we only + // insert a landing pad instead of signing and validating $lr with `paciasp` and `autiasp`. + // Normally we would also generate a .note.gnu.property section to annotate the assembly + // file as BTI-compatible, but if the input assembly files are BTI-compatible, they should + // already have those sections so there is no need to add an extra one ourselves. + w.WriteString("\thint #34 // bti c\n") writeContents(w) w.WriteString(".cfi_endproc\n") w.WriteString(".size " + funcName + ", .-" + funcName + "\n") diff --git a/util/fipstools/delocate/delocate.peg b/util/fipstools/delocate/delocate.peg index 8900af05cc..74f0d7c6c3 100644 --- a/util/fipstools/delocate/delocate.peg +++ b/util/fipstools/delocate/delocate.peg @@ -47,18 +47,14 @@ QuotedText <- (EscapedChar / [^"])* LabelContainingDirective <- LabelContainingDirectiveName WS SymbolArgs LabelContainingDirectiveName <- ".xword" / ".word" / ".long" / ".set" / ".byte" / ".8byte" / ".4byte" / ".quad" / ".tc" / ".localentry" / ".size" / ".type" / ".uleb128" / ".sleb128" SymbolArgs <- SymbolArg ((WS? ',' WS?) SymbolArg)* -SymbolShift <- ('<<' / '>>') WS? [0-9]+ -SymbolArg <- (OpenParen WS?)? ( - Offset / - SymbolType / - (Offset / LocalSymbol / SymbolName / Dot) (WS? Operator WS? (Offset / LocalSymbol / SymbolName))* / - LocalLabelRef WS? Operator WS? LocalLabelRef / - LocalSymbol TCMarker? / - SymbolName Offset / - SymbolName TCMarker?) - (WS? CloseParen)? (WS? SymbolShift)? +SymbolArg <- SymbolExpr +SymbolExpr <- SymbolAtom (WS? SymbolOperator WS? SymbolExpr)? +SymbolAtom <- Offset / SymbolType / LocalSymbol TCMarker? / SymbolName Offset / SymbolName TCMarker? / Dot / OpenParen WS? SymbolExpr WS? CloseParen +SymbolOperator <- '+' / '-' / '|' / '<<' / '>>' + OpenParen <- '(' CloseParen <- ')' + SymbolType <- [@%] ('function' / 'object') Dot <- '.' TCMarker <- '[TC]' diff --git a/util/fipstools/delocate/delocate.peg.go b/util/fipstools/delocate/delocate.peg.go index 8a80b35661..3d8ecf6c38 100644 --- a/util/fipstools/delocate/delocate.peg.go +++ b/util/fipstools/delocate/delocate.peg.go @@ -1,6 +1,6 @@ package main -// Code generated by /home/ec2-user/go/bin/peg ./delocate.peg DO NOT EDIT. +// Code generated by /home/ec2-user/go/bin/peg delocate.peg DO NOT EDIT. import ( "fmt" @@ -33,8 +33,10 @@ const ( ruleLabelContainingDirective ruleLabelContainingDirectiveName ruleSymbolArgs - ruleSymbolShift ruleSymbolArg + ruleSymbolExpr + ruleSymbolAtom + ruleSymbolOperator ruleOpenParen ruleCloseParen ruleSymbolType @@ -92,8 +94,10 @@ var rul3s = [...]string{ "LabelContainingDirective", "LabelContainingDirectiveName", "SymbolArgs", - "SymbolShift", "SymbolArg", + "SymbolExpr", + "SymbolAtom", + "SymbolOperator", "OpenParen", "CloseParen", "SymbolType", @@ -246,7 +250,7 @@ func (t *tokens32) Tokens() []token32 { type Asm struct { Buffer string buffer []rune - rules [56]func() bool + rules [58]func() bool parse func(rule ...int) error reset func() Pretty bool @@ -2515,37 +2519,55 @@ func (p *Asm) Init(options ...func(*Asm) error) error { position, tokenIndex = position283, tokenIndex283 return false }, - /* 15 SymbolShift <- <((('<' '<') / ('>' '>')) WS? [0-9]+)> */ + /* 15 SymbolArg <- */ func() bool { position291, tokenIndex291 := position, tokenIndex { position292 := position - { - position293, tokenIndex293 := position, tokenIndex - if buffer[position] != rune('<') { - goto l294 - } - position++ - if buffer[position] != rune('<') { - goto l294 - } - position++ + if !_rules[ruleSymbolExpr]() { + goto l291 + } + add(ruleSymbolArg, position292) + } + return true + l291: + position, tokenIndex = position291, tokenIndex291 + return false + }, + /* 16 SymbolExpr <- <(SymbolAtom (WS? SymbolOperator WS? SymbolExpr)?)> */ + func() bool { + position293, tokenIndex293 := position, tokenIndex + { + position294 := position + if !_rules[ruleSymbolAtom]() { goto l293 - l294: - position, tokenIndex = position293, tokenIndex293 - if buffer[position] != rune('>') { - goto l291 - } - position++ - if buffer[position] != rune('>') { - goto l291 - } - position++ } - l293: { position295, tokenIndex295 := position, tokenIndex - if !_rules[ruleWS]() { + { + position297, tokenIndex297 := position, tokenIndex + if !_rules[ruleWS]() { + goto l297 + } + goto l298 + l297: + position, tokenIndex = position297, tokenIndex297 + } + l298: + if !_rules[ruleSymbolOperator]() { + goto l295 + } + { + position299, tokenIndex299 := position, tokenIndex + if !_rules[ruleWS]() { + goto l299 + } + goto l300 + l299: + position, tokenIndex = position299, tokenIndex299 + } + l300: + if !_rules[ruleSymbolExpr]() { goto l295 } goto l296 @@ -2553,4849 +2575,4759 @@ func (p *Asm) Init(options ...func(*Asm) error) error { position, tokenIndex = position295, tokenIndex295 } l296: - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l291 - } - position++ - l297: - { - position298, tokenIndex298 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l298 - } - position++ - goto l297 - l298: - position, tokenIndex = position298, tokenIndex298 - } - add(ruleSymbolShift, position292) + add(ruleSymbolExpr, position294) } return true - l291: - position, tokenIndex = position291, tokenIndex291 + l293: + position, tokenIndex = position293, tokenIndex293 return false }, - /* 16 SymbolArg <- <((OpenParen WS?)? (Offset / SymbolType / ((Offset / LocalSymbol / SymbolName / Dot) (WS? Operator WS? (Offset / LocalSymbol / SymbolName))*) / (LocalLabelRef WS? Operator WS? LocalLabelRef) / (LocalSymbol TCMarker?) / (SymbolName Offset) / (SymbolName TCMarker?)) (WS? CloseParen)? (WS? SymbolShift)?)> */ + /* 17 SymbolAtom <- <(Offset / SymbolType / (LocalSymbol TCMarker?) / (SymbolName Offset) / (SymbolName TCMarker?) / Dot / (OpenParen WS? SymbolExpr WS? CloseParen))> */ func() bool { - position299, tokenIndex299 := position, tokenIndex + position301, tokenIndex301 := position, tokenIndex { - position300 := position + position302 := position { - position301, tokenIndex301 := position, tokenIndex - if !_rules[ruleOpenParen]() { - goto l301 - } - { - position303, tokenIndex303 := position, tokenIndex - if !_rules[ruleWS]() { - goto l303 - } + position303, tokenIndex303 := position, tokenIndex + if !_rules[ruleOffset]() { goto l304 - l303: - position, tokenIndex = position303, tokenIndex303 } + goto l303 l304: - goto l302 - l301: - position, tokenIndex = position301, tokenIndex301 - } - l302: - { - position305, tokenIndex305 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l306 - } - goto l305 - l306: - position, tokenIndex = position305, tokenIndex305 + position, tokenIndex = position303, tokenIndex303 if !_rules[ruleSymbolType]() { - goto l307 + goto l305 + } + goto l303 + l305: + position, tokenIndex = position303, tokenIndex303 + if !_rules[ruleLocalSymbol]() { + goto l306 } - goto l305 - l307: - position, tokenIndex = position305, tokenIndex305 { - position309, tokenIndex309 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l310 + position307, tokenIndex307 := position, tokenIndex + if !_rules[ruleTCMarker]() { + goto l307 } + goto l308 + l307: + position, tokenIndex = position307, tokenIndex307 + } + l308: + goto l303 + l306: + position, tokenIndex = position303, tokenIndex303 + if !_rules[ruleSymbolName]() { + goto l309 + } + if !_rules[ruleOffset]() { goto l309 - l310: - position, tokenIndex = position309, tokenIndex309 - if !_rules[ruleLocalSymbol]() { + } + goto l303 + l309: + position, tokenIndex = position303, tokenIndex303 + if !_rules[ruleSymbolName]() { + goto l310 + } + { + position311, tokenIndex311 := position, tokenIndex + if !_rules[ruleTCMarker]() { goto l311 } - goto l309 + goto l312 l311: - position, tokenIndex = position309, tokenIndex309 - if !_rules[ruleSymbolName]() { - goto l312 - } - goto l309 - l312: - position, tokenIndex = position309, tokenIndex309 - if !_rules[ruleDot]() { - goto l308 - } + position, tokenIndex = position311, tokenIndex311 } - l309: + l312: + goto l303 + l310: + position, tokenIndex = position303, tokenIndex303 + if !_rules[ruleDot]() { + goto l313 + } + goto l303 l313: + position, tokenIndex = position303, tokenIndex303 + if !_rules[ruleOpenParen]() { + goto l301 + } { position314, tokenIndex314 := position, tokenIndex - { - position315, tokenIndex315 := position, tokenIndex - if !_rules[ruleWS]() { - goto l315 - } - goto l316 - l315: - position, tokenIndex = position315, tokenIndex315 - } - l316: - if !_rules[ruleOperator]() { + if !_rules[ruleWS]() { goto l314 } - { - position317, tokenIndex317 := position, tokenIndex - if !_rules[ruleWS]() { - goto l317 - } - goto l318 - l317: - position, tokenIndex = position317, tokenIndex317 - } - l318: - { - position319, tokenIndex319 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l320 - } - goto l319 - l320: - position, tokenIndex = position319, tokenIndex319 - if !_rules[ruleLocalSymbol]() { - goto l321 - } - goto l319 - l321: - position, tokenIndex = position319, tokenIndex319 - if !_rules[ruleSymbolName]() { - goto l314 - } - } - l319: - goto l313 + goto l315 l314: position, tokenIndex = position314, tokenIndex314 } - goto l305 - l308: - position, tokenIndex = position305, tokenIndex305 - if !_rules[ruleLocalLabelRef]() { - goto l322 + l315: + if !_rules[ruleSymbolExpr]() { + goto l301 } { - position323, tokenIndex323 := position, tokenIndex + position316, tokenIndex316 := position, tokenIndex if !_rules[ruleWS]() { - goto l323 + goto l316 } - goto l324 - l323: - position, tokenIndex = position323, tokenIndex323 + goto l317 + l316: + position, tokenIndex = position316, tokenIndex316 } - l324: - if !_rules[ruleOperator]() { - goto l322 + l317: + if !_rules[ruleCloseParen]() { + goto l301 } - { - position325, tokenIndex325 := position, tokenIndex - if !_rules[ruleWS]() { - goto l325 - } - goto l326 - l325: - position, tokenIndex = position325, tokenIndex325 + } + l303: + add(ruleSymbolAtom, position302) + } + return true + l301: + position, tokenIndex = position301, tokenIndex301 + return false + }, + /* 18 SymbolOperator <- <('+' / '-' / '|' / ('<' '<') / ('>' '>'))> */ + func() bool { + position318, tokenIndex318 := position, tokenIndex + { + position319 := position + { + position320, tokenIndex320 := position, tokenIndex + if buffer[position] != rune('+') { + goto l321 } - l326: - if !_rules[ruleLocalLabelRef]() { + position++ + goto l320 + l321: + position, tokenIndex = position320, tokenIndex320 + if buffer[position] != rune('-') { goto l322 } - goto l305 + position++ + goto l320 l322: - position, tokenIndex = position305, tokenIndex305 - if !_rules[ruleLocalSymbol]() { - goto l327 - } - { - position328, tokenIndex328 := position, tokenIndex - if !_rules[ruleTCMarker]() { - goto l328 - } - goto l329 - l328: - position, tokenIndex = position328, tokenIndex328 - } - l329: - goto l305 - l327: - position, tokenIndex = position305, tokenIndex305 - if !_rules[ruleSymbolName]() { - goto l330 - } - if !_rules[ruleOffset]() { - goto l330 + position, tokenIndex = position320, tokenIndex320 + if buffer[position] != rune('|') { + goto l323 } - goto l305 - l330: - position, tokenIndex = position305, tokenIndex305 - if !_rules[ruleSymbolName]() { - goto l299 - } - { - position331, tokenIndex331 := position, tokenIndex - if !_rules[ruleTCMarker]() { - goto l331 - } - goto l332 - l331: - position, tokenIndex = position331, tokenIndex331 - } - l332: - } - l305: - { - position333, tokenIndex333 := position, tokenIndex - { - position335, tokenIndex335 := position, tokenIndex - if !_rules[ruleWS]() { - goto l335 - } - goto l336 - l335: - position, tokenIndex = position335, tokenIndex335 + position++ + goto l320 + l323: + position, tokenIndex = position320, tokenIndex320 + if buffer[position] != rune('<') { + goto l324 } - l336: - if !_rules[ruleCloseParen]() { - goto l333 + position++ + if buffer[position] != rune('<') { + goto l324 } - goto l334 - l333: - position, tokenIndex = position333, tokenIndex333 - } - l334: - { - position337, tokenIndex337 := position, tokenIndex - { - position339, tokenIndex339 := position, tokenIndex - if !_rules[ruleWS]() { - goto l339 - } - goto l340 - l339: - position, tokenIndex = position339, tokenIndex339 + position++ + goto l320 + l324: + position, tokenIndex = position320, tokenIndex320 + if buffer[position] != rune('>') { + goto l318 } - l340: - if !_rules[ruleSymbolShift]() { - goto l337 + position++ + if buffer[position] != rune('>') { + goto l318 } - goto l338 - l337: - position, tokenIndex = position337, tokenIndex337 + position++ } - l338: - add(ruleSymbolArg, position300) + l320: + add(ruleSymbolOperator, position319) } return true - l299: - position, tokenIndex = position299, tokenIndex299 + l318: + position, tokenIndex = position318, tokenIndex318 return false }, - /* 17 OpenParen <- <'('> */ + /* 19 OpenParen <- <'('> */ func() bool { - position341, tokenIndex341 := position, tokenIndex + position325, tokenIndex325 := position, tokenIndex { - position342 := position + position326 := position if buffer[position] != rune('(') { - goto l341 + goto l325 } position++ - add(ruleOpenParen, position342) + add(ruleOpenParen, position326) } return true - l341: - position, tokenIndex = position341, tokenIndex341 + l325: + position, tokenIndex = position325, tokenIndex325 return false }, - /* 18 CloseParen <- <')'> */ + /* 20 CloseParen <- <')'> */ func() bool { - position343, tokenIndex343 := position, tokenIndex + position327, tokenIndex327 := position, tokenIndex { - position344 := position + position328 := position if buffer[position] != rune(')') { - goto l343 + goto l327 } position++ - add(ruleCloseParen, position344) + add(ruleCloseParen, position328) } return true - l343: - position, tokenIndex = position343, tokenIndex343 + l327: + position, tokenIndex = position327, tokenIndex327 return false }, - /* 19 SymbolType <- <(('@' / '%') (('f' 'u' 'n' 'c' 't' 'i' 'o' 'n') / ('o' 'b' 'j' 'e' 'c' 't')))> */ + /* 21 SymbolType <- <(('@' / '%') (('f' 'u' 'n' 'c' 't' 'i' 'o' 'n') / ('o' 'b' 'j' 'e' 'c' 't')))> */ func() bool { - position345, tokenIndex345 := position, tokenIndex + position329, tokenIndex329 := position, tokenIndex { - position346 := position + position330 := position { - position347, tokenIndex347 := position, tokenIndex + position331, tokenIndex331 := position, tokenIndex if buffer[position] != rune('@') { - goto l348 + goto l332 } position++ - goto l347 - l348: - position, tokenIndex = position347, tokenIndex347 + goto l331 + l332: + position, tokenIndex = position331, tokenIndex331 if buffer[position] != rune('%') { - goto l345 + goto l329 } position++ } - l347: + l331: { - position349, tokenIndex349 := position, tokenIndex + position333, tokenIndex333 := position, tokenIndex if buffer[position] != rune('f') { - goto l350 + goto l334 } position++ if buffer[position] != rune('u') { - goto l350 + goto l334 } position++ if buffer[position] != rune('n') { - goto l350 + goto l334 } position++ if buffer[position] != rune('c') { - goto l350 + goto l334 } position++ if buffer[position] != rune('t') { - goto l350 + goto l334 } position++ if buffer[position] != rune('i') { - goto l350 + goto l334 } position++ if buffer[position] != rune('o') { - goto l350 + goto l334 } position++ if buffer[position] != rune('n') { - goto l350 + goto l334 } position++ - goto l349 - l350: - position, tokenIndex = position349, tokenIndex349 + goto l333 + l334: + position, tokenIndex = position333, tokenIndex333 if buffer[position] != rune('o') { - goto l345 + goto l329 } position++ if buffer[position] != rune('b') { - goto l345 + goto l329 } position++ if buffer[position] != rune('j') { - goto l345 + goto l329 } position++ if buffer[position] != rune('e') { - goto l345 + goto l329 } position++ if buffer[position] != rune('c') { - goto l345 + goto l329 } position++ if buffer[position] != rune('t') { - goto l345 + goto l329 } position++ } - l349: - add(ruleSymbolType, position346) + l333: + add(ruleSymbolType, position330) } return true - l345: - position, tokenIndex = position345, tokenIndex345 + l329: + position, tokenIndex = position329, tokenIndex329 return false }, - /* 20 Dot <- <'.'> */ + /* 22 Dot <- <'.'> */ func() bool { - position351, tokenIndex351 := position, tokenIndex + position335, tokenIndex335 := position, tokenIndex { - position352 := position + position336 := position if buffer[position] != rune('.') { - goto l351 + goto l335 } position++ - add(ruleDot, position352) + add(ruleDot, position336) } return true - l351: - position, tokenIndex = position351, tokenIndex351 + l335: + position, tokenIndex = position335, tokenIndex335 return false }, - /* 21 TCMarker <- <('[' 'T' 'C' ']')> */ + /* 23 TCMarker <- <('[' 'T' 'C' ']')> */ func() bool { - position353, tokenIndex353 := position, tokenIndex + position337, tokenIndex337 := position, tokenIndex { - position354 := position + position338 := position if buffer[position] != rune('[') { - goto l353 + goto l337 } position++ if buffer[position] != rune('T') { - goto l353 + goto l337 } position++ if buffer[position] != rune('C') { - goto l353 + goto l337 } position++ if buffer[position] != rune(']') { - goto l353 + goto l337 } position++ - add(ruleTCMarker, position354) + add(ruleTCMarker, position338) } return true - l353: - position, tokenIndex = position353, tokenIndex353 + l337: + position, tokenIndex = position337, tokenIndex337 return false }, - /* 22 EscapedChar <- <('\\' .)> */ + /* 24 EscapedChar <- <('\\' .)> */ func() bool { - position355, tokenIndex355 := position, tokenIndex + position339, tokenIndex339 := position, tokenIndex { - position356 := position + position340 := position if buffer[position] != rune('\\') { - goto l355 + goto l339 } position++ if !matchDot() { - goto l355 + goto l339 } - add(ruleEscapedChar, position356) + add(ruleEscapedChar, position340) } return true - l355: - position, tokenIndex = position355, tokenIndex355 + l339: + position, tokenIndex = position339, tokenIndex339 return false }, - /* 23 WS <- <(' ' / '\t')+> */ + /* 25 WS <- <(' ' / '\t')+> */ func() bool { - position357, tokenIndex357 := position, tokenIndex + position341, tokenIndex341 := position, tokenIndex { - position358 := position + position342 := position { - position361, tokenIndex361 := position, tokenIndex + position345, tokenIndex345 := position, tokenIndex if buffer[position] != rune(' ') { - goto l362 + goto l346 } position++ - goto l361 - l362: - position, tokenIndex = position361, tokenIndex361 + goto l345 + l346: + position, tokenIndex = position345, tokenIndex345 if buffer[position] != rune('\t') { - goto l357 + goto l341 } position++ } - l361: - l359: + l345: + l343: { - position360, tokenIndex360 := position, tokenIndex + position344, tokenIndex344 := position, tokenIndex { - position363, tokenIndex363 := position, tokenIndex + position347, tokenIndex347 := position, tokenIndex if buffer[position] != rune(' ') { - goto l364 + goto l348 } position++ - goto l363 - l364: - position, tokenIndex = position363, tokenIndex363 + goto l347 + l348: + position, tokenIndex = position347, tokenIndex347 if buffer[position] != rune('\t') { - goto l360 + goto l344 } position++ } - l363: - goto l359 - l360: - position, tokenIndex = position360, tokenIndex360 + l347: + goto l343 + l344: + position, tokenIndex = position344, tokenIndex344 } - add(ruleWS, position358) + add(ruleWS, position342) } return true - l357: - position, tokenIndex = position357, tokenIndex357 + l341: + position, tokenIndex = position341, tokenIndex341 return false }, - /* 24 Comment <- <((('/' '/') / '#') (!'\n' .)*)> */ + /* 26 Comment <- <((('/' '/') / '#') (!'\n' .)*)> */ func() bool { - position365, tokenIndex365 := position, tokenIndex + position349, tokenIndex349 := position, tokenIndex { - position366 := position + position350 := position { - position367, tokenIndex367 := position, tokenIndex + position351, tokenIndex351 := position, tokenIndex if buffer[position] != rune('/') { - goto l368 + goto l352 } position++ if buffer[position] != rune('/') { - goto l368 + goto l352 } position++ - goto l367 - l368: - position, tokenIndex = position367, tokenIndex367 + goto l351 + l352: + position, tokenIndex = position351, tokenIndex351 if buffer[position] != rune('#') { - goto l365 + goto l349 } position++ } - l367: - l369: + l351: + l353: { - position370, tokenIndex370 := position, tokenIndex + position354, tokenIndex354 := position, tokenIndex { - position371, tokenIndex371 := position, tokenIndex + position355, tokenIndex355 := position, tokenIndex if buffer[position] != rune('\n') { - goto l371 + goto l355 } position++ - goto l370 - l371: - position, tokenIndex = position371, tokenIndex371 + goto l354 + l355: + position, tokenIndex = position355, tokenIndex355 } if !matchDot() { - goto l370 + goto l354 } - goto l369 - l370: - position, tokenIndex = position370, tokenIndex370 + goto l353 + l354: + position, tokenIndex = position354, tokenIndex354 } - add(ruleComment, position366) + add(ruleComment, position350) } return true - l365: - position, tokenIndex = position365, tokenIndex365 + l349: + position, tokenIndex = position349, tokenIndex349 return false }, - /* 25 Label <- <((LocalSymbol / LocalLabel / SymbolName) ':')> */ + /* 27 Label <- <((LocalSymbol / LocalLabel / SymbolName) ':')> */ func() bool { - position372, tokenIndex372 := position, tokenIndex + position356, tokenIndex356 := position, tokenIndex { - position373 := position + position357 := position { - position374, tokenIndex374 := position, tokenIndex + position358, tokenIndex358 := position, tokenIndex if !_rules[ruleLocalSymbol]() { - goto l375 + goto l359 } - goto l374 - l375: - position, tokenIndex = position374, tokenIndex374 + goto l358 + l359: + position, tokenIndex = position358, tokenIndex358 if !_rules[ruleLocalLabel]() { - goto l376 + goto l360 } - goto l374 - l376: - position, tokenIndex = position374, tokenIndex374 + goto l358 + l360: + position, tokenIndex = position358, tokenIndex358 if !_rules[ruleSymbolName]() { - goto l372 + goto l356 } } - l374: + l358: if buffer[position] != rune(':') { - goto l372 + goto l356 } position++ - add(ruleLabel, position373) + add(ruleLabel, position357) } return true - l372: - position, tokenIndex = position372, tokenIndex372 + l356: + position, tokenIndex = position356, tokenIndex356 return false }, - /* 26 SymbolName <- <(([a-z] / [A-Z] / '.' / '_') ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]) / '$' / '_')*)> */ + /* 28 SymbolName <- <(([a-z] / [A-Z] / '.' / '_') ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]) / '$' / '_')*)> */ func() bool { - position377, tokenIndex377 := position, tokenIndex + position361, tokenIndex361 := position, tokenIndex { - position378 := position + position362 := position { - position379, tokenIndex379 := position, tokenIndex + position363, tokenIndex363 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l380 + goto l364 } position++ - goto l379 - l380: - position, tokenIndex = position379, tokenIndex379 + goto l363 + l364: + position, tokenIndex = position363, tokenIndex363 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l381 + goto l365 } position++ - goto l379 - l381: - position, tokenIndex = position379, tokenIndex379 + goto l363 + l365: + position, tokenIndex = position363, tokenIndex363 if buffer[position] != rune('.') { - goto l382 + goto l366 } position++ - goto l379 - l382: - position, tokenIndex = position379, tokenIndex379 + goto l363 + l366: + position, tokenIndex = position363, tokenIndex363 if buffer[position] != rune('_') { - goto l377 + goto l361 } position++ } - l379: - l383: + l363: + l367: { - position384, tokenIndex384 := position, tokenIndex + position368, tokenIndex368 := position, tokenIndex { - position385, tokenIndex385 := position, tokenIndex + position369, tokenIndex369 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l386 + goto l370 } position++ - goto l385 - l386: - position, tokenIndex = position385, tokenIndex385 + goto l369 + l370: + position, tokenIndex = position369, tokenIndex369 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l387 + goto l371 } position++ - goto l385 - l387: - position, tokenIndex = position385, tokenIndex385 + goto l369 + l371: + position, tokenIndex = position369, tokenIndex369 if buffer[position] != rune('.') { - goto l388 + goto l372 } position++ - goto l385 - l388: - position, tokenIndex = position385, tokenIndex385 + goto l369 + l372: + position, tokenIndex = position369, tokenIndex369 { - position390, tokenIndex390 := position, tokenIndex + position374, tokenIndex374 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l391 + goto l375 } position++ - goto l390 - l391: - position, tokenIndex = position390, tokenIndex390 + goto l374 + l375: + position, tokenIndex = position374, tokenIndex374 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l389 + goto l373 } position++ } - l390: - goto l385 - l389: - position, tokenIndex = position385, tokenIndex385 + l374: + goto l369 + l373: + position, tokenIndex = position369, tokenIndex369 if buffer[position] != rune('$') { - goto l392 + goto l376 } position++ - goto l385 - l392: - position, tokenIndex = position385, tokenIndex385 + goto l369 + l376: + position, tokenIndex = position369, tokenIndex369 if buffer[position] != rune('_') { - goto l384 + goto l368 } position++ } - l385: - goto l383 - l384: - position, tokenIndex = position384, tokenIndex384 + l369: + goto l367 + l368: + position, tokenIndex = position368, tokenIndex368 } - add(ruleSymbolName, position378) + add(ruleSymbolName, position362) } return true - l377: - position, tokenIndex = position377, tokenIndex377 + l361: + position, tokenIndex = position361, tokenIndex361 return false }, - /* 27 LocalSymbol <- <('.' 'L' ([a-z] / [A-Z] / ([a-z] / [A-Z]) / '.' / ([0-9] / [0-9]) / '$' / '_')+)> */ + /* 29 LocalSymbol <- <('.' 'L' ([a-z] / [A-Z] / ([a-z] / [A-Z]) / '.' / ([0-9] / [0-9]) / '$' / '_')+)> */ func() bool { - position393, tokenIndex393 := position, tokenIndex + position377, tokenIndex377 := position, tokenIndex { - position394 := position + position378 := position if buffer[position] != rune('.') { - goto l393 + goto l377 } position++ if buffer[position] != rune('L') { - goto l393 + goto l377 } position++ { - position397, tokenIndex397 := position, tokenIndex + position381, tokenIndex381 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l398 + goto l382 } position++ - goto l397 - l398: - position, tokenIndex = position397, tokenIndex397 + goto l381 + l382: + position, tokenIndex = position381, tokenIndex381 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l399 + goto l383 } position++ - goto l397 - l399: - position, tokenIndex = position397, tokenIndex397 + goto l381 + l383: + position, tokenIndex = position381, tokenIndex381 { - position401, tokenIndex401 := position, tokenIndex + position385, tokenIndex385 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l402 + goto l386 } position++ - goto l401 - l402: - position, tokenIndex = position401, tokenIndex401 + goto l385 + l386: + position, tokenIndex = position385, tokenIndex385 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l400 + goto l384 } position++ } - l401: - goto l397 - l400: - position, tokenIndex = position397, tokenIndex397 + l385: + goto l381 + l384: + position, tokenIndex = position381, tokenIndex381 if buffer[position] != rune('.') { - goto l403 + goto l387 } position++ - goto l397 - l403: - position, tokenIndex = position397, tokenIndex397 + goto l381 + l387: + position, tokenIndex = position381, tokenIndex381 { - position405, tokenIndex405 := position, tokenIndex + position389, tokenIndex389 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l406 + goto l390 } position++ - goto l405 - l406: - position, tokenIndex = position405, tokenIndex405 + goto l389 + l390: + position, tokenIndex = position389, tokenIndex389 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l404 + goto l388 } position++ } - l405: - goto l397 - l404: - position, tokenIndex = position397, tokenIndex397 + l389: + goto l381 + l388: + position, tokenIndex = position381, tokenIndex381 if buffer[position] != rune('$') { - goto l407 + goto l391 } position++ - goto l397 - l407: - position, tokenIndex = position397, tokenIndex397 + goto l381 + l391: + position, tokenIndex = position381, tokenIndex381 if buffer[position] != rune('_') { - goto l393 + goto l377 } position++ } - l397: - l395: + l381: + l379: { - position396, tokenIndex396 := position, tokenIndex + position380, tokenIndex380 := position, tokenIndex { - position408, tokenIndex408 := position, tokenIndex + position392, tokenIndex392 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l409 + goto l393 } position++ - goto l408 - l409: - position, tokenIndex = position408, tokenIndex408 + goto l392 + l393: + position, tokenIndex = position392, tokenIndex392 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l410 + goto l394 } position++ - goto l408 - l410: - position, tokenIndex = position408, tokenIndex408 + goto l392 + l394: + position, tokenIndex = position392, tokenIndex392 { - position412, tokenIndex412 := position, tokenIndex + position396, tokenIndex396 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l413 + goto l397 } position++ - goto l412 - l413: - position, tokenIndex = position412, tokenIndex412 + goto l396 + l397: + position, tokenIndex = position396, tokenIndex396 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l411 + goto l395 } position++ } - l412: - goto l408 - l411: - position, tokenIndex = position408, tokenIndex408 + l396: + goto l392 + l395: + position, tokenIndex = position392, tokenIndex392 if buffer[position] != rune('.') { - goto l414 + goto l398 } position++ - goto l408 - l414: - position, tokenIndex = position408, tokenIndex408 + goto l392 + l398: + position, tokenIndex = position392, tokenIndex392 { - position416, tokenIndex416 := position, tokenIndex + position400, tokenIndex400 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l417 + goto l401 } position++ - goto l416 - l417: - position, tokenIndex = position416, tokenIndex416 + goto l400 + l401: + position, tokenIndex = position400, tokenIndex400 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l415 + goto l399 } position++ } - l416: - goto l408 - l415: - position, tokenIndex = position408, tokenIndex408 + l400: + goto l392 + l399: + position, tokenIndex = position392, tokenIndex392 if buffer[position] != rune('$') { - goto l418 + goto l402 } position++ - goto l408 - l418: - position, tokenIndex = position408, tokenIndex408 + goto l392 + l402: + position, tokenIndex = position392, tokenIndex392 if buffer[position] != rune('_') { - goto l396 + goto l380 } position++ } - l408: - goto l395 - l396: - position, tokenIndex = position396, tokenIndex396 + l392: + goto l379 + l380: + position, tokenIndex = position380, tokenIndex380 } - add(ruleLocalSymbol, position394) + add(ruleLocalSymbol, position378) } return true - l393: - position, tokenIndex = position393, tokenIndex393 + l377: + position, tokenIndex = position377, tokenIndex377 return false }, - /* 28 LocalLabel <- <([0-9] ([0-9] / '$')*)> */ + /* 30 LocalLabel <- <([0-9] ([0-9] / '$')*)> */ func() bool { - position419, tokenIndex419 := position, tokenIndex + position403, tokenIndex403 := position, tokenIndex { - position420 := position + position404 := position if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l419 + goto l403 } position++ - l421: + l405: { - position422, tokenIndex422 := position, tokenIndex + position406, tokenIndex406 := position, tokenIndex { - position423, tokenIndex423 := position, tokenIndex + position407, tokenIndex407 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l424 + goto l408 } position++ - goto l423 - l424: - position, tokenIndex = position423, tokenIndex423 + goto l407 + l408: + position, tokenIndex = position407, tokenIndex407 if buffer[position] != rune('$') { - goto l422 + goto l406 } position++ } - l423: - goto l421 - l422: - position, tokenIndex = position422, tokenIndex422 + l407: + goto l405 + l406: + position, tokenIndex = position406, tokenIndex406 } - add(ruleLocalLabel, position420) + add(ruleLocalLabel, position404) } return true - l419: - position, tokenIndex = position419, tokenIndex419 + l403: + position, tokenIndex = position403, tokenIndex403 return false }, - /* 29 LocalLabelRef <- <([0-9] ([0-9] / '$')* ('b' / 'f'))> */ + /* 31 LocalLabelRef <- <([0-9] ([0-9] / '$')* ('b' / 'f'))> */ func() bool { - position425, tokenIndex425 := position, tokenIndex + position409, tokenIndex409 := position, tokenIndex { - position426 := position + position410 := position if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l425 + goto l409 } position++ - l427: + l411: { - position428, tokenIndex428 := position, tokenIndex + position412, tokenIndex412 := position, tokenIndex { - position429, tokenIndex429 := position, tokenIndex + position413, tokenIndex413 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l430 + goto l414 } position++ - goto l429 - l430: - position, tokenIndex = position429, tokenIndex429 + goto l413 + l414: + position, tokenIndex = position413, tokenIndex413 if buffer[position] != rune('$') { - goto l428 + goto l412 } position++ } - l429: - goto l427 - l428: - position, tokenIndex = position428, tokenIndex428 + l413: + goto l411 + l412: + position, tokenIndex = position412, tokenIndex412 } { - position431, tokenIndex431 := position, tokenIndex + position415, tokenIndex415 := position, tokenIndex if buffer[position] != rune('b') { - goto l432 + goto l416 } position++ - goto l431 - l432: - position, tokenIndex = position431, tokenIndex431 + goto l415 + l416: + position, tokenIndex = position415, tokenIndex415 if buffer[position] != rune('f') { - goto l425 + goto l409 } position++ } - l431: - add(ruleLocalLabelRef, position426) + l415: + add(ruleLocalLabelRef, position410) } return true - l425: - position, tokenIndex = position425, tokenIndex425 + l409: + position, tokenIndex = position409, tokenIndex409 return false }, - /* 30 Instruction <- <(InstructionName (WS InstructionArg (WS? ','? WS? InstructionArg)*)?)> */ + /* 32 Instruction <- <(InstructionName (WS InstructionArg (WS? ','? WS? InstructionArg)*)?)> */ func() bool { - position433, tokenIndex433 := position, tokenIndex + position417, tokenIndex417 := position, tokenIndex { - position434 := position + position418 := position if !_rules[ruleInstructionName]() { - goto l433 + goto l417 } { - position435, tokenIndex435 := position, tokenIndex + position419, tokenIndex419 := position, tokenIndex if !_rules[ruleWS]() { - goto l435 + goto l419 } if !_rules[ruleInstructionArg]() { - goto l435 + goto l419 } - l437: + l421: { - position438, tokenIndex438 := position, tokenIndex + position422, tokenIndex422 := position, tokenIndex { - position439, tokenIndex439 := position, tokenIndex + position423, tokenIndex423 := position, tokenIndex if !_rules[ruleWS]() { - goto l439 + goto l423 } - goto l440 - l439: - position, tokenIndex = position439, tokenIndex439 + goto l424 + l423: + position, tokenIndex = position423, tokenIndex423 } - l440: + l424: { - position441, tokenIndex441 := position, tokenIndex + position425, tokenIndex425 := position, tokenIndex if buffer[position] != rune(',') { - goto l441 + goto l425 } position++ - goto l442 - l441: - position, tokenIndex = position441, tokenIndex441 + goto l426 + l425: + position, tokenIndex = position425, tokenIndex425 } - l442: + l426: { - position443, tokenIndex443 := position, tokenIndex + position427, tokenIndex427 := position, tokenIndex if !_rules[ruleWS]() { - goto l443 + goto l427 } - goto l444 - l443: - position, tokenIndex = position443, tokenIndex443 + goto l428 + l427: + position, tokenIndex = position427, tokenIndex427 } - l444: + l428: if !_rules[ruleInstructionArg]() { - goto l438 + goto l422 } - goto l437 - l438: - position, tokenIndex = position438, tokenIndex438 + goto l421 + l422: + position, tokenIndex = position422, tokenIndex422 } - goto l436 - l435: - position, tokenIndex = position435, tokenIndex435 + goto l420 + l419: + position, tokenIndex = position419, tokenIndex419 } - l436: - add(ruleInstruction, position434) + l420: + add(ruleInstruction, position418) } return true - l433: - position, tokenIndex = position433, tokenIndex433 + l417: + position, tokenIndex = position417, tokenIndex417 return false }, - /* 31 InstructionName <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]))* ('.' / '+' / '-')?)> */ + /* 33 InstructionName <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]))* ('.' / '+' / '-')?)> */ func() bool { - position445, tokenIndex445 := position, tokenIndex + position429, tokenIndex429 := position, tokenIndex { - position446 := position + position430 := position { - position447, tokenIndex447 := position, tokenIndex + position431, tokenIndex431 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l448 + goto l432 } position++ - goto l447 - l448: - position, tokenIndex = position447, tokenIndex447 + goto l431 + l432: + position, tokenIndex = position431, tokenIndex431 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l445 + goto l429 } position++ } - l447: - l449: + l431: + l433: { - position450, tokenIndex450 := position, tokenIndex + position434, tokenIndex434 := position, tokenIndex { - position451, tokenIndex451 := position, tokenIndex + position435, tokenIndex435 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l452 + goto l436 } position++ - goto l451 - l452: - position, tokenIndex = position451, tokenIndex451 + goto l435 + l436: + position, tokenIndex = position435, tokenIndex435 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l453 + goto l437 } position++ - goto l451 - l453: - position, tokenIndex = position451, tokenIndex451 + goto l435 + l437: + position, tokenIndex = position435, tokenIndex435 if buffer[position] != rune('.') { - goto l454 + goto l438 } position++ - goto l451 - l454: - position, tokenIndex = position451, tokenIndex451 + goto l435 + l438: + position, tokenIndex = position435, tokenIndex435 { - position455, tokenIndex455 := position, tokenIndex + position439, tokenIndex439 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l456 + goto l440 } position++ - goto l455 - l456: - position, tokenIndex = position455, tokenIndex455 + goto l439 + l440: + position, tokenIndex = position439, tokenIndex439 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l450 + goto l434 } position++ } - l455: + l439: } - l451: - goto l449 - l450: - position, tokenIndex = position450, tokenIndex450 + l435: + goto l433 + l434: + position, tokenIndex = position434, tokenIndex434 } { - position457, tokenIndex457 := position, tokenIndex + position441, tokenIndex441 := position, tokenIndex { - position459, tokenIndex459 := position, tokenIndex + position443, tokenIndex443 := position, tokenIndex if buffer[position] != rune('.') { - goto l460 + goto l444 } position++ - goto l459 - l460: - position, tokenIndex = position459, tokenIndex459 + goto l443 + l444: + position, tokenIndex = position443, tokenIndex443 if buffer[position] != rune('+') { - goto l461 + goto l445 } position++ - goto l459 - l461: - position, tokenIndex = position459, tokenIndex459 + goto l443 + l445: + position, tokenIndex = position443, tokenIndex443 if buffer[position] != rune('-') { - goto l457 + goto l441 } position++ } - l459: - goto l458 - l457: - position, tokenIndex = position457, tokenIndex457 + l443: + goto l442 + l441: + position, tokenIndex = position441, tokenIndex441 } - l458: - add(ruleInstructionName, position446) + l442: + add(ruleInstructionName, position430) } return true - l445: - position, tokenIndex = position445, tokenIndex445 + l429: + position, tokenIndex = position429, tokenIndex429 return false }, - /* 32 InstructionArg <- <(IndirectionIndicator? (ARMConstantTweak / RegisterOrConstant / LocalLabelRef / TOCRefHigh / TOCRefLow / GOTLocation / GOTSymbolOffset / MemoryRef) AVX512Token*)> */ + /* 34 InstructionArg <- <(IndirectionIndicator? (ARMConstantTweak / RegisterOrConstant / LocalLabelRef / TOCRefHigh / TOCRefLow / GOTLocation / GOTSymbolOffset / MemoryRef) AVX512Token*)> */ func() bool { - position462, tokenIndex462 := position, tokenIndex + position446, tokenIndex446 := position, tokenIndex { - position463 := position + position447 := position { - position464, tokenIndex464 := position, tokenIndex + position448, tokenIndex448 := position, tokenIndex if !_rules[ruleIndirectionIndicator]() { - goto l464 + goto l448 } - goto l465 - l464: - position, tokenIndex = position464, tokenIndex464 + goto l449 + l448: + position, tokenIndex = position448, tokenIndex448 } - l465: + l449: { - position466, tokenIndex466 := position, tokenIndex + position450, tokenIndex450 := position, tokenIndex if !_rules[ruleARMConstantTweak]() { - goto l467 + goto l451 } - goto l466 - l467: - position, tokenIndex = position466, tokenIndex466 + goto l450 + l451: + position, tokenIndex = position450, tokenIndex450 if !_rules[ruleRegisterOrConstant]() { - goto l468 + goto l452 } - goto l466 - l468: - position, tokenIndex = position466, tokenIndex466 + goto l450 + l452: + position, tokenIndex = position450, tokenIndex450 if !_rules[ruleLocalLabelRef]() { - goto l469 + goto l453 } - goto l466 - l469: - position, tokenIndex = position466, tokenIndex466 + goto l450 + l453: + position, tokenIndex = position450, tokenIndex450 if !_rules[ruleTOCRefHigh]() { - goto l470 + goto l454 } - goto l466 - l470: - position, tokenIndex = position466, tokenIndex466 + goto l450 + l454: + position, tokenIndex = position450, tokenIndex450 if !_rules[ruleTOCRefLow]() { - goto l471 + goto l455 } - goto l466 - l471: - position, tokenIndex = position466, tokenIndex466 + goto l450 + l455: + position, tokenIndex = position450, tokenIndex450 if !_rules[ruleGOTLocation]() { - goto l472 + goto l456 } - goto l466 - l472: - position, tokenIndex = position466, tokenIndex466 + goto l450 + l456: + position, tokenIndex = position450, tokenIndex450 if !_rules[ruleGOTSymbolOffset]() { - goto l473 + goto l457 } - goto l466 - l473: - position, tokenIndex = position466, tokenIndex466 + goto l450 + l457: + position, tokenIndex = position450, tokenIndex450 if !_rules[ruleMemoryRef]() { - goto l462 + goto l446 } } - l466: - l474: + l450: + l458: { - position475, tokenIndex475 := position, tokenIndex + position459, tokenIndex459 := position, tokenIndex if !_rules[ruleAVX512Token]() { - goto l475 + goto l459 } - goto l474 - l475: - position, tokenIndex = position475, tokenIndex475 + goto l458 + l459: + position, tokenIndex = position459, tokenIndex459 } - add(ruleInstructionArg, position463) + add(ruleInstructionArg, position447) } return true - l462: - position, tokenIndex = position462, tokenIndex462 + l446: + position, tokenIndex = position446, tokenIndex446 return false }, - /* 33 GOTLocation <- <('$' '_' 'G' 'L' 'O' 'B' 'A' 'L' '_' 'O' 'F' 'F' 'S' 'E' 'T' '_' 'T' 'A' 'B' 'L' 'E' '_' '-' LocalSymbol)> */ + /* 35 GOTLocation <- <('$' '_' 'G' 'L' 'O' 'B' 'A' 'L' '_' 'O' 'F' 'F' 'S' 'E' 'T' '_' 'T' 'A' 'B' 'L' 'E' '_' '-' LocalSymbol)> */ func() bool { - position476, tokenIndex476 := position, tokenIndex + position460, tokenIndex460 := position, tokenIndex { - position477 := position + position461 := position if buffer[position] != rune('$') { - goto l476 + goto l460 } position++ if buffer[position] != rune('_') { - goto l476 + goto l460 } position++ if buffer[position] != rune('G') { - goto l476 + goto l460 } position++ if buffer[position] != rune('L') { - goto l476 + goto l460 } position++ if buffer[position] != rune('O') { - goto l476 + goto l460 } position++ if buffer[position] != rune('B') { - goto l476 + goto l460 } position++ if buffer[position] != rune('A') { - goto l476 + goto l460 } position++ if buffer[position] != rune('L') { - goto l476 + goto l460 } position++ if buffer[position] != rune('_') { - goto l476 + goto l460 } position++ if buffer[position] != rune('O') { - goto l476 + goto l460 } position++ if buffer[position] != rune('F') { - goto l476 + goto l460 } position++ if buffer[position] != rune('F') { - goto l476 + goto l460 } position++ if buffer[position] != rune('S') { - goto l476 + goto l460 } position++ if buffer[position] != rune('E') { - goto l476 + goto l460 } position++ if buffer[position] != rune('T') { - goto l476 + goto l460 } position++ if buffer[position] != rune('_') { - goto l476 + goto l460 } position++ if buffer[position] != rune('T') { - goto l476 + goto l460 } position++ if buffer[position] != rune('A') { - goto l476 + goto l460 } position++ if buffer[position] != rune('B') { - goto l476 + goto l460 } position++ if buffer[position] != rune('L') { - goto l476 + goto l460 } position++ if buffer[position] != rune('E') { - goto l476 + goto l460 } position++ if buffer[position] != rune('_') { - goto l476 + goto l460 } position++ if buffer[position] != rune('-') { - goto l476 + goto l460 } position++ if !_rules[ruleLocalSymbol]() { - goto l476 + goto l460 } - add(ruleGOTLocation, position477) + add(ruleGOTLocation, position461) } return true - l476: - position, tokenIndex = position476, tokenIndex476 + l460: + position, tokenIndex = position460, tokenIndex460 return false }, - /* 34 GOTSymbolOffset <- <(('$' SymbolName ('@' 'G' 'O' 'T') ('O' 'F' 'F')?) / (':' ('g' / 'G') ('o' / 'O') ('t' / 'T') ':' SymbolName))> */ + /* 36 GOTSymbolOffset <- <(('$' SymbolName ('@' 'G' 'O' 'T') ('O' 'F' 'F')?) / (':' ('g' / 'G') ('o' / 'O') ('t' / 'T') ':' SymbolName))> */ func() bool { - position478, tokenIndex478 := position, tokenIndex + position462, tokenIndex462 := position, tokenIndex { - position479 := position + position463 := position { - position480, tokenIndex480 := position, tokenIndex + position464, tokenIndex464 := position, tokenIndex if buffer[position] != rune('$') { - goto l481 + goto l465 } position++ if !_rules[ruleSymbolName]() { - goto l481 + goto l465 } if buffer[position] != rune('@') { - goto l481 + goto l465 } position++ if buffer[position] != rune('G') { - goto l481 + goto l465 } position++ if buffer[position] != rune('O') { - goto l481 + goto l465 } position++ if buffer[position] != rune('T') { - goto l481 + goto l465 } position++ { - position482, tokenIndex482 := position, tokenIndex + position466, tokenIndex466 := position, tokenIndex if buffer[position] != rune('O') { - goto l482 + goto l466 } position++ if buffer[position] != rune('F') { - goto l482 + goto l466 } position++ if buffer[position] != rune('F') { - goto l482 + goto l466 } position++ - goto l483 - l482: - position, tokenIndex = position482, tokenIndex482 + goto l467 + l466: + position, tokenIndex = position466, tokenIndex466 } - l483: - goto l480 - l481: - position, tokenIndex = position480, tokenIndex480 + l467: + goto l464 + l465: + position, tokenIndex = position464, tokenIndex464 if buffer[position] != rune(':') { - goto l478 + goto l462 } position++ { - position484, tokenIndex484 := position, tokenIndex + position468, tokenIndex468 := position, tokenIndex if buffer[position] != rune('g') { - goto l485 + goto l469 } position++ - goto l484 - l485: - position, tokenIndex = position484, tokenIndex484 + goto l468 + l469: + position, tokenIndex = position468, tokenIndex468 if buffer[position] != rune('G') { - goto l478 + goto l462 } position++ } - l484: + l468: { - position486, tokenIndex486 := position, tokenIndex + position470, tokenIndex470 := position, tokenIndex if buffer[position] != rune('o') { - goto l487 + goto l471 } position++ - goto l486 - l487: - position, tokenIndex = position486, tokenIndex486 + goto l470 + l471: + position, tokenIndex = position470, tokenIndex470 if buffer[position] != rune('O') { - goto l478 + goto l462 } position++ } - l486: + l470: { - position488, tokenIndex488 := position, tokenIndex + position472, tokenIndex472 := position, tokenIndex if buffer[position] != rune('t') { - goto l489 + goto l473 } position++ - goto l488 - l489: - position, tokenIndex = position488, tokenIndex488 + goto l472 + l473: + position, tokenIndex = position472, tokenIndex472 if buffer[position] != rune('T') { - goto l478 + goto l462 } position++ } - l488: + l472: if buffer[position] != rune(':') { - goto l478 + goto l462 } position++ if !_rules[ruleSymbolName]() { - goto l478 + goto l462 } } - l480: - add(ruleGOTSymbolOffset, position479) + l464: + add(ruleGOTSymbolOffset, position463) } return true - l478: - position, tokenIndex = position478, tokenIndex478 + l462: + position, tokenIndex = position462, tokenIndex462 return false }, - /* 35 AVX512Token <- <(WS? '{' '%'? ([0-9] / [a-z])* '}')> */ + /* 37 AVX512Token <- <(WS? '{' '%'? ([0-9] / [a-z])* '}')> */ func() bool { - position490, tokenIndex490 := position, tokenIndex + position474, tokenIndex474 := position, tokenIndex { - position491 := position + position475 := position { - position492, tokenIndex492 := position, tokenIndex + position476, tokenIndex476 := position, tokenIndex if !_rules[ruleWS]() { - goto l492 + goto l476 } - goto l493 - l492: - position, tokenIndex = position492, tokenIndex492 + goto l477 + l476: + position, tokenIndex = position476, tokenIndex476 } - l493: + l477: if buffer[position] != rune('{') { - goto l490 + goto l474 } position++ { - position494, tokenIndex494 := position, tokenIndex + position478, tokenIndex478 := position, tokenIndex if buffer[position] != rune('%') { - goto l494 + goto l478 } position++ - goto l495 - l494: - position, tokenIndex = position494, tokenIndex494 + goto l479 + l478: + position, tokenIndex = position478, tokenIndex478 } - l495: - l496: + l479: + l480: { - position497, tokenIndex497 := position, tokenIndex + position481, tokenIndex481 := position, tokenIndex { - position498, tokenIndex498 := position, tokenIndex + position482, tokenIndex482 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l499 + goto l483 } position++ - goto l498 - l499: - position, tokenIndex = position498, tokenIndex498 + goto l482 + l483: + position, tokenIndex = position482, tokenIndex482 if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l497 + goto l481 } position++ } - l498: - goto l496 - l497: - position, tokenIndex = position497, tokenIndex497 + l482: + goto l480 + l481: + position, tokenIndex = position481, tokenIndex481 } if buffer[position] != rune('}') { - goto l490 + goto l474 } position++ - add(ruleAVX512Token, position491) + add(ruleAVX512Token, position475) } return true - l490: - position, tokenIndex = position490, tokenIndex490 + l474: + position, tokenIndex = position474, tokenIndex474 return false }, - /* 36 TOCRefHigh <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('h' / 'H') ('a' / 'A')))> */ + /* 38 TOCRefHigh <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('h' / 'H') ('a' / 'A')))> */ func() bool { - position500, tokenIndex500 := position, tokenIndex + position484, tokenIndex484 := position, tokenIndex { - position501 := position + position485 := position if buffer[position] != rune('.') { - goto l500 + goto l484 } position++ if buffer[position] != rune('T') { - goto l500 + goto l484 } position++ if buffer[position] != rune('O') { - goto l500 + goto l484 } position++ if buffer[position] != rune('C') { - goto l500 + goto l484 } position++ if buffer[position] != rune('.') { - goto l500 + goto l484 } position++ if buffer[position] != rune('-') { - goto l500 + goto l484 } position++ { - position502, tokenIndex502 := position, tokenIndex + position486, tokenIndex486 := position, tokenIndex if buffer[position] != rune('0') { - goto l503 + goto l487 } position++ if buffer[position] != rune('b') { - goto l503 + goto l487 } position++ - goto l502 - l503: - position, tokenIndex = position502, tokenIndex502 + goto l486 + l487: + position, tokenIndex = position486, tokenIndex486 if buffer[position] != rune('.') { - goto l500 + goto l484 } position++ if buffer[position] != rune('L') { - goto l500 + goto l484 } position++ { - position506, tokenIndex506 := position, tokenIndex + position490, tokenIndex490 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l507 + goto l491 } position++ - goto l506 - l507: - position, tokenIndex = position506, tokenIndex506 + goto l490 + l491: + position, tokenIndex = position490, tokenIndex490 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l508 + goto l492 } position++ - goto l506 - l508: - position, tokenIndex = position506, tokenIndex506 + goto l490 + l492: + position, tokenIndex = position490, tokenIndex490 if buffer[position] != rune('_') { - goto l509 + goto l493 } position++ - goto l506 - l509: - position, tokenIndex = position506, tokenIndex506 + goto l490 + l493: + position, tokenIndex = position490, tokenIndex490 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l500 + goto l484 } position++ } - l506: - l504: + l490: + l488: { - position505, tokenIndex505 := position, tokenIndex + position489, tokenIndex489 := position, tokenIndex { - position510, tokenIndex510 := position, tokenIndex + position494, tokenIndex494 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l511 + goto l495 } position++ - goto l510 - l511: - position, tokenIndex = position510, tokenIndex510 + goto l494 + l495: + position, tokenIndex = position494, tokenIndex494 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l512 + goto l496 } position++ - goto l510 - l512: - position, tokenIndex = position510, tokenIndex510 + goto l494 + l496: + position, tokenIndex = position494, tokenIndex494 if buffer[position] != rune('_') { - goto l513 + goto l497 } position++ - goto l510 - l513: - position, tokenIndex = position510, tokenIndex510 + goto l494 + l497: + position, tokenIndex = position494, tokenIndex494 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l505 + goto l489 } position++ } - l510: - goto l504 - l505: - position, tokenIndex = position505, tokenIndex505 + l494: + goto l488 + l489: + position, tokenIndex = position489, tokenIndex489 } } - l502: + l486: if buffer[position] != rune('@') { - goto l500 + goto l484 } position++ { - position514, tokenIndex514 := position, tokenIndex + position498, tokenIndex498 := position, tokenIndex if buffer[position] != rune('h') { - goto l515 + goto l499 } position++ - goto l514 - l515: - position, tokenIndex = position514, tokenIndex514 + goto l498 + l499: + position, tokenIndex = position498, tokenIndex498 if buffer[position] != rune('H') { - goto l500 + goto l484 } position++ } - l514: + l498: { - position516, tokenIndex516 := position, tokenIndex + position500, tokenIndex500 := position, tokenIndex if buffer[position] != rune('a') { - goto l517 + goto l501 } position++ - goto l516 - l517: - position, tokenIndex = position516, tokenIndex516 + goto l500 + l501: + position, tokenIndex = position500, tokenIndex500 if buffer[position] != rune('A') { - goto l500 + goto l484 } position++ } - l516: - add(ruleTOCRefHigh, position501) + l500: + add(ruleTOCRefHigh, position485) } return true - l500: - position, tokenIndex = position500, tokenIndex500 + l484: + position, tokenIndex = position484, tokenIndex484 return false }, - /* 37 TOCRefLow <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('l' / 'L')))> */ + /* 39 TOCRefLow <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('l' / 'L')))> */ func() bool { - position518, tokenIndex518 := position, tokenIndex + position502, tokenIndex502 := position, tokenIndex { - position519 := position + position503 := position if buffer[position] != rune('.') { - goto l518 + goto l502 } position++ if buffer[position] != rune('T') { - goto l518 + goto l502 } position++ if buffer[position] != rune('O') { - goto l518 + goto l502 } position++ if buffer[position] != rune('C') { - goto l518 + goto l502 } position++ if buffer[position] != rune('.') { - goto l518 + goto l502 } position++ if buffer[position] != rune('-') { - goto l518 + goto l502 } position++ { - position520, tokenIndex520 := position, tokenIndex + position504, tokenIndex504 := position, tokenIndex if buffer[position] != rune('0') { - goto l521 + goto l505 } position++ if buffer[position] != rune('b') { - goto l521 + goto l505 } position++ - goto l520 - l521: - position, tokenIndex = position520, tokenIndex520 + goto l504 + l505: + position, tokenIndex = position504, tokenIndex504 if buffer[position] != rune('.') { - goto l518 + goto l502 } position++ if buffer[position] != rune('L') { - goto l518 + goto l502 } position++ { - position524, tokenIndex524 := position, tokenIndex + position508, tokenIndex508 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l525 + goto l509 } position++ - goto l524 - l525: - position, tokenIndex = position524, tokenIndex524 + goto l508 + l509: + position, tokenIndex = position508, tokenIndex508 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l526 + goto l510 } position++ - goto l524 - l526: - position, tokenIndex = position524, tokenIndex524 + goto l508 + l510: + position, tokenIndex = position508, tokenIndex508 if buffer[position] != rune('_') { - goto l527 + goto l511 } position++ - goto l524 - l527: - position, tokenIndex = position524, tokenIndex524 + goto l508 + l511: + position, tokenIndex = position508, tokenIndex508 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l518 + goto l502 } position++ } - l524: - l522: + l508: + l506: { - position523, tokenIndex523 := position, tokenIndex + position507, tokenIndex507 := position, tokenIndex { - position528, tokenIndex528 := position, tokenIndex + position512, tokenIndex512 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l529 + goto l513 } position++ - goto l528 - l529: - position, tokenIndex = position528, tokenIndex528 + goto l512 + l513: + position, tokenIndex = position512, tokenIndex512 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l530 + goto l514 } position++ - goto l528 - l530: - position, tokenIndex = position528, tokenIndex528 + goto l512 + l514: + position, tokenIndex = position512, tokenIndex512 if buffer[position] != rune('_') { - goto l531 + goto l515 } position++ - goto l528 - l531: - position, tokenIndex = position528, tokenIndex528 + goto l512 + l515: + position, tokenIndex = position512, tokenIndex512 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l523 + goto l507 } position++ } - l528: - goto l522 - l523: - position, tokenIndex = position523, tokenIndex523 + l512: + goto l506 + l507: + position, tokenIndex = position507, tokenIndex507 } } - l520: + l504: if buffer[position] != rune('@') { - goto l518 + goto l502 } position++ { - position532, tokenIndex532 := position, tokenIndex + position516, tokenIndex516 := position, tokenIndex if buffer[position] != rune('l') { - goto l533 + goto l517 } position++ - goto l532 - l533: - position, tokenIndex = position532, tokenIndex532 + goto l516 + l517: + position, tokenIndex = position516, tokenIndex516 if buffer[position] != rune('L') { - goto l518 + goto l502 } position++ } - l532: - add(ruleTOCRefLow, position519) + l516: + add(ruleTOCRefLow, position503) } return true - l518: - position, tokenIndex = position518, tokenIndex518 + l502: + position, tokenIndex = position502, tokenIndex502 return false }, - /* 38 IndirectionIndicator <- <'*'> */ + /* 40 IndirectionIndicator <- <'*'> */ func() bool { - position534, tokenIndex534 := position, tokenIndex + position518, tokenIndex518 := position, tokenIndex { - position535 := position + position519 := position if buffer[position] != rune('*') { - goto l534 + goto l518 } position++ - add(ruleIndirectionIndicator, position535) + add(ruleIndirectionIndicator, position519) } return true - l534: - position, tokenIndex = position534, tokenIndex534 + l518: + position, tokenIndex = position518, tokenIndex518 return false }, - /* 39 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' / ':' / '(' / '+' / '-'))> */ + /* 41 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' / ':' / '(' / '+' / '-'))> */ func() bool { - position536, tokenIndex536 := position, tokenIndex + position520, tokenIndex520 := position, tokenIndex { - position537 := position + position521 := position { - position538, tokenIndex538 := position, tokenIndex + position522, tokenIndex522 := position, tokenIndex if buffer[position] != rune('%') { - goto l539 + goto l523 } position++ { - position540, tokenIndex540 := position, tokenIndex + position524, tokenIndex524 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l541 + goto l525 } position++ - goto l540 - l541: - position, tokenIndex = position540, tokenIndex540 + goto l524 + l525: + position, tokenIndex = position524, tokenIndex524 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l539 + goto l523 } position++ } - l540: - l542: + l524: + l526: { - position543, tokenIndex543 := position, tokenIndex + position527, tokenIndex527 := position, tokenIndex { - position544, tokenIndex544 := position, tokenIndex + position528, tokenIndex528 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l545 + goto l529 } position++ - goto l544 - l545: - position, tokenIndex = position544, tokenIndex544 + goto l528 + l529: + position, tokenIndex = position528, tokenIndex528 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l546 + goto l530 } position++ - goto l544 - l546: - position, tokenIndex = position544, tokenIndex544 + goto l528 + l530: + position, tokenIndex = position528, tokenIndex528 { - position547, tokenIndex547 := position, tokenIndex + position531, tokenIndex531 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l548 + goto l532 } position++ - goto l547 - l548: - position, tokenIndex = position547, tokenIndex547 + goto l531 + l532: + position, tokenIndex = position531, tokenIndex531 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l543 + goto l527 } position++ } - l547: + l531: } - l544: - goto l542 - l543: - position, tokenIndex = position543, tokenIndex543 + l528: + goto l526 + l527: + position, tokenIndex = position527, tokenIndex527 } - goto l538 - l539: - position, tokenIndex = position538, tokenIndex538 + goto l522 + l523: + position, tokenIndex = position522, tokenIndex522 if buffer[position] != rune('$') { - goto l549 + goto l533 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l549 + goto l533 } position++ - l550: + l534: { - position551, tokenIndex551 := position, tokenIndex + position535, tokenIndex535 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l551 + goto l535 } position++ - goto l550 - l551: - position, tokenIndex = position551, tokenIndex551 + goto l534 + l535: + position, tokenIndex = position535, tokenIndex535 } { - position552, tokenIndex552 := position, tokenIndex + position536, tokenIndex536 := position, tokenIndex if !_rules[ruleWS]() { - goto l552 + goto l536 } - goto l553 - l552: - position, tokenIndex = position552, tokenIndex552 + goto l537 + l536: + position, tokenIndex = position536, tokenIndex536 } - l553: + l537: if buffer[position] != rune('*') { - goto l549 + goto l533 } position++ { - position554, tokenIndex554 := position, tokenIndex + position538, tokenIndex538 := position, tokenIndex if !_rules[ruleWS]() { - goto l554 + goto l538 } - goto l555 - l554: - position, tokenIndex = position554, tokenIndex554 + goto l539 + l538: + position, tokenIndex = position538, tokenIndex538 } - l555: + l539: if buffer[position] != rune('(') { - goto l549 + goto l533 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l549 + goto l533 } position++ - l556: + l540: { - position557, tokenIndex557 := position, tokenIndex + position541, tokenIndex541 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l557 + goto l541 } position++ - goto l556 - l557: - position, tokenIndex = position557, tokenIndex557 + goto l540 + l541: + position, tokenIndex = position541, tokenIndex541 } { - position558, tokenIndex558 := position, tokenIndex + position542, tokenIndex542 := position, tokenIndex if !_rules[ruleWS]() { - goto l558 + goto l542 } - goto l559 - l558: - position, tokenIndex = position558, tokenIndex558 + goto l543 + l542: + position, tokenIndex = position542, tokenIndex542 } - l559: + l543: if buffer[position] != rune('-') { - goto l549 + goto l533 } position++ { - position560, tokenIndex560 := position, tokenIndex + position544, tokenIndex544 := position, tokenIndex if !_rules[ruleWS]() { - goto l560 + goto l544 } - goto l561 - l560: - position, tokenIndex = position560, tokenIndex560 + goto l545 + l544: + position, tokenIndex = position544, tokenIndex544 } - l561: + l545: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l549 + goto l533 } position++ - l562: + l546: { - position563, tokenIndex563 := position, tokenIndex + position547, tokenIndex547 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l563 + goto l547 } position++ - goto l562 - l563: - position, tokenIndex = position563, tokenIndex563 + goto l546 + l547: + position, tokenIndex = position547, tokenIndex547 } if buffer[position] != rune(')') { - goto l549 + goto l533 } position++ - goto l538 - l549: - position, tokenIndex = position538, tokenIndex538 + goto l522 + l533: + position, tokenIndex = position522, tokenIndex522 { - position565, tokenIndex565 := position, tokenIndex + position549, tokenIndex549 := position, tokenIndex if buffer[position] != rune('$') { - goto l565 + goto l549 } position++ - goto l566 - l565: - position, tokenIndex = position565, tokenIndex565 + goto l550 + l549: + position, tokenIndex = position549, tokenIndex549 } - l566: + l550: { - position567, tokenIndex567 := position, tokenIndex + position551, tokenIndex551 := position, tokenIndex if !_rules[ruleOffset]() { - goto l568 + goto l552 } if !_rules[ruleOffset]() { - goto l568 + goto l552 } - goto l567 - l568: - position, tokenIndex = position567, tokenIndex567 + goto l551 + l552: + position, tokenIndex = position551, tokenIndex551 if !_rules[ruleOffset]() { - goto l564 + goto l548 } } - l567: - goto l538 - l564: - position, tokenIndex = position538, tokenIndex538 + l551: + goto l522 + l548: + position, tokenIndex = position522, tokenIndex522 if buffer[position] != rune('#') { - goto l569 + goto l553 } position++ if !_rules[ruleOffset]() { - goto l569 + goto l553 } { - position570, tokenIndex570 := position, tokenIndex + position554, tokenIndex554 := position, tokenIndex if buffer[position] != rune('*') { - goto l570 + goto l554 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l570 + goto l554 } position++ - l572: + l556: { - position573, tokenIndex573 := position, tokenIndex + position557, tokenIndex557 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l573 + goto l557 } position++ - goto l572 - l573: - position, tokenIndex = position573, tokenIndex573 + goto l556 + l557: + position, tokenIndex = position557, tokenIndex557 } { - position574, tokenIndex574 := position, tokenIndex + position558, tokenIndex558 := position, tokenIndex if buffer[position] != rune('-') { - goto l574 + goto l558 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l574 + goto l558 } position++ - l576: + l560: { - position577, tokenIndex577 := position, tokenIndex + position561, tokenIndex561 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l577 + goto l561 } position++ - goto l576 - l577: - position, tokenIndex = position577, tokenIndex577 + goto l560 + l561: + position, tokenIndex = position561, tokenIndex561 } - goto l575 - l574: - position, tokenIndex = position574, tokenIndex574 + goto l559 + l558: + position, tokenIndex = position558, tokenIndex558 } - l575: - goto l571 - l570: - position, tokenIndex = position570, tokenIndex570 + l559: + goto l555 + l554: + position, tokenIndex = position554, tokenIndex554 } - l571: - goto l538 - l569: - position, tokenIndex = position538, tokenIndex538 + l555: + goto l522 + l553: + position, tokenIndex = position522, tokenIndex522 if buffer[position] != rune('#') { - goto l578 + goto l562 } position++ { - position579, tokenIndex579 := position, tokenIndex + position563, tokenIndex563 := position, tokenIndex if buffer[position] != rune('~') { - goto l579 + goto l563 } position++ - goto l580 - l579: - position, tokenIndex = position579, tokenIndex579 + goto l564 + l563: + position, tokenIndex = position563, tokenIndex563 } - l580: + l564: if buffer[position] != rune('(') { - goto l578 + goto l562 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l578 + goto l562 } position++ { - position581, tokenIndex581 := position, tokenIndex + position565, tokenIndex565 := position, tokenIndex if !_rules[ruleWS]() { - goto l581 + goto l565 } - goto l582 - l581: - position, tokenIndex = position581, tokenIndex581 + goto l566 + l565: + position, tokenIndex = position565, tokenIndex565 } - l582: + l566: if buffer[position] != rune('<') { - goto l578 + goto l562 } position++ if buffer[position] != rune('<') { - goto l578 + goto l562 } position++ { - position583, tokenIndex583 := position, tokenIndex + position567, tokenIndex567 := position, tokenIndex if !_rules[ruleWS]() { - goto l583 + goto l567 } - goto l584 - l583: - position, tokenIndex = position583, tokenIndex583 + goto l568 + l567: + position, tokenIndex = position567, tokenIndex567 } - l584: + l568: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l578 + goto l562 } position++ { - position585, tokenIndex585 := position, tokenIndex + position569, tokenIndex569 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l585 + goto l569 } position++ - goto l586 - l585: - position, tokenIndex = position585, tokenIndex585 + goto l570 + l569: + position, tokenIndex = position569, tokenIndex569 } - l586: + l570: if buffer[position] != rune(')') { - goto l578 + goto l562 } position++ - goto l538 - l578: - position, tokenIndex = position538, tokenIndex538 + goto l522 + l562: + position, tokenIndex = position522, tokenIndex522 { - position588, tokenIndex588 := position, tokenIndex + position572, tokenIndex572 := position, tokenIndex if buffer[position] != rune('#') { - goto l589 + goto l573 } position++ - goto l588 - l589: - position, tokenIndex = position588, tokenIndex588 + goto l572 + l573: + position, tokenIndex = position572, tokenIndex572 if buffer[position] != rune('$') { - goto l587 + goto l571 } position++ } - l588: + l572: { - position590, tokenIndex590 := position, tokenIndex + position574, tokenIndex574 := position, tokenIndex if buffer[position] != rune('~') { - goto l590 + goto l574 } position++ - goto l591 - l590: - position, tokenIndex = position590, tokenIndex590 + goto l575 + l574: + position, tokenIndex = position574, tokenIndex574 } - l591: + l575: { - position592, tokenIndex592 := position, tokenIndex + position576, tokenIndex576 := position, tokenIndex if buffer[position] != rune('0') { - goto l592 + goto l576 } position++ if buffer[position] != rune('x') { - goto l592 + goto l576 } position++ - goto l593 - l592: - position, tokenIndex = position592, tokenIndex592 + goto l577 + l576: + position, tokenIndex = position576, tokenIndex576 } - l593: + l577: { - position596, tokenIndex596 := position, tokenIndex + position580, tokenIndex580 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l597 + goto l581 } position++ - goto l596 - l597: - position, tokenIndex = position596, tokenIndex596 + goto l580 + l581: + position, tokenIndex = position580, tokenIndex580 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l598 + goto l582 } position++ - goto l596 - l598: - position, tokenIndex = position596, tokenIndex596 + goto l580 + l582: + position, tokenIndex = position580, tokenIndex580 { - position599, tokenIndex599 := position, tokenIndex + position583, tokenIndex583 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l600 + goto l584 } position++ - goto l599 - l600: - position, tokenIndex = position599, tokenIndex599 + goto l583 + l584: + position, tokenIndex = position583, tokenIndex583 if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l587 + goto l571 } position++ } - l599: + l583: } - l596: - l594: + l580: + l578: { - position595, tokenIndex595 := position, tokenIndex + position579, tokenIndex579 := position, tokenIndex { - position601, tokenIndex601 := position, tokenIndex + position585, tokenIndex585 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l602 + goto l586 } position++ - goto l601 - l602: - position, tokenIndex = position601, tokenIndex601 + goto l585 + l586: + position, tokenIndex = position585, tokenIndex585 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l603 + goto l587 } position++ - goto l601 - l603: - position, tokenIndex = position601, tokenIndex601 + goto l585 + l587: + position, tokenIndex = position585, tokenIndex585 { - position604, tokenIndex604 := position, tokenIndex + position588, tokenIndex588 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l605 + goto l589 } position++ - goto l604 - l605: - position, tokenIndex = position604, tokenIndex604 + goto l588 + l589: + position, tokenIndex = position588, tokenIndex588 if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l595 + goto l579 } position++ } - l604: + l588: } - l601: - goto l594 - l595: - position, tokenIndex = position595, tokenIndex595 + l585: + goto l578 + l579: + position, tokenIndex = position579, tokenIndex579 } - goto l538 - l587: - position, tokenIndex = position538, tokenIndex538 + goto l522 + l571: + position, tokenIndex = position522, tokenIndex522 if buffer[position] != rune('$') { - goto l606 + goto l590 } position++ if buffer[position] != rune('(') { - goto l606 + goto l590 } position++ if buffer[position] != rune('-') { - goto l606 + goto l590 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l606 + goto l590 } position++ - l607: + l591: { - position608, tokenIndex608 := position, tokenIndex + position592, tokenIndex592 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l608 + goto l592 } position++ - goto l607 - l608: - position, tokenIndex = position608, tokenIndex608 + goto l591 + l592: + position, tokenIndex = position592, tokenIndex592 } if buffer[position] != rune(')') { - goto l606 + goto l590 } position++ - goto l538 - l606: - position, tokenIndex = position538, tokenIndex538 + goto l522 + l590: + position, tokenIndex = position522, tokenIndex522 if !_rules[ruleARMRegister]() { - goto l536 + goto l520 } } - l538: + l522: { - position609, tokenIndex609 := position, tokenIndex + position593, tokenIndex593 := position, tokenIndex { - position610, tokenIndex610 := position, tokenIndex + position594, tokenIndex594 := position, tokenIndex if buffer[position] != rune('f') { - goto l611 + goto l595 } position++ - goto l610 - l611: - position, tokenIndex = position610, tokenIndex610 + goto l594 + l595: + position, tokenIndex = position594, tokenIndex594 if buffer[position] != rune('b') { - goto l612 + goto l596 } position++ - goto l610 - l612: - position, tokenIndex = position610, tokenIndex610 + goto l594 + l596: + position, tokenIndex = position594, tokenIndex594 if buffer[position] != rune(':') { - goto l613 + goto l597 } position++ - goto l610 - l613: - position, tokenIndex = position610, tokenIndex610 + goto l594 + l597: + position, tokenIndex = position594, tokenIndex594 if buffer[position] != rune('(') { - goto l614 + goto l598 } position++ - goto l610 - l614: - position, tokenIndex = position610, tokenIndex610 + goto l594 + l598: + position, tokenIndex = position594, tokenIndex594 if buffer[position] != rune('+') { - goto l615 + goto l599 } position++ - goto l610 - l615: - position, tokenIndex = position610, tokenIndex610 + goto l594 + l599: + position, tokenIndex = position594, tokenIndex594 if buffer[position] != rune('-') { - goto l609 + goto l593 } position++ } - l610: - goto l536 - l609: - position, tokenIndex = position609, tokenIndex609 + l594: + goto l520 + l593: + position, tokenIndex = position593, tokenIndex593 } - add(ruleRegisterOrConstant, position537) + add(ruleRegisterOrConstant, position521) } return true - l536: - position, tokenIndex = position536, tokenIndex536 + l520: + position, tokenIndex = position520, tokenIndex520 return false }, - /* 40 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)?)> */ + /* 42 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)?)> */ func() bool { - position616, tokenIndex616 := position, tokenIndex + position600, tokenIndex600 := position, tokenIndex { - position617 := position + position601 := position { - position618, tokenIndex618 := position, tokenIndex + position602, tokenIndex602 := position, tokenIndex { - position620, tokenIndex620 := position, tokenIndex + position604, tokenIndex604 := position, tokenIndex if buffer[position] != rune('u') { - goto l621 + goto l605 } position++ - goto l620 - l621: - position, tokenIndex = position620, tokenIndex620 + goto l604 + l605: + position, tokenIndex = position604, tokenIndex604 if buffer[position] != rune('s') { - goto l619 + goto l603 } position++ } - l620: + l604: { - position622, tokenIndex622 := position, tokenIndex + position606, tokenIndex606 := position, tokenIndex if buffer[position] != rune('x') { - goto l623 + goto l607 } position++ - goto l622 - l623: - position, tokenIndex = position622, tokenIndex622 + goto l606 + l607: + position, tokenIndex = position606, tokenIndex606 if buffer[position] != rune('X') { - goto l619 + goto l603 } position++ } - l622: + l606: { - position624, tokenIndex624 := position, tokenIndex + position608, tokenIndex608 := position, tokenIndex if buffer[position] != rune('t') { - goto l625 + goto l609 } position++ - goto l624 - l625: - position, tokenIndex = position624, tokenIndex624 + goto l608 + l609: + position, tokenIndex = position608, tokenIndex608 if buffer[position] != rune('T') { - goto l619 + goto l603 } position++ } - l624: + l608: { - position626, tokenIndex626 := position, tokenIndex + position610, tokenIndex610 := position, tokenIndex if buffer[position] != rune('x') { - goto l627 + goto l611 } position++ - goto l626 - l627: - position, tokenIndex = position626, tokenIndex626 + goto l610 + l611: + position, tokenIndex = position610, tokenIndex610 if buffer[position] != rune('w') { - goto l628 + goto l612 } position++ - goto l626 - l628: - position, tokenIndex = position626, tokenIndex626 + goto l610 + l612: + position, tokenIndex = position610, tokenIndex610 if buffer[position] != rune('h') { - goto l629 + goto l613 } position++ - goto l626 - l629: - position, tokenIndex = position626, tokenIndex626 + goto l610 + l613: + position, tokenIndex = position610, tokenIndex610 if buffer[position] != rune('b') { - goto l619 + goto l603 } position++ } - l626: - goto l618 - l619: - position, tokenIndex = position618, tokenIndex618 + l610: + goto l602 + l603: + position, tokenIndex = position602, tokenIndex602 { - position631, tokenIndex631 := position, tokenIndex + position615, tokenIndex615 := position, tokenIndex if buffer[position] != rune('l') { - goto l632 + goto l616 } position++ - goto l631 - l632: - position, tokenIndex = position631, tokenIndex631 + goto l615 + l616: + position, tokenIndex = position615, tokenIndex615 if buffer[position] != rune('L') { - goto l630 + goto l614 } position++ } - l631: + l615: { - position633, tokenIndex633 := position, tokenIndex + position617, tokenIndex617 := position, tokenIndex if buffer[position] != rune('s') { - goto l634 + goto l618 } position++ - goto l633 - l634: - position, tokenIndex = position633, tokenIndex633 + goto l617 + l618: + position, tokenIndex = position617, tokenIndex617 if buffer[position] != rune('S') { - goto l630 + goto l614 } position++ } - l633: + l617: { - position635, tokenIndex635 := position, tokenIndex + position619, tokenIndex619 := position, tokenIndex if buffer[position] != rune('l') { - goto l636 + goto l620 } position++ - goto l635 - l636: - position, tokenIndex = position635, tokenIndex635 + goto l619 + l620: + position, tokenIndex = position619, tokenIndex619 if buffer[position] != rune('L') { - goto l630 + goto l614 } position++ } - l635: - goto l618 - l630: - position, tokenIndex = position618, tokenIndex618 + l619: + goto l602 + l614: + position, tokenIndex = position602, tokenIndex602 { - position638, tokenIndex638 := position, tokenIndex + position622, tokenIndex622 := position, tokenIndex if buffer[position] != rune('l') { - goto l639 + goto l623 } position++ - goto l638 - l639: - position, tokenIndex = position638, tokenIndex638 + goto l622 + l623: + position, tokenIndex = position622, tokenIndex622 if buffer[position] != rune('L') { - goto l637 + goto l621 } position++ } - l638: + l622: { - position640, tokenIndex640 := position, tokenIndex + position624, tokenIndex624 := position, tokenIndex if buffer[position] != rune('s') { - goto l641 + goto l625 } position++ - goto l640 - l641: - position, tokenIndex = position640, tokenIndex640 + goto l624 + l625: + position, tokenIndex = position624, tokenIndex624 if buffer[position] != rune('S') { - goto l637 + goto l621 } position++ } - l640: + l624: { - position642, tokenIndex642 := position, tokenIndex + position626, tokenIndex626 := position, tokenIndex if buffer[position] != rune('r') { - goto l643 + goto l627 } position++ - goto l642 - l643: - position, tokenIndex = position642, tokenIndex642 + goto l626 + l627: + position, tokenIndex = position626, tokenIndex626 if buffer[position] != rune('R') { - goto l637 + goto l621 } position++ } - l642: - goto l618 - l637: - position, tokenIndex = position618, tokenIndex618 + l626: + goto l602 + l621: + position, tokenIndex = position602, tokenIndex602 { - position645, tokenIndex645 := position, tokenIndex + position629, tokenIndex629 := position, tokenIndex if buffer[position] != rune('r') { - goto l646 + goto l630 } position++ - goto l645 - l646: - position, tokenIndex = position645, tokenIndex645 + goto l629 + l630: + position, tokenIndex = position629, tokenIndex629 if buffer[position] != rune('R') { - goto l644 + goto l628 } position++ } - l645: + l629: { - position647, tokenIndex647 := position, tokenIndex + position631, tokenIndex631 := position, tokenIndex if buffer[position] != rune('o') { - goto l648 + goto l632 } position++ - goto l647 - l648: - position, tokenIndex = position647, tokenIndex647 + goto l631 + l632: + position, tokenIndex = position631, tokenIndex631 if buffer[position] != rune('O') { - goto l644 + goto l628 } position++ } - l647: + l631: { - position649, tokenIndex649 := position, tokenIndex + position633, tokenIndex633 := position, tokenIndex if buffer[position] != rune('r') { - goto l650 + goto l634 } position++ - goto l649 - l650: - position, tokenIndex = position649, tokenIndex649 + goto l633 + l634: + position, tokenIndex = position633, tokenIndex633 if buffer[position] != rune('R') { - goto l644 + goto l628 } position++ } - l649: - goto l618 - l644: - position, tokenIndex = position618, tokenIndex618 + l633: + goto l602 + l628: + position, tokenIndex = position602, tokenIndex602 { - position651, tokenIndex651 := position, tokenIndex + position635, tokenIndex635 := position, tokenIndex if buffer[position] != rune('a') { - goto l652 + goto l636 } position++ - goto l651 - l652: - position, tokenIndex = position651, tokenIndex651 + goto l635 + l636: + position, tokenIndex = position635, tokenIndex635 if buffer[position] != rune('A') { - goto l616 + goto l600 } position++ } - l651: + l635: { - position653, tokenIndex653 := position, tokenIndex + position637, tokenIndex637 := position, tokenIndex if buffer[position] != rune('s') { - goto l654 + goto l638 } position++ - goto l653 - l654: - position, tokenIndex = position653, tokenIndex653 + goto l637 + l638: + position, tokenIndex = position637, tokenIndex637 if buffer[position] != rune('S') { - goto l616 + goto l600 } position++ } - l653: + l637: { - position655, tokenIndex655 := position, tokenIndex + position639, tokenIndex639 := position, tokenIndex if buffer[position] != rune('r') { - goto l656 + goto l640 } position++ - goto l655 - l656: - position, tokenIndex = position655, tokenIndex655 + goto l639 + l640: + position, tokenIndex = position639, tokenIndex639 if buffer[position] != rune('R') { - goto l616 + goto l600 } position++ } - l655: + l639: } - l618: + l602: { - position657, tokenIndex657 := position, tokenIndex + position641, tokenIndex641 := position, tokenIndex if !_rules[ruleWS]() { - goto l657 + goto l641 } { - position659, tokenIndex659 := position, tokenIndex + position643, tokenIndex643 := position, tokenIndex if buffer[position] != rune('#') { - goto l659 + goto l643 } position++ - goto l660 - l659: - position, tokenIndex = position659, tokenIndex659 + goto l644 + l643: + position, tokenIndex = position643, tokenIndex643 } - l660: + l644: if !_rules[ruleOffset]() { - goto l657 + goto l641 } - goto l658 - l657: - position, tokenIndex = position657, tokenIndex657 + goto l642 + l641: + position, tokenIndex = position641, tokenIndex641 } - l658: - add(ruleARMConstantTweak, position617) + l642: + add(ruleARMConstantTweak, position601) } return true - l616: - position, tokenIndex = position616, tokenIndex616 + l600: + position, tokenIndex = position600, tokenIndex600 return false }, - /* 41 ARMRegister <- <((('s' / 'S') ('p' / 'P')) / (('x' / 'w' / 'd' / 'q' / 's' / 'h' / 'b') [0-9] [0-9]?) / (('x' / 'X') ('z' / 'Z') ('r' / 'R')) / (('w' / 'W') ('z' / 'Z') ('r' / 'R')) / (('n' / 'N') ('z' / 'Z') ('c' / 'C') ('v' / 'V')) / ARMVectorRegister / ('{' WS? ARMVectorRegister WS? ((',' / '-') WS? ARMVectorRegister)* WS? '}' ('[' [0-9] [0-9]? ']')?))> */ + /* 43 ARMRegister <- <((('s' / 'S') ('p' / 'P')) / (('x' / 'w' / 'd' / 'q' / 's' / 'h' / 'b') [0-9] [0-9]?) / (('x' / 'X') ('z' / 'Z') ('r' / 'R')) / (('w' / 'W') ('z' / 'Z') ('r' / 'R')) / (('n' / 'N') ('z' / 'Z') ('c' / 'C') ('v' / 'V')) / ARMVectorRegister / ('{' WS? ARMVectorRegister WS? ((',' / '-') WS? ARMVectorRegister)* WS? '}' ('[' [0-9] [0-9]? ']')?))> */ func() bool { - position661, tokenIndex661 := position, tokenIndex + position645, tokenIndex645 := position, tokenIndex { - position662 := position + position646 := position { - position663, tokenIndex663 := position, tokenIndex + position647, tokenIndex647 := position, tokenIndex { - position665, tokenIndex665 := position, tokenIndex + position649, tokenIndex649 := position, tokenIndex if buffer[position] != rune('s') { - goto l666 + goto l650 } position++ - goto l665 - l666: - position, tokenIndex = position665, tokenIndex665 + goto l649 + l650: + position, tokenIndex = position649, tokenIndex649 if buffer[position] != rune('S') { - goto l664 + goto l648 } position++ } - l665: + l649: { - position667, tokenIndex667 := position, tokenIndex + position651, tokenIndex651 := position, tokenIndex if buffer[position] != rune('p') { - goto l668 + goto l652 } position++ - goto l667 - l668: - position, tokenIndex = position667, tokenIndex667 + goto l651 + l652: + position, tokenIndex = position651, tokenIndex651 if buffer[position] != rune('P') { - goto l664 + goto l648 } position++ } - l667: - goto l663 - l664: - position, tokenIndex = position663, tokenIndex663 + l651: + goto l647 + l648: + position, tokenIndex = position647, tokenIndex647 { - position670, tokenIndex670 := position, tokenIndex + position654, tokenIndex654 := position, tokenIndex if buffer[position] != rune('x') { - goto l671 + goto l655 } position++ - goto l670 - l671: - position, tokenIndex = position670, tokenIndex670 + goto l654 + l655: + position, tokenIndex = position654, tokenIndex654 if buffer[position] != rune('w') { - goto l672 + goto l656 } position++ - goto l670 - l672: - position, tokenIndex = position670, tokenIndex670 + goto l654 + l656: + position, tokenIndex = position654, tokenIndex654 if buffer[position] != rune('d') { - goto l673 + goto l657 } position++ - goto l670 - l673: - position, tokenIndex = position670, tokenIndex670 + goto l654 + l657: + position, tokenIndex = position654, tokenIndex654 if buffer[position] != rune('q') { - goto l674 + goto l658 } position++ - goto l670 - l674: - position, tokenIndex = position670, tokenIndex670 + goto l654 + l658: + position, tokenIndex = position654, tokenIndex654 if buffer[position] != rune('s') { - goto l675 + goto l659 } position++ - goto l670 - l675: - position, tokenIndex = position670, tokenIndex670 + goto l654 + l659: + position, tokenIndex = position654, tokenIndex654 if buffer[position] != rune('h') { - goto l676 + goto l660 } position++ - goto l670 - l676: - position, tokenIndex = position670, tokenIndex670 + goto l654 + l660: + position, tokenIndex = position654, tokenIndex654 if buffer[position] != rune('b') { - goto l669 + goto l653 } position++ } - l670: + l654: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l669 + goto l653 } position++ { - position677, tokenIndex677 := position, tokenIndex + position661, tokenIndex661 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l677 + goto l661 } position++ - goto l678 - l677: - position, tokenIndex = position677, tokenIndex677 + goto l662 + l661: + position, tokenIndex = position661, tokenIndex661 } - l678: - goto l663 - l669: - position, tokenIndex = position663, tokenIndex663 + l662: + goto l647 + l653: + position, tokenIndex = position647, tokenIndex647 { - position680, tokenIndex680 := position, tokenIndex + position664, tokenIndex664 := position, tokenIndex if buffer[position] != rune('x') { - goto l681 + goto l665 } position++ - goto l680 - l681: - position, tokenIndex = position680, tokenIndex680 + goto l664 + l665: + position, tokenIndex = position664, tokenIndex664 if buffer[position] != rune('X') { - goto l679 + goto l663 } position++ } - l680: + l664: { - position682, tokenIndex682 := position, tokenIndex + position666, tokenIndex666 := position, tokenIndex if buffer[position] != rune('z') { - goto l683 + goto l667 } position++ - goto l682 - l683: - position, tokenIndex = position682, tokenIndex682 + goto l666 + l667: + position, tokenIndex = position666, tokenIndex666 if buffer[position] != rune('Z') { - goto l679 + goto l663 } position++ } - l682: + l666: { - position684, tokenIndex684 := position, tokenIndex + position668, tokenIndex668 := position, tokenIndex if buffer[position] != rune('r') { - goto l685 + goto l669 } position++ - goto l684 - l685: - position, tokenIndex = position684, tokenIndex684 + goto l668 + l669: + position, tokenIndex = position668, tokenIndex668 if buffer[position] != rune('R') { - goto l679 + goto l663 } position++ } - l684: - goto l663 - l679: - position, tokenIndex = position663, tokenIndex663 + l668: + goto l647 + l663: + position, tokenIndex = position647, tokenIndex647 { - position687, tokenIndex687 := position, tokenIndex + position671, tokenIndex671 := position, tokenIndex if buffer[position] != rune('w') { - goto l688 + goto l672 } position++ - goto l687 - l688: - position, tokenIndex = position687, tokenIndex687 + goto l671 + l672: + position, tokenIndex = position671, tokenIndex671 if buffer[position] != rune('W') { - goto l686 + goto l670 } position++ } - l687: + l671: { - position689, tokenIndex689 := position, tokenIndex + position673, tokenIndex673 := position, tokenIndex if buffer[position] != rune('z') { - goto l690 + goto l674 } position++ - goto l689 - l690: - position, tokenIndex = position689, tokenIndex689 + goto l673 + l674: + position, tokenIndex = position673, tokenIndex673 if buffer[position] != rune('Z') { - goto l686 + goto l670 } position++ } - l689: + l673: { - position691, tokenIndex691 := position, tokenIndex + position675, tokenIndex675 := position, tokenIndex if buffer[position] != rune('r') { - goto l692 + goto l676 } position++ - goto l691 - l692: - position, tokenIndex = position691, tokenIndex691 + goto l675 + l676: + position, tokenIndex = position675, tokenIndex675 if buffer[position] != rune('R') { - goto l686 + goto l670 } position++ } - l691: - goto l663 - l686: - position, tokenIndex = position663, tokenIndex663 + l675: + goto l647 + l670: + position, tokenIndex = position647, tokenIndex647 { - position694, tokenIndex694 := position, tokenIndex + position678, tokenIndex678 := position, tokenIndex if buffer[position] != rune('n') { - goto l695 + goto l679 } position++ - goto l694 - l695: - position, tokenIndex = position694, tokenIndex694 + goto l678 + l679: + position, tokenIndex = position678, tokenIndex678 if buffer[position] != rune('N') { - goto l693 + goto l677 } position++ } - l694: + l678: { - position696, tokenIndex696 := position, tokenIndex + position680, tokenIndex680 := position, tokenIndex if buffer[position] != rune('z') { - goto l697 + goto l681 } position++ - goto l696 - l697: - position, tokenIndex = position696, tokenIndex696 + goto l680 + l681: + position, tokenIndex = position680, tokenIndex680 if buffer[position] != rune('Z') { - goto l693 + goto l677 } position++ } - l696: + l680: { - position698, tokenIndex698 := position, tokenIndex + position682, tokenIndex682 := position, tokenIndex if buffer[position] != rune('c') { - goto l699 + goto l683 } position++ - goto l698 - l699: - position, tokenIndex = position698, tokenIndex698 + goto l682 + l683: + position, tokenIndex = position682, tokenIndex682 if buffer[position] != rune('C') { - goto l693 + goto l677 } position++ } - l698: + l682: { - position700, tokenIndex700 := position, tokenIndex + position684, tokenIndex684 := position, tokenIndex if buffer[position] != rune('v') { - goto l701 + goto l685 } position++ - goto l700 - l701: - position, tokenIndex = position700, tokenIndex700 + goto l684 + l685: + position, tokenIndex = position684, tokenIndex684 if buffer[position] != rune('V') { - goto l693 + goto l677 } position++ } - l700: - goto l663 - l693: - position, tokenIndex = position663, tokenIndex663 + l684: + goto l647 + l677: + position, tokenIndex = position647, tokenIndex647 if !_rules[ruleARMVectorRegister]() { - goto l702 + goto l686 } - goto l663 - l702: - position, tokenIndex = position663, tokenIndex663 + goto l647 + l686: + position, tokenIndex = position647, tokenIndex647 if buffer[position] != rune('{') { - goto l661 + goto l645 } position++ { - position703, tokenIndex703 := position, tokenIndex + position687, tokenIndex687 := position, tokenIndex if !_rules[ruleWS]() { - goto l703 + goto l687 } - goto l704 - l703: - position, tokenIndex = position703, tokenIndex703 + goto l688 + l687: + position, tokenIndex = position687, tokenIndex687 } - l704: + l688: if !_rules[ruleARMVectorRegister]() { - goto l661 + goto l645 } { - position705, tokenIndex705 := position, tokenIndex + position689, tokenIndex689 := position, tokenIndex if !_rules[ruleWS]() { - goto l705 + goto l689 } - goto l706 - l705: - position, tokenIndex = position705, tokenIndex705 + goto l690 + l689: + position, tokenIndex = position689, tokenIndex689 } - l706: - l707: + l690: + l691: { - position708, tokenIndex708 := position, tokenIndex + position692, tokenIndex692 := position, tokenIndex { - position709, tokenIndex709 := position, tokenIndex + position693, tokenIndex693 := position, tokenIndex if buffer[position] != rune(',') { - goto l710 + goto l694 } position++ - goto l709 - l710: - position, tokenIndex = position709, tokenIndex709 + goto l693 + l694: + position, tokenIndex = position693, tokenIndex693 if buffer[position] != rune('-') { - goto l708 + goto l692 } position++ } - l709: + l693: { - position711, tokenIndex711 := position, tokenIndex + position695, tokenIndex695 := position, tokenIndex if !_rules[ruleWS]() { - goto l711 + goto l695 } - goto l712 - l711: - position, tokenIndex = position711, tokenIndex711 + goto l696 + l695: + position, tokenIndex = position695, tokenIndex695 } - l712: + l696: if !_rules[ruleARMVectorRegister]() { - goto l708 + goto l692 } - goto l707 - l708: - position, tokenIndex = position708, tokenIndex708 + goto l691 + l692: + position, tokenIndex = position692, tokenIndex692 } { - position713, tokenIndex713 := position, tokenIndex + position697, tokenIndex697 := position, tokenIndex if !_rules[ruleWS]() { - goto l713 + goto l697 } - goto l714 - l713: - position, tokenIndex = position713, tokenIndex713 + goto l698 + l697: + position, tokenIndex = position697, tokenIndex697 } - l714: + l698: if buffer[position] != rune('}') { - goto l661 + goto l645 } position++ { - position715, tokenIndex715 := position, tokenIndex + position699, tokenIndex699 := position, tokenIndex if buffer[position] != rune('[') { - goto l715 + goto l699 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l715 + goto l699 } position++ { - position717, tokenIndex717 := position, tokenIndex + position701, tokenIndex701 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l717 + goto l701 } position++ - goto l718 - l717: - position, tokenIndex = position717, tokenIndex717 + goto l702 + l701: + position, tokenIndex = position701, tokenIndex701 } - l718: + l702: if buffer[position] != rune(']') { - goto l715 + goto l699 } position++ - goto l716 - l715: - position, tokenIndex = position715, tokenIndex715 + goto l700 + l699: + position, tokenIndex = position699, tokenIndex699 } - l716: + l700: } - l663: - add(ruleARMRegister, position662) + l647: + add(ruleARMRegister, position646) } return true - l661: - position, tokenIndex = position661, tokenIndex661 + l645: + position, tokenIndex = position645, tokenIndex645 return false }, - /* 42 ARMVectorRegister <- <(('v' / 'V') [0-9] [0-9]? ('.' [0-9]* ('b' / 's' / 'd' / 'h' / 'q') ('[' [0-9] [0-9]? ']')?)?)> */ + /* 44 ARMVectorRegister <- <(('v' / 'V') [0-9] [0-9]? ('.' [0-9]* ('b' / 's' / 'd' / 'h' / 'q') ('[' [0-9] [0-9]? ']')?)?)> */ func() bool { - position719, tokenIndex719 := position, tokenIndex + position703, tokenIndex703 := position, tokenIndex { - position720 := position + position704 := position { - position721, tokenIndex721 := position, tokenIndex + position705, tokenIndex705 := position, tokenIndex if buffer[position] != rune('v') { - goto l722 + goto l706 } position++ - goto l721 - l722: - position, tokenIndex = position721, tokenIndex721 + goto l705 + l706: + position, tokenIndex = position705, tokenIndex705 if buffer[position] != rune('V') { - goto l719 + goto l703 } position++ } - l721: + l705: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l719 + goto l703 } position++ { - position723, tokenIndex723 := position, tokenIndex + position707, tokenIndex707 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l723 + goto l707 } position++ - goto l724 - l723: - position, tokenIndex = position723, tokenIndex723 + goto l708 + l707: + position, tokenIndex = position707, tokenIndex707 } - l724: + l708: { - position725, tokenIndex725 := position, tokenIndex + position709, tokenIndex709 := position, tokenIndex if buffer[position] != rune('.') { - goto l725 + goto l709 } position++ - l727: + l711: { - position728, tokenIndex728 := position, tokenIndex + position712, tokenIndex712 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l728 + goto l712 } position++ - goto l727 - l728: - position, tokenIndex = position728, tokenIndex728 + goto l711 + l712: + position, tokenIndex = position712, tokenIndex712 } { - position729, tokenIndex729 := position, tokenIndex + position713, tokenIndex713 := position, tokenIndex if buffer[position] != rune('b') { - goto l730 + goto l714 } position++ - goto l729 - l730: - position, tokenIndex = position729, tokenIndex729 + goto l713 + l714: + position, tokenIndex = position713, tokenIndex713 if buffer[position] != rune('s') { - goto l731 + goto l715 } position++ - goto l729 - l731: - position, tokenIndex = position729, tokenIndex729 + goto l713 + l715: + position, tokenIndex = position713, tokenIndex713 if buffer[position] != rune('d') { - goto l732 + goto l716 } position++ - goto l729 - l732: - position, tokenIndex = position729, tokenIndex729 + goto l713 + l716: + position, tokenIndex = position713, tokenIndex713 if buffer[position] != rune('h') { - goto l733 + goto l717 } position++ - goto l729 - l733: - position, tokenIndex = position729, tokenIndex729 + goto l713 + l717: + position, tokenIndex = position713, tokenIndex713 if buffer[position] != rune('q') { - goto l725 + goto l709 } position++ } - l729: + l713: { - position734, tokenIndex734 := position, tokenIndex + position718, tokenIndex718 := position, tokenIndex if buffer[position] != rune('[') { - goto l734 + goto l718 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l734 + goto l718 } position++ { - position736, tokenIndex736 := position, tokenIndex + position720, tokenIndex720 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l736 + goto l720 } position++ - goto l737 - l736: - position, tokenIndex = position736, tokenIndex736 + goto l721 + l720: + position, tokenIndex = position720, tokenIndex720 } - l737: + l721: if buffer[position] != rune(']') { - goto l734 + goto l718 } position++ - goto l735 - l734: - position, tokenIndex = position734, tokenIndex734 + goto l719 + l718: + position, tokenIndex = position718, tokenIndex718 } - l735: - goto l726 - l725: - position, tokenIndex = position725, tokenIndex725 + l719: + goto l710 + l709: + position, tokenIndex = position709, tokenIndex709 } - l726: - add(ruleARMVectorRegister, position720) + l710: + add(ruleARMVectorRegister, position704) } return true - l719: - position, tokenIndex = position719, tokenIndex719 + l703: + position, tokenIndex = position703, tokenIndex703 return false }, - /* 43 MemoryRef <- <((SymbolRef BaseIndexScale) / SymbolRef / Low12BitsSymbolRef / (Offset* BaseIndexScale) / (SegmentRegister Offset BaseIndexScale) / (SegmentRegister BaseIndexScale) / (SegmentRegister Offset) / ARMBaseIndexScale / BaseIndexScale)> */ + /* 45 MemoryRef <- <((SymbolRef BaseIndexScale) / SymbolRef / Low12BitsSymbolRef / (Offset* BaseIndexScale) / (SegmentRegister Offset BaseIndexScale) / (SegmentRegister BaseIndexScale) / (SegmentRegister Offset) / ARMBaseIndexScale / BaseIndexScale)> */ func() bool { - position738, tokenIndex738 := position, tokenIndex + position722, tokenIndex722 := position, tokenIndex { - position739 := position + position723 := position { - position740, tokenIndex740 := position, tokenIndex + position724, tokenIndex724 := position, tokenIndex if !_rules[ruleSymbolRef]() { - goto l741 + goto l725 } if !_rules[ruleBaseIndexScale]() { - goto l741 + goto l725 } - goto l740 - l741: - position, tokenIndex = position740, tokenIndex740 + goto l724 + l725: + position, tokenIndex = position724, tokenIndex724 if !_rules[ruleSymbolRef]() { - goto l742 + goto l726 } - goto l740 - l742: - position, tokenIndex = position740, tokenIndex740 + goto l724 + l726: + position, tokenIndex = position724, tokenIndex724 if !_rules[ruleLow12BitsSymbolRef]() { - goto l743 + goto l727 } - goto l740 - l743: - position, tokenIndex = position740, tokenIndex740 - l745: + goto l724 + l727: + position, tokenIndex = position724, tokenIndex724 + l729: { - position746, tokenIndex746 := position, tokenIndex + position730, tokenIndex730 := position, tokenIndex if !_rules[ruleOffset]() { - goto l746 + goto l730 } - goto l745 - l746: - position, tokenIndex = position746, tokenIndex746 + goto l729 + l730: + position, tokenIndex = position730, tokenIndex730 } if !_rules[ruleBaseIndexScale]() { - goto l744 + goto l728 } - goto l740 - l744: - position, tokenIndex = position740, tokenIndex740 + goto l724 + l728: + position, tokenIndex = position724, tokenIndex724 if !_rules[ruleSegmentRegister]() { - goto l747 + goto l731 } if !_rules[ruleOffset]() { - goto l747 + goto l731 } if !_rules[ruleBaseIndexScale]() { - goto l747 + goto l731 } - goto l740 - l747: - position, tokenIndex = position740, tokenIndex740 + goto l724 + l731: + position, tokenIndex = position724, tokenIndex724 if !_rules[ruleSegmentRegister]() { - goto l748 + goto l732 } if !_rules[ruleBaseIndexScale]() { - goto l748 + goto l732 } - goto l740 - l748: - position, tokenIndex = position740, tokenIndex740 + goto l724 + l732: + position, tokenIndex = position724, tokenIndex724 if !_rules[ruleSegmentRegister]() { - goto l749 + goto l733 } if !_rules[ruleOffset]() { - goto l749 + goto l733 } - goto l740 - l749: - position, tokenIndex = position740, tokenIndex740 + goto l724 + l733: + position, tokenIndex = position724, tokenIndex724 if !_rules[ruleARMBaseIndexScale]() { - goto l750 + goto l734 } - goto l740 - l750: - position, tokenIndex = position740, tokenIndex740 + goto l724 + l734: + position, tokenIndex = position724, tokenIndex724 if !_rules[ruleBaseIndexScale]() { - goto l738 + goto l722 } } - l740: - add(ruleMemoryRef, position739) + l724: + add(ruleMemoryRef, position723) } return true - l738: - position, tokenIndex = position738, tokenIndex738 + l722: + position, tokenIndex = position722, tokenIndex722 return false }, - /* 44 SymbolRef <- <((Offset* '+')? (LocalSymbol / SymbolName) Offset* ('@' Section Offset*)?)> */ + /* 46 SymbolRef <- <((Offset* '+')? (LocalSymbol / SymbolName) Offset* ('@' Section Offset*)?)> */ func() bool { - position751, tokenIndex751 := position, tokenIndex + position735, tokenIndex735 := position, tokenIndex { - position752 := position + position736 := position { - position753, tokenIndex753 := position, tokenIndex - l755: + position737, tokenIndex737 := position, tokenIndex + l739: { - position756, tokenIndex756 := position, tokenIndex + position740, tokenIndex740 := position, tokenIndex if !_rules[ruleOffset]() { - goto l756 + goto l740 } - goto l755 - l756: - position, tokenIndex = position756, tokenIndex756 + goto l739 + l740: + position, tokenIndex = position740, tokenIndex740 } if buffer[position] != rune('+') { - goto l753 + goto l737 } position++ - goto l754 - l753: - position, tokenIndex = position753, tokenIndex753 + goto l738 + l737: + position, tokenIndex = position737, tokenIndex737 } - l754: + l738: { - position757, tokenIndex757 := position, tokenIndex + position741, tokenIndex741 := position, tokenIndex if !_rules[ruleLocalSymbol]() { - goto l758 + goto l742 } - goto l757 - l758: - position, tokenIndex = position757, tokenIndex757 + goto l741 + l742: + position, tokenIndex = position741, tokenIndex741 if !_rules[ruleSymbolName]() { - goto l751 + goto l735 } } - l757: - l759: + l741: + l743: { - position760, tokenIndex760 := position, tokenIndex + position744, tokenIndex744 := position, tokenIndex if !_rules[ruleOffset]() { - goto l760 + goto l744 } - goto l759 - l760: - position, tokenIndex = position760, tokenIndex760 + goto l743 + l744: + position, tokenIndex = position744, tokenIndex744 } { - position761, tokenIndex761 := position, tokenIndex + position745, tokenIndex745 := position, tokenIndex if buffer[position] != rune('@') { - goto l761 + goto l745 } position++ if !_rules[ruleSection]() { - goto l761 + goto l745 } - l763: + l747: { - position764, tokenIndex764 := position, tokenIndex + position748, tokenIndex748 := position, tokenIndex if !_rules[ruleOffset]() { - goto l764 + goto l748 } - goto l763 - l764: - position, tokenIndex = position764, tokenIndex764 + goto l747 + l748: + position, tokenIndex = position748, tokenIndex748 } - goto l762 - l761: - position, tokenIndex = position761, tokenIndex761 + goto l746 + l745: + position, tokenIndex = position745, tokenIndex745 } - l762: - add(ruleSymbolRef, position752) + l746: + add(ruleSymbolRef, position736) } return true - l751: - position, tokenIndex = position751, tokenIndex751 + l735: + position, tokenIndex = position735, tokenIndex735 return false }, - /* 45 Low12BitsSymbolRef <- <(':' ('l' / 'L') ('o' / 'O') '1' '2' ':' (LocalSymbol / SymbolName) Offset?)> */ + /* 47 Low12BitsSymbolRef <- <(':' ('l' / 'L') ('o' / 'O') '1' '2' ':' (LocalSymbol / SymbolName) Offset?)> */ func() bool { - position765, tokenIndex765 := position, tokenIndex + position749, tokenIndex749 := position, tokenIndex { - position766 := position + position750 := position if buffer[position] != rune(':') { - goto l765 + goto l749 } position++ { - position767, tokenIndex767 := position, tokenIndex + position751, tokenIndex751 := position, tokenIndex if buffer[position] != rune('l') { - goto l768 + goto l752 } position++ - goto l767 - l768: - position, tokenIndex = position767, tokenIndex767 + goto l751 + l752: + position, tokenIndex = position751, tokenIndex751 if buffer[position] != rune('L') { - goto l765 + goto l749 } position++ } - l767: + l751: { - position769, tokenIndex769 := position, tokenIndex + position753, tokenIndex753 := position, tokenIndex if buffer[position] != rune('o') { - goto l770 + goto l754 } position++ - goto l769 - l770: - position, tokenIndex = position769, tokenIndex769 + goto l753 + l754: + position, tokenIndex = position753, tokenIndex753 if buffer[position] != rune('O') { - goto l765 + goto l749 } position++ } - l769: + l753: if buffer[position] != rune('1') { - goto l765 + goto l749 } position++ if buffer[position] != rune('2') { - goto l765 + goto l749 } position++ if buffer[position] != rune(':') { - goto l765 + goto l749 } position++ { - position771, tokenIndex771 := position, tokenIndex + position755, tokenIndex755 := position, tokenIndex if !_rules[ruleLocalSymbol]() { - goto l772 + goto l756 } - goto l771 - l772: - position, tokenIndex = position771, tokenIndex771 + goto l755 + l756: + position, tokenIndex = position755, tokenIndex755 if !_rules[ruleSymbolName]() { - goto l765 + goto l749 } } - l771: + l755: { - position773, tokenIndex773 := position, tokenIndex + position757, tokenIndex757 := position, tokenIndex if !_rules[ruleOffset]() { - goto l773 + goto l757 } - goto l774 - l773: - position, tokenIndex = position773, tokenIndex773 + goto l758 + l757: + position, tokenIndex = position757, tokenIndex757 } - l774: - add(ruleLow12BitsSymbolRef, position766) + l758: + add(ruleLow12BitsSymbolRef, position750) } return true - l765: - position, tokenIndex = position765, tokenIndex765 + l749: + position, tokenIndex = position749, tokenIndex749 return false }, - /* 46 ARMBaseIndexScale <- <('[' ARMRegister (',' WS? (('#'? Offset (('*' [0-9]+) / ('*' '(' [0-9]+ Operator [0-9]+ ')') / ('+' [0-9]+)*)?) / ('#'? ARMGOTLow12) / ('#'? Low12BitsSymbolRef) / ARMRegister) (',' WS? ARMConstantTweak)?)? ']' ARMPostincrement?)> */ + /* 48 ARMBaseIndexScale <- <('[' ARMRegister (',' WS? (('#'? Offset (('*' [0-9]+) / ('*' '(' [0-9]+ Operator [0-9]+ ')') / ('+' [0-9]+)*)?) / ('#'? ARMGOTLow12) / ('#'? Low12BitsSymbolRef) / ARMRegister) (',' WS? ARMConstantTweak)?)? ']' ARMPostincrement?)> */ func() bool { - position775, tokenIndex775 := position, tokenIndex + position759, tokenIndex759 := position, tokenIndex { - position776 := position + position760 := position if buffer[position] != rune('[') { - goto l775 + goto l759 } position++ if !_rules[ruleARMRegister]() { - goto l775 + goto l759 } { - position777, tokenIndex777 := position, tokenIndex + position761, tokenIndex761 := position, tokenIndex if buffer[position] != rune(',') { - goto l777 + goto l761 } position++ { - position779, tokenIndex779 := position, tokenIndex + position763, tokenIndex763 := position, tokenIndex if !_rules[ruleWS]() { - goto l779 + goto l763 } - goto l780 - l779: - position, tokenIndex = position779, tokenIndex779 + goto l764 + l763: + position, tokenIndex = position763, tokenIndex763 } - l780: + l764: { - position781, tokenIndex781 := position, tokenIndex + position765, tokenIndex765 := position, tokenIndex { - position783, tokenIndex783 := position, tokenIndex + position767, tokenIndex767 := position, tokenIndex if buffer[position] != rune('#') { - goto l783 + goto l767 } position++ - goto l784 - l783: - position, tokenIndex = position783, tokenIndex783 + goto l768 + l767: + position, tokenIndex = position767, tokenIndex767 } - l784: + l768: if !_rules[ruleOffset]() { - goto l782 + goto l766 } { - position785, tokenIndex785 := position, tokenIndex + position769, tokenIndex769 := position, tokenIndex { - position787, tokenIndex787 := position, tokenIndex + position771, tokenIndex771 := position, tokenIndex if buffer[position] != rune('*') { - goto l788 + goto l772 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l788 + goto l772 } position++ - l789: + l773: { - position790, tokenIndex790 := position, tokenIndex + position774, tokenIndex774 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l790 + goto l774 } position++ - goto l789 - l790: - position, tokenIndex = position790, tokenIndex790 + goto l773 + l774: + position, tokenIndex = position774, tokenIndex774 } - goto l787 - l788: - position, tokenIndex = position787, tokenIndex787 + goto l771 + l772: + position, tokenIndex = position771, tokenIndex771 if buffer[position] != rune('*') { - goto l791 + goto l775 } position++ if buffer[position] != rune('(') { - goto l791 + goto l775 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l791 + goto l775 } position++ - l792: + l776: { - position793, tokenIndex793 := position, tokenIndex + position777, tokenIndex777 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l793 + goto l777 } position++ - goto l792 - l793: - position, tokenIndex = position793, tokenIndex793 + goto l776 + l777: + position, tokenIndex = position777, tokenIndex777 } if !_rules[ruleOperator]() { - goto l791 + goto l775 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l791 + goto l775 } position++ - l794: + l778: { - position795, tokenIndex795 := position, tokenIndex + position779, tokenIndex779 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l795 + goto l779 } position++ - goto l794 - l795: - position, tokenIndex = position795, tokenIndex795 + goto l778 + l779: + position, tokenIndex = position779, tokenIndex779 } if buffer[position] != rune(')') { - goto l791 + goto l775 } position++ - goto l787 - l791: - position, tokenIndex = position787, tokenIndex787 - l796: + goto l771 + l775: + position, tokenIndex = position771, tokenIndex771 + l780: { - position797, tokenIndex797 := position, tokenIndex + position781, tokenIndex781 := position, tokenIndex if buffer[position] != rune('+') { - goto l797 + goto l781 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l797 + goto l781 } position++ - l798: + l782: { - position799, tokenIndex799 := position, tokenIndex + position783, tokenIndex783 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l799 + goto l783 } position++ - goto l798 - l799: - position, tokenIndex = position799, tokenIndex799 + goto l782 + l783: + position, tokenIndex = position783, tokenIndex783 } - goto l796 - l797: - position, tokenIndex = position797, tokenIndex797 + goto l780 + l781: + position, tokenIndex = position781, tokenIndex781 } } - l787: - goto l786 + l771: + goto l770 - position, tokenIndex = position785, tokenIndex785 + position, tokenIndex = position769, tokenIndex769 } - l786: - goto l781 - l782: - position, tokenIndex = position781, tokenIndex781 + l770: + goto l765 + l766: + position, tokenIndex = position765, tokenIndex765 { - position801, tokenIndex801 := position, tokenIndex + position785, tokenIndex785 := position, tokenIndex if buffer[position] != rune('#') { - goto l801 + goto l785 } position++ - goto l802 - l801: - position, tokenIndex = position801, tokenIndex801 + goto l786 + l785: + position, tokenIndex = position785, tokenIndex785 } - l802: + l786: if !_rules[ruleARMGOTLow12]() { - goto l800 + goto l784 } - goto l781 - l800: - position, tokenIndex = position781, tokenIndex781 + goto l765 + l784: + position, tokenIndex = position765, tokenIndex765 { - position804, tokenIndex804 := position, tokenIndex + position788, tokenIndex788 := position, tokenIndex if buffer[position] != rune('#') { - goto l804 + goto l788 } position++ - goto l805 - l804: - position, tokenIndex = position804, tokenIndex804 + goto l789 + l788: + position, tokenIndex = position788, tokenIndex788 } - l805: + l789: if !_rules[ruleLow12BitsSymbolRef]() { - goto l803 + goto l787 } - goto l781 - l803: - position, tokenIndex = position781, tokenIndex781 + goto l765 + l787: + position, tokenIndex = position765, tokenIndex765 if !_rules[ruleARMRegister]() { - goto l777 + goto l761 } } - l781: + l765: { - position806, tokenIndex806 := position, tokenIndex + position790, tokenIndex790 := position, tokenIndex if buffer[position] != rune(',') { - goto l806 + goto l790 } position++ { - position808, tokenIndex808 := position, tokenIndex + position792, tokenIndex792 := position, tokenIndex if !_rules[ruleWS]() { - goto l808 + goto l792 } - goto l809 - l808: - position, tokenIndex = position808, tokenIndex808 + goto l793 + l792: + position, tokenIndex = position792, tokenIndex792 } - l809: + l793: if !_rules[ruleARMConstantTweak]() { - goto l806 + goto l790 } - goto l807 - l806: - position, tokenIndex = position806, tokenIndex806 + goto l791 + l790: + position, tokenIndex = position790, tokenIndex790 } - l807: - goto l778 - l777: - position, tokenIndex = position777, tokenIndex777 + l791: + goto l762 + l761: + position, tokenIndex = position761, tokenIndex761 } - l778: + l762: if buffer[position] != rune(']') { - goto l775 + goto l759 } position++ { - position810, tokenIndex810 := position, tokenIndex + position794, tokenIndex794 := position, tokenIndex if !_rules[ruleARMPostincrement]() { - goto l810 + goto l794 } - goto l811 - l810: - position, tokenIndex = position810, tokenIndex810 + goto l795 + l794: + position, tokenIndex = position794, tokenIndex794 } - l811: - add(ruleARMBaseIndexScale, position776) + l795: + add(ruleARMBaseIndexScale, position760) } return true - l775: - position, tokenIndex = position775, tokenIndex775 + l759: + position, tokenIndex = position759, tokenIndex759 return false }, - /* 47 ARMGOTLow12 <- <(':' ('g' / 'G') ('o' / 'O') ('t' / 'T') '_' ('l' / 'L') ('o' / 'O') '1' '2' ':' SymbolName)> */ + /* 49 ARMGOTLow12 <- <(':' ('g' / 'G') ('o' / 'O') ('t' / 'T') '_' ('l' / 'L') ('o' / 'O') '1' '2' ':' SymbolName)> */ func() bool { - position812, tokenIndex812 := position, tokenIndex + position796, tokenIndex796 := position, tokenIndex { - position813 := position + position797 := position if buffer[position] != rune(':') { - goto l812 + goto l796 } position++ { - position814, tokenIndex814 := position, tokenIndex + position798, tokenIndex798 := position, tokenIndex if buffer[position] != rune('g') { - goto l815 + goto l799 } position++ - goto l814 - l815: - position, tokenIndex = position814, tokenIndex814 + goto l798 + l799: + position, tokenIndex = position798, tokenIndex798 if buffer[position] != rune('G') { - goto l812 + goto l796 } position++ } - l814: + l798: { - position816, tokenIndex816 := position, tokenIndex + position800, tokenIndex800 := position, tokenIndex if buffer[position] != rune('o') { - goto l817 + goto l801 } position++ - goto l816 - l817: - position, tokenIndex = position816, tokenIndex816 + goto l800 + l801: + position, tokenIndex = position800, tokenIndex800 if buffer[position] != rune('O') { - goto l812 + goto l796 } position++ } - l816: + l800: { - position818, tokenIndex818 := position, tokenIndex + position802, tokenIndex802 := position, tokenIndex if buffer[position] != rune('t') { - goto l819 + goto l803 } position++ - goto l818 - l819: - position, tokenIndex = position818, tokenIndex818 + goto l802 + l803: + position, tokenIndex = position802, tokenIndex802 if buffer[position] != rune('T') { - goto l812 + goto l796 } position++ } - l818: + l802: if buffer[position] != rune('_') { - goto l812 + goto l796 } position++ { - position820, tokenIndex820 := position, tokenIndex + position804, tokenIndex804 := position, tokenIndex if buffer[position] != rune('l') { - goto l821 + goto l805 } position++ - goto l820 - l821: - position, tokenIndex = position820, tokenIndex820 + goto l804 + l805: + position, tokenIndex = position804, tokenIndex804 if buffer[position] != rune('L') { - goto l812 + goto l796 } position++ } - l820: + l804: { - position822, tokenIndex822 := position, tokenIndex + position806, tokenIndex806 := position, tokenIndex if buffer[position] != rune('o') { - goto l823 + goto l807 } position++ - goto l822 - l823: - position, tokenIndex = position822, tokenIndex822 + goto l806 + l807: + position, tokenIndex = position806, tokenIndex806 if buffer[position] != rune('O') { - goto l812 + goto l796 } position++ } - l822: + l806: if buffer[position] != rune('1') { - goto l812 + goto l796 } position++ if buffer[position] != rune('2') { - goto l812 + goto l796 } position++ if buffer[position] != rune(':') { - goto l812 + goto l796 } position++ if !_rules[ruleSymbolName]() { - goto l812 + goto l796 } - add(ruleARMGOTLow12, position813) + add(ruleARMGOTLow12, position797) } return true - l812: - position, tokenIndex = position812, tokenIndex812 + l796: + position, tokenIndex = position796, tokenIndex796 return false }, - /* 48 ARMPostincrement <- <'!'> */ + /* 50 ARMPostincrement <- <'!'> */ func() bool { - position824, tokenIndex824 := position, tokenIndex + position808, tokenIndex808 := position, tokenIndex { - position825 := position + position809 := position if buffer[position] != rune('!') { - goto l824 + goto l808 } position++ - add(ruleARMPostincrement, position825) + add(ruleARMPostincrement, position809) } return true - l824: - position, tokenIndex = position824, tokenIndex824 + l808: + position, tokenIndex = position808, tokenIndex808 return false }, - /* 49 BaseIndexScale <- <('(' RegisterOrConstant? WS? (',' WS? RegisterOrConstant WS? (',' [0-9]+)?)? ')')> */ + /* 51 BaseIndexScale <- <('(' RegisterOrConstant? WS? (',' WS? RegisterOrConstant WS? (',' [0-9]+)?)? ')')> */ func() bool { - position826, tokenIndex826 := position, tokenIndex + position810, tokenIndex810 := position, tokenIndex { - position827 := position + position811 := position if buffer[position] != rune('(') { - goto l826 + goto l810 } position++ { - position828, tokenIndex828 := position, tokenIndex + position812, tokenIndex812 := position, tokenIndex if !_rules[ruleRegisterOrConstant]() { - goto l828 + goto l812 } - goto l829 - l828: - position, tokenIndex = position828, tokenIndex828 + goto l813 + l812: + position, tokenIndex = position812, tokenIndex812 } - l829: + l813: { - position830, tokenIndex830 := position, tokenIndex + position814, tokenIndex814 := position, tokenIndex if !_rules[ruleWS]() { - goto l830 + goto l814 } - goto l831 - l830: - position, tokenIndex = position830, tokenIndex830 + goto l815 + l814: + position, tokenIndex = position814, tokenIndex814 } - l831: + l815: { - position832, tokenIndex832 := position, tokenIndex + position816, tokenIndex816 := position, tokenIndex if buffer[position] != rune(',') { - goto l832 + goto l816 } position++ { - position834, tokenIndex834 := position, tokenIndex + position818, tokenIndex818 := position, tokenIndex if !_rules[ruleWS]() { - goto l834 + goto l818 } - goto l835 - l834: - position, tokenIndex = position834, tokenIndex834 + goto l819 + l818: + position, tokenIndex = position818, tokenIndex818 } - l835: + l819: if !_rules[ruleRegisterOrConstant]() { - goto l832 + goto l816 } { - position836, tokenIndex836 := position, tokenIndex + position820, tokenIndex820 := position, tokenIndex if !_rules[ruleWS]() { - goto l836 + goto l820 } - goto l837 - l836: - position, tokenIndex = position836, tokenIndex836 + goto l821 + l820: + position, tokenIndex = position820, tokenIndex820 } - l837: + l821: { - position838, tokenIndex838 := position, tokenIndex + position822, tokenIndex822 := position, tokenIndex if buffer[position] != rune(',') { - goto l838 + goto l822 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l838 + goto l822 } position++ - l840: + l824: { - position841, tokenIndex841 := position, tokenIndex + position825, tokenIndex825 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l841 + goto l825 } position++ - goto l840 - l841: - position, tokenIndex = position841, tokenIndex841 + goto l824 + l825: + position, tokenIndex = position825, tokenIndex825 } - goto l839 - l838: - position, tokenIndex = position838, tokenIndex838 + goto l823 + l822: + position, tokenIndex = position822, tokenIndex822 } - l839: - goto l833 - l832: - position, tokenIndex = position832, tokenIndex832 + l823: + goto l817 + l816: + position, tokenIndex = position816, tokenIndex816 } - l833: + l817: if buffer[position] != rune(')') { - goto l826 + goto l810 } position++ - add(ruleBaseIndexScale, position827) + add(ruleBaseIndexScale, position811) } return true - l826: - position, tokenIndex = position826, tokenIndex826 + l810: + position, tokenIndex = position810, tokenIndex810 return false }, - /* 50 Operator <- <('+' / '-')> */ + /* 52 Operator <- <('+' / '-')> */ func() bool { - position842, tokenIndex842 := position, tokenIndex + position826, tokenIndex826 := position, tokenIndex { - position843 := position + position827 := position { - position844, tokenIndex844 := position, tokenIndex + position828, tokenIndex828 := position, tokenIndex if buffer[position] != rune('+') { - goto l845 + goto l829 } position++ - goto l844 - l845: - position, tokenIndex = position844, tokenIndex844 + goto l828 + l829: + position, tokenIndex = position828, tokenIndex828 if buffer[position] != rune('-') { - goto l842 + goto l826 } position++ } - l844: - add(ruleOperator, position843) + l828: + add(ruleOperator, position827) } return true - l842: - position, tokenIndex = position842, tokenIndex842 + l826: + position, tokenIndex = position826, tokenIndex826 return false }, - /* 51 OffsetOperator <- <('+' / '-' / '*')> */ + /* 53 OffsetOperator <- <('+' / '-' / '*')> */ func() bool { - position846, tokenIndex846 := position, tokenIndex + position830, tokenIndex830 := position, tokenIndex { - position847 := position + position831 := position { - position848, tokenIndex848 := position, tokenIndex + position832, tokenIndex832 := position, tokenIndex if buffer[position] != rune('+') { - goto l849 + goto l833 } position++ - goto l848 - l849: - position, tokenIndex = position848, tokenIndex848 + goto l832 + l833: + position, tokenIndex = position832, tokenIndex832 if buffer[position] != rune('-') { - goto l850 + goto l834 } position++ - goto l848 - l850: - position, tokenIndex = position848, tokenIndex848 + goto l832 + l834: + position, tokenIndex = position832, tokenIndex832 if buffer[position] != rune('*') { - goto l846 + goto l830 } position++ } - l848: - add(ruleOffsetOperator, position847) + l832: + add(ruleOffsetOperator, position831) } return true - l846: - position, tokenIndex = position846, tokenIndex846 + l830: + position, tokenIndex = position830, tokenIndex830 return false }, - /* 52 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]))))> */ + /* 54 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 { - position851, tokenIndex851 := position, tokenIndex + position835, tokenIndex835 := position, tokenIndex { - position852 := position + position836 := position { - position853, tokenIndex853 := position, tokenIndex + position837, tokenIndex837 := position, tokenIndex if buffer[position] != rune('+') { - goto l853 + goto l837 } position++ - goto l854 - l853: - position, tokenIndex = position853, tokenIndex853 + goto l838 + l837: + position, tokenIndex = position837, tokenIndex837 } - l854: + l838: { - position855, tokenIndex855 := position, tokenIndex + position839, tokenIndex839 := position, tokenIndex if buffer[position] != rune('-') { - goto l855 + goto l839 } position++ - goto l856 - l855: - position, tokenIndex = position855, tokenIndex855 + goto l840 + l839: + position, tokenIndex = position839, tokenIndex839 } - l856: + l840: { - position857, tokenIndex857 := position, tokenIndex + position841, tokenIndex841 := position, tokenIndex if buffer[position] != rune('0') { - goto l858 + goto l842 } position++ { - position859, tokenIndex859 := position, tokenIndex + position843, tokenIndex843 := position, tokenIndex if buffer[position] != rune('b') { - goto l860 + goto l844 } position++ - goto l859 - l860: - position, tokenIndex = position859, tokenIndex859 + goto l843 + l844: + position, tokenIndex = position843, tokenIndex843 if buffer[position] != rune('B') { - goto l858 + goto l842 } position++ } - l859: + l843: { - position863, tokenIndex863 := position, tokenIndex + position847, tokenIndex847 := position, tokenIndex if buffer[position] != rune('0') { - goto l864 + goto l848 } position++ - goto l863 - l864: - position, tokenIndex = position863, tokenIndex863 + goto l847 + l848: + position, tokenIndex = position847, tokenIndex847 if buffer[position] != rune('1') { - goto l858 + goto l842 } position++ } - l863: - l861: + l847: + l845: { - position862, tokenIndex862 := position, tokenIndex + position846, tokenIndex846 := position, tokenIndex { - position865, tokenIndex865 := position, tokenIndex + position849, tokenIndex849 := position, tokenIndex if buffer[position] != rune('0') { - goto l866 + goto l850 } position++ - goto l865 - l866: - position, tokenIndex = position865, tokenIndex865 + goto l849 + l850: + position, tokenIndex = position849, tokenIndex849 if buffer[position] != rune('1') { - goto l862 + goto l846 } position++ } - l865: - goto l861 - l862: - position, tokenIndex = position862, tokenIndex862 + l849: + goto l845 + l846: + position, tokenIndex = position846, tokenIndex846 } - goto l857 - l858: - position, tokenIndex = position857, tokenIndex857 + goto l841 + l842: + position, tokenIndex = position841, tokenIndex841 if buffer[position] != rune('0') { - goto l867 + goto l851 } position++ { - position868, tokenIndex868 := position, tokenIndex + position852, tokenIndex852 := position, tokenIndex if buffer[position] != rune('x') { - goto l869 + goto l853 } position++ - goto l868 - l869: - position, tokenIndex = position868, tokenIndex868 + goto l852 + l853: + position, tokenIndex = position852, tokenIndex852 if buffer[position] != rune('X') { - goto l867 + goto l851 } position++ } - l868: + l852: { - position872, tokenIndex872 := position, tokenIndex + position856, tokenIndex856 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l873 + goto l857 } position++ - goto l872 - l873: - position, tokenIndex = position872, tokenIndex872 + goto l856 + l857: + position, tokenIndex = position856, tokenIndex856 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l874 + goto l858 } position++ - goto l872 - l874: - position, tokenIndex = position872, tokenIndex872 + goto l856 + l858: + position, tokenIndex = position856, tokenIndex856 { - position875, tokenIndex875 := position, tokenIndex + position859, tokenIndex859 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l876 + goto l860 } position++ - goto l875 - l876: - position, tokenIndex = position875, tokenIndex875 + goto l859 + l860: + position, tokenIndex = position859, tokenIndex859 if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l867 + goto l851 } position++ } - l875: + l859: } - l872: - l870: + l856: + l854: { - position871, tokenIndex871 := position, tokenIndex + position855, tokenIndex855 := position, tokenIndex { - position877, tokenIndex877 := position, tokenIndex + position861, tokenIndex861 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l878 + goto l862 } position++ - goto l877 - l878: - position, tokenIndex = position877, tokenIndex877 + goto l861 + l862: + position, tokenIndex = position861, tokenIndex861 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l879 + goto l863 } position++ - goto l877 - l879: - position, tokenIndex = position877, tokenIndex877 + goto l861 + l863: + position, tokenIndex = position861, tokenIndex861 { - position880, tokenIndex880 := position, tokenIndex + position864, tokenIndex864 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l881 + goto l865 } position++ - goto l880 - l881: - position, tokenIndex = position880, tokenIndex880 + goto l864 + l865: + position, tokenIndex = position864, tokenIndex864 if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l871 + goto l855 } position++ } - l880: + l864: } - l877: - goto l870 - l871: - position, tokenIndex = position871, tokenIndex871 + l861: + goto l854 + l855: + position, tokenIndex = position855, tokenIndex855 } - goto l857 - l867: - position, tokenIndex = position857, tokenIndex857 + goto l841 + l851: + position, tokenIndex = position841, tokenIndex841 { - position882, tokenIndex882 := position, tokenIndex + position866, tokenIndex866 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l883 + goto l867 } position++ - l884: + l868: { - position885, tokenIndex885 := position, tokenIndex + position869, tokenIndex869 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l885 + goto l869 } position++ - goto l884 - l885: - position, tokenIndex = position885, tokenIndex885 + goto l868 + l869: + position, tokenIndex = position869, tokenIndex869 } if !_rules[ruleWS]() { - goto l883 + goto l867 } if !_rules[ruleOffsetOperator]() { - goto l883 + goto l867 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l883 + goto l867 } position++ - l886: + l870: { - position887, tokenIndex887 := position, tokenIndex + position871, tokenIndex871 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l887 + goto l871 } position++ - goto l886 - l887: - position, tokenIndex = position887, tokenIndex887 + goto l870 + l871: + position, tokenIndex = position871, tokenIndex871 } - goto l882 - l883: - position, tokenIndex = position882, tokenIndex882 + goto l866 + l867: + position, tokenIndex = position866, tokenIndex866 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l888 + goto l872 } position++ - l889: + l873: { - position890, tokenIndex890 := position, tokenIndex + position874, tokenIndex874 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l890 + goto l874 } position++ - goto l889 - l890: - position, tokenIndex = position890, tokenIndex890 + goto l873 + l874: + position, tokenIndex = position874, tokenIndex874 } { - position891, tokenIndex891 := position, tokenIndex + position875, tokenIndex875 := position, tokenIndex if !_rules[ruleOffsetOperator]() { - goto l891 + goto l875 } if buffer[position] != rune('(') { - goto l891 + goto l875 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l891 + goto l875 } position++ - l893: + l877: { - position894, tokenIndex894 := position, tokenIndex + position878, tokenIndex878 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l894 + goto l878 } position++ - goto l893 - l894: - position, tokenIndex = position894, tokenIndex894 + goto l877 + l878: + position, tokenIndex = position878, tokenIndex878 } if !_rules[ruleOffsetOperator]() { - goto l891 + goto l875 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l891 + goto l875 } position++ - l895: + l879: { - position896, tokenIndex896 := position, tokenIndex + position880, tokenIndex880 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l896 + goto l880 } position++ - goto l895 - l896: - position, tokenIndex = position896, tokenIndex896 + goto l879 + l880: + position, tokenIndex = position880, tokenIndex880 } if buffer[position] != rune(')') { - goto l891 + goto l875 } position++ - goto l892 - l891: - position, tokenIndex = position891, tokenIndex891 - } - l892: - goto l882 - l888: - position, tokenIndex = position882, tokenIndex882 + goto l876 + l875: + position, tokenIndex = position875, tokenIndex875 + } + l876: + goto l866 + l872: + position, tokenIndex = position866, tokenIndex866 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l897 + goto l881 } position++ - l898: + l882: { - position899, tokenIndex899 := position, tokenIndex + position883, tokenIndex883 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l899 + goto l883 } position++ - goto l898 - l899: - position, tokenIndex = position899, tokenIndex899 + goto l882 + l883: + position, tokenIndex = position883, tokenIndex883 } { - position900, tokenIndex900 := position, tokenIndex + position884, tokenIndex884 := position, tokenIndex if !_rules[ruleOffsetOperator]() { - goto l900 + goto l884 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l900 + goto l884 } position++ - l902: + l886: { - position903, tokenIndex903 := position, tokenIndex + position887, tokenIndex887 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l903 + goto l887 } position++ - goto l902 - l903: - position, tokenIndex = position903, tokenIndex903 + goto l886 + l887: + position, tokenIndex = position887, tokenIndex887 } if !_rules[ruleOffsetOperator]() { - goto l900 + goto l884 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l900 + goto l884 } position++ - l904: + l888: { - position905, tokenIndex905 := position, tokenIndex + position889, tokenIndex889 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l905 + goto l889 } position++ - goto l904 - l905: - position, tokenIndex = position905, tokenIndex905 + goto l888 + l889: + position, tokenIndex = position889, tokenIndex889 } - goto l901 - l900: - position, tokenIndex = position900, tokenIndex900 - } - l901: - goto l882 - l897: - position, tokenIndex = position882, tokenIndex882 + goto l885 + l884: + position, tokenIndex = position884, tokenIndex884 + } + l885: + goto l866 + l881: + position, tokenIndex = position866, tokenIndex866 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l906 + goto l890 } position++ - l907: + l891: { - position908, tokenIndex908 := position, tokenIndex + position892, tokenIndex892 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l908 + goto l892 } position++ - goto l907 - l908: - position, tokenIndex = position908, tokenIndex908 + goto l891 + l892: + position, tokenIndex = position892, tokenIndex892 } { - position909, tokenIndex909 := position, tokenIndex + position893, tokenIndex893 := position, tokenIndex if !_rules[ruleOffsetOperator]() { - goto l909 + goto l893 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l909 + goto l893 } position++ - l911: + l895: { - position912, tokenIndex912 := position, tokenIndex + position896, tokenIndex896 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l912 + goto l896 } position++ - goto l911 - l912: - position, tokenIndex = position912, tokenIndex912 + goto l895 + l896: + position, tokenIndex = position896, tokenIndex896 } - goto l910 - l909: - position, tokenIndex = position909, tokenIndex909 + goto l894 + l893: + position, tokenIndex = position893, tokenIndex893 } - l910: - goto l882 - l906: - position, tokenIndex = position882, tokenIndex882 + l894: + goto l866 + l890: + position, tokenIndex = position866, tokenIndex866 if buffer[position] != rune('(') { - goto l913 + goto l897 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l913 + goto l897 } position++ - l914: + l898: { - position915, tokenIndex915 := position, tokenIndex + position899, tokenIndex899 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l915 + goto l899 } position++ - goto l914 - l915: - position, tokenIndex = position915, tokenIndex915 + goto l898 + l899: + position, tokenIndex = position899, tokenIndex899 } { - position916, tokenIndex916 := position, tokenIndex + position900, tokenIndex900 := position, tokenIndex if !_rules[ruleWS]() { - goto l916 + goto l900 } - goto l917 - l916: - position, tokenIndex = position916, tokenIndex916 + goto l901 + l900: + position, tokenIndex = position900, tokenIndex900 } - l917: + l901: if !_rules[ruleOffsetOperator]() { - goto l913 + goto l897 } { - position918, tokenIndex918 := position, tokenIndex + position902, tokenIndex902 := position, tokenIndex if !_rules[ruleWS]() { - goto l918 + goto l902 } - goto l919 - l918: - position, tokenIndex = position918, tokenIndex918 + goto l903 + l902: + position, tokenIndex = position902, tokenIndex902 } - l919: + l903: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l913 + goto l897 } position++ - l920: + l904: { - position921, tokenIndex921 := position, tokenIndex + position905, tokenIndex905 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l921 + goto l905 } position++ - goto l920 - l921: - position, tokenIndex = position921, tokenIndex921 + goto l904 + l905: + position, tokenIndex = position905, tokenIndex905 } if buffer[position] != rune(')') { - goto l913 + goto l897 } position++ if !_rules[ruleOffsetOperator]() { - goto l913 + goto l897 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l913 + goto l897 } position++ - l922: + l906: { - position923, tokenIndex923 := position, tokenIndex + position907, tokenIndex907 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l923 + goto l907 } position++ - goto l922 - l923: - position, tokenIndex = position923, tokenIndex923 + goto l906 + l907: + position, tokenIndex = position907, tokenIndex907 } if !_rules[ruleOffsetOperator]() { - goto l913 + goto l897 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l913 + goto l897 } position++ - l924: + l908: { - position925, tokenIndex925 := position, tokenIndex + position909, tokenIndex909 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l925 + goto l909 } position++ - goto l924 - l925: - position, tokenIndex = position925, tokenIndex925 + goto l908 + l909: + position, tokenIndex = position909, tokenIndex909 } - goto l882 - l913: - position, tokenIndex = position882, tokenIndex882 + goto l866 + l897: + position, tokenIndex = position866, tokenIndex866 if buffer[position] != rune('(') { - goto l926 + goto l910 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l926 + goto l910 } position++ - l927: + l911: { - position928, tokenIndex928 := position, tokenIndex + position912, tokenIndex912 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l928 + goto l912 } position++ - goto l927 - l928: - position, tokenIndex = position928, tokenIndex928 + goto l911 + l912: + position, tokenIndex = position912, tokenIndex912 } { - position929, tokenIndex929 := position, tokenIndex + position913, tokenIndex913 := position, tokenIndex if !_rules[ruleWS]() { - goto l929 + goto l913 } - goto l930 - l929: - position, tokenIndex = position929, tokenIndex929 + goto l914 + l913: + position, tokenIndex = position913, tokenIndex913 } - l930: + l914: if !_rules[ruleOffsetOperator]() { - goto l926 + goto l910 } { - position931, tokenIndex931 := position, tokenIndex + position915, tokenIndex915 := position, tokenIndex if !_rules[ruleWS]() { - goto l931 + goto l915 } - goto l932 - l931: - position, tokenIndex = position931, tokenIndex931 + goto l916 + l915: + position, tokenIndex = position915, tokenIndex915 } - l932: + l916: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l926 + goto l910 } position++ - l933: + l917: { - position934, tokenIndex934 := position, tokenIndex + position918, tokenIndex918 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l934 + goto l918 } position++ - goto l933 - l934: - position, tokenIndex = position934, tokenIndex934 + goto l917 + l918: + position, tokenIndex = position918, tokenIndex918 } if buffer[position] != rune(')') { - goto l926 + goto l910 } position++ if !_rules[ruleOffsetOperator]() { - goto l926 + goto l910 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l926 + goto l910 } position++ - l935: + l919: { - position936, tokenIndex936 := position, tokenIndex + position920, tokenIndex920 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l936 + goto l920 } position++ - goto l935 - l936: - position, tokenIndex = position936, tokenIndex936 + goto l919 + l920: + position, tokenIndex = position920, tokenIndex920 } { - position937, tokenIndex937 := position, tokenIndex + position921, tokenIndex921 := position, tokenIndex if buffer[position] != rune('x') { - goto l937 + goto l921 } position++ - goto l926 - l937: - position, tokenIndex = position937, tokenIndex937 + goto l910 + l921: + position, tokenIndex = position921, tokenIndex921 } - goto l882 - l926: - position, tokenIndex = position882, tokenIndex882 + goto l866 + l910: + position, tokenIndex = position866, tokenIndex866 if buffer[position] != rune('(') { - goto l938 + goto l922 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l938 + goto l922 } position++ - l939: + l923: { - position940, tokenIndex940 := position, tokenIndex + position924, tokenIndex924 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l940 + goto l924 } position++ - goto l939 - l940: - position, tokenIndex = position940, tokenIndex940 + goto l923 + l924: + position, tokenIndex = position924, tokenIndex924 } { - position941, tokenIndex941 := position, tokenIndex + position925, tokenIndex925 := position, tokenIndex if !_rules[ruleWS]() { - goto l941 + goto l925 } - goto l942 - l941: - position, tokenIndex = position941, tokenIndex941 + goto l926 + l925: + position, tokenIndex = position925, tokenIndex925 } - l942: + l926: if !_rules[ruleOffsetOperator]() { - goto l938 + goto l922 } { - position943, tokenIndex943 := position, tokenIndex + position927, tokenIndex927 := position, tokenIndex if !_rules[ruleWS]() { - goto l943 + goto l927 } - goto l944 - l943: - position, tokenIndex = position943, tokenIndex943 + goto l928 + l927: + position, tokenIndex = position927, tokenIndex927 } - l944: + l928: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l938 + goto l922 } position++ - l945: + l929: { - position946, tokenIndex946 := position, tokenIndex + position930, tokenIndex930 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l946 + goto l930 } position++ - goto l945 - l946: - position, tokenIndex = position946, tokenIndex946 + goto l929 + l930: + position, tokenIndex = position930, tokenIndex930 } if buffer[position] != rune(')') { - goto l938 + goto l922 } position++ - goto l882 - l938: - position, tokenIndex = position882, tokenIndex882 + goto l866 + l922: + position, tokenIndex = position866, tokenIndex866 if buffer[position] != rune('(') { - goto l851 + goto l835 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l851 + goto l835 } position++ - l947: + l931: { - position948, tokenIndex948 := position, tokenIndex + position932, tokenIndex932 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l948 + goto l932 } position++ - goto l947 - l948: - position, tokenIndex = position948, tokenIndex948 + goto l931 + l932: + position, tokenIndex = position932, tokenIndex932 } { - position949, tokenIndex949 := position, tokenIndex + position933, tokenIndex933 := position, tokenIndex if !_rules[ruleWS]() { - goto l949 + goto l933 } - goto l950 - l949: - position, tokenIndex = position949, tokenIndex949 + goto l934 + l933: + position, tokenIndex = position933, tokenIndex933 } - l950: + l934: if !_rules[ruleOffsetOperator]() { - goto l851 + goto l835 } { - position951, tokenIndex951 := position, tokenIndex + position935, tokenIndex935 := position, tokenIndex if !_rules[ruleWS]() { - goto l951 + goto l935 } - goto l952 - l951: - position, tokenIndex = position951, tokenIndex951 + goto l936 + l935: + position, tokenIndex = position935, tokenIndex935 } - l952: + l936: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l851 + goto l835 } position++ - l953: + l937: { - position954, tokenIndex954 := position, tokenIndex + position938, tokenIndex938 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l954 + goto l938 } position++ - goto l953 - l954: - position, tokenIndex = position954, tokenIndex954 + goto l937 + l938: + position, tokenIndex = position938, tokenIndex938 } { - position955, tokenIndex955 := position, tokenIndex + position939, tokenIndex939 := position, tokenIndex if !_rules[ruleWS]() { - goto l955 + goto l939 } - goto l956 - l955: - position, tokenIndex = position955, tokenIndex955 + goto l940 + l939: + position, tokenIndex = position939, tokenIndex939 } - l956: + l940: if !_rules[ruleOffsetOperator]() { - goto l851 + goto l835 } { - position957, tokenIndex957 := position, tokenIndex + position941, tokenIndex941 := position, tokenIndex if !_rules[ruleWS]() { - goto l957 + goto l941 } - goto l958 - l957: - position, tokenIndex = position957, tokenIndex957 + goto l942 + l941: + position, tokenIndex = position941, tokenIndex941 } - l958: + l942: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l851 + goto l835 } position++ - l959: + l943: { - position960, tokenIndex960 := position, tokenIndex + position944, tokenIndex944 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l960 + goto l944 } position++ - goto l959 - l960: - position, tokenIndex = position960, tokenIndex960 + goto l943 + l944: + position, tokenIndex = position944, tokenIndex944 } if buffer[position] != rune(')') { - goto l851 + goto l835 } position++ } - l882: + l866: { - position961, tokenIndex961 := position, tokenIndex + position945, tokenIndex945 := position, tokenIndex { - position962, tokenIndex962 := position, tokenIndex + position946, tokenIndex946 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l963 + goto l947 } position++ - goto l962 - l963: - position, tokenIndex = position962, tokenIndex962 + goto l946 + l947: + position, tokenIndex = position946, tokenIndex946 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l961 + goto l945 } position++ } - l962: - goto l851 - l961: - position, tokenIndex = position961, tokenIndex961 + l946: + goto l835 + l945: + position, tokenIndex = position945, tokenIndex945 } } - l857: - add(ruleOffset, position852) + l841: + add(ruleOffset, position836) } return true - l851: - position, tokenIndex = position851, tokenIndex851 + l835: + position, tokenIndex = position835, tokenIndex835 return false }, - /* 53 Section <- <([a-z] / [A-Z] / '@')+> */ + /* 55 Section <- <([a-z] / [A-Z] / '@')+> */ func() bool { - position964, tokenIndex964 := position, tokenIndex + position948, tokenIndex948 := position, tokenIndex { - position965 := position + position949 := position { - position968, tokenIndex968 := position, tokenIndex + position952, tokenIndex952 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l969 + goto l953 } position++ - goto l968 - l969: - position, tokenIndex = position968, tokenIndex968 + goto l952 + l953: + position, tokenIndex = position952, tokenIndex952 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l970 + goto l954 } position++ - goto l968 - l970: - position, tokenIndex = position968, tokenIndex968 + goto l952 + l954: + position, tokenIndex = position952, tokenIndex952 if buffer[position] != rune('@') { - goto l964 + goto l948 } position++ } - l968: - l966: + l952: + l950: { - position967, tokenIndex967 := position, tokenIndex + position951, tokenIndex951 := position, tokenIndex { - position971, tokenIndex971 := position, tokenIndex + position955, tokenIndex955 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l972 + goto l956 } position++ - goto l971 - l972: - position, tokenIndex = position971, tokenIndex971 + goto l955 + l956: + position, tokenIndex = position955, tokenIndex955 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l973 + goto l957 } position++ - goto l971 - l973: - position, tokenIndex = position971, tokenIndex971 + goto l955 + l957: + position, tokenIndex = position955, tokenIndex955 if buffer[position] != rune('@') { - goto l967 + goto l951 } position++ } - l971: - goto l966 - l967: - position, tokenIndex = position967, tokenIndex967 + l955: + goto l950 + l951: + position, tokenIndex = position951, tokenIndex951 } - add(ruleSection, position965) + add(ruleSection, position949) } return true - l964: - position, tokenIndex = position964, tokenIndex964 + l948: + position, tokenIndex = position948, tokenIndex948 return false }, - /* 54 SegmentRegister <- <('%' ([c-g] / 's') ('s' ':'))> */ + /* 56 SegmentRegister <- <('%' ([c-g] / 's') ('s' ':'))> */ func() bool { - position974, tokenIndex974 := position, tokenIndex + position958, tokenIndex958 := position, tokenIndex { - position975 := position + position959 := position if buffer[position] != rune('%') { - goto l974 + goto l958 } position++ { - position976, tokenIndex976 := position, tokenIndex + position960, tokenIndex960 := position, tokenIndex if c := buffer[position]; c < rune('c') || c > rune('g') { - goto l977 + goto l961 } position++ - goto l976 - l977: - position, tokenIndex = position976, tokenIndex976 + goto l960 + l961: + position, tokenIndex = position960, tokenIndex960 if buffer[position] != rune('s') { - goto l974 + goto l958 } position++ } - l976: + l960: if buffer[position] != rune('s') { - goto l974 + goto l958 } position++ if buffer[position] != rune(':') { - goto l974 + goto l958 } position++ - add(ruleSegmentRegister, position975) + add(ruleSegmentRegister, position959) } return true - l974: - position, tokenIndex = position974, tokenIndex974 + l958: + position, tokenIndex = position958, tokenIndex958 return false }, } diff --git a/util/fipstools/delocate/testdata/aarch64-Basic/out.s b/util/fipstools/delocate/testdata/aarch64-Basic/out.s index 86bff80f08..c947525e18 100644 --- a/util/fipstools/delocate/testdata/aarch64-Basic/out.s +++ b/util/fipstools/delocate/testdata/aarch64-Basic/out.s @@ -180,6 +180,7 @@ BORINGSSL_bcm_text_end: .type .Lbcm_redirector_remote_function, @function .Lbcm_redirector_remote_function: .cfi_startproc + hint #34 // bti c b remote_function .cfi_endproc .size .Lbcm_redirector_remote_function, .-.Lbcm_redirector_remote_function @@ -188,6 +189,7 @@ BORINGSSL_bcm_text_end: .type .Lbcm_redirector_y0, @function .Lbcm_redirector_y0: .cfi_startproc + hint #34 // bti c b y0 .cfi_endproc .size .Lbcm_redirector_y0, .-.Lbcm_redirector_y0 @@ -196,6 +198,7 @@ BORINGSSL_bcm_text_end: .type .Lbcm_redirector_y12, @function .Lbcm_redirector_y12: .cfi_startproc + hint #34 // bti c b y12 .cfi_endproc .size .Lbcm_redirector_y12, .-.Lbcm_redirector_y12 @@ -204,6 +207,7 @@ BORINGSSL_bcm_text_end: .type bss_symbol_bss_get, @function bss_symbol_bss_get: .cfi_startproc + hint #34 // bti c adrp x0, .Lbss_symbol_local_target add x0, x0, :lo12:.Lbss_symbol_local_target ret @@ -214,6 +218,7 @@ bss_symbol_bss_get: .type .Lboringssl_loadgot_BORINGSSL_bcm_text_end, @function .Lboringssl_loadgot_BORINGSSL_bcm_text_end: .cfi_startproc + hint #34 // bti c adrp x0, :got:BORINGSSL_bcm_text_end ldr x0, [x0, :got_lo12:BORINGSSL_bcm_text_end] ret @@ -224,6 +229,7 @@ bss_symbol_bss_get: .type .Lboringssl_loadgot_BORINGSSL_bcm_text_start, @function .Lboringssl_loadgot_BORINGSSL_bcm_text_start: .cfi_startproc + hint #34 // bti c adrp x0, :got:BORINGSSL_bcm_text_start ldr x0, [x0, :got_lo12:BORINGSSL_bcm_text_start] ret @@ -234,6 +240,7 @@ bss_symbol_bss_get: .type .Lboringssl_loadgot_stderr, @function .Lboringssl_loadgot_stderr: .cfi_startproc + hint #34 // bti c adrp x0, :got:stderr ldr x0, [x0, :got_lo12:stderr] ret @@ -244,6 +251,7 @@ bss_symbol_bss_get: .type .LOPENSSL_armcap_P_addr, @function .LOPENSSL_armcap_P_addr: .cfi_startproc + hint #34 // bti c adrp x0, OPENSSL_armcap_P add x0, x0, :lo12:OPENSSL_armcap_P ret diff --git a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s index 7a11e91433..10e40481b7 100644 --- a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s +++ b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s @@ -93,7 +93,7 @@ bar: # assumption that it's too small to hold a pointer. But Clang # will store offsets in it. # WAS .byte (.LBB231_40-.LBB231_19)>>2, 4, .Lfoo, (.Lfoo), .Lfoo<<400, ( .Lfoo ) << 66 - .byte (.LBB231_40_BCM_1-.LBB231_19_BCM_1)>>2, 4, .Lfoo_BCM_1, (.Lfoo_BCM_1), .Lfoo_BCM_1<<400, ( .Lfoo_BCM_1 ) << 66 + .byte (.LBB231_40_BCM_1-.LBB231_19_BCM_1)>>2, 4, .Lfoo_BCM_1, (.Lfoo_BCM_1), .Lfoo_BCM_1<<400, (.Lfoo_BCM_1)<<66 .byte 421 .text .loc 1 2 0 From 1214025078e13d7c603e0bddef75cc11553c268d Mon Sep 17 00:00:00 2001 From: Torben Hansen <50673096+torben-hansen@users.noreply.github.com> Date: Tue, 30 Jan 2024 11:41:28 -0800 Subject: [PATCH 4/4] Support certian .long directive expressions emitted by gcc --- util/fipstools/delocate/delocate.peg | 2 +- util/fipstools/delocate/delocate.peg.go | 4514 +++++++++-------- .../delocate/testdata/x86_64-Basic/in.s | 2 + .../delocate/testdata/x86_64-Basic/out.s | 2 + 4 files changed, 2265 insertions(+), 2255 deletions(-) diff --git a/util/fipstools/delocate/delocate.peg b/util/fipstools/delocate/delocate.peg index 74f0d7c6c3..d7c7779543 100644 --- a/util/fipstools/delocate/delocate.peg +++ b/util/fipstools/delocate/delocate.peg @@ -49,7 +49,7 @@ LabelContainingDirectiveName <- ".xword" / ".word" / ".long" / ".set" / ".byte" SymbolArgs <- SymbolArg ((WS? ',' WS?) SymbolArg)* SymbolArg <- SymbolExpr SymbolExpr <- SymbolAtom (WS? SymbolOperator WS? SymbolExpr)? -SymbolAtom <- Offset / SymbolType / LocalSymbol TCMarker? / SymbolName Offset / SymbolName TCMarker? / Dot / OpenParen WS? SymbolExpr WS? CloseParen +SymbolAtom <- Offset / SymbolType / LocalLabelRef / LocalSymbol TCMarker? / SymbolName Offset / SymbolName TCMarker? / Dot / OpenParen WS? SymbolExpr WS? CloseParen SymbolOperator <- '+' / '-' / '|' / '<<' / '>>' OpenParen <- '(' diff --git a/util/fipstools/delocate/delocate.peg.go b/util/fipstools/delocate/delocate.peg.go index 3d8ecf6c38..37c9fc76f7 100644 --- a/util/fipstools/delocate/delocate.peg.go +++ b/util/fipstools/delocate/delocate.peg.go @@ -1,6 +1,6 @@ package main -// Code generated by /home/ec2-user/go/bin/peg delocate.peg DO NOT EDIT. +// Code generated by ~/go/bin/peg delocate.peg DO NOT EDIT. import ( "fmt" @@ -2582,7 +2582,7 @@ func (p *Asm) Init(options ...func(*Asm) error) error { position, tokenIndex = position293, tokenIndex293 return false }, - /* 17 SymbolAtom <- <(Offset / SymbolType / (LocalSymbol TCMarker?) / (SymbolName Offset) / (SymbolName TCMarker?) / Dot / (OpenParen WS? SymbolExpr WS? CloseParen))> */ + /* 17 SymbolAtom <- <(Offset / SymbolType / LocalLabelRef / (LocalSymbol TCMarker?) / (SymbolName Offset) / (SymbolName TCMarker?) / Dot / (OpenParen WS? SymbolExpr WS? CloseParen))> */ func() bool { position301, tokenIndex301 := position, tokenIndex { @@ -2601,79 +2601,85 @@ func (p *Asm) Init(options ...func(*Asm) error) error { goto l303 l305: position, tokenIndex = position303, tokenIndex303 - if !_rules[ruleLocalSymbol]() { + if !_rules[ruleLocalLabelRef]() { goto l306 } + goto l303 + l306: + position, tokenIndex = position303, tokenIndex303 + if !_rules[ruleLocalSymbol]() { + goto l307 + } { - position307, tokenIndex307 := position, tokenIndex + position308, tokenIndex308 := position, tokenIndex if !_rules[ruleTCMarker]() { - goto l307 + goto l308 } - goto l308 - l307: - position, tokenIndex = position307, tokenIndex307 + goto l309 + l308: + position, tokenIndex = position308, tokenIndex308 } - l308: + l309: goto l303 - l306: + l307: position, tokenIndex = position303, tokenIndex303 if !_rules[ruleSymbolName]() { - goto l309 + goto l310 } if !_rules[ruleOffset]() { - goto l309 + goto l310 } goto l303 - l309: + l310: position, tokenIndex = position303, tokenIndex303 if !_rules[ruleSymbolName]() { - goto l310 + goto l311 } { - position311, tokenIndex311 := position, tokenIndex + position312, tokenIndex312 := position, tokenIndex if !_rules[ruleTCMarker]() { - goto l311 + goto l312 } - goto l312 - l311: - position, tokenIndex = position311, tokenIndex311 + goto l313 + l312: + position, tokenIndex = position312, tokenIndex312 } - l312: + l313: goto l303 - l310: + l311: position, tokenIndex = position303, tokenIndex303 if !_rules[ruleDot]() { - goto l313 + goto l314 } goto l303 - l313: + l314: position, tokenIndex = position303, tokenIndex303 if !_rules[ruleOpenParen]() { goto l301 } { - position314, tokenIndex314 := position, tokenIndex + position315, tokenIndex315 := position, tokenIndex if !_rules[ruleWS]() { - goto l314 + goto l315 } - goto l315 - l314: - position, tokenIndex = position314, tokenIndex314 + goto l316 + l315: + position, tokenIndex = position315, tokenIndex315 } - l315: + l316: if !_rules[ruleSymbolExpr]() { goto l301 } { - position316, tokenIndex316 := position, tokenIndex + position317, tokenIndex317 := position, tokenIndex if !_rules[ruleWS]() { - goto l316 + goto l317 } - goto l317 - l316: - position, tokenIndex = position316, tokenIndex316 + goto l318 + l317: + position, tokenIndex = position317, tokenIndex317 } - l317: + l318: if !_rules[ruleCloseParen]() { goto l301 } @@ -2688,4646 +2694,4646 @@ func (p *Asm) Init(options ...func(*Asm) error) error { }, /* 18 SymbolOperator <- <('+' / '-' / '|' / ('<' '<') / ('>' '>'))> */ func() bool { - position318, tokenIndex318 := position, tokenIndex + position319, tokenIndex319 := position, tokenIndex { - position319 := position + position320 := position { - position320, tokenIndex320 := position, tokenIndex + position321, tokenIndex321 := position, tokenIndex if buffer[position] != rune('+') { - goto l321 - } - position++ - goto l320 - l321: - position, tokenIndex = position320, tokenIndex320 - if buffer[position] != rune('-') { goto l322 } position++ - goto l320 + goto l321 l322: - position, tokenIndex = position320, tokenIndex320 - if buffer[position] != rune('|') { + position, tokenIndex = position321, tokenIndex321 + if buffer[position] != rune('-') { goto l323 } position++ - goto l320 + goto l321 l323: - position, tokenIndex = position320, tokenIndex320 - if buffer[position] != rune('<') { + position, tokenIndex = position321, tokenIndex321 + if buffer[position] != rune('|') { goto l324 } position++ + goto l321 + l324: + position, tokenIndex = position321, tokenIndex321 if buffer[position] != rune('<') { - goto l324 + goto l325 } position++ - goto l320 - l324: - position, tokenIndex = position320, tokenIndex320 + if buffer[position] != rune('<') { + goto l325 + } + position++ + goto l321 + l325: + position, tokenIndex = position321, tokenIndex321 if buffer[position] != rune('>') { - goto l318 + goto l319 } position++ if buffer[position] != rune('>') { - goto l318 + goto l319 } position++ } - l320: - add(ruleSymbolOperator, position319) + l321: + add(ruleSymbolOperator, position320) } return true - l318: - position, tokenIndex = position318, tokenIndex318 + l319: + position, tokenIndex = position319, tokenIndex319 return false }, /* 19 OpenParen <- <'('> */ func() bool { - position325, tokenIndex325 := position, tokenIndex + position326, tokenIndex326 := position, tokenIndex { - position326 := position + position327 := position if buffer[position] != rune('(') { - goto l325 + goto l326 } position++ - add(ruleOpenParen, position326) + add(ruleOpenParen, position327) } return true - l325: - position, tokenIndex = position325, tokenIndex325 + l326: + position, tokenIndex = position326, tokenIndex326 return false }, /* 20 CloseParen <- <')'> */ func() bool { - position327, tokenIndex327 := position, tokenIndex + position328, tokenIndex328 := position, tokenIndex { - position328 := position + position329 := position if buffer[position] != rune(')') { - goto l327 + goto l328 } position++ - add(ruleCloseParen, position328) + add(ruleCloseParen, position329) } return true - l327: - position, tokenIndex = position327, tokenIndex327 + l328: + position, tokenIndex = position328, tokenIndex328 return false }, /* 21 SymbolType <- <(('@' / '%') (('f' 'u' 'n' 'c' 't' 'i' 'o' 'n') / ('o' 'b' 'j' 'e' 'c' 't')))> */ func() bool { - position329, tokenIndex329 := position, tokenIndex + position330, tokenIndex330 := position, tokenIndex { - position330 := position + position331 := position { - position331, tokenIndex331 := position, tokenIndex + position332, tokenIndex332 := position, tokenIndex if buffer[position] != rune('@') { - goto l332 + goto l333 } position++ - goto l331 - l332: - position, tokenIndex = position331, tokenIndex331 + goto l332 + l333: + position, tokenIndex = position332, tokenIndex332 if buffer[position] != rune('%') { - goto l329 + goto l330 } position++ } - l331: + l332: { - position333, tokenIndex333 := position, tokenIndex + position334, tokenIndex334 := position, tokenIndex if buffer[position] != rune('f') { - goto l334 + goto l335 } position++ if buffer[position] != rune('u') { - goto l334 + goto l335 } position++ if buffer[position] != rune('n') { - goto l334 + goto l335 } position++ if buffer[position] != rune('c') { - goto l334 + goto l335 } position++ if buffer[position] != rune('t') { - goto l334 + goto l335 } position++ if buffer[position] != rune('i') { - goto l334 + goto l335 } position++ if buffer[position] != rune('o') { - goto l334 + goto l335 } position++ if buffer[position] != rune('n') { - goto l334 + goto l335 } position++ - goto l333 - l334: - position, tokenIndex = position333, tokenIndex333 + goto l334 + l335: + position, tokenIndex = position334, tokenIndex334 if buffer[position] != rune('o') { - goto l329 + goto l330 } position++ if buffer[position] != rune('b') { - goto l329 + goto l330 } position++ if buffer[position] != rune('j') { - goto l329 + goto l330 } position++ if buffer[position] != rune('e') { - goto l329 + goto l330 } position++ if buffer[position] != rune('c') { - goto l329 + goto l330 } position++ if buffer[position] != rune('t') { - goto l329 + goto l330 } position++ } - l333: - add(ruleSymbolType, position330) + l334: + add(ruleSymbolType, position331) } return true - l329: - position, tokenIndex = position329, tokenIndex329 + l330: + position, tokenIndex = position330, tokenIndex330 return false }, /* 22 Dot <- <'.'> */ func() bool { - position335, tokenIndex335 := position, tokenIndex + position336, tokenIndex336 := position, tokenIndex { - position336 := position + position337 := position if buffer[position] != rune('.') { - goto l335 + goto l336 } position++ - add(ruleDot, position336) + add(ruleDot, position337) } return true - l335: - position, tokenIndex = position335, tokenIndex335 + l336: + position, tokenIndex = position336, tokenIndex336 return false }, /* 23 TCMarker <- <('[' 'T' 'C' ']')> */ func() bool { - position337, tokenIndex337 := position, tokenIndex + position338, tokenIndex338 := position, tokenIndex { - position338 := position + position339 := position if buffer[position] != rune('[') { - goto l337 + goto l338 } position++ if buffer[position] != rune('T') { - goto l337 + goto l338 } position++ if buffer[position] != rune('C') { - goto l337 + goto l338 } position++ if buffer[position] != rune(']') { - goto l337 + goto l338 } position++ - add(ruleTCMarker, position338) + add(ruleTCMarker, position339) } return true - l337: - position, tokenIndex = position337, tokenIndex337 + l338: + position, tokenIndex = position338, tokenIndex338 return false }, /* 24 EscapedChar <- <('\\' .)> */ func() bool { - position339, tokenIndex339 := position, tokenIndex + position340, tokenIndex340 := position, tokenIndex { - position340 := position + position341 := position if buffer[position] != rune('\\') { - goto l339 + goto l340 } position++ if !matchDot() { - goto l339 + goto l340 } - add(ruleEscapedChar, position340) + add(ruleEscapedChar, position341) } return true - l339: - position, tokenIndex = position339, tokenIndex339 + l340: + position, tokenIndex = position340, tokenIndex340 return false }, /* 25 WS <- <(' ' / '\t')+> */ func() bool { - position341, tokenIndex341 := position, tokenIndex + position342, tokenIndex342 := position, tokenIndex { - position342 := position + position343 := position { - position345, tokenIndex345 := position, tokenIndex + position346, tokenIndex346 := position, tokenIndex if buffer[position] != rune(' ') { - goto l346 + goto l347 } position++ - goto l345 - l346: - position, tokenIndex = position345, tokenIndex345 + goto l346 + l347: + position, tokenIndex = position346, tokenIndex346 if buffer[position] != rune('\t') { - goto l341 + goto l342 } position++ } - l345: - l343: + l346: + l344: { - position344, tokenIndex344 := position, tokenIndex + position345, tokenIndex345 := position, tokenIndex { - position347, tokenIndex347 := position, tokenIndex + position348, tokenIndex348 := position, tokenIndex if buffer[position] != rune(' ') { - goto l348 + goto l349 } position++ - goto l347 - l348: - position, tokenIndex = position347, tokenIndex347 + goto l348 + l349: + position, tokenIndex = position348, tokenIndex348 if buffer[position] != rune('\t') { - goto l344 + goto l345 } position++ } - l347: - goto l343 - l344: - position, tokenIndex = position344, tokenIndex344 + l348: + goto l344 + l345: + position, tokenIndex = position345, tokenIndex345 } - add(ruleWS, position342) + add(ruleWS, position343) } return true - l341: - position, tokenIndex = position341, tokenIndex341 + l342: + position, tokenIndex = position342, tokenIndex342 return false }, /* 26 Comment <- <((('/' '/') / '#') (!'\n' .)*)> */ func() bool { - position349, tokenIndex349 := position, tokenIndex + position350, tokenIndex350 := position, tokenIndex { - position350 := position + position351 := position { - position351, tokenIndex351 := position, tokenIndex + position352, tokenIndex352 := position, tokenIndex if buffer[position] != rune('/') { - goto l352 + goto l353 } position++ if buffer[position] != rune('/') { - goto l352 + goto l353 } position++ - goto l351 - l352: - position, tokenIndex = position351, tokenIndex351 + goto l352 + l353: + position, tokenIndex = position352, tokenIndex352 if buffer[position] != rune('#') { - goto l349 + goto l350 } position++ } - l351: - l353: + l352: + l354: { - position354, tokenIndex354 := position, tokenIndex + position355, tokenIndex355 := position, tokenIndex { - position355, tokenIndex355 := position, tokenIndex + position356, tokenIndex356 := position, tokenIndex if buffer[position] != rune('\n') { - goto l355 + goto l356 } position++ - goto l354 - l355: - position, tokenIndex = position355, tokenIndex355 + goto l355 + l356: + position, tokenIndex = position356, tokenIndex356 } if !matchDot() { - goto l354 + goto l355 } - goto l353 - l354: - position, tokenIndex = position354, tokenIndex354 + goto l354 + l355: + position, tokenIndex = position355, tokenIndex355 } - add(ruleComment, position350) + add(ruleComment, position351) } return true - l349: - position, tokenIndex = position349, tokenIndex349 + l350: + position, tokenIndex = position350, tokenIndex350 return false }, /* 27 Label <- <((LocalSymbol / LocalLabel / SymbolName) ':')> */ func() bool { - position356, tokenIndex356 := position, tokenIndex + position357, tokenIndex357 := position, tokenIndex { - position357 := position + position358 := position { - position358, tokenIndex358 := position, tokenIndex + position359, tokenIndex359 := position, tokenIndex if !_rules[ruleLocalSymbol]() { - goto l359 - } - goto l358 - l359: - position, tokenIndex = position358, tokenIndex358 - if !_rules[ruleLocalLabel]() { goto l360 } - goto l358 + goto l359 l360: - position, tokenIndex = position358, tokenIndex358 + position, tokenIndex = position359, tokenIndex359 + if !_rules[ruleLocalLabel]() { + goto l361 + } + goto l359 + l361: + position, tokenIndex = position359, tokenIndex359 if !_rules[ruleSymbolName]() { - goto l356 + goto l357 } } - l358: + l359: if buffer[position] != rune(':') { - goto l356 + goto l357 } position++ - add(ruleLabel, position357) + add(ruleLabel, position358) } return true - l356: - position, tokenIndex = position356, tokenIndex356 + l357: + position, tokenIndex = position357, tokenIndex357 return false }, /* 28 SymbolName <- <(([a-z] / [A-Z] / '.' / '_') ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]) / '$' / '_')*)> */ func() bool { - position361, tokenIndex361 := position, tokenIndex + position362, tokenIndex362 := position, tokenIndex { - position362 := position + position363 := position { - position363, tokenIndex363 := position, tokenIndex + position364, tokenIndex364 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l364 - } - position++ - goto l363 - l364: - position, tokenIndex = position363, tokenIndex363 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l365 } position++ - goto l363 + goto l364 l365: - position, tokenIndex = position363, tokenIndex363 - if buffer[position] != rune('.') { + position, tokenIndex = position364, tokenIndex364 + if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l366 } position++ - goto l363 + goto l364 l366: - position, tokenIndex = position363, tokenIndex363 + position, tokenIndex = position364, tokenIndex364 + if buffer[position] != rune('.') { + goto l367 + } + position++ + goto l364 + l367: + position, tokenIndex = position364, tokenIndex364 if buffer[position] != rune('_') { - goto l361 + goto l362 } position++ } - l363: - l367: + l364: + l368: { - position368, tokenIndex368 := position, tokenIndex + position369, tokenIndex369 := position, tokenIndex { - position369, tokenIndex369 := position, tokenIndex + position370, tokenIndex370 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l370 - } - position++ - goto l369 - l370: - position, tokenIndex = position369, tokenIndex369 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l371 } position++ - goto l369 + goto l370 l371: - position, tokenIndex = position369, tokenIndex369 - if buffer[position] != rune('.') { + position, tokenIndex = position370, tokenIndex370 + if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l372 } position++ - goto l369 + goto l370 l372: - position, tokenIndex = position369, tokenIndex369 + position, tokenIndex = position370, tokenIndex370 + if buffer[position] != rune('.') { + goto l373 + } + position++ + goto l370 + l373: + position, tokenIndex = position370, tokenIndex370 { - position374, tokenIndex374 := position, tokenIndex + position375, tokenIndex375 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l375 + goto l376 } position++ - goto l374 - l375: - position, tokenIndex = position374, tokenIndex374 + goto l375 + l376: + position, tokenIndex = position375, tokenIndex375 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l373 + goto l374 } position++ } + l375: + goto l370 l374: - goto l369 - l373: - position, tokenIndex = position369, tokenIndex369 + position, tokenIndex = position370, tokenIndex370 if buffer[position] != rune('$') { - goto l376 + goto l377 } position++ - goto l369 - l376: - position, tokenIndex = position369, tokenIndex369 + goto l370 + l377: + position, tokenIndex = position370, tokenIndex370 if buffer[position] != rune('_') { - goto l368 + goto l369 } position++ } + l370: + goto l368 l369: - goto l367 - l368: - position, tokenIndex = position368, tokenIndex368 + position, tokenIndex = position369, tokenIndex369 } - add(ruleSymbolName, position362) + add(ruleSymbolName, position363) } return true - l361: - position, tokenIndex = position361, tokenIndex361 + l362: + position, tokenIndex = position362, tokenIndex362 return false }, /* 29 LocalSymbol <- <('.' 'L' ([a-z] / [A-Z] / ([a-z] / [A-Z]) / '.' / ([0-9] / [0-9]) / '$' / '_')+)> */ func() bool { - position377, tokenIndex377 := position, tokenIndex + position378, tokenIndex378 := position, tokenIndex { - position378 := position + position379 := position if buffer[position] != rune('.') { - goto l377 + goto l378 } position++ if buffer[position] != rune('L') { - goto l377 + goto l378 } position++ { - position381, tokenIndex381 := position, tokenIndex + position382, tokenIndex382 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l382 + goto l383 } position++ - goto l381 - l382: - position, tokenIndex = position381, tokenIndex381 + goto l382 + l383: + position, tokenIndex = position382, tokenIndex382 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l383 + goto l384 } position++ - goto l381 - l383: - position, tokenIndex = position381, tokenIndex381 + goto l382 + l384: + position, tokenIndex = position382, tokenIndex382 { - position385, tokenIndex385 := position, tokenIndex + position386, tokenIndex386 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l386 + goto l387 } position++ - goto l385 - l386: - position, tokenIndex = position385, tokenIndex385 + goto l386 + l387: + position, tokenIndex = position386, tokenIndex386 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l384 + goto l385 } position++ } + l386: + goto l382 l385: - goto l381 - l384: - position, tokenIndex = position381, tokenIndex381 + position, tokenIndex = position382, tokenIndex382 if buffer[position] != rune('.') { - goto l387 + goto l388 } position++ - goto l381 - l387: - position, tokenIndex = position381, tokenIndex381 + goto l382 + l388: + position, tokenIndex = position382, tokenIndex382 { - position389, tokenIndex389 := position, tokenIndex + position390, tokenIndex390 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l390 + goto l391 } position++ - goto l389 - l390: - position, tokenIndex = position389, tokenIndex389 + goto l390 + l391: + position, tokenIndex = position390, tokenIndex390 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l388 + goto l389 } position++ } + l390: + goto l382 l389: - goto l381 - l388: - position, tokenIndex = position381, tokenIndex381 + position, tokenIndex = position382, tokenIndex382 if buffer[position] != rune('$') { - goto l391 + goto l392 } position++ - goto l381 - l391: - position, tokenIndex = position381, tokenIndex381 + goto l382 + l392: + position, tokenIndex = position382, tokenIndex382 if buffer[position] != rune('_') { - goto l377 + goto l378 } position++ } - l381: - l379: + l382: + l380: { - position380, tokenIndex380 := position, tokenIndex + position381, tokenIndex381 := position, tokenIndex { - position392, tokenIndex392 := position, tokenIndex + position393, tokenIndex393 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l393 + goto l394 } position++ - goto l392 - l393: - position, tokenIndex = position392, tokenIndex392 + goto l393 + l394: + position, tokenIndex = position393, tokenIndex393 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l394 + goto l395 } position++ - goto l392 - l394: - position, tokenIndex = position392, tokenIndex392 + goto l393 + l395: + position, tokenIndex = position393, tokenIndex393 { - position396, tokenIndex396 := position, tokenIndex + position397, tokenIndex397 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l397 + goto l398 } position++ - goto l396 - l397: - position, tokenIndex = position396, tokenIndex396 + goto l397 + l398: + position, tokenIndex = position397, tokenIndex397 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l395 + goto l396 } position++ } + l397: + goto l393 l396: - goto l392 - l395: - position, tokenIndex = position392, tokenIndex392 + position, tokenIndex = position393, tokenIndex393 if buffer[position] != rune('.') { - goto l398 + goto l399 } position++ - goto l392 - l398: - position, tokenIndex = position392, tokenIndex392 + goto l393 + l399: + position, tokenIndex = position393, tokenIndex393 { - position400, tokenIndex400 := position, tokenIndex + position401, tokenIndex401 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l401 + goto l402 } position++ - goto l400 - l401: - position, tokenIndex = position400, tokenIndex400 + goto l401 + l402: + position, tokenIndex = position401, tokenIndex401 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l399 + goto l400 } position++ } + l401: + goto l393 l400: - goto l392 - l399: - position, tokenIndex = position392, tokenIndex392 + position, tokenIndex = position393, tokenIndex393 if buffer[position] != rune('$') { - goto l402 + goto l403 } position++ - goto l392 - l402: - position, tokenIndex = position392, tokenIndex392 + goto l393 + l403: + position, tokenIndex = position393, tokenIndex393 if buffer[position] != rune('_') { - goto l380 + goto l381 } position++ } - l392: - goto l379 - l380: - position, tokenIndex = position380, tokenIndex380 + l393: + goto l380 + l381: + position, tokenIndex = position381, tokenIndex381 } - add(ruleLocalSymbol, position378) + add(ruleLocalSymbol, position379) } return true - l377: - position, tokenIndex = position377, tokenIndex377 + l378: + position, tokenIndex = position378, tokenIndex378 return false }, /* 30 LocalLabel <- <([0-9] ([0-9] / '$')*)> */ func() bool { - position403, tokenIndex403 := position, tokenIndex + position404, tokenIndex404 := position, tokenIndex { - position404 := position + position405 := position if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l403 + goto l404 } position++ - l405: + l406: { - position406, tokenIndex406 := position, tokenIndex + position407, tokenIndex407 := position, tokenIndex { - position407, tokenIndex407 := position, tokenIndex + position408, tokenIndex408 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l408 + goto l409 } position++ - goto l407 - l408: - position, tokenIndex = position407, tokenIndex407 + goto l408 + l409: + position, tokenIndex = position408, tokenIndex408 if buffer[position] != rune('$') { - goto l406 + goto l407 } position++ } + l408: + goto l406 l407: - goto l405 - l406: - position, tokenIndex = position406, tokenIndex406 + position, tokenIndex = position407, tokenIndex407 } - add(ruleLocalLabel, position404) + add(ruleLocalLabel, position405) } return true - l403: - position, tokenIndex = position403, tokenIndex403 + l404: + position, tokenIndex = position404, tokenIndex404 return false }, /* 31 LocalLabelRef <- <([0-9] ([0-9] / '$')* ('b' / 'f'))> */ func() bool { - position409, tokenIndex409 := position, tokenIndex + position410, tokenIndex410 := position, tokenIndex { - position410 := position + position411 := position if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l409 + goto l410 } position++ - l411: + l412: { - position412, tokenIndex412 := position, tokenIndex + position413, tokenIndex413 := position, tokenIndex { - position413, tokenIndex413 := position, tokenIndex + position414, tokenIndex414 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l414 + goto l415 } position++ - goto l413 - l414: - position, tokenIndex = position413, tokenIndex413 + goto l414 + l415: + position, tokenIndex = position414, tokenIndex414 if buffer[position] != rune('$') { - goto l412 + goto l413 } position++ } + l414: + goto l412 l413: - goto l411 - l412: - position, tokenIndex = position412, tokenIndex412 + position, tokenIndex = position413, tokenIndex413 } { - position415, tokenIndex415 := position, tokenIndex + position416, tokenIndex416 := position, tokenIndex if buffer[position] != rune('b') { - goto l416 + goto l417 } position++ - goto l415 - l416: - position, tokenIndex = position415, tokenIndex415 + goto l416 + l417: + position, tokenIndex = position416, tokenIndex416 if buffer[position] != rune('f') { - goto l409 + goto l410 } position++ } - l415: - add(ruleLocalLabelRef, position410) + l416: + add(ruleLocalLabelRef, position411) } return true - l409: - position, tokenIndex = position409, tokenIndex409 + l410: + position, tokenIndex = position410, tokenIndex410 return false }, /* 32 Instruction <- <(InstructionName (WS InstructionArg (WS? ','? WS? InstructionArg)*)?)> */ func() bool { - position417, tokenIndex417 := position, tokenIndex + position418, tokenIndex418 := position, tokenIndex { - position418 := position + position419 := position if !_rules[ruleInstructionName]() { - goto l417 + goto l418 } { - position419, tokenIndex419 := position, tokenIndex + position420, tokenIndex420 := position, tokenIndex if !_rules[ruleWS]() { - goto l419 + goto l420 } if !_rules[ruleInstructionArg]() { - goto l419 + goto l420 } - l421: + l422: { - position422, tokenIndex422 := position, tokenIndex + position423, tokenIndex423 := position, tokenIndex { - position423, tokenIndex423 := position, tokenIndex + position424, tokenIndex424 := position, tokenIndex if !_rules[ruleWS]() { - goto l423 + goto l424 } - goto l424 - l423: - position, tokenIndex = position423, tokenIndex423 + goto l425 + l424: + position, tokenIndex = position424, tokenIndex424 } - l424: + l425: { - position425, tokenIndex425 := position, tokenIndex + position426, tokenIndex426 := position, tokenIndex if buffer[position] != rune(',') { - goto l425 + goto l426 } position++ - goto l426 - l425: - position, tokenIndex = position425, tokenIndex425 + goto l427 + l426: + position, tokenIndex = position426, tokenIndex426 } - l426: + l427: { - position427, tokenIndex427 := position, tokenIndex + position428, tokenIndex428 := position, tokenIndex if !_rules[ruleWS]() { - goto l427 + goto l428 } - goto l428 - l427: - position, tokenIndex = position427, tokenIndex427 + goto l429 + l428: + position, tokenIndex = position428, tokenIndex428 } - l428: + l429: if !_rules[ruleInstructionArg]() { - goto l422 + goto l423 } - goto l421 - l422: - position, tokenIndex = position422, tokenIndex422 + goto l422 + l423: + position, tokenIndex = position423, tokenIndex423 } - goto l420 - l419: - position, tokenIndex = position419, tokenIndex419 + goto l421 + l420: + position, tokenIndex = position420, tokenIndex420 } - l420: - add(ruleInstruction, position418) + l421: + add(ruleInstruction, position419) } return true - l417: - position, tokenIndex = position417, tokenIndex417 + l418: + position, tokenIndex = position418, tokenIndex418 return false }, /* 33 InstructionName <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]))* ('.' / '+' / '-')?)> */ func() bool { - position429, tokenIndex429 := position, tokenIndex + position430, tokenIndex430 := position, tokenIndex { - position430 := position + position431 := position { - position431, tokenIndex431 := position, tokenIndex + position432, tokenIndex432 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l432 + goto l433 } position++ - goto l431 - l432: - position, tokenIndex = position431, tokenIndex431 + goto l432 + l433: + position, tokenIndex = position432, tokenIndex432 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l429 + goto l430 } position++ } - l431: - l433: + l432: + l434: { - position434, tokenIndex434 := position, tokenIndex + position435, tokenIndex435 := position, tokenIndex { - position435, tokenIndex435 := position, tokenIndex + position436, tokenIndex436 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l436 - } - position++ - goto l435 - l436: - position, tokenIndex = position435, tokenIndex435 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l437 } position++ - goto l435 + goto l436 l437: - position, tokenIndex = position435, tokenIndex435 - if buffer[position] != rune('.') { + position, tokenIndex = position436, tokenIndex436 + if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l438 } position++ - goto l435 + goto l436 l438: - position, tokenIndex = position435, tokenIndex435 + position, tokenIndex = position436, tokenIndex436 + if buffer[position] != rune('.') { + goto l439 + } + position++ + goto l436 + l439: + position, tokenIndex = position436, tokenIndex436 { - position439, tokenIndex439 := position, tokenIndex + position440, tokenIndex440 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l440 + goto l441 } position++ - goto l439 - l440: - position, tokenIndex = position439, tokenIndex439 + goto l440 + l441: + position, tokenIndex = position440, tokenIndex440 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l434 + goto l435 } position++ } - l439: + l440: } + l436: + goto l434 l435: - goto l433 - l434: - position, tokenIndex = position434, tokenIndex434 + position, tokenIndex = position435, tokenIndex435 } { - position441, tokenIndex441 := position, tokenIndex + position442, tokenIndex442 := position, tokenIndex { - position443, tokenIndex443 := position, tokenIndex + position444, tokenIndex444 := position, tokenIndex if buffer[position] != rune('.') { - goto l444 + goto l445 } position++ - goto l443 - l444: - position, tokenIndex = position443, tokenIndex443 + goto l444 + l445: + position, tokenIndex = position444, tokenIndex444 if buffer[position] != rune('+') { - goto l445 + goto l446 } position++ - goto l443 - l445: - position, tokenIndex = position443, tokenIndex443 + goto l444 + l446: + position, tokenIndex = position444, tokenIndex444 if buffer[position] != rune('-') { - goto l441 + goto l442 } position++ } - l443: - goto l442 - l441: - position, tokenIndex = position441, tokenIndex441 + l444: + goto l443 + l442: + position, tokenIndex = position442, tokenIndex442 } - l442: - add(ruleInstructionName, position430) + l443: + add(ruleInstructionName, position431) } return true - l429: - position, tokenIndex = position429, tokenIndex429 + l430: + position, tokenIndex = position430, tokenIndex430 return false }, /* 34 InstructionArg <- <(IndirectionIndicator? (ARMConstantTweak / RegisterOrConstant / LocalLabelRef / TOCRefHigh / TOCRefLow / GOTLocation / GOTSymbolOffset / MemoryRef) AVX512Token*)> */ func() bool { - position446, tokenIndex446 := position, tokenIndex + position447, tokenIndex447 := position, tokenIndex { - position447 := position + position448 := position { - position448, tokenIndex448 := position, tokenIndex + position449, tokenIndex449 := position, tokenIndex if !_rules[ruleIndirectionIndicator]() { - goto l448 + goto l449 } - goto l449 - l448: - position, tokenIndex = position448, tokenIndex448 + goto l450 + l449: + position, tokenIndex = position449, tokenIndex449 } - l449: + l450: { - position450, tokenIndex450 := position, tokenIndex + position451, tokenIndex451 := position, tokenIndex if !_rules[ruleARMConstantTweak]() { - goto l451 - } - goto l450 - l451: - position, tokenIndex = position450, tokenIndex450 - if !_rules[ruleRegisterOrConstant]() { goto l452 } - goto l450 + goto l451 l452: - position, tokenIndex = position450, tokenIndex450 - if !_rules[ruleLocalLabelRef]() { + position, tokenIndex = position451, tokenIndex451 + if !_rules[ruleRegisterOrConstant]() { goto l453 } - goto l450 + goto l451 l453: - position, tokenIndex = position450, tokenIndex450 - if !_rules[ruleTOCRefHigh]() { + position, tokenIndex = position451, tokenIndex451 + if !_rules[ruleLocalLabelRef]() { goto l454 } - goto l450 + goto l451 l454: - position, tokenIndex = position450, tokenIndex450 - if !_rules[ruleTOCRefLow]() { + position, tokenIndex = position451, tokenIndex451 + if !_rules[ruleTOCRefHigh]() { goto l455 } - goto l450 + goto l451 l455: - position, tokenIndex = position450, tokenIndex450 - if !_rules[ruleGOTLocation]() { + position, tokenIndex = position451, tokenIndex451 + if !_rules[ruleTOCRefLow]() { goto l456 } - goto l450 + goto l451 l456: - position, tokenIndex = position450, tokenIndex450 - if !_rules[ruleGOTSymbolOffset]() { + position, tokenIndex = position451, tokenIndex451 + if !_rules[ruleGOTLocation]() { goto l457 } - goto l450 + goto l451 l457: - position, tokenIndex = position450, tokenIndex450 + position, tokenIndex = position451, tokenIndex451 + if !_rules[ruleGOTSymbolOffset]() { + goto l458 + } + goto l451 + l458: + position, tokenIndex = position451, tokenIndex451 if !_rules[ruleMemoryRef]() { - goto l446 + goto l447 } } - l450: - l458: + l451: + l459: { - position459, tokenIndex459 := position, tokenIndex + position460, tokenIndex460 := position, tokenIndex if !_rules[ruleAVX512Token]() { - goto l459 + goto l460 } - goto l458 - l459: - position, tokenIndex = position459, tokenIndex459 + goto l459 + l460: + position, tokenIndex = position460, tokenIndex460 } - add(ruleInstructionArg, position447) + add(ruleInstructionArg, position448) } return true - l446: - position, tokenIndex = position446, tokenIndex446 + l447: + position, tokenIndex = position447, tokenIndex447 return false }, /* 35 GOTLocation <- <('$' '_' 'G' 'L' 'O' 'B' 'A' 'L' '_' 'O' 'F' 'F' 'S' 'E' 'T' '_' 'T' 'A' 'B' 'L' 'E' '_' '-' LocalSymbol)> */ func() bool { - position460, tokenIndex460 := position, tokenIndex + position461, tokenIndex461 := position, tokenIndex { - position461 := position + position462 := position if buffer[position] != rune('$') { - goto l460 + goto l461 } position++ if buffer[position] != rune('_') { - goto l460 + goto l461 } position++ if buffer[position] != rune('G') { - goto l460 + goto l461 } position++ if buffer[position] != rune('L') { - goto l460 + goto l461 } position++ if buffer[position] != rune('O') { - goto l460 + goto l461 } position++ if buffer[position] != rune('B') { - goto l460 + goto l461 } position++ if buffer[position] != rune('A') { - goto l460 + goto l461 } position++ if buffer[position] != rune('L') { - goto l460 + goto l461 } position++ if buffer[position] != rune('_') { - goto l460 + goto l461 } position++ if buffer[position] != rune('O') { - goto l460 + goto l461 } position++ if buffer[position] != rune('F') { - goto l460 + goto l461 } position++ if buffer[position] != rune('F') { - goto l460 + goto l461 } position++ if buffer[position] != rune('S') { - goto l460 + goto l461 } position++ if buffer[position] != rune('E') { - goto l460 + goto l461 } position++ if buffer[position] != rune('T') { - goto l460 + goto l461 } position++ if buffer[position] != rune('_') { - goto l460 + goto l461 } position++ if buffer[position] != rune('T') { - goto l460 + goto l461 } position++ if buffer[position] != rune('A') { - goto l460 + goto l461 } position++ if buffer[position] != rune('B') { - goto l460 + goto l461 } position++ if buffer[position] != rune('L') { - goto l460 + goto l461 } position++ if buffer[position] != rune('E') { - goto l460 + goto l461 } position++ if buffer[position] != rune('_') { - goto l460 + goto l461 } position++ if buffer[position] != rune('-') { - goto l460 + goto l461 } position++ if !_rules[ruleLocalSymbol]() { - goto l460 + goto l461 } - add(ruleGOTLocation, position461) + add(ruleGOTLocation, position462) } return true - l460: - position, tokenIndex = position460, tokenIndex460 + l461: + position, tokenIndex = position461, tokenIndex461 return false }, /* 36 GOTSymbolOffset <- <(('$' SymbolName ('@' 'G' 'O' 'T') ('O' 'F' 'F')?) / (':' ('g' / 'G') ('o' / 'O') ('t' / 'T') ':' SymbolName))> */ func() bool { - position462, tokenIndex462 := position, tokenIndex + position463, tokenIndex463 := position, tokenIndex { - position463 := position + position464 := position { - position464, tokenIndex464 := position, tokenIndex + position465, tokenIndex465 := position, tokenIndex if buffer[position] != rune('$') { - goto l465 + goto l466 } position++ if !_rules[ruleSymbolName]() { - goto l465 + goto l466 } if buffer[position] != rune('@') { - goto l465 + goto l466 } position++ if buffer[position] != rune('G') { - goto l465 + goto l466 } position++ if buffer[position] != rune('O') { - goto l465 + goto l466 } position++ if buffer[position] != rune('T') { - goto l465 + goto l466 } position++ { - position466, tokenIndex466 := position, tokenIndex + position467, tokenIndex467 := position, tokenIndex if buffer[position] != rune('O') { - goto l466 + goto l467 } position++ if buffer[position] != rune('F') { - goto l466 + goto l467 } position++ if buffer[position] != rune('F') { - goto l466 + goto l467 } position++ - goto l467 - l466: - position, tokenIndex = position466, tokenIndex466 + goto l468 + l467: + position, tokenIndex = position467, tokenIndex467 } - l467: - goto l464 - l465: - position, tokenIndex = position464, tokenIndex464 + l468: + goto l465 + l466: + position, tokenIndex = position465, tokenIndex465 if buffer[position] != rune(':') { - goto l462 + goto l463 } position++ { - position468, tokenIndex468 := position, tokenIndex + position469, tokenIndex469 := position, tokenIndex if buffer[position] != rune('g') { - goto l469 + goto l470 } position++ - goto l468 - l469: - position, tokenIndex = position468, tokenIndex468 + goto l469 + l470: + position, tokenIndex = position469, tokenIndex469 if buffer[position] != rune('G') { - goto l462 + goto l463 } position++ } - l468: + l469: { - position470, tokenIndex470 := position, tokenIndex + position471, tokenIndex471 := position, tokenIndex if buffer[position] != rune('o') { - goto l471 + goto l472 } position++ - goto l470 - l471: - position, tokenIndex = position470, tokenIndex470 + goto l471 + l472: + position, tokenIndex = position471, tokenIndex471 if buffer[position] != rune('O') { - goto l462 + goto l463 } position++ } - l470: + l471: { - position472, tokenIndex472 := position, tokenIndex + position473, tokenIndex473 := position, tokenIndex if buffer[position] != rune('t') { - goto l473 + goto l474 } position++ - goto l472 - l473: - position, tokenIndex = position472, tokenIndex472 + goto l473 + l474: + position, tokenIndex = position473, tokenIndex473 if buffer[position] != rune('T') { - goto l462 + goto l463 } position++ } - l472: + l473: if buffer[position] != rune(':') { - goto l462 + goto l463 } position++ if !_rules[ruleSymbolName]() { - goto l462 + goto l463 } } - l464: - add(ruleGOTSymbolOffset, position463) + l465: + add(ruleGOTSymbolOffset, position464) } return true - l462: - position, tokenIndex = position462, tokenIndex462 + l463: + position, tokenIndex = position463, tokenIndex463 return false }, /* 37 AVX512Token <- <(WS? '{' '%'? ([0-9] / [a-z])* '}')> */ func() bool { - position474, tokenIndex474 := position, tokenIndex + position475, tokenIndex475 := position, tokenIndex { - position475 := position + position476 := position { - position476, tokenIndex476 := position, tokenIndex + position477, tokenIndex477 := position, tokenIndex if !_rules[ruleWS]() { - goto l476 + goto l477 } - goto l477 - l476: - position, tokenIndex = position476, tokenIndex476 + goto l478 + l477: + position, tokenIndex = position477, tokenIndex477 } - l477: + l478: if buffer[position] != rune('{') { - goto l474 + goto l475 } position++ { - position478, tokenIndex478 := position, tokenIndex + position479, tokenIndex479 := position, tokenIndex if buffer[position] != rune('%') { - goto l478 + goto l479 } position++ - goto l479 - l478: - position, tokenIndex = position478, tokenIndex478 + goto l480 + l479: + position, tokenIndex = position479, tokenIndex479 } - l479: l480: + l481: { - position481, tokenIndex481 := position, tokenIndex + position482, tokenIndex482 := position, tokenIndex { - position482, tokenIndex482 := position, tokenIndex + position483, tokenIndex483 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l483 + goto l484 } position++ - goto l482 - l483: - position, tokenIndex = position482, tokenIndex482 + goto l483 + l484: + position, tokenIndex = position483, tokenIndex483 if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l481 + goto l482 } position++ } + l483: + goto l481 l482: - goto l480 - l481: - position, tokenIndex = position481, tokenIndex481 + position, tokenIndex = position482, tokenIndex482 } if buffer[position] != rune('}') { - goto l474 + goto l475 } position++ - add(ruleAVX512Token, position475) + add(ruleAVX512Token, position476) } return true - l474: - position, tokenIndex = position474, tokenIndex474 + l475: + position, tokenIndex = position475, tokenIndex475 return false }, /* 38 TOCRefHigh <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('h' / 'H') ('a' / 'A')))> */ func() bool { - position484, tokenIndex484 := position, tokenIndex + position485, tokenIndex485 := position, tokenIndex { - position485 := position + position486 := position if buffer[position] != rune('.') { - goto l484 + goto l485 } position++ if buffer[position] != rune('T') { - goto l484 + goto l485 } position++ if buffer[position] != rune('O') { - goto l484 + goto l485 } position++ if buffer[position] != rune('C') { - goto l484 + goto l485 } position++ if buffer[position] != rune('.') { - goto l484 + goto l485 } position++ if buffer[position] != rune('-') { - goto l484 + goto l485 } position++ { - position486, tokenIndex486 := position, tokenIndex + position487, tokenIndex487 := position, tokenIndex if buffer[position] != rune('0') { - goto l487 + goto l488 } position++ if buffer[position] != rune('b') { - goto l487 + goto l488 } position++ - goto l486 - l487: - position, tokenIndex = position486, tokenIndex486 + goto l487 + l488: + position, tokenIndex = position487, tokenIndex487 if buffer[position] != rune('.') { - goto l484 + goto l485 } position++ if buffer[position] != rune('L') { - goto l484 + goto l485 } position++ { - position490, tokenIndex490 := position, tokenIndex + position491, tokenIndex491 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l491 - } - position++ - goto l490 - l491: - position, tokenIndex = position490, tokenIndex490 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l492 } position++ - goto l490 + goto l491 l492: - position, tokenIndex = position490, tokenIndex490 - if buffer[position] != rune('_') { + position, tokenIndex = position491, tokenIndex491 + if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l493 } position++ - goto l490 + goto l491 l493: - position, tokenIndex = position490, tokenIndex490 + position, tokenIndex = position491, tokenIndex491 + if buffer[position] != rune('_') { + goto l494 + } + position++ + goto l491 + l494: + position, tokenIndex = position491, tokenIndex491 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l484 + goto l485 } position++ } - l490: - l488: + l491: + l489: { - position489, tokenIndex489 := position, tokenIndex + position490, tokenIndex490 := position, tokenIndex { - position494, tokenIndex494 := position, tokenIndex + position495, tokenIndex495 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l495 - } - position++ - goto l494 - l495: - position, tokenIndex = position494, tokenIndex494 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l496 } position++ - goto l494 + goto l495 l496: - position, tokenIndex = position494, tokenIndex494 - if buffer[position] != rune('_') { + position, tokenIndex = position495, tokenIndex495 + if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l497 } position++ - goto l494 + goto l495 l497: - position, tokenIndex = position494, tokenIndex494 + position, tokenIndex = position495, tokenIndex495 + if buffer[position] != rune('_') { + goto l498 + } + position++ + goto l495 + l498: + position, tokenIndex = position495, tokenIndex495 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l489 + goto l490 } position++ } - l494: - goto l488 - l489: - position, tokenIndex = position489, tokenIndex489 + l495: + goto l489 + l490: + position, tokenIndex = position490, tokenIndex490 } } - l486: + l487: if buffer[position] != rune('@') { - goto l484 + goto l485 } position++ { - position498, tokenIndex498 := position, tokenIndex + position499, tokenIndex499 := position, tokenIndex if buffer[position] != rune('h') { - goto l499 + goto l500 } position++ - goto l498 - l499: - position, tokenIndex = position498, tokenIndex498 + goto l499 + l500: + position, tokenIndex = position499, tokenIndex499 if buffer[position] != rune('H') { - goto l484 + goto l485 } position++ } - l498: + l499: { - position500, tokenIndex500 := position, tokenIndex + position501, tokenIndex501 := position, tokenIndex if buffer[position] != rune('a') { - goto l501 + goto l502 } position++ - goto l500 - l501: - position, tokenIndex = position500, tokenIndex500 + goto l501 + l502: + position, tokenIndex = position501, tokenIndex501 if buffer[position] != rune('A') { - goto l484 + goto l485 } position++ } - l500: - add(ruleTOCRefHigh, position485) + l501: + add(ruleTOCRefHigh, position486) } return true - l484: - position, tokenIndex = position484, tokenIndex484 + l485: + position, tokenIndex = position485, tokenIndex485 return false }, /* 39 TOCRefLow <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('l' / 'L')))> */ func() bool { - position502, tokenIndex502 := position, tokenIndex + position503, tokenIndex503 := position, tokenIndex { - position503 := position + position504 := position if buffer[position] != rune('.') { - goto l502 + goto l503 } position++ if buffer[position] != rune('T') { - goto l502 + goto l503 } position++ if buffer[position] != rune('O') { - goto l502 + goto l503 } position++ if buffer[position] != rune('C') { - goto l502 + goto l503 } position++ if buffer[position] != rune('.') { - goto l502 + goto l503 } position++ if buffer[position] != rune('-') { - goto l502 + goto l503 } position++ { - position504, tokenIndex504 := position, tokenIndex + position505, tokenIndex505 := position, tokenIndex if buffer[position] != rune('0') { - goto l505 + goto l506 } position++ if buffer[position] != rune('b') { - goto l505 + goto l506 } position++ - goto l504 - l505: - position, tokenIndex = position504, tokenIndex504 + goto l505 + l506: + position, tokenIndex = position505, tokenIndex505 if buffer[position] != rune('.') { - goto l502 + goto l503 } position++ if buffer[position] != rune('L') { - goto l502 + goto l503 } position++ { - position508, tokenIndex508 := position, tokenIndex + position509, tokenIndex509 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l509 - } - position++ - goto l508 - l509: - position, tokenIndex = position508, tokenIndex508 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l510 } position++ - goto l508 + goto l509 l510: - position, tokenIndex = position508, tokenIndex508 - if buffer[position] != rune('_') { + position, tokenIndex = position509, tokenIndex509 + if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l511 } position++ - goto l508 + goto l509 l511: - position, tokenIndex = position508, tokenIndex508 + position, tokenIndex = position509, tokenIndex509 + if buffer[position] != rune('_') { + goto l512 + } + position++ + goto l509 + l512: + position, tokenIndex = position509, tokenIndex509 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l502 + goto l503 } position++ } - l508: - l506: + l509: + l507: { - position507, tokenIndex507 := position, tokenIndex + position508, tokenIndex508 := position, tokenIndex { - position512, tokenIndex512 := position, tokenIndex + position513, tokenIndex513 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l513 - } - position++ - goto l512 - l513: - position, tokenIndex = position512, tokenIndex512 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l514 } position++ - goto l512 + goto l513 l514: - position, tokenIndex = position512, tokenIndex512 - if buffer[position] != rune('_') { + position, tokenIndex = position513, tokenIndex513 + if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l515 } position++ - goto l512 + goto l513 l515: - position, tokenIndex = position512, tokenIndex512 + position, tokenIndex = position513, tokenIndex513 + if buffer[position] != rune('_') { + goto l516 + } + position++ + goto l513 + l516: + position, tokenIndex = position513, tokenIndex513 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l507 + goto l508 } position++ } - l512: - goto l506 - l507: - position, tokenIndex = position507, tokenIndex507 + l513: + goto l507 + l508: + position, tokenIndex = position508, tokenIndex508 } } - l504: + l505: if buffer[position] != rune('@') { - goto l502 + goto l503 } position++ { - position516, tokenIndex516 := position, tokenIndex + position517, tokenIndex517 := position, tokenIndex if buffer[position] != rune('l') { - goto l517 + goto l518 } position++ - goto l516 - l517: - position, tokenIndex = position516, tokenIndex516 + goto l517 + l518: + position, tokenIndex = position517, tokenIndex517 if buffer[position] != rune('L') { - goto l502 + goto l503 } position++ } - l516: - add(ruleTOCRefLow, position503) + l517: + add(ruleTOCRefLow, position504) } return true - l502: - position, tokenIndex = position502, tokenIndex502 + l503: + position, tokenIndex = position503, tokenIndex503 return false }, /* 40 IndirectionIndicator <- <'*'> */ func() bool { - position518, tokenIndex518 := position, tokenIndex + position519, tokenIndex519 := position, tokenIndex { - position519 := position + position520 := position if buffer[position] != rune('*') { - goto l518 + goto l519 } position++ - add(ruleIndirectionIndicator, position519) + add(ruleIndirectionIndicator, position520) } return true - l518: - position, tokenIndex = position518, tokenIndex518 + l519: + position, tokenIndex = position519, tokenIndex519 return false }, /* 41 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' / ':' / '(' / '+' / '-'))> */ func() bool { - position520, tokenIndex520 := position, tokenIndex + position521, tokenIndex521 := position, tokenIndex { - position521 := position + position522 := position { - position522, tokenIndex522 := position, tokenIndex + position523, tokenIndex523 := position, tokenIndex if buffer[position] != rune('%') { - goto l523 + goto l524 } position++ { - position524, tokenIndex524 := position, tokenIndex + position525, tokenIndex525 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l525 + goto l526 } position++ - goto l524 - l525: - position, tokenIndex = position524, tokenIndex524 + goto l525 + l526: + position, tokenIndex = position525, tokenIndex525 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l523 + goto l524 } position++ } - l524: - l526: + l525: + l527: { - position527, tokenIndex527 := position, tokenIndex + position528, tokenIndex528 := position, tokenIndex { - position528, tokenIndex528 := position, tokenIndex + position529, tokenIndex529 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l529 + goto l530 } position++ - goto l528 - l529: - position, tokenIndex = position528, tokenIndex528 + goto l529 + l530: + position, tokenIndex = position529, tokenIndex529 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l530 + goto l531 } position++ - goto l528 - l530: - position, tokenIndex = position528, tokenIndex528 + goto l529 + l531: + position, tokenIndex = position529, tokenIndex529 { - position531, tokenIndex531 := position, tokenIndex + position532, tokenIndex532 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l532 + goto l533 } position++ - goto l531 - l532: - position, tokenIndex = position531, tokenIndex531 + goto l532 + l533: + position, tokenIndex = position532, tokenIndex532 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l527 + goto l528 } position++ } - l531: + l532: } + l529: + goto l527 l528: - goto l526 - l527: - position, tokenIndex = position527, tokenIndex527 + position, tokenIndex = position528, tokenIndex528 } - goto l522 - l523: - position, tokenIndex = position522, tokenIndex522 + goto l523 + l524: + position, tokenIndex = position523, tokenIndex523 if buffer[position] != rune('$') { - goto l533 + goto l534 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l533 + goto l534 } position++ - l534: + l535: { - position535, tokenIndex535 := position, tokenIndex + position536, tokenIndex536 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l535 + goto l536 } position++ - goto l534 - l535: - position, tokenIndex = position535, tokenIndex535 + goto l535 + l536: + position, tokenIndex = position536, tokenIndex536 } { - position536, tokenIndex536 := position, tokenIndex + position537, tokenIndex537 := position, tokenIndex if !_rules[ruleWS]() { - goto l536 + goto l537 } - goto l537 - l536: - position, tokenIndex = position536, tokenIndex536 + goto l538 + l537: + position, tokenIndex = position537, tokenIndex537 } - l537: + l538: if buffer[position] != rune('*') { - goto l533 + goto l534 } position++ { - position538, tokenIndex538 := position, tokenIndex + position539, tokenIndex539 := position, tokenIndex if !_rules[ruleWS]() { - goto l538 + goto l539 } - goto l539 - l538: - position, tokenIndex = position538, tokenIndex538 + goto l540 + l539: + position, tokenIndex = position539, tokenIndex539 } - l539: + l540: if buffer[position] != rune('(') { - goto l533 + goto l534 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l533 + goto l534 } position++ - l540: + l541: { - position541, tokenIndex541 := position, tokenIndex + position542, tokenIndex542 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l541 + goto l542 } position++ - goto l540 - l541: - position, tokenIndex = position541, tokenIndex541 - } + goto l541 + l542: + position, tokenIndex = position542, tokenIndex542 + } { - position542, tokenIndex542 := position, tokenIndex + position543, tokenIndex543 := position, tokenIndex if !_rules[ruleWS]() { - goto l542 + goto l543 } - goto l543 - l542: - position, tokenIndex = position542, tokenIndex542 + goto l544 + l543: + position, tokenIndex = position543, tokenIndex543 } - l543: + l544: if buffer[position] != rune('-') { - goto l533 + goto l534 } position++ { - position544, tokenIndex544 := position, tokenIndex + position545, tokenIndex545 := position, tokenIndex if !_rules[ruleWS]() { - goto l544 + goto l545 } - goto l545 - l544: - position, tokenIndex = position544, tokenIndex544 + goto l546 + l545: + position, tokenIndex = position545, tokenIndex545 } - l545: + l546: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l533 + goto l534 } position++ - l546: + l547: { - position547, tokenIndex547 := position, tokenIndex + position548, tokenIndex548 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l547 + goto l548 } position++ - goto l546 - l547: - position, tokenIndex = position547, tokenIndex547 + goto l547 + l548: + position, tokenIndex = position548, tokenIndex548 } if buffer[position] != rune(')') { - goto l533 + goto l534 } position++ - goto l522 - l533: - position, tokenIndex = position522, tokenIndex522 + goto l523 + l534: + position, tokenIndex = position523, tokenIndex523 { - position549, tokenIndex549 := position, tokenIndex + position550, tokenIndex550 := position, tokenIndex if buffer[position] != rune('$') { - goto l549 + goto l550 } position++ - goto l550 - l549: - position, tokenIndex = position549, tokenIndex549 + goto l551 + l550: + position, tokenIndex = position550, tokenIndex550 } - l550: + l551: { - position551, tokenIndex551 := position, tokenIndex + position552, tokenIndex552 := position, tokenIndex if !_rules[ruleOffset]() { - goto l552 + goto l553 } if !_rules[ruleOffset]() { - goto l552 + goto l553 } - goto l551 - l552: - position, tokenIndex = position551, tokenIndex551 + goto l552 + l553: + position, tokenIndex = position552, tokenIndex552 if !_rules[ruleOffset]() { - goto l548 + goto l549 } } - l551: - goto l522 - l548: - position, tokenIndex = position522, tokenIndex522 + l552: + goto l523 + l549: + position, tokenIndex = position523, tokenIndex523 if buffer[position] != rune('#') { - goto l553 + goto l554 } position++ if !_rules[ruleOffset]() { - goto l553 + goto l554 } { - position554, tokenIndex554 := position, tokenIndex + position555, tokenIndex555 := position, tokenIndex if buffer[position] != rune('*') { - goto l554 + goto l555 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l554 + goto l555 } position++ - l556: + l557: { - position557, tokenIndex557 := position, tokenIndex + position558, tokenIndex558 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l557 + goto l558 } position++ - goto l556 - l557: - position, tokenIndex = position557, tokenIndex557 + goto l557 + l558: + position, tokenIndex = position558, tokenIndex558 } { - position558, tokenIndex558 := position, tokenIndex + position559, tokenIndex559 := position, tokenIndex if buffer[position] != rune('-') { - goto l558 + goto l559 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l558 + goto l559 } position++ - l560: + l561: { - position561, tokenIndex561 := position, tokenIndex + position562, tokenIndex562 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l561 + goto l562 } position++ - goto l560 - l561: - position, tokenIndex = position561, tokenIndex561 + goto l561 + l562: + position, tokenIndex = position562, tokenIndex562 } - goto l559 - l558: - position, tokenIndex = position558, tokenIndex558 - } - l559: - goto l555 - l554: - position, tokenIndex = position554, tokenIndex554 - } - l555: - goto l522 - l553: - position, tokenIndex = position522, tokenIndex522 + goto l560 + l559: + position, tokenIndex = position559, tokenIndex559 + } + l560: + goto l556 + l555: + position, tokenIndex = position555, tokenIndex555 + } + l556: + goto l523 + l554: + position, tokenIndex = position523, tokenIndex523 if buffer[position] != rune('#') { - goto l562 + goto l563 } position++ { - position563, tokenIndex563 := position, tokenIndex + position564, tokenIndex564 := position, tokenIndex if buffer[position] != rune('~') { - goto l563 + goto l564 } position++ - goto l564 - l563: - position, tokenIndex = position563, tokenIndex563 + goto l565 + l564: + position, tokenIndex = position564, tokenIndex564 } - l564: + l565: if buffer[position] != rune('(') { - goto l562 + goto l563 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l562 + goto l563 } position++ { - position565, tokenIndex565 := position, tokenIndex + position566, tokenIndex566 := position, tokenIndex if !_rules[ruleWS]() { - goto l565 + goto l566 } - goto l566 - l565: - position, tokenIndex = position565, tokenIndex565 + goto l567 + l566: + position, tokenIndex = position566, tokenIndex566 } - l566: + l567: if buffer[position] != rune('<') { - goto l562 + goto l563 } position++ if buffer[position] != rune('<') { - goto l562 + goto l563 } position++ { - position567, tokenIndex567 := position, tokenIndex + position568, tokenIndex568 := position, tokenIndex if !_rules[ruleWS]() { - goto l567 + goto l568 } - goto l568 - l567: - position, tokenIndex = position567, tokenIndex567 + goto l569 + l568: + position, tokenIndex = position568, tokenIndex568 } - l568: + l569: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l562 + goto l563 } position++ { - position569, tokenIndex569 := position, tokenIndex + position570, tokenIndex570 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l569 + goto l570 } position++ - goto l570 - l569: - position, tokenIndex = position569, tokenIndex569 + goto l571 + l570: + position, tokenIndex = position570, tokenIndex570 } - l570: + l571: if buffer[position] != rune(')') { - goto l562 + goto l563 } position++ - goto l522 - l562: - position, tokenIndex = position522, tokenIndex522 + goto l523 + l563: + position, tokenIndex = position523, tokenIndex523 { - position572, tokenIndex572 := position, tokenIndex + position573, tokenIndex573 := position, tokenIndex if buffer[position] != rune('#') { - goto l573 + goto l574 } position++ - goto l572 - l573: - position, tokenIndex = position572, tokenIndex572 + goto l573 + l574: + position, tokenIndex = position573, tokenIndex573 if buffer[position] != rune('$') { - goto l571 + goto l572 } position++ } - l572: + l573: { - position574, tokenIndex574 := position, tokenIndex + position575, tokenIndex575 := position, tokenIndex if buffer[position] != rune('~') { - goto l574 + goto l575 } position++ - goto l575 - l574: - position, tokenIndex = position574, tokenIndex574 + goto l576 + l575: + position, tokenIndex = position575, tokenIndex575 } - l575: + l576: { - position576, tokenIndex576 := position, tokenIndex + position577, tokenIndex577 := position, tokenIndex if buffer[position] != rune('0') { - goto l576 + goto l577 } position++ if buffer[position] != rune('x') { - goto l576 + goto l577 } position++ - goto l577 - l576: - position, tokenIndex = position576, tokenIndex576 + goto l578 + l577: + position, tokenIndex = position577, tokenIndex577 } - l577: + l578: { - position580, tokenIndex580 := position, tokenIndex + position581, tokenIndex581 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l581 + goto l582 } position++ - goto l580 - l581: - position, tokenIndex = position580, tokenIndex580 + goto l581 + l582: + position, tokenIndex = position581, tokenIndex581 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l582 + goto l583 } position++ - goto l580 - l582: - position, tokenIndex = position580, tokenIndex580 + goto l581 + l583: + position, tokenIndex = position581, tokenIndex581 { - position583, tokenIndex583 := position, tokenIndex + position584, tokenIndex584 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l584 + goto l585 } position++ - goto l583 - l584: - position, tokenIndex = position583, tokenIndex583 + goto l584 + l585: + position, tokenIndex = position584, tokenIndex584 if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l571 + goto l572 } position++ } - l583: + l584: } - l580: - l578: + l581: + l579: { - position579, tokenIndex579 := position, tokenIndex + position580, tokenIndex580 := position, tokenIndex { - position585, tokenIndex585 := position, tokenIndex + position586, tokenIndex586 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l586 + goto l587 } position++ - goto l585 - l586: - position, tokenIndex = position585, tokenIndex585 + goto l586 + l587: + position, tokenIndex = position586, tokenIndex586 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l587 + goto l588 } position++ - goto l585 - l587: - position, tokenIndex = position585, tokenIndex585 + goto l586 + l588: + position, tokenIndex = position586, tokenIndex586 { - position588, tokenIndex588 := position, tokenIndex + position589, tokenIndex589 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l589 + goto l590 } position++ - goto l588 - l589: - position, tokenIndex = position588, tokenIndex588 + goto l589 + l590: + position, tokenIndex = position589, tokenIndex589 if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l579 + goto l580 } position++ } - l588: + l589: } - l585: - goto l578 - l579: - position, tokenIndex = position579, tokenIndex579 + l586: + goto l579 + l580: + position, tokenIndex = position580, tokenIndex580 } - goto l522 - l571: - position, tokenIndex = position522, tokenIndex522 + goto l523 + l572: + position, tokenIndex = position523, tokenIndex523 if buffer[position] != rune('$') { - goto l590 + goto l591 } position++ if buffer[position] != rune('(') { - goto l590 + goto l591 } position++ if buffer[position] != rune('-') { - goto l590 + goto l591 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l590 + goto l591 } position++ - l591: + l592: { - position592, tokenIndex592 := position, tokenIndex + position593, tokenIndex593 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l592 + goto l593 } position++ - goto l591 - l592: - position, tokenIndex = position592, tokenIndex592 + goto l592 + l593: + position, tokenIndex = position593, tokenIndex593 } if buffer[position] != rune(')') { - goto l590 + goto l591 } position++ - goto l522 - l590: - position, tokenIndex = position522, tokenIndex522 + goto l523 + l591: + position, tokenIndex = position523, tokenIndex523 if !_rules[ruleARMRegister]() { - goto l520 + goto l521 } } - l522: + l523: { - position593, tokenIndex593 := position, tokenIndex + position594, tokenIndex594 := position, tokenIndex { - position594, tokenIndex594 := position, tokenIndex + position595, tokenIndex595 := position, tokenIndex if buffer[position] != rune('f') { - goto l595 - } - position++ - goto l594 - l595: - position, tokenIndex = position594, tokenIndex594 - if buffer[position] != rune('b') { goto l596 } position++ - goto l594 + goto l595 l596: - position, tokenIndex = position594, tokenIndex594 - if buffer[position] != rune(':') { + position, tokenIndex = position595, tokenIndex595 + if buffer[position] != rune('b') { goto l597 } position++ - goto l594 + goto l595 l597: - position, tokenIndex = position594, tokenIndex594 - if buffer[position] != rune('(') { + position, tokenIndex = position595, tokenIndex595 + if buffer[position] != rune(':') { goto l598 } position++ - goto l594 + goto l595 l598: - position, tokenIndex = position594, tokenIndex594 - if buffer[position] != rune('+') { + position, tokenIndex = position595, tokenIndex595 + if buffer[position] != rune('(') { goto l599 } position++ - goto l594 + goto l595 l599: - position, tokenIndex = position594, tokenIndex594 + position, tokenIndex = position595, tokenIndex595 + if buffer[position] != rune('+') { + goto l600 + } + position++ + goto l595 + l600: + position, tokenIndex = position595, tokenIndex595 if buffer[position] != rune('-') { - goto l593 + goto l594 } position++ } + l595: + goto l521 l594: - goto l520 - l593: - position, tokenIndex = position593, tokenIndex593 + position, tokenIndex = position594, tokenIndex594 } - add(ruleRegisterOrConstant, position521) + add(ruleRegisterOrConstant, position522) } return true - l520: - position, tokenIndex = position520, tokenIndex520 + l521: + position, tokenIndex = position521, tokenIndex521 return false }, /* 42 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)?)> */ func() bool { - position600, tokenIndex600 := position, tokenIndex + position601, tokenIndex601 := position, tokenIndex { - position601 := position + position602 := position { - position602, tokenIndex602 := position, tokenIndex + position603, tokenIndex603 := position, tokenIndex { - position604, tokenIndex604 := position, tokenIndex + position605, tokenIndex605 := position, tokenIndex if buffer[position] != rune('u') { - goto l605 + goto l606 } position++ - goto l604 - l605: - position, tokenIndex = position604, tokenIndex604 + goto l605 + l606: + position, tokenIndex = position605, tokenIndex605 if buffer[position] != rune('s') { - goto l603 + goto l604 } position++ } - l604: + l605: { - position606, tokenIndex606 := position, tokenIndex + position607, tokenIndex607 := position, tokenIndex if buffer[position] != rune('x') { - goto l607 + goto l608 } position++ - goto l606 - l607: - position, tokenIndex = position606, tokenIndex606 + goto l607 + l608: + position, tokenIndex = position607, tokenIndex607 if buffer[position] != rune('X') { - goto l603 + goto l604 } position++ } - l606: + l607: { - position608, tokenIndex608 := position, tokenIndex + position609, tokenIndex609 := position, tokenIndex if buffer[position] != rune('t') { - goto l609 + goto l610 } position++ - goto l608 - l609: - position, tokenIndex = position608, tokenIndex608 + goto l609 + l610: + position, tokenIndex = position609, tokenIndex609 if buffer[position] != rune('T') { - goto l603 + goto l604 } position++ } - l608: + l609: { - position610, tokenIndex610 := position, tokenIndex + position611, tokenIndex611 := position, tokenIndex if buffer[position] != rune('x') { - goto l611 - } - position++ - goto l610 - l611: - position, tokenIndex = position610, tokenIndex610 - if buffer[position] != rune('w') { goto l612 } position++ - goto l610 + goto l611 l612: - position, tokenIndex = position610, tokenIndex610 - if buffer[position] != rune('h') { + position, tokenIndex = position611, tokenIndex611 + if buffer[position] != rune('w') { goto l613 } position++ - goto l610 + goto l611 l613: - position, tokenIndex = position610, tokenIndex610 + position, tokenIndex = position611, tokenIndex611 + if buffer[position] != rune('h') { + goto l614 + } + position++ + goto l611 + l614: + position, tokenIndex = position611, tokenIndex611 if buffer[position] != rune('b') { - goto l603 + goto l604 } position++ } - l610: - goto l602 - l603: - position, tokenIndex = position602, tokenIndex602 + l611: + goto l603 + l604: + position, tokenIndex = position603, tokenIndex603 { - position615, tokenIndex615 := position, tokenIndex + position616, tokenIndex616 := position, tokenIndex if buffer[position] != rune('l') { - goto l616 + goto l617 } position++ - goto l615 - l616: - position, tokenIndex = position615, tokenIndex615 + goto l616 + l617: + position, tokenIndex = position616, tokenIndex616 if buffer[position] != rune('L') { - goto l614 + goto l615 } position++ } - l615: + l616: { - position617, tokenIndex617 := position, tokenIndex + position618, tokenIndex618 := position, tokenIndex if buffer[position] != rune('s') { - goto l618 + goto l619 } position++ - goto l617 - l618: - position, tokenIndex = position617, tokenIndex617 + goto l618 + l619: + position, tokenIndex = position618, tokenIndex618 if buffer[position] != rune('S') { - goto l614 + goto l615 } position++ } - l617: + l618: { - position619, tokenIndex619 := position, tokenIndex + position620, tokenIndex620 := position, tokenIndex if buffer[position] != rune('l') { - goto l620 + goto l621 } position++ - goto l619 - l620: - position, tokenIndex = position619, tokenIndex619 + goto l620 + l621: + position, tokenIndex = position620, tokenIndex620 if buffer[position] != rune('L') { - goto l614 + goto l615 } position++ } - l619: - goto l602 - l614: - position, tokenIndex = position602, tokenIndex602 + l620: + goto l603 + l615: + position, tokenIndex = position603, tokenIndex603 { - position622, tokenIndex622 := position, tokenIndex + position623, tokenIndex623 := position, tokenIndex if buffer[position] != rune('l') { - goto l623 + goto l624 } position++ - goto l622 - l623: - position, tokenIndex = position622, tokenIndex622 + goto l623 + l624: + position, tokenIndex = position623, tokenIndex623 if buffer[position] != rune('L') { - goto l621 + goto l622 } position++ } - l622: + l623: { - position624, tokenIndex624 := position, tokenIndex + position625, tokenIndex625 := position, tokenIndex if buffer[position] != rune('s') { - goto l625 + goto l626 } position++ - goto l624 - l625: - position, tokenIndex = position624, tokenIndex624 + goto l625 + l626: + position, tokenIndex = position625, tokenIndex625 if buffer[position] != rune('S') { - goto l621 + goto l622 } position++ } - l624: + l625: { - position626, tokenIndex626 := position, tokenIndex + position627, tokenIndex627 := position, tokenIndex if buffer[position] != rune('r') { - goto l627 + goto l628 } position++ - goto l626 - l627: - position, tokenIndex = position626, tokenIndex626 + goto l627 + l628: + position, tokenIndex = position627, tokenIndex627 if buffer[position] != rune('R') { - goto l621 + goto l622 } position++ } - l626: - goto l602 - l621: - position, tokenIndex = position602, tokenIndex602 + l627: + goto l603 + l622: + position, tokenIndex = position603, tokenIndex603 { - position629, tokenIndex629 := position, tokenIndex + position630, tokenIndex630 := position, tokenIndex if buffer[position] != rune('r') { - goto l630 + goto l631 } position++ - goto l629 - l630: - position, tokenIndex = position629, tokenIndex629 + goto l630 + l631: + position, tokenIndex = position630, tokenIndex630 if buffer[position] != rune('R') { - goto l628 + goto l629 } position++ } - l629: + l630: { - position631, tokenIndex631 := position, tokenIndex + position632, tokenIndex632 := position, tokenIndex if buffer[position] != rune('o') { - goto l632 + goto l633 } position++ - goto l631 - l632: - position, tokenIndex = position631, tokenIndex631 + goto l632 + l633: + position, tokenIndex = position632, tokenIndex632 if buffer[position] != rune('O') { - goto l628 + goto l629 } position++ } - l631: + l632: { - position633, tokenIndex633 := position, tokenIndex + position634, tokenIndex634 := position, tokenIndex if buffer[position] != rune('r') { - goto l634 + goto l635 } position++ - goto l633 - l634: - position, tokenIndex = position633, tokenIndex633 + goto l634 + l635: + position, tokenIndex = position634, tokenIndex634 if buffer[position] != rune('R') { - goto l628 + goto l629 } position++ } - l633: - goto l602 - l628: - position, tokenIndex = position602, tokenIndex602 + l634: + goto l603 + l629: + position, tokenIndex = position603, tokenIndex603 { - position635, tokenIndex635 := position, tokenIndex + position636, tokenIndex636 := position, tokenIndex if buffer[position] != rune('a') { - goto l636 + goto l637 } position++ - goto l635 - l636: - position, tokenIndex = position635, tokenIndex635 + goto l636 + l637: + position, tokenIndex = position636, tokenIndex636 if buffer[position] != rune('A') { - goto l600 + goto l601 } position++ } - l635: + l636: { - position637, tokenIndex637 := position, tokenIndex + position638, tokenIndex638 := position, tokenIndex if buffer[position] != rune('s') { - goto l638 + goto l639 } position++ - goto l637 - l638: - position, tokenIndex = position637, tokenIndex637 + goto l638 + l639: + position, tokenIndex = position638, tokenIndex638 if buffer[position] != rune('S') { - goto l600 + goto l601 } position++ } - l637: + l638: { - position639, tokenIndex639 := position, tokenIndex + position640, tokenIndex640 := position, tokenIndex if buffer[position] != rune('r') { - goto l640 + goto l641 } position++ - goto l639 - l640: - position, tokenIndex = position639, tokenIndex639 + goto l640 + l641: + position, tokenIndex = position640, tokenIndex640 if buffer[position] != rune('R') { - goto l600 + goto l601 } position++ } - l639: + l640: } - l602: + l603: { - position641, tokenIndex641 := position, tokenIndex + position642, tokenIndex642 := position, tokenIndex if !_rules[ruleWS]() { - goto l641 + goto l642 } { - position643, tokenIndex643 := position, tokenIndex + position644, tokenIndex644 := position, tokenIndex if buffer[position] != rune('#') { - goto l643 + goto l644 } position++ - goto l644 - l643: - position, tokenIndex = position643, tokenIndex643 + goto l645 + l644: + position, tokenIndex = position644, tokenIndex644 } - l644: + l645: if !_rules[ruleOffset]() { - goto l641 + goto l642 } - goto l642 - l641: - position, tokenIndex = position641, tokenIndex641 + goto l643 + l642: + position, tokenIndex = position642, tokenIndex642 } - l642: - add(ruleARMConstantTweak, position601) + l643: + add(ruleARMConstantTweak, position602) } return true - l600: - position, tokenIndex = position600, tokenIndex600 + l601: + position, tokenIndex = position601, tokenIndex601 return false }, /* 43 ARMRegister <- <((('s' / 'S') ('p' / 'P')) / (('x' / 'w' / 'd' / 'q' / 's' / 'h' / 'b') [0-9] [0-9]?) / (('x' / 'X') ('z' / 'Z') ('r' / 'R')) / (('w' / 'W') ('z' / 'Z') ('r' / 'R')) / (('n' / 'N') ('z' / 'Z') ('c' / 'C') ('v' / 'V')) / ARMVectorRegister / ('{' WS? ARMVectorRegister WS? ((',' / '-') WS? ARMVectorRegister)* WS? '}' ('[' [0-9] [0-9]? ']')?))> */ func() bool { - position645, tokenIndex645 := position, tokenIndex + position646, tokenIndex646 := position, tokenIndex { - position646 := position + position647 := position { - position647, tokenIndex647 := position, tokenIndex + position648, tokenIndex648 := position, tokenIndex { - position649, tokenIndex649 := position, tokenIndex + position650, tokenIndex650 := position, tokenIndex if buffer[position] != rune('s') { - goto l650 + goto l651 } position++ - goto l649 - l650: - position, tokenIndex = position649, tokenIndex649 + goto l650 + l651: + position, tokenIndex = position650, tokenIndex650 if buffer[position] != rune('S') { - goto l648 + goto l649 } position++ } - l649: + l650: { - position651, tokenIndex651 := position, tokenIndex + position652, tokenIndex652 := position, tokenIndex if buffer[position] != rune('p') { - goto l652 + goto l653 } position++ - goto l651 - l652: - position, tokenIndex = position651, tokenIndex651 + goto l652 + l653: + position, tokenIndex = position652, tokenIndex652 if buffer[position] != rune('P') { - goto l648 + goto l649 } position++ } - l651: - goto l647 - l648: - position, tokenIndex = position647, tokenIndex647 + l652: + goto l648 + l649: + position, tokenIndex = position648, tokenIndex648 { - position654, tokenIndex654 := position, tokenIndex + position655, tokenIndex655 := position, tokenIndex if buffer[position] != rune('x') { - goto l655 - } - position++ - goto l654 - l655: - position, tokenIndex = position654, tokenIndex654 - if buffer[position] != rune('w') { goto l656 } position++ - goto l654 + goto l655 l656: - position, tokenIndex = position654, tokenIndex654 - if buffer[position] != rune('d') { + position, tokenIndex = position655, tokenIndex655 + if buffer[position] != rune('w') { goto l657 } position++ - goto l654 + goto l655 l657: - position, tokenIndex = position654, tokenIndex654 - if buffer[position] != rune('q') { + position, tokenIndex = position655, tokenIndex655 + if buffer[position] != rune('d') { goto l658 } position++ - goto l654 + goto l655 l658: - position, tokenIndex = position654, tokenIndex654 - if buffer[position] != rune('s') { + position, tokenIndex = position655, tokenIndex655 + if buffer[position] != rune('q') { goto l659 } position++ - goto l654 + goto l655 l659: - position, tokenIndex = position654, tokenIndex654 - if buffer[position] != rune('h') { + position, tokenIndex = position655, tokenIndex655 + if buffer[position] != rune('s') { goto l660 } position++ - goto l654 + goto l655 l660: - position, tokenIndex = position654, tokenIndex654 + position, tokenIndex = position655, tokenIndex655 + if buffer[position] != rune('h') { + goto l661 + } + position++ + goto l655 + l661: + position, tokenIndex = position655, tokenIndex655 if buffer[position] != rune('b') { - goto l653 + goto l654 } position++ } - l654: + l655: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l653 + goto l654 } position++ { - position661, tokenIndex661 := position, tokenIndex + position662, tokenIndex662 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l661 + goto l662 } position++ - goto l662 - l661: - position, tokenIndex = position661, tokenIndex661 + goto l663 + l662: + position, tokenIndex = position662, tokenIndex662 } - l662: - goto l647 - l653: - position, tokenIndex = position647, tokenIndex647 + l663: + goto l648 + l654: + position, tokenIndex = position648, tokenIndex648 { - position664, tokenIndex664 := position, tokenIndex + position665, tokenIndex665 := position, tokenIndex if buffer[position] != rune('x') { - goto l665 + goto l666 } position++ - goto l664 - l665: - position, tokenIndex = position664, tokenIndex664 + goto l665 + l666: + position, tokenIndex = position665, tokenIndex665 if buffer[position] != rune('X') { - goto l663 + goto l664 } position++ } - l664: + l665: { - position666, tokenIndex666 := position, tokenIndex + position667, tokenIndex667 := position, tokenIndex if buffer[position] != rune('z') { - goto l667 + goto l668 } position++ - goto l666 - l667: - position, tokenIndex = position666, tokenIndex666 + goto l667 + l668: + position, tokenIndex = position667, tokenIndex667 if buffer[position] != rune('Z') { - goto l663 + goto l664 } position++ } - l666: + l667: { - position668, tokenIndex668 := position, tokenIndex + position669, tokenIndex669 := position, tokenIndex if buffer[position] != rune('r') { - goto l669 + goto l670 } position++ - goto l668 - l669: - position, tokenIndex = position668, tokenIndex668 + goto l669 + l670: + position, tokenIndex = position669, tokenIndex669 if buffer[position] != rune('R') { - goto l663 + goto l664 } position++ } - l668: - goto l647 - l663: - position, tokenIndex = position647, tokenIndex647 + l669: + goto l648 + l664: + position, tokenIndex = position648, tokenIndex648 { - position671, tokenIndex671 := position, tokenIndex + position672, tokenIndex672 := position, tokenIndex if buffer[position] != rune('w') { - goto l672 + goto l673 } position++ - goto l671 - l672: - position, tokenIndex = position671, tokenIndex671 + goto l672 + l673: + position, tokenIndex = position672, tokenIndex672 if buffer[position] != rune('W') { - goto l670 + goto l671 } position++ } - l671: + l672: { - position673, tokenIndex673 := position, tokenIndex + position674, tokenIndex674 := position, tokenIndex if buffer[position] != rune('z') { - goto l674 + goto l675 } position++ - goto l673 - l674: - position, tokenIndex = position673, tokenIndex673 + goto l674 + l675: + position, tokenIndex = position674, tokenIndex674 if buffer[position] != rune('Z') { - goto l670 + goto l671 } position++ } - l673: + l674: { - position675, tokenIndex675 := position, tokenIndex + position676, tokenIndex676 := position, tokenIndex if buffer[position] != rune('r') { - goto l676 + goto l677 } position++ - goto l675 - l676: - position, tokenIndex = position675, tokenIndex675 + goto l676 + l677: + position, tokenIndex = position676, tokenIndex676 if buffer[position] != rune('R') { - goto l670 + goto l671 } position++ } - l675: - goto l647 - l670: - position, tokenIndex = position647, tokenIndex647 + l676: + goto l648 + l671: + position, tokenIndex = position648, tokenIndex648 { - position678, tokenIndex678 := position, tokenIndex + position679, tokenIndex679 := position, tokenIndex if buffer[position] != rune('n') { - goto l679 + goto l680 } position++ - goto l678 - l679: - position, tokenIndex = position678, tokenIndex678 + goto l679 + l680: + position, tokenIndex = position679, tokenIndex679 if buffer[position] != rune('N') { - goto l677 + goto l678 } position++ } - l678: + l679: { - position680, tokenIndex680 := position, tokenIndex + position681, tokenIndex681 := position, tokenIndex if buffer[position] != rune('z') { - goto l681 + goto l682 } position++ - goto l680 - l681: - position, tokenIndex = position680, tokenIndex680 + goto l681 + l682: + position, tokenIndex = position681, tokenIndex681 if buffer[position] != rune('Z') { - goto l677 + goto l678 } position++ } - l680: + l681: { - position682, tokenIndex682 := position, tokenIndex + position683, tokenIndex683 := position, tokenIndex if buffer[position] != rune('c') { - goto l683 + goto l684 } position++ - goto l682 - l683: - position, tokenIndex = position682, tokenIndex682 + goto l683 + l684: + position, tokenIndex = position683, tokenIndex683 if buffer[position] != rune('C') { - goto l677 + goto l678 } position++ } - l682: + l683: { - position684, tokenIndex684 := position, tokenIndex + position685, tokenIndex685 := position, tokenIndex if buffer[position] != rune('v') { - goto l685 + goto l686 } position++ - goto l684 - l685: - position, tokenIndex = position684, tokenIndex684 + goto l685 + l686: + position, tokenIndex = position685, tokenIndex685 if buffer[position] != rune('V') { - goto l677 + goto l678 } position++ } - l684: - goto l647 - l677: - position, tokenIndex = position647, tokenIndex647 + l685: + goto l648 + l678: + position, tokenIndex = position648, tokenIndex648 if !_rules[ruleARMVectorRegister]() { - goto l686 + goto l687 } - goto l647 - l686: - position, tokenIndex = position647, tokenIndex647 + goto l648 + l687: + position, tokenIndex = position648, tokenIndex648 if buffer[position] != rune('{') { - goto l645 + goto l646 } position++ { - position687, tokenIndex687 := position, tokenIndex + position688, tokenIndex688 := position, tokenIndex if !_rules[ruleWS]() { - goto l687 + goto l688 } - goto l688 - l687: - position, tokenIndex = position687, tokenIndex687 + goto l689 + l688: + position, tokenIndex = position688, tokenIndex688 } - l688: + l689: if !_rules[ruleARMVectorRegister]() { - goto l645 + goto l646 } { - position689, tokenIndex689 := position, tokenIndex + position690, tokenIndex690 := position, tokenIndex if !_rules[ruleWS]() { - goto l689 + goto l690 } - goto l690 - l689: - position, tokenIndex = position689, tokenIndex689 + goto l691 + l690: + position, tokenIndex = position690, tokenIndex690 } - l690: l691: + l692: { - position692, tokenIndex692 := position, tokenIndex + position693, tokenIndex693 := position, tokenIndex { - position693, tokenIndex693 := position, tokenIndex + position694, tokenIndex694 := position, tokenIndex if buffer[position] != rune(',') { - goto l694 + goto l695 } position++ - goto l693 - l694: - position, tokenIndex = position693, tokenIndex693 + goto l694 + l695: + position, tokenIndex = position694, tokenIndex694 if buffer[position] != rune('-') { - goto l692 + goto l693 } position++ } - l693: + l694: { - position695, tokenIndex695 := position, tokenIndex + position696, tokenIndex696 := position, tokenIndex if !_rules[ruleWS]() { - goto l695 + goto l696 } - goto l696 - l695: - position, tokenIndex = position695, tokenIndex695 + goto l697 + l696: + position, tokenIndex = position696, tokenIndex696 } - l696: + l697: if !_rules[ruleARMVectorRegister]() { - goto l692 + goto l693 } - goto l691 - l692: - position, tokenIndex = position692, tokenIndex692 + goto l692 + l693: + position, tokenIndex = position693, tokenIndex693 } { - position697, tokenIndex697 := position, tokenIndex + position698, tokenIndex698 := position, tokenIndex if !_rules[ruleWS]() { - goto l697 + goto l698 } - goto l698 - l697: - position, tokenIndex = position697, tokenIndex697 + goto l699 + l698: + position, tokenIndex = position698, tokenIndex698 } - l698: + l699: if buffer[position] != rune('}') { - goto l645 + goto l646 } position++ { - position699, tokenIndex699 := position, tokenIndex + position700, tokenIndex700 := position, tokenIndex if buffer[position] != rune('[') { - goto l699 + goto l700 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l699 + goto l700 } position++ { - position701, tokenIndex701 := position, tokenIndex + position702, tokenIndex702 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l701 + goto l702 } position++ - goto l702 - l701: - position, tokenIndex = position701, tokenIndex701 + goto l703 + l702: + position, tokenIndex = position702, tokenIndex702 } - l702: + l703: if buffer[position] != rune(']') { - goto l699 + goto l700 } position++ - goto l700 - l699: - position, tokenIndex = position699, tokenIndex699 + goto l701 + l700: + position, tokenIndex = position700, tokenIndex700 } - l700: + l701: } - l647: - add(ruleARMRegister, position646) + l648: + add(ruleARMRegister, position647) } return true - l645: - position, tokenIndex = position645, tokenIndex645 + l646: + position, tokenIndex = position646, tokenIndex646 return false }, /* 44 ARMVectorRegister <- <(('v' / 'V') [0-9] [0-9]? ('.' [0-9]* ('b' / 's' / 'd' / 'h' / 'q') ('[' [0-9] [0-9]? ']')?)?)> */ func() bool { - position703, tokenIndex703 := position, tokenIndex + position704, tokenIndex704 := position, tokenIndex { - position704 := position + position705 := position { - position705, tokenIndex705 := position, tokenIndex + position706, tokenIndex706 := position, tokenIndex if buffer[position] != rune('v') { - goto l706 + goto l707 } position++ - goto l705 - l706: - position, tokenIndex = position705, tokenIndex705 + goto l706 + l707: + position, tokenIndex = position706, tokenIndex706 if buffer[position] != rune('V') { - goto l703 + goto l704 } position++ } - l705: + l706: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l703 + goto l704 } position++ { - position707, tokenIndex707 := position, tokenIndex + position708, tokenIndex708 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l707 + goto l708 } position++ - goto l708 - l707: - position, tokenIndex = position707, tokenIndex707 + goto l709 + l708: + position, tokenIndex = position708, tokenIndex708 } - l708: + l709: { - position709, tokenIndex709 := position, tokenIndex + position710, tokenIndex710 := position, tokenIndex if buffer[position] != rune('.') { - goto l709 + goto l710 } position++ - l711: + l712: { - position712, tokenIndex712 := position, tokenIndex + position713, tokenIndex713 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l712 + goto l713 } position++ - goto l711 - l712: - position, tokenIndex = position712, tokenIndex712 + goto l712 + l713: + position, tokenIndex = position713, tokenIndex713 } { - position713, tokenIndex713 := position, tokenIndex + position714, tokenIndex714 := position, tokenIndex if buffer[position] != rune('b') { - goto l714 - } - position++ - goto l713 - l714: - position, tokenIndex = position713, tokenIndex713 - if buffer[position] != rune('s') { goto l715 } position++ - goto l713 + goto l714 l715: - position, tokenIndex = position713, tokenIndex713 - if buffer[position] != rune('d') { + position, tokenIndex = position714, tokenIndex714 + if buffer[position] != rune('s') { goto l716 } position++ - goto l713 + goto l714 l716: - position, tokenIndex = position713, tokenIndex713 - if buffer[position] != rune('h') { + position, tokenIndex = position714, tokenIndex714 + if buffer[position] != rune('d') { goto l717 } position++ - goto l713 + goto l714 l717: - position, tokenIndex = position713, tokenIndex713 + position, tokenIndex = position714, tokenIndex714 + if buffer[position] != rune('h') { + goto l718 + } + position++ + goto l714 + l718: + position, tokenIndex = position714, tokenIndex714 if buffer[position] != rune('q') { - goto l709 + goto l710 } position++ } - l713: + l714: { - position718, tokenIndex718 := position, tokenIndex + position719, tokenIndex719 := position, tokenIndex if buffer[position] != rune('[') { - goto l718 + goto l719 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l718 + goto l719 } position++ { - position720, tokenIndex720 := position, tokenIndex + position721, tokenIndex721 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l720 + goto l721 } position++ - goto l721 - l720: - position, tokenIndex = position720, tokenIndex720 + goto l722 + l721: + position, tokenIndex = position721, tokenIndex721 } - l721: + l722: if buffer[position] != rune(']') { - goto l718 + goto l719 } position++ - goto l719 - l718: - position, tokenIndex = position718, tokenIndex718 + goto l720 + l719: + position, tokenIndex = position719, tokenIndex719 } - l719: - goto l710 - l709: - position, tokenIndex = position709, tokenIndex709 + l720: + goto l711 + l710: + position, tokenIndex = position710, tokenIndex710 } - l710: - add(ruleARMVectorRegister, position704) + l711: + add(ruleARMVectorRegister, position705) } return true - l703: - position, tokenIndex = position703, tokenIndex703 + l704: + position, tokenIndex = position704, tokenIndex704 return false }, /* 45 MemoryRef <- <((SymbolRef BaseIndexScale) / SymbolRef / Low12BitsSymbolRef / (Offset* BaseIndexScale) / (SegmentRegister Offset BaseIndexScale) / (SegmentRegister BaseIndexScale) / (SegmentRegister Offset) / ARMBaseIndexScale / BaseIndexScale)> */ func() bool { - position722, tokenIndex722 := position, tokenIndex + position723, tokenIndex723 := position, tokenIndex { - position723 := position + position724 := position { - position724, tokenIndex724 := position, tokenIndex + position725, tokenIndex725 := position, tokenIndex if !_rules[ruleSymbolRef]() { - goto l725 + goto l726 } if !_rules[ruleBaseIndexScale]() { - goto l725 - } - goto l724 - l725: - position, tokenIndex = position724, tokenIndex724 - if !_rules[ruleSymbolRef]() { goto l726 } - goto l724 + goto l725 l726: - position, tokenIndex = position724, tokenIndex724 - if !_rules[ruleLow12BitsSymbolRef]() { + position, tokenIndex = position725, tokenIndex725 + if !_rules[ruleSymbolRef]() { goto l727 } - goto l724 + goto l725 l727: - position, tokenIndex = position724, tokenIndex724 - l729: + position, tokenIndex = position725, tokenIndex725 + if !_rules[ruleLow12BitsSymbolRef]() { + goto l728 + } + goto l725 + l728: + position, tokenIndex = position725, tokenIndex725 + l730: { - position730, tokenIndex730 := position, tokenIndex + position731, tokenIndex731 := position, tokenIndex if !_rules[ruleOffset]() { - goto l730 + goto l731 } - goto l729 - l730: - position, tokenIndex = position730, tokenIndex730 + goto l730 + l731: + position, tokenIndex = position731, tokenIndex731 } if !_rules[ruleBaseIndexScale]() { - goto l728 + goto l729 } - goto l724 - l728: - position, tokenIndex = position724, tokenIndex724 + goto l725 + l729: + position, tokenIndex = position725, tokenIndex725 if !_rules[ruleSegmentRegister]() { - goto l731 + goto l732 } if !_rules[ruleOffset]() { - goto l731 - } - if !_rules[ruleBaseIndexScale]() { - goto l731 - } - goto l724 - l731: - position, tokenIndex = position724, tokenIndex724 - if !_rules[ruleSegmentRegister]() { goto l732 } if !_rules[ruleBaseIndexScale]() { goto l732 } - goto l724 + goto l725 l732: - position, tokenIndex = position724, tokenIndex724 + position, tokenIndex = position725, tokenIndex725 if !_rules[ruleSegmentRegister]() { goto l733 } - if !_rules[ruleOffset]() { + if !_rules[ruleBaseIndexScale]() { goto l733 } - goto l724 + goto l725 l733: - position, tokenIndex = position724, tokenIndex724 - if !_rules[ruleARMBaseIndexScale]() { + position, tokenIndex = position725, tokenIndex725 + if !_rules[ruleSegmentRegister]() { + goto l734 + } + if !_rules[ruleOffset]() { goto l734 } - goto l724 + goto l725 l734: - position, tokenIndex = position724, tokenIndex724 + position, tokenIndex = position725, tokenIndex725 + if !_rules[ruleARMBaseIndexScale]() { + goto l735 + } + goto l725 + l735: + position, tokenIndex = position725, tokenIndex725 if !_rules[ruleBaseIndexScale]() { - goto l722 + goto l723 } } - l724: - add(ruleMemoryRef, position723) + l725: + add(ruleMemoryRef, position724) } return true - l722: - position, tokenIndex = position722, tokenIndex722 + l723: + position, tokenIndex = position723, tokenIndex723 return false }, /* 46 SymbolRef <- <((Offset* '+')? (LocalSymbol / SymbolName) Offset* ('@' Section Offset*)?)> */ func() bool { - position735, tokenIndex735 := position, tokenIndex + position736, tokenIndex736 := position, tokenIndex { - position736 := position + position737 := position { - position737, tokenIndex737 := position, tokenIndex - l739: + position738, tokenIndex738 := position, tokenIndex + l740: { - position740, tokenIndex740 := position, tokenIndex + position741, tokenIndex741 := position, tokenIndex if !_rules[ruleOffset]() { - goto l740 + goto l741 } - goto l739 - l740: - position, tokenIndex = position740, tokenIndex740 + goto l740 + l741: + position, tokenIndex = position741, tokenIndex741 } if buffer[position] != rune('+') { - goto l737 + goto l738 } position++ - goto l738 - l737: - position, tokenIndex = position737, tokenIndex737 + goto l739 + l738: + position, tokenIndex = position738, tokenIndex738 } - l738: + l739: { - position741, tokenIndex741 := position, tokenIndex + position742, tokenIndex742 := position, tokenIndex if !_rules[ruleLocalSymbol]() { - goto l742 + goto l743 } - goto l741 - l742: - position, tokenIndex = position741, tokenIndex741 + goto l742 + l743: + position, tokenIndex = position742, tokenIndex742 if !_rules[ruleSymbolName]() { - goto l735 + goto l736 } } - l741: - l743: + l742: + l744: { - position744, tokenIndex744 := position, tokenIndex + position745, tokenIndex745 := position, tokenIndex if !_rules[ruleOffset]() { - goto l744 + goto l745 } - goto l743 - l744: - position, tokenIndex = position744, tokenIndex744 + goto l744 + l745: + position, tokenIndex = position745, tokenIndex745 } { - position745, tokenIndex745 := position, tokenIndex + position746, tokenIndex746 := position, tokenIndex if buffer[position] != rune('@') { - goto l745 + goto l746 } position++ if !_rules[ruleSection]() { - goto l745 + goto l746 } - l747: + l748: { - position748, tokenIndex748 := position, tokenIndex + position749, tokenIndex749 := position, tokenIndex if !_rules[ruleOffset]() { - goto l748 + goto l749 } - goto l747 - l748: - position, tokenIndex = position748, tokenIndex748 + goto l748 + l749: + position, tokenIndex = position749, tokenIndex749 } - goto l746 - l745: - position, tokenIndex = position745, tokenIndex745 + goto l747 + l746: + position, tokenIndex = position746, tokenIndex746 } - l746: - add(ruleSymbolRef, position736) + l747: + add(ruleSymbolRef, position737) } return true - l735: - position, tokenIndex = position735, tokenIndex735 + l736: + position, tokenIndex = position736, tokenIndex736 return false }, /* 47 Low12BitsSymbolRef <- <(':' ('l' / 'L') ('o' / 'O') '1' '2' ':' (LocalSymbol / SymbolName) Offset?)> */ func() bool { - position749, tokenIndex749 := position, tokenIndex + position750, tokenIndex750 := position, tokenIndex { - position750 := position + position751 := position if buffer[position] != rune(':') { - goto l749 + goto l750 } position++ { - position751, tokenIndex751 := position, tokenIndex + position752, tokenIndex752 := position, tokenIndex if buffer[position] != rune('l') { - goto l752 + goto l753 } position++ - goto l751 - l752: - position, tokenIndex = position751, tokenIndex751 + goto l752 + l753: + position, tokenIndex = position752, tokenIndex752 if buffer[position] != rune('L') { - goto l749 + goto l750 } position++ } - l751: + l752: { - position753, tokenIndex753 := position, tokenIndex + position754, tokenIndex754 := position, tokenIndex if buffer[position] != rune('o') { - goto l754 + goto l755 } position++ - goto l753 - l754: - position, tokenIndex = position753, tokenIndex753 + goto l754 + l755: + position, tokenIndex = position754, tokenIndex754 if buffer[position] != rune('O') { - goto l749 + goto l750 } position++ } - l753: + l754: if buffer[position] != rune('1') { - goto l749 + goto l750 } position++ if buffer[position] != rune('2') { - goto l749 + goto l750 } position++ if buffer[position] != rune(':') { - goto l749 + goto l750 } position++ { - position755, tokenIndex755 := position, tokenIndex + position756, tokenIndex756 := position, tokenIndex if !_rules[ruleLocalSymbol]() { - goto l756 + goto l757 } - goto l755 - l756: - position, tokenIndex = position755, tokenIndex755 + goto l756 + l757: + position, tokenIndex = position756, tokenIndex756 if !_rules[ruleSymbolName]() { - goto l749 + goto l750 } } - l755: + l756: { - position757, tokenIndex757 := position, tokenIndex + position758, tokenIndex758 := position, tokenIndex if !_rules[ruleOffset]() { - goto l757 + goto l758 } - goto l758 - l757: - position, tokenIndex = position757, tokenIndex757 + goto l759 + l758: + position, tokenIndex = position758, tokenIndex758 } - l758: - add(ruleLow12BitsSymbolRef, position750) + l759: + add(ruleLow12BitsSymbolRef, position751) } return true - l749: - position, tokenIndex = position749, tokenIndex749 + l750: + position, tokenIndex = position750, tokenIndex750 return false }, /* 48 ARMBaseIndexScale <- <('[' ARMRegister (',' WS? (('#'? Offset (('*' [0-9]+) / ('*' '(' [0-9]+ Operator [0-9]+ ')') / ('+' [0-9]+)*)?) / ('#'? ARMGOTLow12) / ('#'? Low12BitsSymbolRef) / ARMRegister) (',' WS? ARMConstantTweak)?)? ']' ARMPostincrement?)> */ func() bool { - position759, tokenIndex759 := position, tokenIndex + position760, tokenIndex760 := position, tokenIndex { - position760 := position + position761 := position if buffer[position] != rune('[') { - goto l759 + goto l760 } position++ if !_rules[ruleARMRegister]() { - goto l759 + goto l760 } { - position761, tokenIndex761 := position, tokenIndex + position762, tokenIndex762 := position, tokenIndex if buffer[position] != rune(',') { - goto l761 + goto l762 } position++ { - position763, tokenIndex763 := position, tokenIndex + position764, tokenIndex764 := position, tokenIndex if !_rules[ruleWS]() { - goto l763 + goto l764 } - goto l764 - l763: - position, tokenIndex = position763, tokenIndex763 + goto l765 + l764: + position, tokenIndex = position764, tokenIndex764 } - l764: + l765: { - position765, tokenIndex765 := position, tokenIndex + position766, tokenIndex766 := position, tokenIndex { - position767, tokenIndex767 := position, tokenIndex + position768, tokenIndex768 := position, tokenIndex if buffer[position] != rune('#') { - goto l767 + goto l768 } position++ - goto l768 - l767: - position, tokenIndex = position767, tokenIndex767 + goto l769 + l768: + position, tokenIndex = position768, tokenIndex768 } - l768: + l769: if !_rules[ruleOffset]() { - goto l766 + goto l767 } { - position769, tokenIndex769 := position, tokenIndex + position770, tokenIndex770 := position, tokenIndex { - position771, tokenIndex771 := position, tokenIndex + position772, tokenIndex772 := position, tokenIndex if buffer[position] != rune('*') { - goto l772 + goto l773 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l772 + goto l773 } position++ - l773: + l774: { - position774, tokenIndex774 := position, tokenIndex + position775, tokenIndex775 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l774 + goto l775 } position++ - goto l773 - l774: - position, tokenIndex = position774, tokenIndex774 + goto l774 + l775: + position, tokenIndex = position775, tokenIndex775 } - goto l771 - l772: - position, tokenIndex = position771, tokenIndex771 + goto l772 + l773: + position, tokenIndex = position772, tokenIndex772 if buffer[position] != rune('*') { - goto l775 + goto l776 } position++ if buffer[position] != rune('(') { - goto l775 + goto l776 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l775 + goto l776 } position++ - l776: + l777: { - position777, tokenIndex777 := position, tokenIndex + position778, tokenIndex778 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l777 + goto l778 } position++ - goto l776 - l777: - position, tokenIndex = position777, tokenIndex777 + goto l777 + l778: + position, tokenIndex = position778, tokenIndex778 } if !_rules[ruleOperator]() { - goto l775 + goto l776 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l775 + goto l776 } position++ - l778: + l779: { - position779, tokenIndex779 := position, tokenIndex + position780, tokenIndex780 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l779 + goto l780 } position++ - goto l778 - l779: - position, tokenIndex = position779, tokenIndex779 + goto l779 + l780: + position, tokenIndex = position780, tokenIndex780 } if buffer[position] != rune(')') { - goto l775 + goto l776 } position++ - goto l771 - l775: - position, tokenIndex = position771, tokenIndex771 - l780: + goto l772 + l776: + position, tokenIndex = position772, tokenIndex772 + l781: { - position781, tokenIndex781 := position, tokenIndex + position782, tokenIndex782 := position, tokenIndex if buffer[position] != rune('+') { - goto l781 + goto l782 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l781 + goto l782 } position++ - l782: + l783: { - position783, tokenIndex783 := position, tokenIndex + position784, tokenIndex784 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l783 + goto l784 } position++ - goto l782 - l783: - position, tokenIndex = position783, tokenIndex783 + goto l783 + l784: + position, tokenIndex = position784, tokenIndex784 } - goto l780 - l781: - position, tokenIndex = position781, tokenIndex781 + goto l781 + l782: + position, tokenIndex = position782, tokenIndex782 } } - l771: - goto l770 + l772: + goto l771 - position, tokenIndex = position769, tokenIndex769 + position, tokenIndex = position770, tokenIndex770 } - l770: - goto l765 - l766: - position, tokenIndex = position765, tokenIndex765 + l771: + goto l766 + l767: + position, tokenIndex = position766, tokenIndex766 { - position785, tokenIndex785 := position, tokenIndex + position786, tokenIndex786 := position, tokenIndex if buffer[position] != rune('#') { - goto l785 + goto l786 } position++ - goto l786 - l785: - position, tokenIndex = position785, tokenIndex785 + goto l787 + l786: + position, tokenIndex = position786, tokenIndex786 } - l786: + l787: if !_rules[ruleARMGOTLow12]() { - goto l784 + goto l785 } - goto l765 - l784: - position, tokenIndex = position765, tokenIndex765 + goto l766 + l785: + position, tokenIndex = position766, tokenIndex766 { - position788, tokenIndex788 := position, tokenIndex + position789, tokenIndex789 := position, tokenIndex if buffer[position] != rune('#') { - goto l788 + goto l789 } position++ - goto l789 - l788: - position, tokenIndex = position788, tokenIndex788 + goto l790 + l789: + position, tokenIndex = position789, tokenIndex789 } - l789: + l790: if !_rules[ruleLow12BitsSymbolRef]() { - goto l787 + goto l788 } - goto l765 - l787: - position, tokenIndex = position765, tokenIndex765 + goto l766 + l788: + position, tokenIndex = position766, tokenIndex766 if !_rules[ruleARMRegister]() { - goto l761 + goto l762 } } - l765: + l766: { - position790, tokenIndex790 := position, tokenIndex + position791, tokenIndex791 := position, tokenIndex if buffer[position] != rune(',') { - goto l790 + goto l791 } position++ { - position792, tokenIndex792 := position, tokenIndex + position793, tokenIndex793 := position, tokenIndex if !_rules[ruleWS]() { - goto l792 + goto l793 } - goto l793 - l792: - position, tokenIndex = position792, tokenIndex792 + goto l794 + l793: + position, tokenIndex = position793, tokenIndex793 } - l793: + l794: if !_rules[ruleARMConstantTweak]() { - goto l790 + goto l791 } - goto l791 - l790: - position, tokenIndex = position790, tokenIndex790 + goto l792 + l791: + position, tokenIndex = position791, tokenIndex791 } - l791: - goto l762 - l761: - position, tokenIndex = position761, tokenIndex761 + l792: + goto l763 + l762: + position, tokenIndex = position762, tokenIndex762 } - l762: + l763: if buffer[position] != rune(']') { - goto l759 + goto l760 } position++ { - position794, tokenIndex794 := position, tokenIndex + position795, tokenIndex795 := position, tokenIndex if !_rules[ruleARMPostincrement]() { - goto l794 + goto l795 } - goto l795 - l794: - position, tokenIndex = position794, tokenIndex794 + goto l796 + l795: + position, tokenIndex = position795, tokenIndex795 } - l795: - add(ruleARMBaseIndexScale, position760) + l796: + add(ruleARMBaseIndexScale, position761) } return true - l759: - position, tokenIndex = position759, tokenIndex759 + l760: + position, tokenIndex = position760, tokenIndex760 return false }, /* 49 ARMGOTLow12 <- <(':' ('g' / 'G') ('o' / 'O') ('t' / 'T') '_' ('l' / 'L') ('o' / 'O') '1' '2' ':' SymbolName)> */ func() bool { - position796, tokenIndex796 := position, tokenIndex + position797, tokenIndex797 := position, tokenIndex { - position797 := position + position798 := position if buffer[position] != rune(':') { - goto l796 + goto l797 } position++ { - position798, tokenIndex798 := position, tokenIndex + position799, tokenIndex799 := position, tokenIndex if buffer[position] != rune('g') { - goto l799 + goto l800 } position++ - goto l798 - l799: - position, tokenIndex = position798, tokenIndex798 + goto l799 + l800: + position, tokenIndex = position799, tokenIndex799 if buffer[position] != rune('G') { - goto l796 + goto l797 } position++ } - l798: + l799: { - position800, tokenIndex800 := position, tokenIndex + position801, tokenIndex801 := position, tokenIndex if buffer[position] != rune('o') { - goto l801 + goto l802 } position++ - goto l800 - l801: - position, tokenIndex = position800, tokenIndex800 + goto l801 + l802: + position, tokenIndex = position801, tokenIndex801 if buffer[position] != rune('O') { - goto l796 + goto l797 } position++ } - l800: + l801: { - position802, tokenIndex802 := position, tokenIndex + position803, tokenIndex803 := position, tokenIndex if buffer[position] != rune('t') { - goto l803 + goto l804 } position++ - goto l802 - l803: - position, tokenIndex = position802, tokenIndex802 + goto l803 + l804: + position, tokenIndex = position803, tokenIndex803 if buffer[position] != rune('T') { - goto l796 + goto l797 } position++ } - l802: + l803: if buffer[position] != rune('_') { - goto l796 + goto l797 } position++ { - position804, tokenIndex804 := position, tokenIndex + position805, tokenIndex805 := position, tokenIndex if buffer[position] != rune('l') { - goto l805 + goto l806 } position++ - goto l804 - l805: - position, tokenIndex = position804, tokenIndex804 + goto l805 + l806: + position, tokenIndex = position805, tokenIndex805 if buffer[position] != rune('L') { - goto l796 + goto l797 } position++ } - l804: + l805: { - position806, tokenIndex806 := position, tokenIndex + position807, tokenIndex807 := position, tokenIndex if buffer[position] != rune('o') { - goto l807 + goto l808 } position++ - goto l806 - l807: - position, tokenIndex = position806, tokenIndex806 + goto l807 + l808: + position, tokenIndex = position807, tokenIndex807 if buffer[position] != rune('O') { - goto l796 + goto l797 } position++ } - l806: + l807: if buffer[position] != rune('1') { - goto l796 + goto l797 } position++ if buffer[position] != rune('2') { - goto l796 + goto l797 } position++ if buffer[position] != rune(':') { - goto l796 + goto l797 } position++ if !_rules[ruleSymbolName]() { - goto l796 + goto l797 } - add(ruleARMGOTLow12, position797) + add(ruleARMGOTLow12, position798) } return true - l796: - position, tokenIndex = position796, tokenIndex796 + l797: + position, tokenIndex = position797, tokenIndex797 return false }, /* 50 ARMPostincrement <- <'!'> */ func() bool { - position808, tokenIndex808 := position, tokenIndex + position809, tokenIndex809 := position, tokenIndex { - position809 := position + position810 := position if buffer[position] != rune('!') { - goto l808 + goto l809 } position++ - add(ruleARMPostincrement, position809) + add(ruleARMPostincrement, position810) } return true - l808: - position, tokenIndex = position808, tokenIndex808 + l809: + position, tokenIndex = position809, tokenIndex809 return false }, /* 51 BaseIndexScale <- <('(' RegisterOrConstant? WS? (',' WS? RegisterOrConstant WS? (',' [0-9]+)?)? ')')> */ func() bool { - position810, tokenIndex810 := position, tokenIndex + position811, tokenIndex811 := position, tokenIndex { - position811 := position + position812 := position if buffer[position] != rune('(') { - goto l810 + goto l811 } position++ { - position812, tokenIndex812 := position, tokenIndex + position813, tokenIndex813 := position, tokenIndex if !_rules[ruleRegisterOrConstant]() { - goto l812 + goto l813 } - goto l813 - l812: - position, tokenIndex = position812, tokenIndex812 + goto l814 + l813: + position, tokenIndex = position813, tokenIndex813 } - l813: + l814: { - position814, tokenIndex814 := position, tokenIndex + position815, tokenIndex815 := position, tokenIndex if !_rules[ruleWS]() { - goto l814 + goto l815 } - goto l815 - l814: - position, tokenIndex = position814, tokenIndex814 + goto l816 + l815: + position, tokenIndex = position815, tokenIndex815 } - l815: + l816: { - position816, tokenIndex816 := position, tokenIndex + position817, tokenIndex817 := position, tokenIndex if buffer[position] != rune(',') { - goto l816 + goto l817 } position++ { - position818, tokenIndex818 := position, tokenIndex + position819, tokenIndex819 := position, tokenIndex if !_rules[ruleWS]() { - goto l818 + goto l819 } - goto l819 - l818: - position, tokenIndex = position818, tokenIndex818 + goto l820 + l819: + position, tokenIndex = position819, tokenIndex819 } - l819: + l820: if !_rules[ruleRegisterOrConstant]() { - goto l816 + goto l817 } { - position820, tokenIndex820 := position, tokenIndex + position821, tokenIndex821 := position, tokenIndex if !_rules[ruleWS]() { - goto l820 + goto l821 } - goto l821 - l820: - position, tokenIndex = position820, tokenIndex820 + goto l822 + l821: + position, tokenIndex = position821, tokenIndex821 } - l821: + l822: { - position822, tokenIndex822 := position, tokenIndex + position823, tokenIndex823 := position, tokenIndex if buffer[position] != rune(',') { - goto l822 + goto l823 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l822 + goto l823 } position++ - l824: + l825: { - position825, tokenIndex825 := position, tokenIndex + position826, tokenIndex826 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l825 + goto l826 } position++ - goto l824 - l825: - position, tokenIndex = position825, tokenIndex825 + goto l825 + l826: + position, tokenIndex = position826, tokenIndex826 } - goto l823 - l822: - position, tokenIndex = position822, tokenIndex822 + goto l824 + l823: + position, tokenIndex = position823, tokenIndex823 } - l823: - goto l817 - l816: - position, tokenIndex = position816, tokenIndex816 + l824: + goto l818 + l817: + position, tokenIndex = position817, tokenIndex817 } - l817: + l818: if buffer[position] != rune(')') { - goto l810 + goto l811 } position++ - add(ruleBaseIndexScale, position811) + add(ruleBaseIndexScale, position812) } return true - l810: - position, tokenIndex = position810, tokenIndex810 + l811: + position, tokenIndex = position811, tokenIndex811 return false }, /* 52 Operator <- <('+' / '-')> */ func() bool { - position826, tokenIndex826 := position, tokenIndex + position827, tokenIndex827 := position, tokenIndex { - position827 := position + position828 := position { - position828, tokenIndex828 := position, tokenIndex + position829, tokenIndex829 := position, tokenIndex if buffer[position] != rune('+') { - goto l829 + goto l830 } position++ - goto l828 - l829: - position, tokenIndex = position828, tokenIndex828 + goto l829 + l830: + position, tokenIndex = position829, tokenIndex829 if buffer[position] != rune('-') { - goto l826 + goto l827 } position++ } - l828: - add(ruleOperator, position827) + l829: + add(ruleOperator, position828) } return true - l826: - position, tokenIndex = position826, tokenIndex826 + l827: + position, tokenIndex = position827, tokenIndex827 return false }, /* 53 OffsetOperator <- <('+' / '-' / '*')> */ func() bool { - position830, tokenIndex830 := position, tokenIndex + position831, tokenIndex831 := position, tokenIndex { - position831 := position + position832 := position { - position832, tokenIndex832 := position, tokenIndex + position833, tokenIndex833 := position, tokenIndex if buffer[position] != rune('+') { - goto l833 + goto l834 } position++ - goto l832 - l833: - position, tokenIndex = position832, tokenIndex832 + goto l833 + l834: + position, tokenIndex = position833, tokenIndex833 if buffer[position] != rune('-') { - goto l834 + goto l835 } position++ - goto l832 - l834: - position, tokenIndex = position832, tokenIndex832 + goto l833 + l835: + position, tokenIndex = position833, tokenIndex833 if buffer[position] != rune('*') { - goto l830 + goto l831 } position++ } - l832: - add(ruleOffsetOperator, position831) + l833: + add(ruleOffsetOperator, position832) } return true - l830: - position, tokenIndex = position830, tokenIndex830 + l831: + position, tokenIndex = position831, tokenIndex831 return false }, /* 54 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 { - position835, tokenIndex835 := position, tokenIndex + position836, tokenIndex836 := position, tokenIndex { - position836 := position + position837 := position { - position837, tokenIndex837 := position, tokenIndex + position838, tokenIndex838 := position, tokenIndex if buffer[position] != rune('+') { - goto l837 + goto l838 } position++ - goto l838 - l837: - position, tokenIndex = position837, tokenIndex837 + goto l839 + l838: + position, tokenIndex = position838, tokenIndex838 } - l838: + l839: { - position839, tokenIndex839 := position, tokenIndex + position840, tokenIndex840 := position, tokenIndex if buffer[position] != rune('-') { - goto l839 + goto l840 } position++ - goto l840 - l839: - position, tokenIndex = position839, tokenIndex839 + goto l841 + l840: + position, tokenIndex = position840, tokenIndex840 } - l840: + l841: { - position841, tokenIndex841 := position, tokenIndex + position842, tokenIndex842 := position, tokenIndex if buffer[position] != rune('0') { - goto l842 + goto l843 } position++ { - position843, tokenIndex843 := position, tokenIndex + position844, tokenIndex844 := position, tokenIndex if buffer[position] != rune('b') { - goto l844 + goto l845 } position++ - goto l843 - l844: - position, tokenIndex = position843, tokenIndex843 + goto l844 + l845: + position, tokenIndex = position844, tokenIndex844 if buffer[position] != rune('B') { - goto l842 + goto l843 } position++ } - l843: + l844: { - position847, tokenIndex847 := position, tokenIndex + position848, tokenIndex848 := position, tokenIndex if buffer[position] != rune('0') { - goto l848 + goto l849 } position++ - goto l847 - l848: - position, tokenIndex = position847, tokenIndex847 + goto l848 + l849: + position, tokenIndex = position848, tokenIndex848 if buffer[position] != rune('1') { - goto l842 + goto l843 } position++ } - l847: - l845: + l848: + l846: { - position846, tokenIndex846 := position, tokenIndex + position847, tokenIndex847 := position, tokenIndex { - position849, tokenIndex849 := position, tokenIndex + position850, tokenIndex850 := position, tokenIndex if buffer[position] != rune('0') { - goto l850 + goto l851 } position++ - goto l849 - l850: - position, tokenIndex = position849, tokenIndex849 + goto l850 + l851: + position, tokenIndex = position850, tokenIndex850 if buffer[position] != rune('1') { - goto l846 + goto l847 } position++ } - l849: - goto l845 - l846: - position, tokenIndex = position846, tokenIndex846 + l850: + goto l846 + l847: + position, tokenIndex = position847, tokenIndex847 } - goto l841 - l842: - position, tokenIndex = position841, tokenIndex841 + goto l842 + l843: + position, tokenIndex = position842, tokenIndex842 if buffer[position] != rune('0') { - goto l851 + goto l852 } position++ { - position852, tokenIndex852 := position, tokenIndex + position853, tokenIndex853 := position, tokenIndex if buffer[position] != rune('x') { - goto l853 + goto l854 } position++ - goto l852 - l853: - position, tokenIndex = position852, tokenIndex852 + goto l853 + l854: + position, tokenIndex = position853, tokenIndex853 if buffer[position] != rune('X') { - goto l851 + goto l852 } position++ } - l852: + l853: { - position856, tokenIndex856 := position, tokenIndex + position857, tokenIndex857 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l857 + goto l858 } position++ - goto l856 - l857: - position, tokenIndex = position856, tokenIndex856 + goto l857 + l858: + position, tokenIndex = position857, tokenIndex857 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l858 + goto l859 } position++ - goto l856 - l858: - position, tokenIndex = position856, tokenIndex856 + goto l857 + l859: + position, tokenIndex = position857, tokenIndex857 { - position859, tokenIndex859 := position, tokenIndex + position860, tokenIndex860 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l860 + goto l861 } position++ - goto l859 - l860: - position, tokenIndex = position859, tokenIndex859 + goto l860 + l861: + position, tokenIndex = position860, tokenIndex860 if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l851 + goto l852 } position++ } - l859: + l860: } - l856: - l854: + l857: + l855: { - position855, tokenIndex855 := position, tokenIndex + position856, tokenIndex856 := position, tokenIndex { - position861, tokenIndex861 := position, tokenIndex + position862, tokenIndex862 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l862 + goto l863 } position++ - goto l861 - l862: - position, tokenIndex = position861, tokenIndex861 + goto l862 + l863: + position, tokenIndex = position862, tokenIndex862 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l863 + goto l864 } position++ - goto l861 - l863: - position, tokenIndex = position861, tokenIndex861 + goto l862 + l864: + position, tokenIndex = position862, tokenIndex862 { - position864, tokenIndex864 := position, tokenIndex + position865, tokenIndex865 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l865 + goto l866 } position++ - goto l864 - l865: - position, tokenIndex = position864, tokenIndex864 + goto l865 + l866: + position, tokenIndex = position865, tokenIndex865 if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l855 + goto l856 } position++ } - l864: + l865: } - l861: - goto l854 - l855: - position, tokenIndex = position855, tokenIndex855 + l862: + goto l855 + l856: + position, tokenIndex = position856, tokenIndex856 } - goto l841 - l851: - position, tokenIndex = position841, tokenIndex841 + goto l842 + l852: + position, tokenIndex = position842, tokenIndex842 { - position866, tokenIndex866 := position, tokenIndex + position867, tokenIndex867 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l867 + goto l868 } position++ - l868: + l869: { - position869, tokenIndex869 := position, tokenIndex + position870, tokenIndex870 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l869 + goto l870 } position++ - goto l868 - l869: - position, tokenIndex = position869, tokenIndex869 + goto l869 + l870: + position, tokenIndex = position870, tokenIndex870 } if !_rules[ruleWS]() { - goto l867 + goto l868 } if !_rules[ruleOffsetOperator]() { - goto l867 + goto l868 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l867 + goto l868 } position++ - l870: + l871: { - position871, tokenIndex871 := position, tokenIndex + position872, tokenIndex872 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l871 + goto l872 } position++ - goto l870 - l871: - position, tokenIndex = position871, tokenIndex871 + goto l871 + l872: + position, tokenIndex = position872, tokenIndex872 } - goto l866 - l867: - position, tokenIndex = position866, tokenIndex866 + goto l867 + l868: + position, tokenIndex = position867, tokenIndex867 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l872 + goto l873 } position++ - l873: + l874: { - position874, tokenIndex874 := position, tokenIndex + position875, tokenIndex875 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l874 + goto l875 } position++ - goto l873 - l874: - position, tokenIndex = position874, tokenIndex874 + goto l874 + l875: + position, tokenIndex = position875, tokenIndex875 } { - position875, tokenIndex875 := position, tokenIndex + position876, tokenIndex876 := position, tokenIndex if !_rules[ruleOffsetOperator]() { - goto l875 + goto l876 } if buffer[position] != rune('(') { - goto l875 + goto l876 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l875 + goto l876 } position++ - l877: + l878: { - position878, tokenIndex878 := position, tokenIndex + position879, tokenIndex879 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l878 + goto l879 } position++ - goto l877 - l878: - position, tokenIndex = position878, tokenIndex878 + goto l878 + l879: + position, tokenIndex = position879, tokenIndex879 } if !_rules[ruleOffsetOperator]() { - goto l875 + goto l876 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l875 + goto l876 } position++ - l879: + l880: { - position880, tokenIndex880 := position, tokenIndex + position881, tokenIndex881 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l880 + goto l881 } position++ - goto l879 - l880: - position, tokenIndex = position880, tokenIndex880 + goto l880 + l881: + position, tokenIndex = position881, tokenIndex881 } if buffer[position] != rune(')') { - goto l875 + goto l876 } position++ - goto l876 - l875: - position, tokenIndex = position875, tokenIndex875 + goto l877 + l876: + position, tokenIndex = position876, tokenIndex876 } - l876: - goto l866 - l872: - position, tokenIndex = position866, tokenIndex866 + l877: + goto l867 + l873: + position, tokenIndex = position867, tokenIndex867 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l881 + goto l882 } position++ - l882: + l883: { - position883, tokenIndex883 := position, tokenIndex + position884, tokenIndex884 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l883 + goto l884 } position++ - goto l882 - l883: - position, tokenIndex = position883, tokenIndex883 + goto l883 + l884: + position, tokenIndex = position884, tokenIndex884 } { - position884, tokenIndex884 := position, tokenIndex + position885, tokenIndex885 := position, tokenIndex if !_rules[ruleOffsetOperator]() { - goto l884 + goto l885 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l884 + goto l885 } position++ - l886: + l887: { - position887, tokenIndex887 := position, tokenIndex + position888, tokenIndex888 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l887 + goto l888 } position++ - goto l886 - l887: - position, tokenIndex = position887, tokenIndex887 + goto l887 + l888: + position, tokenIndex = position888, tokenIndex888 } if !_rules[ruleOffsetOperator]() { - goto l884 + goto l885 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l884 + goto l885 } position++ - l888: + l889: { - position889, tokenIndex889 := position, tokenIndex + position890, tokenIndex890 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l889 + goto l890 } position++ - goto l888 - l889: - position, tokenIndex = position889, tokenIndex889 + goto l889 + l890: + position, tokenIndex = position890, tokenIndex890 } - goto l885 - l884: - position, tokenIndex = position884, tokenIndex884 + goto l886 + l885: + position, tokenIndex = position885, tokenIndex885 } - l885: - goto l866 - l881: - position, tokenIndex = position866, tokenIndex866 + l886: + goto l867 + l882: + position, tokenIndex = position867, tokenIndex867 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l890 + goto l891 } position++ - l891: + l892: { - position892, tokenIndex892 := position, tokenIndex + position893, tokenIndex893 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l892 + goto l893 } position++ - goto l891 - l892: - position, tokenIndex = position892, tokenIndex892 + goto l892 + l893: + position, tokenIndex = position893, tokenIndex893 } { - position893, tokenIndex893 := position, tokenIndex + position894, tokenIndex894 := position, tokenIndex if !_rules[ruleOffsetOperator]() { - goto l893 + goto l894 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l893 + goto l894 } position++ - l895: + l896: { - position896, tokenIndex896 := position, tokenIndex + position897, tokenIndex897 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l896 + goto l897 } position++ - goto l895 - l896: - position, tokenIndex = position896, tokenIndex896 + goto l896 + l897: + position, tokenIndex = position897, tokenIndex897 } - goto l894 - l893: - position, tokenIndex = position893, tokenIndex893 + goto l895 + l894: + position, tokenIndex = position894, tokenIndex894 } - l894: - goto l866 - l890: - position, tokenIndex = position866, tokenIndex866 + l895: + goto l867 + l891: + position, tokenIndex = position867, tokenIndex867 if buffer[position] != rune('(') { - goto l897 + goto l898 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l897 + goto l898 } position++ - l898: + l899: { - position899, tokenIndex899 := position, tokenIndex + position900, tokenIndex900 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l899 + goto l900 } position++ - goto l898 - l899: - position, tokenIndex = position899, tokenIndex899 + goto l899 + l900: + position, tokenIndex = position900, tokenIndex900 } { - position900, tokenIndex900 := position, tokenIndex + position901, tokenIndex901 := position, tokenIndex if !_rules[ruleWS]() { - goto l900 + goto l901 } - goto l901 - l900: - position, tokenIndex = position900, tokenIndex900 + goto l902 + l901: + position, tokenIndex = position901, tokenIndex901 } - l901: + l902: if !_rules[ruleOffsetOperator]() { - goto l897 + goto l898 } { - position902, tokenIndex902 := position, tokenIndex + position903, tokenIndex903 := position, tokenIndex if !_rules[ruleWS]() { - goto l902 + goto l903 } - goto l903 - l902: - position, tokenIndex = position902, tokenIndex902 + goto l904 + l903: + position, tokenIndex = position903, tokenIndex903 } - l903: + l904: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l897 + goto l898 } position++ - l904: + l905: { - position905, tokenIndex905 := position, tokenIndex + position906, tokenIndex906 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l905 + goto l906 } position++ - goto l904 - l905: - position, tokenIndex = position905, tokenIndex905 + goto l905 + l906: + position, tokenIndex = position906, tokenIndex906 } if buffer[position] != rune(')') { - goto l897 + goto l898 } position++ if !_rules[ruleOffsetOperator]() { - goto l897 + goto l898 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l897 + goto l898 } position++ - l906: + l907: { - position907, tokenIndex907 := position, tokenIndex + position908, tokenIndex908 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l907 + goto l908 } position++ - goto l906 - l907: - position, tokenIndex = position907, tokenIndex907 + goto l907 + l908: + position, tokenIndex = position908, tokenIndex908 } if !_rules[ruleOffsetOperator]() { - goto l897 + goto l898 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l897 + goto l898 } position++ - l908: + l909: { - position909, tokenIndex909 := position, tokenIndex + position910, tokenIndex910 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l909 + goto l910 } position++ - goto l908 - l909: - position, tokenIndex = position909, tokenIndex909 + goto l909 + l910: + position, tokenIndex = position910, tokenIndex910 } - goto l866 - l897: - position, tokenIndex = position866, tokenIndex866 + goto l867 + l898: + position, tokenIndex = position867, tokenIndex867 if buffer[position] != rune('(') { - goto l910 + goto l911 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l910 + goto l911 } position++ - l911: + l912: { - position912, tokenIndex912 := position, tokenIndex + position913, tokenIndex913 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l912 + goto l913 } position++ - goto l911 - l912: - position, tokenIndex = position912, tokenIndex912 + goto l912 + l913: + position, tokenIndex = position913, tokenIndex913 } { - position913, tokenIndex913 := position, tokenIndex + position914, tokenIndex914 := position, tokenIndex if !_rules[ruleWS]() { - goto l913 + goto l914 } - goto l914 - l913: - position, tokenIndex = position913, tokenIndex913 + goto l915 + l914: + position, tokenIndex = position914, tokenIndex914 } - l914: + l915: if !_rules[ruleOffsetOperator]() { - goto l910 + goto l911 } { - position915, tokenIndex915 := position, tokenIndex + position916, tokenIndex916 := position, tokenIndex if !_rules[ruleWS]() { - goto l915 + goto l916 } - goto l916 - l915: - position, tokenIndex = position915, tokenIndex915 + goto l917 + l916: + position, tokenIndex = position916, tokenIndex916 } - l916: + l917: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l910 + goto l911 } position++ - l917: + l918: { - position918, tokenIndex918 := position, tokenIndex + position919, tokenIndex919 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l918 + goto l919 } position++ - goto l917 - l918: - position, tokenIndex = position918, tokenIndex918 + goto l918 + l919: + position, tokenIndex = position919, tokenIndex919 } if buffer[position] != rune(')') { - goto l910 + goto l911 } position++ if !_rules[ruleOffsetOperator]() { - goto l910 + goto l911 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l910 + goto l911 } position++ - l919: + l920: { - position920, tokenIndex920 := position, tokenIndex + position921, tokenIndex921 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l920 + goto l921 } position++ - goto l919 - l920: - position, tokenIndex = position920, tokenIndex920 + goto l920 + l921: + position, tokenIndex = position921, tokenIndex921 } { - position921, tokenIndex921 := position, tokenIndex + position922, tokenIndex922 := position, tokenIndex if buffer[position] != rune('x') { - goto l921 + goto l922 } position++ - goto l910 - l921: - position, tokenIndex = position921, tokenIndex921 + goto l911 + l922: + position, tokenIndex = position922, tokenIndex922 } - goto l866 - l910: - position, tokenIndex = position866, tokenIndex866 + goto l867 + l911: + position, tokenIndex = position867, tokenIndex867 if buffer[position] != rune('(') { - goto l922 + goto l923 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l922 + goto l923 } position++ - l923: + l924: { - position924, tokenIndex924 := position, tokenIndex + position925, tokenIndex925 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l924 + goto l925 } position++ - goto l923 - l924: - position, tokenIndex = position924, tokenIndex924 + goto l924 + l925: + position, tokenIndex = position925, tokenIndex925 } { - position925, tokenIndex925 := position, tokenIndex + position926, tokenIndex926 := position, tokenIndex if !_rules[ruleWS]() { - goto l925 + goto l926 } - goto l926 - l925: - position, tokenIndex = position925, tokenIndex925 + goto l927 + l926: + position, tokenIndex = position926, tokenIndex926 } - l926: + l927: if !_rules[ruleOffsetOperator]() { - goto l922 + goto l923 } { - position927, tokenIndex927 := position, tokenIndex + position928, tokenIndex928 := position, tokenIndex if !_rules[ruleWS]() { - goto l927 + goto l928 } - goto l928 - l927: - position, tokenIndex = position927, tokenIndex927 + goto l929 + l928: + position, tokenIndex = position928, tokenIndex928 } - l928: + l929: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l922 + goto l923 } position++ - l929: + l930: { - position930, tokenIndex930 := position, tokenIndex + position931, tokenIndex931 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l930 + goto l931 } position++ - goto l929 - l930: - position, tokenIndex = position930, tokenIndex930 + goto l930 + l931: + position, tokenIndex = position931, tokenIndex931 } if buffer[position] != rune(')') { - goto l922 + goto l923 } position++ - goto l866 - l922: - position, tokenIndex = position866, tokenIndex866 + goto l867 + l923: + position, tokenIndex = position867, tokenIndex867 if buffer[position] != rune('(') { - goto l835 + goto l836 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l835 + goto l836 } position++ - l931: + l932: { - position932, tokenIndex932 := position, tokenIndex + position933, tokenIndex933 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l932 + goto l933 } position++ - goto l931 - l932: - position, tokenIndex = position932, tokenIndex932 + goto l932 + l933: + position, tokenIndex = position933, tokenIndex933 } { - position933, tokenIndex933 := position, tokenIndex + position934, tokenIndex934 := position, tokenIndex if !_rules[ruleWS]() { - goto l933 + goto l934 } - goto l934 - l933: - position, tokenIndex = position933, tokenIndex933 + goto l935 + l934: + position, tokenIndex = position934, tokenIndex934 } - l934: + l935: if !_rules[ruleOffsetOperator]() { - goto l835 + goto l836 } { - position935, tokenIndex935 := position, tokenIndex + position936, tokenIndex936 := position, tokenIndex if !_rules[ruleWS]() { - goto l935 + goto l936 } - goto l936 - l935: - position, tokenIndex = position935, tokenIndex935 + goto l937 + l936: + position, tokenIndex = position936, tokenIndex936 } - l936: + l937: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l835 + goto l836 } position++ - l937: + l938: { - position938, tokenIndex938 := position, tokenIndex + position939, tokenIndex939 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l938 + goto l939 } position++ - goto l937 - l938: - position, tokenIndex = position938, tokenIndex938 + goto l938 + l939: + position, tokenIndex = position939, tokenIndex939 } { - position939, tokenIndex939 := position, tokenIndex + position940, tokenIndex940 := position, tokenIndex if !_rules[ruleWS]() { - goto l939 + goto l940 } - goto l940 - l939: - position, tokenIndex = position939, tokenIndex939 + goto l941 + l940: + position, tokenIndex = position940, tokenIndex940 } - l940: + l941: if !_rules[ruleOffsetOperator]() { - goto l835 + goto l836 } { - position941, tokenIndex941 := position, tokenIndex + position942, tokenIndex942 := position, tokenIndex if !_rules[ruleWS]() { - goto l941 + goto l942 } - goto l942 - l941: - position, tokenIndex = position941, tokenIndex941 + goto l943 + l942: + position, tokenIndex = position942, tokenIndex942 } - l942: + l943: if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l835 + goto l836 } position++ - l943: + l944: { - position944, tokenIndex944 := position, tokenIndex + position945, tokenIndex945 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l944 + goto l945 } position++ - goto l943 - l944: - position, tokenIndex = position944, tokenIndex944 + goto l944 + l945: + position, tokenIndex = position945, tokenIndex945 } if buffer[position] != rune(')') { - goto l835 + goto l836 } position++ } - l866: + l867: { - position945, tokenIndex945 := position, tokenIndex + position946, tokenIndex946 := position, tokenIndex { - position946, tokenIndex946 := position, tokenIndex + position947, tokenIndex947 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l947 + goto l948 } position++ - goto l946 - l947: - position, tokenIndex = position946, tokenIndex946 + goto l947 + l948: + position, tokenIndex = position947, tokenIndex947 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l945 + goto l946 } position++ } + l947: + goto l836 l946: - goto l835 - l945: - position, tokenIndex = position945, tokenIndex945 + position, tokenIndex = position946, tokenIndex946 } } - l841: - add(ruleOffset, position836) + l842: + add(ruleOffset, position837) } return true - l835: - position, tokenIndex = position835, tokenIndex835 + l836: + position, tokenIndex = position836, tokenIndex836 return false }, /* 55 Section <- <([a-z] / [A-Z] / '@')+> */ func() bool { - position948, tokenIndex948 := position, tokenIndex + position949, tokenIndex949 := position, tokenIndex { - position949 := position + position950 := position { - position952, tokenIndex952 := position, tokenIndex + position953, tokenIndex953 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l953 + goto l954 } position++ - goto l952 - l953: - position, tokenIndex = position952, tokenIndex952 + goto l953 + l954: + position, tokenIndex = position953, tokenIndex953 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l954 + goto l955 } position++ - goto l952 - l954: - position, tokenIndex = position952, tokenIndex952 + goto l953 + l955: + position, tokenIndex = position953, tokenIndex953 if buffer[position] != rune('@') { - goto l948 + goto l949 } position++ } - l952: - l950: + l953: + l951: { - position951, tokenIndex951 := position, tokenIndex + position952, tokenIndex952 := position, tokenIndex { - position955, tokenIndex955 := position, tokenIndex + position956, tokenIndex956 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l956 + goto l957 } position++ - goto l955 - l956: - position, tokenIndex = position955, tokenIndex955 + goto l956 + l957: + position, tokenIndex = position956, tokenIndex956 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l957 + goto l958 } position++ - goto l955 - l957: - position, tokenIndex = position955, tokenIndex955 + goto l956 + l958: + position, tokenIndex = position956, tokenIndex956 if buffer[position] != rune('@') { - goto l951 + goto l952 } position++ } - l955: - goto l950 - l951: - position, tokenIndex = position951, tokenIndex951 + l956: + goto l951 + l952: + position, tokenIndex = position952, tokenIndex952 } - add(ruleSection, position949) + add(ruleSection, position950) } return true - l948: - position, tokenIndex = position948, tokenIndex948 + l949: + position, tokenIndex = position949, tokenIndex949 return false }, /* 56 SegmentRegister <- <('%' ([c-g] / 's') ('s' ':'))> */ func() bool { - position958, tokenIndex958 := position, tokenIndex + position959, tokenIndex959 := position, tokenIndex { - position959 := position + position960 := position if buffer[position] != rune('%') { - goto l958 + goto l959 } position++ { - position960, tokenIndex960 := position, tokenIndex + position961, tokenIndex961 := position, tokenIndex if c := buffer[position]; c < rune('c') || c > rune('g') { - goto l961 + goto l962 } position++ - goto l960 - l961: - position, tokenIndex = position960, tokenIndex960 + goto l961 + l962: + position, tokenIndex = position961, tokenIndex961 if buffer[position] != rune('s') { - goto l958 + goto l959 } position++ } - l960: + l961: if buffer[position] != rune('s') { - goto l958 + goto l959 } position++ if buffer[position] != rune(':') { - goto l958 + goto l959 } position++ - add(ruleSegmentRegister, position959) + add(ruleSegmentRegister, position960) } return true - l958: - position, tokenIndex = position958, tokenIndex958 + l959: + position, tokenIndex = position959, tokenIndex959 return false }, } diff --git a/util/fipstools/delocate/testdata/x86_64-Basic/in.s b/util/fipstools/delocate/testdata/x86_64-Basic/in.s index 7e48e274f7..fa0244812d 100644 --- a/util/fipstools/delocate/testdata/x86_64-Basic/in.s +++ b/util/fipstools/delocate/testdata/x86_64-Basic/in.s @@ -42,6 +42,8 @@ foo: vmovdqu64 -88(%rbx), %zmm0 {%k1} vmovdqu64 352(%rsp,%rbx), %ymm1 {%k1} .byte 0xf3,0xc3 + .long 2f - 0f + .long 5 movq %rax, %rbx # Comments can be on the same line as an instruction. .L3: # Or on the same line as a label. .L4: .L5: movq %rbx, %rax # This is also legal. diff --git a/util/fipstools/delocate/testdata/x86_64-Basic/out.s b/util/fipstools/delocate/testdata/x86_64-Basic/out.s index d9dc9ef3ba..af5eb89ff3 100644 --- a/util/fipstools/delocate/testdata/x86_64-Basic/out.s +++ b/util/fipstools/delocate/testdata/x86_64-Basic/out.s @@ -47,6 +47,8 @@ foo: vmovdqu64 -88(%rbx), %zmm0 {%k1} vmovdqu64 352(%rsp,%rbx), %ymm1 {%k1} .byte 0xf3,0xc3 + .long 2f - 0f + .long 5 movq %rax, %rbx # Comments can be on the same line as an instruction. .L3: # Or on the same line as a label.