From 3565aad630864ecdbe53fdaa501ea708555b3c7c Mon Sep 17 00:00:00 2001 From: Unit 193 Date: Sun, 30 Apr 2023 18:30:36 -0400 Subject: New upstream version 3.4.4+dfsg. --- SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp') diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp index bf5185b..8660583 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/lexer.cpp @@ -1,6 +1,5 @@ #include "lexer.h" #include "keywords.h" -#include "log.h" #include "lexer_low_lev.h" #include "sqlite3_parse.h" #include "common/utils_sql.h" @@ -26,6 +25,7 @@ TokenList Lexer::process(const QString &sql) { TokenList resultList; int lgt; + TokenPtr prevToken; TokenPtr token; QString str = sql; @@ -37,7 +37,7 @@ TokenList Lexer::process(const QString &sql) else token = TokenPtr::create(); - lgt = lexerGetToken(str, token, 3, tolerant); + lgt = lexerGetToken(str, token, prevToken, 3, tolerant); if (lgt == 0) break; @@ -48,6 +48,8 @@ TokenList Lexer::process(const QString &sql) resultList << token; str = str.mid(lgt); pos += lgt; + if (!token->isWhitespace()) + prevToken = token; } return resultList; @@ -70,7 +72,7 @@ TokenPtr Lexer::getToken() else token = TokenPtr::create(); - int lgt = lexerGetToken(sqlToTokenize, token, 3, tolerant); + int lgt = lexerGetToken(sqlToTokenize, token, prevTokenProcessed, 3, tolerant); if (lgt == 0) return TokenPtr(); @@ -80,6 +82,8 @@ TokenPtr Lexer::getToken() sqlToTokenize = sqlToTokenize.mid(lgt); tokenPosition += lgt; + if (!token->isWhitespace()) + prevTokenProcessed = token; return token; } @@ -190,6 +194,7 @@ void Lexer::staticInit() createTokenType(TK3_ID_TRIG, Token::CTX_TRIGGER, ""); createTokenType(TK3_ID_TRIG_NEW, Token::CTX_TRIGGER_NEW, ""); createTokenType(TK3_CTX_ROWID_KW, Token::CTX_ROWID_KW, "ROWID"); + createTokenType(TK3_CTX_STRICT_KW, Token::CTX_STRICT_KW, "STRICT"); createTokenType(TK3_ID, Token::CTX_OLD_KW, "OLD"); createTokenType(TK3_ID, Token::CTX_NEW_KW, "NEW"); -- cgit v1.2.3