review format

This commit is contained in:
Arpad Ryszka 2017-12-31 18:03:12 +01:00
parent 6d3fe17ddb
commit c27f199e56

64
char.go
View File

@ -41,38 +41,6 @@ func (p *charParser) addGeneralization(int) {}
func (p *charParser) parser() parser { return p }
func (p *charParser) builder() builder { return p }
func (p *charParser) isSingleChar() bool {
return !p.not && len(p.chars) == 1 && len(p.ranges) == 0
}
func (p *charParser) format(_ *registry, f formatFlags) string {
if p.not && len(p.chars) == 0 && len(p.ranges) == 0 {
return "."
}
esc := func(c ...rune) []rune {
return escape(charClassEscape, []rune(charClassBanned), c)
}
var s []rune
s = append(s, '[')
if p.not {
s = append(s, '^')
}
s = append(s, esc(p.chars...)...)
for i := range p.ranges {
s = append(s, esc(p.ranges[i][0])...)
s = append(s, '-')
s = append(s, esc(p.ranges[i][1])...)
}
s = append(s, ']')
return string(s)
}
func matchChar(chars []rune, ranges [][]rune, not bool, char rune) bool {
for _, ci := range chars {
if ci == char {
@ -110,3 +78,35 @@ func (p *charParser) parse(c *context) {
func (p *charParser) build(c *context) ([]*Node, bool) {
return nil, false
}
func (p *charParser) isSingleChar() bool {
return !p.not && len(p.chars) == 1 && len(p.ranges) == 0
}
func (p *charParser) format(_ *registry, f formatFlags) string {
if p.not && len(p.chars) == 0 && len(p.ranges) == 0 {
return "."
}
esc := func(c ...rune) []rune {
return escape(charClassEscape, []rune(charClassBanned), c)
}
var s []rune
s = append(s, '[')
if p.not {
s = append(s, '^')
}
s = append(s, esc(p.chars...)...)
for i := range p.ranges {
s = append(s, esc(p.ranges[i][0])...)
s = append(s, '-')
s = append(s, esc(p.ranges[i][1])...)
}
s = append(s, ']')
return string(s)
}