[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

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

   1  <?php
   2  /*************************************************************************************
   3   * standardml.php
   4   * ----------
   5   * Author: eldesh (nephits@gmail.com)
   6   * Copyright: (c) 2014 eldesh (http://d.hatena.ne.jp/eldesh/)
   7   * Release Version: 1.0.9.1
   8   * Date Started: 2014/02/04
   9   *
  10   * SML (StandardML'97) language file for GeSHi.
  11   * This file also support some implementation dependent keywords by SML/NJ and SML#.
  12   *
  13   * CHANGES
  14   * -------
  15   * 2014/02/05 (1.0.8.11)
  16   *   -  First Release
  17   *
  18   * TODO (updated 2014/02/04)
  19   * -------------------------
  20   * - support character literal
  21   * - support Vector expressions and patterns (http://www.smlnj.org/doc/features.html)
  22   * - support more Basis functions...?
  23   *
  24   *************************************************************************************
  25   *
  26   *   This file is part of GeSHi.
  27   *
  28   *   GeSHi is free software; you can redistribute it and/or modify
  29   *   it under the terms of the GNU General Public License as published by
  30   *   the Free Software Foundation; either version 2 of the License, or
  31   *   (at your option) any later version.
  32   *
  33   *   GeSHi is distributed in the hope that it will be useful,
  34   *   but WITHOUT ANY WARRANTY; without even the implied warranty of
  35   *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  36   *   GNU General Public License for more details.
  37   *
  38   *   You should have received a copy of the GNU General Public License
  39   *   along with GeSHi; if not, write to the Free Software
  40   *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  41   *
  42   ************************************************************************************/
  43  
  44  $language_data = array (
  45      'LANG_NAME' => 'StandardML',
  46      'COMMENT_SINGLE' => array(),
  47      'COMMENT_MULTI' => array('(*' => '*)'),
  48      'COMMENT_REGEXP' => array(1 => '/\(\*(?:(?R)|.)+?\*\)/s'),
  49      'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
  50      'QUOTEMARKS' => array('"'),
  51      'ESCAPE_CHAR' => '\\',
  52      'NUMBERS' =>
  53          array(
  54              /* integer dec */
  55              0 => GESHI_NUMBER_INT_BASIC,
  56              /* integer hex */
  57              1 => GESHI_NUMBER_HEX_PREFIX,
  58              /* real */
  59              2 => GESHI_NUMBER_FLT_SCI_ZERO,
  60              /* word dec */
  61              3 => '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0w[0-9]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
  62              /* word hex */
  63              4 => '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0wx[0-9a-fA-F]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)'
  64          ),
  65      'KEYWORDS' => array(
  66          /* main SML keywords */
  67          1 => array(
  68              /* deprecated: SML90 */
  69              'abstype',
  70  
  71              'and', 'andalso', 'as', 'case', 'datatype', 'else',
  72              'end', 'exception', 'fn', 'fun', 'functor',
  73              'if', 'in', 'infix', 'infixr', 'let', 'local', 'nonfix',
  74              'of', 'op', 'open', 'orelse',
  75              'rec', 'raise', 'sharing', 'sig', 'signature', 'struct', 'structure', 'then',
  76              'type', 'val', 'while', 'with', 'withtype'
  77              ),
  78          /* Top-level type and constructors */
  79          2 => array(
  80              'unit', 'int', 'word', 'real', 'char', 'string', 'substring', 'exn',
  81              'array', 'vector', 'bool', 'option',
  82              'list'
  83              ),
  84          /* standard structures/signatures/functors provided by Basis library */
  85          3 => array(
  86              'ARRAY', 'Array', 'Array2', 'ARRAY2', 'ArraySlice', 'ARRAY_SLICE',
  87              'BinIO', 'BIT_FLAGS', 'Bool', 'BOOL', 'Byte', 'CHAR', 'Char',
  88              'CommandLine', 'Date', 'General', 'GenericSock', 'IEEEReal', 'IMPERATIVE_IO',
  89              'ImperativeIO', 'INetSock', 'INTEGER', 'Int', 'IntInf', 'IO', 'List', 'ListPair',
  90              'MATH', 'MONO_ARRAY', 'MONO_ARRAY2', 'MONO_ARRAY_SLICE', 'MONO_VECTOR',
  91              'MONO_VECTOR_SLICE', 'NetHostDB', 'NetProtDB', 'NetServDB', 'Option',
  92              'OS', 'OS.FileSys', 'OS.IO', 'OS.Path', 'OS.Process', 'PACK_REAL', 'PACK_WORD',
  93              'Posix', 'Posix.Error', 'Posix.FileSys', 'Posix.IO', 'Posix.ProcEnv', 'Posix.Process',
  94              'Posix.Signal', 'Posix.SysDB', 'Posix.TTY', 'PRIM_IO', 'PrimIO', 'REAL', 'Real', 'Socket',
  95              'STREAM_IO', 'StreamIO', 'STRING', 'String', 'StringCvt', 'SUBSTRING', 'Substring', 'TEXT', 'TEXT_IO',
  96              'TEXT_STREAM_IO', 'Time', 'Timer', 'Unix', 'UnixSock', 'VECTOR', 'Vector', 'VECTOR_SLICE',
  97              'Windows', 'WORD', 'Word'
  98              ),
  99          /* Top-level value identifiers / constructors */
 100          4 => array(
 101              'app', 'before', 'ceil', 'chr', 'concat', 'exnMessage', 'exnName', 'explode',
 102              'floor', 'foldl', 'foldr', 'getOpt', 'hd', 'ignore', 'implode', 'isSome', 'length', 'map', 'not',
 103              'null', 'o', 'ord', 'print', 'rev', 'round', 'size', 'str', 'tl', 'trunc',
 104              'use', 'valOf',
 105              /* constructors */
 106              'ref', 'true', 'false', 'NONE', 'SOME', 'LESS', 'EQUAL', 'GREATER', 'nil',
 107              /* overloaded identifiers */
 108              'div', 'mod', 'abs'
 109              ),
 110          /* standard exceptions */
 111          5 => array (
 112              'Bind', 'Chr', 'Div', 'Domain', 'Empty', 'Fail', 'Match', 'Overflow', 'Size', 'Span', 'Subscript'
 113              ),
 114          /* implementation dependent keyword (not be sorted) */
 115          6 => array (
 116              /** SML/NJ */
 117              /* functor signature > http://www.smlnj.org/doc/features.html */
 118              'funsig',
 119              /* lazy evaluation */
 120              'lazy',
 121              /** SML# */
 122              /* binding to C function */
 123              '_import',
 124              /* read other source */
 125              '_require',
 126              /* export aggregated interface files */
 127              'include',
 128              /* integrated sql */
 129              '_sqlserver', '_sql', 'from', 'where', '_sqleval', '_sqlexec',
 130              'select', 'insert', 'update', 'begin', 'commit', 'rollback',
 131              'values', 'delete'
 132              )
 133          ),
 134      /* highlighting symbols */
 135      'SYMBOLS' => array(
 136          0 => array('=', ':', ':>', '=>', '(', ')', '|', '_', '==', ';', '.'),
 137          1 => array('!', ':=', '@', '^'),
 138          2 => array('[', ']', '::', '{', '}'),
 139          /* overloaded identifiers */
 140          3 => array('+', '-', '*', '/', '~', '<', '>', '<=', '>=')
 141          ),
 142      'CASE_SENSITIVE' => array(
 143          GESHI_COMMENTS => false,
 144          1 => true, /* keywords */
 145          2 => true, /* top level types */
 146          3 => true, /* structures */
 147          4 => true, /* top level identifiers */
 148          5 => true, /* top level exceptions */
 149          6 => true  /* implementation dependent keyword */
 150          ),
 151      'STYLES' => array(
 152          'KEYWORDS' => array(
 153              1 => 'color: #557cde; font-weight: bold;',
 154              2 => 'color: #8dda4a; font-weight: bold;',
 155              3 => 'color: #0066cc; font-weight: bold;',
 156              4 => 'color: #5c8cbb;',
 157              5 => 'color: #f33e64; font-weight: bold;',
 158              6 => 'color: #f33e64;'
 159              ),
 160          'COMMENTS' => array(
 161              'MULTI' => 'color: #5d478b; font-style: italic;', /* light purple */
 162              1 => 'color: #5d478b; font-style: italic;' /* light purple */
 163              ),
 164          'ESCAPE_CHAR' => array(
 165              ),
 166          'BRACKETS' => array(
 167              0 => 'color: #79c200;'
 168              ),
 169          'STRINGS' => array(
 170              0 => 'color: #488614;'
 171              ),
 172          'NUMBERS' => array(
 173              0 => 'color: #fb7600;',
 174              1 => 'color: #fb7600;',
 175              2 => 'color: #fb7600;',
 176              3 => 'color: #fb7600;',
 177              4 => 'color: #fb7600;'
 178              ),
 179          'METHODS' => array(
 180              1 => 'color: #0066cc;'
 181              ),
 182          'REGEXPS' => array(
 183              1 => 'font-style:italic; color:#9f7eff;',
 184              2 => 'font-weight:bold; color:#8dda4a;'
 185              ),
 186          'SYMBOLS' => array(
 187              0 => 'color: #ff4bcf;',
 188              1 => 'color: #ff4bcf; font-weight: bold;', // pink
 189              2 => 'color: #90f963;', // orange
 190              3 => 'color: #fa5bf8;'
 191              ),
 192          'SCRIPT' => array(
 193              )
 194          ),
 195      'URLS' => array(
 196          1 => '',
 197          2 => 'http://www.standardml.org/Basis/top-level-chapter.html',
 198          3 => '',
 199          4 => '',
 200          5 => 'http://www.standardml.org/Basis/top-level-chapter.html#section:2',
 201          6 => ''
 202          ),
 203      'OOLANG' => true,
 204      'OBJECT_SPLITTERS' => array(
 205          1 => '.'
 206          ),
 207      'REGEXPS' => array(
 208          1 => '(?<!\w)#\w+',  /* record field access */
 209          2 => '(?:(?<![0-9a-zA-Z]))\'[a-z]+' /* type variable */
 210          ),
 211      'STRICT_MODE_APPLIES' => GESHI_NEVER,
 212      'SCRIPT_DELIMITERS' => array(
 213          ),
 214      'HIGHLIGHT_STRICT_BLOCK' => array(
 215          )
 216  );