1<?php
2/*************************************************************************************
3 * e.php
4 * --------
5 * Author: Kevin Reid (kpreid@switchb.org)
6 * Copyright: (c) 2010 Kevin Reid (http://switchb.org/kpreid/)
7 * Release Version: 1.0.9.1
8 * Date Started: 2010/04/16
9 *
10 * E language file for GeSHi.
11 *
12 * CHANGES
13 * -------
14 * 2010-04-21 (1.0.8.8)
15 *  -  Fixing langcheck-reported bugs.
16 * 2010-04-14 (0.1)
17 *  -  First Release
18 *
19 * TODO (updated 2010-04-21)
20 * -------------------------
21 *  -  Do something useful with the keyword groups. Since RC uses CSS classes named
22 *     by the group numbers, either
23 *     - change the numbering to match conventional uses by other languages,
24 *     - or find or create some way to produce usefully named classes.
25 *
26 *************************************************************************************
27 *
28 *     This file is part of GeSHi.
29 *
30 *   GeSHi is free software; you can redistribute it and/or modify
31 *   it under the terms of the GNU General Public License as published by
32 *   the Free Software Foundation; either version 2 of the License, or
33 *   (at your option) any later version.
34 *
35 *   GeSHi is distributed in the hope that it will be useful,
36 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
37 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
38 *   GNU General Public License for more details.
39 *
40 *   You should have received a copy of the GNU General Public License
41 *   along with GeSHi; if not, write to the Free Software
42 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
43 *
44 ************************************************************************************/
45
46$language_data = array(
47    'LANG_NAME' => 'E',
48    'COMMENT_SINGLE' => array(1 => '#'),
49    'COMMENT_MULTI' => array('/**' => '*/'), // Note: This is method doc, not a general comment syntax.
50    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
51
52    // FIXME: The escaping inside ` is actually doubling of any interior `, $, or @ -- backslash is NOT special
53    'QUOTEMARKS' => array('\'', '"', '`'),
54    'ESCAPE_CHAR' => '\\',
55
56    'KEYWORDS' => array(
57        // builtin control structures
58        1 => array(
59            'accum', 'break', 'try', 'continue', 'if', 'while', 'for', 'switch'
60            ),
61
62        // control structures subsidiary keywords
63        2 => array(
64            'catch', 'else', 'finally', 'in', 'exit'
65            ),
66
67        // named operators
68        3 => array(
69            'fn', 'via'
70            ),
71
72        // variable/function/object definers
73        4 => array(
74            'def', 'bind', 'var'
75            ),
76
77        // object definition subsidiary keywords
78        5 => array(
79            'extends', 'as', 'implements', 'guards', 'match', 'to', 'method'
80            ),
81
82        // builtin nouns in safeEnv
83        6 => array(
84            'null', 'false', 'true', 'throw', '__loop', '__makeList',
85            '__makeMap', '__makeProtocolDesc', '__makeMessageDesc',
86            '__makeParamDesc', 'any', 'void', 'boolean', '__makeOrderedSpace',
87            'ValueGuard', '__MatchContext', 'require', '__makeVerbFacet', 'NaN',
88            'Infinity', '__identityFunc', '__makeInt', '__makeFinalSlot',
89            '__makeVarSlot', '__makeGuardedSlot', '__makeGuard', '__makeTwine',
90            '__makeSourceSpan', '__auditedBy', 'Guard', 'near', 'pbc',
91            'PassByCopy', 'DeepPassByCopy', 'Data', 'Persistent', 'DeepFrozen',
92            'int', 'float64', 'char', 'String', 'Twine', 'TextWriter', 'List',
93            'Map', 'nullOk', 'Tuple', '__Portrayal', 'notNull', 'vow', 'rcvr',
94            'SturdyRef', 'simple__quasiParser', 'twine__quasiParser',
95            'rx__quasiParser', 'e__quasiParser', 'epatt__quasiParser',
96            'sml__quasiParser', 'term__quasiParser', 'traceln', '__equalizer',
97            '__comparer', 'Ref', 'E', 'promiseAllFulfilled', 'EIO', 'help',
98            'safeScope', '__eval', 'resource__uriGetter', 'type__uriGetter',
99            'import__uriGetter', 'elib__uriGetter', 'elang__uriGetter',
100            'opaque__uriGetter'
101            ),
102
103        // builtin nouns in privilegedEnv
104        7 => array(
105            'file__uriGetter', 'fileURL__uriGetter', 'jar__uriGetter',
106            'http__uriGetter', 'ftp__uriGetter', 'gopher__uriGetter',
107            'news__uriGetter', 'cap__uriGetter', 'makeCommand', 'stdout',
108            'stderr', 'stdin', 'print', 'println', 'interp', 'entropy', 'timer',
109            'introducer', 'identityMgr', 'makeSturdyRef', 'timeMachine',
110            'unsafe__uriGetter', 'currentVat', 'rune', 'awt__uriGetter',
111            'swing__uriGetter', 'JPanel__quasiParser', 'swt__uriGetter',
112            'currentDisplay', 'swtGrid__quasiParser', 'swtGrid`',
113            'privilegedScope'
114            ),
115
116        // reserved keywords
117        8 => array(
118            'abstract', 'an', 'assert', 'attribute', 'be', 'begin', 'behalf',
119            'belief', 'believe', 'believes', 'case', 'class', 'const',
120            'constructor', 'declare', 'default', 'define', 'defmacro',
121            'delicate', 'deprecated', 'dispatch', 'do', 'encapsulate',
122            'encapsulated', 'encapsulates', 'end', 'ensure', 'enum', 'eventual',
123            'eventually', 'export', 'facet', 'forall', 'function', 'given',
124            'hidden', 'hides', 'inline', 'is', 'know', 'knows', 'lambda', 'let',
125            'methods', 'module', 'namespace', 'native', 'obeys', 'octet',
126            'oneway', 'operator', 'package', 'private', 'protected', 'public',
127            'raises', 'reliance', 'reliant', 'relies', 'rely', 'reveal', 'sake',
128            'signed', 'static', 'struct', 'suchthat', 'supports', 'suspect',
129            'suspects', 'synchronized', 'this', 'transient', 'truncatable',
130            'typedef', 'unsigned', 'unum', 'uses', 'using', 'utf8', 'utf16',
131            'virtual', 'volatile', 'wstring'
132            )
133        ),
134    'SYMBOLS' => array(
135        1 => array(
136            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%', '=', '<', '>', '!', '^', '&', '|', '?', ':', ';', ','
137            )
138        ),
139    'CASE_SENSITIVE' => array(
140        GESHI_COMMENTS => false,
141        1 => true,
142        2 => true,
143        3 => true,
144        4 => true,
145        5 => true,
146        6 => true,
147        7 => true,
148        8 => true
149        ),
150    'STYLES' => array(
151        'KEYWORDS' => array(
152            1 => 'color: #b1b100;',
153            2 => 'color: #b1b100;',
154            3 => 'color: #b1b100;',
155            4 => 'color: #b1b100;',
156            5 => 'color: #b1b100;',
157            6 => 'color: #b1b100;',
158            7 => 'color: #b1b100;',
159            8 => 'color: #b1b100;'
160            ),
161        'COMMENTS' => array(
162            1 => 'color: #666666; font-style: italic;',
163            'MULTI' => 'color: #666666; font-style: italic;'
164            ),
165        'ESCAPE_CHAR' => array(
166            0 => 'color: #000099; font-weight: bold;'
167            ),
168        'BRACKETS' => array(
169            0 => 'color: #009900;'
170            ),
171        'STRINGS' => array(
172            0 => 'color: #0000ff;'
173            ),
174        'NUMBERS' => array(
175            0 => 'color: #cc66cc;',
176            ),
177        'METHODS' => array(
178            0 => 'color: #004000;'
179            ),
180        'SYMBOLS' => array(
181            1 => 'color: #339933;'
182            ),
183        'REGEXPS' => array(),
184        'SCRIPT' => array()
185        ),
186    'URLS' => array(
187        1 => 'http://wiki.erights.org/wiki/{FNAME}',
188        2 => 'http://wiki.erights.org/wiki/{FNAME}',
189        3 => 'http://wiki.erights.org/wiki/{FNAME}',
190        4 => 'http://wiki.erights.org/wiki/{FNAME}',
191        5 => 'http://wiki.erights.org/wiki/{FNAME}',
192        6 => 'http://wiki.erights.org/wiki/{FNAME}',
193        7 => 'http://wiki.erights.org/wiki/{FNAME}',
194        8 => 'http://wiki.erights.org/wiki/{FNAME}'
195        ),
196    'OOLANG' => true,
197    'OBJECT_SPLITTERS' => array(
198        1 => '.',
199        2 => '<-',
200        3 => '::'
201        ),
202    'REGEXPS' => array(),
203    'STRICT_MODE_APPLIES' => GESHI_NEVER,
204    'SCRIPT_DELIMITERS' => array(),
205    'HIGHLIGHT_STRICT_BLOCK' => array()
206);
207