Don't parse hyphens in Chars() unless escaped

This commit is contained in:
Ted Kornish 2018-03-01 11:31:29 -08:00
parent 161cb77e53
commit c43616cf3a
2 changed files with 3 additions and 1 deletions

View File

@ -181,6 +181,8 @@ func parseMatcher(matcher string) (alphabet string, ranges [][]rune) {
} }
} else if i+1 < len(runes) && runes[i] == '\\' { } else if i+1 < len(runes) && runes[i] == '\\' {
alphabet += string(runes[i+1]) alphabet += string(runes[i+1])
} else if runes[i] == '-' {
continue
} else { } else {
alphabet += string(runes[i]) alphabet += string(runes[i])
} }

View File

@ -114,7 +114,7 @@ func TestChars(t *testing.T) {
t.Run("unescaped hyphen", func(t *testing.T) { t.Run("unescaped hyphen", func(t *testing.T) {
node, ps := runParser("19-", Chars("0-9")) node, ps := runParser("19-", Chars("0-9"))
require.Equal(t, "19", node.Token) require.Equal(t, "19", node.Token)
require.Equal(t, 2, ps.Pos) require.Equal(t, "-", ps.Get()) // hyphen shouldn't have been parsed
require.False(t, ps.Errored()) require.False(t, ps.Errored())
}) })