diff options
author | Ryo Nihei <nihei.dev@gmail.com> | 2021-02-24 23:05:54 +0900 |
---|---|---|
committer | Ryo Nihei <nihei.dev@gmail.com> | 2021-02-25 00:39:23 +0900 |
commit | 0d4795245765669f4c7aa033e988833d5f78c9a3 (patch) | |
tree | d6d50edfb57a19b1a4664edc583d9a2f2db12dd4 /compiler/parser_test.go | |
parent | Add range expression (diff) | |
download | tre-0d4795245765669f4c7aa033e988833d5f78c9a3.tar.gz tre-0d4795245765669f4c7aa033e988833d5f78c9a3.tar.xz |
Refactoring
* Remove token field from symbolNode
* Simplify notation of nested nodes
* Simplify arguments of newSymbolNode()
Diffstat (limited to 'compiler/parser_test.go')
-rw-r--r-- | compiler/parser_test.go | 31 |
1 files changed, 9 insertions, 22 deletions
diff --git a/compiler/parser_test.go b/compiler/parser_test.go index d96cb4d..5c2d813 100644 --- a/compiler/parser_test.go +++ b/compiler/parser_test.go @@ -45,10 +45,6 @@ func printAST(w io.Writer, ast astNode, ruledLine string, childRuledLinePrefix s } func TestParser(t *testing.T) { - newCharTok := func(char rune) *token { - return newToken(tokenKindChar, char) - } - rune2Byte := func(char rune, index int) byte { return []byte(string(char))[index] } @@ -73,23 +69,17 @@ func TestParser(t *testing.T) { printAST(os.Stdout, root, "", "", false) { - expectedAST := newConcatNode( - newConcatNode( - newConcatNode( - newConcatNode( - newRepeatNode( - newAltNode( - newSymbolNode(newCharTok('a'), rune2Byte('a', 0), symPos(1)), - newSymbolNode(newCharTok('b'), rune2Byte('b', 0), symPos(2)), - ), - ), - newSymbolNode(newCharTok('a'), rune2Byte('a', 0), symPos(3)), - ), - newSymbolNode(newCharTok('b'), rune2Byte('b', 0), symPos(4)), + expectedAST := genConcatNode( + newRepeatNode( + newAltNode( + newSymbolNodeWithPos(rune2Byte('a', 0), symPos(1)), + newSymbolNodeWithPos(rune2Byte('b', 0), symPos(2)), ), - newSymbolNode(newCharTok('b'), rune2Byte('b', 0), symPos(5)), ), - newEndMarkerNode(1, endPos(6)), + newSymbolNodeWithPos(rune2Byte('a', 0), symPos(3)), + newSymbolNodeWithPos(rune2Byte('b', 0), symPos(4)), + newSymbolNodeWithPos(rune2Byte('b', 0), symPos(5)), + newEndMarkerNodeWithPos(1, endPos(6)), ) testAST(t, expectedAST, root) } @@ -149,9 +139,6 @@ func testAST(t *testing.T, expected, actual astNode) { switch e := expected.(type) { case *symbolNode: a := actual.(*symbolNode) - if a.token.char != e.token.char { - t.Fatalf("character is mismatched; want: '%v' (%v), got: '%v' (%v)", string(e.token.char), e.token.char, string(a.token.char), a.token.char) - } if a.pos != e.pos { t.Fatalf("symbol position is mismatched; want: %v, got: %v", e.pos, a.pos) } |