Add local targets to .set directives in delocate Originally I thought the problem was that weak symbols need renaming, but actually delocate is fine with those. The local_target business (somewhat accidentally) routes around this problem. The problem is that GCC emits C1 and C2 constructors for unique_ptr as aliases of each other using .set foo, bar and we don't recognize that pattern as defining a symbol. The linker script version of this pipeline will need to do it with renaming instead, but we'll get to that later. Renaming symbols is actually quite annoying in delocate. Fixed: 397980180 Change-Id: I378c759c07a41af1155acf3f41889a0bd52b002f Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/76967 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/util/fipstools/delocate/delocate.go b/util/fipstools/delocate/delocate.go index e4b6111..2ea8f38 100644 --- a/util/fipstools/delocate/delocate.go +++ b/util/fipstools/delocate/delocate.go
@@ -21,6 +21,7 @@ "errors" "flag" "fmt" + "io" "os" "os/exec" "path/filepath" @@ -48,6 +49,7 @@ } type stringWriter interface { + io.Writer WriteString(string) (int, error) } @@ -145,6 +147,8 @@ statement, err = d.processDirective(statement, node.up) case ruleLabelContainingDirective: statement, err = d.processLabelContainingDirective(statement, node.up) + case ruleSymbolDefiningDirective: + statement, err = d.processSymbolDefiningDirective(statement, node.up) case ruleLabel: statement, err = d.processLabel(statement, node.up) case ruleInstruction: @@ -343,6 +347,45 @@ return statement, nil } +func (d *delocation) processSymbolDefiningDirective(statement, directive *node32) (*node32, error) { + changed := false + assertNodeType(directive, ruleSymbolDefiningDirectiveName) + name := d.contents(directive) + + node := directive.next + assertNodeType(node, ruleWS) + + node = node.next + symbol := d.contents(node) + isLocal := node.pegRule == ruleLocalSymbol + if isLocal { + symbol = d.mapLocalSymbol(symbol) + changed = true + } else { + assertNodeType(node, ruleSymbolName) + } + + node = skipWS(node.next) + assertNodeType(node, ruleSymbolArg) + assertNodeType(node.up, ruleSymbolExpr) + var b strings.Builder + changed = d.processSymbolExpr(node.up, &b) || changed + arg := b.String() + + if !changed { + d.writeNode(statement) + } else { + d.writeCommentedNode(statement) + fmt.Fprintf(d.output, "\t%s\t%s, %s\n", name, symbol, arg) + } + + if !isLocal { + fmt.Fprintf(d.output, "\t%s\t%s, %s\n", name, localTargetName(symbol), arg) + } + + return statement, nil +} + func (d *delocation) processLabel(statement, label *node32) (*node32, error) { symbol := d.contents(label) @@ -1273,6 +1316,13 @@ return nil, err } + case ruleSymbolDefiningDirective: + var err error + statement, err = d.processSymbolDefiningDirective(statement, node.up) + if err != nil { + return nil, err + } + default: return nil, fmt.Errorf("unknown BSS statement type %q in %q", rul3s[node.pegRule], d.contents(statement)) } @@ -1324,6 +1374,18 @@ symbols[symbol] = struct{}{} }, ruleStatement, ruleLabel, ruleSymbolName) + // Some directives also define symbols. + forEachPath(input.ast.up, func(node *node32) { + node = skipWS(node.next) + if node.pegRule == ruleLocalSymbol { + return + } + assertNodeType(node, ruleSymbolName) + symbol := input.contents[node.begin:node.end] + // Allow duplicates. A symbol may be set multiple times with .set. + symbols[symbol] = struct{}{} + }, ruleStatement, ruleSymbolDefiningDirective, ruleSymbolDefiningDirectiveName) + forEachPath(input.ast.up, func(node *node32) { assertNodeType(node, ruleLocationDirective) directive := input.contents[node.begin:node.end]
diff --git a/util/fipstools/delocate/delocate.peg b/util/fipstools/delocate/delocate.peg index 8fac2d6..2112a33 100644 --- a/util/fipstools/delocate/delocate.peg +++ b/util/fipstools/delocate/delocate.peg
@@ -30,6 +30,7 @@ AsmFile <- Statement* !. Statement <- WS? (Label / ((GlobalDirective / LocationDirective / + SymbolDefiningDirective / LabelContainingDirective / Instruction / Directive / @@ -44,8 +45,10 @@ Arg <- QuotedArg / [[0-9a-z%+\-*_@.$]]* QuotedArg <- '"' QuotedText '"' QuotedText <- (EscapedChar / [^"])* +SymbolDefiningDirective <- SymbolDefiningDirectiveName WS (LocalSymbol / SymbolName) WS? ',' WS? SymbolArg +SymbolDefiningDirectiveName <- ".equiv" / ".equ" / ".set" LabelContainingDirective <- LabelContainingDirectiveName WS SymbolArgs -LabelContainingDirectiveName <- ".xword" / ".word" / ".hword" / ".long" / ".set" / ".byte" / ".8byte" / ".4byte" / ".quad" / ".tc" / ".localentry" / ".size" / ".type" / ".uleb128" / ".sleb128" +LabelContainingDirectiveName <- ".xword" / ".word" / ".hword" / ".long" / ".byte" / ".8byte" / ".4byte" / ".quad" / ".tc" / ".localentry" / ".size" / ".type" / ".uleb128" / ".sleb128" SymbolArgs <- SymbolArg ((WS? ',' WS?) SymbolArg)* SymbolArg <- SymbolExpr
diff --git a/util/fipstools/delocate/delocate.peg.go b/util/fipstools/delocate/delocate.peg.go index 0f8ac01..b8b3fc9 100644 --- a/util/fipstools/delocate/delocate.peg.go +++ b/util/fipstools/delocate/delocate.peg.go
@@ -1,6 +1,6 @@ package main -// Code generated by peg delocate.peg DO NOT EDIT. +// Code generated by /usr/local/google/home/davidben/go/bin/peg delocate.peg DO NOT EDIT. import ( "fmt" @@ -30,6 +30,8 @@ ruleArg ruleQuotedArg ruleQuotedText + ruleSymbolDefiningDirective + ruleSymbolDefiningDirectiveName ruleLabelContainingDirective ruleLabelContainingDirectiveName ruleSymbolArgs @@ -95,6 +97,8 @@ "Arg", "QuotedArg", "QuotedText", + "SymbolDefiningDirective", + "SymbolDefiningDirectiveName", "LabelContainingDirective", "LabelContainingDirectiveName", "SymbolArgs", @@ -258,7 +262,7 @@ type Asm struct { Buffer string buffer []rune - rules [62]func() bool + rules [64]func() bool parse func(rule ...int) error reset func() Pretty bool @@ -364,7 +368,6 @@ return nil } } - func (p *Asm) Init(options ...func(*Asm) error) error { var ( max token32 @@ -470,7 +473,7 @@ position, tokenIndex = position0, tokenIndex0 return false }, - /* 1 Statement <- <(WS? (Label / ((GlobalDirective / LocationDirective / LabelContainingDirective / Instruction / Directive / Comment / ) WS? ((Comment? '\n') / ';'))))> */ + /* 1 Statement <- <(WS? (Label / ((GlobalDirective / LocationDirective / SymbolDefiningDirective / LabelContainingDirective / Instruction / Directive / Comment / ) WS? ((Comment? '\n') / ';'))))> */ func() bool { position5, tokenIndex5 := position, tokenIndex { @@ -507,67 +510,73 @@ goto l11 l13: position, tokenIndex = position11, tokenIndex11 - if !_rules[ruleLabelContainingDirective]() { + if !_rules[ruleSymbolDefiningDirective]() { goto l14 } goto l11 l14: position, tokenIndex = position11, tokenIndex11 - if !_rules[ruleInstruction]() { + if !_rules[ruleLabelContainingDirective]() { goto l15 } goto l11 l15: position, tokenIndex = position11, tokenIndex11 - if !_rules[ruleDirective]() { + if !_rules[ruleInstruction]() { goto l16 } goto l11 l16: position, tokenIndex = position11, tokenIndex11 - if !_rules[ruleComment]() { + if !_rules[ruleDirective]() { goto l17 } goto l11 l17: position, tokenIndex = position11, tokenIndex11 + if !_rules[ruleComment]() { + goto l18 + } + goto l11 + l18: + position, tokenIndex = position11, tokenIndex11 } l11: { - position18, tokenIndex18 := position, tokenIndex + position19, tokenIndex19 := position, tokenIndex if !_rules[ruleWS]() { - goto l18 + goto l19 } - goto l19 - l18: - position, tokenIndex = position18, tokenIndex18 + goto l20 + l19: + position, tokenIndex = position19, tokenIndex19 } - l19: + l20: { - position20, tokenIndex20 := position, tokenIndex + position21, tokenIndex21 := position, tokenIndex { - position22, tokenIndex22 := position, tokenIndex + position23, tokenIndex23 := position, tokenIndex if !_rules[ruleComment]() { - goto l22 + goto l23 } - goto l23 - l22: - position, tokenIndex = position22, tokenIndex22 + goto l24 + l23: + position, tokenIndex = position23, tokenIndex23 } - l23: + l24: if buffer[position] != rune('\n') { - goto l21 + goto l22 } position++ - goto l20 - l21: - position, tokenIndex = position20, tokenIndex20 + goto l21 + l22: + position, tokenIndex = position21, tokenIndex21 if buffer[position] != rune(';') { goto l5 } position++ } - l20: + l21: } l9: add(ruleStatement, position6) @@ -579,1241 +588,1230 @@ }, /* 2 GlobalDirective <- <((('.' ('g' / 'G') ('l' / 'L') ('o' / 'O') ('b' / 'B') ('a' / 'A') ('l' / 'L')) / ('.' ('g' / 'G') ('l' / 'L') ('o' / 'O') ('b' / 'B') ('l' / 'L'))) WS SymbolName)> */ func() bool { - position24, tokenIndex24 := position, tokenIndex + position25, tokenIndex25 := position, tokenIndex { - position25 := position + position26 := position { - position26, tokenIndex26 := position, tokenIndex + position27, tokenIndex27 := position, tokenIndex if buffer[position] != rune('.') { - goto l27 - } - position++ - { - position28, tokenIndex28 := position, tokenIndex - if buffer[position] != rune('g') { - goto l29 - } - position++ goto l28 - l29: - position, tokenIndex = position28, tokenIndex28 - if buffer[position] != rune('G') { - goto l27 - } - position++ - } - l28: - { - position30, tokenIndex30 := position, tokenIndex - if buffer[position] != rune('l') { - goto l31 - } - position++ - goto l30 - l31: - position, tokenIndex = position30, tokenIndex30 - if buffer[position] != rune('L') { - goto l27 - } - position++ - } - l30: - { - position32, tokenIndex32 := position, tokenIndex - if buffer[position] != rune('o') { - goto l33 - } - position++ - goto l32 - l33: - position, tokenIndex = position32, tokenIndex32 - if buffer[position] != rune('O') { - goto l27 - } - position++ - } - l32: - { - position34, tokenIndex34 := position, tokenIndex - if buffer[position] != rune('b') { - goto l35 - } - position++ - goto l34 - l35: - position, tokenIndex = position34, tokenIndex34 - if buffer[position] != rune('B') { - goto l27 - } - position++ - } - l34: - { - position36, tokenIndex36 := position, tokenIndex - if buffer[position] != rune('a') { - goto l37 - } - position++ - goto l36 - l37: - position, tokenIndex = position36, tokenIndex36 - if buffer[position] != rune('A') { - goto l27 - } - position++ - } - l36: - { - position38, tokenIndex38 := position, tokenIndex - if buffer[position] != rune('l') { - goto l39 - } - position++ - goto l38 - l39: - position, tokenIndex = position38, tokenIndex38 - if buffer[position] != rune('L') { - goto l27 - } - position++ - } - l38: - goto l26 - l27: - position, tokenIndex = position26, tokenIndex26 - if buffer[position] != rune('.') { - goto l24 } position++ { - position40, tokenIndex40 := position, tokenIndex + position29, tokenIndex29 := position, tokenIndex if buffer[position] != rune('g') { - goto l41 + goto l30 } position++ - goto l40 - l41: - position, tokenIndex = position40, tokenIndex40 + goto l29 + l30: + position, tokenIndex = position29, tokenIndex29 if buffer[position] != rune('G') { - goto l24 + goto l28 } position++ } - l40: + l29: { - position42, tokenIndex42 := position, tokenIndex + position31, tokenIndex31 := position, tokenIndex if buffer[position] != rune('l') { - goto l43 + goto l32 } position++ - goto l42 - l43: - position, tokenIndex = position42, tokenIndex42 + goto l31 + l32: + position, tokenIndex = position31, tokenIndex31 if buffer[position] != rune('L') { - goto l24 + goto l28 } position++ } - l42: + l31: { - position44, tokenIndex44 := position, tokenIndex + position33, tokenIndex33 := position, tokenIndex if buffer[position] != rune('o') { - goto l45 + goto l34 } position++ - goto l44 - l45: - position, tokenIndex = position44, tokenIndex44 + goto l33 + l34: + position, tokenIndex = position33, tokenIndex33 if buffer[position] != rune('O') { - goto l24 + goto l28 } position++ } - l44: + l33: { - position46, tokenIndex46 := position, tokenIndex + position35, tokenIndex35 := position, tokenIndex if buffer[position] != rune('b') { - goto l47 + goto l36 } position++ - goto l46 - l47: - position, tokenIndex = position46, tokenIndex46 + goto l35 + l36: + position, tokenIndex = position35, tokenIndex35 if buffer[position] != rune('B') { - goto l24 + goto l28 } position++ } - l46: + l35: { - position48, tokenIndex48 := position, tokenIndex - if buffer[position] != rune('l') { - goto l49 + position37, tokenIndex37 := position, tokenIndex + if buffer[position] != rune('a') { + goto l38 } position++ - goto l48 - l49: - position, tokenIndex = position48, tokenIndex48 - if buffer[position] != rune('L') { - goto l24 + goto l37 + l38: + position, tokenIndex = position37, tokenIndex37 + if buffer[position] != rune('A') { + goto l28 } position++ } - l48: + l37: + { + position39, tokenIndex39 := position, tokenIndex + if buffer[position] != rune('l') { + goto l40 + } + position++ + goto l39 + l40: + position, tokenIndex = position39, tokenIndex39 + if buffer[position] != rune('L') { + goto l28 + } + position++ + } + l39: + goto l27 + l28: + position, tokenIndex = position27, tokenIndex27 + if buffer[position] != rune('.') { + goto l25 + } + position++ + { + position41, tokenIndex41 := position, tokenIndex + if buffer[position] != rune('g') { + goto l42 + } + position++ + goto l41 + l42: + position, tokenIndex = position41, tokenIndex41 + if buffer[position] != rune('G') { + goto l25 + } + position++ + } + l41: + { + position43, tokenIndex43 := position, tokenIndex + if buffer[position] != rune('l') { + goto l44 + } + position++ + goto l43 + l44: + position, tokenIndex = position43, tokenIndex43 + if buffer[position] != rune('L') { + goto l25 + } + position++ + } + l43: + { + position45, tokenIndex45 := position, tokenIndex + if buffer[position] != rune('o') { + goto l46 + } + position++ + goto l45 + l46: + position, tokenIndex = position45, tokenIndex45 + if buffer[position] != rune('O') { + goto l25 + } + position++ + } + l45: + { + position47, tokenIndex47 := position, tokenIndex + if buffer[position] != rune('b') { + goto l48 + } + position++ + goto l47 + l48: + position, tokenIndex = position47, tokenIndex47 + if buffer[position] != rune('B') { + goto l25 + } + position++ + } + l47: + { + position49, tokenIndex49 := position, tokenIndex + if buffer[position] != rune('l') { + goto l50 + } + position++ + goto l49 + l50: + position, tokenIndex = position49, tokenIndex49 + if buffer[position] != rune('L') { + goto l25 + } + position++ + } + l49: } - l26: + l27: if !_rules[ruleWS]() { - goto l24 + goto l25 } if !_rules[ruleSymbolName]() { - goto l24 + goto l25 } - add(ruleGlobalDirective, position25) + add(ruleGlobalDirective, position26) } return true - l24: - position, tokenIndex = position24, tokenIndex24 + l25: + position, tokenIndex = position25, tokenIndex25 return false }, /* 3 Directive <- <('.' DirectiveName (WS Args)?)> */ func() bool { - position50, tokenIndex50 := position, tokenIndex + position51, tokenIndex51 := position, tokenIndex { - position51 := position + position52 := position if buffer[position] != rune('.') { - goto l50 + goto l51 } position++ if !_rules[ruleDirectiveName]() { - goto l50 + goto l51 } { - position52, tokenIndex52 := position, tokenIndex + position53, tokenIndex53 := position, tokenIndex if !_rules[ruleWS]() { - goto l52 + goto l53 } if !_rules[ruleArgs]() { - goto l52 + goto l53 } - goto l53 - l52: - position, tokenIndex = position52, tokenIndex52 + goto l54 + l53: + position, tokenIndex = position53, tokenIndex53 } - l53: - add(ruleDirective, position51) + l54: + add(ruleDirective, position52) } return true - l50: - position, tokenIndex = position50, tokenIndex50 + l51: + position, tokenIndex = position51, tokenIndex51 return false }, /* 4 DirectiveName <- <([a-z] / [A-Z] / ([0-9] / [0-9]) / '_')+> */ func() bool { - position54, tokenIndex54 := position, tokenIndex + position55, tokenIndex55 := position, tokenIndex { - position55 := position + position56 := position { - position58, tokenIndex58 := position, tokenIndex + position59, tokenIndex59 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l59 - } - position++ - goto l58 - l59: - position, tokenIndex = position58, tokenIndex58 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l60 } position++ - goto l58 + goto l59 l60: - position, tokenIndex = position58, tokenIndex58 + position, tokenIndex = position59, tokenIndex59 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l61 + } + position++ + goto l59 + l61: + position, tokenIndex = position59, tokenIndex59 { - position62, tokenIndex62 := position, tokenIndex + position63, tokenIndex63 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l63 + goto l64 } position++ - goto l62 - l63: - position, tokenIndex = position62, tokenIndex62 + goto l63 + l64: + position, tokenIndex = position63, tokenIndex63 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l61 + goto l62 } position++ } + l63: + goto l59 l62: - goto l58 - l61: - position, tokenIndex = position58, tokenIndex58 + position, tokenIndex = position59, tokenIndex59 if buffer[position] != rune('_') { - goto l54 + goto l55 } position++ } - l58: - l56: + l59: + l57: { - position57, tokenIndex57 := position, tokenIndex + position58, tokenIndex58 := position, tokenIndex { - position64, tokenIndex64 := position, tokenIndex + position65, tokenIndex65 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l65 - } - position++ - goto l64 - l65: - position, tokenIndex = position64, tokenIndex64 - if c := buffer[position]; c < rune('A') || c > rune('Z') { goto l66 } position++ - goto l64 + goto l65 l66: - position, tokenIndex = position64, tokenIndex64 + position, tokenIndex = position65, tokenIndex65 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l67 + } + position++ + goto l65 + l67: + position, tokenIndex = position65, tokenIndex65 { - position68, tokenIndex68 := position, tokenIndex + position69, tokenIndex69 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l69 + goto l70 } position++ - goto l68 - l69: - position, tokenIndex = position68, tokenIndex68 + goto l69 + l70: + position, tokenIndex = position69, tokenIndex69 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l67 + goto l68 } position++ } + l69: + goto l65 l68: - goto l64 - l67: - position, tokenIndex = position64, tokenIndex64 + position, tokenIndex = position65, tokenIndex65 if buffer[position] != rune('_') { - goto l57 + goto l58 } position++ } - l64: - goto l56 - l57: - position, tokenIndex = position57, tokenIndex57 + l65: + goto l57 + l58: + position, tokenIndex = position58, tokenIndex58 } - add(ruleDirectiveName, position55) + add(ruleDirectiveName, position56) } return true - l54: - position, tokenIndex = position54, tokenIndex54 + l55: + position, tokenIndex = position55, tokenIndex55 return false }, /* 5 LocationDirective <- <(FileDirective / LocDirective)> */ func() bool { - position70, tokenIndex70 := position, tokenIndex + position71, tokenIndex71 := position, tokenIndex { - position71 := position + position72 := position { - position72, tokenIndex72 := position, tokenIndex + position73, tokenIndex73 := position, tokenIndex if !_rules[ruleFileDirective]() { - goto l73 + goto l74 } - goto l72 - l73: - position, tokenIndex = position72, tokenIndex72 + goto l73 + l74: + position, tokenIndex = position73, tokenIndex73 if !_rules[ruleLocDirective]() { - goto l70 + goto l71 } } - l72: - add(ruleLocationDirective, position71) + l73: + add(ruleLocationDirective, position72) } return true - l70: - position, tokenIndex = position70, tokenIndex70 + l71: + position, tokenIndex = position71, tokenIndex71 return false }, /* 6 FileDirective <- <('.' ('f' / 'F') ('i' / 'I') ('l' / 'L') ('e' / 'E') WS (!('#' / '\n') .)+)> */ func() bool { - position74, tokenIndex74 := position, tokenIndex + position75, tokenIndex75 := position, tokenIndex { - position75 := position + position76 := position if buffer[position] != rune('.') { - goto l74 + goto l75 } position++ { - position76, tokenIndex76 := position, tokenIndex + position77, tokenIndex77 := position, tokenIndex if buffer[position] != rune('f') { - goto l77 + goto l78 } position++ - goto l76 - l77: - position, tokenIndex = position76, tokenIndex76 + goto l77 + l78: + position, tokenIndex = position77, tokenIndex77 if buffer[position] != rune('F') { - goto l74 + goto l75 } position++ } - l76: + l77: { - position78, tokenIndex78 := position, tokenIndex + position79, tokenIndex79 := position, tokenIndex if buffer[position] != rune('i') { - goto l79 + goto l80 } position++ - goto l78 - l79: - position, tokenIndex = position78, tokenIndex78 + goto l79 + l80: + position, tokenIndex = position79, tokenIndex79 if buffer[position] != rune('I') { - goto l74 + goto l75 } position++ } - l78: + l79: { - position80, tokenIndex80 := position, tokenIndex + position81, tokenIndex81 := position, tokenIndex if buffer[position] != rune('l') { - goto l81 + goto l82 } position++ - goto l80 - l81: - position, tokenIndex = position80, tokenIndex80 + goto l81 + l82: + position, tokenIndex = position81, tokenIndex81 if buffer[position] != rune('L') { - goto l74 + goto l75 } position++ } - l80: + l81: { - position82, tokenIndex82 := position, tokenIndex + position83, tokenIndex83 := position, tokenIndex if buffer[position] != rune('e') { - goto l83 + goto l84 } position++ - goto l82 - l83: - position, tokenIndex = position82, tokenIndex82 + goto l83 + l84: + position, tokenIndex = position83, tokenIndex83 if buffer[position] != rune('E') { - goto l74 + goto l75 } position++ } - l82: + l83: if !_rules[ruleWS]() { - goto l74 + goto l75 } { + position87, tokenIndex87 := position, tokenIndex + { + position88, tokenIndex88 := position, tokenIndex + if buffer[position] != rune('#') { + goto l89 + } + position++ + goto l88 + l89: + position, tokenIndex = position88, tokenIndex88 + if buffer[position] != rune('\n') { + goto l87 + } + position++ + } + l88: + goto l75 + l87: + position, tokenIndex = position87, tokenIndex87 + } + if !matchDot() { + goto l75 + } + l85: + { position86, tokenIndex86 := position, tokenIndex { - position87, tokenIndex87 := position, tokenIndex - if buffer[position] != rune('#') { - goto l88 + position90, tokenIndex90 := position, tokenIndex + { + position91, tokenIndex91 := position, tokenIndex + if buffer[position] != rune('#') { + goto l92 + } + position++ + goto l91 + l92: + position, tokenIndex = position91, tokenIndex91 + if buffer[position] != rune('\n') { + goto l90 + } + position++ } - position++ - goto l87 - l88: - position, tokenIndex = position87, tokenIndex87 - if buffer[position] != rune('\n') { - goto l86 - } - position++ + l91: + goto l86 + l90: + position, tokenIndex = position90, tokenIndex90 } - l87: - goto l74 + if !matchDot() { + goto l86 + } + goto l85 l86: position, tokenIndex = position86, tokenIndex86 } - if !matchDot() { - goto l74 - } - l84: - { - position85, tokenIndex85 := position, tokenIndex - { - position89, tokenIndex89 := position, tokenIndex - { - position90, tokenIndex90 := position, tokenIndex - if buffer[position] != rune('#') { - goto l91 - } - position++ - goto l90 - l91: - position, tokenIndex = position90, tokenIndex90 - if buffer[position] != rune('\n') { - goto l89 - } - position++ - } - l90: - goto l85 - l89: - position, tokenIndex = position89, tokenIndex89 - } - if !matchDot() { - goto l85 - } - goto l84 - l85: - position, tokenIndex = position85, tokenIndex85 - } - add(ruleFileDirective, position75) + add(ruleFileDirective, position76) } return true - l74: - position, tokenIndex = position74, tokenIndex74 + l75: + position, tokenIndex = position75, tokenIndex75 return false }, /* 7 LocDirective <- <('.' ('l' / 'L') ('o' / 'O') ('c' / 'C') WS (!('#' / '/' / '\n') .)+)> */ func() bool { - position92, tokenIndex92 := position, tokenIndex + position93, tokenIndex93 := position, tokenIndex { - position93 := position + position94 := position if buffer[position] != rune('.') { - goto l92 + goto l93 } position++ { - position94, tokenIndex94 := position, tokenIndex + position95, tokenIndex95 := position, tokenIndex if buffer[position] != rune('l') { - goto l95 + goto l96 } position++ - goto l94 - l95: - position, tokenIndex = position94, tokenIndex94 + goto l95 + l96: + position, tokenIndex = position95, tokenIndex95 if buffer[position] != rune('L') { - goto l92 + goto l93 } position++ } - l94: + l95: { - position96, tokenIndex96 := position, tokenIndex + position97, tokenIndex97 := position, tokenIndex if buffer[position] != rune('o') { - goto l97 + goto l98 } position++ - goto l96 - l97: - position, tokenIndex = position96, tokenIndex96 + goto l97 + l98: + position, tokenIndex = position97, tokenIndex97 if buffer[position] != rune('O') { - goto l92 + goto l93 } position++ } - l96: + l97: { - position98, tokenIndex98 := position, tokenIndex + position99, tokenIndex99 := position, tokenIndex if buffer[position] != rune('c') { - goto l99 + goto l100 } position++ - goto l98 - l99: - position, tokenIndex = position98, tokenIndex98 + goto l99 + l100: + position, tokenIndex = position99, tokenIndex99 if buffer[position] != rune('C') { - goto l92 + goto l93 } position++ } - l98: + l99: if !_rules[ruleWS]() { - goto l92 + goto l93 } { - position102, tokenIndex102 := position, tokenIndex + position103, tokenIndex103 := position, tokenIndex { - position103, tokenIndex103 := position, tokenIndex + position104, tokenIndex104 := position, tokenIndex if buffer[position] != rune('#') { - goto l104 - } - position++ - goto l103 - l104: - position, tokenIndex = position103, tokenIndex103 - if buffer[position] != rune('/') { goto l105 } position++ - goto l103 + goto l104 l105: - position, tokenIndex = position103, tokenIndex103 + position, tokenIndex = position104, tokenIndex104 + if buffer[position] != rune('/') { + goto l106 + } + position++ + goto l104 + l106: + position, tokenIndex = position104, tokenIndex104 if buffer[position] != rune('\n') { - goto l102 + goto l103 } position++ } + l104: + goto l93 l103: - goto l92 - l102: - position, tokenIndex = position102, tokenIndex102 + position, tokenIndex = position103, tokenIndex103 } if !matchDot() { - goto l92 + goto l93 } - l100: + l101: { - position101, tokenIndex101 := position, tokenIndex + position102, tokenIndex102 := position, tokenIndex { - position106, tokenIndex106 := position, tokenIndex + position107, tokenIndex107 := position, tokenIndex { - position107, tokenIndex107 := position, tokenIndex + position108, tokenIndex108 := position, tokenIndex if buffer[position] != rune('#') { - goto l108 - } - position++ - goto l107 - l108: - position, tokenIndex = position107, tokenIndex107 - if buffer[position] != rune('/') { goto l109 } position++ - goto l107 + goto l108 l109: - position, tokenIndex = position107, tokenIndex107 + position, tokenIndex = position108, tokenIndex108 + if buffer[position] != rune('/') { + goto l110 + } + position++ + goto l108 + l110: + position, tokenIndex = position108, tokenIndex108 if buffer[position] != rune('\n') { - goto l106 + goto l107 } position++ } + l108: + goto l102 l107: - goto l101 - l106: - position, tokenIndex = position106, tokenIndex106 + position, tokenIndex = position107, tokenIndex107 } if !matchDot() { - goto l101 + goto l102 } - goto l100 - l101: - position, tokenIndex = position101, tokenIndex101 + goto l101 + l102: + position, tokenIndex = position102, tokenIndex102 } - add(ruleLocDirective, position93) + add(ruleLocDirective, position94) } return true - l92: - position, tokenIndex = position92, tokenIndex92 + l93: + position, tokenIndex = position93, tokenIndex93 return false }, /* 8 Args <- <(Arg (WS? ',' WS? Arg)*)> */ func() bool { - position110, tokenIndex110 := position, tokenIndex + position111, tokenIndex111 := position, tokenIndex { - position111 := position + position112 := position if !_rules[ruleArg]() { - goto l110 + goto l111 } - l112: + l113: { - position113, tokenIndex113 := position, tokenIndex + position114, tokenIndex114 := position, tokenIndex { - position114, tokenIndex114 := position, tokenIndex + position115, tokenIndex115 := position, tokenIndex if !_rules[ruleWS]() { - goto l114 + goto l115 } - goto l115 - l114: - position, tokenIndex = position114, tokenIndex114 + goto l116 + l115: + position, tokenIndex = position115, tokenIndex115 } - l115: + l116: if buffer[position] != rune(',') { - goto l113 + goto l114 } position++ { - position116, tokenIndex116 := position, tokenIndex + position117, tokenIndex117 := position, tokenIndex if !_rules[ruleWS]() { - goto l116 + goto l117 } - goto l117 - l116: - position, tokenIndex = position116, tokenIndex116 + goto l118 + l117: + position, tokenIndex = position117, tokenIndex117 } - l117: + l118: if !_rules[ruleArg]() { - goto l113 + goto l114 } - goto l112 - l113: - position, tokenIndex = position113, tokenIndex113 + goto l113 + l114: + position, tokenIndex = position114, tokenIndex114 } - add(ruleArgs, position111) + add(ruleArgs, position112) } return true - l110: - position, tokenIndex = position110, tokenIndex110 + l111: + position, tokenIndex = position111, tokenIndex111 return false }, /* 9 Arg <- <(QuotedArg / ([0-9] / [0-9] / ([a-z] / [A-Z]) / '%' / '+' / '-' / '*' / '_' / '@' / '.' / '$')*)> */ func() bool { { - position119 := position + position120 := position { - position120, tokenIndex120 := position, tokenIndex + position121, tokenIndex121 := position, tokenIndex if !_rules[ruleQuotedArg]() { - goto l121 + goto l122 } - goto l120 - l121: - position, tokenIndex = position120, tokenIndex120 + goto l121 l122: + position, tokenIndex = position121, tokenIndex121 + l123: { - position123, tokenIndex123 := position, tokenIndex + position124, tokenIndex124 := position, tokenIndex { - position124, tokenIndex124 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l125 - } - position++ - goto l124 - l125: - position, tokenIndex = position124, tokenIndex124 + position125, tokenIndex125 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { goto l126 } position++ - goto l124 + goto l125 l126: - position, tokenIndex = position124, tokenIndex124 - { - position128, tokenIndex128 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l129 - } - position++ - goto l128 - l129: - position, tokenIndex = position128, tokenIndex128 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l127 - } - position++ - } - l128: - goto l124 - l127: - position, tokenIndex = position124, tokenIndex124 - if buffer[position] != rune('%') { - goto l130 + position, tokenIndex = position125, tokenIndex125 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l127 } position++ - goto l124 - l130: - position, tokenIndex = position124, tokenIndex124 - if buffer[position] != rune('+') { + goto l125 + l127: + position, tokenIndex = position125, tokenIndex125 + { + position129, tokenIndex129 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l130 + } + position++ + goto l129 + l130: + position, tokenIndex = position129, tokenIndex129 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l128 + } + position++ + } + l129: + goto l125 + l128: + position, tokenIndex = position125, tokenIndex125 + if buffer[position] != rune('%') { goto l131 } position++ - goto l124 + goto l125 l131: - position, tokenIndex = position124, tokenIndex124 - if buffer[position] != rune('-') { + position, tokenIndex = position125, tokenIndex125 + if buffer[position] != rune('+') { goto l132 } position++ - goto l124 + goto l125 l132: - position, tokenIndex = position124, tokenIndex124 - if buffer[position] != rune('*') { + position, tokenIndex = position125, tokenIndex125 + if buffer[position] != rune('-') { goto l133 } position++ - goto l124 + goto l125 l133: - position, tokenIndex = position124, tokenIndex124 - if buffer[position] != rune('_') { + position, tokenIndex = position125, tokenIndex125 + if buffer[position] != rune('*') { goto l134 } position++ - goto l124 + goto l125 l134: - position, tokenIndex = position124, tokenIndex124 - if buffer[position] != rune('@') { + position, tokenIndex = position125, tokenIndex125 + if buffer[position] != rune('_') { goto l135 } position++ - goto l124 + goto l125 l135: - position, tokenIndex = position124, tokenIndex124 - if buffer[position] != rune('.') { + position, tokenIndex = position125, tokenIndex125 + if buffer[position] != rune('@') { goto l136 } position++ - goto l124 + goto l125 l136: - position, tokenIndex = position124, tokenIndex124 + position, tokenIndex = position125, tokenIndex125 + if buffer[position] != rune('.') { + goto l137 + } + position++ + goto l125 + l137: + position, tokenIndex = position125, tokenIndex125 if buffer[position] != rune('$') { - goto l123 + goto l124 } position++ } + l125: + goto l123 l124: - goto l122 - l123: - position, tokenIndex = position123, tokenIndex123 + position, tokenIndex = position124, tokenIndex124 } } - l120: - add(ruleArg, position119) + l121: + add(ruleArg, position120) } return true }, /* 10 QuotedArg <- <('"' QuotedText '"')> */ func() bool { - position137, tokenIndex137 := position, tokenIndex + position138, tokenIndex138 := position, tokenIndex { - position138 := position + position139 := position if buffer[position] != rune('"') { - goto l137 + goto l138 } position++ if !_rules[ruleQuotedText]() { - goto l137 + goto l138 } if buffer[position] != rune('"') { - goto l137 + goto l138 } position++ - add(ruleQuotedArg, position138) + add(ruleQuotedArg, position139) } return true - l137: - position, tokenIndex = position137, tokenIndex137 + l138: + position, tokenIndex = position138, tokenIndex138 return false }, /* 11 QuotedText <- <(EscapedChar / (!'"' .))*> */ func() bool { { - position140 := position - l141: + position141 := position + l142: { - position142, tokenIndex142 := position, tokenIndex + position143, tokenIndex143 := position, tokenIndex { - position143, tokenIndex143 := position, tokenIndex + position144, tokenIndex144 := position, tokenIndex if !_rules[ruleEscapedChar]() { - goto l144 + goto l145 } - goto l143 - l144: - position, tokenIndex = position143, tokenIndex143 + goto l144 + l145: + position, tokenIndex = position144, tokenIndex144 { - position145, tokenIndex145 := position, tokenIndex + position146, tokenIndex146 := position, tokenIndex if buffer[position] != rune('"') { - goto l145 + goto l146 } position++ - goto l142 - l145: - position, tokenIndex = position145, tokenIndex145 + goto l143 + l146: + position, tokenIndex = position146, tokenIndex146 } if !matchDot() { - goto l142 + goto l143 } } + l144: + goto l142 l143: - goto l141 - l142: - position, tokenIndex = position142, tokenIndex142 + position, tokenIndex = position143, tokenIndex143 } - add(ruleQuotedText, position140) + add(ruleQuotedText, position141) } return true }, - /* 12 LabelContainingDirective <- <(LabelContainingDirectiveName WS SymbolArgs)> */ + /* 12 SymbolDefiningDirective <- <(SymbolDefiningDirectiveName WS (LocalSymbol / SymbolName) WS? ',' WS? SymbolArg)> */ func() bool { - position146, tokenIndex146 := position, tokenIndex + position147, tokenIndex147 := position, tokenIndex { - position147 := position - if !_rules[ruleLabelContainingDirectiveName]() { - goto l146 + position148 := position + if !_rules[ruleSymbolDefiningDirectiveName]() { + goto l147 } if !_rules[ruleWS]() { - goto l146 + goto l147 } - if !_rules[ruleSymbolArgs]() { - goto l146 - } - add(ruleLabelContainingDirective, position147) - } - return true - l146: - position, tokenIndex = position146, tokenIndex146 - return false - }, - /* 13 LabelContainingDirectiveName <- <(('.' ('x' / 'X') ('w' / 'W') ('o' / 'O') ('r' / 'R') ('d' / 'D')) / ('.' ('w' / 'W') ('o' / 'O') ('r' / 'R') ('d' / 'D')) / ('.' ('h' / 'H') ('w' / 'W') ('o' / 'O') ('r' / 'R') ('d' / 'D')) / ('.' ('l' / 'L') ('o' / 'O') ('n' / 'N') ('g' / 'G')) / ('.' ('s' / 'S') ('e' / 'E') ('t' / 'T')) / ('.' ('b' / 'B') ('y' / 'Y') ('t' / 'T') ('e' / 'E')) / ('.' '8' ('b' / 'B') ('y' / 'Y') ('t' / 'T') ('e' / 'E')) / ('.' '4' ('b' / 'B') ('y' / 'Y') ('t' / 'T') ('e' / 'E')) / ('.' ('q' / 'Q') ('u' / 'U') ('a' / 'A') ('d' / 'D')) / ('.' ('t' / 'T') ('c' / 'C')) / ('.' ('l' / 'L') ('o' / 'O') ('c' / 'C') ('a' / 'A') ('l' / 'L') ('e' / 'E') ('n' / 'N') ('t' / 'T') ('r' / 'R') ('y' / 'Y')) / ('.' ('s' / 'S') ('i' / 'I') ('z' / 'Z') ('e' / 'E')) / ('.' ('t' / 'T') ('y' / 'Y') ('p' / 'P') ('e' / 'E')) / ('.' ('u' / 'U') ('l' / 'L') ('e' / 'E') ('b' / 'B') '1' '2' '8') / ('.' ('s' / 'S') ('l' / 'L') ('e' / 'E') ('b' / 'B') '1' '2' '8'))> */ - func() bool { - position148, tokenIndex148 := position, tokenIndex - { - position149 := position { - position150, tokenIndex150 := position, tokenIndex - if buffer[position] != rune('.') { + position149, tokenIndex149 := position, tokenIndex + if !_rules[ruleLocalSymbol]() { + goto l150 + } + goto l149 + l150: + position, tokenIndex = position149, tokenIndex149 + if !_rules[ruleSymbolName]() { + goto l147 + } + } + l149: + { + position151, tokenIndex151 := position, tokenIndex + if !_rules[ruleWS]() { goto l151 } - position++ - { - position152, tokenIndex152 := position, tokenIndex - if buffer[position] != rune('x') { - goto l153 - } - position++ - goto l152 - l153: - position, tokenIndex = position152, tokenIndex152 - if buffer[position] != rune('X') { - goto l151 - } - position++ - } - l152: - { - position154, tokenIndex154 := position, tokenIndex - if buffer[position] != rune('w') { - goto l155 - } - position++ - goto l154 - l155: - position, tokenIndex = position154, tokenIndex154 - if buffer[position] != rune('W') { - goto l151 - } - position++ - } - l154: - { - position156, tokenIndex156 := position, tokenIndex - if buffer[position] != rune('o') { - goto l157 - } - position++ - goto l156 - l157: - position, tokenIndex = position156, tokenIndex156 - if buffer[position] != rune('O') { - goto l151 - } - position++ - } - l156: - { - position158, tokenIndex158 := position, tokenIndex - if buffer[position] != rune('r') { - goto l159 - } - position++ - goto l158 - l159: - position, tokenIndex = position158, tokenIndex158 - if buffer[position] != rune('R') { - goto l151 - } - position++ - } - l158: - { - position160, tokenIndex160 := position, tokenIndex - if buffer[position] != rune('d') { - goto l161 - } - position++ - goto l160 - l161: - position, tokenIndex = position160, tokenIndex160 - if buffer[position] != rune('D') { - goto l151 - } - position++ - } - l160: - goto l150 + goto l152 l151: - position, tokenIndex = position150, tokenIndex150 + position, tokenIndex = position151, tokenIndex151 + } + l152: + if buffer[position] != rune(',') { + goto l147 + } + position++ + { + position153, tokenIndex153 := position, tokenIndex + if !_rules[ruleWS]() { + goto l153 + } + goto l154 + l153: + position, tokenIndex = position153, tokenIndex153 + } + l154: + if !_rules[ruleSymbolArg]() { + goto l147 + } + add(ruleSymbolDefiningDirective, position148) + } + return true + l147: + position, tokenIndex = position147, tokenIndex147 + return false + }, + /* 13 SymbolDefiningDirectiveName <- <(('.' ('e' / 'E') ('q' / 'Q') ('u' / 'U') ('i' / 'I') ('v' / 'V')) / ('.' ('e' / 'E') ('q' / 'Q') ('u' / 'U')) / ('.' ('s' / 'S') ('e' / 'E') ('t' / 'T')))> */ + func() bool { + position155, tokenIndex155 := position, tokenIndex + { + position156 := position + { + position157, tokenIndex157 := position, tokenIndex if buffer[position] != rune('.') { - goto l162 + goto l158 } position++ { + position159, tokenIndex159 := position, tokenIndex + if buffer[position] != rune('e') { + goto l160 + } + position++ + goto l159 + l160: + position, tokenIndex = position159, tokenIndex159 + if buffer[position] != rune('E') { + goto l158 + } + position++ + } + l159: + { + position161, tokenIndex161 := position, tokenIndex + if buffer[position] != rune('q') { + goto l162 + } + position++ + goto l161 + l162: + position, tokenIndex = position161, tokenIndex161 + if buffer[position] != rune('Q') { + goto l158 + } + position++ + } + l161: + { position163, tokenIndex163 := position, tokenIndex - if buffer[position] != rune('w') { + if buffer[position] != rune('u') { goto l164 } position++ goto l163 l164: position, tokenIndex = position163, tokenIndex163 - if buffer[position] != rune('W') { - goto l162 + if buffer[position] != rune('U') { + goto l158 } position++ } l163: { position165, tokenIndex165 := position, tokenIndex - if buffer[position] != rune('o') { + if buffer[position] != rune('i') { goto l166 } position++ goto l165 l166: position, tokenIndex = position165, tokenIndex165 - if buffer[position] != rune('O') { - goto l162 + if buffer[position] != rune('I') { + goto l158 } position++ } l165: { position167, tokenIndex167 := position, tokenIndex - if buffer[position] != rune('r') { + if buffer[position] != rune('v') { goto l168 } position++ goto l167 l168: position, tokenIndex = position167, tokenIndex167 - if buffer[position] != rune('R') { - goto l162 + if buffer[position] != rune('V') { + goto l158 } position++ } l167: - { - position169, tokenIndex169 := position, tokenIndex - if buffer[position] != rune('d') { - goto l170 - } - position++ - goto l169 - l170: - position, tokenIndex = position169, tokenIndex169 - if buffer[position] != rune('D') { - goto l162 - } - position++ - } - l169: - goto l150 - l162: - position, tokenIndex = position150, tokenIndex150 + goto l157 + l158: + position, tokenIndex = position157, tokenIndex157 if buffer[position] != rune('.') { - goto l171 + goto l169 } position++ { + position170, tokenIndex170 := position, tokenIndex + if buffer[position] != rune('e') { + goto l171 + } + position++ + goto l170 + l171: + position, tokenIndex = position170, tokenIndex170 + if buffer[position] != rune('E') { + goto l169 + } + position++ + } + l170: + { position172, tokenIndex172 := position, tokenIndex - if buffer[position] != rune('h') { + if buffer[position] != rune('q') { goto l173 } position++ goto l172 l173: position, tokenIndex = position172, tokenIndex172 - if buffer[position] != rune('H') { - goto l171 + if buffer[position] != rune('Q') { + goto l169 } position++ } l172: { position174, tokenIndex174 := position, tokenIndex - if buffer[position] != rune('w') { + if buffer[position] != rune('u') { goto l175 } position++ goto l174 l175: position, tokenIndex = position174, tokenIndex174 - if buffer[position] != rune('W') { - goto l171 + if buffer[position] != rune('U') { + goto l169 } position++ } l174: + goto l157 + l169: + position, tokenIndex = position157, tokenIndex157 + if buffer[position] != rune('.') { + goto l155 + } + position++ { position176, tokenIndex176 := position, tokenIndex - if buffer[position] != rune('o') { + if buffer[position] != rune('s') { goto l177 } position++ goto l176 l177: position, tokenIndex = position176, tokenIndex176 - if buffer[position] != rune('O') { - goto l171 + if buffer[position] != rune('S') { + goto l155 } position++ } l176: { position178, tokenIndex178 := position, tokenIndex - if buffer[position] != rune('r') { + if buffer[position] != rune('e') { goto l179 } position++ goto l178 l179: position, tokenIndex = position178, tokenIndex178 - if buffer[position] != rune('R') { - goto l171 + if buffer[position] != rune('E') { + goto l155 } position++ } l178: { position180, tokenIndex180 := position, tokenIndex - if buffer[position] != rune('d') { + if buffer[position] != rune('t') { goto l181 } position++ goto l180 l181: position, tokenIndex = position180, tokenIndex180 - if buffer[position] != rune('D') { - goto l171 + if buffer[position] != rune('T') { + goto l155 } position++ } l180: - goto l150 - l171: - position, tokenIndex = position150, tokenIndex150 + } + l157: + add(ruleSymbolDefiningDirectiveName, position156) + } + return true + l155: + position, tokenIndex = position155, tokenIndex155 + return false + }, + /* 14 LabelContainingDirective <- <(LabelContainingDirectiveName WS SymbolArgs)> */ + func() bool { + position182, tokenIndex182 := position, tokenIndex + { + position183 := position + if !_rules[ruleLabelContainingDirectiveName]() { + goto l182 + } + if !_rules[ruleWS]() { + goto l182 + } + if !_rules[ruleSymbolArgs]() { + goto l182 + } + add(ruleLabelContainingDirective, position183) + } + return true + l182: + position, tokenIndex = position182, tokenIndex182 + return false + }, + /* 15 LabelContainingDirectiveName <- <(('.' ('x' / 'X') ('w' / 'W') ('o' / 'O') ('r' / 'R') ('d' / 'D')) / ('.' ('w' / 'W') ('o' / 'O') ('r' / 'R') ('d' / 'D')) / ('.' ('h' / 'H') ('w' / 'W') ('o' / 'O') ('r' / 'R') ('d' / 'D')) / ('.' ('l' / 'L') ('o' / 'O') ('n' / 'N') ('g' / 'G')) / ('.' ('b' / 'B') ('y' / 'Y') ('t' / 'T') ('e' / 'E')) / ('.' '8' ('b' / 'B') ('y' / 'Y') ('t' / 'T') ('e' / 'E')) / ('.' '4' ('b' / 'B') ('y' / 'Y') ('t' / 'T') ('e' / 'E')) / ('.' ('q' / 'Q') ('u' / 'U') ('a' / 'A') ('d' / 'D')) / ('.' ('t' / 'T') ('c' / 'C')) / ('.' ('l' / 'L') ('o' / 'O') ('c' / 'C') ('a' / 'A') ('l' / 'L') ('e' / 'E') ('n' / 'N') ('t' / 'T') ('r' / 'R') ('y' / 'Y')) / ('.' ('s' / 'S') ('i' / 'I') ('z' / 'Z') ('e' / 'E')) / ('.' ('t' / 'T') ('y' / 'Y') ('p' / 'P') ('e' / 'E')) / ('.' ('u' / 'U') ('l' / 'L') ('e' / 'E') ('b' / 'B') '1' '2' '8') / ('.' ('s' / 'S') ('l' / 'L') ('e' / 'E') ('b' / 'B') '1' '2' '8'))> */ + func() bool { + position184, tokenIndex184 := position, tokenIndex + { + position185 := position + { + position186, tokenIndex186 := position, tokenIndex if buffer[position] != rune('.') { - goto l182 - } - position++ - { - position183, tokenIndex183 := position, tokenIndex - if buffer[position] != rune('l') { - goto l184 - } - position++ - goto l183 - l184: - position, tokenIndex = position183, tokenIndex183 - if buffer[position] != rune('L') { - goto l182 - } - position++ - } - l183: - { - position185, tokenIndex185 := position, tokenIndex - if buffer[position] != rune('o') { - goto l186 - } - position++ - goto l185 - l186: - position, tokenIndex = position185, tokenIndex185 - if buffer[position] != rune('O') { - goto l182 - } - position++ - } - l185: - { - position187, tokenIndex187 := position, tokenIndex - if buffer[position] != rune('n') { - goto l188 - } - position++ goto l187 - l188: - position, tokenIndex = position187, tokenIndex187 - if buffer[position] != rune('N') { - goto l182 - } - position++ - } - l187: - { - position189, tokenIndex189 := position, tokenIndex - if buffer[position] != rune('g') { - goto l190 - } - position++ - goto l189 - l190: - position, tokenIndex = position189, tokenIndex189 - if buffer[position] != rune('G') { - goto l182 - } - position++ - } - l189: - goto l150 - l182: - position, tokenIndex = position150, tokenIndex150 - if buffer[position] != rune('.') { - goto l191 } position++ { + position188, tokenIndex188 := position, tokenIndex + if buffer[position] != rune('x') { + goto l189 + } + position++ + goto l188 + l189: + position, tokenIndex = position188, tokenIndex188 + if buffer[position] != rune('X') { + goto l187 + } + position++ + } + l188: + { + position190, tokenIndex190 := position, tokenIndex + if buffer[position] != rune('w') { + goto l191 + } + position++ + goto l190 + l191: + position, tokenIndex = position190, tokenIndex190 + if buffer[position] != rune('W') { + goto l187 + } + position++ + } + l190: + { position192, tokenIndex192 := position, tokenIndex - if buffer[position] != rune('s') { + if buffer[position] != rune('o') { goto l193 } position++ goto l192 l193: position, tokenIndex = position192, tokenIndex192 - if buffer[position] != rune('S') { - goto l191 + if buffer[position] != rune('O') { + goto l187 } position++ } l192: { position194, tokenIndex194 := position, tokenIndex - if buffer[position] != rune('e') { + if buffer[position] != rune('r') { goto l195 } position++ goto l194 l195: position, tokenIndex = position194, tokenIndex194 - if buffer[position] != rune('E') { - goto l191 + if buffer[position] != rune('R') { + goto l187 } position++ } l194: { position196, tokenIndex196 := position, tokenIndex - if buffer[position] != rune('t') { + if buffer[position] != rune('d') { goto l197 } position++ goto l196 l197: position, tokenIndex = position196, tokenIndex196 - if buffer[position] != rune('T') { - goto l191 + if buffer[position] != rune('D') { + goto l187 } position++ } l196: - goto l150 - l191: - position, tokenIndex = position150, tokenIndex150 + goto l186 + l187: + position, tokenIndex = position186, tokenIndex186 if buffer[position] != rune('.') { goto l198 } position++ { position199, tokenIndex199 := position, tokenIndex - if buffer[position] != rune('b') { + if buffer[position] != rune('w') { goto l200 } position++ goto l199 l200: position, tokenIndex = position199, tokenIndex199 - if buffer[position] != rune('B') { + if buffer[position] != rune('W') { goto l198 } position++ @@ -1821,14 +1819,14 @@ l199: { position201, tokenIndex201 := position, tokenIndex - if buffer[position] != rune('y') { + if buffer[position] != rune('o') { goto l202 } position++ goto l201 l202: position, tokenIndex = position201, tokenIndex201 - if buffer[position] != rune('Y') { + if buffer[position] != rune('O') { goto l198 } position++ @@ -1836,14 +1834,14 @@ l201: { position203, tokenIndex203 := position, tokenIndex - if buffer[position] != rune('t') { + if buffer[position] != rune('r') { goto l204 } position++ goto l203 l204: position, tokenIndex = position203, tokenIndex203 - if buffer[position] != rune('T') { + if buffer[position] != rune('R') { goto l198 } position++ @@ -1851,40 +1849,36 @@ l203: { position205, tokenIndex205 := position, tokenIndex - if buffer[position] != rune('e') { + if buffer[position] != rune('d') { goto l206 } position++ goto l205 l206: position, tokenIndex = position205, tokenIndex205 - if buffer[position] != rune('E') { + if buffer[position] != rune('D') { goto l198 } position++ } l205: - goto l150 + goto l186 l198: - position, tokenIndex = position150, tokenIndex150 + position, tokenIndex = position186, tokenIndex186 if buffer[position] != rune('.') { goto l207 } position++ - if buffer[position] != rune('8') { - goto l207 - } - position++ { position208, tokenIndex208 := position, tokenIndex - if buffer[position] != rune('b') { + if buffer[position] != rune('h') { goto l209 } position++ goto l208 l209: position, tokenIndex = position208, tokenIndex208 - if buffer[position] != rune('B') { + if buffer[position] != rune('H') { goto l207 } position++ @@ -1892,14 +1886,14 @@ l208: { position210, tokenIndex210 := position, tokenIndex - if buffer[position] != rune('y') { + if buffer[position] != rune('w') { goto l211 } position++ goto l210 l211: position, tokenIndex = position210, tokenIndex210 - if buffer[position] != rune('Y') { + if buffer[position] != rune('W') { goto l207 } position++ @@ -1907,14 +1901,14 @@ l210: { position212, tokenIndex212 := position, tokenIndex - if buffer[position] != rune('t') { + if buffer[position] != rune('o') { goto l213 } position++ goto l212 l213: position, tokenIndex = position212, tokenIndex212 - if buffer[position] != rune('T') { + if buffer[position] != rune('O') { goto l207 } position++ @@ -1922,1917 +1916,1962 @@ l212: { position214, tokenIndex214 := position, tokenIndex - if buffer[position] != rune('e') { + if buffer[position] != rune('r') { goto l215 } position++ goto l214 l215: position, tokenIndex = position214, tokenIndex214 - if buffer[position] != rune('E') { + if buffer[position] != rune('R') { goto l207 } position++ } l214: - goto l150 - l207: - position, tokenIndex = position150, tokenIndex150 - if buffer[position] != rune('.') { - goto l216 - } - position++ - if buffer[position] != rune('4') { - goto l216 - } - position++ { - position217, tokenIndex217 := position, tokenIndex - if buffer[position] != rune('b') { - goto l218 + position216, tokenIndex216 := position, tokenIndex + if buffer[position] != rune('d') { + goto l217 } position++ - goto l217 - l218: - position, tokenIndex = position217, tokenIndex217 - if buffer[position] != rune('B') { - goto l216 + goto l216 + l217: + position, tokenIndex = position216, tokenIndex216 + if buffer[position] != rune('D') { + goto l207 } position++ } - l217: + l216: + goto l186 + l207: + position, tokenIndex = position186, tokenIndex186 + if buffer[position] != rune('.') { + goto l218 + } + position++ { position219, tokenIndex219 := position, tokenIndex - if buffer[position] != rune('y') { + if buffer[position] != rune('l') { goto l220 } position++ goto l219 l220: position, tokenIndex = position219, tokenIndex219 - if buffer[position] != rune('Y') { - goto l216 + if buffer[position] != rune('L') { + goto l218 } position++ } l219: { position221, tokenIndex221 := position, tokenIndex - if buffer[position] != rune('t') { + if buffer[position] != rune('o') { goto l222 } position++ goto l221 l222: position, tokenIndex = position221, tokenIndex221 - if buffer[position] != rune('T') { - goto l216 + if buffer[position] != rune('O') { + goto l218 } position++ } l221: { position223, tokenIndex223 := position, tokenIndex - if buffer[position] != rune('e') { + if buffer[position] != rune('n') { goto l224 } position++ goto l223 l224: position, tokenIndex = position223, tokenIndex223 - if buffer[position] != rune('E') { - goto l216 + if buffer[position] != rune('N') { + goto l218 } position++ } l223: - goto l150 - l216: - position, tokenIndex = position150, tokenIndex150 - if buffer[position] != rune('.') { + { + position225, tokenIndex225 := position, tokenIndex + if buffer[position] != rune('g') { + goto l226 + } + position++ goto l225 + l226: + position, tokenIndex = position225, tokenIndex225 + if buffer[position] != rune('G') { + goto l218 + } + position++ + } + l225: + goto l186 + l218: + position, tokenIndex = position186, tokenIndex186 + if buffer[position] != rune('.') { + goto l227 } position++ { - position226, tokenIndex226 := position, tokenIndex - if buffer[position] != rune('q') { - goto l227 - } - position++ - goto l226 - l227: - position, tokenIndex = position226, tokenIndex226 - if buffer[position] != rune('Q') { - goto l225 - } - position++ - } - l226: - { position228, tokenIndex228 := position, tokenIndex - if buffer[position] != rune('u') { + if buffer[position] != rune('b') { goto l229 } position++ goto l228 l229: position, tokenIndex = position228, tokenIndex228 - if buffer[position] != rune('U') { - goto l225 + if buffer[position] != rune('B') { + goto l227 } position++ } l228: { position230, tokenIndex230 := position, tokenIndex - if buffer[position] != rune('a') { + if buffer[position] != rune('y') { goto l231 } position++ goto l230 l231: position, tokenIndex = position230, tokenIndex230 - if buffer[position] != rune('A') { - goto l225 + if buffer[position] != rune('Y') { + goto l227 } position++ } l230: { position232, tokenIndex232 := position, tokenIndex - if buffer[position] != rune('d') { + if buffer[position] != rune('t') { goto l233 } position++ goto l232 l233: position, tokenIndex = position232, tokenIndex232 - if buffer[position] != rune('D') { - goto l225 + if buffer[position] != rune('T') { + goto l227 } position++ } l232: - goto l150 - l225: - position, tokenIndex = position150, tokenIndex150 - if buffer[position] != rune('.') { + { + position234, tokenIndex234 := position, tokenIndex + if buffer[position] != rune('e') { + goto l235 + } + position++ goto l234 + l235: + position, tokenIndex = position234, tokenIndex234 + if buffer[position] != rune('E') { + goto l227 + } + position++ + } + l234: + goto l186 + l227: + position, tokenIndex = position186, tokenIndex186 + if buffer[position] != rune('.') { + goto l236 + } + position++ + if buffer[position] != rune('8') { + goto l236 } position++ { - position235, tokenIndex235 := position, tokenIndex - if buffer[position] != rune('t') { - goto l236 - } - position++ - goto l235 - l236: - position, tokenIndex = position235, tokenIndex235 - if buffer[position] != rune('T') { - goto l234 - } - position++ - } - l235: - { position237, tokenIndex237 := position, tokenIndex - if buffer[position] != rune('c') { + if buffer[position] != rune('b') { goto l238 } position++ goto l237 l238: position, tokenIndex = position237, tokenIndex237 - if buffer[position] != rune('C') { - goto l234 + if buffer[position] != rune('B') { + goto l236 } position++ } l237: - goto l150 - l234: - position, tokenIndex = position150, tokenIndex150 - if buffer[position] != rune('.') { + { + position239, tokenIndex239 := position, tokenIndex + if buffer[position] != rune('y') { + goto l240 + } + position++ goto l239 + l240: + position, tokenIndex = position239, tokenIndex239 + if buffer[position] != rune('Y') { + goto l236 + } + position++ + } + l239: + { + position241, tokenIndex241 := position, tokenIndex + if buffer[position] != rune('t') { + goto l242 + } + position++ + goto l241 + l242: + position, tokenIndex = position241, tokenIndex241 + if buffer[position] != rune('T') { + goto l236 + } + position++ + } + l241: + { + position243, tokenIndex243 := position, tokenIndex + if buffer[position] != rune('e') { + goto l244 + } + position++ + goto l243 + l244: + position, tokenIndex = position243, tokenIndex243 + if buffer[position] != rune('E') { + goto l236 + } + position++ + } + l243: + goto l186 + l236: + position, tokenIndex = position186, tokenIndex186 + if buffer[position] != rune('.') { + goto l245 + } + position++ + if buffer[position] != rune('4') { + goto l245 } position++ { - position240, tokenIndex240 := position, tokenIndex - if buffer[position] != rune('l') { - goto l241 - } - position++ - goto l240 - l241: - position, tokenIndex = position240, tokenIndex240 - if buffer[position] != rune('L') { - goto l239 - } - position++ - } - l240: - { - position242, tokenIndex242 := position, tokenIndex - if buffer[position] != rune('o') { - goto l243 - } - position++ - goto l242 - l243: - position, tokenIndex = position242, tokenIndex242 - if buffer[position] != rune('O') { - goto l239 - } - position++ - } - l242: - { - position244, tokenIndex244 := position, tokenIndex - if buffer[position] != rune('c') { - goto l245 - } - position++ - goto l244 - l245: - position, tokenIndex = position244, tokenIndex244 - if buffer[position] != rune('C') { - goto l239 - } - position++ - } - l244: - { position246, tokenIndex246 := position, tokenIndex - if buffer[position] != rune('a') { + if buffer[position] != rune('b') { goto l247 } position++ goto l246 l247: position, tokenIndex = position246, tokenIndex246 - if buffer[position] != rune('A') { - goto l239 + if buffer[position] != rune('B') { + goto l245 } position++ } l246: { position248, tokenIndex248 := position, tokenIndex - if buffer[position] != rune('l') { + if buffer[position] != rune('y') { goto l249 } position++ goto l248 l249: position, tokenIndex = position248, tokenIndex248 - if buffer[position] != rune('L') { - goto l239 + if buffer[position] != rune('Y') { + goto l245 } position++ } l248: { position250, tokenIndex250 := position, tokenIndex - if buffer[position] != rune('e') { + if buffer[position] != rune('t') { goto l251 } position++ goto l250 l251: position, tokenIndex = position250, tokenIndex250 - if buffer[position] != rune('E') { - goto l239 + if buffer[position] != rune('T') { + goto l245 } position++ } l250: { position252, tokenIndex252 := position, tokenIndex - if buffer[position] != rune('n') { + if buffer[position] != rune('e') { goto l253 } position++ goto l252 l253: position, tokenIndex = position252, tokenIndex252 - if buffer[position] != rune('N') { - goto l239 + if buffer[position] != rune('E') { + goto l245 } position++ } l252: - { - position254, tokenIndex254 := position, tokenIndex - if buffer[position] != rune('t') { - goto l255 - } - position++ - goto l254 - l255: - position, tokenIndex = position254, tokenIndex254 - if buffer[position] != rune('T') { - goto l239 - } - position++ - } - l254: - { - position256, tokenIndex256 := position, tokenIndex - if buffer[position] != rune('r') { - goto l257 - } - position++ - goto l256 - l257: - position, tokenIndex = position256, tokenIndex256 - if buffer[position] != rune('R') { - goto l239 - } - position++ - } - l256: - { - position258, tokenIndex258 := position, tokenIndex - if buffer[position] != rune('y') { - goto l259 - } - position++ - goto l258 - l259: - position, tokenIndex = position258, tokenIndex258 - if buffer[position] != rune('Y') { - goto l239 - } - position++ - } - l258: - goto l150 - l239: - position, tokenIndex = position150, tokenIndex150 + goto l186 + l245: + position, tokenIndex = position186, tokenIndex186 if buffer[position] != rune('.') { - goto l260 + goto l254 } position++ { + position255, tokenIndex255 := position, tokenIndex + if buffer[position] != rune('q') { + goto l256 + } + position++ + goto l255 + l256: + position, tokenIndex = position255, tokenIndex255 + if buffer[position] != rune('Q') { + goto l254 + } + position++ + } + l255: + { + position257, tokenIndex257 := position, tokenIndex + if buffer[position] != rune('u') { + goto l258 + } + position++ + goto l257 + l258: + position, tokenIndex = position257, tokenIndex257 + if buffer[position] != rune('U') { + goto l254 + } + position++ + } + l257: + { + position259, tokenIndex259 := position, tokenIndex + if buffer[position] != rune('a') { + goto l260 + } + position++ + goto l259 + l260: + position, tokenIndex = position259, tokenIndex259 + if buffer[position] != rune('A') { + goto l254 + } + position++ + } + l259: + { position261, tokenIndex261 := position, tokenIndex - if buffer[position] != rune('s') { + if buffer[position] != rune('d') { goto l262 } position++ goto l261 l262: position, tokenIndex = position261, tokenIndex261 - if buffer[position] != rune('S') { - goto l260 + if buffer[position] != rune('D') { + goto l254 } position++ } l261: - { - position263, tokenIndex263 := position, tokenIndex - if buffer[position] != rune('i') { - goto l264 - } - position++ + goto l186 + l254: + position, tokenIndex = position186, tokenIndex186 + if buffer[position] != rune('.') { goto l263 - l264: - position, tokenIndex = position263, tokenIndex263 - if buffer[position] != rune('I') { - goto l260 + } + position++ + { + position264, tokenIndex264 := position, tokenIndex + if buffer[position] != rune('t') { + goto l265 + } + position++ + goto l264 + l265: + position, tokenIndex = position264, tokenIndex264 + if buffer[position] != rune('T') { + goto l263 } position++ } + l264: + { + position266, tokenIndex266 := position, tokenIndex + if buffer[position] != rune('c') { + goto l267 + } + position++ + goto l266 + l267: + position, tokenIndex = position266, tokenIndex266 + if buffer[position] != rune('C') { + goto l263 + } + position++ + } + l266: + goto l186 l263: - { - position265, tokenIndex265 := position, tokenIndex - if buffer[position] != rune('z') { - goto l266 - } - position++ - goto l265 - l266: - position, tokenIndex = position265, tokenIndex265 - if buffer[position] != rune('Z') { - goto l260 - } - position++ + position, tokenIndex = position186, tokenIndex186 + if buffer[position] != rune('.') { + goto l268 } - l265: + position++ { - position267, tokenIndex267 := position, tokenIndex - if buffer[position] != rune('e') { + position269, tokenIndex269 := position, tokenIndex + if buffer[position] != rune('l') { + goto l270 + } + position++ + goto l269 + l270: + position, tokenIndex = position269, tokenIndex269 + if buffer[position] != rune('L') { goto l268 } position++ - goto l267 - l268: - position, tokenIndex = position267, tokenIndex267 - if buffer[position] != rune('E') { - goto l260 - } - position++ } - l267: - goto l150 - l260: - position, tokenIndex = position150, tokenIndex150 - if buffer[position] != rune('.') { - goto l269 - } - position++ - { - position270, tokenIndex270 := position, tokenIndex - if buffer[position] != rune('t') { - goto l271 - } - position++ - goto l270 - l271: - position, tokenIndex = position270, tokenIndex270 - if buffer[position] != rune('T') { - goto l269 - } - position++ - } - l270: - { - position272, tokenIndex272 := position, tokenIndex - if buffer[position] != rune('y') { - goto l273 - } - position++ - goto l272 - l273: - position, tokenIndex = position272, tokenIndex272 - if buffer[position] != rune('Y') { - goto l269 - } - position++ - } - l272: - { - position274, tokenIndex274 := position, tokenIndex - if buffer[position] != rune('p') { - goto l275 - } - position++ - goto l274 - l275: - position, tokenIndex = position274, tokenIndex274 - if buffer[position] != rune('P') { - goto l269 - } - position++ - } - l274: - { - position276, tokenIndex276 := position, tokenIndex - if buffer[position] != rune('e') { - goto l277 - } - position++ - goto l276 - l277: - position, tokenIndex = position276, tokenIndex276 - if buffer[position] != rune('E') { - goto l269 - } - position++ - } - l276: - goto l150 l269: - position, tokenIndex = position150, tokenIndex150 - if buffer[position] != rune('.') { - goto l278 + { + position271, tokenIndex271 := position, tokenIndex + if buffer[position] != rune('o') { + goto l272 + } + position++ + goto l271 + l272: + position, tokenIndex = position271, tokenIndex271 + if buffer[position] != rune('O') { + goto l268 + } + position++ } - position++ + l271: + { + position273, tokenIndex273 := position, tokenIndex + if buffer[position] != rune('c') { + goto l274 + } + position++ + goto l273 + l274: + position, tokenIndex = position273, tokenIndex273 + if buffer[position] != rune('C') { + goto l268 + } + position++ + } + l273: + { + position275, tokenIndex275 := position, tokenIndex + if buffer[position] != rune('a') { + goto l276 + } + position++ + goto l275 + l276: + position, tokenIndex = position275, tokenIndex275 + if buffer[position] != rune('A') { + goto l268 + } + position++ + } + l275: + { + position277, tokenIndex277 := position, tokenIndex + if buffer[position] != rune('l') { + goto l278 + } + position++ + goto l277 + l278: + position, tokenIndex = position277, tokenIndex277 + if buffer[position] != rune('L') { + goto l268 + } + position++ + } + l277: { position279, tokenIndex279 := position, tokenIndex - if buffer[position] != rune('u') { + if buffer[position] != rune('e') { goto l280 } position++ goto l279 l280: position, tokenIndex = position279, tokenIndex279 - if buffer[position] != rune('U') { - goto l278 + if buffer[position] != rune('E') { + goto l268 } position++ } l279: { position281, tokenIndex281 := position, tokenIndex - if buffer[position] != rune('l') { + if buffer[position] != rune('n') { goto l282 } position++ goto l281 l282: position, tokenIndex = position281, tokenIndex281 - if buffer[position] != rune('L') { - goto l278 + if buffer[position] != rune('N') { + goto l268 } position++ } l281: { position283, tokenIndex283 := position, tokenIndex - if buffer[position] != rune('e') { + if buffer[position] != rune('t') { goto l284 } position++ goto l283 l284: position, tokenIndex = position283, tokenIndex283 - if buffer[position] != rune('E') { - goto l278 + if buffer[position] != rune('T') { + goto l268 } position++ } l283: { position285, tokenIndex285 := position, tokenIndex - if buffer[position] != rune('b') { + if buffer[position] != rune('r') { goto l286 } position++ goto l285 l286: position, tokenIndex = position285, tokenIndex285 - if buffer[position] != rune('B') { - goto l278 + if buffer[position] != rune('R') { + goto l268 } position++ } l285: - if buffer[position] != rune('1') { - goto l278 - } - position++ - if buffer[position] != rune('2') { - goto l278 - } - position++ - if buffer[position] != rune('8') { - goto l278 - } - position++ - goto l150 - l278: - position, tokenIndex = position150, tokenIndex150 - if buffer[position] != rune('.') { - goto l148 - } - position++ { position287, tokenIndex287 := position, tokenIndex - if buffer[position] != rune('s') { + if buffer[position] != rune('y') { goto l288 } position++ goto l287 l288: position, tokenIndex = position287, tokenIndex287 - if buffer[position] != rune('S') { - goto l148 + if buffer[position] != rune('Y') { + goto l268 } position++ } l287: - { - position289, tokenIndex289 := position, tokenIndex - if buffer[position] != rune('l') { - goto l290 - } - position++ + goto l186 + l268: + position, tokenIndex = position186, tokenIndex186 + if buffer[position] != rune('.') { goto l289 - l290: - position, tokenIndex = position289, tokenIndex289 - if buffer[position] != rune('L') { - goto l148 + } + position++ + { + position290, tokenIndex290 := position, tokenIndex + if buffer[position] != rune('s') { + goto l291 + } + position++ + goto l290 + l291: + position, tokenIndex = position290, tokenIndex290 + if buffer[position] != rune('S') { + goto l289 } position++ } - l289: + l290: { - position291, tokenIndex291 := position, tokenIndex + position292, tokenIndex292 := position, tokenIndex + if buffer[position] != rune('i') { + goto l293 + } + position++ + goto l292 + l293: + position, tokenIndex = position292, tokenIndex292 + if buffer[position] != rune('I') { + goto l289 + } + position++ + } + l292: + { + position294, tokenIndex294 := position, tokenIndex + if buffer[position] != rune('z') { + goto l295 + } + position++ + goto l294 + l295: + position, tokenIndex = position294, tokenIndex294 + if buffer[position] != rune('Z') { + goto l289 + } + position++ + } + l294: + { + position296, tokenIndex296 := position, tokenIndex if buffer[position] != rune('e') { - goto l292 + goto l297 } position++ - goto l291 - l292: - position, tokenIndex = position291, tokenIndex291 + goto l296 + l297: + position, tokenIndex = position296, tokenIndex296 if buffer[position] != rune('E') { - goto l148 + goto l289 } position++ } - l291: + l296: + goto l186 + l289: + position, tokenIndex = position186, tokenIndex186 + if buffer[position] != rune('.') { + goto l298 + } + position++ { - position293, tokenIndex293 := position, tokenIndex - if buffer[position] != rune('b') { - goto l294 + position299, tokenIndex299 := position, tokenIndex + if buffer[position] != rune('t') { + goto l300 } position++ - goto l293 - l294: - position, tokenIndex = position293, tokenIndex293 - if buffer[position] != rune('B') { - goto l148 + goto l299 + l300: + position, tokenIndex = position299, tokenIndex299 + if buffer[position] != rune('T') { + goto l298 } position++ } - l293: + l299: + { + position301, tokenIndex301 := position, tokenIndex + if buffer[position] != rune('y') { + goto l302 + } + position++ + goto l301 + l302: + position, tokenIndex = position301, tokenIndex301 + if buffer[position] != rune('Y') { + goto l298 + } + position++ + } + l301: + { + position303, tokenIndex303 := position, tokenIndex + if buffer[position] != rune('p') { + goto l304 + } + position++ + goto l303 + l304: + position, tokenIndex = position303, tokenIndex303 + if buffer[position] != rune('P') { + goto l298 + } + position++ + } + l303: + { + position305, tokenIndex305 := position, tokenIndex + if buffer[position] != rune('e') { + goto l306 + } + position++ + goto l305 + l306: + position, tokenIndex = position305, tokenIndex305 + if buffer[position] != rune('E') { + goto l298 + } + position++ + } + l305: + goto l186 + l298: + position, tokenIndex = position186, tokenIndex186 + if buffer[position] != rune('.') { + goto l307 + } + position++ + { + position308, tokenIndex308 := position, tokenIndex + if buffer[position] != rune('u') { + goto l309 + } + position++ + goto l308 + l309: + position, tokenIndex = position308, tokenIndex308 + if buffer[position] != rune('U') { + goto l307 + } + position++ + } + l308: + { + position310, tokenIndex310 := position, tokenIndex + if buffer[position] != rune('l') { + goto l311 + } + position++ + goto l310 + l311: + position, tokenIndex = position310, tokenIndex310 + if buffer[position] != rune('L') { + goto l307 + } + position++ + } + l310: + { + position312, tokenIndex312 := position, tokenIndex + if buffer[position] != rune('e') { + goto l313 + } + position++ + goto l312 + l313: + position, tokenIndex = position312, tokenIndex312 + if buffer[position] != rune('E') { + goto l307 + } + position++ + } + l312: + { + position314, tokenIndex314 := position, tokenIndex + if buffer[position] != rune('b') { + goto l315 + } + position++ + goto l314 + l315: + position, tokenIndex = position314, tokenIndex314 + if buffer[position] != rune('B') { + goto l307 + } + position++ + } + l314: if buffer[position] != rune('1') { - goto l148 + goto l307 } position++ if buffer[position] != rune('2') { - goto l148 + goto l307 } position++ if buffer[position] != rune('8') { - goto l148 - } - position++ - } - l150: - add(ruleLabelContainingDirectiveName, position149) - } - return true - l148: - position, tokenIndex = position148, tokenIndex148 - return false - }, - /* 14 SymbolArgs <- <(SymbolArg (WS? ',' WS? SymbolArg)*)> */ - func() bool { - position295, tokenIndex295 := position, tokenIndex - { - position296 := position - if !_rules[ruleSymbolArg]() { - goto l295 - } - l297: - { - position298, tokenIndex298 := position, tokenIndex - { - position299, tokenIndex299 := position, tokenIndex - if !_rules[ruleWS]() { - goto l299 - } - goto l300 - l299: - position, tokenIndex = position299, tokenIndex299 - } - l300: - if buffer[position] != rune(',') { - goto l298 - } - position++ - { - position301, tokenIndex301 := position, tokenIndex - if !_rules[ruleWS]() { - goto l301 - } - goto l302 - l301: - position, tokenIndex = position301, tokenIndex301 - } - l302: - if !_rules[ruleSymbolArg]() { - goto l298 - } - goto l297 - l298: - position, tokenIndex = position298, tokenIndex298 - } - add(ruleSymbolArgs, position296) - } - return true - l295: - position, tokenIndex = position295, tokenIndex295 - return false - }, - /* 15 SymbolArg <- <SymbolExpr> */ - func() bool { - position303, tokenIndex303 := position, tokenIndex - { - position304 := position - if !_rules[ruleSymbolExpr]() { - goto l303 - } - add(ruleSymbolArg, position304) - } - return true - l303: - position, tokenIndex = position303, tokenIndex303 - return false - }, - /* 16 SymbolExpr <- <(SymbolAtom (WS? SymbolOperator WS? SymbolExpr)?)> */ - func() bool { - position305, tokenIndex305 := position, tokenIndex - { - position306 := position - if !_rules[ruleSymbolAtom]() { - goto l305 - } - { - position307, tokenIndex307 := position, tokenIndex - { - position309, tokenIndex309 := position, tokenIndex - if !_rules[ruleWS]() { - goto l309 - } - goto l310 - l309: - position, tokenIndex = position309, tokenIndex309 - } - l310: - if !_rules[ruleSymbolOperator]() { goto l307 } - { - position311, tokenIndex311 := position, tokenIndex - if !_rules[ruleWS]() { - goto l311 - } - goto l312 - l311: - position, tokenIndex = position311, tokenIndex311 - } - l312: - if !_rules[ruleSymbolExpr]() { - goto l307 - } - goto l308 + position++ + goto l186 l307: - position, tokenIndex = position307, tokenIndex307 - } - l308: - add(ruleSymbolExpr, position306) - } - return true - l305: - position, tokenIndex = position305, tokenIndex305 - return false - }, - /* 17 SymbolAtom <- <(LocalLabelRef / Offset / SymbolType / (LocalSymbol TCMarker?) / (SymbolName Offset) / (SymbolName TCMarker?) / Dot / (OpenParen WS? SymbolExpr WS? CloseParen))> */ - func() bool { - position313, tokenIndex313 := position, tokenIndex - { - position314 := position - { - position315, tokenIndex315 := position, tokenIndex - if !_rules[ruleLocalLabelRef]() { + position, tokenIndex = position186, tokenIndex186 + if buffer[position] != rune('.') { + goto l184 + } + position++ + { + position316, tokenIndex316 := position, tokenIndex + if buffer[position] != rune('s') { + goto l317 + } + position++ goto l316 + l317: + position, tokenIndex = position316, tokenIndex316 + if buffer[position] != rune('S') { + goto l184 + } + position++ } - goto l315 l316: - position, tokenIndex = position315, tokenIndex315 - if !_rules[ruleOffset]() { - goto l317 - } - goto l315 - l317: - position, tokenIndex = position315, tokenIndex315 - if !_rules[ruleSymbolType]() { + { + position318, tokenIndex318 := position, tokenIndex + if buffer[position] != rune('l') { + goto l319 + } + position++ goto l318 + l319: + position, tokenIndex = position318, tokenIndex318 + if buffer[position] != rune('L') { + goto l184 + } + position++ } - goto l315 l318: - position, tokenIndex = position315, tokenIndex315 - if !_rules[ruleLocalSymbol]() { - goto l319 - } { position320, tokenIndex320 := position, tokenIndex - if !_rules[ruleTCMarker]() { - goto l320 + if buffer[position] != rune('e') { + goto l321 } - goto l321 - l320: + position++ + goto l320 + l321: position, tokenIndex = position320, tokenIndex320 + if buffer[position] != rune('E') { + goto l184 + } + position++ } - l321: - goto l315 - l319: - position, tokenIndex = position315, tokenIndex315 - if !_rules[ruleSymbolName]() { + l320: + { + position322, tokenIndex322 := position, tokenIndex + if buffer[position] != rune('b') { + goto l323 + } + position++ goto l322 + l323: + position, tokenIndex = position322, tokenIndex322 + if buffer[position] != rune('B') { + goto l184 + } + position++ } - if !_rules[ruleOffset]() { - goto l322 - } - goto l315 l322: - position, tokenIndex = position315, tokenIndex315 - if !_rules[ruleSymbolName]() { - goto l323 + if buffer[position] != rune('1') { + goto l184 } - { - position324, tokenIndex324 := position, tokenIndex - if !_rules[ruleTCMarker]() { - goto l324 - } - goto l325 - l324: - position, tokenIndex = position324, tokenIndex324 + position++ + if buffer[position] != rune('2') { + goto l184 } - l325: - goto l315 - l323: - position, tokenIndex = position315, tokenIndex315 - if !_rules[ruleDot]() { - goto l326 + position++ + if buffer[position] != rune('8') { + goto l184 } - goto l315 - l326: - position, tokenIndex = position315, tokenIndex315 - if !_rules[ruleOpenParen]() { - goto l313 - } - { - position327, tokenIndex327 := position, tokenIndex - if !_rules[ruleWS]() { - goto l327 - } - goto l328 - l327: - position, tokenIndex = position327, tokenIndex327 - } - l328: - if !_rules[ruleSymbolExpr]() { - goto l313 - } - { - position329, tokenIndex329 := position, tokenIndex - if !_rules[ruleWS]() { - goto l329 - } - goto l330 - l329: - position, tokenIndex = position329, tokenIndex329 - } - l330: - if !_rules[ruleCloseParen]() { - goto l313 - } + position++ } - l315: - add(ruleSymbolAtom, position314) + l186: + add(ruleLabelContainingDirectiveName, position185) } return true - l313: - position, tokenIndex = position313, tokenIndex313 + l184: + position, tokenIndex = position184, tokenIndex184 return false }, - /* 18 SymbolOperator <- <('+' / '-' / '|' / ('<' '<') / ('>' '>'))> */ + /* 16 SymbolArgs <- <(SymbolArg (WS? ',' WS? SymbolArg)*)> */ func() bool { - position331, tokenIndex331 := position, tokenIndex + position324, tokenIndex324 := position, tokenIndex { - position332 := position + position325 := position + if !_rules[ruleSymbolArg]() { + goto l324 + } + l326: { - position333, tokenIndex333 := position, tokenIndex - if buffer[position] != rune('+') { - goto l334 + position327, tokenIndex327 := position, tokenIndex + { + position328, tokenIndex328 := position, tokenIndex + if !_rules[ruleWS]() { + goto l328 + } + goto l329 + l328: + position, tokenIndex = position328, tokenIndex328 + } + l329: + if buffer[position] != rune(',') { + goto l327 } position++ - goto l333 - l334: - position, tokenIndex = position333, tokenIndex333 - if buffer[position] != rune('-') { - goto l335 + { + position330, tokenIndex330 := position, tokenIndex + if !_rules[ruleWS]() { + goto l330 + } + goto l331 + l330: + position, tokenIndex = position330, tokenIndex330 } - position++ - goto l333 - l335: - position, tokenIndex = position333, tokenIndex333 - if buffer[position] != rune('|') { + l331: + if !_rules[ruleSymbolArg]() { + goto l327 + } + goto l326 + l327: + position, tokenIndex = position327, tokenIndex327 + } + add(ruleSymbolArgs, position325) + } + return true + l324: + position, tokenIndex = position324, tokenIndex324 + return false + }, + /* 17 SymbolArg <- <SymbolExpr> */ + func() bool { + position332, tokenIndex332 := position, tokenIndex + { + position333 := position + if !_rules[ruleSymbolExpr]() { + goto l332 + } + add(ruleSymbolArg, position333) + } + return true + l332: + position, tokenIndex = position332, tokenIndex332 + return false + }, + /* 18 SymbolExpr <- <(SymbolAtom (WS? SymbolOperator WS? SymbolExpr)?)> */ + func() bool { + position334, tokenIndex334 := position, tokenIndex + { + position335 := position + if !_rules[ruleSymbolAtom]() { + goto l334 + } + { + position336, tokenIndex336 := position, tokenIndex + { + position338, tokenIndex338 := position, tokenIndex + if !_rules[ruleWS]() { + goto l338 + } + goto l339 + l338: + position, tokenIndex = position338, tokenIndex338 + } + l339: + if !_rules[ruleSymbolOperator]() { goto l336 } - position++ - goto l333 + { + position340, tokenIndex340 := position, tokenIndex + if !_rules[ruleWS]() { + goto l340 + } + goto l341 + l340: + position, tokenIndex = position340, tokenIndex340 + } + l341: + if !_rules[ruleSymbolExpr]() { + goto l336 + } + goto l337 l336: - position, tokenIndex = position333, tokenIndex333 - if buffer[position] != rune('<') { - goto l337 - } - position++ - if buffer[position] != rune('<') { - goto l337 - } - position++ - goto l333 - l337: - position, tokenIndex = position333, tokenIndex333 - if buffer[position] != rune('>') { - goto l331 - } - position++ - if buffer[position] != rune('>') { - goto l331 - } - position++ + position, tokenIndex = position336, tokenIndex336 } - l333: - add(ruleSymbolOperator, position332) + l337: + add(ruleSymbolExpr, position335) } return true - l331: - position, tokenIndex = position331, tokenIndex331 + l334: + position, tokenIndex = position334, tokenIndex334 return false }, - /* 19 OpenParen <- <'('> */ - func() bool { - position338, tokenIndex338 := position, tokenIndex - { - position339 := position - if buffer[position] != rune('(') { - goto l338 - } - position++ - add(ruleOpenParen, position339) - } - return true - l338: - position, tokenIndex = position338, tokenIndex338 - return false - }, - /* 20 CloseParen <- <')'> */ - func() bool { - position340, tokenIndex340 := position, tokenIndex - { - position341 := position - if buffer[position] != rune(')') { - goto l340 - } - position++ - add(ruleCloseParen, position341) - } - return true - l340: - position, tokenIndex = position340, tokenIndex340 - return false - }, - /* 21 SymbolType <- <(('@' / '%') (('f' 'u' 'n' 'c' 't' 'i' 'o' 'n') / ('o' 'b' 'j' 'e' 'c' 't')))> */ + /* 19 SymbolAtom <- <(LocalLabelRef / Offset / SymbolType / (LocalSymbol TCMarker?) / (SymbolName Offset) / (SymbolName TCMarker?) / Dot / (OpenParen WS? SymbolExpr WS? CloseParen))> */ func() bool { position342, tokenIndex342 := position, tokenIndex { position343 := position { position344, tokenIndex344 := position, tokenIndex - if buffer[position] != rune('@') { + if !_rules[ruleLocalLabelRef]() { goto l345 } - position++ goto l344 l345: position, tokenIndex = position344, tokenIndex344 - if buffer[position] != rune('%') { + if !_rules[ruleOffset]() { + goto l346 + } + goto l344 + l346: + position, tokenIndex = position344, tokenIndex344 + if !_rules[ruleSymbolType]() { + goto l347 + } + goto l344 + l347: + position, tokenIndex = position344, tokenIndex344 + if !_rules[ruleLocalSymbol]() { + goto l348 + } + { + position349, tokenIndex349 := position, tokenIndex + if !_rules[ruleTCMarker]() { + goto l349 + } + goto l350 + l349: + position, tokenIndex = position349, tokenIndex349 + } + l350: + goto l344 + l348: + position, tokenIndex = position344, tokenIndex344 + if !_rules[ruleSymbolName]() { + goto l351 + } + if !_rules[ruleOffset]() { + goto l351 + } + goto l344 + l351: + position, tokenIndex = position344, tokenIndex344 + if !_rules[ruleSymbolName]() { + goto l352 + } + { + position353, tokenIndex353 := position, tokenIndex + if !_rules[ruleTCMarker]() { + goto l353 + } + goto l354 + l353: + position, tokenIndex = position353, tokenIndex353 + } + l354: + goto l344 + l352: + position, tokenIndex = position344, tokenIndex344 + if !_rules[ruleDot]() { + goto l355 + } + goto l344 + l355: + position, tokenIndex = position344, tokenIndex344 + if !_rules[ruleOpenParen]() { goto l342 } - position++ + { + position356, tokenIndex356 := position, tokenIndex + if !_rules[ruleWS]() { + goto l356 + } + goto l357 + l356: + position, tokenIndex = position356, tokenIndex356 + } + l357: + if !_rules[ruleSymbolExpr]() { + goto l342 + } + { + position358, tokenIndex358 := position, tokenIndex + if !_rules[ruleWS]() { + goto l358 + } + goto l359 + l358: + position, tokenIndex = position358, tokenIndex358 + } + l359: + if !_rules[ruleCloseParen]() { + goto l342 + } } l344: - { - position346, tokenIndex346 := position, tokenIndex - if buffer[position] != rune('f') { - goto l347 - } - position++ - if buffer[position] != rune('u') { - goto l347 - } - position++ - if buffer[position] != rune('n') { - goto l347 - } - position++ - if buffer[position] != rune('c') { - goto l347 - } - position++ - if buffer[position] != rune('t') { - goto l347 - } - position++ - if buffer[position] != rune('i') { - goto l347 - } - position++ - if buffer[position] != rune('o') { - goto l347 - } - position++ - if buffer[position] != rune('n') { - goto l347 - } - position++ - goto l346 - l347: - position, tokenIndex = position346, tokenIndex346 - if buffer[position] != rune('o') { - goto l342 - } - position++ - if buffer[position] != rune('b') { - goto l342 - } - position++ - if buffer[position] != rune('j') { - goto l342 - } - position++ - if buffer[position] != rune('e') { - goto l342 - } - position++ - if buffer[position] != rune('c') { - goto l342 - } - position++ - if buffer[position] != rune('t') { - goto l342 - } - position++ - } - l346: - add(ruleSymbolType, position343) + add(ruleSymbolAtom, position343) } return true l342: position, tokenIndex = position342, tokenIndex342 return false }, - /* 22 Dot <- <'.'> */ + /* 20 SymbolOperator <- <('+' / '-' / '|' / ('<' '<') / ('>' '>'))> */ func() bool { - position348, tokenIndex348 := position, tokenIndex + position360, tokenIndex360 := position, tokenIndex { - position349 := position - if buffer[position] != rune('.') { - goto l348 - } - position++ - add(ruleDot, position349) - } - return true - l348: - position, tokenIndex = position348, tokenIndex348 - return false - }, - /* 23 TCMarker <- <('[' 'T' 'C' ']')> */ - func() bool { - position350, tokenIndex350 := position, tokenIndex - { - position351 := position - if buffer[position] != rune('[') { - goto l350 - } - position++ - if buffer[position] != rune('T') { - goto l350 - } - position++ - if buffer[position] != rune('C') { - goto l350 - } - position++ - if buffer[position] != rune(']') { - goto l350 - } - position++ - add(ruleTCMarker, position351) - } - return true - l350: - position, tokenIndex = position350, tokenIndex350 - return false - }, - /* 24 EscapedChar <- <('\\' .)> */ - func() bool { - position352, tokenIndex352 := position, tokenIndex - { - position353 := position - if buffer[position] != rune('\\') { - goto l352 - } - position++ - if !matchDot() { - goto l352 - } - add(ruleEscapedChar, position353) - } - return true - l352: - position, tokenIndex = position352, tokenIndex352 - return false - }, - /* 25 WS <- <(' ' / '\t')+> */ - func() bool { - position354, tokenIndex354 := position, tokenIndex - { - position355 := position + position361 := position { - position358, tokenIndex358 := position, tokenIndex - if buffer[position] != rune(' ') { - goto l359 + position362, tokenIndex362 := position, tokenIndex + if buffer[position] != rune('+') { + goto l363 } position++ - goto l358 - l359: - position, tokenIndex = position358, tokenIndex358 - if buffer[position] != rune('\t') { - goto l354 + goto l362 + l363: + position, tokenIndex = position362, tokenIndex362 + if buffer[position] != rune('-') { + goto l364 } position++ - } - l358: - l356: - { - position357, tokenIndex357 := position, tokenIndex - { - position360, tokenIndex360 := position, tokenIndex - if buffer[position] != rune(' ') { - goto l361 - } - position++ - goto l360 - l361: - position, tokenIndex = position360, tokenIndex360 - if buffer[position] != rune('\t') { - goto l357 - } - position++ - } - l360: - goto l356 - l357: - position, tokenIndex = position357, tokenIndex357 - } - add(ruleWS, position355) - } - return true - l354: - position, tokenIndex = position354, tokenIndex354 - return false - }, - /* 26 Comment <- <((('/' '/') / '#') (!'\n' .)*)> */ - func() bool { - position362, tokenIndex362 := position, tokenIndex - { - position363 := position - { - position364, tokenIndex364 := position, tokenIndex - if buffer[position] != rune('/') { + goto l362 + l364: + position, tokenIndex = position362, tokenIndex362 + if buffer[position] != rune('|') { goto l365 } position++ - if buffer[position] != rune('/') { - goto l365 - } - position++ - goto l364 + goto l362 l365: - position, tokenIndex = position364, tokenIndex364 - if buffer[position] != rune('#') { - goto l362 + position, tokenIndex = position362, tokenIndex362 + if buffer[position] != rune('<') { + goto l366 + } + position++ + if buffer[position] != rune('<') { + goto l366 + } + position++ + goto l362 + l366: + position, tokenIndex = position362, tokenIndex362 + if buffer[position] != rune('>') { + goto l360 + } + position++ + if buffer[position] != rune('>') { + goto l360 } position++ } - l364: - l366: - { - position367, tokenIndex367 := position, tokenIndex - { - position368, tokenIndex368 := position, tokenIndex - if buffer[position] != rune('\n') { - goto l368 - } - position++ - goto l367 - l368: - position, tokenIndex = position368, tokenIndex368 - } - if !matchDot() { - goto l367 - } - goto l366 - l367: - position, tokenIndex = position367, tokenIndex367 - } - add(ruleComment, position363) + l362: + add(ruleSymbolOperator, position361) } return true - l362: - position, tokenIndex = position362, tokenIndex362 + l360: + position, tokenIndex = position360, tokenIndex360 return false }, - /* 27 Label <- <((LocalSymbol / LocalLabel / SymbolName) ':')> */ + /* 21 OpenParen <- <'('> */ + func() bool { + position367, tokenIndex367 := position, tokenIndex + { + position368 := position + if buffer[position] != rune('(') { + goto l367 + } + position++ + add(ruleOpenParen, position368) + } + return true + l367: + position, tokenIndex = position367, tokenIndex367 + return false + }, + /* 22 CloseParen <- <')'> */ func() bool { position369, tokenIndex369 := position, tokenIndex { position370 := position - { - position371, tokenIndex371 := position, tokenIndex - if !_rules[ruleLocalSymbol]() { - goto l372 - } - goto l371 - l372: - position, tokenIndex = position371, tokenIndex371 - if !_rules[ruleLocalLabel]() { - goto l373 - } - goto l371 - l373: - position, tokenIndex = position371, tokenIndex371 - if !_rules[ruleSymbolName]() { - goto l369 - } - } - l371: - if buffer[position] != rune(':') { + if buffer[position] != rune(')') { goto l369 } position++ - add(ruleLabel, position370) + add(ruleCloseParen, position370) } return true l369: position, tokenIndex = position369, tokenIndex369 return false }, - /* 28 SymbolName <- <(([a-z] / [A-Z] / '.' / '_') ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]) / '$' / '_')*)> */ + /* 23 SymbolType <- <(('@' / '%') (('f' 'u' 'n' 'c' 't' 'i' 'o' 'n') / ('o' 'b' 'j' 'e' 'c' 't')))> */ func() bool { - position374, tokenIndex374 := position, tokenIndex + position371, tokenIndex371 := position, tokenIndex { - position375 := position + position372 := position { - position376, tokenIndex376 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l377 - } - position++ - goto l376 - l377: - position, tokenIndex = position376, tokenIndex376 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l378 - } - position++ - goto l376 - l378: - position, tokenIndex = position376, tokenIndex376 - if buffer[position] != rune('.') { - goto l379 - } - position++ - goto l376 - l379: - position, tokenIndex = position376, tokenIndex376 - if buffer[position] != rune('_') { + position373, tokenIndex373 := position, tokenIndex + if buffer[position] != rune('@') { goto l374 } position++ - } - l376: - l380: - { - position381, tokenIndex381 := position, tokenIndex - { - position382, tokenIndex382 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l383 - } - position++ - goto l382 - l383: - position, tokenIndex = position382, tokenIndex382 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l384 - } - position++ - goto l382 - l384: - position, tokenIndex = position382, tokenIndex382 - if buffer[position] != rune('.') { - goto l385 - } - position++ - goto l382 - l385: - position, tokenIndex = position382, tokenIndex382 - { - position387, tokenIndex387 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l388 - } - position++ - goto l387 - l388: - position, tokenIndex = position387, tokenIndex387 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l386 - } - position++ - } - l387: - goto l382 - l386: - position, tokenIndex = position382, tokenIndex382 - if buffer[position] != rune('$') { - goto l389 - } - position++ - goto l382 - l389: - position, tokenIndex = position382, tokenIndex382 - if buffer[position] != rune('_') { - goto l381 - } - position++ + goto l373 + l374: + position, tokenIndex = position373, tokenIndex373 + if buffer[position] != rune('%') { + goto l371 } - l382: - goto l380 - l381: - position, tokenIndex = position381, tokenIndex381 + position++ } - add(ruleSymbolName, position375) + l373: + { + position375, tokenIndex375 := position, tokenIndex + if buffer[position] != rune('f') { + goto l376 + } + position++ + if buffer[position] != rune('u') { + goto l376 + } + position++ + if buffer[position] != rune('n') { + goto l376 + } + position++ + if buffer[position] != rune('c') { + goto l376 + } + position++ + if buffer[position] != rune('t') { + goto l376 + } + position++ + if buffer[position] != rune('i') { + goto l376 + } + position++ + if buffer[position] != rune('o') { + goto l376 + } + position++ + if buffer[position] != rune('n') { + goto l376 + } + position++ + goto l375 + l376: + position, tokenIndex = position375, tokenIndex375 + if buffer[position] != rune('o') { + goto l371 + } + position++ + if buffer[position] != rune('b') { + goto l371 + } + position++ + if buffer[position] != rune('j') { + goto l371 + } + position++ + if buffer[position] != rune('e') { + goto l371 + } + position++ + if buffer[position] != rune('c') { + goto l371 + } + position++ + if buffer[position] != rune('t') { + goto l371 + } + position++ + } + l375: + add(ruleSymbolType, position372) } return true - l374: - position, tokenIndex = position374, tokenIndex374 + l371: + position, tokenIndex = position371, tokenIndex371 return false }, - /* 29 LocalSymbol <- <('.' 'L' ([a-z] / [A-Z] / ([a-z] / [A-Z]) / '.' / ([0-9] / [0-9]) / '$' / '_')+)> */ + /* 24 Dot <- <'.'> */ func() bool { - position390, tokenIndex390 := position, tokenIndex + position377, tokenIndex377 := position, tokenIndex { - position391 := position + position378 := position if buffer[position] != rune('.') { - goto l390 + goto l377 } position++ - if buffer[position] != rune('L') { - goto l390 + add(ruleDot, position378) + } + return true + l377: + position, tokenIndex = position377, tokenIndex377 + return false + }, + /* 25 TCMarker <- <('[' 'T' 'C' ']')> */ + func() bool { + position379, tokenIndex379 := position, tokenIndex + { + position380 := position + if buffer[position] != rune('[') { + goto l379 } position++ + if buffer[position] != rune('T') { + goto l379 + } + position++ + if buffer[position] != rune('C') { + goto l379 + } + position++ + if buffer[position] != rune(']') { + goto l379 + } + position++ + add(ruleTCMarker, position380) + } + return true + l379: + position, tokenIndex = position379, tokenIndex379 + return false + }, + /* 26 EscapedChar <- <('\\' .)> */ + func() bool { + position381, tokenIndex381 := position, tokenIndex + { + position382 := position + if buffer[position] != rune('\\') { + goto l381 + } + position++ + if !matchDot() { + goto l381 + } + add(ruleEscapedChar, position382) + } + return true + l381: + position, tokenIndex = position381, tokenIndex381 + return false + }, + /* 27 WS <- <(' ' / '\t')+> */ + func() bool { + position383, tokenIndex383 := position, tokenIndex + { + position384 := position { - position394, tokenIndex394 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l395 + position387, tokenIndex387 := position, tokenIndex + if buffer[position] != rune(' ') { + goto l388 } position++ - goto l394 - l395: - position, tokenIndex = position394, tokenIndex394 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l396 + goto l387 + l388: + position, tokenIndex = position387, tokenIndex387 + if buffer[position] != rune('\t') { + goto l383 } position++ - goto l394 - l396: - position, tokenIndex = position394, tokenIndex394 + } + l387: + l385: + { + position386, tokenIndex386 := position, tokenIndex { - position398, tokenIndex398 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l399 + position389, tokenIndex389 := position, tokenIndex + if buffer[position] != rune(' ') { + goto l390 } position++ - goto l398 - l399: - position, tokenIndex = position398, tokenIndex398 - if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l389 + l390: + position, tokenIndex = position389, tokenIndex389 + if buffer[position] != rune('\t') { + goto l386 + } + position++ + } + l389: + goto l385 + l386: + position, tokenIndex = position386, tokenIndex386 + } + add(ruleWS, position384) + } + return true + l383: + position, tokenIndex = position383, tokenIndex383 + return false + }, + /* 28 Comment <- <((('/' '/') / '#') (!'\n' .)*)> */ + func() bool { + position391, tokenIndex391 := position, tokenIndex + { + position392 := position + { + position393, tokenIndex393 := position, tokenIndex + if buffer[position] != rune('/') { + goto l394 + } + position++ + if buffer[position] != rune('/') { + goto l394 + } + position++ + goto l393 + l394: + position, tokenIndex = position393, tokenIndex393 + if buffer[position] != rune('#') { + goto l391 + } + position++ + } + l393: + l395: + { + position396, tokenIndex396 := position, tokenIndex + { + position397, tokenIndex397 := position, tokenIndex + if buffer[position] != rune('\n') { goto l397 } position++ + goto l396 + l397: + position, tokenIndex = position397, tokenIndex397 } - l398: - goto l394 - l397: - position, tokenIndex = position394, tokenIndex394 - if buffer[position] != rune('.') { - goto l400 + if !matchDot() { + goto l396 } - position++ - goto l394 - l400: - position, tokenIndex = position394, tokenIndex394 - { - position402, tokenIndex402 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l403 - } - position++ - goto l402 - l403: - position, tokenIndex = position402, tokenIndex402 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l401 - } - position++ + goto l395 + l396: + position, tokenIndex = position396, tokenIndex396 + } + add(ruleComment, position392) + } + return true + l391: + position, tokenIndex = position391, tokenIndex391 + return false + }, + /* 29 Label <- <((LocalSymbol / LocalLabel / SymbolName) ':')> */ + func() bool { + position398, tokenIndex398 := position, tokenIndex + { + position399 := position + { + position400, tokenIndex400 := position, tokenIndex + if !_rules[ruleLocalSymbol]() { + goto l401 } - l402: - goto l394 + goto l400 l401: - position, tokenIndex = position394, tokenIndex394 - if buffer[position] != rune('$') { - goto l404 + position, tokenIndex = position400, tokenIndex400 + if !_rules[ruleLocalLabel]() { + goto l402 + } + goto l400 + l402: + position, tokenIndex = position400, tokenIndex400 + if !_rules[ruleSymbolName]() { + goto l398 + } + } + l400: + if buffer[position] != rune(':') { + goto l398 + } + position++ + add(ruleLabel, position399) + } + return true + l398: + position, tokenIndex = position398, tokenIndex398 + return false + }, + /* 30 SymbolName <- <(([a-z] / [A-Z] / '.' / '_') ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]) / '$' / '_')*)> */ + func() bool { + position403, tokenIndex403 := position, tokenIndex + { + position404 := position + { + position405, tokenIndex405 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l406 } position++ - goto l394 - l404: - position, tokenIndex = position394, tokenIndex394 + goto l405 + l406: + position, tokenIndex = position405, tokenIndex405 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l407 + } + position++ + goto l405 + l407: + position, tokenIndex = position405, tokenIndex405 + if buffer[position] != rune('.') { + goto l408 + } + position++ + goto l405 + l408: + position, tokenIndex = position405, tokenIndex405 if buffer[position] != rune('_') { - goto l390 + goto l403 } position++ } - l394: - l392: + l405: + l409: { - position393, tokenIndex393 := position, tokenIndex + position410, tokenIndex410 := position, tokenIndex { - position405, tokenIndex405 := position, tokenIndex + position411, tokenIndex411 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l406 + goto l412 } position++ - goto l405 - l406: - position, tokenIndex = position405, tokenIndex405 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l407 - } - position++ - goto l405 - l407: - position, tokenIndex = position405, tokenIndex405 - { - position409, tokenIndex409 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l410 - } - position++ - goto l409 - l410: - position, tokenIndex = position409, tokenIndex409 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l408 - } - position++ - } - l409: - goto l405 - l408: - position, tokenIndex = position405, tokenIndex405 - if buffer[position] != rune('.') { - goto l411 - } - position++ - goto l405 - l411: - position, tokenIndex = position405, tokenIndex405 - { - position413, tokenIndex413 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l414 - } - position++ - goto l413 - l414: - position, tokenIndex = position413, tokenIndex413 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l412 - } - position++ - } - l413: - goto l405 + goto l411 l412: - position, tokenIndex = position405, tokenIndex405 - if buffer[position] != rune('$') { - goto l415 + position, tokenIndex = position411, tokenIndex411 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l413 } position++ - goto l405 + goto l411 + l413: + position, tokenIndex = position411, tokenIndex411 + if buffer[position] != rune('.') { + goto l414 + } + position++ + goto l411 + l414: + position, tokenIndex = position411, tokenIndex411 + { + position416, tokenIndex416 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l417 + } + position++ + goto l416 + l417: + position, tokenIndex = position416, tokenIndex416 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l415 + } + position++ + } + l416: + goto l411 l415: - position, tokenIndex = position405, tokenIndex405 + position, tokenIndex = position411, tokenIndex411 + if buffer[position] != rune('$') { + goto l418 + } + position++ + goto l411 + l418: + position, tokenIndex = position411, tokenIndex411 if buffer[position] != rune('_') { - goto l393 + goto l410 } position++ } - l405: - goto l392 - l393: - position, tokenIndex = position393, tokenIndex393 + l411: + goto l409 + l410: + position, tokenIndex = position410, tokenIndex410 } - add(ruleLocalSymbol, position391) + add(ruleSymbolName, position404) } return true - l390: - position, tokenIndex = position390, tokenIndex390 + l403: + position, tokenIndex = position403, tokenIndex403 return false }, - /* 30 LocalLabel <- <([0-9] ([0-9] / '$')*)> */ + /* 31 LocalSymbol <- <('.' 'L' ([a-z] / [A-Z] / ([a-z] / [A-Z]) / '.' / ([0-9] / [0-9]) / '$' / '_')+)> */ func() bool { - position416, tokenIndex416 := position, tokenIndex + position419, tokenIndex419 := position, tokenIndex { - position417 := position - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l416 + position420 := position + if buffer[position] != rune('.') { + goto l419 } position++ - l418: - { - position419, tokenIndex419 := position, tokenIndex - { - position420, tokenIndex420 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l421 - } - position++ - goto l420 - l421: - position, tokenIndex = position420, tokenIndex420 - if buffer[position] != rune('$') { - goto l419 - } - position++ - } - l420: - goto l418 - l419: - position, tokenIndex = position419, tokenIndex419 - } - add(ruleLocalLabel, position417) - } - return true - l416: - position, tokenIndex = position416, tokenIndex416 - return false - }, - /* 31 LocalLabelRef <- <([0-9] ([0-9] / '$')* ('b' / 'f'))> */ - func() bool { - position422, tokenIndex422 := position, tokenIndex - { - position423 := position - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l422 + if buffer[position] != rune('L') { + goto l419 } position++ - l424: { - position425, tokenIndex425 := position, tokenIndex - { - position426, tokenIndex426 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l427 - } - position++ - goto l426 - l427: - position, tokenIndex = position426, tokenIndex426 - if buffer[position] != rune('$') { - goto l425 - } - position++ + position423, tokenIndex423 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l424 } - l426: - goto l424 + position++ + goto l423 + l424: + position, tokenIndex = position423, tokenIndex423 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l425 + } + position++ + goto l423 l425: - position, tokenIndex = position425, tokenIndex425 - } - { - position428, tokenIndex428 := position, tokenIndex - if buffer[position] != rune('b') { + position, tokenIndex = position423, tokenIndex423 + { + position427, tokenIndex427 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l428 + } + position++ + goto l427 + l428: + position, tokenIndex = position427, tokenIndex427 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l426 + } + position++ + } + l427: + goto l423 + l426: + position, tokenIndex = position423, tokenIndex423 + if buffer[position] != rune('.') { goto l429 } position++ - goto l428 + goto l423 l429: - position, tokenIndex = position428, tokenIndex428 - if buffer[position] != rune('f') { - goto l422 + position, tokenIndex = position423, tokenIndex423 + { + position431, tokenIndex431 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l432 + } + position++ + goto l431 + l432: + position, tokenIndex = position431, tokenIndex431 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l430 + } + position++ } - position++ - } - l428: - add(ruleLocalLabelRef, position423) - } - return true - l422: - position, tokenIndex = position422, tokenIndex422 - return false - }, - /* 32 InstructionPrefix <- <(('n' / 'N') ('o' / 'O') ('t' / 'T') ('r' / 'R') ('a' / 'A') ('c' / 'C') ('k' / 'K'))> */ - func() bool { - position430, tokenIndex430 := position, tokenIndex - { - position431 := position - { - position432, tokenIndex432 := position, tokenIndex - if buffer[position] != rune('n') { + l431: + goto l423 + l430: + position, tokenIndex = position423, tokenIndex423 + if buffer[position] != rune('$') { goto l433 } position++ - goto l432 + goto l423 l433: - position, tokenIndex = position432, tokenIndex432 - if buffer[position] != rune('N') { - goto l430 + position, tokenIndex = position423, tokenIndex423 + if buffer[position] != rune('_') { + goto l419 } position++ } - l432: + l423: + l421: { - position434, tokenIndex434 := position, tokenIndex - if buffer[position] != rune('o') { - goto l435 + position422, tokenIndex422 := position, tokenIndex + { + position434, tokenIndex434 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l435 + } + position++ + goto l434 + l435: + position, tokenIndex = position434, tokenIndex434 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l436 + } + position++ + goto l434 + l436: + position, tokenIndex = position434, tokenIndex434 + { + position438, tokenIndex438 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l439 + } + position++ + goto l438 + l439: + position, tokenIndex = position438, tokenIndex438 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l437 + } + position++ + } + l438: + goto l434 + l437: + position, tokenIndex = position434, tokenIndex434 + if buffer[position] != rune('.') { + goto l440 + } + position++ + goto l434 + l440: + position, tokenIndex = position434, tokenIndex434 + { + position442, tokenIndex442 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l443 + } + position++ + goto l442 + l443: + position, tokenIndex = position442, tokenIndex442 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l441 + } + position++ + } + l442: + goto l434 + l441: + position, tokenIndex = position434, tokenIndex434 + if buffer[position] != rune('$') { + goto l444 + } + position++ + goto l434 + l444: + position, tokenIndex = position434, tokenIndex434 + if buffer[position] != rune('_') { + goto l422 + } + position++ } - position++ - goto l434 - l435: - position, tokenIndex = position434, tokenIndex434 - if buffer[position] != rune('O') { - goto l430 - } - position++ + l434: + goto l421 + l422: + position, tokenIndex = position422, tokenIndex422 } - l434: - { - position436, tokenIndex436 := position, tokenIndex - if buffer[position] != rune('t') { - goto l437 - } - position++ - goto l436 - l437: - position, tokenIndex = position436, tokenIndex436 - if buffer[position] != rune('T') { - goto l430 - } - position++ - } - l436: - { - position438, tokenIndex438 := position, tokenIndex - if buffer[position] != rune('r') { - goto l439 - } - position++ - goto l438 - l439: - position, tokenIndex = position438, tokenIndex438 - if buffer[position] != rune('R') { - goto l430 - } - position++ - } - l438: - { - position440, tokenIndex440 := position, tokenIndex - if buffer[position] != rune('a') { - goto l441 - } - position++ - goto l440 - l441: - position, tokenIndex = position440, tokenIndex440 - if buffer[position] != rune('A') { - goto l430 - } - position++ - } - l440: - { - position442, tokenIndex442 := position, tokenIndex - if buffer[position] != rune('c') { - goto l443 - } - position++ - goto l442 - l443: - position, tokenIndex = position442, tokenIndex442 - if buffer[position] != rune('C') { - goto l430 - } - position++ - } - l442: - { - position444, tokenIndex444 := position, tokenIndex - if buffer[position] != rune('k') { - goto l445 - } - position++ - goto l444 - l445: - position, tokenIndex = position444, tokenIndex444 - if buffer[position] != rune('K') { - goto l430 - } - position++ - } - l444: - add(ruleInstructionPrefix, position431) + add(ruleLocalSymbol, position420) } return true - l430: - position, tokenIndex = position430, tokenIndex430 + l419: + position, tokenIndex = position419, tokenIndex419 return false }, - /* 33 Instruction <- <((InstructionPrefix WS)? InstructionName (WS InstructionArg (WS? ',' WS? InstructionArg)*)?)> */ + /* 32 LocalLabel <- <([0-9] ([0-9] / '$')*)> */ func() bool { - position446, tokenIndex446 := position, tokenIndex + position445, tokenIndex445 := position, tokenIndex { - position447 := position + position446 := position + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l445 + } + position++ + l447: { position448, tokenIndex448 := position, tokenIndex - if !_rules[ruleInstructionPrefix]() { - goto l448 + { + position449, tokenIndex449 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l450 + } + position++ + goto l449 + l450: + position, tokenIndex = position449, tokenIndex449 + if buffer[position] != rune('$') { + goto l448 + } + position++ } - if !_rules[ruleWS]() { - goto l448 - } - goto l449 + l449: + goto l447 l448: position, tokenIndex = position448, tokenIndex448 } - l449: - if !_rules[ruleInstructionName]() { - goto l446 - } - { - position450, tokenIndex450 := position, tokenIndex - if !_rules[ruleWS]() { - goto l450 - } - if !_rules[ruleInstructionArg]() { - goto l450 - } - l452: - { - position453, tokenIndex453 := position, tokenIndex - { - position454, tokenIndex454 := position, tokenIndex - if !_rules[ruleWS]() { - goto l454 - } - goto l455 - l454: - position, tokenIndex = position454, tokenIndex454 - } - l455: - if buffer[position] != rune(',') { - goto l453 - } - position++ - { - position456, tokenIndex456 := position, tokenIndex - if !_rules[ruleWS]() { - goto l456 - } - goto l457 - l456: - position, tokenIndex = position456, tokenIndex456 - } - l457: - if !_rules[ruleInstructionArg]() { - goto l453 - } - goto l452 - l453: - position, tokenIndex = position453, tokenIndex453 - } - goto l451 - l450: - position, tokenIndex = position450, tokenIndex450 - } - l451: - add(ruleInstruction, position447) + add(ruleLocalLabel, position446) } return true - l446: - position, tokenIndex = position446, tokenIndex446 + l445: + position, tokenIndex = position445, tokenIndex445 return false }, - /* 34 InstructionName <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]))* ('.' / '+' / '-')?)> */ + /* 33 LocalLabelRef <- <([0-9] ([0-9] / '$')* ('b' / 'f'))> */ func() bool { - position458, tokenIndex458 := position, tokenIndex + position451, tokenIndex451 := position, tokenIndex { - position459 := position + position452 := position + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l451 + } + position++ + l453: { - position460, tokenIndex460 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l461 + position454, tokenIndex454 := position, tokenIndex + { + position455, tokenIndex455 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l456 + } + position++ + goto l455 + l456: + position, tokenIndex = position455, tokenIndex455 + if buffer[position] != rune('$') { + goto l454 + } + position++ } - position++ - goto l460 - l461: - position, tokenIndex = position460, tokenIndex460 - if c := buffer[position]; c < rune('A') || c > rune('Z') { + l455: + goto l453 + l454: + position, tokenIndex = position454, tokenIndex454 + } + { + position457, tokenIndex457 := position, tokenIndex + if buffer[position] != rune('b') { goto l458 } position++ - } - l460: - l462: - { - position463, tokenIndex463 := position, tokenIndex - { - position464, tokenIndex464 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l465 - } - position++ - goto l464 - l465: - position, tokenIndex = position464, tokenIndex464 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l466 - } - position++ - goto l464 - l466: - position, tokenIndex = position464, tokenIndex464 - if buffer[position] != rune('.') { - goto l467 - } - position++ - goto l464 - l467: - position, tokenIndex = position464, tokenIndex464 - { - position468, tokenIndex468 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l469 - } - position++ - goto l468 - l469: - position, tokenIndex = position468, tokenIndex468 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l463 - } - position++ - } - l468: + goto l457 + l458: + position, tokenIndex = position457, tokenIndex457 + if buffer[position] != rune('f') { + goto l451 } - l464: - goto l462 - l463: - position, tokenIndex = position463, tokenIndex463 + position++ } - { - position470, tokenIndex470 := position, tokenIndex - { - position472, tokenIndex472 := position, tokenIndex - if buffer[position] != rune('.') { - goto l473 - } - position++ - goto l472 - l473: - position, tokenIndex = position472, tokenIndex472 - if buffer[position] != rune('+') { - goto l474 - } - position++ - goto l472 - l474: - position, tokenIndex = position472, tokenIndex472 - if buffer[position] != rune('-') { - goto l470 - } - position++ - } - l472: - goto l471 - l470: - position, tokenIndex = position470, tokenIndex470 - } - l471: - add(ruleInstructionName, position459) + l457: + add(ruleLocalLabelRef, position452) } return true - l458: - position, tokenIndex = position458, tokenIndex458 + l451: + position, tokenIndex = position451, tokenIndex451 return false }, - /* 35 InstructionArg <- <(IndirectionIndicator? (ARMConstantTweak / RegisterOrConstant / LocalLabelRef / TOCRefHigh / TOCRefLow / GOTLocation / GOTAddress / GOTSymbolOffset / MemoryRef) AVX512Token*)> */ + /* 34 InstructionPrefix <- <(('n' / 'N') ('o' / 'O') ('t' / 'T') ('r' / 'R') ('a' / 'A') ('c' / 'C') ('k' / 'K'))> */ + func() bool { + position459, tokenIndex459 := position, tokenIndex + { + position460 := position + { + position461, tokenIndex461 := position, tokenIndex + if buffer[position] != rune('n') { + goto l462 + } + position++ + goto l461 + l462: + position, tokenIndex = position461, tokenIndex461 + if buffer[position] != rune('N') { + goto l459 + } + position++ + } + l461: + { + position463, tokenIndex463 := position, tokenIndex + if buffer[position] != rune('o') { + goto l464 + } + position++ + goto l463 + l464: + position, tokenIndex = position463, tokenIndex463 + if buffer[position] != rune('O') { + goto l459 + } + position++ + } + l463: + { + position465, tokenIndex465 := position, tokenIndex + if buffer[position] != rune('t') { + goto l466 + } + position++ + goto l465 + l466: + position, tokenIndex = position465, tokenIndex465 + if buffer[position] != rune('T') { + goto l459 + } + position++ + } + l465: + { + position467, tokenIndex467 := position, tokenIndex + if buffer[position] != rune('r') { + goto l468 + } + position++ + goto l467 + l468: + position, tokenIndex = position467, tokenIndex467 + if buffer[position] != rune('R') { + goto l459 + } + position++ + } + l467: + { + position469, tokenIndex469 := position, tokenIndex + if buffer[position] != rune('a') { + goto l470 + } + position++ + goto l469 + l470: + position, tokenIndex = position469, tokenIndex469 + if buffer[position] != rune('A') { + goto l459 + } + position++ + } + l469: + { + position471, tokenIndex471 := position, tokenIndex + if buffer[position] != rune('c') { + goto l472 + } + position++ + goto l471 + l472: + position, tokenIndex = position471, tokenIndex471 + if buffer[position] != rune('C') { + goto l459 + } + position++ + } + l471: + { + position473, tokenIndex473 := position, tokenIndex + if buffer[position] != rune('k') { + goto l474 + } + position++ + goto l473 + l474: + position, tokenIndex = position473, tokenIndex473 + if buffer[position] != rune('K') { + goto l459 + } + position++ + } + l473: + add(ruleInstructionPrefix, position460) + } + return true + l459: + position, tokenIndex = position459, tokenIndex459 + return false + }, + /* 35 Instruction <- <((InstructionPrefix WS)? InstructionName (WS InstructionArg (WS? ',' WS? InstructionArg)*)?)> */ func() bool { position475, tokenIndex475 := position, tokenIndex { position476 := position { position477, tokenIndex477 := position, tokenIndex - if !_rules[ruleIndirectionIndicator]() { + if !_rules[ruleInstructionPrefix]() { + goto l477 + } + if !_rules[ruleWS]() { goto l477 } goto l478 @@ -3840,1797 +3879,1775 @@ position, tokenIndex = position477, tokenIndex477 } l478: + if !_rules[ruleInstructionName]() { + goto l475 + } { position479, tokenIndex479 := position, tokenIndex - if !_rules[ruleARMConstantTweak]() { - goto l480 + if !_rules[ruleWS]() { + goto l479 } - goto l479 - l480: - position, tokenIndex = position479, tokenIndex479 - if !_rules[ruleRegisterOrConstant]() { - goto l481 + if !_rules[ruleInstructionArg]() { + goto l479 } - goto l479 l481: - position, tokenIndex = position479, tokenIndex479 - if !_rules[ruleLocalLabelRef]() { - goto l482 + { + position482, tokenIndex482 := position, tokenIndex + { + position483, tokenIndex483 := position, tokenIndex + if !_rules[ruleWS]() { + goto l483 + } + goto l484 + l483: + position, tokenIndex = position483, tokenIndex483 + } + l484: + if buffer[position] != rune(',') { + goto l482 + } + position++ + { + position485, tokenIndex485 := position, tokenIndex + if !_rules[ruleWS]() { + goto l485 + } + goto l486 + l485: + position, tokenIndex = position485, tokenIndex485 + } + l486: + if !_rules[ruleInstructionArg]() { + goto l482 + } + goto l481 + l482: + position, tokenIndex = position482, tokenIndex482 } - goto l479 - l482: + goto l480 + l479: position, tokenIndex = position479, tokenIndex479 - if !_rules[ruleTOCRefHigh]() { - goto l483 - } - goto l479 - l483: - position, tokenIndex = position479, tokenIndex479 - if !_rules[ruleTOCRefLow]() { - goto l484 - } - goto l479 - l484: - position, tokenIndex = position479, tokenIndex479 - if !_rules[ruleGOTLocation]() { - goto l485 - } - goto l479 - l485: - position, tokenIndex = position479, tokenIndex479 - if !_rules[ruleGOTAddress]() { - goto l486 - } - goto l479 - l486: - position, tokenIndex = position479, tokenIndex479 - if !_rules[ruleGOTSymbolOffset]() { - goto l487 - } - goto l479 - l487: - position, tokenIndex = position479, tokenIndex479 - if !_rules[ruleMemoryRef]() { - goto l475 - } } - l479: - l488: - { - position489, tokenIndex489 := position, tokenIndex - if !_rules[ruleAVX512Token]() { - goto l489 - } - goto l488 - l489: - position, tokenIndex = position489, tokenIndex489 - } - add(ruleInstructionArg, position476) + l480: + add(ruleInstruction, position476) } return true l475: position, tokenIndex = position475, tokenIndex475 return false }, - /* 36 GOTLocation <- <('$' '_' 'G' 'L' 'O' 'B' 'A' 'L' '_' 'O' 'F' 'F' 'S' 'E' 'T' '_' 'T' 'A' 'B' 'L' 'E' '_' '-' LocalSymbol)> */ + /* 36 InstructionName <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]))* ('.' / '+' / '-')?)> */ func() bool { - position490, tokenIndex490 := position, tokenIndex + position487, tokenIndex487 := position, tokenIndex { - position491 := position - if buffer[position] != rune('$') { - goto l490 - } - position++ - if buffer[position] != rune('_') { - goto l490 - } - position++ - if buffer[position] != rune('G') { - goto l490 - } - position++ - if buffer[position] != rune('L') { - goto l490 - } - position++ - if buffer[position] != rune('O') { - goto l490 - } - position++ - if buffer[position] != rune('B') { - goto l490 - } - position++ - if buffer[position] != rune('A') { - goto l490 - } - position++ - if buffer[position] != rune('L') { - goto l490 - } - position++ - if buffer[position] != rune('_') { - goto l490 - } - position++ - if buffer[position] != rune('O') { - goto l490 - } - position++ - if buffer[position] != rune('F') { - goto l490 - } - position++ - if buffer[position] != rune('F') { - goto l490 - } - position++ - if buffer[position] != rune('S') { - goto l490 - } - position++ - if buffer[position] != rune('E') { - goto l490 - } - position++ - if buffer[position] != rune('T') { - goto l490 - } - position++ - if buffer[position] != rune('_') { - goto l490 - } - position++ - if buffer[position] != rune('T') { - goto l490 - } - position++ - if buffer[position] != rune('A') { - goto l490 - } - position++ - if buffer[position] != rune('B') { - goto l490 - } - position++ - if buffer[position] != rune('L') { - goto l490 - } - position++ - if buffer[position] != rune('E') { - goto l490 - } - position++ - if buffer[position] != rune('_') { - goto l490 - } - position++ - if buffer[position] != rune('-') { - goto l490 - } - position++ - if !_rules[ruleLocalSymbol]() { - goto l490 - } - add(ruleGOTLocation, position491) - } - return true - l490: - position, tokenIndex = position490, tokenIndex490 - return false - }, - /* 37 GOTAddress <- <('_' 'G' 'L' 'O' 'B' 'A' 'L' '_' 'O' 'F' 'F' 'S' 'E' 'T' '_' 'T' 'A' 'B' 'L' 'E' '_' '(' '%' 'r' 'i' 'p' ')')> */ - func() bool { - position492, tokenIndex492 := position, tokenIndex - { - position493 := position - if buffer[position] != rune('_') { - goto l492 - } - position++ - if buffer[position] != rune('G') { - goto l492 - } - position++ - if buffer[position] != rune('L') { - goto l492 - } - position++ - if buffer[position] != rune('O') { - goto l492 - } - position++ - if buffer[position] != rune('B') { - goto l492 - } - position++ - if buffer[position] != rune('A') { - goto l492 - } - position++ - if buffer[position] != rune('L') { - goto l492 - } - position++ - if buffer[position] != rune('_') { - goto l492 - } - position++ - if buffer[position] != rune('O') { - goto l492 - } - position++ - if buffer[position] != rune('F') { - goto l492 - } - position++ - if buffer[position] != rune('F') { - goto l492 - } - position++ - if buffer[position] != rune('S') { - goto l492 - } - position++ - if buffer[position] != rune('E') { - goto l492 - } - position++ - if buffer[position] != rune('T') { - goto l492 - } - position++ - if buffer[position] != rune('_') { - goto l492 - } - position++ - if buffer[position] != rune('T') { - goto l492 - } - position++ - if buffer[position] != rune('A') { - goto l492 - } - position++ - if buffer[position] != rune('B') { - goto l492 - } - position++ - if buffer[position] != rune('L') { - goto l492 - } - position++ - if buffer[position] != rune('E') { - goto l492 - } - position++ - if buffer[position] != rune('_') { - goto l492 - } - position++ - if buffer[position] != rune('(') { - goto l492 - } - position++ - if buffer[position] != rune('%') { - goto l492 - } - position++ - if buffer[position] != rune('r') { - goto l492 - } - position++ - if buffer[position] != rune('i') { - goto l492 - } - position++ - if buffer[position] != rune('p') { - goto l492 - } - position++ - if buffer[position] != rune(')') { - goto l492 - } - position++ - add(ruleGOTAddress, position493) - } - return true - l492: - position, tokenIndex = position492, tokenIndex492 - return false - }, - /* 38 GOTSymbolOffset <- <(('$' SymbolName ('@' 'G' 'O' 'T') ('O' 'F' 'F')?) / (':' ('g' / 'G') ('o' / 'O') ('t' / 'T') ':' SymbolName))> */ - func() bool { - position494, tokenIndex494 := position, tokenIndex - { - position495 := position + position488 := position { - position496, tokenIndex496 := position, tokenIndex - if buffer[position] != rune('$') { - goto l497 + position489, tokenIndex489 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l490 } position++ - if !_rules[ruleSymbolName]() { - goto l497 - } - if buffer[position] != rune('@') { - goto l497 + goto l489 + l490: + position, tokenIndex = position489, tokenIndex489 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l487 } position++ - if buffer[position] != rune('G') { - goto l497 - } - position++ - if buffer[position] != rune('O') { - goto l497 - } - position++ - if buffer[position] != rune('T') { - goto l497 - } - position++ + } + l489: + l491: + { + position492, tokenIndex492 := position, tokenIndex { - position498, tokenIndex498 := position, tokenIndex - if buffer[position] != rune('O') { - goto l498 - } - position++ - if buffer[position] != rune('F') { - goto l498 - } - position++ - if buffer[position] != rune('F') { - goto l498 - } - position++ - goto l499 - l498: - position, tokenIndex = position498, tokenIndex498 - } - l499: - goto l496 - l497: - position, tokenIndex = position496, tokenIndex496 - if buffer[position] != rune(':') { - goto l494 - } - position++ - { - position500, tokenIndex500 := position, tokenIndex - if buffer[position] != rune('g') { - goto l501 - } - position++ - goto l500 - l501: - position, tokenIndex = position500, tokenIndex500 - if buffer[position] != rune('G') { + position493, tokenIndex493 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { goto l494 } position++ + goto l493 + l494: + position, tokenIndex = position493, tokenIndex493 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l495 + } + position++ + goto l493 + l495: + position, tokenIndex = position493, tokenIndex493 + if buffer[position] != rune('.') { + goto l496 + } + position++ + goto l493 + l496: + position, tokenIndex = position493, tokenIndex493 + { + position497, tokenIndex497 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l498 + } + position++ + goto l497 + l498: + position, tokenIndex = position497, tokenIndex497 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l492 + } + position++ + } + l497: } - l500: + l493: + goto l491 + l492: + position, tokenIndex = position492, tokenIndex492 + } + { + position499, tokenIndex499 := position, tokenIndex { - position502, tokenIndex502 := position, tokenIndex - if buffer[position] != rune('o') { + position501, tokenIndex501 := position, tokenIndex + if buffer[position] != rune('.') { + goto l502 + } + position++ + goto l501 + l502: + position, tokenIndex = position501, tokenIndex501 + if buffer[position] != rune('+') { goto l503 } position++ - goto l502 + goto l501 l503: - position, tokenIndex = position502, tokenIndex502 - if buffer[position] != rune('O') { - goto l494 + position, tokenIndex = position501, tokenIndex501 + if buffer[position] != rune('-') { + goto l499 } position++ } - l502: - { - position504, tokenIndex504 := position, tokenIndex - if buffer[position] != rune('t') { - goto l505 - } - position++ + l501: + goto l500 + l499: + position, tokenIndex = position499, tokenIndex499 + } + l500: + add(ruleInstructionName, position488) + } + return true + l487: + position, tokenIndex = position487, tokenIndex487 + return false + }, + /* 37 InstructionArg <- <(IndirectionIndicator? (ARMConstantTweak / RegisterOrConstant / LocalLabelRef / TOCRefHigh / TOCRefLow / GOTLocation / GOTAddress / GOTSymbolOffset / MemoryRef) AVX512Token*)> */ + func() bool { + position504, tokenIndex504 := position, tokenIndex + { + position505 := position + { + position506, tokenIndex506 := position, tokenIndex + if !_rules[ruleIndirectionIndicator]() { + goto l506 + } + goto l507 + l506: + position, tokenIndex = position506, tokenIndex506 + } + l507: + { + position508, tokenIndex508 := position, tokenIndex + if !_rules[ruleARMConstantTweak]() { + goto l509 + } + goto l508 + l509: + position, tokenIndex = position508, tokenIndex508 + if !_rules[ruleRegisterOrConstant]() { + goto l510 + } + goto l508 + l510: + position, tokenIndex = position508, tokenIndex508 + if !_rules[ruleLocalLabelRef]() { + goto l511 + } + goto l508 + l511: + position, tokenIndex = position508, tokenIndex508 + if !_rules[ruleTOCRefHigh]() { + goto l512 + } + goto l508 + l512: + position, tokenIndex = position508, tokenIndex508 + if !_rules[ruleTOCRefLow]() { + goto l513 + } + goto l508 + l513: + position, tokenIndex = position508, tokenIndex508 + if !_rules[ruleGOTLocation]() { + goto l514 + } + goto l508 + l514: + position, tokenIndex = position508, tokenIndex508 + if !_rules[ruleGOTAddress]() { + goto l515 + } + goto l508 + l515: + position, tokenIndex = position508, tokenIndex508 + if !_rules[ruleGOTSymbolOffset]() { + goto l516 + } + goto l508 + l516: + position, tokenIndex = position508, tokenIndex508 + if !_rules[ruleMemoryRef]() { goto l504 - l505: - position, tokenIndex = position504, tokenIndex504 - if buffer[position] != rune('T') { - goto l494 - } - position++ } - l504: - if buffer[position] != rune(':') { - goto l494 + } + l508: + l517: + { + position518, tokenIndex518 := position, tokenIndex + if !_rules[ruleAVX512Token]() { + goto l518 + } + goto l517 + l518: + position, tokenIndex = position518, tokenIndex518 + } + add(ruleInstructionArg, position505) + } + return true + l504: + position, tokenIndex = position504, tokenIndex504 + return false + }, + /* 38 GOTLocation <- <('$' '_' 'G' 'L' 'O' 'B' 'A' 'L' '_' 'O' 'F' 'F' 'S' 'E' 'T' '_' 'T' 'A' 'B' 'L' 'E' '_' '-' LocalSymbol)> */ + func() bool { + position519, tokenIndex519 := position, tokenIndex + { + position520 := position + if buffer[position] != rune('$') { + goto l519 + } + position++ + if buffer[position] != rune('_') { + goto l519 + } + position++ + if buffer[position] != rune('G') { + goto l519 + } + position++ + if buffer[position] != rune('L') { + goto l519 + } + position++ + if buffer[position] != rune('O') { + goto l519 + } + position++ + if buffer[position] != rune('B') { + goto l519 + } + position++ + if buffer[position] != rune('A') { + goto l519 + } + position++ + if buffer[position] != rune('L') { + goto l519 + } + position++ + if buffer[position] != rune('_') { + goto l519 + } + position++ + if buffer[position] != rune('O') { + goto l519 + } + position++ + if buffer[position] != rune('F') { + goto l519 + } + position++ + if buffer[position] != rune('F') { + goto l519 + } + position++ + if buffer[position] != rune('S') { + goto l519 + } + position++ + if buffer[position] != rune('E') { + goto l519 + } + position++ + if buffer[position] != rune('T') { + goto l519 + } + position++ + if buffer[position] != rune('_') { + goto l519 + } + position++ + if buffer[position] != rune('T') { + goto l519 + } + position++ + if buffer[position] != rune('A') { + goto l519 + } + position++ + if buffer[position] != rune('B') { + goto l519 + } + position++ + if buffer[position] != rune('L') { + goto l519 + } + position++ + if buffer[position] != rune('E') { + goto l519 + } + position++ + if buffer[position] != rune('_') { + goto l519 + } + position++ + if buffer[position] != rune('-') { + goto l519 + } + position++ + if !_rules[ruleLocalSymbol]() { + goto l519 + } + add(ruleGOTLocation, position520) + } + return true + l519: + position, tokenIndex = position519, tokenIndex519 + return false + }, + /* 39 GOTAddress <- <('_' 'G' 'L' 'O' 'B' 'A' 'L' '_' 'O' 'F' 'F' 'S' 'E' 'T' '_' 'T' 'A' 'B' 'L' 'E' '_' '(' '%' 'r' 'i' 'p' ')')> */ + func() bool { + position521, tokenIndex521 := position, tokenIndex + { + position522 := position + if buffer[position] != rune('_') { + goto l521 + } + position++ + if buffer[position] != rune('G') { + goto l521 + } + position++ + if buffer[position] != rune('L') { + goto l521 + } + position++ + if buffer[position] != rune('O') { + goto l521 + } + position++ + if buffer[position] != rune('B') { + goto l521 + } + position++ + if buffer[position] != rune('A') { + goto l521 + } + position++ + if buffer[position] != rune('L') { + goto l521 + } + position++ + if buffer[position] != rune('_') { + goto l521 + } + position++ + if buffer[position] != rune('O') { + goto l521 + } + position++ + if buffer[position] != rune('F') { + goto l521 + } + position++ + if buffer[position] != rune('F') { + goto l521 + } + position++ + if buffer[position] != rune('S') { + goto l521 + } + position++ + if buffer[position] != rune('E') { + goto l521 + } + position++ + if buffer[position] != rune('T') { + goto l521 + } + position++ + if buffer[position] != rune('_') { + goto l521 + } + position++ + if buffer[position] != rune('T') { + goto l521 + } + position++ + if buffer[position] != rune('A') { + goto l521 + } + position++ + if buffer[position] != rune('B') { + goto l521 + } + position++ + if buffer[position] != rune('L') { + goto l521 + } + position++ + if buffer[position] != rune('E') { + goto l521 + } + position++ + if buffer[position] != rune('_') { + goto l521 + } + position++ + if buffer[position] != rune('(') { + goto l521 + } + position++ + if buffer[position] != rune('%') { + goto l521 + } + position++ + if buffer[position] != rune('r') { + goto l521 + } + position++ + if buffer[position] != rune('i') { + goto l521 + } + position++ + if buffer[position] != rune('p') { + goto l521 + } + position++ + if buffer[position] != rune(')') { + goto l521 + } + position++ + add(ruleGOTAddress, position522) + } + return true + l521: + position, tokenIndex = position521, tokenIndex521 + return false + }, + /* 40 GOTSymbolOffset <- <(('$' SymbolName ('@' 'G' 'O' 'T') ('O' 'F' 'F')?) / (':' ('g' / 'G') ('o' / 'O') ('t' / 'T') ':' SymbolName))> */ + func() bool { + position523, tokenIndex523 := position, tokenIndex + { + position524 := position + { + position525, tokenIndex525 := position, tokenIndex + if buffer[position] != rune('$') { + goto l526 } position++ if !_rules[ruleSymbolName]() { - goto l494 + goto l526 } - } - l496: - add(ruleGOTSymbolOffset, position495) - } - return true - l494: - position, tokenIndex = position494, tokenIndex494 - return false - }, - /* 39 AVX512Token <- <(WS? '{' '%'? ([0-9] / [a-z])* '}')> */ - func() bool { - position506, tokenIndex506 := position, tokenIndex - { - position507 := position - { - position508, tokenIndex508 := position, tokenIndex - if !_rules[ruleWS]() { - goto l508 - } - goto l509 - l508: - position, tokenIndex = position508, tokenIndex508 - } - l509: - if buffer[position] != rune('{') { - goto l506 - } - position++ - { - position510, tokenIndex510 := position, tokenIndex - if buffer[position] != rune('%') { - goto l510 + if buffer[position] != rune('@') { + goto l526 } position++ - goto l511 - l510: - position, tokenIndex = position510, tokenIndex510 - } - l511: - l512: - { - position513, tokenIndex513 := position, tokenIndex - { - position514, tokenIndex514 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l515 - } - position++ - goto l514 - l515: - position, tokenIndex = position514, tokenIndex514 - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l513 - } - position++ - } - l514: - goto l512 - l513: - position, tokenIndex = position513, tokenIndex513 - } - if buffer[position] != rune('}') { - goto l506 - } - position++ - add(ruleAVX512Token, position507) - } - return true - l506: - position, tokenIndex = position506, tokenIndex506 - return false - }, - /* 40 TOCRefHigh <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('h' / 'H') ('a' / 'A')))> */ - func() bool { - position516, tokenIndex516 := position, tokenIndex - { - position517 := position - if buffer[position] != rune('.') { - goto l516 - } - position++ - if buffer[position] != rune('T') { - goto l516 - } - position++ - if buffer[position] != rune('O') { - goto l516 - } - position++ - if buffer[position] != rune('C') { - goto l516 - } - position++ - if buffer[position] != rune('.') { - goto l516 - } - position++ - if buffer[position] != rune('-') { - goto l516 - } - position++ - { - position518, tokenIndex518 := position, tokenIndex - if buffer[position] != rune('0') { - goto l519 + if buffer[position] != rune('G') { + goto l526 } position++ - if buffer[position] != rune('b') { - goto l519 + if buffer[position] != rune('O') { + goto l526 } position++ - goto l518 - l519: - position, tokenIndex = position518, tokenIndex518 - if buffer[position] != rune('.') { - goto l516 - } - position++ - if buffer[position] != rune('L') { - goto l516 + if buffer[position] != rune('T') { + goto l526 } position++ { - position522, tokenIndex522 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { + position527, tokenIndex527 := position, tokenIndex + if buffer[position] != rune('O') { + goto l527 + } + position++ + if buffer[position] != rune('F') { + goto l527 + } + position++ + if buffer[position] != rune('F') { + goto l527 + } + position++ + goto l528 + l527: + position, tokenIndex = position527, tokenIndex527 + } + l528: + goto l525 + l526: + position, tokenIndex = position525, tokenIndex525 + if buffer[position] != rune(':') { + goto l523 + } + position++ + { + position529, tokenIndex529 := position, tokenIndex + if buffer[position] != rune('g') { + goto l530 + } + position++ + goto l529 + l530: + position, tokenIndex = position529, tokenIndex529 + if buffer[position] != rune('G') { goto l523 } position++ - goto l522 - l523: - position, tokenIndex = position522, tokenIndex522 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l524 - } - position++ - goto l522 - l524: - position, tokenIndex = position522, tokenIndex522 - if buffer[position] != rune('_') { - goto l525 - } - position++ - goto l522 - l525: - position, tokenIndex = position522, tokenIndex522 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l516 - } - position++ } - l522: - l520: + l529: { - position521, tokenIndex521 := position, tokenIndex - { - position526, tokenIndex526 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l527 - } - position++ - goto l526 - l527: - position, tokenIndex = position526, tokenIndex526 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l528 - } - position++ - goto l526 - l528: - position, tokenIndex = position526, tokenIndex526 - if buffer[position] != rune('_') { - goto l529 - } - position++ - goto l526 - l529: - position, tokenIndex = position526, tokenIndex526 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l521 - } - position++ + position531, tokenIndex531 := position, tokenIndex + if buffer[position] != rune('o') { + goto l532 } - l526: - goto l520 - l521: - position, tokenIndex = position521, tokenIndex521 - } - } - l518: - if buffer[position] != rune('@') { - goto l516 - } - position++ - { - position530, tokenIndex530 := position, tokenIndex - if buffer[position] != rune('h') { + position++ goto l531 + l532: + position, tokenIndex = position531, tokenIndex531 + if buffer[position] != rune('O') { + goto l523 + } + position++ } - position++ - goto l530 l531: - position, tokenIndex = position530, tokenIndex530 - if buffer[position] != rune('H') { - goto l516 - } - position++ - } - l530: - { - position532, tokenIndex532 := position, tokenIndex - if buffer[position] != rune('a') { - goto l533 - } - position++ - goto l532 - l533: - position, tokenIndex = position532, tokenIndex532 - if buffer[position] != rune('A') { - goto l516 - } - position++ - } - l532: - add(ruleTOCRefHigh, position517) - } - return true - l516: - position, tokenIndex = position516, tokenIndex516 - return false - }, - /* 41 TOCRefLow <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('l' / 'L')))> */ - func() bool { - position534, tokenIndex534 := position, tokenIndex - { - position535 := position - if buffer[position] != rune('.') { - goto l534 - } - position++ - if buffer[position] != rune('T') { - goto l534 - } - position++ - if buffer[position] != rune('O') { - goto l534 - } - position++ - if buffer[position] != rune('C') { - goto l534 - } - position++ - if buffer[position] != rune('.') { - goto l534 - } - position++ - if buffer[position] != rune('-') { - goto l534 - } - position++ - { - position536, tokenIndex536 := position, tokenIndex - if buffer[position] != rune('0') { - goto l537 - } - position++ - if buffer[position] != rune('b') { - goto l537 - } - position++ - goto l536 - l537: - position, tokenIndex = position536, tokenIndex536 - if buffer[position] != rune('.') { - goto l534 - } - position++ - if buffer[position] != rune('L') { - goto l534 - } - position++ { - position540, tokenIndex540 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l541 - } - position++ - goto l540 - l541: - position, tokenIndex = position540, tokenIndex540 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l542 - } - position++ - goto l540 - l542: - position, tokenIndex = position540, tokenIndex540 - if buffer[position] != rune('_') { - goto l543 - } - position++ - goto l540 - l543: - position, tokenIndex = position540, tokenIndex540 - if c := buffer[position]; c < rune('0') || c > rune('9') { + position533, tokenIndex533 := position, tokenIndex + if buffer[position] != rune('t') { goto l534 } position++ - } - l540: - l538: - { - position539, tokenIndex539 := position, tokenIndex - { - position544, tokenIndex544 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l545 - } - position++ - goto l544 - l545: - position, tokenIndex = position544, tokenIndex544 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l546 - } - position++ - goto l544 - l546: - position, tokenIndex = position544, tokenIndex544 - if buffer[position] != rune('_') { - goto l547 - } - position++ - goto l544 - l547: - position, tokenIndex = position544, tokenIndex544 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l539 - } - position++ + goto l533 + l534: + position, tokenIndex = position533, tokenIndex533 + if buffer[position] != rune('T') { + goto l523 } - l544: - goto l538 - l539: - position, tokenIndex = position539, tokenIndex539 + position++ } - } - l536: - if buffer[position] != rune('@') { - goto l534 - } - position++ - { - position548, tokenIndex548 := position, tokenIndex - if buffer[position] != rune('l') { - goto l549 + l533: + if buffer[position] != rune(':') { + goto l523 } position++ - goto l548 - l549: - position, tokenIndex = position548, tokenIndex548 - if buffer[position] != rune('L') { - goto l534 + if !_rules[ruleSymbolName]() { + goto l523 } - position++ } - l548: - add(ruleTOCRefLow, position535) + l525: + add(ruleGOTSymbolOffset, position524) } return true - l534: - position, tokenIndex = position534, tokenIndex534 + l523: + position, tokenIndex = position523, tokenIndex523 return false }, - /* 42 IndirectionIndicator <- <'*'> */ + /* 41 AVX512Token <- <(WS? '{' '%'? ([0-9] / [a-z])* '}')> */ func() bool { - position550, tokenIndex550 := position, tokenIndex + position535, tokenIndex535 := position, tokenIndex { - position551 := position - if buffer[position] != rune('*') { - goto l550 - } - position++ - add(ruleIndirectionIndicator, position551) - } - return true - l550: - position, tokenIndex = position550, tokenIndex550 - return false - }, - /* 43 Float <- <([0-9]+ '.' [0-9]*)> */ - func() bool { - position552, tokenIndex552 := position, tokenIndex - { - position553 := position - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l552 - } - position++ - l554: + position536 := position { - position555, tokenIndex555 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l555 + position537, tokenIndex537 := position, tokenIndex + if !_rules[ruleWS]() { + goto l537 } - position++ - goto l554 - l555: - position, tokenIndex = position555, tokenIndex555 + goto l538 + l537: + position, tokenIndex = position537, tokenIndex537 } - if buffer[position] != rune('.') { - goto l552 + l538: + if buffer[position] != rune('{') { + goto l535 } position++ - l556: { - position557, tokenIndex557 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l557 - } - position++ - goto l556 - l557: - position, tokenIndex = position557, tokenIndex557 - } - add(ruleFloat, position553) - } - return true - l552: - position, tokenIndex = position552, tokenIndex552 - return false - }, - /* 44 RegisterOrConstant <- <((('%' ([a-z] / [A-Z]) ([a-z] / [A-Z] / ([0-9] / [0-9]))*) / ('$'? ((Offset Offset) / Offset)) / ('#' Float) / ('#' Offset ('*' [0-9]+ ('-' [0-9] [0-9]*)?)?) / ('#' '~'? '(' [0-9] WS? ('<' '<') WS? [0-9] ')') / ARMRegister) !('f' / 'b' / ':' / '(' / '+' / '-'))> */ - func() bool { - position558, tokenIndex558 := position, tokenIndex - { - position559 := position - { - position560, tokenIndex560 := position, tokenIndex + position539, tokenIndex539 := position, tokenIndex if buffer[position] != rune('%') { - goto l561 + goto l539 + } + position++ + goto l540 + l539: + position, tokenIndex = position539, tokenIndex539 + } + l540: + l541: + { + position542, tokenIndex542 := position, tokenIndex + { + position543, tokenIndex543 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l544 + } + position++ + goto l543 + l544: + position, tokenIndex = position543, tokenIndex543 + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l542 + } + position++ + } + l543: + goto l541 + l542: + position, tokenIndex = position542, tokenIndex542 + } + if buffer[position] != rune('}') { + goto l535 + } + position++ + add(ruleAVX512Token, position536) + } + return true + l535: + position, tokenIndex = position535, tokenIndex535 + return false + }, + /* 42 TOCRefHigh <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('h' / 'H') ('a' / 'A')))> */ + func() bool { + position545, tokenIndex545 := position, tokenIndex + { + position546 := position + if buffer[position] != rune('.') { + goto l545 + } + position++ + if buffer[position] != rune('T') { + goto l545 + } + position++ + if buffer[position] != rune('O') { + goto l545 + } + position++ + if buffer[position] != rune('C') { + goto l545 + } + position++ + if buffer[position] != rune('.') { + goto l545 + } + position++ + if buffer[position] != rune('-') { + goto l545 + } + position++ + { + position547, tokenIndex547 := position, tokenIndex + if buffer[position] != rune('0') { + goto l548 + } + position++ + if buffer[position] != rune('b') { + goto l548 + } + position++ + goto l547 + l548: + position, tokenIndex = position547, tokenIndex547 + if buffer[position] != rune('.') { + goto l545 + } + position++ + if buffer[position] != rune('L') { + goto l545 } position++ { - position562, tokenIndex562 := position, tokenIndex + position551, tokenIndex551 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l563 + goto l552 } position++ - goto l562 - l563: - position, tokenIndex = position562, tokenIndex562 + goto l551 + l552: + position, tokenIndex = position551, tokenIndex551 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l561 + goto l553 + } + position++ + goto l551 + l553: + position, tokenIndex = position551, tokenIndex551 + if buffer[position] != rune('_') { + goto l554 + } + position++ + goto l551 + l554: + position, tokenIndex = position551, tokenIndex551 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l545 } position++ } - l562: - l564: + l551: + l549: { - position565, tokenIndex565 := position, tokenIndex + position550, tokenIndex550 := position, tokenIndex { - position566, tokenIndex566 := position, tokenIndex + position555, tokenIndex555 := position, tokenIndex if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l567 + goto l556 } position++ - goto l566 - l567: - position, tokenIndex = position566, tokenIndex566 + goto l555 + l556: + position, tokenIndex = position555, tokenIndex555 if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l568 + goto l557 } position++ - goto l566 - l568: - position, tokenIndex = position566, tokenIndex566 - { - position569, tokenIndex569 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l570 - } - position++ - goto l569 - l570: - position, tokenIndex = position569, tokenIndex569 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l565 - } - position++ + goto l555 + l557: + position, tokenIndex = position555, tokenIndex555 + if buffer[position] != rune('_') { + goto l558 } - l569: + position++ + goto l555 + l558: + position, tokenIndex = position555, tokenIndex555 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l550 + } + position++ } - l566: - goto l564 - l565: - position, tokenIndex = position565, tokenIndex565 + l555: + goto l549 + l550: + position, tokenIndex = position550, tokenIndex550 } - goto l560 - l561: - position, tokenIndex = position560, tokenIndex560 + } + l547: + if buffer[position] != rune('@') { + goto l545 + } + position++ + { + position559, tokenIndex559 := position, tokenIndex + if buffer[position] != rune('h') { + goto l560 + } + position++ + goto l559 + l560: + position, tokenIndex = position559, tokenIndex559 + if buffer[position] != rune('H') { + goto l545 + } + position++ + } + l559: + { + position561, tokenIndex561 := position, tokenIndex + if buffer[position] != rune('a') { + goto l562 + } + position++ + goto l561 + l562: + position, tokenIndex = position561, tokenIndex561 + if buffer[position] != rune('A') { + goto l545 + } + position++ + } + l561: + add(ruleTOCRefHigh, position546) + } + return true + l545: + position, tokenIndex = position545, tokenIndex545 + return false + }, + /* 43 TOCRefLow <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('l' / 'L')))> */ + func() bool { + position563, tokenIndex563 := position, tokenIndex + { + position564 := position + if buffer[position] != rune('.') { + goto l563 + } + position++ + if buffer[position] != rune('T') { + goto l563 + } + position++ + if buffer[position] != rune('O') { + goto l563 + } + position++ + if buffer[position] != rune('C') { + goto l563 + } + position++ + if buffer[position] != rune('.') { + goto l563 + } + position++ + if buffer[position] != rune('-') { + goto l563 + } + position++ + { + position565, tokenIndex565 := position, tokenIndex + if buffer[position] != rune('0') { + goto l566 + } + position++ + if buffer[position] != rune('b') { + goto l566 + } + position++ + goto l565 + l566: + position, tokenIndex = position565, tokenIndex565 + if buffer[position] != rune('.') { + goto l563 + } + position++ + if buffer[position] != rune('L') { + goto l563 + } + position++ { - position572, tokenIndex572 := position, tokenIndex - if buffer[position] != rune('$') { + position569, tokenIndex569 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l570 + } + position++ + goto l569 + l570: + position, tokenIndex = position569, tokenIndex569 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l571 + } + position++ + goto l569 + l571: + position, tokenIndex = position569, tokenIndex569 + if buffer[position] != rune('_') { goto l572 } position++ - goto l573 + goto l569 l572: - position, tokenIndex = position572, tokenIndex572 - } - l573: - { - position574, tokenIndex574 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l575 - } - if !_rules[ruleOffset]() { - goto l575 - } - goto l574 - l575: - position, tokenIndex = position574, tokenIndex574 - if !_rules[ruleOffset]() { - goto l571 - } - } - l574: - goto l560 - l571: - position, tokenIndex = position560, tokenIndex560 - if buffer[position] != rune('#') { - goto l576 - } - position++ - if !_rules[ruleFloat]() { - goto l576 - } - goto l560 - l576: - position, tokenIndex = position560, tokenIndex560 - if buffer[position] != rune('#') { - goto l577 - } - position++ - if !_rules[ruleOffset]() { - goto l577 - } - { - position578, tokenIndex578 := position, tokenIndex - if buffer[position] != rune('*') { - goto l578 - } - position++ + position, tokenIndex = position569, tokenIndex569 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l578 + goto l563 } position++ - l580: - { - position581, tokenIndex581 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l581 - } - position++ - goto l580 - l581: - position, tokenIndex = position581, tokenIndex581 - } - { - position582, tokenIndex582 := position, tokenIndex - if buffer[position] != rune('-') { - goto l582 - } - position++ - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l582 - } - position++ - l584: - { - position585, tokenIndex585 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l585 - } - position++ - goto l584 - l585: - position, tokenIndex = position585, tokenIndex585 - } - goto l583 - l582: - position, tokenIndex = position582, tokenIndex582 - } - l583: - goto l579 - l578: - position, tokenIndex = position578, tokenIndex578 } - l579: - goto l560 - l577: - position, tokenIndex = position560, tokenIndex560 - if buffer[position] != rune('#') { - goto l586 - } - position++ + l569: + l567: { - position587, tokenIndex587 := position, tokenIndex - if buffer[position] != rune('~') { - goto l587 + position568, tokenIndex568 := position, tokenIndex + { + position573, tokenIndex573 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l574 + } + position++ + goto l573 + l574: + position, tokenIndex = position573, tokenIndex573 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l575 + } + position++ + goto l573 + l575: + position, tokenIndex = position573, tokenIndex573 + if buffer[position] != rune('_') { + goto l576 + } + position++ + goto l573 + l576: + position, tokenIndex = position573, tokenIndex573 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l568 + } + position++ } - position++ - goto l588 - l587: - position, tokenIndex = position587, tokenIndex587 + l573: + goto l567 + l568: + position, tokenIndex = position568, tokenIndex568 } - l588: - if buffer[position] != rune('(') { - goto l586 + } + l565: + if buffer[position] != rune('@') { + goto l563 + } + position++ + { + position577, tokenIndex577 := position, tokenIndex + if buffer[position] != rune('l') { + goto l578 } position++ + goto l577 + l578: + position, tokenIndex = position577, tokenIndex577 + if buffer[position] != rune('L') { + goto l563 + } + position++ + } + l577: + add(ruleTOCRefLow, position564) + } + return true + l563: + position, tokenIndex = position563, tokenIndex563 + return false + }, + /* 44 IndirectionIndicator <- <'*'> */ + func() bool { + position579, tokenIndex579 := position, tokenIndex + { + position580 := position + if buffer[position] != rune('*') { + goto l579 + } + position++ + add(ruleIndirectionIndicator, position580) + } + return true + l579: + position, tokenIndex = position579, tokenIndex579 + return false + }, + /* 45 Float <- <([0-9]+ '.' [0-9]*)> */ + func() bool { + position581, tokenIndex581 := position, tokenIndex + { + position582 := position + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l581 + } + position++ + l583: + { + position584, tokenIndex584 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l584 + } + position++ + goto l583 + l584: + position, tokenIndex = position584, tokenIndex584 + } + if buffer[position] != rune('.') { + goto l581 + } + position++ + l585: + { + position586, tokenIndex586 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { goto l586 } position++ - { - position589, tokenIndex589 := position, tokenIndex - if !_rules[ruleWS]() { - goto l589 - } + goto l585 + l586: + position, tokenIndex = position586, tokenIndex586 + } + add(ruleFloat, position582) + } + return true + l581: + position, tokenIndex = position581, tokenIndex581 + return false + }, + /* 46 RegisterOrConstant <- <((('%' ([a-z] / [A-Z]) ([a-z] / [A-Z] / ([0-9] / [0-9]))*) / ('$'? ((Offset Offset) / Offset)) / ('#' Float) / ('#' Offset ('*' [0-9]+ ('-' [0-9] [0-9]*)?)?) / ('#' '~'? '(' [0-9] WS? ('<' '<') WS? [0-9] ')') / ARMRegister) !('f' / 'b' / ':' / '(' / '+' / '-'))> */ + func() bool { + position587, tokenIndex587 := position, tokenIndex + { + position588 := position + { + position589, tokenIndex589 := position, tokenIndex + if buffer[position] != rune('%') { goto l590 - l589: - position, tokenIndex = position589, tokenIndex589 - } - l590: - if buffer[position] != rune('<') { - goto l586 - } - position++ - if buffer[position] != rune('<') { - goto l586 } position++ { position591, tokenIndex591 := position, tokenIndex - if !_rules[ruleWS]() { - goto l591 + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l592 } - goto l592 - l591: + position++ + goto l591 + l592: position, tokenIndex = position591, tokenIndex591 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l590 + } + position++ } - l592: - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l586 - } - position++ - if buffer[position] != rune(')') { - goto l586 - } - position++ - goto l560 - l586: - position, tokenIndex = position560, tokenIndex560 - if !_rules[ruleARMRegister]() { - goto l558 - } - } - l560: - { - position593, tokenIndex593 := position, tokenIndex + l591: + l593: { position594, tokenIndex594 := position, tokenIndex - if buffer[position] != rune('f') { + { + position595, tokenIndex595 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l596 + } + position++ goto l595 + l596: + position, tokenIndex = position595, tokenIndex595 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l597 + } + position++ + goto l595 + l597: + position, tokenIndex = position595, tokenIndex595 + { + position598, tokenIndex598 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l599 + } + position++ + goto l598 + l599: + position, tokenIndex = position598, tokenIndex598 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l594 + } + position++ + } + l598: } - position++ - goto l594 l595: + goto l593 + l594: position, tokenIndex = position594, tokenIndex594 - if buffer[position] != rune('b') { - goto l596 - } - position++ - goto l594 - l596: - position, tokenIndex = position594, tokenIndex594 - if buffer[position] != rune(':') { - goto l597 - } - position++ - goto l594 - l597: - position, tokenIndex = position594, tokenIndex594 - if buffer[position] != rune('(') { - goto l598 - } - position++ - goto l594 - l598: - position, tokenIndex = position594, tokenIndex594 - if buffer[position] != rune('+') { - goto l599 - } - position++ - goto l594 - l599: - position, tokenIndex = position594, tokenIndex594 - if buffer[position] != rune('-') { - goto l593 - } - position++ } - l594: - goto l558 - l593: - position, tokenIndex = position593, tokenIndex593 - } - add(ruleRegisterOrConstant, position559) - } - return true - l558: - position, tokenIndex = position558, tokenIndex558 - return false - }, - /* 45 ARMConstantTweak <- <((((('u' / 's') (('x' / 'X') ('t' / 'T')) ('x' / 'w' / 'h' / 'b')) / (('l' / 'L') ('s' / 'S') ('l' / 'L')) / (('l' / 'L') ('s' / 'S') ('r' / 'R')) / (('r' / 'R') ('o' / 'O') ('r' / 'R')) / (('a' / 'A') ('s' / 'S') ('r' / 'R'))) (WS '#' Offset)?) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' ('v' / 'V') ('l' / 'L')) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' '#' [0-9]))> */ - func() bool { - position600, tokenIndex600 := position, tokenIndex - { - position601 := position - { - position602, tokenIndex602 := position, tokenIndex + goto l589 + l590: + position, tokenIndex = position589, tokenIndex589 { - position604, tokenIndex604 := position, tokenIndex - { - position606, tokenIndex606 := position, tokenIndex - if buffer[position] != rune('u') { - goto l607 - } - position++ - goto l606 - l607: - position, tokenIndex = position606, tokenIndex606 - if buffer[position] != rune('s') { - goto l605 - } - position++ + position601, tokenIndex601 := position, tokenIndex + if buffer[position] != rune('$') { + goto l601 } - l606: - { - position608, tokenIndex608 := position, tokenIndex - if buffer[position] != rune('x') { - goto l609 - } - position++ - goto l608 - l609: - position, tokenIndex = position608, tokenIndex608 - if buffer[position] != rune('X') { - goto l605 - } - position++ + position++ + goto l602 + l601: + position, tokenIndex = position601, tokenIndex601 + } + l602: + { + position603, tokenIndex603 := position, tokenIndex + if !_rules[ruleOffset]() { + goto l604 } - l608: + if !_rules[ruleOffset]() { + goto l604 + } + goto l603 + l604: + position, tokenIndex = position603, tokenIndex603 + if !_rules[ruleOffset]() { + goto l600 + } + } + l603: + goto l589 + l600: + position, tokenIndex = position589, tokenIndex589 + if buffer[position] != rune('#') { + goto l605 + } + position++ + if !_rules[ruleFloat]() { + goto l605 + } + goto l589 + l605: + position, tokenIndex = position589, tokenIndex589 + if buffer[position] != rune('#') { + goto l606 + } + position++ + if !_rules[ruleOffset]() { + goto l606 + } + { + position607, tokenIndex607 := position, tokenIndex + if buffer[position] != rune('*') { + goto l607 + } + position++ + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l607 + } + position++ + l609: { position610, tokenIndex610 := position, tokenIndex - if buffer[position] != rune('t') { + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l610 + } + position++ + goto l609 + l610: + position, tokenIndex = position610, tokenIndex610 + } + { + position611, tokenIndex611 := position, tokenIndex + if buffer[position] != rune('-') { goto l611 } position++ - goto l610 - l611: - position, tokenIndex = position610, tokenIndex610 - if buffer[position] != rune('T') { - goto l605 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l611 } position++ - } - l610: - { - position612, tokenIndex612 := position, tokenIndex - if buffer[position] != rune('x') { - goto l613 - } - position++ - goto l612 l613: - position, tokenIndex = position612, tokenIndex612 - if buffer[position] != rune('w') { - goto l614 + { + position614, tokenIndex614 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l614 + } + position++ + goto l613 + l614: + position, tokenIndex = position614, tokenIndex614 } - position++ goto l612 - l614: - position, tokenIndex = position612, tokenIndex612 - if buffer[position] != rune('h') { - goto l615 - } - position++ - goto l612 - l615: - position, tokenIndex = position612, tokenIndex612 - if buffer[position] != rune('b') { - goto l605 - } - position++ + l611: + position, tokenIndex = position611, tokenIndex611 } l612: - goto l604 - l605: - position, tokenIndex = position604, tokenIndex604 - { - position617, tokenIndex617 := position, tokenIndex - if buffer[position] != rune('l') { - goto l618 - } - position++ - goto l617 - l618: - position, tokenIndex = position617, tokenIndex617 - if buffer[position] != rune('L') { - goto l616 - } - position++ + goto l608 + l607: + position, tokenIndex = position607, tokenIndex607 + } + l608: + goto l589 + l606: + position, tokenIndex = position589, tokenIndex589 + if buffer[position] != rune('#') { + goto l615 + } + position++ + { + position616, tokenIndex616 := position, tokenIndex + if buffer[position] != rune('~') { + goto l616 } - l617: - { - position619, tokenIndex619 := position, tokenIndex - if buffer[position] != rune('s') { - goto l620 - } - position++ - goto l619 - l620: - position, tokenIndex = position619, tokenIndex619 - if buffer[position] != rune('S') { - goto l616 - } - position++ - } - l619: - { - position621, tokenIndex621 := position, tokenIndex - if buffer[position] != rune('l') { - goto l622 - } - position++ - goto l621 - l622: - position, tokenIndex = position621, tokenIndex621 - if buffer[position] != rune('L') { - goto l616 - } - position++ - } - l621: - goto l604 + position++ + goto l617 l616: - position, tokenIndex = position604, tokenIndex604 - { - position624, tokenIndex624 := position, tokenIndex - if buffer[position] != rune('l') { - goto l625 - } - position++ + position, tokenIndex = position616, tokenIndex616 + } + l617: + if buffer[position] != rune('(') { + goto l615 + } + position++ + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l615 + } + position++ + { + position618, tokenIndex618 := position, tokenIndex + if !_rules[ruleWS]() { + goto l618 + } + goto l619 + l618: + position, tokenIndex = position618, tokenIndex618 + } + l619: + if buffer[position] != rune('<') { + goto l615 + } + position++ + if buffer[position] != rune('<') { + goto l615 + } + position++ + { + position620, tokenIndex620 := position, tokenIndex + if !_rules[ruleWS]() { + goto l620 + } + goto l621 + l620: + position, tokenIndex = position620, tokenIndex620 + } + l621: + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l615 + } + position++ + if buffer[position] != rune(')') { + goto l615 + } + position++ + goto l589 + l615: + position, tokenIndex = position589, tokenIndex589 + if !_rules[ruleARMRegister]() { + goto l587 + } + } + l589: + { + position622, tokenIndex622 := position, tokenIndex + { + position623, tokenIndex623 := position, tokenIndex + if buffer[position] != rune('f') { goto l624 - l625: - position, tokenIndex = position624, tokenIndex624 - if buffer[position] != rune('L') { - goto l623 - } - position++ } + position++ + goto l623 l624: - { - position626, tokenIndex626 := position, tokenIndex - if buffer[position] != rune('s') { - goto l627 - } - position++ + position, tokenIndex = position623, tokenIndex623 + if buffer[position] != rune('b') { + goto l625 + } + position++ + goto l623 + l625: + position, tokenIndex = position623, tokenIndex623 + if buffer[position] != rune(':') { goto l626 - l627: - position, tokenIndex = position626, tokenIndex626 - if buffer[position] != rune('S') { - goto l623 - } - position++ } + position++ + goto l623 l626: - { - position628, tokenIndex628 := position, tokenIndex - if buffer[position] != rune('r') { - goto l629 - } - position++ + position, tokenIndex = position623, tokenIndex623 + if buffer[position] != rune('(') { + goto l627 + } + position++ + goto l623 + l627: + position, tokenIndex = position623, tokenIndex623 + if buffer[position] != rune('+') { goto l628 - l629: - position, tokenIndex = position628, tokenIndex628 - if buffer[position] != rune('R') { - goto l623 - } - position++ } + position++ + goto l623 l628: - goto l604 - l623: - position, tokenIndex = position604, tokenIndex604 - { - position631, tokenIndex631 := position, tokenIndex - if buffer[position] != rune('r') { - goto l632 - } - position++ - goto l631 - l632: - position, tokenIndex = position631, tokenIndex631 - if buffer[position] != rune('R') { - goto l630 - } - position++ + position, tokenIndex = position623, tokenIndex623 + if buffer[position] != rune('-') { + goto l622 } - l631: - { - position633, tokenIndex633 := position, tokenIndex - if buffer[position] != rune('o') { - goto l634 - } - position++ - goto l633 - l634: - position, tokenIndex = position633, tokenIndex633 - if buffer[position] != rune('O') { - goto l630 - } - position++ - } - l633: + position++ + } + l623: + goto l587 + l622: + position, tokenIndex = position622, tokenIndex622 + } + add(ruleRegisterOrConstant, position588) + } + return true + l587: + position, tokenIndex = position587, tokenIndex587 + return false + }, + /* 47 ARMConstantTweak <- <((((('u' / 's') (('x' / 'X') ('t' / 'T')) ('x' / 'w' / 'h' / 'b')) / (('l' / 'L') ('s' / 'S') ('l' / 'L')) / (('l' / 'L') ('s' / 'S') ('r' / 'R')) / (('r' / 'R') ('o' / 'O') ('r' / 'R')) / (('a' / 'A') ('s' / 'S') ('r' / 'R'))) (WS '#' Offset)?) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' ('v' / 'V') ('l' / 'L')) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' '#' [0-9]))> */ + func() bool { + position629, tokenIndex629 := position, tokenIndex + { + position630 := position + { + position631, tokenIndex631 := position, tokenIndex + { + position633, tokenIndex633 := position, tokenIndex { position635, tokenIndex635 := position, tokenIndex - if buffer[position] != rune('r') { + if buffer[position] != rune('u') { goto l636 } position++ goto l635 l636: position, tokenIndex = position635, tokenIndex635 - if buffer[position] != rune('R') { - goto l630 + if buffer[position] != rune('s') { + goto l634 } position++ } l635: - goto l604 - l630: - position, tokenIndex = position604, tokenIndex604 { position637, tokenIndex637 := position, tokenIndex - if buffer[position] != rune('a') { + if buffer[position] != rune('x') { goto l638 } position++ goto l637 l638: position, tokenIndex = position637, tokenIndex637 - if buffer[position] != rune('A') { - goto l603 + if buffer[position] != rune('X') { + goto l634 } position++ } l637: { position639, tokenIndex639 := position, tokenIndex - if buffer[position] != rune('s') { + if buffer[position] != rune('t') { goto l640 } position++ goto l639 l640: position, tokenIndex = position639, tokenIndex639 - if buffer[position] != rune('S') { - goto l603 + if buffer[position] != rune('T') { + goto l634 } position++ } l639: { position641, tokenIndex641 := position, tokenIndex - if buffer[position] != rune('r') { + if buffer[position] != rune('x') { goto l642 } position++ goto l641 l642: position, tokenIndex = position641, tokenIndex641 - if buffer[position] != rune('R') { - goto l603 + if buffer[position] != rune('w') { + goto l643 + } + position++ + goto l641 + l643: + position, tokenIndex = position641, tokenIndex641 + if buffer[position] != rune('h') { + goto l644 + } + position++ + goto l641 + l644: + position, tokenIndex = position641, tokenIndex641 + if buffer[position] != rune('b') { + goto l634 } position++ } l641: + goto l633 + l634: + position, tokenIndex = position633, tokenIndex633 + { + position646, tokenIndex646 := position, tokenIndex + if buffer[position] != rune('l') { + goto l647 + } + position++ + goto l646 + l647: + position, tokenIndex = position646, tokenIndex646 + if buffer[position] != rune('L') { + goto l645 + } + position++ + } + l646: + { + position648, tokenIndex648 := position, tokenIndex + if buffer[position] != rune('s') { + goto l649 + } + position++ + goto l648 + l649: + position, tokenIndex = position648, tokenIndex648 + if buffer[position] != rune('S') { + goto l645 + } + position++ + } + l648: + { + position650, tokenIndex650 := position, tokenIndex + if buffer[position] != rune('l') { + goto l651 + } + position++ + goto l650 + l651: + position, tokenIndex = position650, tokenIndex650 + if buffer[position] != rune('L') { + goto l645 + } + position++ + } + l650: + goto l633 + l645: + position, tokenIndex = position633, tokenIndex633 + { + position653, tokenIndex653 := position, tokenIndex + if buffer[position] != rune('l') { + goto l654 + } + position++ + goto l653 + l654: + position, tokenIndex = position653, tokenIndex653 + if buffer[position] != rune('L') { + goto l652 + } + position++ + } + l653: + { + position655, tokenIndex655 := position, tokenIndex + if buffer[position] != rune('s') { + goto l656 + } + position++ + goto l655 + l656: + position, tokenIndex = position655, tokenIndex655 + if buffer[position] != rune('S') { + goto l652 + } + position++ + } + l655: + { + position657, tokenIndex657 := position, tokenIndex + if buffer[position] != rune('r') { + goto l658 + } + position++ + goto l657 + l658: + position, tokenIndex = position657, tokenIndex657 + if buffer[position] != rune('R') { + goto l652 + } + position++ + } + l657: + goto l633 + l652: + position, tokenIndex = position633, tokenIndex633 + { + position660, tokenIndex660 := position, tokenIndex + if buffer[position] != rune('r') { + goto l661 + } + position++ + goto l660 + l661: + position, tokenIndex = position660, tokenIndex660 + if buffer[position] != rune('R') { + goto l659 + } + position++ + } + l660: + { + position662, tokenIndex662 := position, tokenIndex + if buffer[position] != rune('o') { + goto l663 + } + position++ + goto l662 + l663: + position, tokenIndex = position662, tokenIndex662 + if buffer[position] != rune('O') { + goto l659 + } + position++ + } + l662: + { + position664, tokenIndex664 := position, tokenIndex + if buffer[position] != rune('r') { + goto l665 + } + position++ + goto l664 + l665: + position, tokenIndex = position664, tokenIndex664 + if buffer[position] != rune('R') { + goto l659 + } + position++ + } + l664: + goto l633 + l659: + position, tokenIndex = position633, tokenIndex633 + { + position666, tokenIndex666 := position, tokenIndex + if buffer[position] != rune('a') { + goto l667 + } + position++ + goto l666 + l667: + position, tokenIndex = position666, tokenIndex666 + if buffer[position] != rune('A') { + goto l632 + } + position++ + } + l666: + { + position668, tokenIndex668 := position, tokenIndex + if buffer[position] != rune('s') { + goto l669 + } + position++ + goto l668 + l669: + position, tokenIndex = position668, tokenIndex668 + if buffer[position] != rune('S') { + goto l632 + } + position++ + } + l668: + { + position670, tokenIndex670 := position, tokenIndex + if buffer[position] != rune('r') { + goto l671 + } + position++ + goto l670 + l671: + position, tokenIndex = position670, tokenIndex670 + if buffer[position] != rune('R') { + goto l632 + } + position++ + } + l670: } - l604: + l633: { - position643, tokenIndex643 := position, tokenIndex + position672, tokenIndex672 := position, tokenIndex if !_rules[ruleWS]() { - goto l643 + goto l672 } if buffer[position] != rune('#') { - goto l643 - } - position++ - if !_rules[ruleOffset]() { - goto l643 - } - goto l644 - l643: - position, tokenIndex = position643, tokenIndex643 - } - l644: - goto l602 - l603: - position, tokenIndex = position602, tokenIndex602 - { - position646, tokenIndex646 := position, tokenIndex - if buffer[position] != rune('m') { - goto l647 - } - position++ - goto l646 - l647: - position, tokenIndex = position646, tokenIndex646 - if buffer[position] != rune('M') { - goto l645 - } - position++ - } - l646: - { - position648, tokenIndex648 := position, tokenIndex - if buffer[position] != rune('u') { - goto l649 - } - position++ - goto l648 - l649: - position, tokenIndex = position648, tokenIndex648 - if buffer[position] != rune('U') { - goto l645 - } - position++ - } - l648: - { - position650, tokenIndex650 := position, tokenIndex - if buffer[position] != rune('l') { - goto l651 - } - position++ - goto l650 - l651: - position, tokenIndex = position650, tokenIndex650 - if buffer[position] != rune('L') { - goto l645 - } - position++ - } - l650: - if buffer[position] != rune(' ') { - goto l645 - } - position++ - { - position652, tokenIndex652 := position, tokenIndex - if buffer[position] != rune('v') { - goto l653 - } - position++ - goto l652 - l653: - position, tokenIndex = position652, tokenIndex652 - if buffer[position] != rune('V') { - goto l645 - } - position++ - } - l652: - { - position654, tokenIndex654 := position, tokenIndex - if buffer[position] != rune('l') { - goto l655 - } - position++ - goto l654 - l655: - position, tokenIndex = position654, tokenIndex654 - if buffer[position] != rune('L') { - goto l645 - } - position++ - } - l654: - goto l602 - l645: - position, tokenIndex = position602, tokenIndex602 - { - position656, tokenIndex656 := position, tokenIndex - if buffer[position] != rune('m') { - goto l657 - } - position++ - goto l656 - l657: - position, tokenIndex = position656, tokenIndex656 - if buffer[position] != rune('M') { - goto l600 - } - position++ - } - l656: - { - position658, tokenIndex658 := position, tokenIndex - if buffer[position] != rune('u') { - goto l659 - } - position++ - goto l658 - l659: - position, tokenIndex = position658, tokenIndex658 - if buffer[position] != rune('U') { - goto l600 - } - position++ - } - l658: - { - position660, tokenIndex660 := position, tokenIndex - if buffer[position] != rune('l') { - goto l661 - } - position++ - goto l660 - l661: - position, tokenIndex = position660, tokenIndex660 - if buffer[position] != rune('L') { - goto l600 - } - position++ - } - l660: - if buffer[position] != rune(' ') { - goto l600 - } - position++ - if buffer[position] != rune('#') { - goto l600 - } - position++ - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l600 - } - position++ - } - l602: - add(ruleARMConstantTweak, position601) - } - return true - l600: - position, tokenIndex = position600, tokenIndex600 - return false - }, - /* 46 ARMRegister <- <((('s' / 'S') ('p' / 'P')) / (('x' / 'w' / 'd' / 'q' / 's' / 'h' / 'b') [0-9] [0-9]?) / (('x' / 'X') ('z' / 'Z') ('r' / 'R')) / (('w' / 'W') ('z' / 'Z') ('r' / 'R')) / (('n' / 'N') ('z' / 'Z') ('c' / 'C') ('v' / 'V')) / SVE2PredicateRegister / ARMVectorRegister / SVE2SpecialValue / ('{' WS? ARMVectorRegister (',' WS? ARMVectorRegister)* WS? '}' ('[' [0-9] [0-9]? ']')?))> */ - func() bool { - position662, tokenIndex662 := position, tokenIndex - { - position663 := position - { - position664, tokenIndex664 := position, tokenIndex - { - position666, tokenIndex666 := position, tokenIndex - if buffer[position] != rune('s') { - goto l667 - } - position++ - goto l666 - l667: - position, tokenIndex = position666, tokenIndex666 - if buffer[position] != rune('S') { - goto l665 - } - position++ - } - l666: - { - position668, tokenIndex668 := position, tokenIndex - if buffer[position] != rune('p') { - goto l669 - } - position++ - goto l668 - l669: - position, tokenIndex = position668, tokenIndex668 - if buffer[position] != rune('P') { - goto l665 - } - position++ - } - l668: - goto l664 - l665: - position, tokenIndex = position664, tokenIndex664 - { - position671, tokenIndex671 := position, tokenIndex - if buffer[position] != rune('x') { goto l672 } position++ - goto l671 + if !_rules[ruleOffset]() { + goto l672 + } + goto l673 l672: - position, tokenIndex = position671, tokenIndex671 - if buffer[position] != rune('w') { - goto l673 - } - position++ - goto l671 - l673: - position, tokenIndex = position671, tokenIndex671 - if buffer[position] != rune('d') { - goto l674 - } - position++ - goto l671 - l674: - position, tokenIndex = position671, tokenIndex671 - if buffer[position] != rune('q') { - goto l675 - } - position++ - goto l671 - l675: - position, tokenIndex = position671, tokenIndex671 - if buffer[position] != rune('s') { + position, tokenIndex = position672, tokenIndex672 + } + l673: + goto l631 + l632: + position, tokenIndex = position631, tokenIndex631 + { + position675, tokenIndex675 := position, tokenIndex + if buffer[position] != rune('m') { goto l676 } position++ - goto l671 + goto l675 l676: - position, tokenIndex = position671, tokenIndex671 - if buffer[position] != rune('h') { - goto l677 - } - position++ - goto l671 - l677: - position, tokenIndex = position671, tokenIndex671 - if buffer[position] != rune('b') { - goto l670 + position, tokenIndex = position675, tokenIndex675 + if buffer[position] != rune('M') { + goto l674 } position++ } - l671: - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l670 - } - position++ + l675: { - position678, tokenIndex678 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { + position677, tokenIndex677 := position, tokenIndex + if buffer[position] != rune('u') { goto l678 } position++ - goto l679 + goto l677 l678: - position, tokenIndex = position678, tokenIndex678 + position, tokenIndex = position677, tokenIndex677 + if buffer[position] != rune('U') { + goto l674 + } + position++ + } + l677: + { + position679, tokenIndex679 := position, tokenIndex + if buffer[position] != rune('l') { + goto l680 + } + position++ + goto l679 + l680: + position, tokenIndex = position679, tokenIndex679 + if buffer[position] != rune('L') { + goto l674 + } + position++ } l679: - goto l664 - l670: - position, tokenIndex = position664, tokenIndex664 + if buffer[position] != rune(' ') { + goto l674 + } + position++ { position681, tokenIndex681 := position, tokenIndex - if buffer[position] != rune('x') { + if buffer[position] != rune('v') { goto l682 } position++ goto l681 l682: position, tokenIndex = position681, tokenIndex681 - if buffer[position] != rune('X') { - goto l680 + if buffer[position] != rune('V') { + goto l674 } position++ } l681: { position683, tokenIndex683 := position, tokenIndex - if buffer[position] != rune('z') { + if buffer[position] != rune('l') { goto l684 } position++ goto l683 l684: position, tokenIndex = position683, tokenIndex683 - if buffer[position] != rune('Z') { - goto l680 + if buffer[position] != rune('L') { + goto l674 } position++ } l683: + goto l631 + l674: + position, tokenIndex = position631, tokenIndex631 { position685, tokenIndex685 := position, tokenIndex - if buffer[position] != rune('r') { + if buffer[position] != rune('m') { goto l686 } position++ goto l685 l686: position, tokenIndex = position685, tokenIndex685 - if buffer[position] != rune('R') { - goto l680 + if buffer[position] != rune('M') { + goto l629 } position++ } l685: - goto l664 - l680: - position, tokenIndex = position664, tokenIndex664 { - position688, tokenIndex688 := position, tokenIndex - if buffer[position] != rune('w') { - goto l689 + position687, tokenIndex687 := position, tokenIndex + if buffer[position] != rune('u') { + goto l688 } position++ - goto l688 - l689: - position, tokenIndex = position688, tokenIndex688 - if buffer[position] != rune('W') { - goto l687 + goto l687 + l688: + position, tokenIndex = position687, tokenIndex687 + if buffer[position] != rune('U') { + goto l629 } position++ } - l688: - { - position690, tokenIndex690 := position, tokenIndex - if buffer[position] != rune('z') { - goto l691 - } - position++ - goto l690 - l691: - position, tokenIndex = position690, tokenIndex690 - if buffer[position] != rune('Z') { - goto l687 - } - position++ - } - l690: - { - position692, tokenIndex692 := position, tokenIndex - if buffer[position] != rune('r') { - goto l693 - } - position++ - goto l692 - l693: - position, tokenIndex = position692, tokenIndex692 - if buffer[position] != rune('R') { - goto l687 - } - position++ - } - l692: - goto l664 l687: - position, tokenIndex = position664, tokenIndex664 + { + position689, tokenIndex689 := position, tokenIndex + if buffer[position] != rune('l') { + goto l690 + } + position++ + goto l689 + l690: + position, tokenIndex = position689, tokenIndex689 + if buffer[position] != rune('L') { + goto l629 + } + position++ + } + l689: + if buffer[position] != rune(' ') { + goto l629 + } + position++ + if buffer[position] != rune('#') { + goto l629 + } + position++ + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l629 + } + position++ + } + l631: + add(ruleARMConstantTweak, position630) + } + return true + l629: + position, tokenIndex = position629, tokenIndex629 + return false + }, + /* 48 ARMRegister <- <((('s' / 'S') ('p' / 'P')) / (('x' / 'w' / 'd' / 'q' / 's' / 'h' / 'b') [0-9] [0-9]?) / (('x' / 'X') ('z' / 'Z') ('r' / 'R')) / (('w' / 'W') ('z' / 'Z') ('r' / 'R')) / (('n' / 'N') ('z' / 'Z') ('c' / 'C') ('v' / 'V')) / SVE2PredicateRegister / ARMVectorRegister / SVE2SpecialValue / ('{' WS? ARMVectorRegister (',' WS? ARMVectorRegister)* WS? '}' ('[' [0-9] [0-9]? ']')?))> */ + func() bool { + position691, tokenIndex691 := position, tokenIndex + { + position692 := position + { + position693, tokenIndex693 := position, tokenIndex { position695, tokenIndex695 := position, tokenIndex - if buffer[position] != rune('n') { + if buffer[position] != rune('s') { goto l696 } position++ goto l695 l696: position, tokenIndex = position695, tokenIndex695 - if buffer[position] != rune('N') { + if buffer[position] != rune('S') { goto l694 } position++ @@ -5638,708 +5655,682 @@ l695: { position697, tokenIndex697 := position, tokenIndex - if buffer[position] != rune('z') { + if buffer[position] != rune('p') { goto l698 } position++ goto l697 l698: position, tokenIndex = position697, tokenIndex697 - if buffer[position] != rune('Z') { + if buffer[position] != rune('P') { goto l694 } position++ } l697: + goto l693 + l694: + position, tokenIndex = position693, tokenIndex693 { - position699, tokenIndex699 := position, tokenIndex - if buffer[position] != rune('c') { - goto l700 + position700, tokenIndex700 := position, tokenIndex + if buffer[position] != rune('x') { + goto l701 } position++ - goto l699 - l700: - position, tokenIndex = position699, tokenIndex699 - if buffer[position] != rune('C') { - goto l694 - } - position++ - } - l699: - { - position701, tokenIndex701 := position, tokenIndex - if buffer[position] != rune('v') { + goto l700 + l701: + position, tokenIndex = position700, tokenIndex700 + if buffer[position] != rune('w') { goto l702 } position++ - goto l701 + goto l700 l702: - position, tokenIndex = position701, tokenIndex701 - if buffer[position] != rune('V') { - goto l694 + position, tokenIndex = position700, tokenIndex700 + if buffer[position] != rune('d') { + goto l703 } position++ - } - l701: - goto l664 - l694: - position, tokenIndex = position664, tokenIndex664 - if !_rules[ruleSVE2PredicateRegister]() { - goto l703 - } - goto l664 - l703: - position, tokenIndex = position664, tokenIndex664 - if !_rules[ruleARMVectorRegister]() { - goto l704 - } - goto l664 - l704: - position, tokenIndex = position664, tokenIndex664 - if !_rules[ruleSVE2SpecialValue]() { - goto l705 - } - goto l664 - l705: - position, tokenIndex = position664, tokenIndex664 - if buffer[position] != rune('{') { - goto l662 - } - position++ - { - position706, tokenIndex706 := position, tokenIndex - if !_rules[ruleWS]() { + goto l700 + l703: + position, tokenIndex = position700, tokenIndex700 + if buffer[position] != rune('q') { + goto l704 + } + position++ + goto l700 + l704: + position, tokenIndex = position700, tokenIndex700 + if buffer[position] != rune('s') { + goto l705 + } + position++ + goto l700 + l705: + position, tokenIndex = position700, tokenIndex700 + if buffer[position] != rune('h') { goto l706 } - goto l707 + position++ + goto l700 l706: - position, tokenIndex = position706, tokenIndex706 + position, tokenIndex = position700, tokenIndex700 + if buffer[position] != rune('b') { + goto l699 + } + position++ } - l707: - if !_rules[ruleARMVectorRegister]() { - goto l662 + l700: + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l699 + } + position++ + { + position707, tokenIndex707 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l707 + } + position++ + goto l708 + l707: + position, tokenIndex = position707, tokenIndex707 } l708: + goto l693 + l699: + position, tokenIndex = position693, tokenIndex693 { - position709, tokenIndex709 := position, tokenIndex - if buffer[position] != rune(',') { + position710, tokenIndex710 := position, tokenIndex + if buffer[position] != rune('x') { + goto l711 + } + position++ + goto l710 + l711: + position, tokenIndex = position710, tokenIndex710 + if buffer[position] != rune('X') { goto l709 } position++ - { - position710, tokenIndex710 := position, tokenIndex - if !_rules[ruleWS]() { - goto l710 - } - goto l711 - l710: - position, tokenIndex = position710, tokenIndex710 - } - l711: - if !_rules[ruleARMVectorRegister]() { - goto l709 - } - goto l708 - l709: - position, tokenIndex = position709, tokenIndex709 } + l710: { position712, tokenIndex712 := position, tokenIndex - if !_rules[ruleWS]() { - goto l712 + if buffer[position] != rune('z') { + goto l713 } - goto l713 - l712: + position++ + goto l712 + l713: position, tokenIndex = position712, tokenIndex712 + if buffer[position] != rune('Z') { + goto l709 + } + position++ } - l713: - if buffer[position] != rune('}') { - goto l662 - } - position++ + l712: { position714, tokenIndex714 := position, tokenIndex - if buffer[position] != rune('[') { - goto l714 + if buffer[position] != rune('r') { + goto l715 } position++ - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l714 - } - position++ - { - position716, tokenIndex716 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l716 - } - position++ - goto l717 - l716: - position, tokenIndex = position716, tokenIndex716 - } - l717: - if buffer[position] != rune(']') { - goto l714 - } - position++ - goto l715 - l714: + goto l714 + l715: position, tokenIndex = position714, tokenIndex714 + if buffer[position] != rune('R') { + goto l709 + } + position++ } - l715: - } - l664: - add(ruleARMRegister, position663) - } - return true - l662: - position, tokenIndex = position662, tokenIndex662 - return false - }, - /* 47 ARMVectorRegister <- <(('p' / 'v' / 'z') [0-9] [0-9]? !([0-9] / [0-9] / ([a-z] / [A-Z]) / '_') ('.' [0-9]* ('b' / 's' / 'd' / 'h' / 'q') ('[' [0-9] [0-9]? ']')?)?)> */ - func() bool { - position718, tokenIndex718 := position, tokenIndex - { - position719 := position - { - position720, tokenIndex720 := position, tokenIndex - if buffer[position] != rune('p') { + l714: + goto l693 + l709: + position, tokenIndex = position693, tokenIndex693 + { + position717, tokenIndex717 := position, tokenIndex + if buffer[position] != rune('w') { + goto l718 + } + position++ + goto l717 + l718: + position, tokenIndex = position717, tokenIndex717 + if buffer[position] != rune('W') { + goto l716 + } + position++ + } + l717: + { + position719, tokenIndex719 := position, tokenIndex + if buffer[position] != rune('z') { + goto l720 + } + position++ + goto l719 + l720: + position, tokenIndex = position719, tokenIndex719 + if buffer[position] != rune('Z') { + goto l716 + } + position++ + } + l719: + { + position721, tokenIndex721 := position, tokenIndex + if buffer[position] != rune('r') { + goto l722 + } + position++ goto l721 + l722: + position, tokenIndex = position721, tokenIndex721 + if buffer[position] != rune('R') { + goto l716 + } + position++ } - position++ - goto l720 l721: - position, tokenIndex = position720, tokenIndex720 - if buffer[position] != rune('v') { - goto l722 + goto l693 + l716: + position, tokenIndex = position693, tokenIndex693 + { + position724, tokenIndex724 := position, tokenIndex + if buffer[position] != rune('n') { + goto l725 + } + position++ + goto l724 + l725: + position, tokenIndex = position724, tokenIndex724 + if buffer[position] != rune('N') { + goto l723 + } + position++ } - position++ - goto l720 - l722: - position, tokenIndex = position720, tokenIndex720 - if buffer[position] != rune('z') { - goto l718 - } - position++ - } - l720: - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l718 - } - position++ - { - position723, tokenIndex723 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l723 - } - position++ - goto l724 - l723: - position, tokenIndex = position723, tokenIndex723 - } - l724: - { - position725, tokenIndex725 := position, tokenIndex + l724: { position726, tokenIndex726 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { + if buffer[position] != rune('z') { goto l727 } position++ goto l726 l727: position, tokenIndex = position726, tokenIndex726 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l728 - } - position++ - goto l726 - l728: - position, tokenIndex = position726, tokenIndex726 - { - position730, tokenIndex730 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l731 - } - position++ - goto l730 - l731: - position, tokenIndex = position730, tokenIndex730 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l729 - } - position++ - } - l730: - goto l726 - l729: - position, tokenIndex = position726, tokenIndex726 - if buffer[position] != rune('_') { - goto l725 + if buffer[position] != rune('Z') { + goto l723 } position++ } l726: - goto l718 - l725: - position, tokenIndex = position725, tokenIndex725 - } - { - position732, tokenIndex732 := position, tokenIndex - if buffer[position] != rune('.') { - goto l732 - } - position++ - l734: { - position735, tokenIndex735 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l735 + position728, tokenIndex728 := position, tokenIndex + if buffer[position] != rune('c') { + goto l729 } position++ + goto l728 + l729: + position, tokenIndex = position728, tokenIndex728 + if buffer[position] != rune('C') { + goto l723 + } + position++ + } + l728: + { + position730, tokenIndex730 := position, tokenIndex + if buffer[position] != rune('v') { + goto l731 + } + position++ + goto l730 + l731: + position, tokenIndex = position730, tokenIndex730 + if buffer[position] != rune('V') { + goto l723 + } + position++ + } + l730: + goto l693 + l723: + position, tokenIndex = position693, tokenIndex693 + if !_rules[ruleSVE2PredicateRegister]() { + goto l732 + } + goto l693 + l732: + position, tokenIndex = position693, tokenIndex693 + if !_rules[ruleARMVectorRegister]() { + goto l733 + } + goto l693 + l733: + position, tokenIndex = position693, tokenIndex693 + if !_rules[ruleSVE2SpecialValue]() { goto l734 + } + goto l693 + l734: + position, tokenIndex = position693, tokenIndex693 + if buffer[position] != rune('{') { + goto l691 + } + position++ + { + position735, tokenIndex735 := position, tokenIndex + if !_rules[ruleWS]() { + goto l735 + } + goto l736 l735: position, tokenIndex = position735, tokenIndex735 } + l736: + if !_rules[ruleARMVectorRegister]() { + goto l691 + } + l737: { - position736, tokenIndex736 := position, tokenIndex - if buffer[position] != rune('b') { - goto l737 - } - position++ - goto l736 - l737: - position, tokenIndex = position736, tokenIndex736 - if buffer[position] != rune('s') { + position738, tokenIndex738 := position, tokenIndex + if buffer[position] != rune(',') { goto l738 } position++ - goto l736 - l738: - position, tokenIndex = position736, tokenIndex736 - if buffer[position] != rune('d') { - goto l739 - } - position++ - goto l736 - l739: - position, tokenIndex = position736, tokenIndex736 - if buffer[position] != rune('h') { + { + position739, tokenIndex739 := position, tokenIndex + if !_rules[ruleWS]() { + goto l739 + } goto l740 + l739: + position, tokenIndex = position739, tokenIndex739 } - position++ - goto l736 l740: - position, tokenIndex = position736, tokenIndex736 - if buffer[position] != rune('q') { - goto l732 + if !_rules[ruleARMVectorRegister]() { + goto l738 } - position++ + goto l737 + l738: + position, tokenIndex = position738, tokenIndex738 } - l736: { position741, tokenIndex741 := position, tokenIndex - if buffer[position] != rune('[') { + if !_rules[ruleWS]() { goto l741 } - position++ - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l741 - } - position++ - { - position743, tokenIndex743 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l743 - } - position++ - goto l744 - l743: - position, tokenIndex = position743, tokenIndex743 - } - l744: - if buffer[position] != rune(']') { - goto l741 - } - position++ goto l742 l741: position, tokenIndex = position741, tokenIndex741 } l742: - goto l733 - l732: - position, tokenIndex = position732, tokenIndex732 + if buffer[position] != rune('}') { + goto l691 + } + position++ + { + position743, tokenIndex743 := position, tokenIndex + if buffer[position] != rune('[') { + goto l743 + } + position++ + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l743 + } + position++ + { + position745, tokenIndex745 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l745 + } + position++ + goto l746 + l745: + position, tokenIndex = position745, tokenIndex745 + } + l746: + if buffer[position] != rune(']') { + goto l743 + } + position++ + goto l744 + l743: + position, tokenIndex = position743, tokenIndex743 + } + l744: } - l733: - add(ruleARMVectorRegister, position719) + l693: + add(ruleARMRegister, position692) } return true - l718: - position, tokenIndex = position718, tokenIndex718 + l691: + position, tokenIndex = position691, tokenIndex691 return false }, - /* 48 SVE2PredicateRegister <- <(('p' / 'P') [0-9] [0-9]? '/' ('m' / 'M' / ('z' / 'Z')))> */ + /* 49 ARMVectorRegister <- <(('p' / 'v' / 'z') [0-9] [0-9]? !([0-9] / [0-9] / ([a-z] / [A-Z]) / '_') ('.' [0-9]* ('b' / 's' / 'd' / 'h' / 'q') ('[' [0-9] [0-9]? ']')?)?)> */ func() bool { - position745, tokenIndex745 := position, tokenIndex + position747, tokenIndex747 := position, tokenIndex { - position746 := position - { - position747, tokenIndex747 := position, tokenIndex - if buffer[position] != rune('p') { - goto l748 - } - position++ - goto l747 - l748: - position, tokenIndex = position747, tokenIndex747 - if buffer[position] != rune('P') { - goto l745 - } - position++ - } - l747: - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l745 - } - position++ + position748 := position { position749, tokenIndex749 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l749 + if buffer[position] != rune('p') { + goto l750 } position++ - goto l750 - l749: + goto l749 + l750: position, tokenIndex = position749, tokenIndex749 + if buffer[position] != rune('v') { + goto l751 + } + position++ + goto l749 + l751: + position, tokenIndex = position749, tokenIndex749 + if buffer[position] != rune('z') { + goto l747 + } + position++ } - l750: - if buffer[position] != rune('/') { - goto l745 + l749: + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l747 } position++ { - position751, tokenIndex751 := position, tokenIndex - if buffer[position] != rune('m') { + position752, tokenIndex752 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { goto l752 } position++ - goto l751 + goto l753 l752: - position, tokenIndex = position751, tokenIndex751 - if buffer[position] != rune('M') { - goto l753 + position, tokenIndex = position752, tokenIndex752 + } + l753: + { + position754, tokenIndex754 := position, tokenIndex + { + position755, tokenIndex755 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l756 + } + position++ + goto l755 + l756: + position, tokenIndex = position755, tokenIndex755 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l757 + } + position++ + goto l755 + l757: + position, tokenIndex = position755, tokenIndex755 + { + position759, tokenIndex759 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l760 + } + position++ + goto l759 + l760: + position, tokenIndex = position759, tokenIndex759 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l758 + } + position++ + } + l759: + goto l755 + l758: + position, tokenIndex = position755, tokenIndex755 + if buffer[position] != rune('_') { + goto l754 + } + position++ + } + l755: + goto l747 + l754: + position, tokenIndex = position754, tokenIndex754 + } + { + position761, tokenIndex761 := position, tokenIndex + if buffer[position] != rune('.') { + goto l761 } position++ - goto l751 - l753: - position, tokenIndex = position751, tokenIndex751 - { - position754, tokenIndex754 := position, tokenIndex - if buffer[position] != rune('z') { - goto l755 - } - position++ - goto l754 - l755: - position, tokenIndex = position754, tokenIndex754 - if buffer[position] != rune('Z') { - goto l745 - } - position++ - } - l754: - } - l751: - add(ruleSVE2PredicateRegister, position746) - } - return true - l745: - position, tokenIndex = position745, tokenIndex745 - return false - }, - /* 49 SVE2SpecialValue <- <(((('p' / 'P') ('o' / 'O') ('w' / 'W') '2') / (('v' / 'V') ('l' / 'L') ('1' / '2' / '3' / '4' / '5' / '6' / '7' / '8') ![0-9]) / (('v' / 'V') ('l' / 'L') '1' '6') / (('v' / 'V') ('l' / 'L') '3' '2') / (('v' / 'V') ('l' / 'L') '6' '4') / (('v' / 'V') ('l' / 'L') '1' '2' '8') / (('v' / 'V') ('l' / 'L') '2' '5' '6') / (('m' / 'M') ('u' / 'U') ('l' / 'L') '3') / (('m' / 'M') ('u' / 'U') ('l' / 'L') '4') / (('a' / 'A') ('l' / 'L') ('l' / 'L'))) !([0-9] / [0-9] / ([a-z] / [A-Z]) / '_'))> */ - func() bool { - position756, tokenIndex756 := position, tokenIndex - { - position757 := position - { - position758, tokenIndex758 := position, tokenIndex - { - position760, tokenIndex760 := position, tokenIndex - if buffer[position] != rune('p') { - goto l761 - } - position++ - goto l760 - l761: - position, tokenIndex = position760, tokenIndex760 - if buffer[position] != rune('P') { - goto l759 - } - position++ - } - l760: - { - position762, tokenIndex762 := position, tokenIndex - if buffer[position] != rune('o') { - goto l763 - } - position++ - goto l762 - l763: - position, tokenIndex = position762, tokenIndex762 - if buffer[position] != rune('O') { - goto l759 - } - position++ - } - l762: + l763: { position764, tokenIndex764 := position, tokenIndex - if buffer[position] != rune('w') { - goto l765 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l764 } position++ - goto l764 - l765: + goto l763 + l764: position, tokenIndex = position764, tokenIndex764 - if buffer[position] != rune('W') { - goto l759 + } + { + position765, tokenIndex765 := position, tokenIndex + if buffer[position] != rune('b') { + goto l766 } position++ - } - l764: - if buffer[position] != rune('2') { - goto l759 - } - position++ - goto l758 - l759: - position, tokenIndex = position758, tokenIndex758 - { - position767, tokenIndex767 := position, tokenIndex - if buffer[position] != rune('v') { + goto l765 + l766: + position, tokenIndex = position765, tokenIndex765 + if buffer[position] != rune('s') { + goto l767 + } + position++ + goto l765 + l767: + position, tokenIndex = position765, tokenIndex765 + if buffer[position] != rune('d') { goto l768 } position++ - goto l767 + goto l765 l768: - position, tokenIndex = position767, tokenIndex767 - if buffer[position] != rune('V') { - goto l766 + position, tokenIndex = position765, tokenIndex765 + if buffer[position] != rune('h') { + goto l769 + } + position++ + goto l765 + l769: + position, tokenIndex = position765, tokenIndex765 + if buffer[position] != rune('q') { + goto l761 } position++ } - l767: + l765: { - position769, tokenIndex769 := position, tokenIndex - if buffer[position] != rune('l') { + position770, tokenIndex770 := position, tokenIndex + if buffer[position] != rune('[') { goto l770 } position++ - goto l769 - l770: - position, tokenIndex = position769, tokenIndex769 - if buffer[position] != rune('L') { - goto l766 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l770 } position++ - } - l769: - { - position771, tokenIndex771 := position, tokenIndex - if buffer[position] != rune('1') { - goto l772 - } - position++ - goto l771 - l772: - position, tokenIndex = position771, tokenIndex771 - if buffer[position] != rune('2') { + { + position772, tokenIndex772 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l772 + } + position++ goto l773 + l772: + position, tokenIndex = position772, tokenIndex772 } - position++ - goto l771 l773: - position, tokenIndex = position771, tokenIndex771 - if buffer[position] != rune('3') { - goto l774 + if buffer[position] != rune(']') { + goto l770 } position++ goto l771 - l774: - position, tokenIndex = position771, tokenIndex771 - if buffer[position] != rune('4') { - goto l775 - } - position++ - goto l771 - l775: - position, tokenIndex = position771, tokenIndex771 - if buffer[position] != rune('5') { - goto l776 - } - position++ - goto l771 - l776: - position, tokenIndex = position771, tokenIndex771 - if buffer[position] != rune('6') { - goto l777 - } - position++ - goto l771 - l777: - position, tokenIndex = position771, tokenIndex771 - if buffer[position] != rune('7') { - goto l778 - } - position++ - goto l771 - l778: - position, tokenIndex = position771, tokenIndex771 - if buffer[position] != rune('8') { - goto l766 - } - position++ + l770: + position, tokenIndex = position770, tokenIndex770 } l771: - { - position779, tokenIndex779 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l779 - } - position++ - goto l766 - l779: - position, tokenIndex = position779, tokenIndex779 + goto l762 + l761: + position, tokenIndex = position761, tokenIndex761 + } + l762: + add(ruleARMVectorRegister, position748) + } + return true + l747: + position, tokenIndex = position747, tokenIndex747 + return false + }, + /* 50 SVE2PredicateRegister <- <(('p' / 'P') [0-9] [0-9]? '/' ('m' / 'M' / ('z' / 'Z')))> */ + func() bool { + position774, tokenIndex774 := position, tokenIndex + { + position775 := position + { + position776, tokenIndex776 := position, tokenIndex + if buffer[position] != rune('p') { + goto l777 } - goto l758 - l766: - position, tokenIndex = position758, tokenIndex758 - { - position781, tokenIndex781 := position, tokenIndex - if buffer[position] != rune('v') { - goto l782 - } - position++ + position++ + goto l776 + l777: + position, tokenIndex = position776, tokenIndex776 + if buffer[position] != rune('P') { + goto l774 + } + position++ + } + l776: + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l774 + } + position++ + { + position778, tokenIndex778 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l778 + } + position++ + goto l779 + l778: + position, tokenIndex = position778, tokenIndex778 + } + l779: + if buffer[position] != rune('/') { + goto l774 + } + position++ + { + position780, tokenIndex780 := position, tokenIndex + if buffer[position] != rune('m') { goto l781 - l782: - position, tokenIndex = position781, tokenIndex781 - if buffer[position] != rune('V') { - goto l780 - } - position++ } + position++ + goto l780 l781: + position, tokenIndex = position780, tokenIndex780 + if buffer[position] != rune('M') { + goto l782 + } + position++ + goto l780 + l782: + position, tokenIndex = position780, tokenIndex780 { position783, tokenIndex783 := position, tokenIndex - if buffer[position] != rune('l') { + if buffer[position] != rune('z') { goto l784 } position++ goto l783 l784: position, tokenIndex = position783, tokenIndex783 - if buffer[position] != rune('L') { - goto l780 + if buffer[position] != rune('Z') { + goto l774 } position++ } l783: - if buffer[position] != rune('1') { - goto l780 - } - position++ - if buffer[position] != rune('6') { - goto l780 - } - position++ - goto l758 - l780: - position, tokenIndex = position758, tokenIndex758 + } + l780: + add(ruleSVE2PredicateRegister, position775) + } + return true + l774: + position, tokenIndex = position774, tokenIndex774 + return false + }, + /* 51 SVE2SpecialValue <- <(((('p' / 'P') ('o' / 'O') ('w' / 'W') '2') / (('v' / 'V') ('l' / 'L') ('1' / '2' / '3' / '4' / '5' / '6' / '7' / '8') ![0-9]) / (('v' / 'V') ('l' / 'L') '1' '6') / (('v' / 'V') ('l' / 'L') '3' '2') / (('v' / 'V') ('l' / 'L') '6' '4') / (('v' / 'V') ('l' / 'L') '1' '2' '8') / (('v' / 'V') ('l' / 'L') '2' '5' '6') / (('m' / 'M') ('u' / 'U') ('l' / 'L') '3') / (('m' / 'M') ('u' / 'U') ('l' / 'L') '4') / (('a' / 'A') ('l' / 'L') ('l' / 'L'))) !([0-9] / [0-9] / ([a-z] / [A-Z]) / '_'))> */ + func() bool { + position785, tokenIndex785 := position, tokenIndex + { + position786 := position + { + position787, tokenIndex787 := position, tokenIndex { - position786, tokenIndex786 := position, tokenIndex - if buffer[position] != rune('v') { - goto l787 + position789, tokenIndex789 := position, tokenIndex + if buffer[position] != rune('p') { + goto l790 } position++ - goto l786 - l787: - position, tokenIndex = position786, tokenIndex786 - if buffer[position] != rune('V') { - goto l785 + goto l789 + l790: + position, tokenIndex = position789, tokenIndex789 + if buffer[position] != rune('P') { + goto l788 } position++ } - l786: - { - position788, tokenIndex788 := position, tokenIndex - if buffer[position] != rune('l') { - goto l789 - } - position++ - goto l788 - l789: - position, tokenIndex = position788, tokenIndex788 - if buffer[position] != rune('L') { - goto l785 - } - position++ - } - l788: - if buffer[position] != rune('3') { - goto l785 - } - position++ - if buffer[position] != rune('2') { - goto l785 - } - position++ - goto l758 - l785: - position, tokenIndex = position758, tokenIndex758 + l789: { position791, tokenIndex791 := position, tokenIndex - if buffer[position] != rune('v') { + if buffer[position] != rune('o') { goto l792 } position++ goto l791 l792: position, tokenIndex = position791, tokenIndex791 - if buffer[position] != rune('V') { - goto l790 + if buffer[position] != rune('O') { + goto l788 } position++ } l791: { position793, tokenIndex793 := position, tokenIndex - if buffer[position] != rune('l') { + if buffer[position] != rune('w') { goto l794 } position++ goto l793 l794: position, tokenIndex = position793, tokenIndex793 - if buffer[position] != rune('L') { - goto l790 + if buffer[position] != rune('W') { + goto l788 } position++ } l793: - if buffer[position] != rune('6') { - goto l790 + if buffer[position] != rune('2') { + goto l788 } position++ - if buffer[position] != rune('4') { - goto l790 - } - position++ - goto l758 - l790: - position, tokenIndex = position758, tokenIndex758 + goto l787 + l788: + position, tokenIndex = position787, tokenIndex787 { position796, tokenIndex796 := position, tokenIndex if buffer[position] != rune('v') { @@ -6370,144 +6361,128 @@ position++ } l798: - if buffer[position] != rune('1') { - goto l795 - } - position++ - if buffer[position] != rune('2') { - goto l795 - } - position++ - if buffer[position] != rune('8') { - goto l795 - } - position++ - goto l758 - l795: - position, tokenIndex = position758, tokenIndex758 { - position801, tokenIndex801 := position, tokenIndex - if buffer[position] != rune('v') { + position800, tokenIndex800 := position, tokenIndex + if buffer[position] != rune('1') { + goto l801 + } + position++ + goto l800 + l801: + position, tokenIndex = position800, tokenIndex800 + if buffer[position] != rune('2') { goto l802 } position++ - goto l801 + goto l800 l802: - position, tokenIndex = position801, tokenIndex801 - if buffer[position] != rune('V') { - goto l800 + position, tokenIndex = position800, tokenIndex800 + if buffer[position] != rune('3') { + goto l803 } position++ - } - l801: - { - position803, tokenIndex803 := position, tokenIndex - if buffer[position] != rune('l') { + goto l800 + l803: + position, tokenIndex = position800, tokenIndex800 + if buffer[position] != rune('4') { goto l804 } position++ - goto l803 + goto l800 l804: - position, tokenIndex = position803, tokenIndex803 - if buffer[position] != rune('L') { - goto l800 + position, tokenIndex = position800, tokenIndex800 + if buffer[position] != rune('5') { + goto l805 } position++ - } - l803: - if buffer[position] != rune('2') { goto l800 - } - position++ - if buffer[position] != rune('5') { + l805: + position, tokenIndex = position800, tokenIndex800 + if buffer[position] != rune('6') { + goto l806 + } + position++ goto l800 - } - position++ - if buffer[position] != rune('6') { - goto l800 - } - position++ - goto l758 - l800: - position, tokenIndex = position758, tokenIndex758 - { - position806, tokenIndex806 := position, tokenIndex - if buffer[position] != rune('m') { + l806: + position, tokenIndex = position800, tokenIndex800 + if buffer[position] != rune('7') { goto l807 } position++ - goto l806 + goto l800 l807: - position, tokenIndex = position806, tokenIndex806 - if buffer[position] != rune('M') { - goto l805 + position, tokenIndex = position800, tokenIndex800 + if buffer[position] != rune('8') { + goto l795 } position++ } - l806: + l800: { position808, tokenIndex808 := position, tokenIndex - if buffer[position] != rune('u') { - goto l809 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l808 } position++ - goto l808 - l809: + goto l795 + l808: position, tokenIndex = position808, tokenIndex808 - if buffer[position] != rune('U') { - goto l805 - } - position++ } - l808: + goto l787 + l795: + position, tokenIndex = position787, tokenIndex787 { position810, tokenIndex810 := position, tokenIndex - if buffer[position] != rune('l') { + if buffer[position] != rune('v') { goto l811 } position++ goto l810 l811: position, tokenIndex = position810, tokenIndex810 - if buffer[position] != rune('L') { - goto l805 + if buffer[position] != rune('V') { + goto l809 } position++ } l810: - if buffer[position] != rune('3') { - goto l805 + { + position812, tokenIndex812 := position, tokenIndex + if buffer[position] != rune('l') { + goto l813 + } + position++ + goto l812 + l813: + position, tokenIndex = position812, tokenIndex812 + if buffer[position] != rune('L') { + goto l809 + } + position++ + } + l812: + if buffer[position] != rune('1') { + goto l809 } position++ - goto l758 - l805: - position, tokenIndex = position758, tokenIndex758 - { - position813, tokenIndex813 := position, tokenIndex - if buffer[position] != rune('m') { - goto l814 - } - position++ - goto l813 - l814: - position, tokenIndex = position813, tokenIndex813 - if buffer[position] != rune('M') { - goto l812 - } - position++ + if buffer[position] != rune('6') { + goto l809 } - l813: + position++ + goto l787 + l809: + position, tokenIndex = position787, tokenIndex787 { position815, tokenIndex815 := position, tokenIndex - if buffer[position] != rune('u') { + if buffer[position] != rune('v') { goto l816 } position++ goto l815 l816: position, tokenIndex = position815, tokenIndex815 - if buffer[position] != rune('U') { - goto l812 + if buffer[position] != rune('V') { + goto l814 } position++ } @@ -6522,1145 +6497,1384 @@ l818: position, tokenIndex = position817, tokenIndex817 if buffer[position] != rune('L') { - goto l812 + goto l814 } position++ } l817: - if buffer[position] != rune('4') { - goto l812 + if buffer[position] != rune('3') { + goto l814 } position++ - goto l758 - l812: - position, tokenIndex = position758, tokenIndex758 + if buffer[position] != rune('2') { + goto l814 + } + position++ + goto l787 + l814: + position, tokenIndex = position787, tokenIndex787 { - position819, tokenIndex819 := position, tokenIndex - if buffer[position] != rune('a') { - goto l820 + position820, tokenIndex820 := position, tokenIndex + if buffer[position] != rune('v') { + goto l821 } position++ - goto l819 - l820: - position, tokenIndex = position819, tokenIndex819 - if buffer[position] != rune('A') { - goto l756 + goto l820 + l821: + position, tokenIndex = position820, tokenIndex820 + if buffer[position] != rune('V') { + goto l819 } position++ } - l819: + l820: { - position821, tokenIndex821 := position, tokenIndex + position822, tokenIndex822 := position, tokenIndex if buffer[position] != rune('l') { - goto l822 + goto l823 } position++ - goto l821 - l822: - position, tokenIndex = position821, tokenIndex821 + goto l822 + l823: + position, tokenIndex = position822, tokenIndex822 if buffer[position] != rune('L') { - goto l756 + goto l819 } position++ } - l821: + l822: + if buffer[position] != rune('6') { + goto l819 + } + position++ + if buffer[position] != rune('4') { + goto l819 + } + position++ + goto l787 + l819: + position, tokenIndex = position787, tokenIndex787 { - position823, tokenIndex823 := position, tokenIndex - if buffer[position] != rune('l') { + position825, tokenIndex825 := position, tokenIndex + if buffer[position] != rune('v') { + goto l826 + } + position++ + goto l825 + l826: + position, tokenIndex = position825, tokenIndex825 + if buffer[position] != rune('V') { goto l824 } position++ - goto l823 - l824: - position, tokenIndex = position823, tokenIndex823 - if buffer[position] != rune('L') { - goto l756 - } - position++ } - l823: - } - l758: - { - position825, tokenIndex825 := position, tokenIndex + l825: { - position826, tokenIndex826 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l827 - } - position++ - goto l826 - l827: - position, tokenIndex = position826, tokenIndex826 - if c := buffer[position]; c < rune('0') || c > rune('9') { + position827, tokenIndex827 := position, tokenIndex + if buffer[position] != rune('l') { goto l828 } position++ - goto l826 + goto l827 l828: - position, tokenIndex = position826, tokenIndex826 - { - position830, tokenIndex830 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l831 - } - position++ - goto l830 - l831: - position, tokenIndex = position830, tokenIndex830 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l829 - } - position++ - } - l830: - goto l826 - l829: - position, tokenIndex = position826, tokenIndex826 - if buffer[position] != rune('_') { - goto l825 + position, tokenIndex = position827, tokenIndex827 + if buffer[position] != rune('L') { + goto l824 } position++ } - l826: - goto l756 - l825: - position, tokenIndex = position825, tokenIndex825 - } - add(ruleSVE2SpecialValue, position757) - } - return true - l756: - position, tokenIndex = position756, tokenIndex756 - return false - }, - /* 50 MemoryRef <- <((SymbolRef BaseIndexScale) / SymbolRef / Low12BitsSymbolRef / (Offset* BaseIndexScale) / (SegmentRegister Offset BaseIndexScale) / (SegmentRegister BaseIndexScale) / (SegmentRegister Offset) / ARMBaseIndexScale / BaseIndexScale)> */ - func() bool { - position832, tokenIndex832 := position, tokenIndex - { - position833 := position - { - position834, tokenIndex834 := position, tokenIndex - if !_rules[ruleSymbolRef]() { - goto l835 - } - if !_rules[ruleBaseIndexScale]() { - goto l835 - } - goto l834 - l835: - position, tokenIndex = position834, tokenIndex834 - if !_rules[ruleSymbolRef]() { - goto l836 - } - goto l834 - l836: - position, tokenIndex = position834, tokenIndex834 - if !_rules[ruleLow12BitsSymbolRef]() { - goto l837 - } - goto l834 - l837: - position, tokenIndex = position834, tokenIndex834 - l839: - { - position840, tokenIndex840 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l840 - } - goto l839 - l840: - position, tokenIndex = position840, tokenIndex840 - } - if !_rules[ruleBaseIndexScale]() { - goto l838 - } - goto l834 - l838: - position, tokenIndex = position834, tokenIndex834 - if !_rules[ruleSegmentRegister]() { - goto l841 - } - if !_rules[ruleOffset]() { - goto l841 - } - if !_rules[ruleBaseIndexScale]() { - goto l841 - } - goto l834 - l841: - position, tokenIndex = position834, tokenIndex834 - if !_rules[ruleSegmentRegister]() { - goto l842 - } - if !_rules[ruleBaseIndexScale]() { - goto l842 - } - goto l834 - l842: - position, tokenIndex = position834, tokenIndex834 - if !_rules[ruleSegmentRegister]() { - goto l843 - } - if !_rules[ruleOffset]() { - goto l843 - } - goto l834 - l843: - position, tokenIndex = position834, tokenIndex834 - if !_rules[ruleARMBaseIndexScale]() { - goto l844 - } - goto l834 - l844: - position, tokenIndex = position834, tokenIndex834 - if !_rules[ruleBaseIndexScale]() { - goto l832 - } - } - l834: - add(ruleMemoryRef, position833) - } - return true - l832: - position, tokenIndex = position832, tokenIndex832 - return false - }, - /* 51 SymbolRef <- <((Offset* '+')? (LocalSymbol / SymbolName) Offset* ('@' Section Offset*)?)> */ - func() bool { - position845, tokenIndex845 := position, tokenIndex - { - position846 := position - { - position847, tokenIndex847 := position, tokenIndex - l849: - { - position850, tokenIndex850 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l850 - } - goto l849 - l850: - position, tokenIndex = position850, tokenIndex850 - } - if buffer[position] != rune('+') { - goto l847 + l827: + if buffer[position] != rune('1') { + goto l824 } position++ - goto l848 - l847: - position, tokenIndex = position847, tokenIndex847 - } - l848: - { - position851, tokenIndex851 := position, tokenIndex - if !_rules[ruleLocalSymbol]() { + if buffer[position] != rune('2') { + goto l824 + } + position++ + if buffer[position] != rune('8') { + goto l824 + } + position++ + goto l787 + l824: + position, tokenIndex = position787, tokenIndex787 + { + position830, tokenIndex830 := position, tokenIndex + if buffer[position] != rune('v') { + goto l831 + } + position++ + goto l830 + l831: + position, tokenIndex = position830, tokenIndex830 + if buffer[position] != rune('V') { + goto l829 + } + position++ + } + l830: + { + position832, tokenIndex832 := position, tokenIndex + if buffer[position] != rune('l') { + goto l833 + } + position++ + goto l832 + l833: + position, tokenIndex = position832, tokenIndex832 + if buffer[position] != rune('L') { + goto l829 + } + position++ + } + l832: + if buffer[position] != rune('2') { + goto l829 + } + position++ + if buffer[position] != rune('5') { + goto l829 + } + position++ + if buffer[position] != rune('6') { + goto l829 + } + position++ + goto l787 + l829: + position, tokenIndex = position787, tokenIndex787 + { + position835, tokenIndex835 := position, tokenIndex + if buffer[position] != rune('m') { + goto l836 + } + position++ + goto l835 + l836: + position, tokenIndex = position835, tokenIndex835 + if buffer[position] != rune('M') { + goto l834 + } + position++ + } + l835: + { + position837, tokenIndex837 := position, tokenIndex + if buffer[position] != rune('u') { + goto l838 + } + position++ + goto l837 + l838: + position, tokenIndex = position837, tokenIndex837 + if buffer[position] != rune('U') { + goto l834 + } + position++ + } + l837: + { + position839, tokenIndex839 := position, tokenIndex + if buffer[position] != rune('l') { + goto l840 + } + position++ + goto l839 + l840: + position, tokenIndex = position839, tokenIndex839 + if buffer[position] != rune('L') { + goto l834 + } + position++ + } + l839: + if buffer[position] != rune('3') { + goto l834 + } + position++ + goto l787 + l834: + position, tokenIndex = position787, tokenIndex787 + { + position842, tokenIndex842 := position, tokenIndex + if buffer[position] != rune('m') { + goto l843 + } + position++ + goto l842 + l843: + position, tokenIndex = position842, tokenIndex842 + if buffer[position] != rune('M') { + goto l841 + } + position++ + } + l842: + { + position844, tokenIndex844 := position, tokenIndex + if buffer[position] != rune('u') { + goto l845 + } + position++ + goto l844 + l845: + position, tokenIndex = position844, tokenIndex844 + if buffer[position] != rune('U') { + goto l841 + } + position++ + } + l844: + { + position846, tokenIndex846 := position, tokenIndex + if buffer[position] != rune('l') { + goto l847 + } + position++ + goto l846 + l847: + position, tokenIndex = position846, tokenIndex846 + if buffer[position] != rune('L') { + goto l841 + } + position++ + } + l846: + if buffer[position] != rune('4') { + goto l841 + } + position++ + goto l787 + l841: + position, tokenIndex = position787, tokenIndex787 + { + position848, tokenIndex848 := position, tokenIndex + if buffer[position] != rune('a') { + goto l849 + } + position++ + goto l848 + l849: + position, tokenIndex = position848, tokenIndex848 + if buffer[position] != rune('A') { + goto l785 + } + position++ + } + l848: + { + position850, tokenIndex850 := position, tokenIndex + if buffer[position] != rune('l') { + goto l851 + } + position++ + goto l850 + l851: + position, tokenIndex = position850, tokenIndex850 + if buffer[position] != rune('L') { + goto l785 + } + position++ + } + l850: + { + position852, tokenIndex852 := position, tokenIndex + if buffer[position] != rune('l') { + goto l853 + } + position++ goto l852 + l853: + position, tokenIndex = position852, tokenIndex852 + if buffer[position] != rune('L') { + goto l785 + } + position++ } - goto l851 l852: - position, tokenIndex = position851, tokenIndex851 - if !_rules[ruleSymbolName]() { - goto l845 - } } - l851: - l853: + l787: { position854, tokenIndex854 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l854 + { + position855, tokenIndex855 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l856 + } + position++ + goto l855 + l856: + position, tokenIndex = position855, tokenIndex855 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l857 + } + position++ + goto l855 + l857: + position, tokenIndex = position855, tokenIndex855 + { + position859, tokenIndex859 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l860 + } + position++ + goto l859 + l860: + position, tokenIndex = position859, tokenIndex859 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l858 + } + position++ + } + l859: + goto l855 + l858: + position, tokenIndex = position855, tokenIndex855 + if buffer[position] != rune('_') { + goto l854 + } + position++ } - goto l853 + l855: + goto l785 l854: position, tokenIndex = position854, tokenIndex854 } - { - position855, tokenIndex855 := position, tokenIndex - if buffer[position] != rune('@') { - goto l855 - } - position++ - if !_rules[ruleSection]() { - goto l855 - } - l857: - { - position858, tokenIndex858 := position, tokenIndex - if !_rules[ruleOffset]() { - goto l858 - } - goto l857 - l858: - position, tokenIndex = position858, tokenIndex858 - } - goto l856 - l855: - position, tokenIndex = position855, tokenIndex855 - } - l856: - add(ruleSymbolRef, position846) + add(ruleSVE2SpecialValue, position786) } return true - l845: - position, tokenIndex = position845, tokenIndex845 + l785: + position, tokenIndex = position785, tokenIndex785 return false }, - /* 52 Low12BitsSymbolRef <- <(':' ('l' / 'L') ('o' / 'O') '1' '2' ':' (LocalSymbol / SymbolName) Offset?)> */ + /* 52 MemoryRef <- <((SymbolRef BaseIndexScale) / SymbolRef / Low12BitsSymbolRef / (Offset* BaseIndexScale) / (SegmentRegister Offset BaseIndexScale) / (SegmentRegister BaseIndexScale) / (SegmentRegister Offset) / ARMBaseIndexScale / BaseIndexScale)> */ func() bool { - position859, tokenIndex859 := position, tokenIndex + position861, tokenIndex861 := position, tokenIndex { - position860 := position - if buffer[position] != rune(':') { - goto l859 - } - position++ - { - position861, tokenIndex861 := position, tokenIndex - if buffer[position] != rune('l') { - goto l862 - } - position++ - goto l861 - l862: - position, tokenIndex = position861, tokenIndex861 - if buffer[position] != rune('L') { - goto l859 - } - position++ - } - l861: + position862 := position { position863, tokenIndex863 := position, tokenIndex - if buffer[position] != rune('o') { + if !_rules[ruleSymbolRef]() { goto l864 } - position++ + if !_rules[ruleBaseIndexScale]() { + goto l864 + } goto l863 l864: position, tokenIndex = position863, tokenIndex863 - if buffer[position] != rune('O') { - goto l859 + if !_rules[ruleSymbolRef]() { + goto l865 + } + goto l863 + l865: + position, tokenIndex = position863, tokenIndex863 + if !_rules[ruleLow12BitsSymbolRef]() { + goto l866 + } + goto l863 + l866: + position, tokenIndex = position863, tokenIndex863 + l868: + { + position869, tokenIndex869 := position, tokenIndex + if !_rules[ruleOffset]() { + goto l869 + } + goto l868 + l869: + position, tokenIndex = position869, tokenIndex869 + } + if !_rules[ruleBaseIndexScale]() { + goto l867 + } + goto l863 + l867: + position, tokenIndex = position863, tokenIndex863 + if !_rules[ruleSegmentRegister]() { + goto l870 + } + if !_rules[ruleOffset]() { + goto l870 + } + if !_rules[ruleBaseIndexScale]() { + goto l870 + } + goto l863 + l870: + position, tokenIndex = position863, tokenIndex863 + if !_rules[ruleSegmentRegister]() { + goto l871 + } + if !_rules[ruleBaseIndexScale]() { + goto l871 + } + goto l863 + l871: + position, tokenIndex = position863, tokenIndex863 + if !_rules[ruleSegmentRegister]() { + goto l872 + } + if !_rules[ruleOffset]() { + goto l872 + } + goto l863 + l872: + position, tokenIndex = position863, tokenIndex863 + if !_rules[ruleARMBaseIndexScale]() { + goto l873 + } + goto l863 + l873: + position, tokenIndex = position863, tokenIndex863 + if !_rules[ruleBaseIndexScale]() { + goto l861 + } + } + l863: + add(ruleMemoryRef, position862) + } + return true + l861: + position, tokenIndex = position861, tokenIndex861 + return false + }, + /* 53 SymbolRef <- <((Offset* '+')? (LocalSymbol / SymbolName) Offset* ('@' Section Offset*)?)> */ + func() bool { + position874, tokenIndex874 := position, tokenIndex + { + position875 := position + { + position876, tokenIndex876 := position, tokenIndex + l878: + { + position879, tokenIndex879 := position, tokenIndex + if !_rules[ruleOffset]() { + goto l879 + } + goto l878 + l879: + position, tokenIndex = position879, tokenIndex879 + } + if buffer[position] != rune('+') { + goto l876 + } + position++ + goto l877 + l876: + position, tokenIndex = position876, tokenIndex876 + } + l877: + { + position880, tokenIndex880 := position, tokenIndex + if !_rules[ruleLocalSymbol]() { + goto l881 + } + goto l880 + l881: + position, tokenIndex = position880, tokenIndex880 + if !_rules[ruleSymbolName]() { + goto l874 + } + } + l880: + l882: + { + position883, tokenIndex883 := position, tokenIndex + if !_rules[ruleOffset]() { + goto l883 + } + goto l882 + l883: + position, tokenIndex = position883, tokenIndex883 + } + { + position884, tokenIndex884 := position, tokenIndex + if buffer[position] != rune('@') { + goto l884 + } + position++ + if !_rules[ruleSection]() { + goto l884 + } + l886: + { + position887, tokenIndex887 := position, tokenIndex + if !_rules[ruleOffset]() { + goto l887 + } + goto l886 + l887: + position, tokenIndex = position887, tokenIndex887 + } + goto l885 + l884: + position, tokenIndex = position884, tokenIndex884 + } + l885: + add(ruleSymbolRef, position875) + } + return true + l874: + position, tokenIndex = position874, tokenIndex874 + return false + }, + /* 54 Low12BitsSymbolRef <- <(':' ('l' / 'L') ('o' / 'O') '1' '2' ':' (LocalSymbol / SymbolName) Offset?)> */ + func() bool { + position888, tokenIndex888 := position, tokenIndex + { + position889 := position + if buffer[position] != rune(':') { + goto l888 + } + position++ + { + position890, tokenIndex890 := position, tokenIndex + if buffer[position] != rune('l') { + goto l891 + } + position++ + goto l890 + l891: + position, tokenIndex = position890, tokenIndex890 + if buffer[position] != rune('L') { + goto l888 } position++ } - l863: + l890: + { + position892, tokenIndex892 := position, tokenIndex + if buffer[position] != rune('o') { + goto l893 + } + position++ + goto l892 + l893: + position, tokenIndex = position892, tokenIndex892 + if buffer[position] != rune('O') { + goto l888 + } + position++ + } + l892: if buffer[position] != rune('1') { - goto l859 + goto l888 } position++ if buffer[position] != rune('2') { - goto l859 + goto l888 } position++ if buffer[position] != rune(':') { - goto l859 + goto l888 } position++ { - position865, tokenIndex865 := position, tokenIndex + position894, tokenIndex894 := position, tokenIndex if !_rules[ruleLocalSymbol]() { - goto l866 + goto l895 } - goto l865 - l866: - position, tokenIndex = position865, tokenIndex865 + goto l894 + l895: + position, tokenIndex = position894, tokenIndex894 if !_rules[ruleSymbolName]() { - goto l859 + goto l888 } } - l865: + l894: { - position867, tokenIndex867 := position, tokenIndex + position896, tokenIndex896 := position, tokenIndex if !_rules[ruleOffset]() { - goto l867 + goto l896 } - goto l868 - l867: - position, tokenIndex = position867, tokenIndex867 + goto l897 + l896: + position, tokenIndex = position896, tokenIndex896 } - l868: - add(ruleLow12BitsSymbolRef, position860) + l897: + add(ruleLow12BitsSymbolRef, position889) } return true - l859: - position, tokenIndex = position859, tokenIndex859 + l888: + position, tokenIndex = position888, tokenIndex888 return false }, - /* 53 ARMBaseIndexScale <- <('[' ARMRegister (',' WS? (('#' Offset (('*' [0-9]+) / ('*' '(' [0-9]+ Operator [0-9]+ ')') / ('+' [0-9]+)*)?) / ARMGOTLow12 / Low12BitsSymbolRef / ARMRegister) (',' WS? ARMConstantTweak)?)? ']' ARMPostincrement?)> */ + /* 55 ARMBaseIndexScale <- <('[' ARMRegister (',' WS? (('#' Offset (('*' [0-9]+) / ('*' '(' [0-9]+ Operator [0-9]+ ')') / ('+' [0-9]+)*)?) / ARMGOTLow12 / Low12BitsSymbolRef / ARMRegister) (',' WS? ARMConstantTweak)?)? ']' ARMPostincrement?)> */ func() bool { - position869, tokenIndex869 := position, tokenIndex + position898, tokenIndex898 := position, tokenIndex { - position870 := position + position899 := position if buffer[position] != rune('[') { - goto l869 + goto l898 } position++ if !_rules[ruleARMRegister]() { - goto l869 + goto l898 } { - position871, tokenIndex871 := position, tokenIndex + position900, tokenIndex900 := position, tokenIndex if buffer[position] != rune(',') { - goto l871 + goto l900 } position++ { - position873, tokenIndex873 := position, tokenIndex + position902, tokenIndex902 := position, tokenIndex if !_rules[ruleWS]() { - goto l873 + goto l902 } - goto l874 - l873: - position, tokenIndex = position873, tokenIndex873 + goto l903 + l902: + position, tokenIndex = position902, tokenIndex902 } - l874: + l903: { - position875, tokenIndex875 := position, tokenIndex + position904, tokenIndex904 := position, tokenIndex if buffer[position] != rune('#') { - goto l876 + goto l905 } position++ if !_rules[ruleOffset]() { - goto l876 + goto l905 } { - position877, tokenIndex877 := position, tokenIndex + position906, tokenIndex906 := position, tokenIndex { - position879, tokenIndex879 := position, tokenIndex + position908, tokenIndex908 := position, tokenIndex if buffer[position] != rune('*') { - goto l880 + goto l909 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l880 + goto l909 } position++ - l881: + l910: { - position882, tokenIndex882 := position, tokenIndex + position911, tokenIndex911 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l882 + goto l911 } position++ - goto l881 - l882: - position, tokenIndex = position882, tokenIndex882 + goto l910 + l911: + position, tokenIndex = position911, tokenIndex911 } - goto l879 - l880: - position, tokenIndex = position879, tokenIndex879 + goto l908 + l909: + position, tokenIndex = position908, tokenIndex908 if buffer[position] != rune('*') { - goto l883 + goto l912 } position++ if buffer[position] != rune('(') { - goto l883 + goto l912 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l883 + goto l912 } position++ - l884: + l913: { - position885, tokenIndex885 := position, tokenIndex + position914, tokenIndex914 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l885 + goto l914 } position++ - goto l884 - l885: - position, tokenIndex = position885, tokenIndex885 + goto l913 + l914: + position, tokenIndex = position914, tokenIndex914 } if !_rules[ruleOperator]() { - goto l883 + goto l912 } if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l883 + goto l912 } position++ - l886: + l915: { - position887, tokenIndex887 := position, tokenIndex + position916, tokenIndex916 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l887 + goto l916 } position++ - goto l886 - l887: - position, tokenIndex = position887, tokenIndex887 + goto l915 + l916: + position, tokenIndex = position916, tokenIndex916 } if buffer[position] != rune(')') { - goto l883 + goto l912 } position++ - goto l879 - l883: - position, tokenIndex = position879, tokenIndex879 - l888: + goto l908 + l912: + position, tokenIndex = position908, tokenIndex908 + l917: { - position889, tokenIndex889 := position, tokenIndex + position918, tokenIndex918 := position, tokenIndex if buffer[position] != rune('+') { - goto l889 + goto l918 } position++ if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l889 + goto l918 } position++ - l890: + l919: { - position891, tokenIndex891 := position, tokenIndex + position920, tokenIndex920 := position, tokenIndex if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l891 + goto l920 } position++ - goto l890 - l891: - position, tokenIndex = position891, tokenIndex891 + goto l919 + l920: + position, tokenIndex = position920, tokenIndex920 } - goto l888 - l889: - position, tokenIndex = position889, tokenIndex889 + goto l917 + l918: + position, tokenIndex = position918, tokenIndex918 } } - l879: - goto l878 + l908: + goto l907 - position, tokenIndex = position877, tokenIndex877 + position, tokenIndex = position906, tokenIndex906 } - l878: - goto l875 - l876: - position, tokenIndex = position875, tokenIndex875 + l907: + goto l904 + l905: + position, tokenIndex = position904, tokenIndex904 if !_rules[ruleARMGOTLow12]() { - goto l892 + goto l921 } - goto l875 - l892: - position, tokenIndex = position875, tokenIndex875 + goto l904 + l921: + position, tokenIndex = position904, tokenIndex904 if !_rules[ruleLow12BitsSymbolRef]() { - goto l893 - } - goto l875 - l893: - position, tokenIndex = position875, tokenIndex875 - if !_rules[ruleARMRegister]() { - goto l871 - } - } - l875: - { - position894, tokenIndex894 := position, tokenIndex - if buffer[position] != rune(',') { - goto l894 - } - position++ - { - position896, tokenIndex896 := position, tokenIndex - if !_rules[ruleWS]() { - goto l896 - } - goto l897 - l896: - position, tokenIndex = position896, tokenIndex896 - } - l897: - if !_rules[ruleARMConstantTweak]() { - goto l894 - } - goto l895 - l894: - position, tokenIndex = position894, tokenIndex894 - } - l895: - goto l872 - l871: - position, tokenIndex = position871, tokenIndex871 - } - l872: - if buffer[position] != rune(']') { - goto l869 - } - position++ - { - position898, tokenIndex898 := position, tokenIndex - if !_rules[ruleARMPostincrement]() { - goto l898 - } - goto l899 - l898: - position, tokenIndex = position898, tokenIndex898 - } - l899: - add(ruleARMBaseIndexScale, position870) - } - return true - l869: - position, tokenIndex = position869, tokenIndex869 - return false - }, - /* 54 ARMGOTLow12 <- <(':' ('g' / 'G') ('o' / 'O') ('t' / 'T') '_' ('l' / 'L') ('o' / 'O') '1' '2' ':' SymbolName)> */ - func() bool { - position900, tokenIndex900 := position, tokenIndex - { - position901 := position - if buffer[position] != rune(':') { - goto l900 - } - position++ - { - position902, tokenIndex902 := position, tokenIndex - if buffer[position] != rune('g') { - goto l903 - } - position++ - goto l902 - l903: - position, tokenIndex = position902, tokenIndex902 - if buffer[position] != rune('G') { - goto l900 - } - position++ - } - l902: - { - position904, tokenIndex904 := position, tokenIndex - if buffer[position] != rune('o') { - goto l905 - } - position++ - goto l904 - l905: - position, tokenIndex = position904, tokenIndex904 - if buffer[position] != rune('O') { - goto l900 - } - position++ - } - l904: - { - position906, tokenIndex906 := position, tokenIndex - if buffer[position] != rune('t') { - goto l907 - } - position++ - goto l906 - l907: - position, tokenIndex = position906, tokenIndex906 - if buffer[position] != rune('T') { - goto l900 - } - position++ - } - l906: - if buffer[position] != rune('_') { - goto l900 - } - position++ - { - position908, tokenIndex908 := position, tokenIndex - if buffer[position] != rune('l') { - goto l909 - } - position++ - goto l908 - l909: - position, tokenIndex = position908, tokenIndex908 - if buffer[position] != rune('L') { - goto l900 - } - position++ - } - l908: - { - position910, tokenIndex910 := position, tokenIndex - if buffer[position] != rune('o') { - goto l911 - } - position++ - goto l910 - l911: - position, tokenIndex = position910, tokenIndex910 - if buffer[position] != rune('O') { - goto l900 - } - position++ - } - l910: - if buffer[position] != rune('1') { - goto l900 - } - position++ - if buffer[position] != rune('2') { - goto l900 - } - position++ - if buffer[position] != rune(':') { - goto l900 - } - position++ - if !_rules[ruleSymbolName]() { - goto l900 - } - add(ruleARMGOTLow12, position901) - } - return true - l900: - position, tokenIndex = position900, tokenIndex900 - return false - }, - /* 55 ARMPostincrement <- <'!'> */ - func() bool { - position912, tokenIndex912 := position, tokenIndex - { - position913 := position - if buffer[position] != rune('!') { - goto l912 - } - position++ - add(ruleARMPostincrement, position913) - } - return true - l912: - position, tokenIndex = position912, tokenIndex912 - return false - }, - /* 56 BaseIndexScale <- <('(' RegisterOrConstant? WS? (',' WS? RegisterOrConstant WS? (',' [0-9]+)?)? ')')> */ - func() bool { - position914, tokenIndex914 := position, tokenIndex - { - position915 := position - if buffer[position] != rune('(') { - goto l914 - } - position++ - { - position916, tokenIndex916 := position, tokenIndex - if !_rules[ruleRegisterOrConstant]() { - goto l916 - } - goto l917 - l916: - position, tokenIndex = position916, tokenIndex916 - } - l917: - { - position918, tokenIndex918 := position, tokenIndex - if !_rules[ruleWS]() { - goto l918 - } - goto l919 - l918: - position, tokenIndex = position918, tokenIndex918 - } - l919: - { - position920, tokenIndex920 := position, tokenIndex - if buffer[position] != rune(',') { - goto l920 - } - position++ - { - position922, tokenIndex922 := position, tokenIndex - if !_rules[ruleWS]() { goto l922 } - goto l923 + goto l904 l922: - position, tokenIndex = position922, tokenIndex922 - } - l923: - if !_rules[ruleRegisterOrConstant]() { - goto l920 - } - { - position924, tokenIndex924 := position, tokenIndex - if !_rules[ruleWS]() { - goto l924 + position, tokenIndex = position904, tokenIndex904 + if !_rules[ruleARMRegister]() { + goto l900 } - goto l925 - l924: - position, tokenIndex = position924, tokenIndex924 } - l925: + l904: { - position926, tokenIndex926 := position, tokenIndex + position923, tokenIndex923 := position, tokenIndex if buffer[position] != rune(',') { - goto l926 + goto l923 } position++ - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l926 - } - position++ - l928: { - position929, tokenIndex929 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l929 + position925, tokenIndex925 := position, tokenIndex + if !_rules[ruleWS]() { + goto l925 } - position++ - goto l928 - l929: - position, tokenIndex = position929, tokenIndex929 + goto l926 + l925: + position, tokenIndex = position925, tokenIndex925 } - goto l927 l926: - position, tokenIndex = position926, tokenIndex926 + if !_rules[ruleARMConstantTweak]() { + goto l923 + } + goto l924 + l923: + position, tokenIndex = position923, tokenIndex923 } - l927: - goto l921 - l920: - position, tokenIndex = position920, tokenIndex920 + l924: + goto l901 + l900: + position, tokenIndex = position900, tokenIndex900 } - l921: - if buffer[position] != rune(')') { - goto l914 + l901: + if buffer[position] != rune(']') { + goto l898 } position++ - add(ruleBaseIndexScale, position915) + { + position927, tokenIndex927 := position, tokenIndex + if !_rules[ruleARMPostincrement]() { + goto l927 + } + goto l928 + l927: + position, tokenIndex = position927, tokenIndex927 + } + l928: + add(ruleARMBaseIndexScale, position899) } return true - l914: - position, tokenIndex = position914, tokenIndex914 + l898: + position, tokenIndex = position898, tokenIndex898 return false }, - /* 57 Operator <- <('+' / '-')> */ + /* 56 ARMGOTLow12 <- <(':' ('g' / 'G') ('o' / 'O') ('t' / 'T') '_' ('l' / 'L') ('o' / 'O') '1' '2' ':' SymbolName)> */ func() bool { - position930, tokenIndex930 := position, tokenIndex + position929, tokenIndex929 := position, tokenIndex { - position931 := position + position930 := position + if buffer[position] != rune(':') { + goto l929 + } + position++ { - position932, tokenIndex932 := position, tokenIndex - if buffer[position] != rune('+') { - goto l933 + position931, tokenIndex931 := position, tokenIndex + if buffer[position] != rune('g') { + goto l932 } position++ - goto l932 - l933: - position, tokenIndex = position932, tokenIndex932 - if buffer[position] != rune('-') { - goto l930 + goto l931 + l932: + position, tokenIndex = position931, tokenIndex931 + if buffer[position] != rune('G') { + goto l929 } position++ } - l932: - add(ruleOperator, position931) - } - return true - l930: - position, tokenIndex = position930, tokenIndex930 - return false - }, - /* 58 Offset <- <('+'? '-'? (('0' ('b' / 'B') ('0' / '1')+) / ('0' ('x' / 'X') ([0-9] / [0-9] / ([a-f] / [A-F]))+) / [0-9]+))> */ - func() bool { - position934, tokenIndex934 := position, tokenIndex - { - position935 := position + l931: { - position936, tokenIndex936 := position, tokenIndex - if buffer[position] != rune('+') { + position933, tokenIndex933 := position, tokenIndex + if buffer[position] != rune('o') { + goto l934 + } + position++ + goto l933 + l934: + position, tokenIndex = position933, tokenIndex933 + if buffer[position] != rune('O') { + goto l929 + } + position++ + } + l933: + { + position935, tokenIndex935 := position, tokenIndex + if buffer[position] != rune('t') { goto l936 } position++ - goto l937 + goto l935 l936: - position, tokenIndex = position936, tokenIndex936 + position, tokenIndex = position935, tokenIndex935 + if buffer[position] != rune('T') { + goto l929 + } + position++ } - l937: + l935: + if buffer[position] != rune('_') { + goto l929 + } + position++ { - position938, tokenIndex938 := position, tokenIndex - if buffer[position] != rune('-') { + position937, tokenIndex937 := position, tokenIndex + if buffer[position] != rune('l') { goto l938 } position++ - goto l939 + goto l937 l938: - position, tokenIndex = position938, tokenIndex938 - } - l939: - { - position940, tokenIndex940 := position, tokenIndex - if buffer[position] != rune('0') { - goto l941 + position, tokenIndex = position937, tokenIndex937 + if buffer[position] != rune('L') { + goto l929 } position++ - { - position942, tokenIndex942 := position, tokenIndex - if buffer[position] != rune('b') { - goto l943 - } - position++ - goto l942 - l943: - position, tokenIndex = position942, tokenIndex942 - if buffer[position] != rune('B') { - goto l941 - } - position++ + } + l937: + { + position939, tokenIndex939 := position, tokenIndex + if buffer[position] != rune('o') { + goto l940 } - l942: - { - position946, tokenIndex946 := position, tokenIndex - if buffer[position] != rune('0') { - goto l947 - } - position++ - goto l946 - l947: - position, tokenIndex = position946, tokenIndex946 - if buffer[position] != rune('1') { - goto l941 - } - position++ + position++ + goto l939 + l940: + position, tokenIndex = position939, tokenIndex939 + if buffer[position] != rune('O') { + goto l929 } - l946: - l944: - { - position945, tokenIndex945 := position, tokenIndex - { - position948, tokenIndex948 := position, tokenIndex - if buffer[position] != rune('0') { - goto l949 - } - position++ - goto l948 - l949: - position, tokenIndex = position948, tokenIndex948 - if buffer[position] != rune('1') { - goto l945 - } - position++ - } - l948: - goto l944 - l945: - position, tokenIndex = position945, tokenIndex945 + position++ + } + l939: + if buffer[position] != rune('1') { + goto l929 + } + position++ + if buffer[position] != rune('2') { + goto l929 + } + position++ + if buffer[position] != rune(':') { + goto l929 + } + position++ + if !_rules[ruleSymbolName]() { + goto l929 + } + add(ruleARMGOTLow12, position930) + } + return true + l929: + position, tokenIndex = position929, tokenIndex929 + return false + }, + /* 57 ARMPostincrement <- <'!'> */ + func() bool { + position941, tokenIndex941 := position, tokenIndex + { + position942 := position + if buffer[position] != rune('!') { + goto l941 + } + position++ + add(ruleARMPostincrement, position942) + } + return true + l941: + position, tokenIndex = position941, tokenIndex941 + return false + }, + /* 58 BaseIndexScale <- <('(' RegisterOrConstant? WS? (',' WS? RegisterOrConstant WS? (',' [0-9]+)?)? ')')> */ + func() bool { + position943, tokenIndex943 := position, tokenIndex + { + position944 := position + if buffer[position] != rune('(') { + goto l943 + } + position++ + { + position945, tokenIndex945 := position, tokenIndex + if !_rules[ruleRegisterOrConstant]() { + goto l945 } - goto l940 - l941: - position, tokenIndex = position940, tokenIndex940 - if buffer[position] != rune('0') { - goto l950 + goto l946 + l945: + position, tokenIndex = position945, tokenIndex945 + } + l946: + { + position947, tokenIndex947 := position, tokenIndex + if !_rules[ruleWS]() { + goto l947 + } + goto l948 + l947: + position, tokenIndex = position947, tokenIndex947 + } + l948: + { + position949, tokenIndex949 := position, tokenIndex + if buffer[position] != rune(',') { + goto l949 } position++ { position951, tokenIndex951 := position, tokenIndex - if buffer[position] != rune('x') { - goto l952 + if !_rules[ruleWS]() { + goto l951 } - position++ - goto l951 - l952: + goto l952 + l951: position, tokenIndex = position951, tokenIndex951 - if buffer[position] != rune('X') { - goto l950 - } - position++ } - l951: + l952: + if !_rules[ruleRegisterOrConstant]() { + goto l949 + } + { + position953, tokenIndex953 := position, tokenIndex + if !_rules[ruleWS]() { + goto l953 + } + goto l954 + l953: + position, tokenIndex = position953, tokenIndex953 + } + l954: { position955, tokenIndex955 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l956 + if buffer[position] != rune(',') { + goto l955 } position++ - goto l955 - l956: - position, tokenIndex = position955, tokenIndex955 if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l957 + goto l955 } position++ - goto l955 l957: - position, tokenIndex = position955, tokenIndex955 { position958, tokenIndex958 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l959 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l958 } position++ - goto l958 - l959: + goto l957 + l958: position, tokenIndex = position958, tokenIndex958 - if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l950 - } - position++ } - l958: + goto l956 + l955: + position, tokenIndex = position955, tokenIndex955 } - l955: - l953: - { - position954, tokenIndex954 := position, tokenIndex - { - position960, tokenIndex960 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l961 - } - position++ - goto l960 - l961: - position, tokenIndex = position960, tokenIndex960 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l962 - } - position++ - goto l960 - l962: - position, tokenIndex = position960, tokenIndex960 - { - position963, tokenIndex963 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('f') { - goto l964 - } - position++ - goto l963 - l964: - position, tokenIndex = position963, tokenIndex963 - if c := buffer[position]; c < rune('A') || c > rune('F') { - goto l954 - } - position++ - } - l963: - } - l960: - goto l953 - l954: - position, tokenIndex = position954, tokenIndex954 - } - goto l940 - l950: - position, tokenIndex = position940, tokenIndex940 - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l934 - } - position++ - l965: - { - position966, tokenIndex966 := position, tokenIndex - if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l966 - } - position++ - goto l965 - l966: - position, tokenIndex = position966, tokenIndex966 - } + l956: + goto l950 + l949: + position, tokenIndex = position949, tokenIndex949 } - l940: - add(ruleOffset, position935) + l950: + if buffer[position] != rune(')') { + goto l943 + } + position++ + add(ruleBaseIndexScale, position944) } return true - l934: - position, tokenIndex = position934, tokenIndex934 + l943: + position, tokenIndex = position943, tokenIndex943 return false }, - /* 59 Section <- <([a-z] / [A-Z] / '@')+> */ + /* 59 Operator <- <('+' / '-')> */ func() bool { - position967, tokenIndex967 := position, tokenIndex + position959, tokenIndex959 := position, tokenIndex { - position968 := position + position960 := position { - position971, tokenIndex971 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l972 + position961, tokenIndex961 := position, tokenIndex + if buffer[position] != rune('+') { + goto l962 } position++ - goto l971 - l972: - position, tokenIndex = position971, tokenIndex971 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l973 + goto l961 + l962: + position, tokenIndex = position961, tokenIndex961 + if buffer[position] != rune('-') { + goto l959 } position++ - goto l971 - l973: - position, tokenIndex = position971, tokenIndex971 - if buffer[position] != rune('@') { + } + l961: + add(ruleOperator, position960) + } + return true + l959: + position, tokenIndex = position959, tokenIndex959 + return false + }, + /* 60 Offset <- <('+'? '-'? (('0' ('b' / 'B') ('0' / '1')+) / ('0' ('x' / 'X') ([0-9] / [0-9] / ([a-f] / [A-F]))+) / [0-9]+))> */ + func() bool { + position963, tokenIndex963 := position, tokenIndex + { + position964 := position + { + position965, tokenIndex965 := position, tokenIndex + if buffer[position] != rune('+') { + goto l965 + } + position++ + goto l966 + l965: + position, tokenIndex = position965, tokenIndex965 + } + l966: + { + position967, tokenIndex967 := position, tokenIndex + if buffer[position] != rune('-') { goto l967 } position++ + goto l968 + l967: + position, tokenIndex = position967, tokenIndex967 } - l971: - l969: + l968: { - position970, tokenIndex970 := position, tokenIndex + position969, tokenIndex969 := position, tokenIndex + if buffer[position] != rune('0') { + goto l970 + } + position++ { - position974, tokenIndex974 := position, tokenIndex - if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l975 + position971, tokenIndex971 := position, tokenIndex + if buffer[position] != rune('b') { + goto l972 } position++ - goto l974 - l975: - position, tokenIndex = position974, tokenIndex974 - if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l976 - } - position++ - goto l974 - l976: - position, tokenIndex = position974, tokenIndex974 - if buffer[position] != rune('@') { + goto l971 + l972: + position, tokenIndex = position971, tokenIndex971 + if buffer[position] != rune('B') { goto l970 } position++ } - l974: + l971: + { + position975, tokenIndex975 := position, tokenIndex + if buffer[position] != rune('0') { + goto l976 + } + position++ + goto l975 + l976: + position, tokenIndex = position975, tokenIndex975 + if buffer[position] != rune('1') { + goto l970 + } + position++ + } + l975: + l973: + { + position974, tokenIndex974 := position, tokenIndex + { + position977, tokenIndex977 := position, tokenIndex + if buffer[position] != rune('0') { + goto l978 + } + position++ + goto l977 + l978: + position, tokenIndex = position977, tokenIndex977 + if buffer[position] != rune('1') { + goto l974 + } + position++ + } + l977: + goto l973 + l974: + position, tokenIndex = position974, tokenIndex974 + } goto l969 l970: - position, tokenIndex = position970, tokenIndex970 + position, tokenIndex = position969, tokenIndex969 + if buffer[position] != rune('0') { + goto l979 + } + position++ + { + position980, tokenIndex980 := position, tokenIndex + if buffer[position] != rune('x') { + goto l981 + } + position++ + goto l980 + l981: + position, tokenIndex = position980, tokenIndex980 + if buffer[position] != rune('X') { + goto l979 + } + position++ + } + l980: + { + position984, tokenIndex984 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l985 + } + position++ + goto l984 + l985: + position, tokenIndex = position984, tokenIndex984 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l986 + } + position++ + goto l984 + l986: + position, tokenIndex = position984, tokenIndex984 + { + position987, tokenIndex987 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('f') { + goto l988 + } + position++ + goto l987 + l988: + position, tokenIndex = position987, tokenIndex987 + if c := buffer[position]; c < rune('A') || c > rune('F') { + goto l979 + } + position++ + } + l987: + } + l984: + l982: + { + position983, tokenIndex983 := position, tokenIndex + { + position989, tokenIndex989 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l990 + } + position++ + goto l989 + l990: + position, tokenIndex = position989, tokenIndex989 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l991 + } + position++ + goto l989 + l991: + position, tokenIndex = position989, tokenIndex989 + { + position992, tokenIndex992 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('f') { + goto l993 + } + position++ + goto l992 + l993: + position, tokenIndex = position992, tokenIndex992 + if c := buffer[position]; c < rune('A') || c > rune('F') { + goto l983 + } + position++ + } + l992: + } + l989: + goto l982 + l983: + position, tokenIndex = position983, tokenIndex983 + } + goto l969 + l979: + position, tokenIndex = position969, tokenIndex969 + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l963 + } + position++ + l994: + { + position995, tokenIndex995 := position, tokenIndex + if c := buffer[position]; c < rune('0') || c > rune('9') { + goto l995 + } + position++ + goto l994 + l995: + position, tokenIndex = position995, tokenIndex995 + } } - add(ruleSection, position968) + l969: + add(ruleOffset, position964) } return true - l967: - position, tokenIndex = position967, tokenIndex967 + l963: + position, tokenIndex = position963, tokenIndex963 return false }, - /* 60 SegmentRegister <- <('%' ([c-g] / 's') ('s' ':'))> */ + /* 61 Section <- <([a-z] / [A-Z] / '@')+> */ func() bool { - position977, tokenIndex977 := position, tokenIndex + position996, tokenIndex996 := position, tokenIndex { - position978 := position + position997 := position + { + position1000, tokenIndex1000 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l1001 + } + position++ + goto l1000 + l1001: + position, tokenIndex = position1000, tokenIndex1000 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l1002 + } + position++ + goto l1000 + l1002: + position, tokenIndex = position1000, tokenIndex1000 + if buffer[position] != rune('@') { + goto l996 + } + position++ + } + l1000: + l998: + { + position999, tokenIndex999 := position, tokenIndex + { + position1003, tokenIndex1003 := position, tokenIndex + if c := buffer[position]; c < rune('a') || c > rune('z') { + goto l1004 + } + position++ + goto l1003 + l1004: + position, tokenIndex = position1003, tokenIndex1003 + if c := buffer[position]; c < rune('A') || c > rune('Z') { + goto l1005 + } + position++ + goto l1003 + l1005: + position, tokenIndex = position1003, tokenIndex1003 + if buffer[position] != rune('@') { + goto l999 + } + position++ + } + l1003: + goto l998 + l999: + position, tokenIndex = position999, tokenIndex999 + } + add(ruleSection, position997) + } + return true + l996: + position, tokenIndex = position996, tokenIndex996 + return false + }, + /* 62 SegmentRegister <- <('%' ([c-g] / 's') ('s' ':'))> */ + func() bool { + position1006, tokenIndex1006 := position, tokenIndex + { + position1007 := position if buffer[position] != rune('%') { - goto l977 + goto l1006 } position++ { - position979, tokenIndex979 := position, tokenIndex + position1008, tokenIndex1008 := position, tokenIndex if c := buffer[position]; c < rune('c') || c > rune('g') { - goto l980 + goto l1009 } position++ - goto l979 - l980: - position, tokenIndex = position979, tokenIndex979 + goto l1008 + l1009: + position, tokenIndex = position1008, tokenIndex1008 if buffer[position] != rune('s') { - goto l977 + goto l1006 } position++ } - l979: + l1008: if buffer[position] != rune('s') { - goto l977 + goto l1006 } position++ if buffer[position] != rune(':') { - goto l977 + goto l1006 } position++ - add(ruleSegmentRegister, position978) + add(ruleSegmentRegister, position1007) } return true - l977: - position, tokenIndex = position977, tokenIndex977 + l1006: + position, tokenIndex = position1006, tokenIndex1006 return false }, }
diff --git a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in1.s b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in1.s index 7d3ce77..5c2bc62 100644 --- a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in1.s +++ b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in1.s
@@ -12,6 +12,11 @@ jbe foo jne foo + # This also applies to symbols defined with .set + call foo1 + call foo2 + call foo3 + # Jumps to PLT symbols are rewritten through redirectors. call memcpy@PLT jmp memcpy@PLT @@ -47,3 +52,12 @@ .quad 2b - 1b .quad 2b - .L2 + + # .set directives should get local targets and have their references (above) + # rewritten. + .globl foo1 + .globl foo2 + .globl foo3 + .set foo1, foo + .equ foo2, foo + .equiv foo3, foo
diff --git a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in2.s b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in2.s index b925655..8500af9 100644 --- a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in2.s +++ b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/in2.s
@@ -1,4 +1,4 @@ - # References to local labels are rewrittenn in subsequent files. + # References to local labels are rewritten in subsequent files. .Llocal_label: jbe .Llocal_label leaq .Llocal_label+2048(%rip), %r14 @@ -17,3 +17,16 @@ # will store offsets in it. .byte (.LBB231_40-.LBB231_19)>>2, 4, .Lfoo, (.Lfoo), .Lfoo<<400, ( .Lfoo ) << 66 .byte 421 + +# .set directives defining local symbols should be rewritten. +.set .Llocally_set_symbol1, 1 +.equ .Llocally_set_symbol2, 2 +.equiv .Llocally_set_symbol3, 3 + +# References to local symbols in .set directives should be rewritten. +.set alias_to_local_label, .Llocal_label +.equ alias_to_local_label, .Llocal_label +.equiv alias_to_local_label, .Llocal_label +.set .Llocal_alias_to_local_label, .Llocal_label +.equ .Llocal_alias_to_local_label, .Llocal_label +.equiv .Llocal_alias_to_local_label, .Llocal_label
diff --git a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s index f0039e4..2ce18a7 100644 --- a/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s +++ b/util/fipstools/delocate/testdata/x86_64-LabelRewrite/out.s
@@ -23,6 +23,14 @@ # WAS jne foo jne .Lfoo_local_target + # This also applies to symbols defined with .set +# WAS call foo1 + call .Lfoo1_local_target +# WAS call foo2 + call .Lfoo2_local_target +# WAS call foo3 + call .Lfoo3_local_target + # Jumps to PLT symbols are rewritten through redirectors. # WAS call memcpy@PLT call bcm_redirector_memcpy @@ -72,7 +80,19 @@ .quad 2b - 1b .quad 2b - .L2 - # References to local labels are rewrittenn in subsequent files. + + # .set directives should get local targets and have their references (above) + # rewritten. + .globl foo1 + .globl foo2 + .globl foo3 + .set foo1, foo + .set .Lfoo1_local_target, foo + .equ foo2, foo + .equ .Lfoo2_local_target, foo + .equiv foo3, foo + .equiv .Lfoo3_local_target, foo + # References to local labels are rewritten in subsequent files. .Llocal_label_BCM_1: # WAS jbe .Llocal_label @@ -102,6 +122,31 @@ # 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 421 + +# .set directives defining local symbols should be rewritten. +# WAS .set .Llocally_set_symbol1, 1 + .set .Llocally_set_symbol1_BCM_1, 1 +# WAS .equ .Llocally_set_symbol2, 2 + .equ .Llocally_set_symbol2_BCM_1, 2 +# WAS .equiv .Llocally_set_symbol3, 3 + .equiv .Llocally_set_symbol3_BCM_1, 3 + +# References to local symbols in .set directives should be rewritten. +# WAS .set alias_to_local_label, .Llocal_label + .set alias_to_local_label, .Llocal_label_BCM_1 + .set .Lalias_to_local_label_local_target, .Llocal_label_BCM_1 +# WAS .equ alias_to_local_label, .Llocal_label + .equ alias_to_local_label, .Llocal_label_BCM_1 + .equ .Lalias_to_local_label_local_target, .Llocal_label_BCM_1 +# WAS .equiv alias_to_local_label, .Llocal_label + .equiv alias_to_local_label, .Llocal_label_BCM_1 + .equiv .Lalias_to_local_label_local_target, .Llocal_label_BCM_1 +# WAS .set .Llocal_alias_to_local_label, .Llocal_label + .set .Llocal_alias_to_local_label_BCM_1, .Llocal_label_BCM_1 +# WAS .equ .Llocal_alias_to_local_label, .Llocal_label + .equ .Llocal_alias_to_local_label_BCM_1, .Llocal_label_BCM_1 +# WAS .equiv .Llocal_alias_to_local_label, .Llocal_label + .equiv .Llocal_alias_to_local_label_BCM_1, .Llocal_label_BCM_1 .text .loc 1 2 0 BORINGSSL_bcm_text_end: