aboutsummaryrefslogtreecommitdiff
path: root/driver/lexer_test.go
diff options
context:
space:
mode:
authorRyo Nihei <nihei.dev@gmail.com>2021-12-15 21:17:48 +0900
committerRyo Nihei <nihei.dev@gmail.com>2021-12-15 22:35:54 +0900
commitfc349551e39d4b1203a3743a76ac953686d49e07 (patch)
tree19507233ddad5ef6ef5b7c1c8f178c0fb6dfc10a /driver/lexer_test.go
parentUpdate CHANGELOG (diff)
downloadtre-fc349551e39d4b1203a3743a76ac953686d49e07.tar.gz
tre-fc349551e39d4b1203a3743a76ac953686d49e07.tar.xz
Use golangci-lint
Diffstat (limited to '')
-rw-r--r--driver/lexer_test.go20
1 files changed, 18 insertions, 2 deletions
diff --git a/driver/lexer_test.go b/driver/lexer_test.go
index e0b82b1..9e5148c 100644
--- a/driver/lexer_test.go
+++ b/driver/lexer_test.go
@@ -72,9 +72,9 @@ func newEOFTokenDefault() *Token {
return newEOFToken(ModeID(spec.LexModeIDDefault.Int()), spec.LexModeNameDefault.String())
}
-func newInvalidToken(modeID ModeID, lexeme []byte) *Token {
+func newInvalidTokenDefault(lexeme []byte) *Token {
return &Token{
- ModeID: modeID,
+ ModeID: ModeID(spec.LexModeIDDefault.Int()),
ModeKindID: 0,
Lexeme: lexeme,
Invalid: true,
@@ -772,6 +772,22 @@ func TestLexer_Next(t *testing.T) {
newEOFTokenDefault(),
},
},
+ // The driver can continue lexical analysis even after it detects an invalid token.
+ {
+ lspec: &spec.LexSpec{
+ Name: "test",
+ Entries: []*spec.LexEntry{
+ newLexEntryDefaultNOP("lower", `[a-z]+`),
+ },
+ },
+ src: `foo123bar`,
+ tokens: []*Token{
+ newTokenDefault(1, 1, []byte(`foo`)),
+ newInvalidTokenDefault([]byte(`123`)),
+ newTokenDefault(1, 1, []byte(`bar`)),
+ newEOFTokenDefault(),
+ },
+ },
}
for i, tt := range test {
for compLv := compiler.CompressionLevelMin; compLv <= compiler.CompressionLevelMax; compLv++ {