aboutsummaryrefslogtreecommitdiff
path: root/driver/lexer_test.go
diff options
context:
space:
mode:
authorRyo Nihei <nihei.dev@gmail.com>2021-04-17 16:14:58 +0900
committerRyo Nihei <nihei.dev@gmail.com>2021-04-17 18:18:05 +0900
commit210a76a5aa0e62f8ab48a94e3c5b5212b5da08fa (patch)
tree9960191561bc70fa04bca108a3b94a4fe09621c4 /driver/lexer_test.go
parentIncrease the maximum number of symbol positions per pattern (diff)
downloadtre-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.go39
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
+ }
}
- }
+ })
}
}