| package main |
| |
| // Code generated by peg delocate.peg DO NOT EDIT. |
| |
| import ( |
| "fmt" |
| "io" |
| "os" |
| "sort" |
| "strconv" |
| "strings" |
| ) |
| |
| const endSymbol rune = 1114112 |
| |
| /* The rule types inferred from the grammar are below. */ |
| type pegRule uint8 |
| |
| const ( |
| ruleUnknown pegRule = iota |
| ruleAsmFile |
| ruleStatement |
| ruleGlobalDirective |
| ruleDirective |
| ruleDirectiveName |
| ruleLocationDirective |
| ruleFileDirective |
| ruleLocDirective |
| ruleArgs |
| ruleArg |
| ruleQuotedArg |
| ruleQuotedText |
| ruleSymbolDefiningDirective |
| ruleSymbolDefiningDirectiveName |
| ruleLabelContainingDirective |
| ruleLabelContainingDirectiveName |
| ruleSymbolArgs |
| ruleSymbolArg |
| ruleSymbolExpr |
| ruleSymbolAtom |
| ruleSymbolOperator |
| ruleOpenParen |
| ruleCloseParen |
| ruleSymbolType |
| ruleDot |
| ruleTCMarker |
| ruleEscapedChar |
| ruleWS |
| ruleComment |
| ruleLabel |
| ruleSymbolName |
| ruleLocalSymbol |
| ruleLocalLabel |
| ruleLocalLabelRef |
| ruleInstructionPrefix |
| ruleInstruction |
| ruleInstructionName |
| ruleInstructionArg |
| ruleGOTLocation |
| ruleGOTAddress |
| ruleGOTSymbolOffset |
| ruleAVX512Token |
| ruleTOCRefHigh |
| ruleTOCRefLow |
| ruleIndirectionIndicator |
| ruleFloat |
| ruleRegisterOrConstant |
| ruleARMConstantTweak |
| ruleARMRegister |
| ruleARMVectorRegister |
| ruleSVE2PredicateRegister |
| ruleSVE2SpecialValue |
| ruleMemoryRef |
| ruleSymbolRef |
| ruleLow12BitsSymbolRef |
| ruleARMBaseIndexScale |
| ruleARMGOTLow12 |
| ruleARMPostincrement |
| ruleBaseIndexScale |
| ruleOperator |
| ruleOffset |
| ruleSection |
| ruleSegmentRegister |
| ) |
| |
| var rul3s = [...]string{ |
| "Unknown", |
| "AsmFile", |
| "Statement", |
| "GlobalDirective", |
| "Directive", |
| "DirectiveName", |
| "LocationDirective", |
| "FileDirective", |
| "LocDirective", |
| "Args", |
| "Arg", |
| "QuotedArg", |
| "QuotedText", |
| "SymbolDefiningDirective", |
| "SymbolDefiningDirectiveName", |
| "LabelContainingDirective", |
| "LabelContainingDirectiveName", |
| "SymbolArgs", |
| "SymbolArg", |
| "SymbolExpr", |
| "SymbolAtom", |
| "SymbolOperator", |
| "OpenParen", |
| "CloseParen", |
| "SymbolType", |
| "Dot", |
| "TCMarker", |
| "EscapedChar", |
| "WS", |
| "Comment", |
| "Label", |
| "SymbolName", |
| "LocalSymbol", |
| "LocalLabel", |
| "LocalLabelRef", |
| "InstructionPrefix", |
| "Instruction", |
| "InstructionName", |
| "InstructionArg", |
| "GOTLocation", |
| "GOTAddress", |
| "GOTSymbolOffset", |
| "AVX512Token", |
| "TOCRefHigh", |
| "TOCRefLow", |
| "IndirectionIndicator", |
| "Float", |
| "RegisterOrConstant", |
| "ARMConstantTweak", |
| "ARMRegister", |
| "ARMVectorRegister", |
| "SVE2PredicateRegister", |
| "SVE2SpecialValue", |
| "MemoryRef", |
| "SymbolRef", |
| "Low12BitsSymbolRef", |
| "ARMBaseIndexScale", |
| "ARMGOTLow12", |
| "ARMPostincrement", |
| "BaseIndexScale", |
| "Operator", |
| "Offset", |
| "Section", |
| "SegmentRegister", |
| } |
| |
| type token32 struct { |
| pegRule |
| begin, end uint32 |
| } |
| |
| func (t *token32) String() string { |
| return fmt.Sprintf("\x1B[34m%v\x1B[m %v %v", rul3s[t.pegRule], t.begin, t.end) |
| } |
| |
| type node32 struct { |
| token32 |
| up, next *node32 |
| } |
| |
| func (node *node32) print(w io.Writer, pretty bool, buffer string) { |
| var print func(node *node32, depth int) |
| print = func(node *node32, depth int) { |
| for node != nil { |
| for c := 0; c < depth; c++ { |
| fmt.Fprintf(w, " ") |
| } |
| rule := rul3s[node.pegRule] |
| quote := strconv.Quote(string(([]rune(buffer)[node.begin:node.end]))) |
| if !pretty { |
| fmt.Fprintf(w, "%v %v\n", rule, quote) |
| } else { |
| fmt.Fprintf(w, "\x1B[36m%v\x1B[m %v\n", rule, quote) |
| } |
| if node.up != nil { |
| print(node.up, depth+1) |
| } |
| node = node.next |
| } |
| } |
| print(node, 0) |
| } |
| |
| func (node *node32) Print(w io.Writer, buffer string) { |
| node.print(w, false, buffer) |
| } |
| |
| func (node *node32) PrettyPrint(w io.Writer, buffer string) { |
| node.print(w, true, buffer) |
| } |
| |
| type tokens32 struct { |
| tree []token32 |
| } |
| |
| func (t *tokens32) Trim(length uint32) { |
| t.tree = t.tree[:length] |
| } |
| |
| func (t *tokens32) Print() { |
| for _, token := range t.tree { |
| fmt.Println(token.String()) |
| } |
| } |
| |
| func (t *tokens32) AST() *node32 { |
| type element struct { |
| node *node32 |
| down *element |
| } |
| tokens := t.Tokens() |
| var stack *element |
| for _, token := range tokens { |
| if token.begin == token.end { |
| continue |
| } |
| node := &node32{token32: token} |
| for stack != nil && stack.node.begin >= token.begin && stack.node.end <= token.end { |
| stack.node.next = node.up |
| node.up = stack.node |
| stack = stack.down |
| } |
| stack = &element{node: node, down: stack} |
| } |
| if stack != nil { |
| return stack.node |
| } |
| return nil |
| } |
| |
| func (t *tokens32) PrintSyntaxTree(buffer string) { |
| t.AST().Print(os.Stdout, buffer) |
| } |
| |
| func (t *tokens32) WriteSyntaxTree(w io.Writer, buffer string) { |
| t.AST().Print(w, buffer) |
| } |
| |
| func (t *tokens32) PrettyPrintSyntaxTree(buffer string) { |
| t.AST().PrettyPrint(os.Stdout, buffer) |
| } |
| |
| func (t *tokens32) Add(rule pegRule, begin, end, index uint32) { |
| tree, i := t.tree, int(index) |
| if i >= len(tree) { |
| t.tree = append(tree, token32{pegRule: rule, begin: begin, end: end}) |
| return |
| } |
| tree[i] = token32{pegRule: rule, begin: begin, end: end} |
| } |
| |
| func (t *tokens32) Tokens() []token32 { |
| return t.tree |
| } |
| |
| type Asm struct { |
| Buffer string |
| buffer []rune |
| rules [64]func() bool |
| parse func(rule ...int) error |
| reset func() |
| Pretty bool |
| tokens32 |
| } |
| |
| func (p *Asm) Parse(rule ...int) error { |
| return p.parse(rule...) |
| } |
| |
| func (p *Asm) Reset() { |
| p.reset() |
| } |
| |
| type textPosition struct { |
| line, symbol int |
| } |
| |
| type textPositionMap map[int]textPosition |
| |
| func translatePositions(buffer []rune, positions []int) textPositionMap { |
| length, translations, j, line, symbol := len(positions), make(textPositionMap, len(positions)), 0, 1, 0 |
| sort.Ints(positions) |
| |
| search: |
| for i, c := range buffer { |
| if c == '\n' { |
| line, symbol = line+1, 0 |
| } else { |
| symbol++ |
| } |
| if i == positions[j] { |
| translations[positions[j]] = textPosition{line, symbol} |
| for j++; j < length; j++ { |
| if i != positions[j] { |
| continue search |
| } |
| } |
| break search |
| } |
| } |
| |
| return translations |
| } |
| |
| type parseError struct { |
| p *Asm |
| max token32 |
| } |
| |
| func (e *parseError) Error() string { |
| tokens, err := []token32{e.max}, "\n" |
| positions, p := make([]int, 2*len(tokens)), 0 |
| for _, token := range tokens { |
| positions[p], p = int(token.begin), p+1 |
| positions[p], p = int(token.end), p+1 |
| } |
| translations := translatePositions(e.p.buffer, positions) |
| format := "parse error near %v (line %v symbol %v - line %v symbol %v):\n%v\n" |
| if e.p.Pretty { |
| format = "parse error near \x1B[34m%v\x1B[m (line %v symbol %v - line %v symbol %v):\n%v\n" |
| } |
| for _, token := range tokens { |
| begin, end := int(token.begin), int(token.end) |
| err += fmt.Sprintf(format, |
| rul3s[token.pegRule], |
| translations[begin].line, translations[begin].symbol, |
| translations[end].line, translations[end].symbol, |
| strconv.Quote(string(e.p.buffer[begin:end]))) |
| } |
| |
| return err |
| } |
| |
| func (p *Asm) PrintSyntaxTree() { |
| if p.Pretty { |
| p.tokens32.PrettyPrintSyntaxTree(p.Buffer) |
| } else { |
| p.tokens32.PrintSyntaxTree(p.Buffer) |
| } |
| } |
| |
| func (p *Asm) WriteSyntaxTree(w io.Writer) { |
| p.tokens32.WriteSyntaxTree(w, p.Buffer) |
| } |
| |
| func (p *Asm) SprintSyntaxTree() string { |
| var bldr strings.Builder |
| p.WriteSyntaxTree(&bldr) |
| return bldr.String() |
| } |
| |
| func Pretty(pretty bool) func(*Asm) error { |
| return func(p *Asm) error { |
| p.Pretty = pretty |
| return nil |
| } |
| } |
| |
| func Size(size int) func(*Asm) error { |
| return func(p *Asm) error { |
| p.tokens32 = tokens32{tree: make([]token32, 0, size)} |
| return nil |
| } |
| } |
| func (p *Asm) Init(options ...func(*Asm) error) error { |
| var ( |
| max token32 |
| position, tokenIndex uint32 |
| buffer []rune |
| ) |
| for _, option := range options { |
| err := option(p) |
| if err != nil { |
| return err |
| } |
| } |
| p.reset = func() { |
| max = token32{} |
| position, tokenIndex = 0, 0 |
| |
| p.buffer = []rune(p.Buffer) |
| if len(p.buffer) == 0 || p.buffer[len(p.buffer)-1] != endSymbol { |
| p.buffer = append(p.buffer, endSymbol) |
| } |
| buffer = p.buffer |
| } |
| p.reset() |
| |
| _rules := p.rules |
| tree := p.tokens32 |
| p.parse = func(rule ...int) error { |
| r := 1 |
| if len(rule) > 0 { |
| r = rule[0] |
| } |
| matches := p.rules[r]() |
| p.tokens32 = tree |
| if matches { |
| p.Trim(tokenIndex) |
| return nil |
| } |
| return &parseError{p, max} |
| } |
| |
| add := func(rule pegRule, begin uint32) { |
| tree.Add(rule, begin, position, tokenIndex) |
| tokenIndex++ |
| if begin != position && position > max.end { |
| max = token32{rule, begin, position} |
| } |
| } |
| |
| matchDot := func() bool { |
| if buffer[position] != endSymbol { |
| position++ |
| return true |
| } |
| return false |
| } |
| |
| /*matchChar := func(c byte) bool { |
| if buffer[position] == c { |
| position++ |
| return true |
| } |
| return false |
| }*/ |
| |
| /*matchRange := func(lower byte, upper byte) bool { |
| if c := buffer[position]; c >= lower && c <= upper { |
| position++ |
| return true |
| } |
| return false |
| }*/ |
| |
| _rules = [...]func() bool{ |
| nil, |
| /* 0 AsmFile <- <(Statement* !.)> */ |
| func() bool { |
| position0, tokenIndex0 := position, tokenIndex |
| { |
| position1 := position |
| l2: |
| { |
| position3, tokenIndex3 := position, tokenIndex |
| if !_rules[ruleStatement]() { |
| goto l3 |
| } |
| goto l2 |
| l3: |
| position, tokenIndex = position3, tokenIndex3 |
| } |
| { |
| position4, tokenIndex4 := position, tokenIndex |
| if !matchDot() { |
| goto l4 |
| } |
| goto l0 |
| l4: |
| position, tokenIndex = position4, tokenIndex4 |
| } |
| add(ruleAsmFile, position1) |
| } |
| return true |
| l0: |
| position, tokenIndex = position0, tokenIndex0 |
| return false |
| }, |
| /* 1 Statement <- <(WS? (Label / ((GlobalDirective / LocationDirective / SymbolDefiningDirective / LabelContainingDirective / Instruction / Directive / Comment / ) WS? ((Comment? '\n') / ';'))))> */ |
| func() bool { |
| position5, tokenIndex5 := position, tokenIndex |
| { |
| position6 := position |
| { |
| position7, tokenIndex7 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l7 |
| } |
| goto l8 |
| l7: |
| position, tokenIndex = position7, tokenIndex7 |
| } |
| l8: |
| { |
| position9, tokenIndex9 := position, tokenIndex |
| if !_rules[ruleLabel]() { |
| goto l10 |
| } |
| goto l9 |
| l10: |
| position, tokenIndex = position9, tokenIndex9 |
| { |
| position11, tokenIndex11 := position, tokenIndex |
| if !_rules[ruleGlobalDirective]() { |
| goto l12 |
| } |
| goto l11 |
| l12: |
| position, tokenIndex = position11, tokenIndex11 |
| if !_rules[ruleLocationDirective]() { |
| goto l13 |
| } |
| goto l11 |
| l13: |
| position, tokenIndex = position11, tokenIndex11 |
| if !_rules[ruleSymbolDefiningDirective]() { |
| goto l14 |
| } |
| goto l11 |
| l14: |
| position, tokenIndex = position11, tokenIndex11 |
| if !_rules[ruleLabelContainingDirective]() { |
| goto l15 |
| } |
| goto l11 |
| l15: |
| position, tokenIndex = position11, tokenIndex11 |
| if !_rules[ruleInstruction]() { |
| goto l16 |
| } |
| goto l11 |
| l16: |
| position, tokenIndex = position11, tokenIndex11 |
| if !_rules[ruleDirective]() { |
| goto l17 |
| } |
| goto l11 |
| l17: |
| position, tokenIndex = position11, tokenIndex11 |
| if !_rules[ruleComment]() { |
| goto l18 |
| } |
| goto l11 |
| l18: |
| position, tokenIndex = position11, tokenIndex11 |
| } |
| l11: |
| { |
| position19, tokenIndex19 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l19 |
| } |
| goto l20 |
| l19: |
| position, tokenIndex = position19, tokenIndex19 |
| } |
| l20: |
| { |
| position21, tokenIndex21 := position, tokenIndex |
| { |
| position23, tokenIndex23 := position, tokenIndex |
| if !_rules[ruleComment]() { |
| goto l23 |
| } |
| goto l24 |
| l23: |
| position, tokenIndex = position23, tokenIndex23 |
| } |
| l24: |
| if buffer[position] != rune('\n') { |
| goto l22 |
| } |
| position++ |
| goto l21 |
| l22: |
| position, tokenIndex = position21, tokenIndex21 |
| if buffer[position] != rune(';') { |
| goto l5 |
| } |
| position++ |
| } |
| l21: |
| } |
| l9: |
| add(ruleStatement, position6) |
| } |
| return true |
| l5: |
| position, tokenIndex = position5, tokenIndex5 |
| return false |
| }, |
| /* 2 GlobalDirective <- <((('.' ('g' / 'G') ('l' / 'L') ('o' / 'O') ('b' / 'B') ('a' / 'A') ('l' / 'L')) / ('.' ('g' / 'G') ('l' / 'L') ('o' / 'O') ('b' / 'B') ('l' / 'L'))) WS SymbolName)> */ |
| func() bool { |
| position25, tokenIndex25 := position, tokenIndex |
| { |
| position26 := position |
| { |
| position27, tokenIndex27 := position, tokenIndex |
| if buffer[position] != rune('.') { |
| goto l28 |
| } |
| position++ |
| { |
| position29, tokenIndex29 := position, tokenIndex |
| if buffer[position] != rune('g') { |
| goto l30 |
| } |
| position++ |
| goto l29 |
| l30: |
| position, tokenIndex = position29, tokenIndex29 |
| if buffer[position] != rune('G') { |
| goto l28 |
| } |
| position++ |
| } |
| l29: |
| { |
| position31, tokenIndex31 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l32 |
| } |
| position++ |
| goto l31 |
| l32: |
| position, tokenIndex = position31, tokenIndex31 |
| if buffer[position] != rune('L') { |
| goto l28 |
| } |
| position++ |
| } |
| l31: |
| { |
| position33, tokenIndex33 := position, tokenIndex |
| if buffer[position] != rune('o') { |
| goto l34 |
| } |
| position++ |
| goto l33 |
| l34: |
| position, tokenIndex = position33, tokenIndex33 |
| if buffer[position] != rune('O') { |
| goto l28 |
| } |
| position++ |
| } |
| l33: |
| { |
| position35, tokenIndex35 := position, tokenIndex |
| if buffer[position] != rune('b') { |
| goto l36 |
| } |
| position++ |
| goto l35 |
| l36: |
| position, tokenIndex = position35, tokenIndex35 |
| if buffer[position] != rune('B') { |
| goto l28 |
| } |
| position++ |
| } |
| l35: |
| { |
| position37, tokenIndex37 := position, tokenIndex |
| if buffer[position] != rune('a') { |
| goto l38 |
| } |
| position++ |
| goto l37 |
| l38: |
| position, tokenIndex = position37, tokenIndex37 |
| if buffer[position] != rune('A') { |
| goto l28 |
| } |
| position++ |
| } |
| l37: |
| { |
| position39, tokenIndex39 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l40 |
| } |
| position++ |
| goto l39 |
| l40: |
| position, tokenIndex = position39, tokenIndex39 |
| if buffer[position] != rune('L') { |
| goto l28 |
| } |
| position++ |
| } |
| l39: |
| goto l27 |
| l28: |
| position, tokenIndex = position27, tokenIndex27 |
| if buffer[position] != rune('.') { |
| goto l25 |
| } |
| position++ |
| { |
| position41, tokenIndex41 := position, tokenIndex |
| if buffer[position] != rune('g') { |
| goto l42 |
| } |
| position++ |
| goto l41 |
| l42: |
| position, tokenIndex = position41, tokenIndex41 |
| if buffer[position] != rune('G') { |
| goto l25 |
| } |
| position++ |
| } |
| l41: |
| { |
| position43, tokenIndex43 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l44 |
| } |
| position++ |
| goto l43 |
| l44: |
| position, tokenIndex = position43, tokenIndex43 |
| if buffer[position] != rune('L') { |
| goto l25 |
| } |
| position++ |
| } |
| l43: |
| { |
| position45, tokenIndex45 := position, tokenIndex |
| if buffer[position] != rune('o') { |
| goto l46 |
| } |
| position++ |
| goto l45 |
| l46: |
| position, tokenIndex = position45, tokenIndex45 |
| if buffer[position] != rune('O') { |
| goto l25 |
| } |
| position++ |
| } |
| l45: |
| { |
| position47, tokenIndex47 := position, tokenIndex |
| if buffer[position] != rune('b') { |
| goto l48 |
| } |
| position++ |
| goto l47 |
| l48: |
| position, tokenIndex = position47, tokenIndex47 |
| if buffer[position] != rune('B') { |
| goto l25 |
| } |
| position++ |
| } |
| l47: |
| { |
| position49, tokenIndex49 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l50 |
| } |
| position++ |
| goto l49 |
| l50: |
| position, tokenIndex = position49, tokenIndex49 |
| if buffer[position] != rune('L') { |
| goto l25 |
| } |
| position++ |
| } |
| l49: |
| } |
| l27: |
| if !_rules[ruleWS]() { |
| goto l25 |
| } |
| if !_rules[ruleSymbolName]() { |
| goto l25 |
| } |
| add(ruleGlobalDirective, position26) |
| } |
| return true |
| l25: |
| position, tokenIndex = position25, tokenIndex25 |
| return false |
| }, |
| /* 3 Directive <- <('.' DirectiveName (WS Args)?)> */ |
| func() bool { |
| position51, tokenIndex51 := position, tokenIndex |
| { |
| position52 := position |
| if buffer[position] != rune('.') { |
| goto l51 |
| } |
| position++ |
| if !_rules[ruleDirectiveName]() { |
| goto l51 |
| } |
| { |
| position53, tokenIndex53 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l53 |
| } |
| if !_rules[ruleArgs]() { |
| goto l53 |
| } |
| goto l54 |
| l53: |
| position, tokenIndex = position53, tokenIndex53 |
| } |
| l54: |
| add(ruleDirective, position52) |
| } |
| return true |
| l51: |
| position, tokenIndex = position51, tokenIndex51 |
| return false |
| }, |
| /* 4 DirectiveName <- <([a-z] / [A-Z] / ([0-9] / [0-9]) / '_')+> */ |
| func() bool { |
| position55, tokenIndex55 := position, tokenIndex |
| { |
| position56 := position |
| { |
| position59, tokenIndex59 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l60 |
| } |
| position++ |
| goto l59 |
| l60: |
| position, tokenIndex = position59, tokenIndex59 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l61 |
| } |
| position++ |
| goto l59 |
| l61: |
| position, tokenIndex = position59, tokenIndex59 |
| { |
| position63, tokenIndex63 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l64 |
| } |
| position++ |
| goto l63 |
| l64: |
| position, tokenIndex = position63, tokenIndex63 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l62 |
| } |
| position++ |
| } |
| l63: |
| goto l59 |
| l62: |
| position, tokenIndex = position59, tokenIndex59 |
| if buffer[position] != rune('_') { |
| goto l55 |
| } |
| position++ |
| } |
| l59: |
| l57: |
| { |
| position58, tokenIndex58 := position, tokenIndex |
| { |
| position65, tokenIndex65 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l66 |
| } |
| position++ |
| goto l65 |
| l66: |
| position, tokenIndex = position65, tokenIndex65 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l67 |
| } |
| position++ |
| goto l65 |
| l67: |
| position, tokenIndex = position65, tokenIndex65 |
| { |
| position69, tokenIndex69 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l70 |
| } |
| position++ |
| goto l69 |
| l70: |
| position, tokenIndex = position69, tokenIndex69 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l68 |
| } |
| position++ |
| } |
| l69: |
| goto l65 |
| l68: |
| position, tokenIndex = position65, tokenIndex65 |
| if buffer[position] != rune('_') { |
| goto l58 |
| } |
| position++ |
| } |
| l65: |
| goto l57 |
| l58: |
| position, tokenIndex = position58, tokenIndex58 |
| } |
| add(ruleDirectiveName, position56) |
| } |
| return true |
| l55: |
| position, tokenIndex = position55, tokenIndex55 |
| return false |
| }, |
| /* 5 LocationDirective <- <(FileDirective / LocDirective)> */ |
| func() bool { |
| position71, tokenIndex71 := position, tokenIndex |
| { |
| position72 := position |
| { |
| position73, tokenIndex73 := position, tokenIndex |
| if !_rules[ruleFileDirective]() { |
| goto l74 |
| } |
| goto l73 |
| l74: |
| position, tokenIndex = position73, tokenIndex73 |
| if !_rules[ruleLocDirective]() { |
| goto l71 |
| } |
| } |
| l73: |
| add(ruleLocationDirective, position72) |
| } |
| return true |
| l71: |
| position, tokenIndex = position71, tokenIndex71 |
| return false |
| }, |
| /* 6 FileDirective <- <('.' ('f' / 'F') ('i' / 'I') ('l' / 'L') ('e' / 'E') WS (!('#' / '\n') .)+)> */ |
| func() bool { |
| position75, tokenIndex75 := position, tokenIndex |
| { |
| position76 := position |
| if buffer[position] != rune('.') { |
| goto l75 |
| } |
| position++ |
| { |
| position77, tokenIndex77 := position, tokenIndex |
| if buffer[position] != rune('f') { |
| goto l78 |
| } |
| position++ |
| goto l77 |
| l78: |
| position, tokenIndex = position77, tokenIndex77 |
| if buffer[position] != rune('F') { |
| goto l75 |
| } |
| position++ |
| } |
| l77: |
| { |
| position79, tokenIndex79 := position, tokenIndex |
| if buffer[position] != rune('i') { |
| goto l80 |
| } |
| position++ |
| goto l79 |
| l80: |
| position, tokenIndex = position79, tokenIndex79 |
| if buffer[position] != rune('I') { |
| goto l75 |
| } |
| position++ |
| } |
| l79: |
| { |
| position81, tokenIndex81 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l82 |
| } |
| position++ |
| goto l81 |
| l82: |
| position, tokenIndex = position81, tokenIndex81 |
| if buffer[position] != rune('L') { |
| goto l75 |
| } |
| position++ |
| } |
| l81: |
| { |
| position83, tokenIndex83 := position, tokenIndex |
| if buffer[position] != rune('e') { |
| goto l84 |
| } |
| position++ |
| goto l83 |
| l84: |
| position, tokenIndex = position83, tokenIndex83 |
| if buffer[position] != rune('E') { |
| goto l75 |
| } |
| position++ |
| } |
| l83: |
| if !_rules[ruleWS]() { |
| goto l75 |
| } |
| { |
| position87, tokenIndex87 := position, tokenIndex |
| { |
| position88, tokenIndex88 := position, tokenIndex |
| if buffer[position] != rune('#') { |
| goto l89 |
| } |
| position++ |
| goto l88 |
| l89: |
| position, tokenIndex = position88, tokenIndex88 |
| if buffer[position] != rune('\n') { |
| goto l87 |
| } |
| position++ |
| } |
| l88: |
| goto l75 |
| l87: |
| position, tokenIndex = position87, tokenIndex87 |
| } |
| if !matchDot() { |
| goto l75 |
| } |
| l85: |
| { |
| position86, tokenIndex86 := position, tokenIndex |
| { |
| position90, tokenIndex90 := position, tokenIndex |
| { |
| position91, tokenIndex91 := position, tokenIndex |
| if buffer[position] != rune('#') { |
| goto l92 |
| } |
| position++ |
| goto l91 |
| l92: |
| position, tokenIndex = position91, tokenIndex91 |
| if buffer[position] != rune('\n') { |
| goto l90 |
| } |
| position++ |
| } |
| l91: |
| goto l86 |
| l90: |
| position, tokenIndex = position90, tokenIndex90 |
| } |
| if !matchDot() { |
| goto l86 |
| } |
| goto l85 |
| l86: |
| position, tokenIndex = position86, tokenIndex86 |
| } |
| add(ruleFileDirective, position76) |
| } |
| return true |
| l75: |
| position, tokenIndex = position75, tokenIndex75 |
| return false |
| }, |
| /* 7 LocDirective <- <('.' ('l' / 'L') ('o' / 'O') ('c' / 'C') WS (!('#' / '/' / '\n') .)+)> */ |
| func() bool { |
| position93, tokenIndex93 := position, tokenIndex |
| { |
| position94 := position |
| if buffer[position] != rune('.') { |
| goto l93 |
| } |
| position++ |
| { |
| position95, tokenIndex95 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l96 |
| } |
| position++ |
| goto l95 |
| l96: |
| position, tokenIndex = position95, tokenIndex95 |
| if buffer[position] != rune('L') { |
| goto l93 |
| } |
| position++ |
| } |
| l95: |
| { |
| position97, tokenIndex97 := position, tokenIndex |
| if buffer[position] != rune('o') { |
| goto l98 |
| } |
| position++ |
| goto l97 |
| l98: |
| position, tokenIndex = position97, tokenIndex97 |
| if buffer[position] != rune('O') { |
| goto l93 |
| } |
| position++ |
| } |
| l97: |
| { |
| position99, tokenIndex99 := position, tokenIndex |
| if buffer[position] != rune('c') { |
| goto l100 |
| } |
| position++ |
| goto l99 |
| l100: |
| position, tokenIndex = position99, tokenIndex99 |
| if buffer[position] != rune('C') { |
| goto l93 |
| } |
| position++ |
| } |
| l99: |
| if !_rules[ruleWS]() { |
| goto l93 |
| } |
| { |
| position103, tokenIndex103 := position, tokenIndex |
| { |
| position104, tokenIndex104 := position, tokenIndex |
| if buffer[position] != rune('#') { |
| goto l105 |
| } |
| position++ |
| goto l104 |
| l105: |
| position, tokenIndex = position104, tokenIndex104 |
| if buffer[position] != rune('/') { |
| goto l106 |
| } |
| position++ |
| goto l104 |
| l106: |
| position, tokenIndex = position104, tokenIndex104 |
| if buffer[position] != rune('\n') { |
| goto l103 |
| } |
| position++ |
| } |
| l104: |
| goto l93 |
| l103: |
| position, tokenIndex = position103, tokenIndex103 |
| } |
| if !matchDot() { |
| goto l93 |
| } |
| l101: |
| { |
| position102, tokenIndex102 := position, tokenIndex |
| { |
| position107, tokenIndex107 := position, tokenIndex |
| { |
| position108, tokenIndex108 := position, tokenIndex |
| if buffer[position] != rune('#') { |
| goto l109 |
| } |
| position++ |
| goto l108 |
| l109: |
| position, tokenIndex = position108, tokenIndex108 |
| if buffer[position] != rune('/') { |
| goto l110 |
| } |
| position++ |
| goto l108 |
| l110: |
| position, tokenIndex = position108, tokenIndex108 |
| if buffer[position] != rune('\n') { |
| goto l107 |
| } |
| position++ |
| } |
| l108: |
| goto l102 |
| l107: |
| position, tokenIndex = position107, tokenIndex107 |
| } |
| if !matchDot() { |
| goto l102 |
| } |
| goto l101 |
| l102: |
| position, tokenIndex = position102, tokenIndex102 |
| } |
| add(ruleLocDirective, position94) |
| } |
| return true |
| l93: |
| position, tokenIndex = position93, tokenIndex93 |
| return false |
| }, |
| /* 8 Args <- <(Arg (WS? ',' WS? Arg)*)> */ |
| func() bool { |
| position111, tokenIndex111 := position, tokenIndex |
| { |
| position112 := position |
| if !_rules[ruleArg]() { |
| goto l111 |
| } |
| l113: |
| { |
| position114, tokenIndex114 := position, tokenIndex |
| { |
| position115, tokenIndex115 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l115 |
| } |
| goto l116 |
| l115: |
| position, tokenIndex = position115, tokenIndex115 |
| } |
| l116: |
| if buffer[position] != rune(',') { |
| goto l114 |
| } |
| position++ |
| { |
| position117, tokenIndex117 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l117 |
| } |
| goto l118 |
| l117: |
| position, tokenIndex = position117, tokenIndex117 |
| } |
| l118: |
| if !_rules[ruleArg]() { |
| goto l114 |
| } |
| goto l113 |
| l114: |
| position, tokenIndex = position114, tokenIndex114 |
| } |
| add(ruleArgs, position112) |
| } |
| return true |
| l111: |
| position, tokenIndex = position111, tokenIndex111 |
| return false |
| }, |
| /* 9 Arg <- <(QuotedArg / ([0-9] / [0-9] / ([a-z] / [A-Z]) / '%' / '+' / '-' / '*' / '_' / '@' / '.' / '$')*)> */ |
| func() bool { |
| { |
| position120 := position |
| { |
| position121, tokenIndex121 := position, tokenIndex |
| if !_rules[ruleQuotedArg]() { |
| goto l122 |
| } |
| goto l121 |
| l122: |
| position, tokenIndex = position121, tokenIndex121 |
| l123: |
| { |
| position124, tokenIndex124 := position, tokenIndex |
| { |
| position125, tokenIndex125 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l126 |
| } |
| position++ |
| goto l125 |
| l126: |
| position, tokenIndex = position125, tokenIndex125 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l127 |
| } |
| position++ |
| goto l125 |
| l127: |
| position, tokenIndex = position125, tokenIndex125 |
| { |
| position129, tokenIndex129 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l130 |
| } |
| position++ |
| goto l129 |
| l130: |
| position, tokenIndex = position129, tokenIndex129 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l128 |
| } |
| position++ |
| } |
| l129: |
| goto l125 |
| l128: |
| position, tokenIndex = position125, tokenIndex125 |
| if buffer[position] != rune('%') { |
| goto l131 |
| } |
| position++ |
| goto l125 |
| l131: |
| position, tokenIndex = position125, tokenIndex125 |
| if buffer[position] != rune('+') { |
| goto l132 |
| } |
| position++ |
| goto l125 |
| l132: |
| position, tokenIndex = position125, tokenIndex125 |
| if buffer[position] != rune('-') { |
| goto l133 |
| } |
| position++ |
| goto l125 |
| l133: |
| position, tokenIndex = position125, tokenIndex125 |
| if buffer[position] != rune('*') { |
| goto l134 |
| } |
| position++ |
| goto l125 |
| l134: |
| position, tokenIndex = position125, tokenIndex125 |
| if buffer[position] != rune('_') { |
| goto l135 |
| } |
| position++ |
| goto l125 |
| l135: |
| position, tokenIndex = position125, tokenIndex125 |
| if buffer[position] != rune('@') { |
| goto l136 |
| } |
| position++ |
| goto l125 |
| l136: |
| position, tokenIndex = position125, tokenIndex125 |
| if buffer[position] != rune('.') { |
| goto l137 |
| } |
| position++ |
| goto l125 |
| l137: |
| position, tokenIndex = position125, tokenIndex125 |
| if buffer[position] != rune('$') { |
| goto l124 |
| } |
| position++ |
| } |
| l125: |
| goto l123 |
| l124: |
| position, tokenIndex = position124, tokenIndex124 |
| } |
| } |
| l121: |
| add(ruleArg, position120) |
| } |
| return true |
| }, |
| /* 10 QuotedArg <- <('"' QuotedText '"')> */ |
| func() bool { |
| position138, tokenIndex138 := position, tokenIndex |
| { |
| position139 := position |
| if buffer[position] != rune('"') { |
| goto l138 |
| } |
| position++ |
| if !_rules[ruleQuotedText]() { |
| goto l138 |
| } |
| if buffer[position] != rune('"') { |
| goto l138 |
| } |
| position++ |
| add(ruleQuotedArg, position139) |
| } |
| return true |
| l138: |
| position, tokenIndex = position138, tokenIndex138 |
| return false |
| }, |
| /* 11 QuotedText <- <(EscapedChar / (!'"' .))*> */ |
| func() bool { |
| { |
| position141 := position |
| l142: |
| { |
| position143, tokenIndex143 := position, tokenIndex |
| { |
| position144, tokenIndex144 := position, tokenIndex |
| if !_rules[ruleEscapedChar]() { |
| goto l145 |
| } |
| goto l144 |
| l145: |
| position, tokenIndex = position144, tokenIndex144 |
| { |
| position146, tokenIndex146 := position, tokenIndex |
| if buffer[position] != rune('"') { |
| goto l146 |
| } |
| position++ |
| goto l143 |
| l146: |
| position, tokenIndex = position146, tokenIndex146 |
| } |
| if !matchDot() { |
| goto l143 |
| } |
| } |
| l144: |
| goto l142 |
| l143: |
| position, tokenIndex = position143, tokenIndex143 |
| } |
| add(ruleQuotedText, position141) |
| } |
| return true |
| }, |
| /* 12 SymbolDefiningDirective <- <((SymbolDefiningDirectiveName WS (LocalSymbol / SymbolName) WS? ',' WS? SymbolArg) / ((LocalSymbol / SymbolName) WS? '=' WS? SymbolArg))> */ |
| func() bool { |
| position147, tokenIndex147 := position, tokenIndex |
| { |
| position148 := position |
| { |
| position149, tokenIndex149 := position, tokenIndex |
| if !_rules[ruleSymbolDefiningDirectiveName]() { |
| goto l150 |
| } |
| if !_rules[ruleWS]() { |
| goto l150 |
| } |
| { |
| position151, tokenIndex151 := position, tokenIndex |
| if !_rules[ruleLocalSymbol]() { |
| goto l152 |
| } |
| goto l151 |
| l152: |
| position, tokenIndex = position151, tokenIndex151 |
| if !_rules[ruleSymbolName]() { |
| goto l150 |
| } |
| } |
| l151: |
| { |
| position153, tokenIndex153 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l153 |
| } |
| goto l154 |
| l153: |
| position, tokenIndex = position153, tokenIndex153 |
| } |
| l154: |
| if buffer[position] != rune(',') { |
| goto l150 |
| } |
| position++ |
| { |
| position155, tokenIndex155 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l155 |
| } |
| goto l156 |
| l155: |
| position, tokenIndex = position155, tokenIndex155 |
| } |
| l156: |
| if !_rules[ruleSymbolArg]() { |
| goto l150 |
| } |
| goto l149 |
| l150: |
| position, tokenIndex = position149, tokenIndex149 |
| { |
| position157, tokenIndex157 := position, tokenIndex |
| if !_rules[ruleLocalSymbol]() { |
| goto l158 |
| } |
| goto l157 |
| l158: |
| position, tokenIndex = position157, tokenIndex157 |
| if !_rules[ruleSymbolName]() { |
| goto l147 |
| } |
| } |
| l157: |
| { |
| position159, tokenIndex159 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l159 |
| } |
| goto l160 |
| l159: |
| position, tokenIndex = position159, tokenIndex159 |
| } |
| l160: |
| if buffer[position] != rune('=') { |
| goto l147 |
| } |
| position++ |
| { |
| position161, tokenIndex161 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l161 |
| } |
| goto l162 |
| l161: |
| position, tokenIndex = position161, tokenIndex161 |
| } |
| l162: |
| if !_rules[ruleSymbolArg]() { |
| goto l147 |
| } |
| } |
| l149: |
| add(ruleSymbolDefiningDirective, position148) |
| } |
| return true |
| l147: |
| position, tokenIndex = position147, tokenIndex147 |
| return false |
| }, |
| /* 13 SymbolDefiningDirectiveName <- <(('.' ('e' / 'E') ('q' / 'Q') ('u' / 'U') ('i' / 'I') ('v' / 'V')) / ('.' ('e' / 'E') ('q' / 'Q') ('u' / 'U')) / ('.' ('s' / 'S') ('e' / 'E') ('t' / 'T')))> */ |
| func() bool { |
| position163, tokenIndex163 := position, tokenIndex |
| { |
| position164 := position |
| { |
| position165, tokenIndex165 := position, tokenIndex |
| if buffer[position] != rune('.') { |
| goto l166 |
| } |
| position++ |
| { |
| 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 l166 |
| } |
| position++ |
| } |
| l167: |
| { |
| position169, tokenIndex169 := position, tokenIndex |
| if buffer[position] != rune('q') { |
| goto l170 |
| } |
| position++ |
| goto l169 |
| l170: |
| position, tokenIndex = position169, tokenIndex169 |
| if buffer[position] != rune('Q') { |
| goto l166 |
| } |
| position++ |
| } |
| l169: |
| { |
| position171, tokenIndex171 := position, tokenIndex |
| if buffer[position] != rune('u') { |
| goto l172 |
| } |
| position++ |
| goto l171 |
| l172: |
| position, tokenIndex = position171, tokenIndex171 |
| if buffer[position] != rune('U') { |
| goto l166 |
| } |
| position++ |
| } |
| l171: |
| { |
| position173, tokenIndex173 := position, tokenIndex |
| if buffer[position] != rune('i') { |
| goto l174 |
| } |
| position++ |
| goto l173 |
| l174: |
| position, tokenIndex = position173, tokenIndex173 |
| if buffer[position] != rune('I') { |
| goto l166 |
| } |
| position++ |
| } |
| l173: |
| { |
| position175, tokenIndex175 := position, tokenIndex |
| if buffer[position] != rune('v') { |
| goto l176 |
| } |
| position++ |
| goto l175 |
| l176: |
| position, tokenIndex = position175, tokenIndex175 |
| if buffer[position] != rune('V') { |
| goto l166 |
| } |
| position++ |
| } |
| l175: |
| goto l165 |
| l166: |
| position, tokenIndex = position165, tokenIndex165 |
| if buffer[position] != rune('.') { |
| goto l177 |
| } |
| position++ |
| { |
| position178, tokenIndex178 := position, tokenIndex |
| if buffer[position] != rune('e') { |
| goto l179 |
| } |
| position++ |
| goto l178 |
| l179: |
| position, tokenIndex = position178, tokenIndex178 |
| if buffer[position] != rune('E') { |
| goto l177 |
| } |
| position++ |
| } |
| l178: |
| { |
| position180, tokenIndex180 := position, tokenIndex |
| if buffer[position] != rune('q') { |
| goto l181 |
| } |
| position++ |
| goto l180 |
| l181: |
| position, tokenIndex = position180, tokenIndex180 |
| if buffer[position] != rune('Q') { |
| goto l177 |
| } |
| position++ |
| } |
| l180: |
| { |
| position182, tokenIndex182 := position, tokenIndex |
| if buffer[position] != rune('u') { |
| goto l183 |
| } |
| position++ |
| goto l182 |
| l183: |
| position, tokenIndex = position182, tokenIndex182 |
| if buffer[position] != rune('U') { |
| goto l177 |
| } |
| position++ |
| } |
| l182: |
| goto l165 |
| l177: |
| position, tokenIndex = position165, tokenIndex165 |
| if buffer[position] != rune('.') { |
| goto l163 |
| } |
| position++ |
| { |
| position184, tokenIndex184 := position, tokenIndex |
| if buffer[position] != rune('s') { |
| goto l185 |
| } |
| position++ |
| goto l184 |
| l185: |
| position, tokenIndex = position184, tokenIndex184 |
| if buffer[position] != rune('S') { |
| goto l163 |
| } |
| position++ |
| } |
| l184: |
| { |
| position186, tokenIndex186 := position, tokenIndex |
| if buffer[position] != rune('e') { |
| goto l187 |
| } |
| position++ |
| goto l186 |
| l187: |
| position, tokenIndex = position186, tokenIndex186 |
| if buffer[position] != rune('E') { |
| goto l163 |
| } |
| position++ |
| } |
| l186: |
| { |
| position188, tokenIndex188 := position, tokenIndex |
| if buffer[position] != rune('t') { |
| goto l189 |
| } |
| position++ |
| goto l188 |
| l189: |
| position, tokenIndex = position188, tokenIndex188 |
| if buffer[position] != rune('T') { |
| goto l163 |
| } |
| position++ |
| } |
| l188: |
| } |
| l165: |
| add(ruleSymbolDefiningDirectiveName, position164) |
| } |
| return true |
| l163: |
| position, tokenIndex = position163, tokenIndex163 |
| return false |
| }, |
| /* 14 LabelContainingDirective <- <(LabelContainingDirectiveName WS SymbolArgs)> */ |
| func() bool { |
| position190, tokenIndex190 := position, tokenIndex |
| { |
| position191 := position |
| if !_rules[ruleLabelContainingDirectiveName]() { |
| goto l190 |
| } |
| if !_rules[ruleWS]() { |
| goto l190 |
| } |
| if !_rules[ruleSymbolArgs]() { |
| goto l190 |
| } |
| add(ruleLabelContainingDirective, position191) |
| } |
| return true |
| l190: |
| position, tokenIndex = position190, tokenIndex190 |
| return false |
| }, |
| /* 15 LabelContainingDirectiveName <- <(('.' ('x' / 'X') ('w' / 'W') ('o' / 'O') ('r' / 'R') ('d' / 'D')) / ('.' ('w' / 'W') ('o' / 'O') ('r' / 'R') ('d' / 'D')) / ('.' ('h' / 'H') ('w' / 'W') ('o' / 'O') ('r' / 'R') ('d' / 'D')) / ('.' ('l' / 'L') ('o' / 'O') ('n' / 'N') ('g' / 'G')) / ('.' ('b' / 'B') ('y' / 'Y') ('t' / 'T') ('e' / 'E')) / ('.' '8' ('b' / 'B') ('y' / 'Y') ('t' / 'T') ('e' / 'E')) / ('.' '4' ('b' / 'B') ('y' / 'Y') ('t' / 'T') ('e' / 'E')) / ('.' ('q' / 'Q') ('u' / 'U') ('a' / 'A') ('d' / 'D')) / ('.' ('t' / 'T') ('c' / 'C')) / ('.' ('l' / 'L') ('o' / 'O') ('c' / 'C') ('a' / 'A') ('l' / 'L') ('e' / 'E') ('n' / 'N') ('t' / 'T') ('r' / 'R') ('y' / 'Y')) / ('.' ('s' / 'S') ('i' / 'I') ('z' / 'Z') ('e' / 'E')) / ('.' ('t' / 'T') ('y' / 'Y') ('p' / 'P') ('e' / 'E')) / ('.' ('u' / 'U') ('l' / 'L') ('e' / 'E') ('b' / 'B') '1' '2' '8') / ('.' ('s' / 'S') ('l' / 'L') ('e' / 'E') ('b' / 'B') '1' '2' '8'))> */ |
| func() bool { |
| position192, tokenIndex192 := position, tokenIndex |
| { |
| position193 := position |
| { |
| position194, tokenIndex194 := position, tokenIndex |
| if buffer[position] != rune('.') { |
| goto l195 |
| } |
| position++ |
| { |
| position196, tokenIndex196 := position, tokenIndex |
| if buffer[position] != rune('x') { |
| goto l197 |
| } |
| position++ |
| goto l196 |
| l197: |
| position, tokenIndex = position196, tokenIndex196 |
| if buffer[position] != rune('X') { |
| goto l195 |
| } |
| position++ |
| } |
| l196: |
| { |
| position198, tokenIndex198 := position, tokenIndex |
| if buffer[position] != rune('w') { |
| goto l199 |
| } |
| position++ |
| goto l198 |
| l199: |
| position, tokenIndex = position198, tokenIndex198 |
| if buffer[position] != rune('W') { |
| goto l195 |
| } |
| position++ |
| } |
| l198: |
| { |
| position200, tokenIndex200 := position, tokenIndex |
| if buffer[position] != rune('o') { |
| goto l201 |
| } |
| position++ |
| goto l200 |
| l201: |
| position, tokenIndex = position200, tokenIndex200 |
| if buffer[position] != rune('O') { |
| goto l195 |
| } |
| position++ |
| } |
| l200: |
| { |
| position202, tokenIndex202 := position, tokenIndex |
| if buffer[position] != rune('r') { |
| goto l203 |
| } |
| position++ |
| goto l202 |
| l203: |
| position, tokenIndex = position202, tokenIndex202 |
| if buffer[position] != rune('R') { |
| goto l195 |
| } |
| position++ |
| } |
| l202: |
| { |
| position204, tokenIndex204 := position, tokenIndex |
| if buffer[position] != rune('d') { |
| goto l205 |
| } |
| position++ |
| goto l204 |
| l205: |
| position, tokenIndex = position204, tokenIndex204 |
| if buffer[position] != rune('D') { |
| goto l195 |
| } |
| position++ |
| } |
| l204: |
| goto l194 |
| l195: |
| position, tokenIndex = position194, tokenIndex194 |
| if buffer[position] != rune('.') { |
| goto l206 |
| } |
| position++ |
| { |
| position207, tokenIndex207 := position, tokenIndex |
| if buffer[position] != rune('w') { |
| goto l208 |
| } |
| position++ |
| goto l207 |
| l208: |
| position, tokenIndex = position207, tokenIndex207 |
| if buffer[position] != rune('W') { |
| goto l206 |
| } |
| position++ |
| } |
| l207: |
| { |
| position209, tokenIndex209 := position, tokenIndex |
| if buffer[position] != rune('o') { |
| goto l210 |
| } |
| position++ |
| goto l209 |
| l210: |
| position, tokenIndex = position209, tokenIndex209 |
| if buffer[position] != rune('O') { |
| goto l206 |
| } |
| position++ |
| } |
| l209: |
| { |
| position211, tokenIndex211 := position, tokenIndex |
| if buffer[position] != rune('r') { |
| goto l212 |
| } |
| position++ |
| goto l211 |
| l212: |
| position, tokenIndex = position211, tokenIndex211 |
| if buffer[position] != rune('R') { |
| goto l206 |
| } |
| position++ |
| } |
| l211: |
| { |
| position213, tokenIndex213 := position, tokenIndex |
| if buffer[position] != rune('d') { |
| goto l214 |
| } |
| position++ |
| goto l213 |
| l214: |
| position, tokenIndex = position213, tokenIndex213 |
| if buffer[position] != rune('D') { |
| goto l206 |
| } |
| position++ |
| } |
| l213: |
| goto l194 |
| l206: |
| position, tokenIndex = position194, tokenIndex194 |
| if buffer[position] != rune('.') { |
| goto l215 |
| } |
| position++ |
| { |
| position216, tokenIndex216 := position, tokenIndex |
| if buffer[position] != rune('h') { |
| goto l217 |
| } |
| position++ |
| goto l216 |
| l217: |
| position, tokenIndex = position216, tokenIndex216 |
| if buffer[position] != rune('H') { |
| goto l215 |
| } |
| position++ |
| } |
| l216: |
| { |
| position218, tokenIndex218 := position, tokenIndex |
| if buffer[position] != rune('w') { |
| goto l219 |
| } |
| position++ |
| goto l218 |
| l219: |
| position, tokenIndex = position218, tokenIndex218 |
| if buffer[position] != rune('W') { |
| goto l215 |
| } |
| position++ |
| } |
| l218: |
| { |
| position220, tokenIndex220 := position, tokenIndex |
| if buffer[position] != rune('o') { |
| goto l221 |
| } |
| position++ |
| goto l220 |
| l221: |
| position, tokenIndex = position220, tokenIndex220 |
| if buffer[position] != rune('O') { |
| goto l215 |
| } |
| position++ |
| } |
| l220: |
| { |
| position222, tokenIndex222 := position, tokenIndex |
| if buffer[position] != rune('r') { |
| goto l223 |
| } |
| position++ |
| goto l222 |
| l223: |
| position, tokenIndex = position222, tokenIndex222 |
| if buffer[position] != rune('R') { |
| goto l215 |
| } |
| position++ |
| } |
| l222: |
| { |
| position224, tokenIndex224 := position, tokenIndex |
| if buffer[position] != rune('d') { |
| goto l225 |
| } |
| position++ |
| goto l224 |
| l225: |
| position, tokenIndex = position224, tokenIndex224 |
| if buffer[position] != rune('D') { |
| goto l215 |
| } |
| position++ |
| } |
| l224: |
| goto l194 |
| l215: |
| position, tokenIndex = position194, tokenIndex194 |
| if buffer[position] != rune('.') { |
| goto l226 |
| } |
| position++ |
| { |
| position227, tokenIndex227 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l228 |
| } |
| position++ |
| goto l227 |
| l228: |
| position, tokenIndex = position227, tokenIndex227 |
| if buffer[position] != rune('L') { |
| goto l226 |
| } |
| position++ |
| } |
| l227: |
| { |
| position229, tokenIndex229 := position, tokenIndex |
| if buffer[position] != rune('o') { |
| goto l230 |
| } |
| position++ |
| goto l229 |
| l230: |
| position, tokenIndex = position229, tokenIndex229 |
| if buffer[position] != rune('O') { |
| goto l226 |
| } |
| position++ |
| } |
| l229: |
| { |
| position231, tokenIndex231 := position, tokenIndex |
| if buffer[position] != rune('n') { |
| goto l232 |
| } |
| position++ |
| goto l231 |
| l232: |
| position, tokenIndex = position231, tokenIndex231 |
| if buffer[position] != rune('N') { |
| goto l226 |
| } |
| position++ |
| } |
| l231: |
| { |
| position233, tokenIndex233 := position, tokenIndex |
| if buffer[position] != rune('g') { |
| goto l234 |
| } |
| position++ |
| goto l233 |
| l234: |
| position, tokenIndex = position233, tokenIndex233 |
| if buffer[position] != rune('G') { |
| goto l226 |
| } |
| position++ |
| } |
| l233: |
| goto l194 |
| l226: |
| position, tokenIndex = position194, tokenIndex194 |
| if buffer[position] != rune('.') { |
| goto l235 |
| } |
| position++ |
| { |
| position236, tokenIndex236 := position, tokenIndex |
| if buffer[position] != rune('b') { |
| goto l237 |
| } |
| position++ |
| goto l236 |
| l237: |
| position, tokenIndex = position236, tokenIndex236 |
| if buffer[position] != rune('B') { |
| goto l235 |
| } |
| position++ |
| } |
| l236: |
| { |
| position238, tokenIndex238 := position, tokenIndex |
| if buffer[position] != rune('y') { |
| goto l239 |
| } |
| position++ |
| goto l238 |
| l239: |
| position, tokenIndex = position238, tokenIndex238 |
| if buffer[position] != rune('Y') { |
| goto l235 |
| } |
| position++ |
| } |
| l238: |
| { |
| position240, tokenIndex240 := position, tokenIndex |
| if buffer[position] != rune('t') { |
| goto l241 |
| } |
| position++ |
| goto l240 |
| l241: |
| position, tokenIndex = position240, tokenIndex240 |
| if buffer[position] != rune('T') { |
| goto l235 |
| } |
| position++ |
| } |
| l240: |
| { |
| position242, tokenIndex242 := position, tokenIndex |
| if buffer[position] != rune('e') { |
| goto l243 |
| } |
| position++ |
| goto l242 |
| l243: |
| position, tokenIndex = position242, tokenIndex242 |
| if buffer[position] != rune('E') { |
| goto l235 |
| } |
| position++ |
| } |
| l242: |
| goto l194 |
| l235: |
| position, tokenIndex = position194, tokenIndex194 |
| if buffer[position] != rune('.') { |
| goto l244 |
| } |
| position++ |
| if buffer[position] != rune('8') { |
| goto l244 |
| } |
| position++ |
| { |
| position245, tokenIndex245 := position, tokenIndex |
| if buffer[position] != rune('b') { |
| goto l246 |
| } |
| position++ |
| goto l245 |
| l246: |
| position, tokenIndex = position245, tokenIndex245 |
| if buffer[position] != rune('B') { |
| goto l244 |
| } |
| position++ |
| } |
| l245: |
| { |
| position247, tokenIndex247 := position, tokenIndex |
| if buffer[position] != rune('y') { |
| goto l248 |
| } |
| position++ |
| goto l247 |
| l248: |
| position, tokenIndex = position247, tokenIndex247 |
| if buffer[position] != rune('Y') { |
| goto l244 |
| } |
| position++ |
| } |
| l247: |
| { |
| position249, tokenIndex249 := position, tokenIndex |
| if buffer[position] != rune('t') { |
| goto l250 |
| } |
| position++ |
| goto l249 |
| l250: |
| position, tokenIndex = position249, tokenIndex249 |
| if buffer[position] != rune('T') { |
| goto l244 |
| } |
| position++ |
| } |
| l249: |
| { |
| position251, tokenIndex251 := position, tokenIndex |
| if buffer[position] != rune('e') { |
| goto l252 |
| } |
| position++ |
| goto l251 |
| l252: |
| position, tokenIndex = position251, tokenIndex251 |
| if buffer[position] != rune('E') { |
| goto l244 |
| } |
| position++ |
| } |
| l251: |
| goto l194 |
| l244: |
| position, tokenIndex = position194, tokenIndex194 |
| if buffer[position] != rune('.') { |
| goto l253 |
| } |
| position++ |
| if buffer[position] != rune('4') { |
| goto l253 |
| } |
| position++ |
| { |
| position254, tokenIndex254 := position, tokenIndex |
| if buffer[position] != rune('b') { |
| goto l255 |
| } |
| position++ |
| goto l254 |
| l255: |
| position, tokenIndex = position254, tokenIndex254 |
| if buffer[position] != rune('B') { |
| goto l253 |
| } |
| position++ |
| } |
| l254: |
| { |
| position256, tokenIndex256 := position, tokenIndex |
| if buffer[position] != rune('y') { |
| goto l257 |
| } |
| position++ |
| goto l256 |
| l257: |
| position, tokenIndex = position256, tokenIndex256 |
| if buffer[position] != rune('Y') { |
| goto l253 |
| } |
| position++ |
| } |
| l256: |
| { |
| position258, tokenIndex258 := position, tokenIndex |
| if buffer[position] != rune('t') { |
| goto l259 |
| } |
| position++ |
| goto l258 |
| l259: |
| position, tokenIndex = position258, tokenIndex258 |
| if buffer[position] != rune('T') { |
| goto l253 |
| } |
| position++ |
| } |
| l258: |
| { |
| position260, tokenIndex260 := position, tokenIndex |
| if buffer[position] != rune('e') { |
| goto l261 |
| } |
| position++ |
| goto l260 |
| l261: |
| position, tokenIndex = position260, tokenIndex260 |
| if buffer[position] != rune('E') { |
| goto l253 |
| } |
| position++ |
| } |
| l260: |
| goto l194 |
| l253: |
| position, tokenIndex = position194, tokenIndex194 |
| if buffer[position] != rune('.') { |
| goto l262 |
| } |
| position++ |
| { |
| position263, tokenIndex263 := position, tokenIndex |
| if buffer[position] != rune('q') { |
| goto l264 |
| } |
| position++ |
| goto l263 |
| l264: |
| position, tokenIndex = position263, tokenIndex263 |
| if buffer[position] != rune('Q') { |
| goto l262 |
| } |
| position++ |
| } |
| l263: |
| { |
| position265, tokenIndex265 := position, tokenIndex |
| if buffer[position] != rune('u') { |
| goto l266 |
| } |
| position++ |
| goto l265 |
| l266: |
| position, tokenIndex = position265, tokenIndex265 |
| if buffer[position] != rune('U') { |
| goto l262 |
| } |
| position++ |
| } |
| l265: |
| { |
| position267, tokenIndex267 := position, tokenIndex |
| if buffer[position] != rune('a') { |
| goto l268 |
| } |
| position++ |
| goto l267 |
| l268: |
| position, tokenIndex = position267, tokenIndex267 |
| if buffer[position] != rune('A') { |
| goto l262 |
| } |
| position++ |
| } |
| l267: |
| { |
| position269, tokenIndex269 := position, tokenIndex |
| if buffer[position] != rune('d') { |
| goto l270 |
| } |
| position++ |
| goto l269 |
| l270: |
| position, tokenIndex = position269, tokenIndex269 |
| if buffer[position] != rune('D') { |
| goto l262 |
| } |
| position++ |
| } |
| l269: |
| goto l194 |
| l262: |
| position, tokenIndex = position194, tokenIndex194 |
| if buffer[position] != rune('.') { |
| goto l271 |
| } |
| position++ |
| { |
| position272, tokenIndex272 := position, tokenIndex |
| if buffer[position] != rune('t') { |
| goto l273 |
| } |
| position++ |
| goto l272 |
| l273: |
| position, tokenIndex = position272, tokenIndex272 |
| if buffer[position] != rune('T') { |
| goto l271 |
| } |
| position++ |
| } |
| l272: |
| { |
| position274, tokenIndex274 := position, tokenIndex |
| if buffer[position] != rune('c') { |
| goto l275 |
| } |
| position++ |
| goto l274 |
| l275: |
| position, tokenIndex = position274, tokenIndex274 |
| if buffer[position] != rune('C') { |
| goto l271 |
| } |
| position++ |
| } |
| l274: |
| goto l194 |
| l271: |
| position, tokenIndex = position194, tokenIndex194 |
| if buffer[position] != rune('.') { |
| goto l276 |
| } |
| position++ |
| { |
| position277, tokenIndex277 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l278 |
| } |
| position++ |
| goto l277 |
| l278: |
| position, tokenIndex = position277, tokenIndex277 |
| if buffer[position] != rune('L') { |
| goto l276 |
| } |
| position++ |
| } |
| l277: |
| { |
| position279, tokenIndex279 := position, tokenIndex |
| if buffer[position] != rune('o') { |
| goto l280 |
| } |
| position++ |
| goto l279 |
| l280: |
| position, tokenIndex = position279, tokenIndex279 |
| if buffer[position] != rune('O') { |
| goto l276 |
| } |
| position++ |
| } |
| l279: |
| { |
| position281, tokenIndex281 := position, tokenIndex |
| if buffer[position] != rune('c') { |
| goto l282 |
| } |
| position++ |
| goto l281 |
| l282: |
| position, tokenIndex = position281, tokenIndex281 |
| if buffer[position] != rune('C') { |
| goto l276 |
| } |
| position++ |
| } |
| l281: |
| { |
| position283, tokenIndex283 := position, tokenIndex |
| if buffer[position] != rune('a') { |
| goto l284 |
| } |
| position++ |
| goto l283 |
| l284: |
| position, tokenIndex = position283, tokenIndex283 |
| if buffer[position] != rune('A') { |
| goto l276 |
| } |
| position++ |
| } |
| l283: |
| { |
| position285, tokenIndex285 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l286 |
| } |
| position++ |
| goto l285 |
| l286: |
| position, tokenIndex = position285, tokenIndex285 |
| if buffer[position] != rune('L') { |
| goto l276 |
| } |
| position++ |
| } |
| l285: |
| { |
| position287, tokenIndex287 := position, tokenIndex |
| if buffer[position] != rune('e') { |
| goto l288 |
| } |
| position++ |
| goto l287 |
| l288: |
| position, tokenIndex = position287, tokenIndex287 |
| if buffer[position] != rune('E') { |
| goto l276 |
| } |
| position++ |
| } |
| l287: |
| { |
| position289, tokenIndex289 := position, tokenIndex |
| if buffer[position] != rune('n') { |
| goto l290 |
| } |
| position++ |
| goto l289 |
| l290: |
| position, tokenIndex = position289, tokenIndex289 |
| if buffer[position] != rune('N') { |
| goto l276 |
| } |
| position++ |
| } |
| l289: |
| { |
| position291, tokenIndex291 := position, tokenIndex |
| if buffer[position] != rune('t') { |
| goto l292 |
| } |
| position++ |
| goto l291 |
| l292: |
| position, tokenIndex = position291, tokenIndex291 |
| if buffer[position] != rune('T') { |
| goto l276 |
| } |
| position++ |
| } |
| l291: |
| { |
| position293, tokenIndex293 := position, tokenIndex |
| if buffer[position] != rune('r') { |
| goto l294 |
| } |
| position++ |
| goto l293 |
| l294: |
| position, tokenIndex = position293, tokenIndex293 |
| if buffer[position] != rune('R') { |
| goto l276 |
| } |
| position++ |
| } |
| l293: |
| { |
| position295, tokenIndex295 := position, tokenIndex |
| if buffer[position] != rune('y') { |
| goto l296 |
| } |
| position++ |
| goto l295 |
| l296: |
| position, tokenIndex = position295, tokenIndex295 |
| if buffer[position] != rune('Y') { |
| goto l276 |
| } |
| position++ |
| } |
| l295: |
| goto l194 |
| l276: |
| position, tokenIndex = position194, tokenIndex194 |
| if buffer[position] != rune('.') { |
| goto l297 |
| } |
| position++ |
| { |
| position298, tokenIndex298 := position, tokenIndex |
| if buffer[position] != rune('s') { |
| goto l299 |
| } |
| position++ |
| goto l298 |
| l299: |
| position, tokenIndex = position298, tokenIndex298 |
| if buffer[position] != rune('S') { |
| goto l297 |
| } |
| position++ |
| } |
| l298: |
| { |
| position300, tokenIndex300 := position, tokenIndex |
| if buffer[position] != rune('i') { |
| goto l301 |
| } |
| position++ |
| goto l300 |
| l301: |
| position, tokenIndex = position300, tokenIndex300 |
| if buffer[position] != rune('I') { |
| goto l297 |
| } |
| position++ |
| } |
| l300: |
| { |
| position302, tokenIndex302 := position, tokenIndex |
| if buffer[position] != rune('z') { |
| goto l303 |
| } |
| position++ |
| goto l302 |
| l303: |
| position, tokenIndex = position302, tokenIndex302 |
| if buffer[position] != rune('Z') { |
| goto l297 |
| } |
| position++ |
| } |
| l302: |
| { |
| position304, tokenIndex304 := position, tokenIndex |
| if buffer[position] != rune('e') { |
| goto l305 |
| } |
| position++ |
| goto l304 |
| l305: |
| position, tokenIndex = position304, tokenIndex304 |
| if buffer[position] != rune('E') { |
| goto l297 |
| } |
| position++ |
| } |
| l304: |
| goto l194 |
| l297: |
| position, tokenIndex = position194, tokenIndex194 |
| if buffer[position] != rune('.') { |
| goto l306 |
| } |
| position++ |
| { |
| position307, tokenIndex307 := position, tokenIndex |
| if buffer[position] != rune('t') { |
| goto l308 |
| } |
| position++ |
| goto l307 |
| l308: |
| position, tokenIndex = position307, tokenIndex307 |
| if buffer[position] != rune('T') { |
| goto l306 |
| } |
| position++ |
| } |
| l307: |
| { |
| position309, tokenIndex309 := position, tokenIndex |
| if buffer[position] != rune('y') { |
| goto l310 |
| } |
| position++ |
| goto l309 |
| l310: |
| position, tokenIndex = position309, tokenIndex309 |
| if buffer[position] != rune('Y') { |
| goto l306 |
| } |
| position++ |
| } |
| l309: |
| { |
| position311, tokenIndex311 := position, tokenIndex |
| if buffer[position] != rune('p') { |
| goto l312 |
| } |
| position++ |
| goto l311 |
| l312: |
| position, tokenIndex = position311, tokenIndex311 |
| if buffer[position] != rune('P') { |
| goto l306 |
| } |
| position++ |
| } |
| l311: |
| { |
| position313, tokenIndex313 := position, tokenIndex |
| if buffer[position] != rune('e') { |
| goto l314 |
| } |
| position++ |
| goto l313 |
| l314: |
| position, tokenIndex = position313, tokenIndex313 |
| if buffer[position] != rune('E') { |
| goto l306 |
| } |
| position++ |
| } |
| l313: |
| goto l194 |
| l306: |
| position, tokenIndex = position194, tokenIndex194 |
| if buffer[position] != rune('.') { |
| goto l315 |
| } |
| position++ |
| { |
| position316, tokenIndex316 := position, tokenIndex |
| if buffer[position] != rune('u') { |
| goto l317 |
| } |
| position++ |
| goto l316 |
| l317: |
| position, tokenIndex = position316, tokenIndex316 |
| if buffer[position] != rune('U') { |
| goto l315 |
| } |
| position++ |
| } |
| l316: |
| { |
| position318, tokenIndex318 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l319 |
| } |
| position++ |
| goto l318 |
| l319: |
| position, tokenIndex = position318, tokenIndex318 |
| if buffer[position] != rune('L') { |
| goto l315 |
| } |
| position++ |
| } |
| l318: |
| { |
| position320, tokenIndex320 := position, tokenIndex |
| if buffer[position] != rune('e') { |
| goto l321 |
| } |
| position++ |
| goto l320 |
| l321: |
| position, tokenIndex = position320, tokenIndex320 |
| if buffer[position] != rune('E') { |
| goto l315 |
| } |
| position++ |
| } |
| l320: |
| { |
| position322, tokenIndex322 := position, tokenIndex |
| if buffer[position] != rune('b') { |
| goto l323 |
| } |
| position++ |
| goto l322 |
| l323: |
| position, tokenIndex = position322, tokenIndex322 |
| if buffer[position] != rune('B') { |
| goto l315 |
| } |
| position++ |
| } |
| l322: |
| if buffer[position] != rune('1') { |
| goto l315 |
| } |
| position++ |
| if buffer[position] != rune('2') { |
| goto l315 |
| } |
| position++ |
| if buffer[position] != rune('8') { |
| goto l315 |
| } |
| position++ |
| goto l194 |
| l315: |
| position, tokenIndex = position194, tokenIndex194 |
| if buffer[position] != rune('.') { |
| goto l192 |
| } |
| position++ |
| { |
| position324, tokenIndex324 := position, tokenIndex |
| if buffer[position] != rune('s') { |
| goto l325 |
| } |
| position++ |
| goto l324 |
| l325: |
| position, tokenIndex = position324, tokenIndex324 |
| if buffer[position] != rune('S') { |
| goto l192 |
| } |
| position++ |
| } |
| l324: |
| { |
| position326, tokenIndex326 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l327 |
| } |
| position++ |
| goto l326 |
| l327: |
| position, tokenIndex = position326, tokenIndex326 |
| if buffer[position] != rune('L') { |
| goto l192 |
| } |
| position++ |
| } |
| l326: |
| { |
| position328, tokenIndex328 := position, tokenIndex |
| if buffer[position] != rune('e') { |
| goto l329 |
| } |
| position++ |
| goto l328 |
| l329: |
| position, tokenIndex = position328, tokenIndex328 |
| if buffer[position] != rune('E') { |
| goto l192 |
| } |
| position++ |
| } |
| l328: |
| { |
| position330, tokenIndex330 := position, tokenIndex |
| if buffer[position] != rune('b') { |
| goto l331 |
| } |
| position++ |
| goto l330 |
| l331: |
| position, tokenIndex = position330, tokenIndex330 |
| if buffer[position] != rune('B') { |
| goto l192 |
| } |
| position++ |
| } |
| l330: |
| if buffer[position] != rune('1') { |
| goto l192 |
| } |
| position++ |
| if buffer[position] != rune('2') { |
| goto l192 |
| } |
| position++ |
| if buffer[position] != rune('8') { |
| goto l192 |
| } |
| position++ |
| } |
| l194: |
| add(ruleLabelContainingDirectiveName, position193) |
| } |
| return true |
| l192: |
| position, tokenIndex = position192, tokenIndex192 |
| return false |
| }, |
| /* 16 SymbolArgs <- <(SymbolArg (WS? ',' WS? SymbolArg)*)> */ |
| func() bool { |
| position332, tokenIndex332 := position, tokenIndex |
| { |
| position333 := position |
| if !_rules[ruleSymbolArg]() { |
| goto l332 |
| } |
| l334: |
| { |
| position335, tokenIndex335 := position, tokenIndex |
| { |
| position336, tokenIndex336 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l336 |
| } |
| goto l337 |
| l336: |
| position, tokenIndex = position336, tokenIndex336 |
| } |
| l337: |
| if buffer[position] != rune(',') { |
| goto l335 |
| } |
| position++ |
| { |
| position338, tokenIndex338 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l338 |
| } |
| goto l339 |
| l338: |
| position, tokenIndex = position338, tokenIndex338 |
| } |
| l339: |
| if !_rules[ruleSymbolArg]() { |
| goto l335 |
| } |
| goto l334 |
| l335: |
| position, tokenIndex = position335, tokenIndex335 |
| } |
| add(ruleSymbolArgs, position333) |
| } |
| return true |
| l332: |
| position, tokenIndex = position332, tokenIndex332 |
| return false |
| }, |
| /* 17 SymbolArg <- <SymbolExpr> */ |
| func() bool { |
| position340, tokenIndex340 := position, tokenIndex |
| { |
| position341 := position |
| if !_rules[ruleSymbolExpr]() { |
| goto l340 |
| } |
| add(ruleSymbolArg, position341) |
| } |
| return true |
| l340: |
| position, tokenIndex = position340, tokenIndex340 |
| return false |
| }, |
| /* 18 SymbolExpr <- <(SymbolAtom (WS? SymbolOperator WS? SymbolExpr)?)> */ |
| func() bool { |
| position342, tokenIndex342 := position, tokenIndex |
| { |
| position343 := position |
| if !_rules[ruleSymbolAtom]() { |
| goto l342 |
| } |
| { |
| position344, tokenIndex344 := position, tokenIndex |
| { |
| position346, tokenIndex346 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l346 |
| } |
| goto l347 |
| l346: |
| position, tokenIndex = position346, tokenIndex346 |
| } |
| l347: |
| if !_rules[ruleSymbolOperator]() { |
| goto l344 |
| } |
| { |
| position348, tokenIndex348 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l348 |
| } |
| goto l349 |
| l348: |
| position, tokenIndex = position348, tokenIndex348 |
| } |
| l349: |
| if !_rules[ruleSymbolExpr]() { |
| goto l344 |
| } |
| goto l345 |
| l344: |
| position, tokenIndex = position344, tokenIndex344 |
| } |
| l345: |
| add(ruleSymbolExpr, position343) |
| } |
| return true |
| l342: |
| position, tokenIndex = position342, tokenIndex342 |
| return false |
| }, |
| /* 19 SymbolAtom <- <(LocalLabelRef / Offset / SymbolType / (LocalSymbol TCMarker?) / (SymbolName Offset) / (SymbolName TCMarker?) / Dot / (OpenParen WS? SymbolExpr WS? CloseParen))> */ |
| func() bool { |
| position350, tokenIndex350 := position, tokenIndex |
| { |
| position351 := position |
| { |
| position352, tokenIndex352 := position, tokenIndex |
| if !_rules[ruleLocalLabelRef]() { |
| goto l353 |
| } |
| goto l352 |
| l353: |
| position, tokenIndex = position352, tokenIndex352 |
| if !_rules[ruleOffset]() { |
| goto l354 |
| } |
| goto l352 |
| l354: |
| position, tokenIndex = position352, tokenIndex352 |
| if !_rules[ruleSymbolType]() { |
| goto l355 |
| } |
| goto l352 |
| l355: |
| position, tokenIndex = position352, tokenIndex352 |
| if !_rules[ruleLocalSymbol]() { |
| goto l356 |
| } |
| { |
| position357, tokenIndex357 := position, tokenIndex |
| if !_rules[ruleTCMarker]() { |
| goto l357 |
| } |
| goto l358 |
| l357: |
| position, tokenIndex = position357, tokenIndex357 |
| } |
| l358: |
| goto l352 |
| l356: |
| position, tokenIndex = position352, tokenIndex352 |
| if !_rules[ruleSymbolName]() { |
| goto l359 |
| } |
| if !_rules[ruleOffset]() { |
| goto l359 |
| } |
| goto l352 |
| l359: |
| position, tokenIndex = position352, tokenIndex352 |
| if !_rules[ruleSymbolName]() { |
| goto l360 |
| } |
| { |
| position361, tokenIndex361 := position, tokenIndex |
| if !_rules[ruleTCMarker]() { |
| goto l361 |
| } |
| goto l362 |
| l361: |
| position, tokenIndex = position361, tokenIndex361 |
| } |
| l362: |
| goto l352 |
| l360: |
| position, tokenIndex = position352, tokenIndex352 |
| if !_rules[ruleDot]() { |
| goto l363 |
| } |
| goto l352 |
| l363: |
| position, tokenIndex = position352, tokenIndex352 |
| if !_rules[ruleOpenParen]() { |
| goto l350 |
| } |
| { |
| position364, tokenIndex364 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l364 |
| } |
| goto l365 |
| l364: |
| position, tokenIndex = position364, tokenIndex364 |
| } |
| l365: |
| if !_rules[ruleSymbolExpr]() { |
| goto l350 |
| } |
| { |
| position366, tokenIndex366 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l366 |
| } |
| goto l367 |
| l366: |
| position, tokenIndex = position366, tokenIndex366 |
| } |
| l367: |
| if !_rules[ruleCloseParen]() { |
| goto l350 |
| } |
| } |
| l352: |
| add(ruleSymbolAtom, position351) |
| } |
| return true |
| l350: |
| position, tokenIndex = position350, tokenIndex350 |
| return false |
| }, |
| /* 20 SymbolOperator <- <('+' / '-' / '|' / ('<' '<') / ('>' '>'))> */ |
| func() bool { |
| position368, tokenIndex368 := position, tokenIndex |
| { |
| position369 := position |
| { |
| position370, tokenIndex370 := position, tokenIndex |
| if buffer[position] != rune('+') { |
| goto l371 |
| } |
| position++ |
| goto l370 |
| l371: |
| position, tokenIndex = position370, tokenIndex370 |
| if buffer[position] != rune('-') { |
| goto l372 |
| } |
| position++ |
| goto l370 |
| l372: |
| position, tokenIndex = position370, tokenIndex370 |
| if buffer[position] != rune('|') { |
| goto l373 |
| } |
| position++ |
| goto l370 |
| l373: |
| position, tokenIndex = position370, tokenIndex370 |
| if buffer[position] != rune('<') { |
| goto l374 |
| } |
| position++ |
| if buffer[position] != rune('<') { |
| goto l374 |
| } |
| position++ |
| goto l370 |
| l374: |
| position, tokenIndex = position370, tokenIndex370 |
| if buffer[position] != rune('>') { |
| goto l368 |
| } |
| position++ |
| if buffer[position] != rune('>') { |
| goto l368 |
| } |
| position++ |
| } |
| l370: |
| add(ruleSymbolOperator, position369) |
| } |
| return true |
| l368: |
| position, tokenIndex = position368, tokenIndex368 |
| return false |
| }, |
| /* 21 OpenParen <- <'('> */ |
| func() bool { |
| position375, tokenIndex375 := position, tokenIndex |
| { |
| position376 := position |
| if buffer[position] != rune('(') { |
| goto l375 |
| } |
| position++ |
| add(ruleOpenParen, position376) |
| } |
| return true |
| l375: |
| position, tokenIndex = position375, tokenIndex375 |
| return false |
| }, |
| /* 22 CloseParen <- <')'> */ |
| func() bool { |
| position377, tokenIndex377 := position, tokenIndex |
| { |
| position378 := position |
| if buffer[position] != rune(')') { |
| goto l377 |
| } |
| position++ |
| add(ruleCloseParen, position378) |
| } |
| return true |
| l377: |
| position, tokenIndex = position377, tokenIndex377 |
| return false |
| }, |
| /* 23 SymbolType <- <(('@' / '%') (('f' 'u' 'n' 'c' 't' 'i' 'o' 'n') / ('o' 'b' 'j' 'e' 'c' 't')))> */ |
| func() bool { |
| position379, tokenIndex379 := position, tokenIndex |
| { |
| position380 := position |
| { |
| position381, tokenIndex381 := position, tokenIndex |
| if buffer[position] != rune('@') { |
| goto l382 |
| } |
| position++ |
| goto l381 |
| l382: |
| position, tokenIndex = position381, tokenIndex381 |
| if buffer[position] != rune('%') { |
| goto l379 |
| } |
| position++ |
| } |
| l381: |
| { |
| position383, tokenIndex383 := position, tokenIndex |
| if buffer[position] != rune('f') { |
| goto l384 |
| } |
| position++ |
| if buffer[position] != rune('u') { |
| goto l384 |
| } |
| position++ |
| if buffer[position] != rune('n') { |
| goto l384 |
| } |
| position++ |
| if buffer[position] != rune('c') { |
| goto l384 |
| } |
| position++ |
| if buffer[position] != rune('t') { |
| goto l384 |
| } |
| position++ |
| if buffer[position] != rune('i') { |
| goto l384 |
| } |
| position++ |
| if buffer[position] != rune('o') { |
| goto l384 |
| } |
| position++ |
| if buffer[position] != rune('n') { |
| goto l384 |
| } |
| position++ |
| goto l383 |
| l384: |
| position, tokenIndex = position383, tokenIndex383 |
| if buffer[position] != rune('o') { |
| goto l379 |
| } |
| position++ |
| if buffer[position] != rune('b') { |
| goto l379 |
| } |
| position++ |
| if buffer[position] != rune('j') { |
| goto l379 |
| } |
| position++ |
| if buffer[position] != rune('e') { |
| goto l379 |
| } |
| position++ |
| if buffer[position] != rune('c') { |
| goto l379 |
| } |
| position++ |
| if buffer[position] != rune('t') { |
| goto l379 |
| } |
| position++ |
| } |
| l383: |
| add(ruleSymbolType, position380) |
| } |
| return true |
| l379: |
| position, tokenIndex = position379, tokenIndex379 |
| return false |
| }, |
| /* 24 Dot <- <'.'> */ |
| func() bool { |
| position385, tokenIndex385 := position, tokenIndex |
| { |
| position386 := position |
| if buffer[position] != rune('.') { |
| goto l385 |
| } |
| position++ |
| add(ruleDot, position386) |
| } |
| return true |
| l385: |
| position, tokenIndex = position385, tokenIndex385 |
| return false |
| }, |
| /* 25 TCMarker <- <('[' 'T' 'C' ']')> */ |
| func() bool { |
| position387, tokenIndex387 := position, tokenIndex |
| { |
| position388 := position |
| if buffer[position] != rune('[') { |
| goto l387 |
| } |
| position++ |
| if buffer[position] != rune('T') { |
| goto l387 |
| } |
| position++ |
| if buffer[position] != rune('C') { |
| goto l387 |
| } |
| position++ |
| if buffer[position] != rune(']') { |
| goto l387 |
| } |
| position++ |
| add(ruleTCMarker, position388) |
| } |
| return true |
| l387: |
| position, tokenIndex = position387, tokenIndex387 |
| return false |
| }, |
| /* 26 EscapedChar <- <('\\' .)> */ |
| func() bool { |
| position389, tokenIndex389 := position, tokenIndex |
| { |
| position390 := position |
| if buffer[position] != rune('\\') { |
| goto l389 |
| } |
| position++ |
| if !matchDot() { |
| goto l389 |
| } |
| add(ruleEscapedChar, position390) |
| } |
| return true |
| l389: |
| position, tokenIndex = position389, tokenIndex389 |
| return false |
| }, |
| /* 27 WS <- <(' ' / '\t')+> */ |
| func() bool { |
| position391, tokenIndex391 := position, tokenIndex |
| { |
| position392 := position |
| { |
| position395, tokenIndex395 := position, tokenIndex |
| if buffer[position] != rune(' ') { |
| goto l396 |
| } |
| position++ |
| goto l395 |
| l396: |
| position, tokenIndex = position395, tokenIndex395 |
| if buffer[position] != rune('\t') { |
| goto l391 |
| } |
| position++ |
| } |
| l395: |
| l393: |
| { |
| position394, tokenIndex394 := position, tokenIndex |
| { |
| position397, tokenIndex397 := position, tokenIndex |
| if buffer[position] != rune(' ') { |
| goto l398 |
| } |
| position++ |
| goto l397 |
| l398: |
| position, tokenIndex = position397, tokenIndex397 |
| if buffer[position] != rune('\t') { |
| goto l394 |
| } |
| position++ |
| } |
| l397: |
| goto l393 |
| l394: |
| position, tokenIndex = position394, tokenIndex394 |
| } |
| add(ruleWS, position392) |
| } |
| return true |
| l391: |
| position, tokenIndex = position391, tokenIndex391 |
| return false |
| }, |
| /* 28 Comment <- <((('/' '/') / '#') (!'\n' .)*)> */ |
| func() bool { |
| position399, tokenIndex399 := position, tokenIndex |
| { |
| position400 := position |
| { |
| position401, tokenIndex401 := position, tokenIndex |
| if buffer[position] != rune('/') { |
| goto l402 |
| } |
| position++ |
| if buffer[position] != rune('/') { |
| goto l402 |
| } |
| position++ |
| goto l401 |
| l402: |
| position, tokenIndex = position401, tokenIndex401 |
| if buffer[position] != rune('#') { |
| goto l399 |
| } |
| position++ |
| } |
| l401: |
| l403: |
| { |
| position404, tokenIndex404 := position, tokenIndex |
| { |
| position405, tokenIndex405 := position, tokenIndex |
| if buffer[position] != rune('\n') { |
| goto l405 |
| } |
| position++ |
| goto l404 |
| l405: |
| position, tokenIndex = position405, tokenIndex405 |
| } |
| if !matchDot() { |
| goto l404 |
| } |
| goto l403 |
| l404: |
| position, tokenIndex = position404, tokenIndex404 |
| } |
| add(ruleComment, position400) |
| } |
| return true |
| l399: |
| position, tokenIndex = position399, tokenIndex399 |
| return false |
| }, |
| /* 29 Label <- <((LocalSymbol / LocalLabel / SymbolName) ':')> */ |
| func() bool { |
| position406, tokenIndex406 := position, tokenIndex |
| { |
| position407 := position |
| { |
| position408, tokenIndex408 := position, tokenIndex |
| if !_rules[ruleLocalSymbol]() { |
| goto l409 |
| } |
| goto l408 |
| l409: |
| position, tokenIndex = position408, tokenIndex408 |
| if !_rules[ruleLocalLabel]() { |
| goto l410 |
| } |
| goto l408 |
| l410: |
| position, tokenIndex = position408, tokenIndex408 |
| if !_rules[ruleSymbolName]() { |
| goto l406 |
| } |
| } |
| l408: |
| if buffer[position] != rune(':') { |
| goto l406 |
| } |
| position++ |
| add(ruleLabel, position407) |
| } |
| return true |
| l406: |
| position, tokenIndex = position406, tokenIndex406 |
| return false |
| }, |
| /* 30 SymbolName <- <(([a-z] / [A-Z] / '.' / '_') ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]) / '$' / '_')*)> */ |
| func() bool { |
| position411, tokenIndex411 := position, tokenIndex |
| { |
| position412 := position |
| { |
| position413, tokenIndex413 := 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 |
| l415: |
| position, tokenIndex = position413, tokenIndex413 |
| if buffer[position] != rune('.') { |
| goto l416 |
| } |
| position++ |
| goto l413 |
| l416: |
| position, tokenIndex = position413, tokenIndex413 |
| if buffer[position] != rune('_') { |
| goto l411 |
| } |
| position++ |
| } |
| l413: |
| l417: |
| { |
| position418, tokenIndex418 := position, tokenIndex |
| { |
| position419, tokenIndex419 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l420 |
| } |
| position++ |
| goto l419 |
| l420: |
| position, tokenIndex = position419, tokenIndex419 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l421 |
| } |
| position++ |
| goto l419 |
| l421: |
| position, tokenIndex = position419, tokenIndex419 |
| if buffer[position] != rune('.') { |
| goto l422 |
| } |
| position++ |
| goto l419 |
| l422: |
| position, tokenIndex = position419, tokenIndex419 |
| { |
| position424, tokenIndex424 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l425 |
| } |
| position++ |
| goto l424 |
| l425: |
| position, tokenIndex = position424, tokenIndex424 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l423 |
| } |
| position++ |
| } |
| l424: |
| goto l419 |
| l423: |
| position, tokenIndex = position419, tokenIndex419 |
| if buffer[position] != rune('$') { |
| goto l426 |
| } |
| position++ |
| goto l419 |
| l426: |
| position, tokenIndex = position419, tokenIndex419 |
| if buffer[position] != rune('_') { |
| goto l418 |
| } |
| position++ |
| } |
| l419: |
| goto l417 |
| l418: |
| position, tokenIndex = position418, tokenIndex418 |
| } |
| add(ruleSymbolName, position412) |
| } |
| return true |
| l411: |
| position, tokenIndex = position411, tokenIndex411 |
| return false |
| }, |
| /* 31 LocalSymbol <- <('.' 'L' ([a-z] / [A-Z] / ([a-z] / [A-Z]) / '.' / ([0-9] / [0-9]) / '$' / '_')+)> */ |
| func() bool { |
| position427, tokenIndex427 := position, tokenIndex |
| { |
| position428 := position |
| if buffer[position] != rune('.') { |
| goto l427 |
| } |
| position++ |
| if buffer[position] != rune('L') { |
| goto l427 |
| } |
| position++ |
| { |
| position431, tokenIndex431 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l432 |
| } |
| position++ |
| goto l431 |
| l432: |
| position, tokenIndex = position431, tokenIndex431 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l433 |
| } |
| position++ |
| goto l431 |
| l433: |
| position, tokenIndex = position431, tokenIndex431 |
| { |
| position435, tokenIndex435 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l436 |
| } |
| position++ |
| goto l435 |
| l436: |
| position, tokenIndex = position435, tokenIndex435 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l434 |
| } |
| position++ |
| } |
| l435: |
| goto l431 |
| l434: |
| position, tokenIndex = position431, tokenIndex431 |
| if buffer[position] != rune('.') { |
| goto l437 |
| } |
| position++ |
| goto l431 |
| l437: |
| position, tokenIndex = position431, tokenIndex431 |
| { |
| position439, tokenIndex439 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l440 |
| } |
| position++ |
| goto l439 |
| l440: |
| position, tokenIndex = position439, tokenIndex439 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l438 |
| } |
| position++ |
| } |
| l439: |
| goto l431 |
| l438: |
| position, tokenIndex = position431, tokenIndex431 |
| if buffer[position] != rune('$') { |
| goto l441 |
| } |
| position++ |
| goto l431 |
| l441: |
| position, tokenIndex = position431, tokenIndex431 |
| if buffer[position] != rune('_') { |
| goto l427 |
| } |
| position++ |
| } |
| l431: |
| l429: |
| { |
| position430, tokenIndex430 := position, tokenIndex |
| { |
| position442, tokenIndex442 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l443 |
| } |
| position++ |
| goto l442 |
| l443: |
| position, tokenIndex = position442, tokenIndex442 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l444 |
| } |
| position++ |
| goto l442 |
| l444: |
| position, tokenIndex = position442, tokenIndex442 |
| { |
| position446, tokenIndex446 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l447 |
| } |
| position++ |
| goto l446 |
| l447: |
| position, tokenIndex = position446, tokenIndex446 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l445 |
| } |
| position++ |
| } |
| l446: |
| goto l442 |
| l445: |
| position, tokenIndex = position442, tokenIndex442 |
| if buffer[position] != rune('.') { |
| goto l448 |
| } |
| position++ |
| goto l442 |
| l448: |
| position, tokenIndex = position442, tokenIndex442 |
| { |
| position450, tokenIndex450 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l451 |
| } |
| position++ |
| goto l450 |
| l451: |
| position, tokenIndex = position450, tokenIndex450 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l449 |
| } |
| position++ |
| } |
| l450: |
| goto l442 |
| l449: |
| position, tokenIndex = position442, tokenIndex442 |
| if buffer[position] != rune('$') { |
| goto l452 |
| } |
| position++ |
| goto l442 |
| l452: |
| position, tokenIndex = position442, tokenIndex442 |
| if buffer[position] != rune('_') { |
| goto l430 |
| } |
| position++ |
| } |
| l442: |
| goto l429 |
| l430: |
| position, tokenIndex = position430, tokenIndex430 |
| } |
| add(ruleLocalSymbol, position428) |
| } |
| return true |
| l427: |
| position, tokenIndex = position427, tokenIndex427 |
| return false |
| }, |
| /* 32 LocalLabel <- <([0-9] ([0-9] / '$')*)> */ |
| func() bool { |
| position453, tokenIndex453 := position, tokenIndex |
| { |
| position454 := position |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l453 |
| } |
| position++ |
| l455: |
| { |
| position456, tokenIndex456 := position, tokenIndex |
| { |
| position457, tokenIndex457 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l458 |
| } |
| position++ |
| goto l457 |
| l458: |
| position, tokenIndex = position457, tokenIndex457 |
| if buffer[position] != rune('$') { |
| goto l456 |
| } |
| position++ |
| } |
| l457: |
| goto l455 |
| l456: |
| position, tokenIndex = position456, tokenIndex456 |
| } |
| add(ruleLocalLabel, position454) |
| } |
| return true |
| l453: |
| position, tokenIndex = position453, tokenIndex453 |
| return false |
| }, |
| /* 33 LocalLabelRef <- <([0-9] ([0-9] / '$')* ('b' / 'f'))> */ |
| func() bool { |
| position459, tokenIndex459 := position, tokenIndex |
| { |
| position460 := position |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l459 |
| } |
| position++ |
| l461: |
| { |
| position462, tokenIndex462 := position, tokenIndex |
| { |
| position463, tokenIndex463 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l464 |
| } |
| position++ |
| goto l463 |
| l464: |
| position, tokenIndex = position463, tokenIndex463 |
| if buffer[position] != rune('$') { |
| goto l462 |
| } |
| position++ |
| } |
| l463: |
| goto l461 |
| l462: |
| position, tokenIndex = position462, tokenIndex462 |
| } |
| { |
| position465, tokenIndex465 := position, tokenIndex |
| if buffer[position] != rune('b') { |
| goto l466 |
| } |
| position++ |
| goto l465 |
| l466: |
| position, tokenIndex = position465, tokenIndex465 |
| if buffer[position] != rune('f') { |
| goto l459 |
| } |
| position++ |
| } |
| l465: |
| add(ruleLocalLabelRef, position460) |
| } |
| return true |
| l459: |
| position, tokenIndex = position459, tokenIndex459 |
| return false |
| }, |
| /* 34 InstructionPrefix <- <(('n' / 'N') ('o' / 'O') ('t' / 'T') ('r' / 'R') ('a' / 'A') ('c' / 'C') ('k' / 'K'))> */ |
| func() bool { |
| position467, tokenIndex467 := position, tokenIndex |
| { |
| position468 := position |
| { |
| position469, tokenIndex469 := position, tokenIndex |
| if buffer[position] != rune('n') { |
| goto l470 |
| } |
| position++ |
| goto l469 |
| l470: |
| position, tokenIndex = position469, tokenIndex469 |
| if buffer[position] != rune('N') { |
| goto l467 |
| } |
| position++ |
| } |
| l469: |
| { |
| position471, tokenIndex471 := position, tokenIndex |
| if buffer[position] != rune('o') { |
| goto l472 |
| } |
| position++ |
| goto l471 |
| l472: |
| position, tokenIndex = position471, tokenIndex471 |
| if buffer[position] != rune('O') { |
| goto l467 |
| } |
| position++ |
| } |
| l471: |
| { |
| position473, tokenIndex473 := position, tokenIndex |
| if buffer[position] != rune('t') { |
| goto l474 |
| } |
| position++ |
| goto l473 |
| l474: |
| position, tokenIndex = position473, tokenIndex473 |
| if buffer[position] != rune('T') { |
| goto l467 |
| } |
| position++ |
| } |
| l473: |
| { |
| position475, tokenIndex475 := position, tokenIndex |
| if buffer[position] != rune('r') { |
| goto l476 |
| } |
| position++ |
| goto l475 |
| l476: |
| position, tokenIndex = position475, tokenIndex475 |
| if buffer[position] != rune('R') { |
| goto l467 |
| } |
| position++ |
| } |
| l475: |
| { |
| position477, tokenIndex477 := position, tokenIndex |
| if buffer[position] != rune('a') { |
| goto l478 |
| } |
| position++ |
| goto l477 |
| l478: |
| position, tokenIndex = position477, tokenIndex477 |
| if buffer[position] != rune('A') { |
| goto l467 |
| } |
| position++ |
| } |
| l477: |
| { |
| position479, tokenIndex479 := position, tokenIndex |
| if buffer[position] != rune('c') { |
| goto l480 |
| } |
| position++ |
| goto l479 |
| l480: |
| position, tokenIndex = position479, tokenIndex479 |
| if buffer[position] != rune('C') { |
| goto l467 |
| } |
| position++ |
| } |
| l479: |
| { |
| position481, tokenIndex481 := position, tokenIndex |
| if buffer[position] != rune('k') { |
| goto l482 |
| } |
| position++ |
| goto l481 |
| l482: |
| position, tokenIndex = position481, tokenIndex481 |
| if buffer[position] != rune('K') { |
| goto l467 |
| } |
| position++ |
| } |
| l481: |
| add(ruleInstructionPrefix, position468) |
| } |
| return true |
| l467: |
| position, tokenIndex = position467, tokenIndex467 |
| return false |
| }, |
| /* 35 Instruction <- <((InstructionPrefix WS)? InstructionName (WS InstructionArg (WS? ',' WS? InstructionArg)*)?)> */ |
| func() bool { |
| position483, tokenIndex483 := position, tokenIndex |
| { |
| position484 := position |
| { |
| position485, tokenIndex485 := position, tokenIndex |
| if !_rules[ruleInstructionPrefix]() { |
| goto l485 |
| } |
| if !_rules[ruleWS]() { |
| goto l485 |
| } |
| goto l486 |
| l485: |
| position, tokenIndex = position485, tokenIndex485 |
| } |
| l486: |
| if !_rules[ruleInstructionName]() { |
| goto l483 |
| } |
| { |
| position487, tokenIndex487 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l487 |
| } |
| if !_rules[ruleInstructionArg]() { |
| goto l487 |
| } |
| l489: |
| { |
| position490, tokenIndex490 := position, tokenIndex |
| { |
| position491, tokenIndex491 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l491 |
| } |
| goto l492 |
| l491: |
| position, tokenIndex = position491, tokenIndex491 |
| } |
| l492: |
| if buffer[position] != rune(',') { |
| goto l490 |
| } |
| position++ |
| { |
| position493, tokenIndex493 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l493 |
| } |
| goto l494 |
| l493: |
| position, tokenIndex = position493, tokenIndex493 |
| } |
| l494: |
| if !_rules[ruleInstructionArg]() { |
| goto l490 |
| } |
| goto l489 |
| l490: |
| position, tokenIndex = position490, tokenIndex490 |
| } |
| goto l488 |
| l487: |
| position, tokenIndex = position487, tokenIndex487 |
| } |
| l488: |
| add(ruleInstruction, position484) |
| } |
| return true |
| l483: |
| position, tokenIndex = position483, tokenIndex483 |
| return false |
| }, |
| /* 36 InstructionName <- <(([a-z] / [A-Z]) ([a-z] / [A-Z] / '.' / ([0-9] / [0-9]))* ('.' / '+' / '-')?)> */ |
| func() bool { |
| position495, tokenIndex495 := position, tokenIndex |
| { |
| position496 := position |
| { |
| position497, tokenIndex497 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l498 |
| } |
| position++ |
| goto l497 |
| l498: |
| position, tokenIndex = position497, tokenIndex497 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l495 |
| } |
| position++ |
| } |
| l497: |
| l499: |
| { |
| position500, tokenIndex500 := position, tokenIndex |
| { |
| position501, tokenIndex501 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l502 |
| } |
| position++ |
| goto l501 |
| l502: |
| position, tokenIndex = position501, tokenIndex501 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l503 |
| } |
| position++ |
| goto l501 |
| l503: |
| position, tokenIndex = position501, tokenIndex501 |
| if buffer[position] != rune('.') { |
| goto l504 |
| } |
| position++ |
| goto l501 |
| l504: |
| position, tokenIndex = position501, tokenIndex501 |
| { |
| position505, tokenIndex505 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l506 |
| } |
| position++ |
| goto l505 |
| l506: |
| position, tokenIndex = position505, tokenIndex505 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l500 |
| } |
| position++ |
| } |
| l505: |
| } |
| l501: |
| goto l499 |
| l500: |
| position, tokenIndex = position500, tokenIndex500 |
| } |
| { |
| position507, tokenIndex507 := position, tokenIndex |
| { |
| position509, tokenIndex509 := position, tokenIndex |
| if buffer[position] != rune('.') { |
| goto l510 |
| } |
| position++ |
| goto l509 |
| l510: |
| position, tokenIndex = position509, tokenIndex509 |
| if buffer[position] != rune('+') { |
| goto l511 |
| } |
| position++ |
| goto l509 |
| l511: |
| position, tokenIndex = position509, tokenIndex509 |
| if buffer[position] != rune('-') { |
| goto l507 |
| } |
| position++ |
| } |
| l509: |
| goto l508 |
| l507: |
| position, tokenIndex = position507, tokenIndex507 |
| } |
| l508: |
| add(ruleInstructionName, position496) |
| } |
| return true |
| l495: |
| position, tokenIndex = position495, tokenIndex495 |
| return false |
| }, |
| /* 37 InstructionArg <- <(IndirectionIndicator? (ARMConstantTweak / RegisterOrConstant / LocalLabelRef / TOCRefHigh / TOCRefLow / GOTLocation / GOTAddress / GOTSymbolOffset / MemoryRef) AVX512Token*)> */ |
| func() bool { |
| position512, tokenIndex512 := position, tokenIndex |
| { |
| position513 := position |
| { |
| position514, tokenIndex514 := position, tokenIndex |
| if !_rules[ruleIndirectionIndicator]() { |
| goto l514 |
| } |
| goto l515 |
| l514: |
| position, tokenIndex = position514, tokenIndex514 |
| } |
| l515: |
| { |
| position516, tokenIndex516 := position, tokenIndex |
| if !_rules[ruleARMConstantTweak]() { |
| goto l517 |
| } |
| goto l516 |
| l517: |
| position, tokenIndex = position516, tokenIndex516 |
| if !_rules[ruleRegisterOrConstant]() { |
| goto l518 |
| } |
| goto l516 |
| l518: |
| position, tokenIndex = position516, tokenIndex516 |
| if !_rules[ruleLocalLabelRef]() { |
| goto l519 |
| } |
| goto l516 |
| l519: |
| position, tokenIndex = position516, tokenIndex516 |
| if !_rules[ruleTOCRefHigh]() { |
| goto l520 |
| } |
| goto l516 |
| l520: |
| position, tokenIndex = position516, tokenIndex516 |
| if !_rules[ruleTOCRefLow]() { |
| goto l521 |
| } |
| goto l516 |
| l521: |
| position, tokenIndex = position516, tokenIndex516 |
| if !_rules[ruleGOTLocation]() { |
| goto l522 |
| } |
| goto l516 |
| l522: |
| position, tokenIndex = position516, tokenIndex516 |
| if !_rules[ruleGOTAddress]() { |
| goto l523 |
| } |
| goto l516 |
| l523: |
| position, tokenIndex = position516, tokenIndex516 |
| if !_rules[ruleGOTSymbolOffset]() { |
| goto l524 |
| } |
| goto l516 |
| l524: |
| position, tokenIndex = position516, tokenIndex516 |
| if !_rules[ruleMemoryRef]() { |
| goto l512 |
| } |
| } |
| l516: |
| l525: |
| { |
| position526, tokenIndex526 := position, tokenIndex |
| if !_rules[ruleAVX512Token]() { |
| goto l526 |
| } |
| goto l525 |
| l526: |
| position, tokenIndex = position526, tokenIndex526 |
| } |
| add(ruleInstructionArg, position513) |
| } |
| return true |
| l512: |
| position, tokenIndex = position512, tokenIndex512 |
| return false |
| }, |
| /* 38 GOTLocation <- <('$' '_' 'G' 'L' 'O' 'B' 'A' 'L' '_' 'O' 'F' 'F' 'S' 'E' 'T' '_' 'T' 'A' 'B' 'L' 'E' '_' '-' LocalSymbol)> */ |
| func() bool { |
| position527, tokenIndex527 := position, tokenIndex |
| { |
| position528 := position |
| if buffer[position] != rune('$') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('_') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('G') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('L') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('O') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('B') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('A') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('L') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('_') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('O') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('F') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('F') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('S') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('E') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('T') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('_') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('T') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('A') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('B') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('L') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('E') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('_') { |
| goto l527 |
| } |
| position++ |
| if buffer[position] != rune('-') { |
| goto l527 |
| } |
| position++ |
| if !_rules[ruleLocalSymbol]() { |
| goto l527 |
| } |
| add(ruleGOTLocation, position528) |
| } |
| return true |
| l527: |
| position, tokenIndex = position527, tokenIndex527 |
| return false |
| }, |
| /* 39 GOTAddress <- <('_' 'G' 'L' 'O' 'B' 'A' 'L' '_' 'O' 'F' 'F' 'S' 'E' 'T' '_' 'T' 'A' 'B' 'L' 'E' '_' '(' '%' 'r' 'i' 'p' ')')> */ |
| func() bool { |
| position529, tokenIndex529 := position, tokenIndex |
| { |
| position530 := position |
| if buffer[position] != rune('_') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('G') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('L') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('O') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('B') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('A') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('L') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('_') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('O') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('F') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('F') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('S') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('E') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('T') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('_') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('T') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('A') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('B') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('L') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('E') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('_') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('(') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('%') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('r') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('i') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune('p') { |
| goto l529 |
| } |
| position++ |
| if buffer[position] != rune(')') { |
| goto l529 |
| } |
| position++ |
| add(ruleGOTAddress, position530) |
| } |
| return true |
| l529: |
| position, tokenIndex = position529, tokenIndex529 |
| return false |
| }, |
| /* 40 GOTSymbolOffset <- <(('$' SymbolName ('@' 'G' 'O' 'T') ('O' 'F' 'F')?) / (':' ('g' / 'G') ('o' / 'O') ('t' / 'T') ':' SymbolName))> */ |
| func() bool { |
| position531, tokenIndex531 := position, tokenIndex |
| { |
| position532 := position |
| { |
| position533, tokenIndex533 := position, tokenIndex |
| if buffer[position] != rune('$') { |
| goto l534 |
| } |
| position++ |
| if !_rules[ruleSymbolName]() { |
| goto l534 |
| } |
| if buffer[position] != rune('@') { |
| goto l534 |
| } |
| position++ |
| if buffer[position] != rune('G') { |
| goto l534 |
| } |
| position++ |
| if buffer[position] != rune('O') { |
| goto l534 |
| } |
| position++ |
| if buffer[position] != rune('T') { |
| goto l534 |
| } |
| position++ |
| { |
| position535, tokenIndex535 := position, tokenIndex |
| if buffer[position] != rune('O') { |
| goto l535 |
| } |
| position++ |
| if buffer[position] != rune('F') { |
| goto l535 |
| } |
| position++ |
| if buffer[position] != rune('F') { |
| goto l535 |
| } |
| position++ |
| goto l536 |
| l535: |
| position, tokenIndex = position535, tokenIndex535 |
| } |
| l536: |
| goto l533 |
| l534: |
| position, tokenIndex = position533, tokenIndex533 |
| if buffer[position] != rune(':') { |
| goto l531 |
| } |
| position++ |
| { |
| position537, tokenIndex537 := position, tokenIndex |
| if buffer[position] != rune('g') { |
| goto l538 |
| } |
| position++ |
| goto l537 |
| l538: |
| position, tokenIndex = position537, tokenIndex537 |
| if buffer[position] != rune('G') { |
| goto l531 |
| } |
| position++ |
| } |
| l537: |
| { |
| position539, tokenIndex539 := position, tokenIndex |
| if buffer[position] != rune('o') { |
| goto l540 |
| } |
| position++ |
| goto l539 |
| l540: |
| position, tokenIndex = position539, tokenIndex539 |
| if buffer[position] != rune('O') { |
| goto l531 |
| } |
| position++ |
| } |
| l539: |
| { |
| position541, tokenIndex541 := position, tokenIndex |
| if buffer[position] != rune('t') { |
| goto l542 |
| } |
| position++ |
| goto l541 |
| l542: |
| position, tokenIndex = position541, tokenIndex541 |
| if buffer[position] != rune('T') { |
| goto l531 |
| } |
| position++ |
| } |
| l541: |
| if buffer[position] != rune(':') { |
| goto l531 |
| } |
| position++ |
| if !_rules[ruleSymbolName]() { |
| goto l531 |
| } |
| } |
| l533: |
| add(ruleGOTSymbolOffset, position532) |
| } |
| return true |
| l531: |
| position, tokenIndex = position531, tokenIndex531 |
| return false |
| }, |
| /* 41 AVX512Token <- <(WS? '{' '%'? ([0-9] / [a-z])* '}')> */ |
| func() bool { |
| position543, tokenIndex543 := position, tokenIndex |
| { |
| position544 := position |
| { |
| position545, tokenIndex545 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l545 |
| } |
| goto l546 |
| l545: |
| position, tokenIndex = position545, tokenIndex545 |
| } |
| l546: |
| if buffer[position] != rune('{') { |
| goto l543 |
| } |
| position++ |
| { |
| position547, tokenIndex547 := position, tokenIndex |
| if buffer[position] != rune('%') { |
| goto l547 |
| } |
| position++ |
| goto l548 |
| l547: |
| position, tokenIndex = position547, tokenIndex547 |
| } |
| l548: |
| l549: |
| { |
| position550, tokenIndex550 := position, tokenIndex |
| { |
| position551, tokenIndex551 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l552 |
| } |
| position++ |
| goto l551 |
| l552: |
| position, tokenIndex = position551, tokenIndex551 |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l550 |
| } |
| position++ |
| } |
| l551: |
| goto l549 |
| l550: |
| position, tokenIndex = position550, tokenIndex550 |
| } |
| if buffer[position] != rune('}') { |
| goto l543 |
| } |
| position++ |
| add(ruleAVX512Token, position544) |
| } |
| return true |
| l543: |
| position, tokenIndex = position543, tokenIndex543 |
| return false |
| }, |
| /* 42 TOCRefHigh <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('h' / 'H') ('a' / 'A')))> */ |
| func() bool { |
| position553, tokenIndex553 := position, tokenIndex |
| { |
| position554 := position |
| if buffer[position] != rune('.') { |
| goto l553 |
| } |
| position++ |
| if buffer[position] != rune('T') { |
| goto l553 |
| } |
| position++ |
| if buffer[position] != rune('O') { |
| goto l553 |
| } |
| position++ |
| if buffer[position] != rune('C') { |
| goto l553 |
| } |
| position++ |
| if buffer[position] != rune('.') { |
| goto l553 |
| } |
| position++ |
| if buffer[position] != rune('-') { |
| goto l553 |
| } |
| position++ |
| { |
| position555, tokenIndex555 := position, tokenIndex |
| if buffer[position] != rune('0') { |
| goto l556 |
| } |
| position++ |
| if buffer[position] != rune('b') { |
| goto l556 |
| } |
| position++ |
| goto l555 |
| l556: |
| position, tokenIndex = position555, tokenIndex555 |
| if buffer[position] != rune('.') { |
| goto l553 |
| } |
| position++ |
| if buffer[position] != rune('L') { |
| goto l553 |
| } |
| position++ |
| { |
| position559, tokenIndex559 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l560 |
| } |
| position++ |
| goto l559 |
| l560: |
| position, tokenIndex = position559, tokenIndex559 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l561 |
| } |
| position++ |
| goto l559 |
| l561: |
| position, tokenIndex = position559, tokenIndex559 |
| if buffer[position] != rune('_') { |
| goto l562 |
| } |
| position++ |
| goto l559 |
| l562: |
| position, tokenIndex = position559, tokenIndex559 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l553 |
| } |
| position++ |
| } |
| l559: |
| l557: |
| { |
| position558, tokenIndex558 := position, tokenIndex |
| { |
| position563, tokenIndex563 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l564 |
| } |
| position++ |
| goto l563 |
| l564: |
| position, tokenIndex = position563, tokenIndex563 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l565 |
| } |
| position++ |
| goto l563 |
| l565: |
| position, tokenIndex = position563, tokenIndex563 |
| if buffer[position] != rune('_') { |
| goto l566 |
| } |
| position++ |
| goto l563 |
| l566: |
| position, tokenIndex = position563, tokenIndex563 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l558 |
| } |
| position++ |
| } |
| l563: |
| goto l557 |
| l558: |
| position, tokenIndex = position558, tokenIndex558 |
| } |
| } |
| l555: |
| if buffer[position] != rune('@') { |
| goto l553 |
| } |
| position++ |
| { |
| position567, tokenIndex567 := position, tokenIndex |
| if buffer[position] != rune('h') { |
| goto l568 |
| } |
| position++ |
| goto l567 |
| l568: |
| position, tokenIndex = position567, tokenIndex567 |
| if buffer[position] != rune('H') { |
| goto l553 |
| } |
| position++ |
| } |
| l567: |
| { |
| position569, tokenIndex569 := position, tokenIndex |
| if buffer[position] != rune('a') { |
| goto l570 |
| } |
| position++ |
| goto l569 |
| l570: |
| position, tokenIndex = position569, tokenIndex569 |
| if buffer[position] != rune('A') { |
| goto l553 |
| } |
| position++ |
| } |
| l569: |
| add(ruleTOCRefHigh, position554) |
| } |
| return true |
| l553: |
| position, tokenIndex = position553, tokenIndex553 |
| return false |
| }, |
| /* 43 TOCRefLow <- <('.' 'T' 'O' 'C' '.' '-' (('0' 'b') / ('.' 'L' ([a-z] / [A-Z] / '_' / [0-9])+)) ('@' ('l' / 'L')))> */ |
| func() bool { |
| position571, tokenIndex571 := position, tokenIndex |
| { |
| position572 := position |
| if buffer[position] != rune('.') { |
| goto l571 |
| } |
| position++ |
| if buffer[position] != rune('T') { |
| goto l571 |
| } |
| position++ |
| if buffer[position] != rune('O') { |
| goto l571 |
| } |
| position++ |
| if buffer[position] != rune('C') { |
| goto l571 |
| } |
| position++ |
| if buffer[position] != rune('.') { |
| goto l571 |
| } |
| position++ |
| if buffer[position] != rune('-') { |
| goto l571 |
| } |
| position++ |
| { |
| position573, tokenIndex573 := position, tokenIndex |
| if buffer[position] != rune('0') { |
| goto l574 |
| } |
| position++ |
| if buffer[position] != rune('b') { |
| goto l574 |
| } |
| position++ |
| goto l573 |
| l574: |
| position, tokenIndex = position573, tokenIndex573 |
| if buffer[position] != rune('.') { |
| goto l571 |
| } |
| position++ |
| if buffer[position] != rune('L') { |
| goto l571 |
| } |
| position++ |
| { |
| position577, tokenIndex577 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l578 |
| } |
| position++ |
| goto l577 |
| l578: |
| position, tokenIndex = position577, tokenIndex577 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l579 |
| } |
| position++ |
| goto l577 |
| l579: |
| position, tokenIndex = position577, tokenIndex577 |
| if buffer[position] != rune('_') { |
| goto l580 |
| } |
| position++ |
| goto l577 |
| l580: |
| position, tokenIndex = position577, tokenIndex577 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l571 |
| } |
| position++ |
| } |
| l577: |
| l575: |
| { |
| position576, tokenIndex576 := position, tokenIndex |
| { |
| position581, tokenIndex581 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l582 |
| } |
| position++ |
| goto l581 |
| l582: |
| position, tokenIndex = position581, tokenIndex581 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l583 |
| } |
| position++ |
| goto l581 |
| l583: |
| position, tokenIndex = position581, tokenIndex581 |
| if buffer[position] != rune('_') { |
| goto l584 |
| } |
| position++ |
| goto l581 |
| l584: |
| position, tokenIndex = position581, tokenIndex581 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l576 |
| } |
| position++ |
| } |
| l581: |
| goto l575 |
| l576: |
| position, tokenIndex = position576, tokenIndex576 |
| } |
| } |
| l573: |
| if buffer[position] != rune('@') { |
| goto l571 |
| } |
| position++ |
| { |
| position585, tokenIndex585 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l586 |
| } |
| position++ |
| goto l585 |
| l586: |
| position, tokenIndex = position585, tokenIndex585 |
| if buffer[position] != rune('L') { |
| goto l571 |
| } |
| position++ |
| } |
| l585: |
| add(ruleTOCRefLow, position572) |
| } |
| return true |
| l571: |
| position, tokenIndex = position571, tokenIndex571 |
| return false |
| }, |
| /* 44 IndirectionIndicator <- <'*'> */ |
| func() bool { |
| position587, tokenIndex587 := position, tokenIndex |
| { |
| position588 := position |
| if buffer[position] != rune('*') { |
| goto l587 |
| } |
| position++ |
| add(ruleIndirectionIndicator, position588) |
| } |
| return true |
| l587: |
| position, tokenIndex = position587, tokenIndex587 |
| return false |
| }, |
| /* 45 Float <- <([0-9]+ '.' [0-9]*)> */ |
| func() bool { |
| position589, tokenIndex589 := position, tokenIndex |
| { |
| position590 := position |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l589 |
| } |
| position++ |
| l591: |
| { |
| position592, tokenIndex592 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l592 |
| } |
| position++ |
| goto l591 |
| l592: |
| position, tokenIndex = position592, tokenIndex592 |
| } |
| if buffer[position] != rune('.') { |
| goto l589 |
| } |
| position++ |
| l593: |
| { |
| position594, tokenIndex594 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l594 |
| } |
| position++ |
| goto l593 |
| l594: |
| position, tokenIndex = position594, tokenIndex594 |
| } |
| add(ruleFloat, position590) |
| } |
| return true |
| l589: |
| position, tokenIndex = position589, tokenIndex589 |
| return false |
| }, |
| /* 46 RegisterOrConstant <- <((('%' ([a-z] / [A-Z]) ([a-z] / [A-Z] / ([0-9] / [0-9]))*) / ('$'? ((Offset Offset) / Offset)) / ('#' Float) / ('#' Offset ('*' [0-9]+ ('-' [0-9] [0-9]*)?)?) / ('#' '~'? '(' [0-9] WS? ('<' '<') WS? [0-9] ')') / ARMRegister) !('f' / 'b' / ':' / '(' / '+' / '-'))> */ |
| func() bool { |
| position595, tokenIndex595 := position, tokenIndex |
| { |
| position596 := position |
| { |
| position597, tokenIndex597 := position, tokenIndex |
| if buffer[position] != rune('%') { |
| goto l598 |
| } |
| position++ |
| { |
| position599, tokenIndex599 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l600 |
| } |
| position++ |
| goto l599 |
| l600: |
| position, tokenIndex = position599, tokenIndex599 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l598 |
| } |
| position++ |
| } |
| l599: |
| l601: |
| { |
| position602, tokenIndex602 := position, tokenIndex |
| { |
| position603, tokenIndex603 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l604 |
| } |
| position++ |
| goto l603 |
| l604: |
| position, tokenIndex = position603, tokenIndex603 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l605 |
| } |
| position++ |
| goto l603 |
| l605: |
| position, tokenIndex = position603, tokenIndex603 |
| { |
| position606, tokenIndex606 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l607 |
| } |
| position++ |
| goto l606 |
| l607: |
| position, tokenIndex = position606, tokenIndex606 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l602 |
| } |
| position++ |
| } |
| l606: |
| } |
| l603: |
| goto l601 |
| l602: |
| position, tokenIndex = position602, tokenIndex602 |
| } |
| goto l597 |
| l598: |
| position, tokenIndex = position597, tokenIndex597 |
| { |
| position609, tokenIndex609 := position, tokenIndex |
| if buffer[position] != rune('$') { |
| goto l609 |
| } |
| position++ |
| goto l610 |
| l609: |
| position, tokenIndex = position609, tokenIndex609 |
| } |
| l610: |
| { |
| position611, tokenIndex611 := position, tokenIndex |
| if !_rules[ruleOffset]() { |
| goto l612 |
| } |
| if !_rules[ruleOffset]() { |
| goto l612 |
| } |
| goto l611 |
| l612: |
| position, tokenIndex = position611, tokenIndex611 |
| if !_rules[ruleOffset]() { |
| goto l608 |
| } |
| } |
| l611: |
| goto l597 |
| l608: |
| position, tokenIndex = position597, tokenIndex597 |
| if buffer[position] != rune('#') { |
| goto l613 |
| } |
| position++ |
| if !_rules[ruleFloat]() { |
| goto l613 |
| } |
| goto l597 |
| l613: |
| position, tokenIndex = position597, tokenIndex597 |
| if buffer[position] != rune('#') { |
| goto l614 |
| } |
| position++ |
| if !_rules[ruleOffset]() { |
| goto l614 |
| } |
| { |
| position615, tokenIndex615 := position, tokenIndex |
| if buffer[position] != rune('*') { |
| goto l615 |
| } |
| position++ |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l615 |
| } |
| position++ |
| l617: |
| { |
| position618, tokenIndex618 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l618 |
| } |
| position++ |
| goto l617 |
| l618: |
| position, tokenIndex = position618, tokenIndex618 |
| } |
| { |
| position619, tokenIndex619 := position, tokenIndex |
| if buffer[position] != rune('-') { |
| goto l619 |
| } |
| position++ |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l619 |
| } |
| position++ |
| l621: |
| { |
| position622, tokenIndex622 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l622 |
| } |
| position++ |
| goto l621 |
| l622: |
| position, tokenIndex = position622, tokenIndex622 |
| } |
| goto l620 |
| l619: |
| position, tokenIndex = position619, tokenIndex619 |
| } |
| l620: |
| goto l616 |
| l615: |
| position, tokenIndex = position615, tokenIndex615 |
| } |
| l616: |
| goto l597 |
| l614: |
| position, tokenIndex = position597, tokenIndex597 |
| if buffer[position] != rune('#') { |
| goto l623 |
| } |
| position++ |
| { |
| position624, tokenIndex624 := position, tokenIndex |
| if buffer[position] != rune('~') { |
| goto l624 |
| } |
| position++ |
| goto l625 |
| l624: |
| position, tokenIndex = position624, tokenIndex624 |
| } |
| l625: |
| if buffer[position] != rune('(') { |
| goto l623 |
| } |
| position++ |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l623 |
| } |
| position++ |
| { |
| position626, tokenIndex626 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l626 |
| } |
| goto l627 |
| l626: |
| position, tokenIndex = position626, tokenIndex626 |
| } |
| l627: |
| if buffer[position] != rune('<') { |
| goto l623 |
| } |
| position++ |
| if buffer[position] != rune('<') { |
| goto l623 |
| } |
| position++ |
| { |
| position628, tokenIndex628 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l628 |
| } |
| goto l629 |
| l628: |
| position, tokenIndex = position628, tokenIndex628 |
| } |
| l629: |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l623 |
| } |
| position++ |
| if buffer[position] != rune(')') { |
| goto l623 |
| } |
| position++ |
| goto l597 |
| l623: |
| position, tokenIndex = position597, tokenIndex597 |
| if !_rules[ruleARMRegister]() { |
| goto l595 |
| } |
| } |
| l597: |
| { |
| position630, tokenIndex630 := position, tokenIndex |
| { |
| position631, tokenIndex631 := position, tokenIndex |
| if buffer[position] != rune('f') { |
| goto l632 |
| } |
| position++ |
| goto l631 |
| l632: |
| position, tokenIndex = position631, tokenIndex631 |
| if buffer[position] != rune('b') { |
| goto l633 |
| } |
| position++ |
| goto l631 |
| l633: |
| position, tokenIndex = position631, tokenIndex631 |
| if buffer[position] != rune(':') { |
| goto l634 |
| } |
| position++ |
| goto l631 |
| l634: |
| position, tokenIndex = position631, tokenIndex631 |
| if buffer[position] != rune('(') { |
| goto l635 |
| } |
| position++ |
| goto l631 |
| l635: |
| position, tokenIndex = position631, tokenIndex631 |
| if buffer[position] != rune('+') { |
| goto l636 |
| } |
| position++ |
| goto l631 |
| l636: |
| position, tokenIndex = position631, tokenIndex631 |
| if buffer[position] != rune('-') { |
| goto l630 |
| } |
| position++ |
| } |
| l631: |
| goto l595 |
| l630: |
| position, tokenIndex = position630, tokenIndex630 |
| } |
| add(ruleRegisterOrConstant, position596) |
| } |
| return true |
| l595: |
| position, tokenIndex = position595, tokenIndex595 |
| return false |
| }, |
| /* 47 ARMConstantTweak <- <((((('u' / 's') (('x' / 'X') ('t' / 'T')) ('x' / 'w' / 'h' / 'b')) / (('l' / 'L') ('s' / 'S') ('l' / 'L')) / (('l' / 'L') ('s' / 'S') ('r' / 'R')) / (('r' / 'R') ('o' / 'O') ('r' / 'R')) / (('a' / 'A') ('s' / 'S') ('r' / 'R')) / (('m' / 'M') ('s' / 'S') ('l' / 'L'))) (WS '#' Offset)?) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' ('v' / 'V') ('l' / 'L')) / (('m' / 'M') ('u' / 'U') ('l' / 'L') ' ' '#' [0-9] [0-9]?))> */ |
| func() bool { |
| position637, tokenIndex637 := position, tokenIndex |
| { |
| position638 := position |
| { |
| position639, tokenIndex639 := position, tokenIndex |
| { |
| position641, tokenIndex641 := position, tokenIndex |
| { |
| position643, tokenIndex643 := position, tokenIndex |
| if buffer[position] != rune('u') { |
| goto l644 |
| } |
| position++ |
| goto l643 |
| l644: |
| position, tokenIndex = position643, tokenIndex643 |
| if buffer[position] != rune('s') { |
| goto l642 |
| } |
| position++ |
| } |
| l643: |
| { |
| position645, tokenIndex645 := position, tokenIndex |
| if buffer[position] != rune('x') { |
| goto l646 |
| } |
| position++ |
| goto l645 |
| l646: |
| position, tokenIndex = position645, tokenIndex645 |
| if buffer[position] != rune('X') { |
| goto l642 |
| } |
| position++ |
| } |
| l645: |
| { |
| position647, tokenIndex647 := position, tokenIndex |
| if buffer[position] != rune('t') { |
| goto l648 |
| } |
| position++ |
| goto l647 |
| l648: |
| position, tokenIndex = position647, tokenIndex647 |
| if buffer[position] != rune('T') { |
| goto l642 |
| } |
| position++ |
| } |
| l647: |
| { |
| position649, tokenIndex649 := position, tokenIndex |
| if buffer[position] != rune('x') { |
| goto l650 |
| } |
| position++ |
| goto l649 |
| l650: |
| position, tokenIndex = position649, tokenIndex649 |
| if buffer[position] != rune('w') { |
| goto l651 |
| } |
| position++ |
| goto l649 |
| l651: |
| position, tokenIndex = position649, tokenIndex649 |
| if buffer[position] != rune('h') { |
| goto l652 |
| } |
| position++ |
| goto l649 |
| l652: |
| position, tokenIndex = position649, tokenIndex649 |
| if buffer[position] != rune('b') { |
| goto l642 |
| } |
| position++ |
| } |
| l649: |
| goto l641 |
| l642: |
| position, tokenIndex = position641, tokenIndex641 |
| { |
| position654, tokenIndex654 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l655 |
| } |
| position++ |
| goto l654 |
| l655: |
| position, tokenIndex = position654, tokenIndex654 |
| if buffer[position] != rune('L') { |
| goto l653 |
| } |
| position++ |
| } |
| l654: |
| { |
| position656, tokenIndex656 := position, tokenIndex |
| if buffer[position] != rune('s') { |
| goto l657 |
| } |
| position++ |
| goto l656 |
| l657: |
| position, tokenIndex = position656, tokenIndex656 |
| if buffer[position] != rune('S') { |
| goto l653 |
| } |
| position++ |
| } |
| l656: |
| { |
| position658, tokenIndex658 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l659 |
| } |
| position++ |
| goto l658 |
| l659: |
| position, tokenIndex = position658, tokenIndex658 |
| if buffer[position] != rune('L') { |
| goto l653 |
| } |
| position++ |
| } |
| l658: |
| goto l641 |
| l653: |
| position, tokenIndex = position641, tokenIndex641 |
| { |
| position661, tokenIndex661 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l662 |
| } |
| position++ |
| goto l661 |
| l662: |
| position, tokenIndex = position661, tokenIndex661 |
| if buffer[position] != rune('L') { |
| goto l660 |
| } |
| position++ |
| } |
| l661: |
| { |
| position663, tokenIndex663 := position, tokenIndex |
| if buffer[position] != rune('s') { |
| goto l664 |
| } |
| position++ |
| goto l663 |
| l664: |
| position, tokenIndex = position663, tokenIndex663 |
| if buffer[position] != rune('S') { |
| goto l660 |
| } |
| position++ |
| } |
| l663: |
| { |
| position665, tokenIndex665 := position, tokenIndex |
| if buffer[position] != rune('r') { |
| goto l666 |
| } |
| position++ |
| goto l665 |
| l666: |
| position, tokenIndex = position665, tokenIndex665 |
| if buffer[position] != rune('R') { |
| goto l660 |
| } |
| position++ |
| } |
| l665: |
| goto l641 |
| l660: |
| position, tokenIndex = position641, tokenIndex641 |
| { |
| position668, tokenIndex668 := position, tokenIndex |
| if buffer[position] != rune('r') { |
| goto l669 |
| } |
| position++ |
| goto l668 |
| l669: |
| position, tokenIndex = position668, tokenIndex668 |
| if buffer[position] != rune('R') { |
| goto l667 |
| } |
| position++ |
| } |
| l668: |
| { |
| position670, tokenIndex670 := position, tokenIndex |
| if buffer[position] != rune('o') { |
| goto l671 |
| } |
| position++ |
| goto l670 |
| l671: |
| position, tokenIndex = position670, tokenIndex670 |
| if buffer[position] != rune('O') { |
| goto l667 |
| } |
| position++ |
| } |
| l670: |
| { |
| position672, tokenIndex672 := position, tokenIndex |
| if buffer[position] != rune('r') { |
| goto l673 |
| } |
| position++ |
| goto l672 |
| l673: |
| position, tokenIndex = position672, tokenIndex672 |
| if buffer[position] != rune('R') { |
| goto l667 |
| } |
| position++ |
| } |
| l672: |
| goto l641 |
| l667: |
| position, tokenIndex = position641, tokenIndex641 |
| { |
| position675, tokenIndex675 := position, tokenIndex |
| if buffer[position] != rune('a') { |
| goto l676 |
| } |
| position++ |
| goto l675 |
| l676: |
| position, tokenIndex = position675, tokenIndex675 |
| if buffer[position] != rune('A') { |
| goto l674 |
| } |
| position++ |
| } |
| l675: |
| { |
| position677, tokenIndex677 := position, tokenIndex |
| if buffer[position] != rune('s') { |
| goto l678 |
| } |
| position++ |
| goto l677 |
| l678: |
| position, tokenIndex = position677, tokenIndex677 |
| if buffer[position] != rune('S') { |
| goto l674 |
| } |
| position++ |
| } |
| l677: |
| { |
| position679, tokenIndex679 := position, tokenIndex |
| if buffer[position] != rune('r') { |
| goto l680 |
| } |
| position++ |
| goto l679 |
| l680: |
| position, tokenIndex = position679, tokenIndex679 |
| if buffer[position] != rune('R') { |
| goto l674 |
| } |
| position++ |
| } |
| l679: |
| goto l641 |
| l674: |
| position, tokenIndex = position641, tokenIndex641 |
| { |
| position681, tokenIndex681 := position, tokenIndex |
| if buffer[position] != rune('m') { |
| goto l682 |
| } |
| position++ |
| goto l681 |
| l682: |
| position, tokenIndex = position681, tokenIndex681 |
| if buffer[position] != rune('M') { |
| goto l640 |
| } |
| position++ |
| } |
| l681: |
| { |
| position683, tokenIndex683 := position, tokenIndex |
| if buffer[position] != rune('s') { |
| goto l684 |
| } |
| position++ |
| goto l683 |
| l684: |
| position, tokenIndex = position683, tokenIndex683 |
| if buffer[position] != rune('S') { |
| goto l640 |
| } |
| position++ |
| } |
| l683: |
| { |
| position685, tokenIndex685 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l686 |
| } |
| position++ |
| goto l685 |
| l686: |
| position, tokenIndex = position685, tokenIndex685 |
| if buffer[position] != rune('L') { |
| goto l640 |
| } |
| position++ |
| } |
| l685: |
| } |
| l641: |
| { |
| position687, tokenIndex687 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l687 |
| } |
| if buffer[position] != rune('#') { |
| goto l687 |
| } |
| position++ |
| if !_rules[ruleOffset]() { |
| goto l687 |
| } |
| goto l688 |
| l687: |
| position, tokenIndex = position687, tokenIndex687 |
| } |
| l688: |
| goto l639 |
| l640: |
| position, tokenIndex = position639, tokenIndex639 |
| { |
| position690, tokenIndex690 := position, tokenIndex |
| if buffer[position] != rune('m') { |
| goto l691 |
| } |
| position++ |
| goto l690 |
| l691: |
| position, tokenIndex = position690, tokenIndex690 |
| if buffer[position] != rune('M') { |
| goto l689 |
| } |
| position++ |
| } |
| l690: |
| { |
| position692, tokenIndex692 := position, tokenIndex |
| if buffer[position] != rune('u') { |
| goto l693 |
| } |
| position++ |
| goto l692 |
| l693: |
| position, tokenIndex = position692, tokenIndex692 |
| if buffer[position] != rune('U') { |
| goto l689 |
| } |
| position++ |
| } |
| l692: |
| { |
| position694, tokenIndex694 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l695 |
| } |
| position++ |
| goto l694 |
| l695: |
| position, tokenIndex = position694, tokenIndex694 |
| if buffer[position] != rune('L') { |
| goto l689 |
| } |
| position++ |
| } |
| l694: |
| if buffer[position] != rune(' ') { |
| goto l689 |
| } |
| position++ |
| { |
| position696, tokenIndex696 := position, tokenIndex |
| if buffer[position] != rune('v') { |
| goto l697 |
| } |
| position++ |
| goto l696 |
| l697: |
| position, tokenIndex = position696, tokenIndex696 |
| if buffer[position] != rune('V') { |
| goto l689 |
| } |
| position++ |
| } |
| l696: |
| { |
| position698, tokenIndex698 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l699 |
| } |
| position++ |
| goto l698 |
| l699: |
| position, tokenIndex = position698, tokenIndex698 |
| if buffer[position] != rune('L') { |
| goto l689 |
| } |
| position++ |
| } |
| l698: |
| goto l639 |
| l689: |
| position, tokenIndex = position639, tokenIndex639 |
| { |
| position700, tokenIndex700 := position, tokenIndex |
| if buffer[position] != rune('m') { |
| goto l701 |
| } |
| position++ |
| goto l700 |
| l701: |
| position, tokenIndex = position700, tokenIndex700 |
| if buffer[position] != rune('M') { |
| goto l637 |
| } |
| position++ |
| } |
| l700: |
| { |
| position702, tokenIndex702 := position, tokenIndex |
| if buffer[position] != rune('u') { |
| goto l703 |
| } |
| position++ |
| goto l702 |
| l703: |
| position, tokenIndex = position702, tokenIndex702 |
| if buffer[position] != rune('U') { |
| goto l637 |
| } |
| position++ |
| } |
| l702: |
| { |
| position704, tokenIndex704 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l705 |
| } |
| position++ |
| goto l704 |
| l705: |
| position, tokenIndex = position704, tokenIndex704 |
| if buffer[position] != rune('L') { |
| goto l637 |
| } |
| position++ |
| } |
| l704: |
| if buffer[position] != rune(' ') { |
| goto l637 |
| } |
| position++ |
| if buffer[position] != rune('#') { |
| goto l637 |
| } |
| position++ |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l637 |
| } |
| position++ |
| { |
| position706, tokenIndex706 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l706 |
| } |
| position++ |
| goto l707 |
| l706: |
| position, tokenIndex = position706, tokenIndex706 |
| } |
| l707: |
| } |
| l639: |
| add(ruleARMConstantTweak, position638) |
| } |
| return true |
| l637: |
| position, tokenIndex = position637, tokenIndex637 |
| return false |
| }, |
| /* 48 ARMRegister <- <((('s' / 'S') ('p' / 'P')) / (('x' / 'w' / 'd' / 'q' / 's' / 'h' / 'b') [0-9] [0-9]?) / (('x' / 'X') ('z' / 'Z') ('r' / 'R')) / (('w' / 'W') ('z' / 'Z') ('r' / 'R')) / (('n' / 'N') ('z' / 'Z') ('c' / 'C') ('v' / 'V')) / SVE2PredicateRegister / ARMVectorRegister / SVE2SpecialValue / ('{' WS? ARMVectorRegister (',' WS? ARMVectorRegister)* WS? '}' ('[' [0-9] [0-9]? ']')?))> */ |
| func() bool { |
| position708, tokenIndex708 := position, tokenIndex |
| { |
| position709 := position |
| { |
| position710, tokenIndex710 := position, tokenIndex |
| { |
| position712, tokenIndex712 := position, tokenIndex |
| if buffer[position] != rune('s') { |
| goto l713 |
| } |
| position++ |
| goto l712 |
| l713: |
| position, tokenIndex = position712, tokenIndex712 |
| if buffer[position] != rune('S') { |
| goto l711 |
| } |
| position++ |
| } |
| l712: |
| { |
| position714, tokenIndex714 := position, tokenIndex |
| if buffer[position] != rune('p') { |
| goto l715 |
| } |
| position++ |
| goto l714 |
| l715: |
| position, tokenIndex = position714, tokenIndex714 |
| if buffer[position] != rune('P') { |
| goto l711 |
| } |
| position++ |
| } |
| l714: |
| goto l710 |
| l711: |
| position, tokenIndex = position710, tokenIndex710 |
| { |
| position717, tokenIndex717 := position, tokenIndex |
| if buffer[position] != rune('x') { |
| goto l718 |
| } |
| position++ |
| goto l717 |
| l718: |
| position, tokenIndex = position717, tokenIndex717 |
| if buffer[position] != rune('w') { |
| goto l719 |
| } |
| position++ |
| goto l717 |
| l719: |
| position, tokenIndex = position717, tokenIndex717 |
| if buffer[position] != rune('d') { |
| goto l720 |
| } |
| position++ |
| goto l717 |
| l720: |
| position, tokenIndex = position717, tokenIndex717 |
| if buffer[position] != rune('q') { |
| goto l721 |
| } |
| position++ |
| goto l717 |
| l721: |
| position, tokenIndex = position717, tokenIndex717 |
| if buffer[position] != rune('s') { |
| goto l722 |
| } |
| position++ |
| goto l717 |
| l722: |
| position, tokenIndex = position717, tokenIndex717 |
| if buffer[position] != rune('h') { |
| goto l723 |
| } |
| position++ |
| goto l717 |
| l723: |
| position, tokenIndex = position717, tokenIndex717 |
| if buffer[position] != rune('b') { |
| goto l716 |
| } |
| position++ |
| } |
| l717: |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l716 |
| } |
| position++ |
| { |
| position724, tokenIndex724 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l724 |
| } |
| position++ |
| goto l725 |
| l724: |
| position, tokenIndex = position724, tokenIndex724 |
| } |
| l725: |
| goto l710 |
| l716: |
| position, tokenIndex = position710, tokenIndex710 |
| { |
| position727, tokenIndex727 := position, tokenIndex |
| if buffer[position] != rune('x') { |
| goto l728 |
| } |
| position++ |
| goto l727 |
| l728: |
| position, tokenIndex = position727, tokenIndex727 |
| if buffer[position] != rune('X') { |
| goto l726 |
| } |
| position++ |
| } |
| l727: |
| { |
| position729, tokenIndex729 := position, tokenIndex |
| if buffer[position] != rune('z') { |
| goto l730 |
| } |
| position++ |
| goto l729 |
| l730: |
| position, tokenIndex = position729, tokenIndex729 |
| if buffer[position] != rune('Z') { |
| goto l726 |
| } |
| position++ |
| } |
| l729: |
| { |
| position731, tokenIndex731 := position, tokenIndex |
| if buffer[position] != rune('r') { |
| goto l732 |
| } |
| position++ |
| goto l731 |
| l732: |
| position, tokenIndex = position731, tokenIndex731 |
| if buffer[position] != rune('R') { |
| goto l726 |
| } |
| position++ |
| } |
| l731: |
| goto l710 |
| l726: |
| position, tokenIndex = position710, tokenIndex710 |
| { |
| position734, tokenIndex734 := position, tokenIndex |
| if buffer[position] != rune('w') { |
| goto l735 |
| } |
| position++ |
| goto l734 |
| l735: |
| position, tokenIndex = position734, tokenIndex734 |
| if buffer[position] != rune('W') { |
| goto l733 |
| } |
| position++ |
| } |
| l734: |
| { |
| position736, tokenIndex736 := position, tokenIndex |
| if buffer[position] != rune('z') { |
| goto l737 |
| } |
| position++ |
| goto l736 |
| l737: |
| position, tokenIndex = position736, tokenIndex736 |
| if buffer[position] != rune('Z') { |
| goto l733 |
| } |
| position++ |
| } |
| l736: |
| { |
| position738, tokenIndex738 := position, tokenIndex |
| if buffer[position] != rune('r') { |
| goto l739 |
| } |
| position++ |
| goto l738 |
| l739: |
| position, tokenIndex = position738, tokenIndex738 |
| if buffer[position] != rune('R') { |
| goto l733 |
| } |
| position++ |
| } |
| l738: |
| goto l710 |
| l733: |
| position, tokenIndex = position710, tokenIndex710 |
| { |
| position741, tokenIndex741 := position, tokenIndex |
| if buffer[position] != rune('n') { |
| goto l742 |
| } |
| position++ |
| goto l741 |
| l742: |
| position, tokenIndex = position741, tokenIndex741 |
| if buffer[position] != rune('N') { |
| goto l740 |
| } |
| position++ |
| } |
| l741: |
| { |
| position743, tokenIndex743 := position, tokenIndex |
| if buffer[position] != rune('z') { |
| goto l744 |
| } |
| position++ |
| goto l743 |
| l744: |
| position, tokenIndex = position743, tokenIndex743 |
| if buffer[position] != rune('Z') { |
| goto l740 |
| } |
| position++ |
| } |
| l743: |
| { |
| position745, tokenIndex745 := position, tokenIndex |
| if buffer[position] != rune('c') { |
| goto l746 |
| } |
| position++ |
| goto l745 |
| l746: |
| position, tokenIndex = position745, tokenIndex745 |
| if buffer[position] != rune('C') { |
| goto l740 |
| } |
| position++ |
| } |
| l745: |
| { |
| position747, tokenIndex747 := position, tokenIndex |
| if buffer[position] != rune('v') { |
| goto l748 |
| } |
| position++ |
| goto l747 |
| l748: |
| position, tokenIndex = position747, tokenIndex747 |
| if buffer[position] != rune('V') { |
| goto l740 |
| } |
| position++ |
| } |
| l747: |
| goto l710 |
| l740: |
| position, tokenIndex = position710, tokenIndex710 |
| if !_rules[ruleSVE2PredicateRegister]() { |
| goto l749 |
| } |
| goto l710 |
| l749: |
| position, tokenIndex = position710, tokenIndex710 |
| if !_rules[ruleARMVectorRegister]() { |
| goto l750 |
| } |
| goto l710 |
| l750: |
| position, tokenIndex = position710, tokenIndex710 |
| if !_rules[ruleSVE2SpecialValue]() { |
| goto l751 |
| } |
| goto l710 |
| l751: |
| position, tokenIndex = position710, tokenIndex710 |
| if buffer[position] != rune('{') { |
| goto l708 |
| } |
| position++ |
| { |
| position752, tokenIndex752 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l752 |
| } |
| goto l753 |
| l752: |
| position, tokenIndex = position752, tokenIndex752 |
| } |
| l753: |
| if !_rules[ruleARMVectorRegister]() { |
| goto l708 |
| } |
| l754: |
| { |
| position755, tokenIndex755 := position, tokenIndex |
| if buffer[position] != rune(',') { |
| goto l755 |
| } |
| position++ |
| { |
| position756, tokenIndex756 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l756 |
| } |
| goto l757 |
| l756: |
| position, tokenIndex = position756, tokenIndex756 |
| } |
| l757: |
| if !_rules[ruleARMVectorRegister]() { |
| goto l755 |
| } |
| goto l754 |
| l755: |
| position, tokenIndex = position755, tokenIndex755 |
| } |
| { |
| position758, tokenIndex758 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l758 |
| } |
| goto l759 |
| l758: |
| position, tokenIndex = position758, tokenIndex758 |
| } |
| l759: |
| if buffer[position] != rune('}') { |
| goto l708 |
| } |
| position++ |
| { |
| position760, tokenIndex760 := position, tokenIndex |
| if buffer[position] != rune('[') { |
| goto l760 |
| } |
| position++ |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l760 |
| } |
| position++ |
| { |
| position762, tokenIndex762 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l762 |
| } |
| position++ |
| goto l763 |
| l762: |
| position, tokenIndex = position762, tokenIndex762 |
| } |
| l763: |
| if buffer[position] != rune(']') { |
| goto l760 |
| } |
| position++ |
| goto l761 |
| l760: |
| position, tokenIndex = position760, tokenIndex760 |
| } |
| l761: |
| } |
| l710: |
| add(ruleARMRegister, position709) |
| } |
| return true |
| l708: |
| position, tokenIndex = position708, tokenIndex708 |
| return false |
| }, |
| /* 49 ARMVectorRegister <- <(('p' / 'v' / 'z') [0-9] [0-9]? !([0-9] / [0-9] / ([a-z] / [A-Z]) / '_') ('.' [0-9]* ('b' / 's' / 'd' / 'h' / 'q') ('[' [0-9] [0-9]? ']')?)?)> */ |
| func() bool { |
| position764, tokenIndex764 := position, tokenIndex |
| { |
| position765 := position |
| { |
| position766, tokenIndex766 := position, tokenIndex |
| if buffer[position] != rune('p') { |
| goto l767 |
| } |
| position++ |
| goto l766 |
| l767: |
| position, tokenIndex = position766, tokenIndex766 |
| if buffer[position] != rune('v') { |
| goto l768 |
| } |
| position++ |
| goto l766 |
| l768: |
| position, tokenIndex = position766, tokenIndex766 |
| if buffer[position] != rune('z') { |
| goto l764 |
| } |
| position++ |
| } |
| l766: |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l764 |
| } |
| position++ |
| { |
| position769, tokenIndex769 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l769 |
| } |
| position++ |
| goto l770 |
| l769: |
| position, tokenIndex = position769, tokenIndex769 |
| } |
| l770: |
| { |
| position771, tokenIndex771 := position, tokenIndex |
| { |
| position772, tokenIndex772 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l773 |
| } |
| position++ |
| goto l772 |
| l773: |
| position, tokenIndex = position772, tokenIndex772 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l774 |
| } |
| position++ |
| goto l772 |
| l774: |
| position, tokenIndex = position772, tokenIndex772 |
| { |
| position776, tokenIndex776 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l777 |
| } |
| position++ |
| goto l776 |
| l777: |
| position, tokenIndex = position776, tokenIndex776 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l775 |
| } |
| position++ |
| } |
| l776: |
| goto l772 |
| l775: |
| position, tokenIndex = position772, tokenIndex772 |
| if buffer[position] != rune('_') { |
| goto l771 |
| } |
| position++ |
| } |
| l772: |
| goto l764 |
| l771: |
| position, tokenIndex = position771, tokenIndex771 |
| } |
| { |
| position778, tokenIndex778 := position, tokenIndex |
| if buffer[position] != rune('.') { |
| goto l778 |
| } |
| position++ |
| l780: |
| { |
| position781, tokenIndex781 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l781 |
| } |
| position++ |
| goto l780 |
| l781: |
| position, tokenIndex = position781, tokenIndex781 |
| } |
| { |
| position782, tokenIndex782 := position, tokenIndex |
| if buffer[position] != rune('b') { |
| goto l783 |
| } |
| position++ |
| goto l782 |
| l783: |
| position, tokenIndex = position782, tokenIndex782 |
| if buffer[position] != rune('s') { |
| goto l784 |
| } |
| position++ |
| goto l782 |
| l784: |
| position, tokenIndex = position782, tokenIndex782 |
| if buffer[position] != rune('d') { |
| goto l785 |
| } |
| position++ |
| goto l782 |
| l785: |
| position, tokenIndex = position782, tokenIndex782 |
| if buffer[position] != rune('h') { |
| goto l786 |
| } |
| position++ |
| goto l782 |
| l786: |
| position, tokenIndex = position782, tokenIndex782 |
| if buffer[position] != rune('q') { |
| goto l778 |
| } |
| position++ |
| } |
| l782: |
| { |
| position787, tokenIndex787 := position, tokenIndex |
| if buffer[position] != rune('[') { |
| goto l787 |
| } |
| position++ |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l787 |
| } |
| position++ |
| { |
| position789, tokenIndex789 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l789 |
| } |
| position++ |
| goto l790 |
| l789: |
| position, tokenIndex = position789, tokenIndex789 |
| } |
| l790: |
| if buffer[position] != rune(']') { |
| goto l787 |
| } |
| position++ |
| goto l788 |
| l787: |
| position, tokenIndex = position787, tokenIndex787 |
| } |
| l788: |
| goto l779 |
| l778: |
| position, tokenIndex = position778, tokenIndex778 |
| } |
| l779: |
| add(ruleARMVectorRegister, position765) |
| } |
| return true |
| l764: |
| position, tokenIndex = position764, tokenIndex764 |
| return false |
| }, |
| /* 50 SVE2PredicateRegister <- <(('p' / 'P') [0-9] [0-9]? '/' ('m' / 'M' / ('z' / 'Z')))> */ |
| func() bool { |
| position791, tokenIndex791 := position, tokenIndex |
| { |
| position792 := position |
| { |
| position793, tokenIndex793 := position, tokenIndex |
| if buffer[position] != rune('p') { |
| goto l794 |
| } |
| position++ |
| goto l793 |
| l794: |
| position, tokenIndex = position793, tokenIndex793 |
| if buffer[position] != rune('P') { |
| goto l791 |
| } |
| position++ |
| } |
| l793: |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l791 |
| } |
| position++ |
| { |
| position795, tokenIndex795 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l795 |
| } |
| position++ |
| goto l796 |
| l795: |
| position, tokenIndex = position795, tokenIndex795 |
| } |
| l796: |
| if buffer[position] != rune('/') { |
| goto l791 |
| } |
| position++ |
| { |
| position797, tokenIndex797 := position, tokenIndex |
| if buffer[position] != rune('m') { |
| goto l798 |
| } |
| position++ |
| goto l797 |
| l798: |
| position, tokenIndex = position797, tokenIndex797 |
| if buffer[position] != rune('M') { |
| goto l799 |
| } |
| position++ |
| goto l797 |
| l799: |
| position, tokenIndex = position797, tokenIndex797 |
| { |
| position800, tokenIndex800 := position, tokenIndex |
| if buffer[position] != rune('z') { |
| goto l801 |
| } |
| position++ |
| goto l800 |
| l801: |
| position, tokenIndex = position800, tokenIndex800 |
| if buffer[position] != rune('Z') { |
| goto l791 |
| } |
| position++ |
| } |
| l800: |
| } |
| l797: |
| add(ruleSVE2PredicateRegister, position792) |
| } |
| return true |
| l791: |
| position, tokenIndex = position791, tokenIndex791 |
| return false |
| }, |
| /* 51 SVE2SpecialValue <- <(((('p' / 'P') ('o' / 'O') ('w' / 'W') '2') / (('v' / 'V') ('l' / 'L') ('1' / '2' / '3' / '4' / '5' / '6' / '7' / '8') ![0-9]) / (('v' / 'V') ('l' / 'L') '1' '6') / (('v' / 'V') ('l' / 'L') '3' '2') / (('v' / 'V') ('l' / 'L') '6' '4') / (('v' / 'V') ('l' / 'L') '1' '2' '8') / (('v' / 'V') ('l' / 'L') '2' '5' '6') / (('m' / 'M') ('u' / 'U') ('l' / 'L') '3') / (('m' / 'M') ('u' / 'U') ('l' / 'L') '4') / (('a' / 'A') ('l' / 'L') ('l' / 'L'))) !([0-9] / [0-9] / ([a-z] / [A-Z]) / '_'))> */ |
| func() bool { |
| position802, tokenIndex802 := position, tokenIndex |
| { |
| position803 := position |
| { |
| position804, tokenIndex804 := position, tokenIndex |
| { |
| position806, tokenIndex806 := position, tokenIndex |
| if buffer[position] != rune('p') { |
| goto l807 |
| } |
| position++ |
| goto l806 |
| l807: |
| position, tokenIndex = position806, tokenIndex806 |
| if buffer[position] != rune('P') { |
| goto l805 |
| } |
| position++ |
| } |
| l806: |
| { |
| position808, tokenIndex808 := position, tokenIndex |
| if buffer[position] != rune('o') { |
| goto l809 |
| } |
| position++ |
| goto l808 |
| l809: |
| position, tokenIndex = position808, tokenIndex808 |
| if buffer[position] != rune('O') { |
| goto l805 |
| } |
| position++ |
| } |
| l808: |
| { |
| position810, tokenIndex810 := position, tokenIndex |
| if buffer[position] != rune('w') { |
| goto l811 |
| } |
| position++ |
| goto l810 |
| l811: |
| position, tokenIndex = position810, tokenIndex810 |
| if buffer[position] != rune('W') { |
| goto l805 |
| } |
| position++ |
| } |
| l810: |
| if buffer[position] != rune('2') { |
| goto l805 |
| } |
| position++ |
| goto l804 |
| l805: |
| position, tokenIndex = position804, tokenIndex804 |
| { |
| position813, tokenIndex813 := position, tokenIndex |
| if buffer[position] != rune('v') { |
| goto l814 |
| } |
| position++ |
| goto l813 |
| l814: |
| position, tokenIndex = position813, tokenIndex813 |
| if buffer[position] != rune('V') { |
| goto l812 |
| } |
| position++ |
| } |
| l813: |
| { |
| position815, tokenIndex815 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l816 |
| } |
| position++ |
| goto l815 |
| l816: |
| position, tokenIndex = position815, tokenIndex815 |
| if buffer[position] != rune('L') { |
| goto l812 |
| } |
| position++ |
| } |
| l815: |
| { |
| position817, tokenIndex817 := position, tokenIndex |
| if buffer[position] != rune('1') { |
| goto l818 |
| } |
| position++ |
| goto l817 |
| l818: |
| position, tokenIndex = position817, tokenIndex817 |
| if buffer[position] != rune('2') { |
| goto l819 |
| } |
| position++ |
| goto l817 |
| l819: |
| position, tokenIndex = position817, tokenIndex817 |
| if buffer[position] != rune('3') { |
| goto l820 |
| } |
| position++ |
| goto l817 |
| l820: |
| position, tokenIndex = position817, tokenIndex817 |
| if buffer[position] != rune('4') { |
| goto l821 |
| } |
| position++ |
| goto l817 |
| l821: |
| position, tokenIndex = position817, tokenIndex817 |
| if buffer[position] != rune('5') { |
| goto l822 |
| } |
| position++ |
| goto l817 |
| l822: |
| position, tokenIndex = position817, tokenIndex817 |
| if buffer[position] != rune('6') { |
| goto l823 |
| } |
| position++ |
| goto l817 |
| l823: |
| position, tokenIndex = position817, tokenIndex817 |
| if buffer[position] != rune('7') { |
| goto l824 |
| } |
| position++ |
| goto l817 |
| l824: |
| position, tokenIndex = position817, tokenIndex817 |
| if buffer[position] != rune('8') { |
| goto l812 |
| } |
| position++ |
| } |
| l817: |
| { |
| position825, tokenIndex825 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l825 |
| } |
| position++ |
| goto l812 |
| l825: |
| position, tokenIndex = position825, tokenIndex825 |
| } |
| goto l804 |
| l812: |
| position, tokenIndex = position804, tokenIndex804 |
| { |
| position827, tokenIndex827 := position, tokenIndex |
| if buffer[position] != rune('v') { |
| goto l828 |
| } |
| position++ |
| goto l827 |
| l828: |
| position, tokenIndex = position827, tokenIndex827 |
| if buffer[position] != rune('V') { |
| goto l826 |
| } |
| position++ |
| } |
| l827: |
| { |
| position829, tokenIndex829 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l830 |
| } |
| position++ |
| goto l829 |
| l830: |
| position, tokenIndex = position829, tokenIndex829 |
| if buffer[position] != rune('L') { |
| goto l826 |
| } |
| position++ |
| } |
| l829: |
| if buffer[position] != rune('1') { |
| goto l826 |
| } |
| position++ |
| if buffer[position] != rune('6') { |
| goto l826 |
| } |
| position++ |
| goto l804 |
| l826: |
| position, tokenIndex = position804, tokenIndex804 |
| { |
| position832, tokenIndex832 := position, tokenIndex |
| if buffer[position] != rune('v') { |
| goto l833 |
| } |
| position++ |
| goto l832 |
| l833: |
| position, tokenIndex = position832, tokenIndex832 |
| if buffer[position] != rune('V') { |
| goto l831 |
| } |
| position++ |
| } |
| l832: |
| { |
| position834, tokenIndex834 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l835 |
| } |
| position++ |
| goto l834 |
| l835: |
| position, tokenIndex = position834, tokenIndex834 |
| if buffer[position] != rune('L') { |
| goto l831 |
| } |
| position++ |
| } |
| l834: |
| if buffer[position] != rune('3') { |
| goto l831 |
| } |
| position++ |
| if buffer[position] != rune('2') { |
| goto l831 |
| } |
| position++ |
| goto l804 |
| l831: |
| position, tokenIndex = position804, tokenIndex804 |
| { |
| position837, tokenIndex837 := position, tokenIndex |
| if buffer[position] != rune('v') { |
| goto l838 |
| } |
| position++ |
| goto l837 |
| l838: |
| position, tokenIndex = position837, tokenIndex837 |
| if buffer[position] != rune('V') { |
| goto l836 |
| } |
| position++ |
| } |
| l837: |
| { |
| position839, tokenIndex839 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l840 |
| } |
| position++ |
| goto l839 |
| l840: |
| position, tokenIndex = position839, tokenIndex839 |
| if buffer[position] != rune('L') { |
| goto l836 |
| } |
| position++ |
| } |
| l839: |
| if buffer[position] != rune('6') { |
| goto l836 |
| } |
| position++ |
| if buffer[position] != rune('4') { |
| goto l836 |
| } |
| position++ |
| goto l804 |
| l836: |
| position, tokenIndex = position804, tokenIndex804 |
| { |
| position842, tokenIndex842 := position, tokenIndex |
| if buffer[position] != rune('v') { |
| goto l843 |
| } |
| position++ |
| goto l842 |
| l843: |
| position, tokenIndex = position842, tokenIndex842 |
| if buffer[position] != rune('V') { |
| goto l841 |
| } |
| position++ |
| } |
| l842: |
| { |
| position844, tokenIndex844 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l845 |
| } |
| position++ |
| goto l844 |
| l845: |
| position, tokenIndex = position844, tokenIndex844 |
| if buffer[position] != rune('L') { |
| goto l841 |
| } |
| position++ |
| } |
| l844: |
| if buffer[position] != rune('1') { |
| goto l841 |
| } |
| position++ |
| if buffer[position] != rune('2') { |
| goto l841 |
| } |
| position++ |
| if buffer[position] != rune('8') { |
| goto l841 |
| } |
| position++ |
| goto l804 |
| l841: |
| position, tokenIndex = position804, tokenIndex804 |
| { |
| position847, tokenIndex847 := position, tokenIndex |
| if buffer[position] != rune('v') { |
| goto l848 |
| } |
| position++ |
| goto l847 |
| l848: |
| position, tokenIndex = position847, tokenIndex847 |
| if buffer[position] != rune('V') { |
| goto l846 |
| } |
| position++ |
| } |
| l847: |
| { |
| position849, tokenIndex849 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l850 |
| } |
| position++ |
| goto l849 |
| l850: |
| position, tokenIndex = position849, tokenIndex849 |
| if buffer[position] != rune('L') { |
| goto l846 |
| } |
| position++ |
| } |
| l849: |
| if buffer[position] != rune('2') { |
| goto l846 |
| } |
| position++ |
| if buffer[position] != rune('5') { |
| goto l846 |
| } |
| position++ |
| if buffer[position] != rune('6') { |
| goto l846 |
| } |
| position++ |
| goto l804 |
| l846: |
| position, tokenIndex = position804, tokenIndex804 |
| { |
| position852, tokenIndex852 := position, tokenIndex |
| if buffer[position] != rune('m') { |
| goto l853 |
| } |
| position++ |
| goto l852 |
| l853: |
| position, tokenIndex = position852, tokenIndex852 |
| if buffer[position] != rune('M') { |
| goto l851 |
| } |
| position++ |
| } |
| l852: |
| { |
| position854, tokenIndex854 := position, tokenIndex |
| if buffer[position] != rune('u') { |
| goto l855 |
| } |
| position++ |
| goto l854 |
| l855: |
| position, tokenIndex = position854, tokenIndex854 |
| if buffer[position] != rune('U') { |
| goto l851 |
| } |
| position++ |
| } |
| l854: |
| { |
| position856, tokenIndex856 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l857 |
| } |
| position++ |
| goto l856 |
| l857: |
| position, tokenIndex = position856, tokenIndex856 |
| if buffer[position] != rune('L') { |
| goto l851 |
| } |
| position++ |
| } |
| l856: |
| if buffer[position] != rune('3') { |
| goto l851 |
| } |
| position++ |
| goto l804 |
| l851: |
| position, tokenIndex = position804, tokenIndex804 |
| { |
| position859, tokenIndex859 := position, tokenIndex |
| if buffer[position] != rune('m') { |
| goto l860 |
| } |
| position++ |
| goto l859 |
| l860: |
| position, tokenIndex = position859, tokenIndex859 |
| if buffer[position] != rune('M') { |
| goto l858 |
| } |
| position++ |
| } |
| l859: |
| { |
| position861, tokenIndex861 := position, tokenIndex |
| if buffer[position] != rune('u') { |
| goto l862 |
| } |
| position++ |
| goto l861 |
| l862: |
| position, tokenIndex = position861, tokenIndex861 |
| if buffer[position] != rune('U') { |
| goto l858 |
| } |
| position++ |
| } |
| l861: |
| { |
| position863, tokenIndex863 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l864 |
| } |
| position++ |
| goto l863 |
| l864: |
| position, tokenIndex = position863, tokenIndex863 |
| if buffer[position] != rune('L') { |
| goto l858 |
| } |
| position++ |
| } |
| l863: |
| if buffer[position] != rune('4') { |
| goto l858 |
| } |
| position++ |
| goto l804 |
| l858: |
| position, tokenIndex = position804, tokenIndex804 |
| { |
| position865, tokenIndex865 := position, tokenIndex |
| if buffer[position] != rune('a') { |
| goto l866 |
| } |
| position++ |
| goto l865 |
| l866: |
| position, tokenIndex = position865, tokenIndex865 |
| if buffer[position] != rune('A') { |
| goto l802 |
| } |
| position++ |
| } |
| l865: |
| { |
| position867, tokenIndex867 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l868 |
| } |
| position++ |
| goto l867 |
| l868: |
| position, tokenIndex = position867, tokenIndex867 |
| if buffer[position] != rune('L') { |
| goto l802 |
| } |
| position++ |
| } |
| l867: |
| { |
| position869, tokenIndex869 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l870 |
| } |
| position++ |
| goto l869 |
| l870: |
| position, tokenIndex = position869, tokenIndex869 |
| if buffer[position] != rune('L') { |
| goto l802 |
| } |
| position++ |
| } |
| l869: |
| } |
| l804: |
| { |
| position871, tokenIndex871 := position, tokenIndex |
| { |
| position872, tokenIndex872 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l873 |
| } |
| position++ |
| goto l872 |
| l873: |
| position, tokenIndex = position872, tokenIndex872 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l874 |
| } |
| position++ |
| goto l872 |
| l874: |
| position, tokenIndex = position872, tokenIndex872 |
| { |
| position876, tokenIndex876 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l877 |
| } |
| position++ |
| goto l876 |
| l877: |
| position, tokenIndex = position876, tokenIndex876 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l875 |
| } |
| position++ |
| } |
| l876: |
| goto l872 |
| l875: |
| position, tokenIndex = position872, tokenIndex872 |
| if buffer[position] != rune('_') { |
| goto l871 |
| } |
| position++ |
| } |
| l872: |
| goto l802 |
| l871: |
| position, tokenIndex = position871, tokenIndex871 |
| } |
| add(ruleSVE2SpecialValue, position803) |
| } |
| return true |
| l802: |
| position, tokenIndex = position802, tokenIndex802 |
| return false |
| }, |
| /* 52 MemoryRef <- <((SymbolRef BaseIndexScale) / SymbolRef / Low12BitsSymbolRef / (Offset* BaseIndexScale) / (SegmentRegister Offset BaseIndexScale) / (SegmentRegister BaseIndexScale) / (SegmentRegister Offset) / ARMBaseIndexScale / BaseIndexScale)> */ |
| func() bool { |
| position878, tokenIndex878 := position, tokenIndex |
| { |
| position879 := position |
| { |
| position880, tokenIndex880 := position, tokenIndex |
| if !_rules[ruleSymbolRef]() { |
| goto l881 |
| } |
| if !_rules[ruleBaseIndexScale]() { |
| goto l881 |
| } |
| goto l880 |
| l881: |
| position, tokenIndex = position880, tokenIndex880 |
| if !_rules[ruleSymbolRef]() { |
| goto l882 |
| } |
| goto l880 |
| l882: |
| position, tokenIndex = position880, tokenIndex880 |
| if !_rules[ruleLow12BitsSymbolRef]() { |
| goto l883 |
| } |
| goto l880 |
| l883: |
| position, tokenIndex = position880, tokenIndex880 |
| l885: |
| { |
| position886, tokenIndex886 := position, tokenIndex |
| if !_rules[ruleOffset]() { |
| goto l886 |
| } |
| goto l885 |
| l886: |
| position, tokenIndex = position886, tokenIndex886 |
| } |
| if !_rules[ruleBaseIndexScale]() { |
| goto l884 |
| } |
| goto l880 |
| l884: |
| position, tokenIndex = position880, tokenIndex880 |
| if !_rules[ruleSegmentRegister]() { |
| goto l887 |
| } |
| if !_rules[ruleOffset]() { |
| goto l887 |
| } |
| if !_rules[ruleBaseIndexScale]() { |
| goto l887 |
| } |
| goto l880 |
| l887: |
| position, tokenIndex = position880, tokenIndex880 |
| if !_rules[ruleSegmentRegister]() { |
| goto l888 |
| } |
| if !_rules[ruleBaseIndexScale]() { |
| goto l888 |
| } |
| goto l880 |
| l888: |
| position, tokenIndex = position880, tokenIndex880 |
| if !_rules[ruleSegmentRegister]() { |
| goto l889 |
| } |
| if !_rules[ruleOffset]() { |
| goto l889 |
| } |
| goto l880 |
| l889: |
| position, tokenIndex = position880, tokenIndex880 |
| if !_rules[ruleARMBaseIndexScale]() { |
| goto l890 |
| } |
| goto l880 |
| l890: |
| position, tokenIndex = position880, tokenIndex880 |
| if !_rules[ruleBaseIndexScale]() { |
| goto l878 |
| } |
| } |
| l880: |
| add(ruleMemoryRef, position879) |
| } |
| return true |
| l878: |
| position, tokenIndex = position878, tokenIndex878 |
| return false |
| }, |
| /* 53 SymbolRef <- <((Offset* '+')? (LocalSymbol / SymbolName) Offset* ('@' Section Offset*)?)> */ |
| func() bool { |
| position891, tokenIndex891 := position, tokenIndex |
| { |
| position892 := position |
| { |
| position893, tokenIndex893 := position, tokenIndex |
| l895: |
| { |
| position896, tokenIndex896 := position, tokenIndex |
| if !_rules[ruleOffset]() { |
| goto l896 |
| } |
| goto l895 |
| l896: |
| position, tokenIndex = position896, tokenIndex896 |
| } |
| if buffer[position] != rune('+') { |
| goto l893 |
| } |
| position++ |
| goto l894 |
| l893: |
| position, tokenIndex = position893, tokenIndex893 |
| } |
| l894: |
| { |
| position897, tokenIndex897 := position, tokenIndex |
| if !_rules[ruleLocalSymbol]() { |
| goto l898 |
| } |
| goto l897 |
| l898: |
| position, tokenIndex = position897, tokenIndex897 |
| if !_rules[ruleSymbolName]() { |
| goto l891 |
| } |
| } |
| l897: |
| l899: |
| { |
| position900, tokenIndex900 := position, tokenIndex |
| if !_rules[ruleOffset]() { |
| goto l900 |
| } |
| goto l899 |
| l900: |
| position, tokenIndex = position900, tokenIndex900 |
| } |
| { |
| position901, tokenIndex901 := position, tokenIndex |
| if buffer[position] != rune('@') { |
| goto l901 |
| } |
| position++ |
| if !_rules[ruleSection]() { |
| goto l901 |
| } |
| l903: |
| { |
| position904, tokenIndex904 := position, tokenIndex |
| if !_rules[ruleOffset]() { |
| goto l904 |
| } |
| goto l903 |
| l904: |
| position, tokenIndex = position904, tokenIndex904 |
| } |
| goto l902 |
| l901: |
| position, tokenIndex = position901, tokenIndex901 |
| } |
| l902: |
| add(ruleSymbolRef, position892) |
| } |
| return true |
| l891: |
| position, tokenIndex = position891, tokenIndex891 |
| return false |
| }, |
| /* 54 Low12BitsSymbolRef <- <(':' ('l' / 'L') ('o' / 'O') '1' '2' ':' (LocalSymbol / SymbolName) Offset?)> */ |
| func() bool { |
| position905, tokenIndex905 := position, tokenIndex |
| { |
| position906 := position |
| if buffer[position] != rune(':') { |
| goto l905 |
| } |
| position++ |
| { |
| position907, tokenIndex907 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l908 |
| } |
| position++ |
| goto l907 |
| l908: |
| position, tokenIndex = position907, tokenIndex907 |
| if buffer[position] != rune('L') { |
| goto l905 |
| } |
| position++ |
| } |
| l907: |
| { |
| position909, tokenIndex909 := position, tokenIndex |
| if buffer[position] != rune('o') { |
| goto l910 |
| } |
| position++ |
| goto l909 |
| l910: |
| position, tokenIndex = position909, tokenIndex909 |
| if buffer[position] != rune('O') { |
| goto l905 |
| } |
| position++ |
| } |
| l909: |
| if buffer[position] != rune('1') { |
| goto l905 |
| } |
| position++ |
| if buffer[position] != rune('2') { |
| goto l905 |
| } |
| position++ |
| if buffer[position] != rune(':') { |
| goto l905 |
| } |
| position++ |
| { |
| position911, tokenIndex911 := position, tokenIndex |
| if !_rules[ruleLocalSymbol]() { |
| goto l912 |
| } |
| goto l911 |
| l912: |
| position, tokenIndex = position911, tokenIndex911 |
| if !_rules[ruleSymbolName]() { |
| goto l905 |
| } |
| } |
| l911: |
| { |
| position913, tokenIndex913 := position, tokenIndex |
| if !_rules[ruleOffset]() { |
| goto l913 |
| } |
| goto l914 |
| l913: |
| position, tokenIndex = position913, tokenIndex913 |
| } |
| l914: |
| add(ruleLow12BitsSymbolRef, position906) |
| } |
| return true |
| l905: |
| position, tokenIndex = position905, tokenIndex905 |
| return false |
| }, |
| /* 55 ARMBaseIndexScale <- <('[' ARMRegister (',' WS? (('#' Offset (('*' [0-9]+) / ('*' '(' [0-9]+ Operator [0-9]+ ')') / ('+' [0-9]+)*)?) / ARMGOTLow12 / Low12BitsSymbolRef / ARMRegister) (',' WS? ARMConstantTweak)?)? ']' ARMPostincrement?)> */ |
| func() bool { |
| position915, tokenIndex915 := position, tokenIndex |
| { |
| position916 := position |
| if buffer[position] != rune('[') { |
| goto l915 |
| } |
| position++ |
| if !_rules[ruleARMRegister]() { |
| goto l915 |
| } |
| { |
| position917, tokenIndex917 := position, tokenIndex |
| if buffer[position] != rune(',') { |
| goto l917 |
| } |
| position++ |
| { |
| position919, tokenIndex919 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l919 |
| } |
| goto l920 |
| l919: |
| position, tokenIndex = position919, tokenIndex919 |
| } |
| l920: |
| { |
| position921, tokenIndex921 := position, tokenIndex |
| if buffer[position] != rune('#') { |
| goto l922 |
| } |
| position++ |
| if !_rules[ruleOffset]() { |
| goto l922 |
| } |
| { |
| position923, tokenIndex923 := position, tokenIndex |
| { |
| position925, tokenIndex925 := position, tokenIndex |
| if buffer[position] != rune('*') { |
| goto l926 |
| } |
| position++ |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l926 |
| } |
| position++ |
| l927: |
| { |
| position928, tokenIndex928 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l928 |
| } |
| position++ |
| goto l927 |
| l928: |
| position, tokenIndex = position928, tokenIndex928 |
| } |
| goto l925 |
| l926: |
| position, tokenIndex = position925, tokenIndex925 |
| if buffer[position] != rune('*') { |
| goto l929 |
| } |
| position++ |
| if buffer[position] != rune('(') { |
| goto l929 |
| } |
| position++ |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l929 |
| } |
| position++ |
| l930: |
| { |
| position931, tokenIndex931 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l931 |
| } |
| position++ |
| goto l930 |
| l931: |
| position, tokenIndex = position931, tokenIndex931 |
| } |
| if !_rules[ruleOperator]() { |
| goto l929 |
| } |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l929 |
| } |
| position++ |
| l932: |
| { |
| position933, tokenIndex933 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l933 |
| } |
| position++ |
| goto l932 |
| l933: |
| position, tokenIndex = position933, tokenIndex933 |
| } |
| if buffer[position] != rune(')') { |
| goto l929 |
| } |
| position++ |
| goto l925 |
| l929: |
| position, tokenIndex = position925, tokenIndex925 |
| l934: |
| { |
| position935, tokenIndex935 := position, tokenIndex |
| if buffer[position] != rune('+') { |
| goto l935 |
| } |
| position++ |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l935 |
| } |
| position++ |
| l936: |
| { |
| position937, tokenIndex937 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l937 |
| } |
| position++ |
| goto l936 |
| l937: |
| position, tokenIndex = position937, tokenIndex937 |
| } |
| goto l934 |
| l935: |
| position, tokenIndex = position935, tokenIndex935 |
| } |
| } |
| l925: |
| goto l924 |
| |
| position, tokenIndex = position923, tokenIndex923 |
| } |
| l924: |
| goto l921 |
| l922: |
| position, tokenIndex = position921, tokenIndex921 |
| if !_rules[ruleARMGOTLow12]() { |
| goto l938 |
| } |
| goto l921 |
| l938: |
| position, tokenIndex = position921, tokenIndex921 |
| if !_rules[ruleLow12BitsSymbolRef]() { |
| goto l939 |
| } |
| goto l921 |
| l939: |
| position, tokenIndex = position921, tokenIndex921 |
| if !_rules[ruleARMRegister]() { |
| goto l917 |
| } |
| } |
| l921: |
| { |
| position940, tokenIndex940 := position, tokenIndex |
| if buffer[position] != rune(',') { |
| goto l940 |
| } |
| position++ |
| { |
| position942, tokenIndex942 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l942 |
| } |
| goto l943 |
| l942: |
| position, tokenIndex = position942, tokenIndex942 |
| } |
| l943: |
| if !_rules[ruleARMConstantTweak]() { |
| goto l940 |
| } |
| goto l941 |
| l940: |
| position, tokenIndex = position940, tokenIndex940 |
| } |
| l941: |
| goto l918 |
| l917: |
| position, tokenIndex = position917, tokenIndex917 |
| } |
| l918: |
| if buffer[position] != rune(']') { |
| goto l915 |
| } |
| position++ |
| { |
| position944, tokenIndex944 := position, tokenIndex |
| if !_rules[ruleARMPostincrement]() { |
| goto l944 |
| } |
| goto l945 |
| l944: |
| position, tokenIndex = position944, tokenIndex944 |
| } |
| l945: |
| add(ruleARMBaseIndexScale, position916) |
| } |
| return true |
| l915: |
| position, tokenIndex = position915, tokenIndex915 |
| return false |
| }, |
| /* 56 ARMGOTLow12 <- <(':' ('g' / 'G') ('o' / 'O') ('t' / 'T') '_' ('l' / 'L') ('o' / 'O') '1' '2' ':' SymbolName)> */ |
| func() bool { |
| position946, tokenIndex946 := position, tokenIndex |
| { |
| position947 := position |
| if buffer[position] != rune(':') { |
| goto l946 |
| } |
| position++ |
| { |
| position948, tokenIndex948 := position, tokenIndex |
| if buffer[position] != rune('g') { |
| goto l949 |
| } |
| position++ |
| goto l948 |
| l949: |
| position, tokenIndex = position948, tokenIndex948 |
| if buffer[position] != rune('G') { |
| goto l946 |
| } |
| position++ |
| } |
| l948: |
| { |
| position950, tokenIndex950 := position, tokenIndex |
| if buffer[position] != rune('o') { |
| goto l951 |
| } |
| position++ |
| goto l950 |
| l951: |
| position, tokenIndex = position950, tokenIndex950 |
| if buffer[position] != rune('O') { |
| goto l946 |
| } |
| position++ |
| } |
| l950: |
| { |
| position952, tokenIndex952 := position, tokenIndex |
| if buffer[position] != rune('t') { |
| goto l953 |
| } |
| position++ |
| goto l952 |
| l953: |
| position, tokenIndex = position952, tokenIndex952 |
| if buffer[position] != rune('T') { |
| goto l946 |
| } |
| position++ |
| } |
| l952: |
| if buffer[position] != rune('_') { |
| goto l946 |
| } |
| position++ |
| { |
| position954, tokenIndex954 := position, tokenIndex |
| if buffer[position] != rune('l') { |
| goto l955 |
| } |
| position++ |
| goto l954 |
| l955: |
| position, tokenIndex = position954, tokenIndex954 |
| if buffer[position] != rune('L') { |
| goto l946 |
| } |
| position++ |
| } |
| l954: |
| { |
| position956, tokenIndex956 := position, tokenIndex |
| if buffer[position] != rune('o') { |
| goto l957 |
| } |
| position++ |
| goto l956 |
| l957: |
| position, tokenIndex = position956, tokenIndex956 |
| if buffer[position] != rune('O') { |
| goto l946 |
| } |
| position++ |
| } |
| l956: |
| if buffer[position] != rune('1') { |
| goto l946 |
| } |
| position++ |
| if buffer[position] != rune('2') { |
| goto l946 |
| } |
| position++ |
| if buffer[position] != rune(':') { |
| goto l946 |
| } |
| position++ |
| if !_rules[ruleSymbolName]() { |
| goto l946 |
| } |
| add(ruleARMGOTLow12, position947) |
| } |
| return true |
| l946: |
| position, tokenIndex = position946, tokenIndex946 |
| return false |
| }, |
| /* 57 ARMPostincrement <- <'!'> */ |
| func() bool { |
| position958, tokenIndex958 := position, tokenIndex |
| { |
| position959 := position |
| if buffer[position] != rune('!') { |
| goto l958 |
| } |
| position++ |
| add(ruleARMPostincrement, position959) |
| } |
| return true |
| l958: |
| position, tokenIndex = position958, tokenIndex958 |
| return false |
| }, |
| /* 58 BaseIndexScale <- <('(' RegisterOrConstant? WS? (',' WS? RegisterOrConstant WS? (',' [0-9]+)?)? ')')> */ |
| func() bool { |
| position960, tokenIndex960 := position, tokenIndex |
| { |
| position961 := position |
| if buffer[position] != rune('(') { |
| goto l960 |
| } |
| position++ |
| { |
| position962, tokenIndex962 := position, tokenIndex |
| if !_rules[ruleRegisterOrConstant]() { |
| goto l962 |
| } |
| goto l963 |
| l962: |
| position, tokenIndex = position962, tokenIndex962 |
| } |
| l963: |
| { |
| position964, tokenIndex964 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l964 |
| } |
| goto l965 |
| l964: |
| position, tokenIndex = position964, tokenIndex964 |
| } |
| l965: |
| { |
| position966, tokenIndex966 := position, tokenIndex |
| if buffer[position] != rune(',') { |
| goto l966 |
| } |
| position++ |
| { |
| position968, tokenIndex968 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l968 |
| } |
| goto l969 |
| l968: |
| position, tokenIndex = position968, tokenIndex968 |
| } |
| l969: |
| if !_rules[ruleRegisterOrConstant]() { |
| goto l966 |
| } |
| { |
| position970, tokenIndex970 := position, tokenIndex |
| if !_rules[ruleWS]() { |
| goto l970 |
| } |
| goto l971 |
| l970: |
| position, tokenIndex = position970, tokenIndex970 |
| } |
| l971: |
| { |
| position972, tokenIndex972 := position, tokenIndex |
| if buffer[position] != rune(',') { |
| goto l972 |
| } |
| position++ |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l972 |
| } |
| position++ |
| l974: |
| { |
| position975, tokenIndex975 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l975 |
| } |
| position++ |
| goto l974 |
| l975: |
| position, tokenIndex = position975, tokenIndex975 |
| } |
| goto l973 |
| l972: |
| position, tokenIndex = position972, tokenIndex972 |
| } |
| l973: |
| goto l967 |
| l966: |
| position, tokenIndex = position966, tokenIndex966 |
| } |
| l967: |
| if buffer[position] != rune(')') { |
| goto l960 |
| } |
| position++ |
| add(ruleBaseIndexScale, position961) |
| } |
| return true |
| l960: |
| position, tokenIndex = position960, tokenIndex960 |
| return false |
| }, |
| /* 59 Operator <- <('+' / '-')> */ |
| func() bool { |
| position976, tokenIndex976 := position, tokenIndex |
| { |
| position977 := position |
| { |
| position978, tokenIndex978 := position, tokenIndex |
| if buffer[position] != rune('+') { |
| goto l979 |
| } |
| position++ |
| goto l978 |
| l979: |
| position, tokenIndex = position978, tokenIndex978 |
| if buffer[position] != rune('-') { |
| goto l976 |
| } |
| position++ |
| } |
| l978: |
| add(ruleOperator, position977) |
| } |
| return true |
| l976: |
| position, tokenIndex = position976, tokenIndex976 |
| return false |
| }, |
| /* 60 Offset <- <('+'? '-'? (('0' ('b' / 'B') ('0' / '1')+) / ('0' ('x' / 'X') ([0-9] / [0-9] / ([a-f] / [A-F]))+) / [0-9]+))> */ |
| func() bool { |
| position980, tokenIndex980 := position, tokenIndex |
| { |
| position981 := position |
| { |
| position982, tokenIndex982 := position, tokenIndex |
| if buffer[position] != rune('+') { |
| goto l982 |
| } |
| position++ |
| goto l983 |
| l982: |
| position, tokenIndex = position982, tokenIndex982 |
| } |
| l983: |
| { |
| position984, tokenIndex984 := position, tokenIndex |
| if buffer[position] != rune('-') { |
| goto l984 |
| } |
| position++ |
| goto l985 |
| l984: |
| position, tokenIndex = position984, tokenIndex984 |
| } |
| l985: |
| { |
| position986, tokenIndex986 := position, tokenIndex |
| if buffer[position] != rune('0') { |
| goto l987 |
| } |
| position++ |
| { |
| position988, tokenIndex988 := position, tokenIndex |
| if buffer[position] != rune('b') { |
| goto l989 |
| } |
| position++ |
| goto l988 |
| l989: |
| position, tokenIndex = position988, tokenIndex988 |
| if buffer[position] != rune('B') { |
| goto l987 |
| } |
| position++ |
| } |
| l988: |
| { |
| position992, tokenIndex992 := position, tokenIndex |
| if buffer[position] != rune('0') { |
| goto l993 |
| } |
| position++ |
| goto l992 |
| l993: |
| position, tokenIndex = position992, tokenIndex992 |
| if buffer[position] != rune('1') { |
| goto l987 |
| } |
| position++ |
| } |
| l992: |
| l990: |
| { |
| position991, tokenIndex991 := position, tokenIndex |
| { |
| position994, tokenIndex994 := position, tokenIndex |
| if buffer[position] != rune('0') { |
| goto l995 |
| } |
| position++ |
| goto l994 |
| l995: |
| position, tokenIndex = position994, tokenIndex994 |
| if buffer[position] != rune('1') { |
| goto l991 |
| } |
| position++ |
| } |
| l994: |
| goto l990 |
| l991: |
| position, tokenIndex = position991, tokenIndex991 |
| } |
| goto l986 |
| l987: |
| position, tokenIndex = position986, tokenIndex986 |
| if buffer[position] != rune('0') { |
| goto l996 |
| } |
| position++ |
| { |
| position997, tokenIndex997 := position, tokenIndex |
| if buffer[position] != rune('x') { |
| goto l998 |
| } |
| position++ |
| goto l997 |
| l998: |
| position, tokenIndex = position997, tokenIndex997 |
| if buffer[position] != rune('X') { |
| goto l996 |
| } |
| position++ |
| } |
| l997: |
| { |
| position1001, tokenIndex1001 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l1002 |
| } |
| position++ |
| goto l1001 |
| l1002: |
| position, tokenIndex = position1001, tokenIndex1001 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l1003 |
| } |
| position++ |
| goto l1001 |
| l1003: |
| position, tokenIndex = position1001, tokenIndex1001 |
| { |
| position1004, tokenIndex1004 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('f') { |
| goto l1005 |
| } |
| position++ |
| goto l1004 |
| l1005: |
| position, tokenIndex = position1004, tokenIndex1004 |
| if c := buffer[position]; c < rune('A') || c > rune('F') { |
| goto l996 |
| } |
| position++ |
| } |
| l1004: |
| } |
| l1001: |
| l999: |
| { |
| position1000, tokenIndex1000 := position, tokenIndex |
| { |
| position1006, tokenIndex1006 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l1007 |
| } |
| position++ |
| goto l1006 |
| l1007: |
| position, tokenIndex = position1006, tokenIndex1006 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l1008 |
| } |
| position++ |
| goto l1006 |
| l1008: |
| position, tokenIndex = position1006, tokenIndex1006 |
| { |
| position1009, tokenIndex1009 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('f') { |
| goto l1010 |
| } |
| position++ |
| goto l1009 |
| l1010: |
| position, tokenIndex = position1009, tokenIndex1009 |
| if c := buffer[position]; c < rune('A') || c > rune('F') { |
| goto l1000 |
| } |
| position++ |
| } |
| l1009: |
| } |
| l1006: |
| goto l999 |
| l1000: |
| position, tokenIndex = position1000, tokenIndex1000 |
| } |
| goto l986 |
| l996: |
| position, tokenIndex = position986, tokenIndex986 |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l980 |
| } |
| position++ |
| l1011: |
| { |
| position1012, tokenIndex1012 := position, tokenIndex |
| if c := buffer[position]; c < rune('0') || c > rune('9') { |
| goto l1012 |
| } |
| position++ |
| goto l1011 |
| l1012: |
| position, tokenIndex = position1012, tokenIndex1012 |
| } |
| } |
| l986: |
| add(ruleOffset, position981) |
| } |
| return true |
| l980: |
| position, tokenIndex = position980, tokenIndex980 |
| return false |
| }, |
| /* 61 Section <- <([a-z] / [A-Z] / '@')+> */ |
| func() bool { |
| position1013, tokenIndex1013 := position, tokenIndex |
| { |
| position1014 := position |
| { |
| position1017, tokenIndex1017 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l1018 |
| } |
| position++ |
| goto l1017 |
| l1018: |
| position, tokenIndex = position1017, tokenIndex1017 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l1019 |
| } |
| position++ |
| goto l1017 |
| l1019: |
| position, tokenIndex = position1017, tokenIndex1017 |
| if buffer[position] != rune('@') { |
| goto l1013 |
| } |
| position++ |
| } |
| l1017: |
| l1015: |
| { |
| position1016, tokenIndex1016 := position, tokenIndex |
| { |
| position1020, tokenIndex1020 := position, tokenIndex |
| if c := buffer[position]; c < rune('a') || c > rune('z') { |
| goto l1021 |
| } |
| position++ |
| goto l1020 |
| l1021: |
| position, tokenIndex = position1020, tokenIndex1020 |
| if c := buffer[position]; c < rune('A') || c > rune('Z') { |
| goto l1022 |
| } |
| position++ |
| goto l1020 |
| l1022: |
| position, tokenIndex = position1020, tokenIndex1020 |
| if buffer[position] != rune('@') { |
| goto l1016 |
| } |
| position++ |
| } |
| l1020: |
| goto l1015 |
| l1016: |
| position, tokenIndex = position1016, tokenIndex1016 |
| } |
| add(ruleSection, position1014) |
| } |
| return true |
| l1013: |
| position, tokenIndex = position1013, tokenIndex1013 |
| return false |
| }, |
| /* 62 SegmentRegister <- <('%' ([c-g] / 's') ('s' ':'))> */ |
| func() bool { |
| position1023, tokenIndex1023 := position, tokenIndex |
| { |
| position1024 := position |
| if buffer[position] != rune('%') { |
| goto l1023 |
| } |
| position++ |
| { |
| position1025, tokenIndex1025 := position, tokenIndex |
| if c := buffer[position]; c < rune('c') || c > rune('g') { |
| goto l1026 |
| } |
| position++ |
| goto l1025 |
| l1026: |
| position, tokenIndex = position1025, tokenIndex1025 |
| if buffer[position] != rune('s') { |
| goto l1023 |
| } |
| position++ |
| } |
| l1025: |
| if buffer[position] != rune('s') { |
| goto l1023 |
| } |
| position++ |
| if buffer[position] != rune(':') { |
| goto l1023 |
| } |
| position++ |
| add(ruleSegmentRegister, position1024) |
| } |
| return true |
| l1023: |
| position, tokenIndex = position1023, tokenIndex1023 |
| return false |
| }, |
| } |
| p.rules = _rules |
| return nil |
| } |