ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
standardml.php
Go to the documentation of this file.
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.0
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 */
56  /* integer hex */
58  /* real */
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 (
117  /* functor signature > http://www.smlnj.org/doc/features.html */
118  'funsig',
119  /* lazy evaluation */
120  'lazy',
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 );
const GESHI_NUMBER_FLT_SCI_ZERO
Number format to highlight floating-point numbers with support for scientific notation (E) and requir...
Definition: geshi.php:195
const GESHI_COMMENTS
Used in language files to mark comments.
Definition: geshi.php:149
const GESHI_NUMBER_HEX_PREFIX
Number format to highlight hex numbers with a prefix 0x.
Definition: geshi.php:183
const GESHI_NEVER
#+ private
Definition: geshi.php:123
const GESHI_NUMBER_INT_BASIC
Basic number format for integers.
Definition: geshi.php:165
const GESHI_CAPS_NO_CHANGE
Lowercase keywords found.
Definition: geshi.php:94
$language_data
Definition: standardml.php:44