diff options
author | Ted Kornish <tkornish@tableau.com> | 2018-03-01 11:31:29 -0800 |
---|---|---|
committer | Ted Kornish <tkornish@tableau.com> | 2018-03-01 11:31:45 -0800 |
commit | c43616cf3afe84ba8f0e0f1a1fdaf4c425e51d37 (patch) | |
tree | 2fe3930bc78b1d3061277670d08f556537a28ecb | |
parent | 161cb77e537b14c0a460a072a360844391a9cde6 (diff) |
Don't parse hyphens in Chars() unless escaped
-rw-r--r-- | parser.go | 2 | ||||
-rw-r--r-- | parser_test.go | 2 |
2 files changed, 3 insertions, 1 deletions
@@ -181,6 +181,8 @@ func parseMatcher(matcher string) (alphabet string, ranges [][]rune) { } } else if i+1 < len(runes) && runes[i] == '\\' { alphabet += string(runes[i+1]) + } else if runes[i] == '-' { + continue } else { alphabet += string(runes[i]) } diff --git a/parser_test.go b/parser_test.go index b2e698c..2fdaafe 100644 --- a/parser_test.go +++ b/parser_test.go @@ -114,7 +114,7 @@ func TestChars(t *testing.T) { t.Run("unescaped hyphen", func(t *testing.T) { node, ps := runParser("19-", Chars("0-9")) 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()) }) |