[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/vendor/geshi/geshi/src/geshi/ -> postgresql.php (source)

   1  <?php
   2  /*************************************************************************************
   3   * postgresql.php
   4   * -----------
   5   * Author: Christophe Chauvet (christophe_at_kryskool_dot_org)
   6   * Contributors: Leif Biberg Kristensen <leif_at_solumslekt_dot_org> 2010-05-03
   7   * Copyright: (c) 2007 Christophe Chauvet (http://kryskool.org/), Nigel McNie (http://qbnz.com/highlighter)
   8   * Release Version: 1.0.9.1
   9   * Date Started: 2007/07/20
  10   *
  11   * PostgreSQL language file for GeSHi.
  12   *
  13   * CHANGES
  14   * -------
  15   * 2007/07/20 (1.0.0)
  16   *  -  First Release
  17   *
  18   * TODO (updated 2007/07/20)
  19   * -------------------------
  20   *
  21   *************************************************************************************
  22   *
  23   *     This file is part of GeSHi.
  24   *
  25   *   GeSHi is free software; you can redistribute it and/or modify
  26   *   it under the terms of the GNU General Public License as published by
  27   *   the Free Software Foundation; either version 2 of the License, or
  28   *   (at your option) any later version.
  29   *
  30   *   GeSHi is distributed in the hope that it will be useful,
  31   *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  32   *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  33   *   GNU General Public License for more details.
  34   *
  35   *   You should have received a copy of the GNU General Public License
  36   *   along with GeSHi; if not, write to the Free Software
  37   *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  38   *
  39   ************************************************************************************/
  40  
  41  $language_data = array (
  42      'LANG_NAME' => 'PostgreSQL',
  43      'COMMENT_SINGLE' => array(1 => '--'),
  44      'COMMENT_MULTI' => array('/*' => '*/'),
  45      'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
  46      'QUOTEMARKS' => array("'", '"', '`'),
  47      'ESCAPE_CHAR' => '\\',
  48      'KEYWORDS' => array(
  49          //Put PostgreSQL reserved keywords here.  I like mine uppercase.
  50          1 => array(
  51              'ABORT','ABSOLUTE','ACCESS','ACTION','ADD','ADMIN','AFTER',
  52              'AGGREGATE','ALL','ALSO','ALTER','ALWAYS','ANALYSE','ANALYZE','AND',
  53              'ANY','AS','ASC,','ASSERTION','ASSIGNMENT','ASYMMETRIC','AT',
  54              'AUTHORIZATION','BACKWARD','BEFORE','BEGIN','BETWEEN','BOTH','BY',
  55              'CACHE','CALLED','CASCADE','CASCADED','CASE','CAST','CATALOG',
  56              'CHAIN','CHARACTERISTICS','CHECK','CHECKPOINT','CLASS','CLOSE',
  57              'CLUSTER','COALESCE','COLLATE','COLUMN','COMMENT','COMMIT',
  58              'COMMITTED','CONCURRENTLY','CONFIGURATION','CONNECTION',
  59              'CONSTRAINT','CONSTRAINTS','CONTENT','CONTINUE','CONVERSION','COPY',
  60              'COST','CREATE','CREATEDB','CREATEROLE','CREATEUSER','CROSS','CSV',
  61              'CURRENT','CURRENT_CATALOG','CURRENT_DATE','CURRENT_ROLE',
  62              'CURRENT_SCHEMA','CURRENT_TIME','CURRENT_TIMESTAMP','CURRENT_USER',
  63              'CURSOR','CYCLE','DATA','DATABASE','DAY','DEALLOCATE','DEC',
  64              'DECLARE','DEFAULT','DEFAULTS','DEFERRABLE','DEFERRED','DEFINER',
  65              'DELETE','DELIMITER','DELIMITERS','DESC','DICTIONARY','DISABLE',
  66              'DISCARD','DISTINCT','DO','DOCUMENT','DOMAIN','DOUBLE','DROP',
  67              'EACH','ELSE','ENABLE','ENCODING','ENCRYPTED','END','ESCAPE',
  68              'EXCEPT','EXCLUDING','EXCLUSIVE','EXECUTE','EXISTS','EXPLAIN',
  69              'EXTERNAL','EXTRACT','FALSE','FAMILY','FETCH','FIRST','FOLLOWING',
  70              'FOR','FORCE','FOREIGN','FORWARD','FREEZE','FROM','FULL','FUNCTION',
  71              'GLOBAL','GRANT','GRANTED','GREATEST','GROUP','HANDLER','HAVING',
  72              'HEADER','HOLD','HOUR','IDENTITY','IF','ILIKE','IMMEDIATE',
  73              'IMMUTABLE','IMPLICIT','IN','INCLUDING','INCREMENT','INDEX',
  74              'INDEXES','INHERIT','INHERITS','INITIALLY','INNER','INOUT','INPUT',
  75              'INSENSITIVE','INSERT','INSTEAD','INTERSECT','INTO','INVOKER','IS',
  76              'ISNULL','ISOLATION','JOIN','KEY','LANCOMPILER','LANGUAGE','LARGE',
  77              'LAST','LC_COLLATE','LC_CTYPE','LEADING','LEAST','LEFT','LEVEL',
  78              'LIKE','LIMIT','LISTEN','LOAD','LOCAL','LOCALTIME','LOCALTIMESTAMP',
  79              'LOCATION','LOCK','LOGIN','LOOP','MAPPING','MATCH','MAXVALUE',
  80              'MINUTE','MINVALUE','MODE','MONTH','MOVE','NAME','NAMES','NATIONAL',
  81              'NATURAL','NEW','NEXT','NO','NOCREATEDB','NOCREATEROLE',
  82              'NOCREATEUSER','NOINHERIT','NOLOGIN','NONE','NOSUPERUSER','NOT',
  83              'NOTHING','NOTIFY','NOTNULL','NOWAIT','NULL','NULLIF','NULLS',
  84              'NUMERIC','OBJECT','OF','OFF','OFFSET','OIDS','OLD','ON','ONLY',
  85              'OPERATOR','OPTION','OPTIONS','OR','ORDER','OUT','OUTER','OVER',
  86              'OVERLAPS','OVERLAY','OWNED','OWNER','PARSER','PARTIAL','PARTITION',
  87              'PASSWORD','PLACING','PLANS','POSITION','PRECEDING','PRECISION',
  88              'PREPARE','PREPARED','PRESERVE','PRIMARY','PRIOR','PRIVILEGES',
  89              'PROCEDURAL','PROCEDURE','QUOTE','RANGE','READ','REASSIGN',
  90              'RECHECK','RECURSIVE','REFERENCES','REINDEX','RELATIVE','RELEASE',
  91              'RENAME','REPEATABLE','REPLACE','REPLICA','RESET','RESTART',
  92              'RESTRICT','RETURN','RETURNING','RETURNS','REVOKE','RIGHT','ROLE',
  93              'ROLLBACK','ROW','ROWS','RULE','SAVEPOINT','SCHEMA','SCROLL',
  94              'SEARCH','SECOND',
  95              'SECURITY','SELECT','SEQUENCE','SERIALIZABLE','SERVER','SESSION',
  96              'SESSION_USER','SET','SETOF','SHARE','SHOW','SIMILAR','SIMPLE',
  97              'SOME','STABLE','STANDALONE','START','STATEMENT','STATISTICS',
  98              'STDIN','STDOUT','STORAGE','STRICT','STRIP','SUPERUSER',
  99              'SYMMETRIC','SYSID','SYSTEM','TABLE','TABLESPACE','TEMP','TEMPLATE',
 100              'TEMPORARY','THEN','TO','TRAILING','TRANSACTION','TREAT','TRIGGER',
 101              'TRUE','TRUNCATE','TRUSTED','TYPE','UNBOUNDED','UNCOMMITTED',
 102              'UNENCRYPTED','UNION','UNIQUE','UNKNOWN','UNLISTEN','UNTIL',
 103              'UPDATE','USER','USING','VACUUM','VALID','VALIDATOR','VALUE',
 104              'VALUES','VARIADIC','VERBOSE','VERSION','VIEW','VOLATILE','WHEN',
 105              'WHERE','WHILE','WHITESPACE','WINDOW','WITH','WITHOUT','WORK','WRAPPER',
 106              'WRITE','XMLATTRIBUTES','XMLCONCAT','XMLELEMENT','XMLFOREST',
 107              'XMLPARSE','XMLPI','XMLROOT','XMLSERIALIZE','YEAR','YES','ZONE'
 108              ),
 109  
 110          //Put functions here
 111          3 => array(
 112              // mathematical functions
 113              'ABS','CBRT','CEIL','CEILING','DEGREES','DIV','EXP','FLOOR','LN',
 114              'LOG','MOD','PI','POWER','RADIANS','RANDOM','ROUND','SETSEED',
 115              'SIGN','SQRT','TRUNC','WIDTH_BUCKET',
 116              // trigonometric functions
 117              'ACOS','ASIN','ATAN','ATAN2','COS','COT','SIN','TAN',
 118              // string functions
 119              'BIT_LENGTH','CHAR_LENGTH','CHARACTER_LENGTH','LOWER',
 120              'OCTET_LENGTH','POSITION','SUBSTRING','TRIM','UPPER',
 121              // other string functions
 122              'ASCII','BTRIM','CHR','CONVERT','CONVERT_FROM','CONVERT_TO',
 123              'DECODE','ENCODE','INITCAP','LENGTH','LPAD','LTRIM','MD5',
 124              'PG_CLIENT_ENCODING','QUOTE_IDENT','QUOTE_LITERAL','QUOTE_NULLABLE',
 125              'REGEXP_MATCHES','REGEXP_REPLACE','REGEXP_SPLIT_TO_ARRAY',
 126              'REGEXP_SPLIT_TO_TABLE','REPEAT','RPAD','RTRIM','SPLIT_PART',
 127              'STRPOS','SUBSTR','TO_ASCII','TO_HEX','TRANSLATE',
 128              // binary string functions
 129              'GET_BIT','GET_BYTE','SET_BIT','SET_BYTE',
 130              // data type formatting functions
 131              'TO_CHAR','TO_DATE','TO_NUMBER','TO_TIMESTAMP',
 132              // date/time functions
 133              'AGE','CLOCK_TIMESTAMP','DATE_PART','DATE_TRUNC','EXTRACT',
 134              'ISFINITE','JUSTIFY_DAYS','JUSTIFY_HOURS','JUSTIFY_INTERVAL','NOW',
 135              'STATEMENT_TIMESTAMP','TIMEOFDAY','TRANSACTION_TIMESTAMP',
 136              // enum support functions
 137              'ENUM_FIRST','ENUM_LAST','ENUM_RANGE',
 138              // geometric functions
 139              'AREA','CENTER','DIAMETER','HEIGHT','ISCLOSED','ISOPEN','NPOINTS',
 140              'PCLOSE','POPEN','RADIUS','WIDTH',
 141              'BOX','CIRCLE','LSEG','PATH','POINT','POLYGON',
 142              // cidr and inet functions
 143              'ABBREV','BROADCAST','FAMILY','HOST','HOSTMASK','MASKLEN','NETMASK',
 144              'NETWORK','SET_MASKLEN',
 145              // text search functions
 146              'TO_TSVECTOR','SETWEIGHT','STRIP','TO_TSQUERY','PLAINTO_TSQUERY',
 147              'NUMNODE','QUERYTREE','TS_RANK','TS_RANK_CD','TS_HEADLINE',
 148              'TS_REWRITE','GET_CURRENT_TS_CONFIG','TSVECTOR_UPDATE_TRIGGER',
 149              'TSVECTOR_UPDATE_TRIGGER_COLUMN',
 150              'TS_DEBUG','TS_LEXISE','TS_PARSE','TS_TOKEN_TYPE','TS_STAT',
 151              // XML functions
 152              'XMLCOMMENT','XMLCONCAT','XMLELEMENT','XMLFOREST','XMLPI','XMLROOT',
 153              'XMLAGG','XPATH','TABLE_TO_XMLSCHEMA','QUERY_TO_XMLSCHEMA',
 154              'CURSOR_TO_XMLSCHEMA','TABLE_TO_XML_AND_XMLSCHEMA',
 155              'QUERY_TO_XML_AND_XMLSCHEMA','SCHEMA_TO_XML','SCHEMA_TO_XMLSCHEMA',
 156              'SCHEMA_TO_XML_AND_XMLSCHEMA','DATABASE_TO_XML',
 157              'DATABASE_TO_XMLSCHEMA','DATABASE_TO_XML_AND_XMLSCHEMA',
 158              // sequence manipulating functions
 159              'CURRVAL','LASTVAL','NEXTVAL','SETVAL',
 160              // conditional expressions
 161              'COALESCE','NULLIF','GREATEST','LEAST',
 162              // array functions
 163              'ARRAY_APPEND','ARRAY_CAT','ARRAY_NDIMS','ARRAY_DIMS','ARRAY_FILL',
 164              'ARRAY_LENGTH','ARRAY_LOWER','ARRAY_PREPEND','ARRAY_TO_STRING',
 165              'ARRAY_UPPER','STRING_TO_ARRAY','UNNEST',
 166              // aggregate functions
 167              'ARRAY_AGG','AVG','BIT_AND','BIT_OR','BOOL_AND','BOOL_OR','COUNT',
 168              'EVERY','MAX','MIN','STRING_AGG','SUM',
 169              // statistic aggregate functions
 170              'CORR','COVAR_POP','COVAR_SAMP','REGR_AVGX','REGR_AVGY',
 171              'REGR_COUNT','REGR_INTERCEPT','REGR_R2','REGR_SLOPE','REGR_SXX',
 172              'REGR_SXY','REGR_SYY','STDDEV','STDDEV_POP','STDDEV_SAMP',
 173              'VARIANCE','VAR_POP','VAR_SAMP',
 174              // window functions
 175              'ROW_NUMBER','RANK','DENSE_RANK','PERCENT_RANK','CUME_DIST','NTILE',
 176              'LAG','LEAD','FIRST_VALUE','LAST_VALUE','NTH_VALUE',
 177              // set returning functions
 178              'GENERATE_SERIES','GENERATE_SUBSCRIPTS'
 179              // system information functions not currently included
 180              ),
 181  
 182          //Put your postgresql var
 183          4 => array(
 184              'client_encoding',
 185              'standard_conforming_strings'
 186              ),
 187  
 188          //Put your data types here
 189          5 => array(
 190              'ARRAY','ABSTIME','BIGINT','BIGSERIAL','BINARY','BIT','BIT VARYING',
 191              'BOOLEAN','BOX','BYTEA','CHAR','CHARACTER','CHARACTER VARYING',
 192              'CIDR','CIRCLE','DATE','DECIMAL','DOUBLE PRECISION','ENUM','FLOAT',
 193              'INET','INT','INTEGER','INTERVAL','NCHAR','REAL','SMALLINT','TEXT',
 194              'TIME','TIMESTAMP','VARCHAR','XML',
 195              ),
 196  
 197          //        //Put your package names here
 198          //        6 => array(
 199          //            ),
 200  
 201          ),
 202      'SYMBOLS' => array(
 203          '(', ')', '=', '<', '>', '|'
 204          ),
 205      'CASE_SENSITIVE' => array(
 206          GESHI_COMMENTS => false,
 207          1 => false,
 208          3 => false,
 209          4 => false,
 210          5 => false
 211          ),
 212      'STYLES' => array(
 213          'KEYWORDS' => array(
 214              // regular keywords
 215              1 => 'color: #000000; font-weight: bold; text-transform: uppercase;',
 216              // inbuilt functions
 217              3 => 'color: #333399; font-weight: bold; text-transform: uppercase;',
 218              // postgresql var(?)
 219              4 => 'color: #993333; font-weight: bold; text-transform: uppercase;',
 220              // data types
 221              5 => 'color: #993333; font-weight: bold; text-transform: uppercase;',
 222              ),
 223          'COMMENTS' => array(
 224              1 => 'color: #808080; font-style: italic;',
 225              ),
 226          'ESCAPE_CHAR' => array(
 227              0 => 'color: #000099; font-weight: bold;'
 228              ),
 229          'BRACKETS' => array(
 230              0 => 'color: #66cc66;'
 231              ),
 232          'STRINGS' => array(
 233              0 => 'color: #ff0000;'
 234              ),
 235          'NUMBERS' => array(
 236              0 => 'color: #cc66cc;'
 237              ),
 238          'METHODS' => array(
 239              1 => 'color: #ff0000;'
 240              ),
 241          'SYMBOLS' => array(
 242              0 => 'color: #66cc66;'
 243              ),
 244          'SCRIPT' => array(
 245              ),
 246          'REGEXPS' => array(
 247              )
 248          ),
 249      'URLS' => array(
 250          1 => '',
 251          3 => '',
 252          4 => 'http://paste.postgresql.fr/wiki/desc.php?def={FNAME}',
 253          5 => '',
 254          ),
 255  
 256      'OOLANG' => false,
 257      'OBJECT_SPLITTERS' => array(
 258          ),
 259      'REGEXPS' => array(
 260          ),
 261      'STRICT_MODE_APPLIES' => GESHI_NEVER,
 262      'SCRIPT_DELIMITERS' => array(
 263          ),
 264      'HIGHLIGHT_STRICT_BLOCK' => array(
 265          ),
 266      'PARSER_CONTROL' => array(
 267          'KEYWORDS' => array(
 268              1 => array(
 269                  'DISALLOWED_AFTER' => '(?![\(\w])'
 270                  ),
 271  
 272              3 => array(
 273                  'DISALLOWED_AFTER' => '(?=\()'
 274                  ),
 275  
 276              4 => array(
 277                  'DISALLOWED_AFTER' => '(?![\(\w])'
 278                  ),
 279  
 280              5 => array(
 281                  'DISALLOWED_AFTER' => '(?![\(\w])'
 282                  ),
 283              )
 284          )
 285  );