From 210a76a5aa0e62f8ab48a94e3c5b5212b5da08fa Mon Sep 17 00:00:00 2001 From: Ryo Nihei Date: Sat, 17 Apr 2021 16:14:58 +0900 Subject: Change the lexical specs of regexp and define concrete syntax error values * Make the lexer treat ']' as an ordinary character in default mode * Define values of the syntax error type that represents error information concretely --- driver/lexer_test.go | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) (limited to 'driver/lexer_test.go') diff --git a/driver/lexer_test.go b/driver/lexer_test.go index e48c12f..1f3841b 100644 --- a/driver/lexer_test.go +++ b/driver/lexer_test.go @@ -2,6 +2,7 @@ package driver import ( "bytes" + "fmt" "strings" "testing" @@ -409,27 +410,29 @@ func TestLexer_Next(t *testing.T) { }, }, } - for _, tt := range test { - clspec, err := compiler.Compile(tt.lspec) - if err != nil { - t.Fatalf("unexpected error occurred: %v", err) - } - lexer, err := NewLexer(clspec, strings.NewReader(tt.src)) - if err != nil { - t.Fatalf("unexpecated error occurred; %v", err) - } - for _, eTok := range tt.tokens { - tok, err := lexer.Next() + for i, tt := range test { + t.Run(fmt.Sprintf("#%v", i), func(t *testing.T) { + clspec, err := compiler.Compile(tt.lspec) + if err != nil { + t.Fatalf("unexpected error occurred: %v", err) + } + lexer, err := NewLexer(clspec, strings.NewReader(tt.src)) if err != nil { - t.Log(err) - break + t.Fatalf("unexpecated error occurred; %v", err) } - testToken(t, eTok, tok) - // t.Logf("token: ID: %v, Match: %+v Text: \"%v\", EOF: %v, Invalid: %v", tok.ID, tok.Match, string(tok.Match), tok.EOF, tok.Invalid) - if tok.EOF { - break + for _, eTok := range tt.tokens { + tok, err := lexer.Next() + if err != nil { + t.Log(err) + break + } + testToken(t, eTok, tok) + // t.Logf("token: ID: %v, Match: %+v Text: \"%v\", EOF: %v, Invalid: %v", tok.ID, tok.Match, string(tok.Match), tok.EOF, tok.Invalid) + if tok.EOF { + break + } } - } + }) } } -- cgit v1.2.3