aboutsummaryrefslogtreecommitdiff
path: root/compiler/parser_test.go
diff options
context:
space:
mode:
authorRyo Nihei <nihei.dev@gmail.com>2021-02-24 23:05:54 +0900
committerRyo Nihei <nihei.dev@gmail.com>2021-02-25 00:39:23 +0900
commit0d4795245765669f4c7aa033e988833d5f78c9a3 (patch)
treed6d50edfb57a19b1a4664edc583d9a2f2db12dd4 /compiler/parser_test.go
parentAdd range expression (diff)
downloadtre-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.go31
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)
}