diff options
author | Ryo Nihei <nihei.dev@gmail.com> | 2021-04-17 16:14:58 +0900 |
---|---|---|
committer | Ryo Nihei <nihei.dev@gmail.com> | 2021-04-17 18:18:05 +0900 |
commit | 210a76a5aa0e62f8ab48a94e3c5b5212b5da08fa (patch) | |
tree | 9960191561bc70fa04bca108a3b94a4fe09621c4 /driver/lexer_test.go | |
parent | Increase the maximum number of symbol positions per pattern (diff) | |
download | tre-210a76a5aa0e62f8ab48a94e3c5b5212b5da08fa.tar.gz tre-210a76a5aa0e62f8ab48a94e3c5b5212b5da08fa.tar.xz |
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
Diffstat (limited to 'driver/lexer_test.go')
-rw-r--r-- | driver/lexer_test.go | 39 |
1 files changed, 21 insertions, 18 deletions
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 + } } - } + }) } } |