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: