Handle directive arguments with * in them.
Some of the CFI directives from upstream include expressions such as:
.cfi_adjust_cfa_offset 32*5+8
(Also the latest version of peg moves the go generate line to
delocate.peg.go.)
Change-Id: I21bdf9ae44f81e4eca7b3565c4581a670f621a80
Reviewed-on: https://boringssl-review.googlesource.com/25624
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/util/fipstools/delocate.go b/util/fipstools/delocate.go
index b4371fc..7f45b87 100644
--- a/util/fipstools/delocate.go
+++ b/util/fipstools/delocate.go
@@ -12,8 +12,6 @@
// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
// CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
-//go:generate peg delocate.peg
-
// delocate performs several transformations of textual assembly code. See
// crypto/fipsmodule/FIPS.md for an overview.
package main
diff --git a/util/fipstools/delocate.peg b/util/fipstools/delocate.peg
index abcd953..3dcead2 100644
--- a/util/fipstools/delocate.peg
+++ b/util/fipstools/delocate.peg
@@ -32,7 +32,7 @@
DirectiveName <- [[A-Z0-9_]]+
LocationDirective <- (".file" / ".loc") WS [^#\n]+
Args <- Arg ((WS? ',' WS?) Arg)*
-Arg <- QuotedArg / [[0-9a-z%+\-_@.]]*
+Arg <- QuotedArg / [[0-9a-z%+\-*_@.]]*
QuotedArg <- '"' QuotedText '"'
QuotedText <- (EscapedChar / [^"])*
LabelContainingDirective <- LabelContainingDirectiveName WS SymbolArgs
diff --git a/util/fipstools/delocate.peg.go b/util/fipstools/delocate.peg.go
index 4cbdcad..f0ad78f 100644
--- a/util/fipstools/delocate.peg.go
+++ b/util/fipstools/delocate.peg.go
@@ -1,5 +1,7 @@
package main
+//go:generate peg delocate.peg
+
import (
"fmt"
"math"
@@ -1067,7 +1069,7 @@
position, tokenIndex = position96, tokenIndex96
return false
},
- /* 7 Arg <- <(QuotedArg / ([0-9] / [0-9] / ([a-z] / [A-Z]) / '%' / '+' / '-' / '_' / '@' / '.')*)> */
+ /* 7 Arg <- <(QuotedArg / ([0-9] / [0-9] / ([a-z] / [A-Z]) / '%' / '+' / '-' / '*' / '_' / '@' / '.')*)> */
func() bool {
{
position105 := position
@@ -1137,20 +1139,27 @@
goto l110
l118:
position, tokenIndex = position110, tokenIndex110
- if buffer[position] != rune('_') {
+ if buffer[position] != rune('*') {
goto l119
}
position++
goto l110
l119:
position, tokenIndex = position110, tokenIndex110
- if buffer[position] != rune('@') {
+ if buffer[position] != rune('_') {
goto l120
}
position++
goto l110
l120:
position, tokenIndex = position110, tokenIndex110
+ if buffer[position] != rune('@') {
+ goto l121
+ }
+ position++
+ goto l110
+ l121:
+ position, tokenIndex = position110, tokenIndex110
if buffer[position] != rune('.') {
goto l109
}
@@ -1169,2838 +1178,2838 @@
},
/* 8 QuotedArg <- <('"' QuotedText '"')> */
func() bool {
- position121, tokenIndex121 := position, tokenIndex
+ position122, tokenIndex122 := position, tokenIndex
{
- position122 := position
+ position123 := position
if buffer[position] != rune('"') {
- goto l121
+ goto l122
}
position++
if !_rules[ruleQuotedText]() {
- goto l121
+ goto l122
}
if buffer[position] != rune('"') {
- goto l121
+ goto l122
}
position++
- add(ruleQuotedArg, position122)
+ add(ruleQuotedArg, position123)
}
return true
- l121:
- position, tokenIndex = position121, tokenIndex121
+ l122:
+ position, tokenIndex = position122, tokenIndex122
return false
},
/* 9 QuotedText <- <(EscapedChar / (!'"' .))*> */
func() bool {
{
- position124 := position
- l125:
+ position125 := position
+ l126:
{
- position126, tokenIndex126 := position, tokenIndex
+ position127, tokenIndex127 := position, tokenIndex
{
- position127, tokenIndex127 := position, tokenIndex
+ position128, tokenIndex128 := position, tokenIndex
if !_rules[ruleEscapedChar]() {
- goto l128
+ goto l129
}
- goto l127
- l128:
- position, tokenIndex = position127, tokenIndex127
+ goto l128
+ l129:
+ position, tokenIndex = position128, tokenIndex128
{
- position129, tokenIndex129 := position, tokenIndex
+ position130, tokenIndex130 := position, tokenIndex
if buffer[position] != rune('"') {
- goto l129
+ goto l130
}
position++
- goto l126
- l129:
- position, tokenIndex = position129, tokenIndex129
+ goto l127
+ l130:
+ position, tokenIndex = position130, tokenIndex130
}
if !matchDot() {
- goto l126
+ goto l127
}
}
+ l128:
+ goto l126
l127:
- goto l125
- l126:
- position, tokenIndex = position126, tokenIndex126
+ position, tokenIndex = position127, tokenIndex127
}
- add(ruleQuotedText, position124)
+ add(ruleQuotedText, position125)
}
return true
},
/* 10 LabelContainingDirective <- <(LabelContainingDirectiveName WS SymbolArgs)> */
func() bool {
- position130, tokenIndex130 := position, tokenIndex
+ position131, tokenIndex131 := position, tokenIndex
{
- position131 := position
+ position132 := position
if !_rules[ruleLabelContainingDirectiveName]() {
- goto l130
+ goto l131
}
if !_rules[ruleWS]() {
- goto l130
+ goto l131
}
if !_rules[ruleSymbolArgs]() {
- goto l130
+ goto l131
}
- add(ruleLabelContainingDirective, position131)
+ add(ruleLabelContainingDirective, position132)
}
return true
- l130:
- position, tokenIndex = position130, tokenIndex130
+ l131:
+ position, tokenIndex = position131, tokenIndex131
return false
},
/* 11 LabelContainingDirectiveName <- <(('.' ('l' / 'L') ('o' / 'O') ('n' / 'N') ('g' / 'G')) / ('.' ('s' / 'S') ('e' / 'E') ('t' / 'T')) / ('.' '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')))> */
func() bool {
- position132, tokenIndex132 := position, tokenIndex
+ position133, tokenIndex133 := position, tokenIndex
{
- position133 := position
+ position134 := position
{
- position134, tokenIndex134 := position, tokenIndex
+ position135, tokenIndex135 := position, tokenIndex
if buffer[position] != rune('.') {
- goto l135
- }
- position++
- {
- position136, tokenIndex136 := position, tokenIndex
- if buffer[position] != rune('l') {
- goto l137
- }
- position++
goto l136
- l137:
- position, tokenIndex = position136, tokenIndex136
- if buffer[position] != rune('L') {
- goto l135
- }
- position++
- }
- l136:
- {
- position138, tokenIndex138 := position, tokenIndex
- if buffer[position] != rune('o') {
- goto l139
- }
- position++
- goto l138
- l139:
- position, tokenIndex = position138, tokenIndex138
- if buffer[position] != rune('O') {
- goto l135
- }
- position++
- }
- l138:
- {
- position140, tokenIndex140 := position, tokenIndex
- if buffer[position] != rune('n') {
- goto l141
- }
- position++
- goto l140
- l141:
- position, tokenIndex = position140, tokenIndex140
- if buffer[position] != rune('N') {
- goto l135
- }
- position++
- }
- l140:
- {
- position142, tokenIndex142 := position, tokenIndex
- if buffer[position] != rune('g') {
- goto l143
- }
- position++
- goto l142
- l143:
- position, tokenIndex = position142, tokenIndex142
- if buffer[position] != rune('G') {
- goto l135
- }
- position++
- }
- l142:
- goto l134
- l135:
- position, tokenIndex = position134, tokenIndex134
- if buffer[position] != rune('.') {
- goto l144
}
position++
{
- position145, tokenIndex145 := position, tokenIndex
- if buffer[position] != rune('s') {
- goto l146
+ position137, tokenIndex137 := position, tokenIndex
+ if buffer[position] != rune('l') {
+ goto l138
}
position++
- goto l145
- l146:
- position, tokenIndex = position145, tokenIndex145
- if buffer[position] != rune('S') {
- goto l144
+ goto l137
+ l138:
+ position, tokenIndex = position137, tokenIndex137
+ if buffer[position] != rune('L') {
+ goto l136
}
position++
}
- l145:
+ l137:
{
- position147, tokenIndex147 := position, tokenIndex
- if buffer[position] != rune('e') {
- goto l148
+ position139, tokenIndex139 := position, tokenIndex
+ if buffer[position] != rune('o') {
+ goto l140
}
position++
- goto l147
- l148:
- position, tokenIndex = position147, tokenIndex147
- if buffer[position] != rune('E') {
- goto l144
+ goto l139
+ l140:
+ position, tokenIndex = position139, tokenIndex139
+ if buffer[position] != rune('O') {
+ goto l136
}
position++
}
- l147:
+ l139:
{
- position149, tokenIndex149 := position, tokenIndex
- if buffer[position] != rune('t') {
- goto l150
+ position141, tokenIndex141 := position, tokenIndex
+ if buffer[position] != rune('n') {
+ goto l142
}
position++
- goto l149
- l150:
- position, tokenIndex = position149, tokenIndex149
- if buffer[position] != rune('T') {
- goto l144
+ goto l141
+ l142:
+ position, tokenIndex = position141, tokenIndex141
+ if buffer[position] != rune('N') {
+ goto l136
}
position++
}
- l149:
- goto l134
- l144:
- position, tokenIndex = position134, tokenIndex134
+ l141:
+ {
+ position143, tokenIndex143 := position, tokenIndex
+ if buffer[position] != rune('g') {
+ goto l144
+ }
+ position++
+ goto l143
+ l144:
+ position, tokenIndex = position143, tokenIndex143
+ if buffer[position] != rune('G') {
+ goto l136
+ }
+ position++
+ }
+ l143:
+ goto l135
+ l136:
+ position, tokenIndex = position135, tokenIndex135
if buffer[position] != rune('.') {
- goto l151
+ goto l145
+ }
+ position++
+ {
+ position146, tokenIndex146 := position, tokenIndex
+ if buffer[position] != rune('s') {
+ goto l147
+ }
+ position++
+ goto l146
+ l147:
+ position, tokenIndex = position146, tokenIndex146
+ if buffer[position] != rune('S') {
+ goto l145
+ }
+ position++
+ }
+ l146:
+ {
+ position148, tokenIndex148 := position, tokenIndex
+ if buffer[position] != rune('e') {
+ goto l149
+ }
+ position++
+ goto l148
+ l149:
+ position, tokenIndex = position148, tokenIndex148
+ if buffer[position] != rune('E') {
+ goto l145
+ }
+ position++
+ }
+ l148:
+ {
+ position150, tokenIndex150 := position, tokenIndex
+ if buffer[position] != rune('t') {
+ goto l151
+ }
+ position++
+ goto l150
+ l151:
+ position, tokenIndex = position150, tokenIndex150
+ if buffer[position] != rune('T') {
+ goto l145
+ }
+ position++
+ }
+ l150:
+ goto l135
+ l145:
+ position, tokenIndex = position135, tokenIndex135
+ if buffer[position] != rune('.') {
+ goto l152
}
position++
if buffer[position] != rune('8') {
- goto l151
+ goto l152
}
position++
{
- position152, tokenIndex152 := position, tokenIndex
+ position153, tokenIndex153 := position, tokenIndex
if buffer[position] != rune('b') {
- goto l153
+ goto l154
}
position++
- goto l152
- l153:
- position, tokenIndex = position152, tokenIndex152
+ goto l153
+ l154:
+ position, tokenIndex = position153, tokenIndex153
if buffer[position] != rune('B') {
- goto l151
+ goto l152
}
position++
}
- l152:
+ l153:
{
- position154, tokenIndex154 := position, tokenIndex
+ position155, tokenIndex155 := position, tokenIndex
if buffer[position] != rune('y') {
- goto l155
+ goto l156
}
position++
- goto l154
- l155:
- position, tokenIndex = position154, tokenIndex154
+ goto l155
+ l156:
+ position, tokenIndex = position155, tokenIndex155
if buffer[position] != rune('Y') {
- goto l151
+ goto l152
}
position++
}
- l154:
+ l155:
{
- position156, tokenIndex156 := position, tokenIndex
+ position157, tokenIndex157 := position, tokenIndex
if buffer[position] != rune('t') {
- goto l157
+ goto l158
}
position++
- goto l156
- l157:
- position, tokenIndex = position156, tokenIndex156
+ goto l157
+ l158:
+ position, tokenIndex = position157, tokenIndex157
if buffer[position] != rune('T') {
- goto l151
+ goto l152
}
position++
}
- l156:
+ l157:
{
- position158, tokenIndex158 := position, tokenIndex
+ position159, tokenIndex159 := position, tokenIndex
if buffer[position] != rune('e') {
- goto l159
+ goto l160
}
position++
- goto l158
- l159:
- position, tokenIndex = position158, tokenIndex158
+ goto l159
+ l160:
+ position, tokenIndex = position159, tokenIndex159
if buffer[position] != rune('E') {
- goto l151
+ goto l152
}
position++
}
- l158:
- goto l134
- l151:
- position, tokenIndex = position134, tokenIndex134
+ l159:
+ goto l135
+ l152:
+ position, tokenIndex = position135, tokenIndex135
if buffer[position] != rune('.') {
- goto l160
+ goto l161
}
position++
if buffer[position] != rune('4') {
- goto l160
- }
- position++
- {
- position161, tokenIndex161 := position, tokenIndex
- if buffer[position] != rune('b') {
- goto l162
- }
- position++
goto l161
- l162:
- position, tokenIndex = position161, tokenIndex161
+ }
+ position++
+ {
+ position162, tokenIndex162 := position, tokenIndex
+ if buffer[position] != rune('b') {
+ goto l163
+ }
+ position++
+ goto l162
+ l163:
+ position, tokenIndex = position162, tokenIndex162
if buffer[position] != rune('B') {
- goto l160
+ goto l161
}
position++
}
+ l162:
+ {
+ position164, tokenIndex164 := position, tokenIndex
+ if buffer[position] != rune('y') {
+ goto l165
+ }
+ position++
+ goto l164
+ l165:
+ position, tokenIndex = position164, tokenIndex164
+ if buffer[position] != rune('Y') {
+ goto l161
+ }
+ position++
+ }
+ l164:
+ {
+ position166, tokenIndex166 := position, tokenIndex
+ if buffer[position] != rune('t') {
+ goto l167
+ }
+ position++
+ goto l166
+ l167:
+ position, tokenIndex = position166, tokenIndex166
+ if buffer[position] != rune('T') {
+ goto l161
+ }
+ position++
+ }
+ l166:
+ {
+ position168, tokenIndex168 := position, tokenIndex
+ if buffer[position] != rune('e') {
+ goto l169
+ }
+ position++
+ goto l168
+ l169:
+ position, tokenIndex = position168, tokenIndex168
+ if buffer[position] != rune('E') {
+ goto l161
+ }
+ position++
+ }
+ l168:
+ goto l135
l161:
- {
- position163, tokenIndex163 := position, tokenIndex
- if buffer[position] != rune('y') {
- goto l164
- }
- position++
- goto l163
- l164:
- position, tokenIndex = position163, tokenIndex163
- if buffer[position] != rune('Y') {
- goto l160
- }
- position++
- }
- l163:
- {
- position165, tokenIndex165 := position, tokenIndex
- if buffer[position] != rune('t') {
- goto l166
- }
- position++
- goto l165
- l166:
- position, tokenIndex = position165, tokenIndex165
- if buffer[position] != rune('T') {
- goto l160
- }
- position++
- }
- l165:
- {
- position167, tokenIndex167 := position, tokenIndex
- if buffer[position] != rune('e') {
- goto l168
- }
- position++
- goto l167
- l168:
- position, tokenIndex = position167, tokenIndex167
- if buffer[position] != rune('E') {
- goto l160
- }
- position++
- }
- l167:
- goto l134
- l160:
- position, tokenIndex = position134, tokenIndex134
+ position, tokenIndex = position135, tokenIndex135
if buffer[position] != rune('.') {
- goto l169
- }
- position++
- {
- position170, tokenIndex170 := position, tokenIndex
- if buffer[position] != rune('q') {
- goto l171
- }
- position++
goto l170
- l171:
- position, tokenIndex = position170, tokenIndex170
+ }
+ position++
+ {
+ position171, tokenIndex171 := position, tokenIndex
+ if buffer[position] != rune('q') {
+ goto l172
+ }
+ position++
+ goto l171
+ l172:
+ position, tokenIndex = position171, tokenIndex171
if buffer[position] != rune('Q') {
- goto l169
+ goto l170
}
position++
}
- l170:
+ l171:
{
- position172, tokenIndex172 := position, tokenIndex
+ position173, tokenIndex173 := position, tokenIndex
if buffer[position] != rune('u') {
- goto l173
+ goto l174
}
position++
- goto l172
- l173:
- position, tokenIndex = position172, tokenIndex172
+ goto l173
+ l174:
+ position, tokenIndex = position173, tokenIndex173
if buffer[position] != rune('U') {
- goto l169
+ goto l170
}
position++
}
- l172:
+ l173:
{
- position174, tokenIndex174 := position, tokenIndex
+ position175, tokenIndex175 := position, tokenIndex
if buffer[position] != rune('a') {
- goto l175
+ goto l176
}
position++
- goto l174
- l175:
- position, tokenIndex = position174, tokenIndex174
+ goto l175
+ l176:
+ position, tokenIndex = position175, tokenIndex175
if buffer[position] != rune('A') {
- goto l169
+ goto l170
}
position++
}
- l174:
+ l175:
{
- position176, tokenIndex176 := position, tokenIndex
+ position177, tokenIndex177 := position, tokenIndex
if buffer[position] != rune('d') {
- goto l177
+ goto l178
}
position++
- goto l176
- l177:
- position, tokenIndex = position176, tokenIndex176
+ goto l177
+ l178:
+ position, tokenIndex = position177, tokenIndex177
if buffer[position] != rune('D') {
- goto l169
+ goto l170
}
position++
}
- l176:
- goto l134
- l169:
- position, tokenIndex = position134, tokenIndex134
+ l177:
+ goto l135
+ l170:
+ position, tokenIndex = position135, tokenIndex135
if buffer[position] != rune('.') {
- goto l178
- }
- position++
- {
- position179, tokenIndex179 := position, tokenIndex
- if buffer[position] != rune('t') {
- goto l180
- }
- position++
goto l179
- l180:
- position, tokenIndex = position179, tokenIndex179
+ }
+ position++
+ {
+ position180, tokenIndex180 := position, tokenIndex
+ if buffer[position] != rune('t') {
+ goto l181
+ }
+ position++
+ goto l180
+ l181:
+ position, tokenIndex = position180, tokenIndex180
if buffer[position] != rune('T') {
- goto l178
+ goto l179
}
position++
}
+ l180:
+ {
+ position182, tokenIndex182 := position, tokenIndex
+ if buffer[position] != rune('c') {
+ goto l183
+ }
+ position++
+ goto l182
+ l183:
+ position, tokenIndex = position182, tokenIndex182
+ if buffer[position] != rune('C') {
+ goto l179
+ }
+ position++
+ }
+ l182:
+ goto l135
l179:
- {
- position181, tokenIndex181 := position, tokenIndex
- if buffer[position] != rune('c') {
- goto l182
- }
- position++
- goto l181
- l182:
- position, tokenIndex = position181, tokenIndex181
- if buffer[position] != rune('C') {
- goto l178
- }
- position++
- }
- l181:
- goto l134
- l178:
- position, tokenIndex = position134, tokenIndex134
+ position, tokenIndex = position135, tokenIndex135
if buffer[position] != rune('.') {
- goto l183
- }
- position++
- {
- position184, tokenIndex184 := position, tokenIndex
- if buffer[position] != rune('l') {
- goto l185
- }
- position++
goto l184
- l185:
- position, tokenIndex = position184, tokenIndex184
- if buffer[position] != rune('L') {
- goto l183
- }
- position++
}
- l184:
+ position++
{
- position186, tokenIndex186 := position, tokenIndex
- if buffer[position] != rune('o') {
- goto l187
- }
- position++
- goto l186
- l187:
- position, tokenIndex = position186, tokenIndex186
- if buffer[position] != rune('O') {
- goto l183
- }
- position++
- }
- l186:
- {
- position188, tokenIndex188 := position, tokenIndex
- if buffer[position] != rune('c') {
- goto l189
- }
- position++
- goto l188
- l189:
- position, tokenIndex = position188, tokenIndex188
- if buffer[position] != rune('C') {
- goto l183
- }
- position++
- }
- l188:
- {
- position190, tokenIndex190 := position, tokenIndex
- if buffer[position] != rune('a') {
- goto l191
- }
- position++
- goto l190
- l191:
- position, tokenIndex = position190, tokenIndex190
- if buffer[position] != rune('A') {
- goto l183
- }
- position++
- }
- l190:
- {
- position192, tokenIndex192 := position, tokenIndex
+ position185, tokenIndex185 := position, tokenIndex
if buffer[position] != rune('l') {
- goto l193
+ goto l186
}
position++
- goto l192
- l193:
- position, tokenIndex = position192, tokenIndex192
+ goto l185
+ l186:
+ position, tokenIndex = position185, tokenIndex185
if buffer[position] != rune('L') {
- goto l183
+ goto l184
}
position++
}
- l192:
+ l185:
{
- position194, tokenIndex194 := position, tokenIndex
+ position187, tokenIndex187 := position, tokenIndex
+ if buffer[position] != rune('o') {
+ goto l188
+ }
+ position++
+ goto l187
+ l188:
+ position, tokenIndex = position187, tokenIndex187
+ if buffer[position] != rune('O') {
+ goto l184
+ }
+ position++
+ }
+ l187:
+ {
+ position189, tokenIndex189 := position, tokenIndex
+ if buffer[position] != rune('c') {
+ goto l190
+ }
+ position++
+ goto l189
+ l190:
+ position, tokenIndex = position189, tokenIndex189
+ if buffer[position] != rune('C') {
+ goto l184
+ }
+ position++
+ }
+ l189:
+ {
+ position191, tokenIndex191 := position, tokenIndex
+ if buffer[position] != rune('a') {
+ goto l192
+ }
+ position++
+ goto l191
+ l192:
+ position, tokenIndex = position191, tokenIndex191
+ if buffer[position] != rune('A') {
+ goto l184
+ }
+ position++
+ }
+ l191:
+ {
+ position193, tokenIndex193 := position, tokenIndex
+ if buffer[position] != rune('l') {
+ goto l194
+ }
+ position++
+ goto l193
+ l194:
+ position, tokenIndex = position193, tokenIndex193
+ if buffer[position] != rune('L') {
+ goto l184
+ }
+ position++
+ }
+ l193:
+ {
+ position195, tokenIndex195 := position, tokenIndex
if buffer[position] != rune('e') {
- goto l195
+ goto l196
}
position++
- goto l194
- l195:
- position, tokenIndex = position194, tokenIndex194
+ goto l195
+ l196:
+ position, tokenIndex = position195, tokenIndex195
if buffer[position] != rune('E') {
- goto l183
+ goto l184
}
position++
}
- l194:
+ l195:
{
- position196, tokenIndex196 := position, tokenIndex
+ position197, tokenIndex197 := position, tokenIndex
if buffer[position] != rune('n') {
- goto l197
+ goto l198
}
position++
- goto l196
- l197:
- position, tokenIndex = position196, tokenIndex196
+ goto l197
+ l198:
+ position, tokenIndex = position197, tokenIndex197
if buffer[position] != rune('N') {
- goto l183
+ goto l184
}
position++
}
- l196:
+ l197:
{
- position198, tokenIndex198 := position, tokenIndex
+ position199, tokenIndex199 := position, tokenIndex
if buffer[position] != rune('t') {
- goto l199
+ goto l200
}
position++
- goto l198
- l199:
- position, tokenIndex = position198, tokenIndex198
+ goto l199
+ l200:
+ position, tokenIndex = position199, tokenIndex199
if buffer[position] != rune('T') {
- goto l183
+ goto l184
}
position++
}
- l198:
+ l199:
{
- position200, tokenIndex200 := position, tokenIndex
+ position201, tokenIndex201 := position, tokenIndex
if buffer[position] != rune('r') {
- goto l201
+ goto l202
}
position++
- goto l200
- l201:
- position, tokenIndex = position200, tokenIndex200
+ goto l201
+ l202:
+ position, tokenIndex = position201, tokenIndex201
if buffer[position] != rune('R') {
- goto l183
+ goto l184
}
position++
}
- l200:
+ l201:
{
- position202, tokenIndex202 := position, tokenIndex
+ position203, tokenIndex203 := position, tokenIndex
if buffer[position] != rune('y') {
- goto l203
+ goto l204
}
position++
- goto l202
- l203:
- position, tokenIndex = position202, tokenIndex202
+ goto l203
+ l204:
+ position, tokenIndex = position203, tokenIndex203
if buffer[position] != rune('Y') {
- goto l183
+ goto l184
}
position++
}
- l202:
- goto l134
- l183:
- position, tokenIndex = position134, tokenIndex134
+ l203:
+ goto l135
+ l184:
+ position, tokenIndex = position135, tokenIndex135
if buffer[position] != rune('.') {
- goto l204
- }
- position++
- {
- position205, tokenIndex205 := position, tokenIndex
- if buffer[position] != rune('s') {
- goto l206
- }
- position++
goto l205
- l206:
- position, tokenIndex = position205, tokenIndex205
- if buffer[position] != rune('S') {
- goto l204
- }
- position++
- }
- l205:
- {
- position207, tokenIndex207 := position, tokenIndex
- if buffer[position] != rune('i') {
- goto l208
- }
- position++
- goto l207
- l208:
- position, tokenIndex = position207, tokenIndex207
- if buffer[position] != rune('I') {
- goto l204
- }
- position++
- }
- l207:
- {
- position209, tokenIndex209 := position, tokenIndex
- if buffer[position] != rune('z') {
- goto l210
- }
- position++
- goto l209
- l210:
- position, tokenIndex = position209, tokenIndex209
- if buffer[position] != rune('Z') {
- goto l204
- }
- position++
- }
- l209:
- {
- position211, tokenIndex211 := position, tokenIndex
- if buffer[position] != rune('e') {
- goto l212
- }
- position++
- goto l211
- l212:
- position, tokenIndex = position211, tokenIndex211
- if buffer[position] != rune('E') {
- goto l204
- }
- position++
- }
- l211:
- goto l134
- l204:
- position, tokenIndex = position134, tokenIndex134
- if buffer[position] != rune('.') {
- goto l132
}
position++
{
- position213, tokenIndex213 := position, tokenIndex
- if buffer[position] != rune('t') {
- goto l214
+ position206, tokenIndex206 := position, tokenIndex
+ if buffer[position] != rune('s') {
+ goto l207
}
position++
- goto l213
- l214:
- position, tokenIndex = position213, tokenIndex213
- if buffer[position] != rune('T') {
- goto l132
+ goto l206
+ l207:
+ position, tokenIndex = position206, tokenIndex206
+ if buffer[position] != rune('S') {
+ goto l205
}
position++
}
- l213:
+ l206:
{
- position215, tokenIndex215 := position, tokenIndex
- if buffer[position] != rune('y') {
- goto l216
+ position208, tokenIndex208 := position, tokenIndex
+ if buffer[position] != rune('i') {
+ goto l209
}
position++
- goto l215
- l216:
- position, tokenIndex = position215, tokenIndex215
- if buffer[position] != rune('Y') {
- goto l132
+ goto l208
+ l209:
+ position, tokenIndex = position208, tokenIndex208
+ if buffer[position] != rune('I') {
+ goto l205
}
position++
}
- l215:
+ l208:
{
- position217, tokenIndex217 := position, tokenIndex
- if buffer[position] != rune('p') {
- goto l218
+ position210, tokenIndex210 := position, tokenIndex
+ if buffer[position] != rune('z') {
+ goto l211
}
position++
- goto l217
- l218:
- position, tokenIndex = position217, tokenIndex217
- if buffer[position] != rune('P') {
- goto l132
+ goto l210
+ l211:
+ position, tokenIndex = position210, tokenIndex210
+ if buffer[position] != rune('Z') {
+ goto l205
}
position++
}
- l217:
+ l210:
{
- position219, tokenIndex219 := position, tokenIndex
+ position212, tokenIndex212 := position, tokenIndex
if buffer[position] != rune('e') {
- goto l220
+ goto l213
}
position++
- goto l219
- l220:
- position, tokenIndex = position219, tokenIndex219
+ goto l212
+ l213:
+ position, tokenIndex = position212, tokenIndex212
if buffer[position] != rune('E') {
- goto l132
+ goto l205
}
position++
}
- l219:
+ l212:
+ goto l135
+ l205:
+ position, tokenIndex = position135, tokenIndex135
+ if buffer[position] != rune('.') {
+ goto l133
+ }
+ position++
+ {
+ position214, tokenIndex214 := position, tokenIndex
+ if buffer[position] != rune('t') {
+ goto l215
+ }
+ position++
+ goto l214
+ l215:
+ position, tokenIndex = position214, tokenIndex214
+ if buffer[position] != rune('T') {
+ goto l133
+ }
+ position++
+ }
+ l214:
+ {
+ position216, tokenIndex216 := position, tokenIndex
+ if buffer[position] != rune('y') {
+ goto l217
+ }
+ position++
+ goto l216
+ l217:
+ position, tokenIndex = position216, tokenIndex216
+ if buffer[position] != rune('Y') {
+ goto l133
+ }
+ position++
+ }
+ l216:
+ {
+ position218, tokenIndex218 := position, tokenIndex
+ if buffer[position] != rune('p') {
+ goto l219
+ }
+ position++
+ goto l218
+ l219:
+ position, tokenIndex = position218, tokenIndex218
+ if buffer[position] != rune('P') {
+ goto l133
+ }
+ position++
+ }
+ l218:
+ {
+ position220, tokenIndex220 := position, tokenIndex
+ if buffer[position] != rune('e') {
+ goto l221
+ }
+ position++
+ goto l220
+ l221:
+ position, tokenIndex = position220, tokenIndex220
+ if buffer[position] != rune('E') {
+ goto l133
+ }
+ position++
+ }
+ l220:
}
- l134:
- add(ruleLabelContainingDirectiveName, position133)
+ l135:
+ add(ruleLabelContainingDirectiveName, position134)
}
return true
- l132:
- position, tokenIndex = position132, tokenIndex132
+ l133:
+ position, tokenIndex = position133, tokenIndex133
return false
},
/* 12 SymbolArgs <- <(SymbolArg (WS? ',' WS? SymbolArg)*)> */
func() bool {
- position221, tokenIndex221 := position, tokenIndex
+ position222, tokenIndex222 := position, tokenIndex
{
- position222 := position
+ position223 := position
if !_rules[ruleSymbolArg]() {
- goto l221
+ goto l222
}
- l223:
+ l224:
{
- position224, tokenIndex224 := position, tokenIndex
+ position225, tokenIndex225 := position, tokenIndex
{
- position225, tokenIndex225 := position, tokenIndex
+ position226, tokenIndex226 := position, tokenIndex
if !_rules[ruleWS]() {
- goto l225
+ goto l226
}
- goto l226
- l225:
- position, tokenIndex = position225, tokenIndex225
+ goto l227
+ l226:
+ position, tokenIndex = position226, tokenIndex226
}
- l226:
+ l227:
if buffer[position] != rune(',') {
- goto l224
+ goto l225
}
position++
{
- position227, tokenIndex227 := position, tokenIndex
+ position228, tokenIndex228 := position, tokenIndex
if !_rules[ruleWS]() {
- goto l227
+ goto l228
}
- goto l228
- l227:
- position, tokenIndex = position227, tokenIndex227
+ goto l229
+ l228:
+ position, tokenIndex = position228, tokenIndex228
}
- l228:
+ l229:
if !_rules[ruleSymbolArg]() {
- goto l224
+ goto l225
}
- goto l223
- l224:
- position, tokenIndex = position224, tokenIndex224
+ goto l224
+ l225:
+ position, tokenIndex = position225, tokenIndex225
}
- add(ruleSymbolArgs, position222)
+ add(ruleSymbolArgs, position223)
}
return true
- l221:
- position, tokenIndex = position221, tokenIndex221
+ l222:
+ position, tokenIndex = position222, tokenIndex222
return false
},
/* 13 SymbolArg <- <(Offset / SymbolType / ((Offset / LocalSymbol / SymbolName / Dot) WS? Operator WS? (Offset / LocalSymbol / SymbolName)) / (LocalSymbol TCMarker?) / (SymbolName Offset) / (SymbolName TCMarker?))> */
func() bool {
- position229, tokenIndex229 := position, tokenIndex
+ position230, tokenIndex230 := position, tokenIndex
{
- position230 := position
+ position231 := position
{
- position231, tokenIndex231 := position, tokenIndex
+ position232, tokenIndex232 := position, tokenIndex
if !_rules[ruleOffset]() {
- goto l232
- }
- goto l231
- l232:
- position, tokenIndex = position231, tokenIndex231
- if !_rules[ruleSymbolType]() {
goto l233
}
- goto l231
+ goto l232
l233:
- position, tokenIndex = position231, tokenIndex231
- {
- position235, tokenIndex235 := position, tokenIndex
- if !_rules[ruleOffset]() {
- goto l236
- }
- goto l235
- l236:
- position, tokenIndex = position235, tokenIndex235
- if !_rules[ruleLocalSymbol]() {
- goto l237
- }
- goto l235
- l237:
- position, tokenIndex = position235, tokenIndex235
- if !_rules[ruleSymbolName]() {
- goto l238
- }
- goto l235
- l238:
- position, tokenIndex = position235, tokenIndex235
- if !_rules[ruleDot]() {
- goto l234
- }
- }
- l235:
- {
- position239, tokenIndex239 := position, tokenIndex
- if !_rules[ruleWS]() {
- goto l239
- }
- goto l240
- l239:
- position, tokenIndex = position239, tokenIndex239
- }
- l240:
- if !_rules[ruleOperator]() {
+ position, tokenIndex = position232, tokenIndex232
+ if !_rules[ruleSymbolType]() {
goto l234
}
+ goto l232
+ l234:
+ position, tokenIndex = position232, tokenIndex232
{
- position241, tokenIndex241 := position, tokenIndex
- if !_rules[ruleWS]() {
- goto l241
- }
- goto l242
- l241:
- position, tokenIndex = position241, tokenIndex241
- }
- l242:
- {
- position243, tokenIndex243 := position, tokenIndex
+ position236, tokenIndex236 := position, tokenIndex
if !_rules[ruleOffset]() {
- goto l244
+ goto l237
}
- goto l243
- l244:
- position, tokenIndex = position243, tokenIndex243
+ goto l236
+ l237:
+ position, tokenIndex = position236, tokenIndex236
if !_rules[ruleLocalSymbol]() {
- goto l245
+ goto l238
+ }
+ goto l236
+ l238:
+ position, tokenIndex = position236, tokenIndex236
+ if !_rules[ruleSymbolName]() {
+ goto l239
+ }
+ goto l236
+ l239:
+ position, tokenIndex = position236, tokenIndex236
+ if !_rules[ruleDot]() {
+ goto l235
+ }
+ }
+ l236:
+ {
+ position240, tokenIndex240 := position, tokenIndex
+ if !_rules[ruleWS]() {
+ goto l240
+ }
+ goto l241
+ l240:
+ position, tokenIndex = position240, tokenIndex240
+ }
+ l241:
+ if !_rules[ruleOperator]() {
+ goto l235
+ }
+ {
+ position242, tokenIndex242 := position, tokenIndex
+ if !_rules[ruleWS]() {
+ goto l242
}
goto l243
- l245:
- position, tokenIndex = position243, tokenIndex243
- if !_rules[ruleSymbolName]() {
- goto l234
- }
+ l242:
+ position, tokenIndex = position242, tokenIndex242
}
l243:
- goto l231
- l234:
- position, tokenIndex = position231, tokenIndex231
+ {
+ position244, tokenIndex244 := position, tokenIndex
+ if !_rules[ruleOffset]() {
+ goto l245
+ }
+ goto l244
+ l245:
+ position, tokenIndex = position244, tokenIndex244
+ if !_rules[ruleLocalSymbol]() {
+ goto l246
+ }
+ goto l244
+ l246:
+ position, tokenIndex = position244, tokenIndex244
+ if !_rules[ruleSymbolName]() {
+ goto l235
+ }
+ }
+ l244:
+ goto l232
+ l235:
+ position, tokenIndex = position232, tokenIndex232
if !_rules[ruleLocalSymbol]() {
- goto l246
+ goto l247
}
{
- position247, tokenIndex247 := position, tokenIndex
+ position248, tokenIndex248 := position, tokenIndex
if !_rules[ruleTCMarker]() {
- goto l247
+ goto l248
}
- goto l248
- l247:
- position, tokenIndex = position247, tokenIndex247
- }
- l248:
- goto l231
- l246:
- position, tokenIndex = position231, tokenIndex231
- if !_rules[ruleSymbolName]() {
goto l249
+ l248:
+ position, tokenIndex = position248, tokenIndex248
+ }
+ l249:
+ goto l232
+ l247:
+ position, tokenIndex = position232, tokenIndex232
+ if !_rules[ruleSymbolName]() {
+ goto l250
}
if !_rules[ruleOffset]() {
- goto l249
+ goto l250
}
- goto l231
- l249:
- position, tokenIndex = position231, tokenIndex231
+ goto l232
+ l250:
+ position, tokenIndex = position232, tokenIndex232
if !_rules[ruleSymbolName]() {
- goto l229
+ goto l230
}
{
- position250, tokenIndex250 := position, tokenIndex
+ position251, tokenIndex251 := position, tokenIndex
if !_rules[ruleTCMarker]() {
- goto l250
+ goto l251
}
- goto l251
- l250:
- position, tokenIndex = position250, tokenIndex250
+ goto l252
+ l251:
+ position, tokenIndex = position251, tokenIndex251
}
- l251:
+ l252:
}
- l231:
- add(ruleSymbolArg, position230)
+ l232:
+ add(ruleSymbolArg, position231)
}
return true
- l229:
- position, tokenIndex = position229, tokenIndex229
+ l230:
+ position, tokenIndex = position230, tokenIndex230
return false
},
/* 14 SymbolType <- <(('@' 'f' 'u' 'n' 'c' 't' 'i' 'o' 'n') / ('@' 'o' 'b' 'j' 'e' 'c' 't'))> */
func() bool {
- position252, tokenIndex252 := position, tokenIndex
+ position253, tokenIndex253 := position, tokenIndex
{
- position253 := position
+ position254 := position
{
- position254, tokenIndex254 := position, tokenIndex
+ position255, tokenIndex255 := position, tokenIndex
if buffer[position] != rune('@') {
- goto l255
+ goto l256
}
position++
if buffer[position] != rune('f') {
- goto l255
+ goto l256
}
position++
if buffer[position] != rune('u') {
- goto l255
+ goto l256
}
position++
if buffer[position] != rune('n') {
- goto l255
+ goto l256
}
position++
if buffer[position] != rune('c') {
- goto l255
+ goto l256
}
position++
if buffer[position] != rune('t') {
- goto l255
+ goto l256
}
position++
if buffer[position] != rune('i') {
- goto l255
+ goto l256
}
position++
if buffer[position] != rune('o') {
- goto l255
+ goto l256
}
position++
if buffer[position] != rune('n') {
- goto l255
+ goto l256
}
position++
- goto l254
- l255:
- position, tokenIndex = position254, tokenIndex254
+ goto l255
+ l256:
+ position, tokenIndex = position255, tokenIndex255
if buffer[position] != rune('@') {
- goto l252
+ goto l253
}
position++
if buffer[position] != rune('o') {
- goto l252
+ goto l253
}
position++
if buffer[position] != rune('b') {
- goto l252
+ goto l253
}
position++
if buffer[position] != rune('j') {
- goto l252
+ goto l253
}
position++
if buffer[position] != rune('e') {
- goto l252
+ goto l253
}
position++
if buffer[position] != rune('c') {
- goto l252
+ goto l253
}
position++
if buffer[position] != rune('t') {
- goto l252
+ goto l253
}
position++
}
- l254:
- add(ruleSymbolType, position253)
+ l255:
+ add(ruleSymbolType, position254)
}
return true
- l252:
- position, tokenIndex = position252, tokenIndex252
+ l253:
+ position, tokenIndex = position253, tokenIndex253
return false
},
/* 15 Dot <- <'.'> */
func() bool {
- position256, tokenIndex256 := position, tokenIndex
+ position257, tokenIndex257 := position, tokenIndex
{
- position257 := position
+ position258 := position
if buffer[position] != rune('.') {
- goto l256
+ goto l257
}
position++
- add(ruleDot, position257)
+ add(ruleDot, position258)
}
return true
- l256:
- position, tokenIndex = position256, tokenIndex256
+ l257:
+ position, tokenIndex = position257, tokenIndex257
return false
},
/* 16 TCMarker <- <('[' 'T' 'C' ']')> */
func() bool {
- position258, tokenIndex258 := position, tokenIndex
+ position259, tokenIndex259 := position, tokenIndex
{
- position259 := position
+ position260 := position
if buffer[position] != rune('[') {
- goto l258
+ goto l259
}
position++
if buffer[position] != rune('T') {
- goto l258
+ goto l259
}
position++
if buffer[position] != rune('C') {
- goto l258
+ goto l259
}
position++
if buffer[position] != rune(']') {
- goto l258
+ goto l259
}
position++
- add(ruleTCMarker, position259)
+ add(ruleTCMarker, position260)
}
return true
- l258:
- position, tokenIndex = position258, tokenIndex258
+ l259:
+ position, tokenIndex = position259, tokenIndex259
return false
},
/* 17 EscapedChar <- <('\\' .)> */
func() bool {
- position260, tokenIndex260 := position, tokenIndex
+ position261, tokenIndex261 := position, tokenIndex
{
- position261 := position
+ position262 := position
if buffer[position] != rune('\\') {
- goto l260
+ goto l261
}
position++
if !matchDot() {
- goto l260
+ goto l261
}
- add(ruleEscapedChar, position261)
+ add(ruleEscapedChar, position262)
}
return true
- l260:
- position, tokenIndex = position260, tokenIndex260
+ l261:
+ position, tokenIndex = position261, tokenIndex261
return false
},
/* 18 WS <- <(' ' / '\t')+> */
func() bool {
- position262, tokenIndex262 := position, tokenIndex
+ position263, tokenIndex263 := position, tokenIndex
{
- position263 := position
+ position264 := position
+ {
+ position267, tokenIndex267 := position, tokenIndex
+ if buffer[position] != rune(' ') {
+ goto l268
+ }
+ position++
+ goto l267
+ l268:
+ position, tokenIndex = position267, tokenIndex267
+ if buffer[position] != rune('\t') {
+ goto l263
+ }
+ position++
+ }
+ l267:
+ l265:
{
position266, tokenIndex266 := position, tokenIndex
- if buffer[position] != rune(' ') {
- goto l267
- }
- position++
- goto l266
- l267:
- position, tokenIndex = position266, tokenIndex266
- if buffer[position] != rune('\t') {
- goto l262
- }
- position++
- }
- l266:
- l264:
- {
- position265, tokenIndex265 := position, tokenIndex
{
- position268, tokenIndex268 := position, tokenIndex
+ position269, tokenIndex269 := position, tokenIndex
if buffer[position] != rune(' ') {
- goto l269
+ goto l270
}
position++
- goto l268
- l269:
- position, tokenIndex = position268, tokenIndex268
+ goto l269
+ l270:
+ position, tokenIndex = position269, tokenIndex269
if buffer[position] != rune('\t') {
- goto l265
+ goto l266
}
position++
}
- l268:
- goto l264
- l265:
- position, tokenIndex = position265, tokenIndex265
+ l269:
+ goto l265
+ l266:
+ position, tokenIndex = position266, tokenIndex266
}
- add(ruleWS, position263)
+ add(ruleWS, position264)
}
return true
- l262:
- position, tokenIndex = position262, tokenIndex262
+ l263:
+ position, tokenIndex = position263, tokenIndex263
return false
},
/* 19 Comment <- <('#' (!'\n' .)*)> */
func() bool {
- position270, tokenIndex270 := position, tokenIndex
+ position271, tokenIndex271 := position, tokenIndex
{
- position271 := position
+ position272 := position
if buffer[position] != rune('#') {
- goto l270
+ goto l271
}
position++
- l272:
+ l273:
{
- position273, tokenIndex273 := position, tokenIndex
+ position274, tokenIndex274 := position, tokenIndex
{
- position274, tokenIndex274 := position, tokenIndex
+ position275, tokenIndex275 := position, tokenIndex
if buffer[position] != rune('\n') {
- goto l274
+ goto l275
}
position++
- goto l273
- l274:
- position, tokenIndex = position274, tokenIndex274
+ goto l274
+ l275:
+ position, tokenIndex = position275, tokenIndex275
}
if !matchDot() {
- goto l273
+ goto l274
}
- goto l272
- l273:
- position, tokenIndex = position273, tokenIndex273
+ goto l273
+ l274:
+ position, tokenIndex = position274, tokenIndex274
}
- add(ruleComment, position271)
+ add(ruleComment, position272)
}
return true
- l270:
- position, tokenIndex = position270, tokenIndex270
+ l271:
+ position, tokenIndex = position271, tokenIndex271
return false
},
/* 20 Label <- <((LocalSymbol / LocalLabel / SymbolName) ':')> */
func() bool {
- position275, tokenIndex275 := position, tokenIndex
+ position276, tokenIndex276 := position, tokenIndex
{
- position276 := position
+ position277 := position
{
- position277, tokenIndex277 := position, tokenIndex
+ position278, tokenIndex278 := position, tokenIndex
if !_rules[ruleLocalSymbol]() {
- goto l278
- }
- goto l277
- l278:
- position, tokenIndex = position277, tokenIndex277
- if !_rules[ruleLocalLabel]() {
goto l279
}
- goto l277
+ goto l278
l279:
- position, tokenIndex = position277, tokenIndex277
+ position, tokenIndex = position278, tokenIndex278
+ if !_rules[ruleLocalLabel]() {
+ goto l280
+ }
+ goto l278
+ l280:
+ position, tokenIndex = position278, tokenIndex278
if !_rules[ruleSymbolName]() {
- goto l275
+ goto l276
}
}
- l277:
+ l278:
if buffer[position] != rune(':') {
- goto l275
+ goto l276
}
position++
- add(ruleLabel, position276)
+ add(ruleLabel, position277)
}
return true
- l275:
- position, tokenIndex = position275, tokenIndex275
+ l276:
+ position, tokenIndex = position276, tokenIndex276
return false
},
/* 21 SymbolName <- <(([a-z] / [A-Z] / '.' / '_') ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]) / '$' / '_')*)> */
func() bool {
- position280, tokenIndex280 := position, tokenIndex
+ position281, tokenIndex281 := position, tokenIndex
{
- position281 := position
+ position282 := position
{
- position282, tokenIndex282 := position, tokenIndex
+ position283, tokenIndex283 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l283
- }
- position++
- goto l282
- l283:
- position, tokenIndex = position282, tokenIndex282
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l284
}
position++
- goto l282
+ goto l283
l284:
- position, tokenIndex = position282, tokenIndex282
- if buffer[position] != rune('.') {
+ position, tokenIndex = position283, tokenIndex283
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l285
}
position++
- goto l282
+ goto l283
l285:
- position, tokenIndex = position282, tokenIndex282
+ position, tokenIndex = position283, tokenIndex283
+ if buffer[position] != rune('.') {
+ goto l286
+ }
+ position++
+ goto l283
+ l286:
+ position, tokenIndex = position283, tokenIndex283
if buffer[position] != rune('_') {
- goto l280
+ goto l281
}
position++
}
- l282:
- l286:
+ l283:
+ l287:
{
- position287, tokenIndex287 := position, tokenIndex
+ position288, tokenIndex288 := position, tokenIndex
{
- position288, tokenIndex288 := position, tokenIndex
+ position289, tokenIndex289 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l289
- }
- position++
- goto l288
- l289:
- position, tokenIndex = position288, tokenIndex288
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l290
}
position++
- goto l288
+ goto l289
l290:
- position, tokenIndex = position288, tokenIndex288
- if buffer[position] != rune('.') {
+ position, tokenIndex = position289, tokenIndex289
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l291
}
position++
- goto l288
+ goto l289
l291:
- position, tokenIndex = position288, tokenIndex288
- {
- position293, tokenIndex293 := position, tokenIndex
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l294
- }
- position++
- goto l293
- l294:
- position, tokenIndex = position293, tokenIndex293
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l292
- }
- position++
- }
- l293:
- goto l288
- l292:
- position, tokenIndex = position288, tokenIndex288
- if buffer[position] != rune('$') {
- goto l295
+ position, tokenIndex = position289, tokenIndex289
+ if buffer[position] != rune('.') {
+ goto l292
}
position++
- goto l288
- l295:
- position, tokenIndex = position288, tokenIndex288
+ goto l289
+ l292:
+ position, tokenIndex = position289, tokenIndex289
+ {
+ position294, tokenIndex294 := position, tokenIndex
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l295
+ }
+ position++
+ goto l294
+ l295:
+ position, tokenIndex = position294, tokenIndex294
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l293
+ }
+ position++
+ }
+ l294:
+ goto l289
+ l293:
+ position, tokenIndex = position289, tokenIndex289
+ if buffer[position] != rune('$') {
+ goto l296
+ }
+ position++
+ goto l289
+ l296:
+ position, tokenIndex = position289, tokenIndex289
if buffer[position] != rune('_') {
- goto l287
+ goto l288
}
position++
}
+ l289:
+ goto l287
l288:
- goto l286
- l287:
- position, tokenIndex = position287, tokenIndex287
+ position, tokenIndex = position288, tokenIndex288
}
- add(ruleSymbolName, position281)
+ add(ruleSymbolName, position282)
}
return true
- l280:
- position, tokenIndex = position280, tokenIndex280
+ l281:
+ position, tokenIndex = position281, tokenIndex281
return false
},
/* 22 LocalSymbol <- <('.' 'L' ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]) / '$' / '_')+)> */
func() bool {
- position296, tokenIndex296 := position, tokenIndex
+ position297, tokenIndex297 := position, tokenIndex
{
- position297 := position
+ position298 := position
if buffer[position] != rune('.') {
- goto l296
+ goto l297
}
position++
if buffer[position] != rune('L') {
- goto l296
+ goto l297
}
position++
{
- position300, tokenIndex300 := position, tokenIndex
+ position301, tokenIndex301 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l301
- }
- position++
- goto l300
- l301:
- position, tokenIndex = position300, tokenIndex300
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l302
}
position++
- goto l300
+ goto l301
l302:
- position, tokenIndex = position300, tokenIndex300
- if buffer[position] != rune('.') {
+ position, tokenIndex = position301, tokenIndex301
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l303
}
position++
- goto l300
+ goto l301
l303:
- position, tokenIndex = position300, tokenIndex300
- {
- position305, tokenIndex305 := position, tokenIndex
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l306
- }
- position++
- goto l305
- l306:
- position, tokenIndex = position305, tokenIndex305
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l304
- }
- position++
- }
- l305:
- goto l300
- l304:
- position, tokenIndex = position300, tokenIndex300
- if buffer[position] != rune('$') {
- goto l307
+ position, tokenIndex = position301, tokenIndex301
+ if buffer[position] != rune('.') {
+ goto l304
}
position++
- goto l300
- l307:
- position, tokenIndex = position300, tokenIndex300
+ goto l301
+ l304:
+ position, tokenIndex = position301, tokenIndex301
+ {
+ position306, tokenIndex306 := position, tokenIndex
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l307
+ }
+ position++
+ goto l306
+ l307:
+ position, tokenIndex = position306, tokenIndex306
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l305
+ }
+ position++
+ }
+ l306:
+ goto l301
+ l305:
+ position, tokenIndex = position301, tokenIndex301
+ if buffer[position] != rune('$') {
+ goto l308
+ }
+ position++
+ goto l301
+ l308:
+ position, tokenIndex = position301, tokenIndex301
if buffer[position] != rune('_') {
- goto l296
+ goto l297
}
position++
}
- l300:
- l298:
+ l301:
+ l299:
{
- position299, tokenIndex299 := position, tokenIndex
+ position300, tokenIndex300 := position, tokenIndex
{
- position308, tokenIndex308 := position, tokenIndex
+ position309, tokenIndex309 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l309
- }
- position++
- goto l308
- l309:
- position, tokenIndex = position308, tokenIndex308
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l310
}
position++
- goto l308
+ goto l309
l310:
- position, tokenIndex = position308, tokenIndex308
- if buffer[position] != rune('.') {
+ position, tokenIndex = position309, tokenIndex309
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l311
}
position++
- goto l308
+ goto l309
l311:
- position, tokenIndex = position308, tokenIndex308
- {
- position313, tokenIndex313 := position, tokenIndex
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l314
- }
- position++
- goto l313
- l314:
- position, tokenIndex = position313, tokenIndex313
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l312
- }
- position++
- }
- l313:
- goto l308
- l312:
- position, tokenIndex = position308, tokenIndex308
- if buffer[position] != rune('$') {
- goto l315
+ position, tokenIndex = position309, tokenIndex309
+ if buffer[position] != rune('.') {
+ goto l312
}
position++
- goto l308
- l315:
- position, tokenIndex = position308, tokenIndex308
+ goto l309
+ l312:
+ position, tokenIndex = position309, tokenIndex309
+ {
+ position314, tokenIndex314 := position, tokenIndex
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l315
+ }
+ position++
+ goto l314
+ l315:
+ position, tokenIndex = position314, tokenIndex314
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l313
+ }
+ position++
+ }
+ l314:
+ goto l309
+ l313:
+ position, tokenIndex = position309, tokenIndex309
+ if buffer[position] != rune('$') {
+ goto l316
+ }
+ position++
+ goto l309
+ l316:
+ position, tokenIndex = position309, tokenIndex309
if buffer[position] != rune('_') {
- goto l299
+ goto l300
}
position++
}
- l308:
- goto l298
- l299:
- position, tokenIndex = position299, tokenIndex299
+ l309:
+ goto l299
+ l300:
+ position, tokenIndex = position300, tokenIndex300
}
- add(ruleLocalSymbol, position297)
+ add(ruleLocalSymbol, position298)
}
return true
- l296:
- position, tokenIndex = position296, tokenIndex296
+ l297:
+ position, tokenIndex = position297, tokenIndex297
return false
},
/* 23 LocalLabel <- <([0-9] ([0-9] / '$')*)> */
func() bool {
- position316, tokenIndex316 := position, tokenIndex
+ position317, tokenIndex317 := position, tokenIndex
{
- position317 := position
+ position318 := position
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l316
+ goto l317
}
position++
- l318:
+ l319:
{
- position319, tokenIndex319 := position, tokenIndex
+ position320, tokenIndex320 := position, tokenIndex
{
- position320, tokenIndex320 := position, tokenIndex
+ position321, tokenIndex321 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l321
+ goto l322
}
position++
- goto l320
- l321:
- position, tokenIndex = position320, tokenIndex320
+ goto l321
+ l322:
+ position, tokenIndex = position321, tokenIndex321
if buffer[position] != rune('$') {
- goto l319
+ goto l320
}
position++
}
+ l321:
+ goto l319
l320:
- goto l318
- l319:
- position, tokenIndex = position319, tokenIndex319
+ position, tokenIndex = position320, tokenIndex320
}
- add(ruleLocalLabel, position317)
+ add(ruleLocalLabel, position318)
}
return true
- l316:
- position, tokenIndex = position316, tokenIndex316
+ l317:
+ position, tokenIndex = position317, tokenIndex317
return false
},
/* 24 LocalLabelRef <- <([0-9] ([0-9] / '$')* ('b' / 'f'))> */
func() bool {
- position322, tokenIndex322 := position, tokenIndex
+ position323, tokenIndex323 := position, tokenIndex
{
- position323 := position
+ position324 := position
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l322
+ goto l323
}
position++
- l324:
+ l325:
{
- position325, tokenIndex325 := position, tokenIndex
+ position326, tokenIndex326 := position, tokenIndex
{
- position326, tokenIndex326 := position, tokenIndex
+ position327, tokenIndex327 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l327
+ goto l328
}
position++
- goto l326
- l327:
- position, tokenIndex = position326, tokenIndex326
+ goto l327
+ l328:
+ position, tokenIndex = position327, tokenIndex327
if buffer[position] != rune('$') {
- goto l325
+ goto l326
}
position++
}
+ l327:
+ goto l325
l326:
- goto l324
- l325:
- position, tokenIndex = position325, tokenIndex325
+ position, tokenIndex = position326, tokenIndex326
}
{
- position328, tokenIndex328 := position, tokenIndex
+ position329, tokenIndex329 := position, tokenIndex
if buffer[position] != rune('b') {
- goto l329
+ goto l330
}
position++
- goto l328
- l329:
- position, tokenIndex = position328, tokenIndex328
+ goto l329
+ l330:
+ position, tokenIndex = position329, tokenIndex329
if buffer[position] != rune('f') {
- goto l322
+ goto l323
}
position++
}
- l328:
- add(ruleLocalLabelRef, position323)
+ l329:
+ add(ruleLocalLabelRef, position324)
}
return true
- l322:
- position, tokenIndex = position322, tokenIndex322
+ l323:
+ position, tokenIndex = position323, tokenIndex323
return false
},
/* 25 Instruction <- <(InstructionName (WS InstructionArg (WS? ',' WS? InstructionArg)*)? (WS? '{' InstructionArg '}')*)> */
func() bool {
- position330, tokenIndex330 := position, tokenIndex
+ position331, tokenIndex331 := position, tokenIndex
{
- position331 := position
+ position332 := position
if !_rules[ruleInstructionName]() {
- goto l330
+ goto l331
}
{
- position332, tokenIndex332 := position, tokenIndex
+ position333, tokenIndex333 := position, tokenIndex
if !_rules[ruleWS]() {
- goto l332
+ goto l333
}
if !_rules[ruleInstructionArg]() {
- goto l332
+ goto l333
}
- l334:
+ l335:
{
- position335, tokenIndex335 := position, tokenIndex
+ position336, tokenIndex336 := position, tokenIndex
{
- position336, tokenIndex336 := position, tokenIndex
+ position337, tokenIndex337 := position, tokenIndex
if !_rules[ruleWS]() {
- goto l336
+ goto l337
}
- goto l337
- l336:
- position, tokenIndex = position336, tokenIndex336
+ goto l338
+ l337:
+ position, tokenIndex = position337, tokenIndex337
}
- l337:
+ l338:
if buffer[position] != rune(',') {
- goto l335
+ goto l336
}
position++
{
- position338, tokenIndex338 := position, tokenIndex
+ position339, tokenIndex339 := position, tokenIndex
if !_rules[ruleWS]() {
- goto l338
+ goto l339
}
- goto l339
- l338:
- position, tokenIndex = position338, tokenIndex338
+ goto l340
+ l339:
+ position, tokenIndex = position339, tokenIndex339
}
- l339:
+ l340:
if !_rules[ruleInstructionArg]() {
- goto l335
+ goto l336
}
- goto l334
- l335:
- position, tokenIndex = position335, tokenIndex335
+ goto l335
+ l336:
+ position, tokenIndex = position336, tokenIndex336
}
- goto l333
- l332:
- position, tokenIndex = position332, tokenIndex332
+ goto l334
+ l333:
+ position, tokenIndex = position333, tokenIndex333
}
- l333:
- l340:
+ l334:
+ l341:
{
- position341, tokenIndex341 := position, tokenIndex
+ position342, tokenIndex342 := position, tokenIndex
{
- position342, tokenIndex342 := position, tokenIndex
+ position343, tokenIndex343 := position, tokenIndex
if !_rules[ruleWS]() {
- goto l342
+ goto l343
}
- goto l343
- l342:
- position, tokenIndex = position342, tokenIndex342
+ goto l344
+ l343:
+ position, tokenIndex = position343, tokenIndex343
}
- l343:
+ l344:
if buffer[position] != rune('{') {
- goto l341
+ goto l342
}
position++
if !_rules[ruleInstructionArg]() {
- goto l341
+ goto l342
}
if buffer[position] != rune('}') {
- goto l341
+ goto l342
}
position++
- goto l340
- l341:
- position, tokenIndex = position341, tokenIndex341
+ goto l341
+ l342:
+ position, tokenIndex = position342, tokenIndex342
}
- add(ruleInstruction, position331)
+ add(ruleInstruction, position332)
}
return true
- l330:
- position, tokenIndex = position330, tokenIndex330
+ l331:
+ position, tokenIndex = position331, tokenIndex331
return false
},
/* 26 InstructionName <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / ([0-9] / [0-9]))* ('.' / '+' / '-')?)> */
func() bool {
- position344, tokenIndex344 := position, tokenIndex
+ position345, tokenIndex345 := position, tokenIndex
{
- position345 := position
+ position346 := position
{
- position346, tokenIndex346 := position, tokenIndex
+ position347, tokenIndex347 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l347
+ goto l348
}
position++
- goto l346
- l347:
- position, tokenIndex = position346, tokenIndex346
+ goto l347
+ l348:
+ position, tokenIndex = position347, tokenIndex347
if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l344
+ goto l345
}
position++
}
- l346:
- l348:
+ l347:
+ l349:
{
- position349, tokenIndex349 := position, tokenIndex
+ position350, tokenIndex350 := position, tokenIndex
{
- position350, tokenIndex350 := position, tokenIndex
+ position351, tokenIndex351 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l351
- }
- position++
- goto l350
- l351:
- position, tokenIndex = position350, tokenIndex350
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l352
}
position++
- goto l350
+ goto l351
l352:
- position, tokenIndex = position350, tokenIndex350
- {
- position353, tokenIndex353 := position, tokenIndex
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l354
- }
- position++
+ position, tokenIndex = position351, tokenIndex351
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l353
- l354:
- position, tokenIndex = position353, tokenIndex353
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l349
- }
- position++
- }
- l353:
- }
- l350:
- goto l348
- l349:
- position, tokenIndex = position349, tokenIndex349
- }
- {
- position355, tokenIndex355 := position, tokenIndex
- {
- position357, tokenIndex357 := position, tokenIndex
- if buffer[position] != rune('.') {
- goto l358
}
position++
- goto l357
- l358:
- position, tokenIndex = position357, tokenIndex357
- if buffer[position] != rune('+') {
+ goto l351
+ l353:
+ position, tokenIndex = position351, tokenIndex351
+ {
+ position354, tokenIndex354 := position, tokenIndex
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l355
+ }
+ position++
+ goto l354
+ l355:
+ position, tokenIndex = position354, tokenIndex354
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l350
+ }
+ position++
+ }
+ l354:
+ }
+ l351:
+ goto l349
+ l350:
+ position, tokenIndex = position350, tokenIndex350
+ }
+ {
+ position356, tokenIndex356 := position, tokenIndex
+ {
+ position358, tokenIndex358 := position, tokenIndex
+ if buffer[position] != rune('.') {
goto l359
}
position++
- goto l357
+ goto l358
l359:
- position, tokenIndex = position357, tokenIndex357
+ position, tokenIndex = position358, tokenIndex358
+ if buffer[position] != rune('+') {
+ goto l360
+ }
+ position++
+ goto l358
+ l360:
+ position, tokenIndex = position358, tokenIndex358
if buffer[position] != rune('-') {
- goto l355
+ goto l356
}
position++
}
- l357:
- goto l356
- l355:
- position, tokenIndex = position355, tokenIndex355
+ l358:
+ goto l357
+ l356:
+ position, tokenIndex = position356, tokenIndex356
}
- l356:
- add(ruleInstructionName, position345)
+ l357:
+ add(ruleInstructionName, position346)
}
return true
- l344:
- position, tokenIndex = position344, tokenIndex344
+ l345:
+ position, tokenIndex = position345, tokenIndex345
return false
},
/* 27 InstructionArg <- <(IndirectionIndicator? (RegisterOrConstant / LocalLabelRef / TOCRefHigh / TOCRefLow / MemoryRef))> */
func() bool {
- position360, tokenIndex360 := position, tokenIndex
+ position361, tokenIndex361 := position, tokenIndex
{
- position361 := position
+ position362 := position
{
- position362, tokenIndex362 := position, tokenIndex
+ position363, tokenIndex363 := position, tokenIndex
if !_rules[ruleIndirectionIndicator]() {
- goto l362
- }
- goto l363
- l362:
- position, tokenIndex = position362, tokenIndex362
- }
- l363:
- {
- position364, tokenIndex364 := position, tokenIndex
- if !_rules[ruleRegisterOrConstant]() {
- goto l365
+ goto l363
}
goto l364
- l365:
- position, tokenIndex = position364, tokenIndex364
- if !_rules[ruleLocalLabelRef]() {
- goto l366
- }
- goto l364
- l366:
- position, tokenIndex = position364, tokenIndex364
- if !_rules[ruleTOCRefHigh]() {
- goto l367
- }
- goto l364
- l367:
- position, tokenIndex = position364, tokenIndex364
- if !_rules[ruleTOCRefLow]() {
- goto l368
- }
- goto l364
- l368:
- position, tokenIndex = position364, tokenIndex364
- if !_rules[ruleMemoryRef]() {
- goto l360
- }
+ l363:
+ position, tokenIndex = position363, tokenIndex363
}
l364:
- add(ruleInstructionArg, position361)
+ {
+ position365, tokenIndex365 := position, tokenIndex
+ if !_rules[ruleRegisterOrConstant]() {
+ goto l366
+ }
+ goto l365
+ l366:
+ position, tokenIndex = position365, tokenIndex365
+ if !_rules[ruleLocalLabelRef]() {
+ goto l367
+ }
+ goto l365
+ l367:
+ position, tokenIndex = position365, tokenIndex365
+ if !_rules[ruleTOCRefHigh]() {
+ goto l368
+ }
+ goto l365
+ l368:
+ position, tokenIndex = position365, tokenIndex365
+ if !_rules[ruleTOCRefLow]() {
+ goto l369
+ }
+ goto l365
+ l369:
+ position, tokenIndex = position365, tokenIndex365
+ if !_rules[ruleMemoryRef]() {
+ goto l361
+ }
+ }
+ l365:
+ add(ruleInstructionArg, position362)
}
return true
- l360:
- position, tokenIndex = position360, tokenIndex360
+ l361:
+ position, tokenIndex = position361, tokenIndex361
return false
},
/* 28 TOCRefHigh <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('h' / 'H') ('a' / 'A')))> */
func() bool {
- position369, tokenIndex369 := position, tokenIndex
+ position370, tokenIndex370 := position, tokenIndex
{
- position370 := position
+ position371 := position
if buffer[position] != rune('.') {
- goto l369
+ goto l370
}
position++
if buffer[position] != rune('T') {
- goto l369
+ goto l370
}
position++
if buffer[position] != rune('O') {
- goto l369
+ goto l370
}
position++
if buffer[position] != rune('C') {
- goto l369
+ goto l370
}
position++
if buffer[position] != rune('.') {
- goto l369
+ goto l370
}
position++
if buffer[position] != rune('-') {
- goto l369
+ goto l370
}
position++
{
- position371, tokenIndex371 := position, tokenIndex
+ position372, tokenIndex372 := position, tokenIndex
if buffer[position] != rune('0') {
- goto l372
+ goto l373
}
position++
if buffer[position] != rune('b') {
- goto l372
+ goto l373
}
position++
- goto l371
- l372:
- position, tokenIndex = position371, tokenIndex371
+ goto l372
+ l373:
+ position, tokenIndex = position372, tokenIndex372
if buffer[position] != rune('.') {
- goto l369
+ goto l370
}
position++
if buffer[position] != rune('L') {
- goto l369
+ goto l370
}
position++
{
- position375, tokenIndex375 := position, tokenIndex
+ position376, tokenIndex376 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l376
- }
- position++
- goto l375
- l376:
- position, tokenIndex = position375, tokenIndex375
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l377
}
position++
- goto l375
+ goto l376
l377:
- position, tokenIndex = position375, tokenIndex375
- if buffer[position] != rune('_') {
+ position, tokenIndex = position376, tokenIndex376
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l378
}
position++
- goto l375
+ goto l376
l378:
- position, tokenIndex = position375, tokenIndex375
+ position, tokenIndex = position376, tokenIndex376
+ if buffer[position] != rune('_') {
+ goto l379
+ }
+ position++
+ goto l376
+ l379:
+ position, tokenIndex = position376, tokenIndex376
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l369
+ goto l370
}
position++
}
- l375:
- l373:
+ l376:
+ l374:
{
- position374, tokenIndex374 := position, tokenIndex
+ position375, tokenIndex375 := position, tokenIndex
{
- position379, tokenIndex379 := position, tokenIndex
+ position380, tokenIndex380 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l380
- }
- position++
- goto l379
- l380:
- position, tokenIndex = position379, tokenIndex379
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l381
}
position++
- goto l379
+ goto l380
l381:
- position, tokenIndex = position379, tokenIndex379
- if buffer[position] != rune('_') {
+ position, tokenIndex = position380, tokenIndex380
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l382
}
position++
- goto l379
+ goto l380
l382:
- position, tokenIndex = position379, tokenIndex379
+ position, tokenIndex = position380, tokenIndex380
+ if buffer[position] != rune('_') {
+ goto l383
+ }
+ position++
+ goto l380
+ l383:
+ position, tokenIndex = position380, tokenIndex380
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l374
+ goto l375
}
position++
}
- l379:
- goto l373
- l374:
- position, tokenIndex = position374, tokenIndex374
+ l380:
+ goto l374
+ l375:
+ position, tokenIndex = position375, tokenIndex375
}
}
- l371:
+ l372:
if buffer[position] != rune('@') {
- goto l369
+ goto l370
}
position++
{
- position383, tokenIndex383 := position, tokenIndex
+ position384, tokenIndex384 := position, tokenIndex
if buffer[position] != rune('h') {
- goto l384
+ goto l385
}
position++
- goto l383
- l384:
- position, tokenIndex = position383, tokenIndex383
+ goto l384
+ l385:
+ position, tokenIndex = position384, tokenIndex384
if buffer[position] != rune('H') {
- goto l369
+ goto l370
}
position++
}
- l383:
+ l384:
{
- position385, tokenIndex385 := position, tokenIndex
+ position386, tokenIndex386 := position, tokenIndex
if buffer[position] != rune('a') {
- goto l386
+ goto l387
}
position++
- goto l385
- l386:
- position, tokenIndex = position385, tokenIndex385
+ goto l386
+ l387:
+ position, tokenIndex = position386, tokenIndex386
if buffer[position] != rune('A') {
- goto l369
+ goto l370
}
position++
}
- l385:
- add(ruleTOCRefHigh, position370)
+ l386:
+ add(ruleTOCRefHigh, position371)
}
return true
- l369:
- position, tokenIndex = position369, tokenIndex369
+ l370:
+ position, tokenIndex = position370, tokenIndex370
return false
},
/* 29 TOCRefLow <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('l' / 'L')))> */
func() bool {
- position387, tokenIndex387 := position, tokenIndex
+ position388, tokenIndex388 := position, tokenIndex
{
- position388 := position
+ position389 := position
if buffer[position] != rune('.') {
- goto l387
+ goto l388
}
position++
if buffer[position] != rune('T') {
- goto l387
+ goto l388
}
position++
if buffer[position] != rune('O') {
- goto l387
+ goto l388
}
position++
if buffer[position] != rune('C') {
- goto l387
+ goto l388
}
position++
if buffer[position] != rune('.') {
- goto l387
+ goto l388
}
position++
if buffer[position] != rune('-') {
- goto l387
+ goto l388
}
position++
{
- position389, tokenIndex389 := position, tokenIndex
+ position390, tokenIndex390 := position, tokenIndex
if buffer[position] != rune('0') {
- goto l390
+ goto l391
}
position++
if buffer[position] != rune('b') {
- goto l390
+ goto l391
}
position++
- goto l389
- l390:
- position, tokenIndex = position389, tokenIndex389
+ goto l390
+ l391:
+ position, tokenIndex = position390, tokenIndex390
if buffer[position] != rune('.') {
- goto l387
+ goto l388
}
position++
if buffer[position] != rune('L') {
- goto l387
+ goto l388
}
position++
{
- position393, tokenIndex393 := position, tokenIndex
+ position394, tokenIndex394 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l394
- }
- position++
- goto l393
- l394:
- position, tokenIndex = position393, tokenIndex393
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l395
}
position++
- goto l393
+ goto l394
l395:
- position, tokenIndex = position393, tokenIndex393
- if buffer[position] != rune('_') {
+ position, tokenIndex = position394, tokenIndex394
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l396
}
position++
- goto l393
+ goto l394
l396:
- position, tokenIndex = position393, tokenIndex393
+ position, tokenIndex = position394, tokenIndex394
+ if buffer[position] != rune('_') {
+ goto l397
+ }
+ position++
+ goto l394
+ l397:
+ position, tokenIndex = position394, tokenIndex394
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l387
+ goto l388
}
position++
}
- l393:
- l391:
+ l394:
+ l392:
{
- position392, tokenIndex392 := position, tokenIndex
+ position393, tokenIndex393 := position, tokenIndex
{
- position397, tokenIndex397 := position, tokenIndex
+ position398, tokenIndex398 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l398
- }
- position++
- goto l397
- l398:
- position, tokenIndex = position397, tokenIndex397
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l399
}
position++
- goto l397
+ goto l398
l399:
- position, tokenIndex = position397, tokenIndex397
- if buffer[position] != rune('_') {
+ position, tokenIndex = position398, tokenIndex398
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l400
}
position++
- goto l397
+ goto l398
l400:
- position, tokenIndex = position397, tokenIndex397
+ position, tokenIndex = position398, tokenIndex398
+ if buffer[position] != rune('_') {
+ goto l401
+ }
+ position++
+ goto l398
+ l401:
+ position, tokenIndex = position398, tokenIndex398
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l392
+ goto l393
}
position++
}
- l397:
- goto l391
- l392:
- position, tokenIndex = position392, tokenIndex392
+ l398:
+ goto l392
+ l393:
+ position, tokenIndex = position393, tokenIndex393
}
}
- l389:
+ l390:
if buffer[position] != rune('@') {
- goto l387
+ goto l388
}
position++
{
- position401, tokenIndex401 := position, tokenIndex
+ position402, tokenIndex402 := position, tokenIndex
if buffer[position] != rune('l') {
- goto l402
+ goto l403
}
position++
- goto l401
- l402:
- position, tokenIndex = position401, tokenIndex401
+ goto l402
+ l403:
+ position, tokenIndex = position402, tokenIndex402
if buffer[position] != rune('L') {
- goto l387
+ goto l388
}
position++
}
- l401:
- add(ruleTOCRefLow, position388)
+ l402:
+ add(ruleTOCRefLow, position389)
}
return true
- l387:
- position, tokenIndex = position387, tokenIndex387
+ l388:
+ position, tokenIndex = position388, tokenIndex388
return false
},
/* 30 IndirectionIndicator <- <'*'> */
func() bool {
- position403, tokenIndex403 := position, tokenIndex
+ position404, tokenIndex404 := position, tokenIndex
{
- position404 := position
+ position405 := position
if buffer[position] != rune('*') {
- goto l403
+ goto l404
}
position++
- add(ruleIndirectionIndicator, position404)
+ add(ruleIndirectionIndicator, position405)
}
return true
- l403:
- position, tokenIndex = position403, tokenIndex403
+ l404:
+ position, tokenIndex = position404, tokenIndex404
return false
},
/* 31 RegisterOrConstant <- <((('%' ([a-z] / [A-Z]) ([a-z] / [A-Z] / ([0-9] / [0-9]))*) / ('$'? ((Offset Offset) / Offset))) !('f' / 'b' / ':' / '(' / '+' / '-'))> */
func() bool {
- position405, tokenIndex405 := position, tokenIndex
+ position406, tokenIndex406 := position, tokenIndex
{
- position406 := position
+ position407 := position
{
- position407, tokenIndex407 := position, tokenIndex
+ position408, tokenIndex408 := position, tokenIndex
if buffer[position] != rune('%') {
- goto l408
+ goto l409
}
position++
{
- position409, tokenIndex409 := position, tokenIndex
+ position410, tokenIndex410 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l410
+ goto l411
}
position++
- goto l409
- l410:
- position, tokenIndex = position409, tokenIndex409
+ goto l410
+ l411:
+ position, tokenIndex = position410, tokenIndex410
if c := buffer[position]; c < rune('A') || c > rune('Z') {
- goto l408
+ goto l409
}
position++
}
- l409:
- l411:
+ l410:
+ l412:
{
- position412, tokenIndex412 := position, tokenIndex
+ position413, tokenIndex413 := position, tokenIndex
{
- position413, tokenIndex413 := position, tokenIndex
+ position414, tokenIndex414 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l414
- }
- position++
- goto l413
- l414:
- position, tokenIndex = position413, tokenIndex413
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l415
}
position++
- goto l413
+ goto l414
l415:
- position, tokenIndex = position413, tokenIndex413
+ position, tokenIndex = position414, tokenIndex414
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
+ goto l416
+ }
+ position++
+ goto l414
+ l416:
+ position, tokenIndex = position414, tokenIndex414
{
- position416, tokenIndex416 := position, tokenIndex
+ position417, tokenIndex417 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l417
+ goto l418
}
position++
- goto l416
- l417:
- position, tokenIndex = position416, tokenIndex416
+ goto l417
+ l418:
+ position, tokenIndex = position417, tokenIndex417
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l412
+ goto l413
}
position++
}
- l416:
+ l417:
}
+ l414:
+ goto l412
l413:
- goto l411
- l412:
- position, tokenIndex = position412, tokenIndex412
+ position, tokenIndex = position413, tokenIndex413
}
- goto l407
- l408:
- position, tokenIndex = position407, tokenIndex407
+ goto l408
+ l409:
+ position, tokenIndex = position408, tokenIndex408
{
- position418, tokenIndex418 := position, tokenIndex
+ position419, tokenIndex419 := position, tokenIndex
if buffer[position] != rune('$') {
- goto l418
+ goto l419
}
position++
- goto l419
- l418:
- position, tokenIndex = position418, tokenIndex418
- }
- l419:
- {
- position420, tokenIndex420 := position, tokenIndex
- if !_rules[ruleOffset]() {
- goto l421
- }
- if !_rules[ruleOffset]() {
- goto l421
- }
goto l420
- l421:
- position, tokenIndex = position420, tokenIndex420
- if !_rules[ruleOffset]() {
- goto l405
- }
+ l419:
+ position, tokenIndex = position419, tokenIndex419
}
l420:
- }
- l407:
- {
- position422, tokenIndex422 := position, tokenIndex
{
- position423, tokenIndex423 := position, tokenIndex
- if buffer[position] != rune('f') {
- goto l424
+ position421, tokenIndex421 := position, tokenIndex
+ if !_rules[ruleOffset]() {
+ goto l422
}
- position++
- goto l423
- l424:
- position, tokenIndex = position423, tokenIndex423
- if buffer[position] != rune('b') {
+ if !_rules[ruleOffset]() {
+ goto l422
+ }
+ goto l421
+ l422:
+ position, tokenIndex = position421, tokenIndex421
+ if !_rules[ruleOffset]() {
+ goto l406
+ }
+ }
+ l421:
+ }
+ l408:
+ {
+ position423, tokenIndex423 := position, tokenIndex
+ {
+ position424, tokenIndex424 := position, tokenIndex
+ if buffer[position] != rune('f') {
goto l425
}
position++
- goto l423
+ goto l424
l425:
- position, tokenIndex = position423, tokenIndex423
- if buffer[position] != rune(':') {
+ position, tokenIndex = position424, tokenIndex424
+ if buffer[position] != rune('b') {
goto l426
}
position++
- goto l423
+ goto l424
l426:
- position, tokenIndex = position423, tokenIndex423
- if buffer[position] != rune('(') {
+ position, tokenIndex = position424, tokenIndex424
+ if buffer[position] != rune(':') {
goto l427
}
position++
- goto l423
+ goto l424
l427:
- position, tokenIndex = position423, tokenIndex423
- if buffer[position] != rune('+') {
+ position, tokenIndex = position424, tokenIndex424
+ if buffer[position] != rune('(') {
goto l428
}
position++
- goto l423
+ goto l424
l428:
- position, tokenIndex = position423, tokenIndex423
+ position, tokenIndex = position424, tokenIndex424
+ if buffer[position] != rune('+') {
+ goto l429
+ }
+ position++
+ goto l424
+ l429:
+ position, tokenIndex = position424, tokenIndex424
if buffer[position] != rune('-') {
- goto l422
+ goto l423
}
position++
}
+ l424:
+ goto l406
l423:
- goto l405
- l422:
- position, tokenIndex = position422, tokenIndex422
+ position, tokenIndex = position423, tokenIndex423
}
- add(ruleRegisterOrConstant, position406)
+ add(ruleRegisterOrConstant, position407)
}
return true
- l405:
- position, tokenIndex = position405, tokenIndex405
+ l406:
+ position, tokenIndex = position406, tokenIndex406
return false
},
/* 32 MemoryRef <- <((SymbolRef BaseIndexScale) / SymbolRef / (Offset* BaseIndexScale) / (SegmentRegister Offset BaseIndexScale) / (SegmentRegister BaseIndexScale) / (SegmentRegister Offset) / BaseIndexScale)> */
func() bool {
- position429, tokenIndex429 := position, tokenIndex
+ position430, tokenIndex430 := position, tokenIndex
{
- position430 := position
+ position431 := position
{
- position431, tokenIndex431 := position, tokenIndex
- if !_rules[ruleSymbolRef]() {
- goto l432
- }
- if !_rules[ruleBaseIndexScale]() {
- goto l432
- }
- goto l431
- l432:
- position, tokenIndex = position431, tokenIndex431
+ position432, tokenIndex432 := position, tokenIndex
if !_rules[ruleSymbolRef]() {
goto l433
}
- goto l431
- l433:
- position, tokenIndex = position431, tokenIndex431
- l435:
- {
- position436, tokenIndex436 := position, tokenIndex
- if !_rules[ruleOffset]() {
- goto l436
- }
- goto l435
- l436:
- position, tokenIndex = position436, tokenIndex436
- }
if !_rules[ruleBaseIndexScale]() {
+ goto l433
+ }
+ goto l432
+ l433:
+ position, tokenIndex = position432, tokenIndex432
+ if !_rules[ruleSymbolRef]() {
goto l434
}
- goto l431
+ goto l432
l434:
- position, tokenIndex = position431, tokenIndex431
+ position, tokenIndex = position432, tokenIndex432
+ l436:
+ {
+ position437, tokenIndex437 := position, tokenIndex
+ if !_rules[ruleOffset]() {
+ goto l437
+ }
+ goto l436
+ l437:
+ position, tokenIndex = position437, tokenIndex437
+ }
+ if !_rules[ruleBaseIndexScale]() {
+ goto l435
+ }
+ goto l432
+ l435:
+ position, tokenIndex = position432, tokenIndex432
if !_rules[ruleSegmentRegister]() {
- goto l437
+ goto l438
}
if !_rules[ruleOffset]() {
- goto l437
- }
- if !_rules[ruleBaseIndexScale]() {
- goto l437
- }
- goto l431
- l437:
- position, tokenIndex = position431, tokenIndex431
- if !_rules[ruleSegmentRegister]() {
goto l438
}
if !_rules[ruleBaseIndexScale]() {
goto l438
}
- goto l431
+ goto l432
l438:
- position, tokenIndex = position431, tokenIndex431
+ position, tokenIndex = position432, tokenIndex432
if !_rules[ruleSegmentRegister]() {
goto l439
}
- if !_rules[ruleOffset]() {
+ if !_rules[ruleBaseIndexScale]() {
goto l439
}
- goto l431
+ goto l432
l439:
- position, tokenIndex = position431, tokenIndex431
+ position, tokenIndex = position432, tokenIndex432
+ if !_rules[ruleSegmentRegister]() {
+ goto l440
+ }
+ if !_rules[ruleOffset]() {
+ goto l440
+ }
+ goto l432
+ l440:
+ position, tokenIndex = position432, tokenIndex432
if !_rules[ruleBaseIndexScale]() {
- goto l429
+ goto l430
}
}
- l431:
- add(ruleMemoryRef, position430)
+ l432:
+ add(ruleMemoryRef, position431)
}
return true
- l429:
- position, tokenIndex = position429, tokenIndex429
+ l430:
+ position, tokenIndex = position430, tokenIndex430
return false
},
/* 33 SymbolRef <- <((Offset* '+')? (LocalSymbol / SymbolName) Offset* ('@' Section Offset*)?)> */
func() bool {
- position440, tokenIndex440 := position, tokenIndex
+ position441, tokenIndex441 := position, tokenIndex
{
- position441 := position
+ position442 := position
{
- position442, tokenIndex442 := position, tokenIndex
- l444:
+ position443, tokenIndex443 := position, tokenIndex
+ l445:
{
- position445, tokenIndex445 := position, tokenIndex
+ position446, tokenIndex446 := position, tokenIndex
if !_rules[ruleOffset]() {
- goto l445
+ goto l446
}
- goto l444
- l445:
- position, tokenIndex = position445, tokenIndex445
+ goto l445
+ l446:
+ position, tokenIndex = position446, tokenIndex446
}
if buffer[position] != rune('+') {
- goto l442
+ goto l443
}
position++
- goto l443
- l442:
- position, tokenIndex = position442, tokenIndex442
+ goto l444
+ l443:
+ position, tokenIndex = position443, tokenIndex443
}
- l443:
+ l444:
{
- position446, tokenIndex446 := position, tokenIndex
+ position447, tokenIndex447 := position, tokenIndex
if !_rules[ruleLocalSymbol]() {
- goto l447
+ goto l448
}
- goto l446
- l447:
- position, tokenIndex = position446, tokenIndex446
+ goto l447
+ l448:
+ position, tokenIndex = position447, tokenIndex447
if !_rules[ruleSymbolName]() {
- goto l440
+ goto l441
}
}
- l446:
- l448:
- {
- position449, tokenIndex449 := position, tokenIndex
- if !_rules[ruleOffset]() {
- goto l449
- }
- goto l448
- l449:
- position, tokenIndex = position449, tokenIndex449
- }
+ l447:
+ l449:
{
position450, tokenIndex450 := position, tokenIndex
- if buffer[position] != rune('@') {
+ if !_rules[ruleOffset]() {
goto l450
}
- position++
- if !_rules[ruleSection]() {
- goto l450
- }
- l452:
- {
- position453, tokenIndex453 := position, tokenIndex
- if !_rules[ruleOffset]() {
- goto l453
- }
- goto l452
- l453:
- position, tokenIndex = position453, tokenIndex453
- }
- goto l451
+ goto l449
l450:
position, tokenIndex = position450, tokenIndex450
}
- l451:
- add(ruleSymbolRef, position441)
+ {
+ position451, tokenIndex451 := position, tokenIndex
+ if buffer[position] != rune('@') {
+ goto l451
+ }
+ position++
+ if !_rules[ruleSection]() {
+ goto l451
+ }
+ l453:
+ {
+ position454, tokenIndex454 := position, tokenIndex
+ if !_rules[ruleOffset]() {
+ goto l454
+ }
+ goto l453
+ l454:
+ position, tokenIndex = position454, tokenIndex454
+ }
+ goto l452
+ l451:
+ position, tokenIndex = position451, tokenIndex451
+ }
+ l452:
+ add(ruleSymbolRef, position442)
}
return true
- l440:
- position, tokenIndex = position440, tokenIndex440
+ l441:
+ position, tokenIndex = position441, tokenIndex441
return false
},
/* 34 BaseIndexScale <- <('(' RegisterOrConstant? WS? (',' WS? RegisterOrConstant WS? (',' [0-9]+)?)? ')')> */
func() bool {
- position454, tokenIndex454 := position, tokenIndex
+ position455, tokenIndex455 := position, tokenIndex
{
- position455 := position
+ position456 := position
if buffer[position] != rune('(') {
- goto l454
+ goto l455
}
position++
{
- position456, tokenIndex456 := position, tokenIndex
+ position457, tokenIndex457 := position, tokenIndex
if !_rules[ruleRegisterOrConstant]() {
- goto l456
+ goto l457
}
- goto l457
- l456:
- position, tokenIndex = position456, tokenIndex456
+ goto l458
+ l457:
+ position, tokenIndex = position457, tokenIndex457
}
- l457:
+ l458:
{
- position458, tokenIndex458 := position, tokenIndex
+ position459, tokenIndex459 := position, tokenIndex
if !_rules[ruleWS]() {
- goto l458
+ goto l459
}
- goto l459
- l458:
- position, tokenIndex = position458, tokenIndex458
+ goto l460
+ l459:
+ position, tokenIndex = position459, tokenIndex459
}
- l459:
+ l460:
{
- position460, tokenIndex460 := position, tokenIndex
+ position461, tokenIndex461 := position, tokenIndex
if buffer[position] != rune(',') {
- goto l460
+ goto l461
}
position++
{
- position462, tokenIndex462 := position, tokenIndex
+ position463, tokenIndex463 := position, tokenIndex
if !_rules[ruleWS]() {
- goto l462
+ goto l463
}
- goto l463
- l462:
- position, tokenIndex = position462, tokenIndex462
+ goto l464
+ l463:
+ position, tokenIndex = position463, tokenIndex463
}
- l463:
+ l464:
if !_rules[ruleRegisterOrConstant]() {
- goto l460
+ goto l461
}
{
- position464, tokenIndex464 := position, tokenIndex
+ position465, tokenIndex465 := position, tokenIndex
if !_rules[ruleWS]() {
- goto l464
+ goto l465
}
- goto l465
- l464:
- position, tokenIndex = position464, tokenIndex464
+ goto l466
+ l465:
+ position, tokenIndex = position465, tokenIndex465
}
- l465:
+ l466:
{
- position466, tokenIndex466 := position, tokenIndex
+ position467, tokenIndex467 := position, tokenIndex
if buffer[position] != rune(',') {
- goto l466
+ goto l467
}
position++
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l466
+ goto l467
}
position++
- l468:
+ l469:
{
- position469, tokenIndex469 := position, tokenIndex
+ position470, tokenIndex470 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l469
+ goto l470
}
position++
- goto l468
- l469:
- position, tokenIndex = position469, tokenIndex469
+ goto l469
+ l470:
+ position, tokenIndex = position470, tokenIndex470
}
- goto l467
- l466:
- position, tokenIndex = position466, tokenIndex466
+ goto l468
+ l467:
+ position, tokenIndex = position467, tokenIndex467
}
- l467:
- goto l461
- l460:
- position, tokenIndex = position460, tokenIndex460
+ l468:
+ goto l462
+ l461:
+ position, tokenIndex = position461, tokenIndex461
}
- l461:
+ l462:
if buffer[position] != rune(')') {
- goto l454
+ goto l455
}
position++
- add(ruleBaseIndexScale, position455)
+ add(ruleBaseIndexScale, position456)
}
return true
- l454:
- position, tokenIndex = position454, tokenIndex454
+ l455:
+ position, tokenIndex = position455, tokenIndex455
return false
},
/* 35 Operator <- <('+' / '-')> */
func() bool {
- position470, tokenIndex470 := position, tokenIndex
+ position471, tokenIndex471 := position, tokenIndex
{
- position471 := position
+ position472 := position
{
- position472, tokenIndex472 := position, tokenIndex
+ position473, tokenIndex473 := position, tokenIndex
if buffer[position] != rune('+') {
- goto l473
+ goto l474
}
position++
- goto l472
- l473:
- position, tokenIndex = position472, tokenIndex472
+ goto l473
+ l474:
+ position, tokenIndex = position473, tokenIndex473
if buffer[position] != rune('-') {
- goto l470
+ goto l471
}
position++
}
- l472:
- add(ruleOperator, position471)
+ l473:
+ add(ruleOperator, position472)
}
return true
- l470:
- position, tokenIndex = position470, tokenIndex470
+ l471:
+ position, tokenIndex = position471, tokenIndex471
return false
},
/* 36 Offset <- <('+'? '-'? (('0' ('b' / 'B') ('0' / '1')+) / ('0' ('x' / 'X') ([0-9] / [0-9] / ([a-f] / [A-F]))+) / [0-9]+))> */
func() bool {
- position474, tokenIndex474 := position, tokenIndex
+ position475, tokenIndex475 := position, tokenIndex
{
- position475 := position
+ position476 := position
{
- position476, tokenIndex476 := position, tokenIndex
+ position477, tokenIndex477 := position, tokenIndex
if buffer[position] != rune('+') {
- goto l476
+ goto l477
}
position++
- goto l477
- l476:
- position, tokenIndex = position476, tokenIndex476
+ goto l478
+ l477:
+ position, tokenIndex = position477, tokenIndex477
}
- l477:
+ l478:
{
- position478, tokenIndex478 := position, tokenIndex
+ position479, tokenIndex479 := position, tokenIndex
if buffer[position] != rune('-') {
- goto l478
+ goto l479
}
position++
- goto l479
- l478:
- position, tokenIndex = position478, tokenIndex478
+ goto l480
+ l479:
+ position, tokenIndex = position479, tokenIndex479
}
- l479:
+ l480:
{
- position480, tokenIndex480 := position, tokenIndex
+ position481, tokenIndex481 := position, tokenIndex
if buffer[position] != rune('0') {
- goto l481
+ goto l482
}
position++
{
- position482, tokenIndex482 := position, tokenIndex
+ position483, tokenIndex483 := position, tokenIndex
if buffer[position] != rune('b') {
- goto l483
+ goto l484
}
position++
- goto l482
- l483:
- position, tokenIndex = position482, tokenIndex482
+ goto l483
+ l484:
+ position, tokenIndex = position483, tokenIndex483
if buffer[position] != rune('B') {
- goto l481
+ goto l482
}
position++
}
- l482:
+ l483:
+ {
+ position487, tokenIndex487 := position, tokenIndex
+ if buffer[position] != rune('0') {
+ goto l488
+ }
+ position++
+ goto l487
+ l488:
+ position, tokenIndex = position487, tokenIndex487
+ if buffer[position] != rune('1') {
+ goto l482
+ }
+ position++
+ }
+ l487:
+ l485:
{
position486, tokenIndex486 := position, tokenIndex
- if buffer[position] != rune('0') {
- goto l487
- }
- position++
- goto l486
- l487:
- position, tokenIndex = position486, tokenIndex486
- if buffer[position] != rune('1') {
- goto l481
- }
- position++
- }
- l486:
- l484:
- {
- position485, tokenIndex485 := position, tokenIndex
{
- position488, tokenIndex488 := position, tokenIndex
+ position489, tokenIndex489 := position, tokenIndex
if buffer[position] != rune('0') {
- goto l489
+ goto l490
}
position++
- goto l488
- l489:
- position, tokenIndex = position488, tokenIndex488
+ goto l489
+ l490:
+ position, tokenIndex = position489, tokenIndex489
if buffer[position] != rune('1') {
- goto l485
+ goto l486
}
position++
}
- l488:
- goto l484
- l485:
- position, tokenIndex = position485, tokenIndex485
+ l489:
+ goto l485
+ l486:
+ position, tokenIndex = position486, tokenIndex486
}
- goto l480
- l481:
- position, tokenIndex = position480, tokenIndex480
+ goto l481
+ l482:
+ position, tokenIndex = position481, tokenIndex481
if buffer[position] != rune('0') {
- goto l490
+ goto l491
}
position++
{
- position491, tokenIndex491 := position, tokenIndex
+ position492, tokenIndex492 := position, tokenIndex
if buffer[position] != rune('x') {
- goto l492
+ goto l493
}
position++
- goto l491
- l492:
- position, tokenIndex = position491, tokenIndex491
+ goto l492
+ l493:
+ position, tokenIndex = position492, tokenIndex492
if buffer[position] != rune('X') {
- goto l490
+ goto l491
}
position++
}
- l491:
+ l492:
{
- position495, tokenIndex495 := position, tokenIndex
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l496
- }
- position++
- goto l495
- l496:
- position, tokenIndex = position495, tokenIndex495
+ position496, tokenIndex496 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l497
}
position++
- goto l495
+ goto l496
l497:
- position, tokenIndex = position495, tokenIndex495
+ position, tokenIndex = position496, tokenIndex496
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l498
+ }
+ position++
+ goto l496
+ l498:
+ position, tokenIndex = position496, tokenIndex496
{
- position498, tokenIndex498 := position, tokenIndex
+ position499, tokenIndex499 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('f') {
- goto l499
+ goto l500
}
position++
- goto l498
- l499:
- position, tokenIndex = position498, tokenIndex498
+ goto l499
+ l500:
+ position, tokenIndex = position499, tokenIndex499
if c := buffer[position]; c < rune('A') || c > rune('F') {
- goto l490
+ goto l491
}
position++
}
- l498:
+ l499:
}
- l495:
- l493:
+ l496:
+ l494:
{
- position494, tokenIndex494 := position, tokenIndex
+ position495, tokenIndex495 := position, tokenIndex
{
- position500, tokenIndex500 := position, tokenIndex
- if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l501
- }
- position++
- goto l500
- l501:
- position, tokenIndex = position500, tokenIndex500
+ position501, tokenIndex501 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
goto l502
}
position++
- goto l500
+ goto l501
l502:
- position, tokenIndex = position500, tokenIndex500
+ position, tokenIndex = position501, tokenIndex501
+ if c := buffer[position]; c < rune('0') || c > rune('9') {
+ goto l503
+ }
+ position++
+ goto l501
+ l503:
+ position, tokenIndex = position501, tokenIndex501
{
- position503, tokenIndex503 := position, tokenIndex
+ position504, tokenIndex504 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('f') {
- goto l504
+ goto l505
}
position++
- goto l503
- l504:
- position, tokenIndex = position503, tokenIndex503
+ goto l504
+ l505:
+ position, tokenIndex = position504, tokenIndex504
if c := buffer[position]; c < rune('A') || c > rune('F') {
- goto l494
+ goto l495
}
position++
}
- l503:
+ l504:
}
- l500:
- goto l493
- l494:
- position, tokenIndex = position494, tokenIndex494
+ l501:
+ goto l494
+ l495:
+ position, tokenIndex = position495, tokenIndex495
}
- goto l480
- l490:
- position, tokenIndex = position480, tokenIndex480
+ goto l481
+ l491:
+ position, tokenIndex = position481, tokenIndex481
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l474
+ goto l475
}
position++
- l505:
+ l506:
{
- position506, tokenIndex506 := position, tokenIndex
+ position507, tokenIndex507 := position, tokenIndex
if c := buffer[position]; c < rune('0') || c > rune('9') {
- goto l506
+ goto l507
}
position++
- goto l505
- l506:
- position, tokenIndex = position506, tokenIndex506
+ goto l506
+ l507:
+ position, tokenIndex = position507, tokenIndex507
}
}
- l480:
- add(ruleOffset, position475)
+ l481:
+ add(ruleOffset, position476)
}
return true
- l474:
- position, tokenIndex = position474, tokenIndex474
+ l475:
+ position, tokenIndex = position475, tokenIndex475
return false
},
/* 37 Section <- <([a-z] / [A-Z] / '@')+> */
func() bool {
- position507, tokenIndex507 := position, tokenIndex
+ position508, tokenIndex508 := position, tokenIndex
{
- position508 := position
+ position509 := position
{
- position511, tokenIndex511 := position, tokenIndex
+ position512, tokenIndex512 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l512
- }
- position++
- goto l511
- l512:
- position, tokenIndex = position511, tokenIndex511
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l513
}
position++
- goto l511
+ goto l512
l513:
- position, tokenIndex = position511, tokenIndex511
+ position, tokenIndex = position512, tokenIndex512
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
+ goto l514
+ }
+ position++
+ goto l512
+ l514:
+ position, tokenIndex = position512, tokenIndex512
if buffer[position] != rune('@') {
- goto l507
+ goto l508
}
position++
}
- l511:
- l509:
+ l512:
+ l510:
{
- position510, tokenIndex510 := position, tokenIndex
+ position511, tokenIndex511 := position, tokenIndex
{
- position514, tokenIndex514 := position, tokenIndex
+ position515, tokenIndex515 := position, tokenIndex
if c := buffer[position]; c < rune('a') || c > rune('z') {
- goto l515
- }
- position++
- goto l514
- l515:
- position, tokenIndex = position514, tokenIndex514
- if c := buffer[position]; c < rune('A') || c > rune('Z') {
goto l516
}
position++
- goto l514
+ goto l515
l516:
- position, tokenIndex = position514, tokenIndex514
+ position, tokenIndex = position515, tokenIndex515
+ if c := buffer[position]; c < rune('A') || c > rune('Z') {
+ goto l517
+ }
+ position++
+ goto l515
+ l517:
+ position, tokenIndex = position515, tokenIndex515
if buffer[position] != rune('@') {
- goto l510
+ goto l511
}
position++
}
- l514:
- goto l509
- l510:
- position, tokenIndex = position510, tokenIndex510
+ l515:
+ goto l510
+ l511:
+ position, tokenIndex = position511, tokenIndex511
}
- add(ruleSection, position508)
+ add(ruleSection, position509)
}
return true
- l507:
- position, tokenIndex = position507, tokenIndex507
+ l508:
+ position, tokenIndex = position508, tokenIndex508
return false
},
/* 38 SegmentRegister <- <('%' ([c-g] / 's') ('s' ':'))> */
func() bool {
- position517, tokenIndex517 := position, tokenIndex
+ position518, tokenIndex518 := position, tokenIndex
{
- position518 := position
+ position519 := position
if buffer[position] != rune('%') {
- goto l517
+ goto l518
}
position++
{
- position519, tokenIndex519 := position, tokenIndex
+ position520, tokenIndex520 := position, tokenIndex
if c := buffer[position]; c < rune('c') || c > rune('g') {
- goto l520
+ goto l521
}
position++
- goto l519
- l520:
- position, tokenIndex = position519, tokenIndex519
+ goto l520
+ l521:
+ position, tokenIndex = position520, tokenIndex520
if buffer[position] != rune('s') {
- goto l517
+ goto l518
}
position++
}
- l519:
+ l520:
if buffer[position] != rune('s') {
- goto l517
+ goto l518
}
position++
if buffer[position] != rune(':') {
- goto l517
+ goto l518
}
position++
- add(ruleSegmentRegister, position518)
+ add(ruleSegmentRegister, position519)
}
return true
- l517:
- position, tokenIndex = position517, tokenIndex517
+ l518:
+ position, tokenIndex = position518, tokenIndex518
return false
},
}
diff --git a/util/fipstools/testdata/x86_64-Basic/in.s b/util/fipstools/testdata/x86_64-Basic/in.s
index 3b535ed..89e8aaf 100644
--- a/util/fipstools/testdata/x86_64-Basic/in.s
+++ b/util/fipstools/testdata/x86_64-Basic/in.s
@@ -13,6 +13,7 @@
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
+ .cfi_adjust_cfa_offset 32*5+8
movq %rsp, %rbp
movq %rdi, -24(%rbp)
movq -24(%rbp), %rax
diff --git a/util/fipstools/testdata/x86_64-Basic/out.s b/util/fipstools/testdata/x86_64-Basic/out.s
index 211b7ea..a03b5d7 100644
--- a/util/fipstools/testdata/x86_64-Basic/out.s
+++ b/util/fipstools/testdata/x86_64-Basic/out.s
@@ -16,6 +16,7 @@
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
+ .cfi_adjust_cfa_offset 32*5+8
movq %rsp, %rbp
movq %rdi, -24(%rbp)
movq -24(%rbp), %rax