diff --git a/CHANGELOG.md b/CHANGELOG.md index bdce480..2e0a396 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ## [v1.7.5] - 2023-09-12 Tue -- Fix [#249]: ignore `cf` at the end of the strings. +- Fix [#249]: allow `cf` at the end of the strings, cf for infraspecies. - Fix [#248]: do not escape double quotes for TSV output. - Fix [#246]: ignore `ms` at the end of the strings. diff --git a/ent/parsed/details.go b/ent/parsed/details.go index 294d206..a33b44d 100644 --- a/ent/parsed/details.go +++ b/ent/parsed/details.go @@ -50,14 +50,15 @@ type InfraspeciesElem struct { // Comparison are details for a surrogate comparison name. type Comparison struct { - // Genus is the genus of a name. - Genus string `json:"genus"` - // Species is a specific epithet of a name. - Species string `json:"species,omitempty"` - // Cultivar is a value of a cultivar of a binomial. - Cultivar string `json:"cultivar,omitempty"` - // SpeciesAuthorship the authorship of Species. - SpeciesAuthorship *Authorship `json:"authorship,omitempty"` + // Genus is used if no species information is given + Genus string `json:"genus,omitempty"` + + // Species are details for the binomial part of a name. + *Species + + // InfraSpecies is an infraspecific epthet of a name. + InfraSpecies *InfraspeciesElem `json:"infraspecies,omitempty"` + // CompMarker, usually "cf.". CompMarker string `json:"comparisonMarker"` } @@ -91,7 +92,6 @@ type DetailsGraftChimeraFormula struct { // isDetails implements Details interface. func (DetailsHybridFormula) isDetails() {} - // isDetails implements Details interface. func (DetailsGraftChimeraFormula) isDetails() {} diff --git a/ent/parser/ast.go b/ent/parser/ast.go index 24eef1d..c5c4945 100644 --- a/ent/parser/ast.go +++ b/ent/parser/ast.go @@ -533,16 +533,60 @@ func (p *Engine) newApproxNode(n *node32) *approxNode { } type comparisonNode struct { - Genus *parsed.Word - SpEpithet *spEpithetNode - Comparison *parsed.Word + Genus *parsed.Word + SpEpithet *spEpithetNode + InfraSpEpithet *infraspEpithetNode + Comparison *parsed.Word + Cardinality int } func (p *Engine) newComparisonNode(n *node32) *comparisonNode { + n = n.up + switch n.pegRule { + case ruleNameCompIsp: + return p.newCompIspNode(n) + case ruleNameCompSp: + return p.newCompSpNode(n) + default: + var res *comparisonNode + return res + } +} + +func (p *Engine) newCompIspNode(n *node32) *comparisonNode { var cn *comparisonNode - if n.pegRule != ruleNameComp { - return cn + n = n.up + var gen, comp *parsed.Word + var spEp *spEpithetNode + var ispEp *infraspEpithetNode + for n != nil { + switch n.pegRule { + case ruleGenusWord: + gen = p.newWordNode(n, parsed.GenusType) + case ruleComparison: + comp = p.newWordNode(n, parsed.ComparisonMarkerType) + case ruleSpeciesEpithet: + spEp = p.newSpeciesEpithetNode(n) + p.cardinality = 2 + case ruleInfraspEpithet: + ispEp = p.newInfraspEpithetNode(n) + p.cardinality = 3 + } + n = n.next + } + cn = &comparisonNode{ + Genus: gen, + Comparison: comp, + SpEpithet: spEp, + InfraSpEpithet: ispEp, + Cardinality: 3, } + return cn + +} + +func (p *Engine) newCompSpNode(n *node32) *comparisonNode { + var cn *comparisonNode n = n.up var gen, comp *parsed.Word var spEp *spEpithetNode @@ -560,9 +604,10 @@ func (p *Engine) newComparisonNode(n *node32) *comparisonNode { n = n.next } cn = &comparisonNode{ - Genus: gen, - Comparison: comp, - SpEpithet: spEp, + Genus: gen, + Comparison: comp, + SpEpithet: spEp, + Cardinality: 2, } return cn } @@ -1137,9 +1182,13 @@ func (n *node32) flatChildren() []*node32 { func (p *Engine) newWordNode(n *node32, wt parsed.WordType) *parsed.Word { t := n.token32 val := p.nodeValue(n) + norm := val + if n.pegRule == ruleComparison { + norm = "cf." + } wrd := parsed.Word{ Verbatim: val, - Normalized: val, + Normalized: norm, Type: wt, Start: int(t.begin), End: int(t.end), diff --git a/ent/parser/engine.go b/ent/parser/engine.go index a35945c..15e02ff 100644 --- a/ent/parser/engine.go +++ b/ent/parser/engine.go @@ -210,6 +210,8 @@ var nodeRules = map[pegRule]struct{}{ ruleName: {}, ruleNameApprox: {}, ruleNameComp: {}, + ruleNameCompSp: {}, + ruleNameCompIsp: {}, ruleNameSpecies: {}, ruleNamedGenusGraftChimera: {}, ruleNamedGenusHybrid: {}, diff --git a/ent/parser/grammar.peg b/ent/parser/grammar.peg index bc33ff9..1e1de9b 100644 --- a/ent/parser/grammar.peg +++ b/ent/parser/grammar.peg @@ -41,7 +41,11 @@ NameUninomial <- (UninomialCombo / Uninomial) (_ CultivarWordGroup)? NameApprox <- GenusWord (_ SpeciesEpithet)? _ Approximation ApproxNameIgnored -NameComp <- GenusWord _ Comparison (_ SpeciesEpithet)? +NameComp <- NameCompIsp / NameCompSp + +NameCompSp <- GenusWord _ Comparison (_ SpeciesEpithet)? + +NameCompIsp <- GenusWord _ SpeciesEpithet _ Comparison (_ InfraspEpithet)? NameSpecies <- GenusWord (_? ( Subgenus / SubgenusOrSuperspecies))? _ SpeciesEpithet (_ InfraspGroup)? (_ CultivarWordGroup)? diff --git a/ent/parser/grammar.peg.go b/ent/parser/grammar.peg.go index 4b6da4d..c97eb36 100644 --- a/ent/parser/grammar.peg.go +++ b/ent/parser/grammar.peg.go @@ -37,6 +37,8 @@ const ( ruleNameUninomial ruleNameApprox ruleNameComp + ruleNameCompSp + ruleNameCompIsp ruleNameSpecies ruleGenusWord ruleInfraspGroup @@ -193,6 +195,8 @@ var rul3s = [...]string{ "NameUninomial", "NameApprox", "NameComp", + "NameCompSp", + "NameCompIsp", "NameSpecies", "GenusWord", "InfraspGroup", @@ -442,7 +446,7 @@ type Engine struct { Buffer string buffer []rune - rules [153]func() bool + rules [155]func() bool parse func(rule ...int) error reset func() Pretty bool @@ -1319,33 +1323,24 @@ func (p *Engine) Init(options ...func(*Engine) error) error { position, tokenIndex = position91, tokenIndex91 return false }, - /* 18 NameComp <- <(GenusWord _ Comparison (_ SpeciesEpithet)?)> */ + /* 18 NameComp <- <(NameCompIsp / NameCompSp)> */ func() bool { position95, tokenIndex95 := position, tokenIndex { position96 := position - if !_rules[ruleGenusWord]() { - goto l95 - } - if !_rules[rule_]() { - goto l95 - } - if !_rules[ruleComparison]() { - goto l95 - } { position97, tokenIndex97 := position, tokenIndex - if !_rules[rule_]() { - goto l97 - } - if !_rules[ruleSpeciesEpithet]() { - goto l97 + if !_rules[ruleNameCompIsp]() { + goto l98 } - goto l98 - l97: + goto l97 + l98: position, tokenIndex = position97, tokenIndex97 + if !_rules[ruleNameCompSp]() { + goto l95 + } } - l98: + l97: add(ruleNameComp, position96) } return true @@ -1353,7 +1348,7 @@ func (p *Engine) Init(options ...func(*Engine) error) error { position, tokenIndex = position95, tokenIndex95 return false }, - /* 19 NameSpecies <- <(GenusWord (_? (Subgenus / SubgenusOrSuperspecies))? _ SpeciesEpithet (_ InfraspGroup)? (_ CultivarWordGroup)?)> */ + /* 19 NameCompSp <- <(GenusWord _ Comparison (_ SpeciesEpithet)?)> */ func() bool { position99, tokenIndex99 := position, tokenIndex { @@ -1361,9398 +1356,9472 @@ func (p *Engine) Init(options ...func(*Engine) error) error { if !_rules[ruleGenusWord]() { goto l99 } + if !_rules[rule_]() { + goto l99 + } + if !_rules[ruleComparison]() { + goto l99 + } { position101, tokenIndex101 := position, tokenIndex + if !_rules[rule_]() { + goto l101 + } + if !_rules[ruleSpeciesEpithet]() { + goto l101 + } + goto l102 + l101: + position, tokenIndex = position101, tokenIndex101 + } + l102: + add(ruleNameCompSp, position100) + } + return true + l99: + position, tokenIndex = position99, tokenIndex99 + return false + }, + /* 20 NameCompIsp <- <(GenusWord _ SpeciesEpithet _ Comparison (_ InfraspEpithet)?)> */ + func() bool { + position103, tokenIndex103 := position, tokenIndex + { + position104 := position + if !_rules[ruleGenusWord]() { + goto l103 + } + if !_rules[rule_]() { + goto l103 + } + if !_rules[ruleSpeciesEpithet]() { + goto l103 + } + if !_rules[rule_]() { + goto l103 + } + if !_rules[ruleComparison]() { + goto l103 + } + { + position105, tokenIndex105 := position, tokenIndex + if !_rules[rule_]() { + goto l105 + } + if !_rules[ruleInfraspEpithet]() { + goto l105 + } + goto l106 + l105: + position, tokenIndex = position105, tokenIndex105 + } + l106: + add(ruleNameCompIsp, position104) + } + return true + l103: + position, tokenIndex = position103, tokenIndex103 + return false + }, + /* 21 NameSpecies <- <(GenusWord (_? (Subgenus / SubgenusOrSuperspecies))? _ SpeciesEpithet (_ InfraspGroup)? (_ CultivarWordGroup)?)> */ + func() bool { + position107, tokenIndex107 := position, tokenIndex + { + position108 := position + if !_rules[ruleGenusWord]() { + goto l107 + } + { + position109, tokenIndex109 := position, tokenIndex { - position103, tokenIndex103 := position, tokenIndex + position111, tokenIndex111 := position, tokenIndex if !_rules[rule_]() { - goto l103 + goto l111 } - goto l104 - l103: - position, tokenIndex = position103, tokenIndex103 + goto l112 + l111: + position, tokenIndex = position111, tokenIndex111 } - l104: + l112: { - position105, tokenIndex105 := position, tokenIndex + position113, tokenIndex113 := position, tokenIndex if !_rules[ruleSubgenus]() { - goto l106 + goto l114 } - goto l105 - l106: - position, tokenIndex = position105, tokenIndex105 + goto l113 + l114: + position, tokenIndex = position113, tokenIndex113 if !_rules[ruleSubgenusOrSuperspecies]() { - goto l101 + goto l109 } } - l105: - goto l102 - l101: - position, tokenIndex = position101, tokenIndex101 + l113: + goto l110 + l109: + position, tokenIndex = position109, tokenIndex109 } - l102: + l110: if !_rules[rule_]() { - goto l99 + goto l107 } if !_rules[ruleSpeciesEpithet]() { - goto l99 + goto l107 } { - position107, tokenIndex107 := position, tokenIndex + position115, tokenIndex115 := position, tokenIndex if !_rules[rule_]() { - goto l107 + goto l115 } if !_rules[ruleInfraspGroup]() { - goto l107 + goto l115 } - goto l108 - l107: - position, tokenIndex = position107, tokenIndex107 + goto l116 + l115: + position, tokenIndex = position115, tokenIndex115 } - l108: + l116: { - position109, tokenIndex109 := position, tokenIndex + position117, tokenIndex117 := position, tokenIndex if !_rules[rule_]() { - goto l109 + goto l117 } if !_rules[ruleCultivarWordGroup]() { - goto l109 + goto l117 } - goto l110 - l109: - position, tokenIndex = position109, tokenIndex109 + goto l118 + l117: + position, tokenIndex = position117, tokenIndex117 } - l110: - add(ruleNameSpecies, position100) + l118: + add(ruleNameSpecies, position108) } return true - l99: - position, tokenIndex = position99, tokenIndex99 + l107: + position, tokenIndex = position107, tokenIndex107 return false }, - /* 20 GenusWord <- <((AbbrGenus / UninomialWord) !(_ AuthorWord))> */ + /* 22 GenusWord <- <((AbbrGenus / UninomialWord) !(_ AuthorWord))> */ func() bool { - position111, tokenIndex111 := position, tokenIndex + position119, tokenIndex119 := position, tokenIndex { - position112 := position + position120 := position { - position113, tokenIndex113 := position, tokenIndex + position121, tokenIndex121 := position, tokenIndex if !_rules[ruleAbbrGenus]() { - goto l114 + goto l122 } - goto l113 - l114: - position, tokenIndex = position113, tokenIndex113 + goto l121 + l122: + position, tokenIndex = position121, tokenIndex121 if !_rules[ruleUninomialWord]() { - goto l111 + goto l119 } } - l113: + l121: { - position115, tokenIndex115 := position, tokenIndex + position123, tokenIndex123 := position, tokenIndex if !_rules[rule_]() { - goto l115 + goto l123 } if !_rules[ruleAuthorWord]() { - goto l115 + goto l123 } - goto l111 - l115: - position, tokenIndex = position115, tokenIndex115 + goto l119 + l123: + position, tokenIndex = position123, tokenIndex123 } - add(ruleGenusWord, position112) + add(ruleGenusWord, position120) } return true - l111: - position, tokenIndex = position111, tokenIndex111 + l119: + position, tokenIndex = position119, tokenIndex119 return false }, - /* 21 InfraspGroup <- <(InfraspEpithet (_ InfraspEpithet)? (_ InfraspEpithet)?)> */ + /* 23 InfraspGroup <- <(InfraspEpithet (_ InfraspEpithet)? (_ InfraspEpithet)?)> */ func() bool { - position116, tokenIndex116 := position, tokenIndex + position124, tokenIndex124 := position, tokenIndex { - position117 := position + position125 := position if !_rules[ruleInfraspEpithet]() { - goto l116 + goto l124 } { - position118, tokenIndex118 := position, tokenIndex + position126, tokenIndex126 := position, tokenIndex if !_rules[rule_]() { - goto l118 + goto l126 } if !_rules[ruleInfraspEpithet]() { - goto l118 + goto l126 } - goto l119 - l118: - position, tokenIndex = position118, tokenIndex118 + goto l127 + l126: + position, tokenIndex = position126, tokenIndex126 } - l119: + l127: { - position120, tokenIndex120 := position, tokenIndex + position128, tokenIndex128 := position, tokenIndex if !_rules[rule_]() { - goto l120 + goto l128 } if !_rules[ruleInfraspEpithet]() { - goto l120 + goto l128 } - goto l121 - l120: - position, tokenIndex = position120, tokenIndex120 + goto l129 + l128: + position, tokenIndex = position128, tokenIndex128 } - l121: - add(ruleInfraspGroup, position117) + l129: + add(ruleInfraspGroup, position125) } return true - l116: - position, tokenIndex = position116, tokenIndex116 + l124: + position, tokenIndex = position124, tokenIndex124 return false }, - /* 22 InfraspEpithet <- <((Rank _?)? !AuthorEx Word (_ IgnoredWord)? (_? Authorship)?)> */ + /* 24 InfraspEpithet <- <((Rank _?)? !AuthorEx Word (_ IgnoredWord)? (_? Authorship)?)> */ func() bool { - position122, tokenIndex122 := position, tokenIndex + position130, tokenIndex130 := position, tokenIndex { - position123 := position + position131 := position { - position124, tokenIndex124 := position, tokenIndex + position132, tokenIndex132 := position, tokenIndex if !_rules[ruleRank]() { - goto l124 + goto l132 } { - position126, tokenIndex126 := position, tokenIndex + position134, tokenIndex134 := position, tokenIndex if !_rules[rule_]() { - goto l126 + goto l134 } - goto l127 - l126: - position, tokenIndex = position126, tokenIndex126 + goto l135 + l134: + position, tokenIndex = position134, tokenIndex134 } - l127: - goto l125 - l124: - position, tokenIndex = position124, tokenIndex124 + l135: + goto l133 + l132: + position, tokenIndex = position132, tokenIndex132 } - l125: + l133: { - position128, tokenIndex128 := position, tokenIndex + position136, tokenIndex136 := position, tokenIndex if !_rules[ruleAuthorEx]() { - goto l128 + goto l136 } - goto l122 - l128: - position, tokenIndex = position128, tokenIndex128 + goto l130 + l136: + position, tokenIndex = position136, tokenIndex136 } if !_rules[ruleWord]() { - goto l122 + goto l130 } { - position129, tokenIndex129 := position, tokenIndex + position137, tokenIndex137 := position, tokenIndex if !_rules[rule_]() { - goto l129 + goto l137 } if !_rules[ruleIgnoredWord]() { - goto l129 + goto l137 } - goto l130 - l129: - position, tokenIndex = position129, tokenIndex129 + goto l138 + l137: + position, tokenIndex = position137, tokenIndex137 } - l130: + l138: { - position131, tokenIndex131 := position, tokenIndex + position139, tokenIndex139 := position, tokenIndex { - position133, tokenIndex133 := position, tokenIndex + position141, tokenIndex141 := position, tokenIndex if !_rules[rule_]() { - goto l133 + goto l141 } - goto l134 - l133: - position, tokenIndex = position133, tokenIndex133 + goto l142 + l141: + position, tokenIndex = position141, tokenIndex141 } - l134: + l142: if !_rules[ruleAuthorship]() { - goto l131 + goto l139 } - goto l132 - l131: - position, tokenIndex = position131, tokenIndex131 + goto l140 + l139: + position, tokenIndex = position139, tokenIndex139 } - l132: - add(ruleInfraspEpithet, position123) + l140: + add(ruleInfraspEpithet, position131) } return true - l122: - position, tokenIndex = position122, tokenIndex122 + l130: + position, tokenIndex = position130, tokenIndex130 return false }, - /* 23 CultivarWordGroup <- <(((RankCultivar _)? CultivarApostrophe CultivarRecursive CultivarApostrophe) / (RankCultivar _ Cultivar))> */ + /* 25 CultivarWordGroup <- <(((RankCultivar _)? CultivarApostrophe CultivarRecursive CultivarApostrophe) / (RankCultivar _ Cultivar))> */ func() bool { - position135, tokenIndex135 := position, tokenIndex + position143, tokenIndex143 := position, tokenIndex { - position136 := position + position144 := position { - position137, tokenIndex137 := position, tokenIndex + position145, tokenIndex145 := position, tokenIndex { - position139, tokenIndex139 := position, tokenIndex + position147, tokenIndex147 := position, tokenIndex if !_rules[ruleRankCultivar]() { - goto l139 + goto l147 } if !_rules[rule_]() { - goto l139 + goto l147 } - goto l140 - l139: - position, tokenIndex = position139, tokenIndex139 + goto l148 + l147: + position, tokenIndex = position147, tokenIndex147 } - l140: + l148: if !_rules[ruleCultivarApostrophe]() { - goto l138 + goto l146 } if !_rules[ruleCultivarRecursive]() { - goto l138 + goto l146 } if !_rules[ruleCultivarApostrophe]() { - goto l138 + goto l146 } - goto l137 - l138: - position, tokenIndex = position137, tokenIndex137 + goto l145 + l146: + position, tokenIndex = position145, tokenIndex145 if !_rules[ruleRankCultivar]() { - goto l135 + goto l143 } if !_rules[rule_]() { - goto l135 + goto l143 } if !_rules[ruleCultivar]() { - goto l135 + goto l143 } } - l137: - add(ruleCultivarWordGroup, position136) + l145: + add(ruleCultivarWordGroup, position144) } return true - l135: - position, tokenIndex = position135, tokenIndex135 + l143: + position, tokenIndex = position143, tokenIndex143 return false }, - /* 24 Cultivar <- */ + /* 26 Cultivar <- */ func() bool { - position141, tokenIndex141 := position, tokenIndex + position149, tokenIndex149 := position, tokenIndex { - position142 := position + position150 := position if !_rules[ruleNotHybridChar]() { - goto l141 + goto l149 } - l143: + l151: { - position144, tokenIndex144 := position, tokenIndex + position152, tokenIndex152 := position, tokenIndex if !_rules[ruleNotHybridChar]() { - goto l144 + goto l152 } - goto l143 - l144: - position, tokenIndex = position144, tokenIndex144 + goto l151 + l152: + position, tokenIndex = position152, tokenIndex152 } - add(ruleCultivar, position142) + add(ruleCultivar, position150) } return true - l141: - position, tokenIndex = position141, tokenIndex141 + l149: + position, tokenIndex = position149, tokenIndex149 return false }, - /* 25 RankCultivar <- <('c' 'v' '.'?)> */ + /* 27 RankCultivar <- <('c' 'v' '.'?)> */ func() bool { - position145, tokenIndex145 := position, tokenIndex + position153, tokenIndex153 := position, tokenIndex { - position146 := position + position154 := position if buffer[position] != rune('c') { - goto l145 + goto l153 } position++ if buffer[position] != rune('v') { - goto l145 + goto l153 } position++ { - position147, tokenIndex147 := position, tokenIndex + position155, tokenIndex155 := position, tokenIndex if buffer[position] != rune('.') { - goto l147 + goto l155 } position++ - goto l148 - l147: - position, tokenIndex = position147, tokenIndex147 + goto l156 + l155: + position, tokenIndex = position155, tokenIndex155 } - l148: - add(ruleRankCultivar, position146) + l156: + add(ruleRankCultivar, position154) } return true - l145: - position, tokenIndex = position145, tokenIndex145 + l153: + position, tokenIndex = position153, tokenIndex153 return false }, - /* 26 NotHybridChar <- <(!(_ HybridChar) .)> */ + /* 28 NotHybridChar <- <(!(_ HybridChar) .)> */ func() bool { - position149, tokenIndex149 := position, tokenIndex + position157, tokenIndex157 := position, tokenIndex { - position150 := position + position158 := position { - position151, tokenIndex151 := position, tokenIndex + position159, tokenIndex159 := position, tokenIndex if !_rules[rule_]() { - goto l151 + goto l159 } if !_rules[ruleHybridChar]() { - goto l151 + goto l159 } - goto l149 - l151: - position, tokenIndex = position151, tokenIndex151 + goto l157 + l159: + position, tokenIndex = position159, tokenIndex159 } if !matchDot() { - goto l149 + goto l157 } - add(ruleNotHybridChar, position150) + add(ruleNotHybridChar, position158) } return true - l149: - position, tokenIndex = position149, tokenIndex149 + l157: + position, tokenIndex = position157, tokenIndex157 return false }, - /* 27 CultivarRecursive <- <((NotHybridChar CultivarRecursive) / &CultivarApostrophe)> */ + /* 29 CultivarRecursive <- <((NotHybridChar CultivarRecursive) / &CultivarApostrophe)> */ func() bool { - position152, tokenIndex152 := position, tokenIndex + position160, tokenIndex160 := position, tokenIndex { - position153 := position + position161 := position { - position154, tokenIndex154 := position, tokenIndex + position162, tokenIndex162 := position, tokenIndex if !_rules[ruleNotHybridChar]() { - goto l155 + goto l163 } if !_rules[ruleCultivarRecursive]() { - goto l155 + goto l163 } - goto l154 - l155: - position, tokenIndex = position154, tokenIndex154 + goto l162 + l163: + position, tokenIndex = position162, tokenIndex162 { - position156, tokenIndex156 := position, tokenIndex + position164, tokenIndex164 := position, tokenIndex if !_rules[ruleCultivarApostrophe]() { - goto l152 + goto l160 } - position, tokenIndex = position156, tokenIndex156 + position, tokenIndex = position164, tokenIndex164 } } - l154: - add(ruleCultivarRecursive, position153) + l162: + add(ruleCultivarRecursive, position161) } return true - l152: - position, tokenIndex = position152, tokenIndex152 + l160: + position, tokenIndex = position160, tokenIndex160 return false }, - /* 28 CultivarApostrophe <- <('\'' / '‘' / '’' / '"' / '“' / '”')> */ + /* 30 CultivarApostrophe <- <('\'' / '‘' / '’' / '"' / '“' / '”')> */ func() bool { - position157, tokenIndex157 := position, tokenIndex + position165, tokenIndex165 := position, tokenIndex { - position158 := position + position166 := position { - position159, tokenIndex159 := position, tokenIndex + position167, tokenIndex167 := position, tokenIndex if buffer[position] != rune('\'') { - goto l160 + goto l168 } position++ - goto l159 - l160: - position, tokenIndex = position159, tokenIndex159 + goto l167 + l168: + position, tokenIndex = position167, tokenIndex167 if buffer[position] != rune('‘') { - goto l161 + goto l169 } position++ - goto l159 - l161: - position, tokenIndex = position159, tokenIndex159 + goto l167 + l169: + position, tokenIndex = position167, tokenIndex167 if buffer[position] != rune('’') { - goto l162 + goto l170 } position++ - goto l159 - l162: - position, tokenIndex = position159, tokenIndex159 + goto l167 + l170: + position, tokenIndex = position167, tokenIndex167 if buffer[position] != rune('"') { - goto l163 + goto l171 } position++ - goto l159 - l163: - position, tokenIndex = position159, tokenIndex159 + goto l167 + l171: + position, tokenIndex = position167, tokenIndex167 if buffer[position] != rune('“') { - goto l164 + goto l172 } position++ - goto l159 - l164: - position, tokenIndex = position159, tokenIndex159 + goto l167 + l172: + position, tokenIndex = position167, tokenIndex167 if buffer[position] != rune('”') { - goto l157 + goto l165 } position++ } - l159: - add(ruleCultivarApostrophe, position158) + l167: + add(ruleCultivarApostrophe, position166) } return true - l157: - position, tokenIndex = position157, tokenIndex157 + l165: + position, tokenIndex = position165, tokenIndex165 return false }, - /* 29 SpeciesEpithet <- <(!AuthorEx Word (_ IgnoredWord)? (_? Authorship)?)> */ + /* 31 SpeciesEpithet <- <(!AuthorEx Word (_ IgnoredWord)? (_? Authorship)?)> */ func() bool { - position165, tokenIndex165 := position, tokenIndex + position173, tokenIndex173 := position, tokenIndex { - position166 := position + position174 := position { - position167, tokenIndex167 := position, tokenIndex + position175, tokenIndex175 := position, tokenIndex if !_rules[ruleAuthorEx]() { - goto l167 + goto l175 } - goto l165 - l167: - position, tokenIndex = position167, tokenIndex167 + goto l173 + l175: + position, tokenIndex = position175, tokenIndex175 } if !_rules[ruleWord]() { - goto l165 + goto l173 } { - position168, tokenIndex168 := position, tokenIndex + position176, tokenIndex176 := position, tokenIndex if !_rules[rule_]() { - goto l168 + goto l176 } if !_rules[ruleIgnoredWord]() { - goto l168 + goto l176 } - goto l169 - l168: - position, tokenIndex = position168, tokenIndex168 + goto l177 + l176: + position, tokenIndex = position176, tokenIndex176 } - l169: + l177: { - position170, tokenIndex170 := position, tokenIndex + position178, tokenIndex178 := position, tokenIndex { - position172, tokenIndex172 := position, tokenIndex + position180, tokenIndex180 := position, tokenIndex if !_rules[rule_]() { - goto l172 + goto l180 } - goto l173 - l172: - position, tokenIndex = position172, tokenIndex172 + goto l181 + l180: + position, tokenIndex = position180, tokenIndex180 } - l173: + l181: if !_rules[ruleAuthorship]() { - goto l170 + goto l178 } - goto l171 - l170: - position, tokenIndex = position170, tokenIndex170 + goto l179 + l178: + position, tokenIndex = position178, tokenIndex178 } - l171: - add(ruleSpeciesEpithet, position166) + l179: + add(ruleSpeciesEpithet, position174) } return true - l165: - position, tokenIndex = position165, tokenIndex165 + l173: + position, tokenIndex = position173, tokenIndex173 return false }, - /* 30 IgnoredWord <- <(('m' 'i' 'h' 'i' '.') / ('m' 'i' 'h' 'i'))> */ + /* 32 IgnoredWord <- <(('m' 'i' 'h' 'i' '.') / ('m' 'i' 'h' 'i'))> */ func() bool { - position174, tokenIndex174 := position, tokenIndex + position182, tokenIndex182 := position, tokenIndex { - position175 := position + position183 := position { - position176, tokenIndex176 := position, tokenIndex + position184, tokenIndex184 := position, tokenIndex if buffer[position] != rune('m') { - goto l177 + goto l185 } position++ if buffer[position] != rune('i') { - goto l177 + goto l185 } position++ if buffer[position] != rune('h') { - goto l177 + goto l185 } position++ if buffer[position] != rune('i') { - goto l177 + goto l185 } position++ if buffer[position] != rune('.') { - goto l177 + goto l185 } position++ - goto l176 - l177: - position, tokenIndex = position176, tokenIndex176 + goto l184 + l185: + position, tokenIndex = position184, tokenIndex184 if buffer[position] != rune('m') { - goto l174 + goto l182 } position++ if buffer[position] != rune('i') { - goto l174 + goto l182 } position++ if buffer[position] != rune('h') { - goto l174 + goto l182 } position++ if buffer[position] != rune('i') { - goto l174 + goto l182 } position++ } - l176: - add(ruleIgnoredWord, position175) + l184: + add(ruleIgnoredWord, position183) } return true - l174: - position, tokenIndex = position174, tokenIndex174 + l182: + position, tokenIndex = position182, tokenIndex182 return false }, - /* 31 Comparison <- <('c' 'f' '.'? &SpaceCharEOI)> */ + /* 33 Comparison <- <('c' 'f' '.'? &SpaceCharEOI)> */ func() bool { - position178, tokenIndex178 := position, tokenIndex + position186, tokenIndex186 := position, tokenIndex { - position179 := position + position187 := position if buffer[position] != rune('c') { - goto l178 + goto l186 } position++ if buffer[position] != rune('f') { - goto l178 + goto l186 } position++ { - position180, tokenIndex180 := position, tokenIndex + position188, tokenIndex188 := position, tokenIndex if buffer[position] != rune('.') { - goto l180 + goto l188 } position++ - goto l181 - l180: - position, tokenIndex = position180, tokenIndex180 + goto l189 + l188: + position, tokenIndex = position188, tokenIndex188 } - l181: + l189: { - position182, tokenIndex182 := position, tokenIndex + position190, tokenIndex190 := position, tokenIndex if !_rules[ruleSpaceCharEOI]() { - goto l178 + goto l186 } - position, tokenIndex = position182, tokenIndex182 + position, tokenIndex = position190, tokenIndex190 } - add(ruleComparison, position179) + add(ruleComparison, position187) } return true - l178: - position, tokenIndex = position178, tokenIndex178 + l186: + position, tokenIndex = position186, tokenIndex186 return false }, - /* 32 Rank <- <((RankForma / RankVar / RankSsp / RankOther / RankOtherUncommon / RankAgamo / RankNotho) (_? LowerGreek ('.' / &SpaceCharEOI))?)> */ + /* 34 Rank <- <((RankForma / RankVar / RankSsp / RankOther / RankOtherUncommon / RankAgamo / RankNotho) (_? LowerGreek ('.' / &SpaceCharEOI))?)> */ func() bool { - position183, tokenIndex183 := position, tokenIndex + position191, tokenIndex191 := position, tokenIndex { - position184 := position + position192 := position { - position185, tokenIndex185 := position, tokenIndex + position193, tokenIndex193 := position, tokenIndex if !_rules[ruleRankForma]() { - goto l186 + goto l194 } - goto l185 - l186: - position, tokenIndex = position185, tokenIndex185 + goto l193 + l194: + position, tokenIndex = position193, tokenIndex193 if !_rules[ruleRankVar]() { - goto l187 + goto l195 } - goto l185 - l187: - position, tokenIndex = position185, tokenIndex185 + goto l193 + l195: + position, tokenIndex = position193, tokenIndex193 if !_rules[ruleRankSsp]() { - goto l188 + goto l196 } - goto l185 - l188: - position, tokenIndex = position185, tokenIndex185 + goto l193 + l196: + position, tokenIndex = position193, tokenIndex193 if !_rules[ruleRankOther]() { - goto l189 + goto l197 } - goto l185 - l189: - position, tokenIndex = position185, tokenIndex185 + goto l193 + l197: + position, tokenIndex = position193, tokenIndex193 if !_rules[ruleRankOtherUncommon]() { - goto l190 + goto l198 } - goto l185 - l190: - position, tokenIndex = position185, tokenIndex185 + goto l193 + l198: + position, tokenIndex = position193, tokenIndex193 if !_rules[ruleRankAgamo]() { - goto l191 + goto l199 } - goto l185 - l191: - position, tokenIndex = position185, tokenIndex185 + goto l193 + l199: + position, tokenIndex = position193, tokenIndex193 if !_rules[ruleRankNotho]() { - goto l183 + goto l191 } } - l185: + l193: { - position192, tokenIndex192 := position, tokenIndex + position200, tokenIndex200 := position, tokenIndex { - position194, tokenIndex194 := position, tokenIndex + position202, tokenIndex202 := position, tokenIndex if !_rules[rule_]() { - goto l194 + goto l202 } - goto l195 - l194: - position, tokenIndex = position194, tokenIndex194 + goto l203 + l202: + position, tokenIndex = position202, tokenIndex202 } - l195: + l203: if !_rules[ruleLowerGreek]() { - goto l192 + goto l200 } { - position196, tokenIndex196 := position, tokenIndex + position204, tokenIndex204 := position, tokenIndex if buffer[position] != rune('.') { - goto l197 + goto l205 } position++ - goto l196 - l197: - position, tokenIndex = position196, tokenIndex196 + goto l204 + l205: + position, tokenIndex = position204, tokenIndex204 { - position198, tokenIndex198 := position, tokenIndex + position206, tokenIndex206 := position, tokenIndex if !_rules[ruleSpaceCharEOI]() { - goto l192 + goto l200 } - position, tokenIndex = position198, tokenIndex198 + position, tokenIndex = position206, tokenIndex206 } } - l196: - goto l193 - l192: - position, tokenIndex = position192, tokenIndex192 + l204: + goto l201 + l200: + position, tokenIndex = position200, tokenIndex200 } - l193: - add(ruleRank, position184) + l201: + add(ruleRank, position192) } return true - l183: - position, tokenIndex = position183, tokenIndex183 + l191: + position, tokenIndex = position191, tokenIndex191 return false }, - /* 33 RankNotho <- <((('n' 'o' 't' 'h' 'o' (('v' 'a' 'r') / ('f' 'o') / 'f' / ('s' 'u' 'b' 's' 'p') / ('s' 's' 'p') / ('s' 'p') / ('m' 'o' 'r' 't' 'h') / ('s' 'u' 'p' 's' 'p') / ('s' 'u'))) / ('n' 'v' 'a' 'r')) ('.' / &SpaceCharEOI))> */ + /* 35 RankNotho <- <((('n' 'o' 't' 'h' 'o' (('v' 'a' 'r') / ('f' 'o') / 'f' / ('s' 'u' 'b' 's' 'p') / ('s' 's' 'p') / ('s' 'p') / ('m' 'o' 'r' 't' 'h') / ('s' 'u' 'p' 's' 'p') / ('s' 'u'))) / ('n' 'v' 'a' 'r')) ('.' / &SpaceCharEOI))> */ func() bool { - position199, tokenIndex199 := position, tokenIndex + position207, tokenIndex207 := position, tokenIndex { - position200 := position + position208 := position { - position201, tokenIndex201 := position, tokenIndex + position209, tokenIndex209 := position, tokenIndex if buffer[position] != rune('n') { - goto l202 + goto l210 } position++ if buffer[position] != rune('o') { - goto l202 + goto l210 } position++ if buffer[position] != rune('t') { - goto l202 + goto l210 } position++ if buffer[position] != rune('h') { - goto l202 + goto l210 } position++ if buffer[position] != rune('o') { - goto l202 + goto l210 } position++ { - position203, tokenIndex203 := position, tokenIndex + position211, tokenIndex211 := position, tokenIndex if buffer[position] != rune('v') { - goto l204 + goto l212 } position++ if buffer[position] != rune('a') { - goto l204 + goto l212 } position++ if buffer[position] != rune('r') { - goto l204 + goto l212 } position++ - goto l203 - l204: - position, tokenIndex = position203, tokenIndex203 + goto l211 + l212: + position, tokenIndex = position211, tokenIndex211 if buffer[position] != rune('f') { - goto l205 + goto l213 } position++ if buffer[position] != rune('o') { - goto l205 + goto l213 } position++ - goto l203 - l205: - position, tokenIndex = position203, tokenIndex203 + goto l211 + l213: + position, tokenIndex = position211, tokenIndex211 if buffer[position] != rune('f') { - goto l206 + goto l214 } position++ - goto l203 - l206: - position, tokenIndex = position203, tokenIndex203 + goto l211 + l214: + position, tokenIndex = position211, tokenIndex211 if buffer[position] != rune('s') { - goto l207 + goto l215 } position++ if buffer[position] != rune('u') { - goto l207 + goto l215 } position++ if buffer[position] != rune('b') { - goto l207 + goto l215 } position++ if buffer[position] != rune('s') { - goto l207 + goto l215 } position++ if buffer[position] != rune('p') { - goto l207 + goto l215 } position++ - goto l203 - l207: - position, tokenIndex = position203, tokenIndex203 + goto l211 + l215: + position, tokenIndex = position211, tokenIndex211 if buffer[position] != rune('s') { - goto l208 + goto l216 } position++ if buffer[position] != rune('s') { - goto l208 + goto l216 } position++ if buffer[position] != rune('p') { - goto l208 + goto l216 } position++ - goto l203 - l208: - position, tokenIndex = position203, tokenIndex203 + goto l211 + l216: + position, tokenIndex = position211, tokenIndex211 if buffer[position] != rune('s') { - goto l209 + goto l217 } position++ if buffer[position] != rune('p') { - goto l209 + goto l217 } position++ - goto l203 - l209: - position, tokenIndex = position203, tokenIndex203 + goto l211 + l217: + position, tokenIndex = position211, tokenIndex211 if buffer[position] != rune('m') { - goto l210 + goto l218 } position++ if buffer[position] != rune('o') { - goto l210 + goto l218 } position++ if buffer[position] != rune('r') { - goto l210 + goto l218 } position++ if buffer[position] != rune('t') { - goto l210 + goto l218 } position++ if buffer[position] != rune('h') { - goto l210 + goto l218 } position++ - goto l203 - l210: - position, tokenIndex = position203, tokenIndex203 + goto l211 + l218: + position, tokenIndex = position211, tokenIndex211 if buffer[position] != rune('s') { - goto l211 + goto l219 } position++ if buffer[position] != rune('u') { - goto l211 + goto l219 } position++ if buffer[position] != rune('p') { - goto l211 + goto l219 } position++ if buffer[position] != rune('s') { - goto l211 + goto l219 } position++ if buffer[position] != rune('p') { - goto l211 + goto l219 } position++ - goto l203 - l211: - position, tokenIndex = position203, tokenIndex203 + goto l211 + l219: + position, tokenIndex = position211, tokenIndex211 if buffer[position] != rune('s') { - goto l202 + goto l210 } position++ if buffer[position] != rune('u') { - goto l202 + goto l210 } position++ } - l203: - goto l201 - l202: - position, tokenIndex = position201, tokenIndex201 + l211: + goto l209 + l210: + position, tokenIndex = position209, tokenIndex209 if buffer[position] != rune('n') { - goto l199 + goto l207 } position++ if buffer[position] != rune('v') { - goto l199 + goto l207 } position++ if buffer[position] != rune('a') { - goto l199 + goto l207 } position++ if buffer[position] != rune('r') { - goto l199 + goto l207 } position++ } - l201: + l209: { - position212, tokenIndex212 := position, tokenIndex + position220, tokenIndex220 := position, tokenIndex if buffer[position] != rune('.') { - goto l213 + goto l221 } position++ - goto l212 - l213: - position, tokenIndex = position212, tokenIndex212 + goto l220 + l221: + position, tokenIndex = position220, tokenIndex220 { - position214, tokenIndex214 := position, tokenIndex + position222, tokenIndex222 := position, tokenIndex if !_rules[ruleSpaceCharEOI]() { - goto l199 + goto l207 } - position, tokenIndex = position214, tokenIndex214 + position, tokenIndex = position222, tokenIndex222 } } - l212: - add(ruleRankNotho, position200) + l220: + add(ruleRankNotho, position208) } return true - l199: - position, tokenIndex = position199, tokenIndex199 + l207: + position, tokenIndex = position207, tokenIndex207 return false }, - /* 34 RankOtherUncommon <- <(('*' / ('n' 'a' 't' 'i' 'o') / ('n' 'a' 't' '.') / ('n' 'a' 't') / ('f' '.' 's' 'p') / 'α' / ('β' 'β') / 'β' / 'γ' / 'δ' / 'ε' / 'φ' / 'θ' / 'μ' / ('a' '.') / ('b' '.') / ('c' '.') / ('d' '.') / ('e' '.') / ('g' '.') / ('k' '.') / ('m' 'u' 't' '.')) &SpaceCharEOI)> */ + /* 36 RankOtherUncommon <- <(('*' / ('n' 'a' 't' 'i' 'o') / ('n' 'a' 't' '.') / ('n' 'a' 't') / ('f' '.' 's' 'p') / 'α' / ('β' 'β') / 'β' / 'γ' / 'δ' / 'ε' / 'φ' / 'θ' / 'μ' / ('a' '.') / ('b' '.') / ('c' '.') / ('d' '.') / ('e' '.') / ('g' '.') / ('k' '.') / ('m' 'u' 't' '.')) &SpaceCharEOI)> */ func() bool { - position215, tokenIndex215 := position, tokenIndex + position223, tokenIndex223 := position, tokenIndex { - position216 := position + position224 := position { - position217, tokenIndex217 := position, tokenIndex + position225, tokenIndex225 := position, tokenIndex if buffer[position] != rune('*') { - goto l218 + goto l226 } position++ - goto l217 - l218: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l226: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('n') { - goto l219 + goto l227 } position++ if buffer[position] != rune('a') { - goto l219 + goto l227 } position++ if buffer[position] != rune('t') { - goto l219 + goto l227 } position++ if buffer[position] != rune('i') { - goto l219 + goto l227 } position++ if buffer[position] != rune('o') { - goto l219 + goto l227 } position++ - goto l217 - l219: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l227: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('n') { - goto l220 + goto l228 } position++ if buffer[position] != rune('a') { - goto l220 + goto l228 } position++ if buffer[position] != rune('t') { - goto l220 + goto l228 } position++ if buffer[position] != rune('.') { - goto l220 + goto l228 } position++ - goto l217 - l220: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l228: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('n') { - goto l221 + goto l229 } position++ if buffer[position] != rune('a') { - goto l221 + goto l229 } position++ if buffer[position] != rune('t') { - goto l221 + goto l229 } position++ - goto l217 - l221: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l229: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('f') { - goto l222 + goto l230 } position++ if buffer[position] != rune('.') { - goto l222 + goto l230 } position++ if buffer[position] != rune('s') { - goto l222 + goto l230 } position++ if buffer[position] != rune('p') { - goto l222 + goto l230 } position++ - goto l217 - l222: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l230: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('α') { - goto l223 + goto l231 } position++ - goto l217 - l223: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l231: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('β') { - goto l224 + goto l232 } position++ if buffer[position] != rune('β') { - goto l224 + goto l232 } position++ - goto l217 - l224: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l232: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('β') { - goto l225 + goto l233 } position++ - goto l217 - l225: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l233: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('γ') { - goto l226 + goto l234 } position++ - goto l217 - l226: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l234: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('δ') { - goto l227 + goto l235 } position++ - goto l217 - l227: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l235: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('ε') { - goto l228 + goto l236 } position++ - goto l217 - l228: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l236: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('φ') { - goto l229 + goto l237 } position++ - goto l217 - l229: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l237: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('θ') { - goto l230 + goto l238 } position++ - goto l217 - l230: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l238: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('μ') { - goto l231 + goto l239 } position++ - goto l217 - l231: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l239: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('a') { - goto l232 + goto l240 } position++ if buffer[position] != rune('.') { - goto l232 + goto l240 } position++ - goto l217 - l232: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l240: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('b') { - goto l233 + goto l241 } position++ if buffer[position] != rune('.') { - goto l233 + goto l241 } position++ - goto l217 - l233: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l241: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('c') { - goto l234 + goto l242 } position++ if buffer[position] != rune('.') { - goto l234 + goto l242 } position++ - goto l217 - l234: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l242: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('d') { - goto l235 + goto l243 } position++ if buffer[position] != rune('.') { - goto l235 + goto l243 } position++ - goto l217 - l235: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l243: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('e') { - goto l236 + goto l244 } position++ if buffer[position] != rune('.') { - goto l236 + goto l244 } position++ - goto l217 - l236: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l244: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('g') { - goto l237 + goto l245 } position++ if buffer[position] != rune('.') { - goto l237 + goto l245 } position++ - goto l217 - l237: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l245: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('k') { - goto l238 + goto l246 } position++ if buffer[position] != rune('.') { - goto l238 + goto l246 } position++ - goto l217 - l238: - position, tokenIndex = position217, tokenIndex217 + goto l225 + l246: + position, tokenIndex = position225, tokenIndex225 if buffer[position] != rune('m') { - goto l215 + goto l223 } position++ if buffer[position] != rune('u') { - goto l215 + goto l223 } position++ if buffer[position] != rune('t') { - goto l215 + goto l223 } position++ if buffer[position] != rune('.') { - goto l215 + goto l223 } position++ } - l217: + l225: { - position239, tokenIndex239 := position, tokenIndex + position247, tokenIndex247 := position, tokenIndex if !_rules[ruleSpaceCharEOI]() { - goto l215 + goto l223 } - position, tokenIndex = position239, tokenIndex239 + position, tokenIndex = position247, tokenIndex247 } - add(ruleRankOtherUncommon, position216) + add(ruleRankOtherUncommon, position224) } return true - l215: - position, tokenIndex = position215, tokenIndex215 + l223: + position, tokenIndex = position223, tokenIndex223 return false }, - /* 35 RankOther <- <((('m' 'o' 'r' 'p' 'h') / ('c' 'o' 'n' 'v' 'a' 'r') / ('p' 's' 'e' 'u' 'd' 'o' 'v' 'a' 'r') / ('s' 'e' 'c' 't') / ('s' 'e' 'r') / ('s' 'u' 'b' 'v' 'a' 'r') / ('s' 'u' 'b' 'f') / ('r' 'a' 'c' 'e') / ('p' 'v') / ('p' 'a' 't' 'h' 'o' 'v' 'a' 'r') / ('a' 'b' '.' (_? ('n' '.'))?) / ('s' 't')) ('.' / &SpaceCharEOI))> */ + /* 37 RankOther <- <((('m' 'o' 'r' 'p' 'h') / ('c' 'o' 'n' 'v' 'a' 'r') / ('p' 's' 'e' 'u' 'd' 'o' 'v' 'a' 'r') / ('s' 'e' 'c' 't') / ('s' 'e' 'r') / ('s' 'u' 'b' 'v' 'a' 'r') / ('s' 'u' 'b' 'f') / ('r' 'a' 'c' 'e') / ('p' 'v') / ('p' 'a' 't' 'h' 'o' 'v' 'a' 'r') / ('a' 'b' '.' (_? ('n' '.'))?) / ('s' 't')) ('.' / &SpaceCharEOI))> */ func() bool { - position240, tokenIndex240 := position, tokenIndex + position248, tokenIndex248 := position, tokenIndex { - position241 := position + position249 := position { - position242, tokenIndex242 := position, tokenIndex + position250, tokenIndex250 := position, tokenIndex if buffer[position] != rune('m') { - goto l243 + goto l251 } position++ if buffer[position] != rune('o') { - goto l243 + goto l251 } position++ if buffer[position] != rune('r') { - goto l243 + goto l251 } position++ if buffer[position] != rune('p') { - goto l243 + goto l251 } position++ if buffer[position] != rune('h') { - goto l243 + goto l251 } position++ - goto l242 - l243: - position, tokenIndex = position242, tokenIndex242 + goto l250 + l251: + position, tokenIndex = position250, tokenIndex250 if buffer[position] != rune('c') { - goto l244 + goto l252 } position++ if buffer[position] != rune('o') { - goto l244 + goto l252 } position++ if buffer[position] != rune('n') { - goto l244 + goto l252 } position++ if buffer[position] != rune('v') { - goto l244 + goto l252 } position++ if buffer[position] != rune('a') { - goto l244 + goto l252 } position++ if buffer[position] != rune('r') { - goto l244 + goto l252 } position++ - goto l242 - l244: - position, tokenIndex = position242, tokenIndex242 + goto l250 + l252: + position, tokenIndex = position250, tokenIndex250 if buffer[position] != rune('p') { - goto l245 + goto l253 } position++ if buffer[position] != rune('s') { - goto l245 + goto l253 } position++ if buffer[position] != rune('e') { - goto l245 + goto l253 } position++ if buffer[position] != rune('u') { - goto l245 + goto l253 } position++ if buffer[position] != rune('d') { - goto l245 + goto l253 } position++ if buffer[position] != rune('o') { - goto l245 + goto l253 } position++ if buffer[position] != rune('v') { - goto l245 + goto l253 } position++ if buffer[position] != rune('a') { - goto l245 + goto l253 } position++ if buffer[position] != rune('r') { - goto l245 + goto l253 } position++ - goto l242 - l245: - position, tokenIndex = position242, tokenIndex242 + goto l250 + l253: + position, tokenIndex = position250, tokenIndex250 if buffer[position] != rune('s') { - goto l246 + goto l254 } position++ if buffer[position] != rune('e') { - goto l246 + goto l254 } position++ if buffer[position] != rune('c') { - goto l246 + goto l254 } position++ if buffer[position] != rune('t') { - goto l246 + goto l254 } position++ - goto l242 - l246: - position, tokenIndex = position242, tokenIndex242 + goto l250 + l254: + position, tokenIndex = position250, tokenIndex250 if buffer[position] != rune('s') { - goto l247 + goto l255 } position++ if buffer[position] != rune('e') { - goto l247 + goto l255 } position++ if buffer[position] != rune('r') { - goto l247 + goto l255 } position++ - goto l242 - l247: - position, tokenIndex = position242, tokenIndex242 + goto l250 + l255: + position, tokenIndex = position250, tokenIndex250 if buffer[position] != rune('s') { - goto l248 + goto l256 } position++ if buffer[position] != rune('u') { - goto l248 + goto l256 } position++ if buffer[position] != rune('b') { - goto l248 + goto l256 } position++ if buffer[position] != rune('v') { - goto l248 + goto l256 } position++ if buffer[position] != rune('a') { - goto l248 + goto l256 } position++ if buffer[position] != rune('r') { - goto l248 + goto l256 } position++ - goto l242 - l248: - position, tokenIndex = position242, tokenIndex242 + goto l250 + l256: + position, tokenIndex = position250, tokenIndex250 if buffer[position] != rune('s') { - goto l249 + goto l257 } position++ if buffer[position] != rune('u') { - goto l249 + goto l257 } position++ if buffer[position] != rune('b') { - goto l249 + goto l257 } position++ if buffer[position] != rune('f') { - goto l249 + goto l257 } position++ - goto l242 - l249: - position, tokenIndex = position242, tokenIndex242 + goto l250 + l257: + position, tokenIndex = position250, tokenIndex250 if buffer[position] != rune('r') { - goto l250 + goto l258 } position++ if buffer[position] != rune('a') { - goto l250 + goto l258 } position++ if buffer[position] != rune('c') { - goto l250 + goto l258 } position++ if buffer[position] != rune('e') { - goto l250 + goto l258 } position++ - goto l242 - l250: - position, tokenIndex = position242, tokenIndex242 + goto l250 + l258: + position, tokenIndex = position250, tokenIndex250 if buffer[position] != rune('p') { - goto l251 + goto l259 } position++ if buffer[position] != rune('v') { - goto l251 + goto l259 } position++ - goto l242 - l251: - position, tokenIndex = position242, tokenIndex242 + goto l250 + l259: + position, tokenIndex = position250, tokenIndex250 if buffer[position] != rune('p') { - goto l252 + goto l260 } position++ if buffer[position] != rune('a') { - goto l252 + goto l260 } position++ if buffer[position] != rune('t') { - goto l252 + goto l260 } position++ if buffer[position] != rune('h') { - goto l252 + goto l260 } position++ if buffer[position] != rune('o') { - goto l252 + goto l260 } position++ if buffer[position] != rune('v') { - goto l252 + goto l260 } position++ if buffer[position] != rune('a') { - goto l252 + goto l260 } position++ if buffer[position] != rune('r') { - goto l252 + goto l260 } position++ - goto l242 - l252: - position, tokenIndex = position242, tokenIndex242 + goto l250 + l260: + position, tokenIndex = position250, tokenIndex250 if buffer[position] != rune('a') { - goto l253 + goto l261 } position++ if buffer[position] != rune('b') { - goto l253 + goto l261 } position++ if buffer[position] != rune('.') { - goto l253 + goto l261 } position++ { - position254, tokenIndex254 := position, tokenIndex + position262, tokenIndex262 := position, tokenIndex { - position256, tokenIndex256 := position, tokenIndex + position264, tokenIndex264 := position, tokenIndex if !_rules[rule_]() { - goto l256 + goto l264 } - goto l257 - l256: - position, tokenIndex = position256, tokenIndex256 + goto l265 + l264: + position, tokenIndex = position264, tokenIndex264 } - l257: + l265: if buffer[position] != rune('n') { - goto l254 + goto l262 } position++ if buffer[position] != rune('.') { - goto l254 + goto l262 } position++ - goto l255 - l254: - position, tokenIndex = position254, tokenIndex254 + goto l263 + l262: + position, tokenIndex = position262, tokenIndex262 } - l255: - goto l242 - l253: - position, tokenIndex = position242, tokenIndex242 + l263: + goto l250 + l261: + position, tokenIndex = position250, tokenIndex250 if buffer[position] != rune('s') { - goto l240 + goto l248 } position++ if buffer[position] != rune('t') { - goto l240 + goto l248 } position++ } - l242: + l250: { - position258, tokenIndex258 := position, tokenIndex + position266, tokenIndex266 := position, tokenIndex if buffer[position] != rune('.') { - goto l259 + goto l267 } position++ - goto l258 - l259: - position, tokenIndex = position258, tokenIndex258 + goto l266 + l267: + position, tokenIndex = position266, tokenIndex266 { - position260, tokenIndex260 := position, tokenIndex + position268, tokenIndex268 := position, tokenIndex if !_rules[ruleSpaceCharEOI]() { - goto l240 + goto l248 } - position, tokenIndex = position260, tokenIndex260 + position, tokenIndex = position268, tokenIndex268 } } - l258: - add(ruleRankOther, position241) + l266: + add(ruleRankOther, position249) } return true - l240: - position, tokenIndex = position240, tokenIndex240 + l248: + position, tokenIndex = position248, tokenIndex248 return false }, - /* 36 RankVar <- <((('v' 'a' 'r' 'i' 'e' 't' 'y') / ('[' 'v' 'a' 'r' '.' ']') / ('v' 'a' 'r')) ('.' / &SpaceCharEOI))> */ + /* 38 RankVar <- <((('v' 'a' 'r' 'i' 'e' 't' 'y') / ('[' 'v' 'a' 'r' '.' ']') / ('v' 'a' 'r')) ('.' / &SpaceCharEOI))> */ func() bool { - position261, tokenIndex261 := position, tokenIndex + position269, tokenIndex269 := position, tokenIndex { - position262 := position + position270 := position { - position263, tokenIndex263 := position, tokenIndex + position271, tokenIndex271 := position, tokenIndex if buffer[position] != rune('v') { - goto l264 + goto l272 } position++ if buffer[position] != rune('a') { - goto l264 + goto l272 } position++ if buffer[position] != rune('r') { - goto l264 + goto l272 } position++ if buffer[position] != rune('i') { - goto l264 + goto l272 } position++ if buffer[position] != rune('e') { - goto l264 + goto l272 } position++ if buffer[position] != rune('t') { - goto l264 + goto l272 } position++ if buffer[position] != rune('y') { - goto l264 + goto l272 } position++ - goto l263 - l264: - position, tokenIndex = position263, tokenIndex263 + goto l271 + l272: + position, tokenIndex = position271, tokenIndex271 if buffer[position] != rune('[') { - goto l265 + goto l273 } position++ if buffer[position] != rune('v') { - goto l265 + goto l273 } position++ if buffer[position] != rune('a') { - goto l265 + goto l273 } position++ if buffer[position] != rune('r') { - goto l265 + goto l273 } position++ if buffer[position] != rune('.') { - goto l265 + goto l273 } position++ if buffer[position] != rune(']') { - goto l265 + goto l273 } position++ - goto l263 - l265: - position, tokenIndex = position263, tokenIndex263 + goto l271 + l273: + position, tokenIndex = position271, tokenIndex271 if buffer[position] != rune('v') { - goto l261 + goto l269 } position++ if buffer[position] != rune('a') { - goto l261 + goto l269 } position++ if buffer[position] != rune('r') { - goto l261 + goto l269 } position++ } - l263: + l271: { - position266, tokenIndex266 := position, tokenIndex + position274, tokenIndex274 := position, tokenIndex if buffer[position] != rune('.') { - goto l267 + goto l275 } position++ - goto l266 - l267: - position, tokenIndex = position266, tokenIndex266 + goto l274 + l275: + position, tokenIndex = position274, tokenIndex274 { - position268, tokenIndex268 := position, tokenIndex + position276, tokenIndex276 := position, tokenIndex if !_rules[ruleSpaceCharEOI]() { - goto l261 + goto l269 } - position, tokenIndex = position268, tokenIndex268 + position, tokenIndex = position276, tokenIndex276 } } - l266: - add(ruleRankVar, position262) + l274: + add(ruleRankVar, position270) } return true - l261: - position, tokenIndex = position261, tokenIndex261 + l269: + position, tokenIndex = position269, tokenIndex269 return false }, - /* 37 RankForma <- <((('f' 'o' 'r' 'm' 'a') / ('f' 'm' 'a') / ('f' 'm') / ('f' 'o' 'r' 'm') / ('f' 'o') / 'f') ('.' / &SpaceCharEOI))> */ + /* 39 RankForma <- <((('f' 'o' 'r' 'm' 'a') / ('f' 'm' 'a') / ('f' 'm') / ('f' 'o' 'r' 'm') / ('f' 'o') / 'f') ('.' / &SpaceCharEOI))> */ func() bool { - position269, tokenIndex269 := position, tokenIndex + position277, tokenIndex277 := position, tokenIndex { - position270 := position + position278 := position { - position271, tokenIndex271 := position, tokenIndex + position279, tokenIndex279 := position, tokenIndex if buffer[position] != rune('f') { - goto l272 + goto l280 } position++ if buffer[position] != rune('o') { - goto l272 + goto l280 } position++ if buffer[position] != rune('r') { - goto l272 + goto l280 } position++ if buffer[position] != rune('m') { - goto l272 + goto l280 } position++ if buffer[position] != rune('a') { - goto l272 + goto l280 } position++ - goto l271 - l272: - position, tokenIndex = position271, tokenIndex271 + goto l279 + l280: + position, tokenIndex = position279, tokenIndex279 if buffer[position] != rune('f') { - goto l273 + goto l281 } position++ if buffer[position] != rune('m') { - goto l273 + goto l281 } position++ if buffer[position] != rune('a') { - goto l273 + goto l281 } position++ - goto l271 - l273: - position, tokenIndex = position271, tokenIndex271 + goto l279 + l281: + position, tokenIndex = position279, tokenIndex279 if buffer[position] != rune('f') { - goto l274 + goto l282 } position++ if buffer[position] != rune('m') { - goto l274 + goto l282 } position++ - goto l271 - l274: - position, tokenIndex = position271, tokenIndex271 + goto l279 + l282: + position, tokenIndex = position279, tokenIndex279 if buffer[position] != rune('f') { - goto l275 + goto l283 } position++ if buffer[position] != rune('o') { - goto l275 + goto l283 } position++ if buffer[position] != rune('r') { - goto l275 + goto l283 } position++ if buffer[position] != rune('m') { - goto l275 + goto l283 } position++ - goto l271 - l275: - position, tokenIndex = position271, tokenIndex271 + goto l279 + l283: + position, tokenIndex = position279, tokenIndex279 if buffer[position] != rune('f') { - goto l276 + goto l284 } position++ if buffer[position] != rune('o') { - goto l276 + goto l284 } position++ - goto l271 - l276: - position, tokenIndex = position271, tokenIndex271 + goto l279 + l284: + position, tokenIndex = position279, tokenIndex279 if buffer[position] != rune('f') { - goto l269 + goto l277 } position++ } - l271: + l279: { - position277, tokenIndex277 := position, tokenIndex + position285, tokenIndex285 := position, tokenIndex if buffer[position] != rune('.') { - goto l278 + goto l286 } position++ - goto l277 - l278: - position, tokenIndex = position277, tokenIndex277 + goto l285 + l286: + position, tokenIndex = position285, tokenIndex285 { - position279, tokenIndex279 := position, tokenIndex + position287, tokenIndex287 := position, tokenIndex if !_rules[ruleSpaceCharEOI]() { - goto l269 + goto l277 } - position, tokenIndex = position279, tokenIndex279 + position, tokenIndex = position287, tokenIndex287 } } - l277: - add(ruleRankForma, position270) + l285: + add(ruleRankForma, position278) } return true - l269: - position, tokenIndex = position269, tokenIndex269 + l277: + position, tokenIndex = position277, tokenIndex277 return false }, - /* 38 RankSsp <- <((('s' 's' 'p') / ('s' 'u' 'b' 's' 'p' 'e' 'c') / ('s' 'u' 'b' 's' 'p')) ('.' / &SpaceCharEOI))> */ + /* 40 RankSsp <- <((('s' 's' 'p') / ('s' 'u' 'b' 's' 'p' 'e' 'c') / ('s' 'u' 'b' 's' 'p')) ('.' / &SpaceCharEOI))> */ func() bool { - position280, tokenIndex280 := position, tokenIndex + position288, tokenIndex288 := position, tokenIndex { - position281 := position + position289 := position { - position282, tokenIndex282 := position, tokenIndex + position290, tokenIndex290 := position, tokenIndex if buffer[position] != rune('s') { - goto l283 + goto l291 } position++ if buffer[position] != rune('s') { - goto l283 + goto l291 } position++ if buffer[position] != rune('p') { - goto l283 + goto l291 } position++ - goto l282 - l283: - position, tokenIndex = position282, tokenIndex282 + goto l290 + l291: + position, tokenIndex = position290, tokenIndex290 if buffer[position] != rune('s') { - goto l284 + goto l292 } position++ if buffer[position] != rune('u') { - goto l284 + goto l292 } position++ if buffer[position] != rune('b') { - goto l284 + goto l292 } position++ if buffer[position] != rune('s') { - goto l284 + goto l292 } position++ if buffer[position] != rune('p') { - goto l284 + goto l292 } position++ if buffer[position] != rune('e') { - goto l284 + goto l292 } position++ if buffer[position] != rune('c') { - goto l284 + goto l292 } position++ - goto l282 - l284: - position, tokenIndex = position282, tokenIndex282 + goto l290 + l292: + position, tokenIndex = position290, tokenIndex290 if buffer[position] != rune('s') { - goto l280 + goto l288 } position++ if buffer[position] != rune('u') { - goto l280 + goto l288 } position++ if buffer[position] != rune('b') { - goto l280 + goto l288 } position++ if buffer[position] != rune('s') { - goto l280 + goto l288 } position++ if buffer[position] != rune('p') { - goto l280 + goto l288 } position++ } - l282: + l290: { - position285, tokenIndex285 := position, tokenIndex + position293, tokenIndex293 := position, tokenIndex if buffer[position] != rune('.') { - goto l286 + goto l294 } position++ - goto l285 - l286: - position, tokenIndex = position285, tokenIndex285 + goto l293 + l294: + position, tokenIndex = position293, tokenIndex293 { - position287, tokenIndex287 := position, tokenIndex + position295, tokenIndex295 := position, tokenIndex if !_rules[ruleSpaceCharEOI]() { - goto l280 + goto l288 } - position, tokenIndex = position287, tokenIndex287 + position, tokenIndex = position295, tokenIndex295 } } - l285: - add(ruleRankSsp, position281) + l293: + add(ruleRankSsp, position289) } return true - l280: - position, tokenIndex = position280, tokenIndex280 + l288: + position, tokenIndex = position288, tokenIndex288 return false }, - /* 39 RankAgamo <- <((('a' 'g' 'a' 'm' 'o' 's' 'p') / ('a' 'g' 'a' 'm' 'o' 's' 's' 'p') / ('a' 'g' 'a' 'm' 'o' 'v' 'a' 'r')) ('.' / &SpaceCharEOI))> */ + /* 41 RankAgamo <- <((('a' 'g' 'a' 'm' 'o' 's' 'p') / ('a' 'g' 'a' 'm' 'o' 's' 's' 'p') / ('a' 'g' 'a' 'm' 'o' 'v' 'a' 'r')) ('.' / &SpaceCharEOI))> */ func() bool { - position288, tokenIndex288 := position, tokenIndex + position296, tokenIndex296 := position, tokenIndex { - position289 := position + position297 := position { - position290, tokenIndex290 := position, tokenIndex + position298, tokenIndex298 := position, tokenIndex if buffer[position] != rune('a') { - goto l291 + goto l299 } position++ if buffer[position] != rune('g') { - goto l291 + goto l299 } position++ if buffer[position] != rune('a') { - goto l291 + goto l299 } position++ if buffer[position] != rune('m') { - goto l291 + goto l299 } position++ if buffer[position] != rune('o') { - goto l291 + goto l299 } position++ if buffer[position] != rune('s') { - goto l291 + goto l299 } position++ if buffer[position] != rune('p') { - goto l291 + goto l299 } position++ - goto l290 - l291: - position, tokenIndex = position290, tokenIndex290 + goto l298 + l299: + position, tokenIndex = position298, tokenIndex298 if buffer[position] != rune('a') { - goto l292 + goto l300 } position++ if buffer[position] != rune('g') { - goto l292 + goto l300 } position++ if buffer[position] != rune('a') { - goto l292 + goto l300 } position++ if buffer[position] != rune('m') { - goto l292 + goto l300 } position++ if buffer[position] != rune('o') { - goto l292 + goto l300 } position++ if buffer[position] != rune('s') { - goto l292 + goto l300 } position++ if buffer[position] != rune('s') { - goto l292 + goto l300 } position++ if buffer[position] != rune('p') { - goto l292 + goto l300 } position++ - goto l290 - l292: - position, tokenIndex = position290, tokenIndex290 + goto l298 + l300: + position, tokenIndex = position298, tokenIndex298 if buffer[position] != rune('a') { - goto l288 + goto l296 } position++ if buffer[position] != rune('g') { - goto l288 + goto l296 } position++ if buffer[position] != rune('a') { - goto l288 + goto l296 } position++ if buffer[position] != rune('m') { - goto l288 + goto l296 } position++ if buffer[position] != rune('o') { - goto l288 + goto l296 } position++ if buffer[position] != rune('v') { - goto l288 + goto l296 } position++ if buffer[position] != rune('a') { - goto l288 + goto l296 } position++ if buffer[position] != rune('r') { - goto l288 + goto l296 } position++ } - l290: + l298: { - position293, tokenIndex293 := position, tokenIndex + position301, tokenIndex301 := position, tokenIndex if buffer[position] != rune('.') { - goto l294 + goto l302 } position++ - goto l293 - l294: - position, tokenIndex = position293, tokenIndex293 + goto l301 + l302: + position, tokenIndex = position301, tokenIndex301 { - position295, tokenIndex295 := position, tokenIndex + position303, tokenIndex303 := position, tokenIndex if !_rules[ruleSpaceCharEOI]() { - goto l288 + goto l296 } - position, tokenIndex = position295, tokenIndex295 + position, tokenIndex = position303, tokenIndex303 } } - l293: - add(ruleRankAgamo, position289) + l301: + add(ruleRankAgamo, position297) } return true - l288: - position, tokenIndex = position288, tokenIndex288 + l296: + position, tokenIndex = position296, tokenIndex296 return false }, - /* 40 SubgenusOrSuperspecies <- <('(' _? NameLowerChar+ _? ')')> */ + /* 42 SubgenusOrSuperspecies <- <('(' _? NameLowerChar+ _? ')')> */ func() bool { - position296, tokenIndex296 := position, tokenIndex + position304, tokenIndex304 := position, tokenIndex { - position297 := position + position305 := position if buffer[position] != rune('(') { - goto l296 + goto l304 } position++ { - position298, tokenIndex298 := position, tokenIndex + position306, tokenIndex306 := position, tokenIndex if !_rules[rule_]() { - goto l298 + goto l306 } - goto l299 - l298: - position, tokenIndex = position298, tokenIndex298 + goto l307 + l306: + position, tokenIndex = position306, tokenIndex306 } - l299: + l307: if !_rules[ruleNameLowerChar]() { - goto l296 + goto l304 } - l300: + l308: { - position301, tokenIndex301 := position, tokenIndex + position309, tokenIndex309 := position, tokenIndex if !_rules[ruleNameLowerChar]() { - goto l301 + goto l309 } - goto l300 - l301: - position, tokenIndex = position301, tokenIndex301 + goto l308 + l309: + position, tokenIndex = position309, tokenIndex309 } { - position302, tokenIndex302 := position, tokenIndex + position310, tokenIndex310 := position, tokenIndex if !_rules[rule_]() { - goto l302 + goto l310 } - goto l303 - l302: - position, tokenIndex = position302, tokenIndex302 + goto l311 + l310: + position, tokenIndex = position310, tokenIndex310 } - l303: + l311: if buffer[position] != rune(')') { - goto l296 + goto l304 } position++ - add(ruleSubgenusOrSuperspecies, position297) + add(ruleSubgenusOrSuperspecies, position305) } return true - l296: - position, tokenIndex = position296, tokenIndex296 + l304: + position, tokenIndex = position304, tokenIndex304 return false }, - /* 41 Subgenus <- <(Subgenus2 / Subgenus1)> */ + /* 43 Subgenus <- <(Subgenus2 / Subgenus1)> */ func() bool { - position304, tokenIndex304 := position, tokenIndex + position312, tokenIndex312 := position, tokenIndex { - position305 := position + position313 := position { - position306, tokenIndex306 := position, tokenIndex + position314, tokenIndex314 := position, tokenIndex if !_rules[ruleSubgenus2]() { - goto l307 + goto l315 } - goto l306 - l307: - position, tokenIndex = position306, tokenIndex306 + goto l314 + l315: + position, tokenIndex = position314, tokenIndex314 if !_rules[ruleSubgenus1]() { - goto l304 + goto l312 } } - l306: - add(ruleSubgenus, position305) + l314: + add(ruleSubgenus, position313) } return true - l304: - position, tokenIndex = position304, tokenIndex304 + l312: + position, tokenIndex = position312, tokenIndex312 return false }, - /* 42 Subgenus2 <- <('(' _? AbbrSubgenus _? ')' !(_? NameUpperChar))> */ + /* 44 Subgenus2 <- <('(' _? AbbrSubgenus _? ')' !(_? NameUpperChar))> */ func() bool { - position308, tokenIndex308 := position, tokenIndex + position316, tokenIndex316 := position, tokenIndex { - position309 := position + position317 := position if buffer[position] != rune('(') { - goto l308 + goto l316 } position++ { - position310, tokenIndex310 := position, tokenIndex + position318, tokenIndex318 := position, tokenIndex if !_rules[rule_]() { - goto l310 + goto l318 } - goto l311 - l310: - position, tokenIndex = position310, tokenIndex310 + goto l319 + l318: + position, tokenIndex = position318, tokenIndex318 } - l311: + l319: if !_rules[ruleAbbrSubgenus]() { - goto l308 + goto l316 } { - position312, tokenIndex312 := position, tokenIndex + position320, tokenIndex320 := position, tokenIndex if !_rules[rule_]() { - goto l312 + goto l320 } - goto l313 - l312: - position, tokenIndex = position312, tokenIndex312 + goto l321 + l320: + position, tokenIndex = position320, tokenIndex320 } - l313: + l321: if buffer[position] != rune(')') { - goto l308 + goto l316 } position++ { - position314, tokenIndex314 := position, tokenIndex + position322, tokenIndex322 := position, tokenIndex { - position315, tokenIndex315 := position, tokenIndex + position323, tokenIndex323 := position, tokenIndex if !_rules[rule_]() { - goto l315 + goto l323 } - goto l316 - l315: - position, tokenIndex = position315, tokenIndex315 + goto l324 + l323: + position, tokenIndex = position323, tokenIndex323 } - l316: + l324: if !_rules[ruleNameUpperChar]() { - goto l314 + goto l322 } - goto l308 - l314: - position, tokenIndex = position314, tokenIndex314 + goto l316 + l322: + position, tokenIndex = position322, tokenIndex322 } - add(ruleSubgenus2, position309) + add(ruleSubgenus2, position317) } return true - l308: - position, tokenIndex = position308, tokenIndex308 + l316: + position, tokenIndex = position316, tokenIndex316 return false }, - /* 43 Subgenus1 <- <('(' _? UninomialWord _? ')')> */ + /* 45 Subgenus1 <- <('(' _? UninomialWord _? ')')> */ func() bool { - position317, tokenIndex317 := position, tokenIndex + position325, tokenIndex325 := position, tokenIndex { - position318 := position + position326 := position if buffer[position] != rune('(') { - goto l317 + goto l325 } position++ { - position319, tokenIndex319 := position, tokenIndex + position327, tokenIndex327 := position, tokenIndex if !_rules[rule_]() { - goto l319 + goto l327 } - goto l320 - l319: - position, tokenIndex = position319, tokenIndex319 + goto l328 + l327: + position, tokenIndex = position327, tokenIndex327 } - l320: + l328: if !_rules[ruleUninomialWord]() { - goto l317 + goto l325 } { - position321, tokenIndex321 := position, tokenIndex + position329, tokenIndex329 := position, tokenIndex if !_rules[rule_]() { - goto l321 + goto l329 } - goto l322 - l321: - position, tokenIndex = position321, tokenIndex321 + goto l330 + l329: + position, tokenIndex = position329, tokenIndex329 } - l322: + l330: if buffer[position] != rune(')') { - goto l317 + goto l325 } position++ - add(ruleSubgenus1, position318) + add(ruleSubgenus1, position326) } return true - l317: - position, tokenIndex = position317, tokenIndex317 + l325: + position, tokenIndex = position325, tokenIndex325 return false }, - /* 44 UninomialCombo <- <(UninomialCombo1 / UninomialCombo2)> */ + /* 46 UninomialCombo <- <(UninomialCombo1 / UninomialCombo2)> */ func() bool { - position323, tokenIndex323 := position, tokenIndex + position331, tokenIndex331 := position, tokenIndex { - position324 := position + position332 := position { - position325, tokenIndex325 := position, tokenIndex + position333, tokenIndex333 := position, tokenIndex if !_rules[ruleUninomialCombo1]() { - goto l326 + goto l334 } - goto l325 - l326: - position, tokenIndex = position325, tokenIndex325 + goto l333 + l334: + position, tokenIndex = position333, tokenIndex333 if !_rules[ruleUninomialCombo2]() { - goto l323 + goto l331 } } - l325: - add(ruleUninomialCombo, position324) + l333: + add(ruleUninomialCombo, position332) } return true - l323: - position, tokenIndex = position323, tokenIndex323 + l331: + position, tokenIndex = position331, tokenIndex331 return false }, - /* 45 UninomialCombo1 <- <(UninomialWord _? Subgenus (_? Authorship)?)> */ + /* 47 UninomialCombo1 <- <(UninomialWord _? Subgenus (_? Authorship)?)> */ func() bool { - position327, tokenIndex327 := position, tokenIndex + position335, tokenIndex335 := position, tokenIndex { - position328 := position + position336 := position if !_rules[ruleUninomialWord]() { - goto l327 + goto l335 } { - position329, tokenIndex329 := position, tokenIndex + position337, tokenIndex337 := position, tokenIndex if !_rules[rule_]() { - goto l329 + goto l337 } - goto l330 - l329: - position, tokenIndex = position329, tokenIndex329 + goto l338 + l337: + position, tokenIndex = position337, tokenIndex337 } - l330: + l338: if !_rules[ruleSubgenus]() { - goto l327 + goto l335 } { - position331, tokenIndex331 := position, tokenIndex + position339, tokenIndex339 := position, tokenIndex { - position333, tokenIndex333 := position, tokenIndex + position341, tokenIndex341 := position, tokenIndex if !_rules[rule_]() { - goto l333 + goto l341 } - goto l334 - l333: - position, tokenIndex = position333, tokenIndex333 + goto l342 + l341: + position, tokenIndex = position341, tokenIndex341 } - l334: + l342: if !_rules[ruleAuthorship]() { - goto l331 + goto l339 } - goto l332 - l331: - position, tokenIndex = position331, tokenIndex331 + goto l340 + l339: + position, tokenIndex = position339, tokenIndex339 } - l332: - add(ruleUninomialCombo1, position328) + l340: + add(ruleUninomialCombo1, position336) } return true - l327: - position, tokenIndex = position327, tokenIndex327 + l335: + position, tokenIndex = position335, tokenIndex335 return false }, - /* 46 UninomialCombo2 <- <(Uninomial _ RankUninomial _ Uninomial)> */ + /* 48 UninomialCombo2 <- <(Uninomial _ RankUninomial _ Uninomial)> */ func() bool { - position335, tokenIndex335 := position, tokenIndex + position343, tokenIndex343 := position, tokenIndex { - position336 := position + position344 := position if !_rules[ruleUninomial]() { - goto l335 + goto l343 } if !_rules[rule_]() { - goto l335 + goto l343 } if !_rules[ruleRankUninomial]() { - goto l335 + goto l343 } if !_rules[rule_]() { - goto l335 + goto l343 } if !_rules[ruleUninomial]() { - goto l335 + goto l343 } - add(ruleUninomialCombo2, position336) + add(ruleUninomialCombo2, position344) } return true - l335: - position, tokenIndex = position335, tokenIndex335 + l343: + position, tokenIndex = position343, tokenIndex343 return false }, - /* 47 RankUninomial <- <(RankUninomialPlain / RankUninomialNotho)> */ + /* 49 RankUninomial <- <(RankUninomialPlain / RankUninomialNotho)> */ func() bool { - position337, tokenIndex337 := position, tokenIndex + position345, tokenIndex345 := position, tokenIndex { - position338 := position + position346 := position { - position339, tokenIndex339 := position, tokenIndex + position347, tokenIndex347 := position, tokenIndex if !_rules[ruleRankUninomialPlain]() { - goto l340 + goto l348 } - goto l339 - l340: - position, tokenIndex = position339, tokenIndex339 + goto l347 + l348: + position, tokenIndex = position347, tokenIndex347 if !_rules[ruleRankUninomialNotho]() { - goto l337 + goto l345 } } - l339: - add(ruleRankUninomial, position338) + l347: + add(ruleRankUninomial, position346) } return true - l337: - position, tokenIndex = position337, tokenIndex337 + l345: + position, tokenIndex = position345, tokenIndex345 return false }, - /* 48 RankUninomialPlain <- <((('s' 'e' 'c' 't') / ('s' 'u' 'b' 's' 'e' 'c' 't') / ('t' 'r' 'i' 'b') / ('t' 'r') / ('s' 'u' 'b' 't' 'r' 'i' 'b') / ('s' 'u' 'b' 't' 'r') / ('s' 'u' 'b' 's' 'e' 'r') / ('s' 'e' 'r') / ('s' 'u' 'b' 'g' 'e' 'n') / ('s' 'u' 'b' 'g') / ('f' 'a' 'm') / ('s' 'u' 'b' 'f' 'a' 'm') / ('d' 'i' 'v') / ('s' 'u' 'p' 'e' 'r' 't' 'r' 'i' 'b')) ('.' / &SpaceCharEOI))> */ + /* 50 RankUninomialPlain <- <((('s' 'e' 'c' 't') / ('s' 'u' 'b' 's' 'e' 'c' 't') / ('t' 'r' 'i' 'b') / ('t' 'r') / ('s' 'u' 'b' 't' 'r' 'i' 'b') / ('s' 'u' 'b' 't' 'r') / ('s' 'u' 'b' 's' 'e' 'r') / ('s' 'e' 'r') / ('s' 'u' 'b' 'g' 'e' 'n') / ('s' 'u' 'b' 'g') / ('f' 'a' 'm') / ('s' 'u' 'b' 'f' 'a' 'm') / ('d' 'i' 'v') / ('s' 'u' 'p' 'e' 'r' 't' 'r' 'i' 'b')) ('.' / &SpaceCharEOI))> */ func() bool { - position341, tokenIndex341 := position, tokenIndex + position349, tokenIndex349 := position, tokenIndex { - position342 := position + position350 := position { - position343, tokenIndex343 := position, tokenIndex + position351, tokenIndex351 := position, tokenIndex if buffer[position] != rune('s') { - goto l344 + goto l352 } position++ if buffer[position] != rune('e') { - goto l344 + goto l352 } position++ if buffer[position] != rune('c') { - goto l344 + goto l352 } position++ if buffer[position] != rune('t') { - goto l344 + goto l352 } position++ - goto l343 - l344: - position, tokenIndex = position343, tokenIndex343 + goto l351 + l352: + position, tokenIndex = position351, tokenIndex351 if buffer[position] != rune('s') { - goto l345 + goto l353 } position++ if buffer[position] != rune('u') { - goto l345 + goto l353 } position++ if buffer[position] != rune('b') { - goto l345 + goto l353 } position++ if buffer[position] != rune('s') { - goto l345 + goto l353 } position++ if buffer[position] != rune('e') { - goto l345 + goto l353 } position++ if buffer[position] != rune('c') { - goto l345 + goto l353 } position++ if buffer[position] != rune('t') { - goto l345 + goto l353 } position++ - goto l343 - l345: - position, tokenIndex = position343, tokenIndex343 + goto l351 + l353: + position, tokenIndex = position351, tokenIndex351 if buffer[position] != rune('t') { - goto l346 + goto l354 } position++ if buffer[position] != rune('r') { - goto l346 + goto l354 } position++ if buffer[position] != rune('i') { - goto l346 + goto l354 } position++ if buffer[position] != rune('b') { - goto l346 + goto l354 } position++ - goto l343 - l346: - position, tokenIndex = position343, tokenIndex343 + goto l351 + l354: + position, tokenIndex = position351, tokenIndex351 if buffer[position] != rune('t') { - goto l347 + goto l355 } position++ if buffer[position] != rune('r') { - goto l347 + goto l355 } position++ - goto l343 - l347: - position, tokenIndex = position343, tokenIndex343 + goto l351 + l355: + position, tokenIndex = position351, tokenIndex351 if buffer[position] != rune('s') { - goto l348 + goto l356 } position++ if buffer[position] != rune('u') { - goto l348 + goto l356 } position++ if buffer[position] != rune('b') { - goto l348 + goto l356 } position++ if buffer[position] != rune('t') { - goto l348 + goto l356 } position++ if buffer[position] != rune('r') { - goto l348 + goto l356 } position++ if buffer[position] != rune('i') { - goto l348 + goto l356 } position++ if buffer[position] != rune('b') { - goto l348 + goto l356 } position++ - goto l343 - l348: - position, tokenIndex = position343, tokenIndex343 + goto l351 + l356: + position, tokenIndex = position351, tokenIndex351 if buffer[position] != rune('s') { - goto l349 + goto l357 } position++ if buffer[position] != rune('u') { - goto l349 + goto l357 } position++ if buffer[position] != rune('b') { - goto l349 + goto l357 } position++ if buffer[position] != rune('t') { - goto l349 + goto l357 } position++ if buffer[position] != rune('r') { - goto l349 + goto l357 } position++ - goto l343 - l349: - position, tokenIndex = position343, tokenIndex343 + goto l351 + l357: + position, tokenIndex = position351, tokenIndex351 if buffer[position] != rune('s') { - goto l350 + goto l358 } position++ if buffer[position] != rune('u') { - goto l350 + goto l358 } position++ if buffer[position] != rune('b') { - goto l350 + goto l358 } position++ if buffer[position] != rune('s') { - goto l350 + goto l358 } position++ if buffer[position] != rune('e') { - goto l350 + goto l358 } position++ if buffer[position] != rune('r') { - goto l350 + goto l358 } position++ - goto l343 - l350: - position, tokenIndex = position343, tokenIndex343 + goto l351 + l358: + position, tokenIndex = position351, tokenIndex351 if buffer[position] != rune('s') { - goto l351 + goto l359 } position++ if buffer[position] != rune('e') { - goto l351 + goto l359 } position++ if buffer[position] != rune('r') { - goto l351 + goto l359 } position++ - goto l343 - l351: - position, tokenIndex = position343, tokenIndex343 + goto l351 + l359: + position, tokenIndex = position351, tokenIndex351 if buffer[position] != rune('s') { - goto l352 + goto l360 } position++ if buffer[position] != rune('u') { - goto l352 + goto l360 } position++ if buffer[position] != rune('b') { - goto l352 + goto l360 } position++ if buffer[position] != rune('g') { - goto l352 + goto l360 } position++ if buffer[position] != rune('e') { - goto l352 + goto l360 } position++ if buffer[position] != rune('n') { - goto l352 + goto l360 } position++ - goto l343 - l352: - position, tokenIndex = position343, tokenIndex343 + goto l351 + l360: + position, tokenIndex = position351, tokenIndex351 if buffer[position] != rune('s') { - goto l353 + goto l361 } position++ if buffer[position] != rune('u') { - goto l353 + goto l361 } position++ if buffer[position] != rune('b') { - goto l353 + goto l361 } position++ if buffer[position] != rune('g') { - goto l353 + goto l361 } position++ - goto l343 - l353: - position, tokenIndex = position343, tokenIndex343 + goto l351 + l361: + position, tokenIndex = position351, tokenIndex351 if buffer[position] != rune('f') { - goto l354 + goto l362 } position++ if buffer[position] != rune('a') { - goto l354 + goto l362 } position++ if buffer[position] != rune('m') { - goto l354 + goto l362 } position++ - goto l343 - l354: - position, tokenIndex = position343, tokenIndex343 + goto l351 + l362: + position, tokenIndex = position351, tokenIndex351 if buffer[position] != rune('s') { - goto l355 + goto l363 } position++ if buffer[position] != rune('u') { - goto l355 + goto l363 } position++ if buffer[position] != rune('b') { - goto l355 + goto l363 } position++ if buffer[position] != rune('f') { - goto l355 + goto l363 } position++ if buffer[position] != rune('a') { - goto l355 + goto l363 } position++ if buffer[position] != rune('m') { - goto l355 + goto l363 } position++ - goto l343 - l355: - position, tokenIndex = position343, tokenIndex343 + goto l351 + l363: + position, tokenIndex = position351, tokenIndex351 if buffer[position] != rune('d') { - goto l356 + goto l364 } position++ if buffer[position] != rune('i') { - goto l356 + goto l364 } position++ if buffer[position] != rune('v') { - goto l356 + goto l364 } position++ - goto l343 - l356: - position, tokenIndex = position343, tokenIndex343 + goto l351 + l364: + position, tokenIndex = position351, tokenIndex351 if buffer[position] != rune('s') { - goto l341 + goto l349 } position++ if buffer[position] != rune('u') { - goto l341 + goto l349 } position++ if buffer[position] != rune('p') { - goto l341 + goto l349 } position++ if buffer[position] != rune('e') { - goto l341 + goto l349 } position++ if buffer[position] != rune('r') { - goto l341 + goto l349 } position++ if buffer[position] != rune('t') { - goto l341 + goto l349 } position++ if buffer[position] != rune('r') { - goto l341 + goto l349 } position++ if buffer[position] != rune('i') { - goto l341 + goto l349 } position++ if buffer[position] != rune('b') { - goto l341 + goto l349 } position++ } - l343: + l351: { - position357, tokenIndex357 := position, tokenIndex + position365, tokenIndex365 := position, tokenIndex if buffer[position] != rune('.') { - goto l358 + goto l366 } position++ - goto l357 - l358: - position, tokenIndex = position357, tokenIndex357 + goto l365 + l366: + position, tokenIndex = position365, tokenIndex365 { - position359, tokenIndex359 := position, tokenIndex + position367, tokenIndex367 := position, tokenIndex if !_rules[ruleSpaceCharEOI]() { - goto l341 + goto l349 } - position, tokenIndex = position359, tokenIndex359 + position, tokenIndex = position367, tokenIndex367 } } - l357: - add(ruleRankUninomialPlain, position342) + l365: + add(ruleRankUninomialPlain, position350) } return true - l341: - position, tokenIndex = position341, tokenIndex341 + l349: + position, tokenIndex = position349, tokenIndex349 return false }, - /* 49 RankUninomialNotho <- <('n' 'o' 't' 'h' 'o' _? (('s' 'e' 'c' 't') / ('g' 'e' 'n') / ('s' 'e' 'r') / ('s' 'u' 'b' 'g' 'e' 'e' 'n') / ('s' 'u' 'b' 'g' 'e' 'n') / ('s' 'u' 'b' 'g') / ('s' 'u' 'b' 's' 'e' 'c' 't') / ('s' 'u' 'b' 't' 'r' 'i' 'b')) ('.' / &SpaceCharEOI))> */ + /* 51 RankUninomialNotho <- <('n' 'o' 't' 'h' 'o' _? (('s' 'e' 'c' 't') / ('g' 'e' 'n') / ('s' 'e' 'r') / ('s' 'u' 'b' 'g' 'e' 'e' 'n') / ('s' 'u' 'b' 'g' 'e' 'n') / ('s' 'u' 'b' 'g') / ('s' 'u' 'b' 's' 'e' 'c' 't') / ('s' 'u' 'b' 't' 'r' 'i' 'b')) ('.' / &SpaceCharEOI))> */ func() bool { - position360, tokenIndex360 := position, tokenIndex + position368, tokenIndex368 := position, tokenIndex { - position361 := position + position369 := position if buffer[position] != rune('n') { - goto l360 + goto l368 } position++ if buffer[position] != rune('o') { - goto l360 + goto l368 } position++ if buffer[position] != rune('t') { - goto l360 + goto l368 } position++ if buffer[position] != rune('h') { - goto l360 + goto l368 } position++ if buffer[position] != rune('o') { - goto l360 + goto l368 } position++ { - position362, tokenIndex362 := position, tokenIndex + position370, tokenIndex370 := position, tokenIndex if !_rules[rule_]() { - goto l362 + goto l370 } - goto l363 - l362: - position, tokenIndex = position362, tokenIndex362 + goto l371 + l370: + position, tokenIndex = position370, tokenIndex370 } - l363: + l371: { - position364, tokenIndex364 := position, tokenIndex + position372, tokenIndex372 := position, tokenIndex if buffer[position] != rune('s') { - goto l365 + goto l373 } position++ if buffer[position] != rune('e') { - goto l365 + goto l373 } position++ if buffer[position] != rune('c') { - goto l365 + goto l373 } position++ if buffer[position] != rune('t') { - goto l365 + goto l373 } position++ - goto l364 - l365: - position, tokenIndex = position364, tokenIndex364 + goto l372 + l373: + position, tokenIndex = position372, tokenIndex372 if buffer[position] != rune('g') { - goto l366 + goto l374 } position++ if buffer[position] != rune('e') { - goto l366 + goto l374 } position++ if buffer[position] != rune('n') { - goto l366 + goto l374 } position++ - goto l364 - l366: - position, tokenIndex = position364, tokenIndex364 + goto l372 + l374: + position, tokenIndex = position372, tokenIndex372 if buffer[position] != rune('s') { - goto l367 + goto l375 } position++ if buffer[position] != rune('e') { - goto l367 + goto l375 } position++ if buffer[position] != rune('r') { - goto l367 + goto l375 } position++ - goto l364 - l367: - position, tokenIndex = position364, tokenIndex364 + goto l372 + l375: + position, tokenIndex = position372, tokenIndex372 if buffer[position] != rune('s') { - goto l368 + goto l376 } position++ if buffer[position] != rune('u') { - goto l368 + goto l376 } position++ if buffer[position] != rune('b') { - goto l368 + goto l376 } position++ if buffer[position] != rune('g') { - goto l368 + goto l376 } position++ if buffer[position] != rune('e') { - goto l368 + goto l376 } position++ if buffer[position] != rune('e') { - goto l368 + goto l376 } position++ if buffer[position] != rune('n') { - goto l368 + goto l376 } position++ - goto l364 - l368: - position, tokenIndex = position364, tokenIndex364 + goto l372 + l376: + position, tokenIndex = position372, tokenIndex372 if buffer[position] != rune('s') { - goto l369 + goto l377 } position++ if buffer[position] != rune('u') { - goto l369 + goto l377 } position++ if buffer[position] != rune('b') { - goto l369 + goto l377 } position++ if buffer[position] != rune('g') { - goto l369 + goto l377 } position++ if buffer[position] != rune('e') { - goto l369 + goto l377 } position++ if buffer[position] != rune('n') { - goto l369 + goto l377 } position++ - goto l364 - l369: - position, tokenIndex = position364, tokenIndex364 + goto l372 + l377: + position, tokenIndex = position372, tokenIndex372 if buffer[position] != rune('s') { - goto l370 + goto l378 } position++ if buffer[position] != rune('u') { - goto l370 + goto l378 } position++ if buffer[position] != rune('b') { - goto l370 + goto l378 } position++ if buffer[position] != rune('g') { - goto l370 + goto l378 } position++ - goto l364 - l370: - position, tokenIndex = position364, tokenIndex364 + goto l372 + l378: + position, tokenIndex = position372, tokenIndex372 if buffer[position] != rune('s') { - goto l371 + goto l379 } position++ if buffer[position] != rune('u') { - goto l371 + goto l379 } position++ if buffer[position] != rune('b') { - goto l371 + goto l379 } position++ if buffer[position] != rune('s') { - goto l371 + goto l379 } position++ if buffer[position] != rune('e') { - goto l371 + goto l379 } position++ if buffer[position] != rune('c') { - goto l371 + goto l379 } position++ if buffer[position] != rune('t') { - goto l371 + goto l379 } position++ - goto l364 - l371: - position, tokenIndex = position364, tokenIndex364 + goto l372 + l379: + position, tokenIndex = position372, tokenIndex372 if buffer[position] != rune('s') { - goto l360 + goto l368 } position++ if buffer[position] != rune('u') { - goto l360 + goto l368 } position++ if buffer[position] != rune('b') { - goto l360 + goto l368 } position++ if buffer[position] != rune('t') { - goto l360 + goto l368 } position++ if buffer[position] != rune('r') { - goto l360 + goto l368 } position++ if buffer[position] != rune('i') { - goto l360 + goto l368 } position++ if buffer[position] != rune('b') { - goto l360 + goto l368 } position++ } - l364: + l372: { - position372, tokenIndex372 := position, tokenIndex + position380, tokenIndex380 := position, tokenIndex if buffer[position] != rune('.') { - goto l373 + goto l381 } position++ - goto l372 - l373: - position, tokenIndex = position372, tokenIndex372 + goto l380 + l381: + position, tokenIndex = position380, tokenIndex380 { - position374, tokenIndex374 := position, tokenIndex + position382, tokenIndex382 := position, tokenIndex if !_rules[ruleSpaceCharEOI]() { - goto l360 + goto l368 } - position, tokenIndex = position374, tokenIndex374 + position, tokenIndex = position382, tokenIndex382 } } - l372: - add(ruleRankUninomialNotho, position361) + l380: + add(ruleRankUninomialNotho, position369) } return true - l360: - position, tokenIndex = position360, tokenIndex360 + l368: + position, tokenIndex = position368, tokenIndex368 return false }, - /* 50 Uninomial <- <(UninomialWord (_ Authorship !(_ LowerCharExtended LowerCharExtended LowerCharExtended))?)> */ + /* 52 Uninomial <- <(UninomialWord (_ Authorship !(_ LowerCharExtended LowerCharExtended LowerCharExtended))?)> */ func() bool { - position375, tokenIndex375 := position, tokenIndex + position383, tokenIndex383 := position, tokenIndex { - position376 := position + position384 := position if !_rules[ruleUninomialWord]() { - goto l375 + goto l383 } { - position377, tokenIndex377 := position, tokenIndex + position385, tokenIndex385 := position, tokenIndex if !_rules[rule_]() { - goto l377 + goto l385 } if !_rules[ruleAuthorship]() { - goto l377 + goto l385 } { - position379, tokenIndex379 := position, tokenIndex + position387, tokenIndex387 := position, tokenIndex if !_rules[rule_]() { - goto l379 + goto l387 } if !_rules[ruleLowerCharExtended]() { - goto l379 + goto l387 } if !_rules[ruleLowerCharExtended]() { - goto l379 + goto l387 } if !_rules[ruleLowerCharExtended]() { - goto l379 + goto l387 } - goto l377 - l379: - position, tokenIndex = position379, tokenIndex379 + goto l385 + l387: + position, tokenIndex = position387, tokenIndex387 } - goto l378 - l377: - position, tokenIndex = position377, tokenIndex377 + goto l386 + l385: + position, tokenIndex = position385, tokenIndex385 } - l378: - add(ruleUninomial, position376) + l386: + add(ruleUninomial, position384) } return true - l375: - position, tokenIndex = position375, tokenIndex375 + l383: + position, tokenIndex = position383, tokenIndex383 return false }, - /* 51 UninomialWord <- <(CapWord / TwoLetterGenus)> */ + /* 53 UninomialWord <- <(CapWord / TwoLetterGenus)> */ func() bool { - position380, tokenIndex380 := position, tokenIndex + position388, tokenIndex388 := position, tokenIndex { - position381 := position + position389 := position { - position382, tokenIndex382 := position, tokenIndex + position390, tokenIndex390 := position, tokenIndex if !_rules[ruleCapWord]() { - goto l383 + goto l391 } - goto l382 - l383: - position, tokenIndex = position382, tokenIndex382 + goto l390 + l391: + position, tokenIndex = position390, tokenIndex390 if !_rules[ruleTwoLetterGenus]() { - goto l380 + goto l388 } } - l382: - add(ruleUninomialWord, position381) + l390: + add(ruleUninomialWord, position389) } return true - l380: - position, tokenIndex = position380, tokenIndex380 + l388: + position, tokenIndex = position388, tokenIndex388 return false }, - /* 52 AbbrSubgenus <- <(UpperChar LowerChar* '.')> */ + /* 54 AbbrSubgenus <- <(UpperChar LowerChar* '.')> */ func() bool { - position384, tokenIndex384 := position, tokenIndex + position392, tokenIndex392 := position, tokenIndex { - position385 := position + position393 := position if !_rules[ruleUpperChar]() { - goto l384 + goto l392 } - l386: + l394: { - position387, tokenIndex387 := position, tokenIndex + position395, tokenIndex395 := position, tokenIndex if !_rules[ruleLowerChar]() { - goto l387 + goto l395 } - goto l386 - l387: - position, tokenIndex = position387, tokenIndex387 + goto l394 + l395: + position, tokenIndex = position395, tokenIndex395 } if buffer[position] != rune('.') { - goto l384 + goto l392 } position++ - add(ruleAbbrSubgenus, position385) + add(ruleAbbrSubgenus, position393) } return true - l384: - position, tokenIndex = position384, tokenIndex384 + l392: + position, tokenIndex = position392, tokenIndex392 return false }, - /* 53 AbbrGenus <- <(UpperChar LowerChar? '.')> */ + /* 55 AbbrGenus <- <(UpperChar LowerChar? '.')> */ func() bool { - position388, tokenIndex388 := position, tokenIndex + position396, tokenIndex396 := position, tokenIndex { - position389 := position + position397 := position if !_rules[ruleUpperChar]() { - goto l388 + goto l396 } { - position390, tokenIndex390 := position, tokenIndex + position398, tokenIndex398 := position, tokenIndex if !_rules[ruleLowerChar]() { - goto l390 + goto l398 } - goto l391 - l390: - position, tokenIndex = position390, tokenIndex390 + goto l399 + l398: + position, tokenIndex = position398, tokenIndex398 } - l391: + l399: if buffer[position] != rune('.') { - goto l388 + goto l396 } position++ - add(ruleAbbrGenus, position389) + add(ruleAbbrGenus, position397) } return true - l388: - position, tokenIndex = position388, tokenIndex388 + l396: + position, tokenIndex = position396, tokenIndex396 return false }, - /* 54 CapWord <- <(CapWordWithDash / CapWord1)> */ + /* 56 CapWord <- <(CapWordWithDash / CapWord1)> */ func() bool { - position392, tokenIndex392 := position, tokenIndex + position400, tokenIndex400 := position, tokenIndex { - position393 := position + position401 := position { - position394, tokenIndex394 := position, tokenIndex + position402, tokenIndex402 := position, tokenIndex if !_rules[ruleCapWordWithDash]() { - goto l395 + goto l403 } - goto l394 - l395: - position, tokenIndex = position394, tokenIndex394 + goto l402 + l403: + position, tokenIndex = position402, tokenIndex402 if !_rules[ruleCapWord1]() { - goto l392 + goto l400 } } - l394: - add(ruleCapWord, position393) + l402: + add(ruleCapWord, position401) } return true - l392: - position, tokenIndex = position392, tokenIndex392 + l400: + position, tokenIndex = position400, tokenIndex400 return false }, - /* 55 CapWord1 <- <(NameUpperChar NameLowerChar NameLowerChar+ '?'?)> */ + /* 57 CapWord1 <- <(NameUpperChar NameLowerChar NameLowerChar+ '?'?)> */ func() bool { - position396, tokenIndex396 := position, tokenIndex + position404, tokenIndex404 := position, tokenIndex { - position397 := position + position405 := position if !_rules[ruleNameUpperChar]() { - goto l396 + goto l404 } if !_rules[ruleNameLowerChar]() { - goto l396 + goto l404 } if !_rules[ruleNameLowerChar]() { - goto l396 + goto l404 } - l398: + l406: { - position399, tokenIndex399 := position, tokenIndex + position407, tokenIndex407 := position, tokenIndex if !_rules[ruleNameLowerChar]() { - goto l399 + goto l407 } - goto l398 - l399: - position, tokenIndex = position399, tokenIndex399 + goto l406 + l407: + position, tokenIndex = position407, tokenIndex407 } { - position400, tokenIndex400 := position, tokenIndex + position408, tokenIndex408 := position, tokenIndex if buffer[position] != rune('?') { - goto l400 + goto l408 } position++ - goto l401 - l400: - position, tokenIndex = position400, tokenIndex400 + goto l409 + l408: + position, tokenIndex = position408, tokenIndex408 } - l401: - add(ruleCapWord1, position397) + l409: + add(ruleCapWord1, position405) } return true - l396: - position, tokenIndex = position396, tokenIndex396 + l404: + position, tokenIndex = position404, tokenIndex404 return false }, - /* 56 CapWordWithDash <- <((CapWord1 / TwoLetterGenusDashedSegment) Dash WordAfterDash (Dash WordAfterDash)?)> */ + /* 58 CapWordWithDash <- <((CapWord1 / TwoLetterGenusDashedSegment) Dash WordAfterDash (Dash WordAfterDash)?)> */ func() bool { - position402, tokenIndex402 := position, tokenIndex + position410, tokenIndex410 := position, tokenIndex { - position403 := position + position411 := position { - position404, tokenIndex404 := position, tokenIndex + position412, tokenIndex412 := position, tokenIndex if !_rules[ruleCapWord1]() { - goto l405 + goto l413 } - goto l404 - l405: - position, tokenIndex = position404, tokenIndex404 + goto l412 + l413: + position, tokenIndex = position412, tokenIndex412 if !_rules[ruleTwoLetterGenusDashedSegment]() { - goto l402 + goto l410 } } - l404: + l412: if !_rules[ruleDash]() { - goto l402 + goto l410 } if !_rules[ruleWordAfterDash]() { - goto l402 + goto l410 } { - position406, tokenIndex406 := position, tokenIndex + position414, tokenIndex414 := position, tokenIndex if !_rules[ruleDash]() { - goto l406 + goto l414 } if !_rules[ruleWordAfterDash]() { - goto l406 + goto l414 } - goto l407 - l406: - position, tokenIndex = position406, tokenIndex406 + goto l415 + l414: + position, tokenIndex = position414, tokenIndex414 } - l407: - add(ruleCapWordWithDash, position403) + l415: + add(ruleCapWordWithDash, position411) } return true - l402: - position, tokenIndex = position402, tokenIndex402 + l410: + position, tokenIndex = position410, tokenIndex410 return false }, - /* 57 TwoLetterGenusDashedSegment <- <(('D' 'e') / ('E' 'u') / ('L' 'e') / ('N' 'e'))> */ + /* 59 TwoLetterGenusDashedSegment <- <(('D' 'e') / ('E' 'u') / ('L' 'e') / ('N' 'e'))> */ func() bool { - position408, tokenIndex408 := position, tokenIndex + position416, tokenIndex416 := position, tokenIndex { - position409 := position + position417 := position { - position410, tokenIndex410 := position, tokenIndex + position418, tokenIndex418 := position, tokenIndex if buffer[position] != rune('D') { - goto l411 + goto l419 } position++ if buffer[position] != rune('e') { - goto l411 + goto l419 } position++ - goto l410 - l411: - position, tokenIndex = position410, tokenIndex410 + goto l418 + l419: + position, tokenIndex = position418, tokenIndex418 if buffer[position] != rune('E') { - goto l412 + goto l420 } position++ if buffer[position] != rune('u') { - goto l412 + goto l420 } position++ - goto l410 - l412: - position, tokenIndex = position410, tokenIndex410 + goto l418 + l420: + position, tokenIndex = position418, tokenIndex418 if buffer[position] != rune('L') { - goto l413 + goto l421 } position++ if buffer[position] != rune('e') { - goto l413 + goto l421 } position++ - goto l410 - l413: - position, tokenIndex = position410, tokenIndex410 + goto l418 + l421: + position, tokenIndex = position418, tokenIndex418 if buffer[position] != rune('N') { - goto l408 + goto l416 } position++ if buffer[position] != rune('e') { - goto l408 + goto l416 } position++ } - l410: - add(ruleTwoLetterGenusDashedSegment, position409) + l418: + add(ruleTwoLetterGenusDashedSegment, position417) } return true - l408: - position, tokenIndex = position408, tokenIndex408 + l416: + position, tokenIndex = position416, tokenIndex416 return false }, - /* 58 WordAfterDash <- <(UpperAfterDash / LowerAfterDash)> */ + /* 60 WordAfterDash <- <(UpperAfterDash / LowerAfterDash)> */ func() bool { - position414, tokenIndex414 := position, tokenIndex + position422, tokenIndex422 := position, tokenIndex { - position415 := position + position423 := position { - position416, tokenIndex416 := position, tokenIndex + position424, tokenIndex424 := position, tokenIndex if !_rules[ruleUpperAfterDash]() { - goto l417 + goto l425 } - goto l416 - l417: - position, tokenIndex = position416, tokenIndex416 + goto l424 + l425: + position, tokenIndex = position424, tokenIndex424 if !_rules[ruleLowerAfterDash]() { - goto l414 + goto l422 } } - l416: - add(ruleWordAfterDash, position415) + l424: + add(ruleWordAfterDash, position423) } return true - l414: - position, tokenIndex = position414, tokenIndex414 + l422: + position, tokenIndex = position422, tokenIndex422 return false }, - /* 59 UpperAfterDash <- */ + /* 61 UpperAfterDash <- */ func() bool { - position418, tokenIndex418 := position, tokenIndex + position426, tokenIndex426 := position, tokenIndex { - position419 := position + position427 := position if !_rules[ruleCapWord1]() { - goto l418 + goto l426 } - add(ruleUpperAfterDash, position419) + add(ruleUpperAfterDash, position427) } return true - l418: - position, tokenIndex = position418, tokenIndex418 + l426: + position, tokenIndex = position426, tokenIndex426 return false }, - /* 60 LowerAfterDash <- */ + /* 62 LowerAfterDash <- */ func() bool { - position420, tokenIndex420 := position, tokenIndex + position428, tokenIndex428 := position, tokenIndex { - position421 := position + position429 := position if !_rules[ruleWord1]() { - goto l420 + goto l428 } - add(ruleLowerAfterDash, position421) + add(ruleLowerAfterDash, position429) } return true - l420: - position, tokenIndex = position420, tokenIndex420 + l428: + position, tokenIndex = position428, tokenIndex428 return false }, - /* 61 TwoLetterGenus <- <(('C' 'a') / ('D' 'o') / ('E' 'a') / ('G' 'e') / ('I' 'a') / ('I' 'o') / ('I' 'x') / ('L' 'o') / ('O' 'a') / ('O' 'o') / ('N' 'u') / ('R' 'a') / ('T' 'y') / ('U' 'a') / ('A' 'a') / ('J' 'a') / ('Z' 'u') / ('L' 'a') / ('Q' 'u') / ('A' 's') / ('B' 'a'))> */ + /* 63 TwoLetterGenus <- <(('C' 'a') / ('D' 'o') / ('E' 'a') / ('G' 'e') / ('I' 'a') / ('I' 'o') / ('I' 'x') / ('L' 'o') / ('O' 'a') / ('O' 'o') / ('N' 'u') / ('R' 'a') / ('T' 'y') / ('U' 'a') / ('A' 'a') / ('J' 'a') / ('Z' 'u') / ('L' 'a') / ('Q' 'u') / ('A' 's') / ('B' 'a'))> */ func() bool { - position422, tokenIndex422 := position, tokenIndex + position430, tokenIndex430 := position, tokenIndex { - position423 := position + position431 := position { - position424, tokenIndex424 := position, tokenIndex + position432, tokenIndex432 := position, tokenIndex if buffer[position] != rune('C') { - goto l425 + goto l433 } position++ if buffer[position] != rune('a') { - goto l425 + goto l433 } position++ - goto l424 - l425: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l433: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('D') { - goto l426 + goto l434 } position++ if buffer[position] != rune('o') { - goto l426 + goto l434 } position++ - goto l424 - l426: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l434: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('E') { - goto l427 + goto l435 } position++ if buffer[position] != rune('a') { - goto l427 + goto l435 } position++ - goto l424 - l427: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l435: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('G') { - goto l428 + goto l436 } position++ if buffer[position] != rune('e') { - goto l428 + goto l436 } position++ - goto l424 - l428: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l436: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('I') { - goto l429 + goto l437 } position++ if buffer[position] != rune('a') { - goto l429 + goto l437 } position++ - goto l424 - l429: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l437: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('I') { - goto l430 + goto l438 } position++ if buffer[position] != rune('o') { - goto l430 + goto l438 } position++ - goto l424 - l430: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l438: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('I') { - goto l431 + goto l439 } position++ if buffer[position] != rune('x') { - goto l431 + goto l439 } position++ - goto l424 - l431: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l439: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('L') { - goto l432 + goto l440 } position++ if buffer[position] != rune('o') { - goto l432 + goto l440 } position++ - goto l424 - l432: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l440: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('O') { - goto l433 + goto l441 } position++ if buffer[position] != rune('a') { - goto l433 + goto l441 } position++ - goto l424 - l433: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l441: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('O') { - goto l434 + goto l442 } position++ if buffer[position] != rune('o') { - goto l434 + goto l442 } position++ - goto l424 - l434: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l442: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('N') { - goto l435 + goto l443 } position++ if buffer[position] != rune('u') { - goto l435 + goto l443 } position++ - goto l424 - l435: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l443: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('R') { - goto l436 + goto l444 } position++ if buffer[position] != rune('a') { - goto l436 + goto l444 } position++ - goto l424 - l436: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l444: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('T') { - goto l437 + goto l445 } position++ if buffer[position] != rune('y') { - goto l437 + goto l445 } position++ - goto l424 - l437: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l445: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('U') { - goto l438 + goto l446 } position++ if buffer[position] != rune('a') { - goto l438 + goto l446 } position++ - goto l424 - l438: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l446: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('A') { - goto l439 + goto l447 } position++ if buffer[position] != rune('a') { - goto l439 + goto l447 } position++ - goto l424 - l439: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l447: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('J') { - goto l440 + goto l448 } position++ if buffer[position] != rune('a') { - goto l440 + goto l448 } position++ - goto l424 - l440: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l448: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('Z') { - goto l441 + goto l449 } position++ if buffer[position] != rune('u') { - goto l441 + goto l449 } position++ - goto l424 - l441: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l449: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('L') { - goto l442 + goto l450 } position++ if buffer[position] != rune('a') { - goto l442 + goto l450 } position++ - goto l424 - l442: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l450: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('Q') { - goto l443 + goto l451 } position++ if buffer[position] != rune('u') { - goto l443 + goto l451 } position++ - goto l424 - l443: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l451: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('A') { - goto l444 + goto l452 } position++ if buffer[position] != rune('s') { - goto l444 + goto l452 } position++ - goto l424 - l444: - position, tokenIndex = position424, tokenIndex424 + goto l432 + l452: + position, tokenIndex = position432, tokenIndex432 if buffer[position] != rune('B') { - goto l422 + goto l430 } position++ if buffer[position] != rune('a') { - goto l422 + goto l430 } position++ } - l424: - add(ruleTwoLetterGenus, position423) + l432: + add(ruleTwoLetterGenus, position431) } return true - l422: - position, tokenIndex = position422, tokenIndex422 + l430: + position, tokenIndex = position430, tokenIndex430 return false }, - /* 62 Word <- <(!((('e' 'x') / ('e' 't') / ('a' 'n' 'd') / ('a' 'p' 'u' 'd') / ('p' 'r' 'o') / ('c' 'v') / ('c' 'u' 'l' 't' 'i' 'v' 'a' 'r') / AuthorPrefix / RankUninomial / Approximation / Word4) SpaceCharEOI) (WordApostr / WordStartsWithDigit / MultiDashedWord / Word2 / Word1) &(SpaceCharEOI / '('))> */ + /* 64 Word <- <(!((('e' 'x') / ('e' 't') / ('a' 'n' 'd') / ('a' 'p' 'u' 'd') / ('p' 'r' 'o') / ('c' 'v') / ('c' 'u' 'l' 't' 'i' 'v' 'a' 'r') / AuthorPrefix / RankUninomial / Approximation / Word4) SpaceCharEOI) (WordApostr / WordStartsWithDigit / MultiDashedWord / Word2 / Word1) &(SpaceCharEOI / '('))> */ func() bool { - position445, tokenIndex445 := position, tokenIndex + position453, tokenIndex453 := position, tokenIndex { - position446 := position + position454 := position { - position447, tokenIndex447 := position, tokenIndex + position455, tokenIndex455 := position, tokenIndex { - position448, tokenIndex448 := position, tokenIndex + position456, tokenIndex456 := position, tokenIndex if buffer[position] != rune('e') { - goto l449 + goto l457 } position++ if buffer[position] != rune('x') { - goto l449 + goto l457 } position++ - goto l448 - l449: - position, tokenIndex = position448, tokenIndex448 + goto l456 + l457: + position, tokenIndex = position456, tokenIndex456 if buffer[position] != rune('e') { - goto l450 + goto l458 } position++ if buffer[position] != rune('t') { - goto l450 + goto l458 } position++ - goto l448 - l450: - position, tokenIndex = position448, tokenIndex448 + goto l456 + l458: + position, tokenIndex = position456, tokenIndex456 if buffer[position] != rune('a') { - goto l451 + goto l459 } position++ if buffer[position] != rune('n') { - goto l451 + goto l459 } position++ if buffer[position] != rune('d') { - goto l451 + goto l459 } position++ - goto l448 - l451: - position, tokenIndex = position448, tokenIndex448 + goto l456 + l459: + position, tokenIndex = position456, tokenIndex456 if buffer[position] != rune('a') { - goto l452 + goto l460 } position++ if buffer[position] != rune('p') { - goto l452 + goto l460 } position++ if buffer[position] != rune('u') { - goto l452 + goto l460 } position++ if buffer[position] != rune('d') { - goto l452 + goto l460 } position++ - goto l448 - l452: - position, tokenIndex = position448, tokenIndex448 + goto l456 + l460: + position, tokenIndex = position456, tokenIndex456 if buffer[position] != rune('p') { - goto l453 + goto l461 } position++ if buffer[position] != rune('r') { - goto l453 + goto l461 } position++ if buffer[position] != rune('o') { - goto l453 + goto l461 } position++ - goto l448 - l453: - position, tokenIndex = position448, tokenIndex448 + goto l456 + l461: + position, tokenIndex = position456, tokenIndex456 if buffer[position] != rune('c') { - goto l454 + goto l462 } position++ if buffer[position] != rune('v') { - goto l454 + goto l462 } position++ - goto l448 - l454: - position, tokenIndex = position448, tokenIndex448 + goto l456 + l462: + position, tokenIndex = position456, tokenIndex456 if buffer[position] != rune('c') { - goto l455 + goto l463 } position++ if buffer[position] != rune('u') { - goto l455 + goto l463 } position++ if buffer[position] != rune('l') { - goto l455 + goto l463 } position++ if buffer[position] != rune('t') { - goto l455 + goto l463 } position++ if buffer[position] != rune('i') { - goto l455 + goto l463 } position++ if buffer[position] != rune('v') { - goto l455 + goto l463 } position++ if buffer[position] != rune('a') { - goto l455 + goto l463 } position++ if buffer[position] != rune('r') { - goto l455 + goto l463 } position++ - goto l448 - l455: - position, tokenIndex = position448, tokenIndex448 + goto l456 + l463: + position, tokenIndex = position456, tokenIndex456 if !_rules[ruleAuthorPrefix]() { - goto l456 + goto l464 } - goto l448 - l456: - position, tokenIndex = position448, tokenIndex448 + goto l456 + l464: + position, tokenIndex = position456, tokenIndex456 if !_rules[ruleRankUninomial]() { - goto l457 + goto l465 } - goto l448 - l457: - position, tokenIndex = position448, tokenIndex448 + goto l456 + l465: + position, tokenIndex = position456, tokenIndex456 if !_rules[ruleApproximation]() { - goto l458 + goto l466 } - goto l448 - l458: - position, tokenIndex = position448, tokenIndex448 + goto l456 + l466: + position, tokenIndex = position456, tokenIndex456 if !_rules[ruleWord4]() { - goto l447 + goto l455 } } - l448: + l456: if !_rules[ruleSpaceCharEOI]() { - goto l447 + goto l455 } - goto l445 - l447: - position, tokenIndex = position447, tokenIndex447 + goto l453 + l455: + position, tokenIndex = position455, tokenIndex455 } { - position459, tokenIndex459 := position, tokenIndex + position467, tokenIndex467 := position, tokenIndex if !_rules[ruleWordApostr]() { - goto l460 + goto l468 } - goto l459 - l460: - position, tokenIndex = position459, tokenIndex459 + goto l467 + l468: + position, tokenIndex = position467, tokenIndex467 if !_rules[ruleWordStartsWithDigit]() { - goto l461 + goto l469 } - goto l459 - l461: - position, tokenIndex = position459, tokenIndex459 + goto l467 + l469: + position, tokenIndex = position467, tokenIndex467 if !_rules[ruleMultiDashedWord]() { - goto l462 + goto l470 } - goto l459 - l462: - position, tokenIndex = position459, tokenIndex459 + goto l467 + l470: + position, tokenIndex = position467, tokenIndex467 if !_rules[ruleWord2]() { - goto l463 + goto l471 } - goto l459 - l463: - position, tokenIndex = position459, tokenIndex459 + goto l467 + l471: + position, tokenIndex = position467, tokenIndex467 if !_rules[ruleWord1]() { - goto l445 + goto l453 } } - l459: + l467: { - position464, tokenIndex464 := position, tokenIndex + position472, tokenIndex472 := position, tokenIndex { - position465, tokenIndex465 := position, tokenIndex + position473, tokenIndex473 := position, tokenIndex if !_rules[ruleSpaceCharEOI]() { - goto l466 + goto l474 } - goto l465 - l466: - position, tokenIndex = position465, tokenIndex465 + goto l473 + l474: + position, tokenIndex = position473, tokenIndex473 if buffer[position] != rune('(') { - goto l445 + goto l453 } position++ } - l465: - position, tokenIndex = position464, tokenIndex464 + l473: + position, tokenIndex = position472, tokenIndex472 } - add(ruleWord, position446) + add(ruleWord, position454) } return true - l445: - position, tokenIndex = position445, tokenIndex445 + l453: + position, tokenIndex = position453, tokenIndex453 return false }, - /* 63 Word1 <- <(((DotPrefix / LowerASCII) Dash)? NameLowerChar NameLowerChar+)> */ + /* 65 Word1 <- <(((DotPrefix / LowerASCII) Dash)? NameLowerChar NameLowerChar+)> */ func() bool { - position467, tokenIndex467 := position, tokenIndex + position475, tokenIndex475 := position, tokenIndex { - position468 := position + position476 := position { - position469, tokenIndex469 := position, tokenIndex + position477, tokenIndex477 := position, tokenIndex { - position471, tokenIndex471 := position, tokenIndex + position479, tokenIndex479 := position, tokenIndex if !_rules[ruleDotPrefix]() { - goto l472 + goto l480 } - goto l471 - l472: - position, tokenIndex = position471, tokenIndex471 + goto l479 + l480: + position, tokenIndex = position479, tokenIndex479 if !_rules[ruleLowerASCII]() { - goto l469 + goto l477 } } - l471: + l479: if !_rules[ruleDash]() { - goto l469 + goto l477 } - goto l470 - l469: - position, tokenIndex = position469, tokenIndex469 + goto l478 + l477: + position, tokenIndex = position477, tokenIndex477 } - l470: + l478: if !_rules[ruleNameLowerChar]() { - goto l467 + goto l475 } if !_rules[ruleNameLowerChar]() { - goto l467 + goto l475 } - l473: + l481: { - position474, tokenIndex474 := position, tokenIndex + position482, tokenIndex482 := position, tokenIndex if !_rules[ruleNameLowerChar]() { - goto l474 + goto l482 } - goto l473 - l474: - position, tokenIndex = position474, tokenIndex474 + goto l481 + l482: + position, tokenIndex = position482, tokenIndex482 } - add(ruleWord1, position468) + add(ruleWord1, position476) } return true - l467: - position, tokenIndex = position467, tokenIndex467 + l475: + position, tokenIndex = position475, tokenIndex475 return false }, - /* 64 WordStartsWithDigit <- <(('1' / '2' / '3' / '4' / '5' / '6' / '7' / '8' / '9') Nums? ('.' / Dash)? NameLowerChar NameLowerChar NameLowerChar NameLowerChar+)> */ + /* 66 WordStartsWithDigit <- <(('1' / '2' / '3' / '4' / '5' / '6' / '7' / '8' / '9') Nums? ('.' / Dash)? NameLowerChar NameLowerChar NameLowerChar NameLowerChar+)> */ func() bool { - position475, tokenIndex475 := position, tokenIndex + position483, tokenIndex483 := position, tokenIndex { - position476 := position + position484 := position { - position477, tokenIndex477 := position, tokenIndex + position485, tokenIndex485 := position, tokenIndex if buffer[position] != rune('1') { - goto l478 + goto l486 } position++ - goto l477 - l478: - position, tokenIndex = position477, tokenIndex477 + goto l485 + l486: + position, tokenIndex = position485, tokenIndex485 if buffer[position] != rune('2') { - goto l479 + goto l487 } position++ - goto l477 - l479: - position, tokenIndex = position477, tokenIndex477 + goto l485 + l487: + position, tokenIndex = position485, tokenIndex485 if buffer[position] != rune('3') { - goto l480 + goto l488 } position++ - goto l477 - l480: - position, tokenIndex = position477, tokenIndex477 + goto l485 + l488: + position, tokenIndex = position485, tokenIndex485 if buffer[position] != rune('4') { - goto l481 + goto l489 } position++ - goto l477 - l481: - position, tokenIndex = position477, tokenIndex477 + goto l485 + l489: + position, tokenIndex = position485, tokenIndex485 if buffer[position] != rune('5') { - goto l482 + goto l490 } position++ - goto l477 - l482: - position, tokenIndex = position477, tokenIndex477 + goto l485 + l490: + position, tokenIndex = position485, tokenIndex485 if buffer[position] != rune('6') { - goto l483 + goto l491 } position++ - goto l477 - l483: - position, tokenIndex = position477, tokenIndex477 + goto l485 + l491: + position, tokenIndex = position485, tokenIndex485 if buffer[position] != rune('7') { - goto l484 + goto l492 } position++ - goto l477 - l484: - position, tokenIndex = position477, tokenIndex477 + goto l485 + l492: + position, tokenIndex = position485, tokenIndex485 if buffer[position] != rune('8') { - goto l485 + goto l493 } position++ - goto l477 - l485: - position, tokenIndex = position477, tokenIndex477 + goto l485 + l493: + position, tokenIndex = position485, tokenIndex485 if buffer[position] != rune('9') { - goto l475 + goto l483 } position++ } - l477: + l485: { - position486, tokenIndex486 := position, tokenIndex + position494, tokenIndex494 := position, tokenIndex if !_rules[ruleNums]() { - goto l486 + goto l494 } - goto l487 - l486: - position, tokenIndex = position486, tokenIndex486 + goto l495 + l494: + position, tokenIndex = position494, tokenIndex494 } - l487: + l495: { - position488, tokenIndex488 := position, tokenIndex + position496, tokenIndex496 := position, tokenIndex { - position490, tokenIndex490 := position, tokenIndex + position498, tokenIndex498 := position, tokenIndex if buffer[position] != rune('.') { - goto l491 + goto l499 } position++ - goto l490 - l491: - position, tokenIndex = position490, tokenIndex490 + goto l498 + l499: + position, tokenIndex = position498, tokenIndex498 if !_rules[ruleDash]() { - goto l488 + goto l496 } } - l490: - goto l489 - l488: - position, tokenIndex = position488, tokenIndex488 + l498: + goto l497 + l496: + position, tokenIndex = position496, tokenIndex496 } - l489: + l497: if !_rules[ruleNameLowerChar]() { - goto l475 + goto l483 } if !_rules[ruleNameLowerChar]() { - goto l475 + goto l483 } if !_rules[ruleNameLowerChar]() { - goto l475 + goto l483 } if !_rules[ruleNameLowerChar]() { - goto l475 + goto l483 } - l492: + l500: { - position493, tokenIndex493 := position, tokenIndex + position501, tokenIndex501 := position, tokenIndex if !_rules[ruleNameLowerChar]() { - goto l493 + goto l501 } - goto l492 - l493: - position, tokenIndex = position493, tokenIndex493 + goto l500 + l501: + position, tokenIndex = position501, tokenIndex501 } - add(ruleWordStartsWithDigit, position476) + add(ruleWordStartsWithDigit, position484) } return true - l475: - position, tokenIndex = position475, tokenIndex475 + l483: + position, tokenIndex = position483, tokenIndex483 return false }, - /* 65 Word2 <- <(NameLowerChar+ Dash? (WordApostr / NameLowerChar+))> */ + /* 67 Word2 <- <(NameLowerChar+ Dash? (WordApostr / NameLowerChar+))> */ func() bool { - position494, tokenIndex494 := position, tokenIndex + position502, tokenIndex502 := position, tokenIndex { - position495 := position + position503 := position if !_rules[ruleNameLowerChar]() { - goto l494 + goto l502 } - l496: + l504: { - position497, tokenIndex497 := position, tokenIndex + position505, tokenIndex505 := position, tokenIndex if !_rules[ruleNameLowerChar]() { - goto l497 + goto l505 } - goto l496 - l497: - position, tokenIndex = position497, tokenIndex497 + goto l504 + l505: + position, tokenIndex = position505, tokenIndex505 } { - position498, tokenIndex498 := position, tokenIndex + position506, tokenIndex506 := position, tokenIndex if !_rules[ruleDash]() { - goto l498 + goto l506 } - goto l499 - l498: - position, tokenIndex = position498, tokenIndex498 + goto l507 + l506: + position, tokenIndex = position506, tokenIndex506 } - l499: + l507: { - position500, tokenIndex500 := position, tokenIndex + position508, tokenIndex508 := position, tokenIndex if !_rules[ruleWordApostr]() { - goto l501 + goto l509 } - goto l500 - l501: - position, tokenIndex = position500, tokenIndex500 + goto l508 + l509: + position, tokenIndex = position508, tokenIndex508 if !_rules[ruleNameLowerChar]() { - goto l494 + goto l502 } - l502: + l510: { - position503, tokenIndex503 := position, tokenIndex + position511, tokenIndex511 := position, tokenIndex if !_rules[ruleNameLowerChar]() { - goto l503 + goto l511 } - goto l502 - l503: - position, tokenIndex = position503, tokenIndex503 + goto l510 + l511: + position, tokenIndex = position511, tokenIndex511 } } - l500: - add(ruleWord2, position495) + l508: + add(ruleWord2, position503) } return true - l494: - position, tokenIndex = position494, tokenIndex494 + l502: + position, tokenIndex = position502, tokenIndex502 return false }, - /* 66 WordApostr <- <(NameLowerChar NameLowerChar* Apostrophe Word1)> */ + /* 68 WordApostr <- <(NameLowerChar NameLowerChar* Apostrophe Word1)> */ func() bool { - position504, tokenIndex504 := position, tokenIndex + position512, tokenIndex512 := position, tokenIndex { - position505 := position + position513 := position if !_rules[ruleNameLowerChar]() { - goto l504 + goto l512 } - l506: + l514: { - position507, tokenIndex507 := position, tokenIndex + position515, tokenIndex515 := position, tokenIndex if !_rules[ruleNameLowerChar]() { - goto l507 + goto l515 } - goto l506 - l507: - position, tokenIndex = position507, tokenIndex507 + goto l514 + l515: + position, tokenIndex = position515, tokenIndex515 } if !_rules[ruleApostrophe]() { - goto l504 + goto l512 } if !_rules[ruleWord1]() { - goto l504 + goto l512 } - add(ruleWordApostr, position505) + add(ruleWordApostr, position513) } return true - l504: - position, tokenIndex = position504, tokenIndex504 + l512: + position, tokenIndex = position512, tokenIndex512 return false }, - /* 67 Word4 <- <(NameLowerChar+ '.' NameLowerChar)> */ + /* 69 Word4 <- <(NameLowerChar+ '.' NameLowerChar)> */ func() bool { - position508, tokenIndex508 := position, tokenIndex + position516, tokenIndex516 := position, tokenIndex { - position509 := position + position517 := position if !_rules[ruleNameLowerChar]() { - goto l508 + goto l516 } - l510: + l518: { - position511, tokenIndex511 := position, tokenIndex + position519, tokenIndex519 := position, tokenIndex if !_rules[ruleNameLowerChar]() { - goto l511 + goto l519 } - goto l510 - l511: - position, tokenIndex = position511, tokenIndex511 + goto l518 + l519: + position, tokenIndex = position519, tokenIndex519 } if buffer[position] != rune('.') { - goto l508 + goto l516 } position++ if !_rules[ruleNameLowerChar]() { - goto l508 + goto l516 } - add(ruleWord4, position509) + add(ruleWord4, position517) } return true - l508: - position, tokenIndex = position508, tokenIndex508 + l516: + position, tokenIndex = position516, tokenIndex516 return false }, - /* 68 DotPrefix <- <('s' 't' '.')> */ + /* 70 DotPrefix <- <('s' 't' '.')> */ func() bool { - position512, tokenIndex512 := position, tokenIndex + position520, tokenIndex520 := position, tokenIndex { - position513 := position + position521 := position if buffer[position] != rune('s') { - goto l512 + goto l520 } position++ if buffer[position] != rune('t') { - goto l512 + goto l520 } position++ if buffer[position] != rune('.') { - goto l512 + goto l520 } position++ - add(ruleDotPrefix, position513) + add(ruleDotPrefix, position521) } return true - l512: - position, tokenIndex = position512, tokenIndex512 + l520: + position, tokenIndex = position520, tokenIndex520 return false }, - /* 69 MultiDashedWord <- <(NameLowerChar+ Dash NameLowerChar+ Dash NameLowerChar+ (Dash NameLowerChar+)?)> */ + /* 71 MultiDashedWord <- <(NameLowerChar+ Dash NameLowerChar+ Dash NameLowerChar+ (Dash NameLowerChar+)?)> */ func() bool { - position514, tokenIndex514 := position, tokenIndex + position522, tokenIndex522 := position, tokenIndex { - position515 := position + position523 := position if !_rules[ruleNameLowerChar]() { - goto l514 + goto l522 } - l516: + l524: { - position517, tokenIndex517 := position, tokenIndex + position525, tokenIndex525 := position, tokenIndex if !_rules[ruleNameLowerChar]() { - goto l517 + goto l525 } - goto l516 - l517: - position, tokenIndex = position517, tokenIndex517 + goto l524 + l525: + position, tokenIndex = position525, tokenIndex525 } if !_rules[ruleDash]() { - goto l514 + goto l522 } if !_rules[ruleNameLowerChar]() { - goto l514 + goto l522 } - l518: + l526: { - position519, tokenIndex519 := position, tokenIndex + position527, tokenIndex527 := position, tokenIndex if !_rules[ruleNameLowerChar]() { - goto l519 + goto l527 } - goto l518 - l519: - position, tokenIndex = position519, tokenIndex519 + goto l526 + l527: + position, tokenIndex = position527, tokenIndex527 } if !_rules[ruleDash]() { - goto l514 + goto l522 } if !_rules[ruleNameLowerChar]() { - goto l514 + goto l522 } - l520: + l528: { - position521, tokenIndex521 := position, tokenIndex + position529, tokenIndex529 := position, tokenIndex if !_rules[ruleNameLowerChar]() { - goto l521 + goto l529 } - goto l520 - l521: - position, tokenIndex = position521, tokenIndex521 + goto l528 + l529: + position, tokenIndex = position529, tokenIndex529 } { - position522, tokenIndex522 := position, tokenIndex + position530, tokenIndex530 := position, tokenIndex if !_rules[ruleDash]() { - goto l522 + goto l530 } if !_rules[ruleNameLowerChar]() { - goto l522 + goto l530 } - l524: + l532: { - position525, tokenIndex525 := position, tokenIndex + position533, tokenIndex533 := position, tokenIndex if !_rules[ruleNameLowerChar]() { - goto l525 + goto l533 } - goto l524 - l525: - position, tokenIndex = position525, tokenIndex525 + goto l532 + l533: + position, tokenIndex = position533, tokenIndex533 } - goto l523 - l522: - position, tokenIndex = position522, tokenIndex522 + goto l531 + l530: + position, tokenIndex = position530, tokenIndex530 } - l523: - add(ruleMultiDashedWord, position515) + l531: + add(ruleMultiDashedWord, position523) } return true - l514: - position, tokenIndex = position514, tokenIndex514 + l522: + position, tokenIndex = position522, tokenIndex522 return false }, - /* 70 HybridChar <- <('×' / (('x' / 'X') &_) / (('x' / 'X') &UninomialWord) / (('x' / 'X') &END))> */ + /* 72 HybridChar <- <('×' / (('x' / 'X') &_) / (('x' / 'X') &UninomialWord) / (('x' / 'X') &END))> */ func() bool { - position526, tokenIndex526 := position, tokenIndex + position534, tokenIndex534 := position, tokenIndex { - position527 := position + position535 := position { - position528, tokenIndex528 := position, tokenIndex + position536, tokenIndex536 := position, tokenIndex if buffer[position] != rune('×') { - goto l529 + goto l537 } position++ - goto l528 - l529: - position, tokenIndex = position528, tokenIndex528 + goto l536 + l537: + position, tokenIndex = position536, tokenIndex536 { - position531, tokenIndex531 := position, tokenIndex + position539, tokenIndex539 := position, tokenIndex if buffer[position] != rune('x') { - goto l532 + goto l540 } position++ - goto l531 - l532: - position, tokenIndex = position531, tokenIndex531 + goto l539 + l540: + position, tokenIndex = position539, tokenIndex539 if buffer[position] != rune('X') { - goto l530 + goto l538 } position++ } - l531: + l539: { - position533, tokenIndex533 := position, tokenIndex + position541, tokenIndex541 := position, tokenIndex if !_rules[rule_]() { - goto l530 + goto l538 } - position, tokenIndex = position533, tokenIndex533 + position, tokenIndex = position541, tokenIndex541 } - goto l528 - l530: - position, tokenIndex = position528, tokenIndex528 + goto l536 + l538: + position, tokenIndex = position536, tokenIndex536 { - position535, tokenIndex535 := position, tokenIndex + position543, tokenIndex543 := position, tokenIndex if buffer[position] != rune('x') { - goto l536 + goto l544 } position++ - goto l535 - l536: - position, tokenIndex = position535, tokenIndex535 + goto l543 + l544: + position, tokenIndex = position543, tokenIndex543 if buffer[position] != rune('X') { - goto l534 + goto l542 } position++ } - l535: + l543: { - position537, tokenIndex537 := position, tokenIndex + position545, tokenIndex545 := position, tokenIndex if !_rules[ruleUninomialWord]() { - goto l534 + goto l542 } - position, tokenIndex = position537, tokenIndex537 + position, tokenIndex = position545, tokenIndex545 } - goto l528 - l534: - position, tokenIndex = position528, tokenIndex528 + goto l536 + l542: + position, tokenIndex = position536, tokenIndex536 { - position538, tokenIndex538 := position, tokenIndex + position546, tokenIndex546 := position, tokenIndex if buffer[position] != rune('x') { - goto l539 + goto l547 } position++ - goto l538 - l539: - position, tokenIndex = position538, tokenIndex538 + goto l546 + l547: + position, tokenIndex = position546, tokenIndex546 if buffer[position] != rune('X') { - goto l526 + goto l534 } position++ } - l538: + l546: { - position540, tokenIndex540 := position, tokenIndex + position548, tokenIndex548 := position, tokenIndex if !_rules[ruleEND]() { - goto l526 + goto l534 } - position, tokenIndex = position540, tokenIndex540 + position, tokenIndex = position548, tokenIndex548 } } - l528: - add(ruleHybridChar, position527) + l536: + add(ruleHybridChar, position535) } return true - l526: - position, tokenIndex = position526, tokenIndex526 + l534: + position, tokenIndex = position534, tokenIndex534 return false }, - /* 71 GraftChimeraChar <- <'+'> */ + /* 73 GraftChimeraChar <- <'+'> */ func() bool { - position541, tokenIndex541 := position, tokenIndex + position549, tokenIndex549 := position, tokenIndex { - position542 := position + position550 := position if buffer[position] != rune('+') { - goto l541 + goto l549 } position++ - add(ruleGraftChimeraChar, position542) + add(ruleGraftChimeraChar, position550) } return true - l541: - position, tokenIndex = position541, tokenIndex541 + l549: + position, tokenIndex = position549, tokenIndex549 return false }, - /* 72 ApproxNameIgnored <- <.*> */ + /* 74 ApproxNameIgnored <- <.*> */ func() bool { { - position544 := position - l545: + position552 := position + l553: { - position546, tokenIndex546 := position, tokenIndex + position554, tokenIndex554 := position, tokenIndex if !matchDot() { - goto l546 + goto l554 } - goto l545 - l546: - position, tokenIndex = position546, tokenIndex546 + goto l553 + l554: + position, tokenIndex = position554, tokenIndex554 } - add(ruleApproxNameIgnored, position544) + add(ruleApproxNameIgnored, position552) } return true }, - /* 73 Approximation <- <(('s' 'p' '.' _? ('n' 'r' '.')) / ('s' 'p' '.' _? ('a' 'f' 'f' '.')) / ('m' 'o' 'n' 's' 't' '.') / '?' / ((('s' 'p' 'p') / ('n' 'r') / ('s' 'p') / ('a' 'f' 'f') / ('s' 'p' 'e' 'c' 'i' 'e' 's')) (&SpaceCharEOI / '.')))> */ + /* 75 Approximation <- <(('s' 'p' '.' _? ('n' 'r' '.')) / ('s' 'p' '.' _? ('a' 'f' 'f' '.')) / ('m' 'o' 'n' 's' 't' '.') / '?' / ((('s' 'p' 'p') / ('n' 'r') / ('s' 'p') / ('a' 'f' 'f') / ('s' 'p' 'e' 'c' 'i' 'e' 's')) (&SpaceCharEOI / '.')))> */ func() bool { - position547, tokenIndex547 := position, tokenIndex + position555, tokenIndex555 := position, tokenIndex { - position548 := position + position556 := position { - position549, tokenIndex549 := position, tokenIndex + position557, tokenIndex557 := position, tokenIndex if buffer[position] != rune('s') { - goto l550 + goto l558 } position++ if buffer[position] != rune('p') { - goto l550 + goto l558 } position++ if buffer[position] != rune('.') { - goto l550 + goto l558 } position++ { - position551, tokenIndex551 := position, tokenIndex + position559, tokenIndex559 := position, tokenIndex if !_rules[rule_]() { - goto l551 + goto l559 } - goto l552 - l551: - position, tokenIndex = position551, tokenIndex551 + goto l560 + l559: + position, tokenIndex = position559, tokenIndex559 } - l552: + l560: if buffer[position] != rune('n') { - goto l550 + goto l558 } position++ if buffer[position] != rune('r') { - goto l550 + goto l558 } position++ if buffer[position] != rune('.') { - goto l550 + goto l558 } position++ - goto l549 - l550: - position, tokenIndex = position549, tokenIndex549 + goto l557 + l558: + position, tokenIndex = position557, tokenIndex557 if buffer[position] != rune('s') { - goto l553 + goto l561 } position++ if buffer[position] != rune('p') { - goto l553 + goto l561 } position++ if buffer[position] != rune('.') { - goto l553 + goto l561 } position++ { - position554, tokenIndex554 := position, tokenIndex + position562, tokenIndex562 := position, tokenIndex if !_rules[rule_]() { - goto l554 + goto l562 } - goto l555 - l554: - position, tokenIndex = position554, tokenIndex554 + goto l563 + l562: + position, tokenIndex = position562, tokenIndex562 } - l555: + l563: if buffer[position] != rune('a') { - goto l553 + goto l561 } position++ if buffer[position] != rune('f') { - goto l553 + goto l561 } position++ if buffer[position] != rune('f') { - goto l553 + goto l561 } position++ if buffer[position] != rune('.') { - goto l553 + goto l561 } position++ - goto l549 - l553: - position, tokenIndex = position549, tokenIndex549 + goto l557 + l561: + position, tokenIndex = position557, tokenIndex557 if buffer[position] != rune('m') { - goto l556 + goto l564 } position++ if buffer[position] != rune('o') { - goto l556 + goto l564 } position++ if buffer[position] != rune('n') { - goto l556 + goto l564 } position++ if buffer[position] != rune('s') { - goto l556 + goto l564 } position++ if buffer[position] != rune('t') { - goto l556 + goto l564 } position++ if buffer[position] != rune('.') { - goto l556 + goto l564 } position++ - goto l549 - l556: - position, tokenIndex = position549, tokenIndex549 + goto l557 + l564: + position, tokenIndex = position557, tokenIndex557 if buffer[position] != rune('?') { - goto l557 + goto l565 } position++ - goto l549 - l557: - position, tokenIndex = position549, tokenIndex549 + goto l557 + l565: + position, tokenIndex = position557, tokenIndex557 { - position558, tokenIndex558 := position, tokenIndex + position566, tokenIndex566 := position, tokenIndex if buffer[position] != rune('s') { - goto l559 + goto l567 } position++ if buffer[position] != rune('p') { - goto l559 + goto l567 } position++ if buffer[position] != rune('p') { - goto l559 + goto l567 } position++ - goto l558 - l559: - position, tokenIndex = position558, tokenIndex558 + goto l566 + l567: + position, tokenIndex = position566, tokenIndex566 if buffer[position] != rune('n') { - goto l560 + goto l568 } position++ if buffer[position] != rune('r') { - goto l560 + goto l568 } position++ - goto l558 - l560: - position, tokenIndex = position558, tokenIndex558 + goto l566 + l568: + position, tokenIndex = position566, tokenIndex566 if buffer[position] != rune('s') { - goto l561 + goto l569 } position++ if buffer[position] != rune('p') { - goto l561 + goto l569 } position++ - goto l558 - l561: - position, tokenIndex = position558, tokenIndex558 + goto l566 + l569: + position, tokenIndex = position566, tokenIndex566 if buffer[position] != rune('a') { - goto l562 + goto l570 } position++ if buffer[position] != rune('f') { - goto l562 + goto l570 } position++ if buffer[position] != rune('f') { - goto l562 + goto l570 } position++ - goto l558 - l562: - position, tokenIndex = position558, tokenIndex558 + goto l566 + l570: + position, tokenIndex = position566, tokenIndex566 if buffer[position] != rune('s') { - goto l547 + goto l555 } position++ if buffer[position] != rune('p') { - goto l547 + goto l555 } position++ if buffer[position] != rune('e') { - goto l547 + goto l555 } position++ if buffer[position] != rune('c') { - goto l547 + goto l555 } position++ if buffer[position] != rune('i') { - goto l547 + goto l555 } position++ if buffer[position] != rune('e') { - goto l547 + goto l555 } position++ if buffer[position] != rune('s') { - goto l547 + goto l555 } position++ } - l558: + l566: { - position563, tokenIndex563 := position, tokenIndex + position571, tokenIndex571 := position, tokenIndex { - position565, tokenIndex565 := position, tokenIndex + position573, tokenIndex573 := position, tokenIndex if !_rules[ruleSpaceCharEOI]() { - goto l564 + goto l572 } - position, tokenIndex = position565, tokenIndex565 + position, tokenIndex = position573, tokenIndex573 } - goto l563 - l564: - position, tokenIndex = position563, tokenIndex563 + goto l571 + l572: + position, tokenIndex = position571, tokenIndex571 if buffer[position] != rune('.') { - goto l547 + goto l555 } position++ } - l563: + l571: } - l549: - add(ruleApproximation, position548) + l557: + add(ruleApproximation, position556) } return true - l547: - position, tokenIndex = position547, tokenIndex547 + l555: + position, tokenIndex = position555, tokenIndex555 return false }, - /* 74 Authorship <- <((AuthorshipCombo / OriginalAuthorship) &(SpaceCharEOI / ';' / ','))> */ + /* 76 Authorship <- <((AuthorshipCombo / OriginalAuthorship) &(SpaceCharEOI / ';' / ','))> */ func() bool { - position566, tokenIndex566 := position, tokenIndex + position574, tokenIndex574 := position, tokenIndex { - position567 := position + position575 := position { - position568, tokenIndex568 := position, tokenIndex + position576, tokenIndex576 := position, tokenIndex if !_rules[ruleAuthorshipCombo]() { - goto l569 + goto l577 } - goto l568 - l569: - position, tokenIndex = position568, tokenIndex568 + goto l576 + l577: + position, tokenIndex = position576, tokenIndex576 if !_rules[ruleOriginalAuthorship]() { - goto l566 + goto l574 } } - l568: + l576: { - position570, tokenIndex570 := position, tokenIndex + position578, tokenIndex578 := position, tokenIndex { - position571, tokenIndex571 := position, tokenIndex + position579, tokenIndex579 := position, tokenIndex if !_rules[ruleSpaceCharEOI]() { - goto l572 + goto l580 } - goto l571 - l572: - position, tokenIndex = position571, tokenIndex571 + goto l579 + l580: + position, tokenIndex = position579, tokenIndex579 if buffer[position] != rune(';') { - goto l573 + goto l581 } position++ - goto l571 - l573: - position, tokenIndex = position571, tokenIndex571 + goto l579 + l581: + position, tokenIndex = position579, tokenIndex579 if buffer[position] != rune(',') { - goto l566 + goto l574 } position++ } - l571: - position, tokenIndex = position570, tokenIndex570 + l579: + position, tokenIndex = position578, tokenIndex578 } - add(ruleAuthorship, position567) + add(ruleAuthorship, position575) } return true - l566: - position, tokenIndex = position566, tokenIndex566 + l574: + position, tokenIndex = position574, tokenIndex574 return false }, - /* 75 AuthorshipCombo <- <(OriginalAuthorshipComb (_? CombinationAuthorship)?)> */ + /* 77 AuthorshipCombo <- <(OriginalAuthorshipComb (_? CombinationAuthorship)?)> */ func() bool { - position574, tokenIndex574 := position, tokenIndex + position582, tokenIndex582 := position, tokenIndex { - position575 := position + position583 := position if !_rules[ruleOriginalAuthorshipComb]() { - goto l574 + goto l582 } { - position576, tokenIndex576 := position, tokenIndex + position584, tokenIndex584 := position, tokenIndex { - position578, tokenIndex578 := position, tokenIndex + position586, tokenIndex586 := position, tokenIndex if !_rules[rule_]() { - goto l578 + goto l586 } - goto l579 - l578: - position, tokenIndex = position578, tokenIndex578 + goto l587 + l586: + position, tokenIndex = position586, tokenIndex586 } - l579: + l587: if !_rules[ruleCombinationAuthorship]() { - goto l576 + goto l584 } - goto l577 - l576: - position, tokenIndex = position576, tokenIndex576 + goto l585 + l584: + position, tokenIndex = position584, tokenIndex584 } - l577: - add(ruleAuthorshipCombo, position575) + l585: + add(ruleAuthorshipCombo, position583) } return true - l574: - position, tokenIndex = position574, tokenIndex574 + l582: + position, tokenIndex = position582, tokenIndex582 return false }, - /* 76 OriginalAuthorship <- */ + /* 78 OriginalAuthorship <- */ func() bool { - position580, tokenIndex580 := position, tokenIndex + position588, tokenIndex588 := position, tokenIndex { - position581 := position + position589 := position if !_rules[ruleAuthorsGroup]() { - goto l580 + goto l588 } - add(ruleOriginalAuthorship, position581) + add(ruleOriginalAuthorship, position589) } return true - l580: - position, tokenIndex = position580, tokenIndex580 + l588: + position, tokenIndex = position588, tokenIndex588 return false }, - /* 77 OriginalAuthorshipComb <- <(BasionymAuthorshipYearMisformed / BasionymAuthorship / BasionymAuthorshipMissingParens)> */ + /* 79 OriginalAuthorshipComb <- <(BasionymAuthorshipYearMisformed / BasionymAuthorship / BasionymAuthorshipMissingParens)> */ func() bool { - position582, tokenIndex582 := position, tokenIndex + position590, tokenIndex590 := position, tokenIndex { - position583 := position + position591 := position { - position584, tokenIndex584 := position, tokenIndex + position592, tokenIndex592 := position, tokenIndex if !_rules[ruleBasionymAuthorshipYearMisformed]() { - goto l585 + goto l593 } - goto l584 - l585: - position, tokenIndex = position584, tokenIndex584 + goto l592 + l593: + position, tokenIndex = position592, tokenIndex592 if !_rules[ruleBasionymAuthorship]() { - goto l586 + goto l594 } - goto l584 - l586: - position, tokenIndex = position584, tokenIndex584 + goto l592 + l594: + position, tokenIndex = position592, tokenIndex592 if !_rules[ruleBasionymAuthorshipMissingParens]() { - goto l582 + goto l590 } } - l584: - add(ruleOriginalAuthorshipComb, position583) + l592: + add(ruleOriginalAuthorshipComb, position591) } return true - l582: - position, tokenIndex = position582, tokenIndex582 + l590: + position, tokenIndex = position590, tokenIndex590 return false }, - /* 78 CombinationAuthorship <- */ + /* 80 CombinationAuthorship <- */ func() bool { - position587, tokenIndex587 := position, tokenIndex + position595, tokenIndex595 := position, tokenIndex { - position588 := position + position596 := position if !_rules[ruleAuthorsGroup]() { - goto l587 + goto l595 } - add(ruleCombinationAuthorship, position588) + add(ruleCombinationAuthorship, position596) } return true - l587: - position, tokenIndex = position587, tokenIndex587 + l595: + position, tokenIndex = position595, tokenIndex595 return false }, - /* 79 BasionymAuthorshipMissingParens <- <(MissingParensStart / MissingParensEnd)> */ + /* 81 BasionymAuthorshipMissingParens <- <(MissingParensStart / MissingParensEnd)> */ func() bool { - position589, tokenIndex589 := position, tokenIndex + position597, tokenIndex597 := position, tokenIndex { - position590 := position + position598 := position { - position591, tokenIndex591 := position, tokenIndex + position599, tokenIndex599 := position, tokenIndex if !_rules[ruleMissingParensStart]() { - goto l592 + goto l600 } - goto l591 - l592: - position, tokenIndex = position591, tokenIndex591 + goto l599 + l600: + position, tokenIndex = position599, tokenIndex599 if !_rules[ruleMissingParensEnd]() { - goto l589 + goto l597 } } - l591: - add(ruleBasionymAuthorshipMissingParens, position590) + l599: + add(ruleBasionymAuthorshipMissingParens, position598) } return true - l589: - position, tokenIndex = position589, tokenIndex589 + l597: + position, tokenIndex = position597, tokenIndex597 return false }, - /* 80 MissingParensStart <- <('(' _? AuthorsGroup)> */ + /* 82 MissingParensStart <- <('(' _? AuthorsGroup)> */ func() bool { - position593, tokenIndex593 := position, tokenIndex + position601, tokenIndex601 := position, tokenIndex { - position594 := position + position602 := position if buffer[position] != rune('(') { - goto l593 + goto l601 } position++ { - position595, tokenIndex595 := position, tokenIndex + position603, tokenIndex603 := position, tokenIndex if !_rules[rule_]() { - goto l595 + goto l603 } - goto l596 - l595: - position, tokenIndex = position595, tokenIndex595 + goto l604 + l603: + position, tokenIndex = position603, tokenIndex603 } - l596: + l604: if !_rules[ruleAuthorsGroup]() { - goto l593 + goto l601 } - add(ruleMissingParensStart, position594) + add(ruleMissingParensStart, position602) } return true - l593: - position, tokenIndex = position593, tokenIndex593 + l601: + position, tokenIndex = position601, tokenIndex601 return false }, - /* 81 MissingParensEnd <- <(AuthorsGroup _? ')')> */ + /* 83 MissingParensEnd <- <(AuthorsGroup _? ')')> */ func() bool { - position597, tokenIndex597 := position, tokenIndex + position605, tokenIndex605 := position, tokenIndex { - position598 := position + position606 := position if !_rules[ruleAuthorsGroup]() { - goto l597 + goto l605 } { - position599, tokenIndex599 := position, tokenIndex + position607, tokenIndex607 := position, tokenIndex if !_rules[rule_]() { - goto l599 + goto l607 } - goto l600 - l599: - position, tokenIndex = position599, tokenIndex599 + goto l608 + l607: + position, tokenIndex = position607, tokenIndex607 } - l600: + l608: if buffer[position] != rune(')') { - goto l597 + goto l605 } position++ - add(ruleMissingParensEnd, position598) + add(ruleMissingParensEnd, position606) } return true - l597: - position, tokenIndex = position597, tokenIndex597 + l605: + position, tokenIndex = position605, tokenIndex605 return false }, - /* 82 BasionymAuthorshipYearMisformed <- <('(' _? AuthorsGroup _? ')' (_? ',')? _? Year)> */ + /* 84 BasionymAuthorshipYearMisformed <- <('(' _? AuthorsGroup _? ')' (_? ',')? _? Year)> */ func() bool { - position601, tokenIndex601 := position, tokenIndex + position609, tokenIndex609 := position, tokenIndex { - position602 := position + position610 := position if buffer[position] != rune('(') { - goto l601 + goto l609 } position++ { - position603, tokenIndex603 := position, tokenIndex + position611, tokenIndex611 := position, tokenIndex if !_rules[rule_]() { - goto l603 + goto l611 } - goto l604 - l603: - position, tokenIndex = position603, tokenIndex603 + goto l612 + l611: + position, tokenIndex = position611, tokenIndex611 } - l604: + l612: if !_rules[ruleAuthorsGroup]() { - goto l601 + goto l609 } { - position605, tokenIndex605 := position, tokenIndex + position613, tokenIndex613 := position, tokenIndex if !_rules[rule_]() { - goto l605 + goto l613 } - goto l606 - l605: - position, tokenIndex = position605, tokenIndex605 + goto l614 + l613: + position, tokenIndex = position613, tokenIndex613 } - l606: + l614: if buffer[position] != rune(')') { - goto l601 + goto l609 } position++ { - position607, tokenIndex607 := position, tokenIndex + position615, tokenIndex615 := position, tokenIndex { - position609, tokenIndex609 := position, tokenIndex + position617, tokenIndex617 := position, tokenIndex if !_rules[rule_]() { - goto l609 + goto l617 } - goto l610 - l609: - position, tokenIndex = position609, tokenIndex609 + goto l618 + l617: + position, tokenIndex = position617, tokenIndex617 } - l610: + l618: if buffer[position] != rune(',') { - goto l607 + goto l615 } position++ - goto l608 - l607: - position, tokenIndex = position607, tokenIndex607 + goto l616 + l615: + position, tokenIndex = position615, tokenIndex615 } - l608: + l616: { - position611, tokenIndex611 := position, tokenIndex + position619, tokenIndex619 := position, tokenIndex if !_rules[rule_]() { - goto l611 + goto l619 } - goto l612 - l611: - position, tokenIndex = position611, tokenIndex611 + goto l620 + l619: + position, tokenIndex = position619, tokenIndex619 } - l612: + l620: if !_rules[ruleYear]() { - goto l601 + goto l609 } - add(ruleBasionymAuthorshipYearMisformed, position602) + add(ruleBasionymAuthorshipYearMisformed, position610) } return true - l601: - position, tokenIndex = position601, tokenIndex601 + l609: + position, tokenIndex = position609, tokenIndex609 return false }, - /* 83 BasionymAuthorship <- <(BasionymAuthorship1 / BasionymAuthorship2Parens)> */ + /* 85 BasionymAuthorship <- <(BasionymAuthorship1 / BasionymAuthorship2Parens)> */ func() bool { - position613, tokenIndex613 := position, tokenIndex + position621, tokenIndex621 := position, tokenIndex { - position614 := position + position622 := position { - position615, tokenIndex615 := position, tokenIndex + position623, tokenIndex623 := position, tokenIndex if !_rules[ruleBasionymAuthorship1]() { - goto l616 + goto l624 } - goto l615 - l616: - position, tokenIndex = position615, tokenIndex615 + goto l623 + l624: + position, tokenIndex = position623, tokenIndex623 if !_rules[ruleBasionymAuthorship2Parens]() { - goto l613 + goto l621 } } - l615: - add(ruleBasionymAuthorship, position614) + l623: + add(ruleBasionymAuthorship, position622) } return true - l613: - position, tokenIndex = position613, tokenIndex613 + l621: + position, tokenIndex = position621, tokenIndex621 return false }, - /* 84 BasionymAuthorship1 <- <('(' _? AuthorsGroup _? ')')> */ + /* 86 BasionymAuthorship1 <- <('(' _? AuthorsGroup _? ')')> */ func() bool { - position617, tokenIndex617 := position, tokenIndex + position625, tokenIndex625 := position, tokenIndex { - position618 := position + position626 := position if buffer[position] != rune('(') { - goto l617 + goto l625 } position++ { - position619, tokenIndex619 := position, tokenIndex + position627, tokenIndex627 := position, tokenIndex if !_rules[rule_]() { - goto l619 + goto l627 } - goto l620 - l619: - position, tokenIndex = position619, tokenIndex619 + goto l628 + l627: + position, tokenIndex = position627, tokenIndex627 } - l620: + l628: if !_rules[ruleAuthorsGroup]() { - goto l617 + goto l625 } { - position621, tokenIndex621 := position, tokenIndex + position629, tokenIndex629 := position, tokenIndex if !_rules[rule_]() { - goto l621 + goto l629 } - goto l622 - l621: - position, tokenIndex = position621, tokenIndex621 + goto l630 + l629: + position, tokenIndex = position629, tokenIndex629 } - l622: + l630: if buffer[position] != rune(')') { - goto l617 + goto l625 } position++ - add(ruleBasionymAuthorship1, position618) + add(ruleBasionymAuthorship1, position626) } return true - l617: - position, tokenIndex = position617, tokenIndex617 + l625: + position, tokenIndex = position625, tokenIndex625 return false }, - /* 85 BasionymAuthorship2Parens <- <('(' _? '(' _? AuthorsGroup _? ')' _? ')')> */ + /* 87 BasionymAuthorship2Parens <- <('(' _? '(' _? AuthorsGroup _? ')' _? ')')> */ func() bool { - position623, tokenIndex623 := position, tokenIndex + position631, tokenIndex631 := position, tokenIndex { - position624 := position + position632 := position if buffer[position] != rune('(') { - goto l623 + goto l631 } position++ { - position625, tokenIndex625 := position, tokenIndex + position633, tokenIndex633 := position, tokenIndex if !_rules[rule_]() { - goto l625 + goto l633 } - goto l626 - l625: - position, tokenIndex = position625, tokenIndex625 + goto l634 + l633: + position, tokenIndex = position633, tokenIndex633 } - l626: + l634: if buffer[position] != rune('(') { - goto l623 + goto l631 } position++ { - position627, tokenIndex627 := position, tokenIndex + position635, tokenIndex635 := position, tokenIndex if !_rules[rule_]() { - goto l627 + goto l635 } - goto l628 - l627: - position, tokenIndex = position627, tokenIndex627 + goto l636 + l635: + position, tokenIndex = position635, tokenIndex635 } - l628: + l636: if !_rules[ruleAuthorsGroup]() { - goto l623 + goto l631 } { - position629, tokenIndex629 := position, tokenIndex + position637, tokenIndex637 := position, tokenIndex if !_rules[rule_]() { - goto l629 + goto l637 } - goto l630 - l629: - position, tokenIndex = position629, tokenIndex629 + goto l638 + l637: + position, tokenIndex = position637, tokenIndex637 } - l630: + l638: if buffer[position] != rune(')') { - goto l623 + goto l631 } position++ { - position631, tokenIndex631 := position, tokenIndex + position639, tokenIndex639 := position, tokenIndex if !_rules[rule_]() { - goto l631 + goto l639 } - goto l632 - l631: - position, tokenIndex = position631, tokenIndex631 + goto l640 + l639: + position, tokenIndex = position639, tokenIndex639 } - l632: + l640: if buffer[position] != rune(')') { - goto l623 + goto l631 } position++ - add(ruleBasionymAuthorship2Parens, position624) + add(ruleBasionymAuthorship2Parens, position632) } return true - l623: - position, tokenIndex = position623, tokenIndex623 + l631: + position, tokenIndex = position631, tokenIndex631 return false }, - /* 86 AuthorsGroup <- <(AuthorsTeam (','? _ (AuthorEmend / AuthorEx) AuthorsTeam)?)> */ + /* 88 AuthorsGroup <- <(AuthorsTeam (','? _ (AuthorEmend / AuthorEx) AuthorsTeam)?)> */ func() bool { - position633, tokenIndex633 := position, tokenIndex + position641, tokenIndex641 := position, tokenIndex { - position634 := position + position642 := position if !_rules[ruleAuthorsTeam]() { - goto l633 + goto l641 } { - position635, tokenIndex635 := position, tokenIndex + position643, tokenIndex643 := position, tokenIndex { - position637, tokenIndex637 := position, tokenIndex + position645, tokenIndex645 := position, tokenIndex if buffer[position] != rune(',') { - goto l637 + goto l645 } position++ - goto l638 - l637: - position, tokenIndex = position637, tokenIndex637 + goto l646 + l645: + position, tokenIndex = position645, tokenIndex645 } - l638: + l646: if !_rules[rule_]() { - goto l635 + goto l643 } { - position639, tokenIndex639 := position, tokenIndex + position647, tokenIndex647 := position, tokenIndex if !_rules[ruleAuthorEmend]() { - goto l640 + goto l648 } - goto l639 - l640: - position, tokenIndex = position639, tokenIndex639 + goto l647 + l648: + position, tokenIndex = position647, tokenIndex647 if !_rules[ruleAuthorEx]() { - goto l635 + goto l643 } } - l639: + l647: if !_rules[ruleAuthorsTeam]() { - goto l635 + goto l643 } - goto l636 - l635: - position, tokenIndex = position635, tokenIndex635 + goto l644 + l643: + position, tokenIndex = position643, tokenIndex643 } - l636: - add(ruleAuthorsGroup, position634) + l644: + add(ruleAuthorsGroup, position642) } return true - l633: - position, tokenIndex = position633, tokenIndex633 + l641: + position, tokenIndex = position641, tokenIndex641 return false }, - /* 87 AuthorsTeam <- <(Author (AuthorSep Author)* (_? ','? _? Year)?)> */ + /* 89 AuthorsTeam <- <(Author (AuthorSep Author)* (_? ','? _? Year)?)> */ func() bool { - position641, tokenIndex641 := position, tokenIndex + position649, tokenIndex649 := position, tokenIndex { - position642 := position + position650 := position if !_rules[ruleAuthor]() { - goto l641 + goto l649 } - l643: + l651: { - position644, tokenIndex644 := position, tokenIndex + position652, tokenIndex652 := position, tokenIndex if !_rules[ruleAuthorSep]() { - goto l644 + goto l652 } if !_rules[ruleAuthor]() { - goto l644 + goto l652 } - goto l643 - l644: - position, tokenIndex = position644, tokenIndex644 + goto l651 + l652: + position, tokenIndex = position652, tokenIndex652 } { - position645, tokenIndex645 := position, tokenIndex + position653, tokenIndex653 := position, tokenIndex { - position647, tokenIndex647 := position, tokenIndex + position655, tokenIndex655 := position, tokenIndex if !_rules[rule_]() { - goto l647 + goto l655 } - goto l648 - l647: - position, tokenIndex = position647, tokenIndex647 + goto l656 + l655: + position, tokenIndex = position655, tokenIndex655 } - l648: + l656: { - position649, tokenIndex649 := position, tokenIndex + position657, tokenIndex657 := position, tokenIndex if buffer[position] != rune(',') { - goto l649 + goto l657 } position++ - goto l650 - l649: - position, tokenIndex = position649, tokenIndex649 + goto l658 + l657: + position, tokenIndex = position657, tokenIndex657 } - l650: + l658: { - position651, tokenIndex651 := position, tokenIndex + position659, tokenIndex659 := position, tokenIndex if !_rules[rule_]() { - goto l651 + goto l659 } - goto l652 - l651: - position, tokenIndex = position651, tokenIndex651 + goto l660 + l659: + position, tokenIndex = position659, tokenIndex659 } - l652: + l660: if !_rules[ruleYear]() { - goto l645 + goto l653 } - goto l646 - l645: - position, tokenIndex = position645, tokenIndex645 + goto l654 + l653: + position, tokenIndex = position653, tokenIndex653 } - l646: - add(ruleAuthorsTeam, position642) + l654: + add(ruleAuthorsTeam, position650) } return true - l641: - position, tokenIndex = position641, tokenIndex641 + l649: + position, tokenIndex = position649, tokenIndex649 return false }, - /* 88 AuthorSep <- <(AuthorSep1 / AuthorSep2)> */ + /* 90 AuthorSep <- <(AuthorSep1 / AuthorSep2)> */ func() bool { - position653, tokenIndex653 := position, tokenIndex + position661, tokenIndex661 := position, tokenIndex { - position654 := position + position662 := position { - position655, tokenIndex655 := position, tokenIndex + position663, tokenIndex663 := position, tokenIndex if !_rules[ruleAuthorSep1]() { - goto l656 + goto l664 } - goto l655 - l656: - position, tokenIndex = position655, tokenIndex655 + goto l663 + l664: + position, tokenIndex = position663, tokenIndex663 if !_rules[ruleAuthorSep2]() { - goto l653 + goto l661 } } - l655: - add(ruleAuthorSep, position654) + l663: + add(ruleAuthorSep, position662) } return true - l653: - position, tokenIndex = position653, tokenIndex653 + l661: + position, tokenIndex = position661, tokenIndex661 return false }, - /* 89 AuthorSep1 <- <(_? (',' _)? ('&' / AuthorSepSpanish / ('e' 't') / ('a' 'n' 'd') / ('a' 'p' 'u' 'd')) _?)> */ + /* 91 AuthorSep1 <- <(_? (',' _)? ('&' / AuthorSepSpanish / ('e' 't') / ('a' 'n' 'd') / ('a' 'p' 'u' 'd')) _?)> */ func() bool { - position657, tokenIndex657 := position, tokenIndex + position665, tokenIndex665 := position, tokenIndex { - position658 := position + position666 := position { - position659, tokenIndex659 := position, tokenIndex + position667, tokenIndex667 := position, tokenIndex if !_rules[rule_]() { - goto l659 + goto l667 } - goto l660 - l659: - position, tokenIndex = position659, tokenIndex659 + goto l668 + l667: + position, tokenIndex = position667, tokenIndex667 } - l660: + l668: { - position661, tokenIndex661 := position, tokenIndex + position669, tokenIndex669 := position, tokenIndex if buffer[position] != rune(',') { - goto l661 + goto l669 } position++ if !_rules[rule_]() { - goto l661 + goto l669 } - goto l662 - l661: - position, tokenIndex = position661, tokenIndex661 + goto l670 + l669: + position, tokenIndex = position669, tokenIndex669 } - l662: + l670: { - position663, tokenIndex663 := position, tokenIndex + position671, tokenIndex671 := position, tokenIndex if buffer[position] != rune('&') { - goto l664 + goto l672 } position++ - goto l663 - l664: - position, tokenIndex = position663, tokenIndex663 + goto l671 + l672: + position, tokenIndex = position671, tokenIndex671 if !_rules[ruleAuthorSepSpanish]() { - goto l665 + goto l673 } - goto l663 - l665: - position, tokenIndex = position663, tokenIndex663 + goto l671 + l673: + position, tokenIndex = position671, tokenIndex671 if buffer[position] != rune('e') { - goto l666 + goto l674 } position++ if buffer[position] != rune('t') { - goto l666 + goto l674 } position++ - goto l663 - l666: - position, tokenIndex = position663, tokenIndex663 + goto l671 + l674: + position, tokenIndex = position671, tokenIndex671 if buffer[position] != rune('a') { - goto l667 + goto l675 } position++ if buffer[position] != rune('n') { - goto l667 + goto l675 } position++ if buffer[position] != rune('d') { - goto l667 + goto l675 } position++ - goto l663 - l667: - position, tokenIndex = position663, tokenIndex663 + goto l671 + l675: + position, tokenIndex = position671, tokenIndex671 if buffer[position] != rune('a') { - goto l657 + goto l665 } position++ if buffer[position] != rune('p') { - goto l657 + goto l665 } position++ if buffer[position] != rune('u') { - goto l657 + goto l665 } position++ if buffer[position] != rune('d') { - goto l657 + goto l665 } position++ } - l663: + l671: { - position668, tokenIndex668 := position, tokenIndex + position676, tokenIndex676 := position, tokenIndex if !_rules[rule_]() { - goto l668 + goto l676 } - goto l669 - l668: - position, tokenIndex = position668, tokenIndex668 + goto l677 + l676: + position, tokenIndex = position676, tokenIndex676 } - l669: - add(ruleAuthorSep1, position658) + l677: + add(ruleAuthorSep1, position666) } return true - l657: - position, tokenIndex = position657, tokenIndex657 + l665: + position, tokenIndex = position665, tokenIndex665 return false }, - /* 90 AuthorSep2 <- <(_? ',' _?)> */ + /* 92 AuthorSep2 <- <(_? ',' _?)> */ func() bool { - position670, tokenIndex670 := position, tokenIndex + position678, tokenIndex678 := position, tokenIndex { - position671 := position + position679 := position { - position672, tokenIndex672 := position, tokenIndex + position680, tokenIndex680 := position, tokenIndex if !_rules[rule_]() { - goto l672 + goto l680 } - goto l673 - l672: - position, tokenIndex = position672, tokenIndex672 + goto l681 + l680: + position, tokenIndex = position680, tokenIndex680 } - l673: + l681: if buffer[position] != rune(',') { - goto l670 + goto l678 } position++ { - position674, tokenIndex674 := position, tokenIndex + position682, tokenIndex682 := position, tokenIndex if !_rules[rule_]() { - goto l674 + goto l682 } - goto l675 - l674: - position, tokenIndex = position674, tokenIndex674 + goto l683 + l682: + position, tokenIndex = position682, tokenIndex682 } - l675: - add(ruleAuthorSep2, position671) + l683: + add(ruleAuthorSep2, position679) } return true - l670: - position, tokenIndex = position670, tokenIndex670 + l678: + position, tokenIndex = position678, tokenIndex678 return false }, - /* 91 AuthorSepSpanish <- <(_? 'y' _?)> */ + /* 93 AuthorSepSpanish <- <(_? 'y' _?)> */ func() bool { - position676, tokenIndex676 := position, tokenIndex + position684, tokenIndex684 := position, tokenIndex { - position677 := position + position685 := position { - position678, tokenIndex678 := position, tokenIndex + position686, tokenIndex686 := position, tokenIndex if !_rules[rule_]() { - goto l678 + goto l686 } - goto l679 - l678: - position, tokenIndex = position678, tokenIndex678 + goto l687 + l686: + position, tokenIndex = position686, tokenIndex686 } - l679: + l687: if buffer[position] != rune('y') { - goto l676 + goto l684 } position++ { - position680, tokenIndex680 := position, tokenIndex + position688, tokenIndex688 := position, tokenIndex if !_rules[rule_]() { - goto l680 + goto l688 } - goto l681 - l680: - position, tokenIndex = position680, tokenIndex680 + goto l689 + l688: + position, tokenIndex = position688, tokenIndex688 } - l681: - add(ruleAuthorSepSpanish, position677) + l689: + add(ruleAuthorSepSpanish, position685) } return true - l676: - position, tokenIndex = position676, tokenIndex676 + l684: + position, tokenIndex = position684, tokenIndex684 return false }, - /* 92 AuthorEx <- <((('e' 'x' '.'?) / ('m' 's' _ ('i' 'n')) / ('i' 'n')) _)> */ + /* 94 AuthorEx <- <((('e' 'x' '.'?) / ('m' 's' _ ('i' 'n')) / ('i' 'n')) _)> */ func() bool { - position682, tokenIndex682 := position, tokenIndex + position690, tokenIndex690 := position, tokenIndex { - position683 := position + position691 := position { - position684, tokenIndex684 := position, tokenIndex + position692, tokenIndex692 := position, tokenIndex if buffer[position] != rune('e') { - goto l685 + goto l693 } position++ if buffer[position] != rune('x') { - goto l685 + goto l693 } position++ { - position686, tokenIndex686 := position, tokenIndex + position694, tokenIndex694 := position, tokenIndex if buffer[position] != rune('.') { - goto l686 + goto l694 } position++ - goto l687 - l686: - position, tokenIndex = position686, tokenIndex686 + goto l695 + l694: + position, tokenIndex = position694, tokenIndex694 } - l687: - goto l684 - l685: - position, tokenIndex = position684, tokenIndex684 + l695: + goto l692 + l693: + position, tokenIndex = position692, tokenIndex692 if buffer[position] != rune('m') { - goto l688 + goto l696 } position++ if buffer[position] != rune('s') { - goto l688 + goto l696 } position++ if !_rules[rule_]() { - goto l688 + goto l696 } if buffer[position] != rune('i') { - goto l688 + goto l696 } position++ if buffer[position] != rune('n') { - goto l688 + goto l696 } position++ - goto l684 - l688: - position, tokenIndex = position684, tokenIndex684 + goto l692 + l696: + position, tokenIndex = position692, tokenIndex692 if buffer[position] != rune('i') { - goto l682 + goto l690 } position++ if buffer[position] != rune('n') { - goto l682 + goto l690 } position++ } - l684: + l692: if !_rules[rule_]() { - goto l682 + goto l690 } - add(ruleAuthorEx, position683) + add(ruleAuthorEx, position691) } return true - l682: - position, tokenIndex = position682, tokenIndex682 + l690: + position, tokenIndex = position690, tokenIndex690 return false }, - /* 93 AuthorEmend <- <('e' 'm' 'e' 'n' 'd' '.'? _)> */ + /* 95 AuthorEmend <- <('e' 'm' 'e' 'n' 'd' '.'? _)> */ func() bool { - position689, tokenIndex689 := position, tokenIndex + position697, tokenIndex697 := position, tokenIndex { - position690 := position + position698 := position if buffer[position] != rune('e') { - goto l689 + goto l697 } position++ if buffer[position] != rune('m') { - goto l689 + goto l697 } position++ if buffer[position] != rune('e') { - goto l689 + goto l697 } position++ if buffer[position] != rune('n') { - goto l689 + goto l697 } position++ if buffer[position] != rune('d') { - goto l689 + goto l697 } position++ { - position691, tokenIndex691 := position, tokenIndex + position699, tokenIndex699 := position, tokenIndex if buffer[position] != rune('.') { - goto l691 + goto l699 } position++ - goto l692 - l691: - position, tokenIndex = position691, tokenIndex691 + goto l700 + l699: + position, tokenIndex = position699, tokenIndex699 } - l692: + l700: if !_rules[rule_]() { - goto l689 + goto l697 } - add(ruleAuthorEmend, position690) + add(ruleAuthorEmend, position698) } return true - l689: - position, tokenIndex = position689, tokenIndex689 + l697: + position, tokenIndex = position697, tokenIndex697 return false }, - /* 94 Author <- <((Author0 / Author1 / Author2 / UnknownAuthor) (_ AuthorEtAl)?)> */ + /* 96 Author <- <((Author0 / Author1 / Author2 / UnknownAuthor) (_ AuthorEtAl)?)> */ func() bool { - position693, tokenIndex693 := position, tokenIndex + position701, tokenIndex701 := position, tokenIndex { - position694 := position + position702 := position { - position695, tokenIndex695 := position, tokenIndex + position703, tokenIndex703 := position, tokenIndex if !_rules[ruleAuthor0]() { - goto l696 + goto l704 } - goto l695 - l696: - position, tokenIndex = position695, tokenIndex695 + goto l703 + l704: + position, tokenIndex = position703, tokenIndex703 if !_rules[ruleAuthor1]() { - goto l697 + goto l705 } - goto l695 - l697: - position, tokenIndex = position695, tokenIndex695 + goto l703 + l705: + position, tokenIndex = position703, tokenIndex703 if !_rules[ruleAuthor2]() { - goto l698 + goto l706 } - goto l695 - l698: - position, tokenIndex = position695, tokenIndex695 + goto l703 + l706: + position, tokenIndex = position703, tokenIndex703 if !_rules[ruleUnknownAuthor]() { - goto l693 + goto l701 } } - l695: + l703: { - position699, tokenIndex699 := position, tokenIndex + position707, tokenIndex707 := position, tokenIndex if !_rules[rule_]() { - goto l699 + goto l707 } if !_rules[ruleAuthorEtAl]() { - goto l699 + goto l707 } - goto l700 - l699: - position, tokenIndex = position699, tokenIndex699 + goto l708 + l707: + position, tokenIndex = position707, tokenIndex707 } - l700: - add(ruleAuthor, position694) + l708: + add(ruleAuthor, position702) } return true - l693: - position, tokenIndex = position693, tokenIndex693 + l701: + position, tokenIndex = position701, tokenIndex701 return false }, - /* 95 Author0 <- <(Author2 FiliusFNoSpace)> */ + /* 97 Author0 <- <(Author2 FiliusFNoSpace)> */ func() bool { - position701, tokenIndex701 := position, tokenIndex + position709, tokenIndex709 := position, tokenIndex { - position702 := position + position710 := position if !_rules[ruleAuthor2]() { - goto l701 + goto l709 } if !_rules[ruleFiliusFNoSpace]() { - goto l701 + goto l709 } - add(ruleAuthor0, position702) + add(ruleAuthor0, position710) } return true - l701: - position, tokenIndex = position701, tokenIndex701 + l709: + position, tokenIndex = position709, tokenIndex709 return false }, - /* 96 Author1 <- <(Author2 _? (Filius / AuthorSuffix))> */ + /* 98 Author1 <- <(Author2 _? (Filius / AuthorSuffix))> */ func() bool { - position703, tokenIndex703 := position, tokenIndex + position711, tokenIndex711 := position, tokenIndex { - position704 := position + position712 := position if !_rules[ruleAuthor2]() { - goto l703 + goto l711 } { - position705, tokenIndex705 := position, tokenIndex + position713, tokenIndex713 := position, tokenIndex if !_rules[rule_]() { - goto l705 + goto l713 } - goto l706 - l705: - position, tokenIndex = position705, tokenIndex705 + goto l714 + l713: + position, tokenIndex = position713, tokenIndex713 } - l706: + l714: { - position707, tokenIndex707 := position, tokenIndex + position715, tokenIndex715 := position, tokenIndex if !_rules[ruleFilius]() { - goto l708 + goto l716 } - goto l707 - l708: - position, tokenIndex = position707, tokenIndex707 + goto l715 + l716: + position, tokenIndex = position715, tokenIndex715 if !_rules[ruleAuthorSuffix]() { - goto l703 + goto l711 } } - l707: - add(ruleAuthor1, position704) + l715: + add(ruleAuthor1, position712) } return true - l703: - position, tokenIndex = position703, tokenIndex703 + l711: + position, tokenIndex = position711, tokenIndex711 return false }, - /* 97 Author2 <- <(AuthorWord (_? AuthorWord)*)> */ + /* 99 Author2 <- <(AuthorWord (_? AuthorWord)*)> */ func() bool { - position709, tokenIndex709 := position, tokenIndex + position717, tokenIndex717 := position, tokenIndex { - position710 := position + position718 := position if !_rules[ruleAuthorWord]() { - goto l709 + goto l717 } - l711: + l719: { - position712, tokenIndex712 := position, tokenIndex + position720, tokenIndex720 := position, tokenIndex { - position713, tokenIndex713 := position, tokenIndex + position721, tokenIndex721 := position, tokenIndex if !_rules[rule_]() { - goto l713 + goto l721 } - goto l714 - l713: - position, tokenIndex = position713, tokenIndex713 + goto l722 + l721: + position, tokenIndex = position721, tokenIndex721 } - l714: + l722: if !_rules[ruleAuthorWord]() { - goto l712 + goto l720 } - goto l711 - l712: - position, tokenIndex = position712, tokenIndex712 + goto l719 + l720: + position, tokenIndex = position720, tokenIndex720 } - add(ruleAuthor2, position710) + add(ruleAuthor2, position718) } return true - l709: - position, tokenIndex = position709, tokenIndex709 + l717: + position, tokenIndex = position717, tokenIndex717 return false }, - /* 98 UnknownAuthor <- <('?' / ((('a' 'u' 'c' 't') / ('a' 'n' 'o' 'n')) (&SpaceCharEOI / '.')))> */ + /* 100 UnknownAuthor <- <('?' / ((('a' 'u' 'c' 't') / ('a' 'n' 'o' 'n')) (&SpaceCharEOI / '.')))> */ func() bool { - position715, tokenIndex715 := position, tokenIndex + position723, tokenIndex723 := position, tokenIndex { - position716 := position + position724 := position { - position717, tokenIndex717 := position, tokenIndex + position725, tokenIndex725 := position, tokenIndex if buffer[position] != rune('?') { - goto l718 + goto l726 } position++ - goto l717 - l718: - position, tokenIndex = position717, tokenIndex717 + goto l725 + l726: + position, tokenIndex = position725, tokenIndex725 { - position719, tokenIndex719 := position, tokenIndex + position727, tokenIndex727 := position, tokenIndex if buffer[position] != rune('a') { - goto l720 + goto l728 } position++ if buffer[position] != rune('u') { - goto l720 + goto l728 } position++ if buffer[position] != rune('c') { - goto l720 + goto l728 } position++ if buffer[position] != rune('t') { - goto l720 + goto l728 } position++ - goto l719 - l720: - position, tokenIndex = position719, tokenIndex719 + goto l727 + l728: + position, tokenIndex = position727, tokenIndex727 if buffer[position] != rune('a') { - goto l715 + goto l723 } position++ if buffer[position] != rune('n') { - goto l715 + goto l723 } position++ if buffer[position] != rune('o') { - goto l715 + goto l723 } position++ if buffer[position] != rune('n') { - goto l715 + goto l723 } position++ } - l719: + l727: { - position721, tokenIndex721 := position, tokenIndex + position729, tokenIndex729 := position, tokenIndex { - position723, tokenIndex723 := position, tokenIndex + position731, tokenIndex731 := position, tokenIndex if !_rules[ruleSpaceCharEOI]() { - goto l722 + goto l730 } - position, tokenIndex = position723, tokenIndex723 + position, tokenIndex = position731, tokenIndex731 } - goto l721 - l722: - position, tokenIndex = position721, tokenIndex721 + goto l729 + l730: + position, tokenIndex = position729, tokenIndex729 if buffer[position] != rune('.') { - goto l715 + goto l723 } position++ } - l721: + l729: } - l717: - add(ruleUnknownAuthor, position716) + l725: + add(ruleUnknownAuthor, position724) } return true - l715: - position, tokenIndex = position715, tokenIndex715 + l723: + position, tokenIndex = position723, tokenIndex723 return false }, - /* 99 AuthorWord <- <(!(HybridChar / (('b' / 'B') ('o' / 'O') ('l' / 'L') ('d' / 'D') ':')) (AuthorDashInitials / AuthorWord1 / AuthorWord2 / AuthorWord3 / AuthorWord4 / AuthorPrefix))> */ + /* 101 AuthorWord <- <(!(HybridChar / (('b' / 'B') ('o' / 'O') ('l' / 'L') ('d' / 'D') ':')) (AuthorDashInitials / AuthorWord1 / AuthorWord2 / AuthorWord3 / AuthorWord4 / AuthorPrefix))> */ func() bool { - position724, tokenIndex724 := position, tokenIndex + position732, tokenIndex732 := position, tokenIndex { - position725 := position + position733 := position { - position726, tokenIndex726 := position, tokenIndex + position734, tokenIndex734 := position, tokenIndex { - position727, tokenIndex727 := position, tokenIndex + position735, tokenIndex735 := position, tokenIndex if !_rules[ruleHybridChar]() { - goto l728 + goto l736 } - goto l727 - l728: - position, tokenIndex = position727, tokenIndex727 + goto l735 + l736: + position, tokenIndex = position735, tokenIndex735 { - position729, tokenIndex729 := position, tokenIndex + position737, tokenIndex737 := position, tokenIndex if buffer[position] != rune('b') { - goto l730 + goto l738 } position++ - goto l729 - l730: - position, tokenIndex = position729, tokenIndex729 + goto l737 + l738: + position, tokenIndex = position737, tokenIndex737 if buffer[position] != rune('B') { - goto l726 + goto l734 } position++ } - l729: + l737: { - position731, tokenIndex731 := position, tokenIndex + position739, tokenIndex739 := position, tokenIndex if buffer[position] != rune('o') { - goto l732 + goto l740 } position++ - goto l731 - l732: - position, tokenIndex = position731, tokenIndex731 + goto l739 + l740: + position, tokenIndex = position739, tokenIndex739 if buffer[position] != rune('O') { - goto l726 + goto l734 } position++ } - l731: + l739: { - position733, tokenIndex733 := position, tokenIndex + position741, tokenIndex741 := position, tokenIndex if buffer[position] != rune('l') { - goto l734 + goto l742 } position++ - goto l733 - l734: - position, tokenIndex = position733, tokenIndex733 + goto l741 + l742: + position, tokenIndex = position741, tokenIndex741 if buffer[position] != rune('L') { - goto l726 + goto l734 } position++ } - l733: + l741: { - position735, tokenIndex735 := position, tokenIndex + position743, tokenIndex743 := position, tokenIndex if buffer[position] != rune('d') { - goto l736 + goto l744 } position++ - goto l735 - l736: - position, tokenIndex = position735, tokenIndex735 + goto l743 + l744: + position, tokenIndex = position743, tokenIndex743 if buffer[position] != rune('D') { - goto l726 + goto l734 } position++ } - l735: + l743: if buffer[position] != rune(':') { - goto l726 + goto l734 } position++ } - l727: - goto l724 - l726: - position, tokenIndex = position726, tokenIndex726 + l735: + goto l732 + l734: + position, tokenIndex = position734, tokenIndex734 } { - position737, tokenIndex737 := position, tokenIndex + position745, tokenIndex745 := position, tokenIndex if !_rules[ruleAuthorDashInitials]() { - goto l738 + goto l746 } - goto l737 - l738: - position, tokenIndex = position737, tokenIndex737 + goto l745 + l746: + position, tokenIndex = position745, tokenIndex745 if !_rules[ruleAuthorWord1]() { - goto l739 - } - goto l737 - l739: - position, tokenIndex = position737, tokenIndex737 - if !_rules[ruleAuthorWord2]() { - goto l740 + goto l747 } - goto l737 - l740: - position, tokenIndex = position737, tokenIndex737 + goto l745 + l747: + position, tokenIndex = position745, tokenIndex745 + if !_rules[ruleAuthorWord2]() { + goto l748 + } + goto l745 + l748: + position, tokenIndex = position745, tokenIndex745 if !_rules[ruleAuthorWord3]() { - goto l741 + goto l749 } - goto l737 - l741: - position, tokenIndex = position737, tokenIndex737 + goto l745 + l749: + position, tokenIndex = position745, tokenIndex745 if !_rules[ruleAuthorWord4]() { - goto l742 + goto l750 } - goto l737 - l742: - position, tokenIndex = position737, tokenIndex737 + goto l745 + l750: + position, tokenIndex = position745, tokenIndex745 if !_rules[ruleAuthorPrefix]() { - goto l724 + goto l732 } } - l737: - add(ruleAuthorWord, position725) + l745: + add(ruleAuthorWord, position733) } return true - l724: - position, tokenIndex = position724, tokenIndex724 + l732: + position, tokenIndex = position732, tokenIndex732 return false }, - /* 100 AuthorEtAl <- <(('a' 'r' 'g' '.') / ('e' 't' ' ' 'a' 'l' '.' '{' '?' '}') / ((('e' 't') / '&') (' ' 'a' 'l') '.'?))> */ + /* 102 AuthorEtAl <- <(('a' 'r' 'g' '.') / ('e' 't' ' ' 'a' 'l' '.' '{' '?' '}') / ((('e' 't') / '&') (' ' 'a' 'l') '.'?))> */ func() bool { - position743, tokenIndex743 := position, tokenIndex + position751, tokenIndex751 := position, tokenIndex { - position744 := position + position752 := position { - position745, tokenIndex745 := position, tokenIndex + position753, tokenIndex753 := position, tokenIndex if buffer[position] != rune('a') { - goto l746 + goto l754 } position++ if buffer[position] != rune('r') { - goto l746 + goto l754 } position++ if buffer[position] != rune('g') { - goto l746 + goto l754 } position++ if buffer[position] != rune('.') { - goto l746 + goto l754 } position++ - goto l745 - l746: - position, tokenIndex = position745, tokenIndex745 + goto l753 + l754: + position, tokenIndex = position753, tokenIndex753 if buffer[position] != rune('e') { - goto l747 + goto l755 } position++ if buffer[position] != rune('t') { - goto l747 + goto l755 } position++ if buffer[position] != rune(' ') { - goto l747 + goto l755 } position++ if buffer[position] != rune('a') { - goto l747 + goto l755 } position++ if buffer[position] != rune('l') { - goto l747 + goto l755 } position++ if buffer[position] != rune('.') { - goto l747 + goto l755 } position++ if buffer[position] != rune('{') { - goto l747 + goto l755 } position++ if buffer[position] != rune('?') { - goto l747 + goto l755 } position++ if buffer[position] != rune('}') { - goto l747 + goto l755 } position++ - goto l745 - l747: - position, tokenIndex = position745, tokenIndex745 + goto l753 + l755: + position, tokenIndex = position753, tokenIndex753 { - position748, tokenIndex748 := position, tokenIndex + position756, tokenIndex756 := position, tokenIndex if buffer[position] != rune('e') { - goto l749 + goto l757 } position++ if buffer[position] != rune('t') { - goto l749 + goto l757 } position++ - goto l748 - l749: - position, tokenIndex = position748, tokenIndex748 + goto l756 + l757: + position, tokenIndex = position756, tokenIndex756 if buffer[position] != rune('&') { - goto l743 + goto l751 } position++ } - l748: + l756: if buffer[position] != rune(' ') { - goto l743 + goto l751 } position++ if buffer[position] != rune('a') { - goto l743 + goto l751 } position++ if buffer[position] != rune('l') { - goto l743 + goto l751 } position++ { - position750, tokenIndex750 := position, tokenIndex + position758, tokenIndex758 := position, tokenIndex if buffer[position] != rune('.') { - goto l750 + goto l758 } position++ - goto l751 - l750: - position, tokenIndex = position750, tokenIndex750 + goto l759 + l758: + position, tokenIndex = position758, tokenIndex758 } - l751: + l759: } - l745: - add(ruleAuthorEtAl, position744) + l753: + add(ruleAuthorEtAl, position752) } return true - l743: - position, tokenIndex = position743, tokenIndex743 + l751: + position, tokenIndex = position751, tokenIndex751 return false }, - /* 101 AuthorWord1 <- <(('d' 'u' 'P' 'o' 'n' 't') / ('d' 'e' 'g' 'l' 'i'))> */ + /* 103 AuthorWord1 <- <(('d' 'u' 'P' 'o' 'n' 't') / ('d' 'e' 'g' 'l' 'i'))> */ func() bool { - position752, tokenIndex752 := position, tokenIndex + position760, tokenIndex760 := position, tokenIndex { - position753 := position + position761 := position { - position754, tokenIndex754 := position, tokenIndex + position762, tokenIndex762 := position, tokenIndex if buffer[position] != rune('d') { - goto l755 + goto l763 } position++ if buffer[position] != rune('u') { - goto l755 + goto l763 } position++ if buffer[position] != rune('P') { - goto l755 + goto l763 } position++ if buffer[position] != rune('o') { - goto l755 + goto l763 } position++ if buffer[position] != rune('n') { - goto l755 + goto l763 } position++ if buffer[position] != rune('t') { - goto l755 + goto l763 } position++ - goto l754 - l755: - position, tokenIndex = position754, tokenIndex754 + goto l762 + l763: + position, tokenIndex = position762, tokenIndex762 if buffer[position] != rune('d') { - goto l752 + goto l760 } position++ if buffer[position] != rune('e') { - goto l752 + goto l760 } position++ if buffer[position] != rune('g') { - goto l752 + goto l760 } position++ if buffer[position] != rune('l') { - goto l752 + goto l760 } position++ if buffer[position] != rune('i') { - goto l752 + goto l760 } position++ } - l754: - add(ruleAuthorWord1, position753) + l762: + add(ruleAuthorWord1, position761) } return true - l752: - position, tokenIndex = position752, tokenIndex752 + l760: + position, tokenIndex = position760, tokenIndex760 return false }, - /* 102 AuthorWord2 <- <((AuthorWord3 / AuthorWord4) Dash (AuthorWordSoft / AuthorInitial))> */ + /* 104 AuthorWord2 <- <((AuthorWord3 / AuthorWord4) Dash (AuthorWordSoft / AuthorInitial))> */ func() bool { - position756, tokenIndex756 := position, tokenIndex + position764, tokenIndex764 := position, tokenIndex { - position757 := position + position765 := position { - position758, tokenIndex758 := position, tokenIndex + position766, tokenIndex766 := position, tokenIndex if !_rules[ruleAuthorWord3]() { - goto l759 + goto l767 } - goto l758 - l759: - position, tokenIndex = position758, tokenIndex758 + goto l766 + l767: + position, tokenIndex = position766, tokenIndex766 if !_rules[ruleAuthorWord4]() { - goto l756 + goto l764 } } - l758: + l766: if !_rules[ruleDash]() { - goto l756 + goto l764 } { - position760, tokenIndex760 := position, tokenIndex + position768, tokenIndex768 := position, tokenIndex if !_rules[ruleAuthorWordSoft]() { - goto l761 + goto l769 } - goto l760 - l761: - position, tokenIndex = position760, tokenIndex760 + goto l768 + l769: + position, tokenIndex = position768, tokenIndex768 if !_rules[ruleAuthorInitial]() { - goto l756 + goto l764 } } - l760: - add(ruleAuthorWord2, position757) + l768: + add(ruleAuthorWord2, position765) } return true - l756: - position, tokenIndex = position756, tokenIndex756 + l764: + position, tokenIndex = position764, tokenIndex764 return false }, - /* 103 AuthorWord3 <- <(AuthorPrefixGlued2 (CapAuthorWord / AuthorLowerChar+) '.'?)> */ + /* 105 AuthorWord3 <- <(AuthorPrefixGlued2 (CapAuthorWord / AuthorLowerChar+) '.'?)> */ func() bool { - position762, tokenIndex762 := position, tokenIndex + position770, tokenIndex770 := position, tokenIndex { - position763 := position + position771 := position if !_rules[ruleAuthorPrefixGlued2]() { - goto l762 + goto l770 } { - position764, tokenIndex764 := position, tokenIndex + position772, tokenIndex772 := position, tokenIndex if !_rules[ruleCapAuthorWord]() { - goto l765 + goto l773 } - goto l764 - l765: - position, tokenIndex = position764, tokenIndex764 + goto l772 + l773: + position, tokenIndex = position772, tokenIndex772 if !_rules[ruleAuthorLowerChar]() { - goto l762 + goto l770 } - l766: + l774: { - position767, tokenIndex767 := position, tokenIndex + position775, tokenIndex775 := position, tokenIndex if !_rules[ruleAuthorLowerChar]() { - goto l767 + goto l775 } - goto l766 - l767: - position, tokenIndex = position767, tokenIndex767 + goto l774 + l775: + position, tokenIndex = position775, tokenIndex775 } } - l764: + l772: { - position768, tokenIndex768 := position, tokenIndex + position776, tokenIndex776 := position, tokenIndex if buffer[position] != rune('.') { - goto l768 + goto l776 } position++ - goto l769 - l768: - position, tokenIndex = position768, tokenIndex768 + goto l777 + l776: + position, tokenIndex = position776, tokenIndex776 } - l769: - add(ruleAuthorWord3, position763) + l777: + add(ruleAuthorWord3, position771) } return true - l762: - position, tokenIndex = position762, tokenIndex762 + l770: + position, tokenIndex = position770, tokenIndex770 return false }, - /* 104 AuthorWord4 <- <(AuthorPrefixGlued1? (AllCapsAuthorWord / CapAuthorWord) '.'?)> */ + /* 106 AuthorWord4 <- <(AuthorPrefixGlued1? (AllCapsAuthorWord / CapAuthorWord) '.'?)> */ func() bool { - position770, tokenIndex770 := position, tokenIndex + position778, tokenIndex778 := position, tokenIndex { - position771 := position + position779 := position { - position772, tokenIndex772 := position, tokenIndex + position780, tokenIndex780 := position, tokenIndex if !_rules[ruleAuthorPrefixGlued1]() { - goto l772 + goto l780 } - goto l773 - l772: - position, tokenIndex = position772, tokenIndex772 + goto l781 + l780: + position, tokenIndex = position780, tokenIndex780 } - l773: + l781: { - position774, tokenIndex774 := position, tokenIndex + position782, tokenIndex782 := position, tokenIndex if !_rules[ruleAllCapsAuthorWord]() { - goto l775 + goto l783 } - goto l774 - l775: - position, tokenIndex = position774, tokenIndex774 + goto l782 + l783: + position, tokenIndex = position782, tokenIndex782 if !_rules[ruleCapAuthorWord]() { - goto l770 + goto l778 } } - l774: + l782: { - position776, tokenIndex776 := position, tokenIndex + position784, tokenIndex784 := position, tokenIndex if buffer[position] != rune('.') { - goto l776 + goto l784 } position++ - goto l777 - l776: - position, tokenIndex = position776, tokenIndex776 + goto l785 + l784: + position, tokenIndex = position784, tokenIndex784 } - l777: - add(ruleAuthorWord4, position771) + l785: + add(ruleAuthorWord4, position779) } return true - l770: - position, tokenIndex = position770, tokenIndex770 + l778: + position, tokenIndex = position778, tokenIndex778 return false }, - /* 105 AuthorDashInitials <- <(AuthorUpperChar '.'? Dash AuthorUpperChar '.'?)> */ + /* 107 AuthorDashInitials <- <(AuthorUpperChar '.'? Dash AuthorUpperChar '.'?)> */ func() bool { - position778, tokenIndex778 := position, tokenIndex + position786, tokenIndex786 := position, tokenIndex { - position779 := position + position787 := position if !_rules[ruleAuthorUpperChar]() { - goto l778 + goto l786 } { - position780, tokenIndex780 := position, tokenIndex + position788, tokenIndex788 := position, tokenIndex if buffer[position] != rune('.') { - goto l780 + goto l788 } position++ - goto l781 - l780: - position, tokenIndex = position780, tokenIndex780 + goto l789 + l788: + position, tokenIndex = position788, tokenIndex788 } - l781: + l789: if !_rules[ruleDash]() { - goto l778 + goto l786 } if !_rules[ruleAuthorUpperChar]() { - goto l778 + goto l786 } { - position782, tokenIndex782 := position, tokenIndex + position790, tokenIndex790 := position, tokenIndex if buffer[position] != rune('.') { - goto l782 + goto l790 } position++ - goto l783 - l782: - position, tokenIndex = position782, tokenIndex782 + goto l791 + l790: + position, tokenIndex = position790, tokenIndex790 } - l783: - add(ruleAuthorDashInitials, position779) + l791: + add(ruleAuthorDashInitials, position787) } return true - l778: - position, tokenIndex = position778, tokenIndex778 + l786: + position, tokenIndex = position786, tokenIndex786 return false }, - /* 106 AuthorInitial <- <(AuthorUpperChar '.'?)> */ + /* 108 AuthorInitial <- <(AuthorUpperChar '.'?)> */ func() bool { - position784, tokenIndex784 := position, tokenIndex + position792, tokenIndex792 := position, tokenIndex { - position785 := position + position793 := position if !_rules[ruleAuthorUpperChar]() { - goto l784 + goto l792 } { - position786, tokenIndex786 := position, tokenIndex + position794, tokenIndex794 := position, tokenIndex if buffer[position] != rune('.') { - goto l786 + goto l794 } position++ - goto l787 - l786: - position, tokenIndex = position786, tokenIndex786 + goto l795 + l794: + position, tokenIndex = position794, tokenIndex794 } - l787: - add(ruleAuthorInitial, position785) + l795: + add(ruleAuthorInitial, position793) } return true - l784: - position, tokenIndex = position784, tokenIndex784 + l792: + position, tokenIndex = position792, tokenIndex792 return false }, - /* 107 AuthorWordSoft <- <(((AuthorUpperChar (AuthorUpperChar+ / AuthorLowerChar+)) / AuthorLowerChar+) '.'?)> */ + /* 109 AuthorWordSoft <- <(((AuthorUpperChar (AuthorUpperChar+ / AuthorLowerChar+)) / AuthorLowerChar+) '.'?)> */ func() bool { - position788, tokenIndex788 := position, tokenIndex + position796, tokenIndex796 := position, tokenIndex { - position789 := position + position797 := position { - position790, tokenIndex790 := position, tokenIndex + position798, tokenIndex798 := position, tokenIndex if !_rules[ruleAuthorUpperChar]() { - goto l791 + goto l799 } { - position792, tokenIndex792 := position, tokenIndex + position800, tokenIndex800 := position, tokenIndex if !_rules[ruleAuthorUpperChar]() { - goto l793 + goto l801 } - l794: + l802: { - position795, tokenIndex795 := position, tokenIndex + position803, tokenIndex803 := position, tokenIndex if !_rules[ruleAuthorUpperChar]() { - goto l795 + goto l803 } - goto l794 - l795: - position, tokenIndex = position795, tokenIndex795 + goto l802 + l803: + position, tokenIndex = position803, tokenIndex803 } - goto l792 - l793: - position, tokenIndex = position792, tokenIndex792 + goto l800 + l801: + position, tokenIndex = position800, tokenIndex800 if !_rules[ruleAuthorLowerChar]() { - goto l791 + goto l799 } - l796: + l804: { - position797, tokenIndex797 := position, tokenIndex + position805, tokenIndex805 := position, tokenIndex if !_rules[ruleAuthorLowerChar]() { - goto l797 + goto l805 } - goto l796 - l797: - position, tokenIndex = position797, tokenIndex797 + goto l804 + l805: + position, tokenIndex = position805, tokenIndex805 } } - l792: - goto l790 - l791: - position, tokenIndex = position790, tokenIndex790 + l800: + goto l798 + l799: + position, tokenIndex = position798, tokenIndex798 if !_rules[ruleAuthorLowerChar]() { - goto l788 + goto l796 } - l798: + l806: { - position799, tokenIndex799 := position, tokenIndex + position807, tokenIndex807 := position, tokenIndex if !_rules[ruleAuthorLowerChar]() { - goto l799 + goto l807 } - goto l798 - l799: - position, tokenIndex = position799, tokenIndex799 + goto l806 + l807: + position, tokenIndex = position807, tokenIndex807 } } - l790: + l798: { - position800, tokenIndex800 := position, tokenIndex + position808, tokenIndex808 := position, tokenIndex if buffer[position] != rune('.') { - goto l800 + goto l808 } position++ - goto l801 - l800: - position, tokenIndex = position800, tokenIndex800 + goto l809 + l808: + position, tokenIndex = position808, tokenIndex808 } - l801: - add(ruleAuthorWordSoft, position789) + l809: + add(ruleAuthorWordSoft, position797) } return true - l788: - position, tokenIndex = position788, tokenIndex788 + l796: + position, tokenIndex = position796, tokenIndex796 return false }, - /* 108 CapAuthorWord <- <(AuthorUpperChar AuthorLowerChar*)> */ + /* 110 CapAuthorWord <- <(AuthorUpperChar AuthorLowerChar*)> */ func() bool { - position802, tokenIndex802 := position, tokenIndex + position810, tokenIndex810 := position, tokenIndex { - position803 := position + position811 := position if !_rules[ruleAuthorUpperChar]() { - goto l802 + goto l810 } - l804: + l812: { - position805, tokenIndex805 := position, tokenIndex + position813, tokenIndex813 := position, tokenIndex if !_rules[ruleAuthorLowerChar]() { - goto l805 + goto l813 } - goto l804 - l805: - position, tokenIndex = position805, tokenIndex805 + goto l812 + l813: + position, tokenIndex = position813, tokenIndex813 } - add(ruleCapAuthorWord, position803) + add(ruleCapAuthorWord, position811) } return true - l802: - position, tokenIndex = position802, tokenIndex802 + l810: + position, tokenIndex = position810, tokenIndex810 return false }, - /* 109 AllCapsAuthorWord <- <(AuthorUpperChar AuthorUpperChar+)> */ + /* 111 AllCapsAuthorWord <- <(AuthorUpperChar AuthorUpperChar+)> */ func() bool { - position806, tokenIndex806 := position, tokenIndex + position814, tokenIndex814 := position, tokenIndex { - position807 := position + position815 := position if !_rules[ruleAuthorUpperChar]() { - goto l806 + goto l814 } if !_rules[ruleAuthorUpperChar]() { - goto l806 + goto l814 } - l808: + l816: { - position809, tokenIndex809 := position, tokenIndex + position817, tokenIndex817 := position, tokenIndex if !_rules[ruleAuthorUpperChar]() { - goto l809 + goto l817 } - goto l808 - l809: - position, tokenIndex = position809, tokenIndex809 + goto l816 + l817: + position, tokenIndex = position817, tokenIndex817 } - add(ruleAllCapsAuthorWord, position807) + add(ruleAllCapsAuthorWord, position815) } return true - l806: - position, tokenIndex = position806, tokenIndex806 + l814: + position, tokenIndex = position814, tokenIndex814 return false }, - /* 110 Filius <- <(FiliusF / ('f' 'i' 'l' '.') / ('f' 'i' 'l' 'i' 'u' 's'))> */ + /* 112 Filius <- <(FiliusF / ('f' 'i' 'l' '.') / ('f' 'i' 'l' 'i' 'u' 's'))> */ func() bool { - position810, tokenIndex810 := position, tokenIndex + position818, tokenIndex818 := position, tokenIndex { - position811 := position + position819 := position { - position812, tokenIndex812 := position, tokenIndex + position820, tokenIndex820 := position, tokenIndex if !_rules[ruleFiliusF]() { - goto l813 + goto l821 } - goto l812 - l813: - position, tokenIndex = position812, tokenIndex812 + goto l820 + l821: + position, tokenIndex = position820, tokenIndex820 if buffer[position] != rune('f') { - goto l814 + goto l822 } position++ if buffer[position] != rune('i') { - goto l814 + goto l822 } position++ if buffer[position] != rune('l') { - goto l814 + goto l822 } position++ if buffer[position] != rune('.') { - goto l814 + goto l822 } position++ - goto l812 - l814: - position, tokenIndex = position812, tokenIndex812 + goto l820 + l822: + position, tokenIndex = position820, tokenIndex820 if buffer[position] != rune('f') { - goto l810 + goto l818 } position++ if buffer[position] != rune('i') { - goto l810 + goto l818 } position++ if buffer[position] != rune('l') { - goto l810 + goto l818 } position++ if buffer[position] != rune('i') { - goto l810 + goto l818 } position++ if buffer[position] != rune('u') { - goto l810 + goto l818 } position++ if buffer[position] != rune('s') { - goto l810 + goto l818 } position++ } - l812: - add(ruleFilius, position811) + l820: + add(ruleFilius, position819) } return true - l810: - position, tokenIndex = position810, tokenIndex810 + l818: + position, tokenIndex = position818, tokenIndex818 return false }, - /* 111 FiliusF <- <('f' '.' !(_ Word))> */ + /* 113 FiliusF <- <('f' '.' !(_ Word))> */ func() bool { - position815, tokenIndex815 := position, tokenIndex + position823, tokenIndex823 := position, tokenIndex { - position816 := position + position824 := position if buffer[position] != rune('f') { - goto l815 + goto l823 } position++ if buffer[position] != rune('.') { - goto l815 + goto l823 } position++ { - position817, tokenIndex817 := position, tokenIndex + position825, tokenIndex825 := position, tokenIndex if !_rules[rule_]() { - goto l817 + goto l825 } if !_rules[ruleWord]() { - goto l817 + goto l825 } - goto l815 - l817: - position, tokenIndex = position817, tokenIndex817 + goto l823 + l825: + position, tokenIndex = position825, tokenIndex825 } - add(ruleFiliusF, position816) + add(ruleFiliusF, position824) } return true - l815: - position, tokenIndex = position815, tokenIndex815 + l823: + position, tokenIndex = position823, tokenIndex823 return false }, - /* 112 FiliusFNoSpace <- <('f' '.')> */ + /* 114 FiliusFNoSpace <- <('f' '.')> */ func() bool { - position818, tokenIndex818 := position, tokenIndex + position826, tokenIndex826 := position, tokenIndex { - position819 := position + position827 := position if buffer[position] != rune('f') { - goto l818 + goto l826 } position++ if buffer[position] != rune('.') { - goto l818 + goto l826 } position++ - add(ruleFiliusFNoSpace, position819) + add(ruleFiliusFNoSpace, position827) } return true - l818: - position, tokenIndex = position818, tokenIndex818 + l826: + position, tokenIndex = position826, tokenIndex826 return false }, - /* 113 AuthorSuffix <- <(('b' 'i' 's') / ('t' 'e' 'r'))> */ + /* 115 AuthorSuffix <- <(('b' 'i' 's') / ('t' 'e' 'r'))> */ func() bool { - position820, tokenIndex820 := position, tokenIndex + position828, tokenIndex828 := position, tokenIndex { - position821 := position + position829 := position { - position822, tokenIndex822 := position, tokenIndex + position830, tokenIndex830 := position, tokenIndex if buffer[position] != rune('b') { - goto l823 + goto l831 } position++ if buffer[position] != rune('i') { - goto l823 + goto l831 } position++ if buffer[position] != rune('s') { - goto l823 + goto l831 } position++ - goto l822 - l823: - position, tokenIndex = position822, tokenIndex822 + goto l830 + l831: + position, tokenIndex = position830, tokenIndex830 if buffer[position] != rune('t') { - goto l820 + goto l828 } position++ if buffer[position] != rune('e') { - goto l820 + goto l828 } position++ if buffer[position] != rune('r') { - goto l820 + goto l828 } position++ } - l822: - add(ruleAuthorSuffix, position821) + l830: + add(ruleAuthorSuffix, position829) } return true - l820: - position, tokenIndex = position820, tokenIndex820 + l828: + position, tokenIndex = position828, tokenIndex828 return false }, - /* 114 AuthorPrefixGlued1 <- <(('d' / 'O' / 'L' / 'M') Apostrophe)> */ + /* 116 AuthorPrefixGlued1 <- <(('d' / 'O' / 'L' / 'M') Apostrophe)> */ func() bool { - position824, tokenIndex824 := position, tokenIndex + position832, tokenIndex832 := position, tokenIndex { - position825 := position + position833 := position { - position826, tokenIndex826 := position, tokenIndex + position834, tokenIndex834 := position, tokenIndex if buffer[position] != rune('d') { - goto l827 + goto l835 } position++ - goto l826 - l827: - position, tokenIndex = position826, tokenIndex826 + goto l834 + l835: + position, tokenIndex = position834, tokenIndex834 if buffer[position] != rune('O') { - goto l828 + goto l836 } position++ - goto l826 - l828: - position, tokenIndex = position826, tokenIndex826 + goto l834 + l836: + position, tokenIndex = position834, tokenIndex834 if buffer[position] != rune('L') { - goto l829 + goto l837 } position++ - goto l826 - l829: - position, tokenIndex = position826, tokenIndex826 + goto l834 + l837: + position, tokenIndex = position834, tokenIndex834 if buffer[position] != rune('M') { - goto l824 + goto l832 } position++ } - l826: + l834: if !_rules[ruleApostrophe]() { - goto l824 + goto l832 } - add(ruleAuthorPrefixGlued1, position825) + add(ruleAuthorPrefixGlued1, position833) } return true - l824: - position, tokenIndex = position824, tokenIndex824 + l832: + position, tokenIndex = position832, tokenIndex832 return false }, - /* 115 AuthorPrefixGlued2 <- <((('M' 'c') / ('M' 'a' 'c')) Apostrophe?)> */ + /* 117 AuthorPrefixGlued2 <- <((('M' 'c') / ('M' 'a' 'c')) Apostrophe?)> */ func() bool { - position830, tokenIndex830 := position, tokenIndex + position838, tokenIndex838 := position, tokenIndex { - position831 := position + position839 := position { - position832, tokenIndex832 := position, tokenIndex + position840, tokenIndex840 := position, tokenIndex if buffer[position] != rune('M') { - goto l833 + goto l841 } position++ if buffer[position] != rune('c') { - goto l833 + goto l841 } position++ - goto l832 - l833: - position, tokenIndex = position832, tokenIndex832 + goto l840 + l841: + position, tokenIndex = position840, tokenIndex840 if buffer[position] != rune('M') { - goto l830 + goto l838 } position++ if buffer[position] != rune('a') { - goto l830 + goto l838 } position++ if buffer[position] != rune('c') { - goto l830 + goto l838 } position++ } - l832: + l840: { - position834, tokenIndex834 := position, tokenIndex + position842, tokenIndex842 := position, tokenIndex if !_rules[ruleApostrophe]() { - goto l834 + goto l842 } - goto l835 - l834: - position, tokenIndex = position834, tokenIndex834 + goto l843 + l842: + position, tokenIndex = position842, tokenIndex842 } - l835: - add(ruleAuthorPrefixGlued2, position831) + l843: + add(ruleAuthorPrefixGlued2, position839) } return true - l830: - position, tokenIndex = position830, tokenIndex830 + l838: + position, tokenIndex = position838, tokenIndex838 return false }, - /* 116 AuthorPrefix <- <(AuthorPrefix1 / AuthorPrefix2)> */ + /* 118 AuthorPrefix <- <(AuthorPrefix1 / AuthorPrefix2)> */ func() bool { - position836, tokenIndex836 := position, tokenIndex + position844, tokenIndex844 := position, tokenIndex { - position837 := position + position845 := position { - position838, tokenIndex838 := position, tokenIndex + position846, tokenIndex846 := position, tokenIndex if !_rules[ruleAuthorPrefix1]() { - goto l839 + goto l847 } - goto l838 - l839: - position, tokenIndex = position838, tokenIndex838 + goto l846 + l847: + position, tokenIndex = position846, tokenIndex846 if !_rules[ruleAuthorPrefix2]() { - goto l836 + goto l844 } } - l838: - add(ruleAuthorPrefix, position837) + l846: + add(ruleAuthorPrefix, position845) } return true - l836: - position, tokenIndex = position836, tokenIndex836 + l844: + position, tokenIndex = position844, tokenIndex844 return false }, - /* 117 AuthorPrefix2 <- <(('v' '.' (_? ('d' '.'))?) / (Apostrophe 't'))> */ + /* 119 AuthorPrefix2 <- <(('v' '.' (_? ('d' '.'))?) / (Apostrophe 't'))> */ func() bool { - position840, tokenIndex840 := position, tokenIndex + position848, tokenIndex848 := position, tokenIndex { - position841 := position + position849 := position { - position842, tokenIndex842 := position, tokenIndex + position850, tokenIndex850 := position, tokenIndex if buffer[position] != rune('v') { - goto l843 + goto l851 } position++ if buffer[position] != rune('.') { - goto l843 + goto l851 } position++ { - position844, tokenIndex844 := position, tokenIndex + position852, tokenIndex852 := position, tokenIndex { - position846, tokenIndex846 := position, tokenIndex + position854, tokenIndex854 := position, tokenIndex if !_rules[rule_]() { - goto l846 + goto l854 } - goto l847 - l846: - position, tokenIndex = position846, tokenIndex846 + goto l855 + l854: + position, tokenIndex = position854, tokenIndex854 } - l847: + l855: if buffer[position] != rune('d') { - goto l844 + goto l852 } position++ if buffer[position] != rune('.') { - goto l844 + goto l852 } position++ - goto l845 - l844: - position, tokenIndex = position844, tokenIndex844 + goto l853 + l852: + position, tokenIndex = position852, tokenIndex852 } - l845: - goto l842 - l843: - position, tokenIndex = position842, tokenIndex842 + l853: + goto l850 + l851: + position, tokenIndex = position850, tokenIndex850 if !_rules[ruleApostrophe]() { - goto l840 + goto l848 } if buffer[position] != rune('t') { - goto l840 + goto l848 } position++ } - l842: - add(ruleAuthorPrefix2, position841) + l850: + add(ruleAuthorPrefix2, position849) } return true - l840: - position, tokenIndex = position840, tokenIndex840 + l848: + position, tokenIndex = position848, tokenIndex848 return false }, - /* 118 AuthorPrefix1 <- <((('a' 'b') / ('a' 'f') / ('b' 'i' 's') / ('d' 'a') / ('d' 'e' 'r') / ('d' 'e' 's') / ('d' 'e' 'n') / ('d' 'e' 'l' 'l' 'a') / ('d' 'e' 'l' 'a') / ('d' 'e' 'l' 'l' 'e') / ('d' 'e' 'l') / ('d' 'e' ' ' 'l' 'o' 's') / ('d' 'e') / ('d' 'i') / ('d' 'o' 's') / ('d' 'u') / ('d' 'o') / ('e' 'l') / ('l' 'a') / ('l' 'e') / ('t' 'e' 'n') / ('t' 'e' 'r') / ('v' 'a' 'n') / ('v' 'e' 'r') / ('d' Apostrophe) / ('i' 'n' Apostrophe 't') / ('z' 'u' 'r') / ('z' 'u') / ('v' 'o' 'n' (_ (('d' '.') / ('d' 'e' 'm')))?) / ('v' (_ 'd')?)) &_)> */ + /* 120 AuthorPrefix1 <- <((('a' 'b') / ('a' 'f') / ('b' 'i' 's') / ('d' 'a') / ('d' 'e' 'r') / ('d' 'e' 's') / ('d' 'e' 'n') / ('d' 'e' 'l' 'l' 'a') / ('d' 'e' 'l' 'a') / ('d' 'e' 'l' 'l' 'e') / ('d' 'e' 'l') / ('d' 'e' ' ' 'l' 'o' 's') / ('d' 'e') / ('d' 'i') / ('d' 'o' 's') / ('d' 'u') / ('d' 'o') / ('e' 'l') / ('l' 'a') / ('l' 'e') / ('t' 'e' 'n') / ('t' 'e' 'r') / ('v' 'a' 'n') / ('v' 'e' 'r') / ('d' Apostrophe) / ('i' 'n' Apostrophe 't') / ('z' 'u' 'r') / ('z' 'u') / ('v' 'o' 'n' (_ (('d' '.') / ('d' 'e' 'm')))?) / ('v' (_ 'd')?)) &_)> */ func() bool { - position848, tokenIndex848 := position, tokenIndex + position856, tokenIndex856 := position, tokenIndex { - position849 := position + position857 := position { - position850, tokenIndex850 := position, tokenIndex + position858, tokenIndex858 := position, tokenIndex if buffer[position] != rune('a') { - goto l851 + goto l859 } position++ if buffer[position] != rune('b') { - goto l851 + goto l859 } position++ - goto l850 - l851: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l859: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('a') { - goto l852 + goto l860 } position++ if buffer[position] != rune('f') { - goto l852 + goto l860 } position++ - goto l850 - l852: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l860: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('b') { - goto l853 + goto l861 } position++ if buffer[position] != rune('i') { - goto l853 + goto l861 } position++ if buffer[position] != rune('s') { - goto l853 + goto l861 } position++ - goto l850 - l853: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l861: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('d') { - goto l854 + goto l862 } position++ if buffer[position] != rune('a') { - goto l854 + goto l862 } position++ - goto l850 - l854: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l862: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('d') { - goto l855 + goto l863 } position++ if buffer[position] != rune('e') { - goto l855 + goto l863 } position++ if buffer[position] != rune('r') { - goto l855 + goto l863 } position++ - goto l850 - l855: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l863: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('d') { - goto l856 + goto l864 } position++ if buffer[position] != rune('e') { - goto l856 + goto l864 } position++ if buffer[position] != rune('s') { - goto l856 + goto l864 } position++ - goto l850 - l856: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l864: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('d') { - goto l857 + goto l865 } position++ if buffer[position] != rune('e') { - goto l857 + goto l865 } position++ if buffer[position] != rune('n') { - goto l857 + goto l865 } position++ - goto l850 - l857: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l865: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('d') { - goto l858 + goto l866 } position++ if buffer[position] != rune('e') { - goto l858 + goto l866 } position++ if buffer[position] != rune('l') { - goto l858 + goto l866 } position++ if buffer[position] != rune('l') { - goto l858 + goto l866 } position++ if buffer[position] != rune('a') { - goto l858 + goto l866 } position++ - goto l850 - l858: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l866: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('d') { - goto l859 + goto l867 } position++ if buffer[position] != rune('e') { - goto l859 + goto l867 } position++ if buffer[position] != rune('l') { - goto l859 + goto l867 } position++ if buffer[position] != rune('a') { - goto l859 + goto l867 } position++ - goto l850 - l859: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l867: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('d') { - goto l860 + goto l868 } position++ if buffer[position] != rune('e') { - goto l860 + goto l868 } position++ if buffer[position] != rune('l') { - goto l860 + goto l868 } position++ if buffer[position] != rune('l') { - goto l860 + goto l868 } position++ if buffer[position] != rune('e') { - goto l860 + goto l868 } position++ - goto l850 - l860: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l868: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('d') { - goto l861 + goto l869 } position++ if buffer[position] != rune('e') { - goto l861 + goto l869 } position++ if buffer[position] != rune('l') { - goto l861 + goto l869 } position++ - goto l850 - l861: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l869: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('d') { - goto l862 + goto l870 } position++ if buffer[position] != rune('e') { - goto l862 + goto l870 } position++ if buffer[position] != rune(' ') { - goto l862 + goto l870 } position++ if buffer[position] != rune('l') { - goto l862 + goto l870 } position++ if buffer[position] != rune('o') { - goto l862 + goto l870 } position++ if buffer[position] != rune('s') { - goto l862 + goto l870 } position++ - goto l850 - l862: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l870: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('d') { - goto l863 + goto l871 } position++ if buffer[position] != rune('e') { - goto l863 + goto l871 } position++ - goto l850 - l863: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l871: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('d') { - goto l864 + goto l872 } position++ if buffer[position] != rune('i') { - goto l864 + goto l872 } position++ - goto l850 - l864: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l872: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('d') { - goto l865 + goto l873 } position++ if buffer[position] != rune('o') { - goto l865 + goto l873 } position++ if buffer[position] != rune('s') { - goto l865 + goto l873 } position++ - goto l850 - l865: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l873: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('d') { - goto l866 + goto l874 } position++ if buffer[position] != rune('u') { - goto l866 + goto l874 } position++ - goto l850 - l866: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l874: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('d') { - goto l867 + goto l875 } position++ if buffer[position] != rune('o') { - goto l867 + goto l875 } position++ - goto l850 - l867: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l875: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('e') { - goto l868 + goto l876 } position++ if buffer[position] != rune('l') { - goto l868 + goto l876 } position++ - goto l850 - l868: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l876: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('l') { - goto l869 + goto l877 } position++ if buffer[position] != rune('a') { - goto l869 + goto l877 } position++ - goto l850 - l869: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l877: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('l') { - goto l870 + goto l878 } position++ if buffer[position] != rune('e') { - goto l870 + goto l878 } position++ - goto l850 - l870: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l878: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('t') { - goto l871 + goto l879 } position++ if buffer[position] != rune('e') { - goto l871 + goto l879 } position++ if buffer[position] != rune('n') { - goto l871 + goto l879 } position++ - goto l850 - l871: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l879: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('t') { - goto l872 + goto l880 } position++ if buffer[position] != rune('e') { - goto l872 + goto l880 } position++ if buffer[position] != rune('r') { - goto l872 + goto l880 } position++ - goto l850 - l872: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l880: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('v') { - goto l873 + goto l881 } position++ if buffer[position] != rune('a') { - goto l873 + goto l881 } position++ if buffer[position] != rune('n') { - goto l873 + goto l881 } position++ - goto l850 - l873: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l881: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('v') { - goto l874 + goto l882 } position++ if buffer[position] != rune('e') { - goto l874 + goto l882 } position++ if buffer[position] != rune('r') { - goto l874 + goto l882 } position++ - goto l850 - l874: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l882: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('d') { - goto l875 + goto l883 } position++ if !_rules[ruleApostrophe]() { - goto l875 + goto l883 } - goto l850 - l875: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l883: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('i') { - goto l876 + goto l884 } position++ if buffer[position] != rune('n') { - goto l876 + goto l884 } position++ if !_rules[ruleApostrophe]() { - goto l876 + goto l884 } if buffer[position] != rune('t') { - goto l876 + goto l884 } position++ - goto l850 - l876: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l884: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('z') { - goto l877 + goto l885 } position++ if buffer[position] != rune('u') { - goto l877 + goto l885 } position++ if buffer[position] != rune('r') { - goto l877 + goto l885 } position++ - goto l850 - l877: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l885: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('z') { - goto l878 + goto l886 } position++ if buffer[position] != rune('u') { - goto l878 + goto l886 } position++ - goto l850 - l878: - position, tokenIndex = position850, tokenIndex850 + goto l858 + l886: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('v') { - goto l879 + goto l887 } position++ if buffer[position] != rune('o') { - goto l879 + goto l887 } position++ if buffer[position] != rune('n') { - goto l879 + goto l887 } position++ { - position880, tokenIndex880 := position, tokenIndex + position888, tokenIndex888 := position, tokenIndex if !_rules[rule_]() { - goto l880 + goto l888 } { - position882, tokenIndex882 := position, tokenIndex + position890, tokenIndex890 := position, tokenIndex if buffer[position] != rune('d') { - goto l883 + goto l891 } position++ if buffer[position] != rune('.') { - goto l883 + goto l891 } position++ - goto l882 - l883: - position, tokenIndex = position882, tokenIndex882 + goto l890 + l891: + position, tokenIndex = position890, tokenIndex890 if buffer[position] != rune('d') { - goto l880 + goto l888 } position++ if buffer[position] != rune('e') { - goto l880 + goto l888 } position++ if buffer[position] != rune('m') { - goto l880 + goto l888 } position++ } - l882: - goto l881 - l880: - position, tokenIndex = position880, tokenIndex880 + l890: + goto l889 + l888: + position, tokenIndex = position888, tokenIndex888 } - l881: - goto l850 - l879: - position, tokenIndex = position850, tokenIndex850 + l889: + goto l858 + l887: + position, tokenIndex = position858, tokenIndex858 if buffer[position] != rune('v') { - goto l848 + goto l856 } position++ { - position884, tokenIndex884 := position, tokenIndex + position892, tokenIndex892 := position, tokenIndex if !_rules[rule_]() { - goto l884 + goto l892 } if buffer[position] != rune('d') { - goto l884 + goto l892 } position++ - goto l885 - l884: - position, tokenIndex = position884, tokenIndex884 + goto l893 + l892: + position, tokenIndex = position892, tokenIndex892 } - l885: + l893: } - l850: + l858: { - position886, tokenIndex886 := position, tokenIndex + position894, tokenIndex894 := position, tokenIndex if !_rules[rule_]() { - goto l848 + goto l856 } - position, tokenIndex = position886, tokenIndex886 + position, tokenIndex = position894, tokenIndex894 } - add(ruleAuthorPrefix1, position849) + add(ruleAuthorPrefix1, position857) } return true - l848: - position, tokenIndex = position848, tokenIndex848 + l856: + position, tokenIndex = position856, tokenIndex856 return false }, - /* 119 AuthorUpperChar <- <(UpperASCII / MiscodedChar / ('À' / 'Á' / 'Â' / 'Ã' / 'Ä' / 'Å' / 'Æ' / 'Ç' / 'È' / 'É' / 'Ê' / 'Ë' / 'Ì' / 'Í' / 'Î' / 'Ï' / 'Ð' / 'Ñ' / 'Ò' / 'Ó' / 'Ô' / 'Õ' / 'Ö' / 'Ø' / 'Ù' / 'Ú' / 'Û' / 'Ü' / 'Ý' / 'Ć' / 'Č' / 'Ď' / 'İ' / 'Ķ' / 'Ĺ' / 'ĺ' / 'Ľ' / 'ľ' / 'Ł' / 'ł' / 'Ņ' / 'Ō' / 'Ő' / 'Œ' / 'Ř' / 'Ś' / 'Ŝ' / 'Ş' / 'Š' / 'Ÿ' / 'Ź' / 'Ż' / 'Ž' / 'ƒ' / 'Ǿ' / 'Ș' / 'Ț'))> */ + /* 121 AuthorUpperChar <- <(UpperASCII / MiscodedChar / ('À' / 'Á' / 'Â' / 'Ã' / 'Ä' / 'Å' / 'Æ' / 'Ç' / 'È' / 'É' / 'Ê' / 'Ë' / 'Ì' / 'Í' / 'Î' / 'Ï' / 'Ð' / 'Ñ' / 'Ò' / 'Ó' / 'Ô' / 'Õ' / 'Ö' / 'Ø' / 'Ù' / 'Ú' / 'Û' / 'Ü' / 'Ý' / 'Ć' / 'Č' / 'Ď' / 'İ' / 'Ķ' / 'Ĺ' / 'ĺ' / 'Ľ' / 'ľ' / 'Ł' / 'ł' / 'Ņ' / 'Ō' / 'Ő' / 'Œ' / 'Ř' / 'Ś' / 'Ŝ' / 'Ş' / 'Š' / 'Ÿ' / 'Ź' / 'Ż' / 'Ž' / 'ƒ' / 'Ǿ' / 'Ș' / 'Ț'))> */ func() bool { - position887, tokenIndex887 := position, tokenIndex + position895, tokenIndex895 := position, tokenIndex { - position888 := position + position896 := position { - position889, tokenIndex889 := position, tokenIndex + position897, tokenIndex897 := position, tokenIndex if !_rules[ruleUpperASCII]() { - goto l890 + goto l898 } - goto l889 - l890: - position, tokenIndex = position889, tokenIndex889 + goto l897 + l898: + position, tokenIndex = position897, tokenIndex897 if !_rules[ruleMiscodedChar]() { - goto l891 + goto l899 } - goto l889 - l891: - position, tokenIndex = position889, tokenIndex889 + goto l897 + l899: + position, tokenIndex = position897, tokenIndex897 { - position892, tokenIndex892 := position, tokenIndex + position900, tokenIndex900 := position, tokenIndex if buffer[position] != rune('À') { - goto l893 - } - position++ - goto l892 - l893: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Á') { - goto l894 - } - position++ - goto l892 - l894: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Â') { - goto l895 - } - position++ - goto l892 - l895: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ã') { - goto l896 - } - position++ - goto l892 - l896: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ä') { - goto l897 - } - position++ - goto l892 - l897: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Å') { - goto l898 - } - position++ - goto l892 - l898: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Æ') { - goto l899 - } - position++ - goto l892 - l899: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ç') { - goto l900 - } - position++ - goto l892 - l900: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('È') { goto l901 } position++ - goto l892 + goto l900 l901: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('É') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Á') { goto l902 } position++ - goto l892 + goto l900 l902: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ê') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Â') { goto l903 } position++ - goto l892 + goto l900 l903: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ë') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ã') { goto l904 } position++ - goto l892 + goto l900 l904: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ì') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ä') { goto l905 } position++ - goto l892 + goto l900 l905: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Í') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Å') { goto l906 } position++ - goto l892 + goto l900 l906: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Î') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Æ') { goto l907 } position++ - goto l892 + goto l900 l907: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ï') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ç') { goto l908 } position++ - goto l892 + goto l900 l908: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ð') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('È') { goto l909 } position++ - goto l892 + goto l900 l909: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ñ') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('É') { goto l910 } position++ - goto l892 + goto l900 l910: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ò') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ê') { goto l911 } position++ - goto l892 + goto l900 l911: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ó') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ë') { goto l912 } position++ - goto l892 + goto l900 l912: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ô') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ì') { goto l913 } position++ - goto l892 + goto l900 l913: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Õ') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Í') { goto l914 } position++ - goto l892 + goto l900 l914: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ö') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Î') { goto l915 } position++ - goto l892 + goto l900 l915: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ø') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ï') { goto l916 } position++ - goto l892 + goto l900 l916: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ù') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ð') { goto l917 } position++ - goto l892 + goto l900 l917: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ú') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ñ') { goto l918 } position++ - goto l892 + goto l900 l918: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Û') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ò') { goto l919 } position++ - goto l892 + goto l900 l919: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ü') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ó') { goto l920 } position++ - goto l892 + goto l900 l920: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ý') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ô') { goto l921 } position++ - goto l892 + goto l900 l921: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ć') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Õ') { goto l922 } position++ - goto l892 + goto l900 l922: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Č') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ö') { goto l923 } position++ - goto l892 + goto l900 l923: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ď') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ø') { goto l924 } position++ - goto l892 + goto l900 l924: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('İ') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ù') { goto l925 } position++ - goto l892 + goto l900 l925: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ķ') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ú') { goto l926 } position++ - goto l892 + goto l900 l926: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ĺ') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Û') { goto l927 } position++ - goto l892 + goto l900 l927: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('ĺ') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ü') { goto l928 } position++ - goto l892 + goto l900 l928: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ľ') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ý') { goto l929 } position++ - goto l892 + goto l900 l929: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('ľ') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ć') { goto l930 } position++ - goto l892 + goto l900 l930: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ł') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Č') { goto l931 } position++ - goto l892 + goto l900 l931: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('ł') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ď') { goto l932 } position++ - goto l892 - l932: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ņ') { + goto l900 + l932: + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('İ') { goto l933 } position++ - goto l892 + goto l900 l933: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ō') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ķ') { goto l934 } position++ - goto l892 + goto l900 l934: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ő') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ĺ') { goto l935 } position++ - goto l892 + goto l900 l935: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Œ') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('ĺ') { goto l936 } position++ - goto l892 + goto l900 l936: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ř') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ľ') { goto l937 } position++ - goto l892 + goto l900 l937: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ś') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('ľ') { goto l938 } position++ - goto l892 + goto l900 l938: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ŝ') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ł') { goto l939 } position++ - goto l892 + goto l900 l939: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ş') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('ł') { goto l940 } position++ - goto l892 + goto l900 l940: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Š') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ņ') { goto l941 } position++ - goto l892 + goto l900 l941: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ÿ') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ō') { goto l942 } position++ - goto l892 + goto l900 l942: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ź') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ő') { goto l943 } position++ - goto l892 + goto l900 l943: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ż') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Œ') { goto l944 } position++ - goto l892 + goto l900 l944: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ž') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ř') { goto l945 } position++ - goto l892 + goto l900 l945: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('ƒ') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ś') { goto l946 } position++ - goto l892 + goto l900 l946: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ǿ') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ŝ') { goto l947 } position++ - goto l892 + goto l900 l947: - position, tokenIndex = position892, tokenIndex892 - if buffer[position] != rune('Ș') { + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ş') { goto l948 } position++ - goto l892 + goto l900 l948: - position, tokenIndex = position892, tokenIndex892 + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Š') { + goto l949 + } + position++ + goto l900 + l949: + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ÿ') { + goto l950 + } + position++ + goto l900 + l950: + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ź') { + goto l951 + } + position++ + goto l900 + l951: + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ż') { + goto l952 + } + position++ + goto l900 + l952: + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ž') { + goto l953 + } + position++ + goto l900 + l953: + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('ƒ') { + goto l954 + } + position++ + goto l900 + l954: + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ǿ') { + goto l955 + } + position++ + goto l900 + l955: + position, tokenIndex = position900, tokenIndex900 + if buffer[position] != rune('Ș') { + goto l956 + } + position++ + goto l900 + l956: + position, tokenIndex = position900, tokenIndex900 if buffer[position] != rune('Ț') { - goto l887 + goto l895 } position++ } - l892: + l900: } - l889: - add(ruleAuthorUpperChar, position888) + l897: + add(ruleAuthorUpperChar, position896) } return true - l887: - position, tokenIndex = position887, tokenIndex887 + l895: + position, tokenIndex = position895, tokenIndex895 return false }, - /* 120 AuthorLowerChar <- <(LowerASCII / MiscodedChar / Apostrophe / ('à' / 'á' / 'â' / 'ã' / 'ä' / 'å' / 'æ' / 'ç' / 'è' / 'é' / 'ê' / 'ë' / 'ì' / 'í' / 'î' / 'ï' / 'ð' / 'ñ' / 'ò' / 'ó' / 'ó' / 'ô' / 'õ' / 'ö' / 'ø' / 'ù' / 'ú' / 'û' / 'ü' / 'ý' / 'ÿ' / 'ā' / 'ă' / 'ą' / 'ć' / 'ĉ' / 'č' / 'ď' / 'đ' / 'ē' / 'ĕ' / 'ė' / 'ę' / 'ě' / 'ğ' / 'ī' / 'ĭ' / 'İ' / 'ı' / 'ĺ' / 'ľ' / 'ł' / 'ń' / 'ņ' / 'ň' / 'ŏ' / 'ő' / 'œ' / 'ŕ' / 'ř' / 'ś' / 'ş' / 'š' / 'ţ' / 'ť' / 'ũ' / 'ū' / 'ŭ' / 'ů' / 'ű' / 'ź' / 'ż' / 'ž' / 'ſ' / 'ǎ' / 'ǔ' / 'ǧ' / 'ș' / 'ț' / 'ȳ' / 'ß'))> */ + /* 122 AuthorLowerChar <- <(LowerASCII / MiscodedChar / Apostrophe / ('à' / 'á' / 'â' / 'ã' / 'ä' / 'å' / 'æ' / 'ç' / 'è' / 'é' / 'ê' / 'ë' / 'ì' / 'í' / 'î' / 'ï' / 'ð' / 'ñ' / 'ò' / 'ó' / 'ó' / 'ô' / 'õ' / 'ö' / 'ø' / 'ù' / 'ú' / 'û' / 'ü' / 'ý' / 'ÿ' / 'ā' / 'ă' / 'ą' / 'ć' / 'ĉ' / 'č' / 'ď' / 'đ' / 'ē' / 'ĕ' / 'ė' / 'ę' / 'ě' / 'ğ' / 'ī' / 'ĭ' / 'İ' / 'ı' / 'ĺ' / 'ľ' / 'ł' / 'ń' / 'ņ' / 'ň' / 'ŏ' / 'ő' / 'œ' / 'ŕ' / 'ř' / 'ś' / 'ş' / 'š' / 'ţ' / 'ť' / 'ũ' / 'ū' / 'ŭ' / 'ů' / 'ű' / 'ź' / 'ż' / 'ž' / 'ſ' / 'ǎ' / 'ǔ' / 'ǧ' / 'ș' / 'ț' / 'ȳ' / 'ß'))> */ func() bool { - position949, tokenIndex949 := position, tokenIndex + position957, tokenIndex957 := position, tokenIndex { - position950 := position + position958 := position { - position951, tokenIndex951 := position, tokenIndex + position959, tokenIndex959 := position, tokenIndex if !_rules[ruleLowerASCII]() { - goto l952 + goto l960 } - goto l951 - l952: - position, tokenIndex = position951, tokenIndex951 + goto l959 + l960: + position, tokenIndex = position959, tokenIndex959 if !_rules[ruleMiscodedChar]() { - goto l953 + goto l961 } - goto l951 - l953: - position, tokenIndex = position951, tokenIndex951 + goto l959 + l961: + position, tokenIndex = position959, tokenIndex959 if !_rules[ruleApostrophe]() { - goto l954 + goto l962 } - goto l951 - l954: - position, tokenIndex = position951, tokenIndex951 + goto l959 + l962: + position, tokenIndex = position959, tokenIndex959 { - position955, tokenIndex955 := position, tokenIndex + position963, tokenIndex963 := position, tokenIndex if buffer[position] != rune('à') { - goto l956 - } - position++ - goto l955 - l956: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('á') { - goto l957 - } - position++ - goto l955 - l957: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('â') { - goto l958 - } - position++ - goto l955 - l958: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ã') { - goto l959 - } - position++ - goto l955 - l959: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ä') { - goto l960 - } - position++ - goto l955 - l960: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('å') { - goto l961 - } - position++ - goto l955 - l961: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('æ') { - goto l962 - } - position++ - goto l955 - l962: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ç') { - goto l963 - } - position++ - goto l955 - l963: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('è') { goto l964 } position++ - goto l955 + goto l963 l964: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('é') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('á') { goto l965 } position++ - goto l955 + goto l963 l965: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ê') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('â') { goto l966 } position++ - goto l955 + goto l963 l966: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ë') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ã') { goto l967 } position++ - goto l955 + goto l963 l967: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ì') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ä') { goto l968 } position++ - goto l955 + goto l963 l968: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('í') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('å') { goto l969 } position++ - goto l955 + goto l963 l969: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('î') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('æ') { goto l970 } position++ - goto l955 + goto l963 l970: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ï') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ç') { goto l971 } position++ - goto l955 + goto l963 l971: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ð') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('è') { goto l972 } position++ - goto l955 + goto l963 l972: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ñ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('é') { goto l973 } position++ - goto l955 + goto l963 l973: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ò') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ê') { goto l974 } position++ - goto l955 + goto l963 l974: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ó') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ë') { goto l975 } position++ - goto l955 + goto l963 l975: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ó') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ì') { goto l976 } position++ - goto l955 + goto l963 l976: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ô') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('í') { goto l977 } position++ - goto l955 + goto l963 l977: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('õ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('î') { goto l978 } position++ - goto l955 + goto l963 l978: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ö') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ï') { goto l979 } position++ - goto l955 + goto l963 l979: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ø') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ð') { goto l980 } position++ - goto l955 + goto l963 l980: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ù') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ñ') { goto l981 } position++ - goto l955 + goto l963 l981: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ú') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ò') { goto l982 } position++ - goto l955 + goto l963 l982: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('û') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ó') { goto l983 } position++ - goto l955 + goto l963 l983: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ü') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ó') { goto l984 } position++ - goto l955 + goto l963 l984: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ý') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ô') { goto l985 } position++ - goto l955 + goto l963 l985: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ÿ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('õ') { goto l986 } position++ - goto l955 + goto l963 l986: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ā') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ö') { goto l987 } position++ - goto l955 + goto l963 l987: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ă') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ø') { goto l988 } position++ - goto l955 + goto l963 l988: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ą') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ù') { goto l989 } position++ - goto l955 + goto l963 l989: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ć') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ú') { goto l990 } position++ - goto l955 + goto l963 l990: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ĉ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('û') { goto l991 } position++ - goto l955 + goto l963 l991: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('č') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ü') { goto l992 } position++ - goto l955 + goto l963 l992: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ď') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ý') { goto l993 } position++ - goto l955 + goto l963 l993: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('đ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ÿ') { goto l994 } position++ - goto l955 + goto l963 l994: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ē') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ā') { goto l995 } position++ - goto l955 + goto l963 l995: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ĕ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ă') { goto l996 } position++ - goto l955 + goto l963 l996: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ė') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ą') { goto l997 } position++ - goto l955 + goto l963 l997: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ę') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ć') { goto l998 } position++ - goto l955 + goto l963 l998: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ě') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ĉ') { goto l999 } position++ - goto l955 + goto l963 l999: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ğ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('č') { goto l1000 } position++ - goto l955 + goto l963 l1000: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ī') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ď') { goto l1001 } position++ - goto l955 + goto l963 l1001: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ĭ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('đ') { goto l1002 } position++ - goto l955 + goto l963 l1002: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('İ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ē') { goto l1003 } position++ - goto l955 + goto l963 l1003: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ı') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ĕ') { goto l1004 } position++ - goto l955 + goto l963 l1004: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ĺ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ė') { goto l1005 } position++ - goto l955 + goto l963 l1005: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ľ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ę') { goto l1006 } position++ - goto l955 + goto l963 l1006: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ł') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ě') { goto l1007 } position++ - goto l955 + goto l963 l1007: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ń') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ğ') { goto l1008 } position++ - goto l955 + goto l963 l1008: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ņ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ī') { goto l1009 } position++ - goto l955 + goto l963 l1009: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ň') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ĭ') { goto l1010 } position++ - goto l955 + goto l963 l1010: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ŏ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('İ') { goto l1011 } position++ - goto l955 + goto l963 l1011: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ő') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ı') { goto l1012 } position++ - goto l955 + goto l963 l1012: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('œ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ĺ') { goto l1013 } position++ - goto l955 + goto l963 l1013: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ŕ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ľ') { goto l1014 } position++ - goto l955 + goto l963 l1014: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ř') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ł') { goto l1015 } position++ - goto l955 + goto l963 l1015: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ś') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ń') { goto l1016 } position++ - goto l955 + goto l963 l1016: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ş') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ņ') { goto l1017 } position++ - goto l955 + goto l963 l1017: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('š') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ň') { goto l1018 } position++ - goto l955 + goto l963 l1018: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ţ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ŏ') { goto l1019 } position++ - goto l955 + goto l963 l1019: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ť') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ő') { goto l1020 } position++ - goto l955 + goto l963 l1020: - position, tokenIndex = position955, tokenIndex955 - if buffer[position] != rune('ũ') { + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('œ') { goto l1021 } position++ - goto l955 + goto l963 l1021: - position, tokenIndex = position955, tokenIndex955 + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ŕ') { + goto l1022 + } + position++ + goto l963 + l1022: + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ř') { + goto l1023 + } + position++ + goto l963 + l1023: + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ś') { + goto l1024 + } + position++ + goto l963 + l1024: + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ş') { + goto l1025 + } + position++ + goto l963 + l1025: + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('š') { + goto l1026 + } + position++ + goto l963 + l1026: + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ţ') { + goto l1027 + } + position++ + goto l963 + l1027: + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ť') { + goto l1028 + } + position++ + goto l963 + l1028: + position, tokenIndex = position963, tokenIndex963 + if buffer[position] != rune('ũ') { + goto l1029 + } + position++ + goto l963 + l1029: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('ū') { - goto l1022 + goto l1030 } position++ - goto l955 - l1022: - position, tokenIndex = position955, tokenIndex955 + goto l963 + l1030: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('ŭ') { - goto l1023 + goto l1031 } position++ - goto l955 - l1023: - position, tokenIndex = position955, tokenIndex955 + goto l963 + l1031: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('ů') { - goto l1024 + goto l1032 } position++ - goto l955 - l1024: - position, tokenIndex = position955, tokenIndex955 + goto l963 + l1032: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('ű') { - goto l1025 + goto l1033 } position++ - goto l955 - l1025: - position, tokenIndex = position955, tokenIndex955 + goto l963 + l1033: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('ź') { - goto l1026 + goto l1034 } position++ - goto l955 - l1026: - position, tokenIndex = position955, tokenIndex955 + goto l963 + l1034: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('ż') { - goto l1027 + goto l1035 } position++ - goto l955 - l1027: - position, tokenIndex = position955, tokenIndex955 + goto l963 + l1035: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('ž') { - goto l1028 + goto l1036 } position++ - goto l955 - l1028: - position, tokenIndex = position955, tokenIndex955 + goto l963 + l1036: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('ſ') { - goto l1029 + goto l1037 } position++ - goto l955 - l1029: - position, tokenIndex = position955, tokenIndex955 + goto l963 + l1037: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('ǎ') { - goto l1030 + goto l1038 } position++ - goto l955 - l1030: - position, tokenIndex = position955, tokenIndex955 + goto l963 + l1038: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('ǔ') { - goto l1031 + goto l1039 } position++ - goto l955 - l1031: - position, tokenIndex = position955, tokenIndex955 + goto l963 + l1039: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('ǧ') { - goto l1032 + goto l1040 } position++ - goto l955 - l1032: - position, tokenIndex = position955, tokenIndex955 + goto l963 + l1040: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('ș') { - goto l1033 + goto l1041 } position++ - goto l955 - l1033: - position, tokenIndex = position955, tokenIndex955 + goto l963 + l1041: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('ț') { - goto l1034 + goto l1042 } position++ - goto l955 - l1034: - position, tokenIndex = position955, tokenIndex955 + goto l963 + l1042: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('ȳ') { - goto l1035 + goto l1043 } position++ - goto l955 - l1035: - position, tokenIndex = position955, tokenIndex955 + goto l963 + l1043: + position, tokenIndex = position963, tokenIndex963 if buffer[position] != rune('ß') { - goto l949 + goto l957 } position++ } - l955: + l963: } - l951: - add(ruleAuthorLowerChar, position950) + l959: + add(ruleAuthorLowerChar, position958) } return true - l949: - position, tokenIndex = position949, tokenIndex949 + l957: + position, tokenIndex = position957, tokenIndex957 return false }, - /* 121 Year <- <(YearRange / YearApprox / YearWithParens / YearWithPage / YearWithDot / YearWithChar / YearNum)> */ + /* 123 Year <- <(YearRange / YearApprox / YearWithParens / YearWithPage / YearWithDot / YearWithChar / YearNum)> */ func() bool { - position1036, tokenIndex1036 := position, tokenIndex + position1044, tokenIndex1044 := position, tokenIndex { - position1037 := position + position1045 := position { - position1038, tokenIndex1038 := position, tokenIndex + position1046, tokenIndex1046 := position, tokenIndex if !_rules[ruleYearRange]() { - goto l1039 + goto l1047 } - goto l1038 - l1039: - position, tokenIndex = position1038, tokenIndex1038 + goto l1046 + l1047: + position, tokenIndex = position1046, tokenIndex1046 if !_rules[ruleYearApprox]() { - goto l1040 + goto l1048 } - goto l1038 - l1040: - position, tokenIndex = position1038, tokenIndex1038 + goto l1046 + l1048: + position, tokenIndex = position1046, tokenIndex1046 if !_rules[ruleYearWithParens]() { - goto l1041 + goto l1049 } - goto l1038 - l1041: - position, tokenIndex = position1038, tokenIndex1038 + goto l1046 + l1049: + position, tokenIndex = position1046, tokenIndex1046 if !_rules[ruleYearWithPage]() { - goto l1042 + goto l1050 } - goto l1038 - l1042: - position, tokenIndex = position1038, tokenIndex1038 + goto l1046 + l1050: + position, tokenIndex = position1046, tokenIndex1046 if !_rules[ruleYearWithDot]() { - goto l1043 + goto l1051 } - goto l1038 - l1043: - position, tokenIndex = position1038, tokenIndex1038 + goto l1046 + l1051: + position, tokenIndex = position1046, tokenIndex1046 if !_rules[ruleYearWithChar]() { - goto l1044 + goto l1052 } - goto l1038 - l1044: - position, tokenIndex = position1038, tokenIndex1038 + goto l1046 + l1052: + position, tokenIndex = position1046, tokenIndex1046 if !_rules[ruleYearNum]() { - goto l1036 + goto l1044 } } - l1038: - add(ruleYear, position1037) + l1046: + add(ruleYear, position1045) } return true - l1036: - position, tokenIndex = position1036, tokenIndex1036 + l1044: + position, tokenIndex = position1044, tokenIndex1044 return false }, - /* 122 YearRange <- <(YearNum (Dash / Slash) (Nums+ ('a' / 'b' / 'c' / 'd' / 'e' / 'f' / 'g' / 'h' / 'i' / 'j' / 'k' / 'l' / 'm' / 'n' / 'o' / 'p' / 'q' / 'r' / 's' / 't' / 'u' / 'v' / 'w' / 'x' / 'y' / 'z' / '?')*))> */ + /* 124 YearRange <- <(YearNum (Dash / Slash) (Nums+ ('a' / 'b' / 'c' / 'd' / 'e' / 'f' / 'g' / 'h' / 'i' / 'j' / 'k' / 'l' / 'm' / 'n' / 'o' / 'p' / 'q' / 'r' / 's' / 't' / 'u' / 'v' / 'w' / 'x' / 'y' / 'z' / '?')*))> */ func() bool { - position1045, tokenIndex1045 := position, tokenIndex + position1053, tokenIndex1053 := position, tokenIndex { - position1046 := position + position1054 := position if !_rules[ruleYearNum]() { - goto l1045 + goto l1053 } { - position1047, tokenIndex1047 := position, tokenIndex + position1055, tokenIndex1055 := position, tokenIndex if !_rules[ruleDash]() { - goto l1048 + goto l1056 } - goto l1047 - l1048: - position, tokenIndex = position1047, tokenIndex1047 + goto l1055 + l1056: + position, tokenIndex = position1055, tokenIndex1055 if !_rules[ruleSlash]() { - goto l1045 + goto l1053 } } - l1047: + l1055: if !_rules[ruleNums]() { - goto l1045 + goto l1053 } - l1049: + l1057: { - position1050, tokenIndex1050 := position, tokenIndex + position1058, tokenIndex1058 := position, tokenIndex if !_rules[ruleNums]() { - goto l1050 + goto l1058 } - goto l1049 - l1050: - position, tokenIndex = position1050, tokenIndex1050 + goto l1057 + l1058: + position, tokenIndex = position1058, tokenIndex1058 } - l1051: + l1059: { - position1052, tokenIndex1052 := position, tokenIndex + position1060, tokenIndex1060 := position, tokenIndex { - position1053, tokenIndex1053 := position, tokenIndex + position1061, tokenIndex1061 := position, tokenIndex if buffer[position] != rune('a') { - goto l1054 + goto l1062 } position++ - goto l1053 - l1054: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1062: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('b') { - goto l1055 + goto l1063 } position++ - goto l1053 - l1055: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1063: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('c') { - goto l1056 + goto l1064 } position++ - goto l1053 - l1056: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1064: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('d') { - goto l1057 + goto l1065 } position++ - goto l1053 - l1057: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1065: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('e') { - goto l1058 + goto l1066 } position++ - goto l1053 - l1058: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1066: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('f') { - goto l1059 + goto l1067 } position++ - goto l1053 - l1059: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1067: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('g') { - goto l1060 + goto l1068 } position++ - goto l1053 - l1060: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1068: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('h') { - goto l1061 + goto l1069 } position++ - goto l1053 - l1061: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1069: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('i') { - goto l1062 + goto l1070 } position++ - goto l1053 - l1062: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1070: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('j') { - goto l1063 + goto l1071 } position++ - goto l1053 - l1063: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1071: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('k') { - goto l1064 + goto l1072 } position++ - goto l1053 - l1064: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1072: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('l') { - goto l1065 + goto l1073 } position++ - goto l1053 - l1065: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1073: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('m') { - goto l1066 + goto l1074 } position++ - goto l1053 - l1066: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1074: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('n') { - goto l1067 + goto l1075 } position++ - goto l1053 - l1067: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1075: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('o') { - goto l1068 + goto l1076 } position++ - goto l1053 - l1068: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1076: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('p') { - goto l1069 + goto l1077 } position++ - goto l1053 - l1069: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1077: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('q') { - goto l1070 + goto l1078 } position++ - goto l1053 - l1070: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1078: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('r') { - goto l1071 + goto l1079 } position++ - goto l1053 - l1071: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1079: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('s') { - goto l1072 + goto l1080 } position++ - goto l1053 - l1072: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1080: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('t') { - goto l1073 + goto l1081 } position++ - goto l1053 - l1073: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1081: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('u') { - goto l1074 + goto l1082 } position++ - goto l1053 - l1074: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1082: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('v') { - goto l1075 + goto l1083 } position++ - goto l1053 - l1075: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1083: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('w') { - goto l1076 + goto l1084 } position++ - goto l1053 - l1076: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1084: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('x') { - goto l1077 + goto l1085 } position++ - goto l1053 - l1077: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1085: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('y') { - goto l1078 + goto l1086 } position++ - goto l1053 - l1078: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1086: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('z') { - goto l1079 + goto l1087 } position++ - goto l1053 - l1079: - position, tokenIndex = position1053, tokenIndex1053 + goto l1061 + l1087: + position, tokenIndex = position1061, tokenIndex1061 if buffer[position] != rune('?') { - goto l1052 + goto l1060 } position++ } - l1053: - goto l1051 - l1052: - position, tokenIndex = position1052, tokenIndex1052 + l1061: + goto l1059 + l1060: + position, tokenIndex = position1060, tokenIndex1060 } - add(ruleYearRange, position1046) + add(ruleYearRange, position1054) } return true - l1045: - position, tokenIndex = position1045, tokenIndex1045 + l1053: + position, tokenIndex = position1053, tokenIndex1053 return false }, - /* 123 YearWithDot <- <(YearNum '.')> */ + /* 125 YearWithDot <- <(YearNum '.')> */ func() bool { - position1080, tokenIndex1080 := position, tokenIndex + position1088, tokenIndex1088 := position, tokenIndex { - position1081 := position + position1089 := position if !_rules[ruleYearNum]() { - goto l1080 + goto l1088 } if buffer[position] != rune('.') { - goto l1080 + goto l1088 } position++ - add(ruleYearWithDot, position1081) + add(ruleYearWithDot, position1089) } return true - l1080: - position, tokenIndex = position1080, tokenIndex1080 + l1088: + position, tokenIndex = position1088, tokenIndex1088 return false }, - /* 124 YearApprox <- <('[' _? YearNum _? ']')> */ + /* 126 YearApprox <- <('[' _? YearNum _? ']')> */ func() bool { - position1082, tokenIndex1082 := position, tokenIndex + position1090, tokenIndex1090 := position, tokenIndex { - position1083 := position + position1091 := position if buffer[position] != rune('[') { - goto l1082 + goto l1090 } position++ { - position1084, tokenIndex1084 := position, tokenIndex + position1092, tokenIndex1092 := position, tokenIndex if !_rules[rule_]() { - goto l1084 + goto l1092 } - goto l1085 - l1084: - position, tokenIndex = position1084, tokenIndex1084 + goto l1093 + l1092: + position, tokenIndex = position1092, tokenIndex1092 } - l1085: + l1093: if !_rules[ruleYearNum]() { - goto l1082 + goto l1090 } { - position1086, tokenIndex1086 := position, tokenIndex + position1094, tokenIndex1094 := position, tokenIndex if !_rules[rule_]() { - goto l1086 + goto l1094 } - goto l1087 - l1086: - position, tokenIndex = position1086, tokenIndex1086 + goto l1095 + l1094: + position, tokenIndex = position1094, tokenIndex1094 } - l1087: + l1095: if buffer[position] != rune(']') { - goto l1082 + goto l1090 } position++ - add(ruleYearApprox, position1083) + add(ruleYearApprox, position1091) } return true - l1082: - position, tokenIndex = position1082, tokenIndex1082 + l1090: + position, tokenIndex = position1090, tokenIndex1090 return false }, - /* 125 YearWithPage <- <((YearWithChar / YearNum) _? ':' _? Nums+)> */ + /* 127 YearWithPage <- <((YearWithChar / YearNum) _? ':' _? Nums+)> */ func() bool { - position1088, tokenIndex1088 := position, tokenIndex + position1096, tokenIndex1096 := position, tokenIndex { - position1089 := position + position1097 := position { - position1090, tokenIndex1090 := position, tokenIndex + position1098, tokenIndex1098 := position, tokenIndex if !_rules[ruleYearWithChar]() { - goto l1091 + goto l1099 } - goto l1090 - l1091: - position, tokenIndex = position1090, tokenIndex1090 + goto l1098 + l1099: + position, tokenIndex = position1098, tokenIndex1098 if !_rules[ruleYearNum]() { - goto l1088 + goto l1096 } } - l1090: + l1098: { - position1092, tokenIndex1092 := position, tokenIndex + position1100, tokenIndex1100 := position, tokenIndex if !_rules[rule_]() { - goto l1092 + goto l1100 } - goto l1093 - l1092: - position, tokenIndex = position1092, tokenIndex1092 + goto l1101 + l1100: + position, tokenIndex = position1100, tokenIndex1100 } - l1093: + l1101: if buffer[position] != rune(':') { - goto l1088 + goto l1096 } position++ { - position1094, tokenIndex1094 := position, tokenIndex + position1102, tokenIndex1102 := position, tokenIndex if !_rules[rule_]() { - goto l1094 + goto l1102 } - goto l1095 - l1094: - position, tokenIndex = position1094, tokenIndex1094 + goto l1103 + l1102: + position, tokenIndex = position1102, tokenIndex1102 } - l1095: + l1103: if !_rules[ruleNums]() { - goto l1088 + goto l1096 } - l1096: + l1104: { - position1097, tokenIndex1097 := position, tokenIndex + position1105, tokenIndex1105 := position, tokenIndex if !_rules[ruleNums]() { - goto l1097 + goto l1105 } - goto l1096 - l1097: - position, tokenIndex = position1097, tokenIndex1097 + goto l1104 + l1105: + position, tokenIndex = position1105, tokenIndex1105 } - add(ruleYearWithPage, position1089) + add(ruleYearWithPage, position1097) } return true - l1088: - position, tokenIndex = position1088, tokenIndex1088 + l1096: + position, tokenIndex = position1096, tokenIndex1096 return false }, - /* 126 YearWithParens <- <('(' (YearWithChar / YearNum) ')')> */ + /* 128 YearWithParens <- <('(' (YearWithChar / YearNum) ')')> */ func() bool { - position1098, tokenIndex1098 := position, tokenIndex + position1106, tokenIndex1106 := position, tokenIndex { - position1099 := position + position1107 := position if buffer[position] != rune('(') { - goto l1098 + goto l1106 } position++ { - position1100, tokenIndex1100 := position, tokenIndex + position1108, tokenIndex1108 := position, tokenIndex if !_rules[ruleYearWithChar]() { - goto l1101 + goto l1109 } - goto l1100 - l1101: - position, tokenIndex = position1100, tokenIndex1100 + goto l1108 + l1109: + position, tokenIndex = position1108, tokenIndex1108 if !_rules[ruleYearNum]() { - goto l1098 + goto l1106 } } - l1100: + l1108: if buffer[position] != rune(')') { - goto l1098 + goto l1106 } position++ - add(ruleYearWithParens, position1099) + add(ruleYearWithParens, position1107) } return true - l1098: - position, tokenIndex = position1098, tokenIndex1098 + l1106: + position, tokenIndex = position1106, tokenIndex1106 return false }, - /* 127 YearWithChar <- <(YearNum LowerASCII)> */ + /* 129 YearWithChar <- <(YearNum LowerASCII)> */ func() bool { - position1102, tokenIndex1102 := position, tokenIndex + position1110, tokenIndex1110 := position, tokenIndex { - position1103 := position + position1111 := position if !_rules[ruleYearNum]() { - goto l1102 + goto l1110 } if !_rules[ruleLowerASCII]() { - goto l1102 + goto l1110 } - add(ruleYearWithChar, position1103) + add(ruleYearWithChar, position1111) } return true - l1102: - position, tokenIndex = position1102, tokenIndex1102 + l1110: + position, tokenIndex = position1110, tokenIndex1110 return false }, - /* 128 YearNum <- <(('1' / '2') ('0' / '7' / '8' / '9') Nums (Nums / '?') '?'*)> */ + /* 130 YearNum <- <(('1' / '2') ('0' / '7' / '8' / '9') Nums (Nums / '?') '?'*)> */ func() bool { - position1104, tokenIndex1104 := position, tokenIndex + position1112, tokenIndex1112 := position, tokenIndex { - position1105 := position + position1113 := position { - position1106, tokenIndex1106 := position, tokenIndex + position1114, tokenIndex1114 := position, tokenIndex if buffer[position] != rune('1') { - goto l1107 + goto l1115 } position++ - goto l1106 - l1107: - position, tokenIndex = position1106, tokenIndex1106 + goto l1114 + l1115: + position, tokenIndex = position1114, tokenIndex1114 if buffer[position] != rune('2') { - goto l1104 + goto l1112 } position++ } - l1106: + l1114: { - position1108, tokenIndex1108 := position, tokenIndex + position1116, tokenIndex1116 := position, tokenIndex if buffer[position] != rune('0') { - goto l1109 + goto l1117 } position++ - goto l1108 - l1109: - position, tokenIndex = position1108, tokenIndex1108 + goto l1116 + l1117: + position, tokenIndex = position1116, tokenIndex1116 if buffer[position] != rune('7') { - goto l1110 + goto l1118 } position++ - goto l1108 - l1110: - position, tokenIndex = position1108, tokenIndex1108 + goto l1116 + l1118: + position, tokenIndex = position1116, tokenIndex1116 if buffer[position] != rune('8') { - goto l1111 + goto l1119 } position++ - goto l1108 - l1111: - position, tokenIndex = position1108, tokenIndex1108 + goto l1116 + l1119: + position, tokenIndex = position1116, tokenIndex1116 if buffer[position] != rune('9') { - goto l1104 + goto l1112 } position++ } - l1108: + l1116: if !_rules[ruleNums]() { - goto l1104 + goto l1112 } { - position1112, tokenIndex1112 := position, tokenIndex + position1120, tokenIndex1120 := position, tokenIndex if !_rules[ruleNums]() { - goto l1113 + goto l1121 } - goto l1112 - l1113: - position, tokenIndex = position1112, tokenIndex1112 + goto l1120 + l1121: + position, tokenIndex = position1120, tokenIndex1120 if buffer[position] != rune('?') { - goto l1104 + goto l1112 } position++ } - l1112: - l1114: + l1120: + l1122: { - position1115, tokenIndex1115 := position, tokenIndex + position1123, tokenIndex1123 := position, tokenIndex if buffer[position] != rune('?') { - goto l1115 + goto l1123 } position++ - goto l1114 - l1115: - position, tokenIndex = position1115, tokenIndex1115 + goto l1122 + l1123: + position, tokenIndex = position1123, tokenIndex1123 } - add(ruleYearNum, position1105) + add(ruleYearNum, position1113) } return true - l1104: - position, tokenIndex = position1104, tokenIndex1104 + l1112: + position, tokenIndex = position1112, tokenIndex1112 return false }, - /* 129 NameUpperChar <- <(UpperChar / UpperCharExtended)> */ + /* 131 NameUpperChar <- <(UpperChar / UpperCharExtended)> */ func() bool { - position1116, tokenIndex1116 := position, tokenIndex + position1124, tokenIndex1124 := position, tokenIndex { - position1117 := position + position1125 := position { - position1118, tokenIndex1118 := position, tokenIndex + position1126, tokenIndex1126 := position, tokenIndex if !_rules[ruleUpperChar]() { - goto l1119 + goto l1127 } - goto l1118 - l1119: - position, tokenIndex = position1118, tokenIndex1118 + goto l1126 + l1127: + position, tokenIndex = position1126, tokenIndex1126 if !_rules[ruleUpperCharExtended]() { - goto l1116 + goto l1124 } } - l1118: - add(ruleNameUpperChar, position1117) + l1126: + add(ruleNameUpperChar, position1125) } return true - l1116: - position, tokenIndex = position1116, tokenIndex1116 + l1124: + position, tokenIndex = position1124, tokenIndex1124 return false }, - /* 130 UpperCharExtended <- <('Æ' / 'Œ' / 'Ö')> */ + /* 132 UpperCharExtended <- <('Æ' / 'Œ' / 'Ö')> */ func() bool { - position1120, tokenIndex1120 := position, tokenIndex + position1128, tokenIndex1128 := position, tokenIndex { - position1121 := position + position1129 := position { - position1122, tokenIndex1122 := position, tokenIndex + position1130, tokenIndex1130 := position, tokenIndex if buffer[position] != rune('Æ') { - goto l1123 + goto l1131 } position++ - goto l1122 - l1123: - position, tokenIndex = position1122, tokenIndex1122 + goto l1130 + l1131: + position, tokenIndex = position1130, tokenIndex1130 if buffer[position] != rune('Œ') { - goto l1124 + goto l1132 } position++ - goto l1122 - l1124: - position, tokenIndex = position1122, tokenIndex1122 + goto l1130 + l1132: + position, tokenIndex = position1130, tokenIndex1130 if buffer[position] != rune('Ö') { - goto l1120 + goto l1128 } position++ } - l1122: - add(ruleUpperCharExtended, position1121) + l1130: + add(ruleUpperCharExtended, position1129) } return true - l1120: - position, tokenIndex = position1120, tokenIndex1120 + l1128: + position, tokenIndex = position1128, tokenIndex1128 return false }, - /* 131 UpperChar <- */ + /* 133 UpperChar <- */ func() bool { - position1125, tokenIndex1125 := position, tokenIndex + position1133, tokenIndex1133 := position, tokenIndex { - position1126 := position + position1134 := position if !_rules[ruleUpperASCII]() { - goto l1125 + goto l1133 } - add(ruleUpperChar, position1126) + add(ruleUpperChar, position1134) } return true - l1125: - position, tokenIndex = position1125, tokenIndex1125 + l1133: + position, tokenIndex = position1133, tokenIndex1133 return false }, - /* 132 NameLowerChar <- <(LowerChar / LowerCharExtended / MiscodedChar)> */ + /* 134 NameLowerChar <- <(LowerChar / LowerCharExtended / MiscodedChar)> */ func() bool { - position1127, tokenIndex1127 := position, tokenIndex + position1135, tokenIndex1135 := position, tokenIndex { - position1128 := position + position1136 := position { - position1129, tokenIndex1129 := position, tokenIndex + position1137, tokenIndex1137 := position, tokenIndex if !_rules[ruleLowerChar]() { - goto l1130 + goto l1138 } - goto l1129 - l1130: - position, tokenIndex = position1129, tokenIndex1129 + goto l1137 + l1138: + position, tokenIndex = position1137, tokenIndex1137 if !_rules[ruleLowerCharExtended]() { - goto l1131 + goto l1139 } - goto l1129 - l1131: - position, tokenIndex = position1129, tokenIndex1129 + goto l1137 + l1139: + position, tokenIndex = position1137, tokenIndex1137 if !_rules[ruleMiscodedChar]() { - goto l1127 + goto l1135 } } - l1129: - add(ruleNameLowerChar, position1128) + l1137: + add(ruleNameLowerChar, position1136) } return true - l1127: - position, tokenIndex = position1127, tokenIndex1127 + l1135: + position, tokenIndex = position1135, tokenIndex1135 return false }, - /* 133 MiscodedChar <- <'�'> */ + /* 135 MiscodedChar <- <'�'> */ func() bool { - position1132, tokenIndex1132 := position, tokenIndex + position1140, tokenIndex1140 := position, tokenIndex { - position1133 := position + position1141 := position if buffer[position] != rune('�') { - goto l1132 + goto l1140 } position++ - add(ruleMiscodedChar, position1133) + add(ruleMiscodedChar, position1141) } return true - l1132: - position, tokenIndex = position1132, tokenIndex1132 + l1140: + position, tokenIndex = position1140, tokenIndex1140 return false }, - /* 134 LowerCharExtended <- <('æ' / 'œ' / 'à' / 'â' / 'å' / 'ã' / 'ä' / 'á' / 'ç' / 'č' / 'é' / 'è' / 'ë' / 'í' / 'ì' / 'ï' / 'ň' / 'ñ' / 'ñ' / 'ó' / 'ò' / 'ô' / 'ø' / 'õ' / 'ö' / 'ú' / 'û' / 'ù' / 'ü' / 'ŕ' / 'ř' / 'ŗ' / 'ſ' / 'š' / 'š' / 'ş' / 'ß' / 'ž')> */ + /* 136 LowerCharExtended <- <('æ' / 'œ' / 'à' / 'â' / 'å' / 'ã' / 'ä' / 'á' / 'ç' / 'č' / 'é' / 'è' / 'ë' / 'í' / 'ì' / 'ï' / 'ň' / 'ñ' / 'ñ' / 'ó' / 'ò' / 'ô' / 'ø' / 'õ' / 'ö' / 'ú' / 'û' / 'ù' / 'ü' / 'ŕ' / 'ř' / 'ŗ' / 'ſ' / 'š' / 'š' / 'ş' / 'ß' / 'ž')> */ func() bool { - position1134, tokenIndex1134 := position, tokenIndex + position1142, tokenIndex1142 := position, tokenIndex { - position1135 := position + position1143 := position { - position1136, tokenIndex1136 := position, tokenIndex + position1144, tokenIndex1144 := position, tokenIndex if buffer[position] != rune('æ') { - goto l1137 - } - position++ - goto l1136 - l1137: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('œ') { - goto l1138 - } - position++ - goto l1136 - l1138: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('à') { - goto l1139 - } - position++ - goto l1136 - l1139: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('â') { - goto l1140 - } - position++ - goto l1136 - l1140: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('å') { - goto l1141 - } - position++ - goto l1136 - l1141: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ã') { - goto l1142 - } - position++ - goto l1136 - l1142: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ä') { - goto l1143 - } - position++ - goto l1136 - l1143: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('á') { - goto l1144 - } - position++ - goto l1136 - l1144: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ç') { goto l1145 } position++ - goto l1136 + goto l1144 l1145: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('č') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('œ') { goto l1146 } position++ - goto l1136 + goto l1144 l1146: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('é') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('à') { goto l1147 } position++ - goto l1136 + goto l1144 l1147: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('è') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('â') { goto l1148 } position++ - goto l1136 + goto l1144 l1148: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ë') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('å') { goto l1149 } position++ - goto l1136 + goto l1144 l1149: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('í') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ã') { goto l1150 } position++ - goto l1136 + goto l1144 l1150: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ì') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ä') { goto l1151 } position++ - goto l1136 + goto l1144 l1151: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ï') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('á') { goto l1152 } position++ - goto l1136 + goto l1144 l1152: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ň') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ç') { goto l1153 } position++ - goto l1136 + goto l1144 l1153: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ñ') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('č') { goto l1154 } position++ - goto l1136 + goto l1144 l1154: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ñ') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('é') { goto l1155 } position++ - goto l1136 + goto l1144 l1155: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ó') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('è') { goto l1156 } position++ - goto l1136 + goto l1144 l1156: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ò') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ë') { goto l1157 } position++ - goto l1136 + goto l1144 l1157: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ô') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('í') { goto l1158 } position++ - goto l1136 + goto l1144 l1158: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ø') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ì') { goto l1159 } position++ - goto l1136 + goto l1144 l1159: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('õ') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ï') { goto l1160 } position++ - goto l1136 + goto l1144 l1160: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ö') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ň') { goto l1161 } position++ - goto l1136 + goto l1144 l1161: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ú') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ñ') { goto l1162 } position++ - goto l1136 + goto l1144 l1162: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('û') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ñ') { goto l1163 } position++ - goto l1136 + goto l1144 l1163: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ù') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ó') { goto l1164 } position++ - goto l1136 + goto l1144 l1164: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ü') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ò') { goto l1165 } position++ - goto l1136 + goto l1144 l1165: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ŕ') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ô') { goto l1166 } position++ - goto l1136 + goto l1144 l1166: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ř') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ø') { goto l1167 } position++ - goto l1136 + goto l1144 l1167: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ŗ') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('õ') { goto l1168 } position++ - goto l1136 + goto l1144 l1168: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ſ') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ö') { goto l1169 } position++ - goto l1136 + goto l1144 l1169: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('š') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ú') { goto l1170 } position++ - goto l1136 + goto l1144 l1170: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('š') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('û') { goto l1171 } position++ - goto l1136 + goto l1144 l1171: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ş') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ù') { goto l1172 } position++ - goto l1136 + goto l1144 l1172: - position, tokenIndex = position1136, tokenIndex1136 - if buffer[position] != rune('ß') { + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ü') { goto l1173 } position++ - goto l1136 + goto l1144 l1173: - position, tokenIndex = position1136, tokenIndex1136 + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ŕ') { + goto l1174 + } + position++ + goto l1144 + l1174: + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ř') { + goto l1175 + } + position++ + goto l1144 + l1175: + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ŗ') { + goto l1176 + } + position++ + goto l1144 + l1176: + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ſ') { + goto l1177 + } + position++ + goto l1144 + l1177: + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('š') { + goto l1178 + } + position++ + goto l1144 + l1178: + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('š') { + goto l1179 + } + position++ + goto l1144 + l1179: + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ş') { + goto l1180 + } + position++ + goto l1144 + l1180: + position, tokenIndex = position1144, tokenIndex1144 + if buffer[position] != rune('ß') { + goto l1181 + } + position++ + goto l1144 + l1181: + position, tokenIndex = position1144, tokenIndex1144 if buffer[position] != rune('ž') { - goto l1134 + goto l1142 } position++ } - l1136: - add(ruleLowerCharExtended, position1135) + l1144: + add(ruleLowerCharExtended, position1143) } return true - l1134: - position, tokenIndex = position1134, tokenIndex1134 + l1142: + position, tokenIndex = position1142, tokenIndex1142 return false }, - /* 135 LowerChar <- */ + /* 137 LowerChar <- */ func() bool { - position1174, tokenIndex1174 := position, tokenIndex + position1182, tokenIndex1182 := position, tokenIndex { - position1175 := position + position1183 := position if !_rules[ruleLowerASCII]() { - goto l1174 + goto l1182 } - add(ruleLowerChar, position1175) + add(ruleLowerChar, position1183) } return true - l1174: - position, tokenIndex = position1174, tokenIndex1174 + l1182: + position, tokenIndex = position1182, tokenIndex1182 return false }, - /* 136 SpaceCharEOI <- <(_ / !.)> */ + /* 138 SpaceCharEOI <- <(_ / !.)> */ func() bool { - position1176, tokenIndex1176 := position, tokenIndex + position1184, tokenIndex1184 := position, tokenIndex { - position1177 := position + position1185 := position { - position1178, tokenIndex1178 := position, tokenIndex + position1186, tokenIndex1186 := position, tokenIndex if !_rules[rule_]() { - goto l1179 + goto l1187 } - goto l1178 - l1179: - position, tokenIndex = position1178, tokenIndex1178 + goto l1186 + l1187: + position, tokenIndex = position1186, tokenIndex1186 { - position1180, tokenIndex1180 := position, tokenIndex + position1188, tokenIndex1188 := position, tokenIndex if !matchDot() { - goto l1180 + goto l1188 } - goto l1176 - l1180: - position, tokenIndex = position1180, tokenIndex1180 + goto l1184 + l1188: + position, tokenIndex = position1188, tokenIndex1188 } } - l1178: - add(ruleSpaceCharEOI, position1177) + l1186: + add(ruleSpaceCharEOI, position1185) } return true - l1176: - position, tokenIndex = position1176, tokenIndex1176 + l1184: + position, tokenIndex = position1184, tokenIndex1184 return false }, - /* 137 Nums <- <[0-9]> */ + /* 139 Nums <- <[0-9]> */ func() bool { - position1181, tokenIndex1181 := position, tokenIndex + position1189, tokenIndex1189 := position, tokenIndex { - position1182 := position + position1190 := position if c := buffer[position]; c < rune('0') || c > rune('9') { - goto l1181 + goto l1189 } position++ - add(ruleNums, position1182) + add(ruleNums, position1190) } return true - l1181: - position, tokenIndex = position1181, tokenIndex1181 + l1189: + position, tokenIndex = position1189, tokenIndex1189 return false }, - /* 138 LowerGreek <- <[α-ω]> */ + /* 140 LowerGreek <- <[α-ω]> */ func() bool { - position1183, tokenIndex1183 := position, tokenIndex + position1191, tokenIndex1191 := position, tokenIndex { - position1184 := position + position1192 := position if c := buffer[position]; c < rune('α') || c > rune('ω') { - goto l1183 + goto l1191 } position++ - add(ruleLowerGreek, position1184) + add(ruleLowerGreek, position1192) } return true - l1183: - position, tokenIndex = position1183, tokenIndex1183 + l1191: + position, tokenIndex = position1191, tokenIndex1191 return false }, - /* 139 LowerASCII <- <[a-z]> */ + /* 141 LowerASCII <- <[a-z]> */ func() bool { - position1185, tokenIndex1185 := position, tokenIndex + position1193, tokenIndex1193 := position, tokenIndex { - position1186 := position + position1194 := position if c := buffer[position]; c < rune('a') || c > rune('z') { - goto l1185 + goto l1193 } position++ - add(ruleLowerASCII, position1186) + add(ruleLowerASCII, position1194) } return true - l1185: - position, tokenIndex = position1185, tokenIndex1185 + l1193: + position, tokenIndex = position1193, tokenIndex1193 return false }, - /* 140 UpperASCII <- <[A-Z]> */ + /* 142 UpperASCII <- <[A-Z]> */ func() bool { - position1187, tokenIndex1187 := position, tokenIndex + position1195, tokenIndex1195 := position, tokenIndex { - position1188 := position + position1196 := position if c := buffer[position]; c < rune('A') || c > rune('Z') { - goto l1187 + goto l1195 } position++ - add(ruleUpperASCII, position1188) + add(ruleUpperASCII, position1196) } return true - l1187: - position, tokenIndex = position1187, tokenIndex1187 + l1195: + position, tokenIndex = position1195, tokenIndex1195 return false }, - /* 141 Apostrophe <- <(ApostrOther / ApostrASCII)> */ + /* 143 Apostrophe <- <(ApostrOther / ApostrASCII)> */ func() bool { - position1189, tokenIndex1189 := position, tokenIndex + position1197, tokenIndex1197 := position, tokenIndex { - position1190 := position + position1198 := position { - position1191, tokenIndex1191 := position, tokenIndex + position1199, tokenIndex1199 := position, tokenIndex if !_rules[ruleApostrOther]() { - goto l1192 + goto l1200 } - goto l1191 - l1192: - position, tokenIndex = position1191, tokenIndex1191 + goto l1199 + l1200: + position, tokenIndex = position1199, tokenIndex1199 if !_rules[ruleApostrASCII]() { - goto l1189 + goto l1197 } } - l1191: - add(ruleApostrophe, position1190) + l1199: + add(ruleApostrophe, position1198) } return true - l1189: - position, tokenIndex = position1189, tokenIndex1189 + l1197: + position, tokenIndex = position1197, tokenIndex1197 return false }, - /* 142 ApostrASCII <- <'\''> */ + /* 144 ApostrASCII <- <'\''> */ func() bool { - position1193, tokenIndex1193 := position, tokenIndex + position1201, tokenIndex1201 := position, tokenIndex { - position1194 := position + position1202 := position if buffer[position] != rune('\'') { - goto l1193 + goto l1201 } position++ - add(ruleApostrASCII, position1194) + add(ruleApostrASCII, position1202) } return true - l1193: - position, tokenIndex = position1193, tokenIndex1193 + l1201: + position, tokenIndex = position1201, tokenIndex1201 return false }, - /* 143 ApostrOther <- <('‘' / '’' / '`' / '´')> */ + /* 145 ApostrOther <- <('‘' / '’' / '`' / '´')> */ func() bool { - position1195, tokenIndex1195 := position, tokenIndex + position1203, tokenIndex1203 := position, tokenIndex { - position1196 := position + position1204 := position { - position1197, tokenIndex1197 := position, tokenIndex + position1205, tokenIndex1205 := position, tokenIndex if buffer[position] != rune('‘') { - goto l1198 + goto l1206 } position++ - goto l1197 - l1198: - position, tokenIndex = position1197, tokenIndex1197 + goto l1205 + l1206: + position, tokenIndex = position1205, tokenIndex1205 if buffer[position] != rune('’') { - goto l1199 + goto l1207 } position++ - goto l1197 - l1199: - position, tokenIndex = position1197, tokenIndex1197 + goto l1205 + l1207: + position, tokenIndex = position1205, tokenIndex1205 if buffer[position] != rune('`') { - goto l1200 + goto l1208 } position++ - goto l1197 - l1200: - position, tokenIndex = position1197, tokenIndex1197 + goto l1205 + l1208: + position, tokenIndex = position1205, tokenIndex1205 if buffer[position] != rune('´') { - goto l1195 + goto l1203 } position++ } - l1197: - add(ruleApostrOther, position1196) + l1205: + add(ruleApostrOther, position1204) } return true - l1195: - position, tokenIndex = position1195, tokenIndex1195 + l1203: + position, tokenIndex = position1203, tokenIndex1203 return false }, - /* 144 Dash <- <('-' / DashOther)> */ + /* 146 Dash <- <('-' / DashOther)> */ func() bool { - position1201, tokenIndex1201 := position, tokenIndex + position1209, tokenIndex1209 := position, tokenIndex { - position1202 := position + position1210 := position { - position1203, tokenIndex1203 := position, tokenIndex + position1211, tokenIndex1211 := position, tokenIndex if buffer[position] != rune('-') { - goto l1204 + goto l1212 } position++ - goto l1203 - l1204: - position, tokenIndex = position1203, tokenIndex1203 + goto l1211 + l1212: + position, tokenIndex = position1211, tokenIndex1211 if !_rules[ruleDashOther]() { - goto l1201 + goto l1209 } } - l1203: - add(ruleDash, position1202) + l1211: + add(ruleDash, position1210) } return true - l1201: - position, tokenIndex = position1201, tokenIndex1201 + l1209: + position, tokenIndex = position1209, tokenIndex1209 return false }, - /* 145 DashOther <- <'‑'> */ + /* 147 DashOther <- <'‑'> */ func() bool { - position1205, tokenIndex1205 := position, tokenIndex + position1213, tokenIndex1213 := position, tokenIndex { - position1206 := position + position1214 := position if buffer[position] != rune('‑') { - goto l1205 + goto l1213 } position++ - add(ruleDashOther, position1206) + add(ruleDashOther, position1214) } return true - l1205: - position, tokenIndex = position1205, tokenIndex1205 + l1213: + position, tokenIndex = position1213, tokenIndex1213 return false }, - /* 146 Slash <- <'/'> */ + /* 148 Slash <- <'/'> */ func() bool { - position1207, tokenIndex1207 := position, tokenIndex + position1215, tokenIndex1215 := position, tokenIndex { - position1208 := position + position1216 := position if buffer[position] != rune('/') { - goto l1207 + goto l1215 } position++ - add(ruleSlash, position1208) + add(ruleSlash, position1216) } return true - l1207: - position, tokenIndex = position1207, tokenIndex1207 + l1215: + position, tokenIndex = position1215, tokenIndex1215 return false }, - /* 147 _ <- <(MultipleSpace / SingleSpace)> */ + /* 149 _ <- <(MultipleSpace / SingleSpace)> */ func() bool { - position1209, tokenIndex1209 := position, tokenIndex + position1217, tokenIndex1217 := position, tokenIndex { - position1210 := position + position1218 := position { - position1211, tokenIndex1211 := position, tokenIndex + position1219, tokenIndex1219 := position, tokenIndex if !_rules[ruleMultipleSpace]() { - goto l1212 + goto l1220 } - goto l1211 - l1212: - position, tokenIndex = position1211, tokenIndex1211 + goto l1219 + l1220: + position, tokenIndex = position1219, tokenIndex1219 if !_rules[ruleSingleSpace]() { - goto l1209 + goto l1217 } } - l1211: - add(rule_, position1210) + l1219: + add(rule_, position1218) } return true - l1209: - position, tokenIndex = position1209, tokenIndex1209 + l1217: + position, tokenIndex = position1217, tokenIndex1217 return false }, - /* 148 MultipleSpace <- <(SingleSpace SingleSpace+)> */ + /* 150 MultipleSpace <- <(SingleSpace SingleSpace+)> */ func() bool { - position1213, tokenIndex1213 := position, tokenIndex + position1221, tokenIndex1221 := position, tokenIndex { - position1214 := position + position1222 := position if !_rules[ruleSingleSpace]() { - goto l1213 + goto l1221 } if !_rules[ruleSingleSpace]() { - goto l1213 + goto l1221 } - l1215: + l1223: { - position1216, tokenIndex1216 := position, tokenIndex + position1224, tokenIndex1224 := position, tokenIndex if !_rules[ruleSingleSpace]() { - goto l1216 + goto l1224 } - goto l1215 - l1216: - position, tokenIndex = position1216, tokenIndex1216 + goto l1223 + l1224: + position, tokenIndex = position1224, tokenIndex1224 } - add(ruleMultipleSpace, position1214) + add(ruleMultipleSpace, position1222) } return true - l1213: - position, tokenIndex = position1213, tokenIndex1213 + l1221: + position, tokenIndex = position1221, tokenIndex1221 return false }, - /* 149 SingleSpace <- <(' ' / OtherSpace)> */ + /* 151 SingleSpace <- <(' ' / OtherSpace)> */ func() bool { - position1217, tokenIndex1217 := position, tokenIndex + position1225, tokenIndex1225 := position, tokenIndex { - position1218 := position + position1226 := position { - position1219, tokenIndex1219 := position, tokenIndex + position1227, tokenIndex1227 := position, tokenIndex if buffer[position] != rune(' ') { - goto l1220 + goto l1228 } position++ - goto l1219 - l1220: - position, tokenIndex = position1219, tokenIndex1219 + goto l1227 + l1228: + position, tokenIndex = position1227, tokenIndex1227 if !_rules[ruleOtherSpace]() { - goto l1217 + goto l1225 } } - l1219: - add(ruleSingleSpace, position1218) + l1227: + add(ruleSingleSpace, position1226) } return true - l1217: - position, tokenIndex = position1217, tokenIndex1217 + l1225: + position, tokenIndex = position1225, tokenIndex1225 return false }, - /* 150 OtherSpace <- <('\u3000' / '\u00a0' / '\t' / '\r' / '\n' / '\f' / '\v')> */ + /* 152 OtherSpace <- <('\u3000' / '\u00a0' / '\t' / '\r' / '\n' / '\f' / '\v')> */ func() bool { - position1221, tokenIndex1221 := position, tokenIndex + position1229, tokenIndex1229 := position, tokenIndex { - position1222 := position + position1230 := position { - position1223, tokenIndex1223 := position, tokenIndex + position1231, tokenIndex1231 := position, tokenIndex if buffer[position] != rune('\u3000') { - goto l1224 + goto l1232 } position++ - goto l1223 - l1224: - position, tokenIndex = position1223, tokenIndex1223 + goto l1231 + l1232: + position, tokenIndex = position1231, tokenIndex1231 if buffer[position] != rune('\u00a0') { - goto l1225 + goto l1233 } position++ - goto l1223 - l1225: - position, tokenIndex = position1223, tokenIndex1223 + goto l1231 + l1233: + position, tokenIndex = position1231, tokenIndex1231 if buffer[position] != rune('\t') { - goto l1226 + goto l1234 } position++ - goto l1223 - l1226: - position, tokenIndex = position1223, tokenIndex1223 + goto l1231 + l1234: + position, tokenIndex = position1231, tokenIndex1231 if buffer[position] != rune('\r') { - goto l1227 + goto l1235 } position++ - goto l1223 - l1227: - position, tokenIndex = position1223, tokenIndex1223 + goto l1231 + l1235: + position, tokenIndex = position1231, tokenIndex1231 if buffer[position] != rune('\n') { - goto l1228 + goto l1236 } position++ - goto l1223 - l1228: - position, tokenIndex = position1223, tokenIndex1223 + goto l1231 + l1236: + position, tokenIndex = position1231, tokenIndex1231 if buffer[position] != rune('\f') { - goto l1229 + goto l1237 } position++ - goto l1223 - l1229: - position, tokenIndex = position1223, tokenIndex1223 + goto l1231 + l1237: + position, tokenIndex = position1231, tokenIndex1231 if buffer[position] != rune('\v') { - goto l1221 + goto l1229 } position++ } - l1223: - add(ruleOtherSpace, position1222) + l1231: + add(ruleOtherSpace, position1230) } return true - l1221: - position, tokenIndex = position1221, tokenIndex1221 + l1229: + position, tokenIndex = position1229, tokenIndex1229 return false }, - /* 151 END <- */ + /* 153 END <- */ func() bool { - position1230, tokenIndex1230 := position, tokenIndex + position1238, tokenIndex1238 := position, tokenIndex { - position1231 := position + position1239 := position { - position1232, tokenIndex1232 := position, tokenIndex + position1240, tokenIndex1240 := position, tokenIndex if !matchDot() { - goto l1232 + goto l1240 } - goto l1230 - l1232: - position, tokenIndex = position1232, tokenIndex1232 + goto l1238 + l1240: + position, tokenIndex = position1240, tokenIndex1240 } - add(ruleEND, position1231) + add(ruleEND, position1239) } return true - l1230: - position, tokenIndex = position1230, tokenIndex1230 + l1238: + position, tokenIndex = position1238, tokenIndex1238 return false }, } diff --git a/ent/parser/name.go b/ent/parser/name.go index 5ba9d07..d94c429 100644 --- a/ent/parser/name.go +++ b/ent/parser/name.go @@ -446,11 +446,18 @@ func (comp *comparisonNode) words() []parsed.Word { } wrd = *comp.Genus words = []parsed.Word{wrd} - wrd = *comp.Comparison - words = append(words, wrd) + if comp.Cardinality == 2 { + words = append(words, *comp.Comparison) + } if comp.SpEpithet != nil { words = append(words, comp.SpEpithet.words()...) } + if comp.Cardinality == 3 { + words = append(words, *comp.Comparison) + } + if comp.InfraSpEpithet != nil { + words = append(words, comp.InfraSpEpithet.words()...) + } return words } @@ -459,10 +466,18 @@ func (comp *comparisonNode) value() string { return "" } val := comp.Genus.Normalized - val = str.JoinStrings(val, comp.Comparison.Normalized, " ") + if comp.Cardinality == 2 { + val = str.JoinStrings(val, comp.Comparison.Normalized, " ") + } if comp.SpEpithet != nil { val = str.JoinStrings(val, comp.SpEpithet.value(), " ") } + if comp.Cardinality == 3 { + val = str.JoinStrings(val, comp.Comparison.Normalized, " ") + } + if comp.InfraSpEpithet != nil { + val = str.JoinStrings(val, comp.InfraSpEpithet.value(), " ") + } return val } @@ -476,15 +491,23 @@ func (comp *comparisonNode) canonical() *canonical { sCan := comp.SpEpithet.canonical() c = appendCanonical(c, sCan, " ") } + if comp.InfraSpEpithet != nil { + ispCan := comp.InfraSpEpithet.canonical() + c = appendCanonical(c, ispCan, " ") + + } return c } func (comp *comparisonNode) lastAuthorship() *authorshipNode { var au *authorshipNode - if comp == nil || comp.SpEpithet == nil { - return au + if comp.Cardinality == 2 && comp.SpEpithet != nil { + return comp.SpEpithet.Authorship + } + if comp.Cardinality == 3 && comp.InfraSpEpithet != nil { + return comp.InfraSpEpithet.Authorship } - return comp.SpEpithet.Authorship + return au } func (comp *comparisonNode) details() parsed.Details { @@ -495,14 +518,24 @@ func (comp *comparisonNode) details() parsed.Details { Genus: comp.Genus.Normalized, CompMarker: comp.Comparison.Normalized, } - if comp.SpEpithet == nil { - return parsed.DetailsComparison{Comparison: co} + if comp.SpEpithet != nil { + co.Species = &parsed.Species{ + Genus: comp.Genus.Normalized, + Species: comp.SpEpithet.Word.Normalized, + Authorship: comp.SpEpithet.Authorship.details(), + } } + if comp.InfraSpEpithet != nil { + co.InfraSpecies = &parsed.InfraspeciesElem{ + Value: comp.InfraSpEpithet.Word.Normalized, + Authorship: comp.InfraSpEpithet.Authorship.details(), + } + if comp.InfraSpEpithet.Rank != nil { + co.InfraSpecies.Rank = comp.InfraSpEpithet.Rank.Word.Normalized + } - co.Species = comp.SpEpithet.value() - if comp.SpEpithet.Authorship != nil { - co.SpeciesAuthorship = comp.SpEpithet.Authorship.details() } + return parsed.DetailsComparison{Comparison: co} } diff --git a/gnparser/cmd/root.go b/gnparser/cmd/root.go index d6c1981..c652008 100644 --- a/gnparser/cmd/root.go +++ b/gnparser/cmd/root.go @@ -16,10 +16,15 @@ import ( "github.com/spf13/cobra" ) +// debug is true when output shows Abstract Synthax Tree instead of +// parsed results. const debug = false var ( - opts []gnparser.Option + // opts is a container for configuration options + opts []gnparser.Option + + // batchSize determines the size of a batch sent to gnparser workers. batchSize int ) diff --git a/testdata/test_data.md b/testdata/test_data.md index 4e3fe06..7da8e93 100644 --- a/testdata/test_data.md +++ b/testdata/test_data.md @@ -624,7 +624,7 @@ Authorship: Solem 1983 Name: Agaricus tr. Hypholoma Fr. -Canonical: Agaricus tr. Hypholoma +Canonical: Agaricus trib. Hypholoma Authorship: Fr. @@ -634,7 +634,7 @@ Authorship: Fr. Name: Agaricus tr Hypholoma Fr. -Canonical: Agaricus tr Hypholoma +Canonical: Agaricus trib. Hypholoma Authorship: Fr. @@ -644,7 +644,7 @@ Authorship: Fr. Name: Agaricus subtr. Oesypii Fr. -Canonical: Agaricus subtr. Oesypii +Canonical: Agaricus subtrib. Oesypii Authorship: Fr. @@ -654,7 +654,7 @@ Authorship: Fr. Name: Agaricus subtr Oesypii Fr. -Canonical: Agaricus subtr Oesypii +Canonical: Agaricus subtrib. Oesypii Authorship: Fr. @@ -3456,7 +3456,7 @@ Name: Pisania billehousti Souverbie, in Souverbie and Montrouzier, 1864 Canonical: Pisania billehousti -Authorship: Souverbie, in Souverbie and Montrouzier, 1864 +Authorship: Souverbie ex Souverbie & Montrouzier 1864 ```json {"parsed":true,"quality":2,"qualityWarnings":[{"quality":2,"warning":"Ex authors are not required (ICZN only)"}],"verbatim":"Pisania billehousti Souverbie, in Souverbie and Montrouzier, 1864","normalized":"Pisania billehousti Souverbie ex Souverbie \u0026 Montrouzier 1864","canonical":{"stemmed":"Pisania billehoust","simple":"Pisania billehousti","full":"Pisania billehousti"},"cardinality":2,"authorship":{"verbatim":"Souverbie, in Souverbie and Montrouzier, 1864","normalized":"Souverbie ex Souverbie \u0026 Montrouzier 1864","year":"1864","authors":["Souverbie","Montrouzier"],"originalAuth":{"authors":["Souverbie"],"exAuthors":{"authors":["Souverbie","Montrouzier"],"year":{"year":"1864"}}}},"details":{"species":{"genus":"Pisania","species":"billehousti","authorship":{"verbatim":"Souverbie, in Souverbie and Montrouzier, 1864","normalized":"Souverbie ex Souverbie \u0026 Montrouzier 1864","year":"1864","authors":["Souverbie","Montrouzier"],"originalAuth":{"authors":["Souverbie"],"exAuthors":{"authors":["Souverbie","Montrouzier"],"year":{"year":"1864"}}}}}},"words":[{"verbatim":"Pisania","normalized":"Pisania","wordType":"GENUS","start":0,"end":7},{"verbatim":"billehousti","normalized":"billehousti","wordType":"SPECIES","start":8,"end":19},{"verbatim":"Souverbie","normalized":"Souverbie","wordType":"AUTHOR_WORD","start":20,"end":29},{"verbatim":"Souverbie","normalized":"Souverbie","wordType":"AUTHOR_WORD","start":34,"end":43},{"verbatim":"Montrouzier","normalized":"Montrouzier","wordType":"AUTHOR_WORD","start":48,"end":59},{"verbatim":"1864","normalized":"1864","wordType":"YEAR","start":61,"end":65}],"id":"a84244fa-ee95-5b97-a339-2de33cef70de","parserVersion":"test_version"} @@ -4598,7 +4598,7 @@ Canonical: Abturia alabamensis Authorship: (Morton) ```json -{"parsed":true,"quality":4,"qualityWarnings":[{"quality":4,"warning":"Name comparison"}],"verbatim":"Abturia cf. alabamensis (Morton )","normalized":"Abturia cf. alabamensis (Morton)","canonical":{"stemmed":"Abturia alabamens","simple":"Abturia alabamensis","full":"Abturia alabamensis"},"cardinality":2,"authorship":{"verbatim":"(Morton )","normalized":"(Morton)","authors":["Morton"],"originalAuth":{"authors":["Morton"]}},"surrogate":"COMPARISON","details":{"comparison":{"genus":"Abturia","species":"alabamensis (Morton)","authorship":{"verbatim":"(Morton )","normalized":"(Morton)","authors":["Morton"],"originalAuth":{"authors":["Morton"]}},"comparisonMarker":"cf."}},"words":[{"verbatim":"Abturia","normalized":"Abturia","wordType":"GENUS","start":0,"end":7},{"verbatim":"cf.","normalized":"cf.","wordType":"COMPARISON_MARKER","start":8,"end":11},{"verbatim":"alabamensis","normalized":"alabamensis","wordType":"SPECIES","start":12,"end":23},{"verbatim":"Morton","normalized":"Morton","wordType":"AUTHOR_WORD","start":25,"end":31}],"id":"5fd4ce59-98d3-50af-9e28-918adc47d264","parserVersion":"test_version"} +{"parsed":true,"quality":4,"qualityWarnings":[{"quality":4,"warning":"Name comparison"}],"verbatim":"Abturia cf. alabamensis (Morton )","normalized":"Abturia cf. alabamensis (Morton)","canonical":{"stemmed":"Abturia alabamens","simple":"Abturia alabamensis","full":"Abturia alabamensis"},"cardinality":2,"authorship":{"verbatim":"(Morton )","normalized":"(Morton)","authors":["Morton"],"originalAuth":{"authors":["Morton"]}},"surrogate":"COMPARISON","details":{"comparison":{"genus":"Abturia","species":"alabamensis","authorship":{"verbatim":"(Morton )","normalized":"(Morton)","authors":["Morton"],"originalAuth":{"authors":["Morton"]}},"comparisonMarker":"cf."}},"words":[{"verbatim":"Abturia","normalized":"Abturia","wordType":"GENUS","start":0,"end":7},{"verbatim":"cf.","normalized":"cf.","wordType":"COMPARISON_MARKER","start":8,"end":11},{"verbatim":"alabamensis","normalized":"alabamensis","wordType":"SPECIES","start":12,"end":23},{"verbatim":"Morton","normalized":"Morton","wordType":"AUTHOR_WORD","start":25,"end":31}],"id":"5fd4ce59-98d3-50af-9e28-918adc47d264","parserVersion":"test_version"} ``` Name: Abturia cf alabamensis (Morton ) @@ -4608,7 +4608,7 @@ Canonical: Abturia alabamensis Authorship: (Morton) ```json -{"parsed":true,"quality":4,"qualityWarnings":[{"quality":4,"warning":"Name comparison"}],"verbatim":"Abturia cf alabamensis (Morton )","normalized":"Abturia cf alabamensis (Morton)","canonical":{"stemmed":"Abturia alabamens","simple":"Abturia alabamensis","full":"Abturia alabamensis"},"cardinality":2,"authorship":{"verbatim":"(Morton )","normalized":"(Morton)","authors":["Morton"],"originalAuth":{"authors":["Morton"]}},"surrogate":"COMPARISON","details":{"comparison":{"genus":"Abturia","species":"alabamensis (Morton)","authorship":{"verbatim":"(Morton )","normalized":"(Morton)","authors":["Morton"],"originalAuth":{"authors":["Morton"]}},"comparisonMarker":"cf"}},"words":[{"verbatim":"Abturia","normalized":"Abturia","wordType":"GENUS","start":0,"end":7},{"verbatim":"cf","normalized":"cf","wordType":"COMPARISON_MARKER","start":8,"end":10},{"verbatim":"alabamensis","normalized":"alabamensis","wordType":"SPECIES","start":11,"end":22},{"verbatim":"Morton","normalized":"Morton","wordType":"AUTHOR_WORD","start":24,"end":30}],"id":"423cd26d-c6fd-54fb-937b-f98ba8056fc0","parserVersion":"test_version"} +{"parsed":true,"quality":4,"qualityWarnings":[{"quality":4,"warning":"Name comparison"}],"verbatim":"Abturia cf alabamensis (Morton )","normalized":"Abturia cf. alabamensis (Morton)","canonical":{"stemmed":"Abturia alabamens","simple":"Abturia alabamensis","full":"Abturia alabamensis"},"cardinality":2,"authorship":{"verbatim":"(Morton )","normalized":"(Morton)","authors":["Morton"],"originalAuth":{"authors":["Morton"]}},"surrogate":"COMPARISON","details":{"comparison":{"genus":"Abturia","species":"alabamensis","authorship":{"verbatim":"(Morton )","normalized":"(Morton)","authors":["Morton"],"originalAuth":{"authors":["Morton"]}},"comparisonMarker":"cf."}},"words":[{"verbatim":"Abturia","normalized":"Abturia","wordType":"GENUS","start":0,"end":7},{"verbatim":"cf","normalized":"cf.","wordType":"COMPARISON_MARKER","start":8,"end":10},{"verbatim":"alabamensis","normalized":"alabamensis","wordType":"SPECIES","start":11,"end":22},{"verbatim":"Morton","normalized":"Morton","wordType":"AUTHOR_WORD","start":24,"end":30}],"id":"423cd26d-c6fd-54fb-937b-f98ba8056fc0","parserVersion":"test_version"} ``` @@ -4653,7 +4653,7 @@ Canonical: Barbus macrotaenia × Barbus toppini Authorship: ```json -{"parsed":true,"quality":4,"qualityWarnings":[{"quality":4,"warning":"Incomplete hybrid formula"},{"quality":4,"warning":"Name comparison"},{"quality":2,"warning":"Hybrid formula"}],"verbatim":"Barbus cf macrotaenia × toppini","normalized":"Barbus cf macrotaenia × Barbus toppini","canonical":{"stemmed":"Barbus macrotaen × Barbus toppin","simple":"Barbus macrotaenia × Barbus toppini","full":"Barbus macrotaenia × Barbus toppini"},"cardinality":0,"hybrid":"HYBRID_FORMULA","surrogate":"COMPARISON","details":{"hybridFormula":[{"comparison":{"genus":"Barbus","species":"macrotaenia","comparisonMarker":"cf"}},{"species":{"genus":"Barbus","species":"toppini"}}]},"words":[{"verbatim":"Barbus","normalized":"Barbus","wordType":"GENUS","start":0,"end":6},{"verbatim":"cf","normalized":"cf","wordType":"COMPARISON_MARKER","start":7,"end":9},{"verbatim":"macrotaenia","normalized":"macrotaenia","wordType":"SPECIES","start":10,"end":21},{"verbatim":"×","normalized":"×","wordType":"HYBRID_CHAR","start":22,"end":23},{"verbatim":"toppini","normalized":"toppini","wordType":"SPECIES","start":24,"end":31}],"id":"37b0b404-d5d9-5699-bbb2-8c3d9bf543a3","parserVersion":"test_version"} +{"parsed":true,"quality":4,"qualityWarnings":[{"quality":4,"warning":"Incomplete hybrid formula"},{"quality":4,"warning":"Name comparison"},{"quality":2,"warning":"Hybrid formula"}],"verbatim":"Barbus cf macrotaenia × toppini","normalized":"Barbus cf. macrotaenia × Barbus toppini","canonical":{"stemmed":"Barbus macrotaen × Barbus toppin","simple":"Barbus macrotaenia × Barbus toppini","full":"Barbus macrotaenia × Barbus toppini"},"cardinality":0,"hybrid":"HYBRID_FORMULA","surrogate":"COMPARISON","details":{"hybridFormula":[{"comparison":{"genus":"Barbus","species":"macrotaenia","comparisonMarker":"cf."}},{"species":{"genus":"Barbus","species":"toppini"}}]},"words":[{"verbatim":"Barbus","normalized":"Barbus","wordType":"GENUS","start":0,"end":6},{"verbatim":"cf","normalized":"cf.","wordType":"COMPARISON_MARKER","start":7,"end":9},{"verbatim":"macrotaenia","normalized":"macrotaenia","wordType":"SPECIES","start":10,"end":21},{"verbatim":"×","normalized":"×","wordType":"HYBRID_CHAR","start":22,"end":23},{"verbatim":"toppini","normalized":"toppini","wordType":"SPECIES","start":24,"end":31}],"id":"37b0b404-d5d9-5699-bbb2-8c3d9bf543a3","parserVersion":"test_version"} ``` Name: Gemmula cf. cosmoi NP-2008 @@ -6167,10 +6167,9 @@ Canonical: Formicidae Authorship: ```json -{"parsed":true,"quality":4,"qualityWarnings":[{"quality":4,"warning":"Name comparison"}],"verbatim":"Formicidae cf","normalized":"Formicidae cf","canonical":{"stemmed":"Formicidae","simple":"Formicidae","full":"Formicidae"},"cardinality":1,"surrogate":"COMPARISON","details":{"comparison":{"genus":"Formicidae","comparisonMarker":"cf"}},"words":[{"verbatim":"Formicidae","normalized":"Formicidae","wordType":"GENUS","start":0,"end":10},{"verbatim":"cf","normalized":"cf","wordType":"COMPARISON_MARKER","start":11,"end":13}],"id":"90473425-7ce1-5ec6-8160-737646816ea7","parserVersion":"test_version"} +{"parsed":true,"quality":4,"qualityWarnings":[{"quality":4,"warning":"Name comparison"}],"verbatim":"Formicidae cf","normalized":"Formicidae cf.","canonical":{"stemmed":"Formicidae","simple":"Formicidae","full":"Formicidae"},"cardinality":1,"surrogate":"COMPARISON","details":{"comparison":{"genus":"Formicidae","comparisonMarker":"cf."}},"words":[{"verbatim":"Formicidae","normalized":"Formicidae","wordType":"GENUS","start":0,"end":10},{"verbatim":"cf","normalized":"cf.","wordType":"COMPARISON_MARKER","start":11,"end":13}],"id":"90473425-7ce1-5ec6-8160-737646816ea7","parserVersion":"test_version"} ``` - Name: Arctostaphylos preglauca cf. Canonical: Arctostaphylos preglauca @@ -6178,7 +6177,39 @@ Canonical: Arctostaphylos preglauca Authorship: ```json -{"parsed":true,"quality":4,"qualityWarnings":[{"quality":4,"warning":"Unparsed tail"}],"verbatim":"Arctostaphylos preglauca cf.","normalized":"Arctostaphylos preglauca","canonical":{"stemmed":"Arctostaphylos preglauc","simple":"Arctostaphylos preglauca","full":"Arctostaphylos preglauca"},"cardinality":2,"tail":" cf.","details":{"species":{"genus":"Arctostaphylos","species":"preglauca"}},"words":[{"verbatim":"Arctostaphylos","normalized":"Arctostaphylos","wordType":"GENUS","start":0,"end":14},{"verbatim":"preglauca","normalized":"preglauca","wordType":"SPECIES","start":15,"end":24}],"id":"246b43d4-9786-5157-8d35-b81a470e6379","parserVersion":"test_version"} +{"parsed":true,"quality":4,"qualityWarnings":[{"quality":4,"warning":"Name comparison"}],"verbatim":"Arctostaphylos preglauca cf.","normalized":"Arctostaphylos preglauca cf.","canonical":{"stemmed":"Arctostaphylos preglauc","simple":"Arctostaphylos preglauca","full":"Arctostaphylos preglauca"},"cardinality":2,"surrogate":"COMPARISON","details":{"comparison":{"genus":"Arctostaphylos","species":"preglauca","comparisonMarker":"cf."}},"words":[{"verbatim":"Arctostaphylos","normalized":"Arctostaphylos","wordType":"GENUS","start":0,"end":14},{"verbatim":"preglauca","normalized":"preglauca","wordType":"SPECIES","start":15,"end":24},{"verbatim":"cf.","normalized":"cf.","wordType":"COMPARISON_MARKER","start":25,"end":28}],"id":"246b43d4-9786-5157-8d35-b81a470e6379","parserVersion":"test_version"} +``` + +Name: Albinaria brevicollis cf. sica Fuchs & Kaufel 1936 + +Canonical: Albinaria brevicollis sica + +Authorship: Fuchs & Kaufel 1936 + +```json +{"parsed":true,"quality":4,"qualityWarnings":[{"quality":4,"warning":"Name comparison"}],"verbatim":"Albinaria brevicollis cf. sica Fuchs \u0026 Kaufel 1936","normalized":"Albinaria brevicollis cf. sica Fuchs \u0026 Kaufel 1936","canonical":{"stemmed":"Albinaria breuicoll sic","simple":"Albinaria brevicollis sica","full":"Albinaria brevicollis sica"},"cardinality":3,"authorship":{"verbatim":"Fuchs \u0026 Kaufel 1936","normalized":"Fuchs \u0026 Kaufel 1936","year":"1936","authors":["Fuchs","Kaufel"],"originalAuth":{"authors":["Fuchs","Kaufel"],"year":{"year":"1936"}}},"surrogate":"COMPARISON","details":{"comparison":{"genus":"Albinaria","species":"brevicollis","infraspecies":{"value":"sica","authorship":{"verbatim":"Fuchs \u0026 Kaufel 1936","normalized":"Fuchs \u0026 Kaufel 1936","year":"1936","authors":["Fuchs","Kaufel"],"originalAuth":{"authors":["Fuchs","Kaufel"],"year":{"year":"1936"}}}},"comparisonMarker":"cf."}},"words":[{"verbatim":"Albinaria","normalized":"Albinaria","wordType":"GENUS","start":0,"end":9},{"verbatim":"brevicollis","normalized":"brevicollis","wordType":"SPECIES","start":10,"end":21},{"verbatim":"cf.","normalized":"cf.","wordType":"COMPARISON_MARKER","start":22,"end":25},{"verbatim":"sica","normalized":"sica","wordType":"INFRASPECIES","start":26,"end":30},{"verbatim":"Fuchs","normalized":"Fuchs","wordType":"AUTHOR_WORD","start":31,"end":36},{"verbatim":"Kaufel","normalized":"Kaufel","wordType":"AUTHOR_WORD","start":39,"end":45},{"verbatim":"1936","normalized":"1936","wordType":"YEAR","start":46,"end":50}],"id":"cc77e528-f730-563f-ba5c-5696ec456b69","parserVersion":"test_version"} +``` + +# we do not support this + +Name: Albinaria cf brevicollis sica Fuchs & Kaufel 1936 + +Canonical: Albinaria brevicollis + +Authorship: + +```json +{"parsed":true,"quality":4,"qualityWarnings":[{"quality":4,"warning":"Name comparison"},{"quality":4,"warning":"Unparsed tail"}],"verbatim":"Albinaria cf brevicollis sica Fuchs \u0026 Kaufel 1936","normalized":"Albinaria cf. brevicollis","canonical":{"stemmed":"Albinaria breuicoll","simple":"Albinaria brevicollis","full":"Albinaria brevicollis"},"cardinality":2,"surrogate":"COMPARISON","tail":" sica Fuchs \u0026 Kaufel 1936","details":{"comparison":{"genus":"Albinaria","species":"brevicollis","comparisonMarker":"cf."}},"words":[{"verbatim":"Albinaria","normalized":"Albinaria","wordType":"GENUS","start":0,"end":9},{"verbatim":"cf","normalized":"cf.","wordType":"COMPARISON_MARKER","start":10,"end":12},{"verbatim":"brevicollis","normalized":"brevicollis","wordType":"SPECIES","start":13,"end":24}],"id":"8e2beae0-6a8e-54da-ac16-53de069fb3f0","parserVersion":"test_version"} +``` + +Name: Albinaria brevicollis cf + +Canonical: Albinaria brevicollis sica + +Authorship: Fuchs & Kaufel 1936 + +```json +{"parsed":true,"quality":4,"qualityWarnings":[{"quality":4,"warning":"Name comparison"}],"verbatim":"Albinaria brevicollis cf","normalized":"Albinaria brevicollis cf.","canonical":{"stemmed":"Albinaria breuicoll","simple":"Albinaria brevicollis","full":"Albinaria brevicollis"},"cardinality":2,"surrogate":"COMPARISON","details":{"comparison":{"genus":"Albinaria","species":"brevicollis","comparisonMarker":"cf."}},"words":[{"verbatim":"Albinaria","normalized":"Albinaria","wordType":"GENUS","start":0,"end":9},{"verbatim":"brevicollis","normalized":"brevicollis","wordType":"SPECIES","start":10,"end":21},{"verbatim":"cf","normalized":"cf.","wordType":"COMPARISON_MARKER","start":22,"end":24}],"id":"591f1263-acfb-58f0-bcae-07a0e0977adf","parserVersion":"test_version"} ``` Name: Acastoides spp. @@ -6479,9 +6510,9 @@ Authorship: R. Vig. Name: Abida secale margaridae I.M.Fake Ms -Canonical: Abida secale margaridae +Canonical: Abida secale margaridae -Authorship: +Authorship: I. M. Fake ```json {"parsed":true,"quality":4,"qualityWarnings":[{"quality":4,"warning":"Unparsed tail"}],"verbatim":"Abida secale margaridae I.M.Fake Ms","normalized":"Abida secale margaridae I. M. Fake","canonical":{"stemmed":"Abida secal margarid","simple":"Abida secale margaridae","full":"Abida secale margaridae"},"cardinality":3,"authorship":{"verbatim":"I.M.Fake","normalized":"I. M. Fake","authors":["I. M. Fake"],"originalAuth":{"authors":["I. M. Fake"]}},"tail":" Ms","details":{"infraspecies":{"genus":"Abida","species":"secale","infraspecies":[{"value":"margaridae","authorship":{"verbatim":"I.M.Fake","normalized":"I. M. Fake","authors":["I. M. Fake"],"originalAuth":{"authors":["I. M. Fake"]}}}]}},"words":[{"verbatim":"Abida","normalized":"Abida","wordType":"GENUS","start":0,"end":5},{"verbatim":"secale","normalized":"secale","wordType":"SPECIES","start":6,"end":12},{"verbatim":"margaridae","normalized":"margaridae","wordType":"INFRASPECIES","start":13,"end":23},{"verbatim":"I.","normalized":"I.","wordType":"AUTHOR_WORD","start":24,"end":26},{"verbatim":"M.","normalized":"M.","wordType":"AUTHOR_WORD","start":26,"end":28},{"verbatim":"Fake","normalized":"Fake","wordType":"AUTHOR_WORD","start":28,"end":32}],"id":"a1409474-7c90-54c9-9161-7b003c9dffcb","parserVersion":"test_version"} @@ -6489,9 +6520,9 @@ Authorship: Name: Abida secale margaridae I.M.Fake ms -Canonical: Abida secale margaridae +Canonical: Abida secale margaridae -Authorship: +Authorship: I. M. Fake ```json {"parsed":true,"quality":4,"qualityWarnings":[{"quality":4,"warning":"Unparsed tail"}],"verbatim":"Abida secale margaridae I.M.Fake ms","normalized":"Abida secale margaridae I. M. Fake","canonical":{"stemmed":"Abida secal margarid","simple":"Abida secale margaridae","full":"Abida secale margaridae"},"cardinality":3,"authorship":{"verbatim":"I.M.Fake","normalized":"I. M. Fake","authors":["I. M. Fake"],"originalAuth":{"authors":["I. M. Fake"]}},"tail":" ms","details":{"infraspecies":{"genus":"Abida","species":"secale","infraspecies":[{"value":"margaridae","authorship":{"verbatim":"I.M.Fake","normalized":"I. M. Fake","authors":["I. M. Fake"],"originalAuth":{"authors":["I. M. Fake"]}}}]}},"words":[{"verbatim":"Abida","normalized":"Abida","wordType":"GENUS","start":0,"end":5},{"verbatim":"secale","normalized":"secale","wordType":"SPECIES","start":6,"end":12},{"verbatim":"margaridae","normalized":"margaridae","wordType":"INFRASPECIES","start":13,"end":23},{"verbatim":"I.","normalized":"I.","wordType":"AUTHOR_WORD","start":24,"end":26},{"verbatim":"M.","normalized":"M.","wordType":"AUTHOR_WORD","start":26,"end":28},{"verbatim":"Fake","normalized":"Fake","wordType":"AUTHOR_WORD","start":28,"end":32}],"id":"cfa8d6e1-3913-512b-8e4f-163419c662bc","parserVersion":"test_version"}