refactor parse phase - parsers
This commit is contained in:
parent
77c3356427
commit
223b868cf0
@ -63,7 +63,7 @@ func (d *choiceDefinition) validate(r *registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *choiceDefinition) ensureBuilder() {
|
func (d *choiceDefinition) createBuilder() {
|
||||||
if d.cbuilder != nil {
|
if d.cbuilder != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -91,7 +91,7 @@ func (d *choiceDefinition) init(r *registry) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
d.initialized = true
|
d.initialized = true
|
||||||
d.ensureBuilder()
|
d.createBuilder()
|
||||||
d.initOptions(r)
|
d.initOptions(r)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,7 +101,6 @@ func (d *choiceDefinition) addGeneralization(g int) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
d.generalizations = append(d.generalizations, g)
|
d.generalizations = append(d.generalizations, g)
|
||||||
d.ensureBuilder()
|
|
||||||
for _, e := range d.optionDefs {
|
for _, e := range d.optionDefs {
|
||||||
e.addGeneralization(g)
|
e.addGeneralization(g)
|
||||||
}
|
}
|
||||||
|
17
sequence.go
17
sequence.go
@ -69,7 +69,7 @@ func (d *sequenceDefinition) validate(r *registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *sequenceDefinition) ensureBuilder() {
|
func (d *sequenceDefinition) createBuilder() {
|
||||||
if d.sbuilder != nil {
|
if d.sbuilder != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -78,6 +78,7 @@ func (d *sequenceDefinition) ensureBuilder() {
|
|||||||
name: d.name,
|
name: d.name,
|
||||||
id: d.id,
|
id: d.id,
|
||||||
commit: d.commit,
|
commit: d.commit,
|
||||||
|
ranges: d.ranges,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,10 +112,6 @@ func (d *sequenceDefinition) initItems(r *registry) {
|
|||||||
d.allChars = allChars
|
d.allChars = allChars
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *sequenceDefinition) canHaveSpecializations() bool {
|
|
||||||
return len(d.items) == 1 && d.items[0].Max == 1
|
|
||||||
}
|
|
||||||
|
|
||||||
func (d *sequenceDefinition) init(r *registry) {
|
func (d *sequenceDefinition) init(r *registry) {
|
||||||
if d.initialized {
|
if d.initialized {
|
||||||
return
|
return
|
||||||
@ -122,12 +119,8 @@ func (d *sequenceDefinition) init(r *registry) {
|
|||||||
|
|
||||||
d.initialized = true
|
d.initialized = true
|
||||||
d.initRanges()
|
d.initRanges()
|
||||||
d.ensureBuilder()
|
d.createBuilder()
|
||||||
d.sbuilder.ranges = d.ranges
|
|
||||||
d.initItems(r)
|
d.initItems(r)
|
||||||
if d.canHaveSpecializations() {
|
|
||||||
d.itemDefs[0].addGeneralization(d.id)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *sequenceDefinition) addGeneralization(g int) {
|
func (d *sequenceDefinition) addGeneralization(g int) {
|
||||||
@ -136,10 +129,6 @@ func (d *sequenceDefinition) addGeneralization(g int) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
d.generalizations = append(d.generalizations, g)
|
d.generalizations = append(d.generalizations, g)
|
||||||
d.ensureBuilder()
|
|
||||||
if d.canHaveSpecializations() {
|
|
||||||
d.itemDefs[0].addGeneralization(g)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *sequenceDefinition) createParser() {
|
func (d *sequenceDefinition) createParser() {
|
||||||
|
Loading…
Reference in New Issue
Block a user