From 6a72cc9f128c39ba5c9c339bac1c123cf75c3be2 Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Tue, 4 Oct 2022 16:47:32 -0400 Subject: [PATCH] Some test case fixes for the lexer --- lexer/lexer_test.go | 22 ++++++++++++++++------ lexer/text.go | 2 -- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/lexer/lexer_test.go b/lexer/lexer_test.go index 95dda44..71b8126 100644 --- a/lexer/lexer_test.go +++ b/lexer/lexer_test.go @@ -73,7 +73,7 @@ func compareErr ( correctWidth int, test *testing.T, ) { - test.Log("testing errors in", filePath) + test.Log("testing error in", filePath) file, err := file.Open(filePath) if err != nil { test.Log(err) @@ -82,11 +82,17 @@ func compareErr ( } _, err = Tokenize(file) - check, _ := err.(infoerr.Error) + check, isCorrectType := err.(infoerr.Error) test.Log("error that was recieved:") test.Log(check) + if !isCorrectType { + test.Log("error is not infoerr.Error, something has gone wrong.") + test.Fail() + return + } + if check.Kind() != correctKind { test.Log("mismatched error kind") test.Log("- want:", correctKind) @@ -215,7 +221,7 @@ func TestTokenizeNumbers (test *testing.T) { func TestTokenizeText (test *testing.T) { checkTokenSlice("../tests/lexer/text.arf", test, - quickToken(34, TokenKindString, "hello world!\a\b\f\n\r\t\v'\\"), + quickToken(32, TokenKindString, "hello world!\a\b\f\n\r\t\v'\\"), quickToken(1, TokenKindNewline, nil), quickToken(4, TokenKindString, "\a"), quickToken(4, TokenKindString, "\b"), @@ -250,21 +256,25 @@ func TestTokenizeIndent (test *testing.T) { ) } -func TestTokenizeErr (test *testing.T) { +func TestTokenizeErrUnexpectedSymbol (test *testing.T) { compareErr ( "../tests/lexer/error/unexpectedSymbol.arf", infoerr.ErrorKindError, "unexpected symbol character ;", 1, 5, 1, test) - +} + +func TestTokenizeErrExcessDataRune (test *testing.T) { compareErr ( "../tests/lexer/error/excessDataRune.arf", infoerr.ErrorKindError, "excess data in rune literal", 1, 1, 7, test) - +} + +func TestTokenizeErrUnknownEscape (test *testing.T) { compareErr ( "../tests/lexer/error/unknownEscape.arf", infoerr.ErrorKindError, diff --git a/lexer/text.go b/lexer/text.go index 8d68d50..01fb57b 100644 --- a/lexer/text.go +++ b/lexer/text.go @@ -12,7 +12,6 @@ func (lexer *LexingOperation) tokenizeString () (err error) { got := "" tokenWidth := 2 - beginning := lexer.file.Location(1) for { if lexer.char == '\\' { err = lexer.nextRune() @@ -40,7 +39,6 @@ func (lexer *LexingOperation) tokenizeString () (err error) { err = lexer.nextRune() if err != nil { return } - beginning.SetWidth(len(got)) token.kind = TokenKindString token.value = got