OSDN Git Service

Fix issue #1583 Syntax highlighting for SQL leaves many things out. (#1591)
authorstonee-K <105475799+stonee-K@users.noreply.github.com>
Tue, 29 Nov 2022 14:10:27 +0000 (23:10 +0900)
committerGitHub <noreply@github.com>
Tue, 29 Nov 2022 14:10:27 +0000 (23:10 +0900)
* Add SQL:2016 keywords to crystaledit
* This keyword list does not contain non-standard keywords (GO, DUAL...)

reference:
https://en.wikipedia.org/wiki/List_of_SQL_reserved_words

Externals/crystaledit/editlib/parsers/sql.cpp

index cbadef1..1380d1b 100644 (file)
 //  SQL keywords
 static const TCHAR * s_apszSqlKeywordList[] =
   {
-    _T ("all"),
-    _T ("alter"),
-    _T ("and"),
-    _T ("as"),
-    _T ("begin"),
-    _T ("by"),
-    _T ("case"),
-    _T ("create"),
-    _T ("distinct"),
-    _T ("end"),
-    _T ("from"),
-    _T ("full"),
-    _T ("group"),
-    _T ("in"),
-    _T ("index"),
-    _T ("inner"),
-    _T ("insert"),
-    _T ("into"),
-    _T ("join"),
-    _T ("left"),
-    _T ("not"),
-    _T ("or"),
-    _T ("order"),
-    _T ("outer"),
-    _T ("right"),
-    _T ("select"),
-    _T ("table"),
-    _T ("trigger"),
-    _T ("union"),
-    _T ("update"),
-    _T ("view"),
-    _T ("when"),
-    _T ("where"),
+    _T("ABS"),
+    _T("ABSENT"),
+    _T("ACOS"),
+    _T("ALL"),
+    _T("ALLOCATE"),
+    _T("ALTER"),
+    _T("AND"),
+    _T("ANY"),
+    _T("ARE"),
+    _T("ARRAY"),
+    _T("ARRAY_AGG"),
+    _T("ARRAY_MAX_CARDINALITY"),
+    _T("AS"),
+    _T("ASC"),
+    _T("ASENSITIVE"),
+    _T("ASIN"),
+    _T("ASSERTION"),
+    _T("ASYMMETRIC"),
+    _T("AT"),
+    _T("ATAN"),
+    _T("ATOMIC"),
+    _T("AUTHORIZATION"),
+    _T("AVG"),
+
+    _T("BEGIN"),
+    _T("BEGIN_FRAME"),
+    _T("BEGIN_PARTITION"),
+    _T("BETWEEN"),
+    _T("BOTH"),
+    _T("BY"),
+
+    _T("CALL"),
+    _T("CALLED"),
+    _T("CARDINALITY"),
+    _T("CASCADED"),
+    _T("CASE"),
+    _T("CAST"),
+    _T("CATALOG"),
+    _T("CEIL"),
+    _T("CEILING"),
+    _T("CHARACTER"),
+    _T("CHARACTER_LENGTH"),
+    _T("CHAR_LENGTH"),
+    _T("CHECK"),
+    _T("CLASSIFIER"),
+    _T("CLOSE"),
+    _T("COALESCE"),
+    _T("COLLATE"),
+    _T("COLLECT"),
+    _T("COLUMN"),
+    _T("COMMIT"),
+    _T("CONDITION"),
+    _T("CONNECT"),
+    _T("CONNECTION"),
+    _T("CONSTRAINT"),
+    _T("CONTAINS"),
+    _T("CONVERT"),
+    _T("COPY"),
+    _T("CORR"),
+    _T("CORRESPONDING"),
+    _T("COS"),
+    _T("COSH"),
+    _T("COUNT"),
+    _T("COVAR_POP"),
+    _T("COVAR_SAMP"),
+    _T("CREATE"),
+    _T("CROSS"),
+    _T("CUBE"),
+    _T("CUME_DIST"),
+    _T("CURRENT"),
+    _T("CURRENT_CATALOG"),
+    _T("CURRENT_DATE"),
+    _T("CURRENT_DEFAULT_TRANSFORM_GROUP"),
+    _T("CURRENT_PATH"),
+    _T("CURRENT_ROLE"),
+    _T("CURRENT_ROW"),
+    _T("CURRENT_SCHEMA"),
+    _T("CURRENT_TIME"),
+    _T("CURRENT_TIMESTAMP"),
+    _T("CURRENT_TRANSFORM_GROUP_FOR_TYPE"),
+    _T("CURRENT_USER"),
+    _T("CURSOR"),
+    _T("CYCLE"),
+
+    _T("DAY"),
+    _T("DEALLOCATE"),
+    _T("DECFLOAT"),
+    _T("DECLARE"),
+    _T("DEFAULT"),
+    _T("DEFINE"),
+    _T("DELETE"),
+    _T("DENSE_RANK"),
+    _T("DEPTH"),
+    _T("DEREF"),
+    _T("DESC"),
+    _T("DESCRIBE"),
+    _T("DETERMINISTIC"),
+    _T("DISCONNECT"),
+    _T("DISTINCT"),
+    _T("DROP"),
+    _T("DYNAMIC"),
+
+    _T("EACH"),
+    _T("ELEMENT"),
+    _T("ELSE"),
+    _T("EMPTY"),
+    _T("END"),
+    _T("END-EXEC"),
+    _T("END_FRAME"),
+    _T("END_PARTITION"),
+    _T("EQUALS"),
+    _T("ESCAPE"),
+    _T("EVERY"),
+    _T("EXCEPT"),
+    _T("EXEC"),
+    _T("EXECUTE"),
+    _T("EXISTS"),
+    _T("EXIT"),
+    _T("EXP"),
+    _T("EXTERNAL"),
+    _T("EXTRACT"),
+
+    _T("FALSE"),
+    _T("FETCH"),
+    _T("FILTER"),
+    _T("FIRST_VALUE"),
+    _T("FLOOR"),
+    _T("FOR"),
+    _T("FOREIGN"),
+    _T("FOUND"),
+    _T("FRAME_ROW"),
+    _T("FREE"),
+    _T("FROM"),
+    _T("FULL"),
+    _T("FUNCTION"),
+    _T("FUSION"),
+
+    _T("GET"),
+    _T("GLOBAL"),
+    _T("GRANT"),
+    _T("GROUP"),
+    _T("GROUPING"),
+    _T("GROUPS"),
+
+    _T("HAVING"),
+    _T("HOLD"),
+    _T("HOUR"),
+
+    _T("IDENTITY"),
+    _T("IN"),
+    _T("INDEX"),
+    _T("INDICATOR"),
+    _T("INITIAL"),
+    _T("INNER"),
+    _T("INOUT"),
+    _T("INSENSITIVE"),
+    _T("INSERT"),
+    _T("INTERSECT"),
+    _T("INTERSECTION"),
+    _T("INTERVAL"),
+    _T("INTO"),
+    _T("IS"),
+
+    _T("JOIN"),
+    _T("JSON"),
+    _T("JSON_ARRAY"),
+    _T("JSON_ARRAYAGG"),
+    _T("JSON_EXISTS"),
+    _T("JSON_OBJECT"),
+    _T("JSON_OBJECTAGG"),
+    _T("JSON_QUERY"),
+    _T("JSON_TABLE"),
+    _T("JSON_TABLE_PRIMITIVE"),
+    _T("JSON_VALUE"),
+
+    _T("LAG"),
+    _T("LANGUAGE"),
+    _T("LARGE"),
+    _T("LAST_VALUE"),
+    _T("LATERAL"),
+    _T("LEAD"),
+    _T("LEADING"),
+    _T("LEFT"),
+    _T("LIKE"),
+    _T("LIKE_REGEX"),
+    _T("LISTAGG"),
+    _T("LN"),
+    _T("LOCAL"),
+    _T("LOCALTIME"),
+    _T("LOCALTIMESTAMP"),
+    _T("LOG"),
+    _T("LOG10"),
+    _T("LOWER"),
+
+    _T("MATCH"),
+    _T("MATCHES"),
+    _T("MATCH_NUMBER"),
+    _T("MATCH_RECOGNIZE"),
+    _T("MAX"),
+    _T("MEMBER"),
+    _T("MERGE"),
+    _T("METHOD"),
+    _T("MIN"),
+    _T("MINUTE"),
+    _T("MOD"),
+    _T("MODIFIES"),
+    _T("MODULE"),
+    _T("MONTH"),
+    _T("MULTISET"),
+
+    _T("NATIONAL"),
+    _T("NATURAL"),
+    _T("NEW"),
+    _T("NO"),
+    _T("NONE"),
+    _T("NORMALIZE"),
+    _T("NOT"),
+    _T("NTH_VALUE"),
+    _T("NTILE"),
+    _T("NULL"),
+    _T("NULLIF"),
+
+    _T("OCCURRENCES_REGEX"),
+    _T("OCTET_LENGTH"),
+    _T("OF"),
+    _T("OFFSET"),
+    _T("OLD"),
+    _T("OMIT"),
+    _T("ON"),
+    _T("ONE"),
+    _T("ONLY"),
+    _T("OPEN"),
+    _T("OR"),
+    _T("ORDER"),
+    _T("OUT"),
+    _T("OUTER"),
+    _T("OVER"),
+    _T("OVERLAPS"),
+    _T("OVERLAY"),
+
+    _T("PARAMETER"),
+    _T("PARTITION"),
+    _T("PATTERN"),
+    _T("PER"),
+    _T("PERCENT"),
+    _T("PERCENTILE_CONT"),
+    _T("PERCENTILE_DISC"),
+    _T("PERCENT_RANK"),
+    _T("PERIOD"),
+    _T("PORTION"),
+    _T("POSITION"),
+    _T("POSITION_REGEX"),
+    _T("POWER"),
+    _T("PRECEDES"),
+    _T("PRECISION"),
+    _T("PREPARE"),
+    _T("PRIMARY"),
+    _T("PROCEDURE"),
+    _T("PTF"),
+
+    _T("RANGE"),
+    _T("RANK"),
+    _T("READS"),
+    _T("RECURSIVE"),
+    _T("REF"),
+    _T("REFERENCES"),
+    _T("REFERENCING"),
+    _T("REGR_AVGX"),
+    _T("REGR_AVGY"),
+    _T("REGR_COUNT"),
+    _T("REGR_INTERCEPT"),
+    _T("REGR_R2"),
+    _T("REGR_SLOPE"),
+    _T("REGR_SXX"),
+    _T("REGR_SXY"),
+    _T("REGR_SYY"),
+    _T("RELEASE"),
+    _T("RESULT"),
+    _T("RETURN"),
+    _T("RETURNS"),
+    _T("REVOKE"),
+    _T("RIGHT"),
+    _T("ROLLBACK"),
+    _T("ROLLUP"),
+    _T("ROW"),
+    _T("ROWS"),
+    _T("ROW_NUMBER"),
+    _T("RUNNING"),
+
+    _T("SAVEPOINT"),
+    _T("SCOPE"),
+    _T("SCROLL"),
+    _T("SEARCH"),
+    _T("SECOND"),
+    _T("SEEK"),
+    _T("SELECT"),
+    _T("SENSITIVE"),
+    _T("SESSION_USER"),
+    _T("SET"),
+    _T("SHOW"),
+    _T("SIMILAR"),
+    _T("SIN"),
+    _T("SINH"),
+    _T("SIZE"),
+    _T("SKIP"),
+    _T("SOME"),
+    _T("SPECIFIC"),
+    _T("SPECIFICTYPE"),
+    _T("SQL"),
+    _T("SQLEXCEPTION"),
+    _T("SQLSTATE"),
+    _T("SQLWARNING"),
+    _T("SQRT"),
+    _T("START"),
+    _T("STATIC"),
+    _T("STDDEV_POP"),
+    _T("STDDEV_SAMP"),
+    _T("SUBMULTISET"),
+    _T("SUBSET"),
+    _T("SUBSTRING"),
+    _T("SUBSTRING_REGEX"),
+    _T("SUCCEEDS"),
+    _T("SUM"),
+    _T("SYMMETRIC"),
+    _T("SYSTEM"),
+    _T("SYSTEM_TIME"),
+    _T("SYSTEM_USER"),
+
+    _T("TABLE"),
+    _T("TABLESAMPLE"),
+    _T("TAN"),
+    _T("TANH"),
+    _T("THEN"),
+    _T("TIMEZONE_HOUR"),
+    _T("TIMEZONE_MINUTE"),
+    _T("TO"),
+    _T("TRAILING"),
+    _T("TRANSLATE"),
+    _T("TRANSLATE_REGEX"),
+    _T("TRANSLATION"),
+    _T("TREAT"),
+    _T("TRIGGER"),
+    _T("TRIM"),
+    _T("TRIM_ARRAY"),
+    _T("TRUE"),
+    _T("TRUNCATE"),
+
+    _T("UESCAPE"),
+    _T("UNION"),
+    _T("UNIQUE"),
+    _T("UNKNOWN"),
+    _T("UNNEST"),
+    _T("UPDATE"),
+    _T("UPPER"),
+    _T("USER"),
+    _T("USING"),
+
+    _T("VALUE"),
+    _T("VALUES"),
+    _T("VALUE_OF"),
+    _T("VARYING"),
+    _T("VAR_POP"),
+    _T("VAR_SAMP"),
+    _T("VIEW"),
+    _T("VERSIONING"),
+
+    _T("WHEN"),
+    _T("WHENEVER"),
+    _T("WHERE"),
+    _T("WIDTH_BUCKET"),
+    _T("WINDOW"),
+    _T("WITH"),
+    _T("WITHIN"),
+    _T("WITHOUT"),
+
+    _T("YEAR"),
   };
 
 //  SQL data type keywords
 static const TCHAR * s_apszUser1KeywordList[] =
   {
-    _T ("BIGINT"),
-    _T ("BINARY"),
-    _T ("BIT"),
-    _T ("BLOB"),
-    _T ("BOOLEAN"),
-    _T ("BYTE"),
-    _T ("CHAR"),
-    _T ("CLOB"),
-    _T ("DATE"),
-    _T ("DATETIME"),
-    _T ("DECIMAL"),
-    _T ("DOUBLE"),
-    _T ("FLOAT"),
-    _T ("IMAGE"),
-    _T ("INT"),
-    _T ("INTEGER"),
-    _T ("MEMO"),
-    _T ("MONEY"),
-    _T ("NCHAR"),
-    _T ("NUMERIC"),
-    _T ("NVARCHAR"),
-    _T ("REAL"),
-    _T ("SMALLDATETIME"),
-    _T ("SMALLINT"),
-    _T ("SMALLMONEY"),
-    _T ("TEXT"),
-    _T ("TIME"),
-    _T ("TIMESTAMP"),
-    _T ("VARBINARY"),
-    _T ("VARCHAR"),
-    _T ("WORD"),
-    _T ("XML"),
+    _T("BIGINT"),
+    _T("BINARY"),
+    _T("BIT"),
+    _T("BLOB"),
+    _T("BOOLEAN"),
+    _T("BYTE"),
+    _T("CHAR"),
+    _T("CLOB"),
+    _T("DATE"),
+    _T("DATETIME"),
+    _T("DECIMAL"),
+    _T("DOUBLE"),
+    _T("FLOAT"),
+    _T("IMAGE"),
+    _T("INT"),
+    _T("INTEGER"),
+    _T("MEMO"),
+    _T("MONEY"),
+    _T("NCHAR"),
+    _T("NUMERIC"),
+    _T("NVARCHAR"),
+    _T("REAL"),
+    _T("SMALLDATETIME"),
+    _T("SMALLINT"),
+    _T("SMALLMONEY"),
+    _T("TEXT"),
+    _T("TIME"),
+    _T("TIMESTAMP"),
+    _T("VARBINARY"),
+    _T("VARCHAR"),
+    _T("WORD"),
+    _T("XML"),
   };
 
 static bool