{-# LANGUAGE OverloadedStrings #-} module Skylighting.Syntax.Sql (syntax) where import Skylighting.Types import Data.Map import Skylighting.Regex import qualified Data.Set syntax :: Syntax syntax = Syntax { sName = "SQL" , sFilename = "sql.xml" , sShortname = "Sql" , sContexts = fromList [ ( "Multiline C-style comment" , Context { cName = "Multiline C-style comment" , cSyntax = "SQL" , cRules = [ Rule { rMatcher = Detect2Chars '*' '/' , rAttribute = CommentTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [ Pop ] } ] , cAttribute = CommentTok , cLineEmptyContext = [] , cLineEndContext = [] , cLineBeginContext = [] , cFallthrough = False , cFallthroughContext = [] , cDynamic = False } ) , ( "Normal" , Context { cName = "Normal" , cSyntax = "SQL" , cRules = [ Rule { rMatcher = DetectSpaces , rAttribute = NormalTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [] } , Rule { rMatcher = Keyword KeywordAttr { keywordCaseSensitive = False , keywordDelims = Data.Set.fromList "\t\n %&(),;?[\\]{}" } (makeWordSet False [ "ACCESS" , "ACCOUNT" , "ADD" , "ADMIN" , "ADMINISTER" , "ADVISE" , "AFTER" , "AGENT" , "ALL" , "ALL_ROWS" , "ALLOCATE" , "ALTER" , "ANALYZE" , "ANCILLARY" , "AND" , "ANY" , "ARCHIVE" , "ARCHIVELOG" , "AS" , "ASC" , "ASSERTION" , "ASSOCIATE" , "AT" , "ATTRIBUTE" , "ATTRIBUTES" , "AUDIT" , "AUTHENTICATED" , "AUTHID" , "AUTHORIZATION" , "AUTOALLOCATE" , "AUTOEXTEND" , "AUTOMATIC" , "BACKUP" , "BECOME" , "BEFORE" , "BEGIN" , "BEHALF" , "BETWEEN" , "BINDING" , "BITMAP" , "BLOCK" , "BLOCK_RANGE" , "BODY" , "BOTH" , "BOUND" , "BREAK" , "BROADCAST" , "BTITLE" , "BUFFER_POOL" , "BUILD" , "BULK" , "BY" , "CACHE" , "CACHE_INSTANCES" , "CALL" , "CANCEL" , "CASCADE" , "CASE" , "CATEGORY" , "CHAINED" , "CHANGE" , "CHECK" , "CHECKPOINT" , "CHILD" , "CHOOSE" , "CHUNK" , "CLASS" , "CLEAR" , "CLONE" , "CLOSE" , "CLOSE_CACHED_OPEN_CURSORS" , "CLUSTER" , "COALESCE" , "COLUMN" , "COLUMN_VALUE" , "COLUMNS" , "COMMENT" , "COMMIT" , "COMMITTED" , "COMPATIBILITY" , "COMPILE" , "COMPLETE" , "COMPOSITE_LIMIT" , "COMPRESS" , "COMPUTE" , "CONNECT" , "CONNECT_TIME" , "CONSIDER" , "CONSISTENT" , "CONSTANT" , "CONSTRAINT" , "CONSTRAINTS" , "CONTAINER" , "CONTENTS" , "CONTEXT" , "CONTINUE" , "CONTROLFILE" , "COPY" , "COST" , "CPU_PER_CALL" , "CPU_PER_SESSION" , "CREATE" , "CREATE_STORED_OUTLINES" , "CROSS" , "CUBE" , "CURRENT" , "CURSOR" , "CYCLE" , "DANGLING" , "DATA" , "DATABASE" , "DATAFILE" , "DATAFILES" , "DBA" , "DDL" , "DEALLOCATE" , "DEBUG" , "DECLARE" , "DEFAULT" , "DEFERRABLE" , "DEFERRED" , "DEFINER" , "DEGREE" , "DELETE" , "DEMAND" , "DESC" , "DETERMINES" , "DICTIONARY" , "DIMENSION" , "DIRECTORY" , "DISABLE" , "DISASSOCIATE" , "DISCONNECT" , "DISKGROUP" , "DISMOUNT" , "DISTINCT" , "DISTRIBUTED" , "DOMAIN" , "DROP" , "DYNAMIC" , "EACH" , "ELSE" , "ELSIF" , "EMPTY" , "ENABLE" , "END" , "ENFORCE" , "ENTRY" , "ESCAPE" , "ESTIMATE" , "EVENTS" , "EXCEPT" , "EXCEPTION" , "EXCEPTIONS" , "EXCHANGE" , "EXCLUDING" , "EXCLUSIVE" , "EXEC" , "EXECUTE" , "EXISTS" , "EXPIRE" , "EXPLAIN" , "EXPLOSION" , "EXTENDS" , "EXTENT" , "EXTENTS" , "EXTERNALLY" , "FAILED_LOGIN_ATTEMPTS" , "FALSE" , "FAST" , "FILE" , "FILTER" , "FIRST_ROWS" , "FLAGGER" , "FLASHBACK" , "FLUSH" , "FOLLOWING" , "FOR" , "FORCE" , "FOREIGN" , "FREELIST" , "FREELISTS" , "FRESH" , "FROM" , "FULL" , "FUNCTION" , "FUNCTIONS" , "GENERATED" , "GLOBAL" , "GLOBAL_NAME" , "GLOBALLY" , "GRANT" , "GROUP" , "GROUPS" , "HASH" , "HASHKEYS" , "HAVING" , "HEADER" , "HEAP" , "HIERARCHY" , "HOUR" , "ID" , "IDENTIFIED" , "IDENTIFIER" , "IDGENERATORS" , "IDLE_TIME" , "IF" , "IMMEDIATE" , "IN" , "INCLUDING" , "INCREMENT" , "INCREMENTAL" , "INDEX" , "INDEXED" , "INDEXES" , "INDEXTYPE" , "INDEXTYPES" , "INDICATOR" , "INITIAL" , "INITIALIZED" , "INITIALLY" , "INITRANS" , "INNER" , "INSERT" , "INSTANCE" , "INSTANCES" , "INSTEAD" , "INTERMEDIATE" , "INTERSECT" , "INTO" , "INVALIDATE" , "IS" , "ISOLATION" , "ISOLATION_LEVEL" , "JAVA" , "JOIN" , "KEEP" , "KEY" , "KILL" , "LABEL" , "LAYER" , "LEADING" , "LEFT" , "LESS" , "LEVEL" , "LIBRARY" , "LIKE" , "LIMIT" , "LINK" , "LIST" , "LOCAL" , "LOCATOR" , "LOCK" , "LOCKED" , "LOGFILE" , "LOGGING" , "LOGICAL_READS_PER_CALL" , "LOGICAL_READS_PER_SESSION" , "LOGOFF" , "LOGON" , "LOOP" , "MANAGE" , "MANAGED" , "MANAGEMENT" , "MASTER" , "MATERIALIZED" , "MAXARCHLOGS" , "MAXDATAFILES" , "MAXEXTENTS" , "MAXINSTANCES" , "MAXLOGFILES" , "MAXLOGHISTORY" , "MAXLOGMEMBERS" , "MAXSIZE" , "MAXTRANS" , "MAXVALUE" , "MEMBER" , "MERGE" , "METHOD" , "MINEXTENTS" , "MINIMIZE" , "MINIMUM" , "MINUS" , "MINUTE" , "MINVALUE" , "MODE" , "MODIFY" , "MONITORING" , "MOUNT" , "MOVE" , "MOVEMENT" , "MTS_DISPATCHERS" , "MULTISET" , "NAMED" , "NATURAL" , "NEEDED" , "NESTED" , "NESTED_TABLE_ID" , "NETWORK" , "NEVER" , "NEW" , "NEXT" , "NLS_CALENDAR" , "NLS_CHARACTERSET" , "NLS_COMP" , "NLS_CURRENCY" , "NLS_DATE_FORMAT" , "NLS_DATE_LANGUAGE" , "NLS_ISO_CURRENCY" , "NLS_LANG" , "NLS_LANGUAGE" , "NLS_NUMERIC_CHARACTERS" , "NLS_SORT" , "NLS_SPECIAL_CHARS" , "NLS_TERRITORY" , "NO" , "NOARCHIVELOG" , "NOAUDIT" , "NOCACHE" , "NOCOMPRESS" , "NOCYCLE" , "NOFORCE" , "NOLOGGING" , "NOMAXVALUE" , "NOMINIMIZE" , "NOMINVALUE" , "NOMONITORING" , "NONE" , "NOORDER" , "NOOVERRIDE" , "NOPARALLEL" , "NORELY" , "NORESETLOGS" , "NOREVERSE" , "NORMAL" , "NOSEGMENT" , "NOSORT" , "NOT" , "NOTHING" , "NOVALIDATE" , "NOWAIT" , "NULL" , "NULLS" , "OBJNO" , "OBJNO_REUSE" , "OF" , "OFF" , "OFFLINE" , "OID" , "OIDINDEX" , "OLD" , "ON" , "ONLINE" , "ONLY" , "OPCODE" , "OPEN" , "OPERATOR" , "OPTIMAL" , "OPTIMIZER_GOAL" , "OPTION" , "OR" , "ORDER" , "ORGANIZATION" , "OUT" , "OUTER" , "OUTLINE" , "OVER" , "OVERFLOW" , "OVERLAPS" , "OWN" , "PACKAGE" , "PACKAGES" , "PARALLEL" , "PARAMETERS" , "PARENT" , "PARTITION" , "PARTITION_HASH" , "PARTITION_RANGE" , "PARTITIONS" , "PASSWORD" , "PASSWORD_GRACE_TIME" , "PASSWORD_LIFE_TIME" , "PASSWORD_LOCK_TIME" , "PASSWORD_REUSE_MAX" , "PASSWORD_REUSE_TIME" , "PASSWORD_VERIFY_FUNCTION" , "PCTFREE" , "PCTINCREASE" , "PCTTHRESHOLD" , "PCTUSED" , "PCTVERSION" , "PERCENT" , "PERMANENT" , "PLAN" , "PLSQL_DEBUG" , "POST_TRANSACTION" , "PREBUILT" , "PRECEDING" , "PREPARE" , "PRESENT" , "PRESERVE" , "PREVIOUS" , "PRIMARY" , "PRIOR" , "PRIVATE" , "PRIVATE_SGA" , "PRIVILEGE" , "PRIVILEGES" , "PROCEDURE" , "PROFILE" , "PUBLIC" , "PURGE" , "QUERY" , "QUEUE" , "QUOTA" , "RANDOM" , "RANGE" , "RBA" , "READ" , "READS" , "REBUILD" , "RECORDS_PER_BLOCK" , "RECOVER" , "RECOVERABLE" , "RECOVERY" , "RECYCLE" , "REDUCED" , "REFERENCES" , "REFERENCING" , "REFRESH" , "RELY" , "RENAME" , "REPLACE" , "RESET" , "RESETLOGS" , "RESIZE" , "RESOLVE" , "RESOLVER" , "RESOURCE" , "RESTRICT" , "RESTRICTED" , "RESUME" , "RETURN" , "RETURNING" , "REUSE" , "REVERSE" , "REVOKE" , "REWRITE" , "RIGHT" , "ROLE" , "ROLES" , "ROLLBACK" , "ROLLUP" , "ROW" , "ROWNUM" , "ROWS" , "RULE" , "SAMPLE" , "SAVEPOINT" , "SCAN" , "SCAN_INSTANCES" , "SCHEMA" , "SCN" , "SCOPE" , "SD_ALL" , "SD_INHIBIT" , "SD_SHOW" , "SEG_BLOCK" , "SEG_FILE" , "SEGMENT" , "SELECT" , "SELECTIVITY" , "SEQUENCE" , "SERIALIZABLE" , "SERVERERROR" , "SESSION" , "SESSION_CACHED_CURSORS" , "SESSIONS_PER_USER" , "SET" , "SHARE" , "SHARED" , "SHARED_POOL" , "SHRINK" , "SHUTDOWN" , "SINGLETASK" , "SIZE" , "SKIP" , "SKIP_UNUSABLE_INDEXES" , "SNAPSHOT" , "SOME" , "SORT" , "SOURCE" , "SPECIFICATION" , "SPLIT" , "SQL_TRACE" , "STANDBY" , "START" , "STARTUP" , "STATEMENT_ID" , "STATIC" , "STATISTICS" , "STOP" , "STORAGE" , "STORE" , "STRUCTURE" , "SUBMULTISET" , "SUBPARTITION" , "SUBPARTITIONS" , "SUCCESSFUL" , "SUMMARY" , "SUPPLEMENTAL" , "SUSPEND" , "SWITCH" , "SYNONYM" , "SYS_OP_BITVEC" , "SYS_OP_ENFORCE_NOT_NULL$" , "SYS_OP_NOEXPAND" , "SYS_OP_NTCIMG$" , "SYSDBA" , "SYSOPER" , "SYSTEM" , "TABLE" , "TABLES" , "TABLESPACE" , "TABLESPACE_NO" , "TABNO" , "TEMPFILE" , "TEMPORARY" , "THAN" , "THE" , "THEN" , "THREAD" , "THROUGH" , "TIME_ZONE" , "TIMEOUT" , "TIMEZONE_HOUR" , "TIMEZONE_MINUTE" , "TO" , "TOPLEVEL" , "TRACE" , "TRACING" , "TRAILING" , "TRANSACTION" , "TRANSITIONAL" , "TRIGGER" , "TRIGGERS" , "TRUE" , "TRUNCATE" , "TYPE" , "TYPES" , "UNARCHIVED" , "UNBOUND" , "UNBOUNDED" , "UNDO" , "UNIFORM" , "UNION" , "UNIQUE" , "UNLIMITED" , "UNLOCK" , "UNRECOVERABLE" , "UNTIL" , "UNUSABLE" , "UNUSED" , "UPD_INDEXES" , "UPDATABLE" , "UPDATE" , "UPPPER" , "USAGE" , "USE" , "USE_STORED_OUTLINES" , "USER_DEFINED" , "USING" , "VALIDATE" , "VALIDATION" , "VALUES" , "VIEW" , "WHEN" , "WHENEVER" , "WHERE" , "WHILE" , "WITH" , "WITHOUT" , "WORK" , "WRITE" ]) , rAttribute = KeywordTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [] } , Rule { rMatcher = Keyword KeywordAttr { keywordCaseSensitive = False , keywordDelims = Data.Set.fromList "\t\n %&(),;?[\\]{}" } (makeWordSet False [ "!=" , "*" , "**" , "+" , "-" , ".." , "/" , ":=" , "<" , "<=" , "<>" , "=" , "=>" , ">" , ">=" , "^=" , "||" , "~=" ]) , rAttribute = NormalTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [] } , Rule { rMatcher = Keyword KeywordAttr { keywordCaseSensitive = False , keywordDelims = Data.Set.fromList "\t\n %&(),;?[\\]{}" } (makeWordSet False [ "ABS" , "ACOS" , "ADD_MONTHS" , "ASCII" , "ASCIISTR" , "ASIN" , "ATAN" , "ATAN2" , "AVG" , "BFILENAME" , "BIN_TO_NUM" , "BITAND" , "CARDINALITY" , "CAST" , "CEIL" , "CHARTOROWID" , "CHR" , "COALESCE" , "COLLECT" , "COMPOSE" , "CONCAT" , "CONVERT" , "CORR" , "CORR_K" , "CORR_S" , "COS" , "COSH" , "COUNT" , "COVAR_POP" , "COVAR_SAMP" , "CUME_DIST" , "CURRENT_DATE" , "CURRENT_TIMESTAMP" , "CV" , "DBTIMEZONE" , "DECODE" , "DECOMPOSE" , "DENSE_RANK" , "DEPTH" , "DEREF" , "DUMP" , "EMPTY_BLOB" , "EMPTY_CLOB" , "EXISTSNODE" , "EXP" , "EXTRACT" , "EXTRACTVALUE" , "FIRST" , "FIRST_VALUE" , "FLOOR" , "FROM_TZ" , "GREATEST" , "GROUP_ID" , "GROUPING" , "GROUPING_ID" , "HEXTORAW" , "INITCAP" , "INSTR" , "INSTRB" , "LAG" , "LAST" , "LAST_DAY" , "LAST_VALUE" , "LEAD" , "LEAST" , "LENGTH" , "LENGTHB" , "LN" , "LNNVL" , "LOCALTIMESTAMP" , "LOG" , "LOWER" , "LPAD" , "LTRIM" , "MAKE_REF" , "MAX" , "MEDIAN" , "MIN" , "MOD" , "MONTHS_BETWEEN" , "NANVL" , "NCHR" , "NEW_TIME" , "NEXT_DAY" , "NLS_CHARSET_DECL_LEN" , "NLS_CHARSET_ID" , "NLS_CHARSET_NAME" , "NLS_INITCAP" , "NLS_LOWER" , "NLS_UPPER" , "NLSSORT" , "NTILE" , "NULLIF" , "NUMTODSINTERVAL" , "NUMTOYMINTERVAL" , "NVL" , "NVL2" , "ORA_HASH" , "ORA_ROWSCN" , "PERCENT_RANK" , "PERCENTILE_CONT" , "PERCENTILE_DISC" , "POWER" , "POWERMULTISET" , "POWERMULTISET_BY_CARDINALITY" , "PRESENTNNV" , "PRESENTV" , "RANK" , "RATIO_TO_REPORT" , "RAWTOHEX" , "RAWTONHEX" , "REF" , "REFTOHEX" , "REGEXP_INSTR" , "REGEXP_LIKE" , "REGEXP_REPLACE" , "REGEXP_SUBSTR" , "REGR_AVGX" , "REGR_AVGY" , "REGR_COUNT" , "REGR_INTERCEPT" , "REGR_R2" , "REGR_SLOPE" , "REGR_SXX" , "REGR_SXY" , "REGR_SYY" , "REMAINDER" , "ROUND" , "ROW_NUMBER" , "ROWIDTOCHAR" , "ROWIDTONCHAR" , "RPAD" , "RTRIM" , "SCN_TO_TIMESTAMP" , "SESSIONTIMEZONE" , "SIGN" , "SIN" , "SINH" , "SOUNDEX" , "SQRT" , "STATS_BINOMIAL_TEST" , "STATS_CROSSTAB" , "STATS_F_TEST" , "STATS_KS_TEST" , "STATS_MODE" , "STATS_MW_TEST" , "STATS_ONE_WAY_ANOVA" , "STATS_T_TEST_INDEP" , "STATS_T_TEST_INDEPU" , "STATS_T_TEST_ONE" , "STATS_T_TEST_PAIRED" , "STATS_WSR_TEST" , "STDDEV" , "STDDEV_POP" , "STDDEV_SAMP" , "SUBSTR" , "SUBSTRB" , "SUM" , "SYS_CONNECT_BY_PATH" , "SYS_CONTEXT" , "SYS_DBURIGEN" , "SYS_EXTRACT_UTC" , "SYS_GUID" , "SYS_TYPEID" , "SYS_XMLAGG" , "SYS_XMLGEN" , "SYSDATE" , "SYSTIMESTAMP" , "TAN" , "TANH" , "TIMESTAMP_TO_SCN" , "TO_BINARY_DOUBLE" , "TO_BINARY_FLOAT" , "TO_CHAR" , "TO_CLOB" , "TO_DATE" , "TO_DSINTERVAL" , "TO_LOB" , "TO_MULTI_BYTE" , "TO_NCHAR" , "TO_NCLOB" , "TO_NUMBER" , "TO_SINGLE_BYTE" , "TO_TIMESTAMP" , "TO_TIMESTAMP_TZ" , "TO_YMINTERVAL" , "TRANSLATE" , "TREAT" , "TRIM" , "TRUNC" , "TZ_OFFSET" , "UID" , "UNISTR" , "UPDATEXML" , "UPPER" , "USER" , "USERENV" , "VALUE" , "VAR_POP" , "VAR_SAMP" , "VARIANCE" , "VSIZE" , "WIDTH_BUCKET" , "XMLAGG" , "XMLCOLATTVAL" , "XMLCONCAT" , "XMLELEMENT" , "XMLFOREST" , "XMLSEQUENCE" , "XMLTRANSFORM" ]) , rAttribute = FunctionTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [] } , Rule { rMatcher = Keyword KeywordAttr { keywordCaseSensitive = False , keywordDelims = Data.Set.fromList "\t\n %&(),;?[\\]{}" } (makeWordSet False [ "ANYDATA" , "ANYDATASET" , "ANYTYPE" , "ARRAY" , "BFILE" , "BINARY_DOUBLE" , "BINARY_FLOAT" , "BINARY_INTEGER" , "BLOB" , "BOOLEAN" , "CFILE" , "CHAR" , "CHARACTER" , "CLOB" , "DATE" , "DAY" , "DBURITYPE" , "DEC" , "DECIMAL" , "DOUBLE" , "FLOAT" , "FLOB" , "HTTPURITYPE" , "INT" , "INTEGER" , "INTERVAL" , "LOB" , "LONG" , "MLSLABEL" , "MONTH" , "NATIONAL" , "NCHAR" , "NCLOB" , "NUMBER" , "NUMERIC" , "NVARCHAR" , "OBJECT" , "PLS_INTEGER" , "PRECISION" , "RAW" , "REAL" , "RECORD" , "ROWID" , "SECOND" , "SINGLE" , "SMALLINT" , "TIME" , "TIMESTAMP" , "URIFACTORYTYPE" , "URITYPE" , "UROWID" , "VARCHAR" , "VARCHAR2" , "VARRAY" , "VARYING" , "XMLTYPE" , "YEAR" , "ZONE" ]) , rAttribute = DataTypeTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [] } , Rule { rMatcher = DetectIdentifier , rAttribute = NormalTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [] } , Rule { rMatcher = RegExpr RE { reString = "%(?:bulk_(?:exceptions|rowcount)|found|isopen|notfound|rowcount|rowtype|type)\\b" , reCompiled = Just (compileRegex False "%(?:bulk_(?:exceptions|rowcount)|found|isopen|notfound|rowcount|rowtype|type)\\b") , reCaseSensitive = False } , rAttribute = DataTypeTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [] } , Rule { rMatcher = HlCHex , rAttribute = BaseNTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [] } , Rule { rMatcher = Float , rAttribute = FloatTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [] } , Rule { rMatcher = Int , rAttribute = DecValTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [] } , Rule { rMatcher = DetectChar '\'' , rAttribute = StringTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [ Push ( "SQL" , "String literal" ) ] } , Rule { rMatcher = Detect2Chars '-' '-' , rAttribute = CommentTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [ Push ( "SQL" , "Singleline PL/SQL-style comment" ) ] } , Rule { rMatcher = Detect2Chars '/' '*' , rAttribute = CommentTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [ Push ( "SQL" , "Multiline C-style comment" ) ] } , Rule { rMatcher = RegExpr RE { reString = "rem\\b" , reCompiled = Just (compileRegex False "rem\\b") , reCaseSensitive = False } , rAttribute = CommentTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Just 0 , rContextSwitch = [ Push ( "SQL" , "SQL*Plus remark directive" ) ] } , Rule { rMatcher = DetectChar '"' , rAttribute = OtherTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [ Push ( "SQL" , "User-defined identifier" ) ] } , Rule { rMatcher = RegExpr RE { reString = "(:|&&?)\\w+" , reCompiled = Just (compileRegex False "(:|&&?)\\w+") , reCaseSensitive = False } , rAttribute = CharTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [] } , Rule { rMatcher = RegExpr RE { reString = "/$" , reCompiled = Just (compileRegex False "/$") , reCaseSensitive = False } , rAttribute = CharTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Just 0 , rContextSwitch = [] } , Rule { rMatcher = RegExpr RE { reString = "@@?[^@ \\t\\r\\n]" , reCompiled = Just (compileRegex False "@@?[^@ \\t\\r\\n]") , reCaseSensitive = False } , rAttribute = OtherTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Just 0 , rContextSwitch = [ Push ( "SQL" , "SQL*Plus directive to include file" ) ] } ] , cAttribute = NormalTok , cLineEmptyContext = [] , cLineEndContext = [] , cLineBeginContext = [] , cFallthrough = False , cFallthroughContext = [] , cDynamic = False } ) , ( "SQL*Plus directive to include file" , Context { cName = "SQL*Plus directive to include file" , cSyntax = "SQL" , cRules = [] , cAttribute = OtherTok , cLineEmptyContext = [] , cLineEndContext = [ Pop ] , cLineBeginContext = [] , cFallthrough = False , cFallthroughContext = [] , cDynamic = False } ) , ( "SQL*Plus remark directive" , Context { cName = "SQL*Plus remark directive" , cSyntax = "SQL" , cRules = [] , cAttribute = CommentTok , cLineEmptyContext = [] , cLineEndContext = [ Pop ] , cLineBeginContext = [] , cFallthrough = False , cFallthroughContext = [] , cDynamic = False } ) , ( "Singleline PL/SQL-style comment" , Context { cName = "Singleline PL/SQL-style comment" , cSyntax = "SQL" , cRules = [] , cAttribute = CommentTok , cLineEmptyContext = [] , cLineEndContext = [ Pop ] , cLineBeginContext = [] , cFallthrough = False , cFallthroughContext = [] , cDynamic = False } ) , ( "String literal" , Context { cName = "String literal" , cSyntax = "SQL" , cRules = [ Rule { rMatcher = Detect2Chars '\\' '\'' , rAttribute = StringTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [ Pop ] } , Rule { rMatcher = HlCStringChar , rAttribute = CharTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [] } , Rule { rMatcher = RegExpr RE { reString = "&&?\\w+" , reCompiled = Just (compileRegex False "&&?\\w+") , reCaseSensitive = False } , rAttribute = CharTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [] } , Rule { rMatcher = Detect2Chars '\'' '\'' , rAttribute = CharTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [] } , Rule { rMatcher = DetectChar '\'' , rAttribute = StringTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [ Pop ] } ] , cAttribute = StringTok , cLineEmptyContext = [] , cLineEndContext = [] , cLineBeginContext = [] , cFallthrough = False , cFallthroughContext = [] , cDynamic = False } ) , ( "User-defined identifier" , Context { cName = "User-defined identifier" , cSyntax = "SQL" , cRules = [ Rule { rMatcher = DetectChar '"' , rAttribute = OtherTok , rIncludeAttribute = False , rDynamic = False , rCaseSensitive = False , rChildren = [] , rLookahead = False , rFirstNonspace = False , rColumn = Nothing , rContextSwitch = [ Pop ] } ] , cAttribute = OtherTok , cLineEmptyContext = [] , cLineEndContext = [ Pop ] , cLineBeginContext = [] , cFallthrough = False , cFallthroughContext = [] , cDynamic = False } ) ] , sAuthor = "Yury Lebedev (yurylebedev@mail.ru)" , sVersion = "2" , sLicense = "LGPL" , sExtensions = [ "*.sql" , "*.SQL" , "*.ddl" , "*.DDL" ] , sStartingContext = "Normal" }