From 90331573a642f1e7e6f3758f1eab8628793bb8f4 Mon Sep 17 00:00:00 2001 From: Ryo Nihei Date: Sat, 6 Aug 2022 18:34:40 +0900 Subject: Remove underscore syntax matching any symbol Underscore syntax: For instance, a tree `(expr (id 'a') (add '+') (_))` matches both source codes `a + b * c` and `a - b / c`. This feature is helpful because it allows you to emphasize the main points of the test by ignoring nodes of no interest. However, we will remove the feature for the time being to reconsider the grammar. --- spec/test/parser_test.go | 52 ++---------------------------------------------- 1 file changed, 2 insertions(+), 50 deletions(-) (limited to 'spec/test/parser_test.go') diff --git a/spec/test/parser_test.go b/spec/test/parser_test.go index cbf96c0..a12c858 100644 --- a/spec/test/parser_test.go +++ b/spec/test/parser_test.go @@ -74,26 +74,6 @@ func TestDiffTree(t *testing.T) { ), ), }, - { - t1: NewNonTerminalTree("_"), - t2: NewNonTerminalTree("a"), - }, - { - t1: NewNonTerminalTree("a", - NewNonTerminalTree("_"), - ), - t2: NewNonTerminalTree("a", - NewNonTerminalTree("b"), - ), - }, - { - t1: NewNonTerminalTree("_", - NewNonTerminalTree("b"), - ), - t2: NewNonTerminalTree("a", - NewNonTerminalTree("b"), - ), - }, { t1: NewNonTerminalTree("a"), t2: NewNonTerminalTree("b"), @@ -159,35 +139,6 @@ func TestDiffTree(t *testing.T) { ), different: true, }, - { - t1: NewNonTerminalTree("a", - NewNonTerminalTree("_"), - NewNonTerminalTree("c"), - ), - t2: NewNonTerminalTree("a", - NewNonTerminalTree("b"), - NewNonTerminalTree("x"), - ), - different: true, - }, - { - t1: NewNonTerminalTree("_"), - t2: NewNonTerminalTree("a", - NewNonTerminalTree("b"), - ), - different: true, - }, - { - t1: NewNonTerminalTree("a", - NewNonTerminalTree("_"), - ), - t2: NewNonTerminalTree("a", - NewNonTerminalTree("b", - NewNonTerminalTree("c"), - ), - ), - different: true, - }, } for i, tt := range tests { t.Run(fmt.Sprintf("#%v", i), func(t *testing.T) { @@ -398,12 +349,13 @@ foo x `, parseErr: true, }, + // The error node cannot have another node. { src: `test ---- foo x ---- -(foo (error (_ (x 'x')))) +(foo (error (a))) `, parseErr: true, }, -- cgit v1.2.3