diff options
author | Adam Scarr <adam@vektah.net> | 2017-08-10 21:58:14 +1000 |
---|---|---|
committer | Adam Scarr <adam@vektah.net> | 2017-08-10 22:01:06 +1000 |
commit | a0e66b1c46ec57218f8a95a21ace7cbbceb29ec2 (patch) | |
tree | 630056d07ca6b44f7a747b7872ba422c6c301d85 /combinator_test.go | |
parent | af542eff9e1e51561a9efa37685ee07b1d01b53e (diff) |
Document cuts
Diffstat (limited to 'combinator_test.go')
-rw-r--r-- | combinator_test.go | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/combinator_test.go b/combinator_test.go index 5ac227f..acf0e84 100644 --- a/combinator_test.go +++ b/combinator_test.go @@ -163,12 +163,23 @@ func TestBind(t *testing.T) { } func TestCut(t *testing.T) { - // does backtracking happen anywhere else? t.Run("test any", func(t *testing.T) { _, ps := runParser("var world", Any(Seq("var", Cut, "hello"), "var world")) require.Equal(t, "offset 4: expected hello", ps.Error.Error()) require.Equal(t, 0, ps.Pos) }) + + t.Run("test many", func(t *testing.T) { + _, ps := runParser("hello <world", Many(Any(Seq("<", Cut, Chars("a-z"), ">"), Chars("a-z")))) + require.Equal(t, "offset 12: expected >", ps.Error.Error()) + require.Equal(t, 0, ps.Pos) + }) + + t.Run("test maybe", func(t *testing.T) { + _, ps := runParser("var", Maybe(Seq("var", Cut, "hello"))) + require.Equal(t, "offset 3: expected hello", ps.Error.Error()) + require.Equal(t, 0, ps.Pos) + }) } func TestMerge(t *testing.T) { |