simplify generated output
This commit is contained in:
parent
68ce88cc6f
commit
eb8250c311
@ -89,21 +89,30 @@ func (p *charParser) generate(w io.Writer, done map[string]bool) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fprintf("var p%d = charParser{", p.id)
|
fprintf("var p%d = charParser{", p.id)
|
||||||
fprintf("id: %d, not: %t,", p.id, p.not)
|
fprintf("id: %d,", p.id)
|
||||||
|
if p.not {
|
||||||
fprintf("chars: []rune{")
|
fprintf("not: true,")
|
||||||
for i := range p.chars {
|
|
||||||
fprintf("%d,", p.chars[i])
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf("},")
|
if len(p.chars) > 0 {
|
||||||
|
fprintf("chars: []rune{")
|
||||||
|
for i := range p.chars {
|
||||||
|
fprintf("%d,", p.chars[i])
|
||||||
|
}
|
||||||
|
|
||||||
fprintf("ranges: [][]rune{")
|
fprintf("},")
|
||||||
for i := range p.ranges {
|
|
||||||
fprintf("{%d, %d},", p.ranges[i][0], p.ranges[i][1])
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf("}};")
|
if len(p.ranges) > 0 {
|
||||||
|
fprintf("ranges: [][]rune{")
|
||||||
|
for i := range p.ranges {
|
||||||
|
fprintf("{%d, %d},", p.ranges[i][0], p.ranges[i][1])
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf("},")
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf("};")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,29 +157,37 @@ func (p *choiceParser) generate(w io.Writer, done map[string]bool) error {
|
|||||||
|
|
||||||
fprintf("var p%d = choiceParser{", p.id)
|
fprintf("var p%d = choiceParser{", p.id)
|
||||||
fprintf("id: %d, commit: %d,", p.id, p.commit)
|
fprintf("id: %d, commit: %d,", p.id, p.commit)
|
||||||
|
|
||||||
if p.commitType()&userDefined != 0 {
|
if p.commitType()&userDefined != 0 {
|
||||||
fprintf("name: \"%s\",", p.name)
|
fprintf("name: \"%s\",", p.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf("generalizations: []int{")
|
if len(p.generalizations) > 0 {
|
||||||
for i := range p.generalizations {
|
fprintf("generalizations: []int{")
|
||||||
fprintf("%d,", p.generalizations[i])
|
for i := range p.generalizations {
|
||||||
}
|
fprintf("%d,", p.generalizations[i])
|
||||||
|
|
||||||
fprintf("}};")
|
|
||||||
|
|
||||||
for i := range p.options {
|
|
||||||
if err := p.options[i].(generator).generate(w, done); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
fprintf("p%d.options = []parser{", p.id)
|
fprintf("},")
|
||||||
for i := range p.options {
|
|
||||||
fprintf("&p%d,", p.options[i].nodeID())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf("};")
|
fprintf("};")
|
||||||
|
|
||||||
|
if len(p.options) > 0 {
|
||||||
|
for i := range p.options {
|
||||||
|
if err := p.options[i].(generator).generate(w, done); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf("p%d.options = []parser{", p.id)
|
||||||
|
for i := range p.options {
|
||||||
|
fprintf("&p%d,", p.options[i].nodeID())
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf("};")
|
||||||
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -201,23 +209,27 @@ func (b *choiceBuilder) generate(w io.Writer, done map[string]bool) error {
|
|||||||
|
|
||||||
fprintf("var b%d = choiceBuilder{", b.id)
|
fprintf("var b%d = choiceBuilder{", b.id)
|
||||||
fprintf("id: %d, commit: %d,", b.id, b.commit)
|
fprintf("id: %d, commit: %d,", b.id, b.commit)
|
||||||
|
|
||||||
if b.commit&Alias == 0 {
|
if b.commit&Alias == 0 {
|
||||||
fprintf("name: \"%s\",", b.name)
|
fprintf("name: \"%s\",", b.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf("};")
|
fprintf("};")
|
||||||
|
|
||||||
for i := range b.options {
|
if len(b.options) > 0 {
|
||||||
if err := b.options[i].(generator).generate(w, done); err != nil {
|
for i := range b.options {
|
||||||
return err
|
if err := b.options[i].(generator).generate(w, done); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fprintf("b%d.options = []builder{", b.id)
|
||||||
|
for i := range b.options {
|
||||||
|
fprintf("&b%d,", b.options[i].nodeID())
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf("};")
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf("b%d.options = []builder{", b.id)
|
|
||||||
for i := range b.options {
|
|
||||||
fprintf("&b%d,", b.options[i].nodeID())
|
|
||||||
}
|
|
||||||
|
|
||||||
fprintf("};")
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ package treerack
|
|||||||
// only to the source code generated with treerack.
|
// only to the source code generated with treerack.
|
||||||
const gendoc = `
|
const gendoc = `
|
||||||
/*
|
/*
|
||||||
This file was generated by treerack (https://github.com/aryszka/treerack).
|
This file was generated with treerack (https://github.com/aryszka/treerack).
|
||||||
|
|
||||||
The contents of this file fall under different licenses.
|
The contents of this file fall under different licenses.
|
||||||
|
|
||||||
|
1176
self/self.go
1176
self/self.go
File diff suppressed because it is too large
Load Diff
@ -296,37 +296,51 @@ func (p *sequenceParser) generate(w io.Writer, done map[string]bool) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fprintf("var p%d = sequenceParser{", p.id)
|
fprintf("var p%d = sequenceParser{", p.id)
|
||||||
fprintf("id: %d, commit: %d, allChars: %t,", p.id, p.commit, p.allChars)
|
fprintf("id: %d, commit: %d,", p.id, p.commit)
|
||||||
|
|
||||||
if p.commit&userDefined != 0 {
|
if p.commit&userDefined != 0 {
|
||||||
fprintf("name: \"%s\",", p.name)
|
fprintf("name: \"%s\",", p.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf("ranges: [][]int{")
|
if p.allChars {
|
||||||
for i := range p.ranges {
|
fprintf("allChars: true,")
|
||||||
fprintf("{%d, %d},", p.ranges[i][0], p.ranges[i][1])
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf("},")
|
if len(p.ranges) > 0 {
|
||||||
|
fprintf("ranges: [][]int{")
|
||||||
fprintf("generalizations: []int{")
|
for i := range p.ranges {
|
||||||
for i := range p.generalizations {
|
fprintf("{%d, %d},", p.ranges[i][0], p.ranges[i][1])
|
||||||
fprintf("%d,", p.generalizations[i])
|
|
||||||
}
|
|
||||||
|
|
||||||
fprintf("}};")
|
|
||||||
|
|
||||||
for i := range p.items {
|
|
||||||
if err := p.items[i].(generator).generate(w, done); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fprintf("},")
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf("p%d.items = []parser{", p.id)
|
if len(p.generalizations) > 0 {
|
||||||
for i := range p.items {
|
fprintf("generalizations: []int{")
|
||||||
fprintf("&p%d,", p.items[i].nodeID())
|
for i := range p.generalizations {
|
||||||
|
fprintf("%d,", p.generalizations[i])
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf("},")
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf("};")
|
fprintf("};")
|
||||||
|
|
||||||
|
if len(p.items) > 0 {
|
||||||
|
for i := range p.items {
|
||||||
|
if err := p.items[i].(generator).generate(w, done); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf("p%d.items = []parser{", p.id)
|
||||||
|
for i := range p.items {
|
||||||
|
fprintf("&p%d,", p.items[i].nodeID())
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf("};")
|
||||||
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -347,29 +361,41 @@ func (b *sequenceBuilder) generate(w io.Writer, done map[string]bool) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fprintf("var b%d = sequenceBuilder{", b.id)
|
fprintf("var b%d = sequenceBuilder{", b.id)
|
||||||
fprintf("id: %d, commit: %d, allChars: %t,", b.id, b.commit, b.allChars)
|
fprintf("id: %d, commit: %d,", b.id, b.commit)
|
||||||
|
|
||||||
if b.commit&Alias == 0 {
|
if b.commit&Alias == 0 {
|
||||||
fprintf("name: \"%s\",", b.name)
|
fprintf("name: \"%s\",", b.name)
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf("ranges: [][]int{")
|
if b.allChars {
|
||||||
for i := range b.ranges {
|
fprintf("allChars: true,")
|
||||||
fprintf("{%d, %d},", b.ranges[i][0], b.ranges[i][1])
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf("}};")
|
if len(b.ranges) > 0 {
|
||||||
|
fprintf("ranges: [][]int{")
|
||||||
for i := range b.items {
|
for i := range b.ranges {
|
||||||
if err := b.items[i].(generator).generate(w, done); err != nil {
|
fprintf("{%d, %d},", b.ranges[i][0], b.ranges[i][1])
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
fprintf("b%d.items = []builder{", b.id)
|
fprintf("},")
|
||||||
for i := range b.items {
|
|
||||||
fprintf("&b%d,", b.items[i].nodeID())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf("};")
|
fprintf("};")
|
||||||
|
|
||||||
|
if len(b.items) > 0 {
|
||||||
|
for i := range b.items {
|
||||||
|
if err := b.items[i].(generator).generate(w, done); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf("b%d.items = []builder{", b.id)
|
||||||
|
for i := range b.items {
|
||||||
|
fprintf("&b%d,", b.items[i].nodeID())
|
||||||
|
}
|
||||||
|
|
||||||
|
fprintf("};")
|
||||||
|
}
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user