mirror of
https://github.com/sqlitebrowser/sqlitebrowser.git
synced 2026-01-20 02:50:46 -06:00
grammar: cleanup expr and fix between suffix expression
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -2,7 +2,7 @@
|
||||
#define INC_Sqlite3Lexer_hpp_
|
||||
|
||||
#include <antlr/config.hpp>
|
||||
/* $ANTLR 2.7.7 (20130425): "sqlite3.g" -> "Sqlite3Lexer.hpp"$ */
|
||||
/* $ANTLR 2.7.7 (20140222): "sqlite3.g" -> "Sqlite3Lexer.hpp"$ */
|
||||
#include <antlr/CommonToken.hpp>
|
||||
#include <antlr/InputBuffer.hpp>
|
||||
#include <antlr/BitSet.hpp>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@
|
||||
#define INC_Sqlite3Parser_hpp_
|
||||
|
||||
#include <antlr/config.hpp>
|
||||
/* $ANTLR 2.7.7 (20130425): "sqlite3.g" -> "Sqlite3Parser.hpp"$ */
|
||||
/* $ANTLR 2.7.7 (20140222): "sqlite3.g" -> "Sqlite3Parser.hpp"$ */
|
||||
#include <antlr/TokenStream.hpp>
|
||||
#include <antlr/TokenBuffer.hpp>
|
||||
#include "sqlite3TokenTypes.hpp"
|
||||
@@ -65,6 +65,8 @@ public:
|
||||
public: void caseexpr();
|
||||
public: void raisefunction();
|
||||
public: void suffixexpr();
|
||||
public: void like_operator();
|
||||
public: void between_subexpr();
|
||||
public:
|
||||
ANTLR_USE_NAMESPACE(antlr)RefAST getAST()
|
||||
{
|
||||
@@ -76,10 +78,10 @@ protected:
|
||||
private:
|
||||
static const char* tokenNames[];
|
||||
#ifndef NO_STATIC_CONSTS
|
||||
static const int NUM_TOKENS = 105;
|
||||
static const int NUM_TOKENS = 106;
|
||||
#else
|
||||
enum {
|
||||
NUM_TOKENS = 105
|
||||
NUM_TOKENS = 106
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -139,8 +141,6 @@ private:
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_26;
|
||||
static const unsigned long _tokenSet_27_data_[];
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_27;
|
||||
static const unsigned long _tokenSet_28_data_[];
|
||||
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_28;
|
||||
};
|
||||
|
||||
#endif /*INC_Sqlite3Parser_hpp_*/
|
||||
|
||||
@@ -20,6 +20,7 @@ tokens {
|
||||
ASC="ASC";
|
||||
AND="AND";
|
||||
OR="OR";
|
||||
BETWEEN="BETWEEN";
|
||||
CASCADE="CASCADE";
|
||||
CASE_T="CASE";
|
||||
CAST="CAST";
|
||||
@@ -396,8 +397,7 @@ functionname
|
||||
|
||||
expr
|
||||
:
|
||||
( subexpr (binaryoperator | AND | OR) ) => subexpr ( ( binaryoperator | AND | OR) subexpr )*
|
||||
| subexpr
|
||||
subexpr ((binaryoperator | AND | OR) subexpr )*
|
||||
;
|
||||
|
||||
subexpr
|
||||
@@ -425,15 +425,27 @@ caseexpr
|
||||
CASE_T (expr)? (WHEN expr THEN expr)+ (ELSE_T expr)? END
|
||||
;
|
||||
|
||||
like_operator
|
||||
:
|
||||
LIKE
|
||||
| GLOB
|
||||
| REGEXP
|
||||
| MATCH
|
||||
;
|
||||
|
||||
between_subexpr
|
||||
:
|
||||
subexpr (AND subexpr)+
|
||||
;
|
||||
|
||||
suffixexpr
|
||||
:
|
||||
COLLATE collationname
|
||||
// | (NOT)?
|
||||
// ( (LIKE | GLOB | REGEXP | MATCH)
|
||||
// ( (expr ESCAPE) => ESCAPE expr | expr)
|
||||
| IN ( LPAREN (selectstmt | expr (COMMA expr)* )? RPAREN | tablename)
|
||||
// )
|
||||
|
||||
COLLATE collationname
|
||||
| (NOT)?
|
||||
( BETWEEN subexpr ((binaryoperator | OR) subexpr )* AND expr
|
||||
| IN ( LPAREN (selectstmt | expr (COMMA expr)* )? RPAREN | tablename)
|
||||
| like_operator subexpr (ESCAPE subexpr)?
|
||||
)
|
||||
;
|
||||
|
||||
literalvalue
|
||||
@@ -458,6 +470,6 @@ binaryoperator
|
||||
| BITWISELEFT | BITWISERIGHT | AMPERSAND | BITOR
|
||||
| LOWER | LOWEREQUAL | GREATER | GREATEREQUAL
|
||||
| EQUAL | EQUAL2 | UNEQUAL | UNEQUAL2
|
||||
| IS | ((NOT)? (LIKE | GLOB | MATCH | REGEXP | IN))
|
||||
| IS | like_operator
|
||||
;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef INC_sqlite3TokenTypes_hpp_
|
||||
#define INC_sqlite3TokenTypes_hpp_
|
||||
|
||||
/* $ANTLR 2.7.7 (20130425): "sqlite3.g" -> "sqlite3TokenTypes.hpp"$ */
|
||||
/* $ANTLR 2.7.7 (20140222): "sqlite3.g" -> "sqlite3TokenTypes.hpp"$ */
|
||||
|
||||
#ifndef CUSTOM_API
|
||||
# define CUSTOM_API
|
||||
@@ -19,100 +19,101 @@ struct CUSTOM_API sqlite3TokenTypes {
|
||||
ASC = 8,
|
||||
AND = 9,
|
||||
OR = 10,
|
||||
CASCADE = 11,
|
||||
CASE_T = 12,
|
||||
CAST = 13,
|
||||
CHECK = 14,
|
||||
CREATE = 15,
|
||||
COLLATE = 16,
|
||||
CONFLICT = 17,
|
||||
CONSTRAINT = 18,
|
||||
CURRENT_TIME = 19,
|
||||
CURRENT_DATE = 20,
|
||||
CURRENT_TIMESTAMP = 21,
|
||||
DEFAULT = 22,
|
||||
DEFERRABLE = 23,
|
||||
DEFERRED = 24,
|
||||
DELETE = 25,
|
||||
DESC = 26,
|
||||
ELSE_T = 27,
|
||||
END = 28,
|
||||
ESCAPE = 29,
|
||||
FAIL = 30,
|
||||
FOREIGN = 31,
|
||||
GLOB = 32,
|
||||
KEY = 33,
|
||||
LIKE = 34,
|
||||
TABLE = 35,
|
||||
IF_T = 36,
|
||||
IGNORE = 37,
|
||||
IN = 38,
|
||||
INITIALLY = 39,
|
||||
IMMEDIATE = 40,
|
||||
IS = 41,
|
||||
NOT = 42,
|
||||
NULL_T = 43,
|
||||
MATCH = 44,
|
||||
EXISTS = 45,
|
||||
ON = 46,
|
||||
PRIMARY = 47,
|
||||
RAISE = 48,
|
||||
REFERENCES = 49,
|
||||
REGEXP = 50,
|
||||
REPLACE = 51,
|
||||
RESTRICT = 52,
|
||||
ROLLBACK = 53,
|
||||
ROWID = 54,
|
||||
SET = 55,
|
||||
TEMPORARY = 56,
|
||||
TEMP = 57,
|
||||
THEN = 58,
|
||||
UNIQUE = 59,
|
||||
UPDATE = 60,
|
||||
WHEN = 61,
|
||||
WITHOUT = 62,
|
||||
TYPE_NAME = 63,
|
||||
COLUMNDEF = 64,
|
||||
COLUMNCONSTRAINT = 65,
|
||||
TABLECONSTRAINT = 66,
|
||||
CREATETABLE = 67,
|
||||
KEYWORDASTABLENAME = 68,
|
||||
KEYWORDASCOLUMNNAME = 69,
|
||||
DIGIT = 70,
|
||||
DOT = 71,
|
||||
ID = 72,
|
||||
QUOTEDID = 73,
|
||||
QUOTEDLITERAL = 74,
|
||||
NUMERIC = 75,
|
||||
NL = 76,
|
||||
COMMENT = 77,
|
||||
WS = 78,
|
||||
STRINGLITERAL = 79,
|
||||
LPAREN = 80,
|
||||
RPAREN = 81,
|
||||
COMMA = 82,
|
||||
SEMI = 83,
|
||||
PLUS = 84,
|
||||
MINUS = 85,
|
||||
STAR = 86,
|
||||
TILDE = 87,
|
||||
AMPERSAND = 88,
|
||||
BITOR = 89,
|
||||
OROP = 90,
|
||||
EQUAL = 91,
|
||||
EQUAL2 = 92,
|
||||
GREATER = 93,
|
||||
GREATEREQUAL = 94,
|
||||
LOWER = 95,
|
||||
LOWEREQUAL = 96,
|
||||
UNEQUAL = 97,
|
||||
UNEQUAL2 = 98,
|
||||
BITWISELEFT = 99,
|
||||
BITWISERIGHT = 100,
|
||||
NO = 101,
|
||||
SELECT = 102,
|
||||
SLASH = 103,
|
||||
PERCENT = 104,
|
||||
BETWEEN = 11,
|
||||
CASCADE = 12,
|
||||
CASE_T = 13,
|
||||
CAST = 14,
|
||||
CHECK = 15,
|
||||
CREATE = 16,
|
||||
COLLATE = 17,
|
||||
CONFLICT = 18,
|
||||
CONSTRAINT = 19,
|
||||
CURRENT_TIME = 20,
|
||||
CURRENT_DATE = 21,
|
||||
CURRENT_TIMESTAMP = 22,
|
||||
DEFAULT = 23,
|
||||
DEFERRABLE = 24,
|
||||
DEFERRED = 25,
|
||||
DELETE = 26,
|
||||
DESC = 27,
|
||||
ELSE_T = 28,
|
||||
END = 29,
|
||||
ESCAPE = 30,
|
||||
FAIL = 31,
|
||||
FOREIGN = 32,
|
||||
GLOB = 33,
|
||||
KEY = 34,
|
||||
LIKE = 35,
|
||||
TABLE = 36,
|
||||
IF_T = 37,
|
||||
IGNORE = 38,
|
||||
IN = 39,
|
||||
INITIALLY = 40,
|
||||
IMMEDIATE = 41,
|
||||
IS = 42,
|
||||
NOT = 43,
|
||||
NULL_T = 44,
|
||||
MATCH = 45,
|
||||
EXISTS = 46,
|
||||
ON = 47,
|
||||
PRIMARY = 48,
|
||||
RAISE = 49,
|
||||
REFERENCES = 50,
|
||||
REGEXP = 51,
|
||||
REPLACE = 52,
|
||||
RESTRICT = 53,
|
||||
ROLLBACK = 54,
|
||||
ROWID = 55,
|
||||
SET = 56,
|
||||
TEMPORARY = 57,
|
||||
TEMP = 58,
|
||||
THEN = 59,
|
||||
UNIQUE = 60,
|
||||
UPDATE = 61,
|
||||
WHEN = 62,
|
||||
WITHOUT = 63,
|
||||
TYPE_NAME = 64,
|
||||
COLUMNDEF = 65,
|
||||
COLUMNCONSTRAINT = 66,
|
||||
TABLECONSTRAINT = 67,
|
||||
CREATETABLE = 68,
|
||||
KEYWORDASTABLENAME = 69,
|
||||
KEYWORDASCOLUMNNAME = 70,
|
||||
DIGIT = 71,
|
||||
DOT = 72,
|
||||
ID = 73,
|
||||
QUOTEDID = 74,
|
||||
QUOTEDLITERAL = 75,
|
||||
NUMERIC = 76,
|
||||
NL = 77,
|
||||
COMMENT = 78,
|
||||
WS = 79,
|
||||
STRINGLITERAL = 80,
|
||||
LPAREN = 81,
|
||||
RPAREN = 82,
|
||||
COMMA = 83,
|
||||
SEMI = 84,
|
||||
PLUS = 85,
|
||||
MINUS = 86,
|
||||
STAR = 87,
|
||||
TILDE = 88,
|
||||
AMPERSAND = 89,
|
||||
BITOR = 90,
|
||||
OROP = 91,
|
||||
EQUAL = 92,
|
||||
EQUAL2 = 93,
|
||||
GREATER = 94,
|
||||
GREATEREQUAL = 95,
|
||||
LOWER = 96,
|
||||
LOWEREQUAL = 97,
|
||||
UNEQUAL = 98,
|
||||
UNEQUAL2 = 99,
|
||||
BITWISELEFT = 100,
|
||||
BITWISERIGHT = 101,
|
||||
NO = 102,
|
||||
SELECT = 103,
|
||||
SLASH = 104,
|
||||
PERCENT = 105,
|
||||
NULL_TREE_LOOKAHEAD = 3
|
||||
};
|
||||
#ifdef __cplusplus
|
||||
|
||||
Reference in New Issue
Block a user