File indexing completed on 2024-04-28 15:58:54

0001 /* This file is part of the KDE project
0002    Copyright (C) 2004 Martin Ellis <martin.ellis@kdemail.net>
0003    Copyright (C) 2004-2016 Jarosław Staniek <staniek@kde.org>
0004 
0005    This program is free software; you can redistribute it and/or
0006    modify it under the terms of the GNU Library General Public
0007    License as published by the Free Software Foundation; either
0008    version 2 of the License, or (at your option) any later version.
0009 
0010    This program is distributed in the hope that it will be useful,
0011    but WITHOUT ANY WARRANTY; without even the implied warranty of
0012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0013    Library General Public License for more details.
0014 
0015    You should have received a copy of the GNU Library General Public License
0016    along with this program; see the file COPYING.  If not, write to
0017    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0018  * Boston, MA 02110-1301, USA.
0019 */
0020 
0021 #include "SqliteDriver.h"
0022 
0023 //! The list is created by hand based on parse.c from SQLite 3.13.0.
0024 //! @todo Proces patterns like this from https://www.sqlite.org/draft/tokenreq.html
0025 //! to extract tokens automatically:
0026 //! "SQLite shall recognize the *-character sequenence "*" in any combination of upper and lower case letters as the keyword token *."
0027 const char* const SqliteDriver::keywords[] = {
0028     "ABORT",
0029     "ACTION",
0030     "ADD",
0031     "AFTER",
0032     "ALL",
0033     "ALTER",
0034     "ANALYZE",
0035     "AND",
0036     "ANY",
0037     "AS",
0038     "ASC",
0039     "ATTACH",
0040     "AUTOINCR",
0041     "BEFORE",
0042     "BEGIN",
0043     "BETWEEN",
0044     "BLOB",
0045     "BY",
0046     "CASCADE",
0047     "CASE",
0048     "CAST",
0049     "CHECK",
0050     "COLLATE",
0051     "COLUMN",
0052     "COMMIT",
0053     "CONFLICT",
0054     "CONSTRAINT",
0055     "CREATE",
0056     "CURRENT_DATE",
0057     "CURRENT_TIME",
0058     "CURRENT_TIMESTAMP",
0059     "DATABASE",
0060     "DEFAULT",
0061     "DEFERRABLE",
0062     "DEFERRED",
0063     "DELETE",
0064     "DESC",
0065     "DETACH",
0066     "DISTINCT",
0067     "DROP",
0068     "EACH",
0069     "ELSE",
0070     "END",
0071     "ESCAPE",
0072     "EXCEPT",
0073     "EXCLUSIVE",
0074     "EXISTS",
0075     "EXPLAIN",
0076     "FAIL",
0077     "FLOAT",
0078     "FOR",
0079     "FOREIGN",
0080     "FROM",
0081     "FULL",
0082     "GLOB",
0083     "GROUP",
0084     "HAVING",
0085     "ID",
0086     "IF",
0087     "IGNORE",
0088     "IMMEDIATE",
0089     "IN",
0090     "INDEX",
0091     "INDEXED",
0092     "INITIALLY",
0093     "INNER",
0094     "INSERT",
0095     "INSTEAD",
0096     "INTEGER",
0097     "INTERSECT",
0098     "INTO",
0099     "IS",
0100     "ISNULL",
0101     "JOIN",
0102     "KEY",
0103     "LEFT",
0104     "LIKE",
0105     "LIMIT",
0106     "MATCH",
0107     "NATURAL",
0108     "NO",
0109     "NOT",
0110     "NOTNULL",
0111     "NULL",
0112     "OF",
0113     "OFFSET",
0114     "ON",
0115     "OR",
0116     "ORDER",
0117     "OUTER",
0118     "PLAN",
0119     "PRAGMA",
0120     "PRIMARY",
0121     "QUERY",
0122     "RAISE",
0123     "RECURSIVE",
0124     "REFERENCES",
0125     "REGEXP",
0126     "REINDEX",
0127     "RELEASE",
0128     "RENAME",
0129     "REPLACE",
0130     "RESTRICT",
0131     "RIGHT",
0132     "ROLLBACK",
0133     "ROW",
0134     "SAVEPOINT",
0135     "SELECT",
0136     "SET",
0137     "STRING",
0138     "TABLE",
0139     "TEMP",
0140     "TEMPORARY",
0141     "THEN",
0142     "TO",
0143     "TRANSACTION",
0144     "TRIGGER",
0145     "UNION",
0146     "UNIQUE",
0147     "UPDATE",
0148     "USING",
0149     "VACUUM",
0150     "VALUES",
0151     "VARIABLE",
0152     "VIEW",
0153     "VIRTUAL",
0154     "WHEN",
0155     "WHERE",
0156     "WITH",
0157     "WITHOUT",
0158     nullptr
0159 };