diff options
Diffstat (limited to 'inc/geshi/mysql.php')
-rw-r--r-- | inc/geshi/mysql.php | 490 |
1 files changed, 387 insertions, 103 deletions
diff --git a/inc/geshi/mysql.php b/inc/geshi/mysql.php index aa30085da..0017eef29 100644 --- a/inc/geshi/mysql.php +++ b/inc/geshi/mysql.php @@ -1,14 +1,28 @@ <?php - /************************************************************************************* +/************************************************************************************* * mysql.php * --------- - * Author: Carl F�rstenberg (azatoth@gmail.com) - * Copyright: (c) 2005 Carl F�rstenberg, Nigel McNie (http://qbnz.com/highlighter) - * Release Version: 1\.0\.8 - * Date Started: 2004/06/04 + * Author: Marjolein Katsma (marjolein.is.back@gmail.com) + * Copyright: (c) 2008 Marjolein Katsma (http://blog.marjoleinkatsma.com/) + * Release Version: 1.0.8.3 + * Date Started: 2008-12-12 * * MySQL language file for GeSHi. * + * Based on original MySQL language file by Carl Fürstenberg (2004); brought + * up-to-date for current MySQL versions, and with more classes for different + * types of keywords; several minor errors were corrected as well. + * + * Some "classes" have two groups here: this is to allow for the fact that some + * keywords in MySQL have a double function: many of those are either a function + * (must be immediately followed by an opening bracket) or some other keyword: + * so they can be distinguished by the presence (or not) of that opening bracket. + * (An immediately following opening bracket is a default rule for functions in + * MySQL, though this may be overridden; because it's only a default, we use a + * regex lookahead only where necessary to distinguish homonyms, not generally + * to match any function.) + * Other keywords with double usage cannot be distinguished and are classified + * in the "Mix" category. * ************************************************************************************* * @@ -32,99 +46,257 @@ $language_data = array ( 'LANG_NAME' => 'MySQL', - 'COMMENT_SINGLE' => array(1 =>'--', 2 => '#'), + //'COMMENT_SINGLE' => array(1 =>'--', 2 => '#'), // '--' MUST be folowed by whitespace,not necessarily a space + 'COMMENT_SINGLE' => array( + 1 =>'-- ', + 2 => '#' + ), + 'COMMENT_REGEXP' => array( + 1 => "/(?:--\s).*?$/", // double dash followed by any whitespace + ), 'COMMENT_MULTI' => array('/*' => '*/'), - 'CASE_KEYWORDS' => 1, - 'QUOTEMARKS' => array("'", '"'), - 'ESCAPE_CHAR' => '\\', + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, // @@@ would be nice if this could be defined per group! + 'QUOTEMARKS' => array("'", '"', '`'), + 'ESCAPE_CHAR' => '\\', // by default only, can be specified + 'ESCAPE_REGEXP' => array( + 1 => "/[_%]/", // search wildcards + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | + GESHI_NUMBER_OCT_PREFIX | + GESHI_NUMBER_HEX_PREFIX | + GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_SCI_SHORT | + GESHI_NUMBER_FLT_SCI_ZERO, 'KEYWORDS' => array( 1 => array( - /* Mix */ - 'ALTER DATABASE', 'ALTER TABLE', 'CREATE DATABASE', 'CREATE INDEX', 'CREATE TABLE', 'DROP DATABASE', - 'DROP INDEX', 'DROP TABLE', 'RENAME TABLE', 'DELETE', 'DO', 'HANDLER', 'INSERT', 'LOAD DATA INFILE', - 'REPLACE', 'SELECT', 'TRUNCATE', 'UPDATE', 'DESCRIBE', 'USE', 'START TRANSACTION', 'COMMIT', 'ROLLBACK', - 'SAVEPOINT', 'ROLLBACK TO SAVEPOINT', 'LOCK TABLES', 'UNLOCK_TABLES', 'SET TRANACTIONS', 'SET', 'SHOW', - 'CREATE PROCEDURE', 'CREATE FUNCTION', 'ALTER PROCEDURE', 'ALTER FUNCTION', 'DROP PROCEDURE', 'DROP FUNCTION', - 'SHOW CREATE PROCEDURE', 'SHOW CREATE FUNCTION', 'SHOW PROCEDURE STATUS', 'SHOW FUNCTION STATUS', - 'CALL', 'BEGIN', 'END', 'DECLARE', 'CREATE ROUTINE', 'ALTER ROUTINE', 'CREATE', 'ALTER', 'DROP', - 'PRIMARY KEY', 'VALUES', 'INTO', 'FROM', - 'ANALYZE', 'BDB', 'BERKELEYDB', 'BTREE', 'BY', 'CASCADE', 'CHECK', 'COLUMN', 'COLUMNS', 'CONSTRAINT', - 'CROSS', 'DATABASES', 'DELAYED', 'DISTINCT', 'DISTINCTROW', 'ENCLOSED', 'ERRORS', 'ESCAPED', 'EXISTS', - 'EXPLAIN', 'FALSE', 'FIELDS', 'FORCE', 'FOREIGN', 'FULLTEXT', 'GEOMETRY', 'GRANT', 'GROUP', 'HASH', - 'HAVING', 'HELP', 'HIGH_PRIORITY', 'IGNORE', 'INNER', 'INNODB', 'INTERVAL', 'JOIN', 'KEYS', 'KILL', - 'LINES', 'LOW_PRIORITY', 'MASTER_SERVER_ID', 'MATCH', 'MIDDLEINT', 'MRG_MYISAM', 'NATURAL', 'OPTIMIZE', - 'OPTION', 'OPTIONALLY', 'ORDER', 'OUTER', 'OUTFILE', 'PRIVILEGES', 'PURGE', 'READ', 'REFERENCES', - 'REQUIRE', 'RESTRICT', 'RETURNS', 'REVOKE', 'RLIKE', 'RTREE', 'SOME', 'SONAME', 'SPATIAL', 'SQL_BIG_RESULT', - 'SQL_CALC_FOUND_ROWS', 'SQL_SMALL_RESULT', 'SSL', 'STARTING', 'STRAIGHT_JOIN', 'STRIPED', 'TERMINATED', - 'TRUE', 'TYPES', 'UNION', 'USAGE', 'USER_RESOURCES', 'USING', 'VARCHARACTER', 'WARNINGS', 'WHERE', 'WRITE', - - /* Control Flow Functions */ - 'CASE', 'WHEN', 'THEN', 'ELSE', 'END', - - /* String Functions */ - 'UNHEX', 'BIN', 'BIT_LENGTH', 'CHAR_LENGTH', 'CHARACTER_LENGTH', 'COMPRESS', 'CONCAT', - 'CONCAT_WS', 'CONV', 'ELT', 'EXPORT_SET', 'FIELD', 'FIND_IN_SET', 'FORMAT', 'HEX', - 'INSERT', 'INSTR', 'LCASE', 'LEFT', 'LENGTH', 'LOAD_FILE', 'LOCATE', 'LOWER', 'LPAD', - 'LTRIM', 'MAKE_SET', 'MID', 'OCT', 'OCTET_LENGTH', 'ORD', 'POSITION', 'QUOTE', 'REPEAT', - 'REPLACE', 'REVERSE', 'RIGHT', 'RPAD', 'RTRIM', 'SOUNDEX', 'SPACE', 'SUBSTRING', - 'SUBSTRING_INDEX', 'TRIM', 'UCASE', 'UPPER', 'UNCOMPRESS', 'UNCOMPRESSD_LENGTH', - 'MD5', 'SHA1', - - /* Numeric Functions */ - 'ABS', 'ACOS', 'ASIN', 'ATAN', 'ATAN2', 'CEILING', 'CEIL', 'COS', 'COT', 'CRC32', 'DEGREES', - 'EXP', 'FLOOR', 'LN', 'LOG', 'LOG2', 'LOG10', 'MOD', 'PI', 'POW', 'POWER', 'RADIANS', 'RAND', - 'ROUND', 'SIGN', 'SIN', 'SQRT', 'TAN', 'TRUNCATE', - - /* Date and Time Functions */ - 'ADDDATE', 'ADDTIME', 'CONVERT_TZ', 'CURDATE', 'CURRENT_DATE', 'CURTIME', 'CURRENT_TIME', - 'CURRENT_TIMESTAMP', 'DATEDIFF', 'DATE_ADD', 'DATE_SUB', 'DATE_FORMAT', 'DAY', - 'DAYNAME', 'DAYOFMONTH', 'DAYOFWEEK', 'DAYOFYEAR', 'EXTRACT', 'FROM_DAYS', 'FROM_UNIXTIME', - 'GET_FORMAT', 'LAST_DAY', 'LOCALTIME', 'LOCALTIMESTAMP', 'MAKEDATE', 'MAKETIME', - 'MICROSECOND', 'MONTHNAME', 'NOW', 'PERIOD_ADD', 'PERIOD_DIFF', 'QUARTER', - 'SECOND', 'SEC_TO_TIME', 'STR_TO_DATE', 'SUBDATE', 'SUBTIME', 'SYSDATE', 'TIME', 'TIMEDIFF', - 'TIMESTAMP', 'TIMESTAMPADD', 'TIMESTAMPDIFF', 'TIME_FORMAT', 'TIME_TO_SEC', 'TO_DAYS', - 'UNIX_TIMESTAMP', 'UTC_DATE', 'UTC_TIME', 'UTC_TIMESTAMP', 'WEEKDAY', 'WEEKOFYEAR', - 'YEARWEEK', + // Mix: statement keywords and keywords that don't fit in any other + // category, or have multiple usage/meanings + 'ACTION','ADD','AFTER','ALGORITHM','ALL','ALTER','ANALYZE','ANY', + 'ASC','AS','BDB','BEGIN','BERKELEYDB','BINARY','BTREE','CALL', + 'CASCADED','CASCADE','CHAIN','CHECK','COLUMNS','COLUMN','COMMENT', + 'COMMIT','COMMITTED','CONSTRAINT','CONTAINS SQL','CONSISTENT', + 'CONVERT','CREATE','CROSS','DATA','DATABASES', + 'DECLARE','DEFINER','DELAYED','DELETE','DESCRIBE','DESC', + 'DETERMINISTIC','DISABLE','DISCARD','DISTINCTROW','DISTINCT','DO', + 'DROP','DUMPFILE','DUPLICATE KEY','ENABLE','ENCLOSED BY','ENGINE', + 'ERRORS','ESCAPED BY','EXISTS','EXPLAIN','EXTENDED','FIELDS', + 'FIRST','FOR EACH ROW','FORCE','FOREIGN KEY','FROM','FULL', + 'FUNCTION','GLOBAL','GRANT','GROUP BY','HANDLER','HASH','HAVING', + 'HELP','HIGH_PRIORITY','IF NOT EXISTS','IGNORE','IMPORT','INDEX', + 'INFILE','INNER','INNODB','INOUT','INTO','INVOKER', + 'ISOLATION LEVEL','JOIN','KEYS','KEY','KILL','LANGUAGE SQL','LAST', + 'LIMIT','LINES','LOAD','LOCAL','LOCK','LOW_PRIORITY', + 'MASTER_SERVER_ID','MATCH','MERGE','MIDDLEINT','MODIFIES SQL DATA', + 'MODIFY','MRG_MYISAM','NATURAL','NEXT','NO SQL','NO','ON', + 'OPTIMIZE','OPTIONALLY','OPTION','ORDER BY','OUTER','OUTFILE','OUT', + 'PARTIAL','PREV','PRIMARY KEY','PRIVILEGES','PROCEDURE','PURGE', + 'QUICK','READS SQL DATA','READ','REFERENCES','RELEASE','RENAME', + 'REPEATABLE','REQUIRE','RESTRICT','RETURNS','REVOKE', + 'ROLLBACK','ROUTINE','RTREE','SAVEPOINT','SELECT', + 'SERIALIZABLE','SESSION','SET','SHARE MODE','SHOW','SIMPLE', + 'SNAPSHOT','SOME','SONAME','SQL SECURITY','SQL_BIG_RESULT', + 'SQL_BUFFER_RESULT','SQL_CACHE','SQL_CALC_FOUND_ROWS', + 'SQL_NO_CACHE','SQL_SMALL_RESULT','SSL','START','STARTING BY', + 'STATUS','STRAIGHT_JOIN','STRIPED','TABLESPACE','TABLES','TABLE', + 'TEMPORARY','TEMPTABLE','TERMINATED BY','TO','TRANSACTIONS', + 'TRANSACTION','TRIGGER','TYPES','TYPE','UNCOMMITTED','UNDEFINED', + 'UNION','UNLOCK_TABLES','UPDATE','USAGE','USE','USER_RESOURCES', + 'USING','VALUES','VALUE','VIEW','WARNINGS','WHERE','WITH ROLLUP', + 'WITH','WORK','WRITE', ), - 2 => array( - 'INTEGER', 'SMALLINT', 'DECIMAL', 'NUMERIC', 'FLOAT', 'REAL', 'DOUBLE PRECISION', - 'DOUBLE', 'INT', 'DEC', 'BIT' ,'TINYINT', 'SMALLINT', 'MEDIUMINT', 'BIGINT', - 'DATETIME', 'DATE', 'TIMESTAMP', 'TIME', 'YEAR', - 'CHAR', 'VARCHAR', 'BINARY', 'CHARACTER VARYING', 'VARBINARY', 'TINYBLOB', 'TINYTEXT', - 'BLOB', 'TEXT','MEDIUMBLOB', 'MEDIUMTEXT', 'LONGBLOB', 'LONGTEXT', 'ENUM', 'SET', - 'SERIAL DEFAULT VALUE', 'SERIAL', 'FIXED' + 2 => array( //No ( must follow + // Mix: statement keywords distinguished from functions by the same name + "CURRENT_USER", "DATABASE", "IN", "INSERT", "DEFAULT", "REPLACE", "SCHEMA", "TRUNCATE" ), 3 => array( - 'ZEROFILL', 'NOT NULL', 'UNSIGNED', 'AUTO_INCREMENT', 'UNIQUE', 'NOT', 'NULL', 'CHARACTER SET', 'CHARSET', - 'ASCII', 'UNICODE', 'NATIONAL', 'BOTH', 'LEADING', 'TRAILING','DEFAULT' + // Values (Constants) + 'FALSE','NULL','TRUE', ), 4 => array( - 'MICROSECOND', 'SECOND', 'MINUTE', 'HOUR', 'DAY', 'WEEK', 'MONTH', 'QUARTER', 'YEAR', 'SECOND_MICROSECOND', - 'MINUTE_MICROSECOND', 'MINUTE_SECOND', 'HOUR_MICROSECOND', 'HOUR_SECOND', 'HOUR_MINUTE', 'DAY_MICROSECOND', - 'DAY_SECOND', 'DAY_MINUTE', 'DAY_HOUR', 'YEAR_MONTH' + // Column Data Types + 'BIGINT','BIT','BLOB','BOOLEAN','BOOL','CHARACTER VARYING', + 'CHAR VARYING','DATETIME','DECIMAL','DEC','DOUBLE PRECISION', + 'DOUBLE','ENUM','FIXED','FLOAT','GEOMETRYCOLLECTION','GEOMETRY', + 'INTEGER','INT','LINESTRING','LONGBLOB','LONGTEXT','MEDIUMBLOB', + 'MEDIUMINT','MEDIUMTEXT','MULTIPOINT','MULTILINESTRING', + 'MULTIPOLYGON','NATIONAL CHARACTER','NATIONAL CHARACTER VARYING', + 'NATIONAL CHAR VARYING','NATIONAL VARCHAR','NCHAR VARCHAR','NCHAR', + 'NUMERIC','POINT','POLYGON','REAL','SERIAL', + 'SMALLINT','TEXT','TIMESTAMP','TINYBLOB','TINYINT', + 'TINYTEXT','VARBINARY','VARCHARACTER','VARCHAR', + ), + 5 => array( //No ( must follow + // Column data types distinguished from functions by the same name + "CHAR", "DATE", "TIME" + ), + 6 => array( + // Table, Column & Index Attributes + 'AUTO_INCREMENT','AVG_ROW_LENGTH','BOTH','CHECKSUM','CONNECTION', + 'DATA DIRECTORY','DEFAULT NULL','DELAY_KEY_WRITE','FULLTEXT', + 'INDEX DIRECTORY','INSERT_METHOD','LEADING','MAX_ROWS','MIN_ROWS', + 'NOT NULL','PACK_KEYS','ROW_FORMAT','SERIAL DEFAULT VALUE','SIGNED', + 'SPATIAL','TRAILING','UNIQUE','UNSIGNED','ZEROFILL' + ), + 7 => array( //No ( must follow + // Column attribute distinguished from function by the same name + "CHARSET" + ), + 8 => array( + // Date and Time Unit Specifiers + 'DAY_HOUR','DAY_MICROSECOND','DAY_MINUTE','DAY_SECOND', + 'HOUR_MICROSECOND','HOUR_MINUTE','HOUR_SECOND', + 'MINUTE_MICROSECOND','MINUTE_SECOND', + 'SECOND_MICROSECOND','YEAR_MONTH' + ), + 9 => array( //No ( must follow + // Date-time unit specifiers distinguished from functions by the same name + "DAY", "HOUR", "MICROSECOND", "MINUTE", "MONTH", "QUARTER", "SECOND", "WEEK", "YEAR" + ), + 10 => array( + // Operators (see also Symbols) + 'AND','BETWEEN','CHARACTER SET','COLLATE','DIV','IS NOT NULL', + 'IS NOT','IS NULL','IS','LIKE','NOT','OFFSET','OR','REGEXP','RLIKE', + 'SOUNDS LIKE','XOR' + ), + 11 => array( //No ( must follow + // Operator distinghuished from function by the same name + "INTERVAL" + ), + 12 => array( + // Control Flow (functions) + 'CASE','ELSE','END','IFNULL','IF','NULLIF','THEN','WHEN', + ), + 13 => array( + // String Functions + 'ASCII','BIN','BIT_LENGTH','CHAR_LENGTH','CHARACTER_LENGTH', + 'CONCAT_WS','CONCAT','ELT','EXPORT_SET','FIELD', + 'FIND_IN_SET','FORMAT','HEX','INSTR','LCASE','LEFT','LENGTH', + 'LOAD_FILE','LOCATE','LOWER','LPAD','LTRIM','MAKE_SET','MID', + 'OCTET_LENGTH','ORD','POSITION','QUOTE','REPEAT','REVERSE', + 'RIGHT','RPAD','RTRIM','SOUNDEX','SPACE','STRCMP','SUBSTRING_INDEX', + 'SUBSTRING','TRIM','UCASE','UNHEX','UPPER', + ), + 14 => array( //A ( must follow + // String functions distinguished from other keywords by the same name + "INSERT", "REPLACE", "CHAR" + ), + 15 => array( + // Numeric Functions + 'ABS','ACOS','ASIN','ATAN2','ATAN','CEILING','CEIL', + 'CONV','COS','COT','CRC32','DEGREES','EXP','FLOOR','LN','LOG10', + 'LOG2','LOG','MOD','OCT','PI','POWER','POW','RADIANS','RAND', + 'ROUND','SIGN','SIN','SQRT','TAN', + ), + 16 => array( //A ( must follow + // Numeric function distinguished from other keyword by the same name + "TRUNCATE" + ), + 17 => array( + // Date and Time Functions + 'ADDDATE','ADDTIME','CONVERT_TZ','CURDATE','CURRENT_DATE', + 'CURRENT_TIME','CURRENT_TIMESTAMP','CURTIME','DATE_ADD', + 'DATE_FORMAT','DATE_SUB','DATEDIFF','DAYNAME','DAYOFMONTH', + 'DAYOFWEEK','DAYOFYEAR','EXTRACT','FROM_DAYS','FROM_UNIXTIME', + 'GET_FORMAT','LAST_DAY','LOCALTIME','LOCALTIMESTAMP','MAKEDATE', + 'MAKETIME','MONTHNAME','NOW','PERIOD_ADD', + 'PERIOD_DIFF','SEC_TO_TIME','STR_TO_DATE','SUBDATE','SUBTIME', + 'SYSDATE','TIME_FORMAT','TIME_TO_SEC', + 'TIMESTAMPADD','TIMESTAMPDIFF','TO_DAYS', + 'UNIX_TIMESTAMP','UTC_DATE','UTC_TIME','UTC_TIMESTAMP','WEEKDAY', + 'WEEKOFYEAR','YEARWEEK', ), - 5 => array( - 'OR', 'XOR', 'AND', 'NOT', 'BETWEEN', 'IS', 'LIKE', 'REGEXP', 'IN', 'DIV', - 'MOD', 'BINARY', 'COLLATE', 'LIMIT', 'OFFSET' + 18 => array( //A ( must follow + // Date-time functions distinguished from other keywords by the same name + "DATE", "DAY", "HOUR", "MICROSECOND", "MINUTE", "MONTH", "QUARTER", + "SECOND", "TIME", "WEEK", "YEAR" + ), + 19 => array( + // Comparison Functions + 'COALESCE','GREATEST','ISNULL','LEAST', + ), + 20 => array( //A ( must follow + // Comparison functions distinguished from other keywords by the same name + "IN", "INTERVAL" + ), + 21 => array( + // Encryption and Compression Functions + 'AES_DECRYPT','AES_ENCRYPT','COMPRESS','DECODE','DES_DECRYPT', + 'DES_ENCRYPT','ENCODE','ENCRYPT','MD5','OLD_PASSWORD','PASSWORD', + 'SHA1','SHA','UNCOMPRESS','UNCOMPRESSED_LENGTH', + ), + 22 => array( + // GROUP BY (aggregate) Functions + 'AVG','BIT_AND','BIT_OR','BIT_XOR','COUNT','GROUP_CONCAT', + 'MAX','MIN','STDDEV_POP','STDDEV_SAMP','STDDEV','STD','SUM', + 'VAR_POP','VAR_SAMP','VARIANCE', + ), + 23 => array( + // Information Functions + 'BENCHMARK','COERCIBILITY','COLLATION','CONNECTION_ID', + 'FOUND_ROWS','LAST_INSERT_ID','ROW_COUNT', + 'SESSION_USER','SYSTEM_USER','USER','VERSION', + ), + 24 => array( //A ( must follow + // Information functions distinguished from other keywords by the same name + "CURRENT_USER", "DATABASE", "SCHEMA", "CHARSET" + ), + 25 => array( + // Miscellaneous Functions + 'ExtractValue','BIT_COUNT','GET_LOCK','INET_ATON','INET_NTOA', + 'IS_FREE_LOCK','IS_USED_LOCK','MASTER_POS_WAIT','NAME_CONST', + 'RELEASE_LOCK','SLEEP','UpdateXML','UUID', + ), + 26 => array( //A ( must follow + // Miscellaneous function distinguished from other keyword by the same name + "DEFAULT" + ), + 27 => array( + // Geometry Functions + 'Area','AsBinary','AsText','AsWKB','AsWKT','Boundary','Buffer', + 'Centroid','Contains','ConvexHull','Crosses', + 'Difference','Dimension','Disjoint','Distance', + 'EndPoint','Envelope','Equals','ExteriorRing', + 'GLength','GeomCollFromText','GeomCollFromWKB','GeomFromText', + 'GeomFromWKB','GeometryCollectionFromText', + 'GeometryCollectionFromWKB','GeometryFromText','GeometryFromWKB', + 'GeometryN','GeometryType', + 'InteriorRingN','Intersection','Intersects','IsClosed','IsEmpty', + 'IsRing','IsSimple', + 'LineFromText','LineFromWKB','LineStringFromText', + 'LineStringFromWKB', + 'MBRContains','MBRDisjoint','MBREqual','MBRIntersects', + 'MBROverlaps','MBRTouches','MBRWithin','MLineFromText', + 'MLineFromWKB','MPointFromText','MPointFromWKB','MPolyFromText', + 'MPolyFromWKB','MultiLineStringFromText','MultiLineStringFromWKB', + 'MultiPointFromText','MultiPointFromWKB','MultiPolygonFromText', + 'MultiPolygonFromWKB', + 'NumGeometries','NumInteriorRings','NumPoints', + 'Overlaps', + 'PointFromText','PointFromWKB','PointN','PointOnSurface', + 'PolyFromText','PolyFromWKB','PolygonFromText','PolygonFromWKB', + 'Related','SRID','StartPoint','SymDifference', + 'Touches', + 'Union', + 'Within', + 'X', + 'Y', ), ), 'SYMBOLS' => array( - ':=', - '||', 'OR', 'XOR', - '&&', 'AND', - 'NOT', - 'BETWEEN', 'CASE', 'WHEN', 'THEN', 'ELSE', - '=', '<=>', '>=', '>', '<=', '<', '<>', '!=', 'IS', 'LIKE', 'REGEXP', 'IN', - '|', - '&', - '<<', '>>', - '-', '+', - '*', '/', 'DIV', '%', 'MOD', - '^', - '~', - '!', - 'BINARY', 'COLLATE', - '(', ')', + 1 => array( + /* Operators */ + '=', ':=', // assignment operators + '||', '&&', '!', // locical operators + '=', '<=>', '>=', '>', '<=', '<', '<>', '!=', // comparison operators + '|', '&', '^', '~', '<<', '>>', // bitwise operators + '-', '+', '*', '/', '%', // numerical operators + ), + 2 => array( + /* Other syntactical symbols */ + '(', ')', + ',', ';', + ), ), 'CASE_SENSITIVE' => array( GESHI_COMMENTS => false, @@ -132,37 +304,86 @@ $language_data = array ( 2 => false, 3 => false, 4 => false, - 5 => false + 5 => false, + 6 => false, + 7 => false, + 8 => false, + 9 => false, + 10 => false, + 11 => false, + 12 => false, + 13 => false, + 13 => false, + 14 => false, + 15 => false, + 16 => false, + 17 => false, + 18 => false, + 19 => false, + 20 => false, + 21 => false, + 22 => false, + 23 => false, + 24 => false, + 25 => false, + 26 => false, + 27 => false, ), 'STYLES' => array( 'KEYWORDS' => array( - 1 => 'color: #993333; font-weight: bold;', - 2 => 'color: #aa9933; font-weight: bold;', - 3 => 'color: #aa3399; font-weight: bold;', - 4 => 'color: #33aa99; font-weight: bold;', - 5 => 'color: #993333; font-weight: bold;' + 1 => 'color: #990099; font-weight: bold;', // mix + 2 => 'color: #990099; font-weight: bold;', // mix + 3 => 'color: #9900FF; font-weight: bold;', // constants + 4 => 'color: #999900; font-weight: bold;', // column data types + 5 => 'color: #999900; font-weight: bold;', // column data types + 6 => 'color: #FF9900; font-weight: bold;', // attributes + 7 => 'color: #FF9900; font-weight: bold;', // attributes + 8 => 'color: #9900FF; font-weight: bold;', // date-time units + 9 => 'color: #9900FF; font-weight: bold;', // date-time units + + 10 => 'color: #CC0099; font-weight: bold;', // operators + 11 => 'color: #CC0099; font-weight: bold;', // operators + + 12 => 'color: #009900;', // control flow (functions) + 13 => 'color: #000099;', // string functions + 14 => 'color: #000099;', // string functions + 15 => 'color: #000099;', // numeric functions + 16 => 'color: #000099;', // numeric functions + 17 => 'color: #000099;', // date-time functions + 18 => 'color: #000099;', // date-time functions + 19 => 'color: #000099;', // comparison functions + 20 => 'color: #000099;', // comparison functions + 21 => 'color: #000099;', // encryption functions + 22 => 'color: #000099;', // aggregate functions + 23 => 'color: #000099;', // information functions + 24 => 'color: #000099;', // information functions + 25 => 'color: #000099;', // miscellaneous functions + 26 => 'color: #000099;', // miscellaneous functions + 27 => 'color: #00CC00;', // geometry functions ), 'COMMENTS' => array( - 'MULTI' => 'color: #808080; font-style: italic;', + 'MULTI' => 'color: #808000; font-style: italic;', 1 => 'color: #808080; font-style: italic;', 2 => 'color: #808080; font-style: italic;' ), 'ESCAPE_CHAR' => array( - 0 => 'color: #000099; font-weight: bold;' + 0 => 'color: #004000; font-weight: bold;', + 1 => 'color: #008080; font-weight: bold;' // search wildcards ), 'BRACKETS' => array( - 0 => 'color: #66cc66;' + 0 => 'color: #FF00FF;' ), 'STRINGS' => array( - 0 => 'color: #ff0000;' + 0 => 'color: #008000;' ), 'NUMBERS' => array( - 0 => 'color: #cc66cc;' + 0 => 'color: #008080;' ), 'METHODS' => array( ), 'SYMBOLS' => array( - 0 => 'color: #66cc66;' + 1 => 'color: #CC0099;', // operators + 2 => 'color: #000033;', // syntax ), 'SCRIPT' => array( ), @@ -170,11 +391,35 @@ $language_data = array ( ) ), 'URLS' => array( - 1 => '', - 2 => '', - 3 => '', - 4 => '', - 5 => '' + 1 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', + 2 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', + 3 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', + 4 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', + 5 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', + 6 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', + 7 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', + 8 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', + 9 => 'http://search.mysql.com/search?site=refman-51&q={FNAME}&lr=lang_en', + + 10 => 'http://dev.mysql.com/doc/refman/5.1/en/non-typed-operators.html', + 11 => 'http://dev.mysql.com/doc/refman/5.1/en/non-typed-operators.html', + + 12 => 'http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html', + 13 => 'http://dev.mysql.com/doc/refman/5.1/en/string-functions.html', + 14 => 'http://dev.mysql.com/doc/refman/5.1/en/string-functions.html', + 15 => 'http://dev.mysql.com/doc/refman/5.1/en/numeric-functions.html', + 16 => 'http://dev.mysql.com/doc/refman/5.1/en/numeric-functions.html', + 17 => 'http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html', + 18 => 'http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html', + 19 => 'http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.html', + 20 => 'http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.html', + 21 => 'http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html', + 22 => 'http://dev.mysql.com/doc/refman/5.1/en/group-by-functions-and-modifiers.html', + 23 => 'http://dev.mysql.com/doc/refman/5.1/en/information-functions.html', + 24 => 'http://dev.mysql.com/doc/refman/5.1/en/information-functions.html', + 25 => 'http://dev.mysql.com/doc/refman/5.1/en/func-op-summary-ref.html', + 26 => 'http://dev.mysql.com/doc/refman/5.1/en/func-op-summary-ref.html', + 27 => 'http://dev.mysql.com/doc/refman/5.1/en/analysing-spatial-information.html', ), 'OOLANG' => false, 'OBJECT_SPLITTERS' => array( @@ -185,6 +430,45 @@ $language_data = array ( 'SCRIPT_DELIMITERS' => array( ), 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 2 => array( + 'DISALLOWED_AFTER' => '(?![\(\w])' + ), + 5 => array( + 'DISALLOWED_AFTER' => '(?![\(\w])' + ), + 7 => array( + 'DISALLOWED_AFTER' => '(?![\(\w])' + ), + 9 => array( + 'DISALLOWED_AFTER' => '(?![\(\w])' + ), + 11 => array( + 'DISALLOWED_AFTER' => '(?![\(\w])' + ), + + 14 => array( + 'DISALLOWED_AFTER' => '(?=\()' + ), + 16 => array( + 'DISALLOWED_AFTER' => '(?=\()' + ), + 18 => array( + 'DISALLOWED_AFTER' => '(?=\()' + ), + 20 => array( + 'DISALLOWED_AFTER' => '(?=\()' + ), + 24 => array( + 'DISALLOWED_AFTER' => '(?=\()' + ), + 26 => array( + 'DISALLOWED_AFTER' => '(?=\()' + ) + ) ) ); |