[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

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

   1  <?php
   2  /*************************************************************************************
   3   * algol68.php
   4   * --------
   5   * Author: Neville Dempsey (NevilleD.sourceforge@sgr-a.net)
   6   * Copyright: (c) 2010 Neville Dempsey (https://sourceforge.net/projects/algol68/files/)
   7   * Release Version: 1.0.9.1
   8   * Date Started: 2010/04/24
   9   *
  10   * ALGOL 68 language file for GeSHi.
  11   *
  12   * CHANGES
  13   * -------
  14   * 2010/04/24 (1.0.8.8.0)
  15   *   - First Release - machine generated by http://rosettacode.org/geshi/
  16   * 2010/05/24 (1.0.8.8.1)
  17   *   - #2324 - converted comment detection to RegEx
  18   * 2010/06/16 (1.0.8.8.2)
  19   *   - separate symbols from keywords - quick fix
  20   * 2010/06/16 (1.0.8.8.3)
  21   *   - reverse length order symbols
  22   *   - Add RegEx for BITS and REAL literals (INT to do)
  23   *   - recognise LONG and SHORT prefixes to literals
  24   * 2010/07/23 (1.0.8.8.4)
  25   *   - fix errors detected by langcheck.php, eg rm tab, fix indenting, rm duplicate keywords, fix symbols as keywords etc
  26   *   - removed bulk of local variables from name space.
  27   *   - unfolded arrays
  28   *
  29   * TODO (updated yyyy/mm/dd)
  30   * -------------------------
  31   *   - Use "Parser Control" to fix KEYWORD parsing, eg: (INT minus one= -1; print(ABSminus one))
  32   *   - Parse $FORMATS$ more fully - if possible.
  33   *   - Pull reserved words from the source of A68G and A68RS
  34   *   - Pull stdlib PROC/OP/MODE symbols from the soruce of A68G and A68RS
  35   *   - Pull PROC/OP/MODE extensions from the soruce of A68G and A68RS
  36   *   - Use RegEx to detect extended precision PROC names, eg 'long long sin' etc
  37   *   - Use RegEx to detect white space std PROC names, eg 'new line'
  38   *   - Use RegEx to detect white space ext PROC names, eg 'cgs speed of light'
  39   *   - Use RegEx to detect BOLD symbols, eg userdefined MODEs and OPs
  40   *   - Add REgEx for INT literals - Adding INT breaks formatting...
  41   *   - Adding PIPE as a key word breaks formatting of "|" symbols!!
  42   *
  43   *************************************************************************************
  44   *
  45   *     This file is part of GeSHi.
  46   *
  47   *   GeSHi is free software; you can redistribute it and/or modify
  48   *   it under the terms of the GNU General Public License as published by
  49   *   the Free Software Foundation; either version 2 of the License, or
  50   *   (at your option) any later version.
  51   *
  52   *   GeSHi is distributed in the hope that it will be useful,
  53   *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  54   *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  55   *   GNU General Public License for more details.
  56   *
  57   *   You should have received a copy of the GNU General Public License
  58   *   along with GeSHi; if not, write to the Free Software
  59   *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  60   *
  61   ************************************************************************************/
  62  
  63  if(!function_exists('geshi_langfile_algol68_vars')) {
  64      function geshi_langfile_algol68_vars(){
  65          $pre='(?<![0-9a-z_\.])';
  66          $post='?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)';
  67          $post=""; # assuming the RegEx is greedy #
  68  
  69          $_="\s*";
  70  
  71          $srad="Rr";        $rrad="[".$srad."]";  # either one digit, OR opt-space in digits #
  72          $sbin="0-1";       $rbin="[".$sbin."]";  $_bin=$rbin."(?:[".$sbin."\s]*".$rbin."|)";
  73          $snib="0-3";       $rnib="[".$snib."]";  $_nib=$rnib."(?:[".$snib."\s]*".$rnib."|)";
  74          $soct="0-7";       $roct="[".$soct."]";  $_oct=$roct."(?:[".$soct."\s]*".$roct."|)";
  75          $sdec="0-9";       $rdec="[".$sdec."]";  $_dec=$rdec."(?:[".$sdec."\s]*".$rdec."|)";
  76          $shex="0-9A-Fa-f"; $rhex="[".$shex."]";  $_hex=$rhex."(?:[".$shex."\s]*".$rhex."|)";
  77  
  78          # Define BITS: #
  79          $prebits=$pre; $postbits=$post;
  80          $bl="2".$_.$rrad.$_.$_bin;
  81          $bl=$bl."|"."2".$_.$rrad.$_.$_bin;
  82          $bl=$bl."|"."4".$_.$rrad.$_.$_nib;
  83          $bl=$bl."|"."8".$_.$rrad.$_.$_oct;
  84          $bl=$bl."|"."1".$_."0".$_.$rrad.$_.$_dec;
  85          $bl=$bl."|"."1".$_."6".$_.$rrad.$_.$_hex;
  86  
  87          # Define INT: #
  88          $preint=$pre; $postint=$post;
  89          # for some reason ".0 e - 2" is not recognised, but ".0 e + 2" IS!
  90          # work around: remove spaces between sign and digits! Maybe because
  91          # of the Unary '-' Operator
  92          $sign_="(?:-|\-|[-]|[\-]|\+|)";  # attempts # // FIXME: This should be used or removed. Assignment beneath
  93  
  94          $sign_="(?:-\s*|\+\s*|)"; # n.b. sign is followed by white space #
  95  
  96          $_int=$sign_.$_dec;
  97          $il=          $_int;                      # +_9           #
  98  
  99          //$GESHI_NUMBER_INT_BASIC='(?:(?<![0-9a-z_\.%])|(?<=\.\.))(?<![\d\.]e[+\-])([1-9]\d*?|0)(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)';
 100  
 101          # Define REAL: #
 102          $prereal=$pre; $postreal=$post;
 103          $sexp="Ee\\\\";   $_exp="(?:⏨|[".$sexp."])".$_.$_int;
 104          $_decimal="[.]".$_.$_dec;
 105  
 106          # Add permitted permutations of various parts #
 107          $rl=        $_int.$_.$_decimal.$_.$_exp; # +_9_._9_e_+_9 #
 108          $rl=$rl."|".$_int.$_."[.]".$_.$_exp;     # +_9_.___e_+_9 #
 109          $rl=$rl."|".$_int.$_.$_exp;              # +_9_____e_+_9 #
 110          $rl=$rl."|".$sign_.$_decimal.$_.$_exp;   # +___._9_e_+_9 #
 111  
 112          $rl=$rl."|".$_int.$_.$_decimal;          # +_9_._9       #
 113          $rl=$rl."|".$sign_.$_decimal;            # +___._9       #
 114  
 115          # The following line damaged formatting...
 116          #$rl=$rl."|".$_int;                       # +_9           #
 117  
 118          # Apparently Algol68 does not support '2.', c.f. Algol 68G
 119          #$rl=$rl."|".$_int.$_."[.]";             # +_9_.         #
 120  
 121          # Literal prefixes are overridden by KEYWORDS :-(
 122          $LONGS="(?:(?:(LONG\s+)*|(SHORT\s+))*|)";
 123  
 124          return array(
 125              "BITS" => $prebits.$LONGS."(?:".$bl.")".$postbits,
 126              "INT" => $preint.$LONGS."(?:".$il.")".$postint,
 127              "REAL" => $prereal.$LONGS."(?:".$rl.")".$postreal,
 128  
 129              "BOLD" => 'color: #b1b100; font-weight: bold;',
 130              "ITALIC" => 'color: #b1b100;', # procedures traditionally italic #
 131              "NONSTD" => 'color: #FF0000; font-weight: bold;', # RED #
 132              "COMMENT" => 'color: #666666; font-style: italic;'
 133          );
 134      }
 135  }
 136  $a68=geshi_langfile_algol68_vars();
 137  
 138  $language_data = array(
 139      'LANG_NAME' => 'ALGOL 68',
 140      'COMMENT_SINGLE' => array(),
 141      'COMMENT_MULTI' => array(
 142          '¢' => '¢',
 143          '£' => '£',
 144          '#' => '#',
 145          ),
 146      'COMMENT_REGEXP' => array(
 147          1 => '/\bCO((?:MMENT)?)\b.*?\bCO\\1\b/i',
 148          2 => '/\bPR((?:AGMAT)?)\b.*?\bPR\\1\b/i',
 149          3 => '/\bQUOTE\b.*?\bQUOTE\b/i'
 150          ),
 151      'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
 152      'QUOTEMARKS' => array('"'),
 153      'ESCAPE_CHAR' => '"',
 154      'NUMBERS' => GESHI_NUMBER_HEX_SUFFIX,  # Warning: Feature!! #
 155  #                GESHI_NUMBER_HEX_SUFFIX, # Attempt ignore default #
 156      'KEYWORDS' => array(
 157  # Extensions
 158          1 => array('KEEP', 'FINISH', 'USE', 'SYSPROCS', 'IOSTATE', 'USING', 'ENVIRON', 'PROGRAM', 'CONTEXT'),
 159  #        2 => array('CASE', 'IN', 'OUSE', 'IN', 'OUT', 'ESAC', '(', '|', '|:', ')', 'FOR', 'FROM', 'TO', 'BY', 'WHILE', 'DO', 'OD', 'IF', 'THEN', 'ELIF', 'THEN', 'ELSE', 'FI', 'PAR', 'BEGIN', 'EXIT', 'END', 'GO', 'GOTO', 'FORALL', 'UPTO', 'DOWNTO', 'FOREACH', 'ASSERT'), #
 160          2 => array('CASE', 'IN', 'OUSE', /* 'IN',*/ 'OUT', 'ESAC', 'PAR', 'BEGIN', 'EXIT', 'END', 'GO TO', 'GOTO', 'FOR', 'FROM', 'TO', 'BY', 'WHILE', 'DO', 'OD', 'IF', 'THEN', 'ELIF', /* 'THEN',*/ 'ELSE', 'FI' ),
 161          3 => array('BITS', 'BOOL', 'BYTES', 'CHAR', 'COMPL', 'INT', 'REAL', 'SEMA', 'STRING', 'VOID'),
 162          4 => array('MODE', 'OP', 'PRIO', 'PROC', 'FLEX', 'HEAP', 'LOC', 'REF', 'LONG', 'SHORT', 'EITHER'),
 163  # Extensions or deprecated keywords
 164  # 'PIPE': keyword somehow interferes with the internal operation of GeSHi
 165          5 => array('FORALL', 'UPTO', 'DOWNTO', 'FOREACH', 'ASSERT', 'CTB', 'CT', 'CTAB', 'COMPLEX', 'VECTOR', 'SOUND' /*, 'PIPE'*/),
 166          6 => array('CHANNEL', 'FILE', 'FORMAT', 'STRUCT', 'UNION', 'OF'),
 167  # '(', '|', '|:', ')',  #
 168  #        7 => array('OF', 'AT', '@', 'IS', ':=:', 'ISNT', ':/=:', ':≠:', 'CTB', 'CT', '::', 'CTAB', '::=', 'TRUE', 'FALSE', 'EMPTY', 'NIL', '○', 'SKIP', '~'),
 169          7 => array('AT', 'IS', 'ISNT', 'TRUE', 'FALSE', 'EMPTY', 'NIL', 'SKIP'),
 170          8 => array('NOT', 'UP', 'DOWN', 'LWB', 'UPB', /* '-',*/ 'ABS', 'ARG', 'BIN', 'ENTIER', 'LENG', 'LEVEL', 'ODD', 'REPR', 'ROUND', 'SHORTEN', 'CONJ', 'SIGN'),
 171  # OPERATORS ordered roughtly by PRIORITY #
 172  #       9 => array('¬', '↑', '↓', '⌊', '⌈', '~', '⎩', '⎧'),
 173  #        10 => array('+*', 'I', '+×', '⊥', '!', '⏨'),
 174          10 => array('I'),
 175  #        11 => array('SHL', 'SHR', '**', 'UP', 'DOWN', 'LWB', 'UPB', '↑', '↓', '⌊', '⌈', '⎩', '⎧'),
 176          11 => array('SHL', 'SHR', /*'UP', 'DOWN', 'LWB', 'UPB'*/),
 177  #        12 => array('*', '/', '%', 'OVER', '%*', 'MOD', 'ELEM', '×', '÷', '÷×', '÷*', '%×', '□', '÷:'),
 178          12 => array('OVER', 'MOD', 'ELEM'),
 179  #        13 => array('-', '+'),
 180  #        14 => array('<', 'LT', '<=', 'LE', '>=', 'GE', '>', 'GT', '≤', '≥'),
 181          14 => array('LT', 'LE', 'GE', 'GT'),
 182  #        15 => array('=', 'EQ', '/=', 'NE', '≠', '~='),
 183          15 => array('EQ', 'NE'),
 184  #        16 => array('&', 'AND', '∧', 'OR', '∨', '/\\', '\\/'),
 185          16 => array('AND', 'OR'),
 186          17 => array('MINUSAB', 'PLUSAB', 'TIMESAB', 'DIVAB', 'OVERAB', 'MODAB', 'PLUSTO'),
 187  #        18 => array('-:=', '+:=', '*:=', '/:=', '%:=', '%*:=', '+=:', '×:=', '÷:=', '÷×:=', '÷*:=', '%×:=', '÷::=', 'MINUS', 'PLUS', 'DIV', 'MOD', 'PRUS'),
 188  # Extensions or deprecated keywords
 189          18 => array('MINUS', 'PLUS', 'DIV', /* 'MOD',*/ 'PRUS', 'IS NOT'),
 190  # Extensions or deprecated keywords
 191          19 => array('THEF', 'ANDF', 'ORF', 'ANDTH', 'OREL', 'ANDTHEN', 'ORELSE'),
 192  # Built in procedures - from standard prelude #
 193          20 => array('int lengths', 'intlengths', 'int shorths', 'intshorths', 'max int', 'maxint', 'real lengths', 'reallengths', 'real shorths', 'realshorths', 'bits lengths', 'bitslengths', 'bits shorths', 'bitsshorths', 'bytes lengths', 'byteslengths', 'bytes shorths', 'bytesshorths', 'max abs char', 'maxabschar', 'int width', 'intwidth', 'long int width', 'longintwidth', 'long long int width', 'longlongintwidth', 'real width', 'realwidth', 'long real width', 'longrealwidth', 'long long real width', 'longlongrealwidth', 'exp width', 'expwidth', 'long exp width', 'longexpwidth', 'long long exp width', 'longlongexpwidth', 'bits width', 'bitswidth', 'long bits width', 'longbitswidth', 'long long bits width', 'longlongbitswidth', 'bytes width', 'byteswidth', 'long bytes width', 'longbyteswidth', 'max real', 'maxreal', 'small real', 'smallreal', 'long max int', 'longmaxint', 'long long max int', 'longlongmaxint', 'long max real', 'longmaxreal', 'long small real', 'longsmallreal', 'long long max real', 'longlongmaxreal', 'long long small real', 'longlongsmallreal', 'long max bits', 'longmaxbits', 'long long max bits', 'longlongmaxbits', 'null character', 'nullcharacter', 'blank', 'flip', 'flop', 'error char', 'errorchar', 'exp char', 'expchar', 'newline char', 'newlinechar', 'formfeed char', 'formfeedchar', 'tab char', 'tabchar'),
 194          21 => array('stand in channel', 'standinchannel', 'stand out channel', 'standoutchannel', 'stand back channel', 'standbackchannel', 'stand draw channel', 'standdrawchannel', 'stand error channel', 'standerrorchannel'),
 195          22 => array('put possible', 'putpossible', 'get possible', 'getpossible', 'bin possible', 'binpossible', 'set possible', 'setpossible', 'reset possible', 'resetpossible', 'reidf possible', 'reidfpossible', 'draw possible', 'drawpossible', 'compressible', 'on logical file end', 'onlogicalfileend', 'on physical file end', 'onphysicalfileend', 'on line end', 'onlineend', 'on page end', 'onpageend', 'on format end', 'onformatend', 'on value error', 'onvalueerror', 'on open error', 'onopenerror', 'on transput error', 'ontransputerror', 'on format error', 'onformaterror', 'open', 'establish', 'create', 'associate', 'close', 'lock', 'scratch', 'space', 'new line', 'newline', 'print', 'write f', 'writef', 'print f', 'printf', 'write bin', 'writebin', 'print bin', 'printbin', 'read f', 'readf', 'read bin', 'readbin', 'put f', 'putf', 'get f', 'getf', 'make term', 'maketerm', 'make device', 'makedevice', 'idf', 'term', 'read int', 'readint', 'read long int', 'readlongint', 'read long long int', 'readlonglongint', 'read real', 'readreal', 'read long real', 'readlongreal', 'read long long real', 'readlonglongreal', 'read complex', 'readcomplex', 'read long complex', 'readlongcomplex', 'read long long complex', 'readlonglongcomplex', 'read bool', 'readbool', 'read bits', 'readbits', 'read long bits', 'readlongbits', 'read long long bits', 'readlonglongbits', 'read char', 'readchar', 'read string', 'readstring', 'print int', 'printint', 'print long int', 'printlongint', 'print long long int', 'printlonglongint', 'print real', 'printreal', 'print long real', 'printlongreal', 'print long long real', 'printlonglongreal', 'print complex', 'printcomplex', 'print long complex', 'printlongcomplex', 'print long long complex', 'printlonglongcomplex', 'print bool', 'printbool', 'print bits', 'printbits', 'print long bits', 'printlongbits', 'print long long bits', 'printlonglongbits', 'print char', 'printchar', 'print string', 'printstring', 'whole', 'fixed', 'float'),
 196          23 => array('pi', 'long pi', 'longpi', 'long long pi', 'longlongpi'),
 197          24 => array('sqrt', 'curt', 'cbrt', 'exp', 'ln', 'log', 'sin', 'arc sin', 'arcsin', 'cos', 'arc cos', 'arccos', 'tan', 'arc tan', 'arctan', 'long sqrt', 'longsqrt', 'long curt', 'longcurt', 'long cbrt', 'longcbrt', 'long exp', 'longexp', 'long ln', 'longln', 'long log', 'longlog', 'long sin', 'longsin', 'long arc sin', 'longarcsin', 'long cos', 'longcos', 'long arc cos', 'longarccos', 'long tan', 'longtan', 'long arc tan', 'longarctan', 'long long sqrt', 'longlongsqrt', 'long long curt', 'longlongcurt', 'long long cbrt', 'longlongcbrt', 'long long exp', 'longlongexp', 'long long ln', 'longlongln', 'long long log', 'longlonglog', 'long long sin', 'longlongsin', 'long long arc sin', 'longlongarcsin', 'long long cos', 'longlongcos', 'long long arc cos', 'longlongarccos', 'long long tan', 'longlongtan', 'long long arc tan', 'longlongarctan'),
 198          25 => array('first random', 'firstrandom', 'next random', 'nextrandom', 'long next random', 'longnextrandom', 'long long next random', 'longlongnextrandom'),
 199          26 => array('real', 'bits pack', 'bitspack', 'long bits pack', 'longbitspack', 'long long bits pack', 'longlongbitspack', 'bytes pack', 'bytespack', 'long bytes pack', 'longbytespack', 'char in string', 'charinstring', 'last char in string', 'lastcharinstring', 'string in string', 'stringinstring'),
 200          27 => array('utc time', 'utctime', 'local time', 'localtime', 'argc', 'argv', 'get env', 'getenv', 'reset errno', 'reseterrno', 'errno', 'strerror'),
 201          28 => array('sinh', 'long sinh', 'longsinh', 'long long sinh', 'longlongsinh', 'arc sinh', 'arcsinh', 'long arc sinh', 'longarcsinh', 'long long arc sinh', 'longlongarcsinh', 'cosh', 'long cosh', 'longcosh', 'long long cosh', 'longlongcosh', 'arc cosh', 'arccosh', 'long arc cosh', 'longarccosh', 'long long arc cosh', 'longlongarccosh', 'tanh', 'long tanh', 'longtanh', 'long long tanh', 'longlongtanh', 'arc tanh', 'arctanh', 'long arc tanh', 'longarctanh', 'long long arc tanh', 'longlongarctanh', 'arc tan2', 'arctan2', 'long arc tan2', 'longarctan2', 'long long arc tan2', 'longlongarctan2'),
 202          29 => array('complex sqrt', 'complexsqrt', 'long complex sqrt', 'longcomplexsqrt', 'long long complex sqrt', 'longlongcomplexsqrt', 'complex exp', 'complexexp', 'long complex exp', 'longcomplexexp', 'long long complex exp', 'longlongcomplexexp', 'complex ln', 'complexln', 'long complex ln', 'longcomplexln', 'long long complex ln', 'longlongcomplexln', 'complex sin', 'complexsin', 'long complex sin', 'longcomplexsin', 'long long complex sin', 'longlongcomplexsin', 'complex arc sin', 'complexarcsin', 'long complex arc sin', 'longcomplexarcsin', 'long long complex arc sin', 'longlongcomplexarcsin', 'complex cos', 'complexcos', 'long complex cos', 'longcomplexcos', 'long long complex cos', 'longlongcomplexcos', 'complex arc cos', 'complexarccos', 'long complex arc cos', 'longcomplexarccos', 'long long complex arc cos', 'longlongcomplexarccos', 'complex tan', 'complextan', 'long complex tan', 'longcomplextan', 'long long complex tan', 'longlongcomplextan', 'complex arc tan', 'complexarctan', 'long complex arc tan', 'longcomplexarctan', 'long long complex arc tan', 'longlongcomplexarctan', 'complex sinh', 'complexsinh', 'complex arc sinh', 'complexarcsinh', 'complex cosh', 'complexcosh', 'complex arc cosh', 'complexarccosh', 'complex tanh', 'complextanh', 'complex arc tanh', 'complexarctanh')
 203          ),
 204      'SYMBOLS' => array(
 205          1 => array( /* reverse length sorted... */ '÷×:=', '%×:=', ':≠:', '÷*:=', '÷::=', '%*:=', ':/=:', '×:=', '÷:=', '÷×', '%:=', '%×', '*:=', '+:=', '+=:', '+×', '-:=', '/:=', '::=', ':=:', '÷*', '÷:', '↑', '↓', '∧', '∨', '≠', '≤', '≥', '⊥', '⌈', '⌊', '⎧', '⎩', /* '⏨', */ '□', '○', '%*', '**', '+*', '/=', '::', '/\\', '\\/', '<=', '>=', '|:', '~=', '¬', '×', '÷', '!', '%', '&', '(', ')', '*', '+', ',', '-', '/', ':', ';', '<', '=', '>', '?', '@', '[', ']', '^', '{', '|', '}', '~')
 206      ),
 207      'CASE_SENSITIVE' => array(
 208          GESHI_COMMENTS => false,
 209          1 => true,
 210          2 => true,
 211          3 => true,
 212          4 => true,
 213          5 => true,
 214          6 => true,
 215          7 => true,
 216          8 => true,
 217  #        9 => true,
 218          10 => true,
 219          11 => true,
 220          12 => true,
 221  #        13 => true,
 222          14 => true,
 223          15 => true,
 224          16 => true,
 225          17 => true,
 226          18 => true,
 227          19 => true,
 228          20 => true,
 229          21 => true,
 230          22 => true,
 231          23 => true,
 232          24 => true,
 233          25 => true,
 234          26 => true,
 235          27 => true,
 236          28 => true,
 237          29 => true
 238          ),
 239      'STYLES' => array(
 240          'KEYWORDS' => array(
 241              1 => $a68['NONSTD'], 2 => $a68['BOLD'], 3 => $a68['BOLD'], 4 => $a68['BOLD'],
 242              5 => $a68['NONSTD'], 6 => $a68['BOLD'], 7 => $a68['BOLD'], 8 => $a68['BOLD'],
 243              /* 9 => $a68['BOLD'],*/ 10 => $a68['BOLD'], 11 => $a68['BOLD'], 12 => $a68['BOLD'],
 244              /* 13 => $a68['BOLD'],*/ 14 => $a68['BOLD'], 15 => $a68['BOLD'], 16 => $a68['BOLD'], 17 => $a68['BOLD'],
 245              18 => $a68['NONSTD'], 19 => $a68['NONSTD'],
 246              20 => $a68['ITALIC'], 21 => $a68['ITALIC'], 22 => $a68['ITALIC'], 23 => $a68['ITALIC'],
 247              24 => $a68['ITALIC'], 25 => $a68['ITALIC'], 26 => $a68['ITALIC'], 27 => $a68['ITALIC'],
 248              28 => $a68['ITALIC'], 29 => $a68['ITALIC']
 249              ),
 250          'COMMENTS' => array(
 251              1 => $a68['COMMENT'], 2 => $a68['COMMENT'], 3 => $a68['COMMENT'], /* 4 => $a68['COMMENT'],
 252              5 => $a68['COMMENT'],*/ 'MULTI' => $a68['COMMENT']
 253              ),
 254          'ESCAPE_CHAR' => array(
 255              0 => 'color: #000099; font-weight: bold;'
 256              ),
 257          'BRACKETS' => array(
 258              0 => 'color: #009900;'
 259              ),
 260          'STRINGS' => array(
 261              0 => 'color: #0000ff;'
 262              ),
 263          'NUMBERS' => array(
 264              0 => 'color: #cc66cc;',
 265              ),
 266          'METHODS' => array(
 267              0 => 'color: #004000;',
 268              1 => 'color: #004000;'
 269              ),
 270          'SYMBOLS' => array(
 271              0 => 'color: #339933;',
 272              1 => 'color: #339933;'
 273              ),
 274          'REGEXPS' => array(
 275              0  => 'color: #cc66cc;',   # BITS #
 276              1  => 'color: #cc66cc;',   # REAL #
 277              /* 2  => 'color: #cc66cc;',   # INT # */
 278              ),
 279          'SCRIPT' => array()
 280          ),
 281      'URLS' => array(
 282          1 => '',
 283          2 => '',
 284          3 => '',
 285          4 => '',
 286          5 => '',
 287          6 => '',
 288          7 => '',
 289          8 => '',
 290  #        9 => '',
 291          10 => '',
 292          11 => '',
 293          12 => '',
 294  #        13 => '',
 295          14 => '',
 296          15 => '',
 297          16 => '',
 298          17 => '',
 299          18 => '',
 300          19 => '',
 301          20 => '',
 302          21 => '',
 303          22 => '',
 304          23 => '',
 305          24 => '',
 306          25 => '',
 307          26 => '',
 308          27 => '',
 309          28 => '',
 310          29 => ''
 311          ),
 312      'OOLANG' => true,
 313      'OBJECT_SPLITTERS' => array(
 314          0 => '→',
 315          1 => 'OF'
 316          ),
 317      'REGEXPS' => array(
 318          0 => $a68['BITS'],
 319          1 => $a68['REAL']
 320          # 2 => $a68['INT'], # Breaks formatting for some reason #
 321          # 2 => $GESHI_NUMBER_INT_BASIC # Also breaks formatting  #
 322      ),
 323      'STRICT_MODE_APPLIES' => GESHI_NEVER,
 324      'SCRIPT_DELIMITERS' => array(),
 325      'HIGHLIGHT_STRICT_BLOCK' => array()
 326  );
 327  
 328  unset($a68);