ILIAS  release_5-2 Revision v5.2.25-18-g3f80b82851
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.8.12
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 );
$language_data
Definition: logtalk.php:49
const GESHI_NUMBER_FLT_SCI_ZERO
Number format to highlight floating-point numbers with support for scientific notation (E) and requir...
Definition: geshi.php:229
const GESHI_COMMENTS
Used in language files to mark comments.
Definition: geshi.php:150
const GESHI_NUMBER_HEX_PREFIX
Number format to highlight hex numbers with a prefix 0x.
Definition: geshi.php:217
const GESHI_NUMBER_BIN_PREFIX_0B
Number format to highlight binary numbers with a prefix 0b (C)
Definition: geshi.php:207
const GESHI_NUMBER_OCT_PREFIX_0O
Number format to highlight octal numbers with a prefix 0o (logtalk)
Definition: geshi.php:211
const GESHI_NUMBER_FLT_NONSCI
Number format to highlight floating-point numbers without support for scientific notation.
Definition: geshi.php:223
Create styles array
The data for the language used.
const GESHI_NEVER
#+ private
Definition: geshi.php:124
const GESHI_NUMBER_INT_BASIC
Basic number format for integers.
Definition: geshi.php:199
const GESHI_CAPS_NO_CHANGE
Lowercase keywords found.
Definition: geshi.php:95