ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
logtalk.php
Go to the documentation of this file.
1<?php
2/*************************************************************************************
3 * logtalk.php
4 * -----------
5 *
6 * Author: Paulo Moura (pmoura@logtalk.org)
7 * Copyright: (c) 2009-2011 Paulo Moura (http://logtalk.org/)
8 * Release Version: 1.0.9.0
9 * Date Started: 2009/10/24
10 *
11 * Logtalk language file for GeSHi.
12 *
13 * CHANGES
14 * -------
15 * 2011/01/18 (1.1.4)
16 * - Added syntax coloring of ignore/1
17 * 2010/11/28 (1.1.3)
18 * - Added syntax coloring of conforms_to_protocol/2-3
19 * 2010/09/14 (1.1.2)
20 * - Added syntax coloring of coinductive/1
21 * 2010/06/23 (1.1.1)
22 * - Added syntax coloring of e/0 and pi/0
23 * - Added syntax coloring of ground/1, numbervars/3, keysort/2, and sort/2
24 * 2010/05/15 (1.1.0)
25 * - Added syntax coloring of callable/1 and compare/3
26 * 2009/10/28 (1.0.0)
27 * - First Release
28 *
29 *************************************************************************************
30 *
31 * This file is part of GeSHi.
32 *
33 * GeSHi is free software; you can redistribute it and/or modify
34 * it under the terms of the GNU General Public License as published by
35 * the Free Software Foundation; either version 2 of the License, or
36 * (at your option) any later version.
37 *
38 * GeSHi is distributed in the hope that it will be useful,
39 * but WITHOUT ANY WARRANTY; without even the implied warranty of
40 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
41 * GNU General Public License for more details.
42 *
43 * You should have received a copy of the GNU General Public License
44 * along with GeSHi; if not, write to the Free Software
45 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
46 *
47 ************************************************************************************/
48
50 'LANG_NAME' => 'Logtalk',
51 'COMMENT_SINGLE' => array(1 => '%'),
52 'COMMENT_MULTI' => array('/*' => '*/'),
53 'COMMENT_REGEXP' => array(2 => "/0'./sim"),
54 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
55 'QUOTEMARKS' => array("'"),
56 'HARDQUOTE' => array('"', '"'),
57 'HARDESCAPE' => array(),
58 'ESCAPE_CHAR' => '',
59 'ESCAPE_REGEXP' => array(
60 //Simple Single Char Escapes
61 1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
62 //Hexadecimal Char Specs
63 2 => "#\\\\x[\da-fA-F]+\\\\#",
64 //Octal Char Specs
65 3 => "#\\\\[0-7]+\\\\#"
66 ),
67 'NUMBERS' =>
74 'KEYWORDS' => array(
75 // Directives (with arguments)
76 1 => array(
77 // file directives
78 'encoding', 'ensure_loaded',
79 // flag directives
80 'set_logtalk_flag', 'set_prolog_flag',
81 // entity opening directives
82 'category', 'object', 'protocol',
83 // predicate scope directives
84 'private', 'protected', 'public',
85 // conditional compilation directives
86 'elif', 'if',
87 // entity directives
88 'calls', 'initialization', 'op', 'uses',
89 // predicate directives
90 'alias', 'coinductive', 'discontiguous', 'dynamic', 'mode', 'info', 'meta_predicate', 'multifile', 'synchronized',
91 // module directives
92 'export', 'module', 'reexport', 'use_module'
93 ),
94 // Directives (no arguments)
95 2 => array(
96 // entity directives
97 'dynamic',
98 // multi-threading directives
99 'synchronized', 'threaded',
100 // entity closing directives
101 'end_category', 'end_object', 'end_protocol',
102 // conditional compilation directives
103 'else', 'endif'
104 ),
105 // Entity relations
106 3 => array(
107 'complements', 'extends', 'imports', 'implements','instantiates', 'specializes'
108 ),
109 // Built-in predicates (with arguments)
110 4 => array(
111 // event handlers
112 'after', 'before',
113 // execution-context methods
114 'parameter', 'self', 'sender', 'this',
115 // predicate reflection
116 'current_predicate', 'predicate_property',
117 // DCGs and term expansion
118 'expand_goal', 'expand_term', 'goal_expansion', 'phrase', 'term_expansion',
119 // entity
120 'abolish_category', 'abolish_object', 'abolish_protocol',
121 'create_category', 'create_object', 'create_protocol',
122 'current_category', 'current_object', 'current_protocol',
123 'category_property', 'object_property', 'protocol_property',
124 // entity relations
125 'complements_object', 'conforms_to_protocol',
126 'extends_category', 'extends_object', 'extends_protocol',
127 'implements_protocol', 'imports_category',
128 'instantiates_class', 'specializes_class',
129 // events
130 'abolish_events', 'current_event', 'define_events',
131 // flags
132 'current_logtalk_flag', 'set_logtalk_flag',
133 'current_prolog_flag', 'set_prolog_flag',
134 // compiling, loading, and library path
135 'logtalk_compile', 'logtalk_library_path', 'logtalk_load',
136 // database
137 'abolish', 'asserta', 'assertz', 'clause', 'retract', 'retractall',
138 // control
139 'call', 'catch', 'ignore', 'once', 'throw',
140 // all solutions predicates
141 'bagof', 'findall', 'forall', 'setof',
142 // multi-threading meta-predicates
143 'threaded',
144 'threaded_call', 'threaded_once', 'threaded_ignore', 'threaded_exit', 'threaded_peek',
145 'threaded_wait', 'threaded_notify',
146 // term unification
147 'unify_with_occurs_check',
148 // atomic term processing
149 'atom_chars', 'atom_codes', 'atom_concat', 'atom_length',
150 'number_chars', 'number_codes',
151 'char_code',
152 // term creation and decomposition
153 'arg', 'copy_term', 'functor', 'numbervars',
154 // term testing
155 'atom', 'atomic', 'callable', 'compound', 'float', 'ground', 'integer', 'nonvar', 'number', 'sub_atom', 'var',
156 // term comparison
157 'compare',
158 // stream selection and control
159 'current_input', 'current_output', 'set_input', 'set_output',
160 'open', 'close', 'flush_output', 'stream_property',
161 'at_end_of_stream', 'set_stream_position',
162 // character and byte input/output predicates
163 'get_byte', 'get_char', 'get_code',
164 'peek_byte', 'peek_char', 'peek_code',
165 'put_byte', 'put_char', 'put_code',
166 'nl',
167 // term input/output predicates
168 'current_op', 'op',
169 'write', 'writeq', 'write_canonical', 'write_term',
170 'read', 'read_term',
171 'char_conversion', 'current_char_conversion',
172 // hooks
173 'halt',
174 // sorting
175 'keysort', 'sort'
176 ),
177 // Built-in predicates (no arguments)
178 5 => array(
179 // control
180 'fail', 'repeat', 'true',
181 // character and byte input/output predicates
182 'nl',
183 // implementation defined hooks functions
184 'halt',
185 // arithemtic evaluation
186 'is',
187 // stream selection and control
188 'at_end_of_stream', 'flush_output'
189 ),
190 // Evaluable functors (with arguments)
191 6 => array(
192 'float_integer_part', 'float_fractional_part',
193 'rem', 'mod', 'abs', 'sign', 'floor', 'truncate', 'round', 'ceiling',
194 'cos', 'atan', 'exp', 'log', 'sin', 'sqrt'
195 ),
196 // Evaluable functors (no arguments)
197 7 => array(
198 'e', 'pi', 'mod', 'rem'
199 ),
200 ),
201 'SYMBOLS' => array(
202 0 => array(
203 // external call
204 '{', '}'
205 ),
206 1 => array(
207 // arithemtic comparison
208 '=:=', '=\=', '<', '=<', '>=', '>',
209 // term comparison
210 '<<', '>>', '/\\', '\\/', '\\',
211 // bitwise functors
212 '==', '\==', '@<', '@=<', '@>=', '@>',
213 // evaluable functors
214 '+', '-', '*', '/', '**',
215 // logic and control
216 '!', '\\+', ';',
217 // message sending operators
218 '::', '^^', ':',
219 // grammar rule and conditional functors
220 '-->', '->',
221 // mode operators
222 '@', '?',
223 // term to list predicate
224 '=..',
225 // unification
226 '=', '\\='
227 ),
228 2 => array(
229 // clause and directive functors
230 ':-'
231 )
232 ),
233 'CASE_SENSITIVE' => array(
234 GESHI_COMMENTS => false,
235 1 => true,
236 2 => true,
237 3 => true,
238 4 => true,
239 5 => true,
240 6 => true,
241 7 => true
242 ),
243 'STYLES' => array(
244 'KEYWORDS' => array(
245 1 => 'color: #2e4dc9;',
246 2 => 'color: #2e4dc9;',
247 3 => 'color: #2e4dc9;',
248 4 => 'color: #9d4f37;',
249 5 => 'color: #9d4f37;',
250 6 => 'color: #9d4f37;',
251 7 => 'color: #9d4f37;'
252 ),
253 'NUMBERS' => array(
254 0 => 'color: #430000;'
255 ),
256 'COMMENTS' => array(
257 1 => 'color: #60a0b0; font-style: italic;',
258 2 => 'color: #430000;',
259 'MULTI' => 'color: #60a0b0; font-style: italic;'
260 ),
261 'ESCAPE_CHAR' => array(
262 0 => 'color: #9f0000; font-weight: bold;',
263 1 => 'color: #9f0000; font-weight: bold;',
264 2 => 'color: #9f0000; font-weight: bold;',
265 3 => 'color: #9f0000; font-weight: bold;',
266 'HARD' => '',
267 ),
268 'SYMBOLS' => array(
269 0 => 'color: #666666;font-weight: bold;',
270 1 => 'color: #666666;font-weight: bold;',
271 2 => 'color: #000000;'
272 ),
273 'BRACKETS' => array(
274 0 => 'color: #000000;'
275 ),
276 'STRINGS' => array(
277 0 => 'color: #9f0000;',
278 'HARD' => 'color: #9f0000;'
279 ),
280 'METHODS' => array(
281 ),
282 'REGEXPS' => array(
283 0 => 'color: #848484;'
284 ),
285 'SCRIPT' => array()
286 ),
287 'URLS' => array(
288 1 => '',
289 2 => '',
290 3 => '',
291 4 => '',
292 5 => '',
293 6 => '',
294 7 => ''
295 ),
296 'OOLANG' => false,
297 'OBJECT_SPLITTERS' => array(
298 1 => '::'
299 ),
300 'REGEXPS' => array(
301 // variables
302 0 => '\b(?!(?:PIPE|SEMI|REG3XP\d*)[^a-zA-Z0-9_])[A-Z_][a-zA-Z0-9_]*(?![a-zA-Z0-9_])'
303 ),
304 'STRICT_MODE_APPLIES' => GESHI_NEVER,
305 'SCRIPT_DELIMITERS' => array(),
306 'HIGHLIGHT_STRICT_BLOCK' => array(),
307 'TAB_WIDTH' => 4,
308 'PARSER_CONTROL' => array(
309 'ENABLE_FLAGS' => array(
310 'BRACKETS' => GESHI_NEVER
311 ),
312 'KEYWORDS' => array(
313 1 => array(
314 'DISALLOWED_BEFORE' => '(?<=:-\s)',
315 'DISALLOWED_AFTER' => '(?=\‍()'
316 ),
317 2 => array(
318 'DISALLOWED_BEFORE' => '(?<=:-\s)',
319 'DISALLOWED_AFTER' => '(?=\.)'
320 ),
321 3 => array(
322 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>|^&\'"])',
323 'DISALLOWED_AFTER' => '(?=\‍()'
324 ),
325 4 => array(
326 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>|^&\'"])',
327 'DISALLOWED_AFTER' => '(?=\‍()'
328 ),
329 5 => array(
330 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#>|^&\'"])',
331 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\'"])'
332 ),
333 6 => array(
334 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#;>|^&\'"])',
335 'DISALLOWED_AFTER' => '(?=\‍()'
336 ),
337 7 => array(
338 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#;>|^&\'"])',
339 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\'"])'
340 )
341 )
342 )
343);
An exception for terminatinating execution or to throw for unit testing.
const GESHI_NUMBER_INT_BASIC
Basic number format for integers.
Definition: geshi.php:165
const GESHI_NUMBER_OCT_PREFIX_0O
Number format to highlight octal numbers with a prefix 0o (logtalk)
Definition: geshi.php:177
const GESHI_NUMBER_FLT_NONSCI
Number format to highlight floating-point numbers without support for scientific notation.
Definition: geshi.php:189
const GESHI_CAPS_NO_CHANGE
Lowercase keywords found.
Definition: geshi.php:94
const GESHI_NUMBER_BIN_PREFIX_0B
Number format to highlight binary numbers with a prefix 0b (C)
Definition: geshi.php:173
const GESHI_NUMBER_HEX_PREFIX
Number format to highlight hex numbers with a prefix 0x.
Definition: geshi.php:183
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_NEVER
#+ @access private
Definition: geshi.php:123
$language_data
Definition: logtalk.php:49