mirror of
https://github.com/sqlitebrowser/sqlitebrowser.git
synced 2026-01-20 11:00:44 -06:00
grammar: Simplify code
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -52,7 +52,7 @@ public:
|
||||
public: void selectstmt();
|
||||
public: void name();
|
||||
public: void expr();
|
||||
public: void indexcolumn();
|
||||
public: void indexedcolumn();
|
||||
public: void keywordascolumnname();
|
||||
public: void columnname();
|
||||
public: void type_name();
|
||||
@@ -60,7 +60,6 @@ public:
|
||||
public: void conflictclause();
|
||||
public: void literalvalue();
|
||||
public: void foreignkeyclause();
|
||||
public: void indexedcolumn();
|
||||
public: void functionname();
|
||||
public: void subexpr();
|
||||
public: void binaryoperator();
|
||||
|
||||
@@ -88,7 +88,7 @@ tokens {
|
||||
TABLECONSTRAINT;
|
||||
CREATETABLE;
|
||||
CREATEINDEX;
|
||||
INDEXCOLUMN;
|
||||
INDEXEDCOLUMN;
|
||||
KEYWORDASTABLENAME;
|
||||
KEYWORDASCOLUMNNAME;
|
||||
}
|
||||
@@ -281,20 +281,10 @@ createtable
|
||||
createindex
|
||||
:
|
||||
CREATE (UNIQUE)? INDEX (IF_T NOT EXISTS)? (tablename | keywordastablename) ON (tablename | keywordastablename)
|
||||
( LPAREN indexcolumn (COMMA indexcolumn)* RPAREN (WHERE expr)? )
|
||||
( LPAREN indexedcolumn (COMMA indexedcolumn)* RPAREN (WHERE expr)? )
|
||||
{#createindex = #([CREATEINDEX, "CREATEINDEX"], #createindex);}
|
||||
;
|
||||
|
||||
indexcolumn
|
||||
:
|
||||
//((columnname | keywordascolumnname)
|
||||
// | expr)
|
||||
expr
|
||||
(COLLATE collationname)?
|
||||
(ASC | DESC)?
|
||||
{#indexcolumn = #([INDEXCOLUMN, "INDEXCOLUMN"], #indexcolumn);}
|
||||
;
|
||||
|
||||
keywordascolumnname
|
||||
:
|
||||
( ABORT
|
||||
@@ -402,7 +392,8 @@ tableconstraint
|
||||
|
||||
indexedcolumn
|
||||
:
|
||||
columnname (COLLATE collationname)? (ASC|DESC)? (AUTOINCREMENT)?
|
||||
expr (COLLATE collationname)? (ASC|DESC)? (AUTOINCREMENT)?
|
||||
{#indexedcolumn = #([INDEXEDCOLUMN, "INDEXEDCOLUMN"], #indexedcolumn);}
|
||||
;
|
||||
|
||||
conflictclause
|
||||
|
||||
@@ -84,7 +84,7 @@ struct CUSTOM_API sqlite3TokenTypes {
|
||||
TABLECONSTRAINT = 73,
|
||||
CREATETABLE = 74,
|
||||
CREATEINDEX = 75,
|
||||
INDEXCOLUMN = 76,
|
||||
INDEXEDCOLUMN = 76,
|
||||
KEYWORDASTABLENAME = 77,
|
||||
KEYWORDASCOLUMNNAME = 78,
|
||||
DIGIT = 79,
|
||||
|
||||
@@ -574,6 +574,8 @@ QString columnname(const antlr::RefAST& n)
|
||||
{
|
||||
if(n->getType() == sqlite3TokenTypes::KEYWORDASCOLUMNNAME)
|
||||
return concatTextAST(n->getFirstChild());
|
||||
else if(n->getType() == sqlite3TokenTypes::INDEXEDCOLUMN)
|
||||
return columnname(n->getFirstChild());
|
||||
else
|
||||
return identifier(n);
|
||||
}
|
||||
@@ -1135,7 +1137,7 @@ IndexPtr CreateIndexWalker::index()
|
||||
s = s->getNextSibling(); // first column name
|
||||
antlr::RefAST column = s;
|
||||
// loop columndefs
|
||||
while(column != antlr::nullAST && column->getType() == sqlite3TokenTypes::INDEXCOLUMN)
|
||||
while(column != antlr::nullAST && column->getType() == sqlite3TokenTypes::INDEXEDCOLUMN)
|
||||
{
|
||||
parsecolumn(index, column->getFirstChild());
|
||||
column = column->getNextSibling(); // COMMA or RPAREN
|
||||
|
||||
Reference in New Issue
Block a user