Grammar: Support table names in single quotes

Don't fail when parsing a CREATE statement like this:
CREATE TABLE 'test' (id INT);
This commit is contained in:
Martin Kleusberg
2013-06-23 22:16:13 +02:00
parent a6c30fea0a
commit ed04128a74
7 changed files with 125 additions and 105 deletions

View File

@@ -1,4 +1,4 @@
/* $ANTLR 2.7.7 (20121001): "sqlite3.g" -> "Sqlite3Lexer.cpp"$ */
/* $ANTLR 2.7.7 (20130425): "sqlite3.g" -> "Sqlite3Lexer.cpp"$ */
#include "Sqlite3Lexer.hpp"
#include <antlr/CharBuffer.hpp>
#include <antlr/TokenStreamException.hpp>
@@ -127,14 +127,6 @@ ANTLR_USE_NAMESPACE(antlr)RefToken Sqlite3Lexer::nextToken()
theRetToken=_returnToken;
break;
}
case 0x22 /* '\"' */ :
case 0x5b /* '[' */ :
case 0x60 /* '`' */ :
{
mQUOTEDID(true);
theRetToken=_returnToken;
break;
}
case 0x2e /* '.' */ :
case 0x30 /* '0' */ :
case 0x31 /* '1' */ :
@@ -167,12 +159,6 @@ ANTLR_USE_NAMESPACE(antlr)RefToken Sqlite3Lexer::nextToken()
theRetToken=_returnToken;
break;
}
case 0x27 /* '\'' */ :
{
mSTRINGLITERAL(true);
theRetToken=_returnToken;
break;
}
case 0x28 /* '(' */ :
{
mLPAREN(true);
@@ -222,10 +208,18 @@ ANTLR_USE_NAMESPACE(antlr)RefToken Sqlite3Lexer::nextToken()
break;
}
default:
if ((LA(1) == 0x2d /* '-' */ || LA(1) == 0x2f /* '/' */ ) && (LA(2) == 0x2a /* '*' */ || LA(2) == 0x2d /* '-' */ )) {
if ((_tokenSet_0.member(LA(1))) && ((LA(2) >= 0x0 /* '\0' */ && LA(2) <= 0x7f))) {
mQUOTEDID(true);
theRetToken=_returnToken;
}
else if ((LA(1) == 0x2d /* '-' */ || LA(1) == 0x2f /* '/' */ ) && (LA(2) == 0x2a /* '*' */ || LA(2) == 0x2d /* '-' */ )) {
mCOMMENT(true);
theRetToken=_returnToken;
}
else if ((LA(1) == 0x27 /* '\'' */ ) && ((LA(2) >= 0x0 /* '\0' */ && LA(2) <= 0x7f))) {
mSTRINGLITERAL(true);
theRetToken=_returnToken;
}
else if ((LA(1) == 0x7c /* '|' */ ) && (LA(2) == 0x7c /* '|' */ )) {
mOROP(true);
theRetToken=_returnToken;
@@ -458,9 +452,9 @@ void Sqlite3Lexer::mQUOTEDID(bool _createToken) {
match('`' /* charlit */ );
{ // ( ... )*
for (;;) {
if ((_tokenSet_0.member(LA(1)))) {
if ((_tokenSet_1.member(LA(1)))) {
{
match(_tokenSet_0);
match(_tokenSet_1);
}
}
else {
@@ -478,9 +472,9 @@ void Sqlite3Lexer::mQUOTEDID(bool _createToken) {
match('[' /* charlit */ );
{ // ( ... )*
for (;;) {
if ((_tokenSet_1.member(LA(1)))) {
if ((_tokenSet_2.member(LA(1)))) {
{
match(_tokenSet_1);
match(_tokenSet_2);
}
}
else {
@@ -498,9 +492,9 @@ void Sqlite3Lexer::mQUOTEDID(bool _createToken) {
match('\"' /* charlit */ );
{ // ( ... )*
for (;;) {
if ((_tokenSet_2.member(LA(1)))) {
if ((_tokenSet_3.member(LA(1)))) {
{
match(_tokenSet_2);
match(_tokenSet_3);
}
}
else {
@@ -513,6 +507,26 @@ void Sqlite3Lexer::mQUOTEDID(bool _createToken) {
match('\"' /* charlit */ );
break;
}
case 0x27 /* '\'' */ :
{
match('\'' /* charlit */ );
{ // ( ... )*
for (;;) {
if ((_tokenSet_4.member(LA(1)))) {
{
match(_tokenSet_4);
}
}
else {
goto _loop19;
}
}
_loop19:;
} // ( ... )*
match('\'' /* charlit */ );
break;
}
default:
{
throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());
@@ -545,18 +559,18 @@ void Sqlite3Lexer::mNUMERIC(bool _createToken) {
case 0x39 /* '9' */ :
{
{ // ( ... )+
int _cnt20=0;
int _cnt23=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt20>=1 ) { goto _loop20; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
if ( _cnt23>=1 ) { goto _loop23; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt20++;
_cnt23++;
}
_loop20:;
_loop23:;
} // ( ... )+
{
if ((LA(1) == 0x2e /* '.' */ )) {
@@ -567,11 +581,11 @@ void Sqlite3Lexer::mNUMERIC(bool _createToken) {
mDIGIT(false);
}
else {
goto _loop23;
goto _loop26;
}
}
_loop23:;
_loop26:;
} // ( ... )*
}
else {
@@ -585,18 +599,18 @@ void Sqlite3Lexer::mNUMERIC(bool _createToken) {
match('.' /* charlit */ );
_ttype=DOT;
{ // ( ... )+
int _cnt25=0;
int _cnt28=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt25>=1 ) { goto _loop25; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
if ( _cnt28>=1 ) { goto _loop28; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt25++;
_cnt28++;
}
_loop25:;
_loop28:;
} // ( ... )+
break;
}
@@ -641,18 +655,18 @@ void Sqlite3Lexer::mNUMERIC(bool _createToken) {
}
}
{ // ( ... )+
int _cnt29=0;
int _cnt32=0;
for (;;) {
if (((LA(1) >= 0x30 /* '0' */ && LA(1) <= 0x39 /* '9' */ ))) {
mDIGIT(false);
}
else {
if ( _cnt29>=1 ) { goto _loop29; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
if ( _cnt32>=1 ) { goto _loop32; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltForCharException(LA(1), getFilename(), getLine(), getColumn());}
}
_cnt29++;
_cnt32++;
}
_loop29:;
_loop32:;
} // ( ... )+
}
else {
@@ -739,17 +753,17 @@ void Sqlite3Lexer::mCOMMENT(bool _createToken) {
match("--");
{ // ( ... )*
for (;;) {
if ((_tokenSet_3.member(LA(1)))) {
if ((_tokenSet_5.member(LA(1)))) {
{
match(_tokenSet_3);
match(_tokenSet_5);
}
}
else {
goto _loop36;
goto _loop39;
}
}
_loop36:;
_loop39:;
} // ( ... )*
mNL(false);
newline();
@@ -761,10 +775,10 @@ void Sqlite3Lexer::mCOMMENT(bool _createToken) {
{ // ( ... )*
for (;;) {
// nongreedy exit test
if ((LA(1) == 0x2a /* '*' */ ) && (LA(2) == 0x2f /* '/' */ )) goto _loop39;
if ((_tokenSet_3.member(LA(1))) && ((LA(2) >= 0x0 /* '\0' */ && LA(2) <= 0x7f))) {
if ((LA(1) == 0x2a /* '*' */ ) && (LA(2) == 0x2f /* '/' */ )) goto _loop42;
if ((_tokenSet_5.member(LA(1))) && ((LA(2) >= 0x0 /* '\0' */ && LA(2) <= 0x7f))) {
{
match(_tokenSet_3);
match(_tokenSet_5);
}
}
else if ((LA(1) == 0xa /* '\n' */ || LA(1) == 0xd /* '\r' */ )) {
@@ -772,11 +786,11 @@ void Sqlite3Lexer::mCOMMENT(bool _createToken) {
newline();
}
else {
goto _loop39;
goto _loop42;
}
}
_loop39:;
_loop42:;
} // ( ... )*
match("*/");
break;
@@ -853,11 +867,11 @@ void Sqlite3Lexer::mSTRINGLITERAL(bool _createToken) {
}
}
else {
goto _loop45;
goto _loop48;
}
}
_loop45:;
_loop48:;
} // ( ... )*
match('\'' /* charlit */ );
if ( _createToken && _token==ANTLR_USE_NAMESPACE(antlr)nullToken && _ttype!=ANTLR_USE_NAMESPACE(antlr)Token::SKIP ) {
@@ -1135,32 +1149,29 @@ void Sqlite3Lexer::mBITWISERIGHT(bool _createToken) {
}
const unsigned long Sqlite3Lexer::_tokenSet_0_data_[] = { 4294967295UL, 4294967295UL, 4294967295UL, 4294967294UL, 0UL, 0UL, 0UL, 0UL };
const unsigned long Sqlite3Lexer::_tokenSet_0_data_[] = { 0UL, 132UL, 134217728UL, 1UL, 0UL, 0UL, 0UL, 0UL };
// \" \' [ `
const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Lexer::_tokenSet_0(_tokenSet_0_data_,8);
const unsigned long Sqlite3Lexer::_tokenSet_1_data_[] = { 4294967295UL, 4294967295UL, 4294967295UL, 4294967294UL, 0UL, 0UL, 0UL, 0UL };
// 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10
// 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e
// 0x1f ! \" # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >
// ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ 0x5c ] ^ _
// a b c
const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Lexer::_tokenSet_0(_tokenSet_0_data_,8);
const unsigned long Sqlite3Lexer::_tokenSet_1_data_[] = { 4294967295UL, 4294967295UL, 3758096383UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL };
const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Lexer::_tokenSet_1(_tokenSet_1_data_,8);
const unsigned long Sqlite3Lexer::_tokenSet_2_data_[] = { 4294967295UL, 4294967295UL, 3758096383UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL };
// 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10
// 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e
// 0x1f ! \" # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >
// ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ 0x5c ^ _ `
// a b c
const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Lexer::_tokenSet_1(_tokenSet_1_data_,8);
const unsigned long Sqlite3Lexer::_tokenSet_2_data_[] = { 4294967295UL, 4294967291UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL };
const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Lexer::_tokenSet_2(_tokenSet_2_data_,8);
const unsigned long Sqlite3Lexer::_tokenSet_3_data_[] = { 4294967295UL, 4294967291UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL };
// 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10
// 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e
// 0x1f ! # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
// @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ 0x5c ] ^ _ `
// a b c
const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Lexer::_tokenSet_2(_tokenSet_2_data_,8);
const unsigned long Sqlite3Lexer::_tokenSet_3_data_[] = { 4294958079UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL };
// 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12
// 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f !
// \" # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B
// C D E F G H I J K L M N O P Q R S T U V W X Y Z [ 0x5c ] ^ _ ` a b c
const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Lexer::_tokenSet_3(_tokenSet_3_data_,8);
const unsigned long Sqlite3Lexer::_tokenSet_4_data_[] = { 4294967295UL, 4294967167UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL };
// 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10
@@ -1169,4 +1180,10 @@ const unsigned long Sqlite3Lexer::_tokenSet_4_data_[] = { 4294967295UL, 42949671
// @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ 0x5c ] ^ _ `
// a b c
const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Lexer::_tokenSet_4(_tokenSet_4_data_,8);
const unsigned long Sqlite3Lexer::_tokenSet_5_data_[] = { 4294958079UL, 4294967295UL, 4294967295UL, 4294967295UL, 0UL, 0UL, 0UL, 0UL };
// 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xb 0xc 0xe 0xf 0x10 0x11 0x12
// 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f !
// \" # $ % & \' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B
// C D E F G H I J K L M N O P Q R S T U V W X Y Z [ 0x5c ] ^ _ ` a b c
const ANTLR_USE_NAMESPACE(antlr)BitSet Sqlite3Lexer::_tokenSet_5(_tokenSet_5_data_,8);

View File

@@ -2,7 +2,7 @@
#define INC_Sqlite3Lexer_hpp_
#include <antlr/config.hpp>
/* $ANTLR 2.7.7 (20121001): "sqlite3.g" -> "Sqlite3Lexer.hpp"$ */
/* $ANTLR 2.7.7 (20130425): "sqlite3.g" -> "Sqlite3Lexer.hpp"$ */
#include <antlr/CommonToken.hpp>
#include <antlr/InputBuffer.hpp>
#include <antlr/BitSet.hpp>
@@ -64,6 +64,8 @@ private:
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_3;
static const unsigned long _tokenSet_4_data_[];
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_4;
static const unsigned long _tokenSet_5_data_[];
static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_5;
};
#endif /*INC_Sqlite3Lexer_hpp_*/

View File

@@ -1,4 +1,4 @@
/* $ANTLR 2.7.7 (20121001): "sqlite3.g" -> "Sqlite3Parser.cpp"$ */
/* $ANTLR 2.7.7 (20130425): "sqlite3.g" -> "Sqlite3Parser.cpp"$ */
#include "Sqlite3Parser.hpp"
#include <antlr/NoViableAltException.hpp>
#include <antlr/SemanticException.hpp>
@@ -327,11 +327,11 @@ void Sqlite3Parser::statementlist() {
}
}
else {
goto _loop80;
goto _loop83;
}
}
_loop80:;
_loop83:;
} // ( ... )*
statementlist_AST = currentAST.root;
}
@@ -487,11 +487,11 @@ void Sqlite3Parser::createtable() {
}
}
else {
goto _loop88;
goto _loop91;
}
}
_loop88:;
_loop91:;
} // ( ... )*
{ // ( ... )*
for (;;) {
@@ -508,11 +508,11 @@ void Sqlite3Parser::createtable() {
}
}
else {
goto _loop90;
goto _loop93;
}
}
_loop90:;
_loop93:;
} // ( ... )*
ANTLR_USE_NAMESPACE(antlr)RefAST tmp19_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
if ( inputState->guessing == 0 ) {
@@ -638,11 +638,11 @@ void Sqlite3Parser::columndef() {
}
}
else {
goto _loop94;
goto _loop97;
}
}
_loop94:;
_loop97:;
} // ( ... )*
if ( inputState->guessing==0 ) {
columndef_AST = ANTLR_USE_NAMESPACE(antlr)RefAST(currentAST.root);
@@ -744,11 +744,11 @@ void Sqlite3Parser::tableconstraint() {
}
}
else {
goto _loop113;
goto _loop116;
}
}
_loop113:;
_loop116:;
} // ( ... )*
ANTLR_USE_NAMESPACE(antlr)RefAST tmp26_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
if ( inputState->guessing == 0 ) {
@@ -812,11 +812,11 @@ void Sqlite3Parser::tableconstraint() {
}
}
else {
goto _loop116;
goto _loop119;
}
}
_loop116:;
_loop119:;
} // ( ... )*
ANTLR_USE_NAMESPACE(antlr)RefAST tmp30_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
if ( inputState->guessing == 0 ) {
@@ -912,11 +912,11 @@ void Sqlite3Parser::tableconstraint() {
}
}
else {
goto _loop119;
goto _loop122;
}
}
_loop119:;
_loop122:;
} // ( ... )*
ANTLR_USE_NAMESPACE(antlr)RefAST tmp38_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
if ( inputState->guessing == 0 ) {
@@ -992,7 +992,7 @@ void Sqlite3Parser::type_name() {
try { // for error handling
{ // ( ... )+
int _cnt98=0;
int _cnt101=0;
for (;;) {
if ((LA(1) == ID || LA(1) == QUOTEDID)) {
name();
@@ -1001,12 +1001,12 @@ void Sqlite3Parser::type_name() {
}
}
else {
if ( _cnt98>=1 ) { goto _loop98; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());}
if ( _cnt101>=1 ) { goto _loop101; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());}
}
_cnt98++;
_cnt101++;
}
_loop98:;
_loop101:;
} // ( ... )+
{
switch ( LA(1)) {
@@ -1589,10 +1589,10 @@ void Sqlite3Parser::expr() {
ANTLR_USE_NAMESPACE(antlr)RefAST expr_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
try { // for error handling
bool synPredMatched144 = false;
bool synPredMatched147 = false;
if (((_tokenSet_12.member(LA(1))) && (_tokenSet_13.member(LA(2))))) {
int _m144 = mark();
synPredMatched144 = true;
int _m147 = mark();
synPredMatched147 = true;
inputState->guessing++;
try {
{
@@ -1646,12 +1646,12 @@ void Sqlite3Parser::expr() {
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
synPredMatched144 = false;
synPredMatched147 = false;
}
rewind(_m144);
rewind(_m147);
inputState->guessing--;
}
if ( synPredMatched144 ) {
if ( synPredMatched147 ) {
subexpr();
if (inputState->guessing==0) {
astFactory->addASTChild( currentAST, returnAST );
@@ -1724,11 +1724,11 @@ void Sqlite3Parser::expr() {
}
}
else {
goto _loop147;
goto _loop150;
}
}
_loop147:;
_loop150:;
} // ( ... )*
expr_AST = currentAST.root;
}
@@ -1800,11 +1800,11 @@ void Sqlite3Parser::foreignkeyclause() {
}
}
else {
goto _loop126;
goto _loop129;
}
}
_loop126:;
_loop129:;
} // ( ... )*
ANTLR_USE_NAMESPACE(antlr)RefAST tmp74_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
if ( inputState->guessing == 0 ) {
@@ -1975,17 +1975,17 @@ void Sqlite3Parser::foreignkeyclause() {
}
default:
{
goto _loop131;
goto _loop134;
}
}
}
_loop131:;
_loop134:;
} // ( ... )*
{
bool synPredMatched134 = false;
bool synPredMatched137 = false;
if (((LA(1) == NOT) && (LA(2) == DEFERRABLE))) {
int _m134 = mark();
synPredMatched134 = true;
int _m137 = mark();
synPredMatched137 = true;
inputState->guessing++;
try {
{
@@ -1994,12 +1994,12 @@ void Sqlite3Parser::foreignkeyclause() {
}
}
catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& pe) {
synPredMatched134 = false;
synPredMatched137 = false;
}
rewind(_m134);
rewind(_m137);
inputState->guessing--;
}
if ( synPredMatched134 ) {
if ( synPredMatched137 ) {
ANTLR_USE_NAMESPACE(antlr)RefAST tmp86_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
if ( inputState->guessing == 0 ) {
tmp86_AST = astFactory->create(LT(1));
@@ -2461,11 +2461,11 @@ void Sqlite3Parser::subexpr() {
}
}
else {
goto _loop155;
goto _loop158;
}
}
_loop155:;
_loop158:;
} // ( ... )*
break;
}
@@ -3034,7 +3034,7 @@ void Sqlite3Parser::caseexpr() {
}
}
{ // ( ... )+
int _cnt163=0;
int _cnt166=0;
for (;;) {
if ((LA(1) == WHEN)) {
ANTLR_USE_NAMESPACE(antlr)RefAST tmp141_AST = ANTLR_USE_NAMESPACE(antlr)nullAST;
@@ -3059,12 +3059,12 @@ void Sqlite3Parser::caseexpr() {
}
}
else {
if ( _cnt163>=1 ) { goto _loop163; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());}
if ( _cnt166>=1 ) { goto _loop166; } else {throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());}
}
_cnt163++;
_cnt166++;
}
_loop163:;
_loop166:;
} // ( ... )+
{
switch ( LA(1)) {

View File

@@ -2,7 +2,7 @@
#define INC_Sqlite3Parser_hpp_
#include <antlr/config.hpp>
/* $ANTLR 2.7.7 (20121001): "sqlite3.g" -> "Sqlite3Parser.hpp"$ */
/* $ANTLR 2.7.7 (20130425): "sqlite3.g" -> "Sqlite3Parser.hpp"$ */
#include <antlr/TokenStream.hpp>
#include <antlr/TokenBuffer.hpp>
#include "sqlite3TokenTypes.hpp"

View File

@@ -92,6 +92,7 @@ QUOTEDID
: '`' ( ~('`') )* '`'
| '[' ( ~(']') )* ']'
| '"' ( ~('"') )* '"'
| '\'' ( ~('\'') )* '\''
;
NUMERIC

View File

@@ -1,7 +1,7 @@
#ifndef INC_sqlite3TokenTypes_hpp_
#define INC_sqlite3TokenTypes_hpp_
/* $ANTLR 2.7.7 (20121001): "sqlite3.g" -> "sqlite3TokenTypes.hpp"$ */
/* $ANTLR 2.7.7 (20130425): "sqlite3.g" -> "sqlite3TokenTypes.hpp"$ */
#ifndef CUSTOM_API
# define CUSTOM_API

View File

@@ -1,4 +1,4 @@
// $ANTLR 2.7.7 (20121001): sqlite3.g -> sqlite3TokenTypes.txt$
// $ANTLR 2.7.7 (20130425): sqlite3.g -> sqlite3TokenTypes.txt$
sqlite3 // output token vocab name
ABORT="ABORT"=4
ACTION="ACTION"=5