1<?php
2/*************************************************************************************
3 * phix.php
4 * ---------------------------------
5 * Author: Pete Lomax
6 * Copyright: (c) 2010 Nicholas Koceja
7 * Release Version: 1.0.9.1
8 * Date Started: 16/08/2015
9 *
10 * Phix language file for GeSHi.
11 *
12 * Author's note:  The colors are based on those of Edita.
13 *
14 * CHANGES
15 * -------
16 * <date-of-release> (1.0.8.9)
17 *  -  First Release
18 *
19 * TODO (updated <date-of-release>)
20 * -------------------------
21 * seperate the funtions from the procedures, and have a slight color change for each.
22 *
23 *************************************************************************************
24 *
25 *     This file is part of GeSHi.
26 *
27 *   GeSHi is free software; you can redistribute it and/or modify
28 *   it under the terms of the GNU General Public License as published by
29 *   the Free Software Foundation; either version 2 of the License, or
30 *   (at your option) any later version.
31 *
32 *   GeSHi is distributed in the hope that it will be useful,
33 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
34 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
35 *   GNU General Public License for more details.
36 *
37 *   You should have received a copy of the GNU General Public License
38 *   along with GeSHi; if not, write to the Free Software
39 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
40 *
41 ************************************************************************************/
42
43$language_data = array(
44    'LANG_NAME' => 'Phix',
45    'COMMENT_SINGLE' => array(1 => '--'),
46    'COMMENT_MULTI' => array('/*' => '*/'),
47    'COMMENT_REGEXP' => array(2 => '/\/\*(?:(?R)|.)+?\*\//s'),
48    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
49    'QUOTEMARKS' => array("'", '"', '"""', '`'),
50    'ESCAPE_CHAR' => '\\',
51    'KEYWORDS' => array(
52        1 => array( // keywords
53            'and', 'as',
54            'break', 'by',
55            'case', 'constant',
56            'default', 'do',
57            'else', 'elsif', 'end', 'enum', 'exit',
58            'for', 'forward', 'function',
59            'global',
60            'if', 'include',
61            'not',
62            'or',
63            'procedure',
64            'return',
65            'switch',
66            'then', 'to', 'type',
67            'while', 'with', 'without',
68            'xor'
69        ),
70        2 => array( // directives
71            'console',
72            'debug',
73            'fallthru',
74            'fallthrough', 'format',
75            'gui',
76            'ilASM',
77            'jump_table',
78            'profile', 'profile_time',
79            'trace', 'type_check',
80            'warning'
81        ),
82        3 => array( // built-ins
83            'abort',
84            'abs',
85            'adjust_timedate',
86            'allocate',
87            'allocate_string',
88            'allocate_struct',
89            'allow_break',
90            'and_bits',
91            'append',
92            'arccos',
93            'arcsin',
94            'arctan',
95            'atom',
96            'atom_to_float32',
97            'atom_to_float64',
98            'atom_to_float80',
99
100            'bits_to_int',
101            'bk_color',
102            'bytes_to_int',
103
104            'call',
105            'call_back',
106            'call_func',
107            'call_proc',
108            'canonical_path',
109            'ceil',
110            'change_timezone',
111            'chdir',
112            'check_break',
113            'clear_screen',
114            'close',
115            'columnize',
116            'compare',
117            'command_line',
118            'cos',
119            'crash_file',
120            'crash_message',
121            'crash_routine',
122            'create_thread',
123            'current_dir',
124            'cursor',
125            'custom_sort',
126            'c_func',
127            'c_proc',
128
129            'date',
130            'day_of_week',
131            'day_of_year',
132            'db_close',
133            'db_compress',
134            'db_create',
135            'db_create_table',
136            'db_delete_record',
137            'db_delete_table',
138            'db_dump',
139            'db_fatal_id',
140            'db_find_key',
141            'db_insert',
142            'db_open',
143            'db_record_data',
144            'db_record_key',
145            'db_replace_data',
146            'db_select',
147            'db_select_table',
148            'db_table_list',
149            'db_table_size',
150            'define_c_func',
151            'define_c_proc',
152            'define_c_var',
153            'define_cfunc',
154            'define_cproc',
155            'define_struct',
156            'delete',
157            'delete_cs',
158            'delete_routine',
159            'dir',
160            'display_text_image',
161
162            'enter_cs',
163            'equal',
164            'exit_thread',
165
166            'factorial',
167            'factors',
168            'find',
169            'flatten',
170            'float32_to_atom',
171            'float64_to_atom',
172            'float80_to_atom',
173            'floor',
174            'flush',
175            'format_timedate',
176            'free',
177            'free_console',
178
179            'gcd',
180            'get',
181            'getc',
182            'getenv',
183            'gets',
184            'get_bytes',
185            'get_field_details',
186            'get_key',
187            'get_position',
188            'get_proper_path',
189            'get_screen_char',
190            'get_struct_field',
191            'get_struct_size',
192            'get_text',
193            'get_thread_exitcode',
194
195            'iif',
196            'iff',
197            'include_paths',
198            'init_cs',
199            'instance',
200            'integer',
201            'int_to_bits',
202            'int_to_bytes',
203            'is_leap_year',
204
205            'join',
206
207            'leave_cs',
208            'length',
209            'lock_file',
210            'log',
211            'lower',
212
213            'machine_bits',
214            'machine_func',
215            'machine_proc',
216            'match',
217            'max',
218            'mem_copy',
219            'mem_set',
220            'message_box',
221            'min',
222            'mod',
223
224            'not_bits',
225
226            'object',
227            'open',
228            'open_dll',
229            'or_bits',
230
231            'parse_date_string',
232            'peek',
233            'peek1s',
234            'peek1u',
235            'peek2s',
236            'peek2u',
237            'peek4s',
238            'peek4u',
239            'peek8s',
240            'peek8u',
241            'peekNS',
242            'peek_string',
243            'permute',
244            'platform',
245            'poke',
246            'poke1',
247            'poke2',
248            'poke4',
249            'poke8',
250            'pokeN',
251            'position',
252            'power',
253            'prepend',
254            'prime_factors',
255            'print',
256            'printf',
257            'prompt_number',
258            'prompt_string',
259            'puts',
260            'put_screen_char',
261
262            'rand',
263            'read_bitmap',
264            'remainder',
265            'repeat',
266            'resume_thread',
267            'reverse',
268            'rfind',
269            'round',
270            'routine_id',
271
272            'save_bitmap',
273            'save_text_image',
274            'scanf',
275            'scroll',
276            'seek',
277            'sequence',
278            'set_rand',
279            'set_struct_field',
280            'set_system_doevents',
281            'set_timedate_formats',
282            'set_timezone',
283            'set_unicode',
284            'sign',
285            'sin',
286            'sleep',
287            'sort',
288            'sprint',
289            'sprintf',
290            'sqrt',
291            'sq_abs',
292            'sq_add',
293            'sq_and',
294            'sq_and_bits',
295            'sq_arccos',
296            'sq_arcsin',
297            'sq_arctan',
298            'sq_atom',
299            'sq_ceil',
300            'sq_cos',
301            'sq_div',
302            'sq_eq',
303            'sq_floor',
304            'sq_floor_div',
305            'sq_ge',
306            'sq_gt',
307            'sq_int',
308            'sq_le',
309            'sq_log',
310            'sq_lower',
311            'sq_lt',
312            'sq_mod',
313            'sq_mul',
314            'sq_ne',
315            'sq_not',
316            'sq_not_bits',
317            'sq_or',
318            'sq_or_bits',
319            'sq_power',
320            'sq_rand',
321            'sq_round',
322            'sq_rmdr',
323            'sq_seq',
324            'sq_sign',
325            'sq_sin',
326            'sq_sqrt',
327            'sq_str',
328            'sq_sub',
329            'sq_tan',
330            'sq_trunc',
331            'sq_uminus',
332            'sq_upper',
333            'sq_xor',
334            'sq_xor_bits',
335            'string',
336            'substitute',
337            'sum',
338            'suspend_thread',
339            'system',
340            'system_exec',
341            'system_open',
342            'system_wait',
343
344            'tagset',
345            'tan',
346            'task_clock_stop',
347            'task_clock_start',
348            'task_create',
349            'task_list',
350            'task_schedule',
351            'task_self',
352            'task_status',
353            'task_suspend',
354            'task_yield',
355            'text_color',
356            'text_rows',
357            'time',
358            'timedate',
359            'timedelta',
360            'trunc',
361            'try_cs',
362
363            'unlock_file',
364            'upper',
365
366            'value',
367            'video_config',
368
369            'wait_key',
370            'wait_thread',
371            'walk_dir',
372            'where',
373            'wildcard_file',
374            'wildcard_match',
375            'wrap',
376
377            'xor_bits'
378        ),
379    ),
380    'SYMBOLS' => array(
381        0 => array(
382            '(', ')', '{', '}', '[', ']'
383        ),
384        1 => array(
385            '+', '-', '*', '/', '=', '&', '^', '?', ',', ':'
386        )
387    ),
388    'CASE_SENSITIVE' => array(
389        GESHI_COMMENTS => false,
390        1 => true,
391        2 => true,
392        3 => true
393    ),
394    'STYLES' => array(
395        'KEYWORDS' => array(
396            1 => 'color: #008080;', // keywords
397            2 => 'color: #008080;', // directives
398            3 => 'color: #004080;'  // builtins
399        ),
400        'COMMENTS' => array(
401            1 => 'color: #000080; font-style: italic;',
402            2 => 'color: #000080; font-style: italic;',
403            'MULTI' => 'color: #000080; font-style: italic;'
404        ),
405        'ESCAPE_CHAR' => array(
406            0 => 'color: #009900; font-weight: bold;'
407        ),
408        'BRACKETS' => array(
409            0 => 'color: #0000FF;'
410        ),
411        'STRINGS' => array(
412            0 => 'color: #008000;'
413        ),
414        'NUMBERS' => array(
415            0 => 'color: #000000;'
416        ),
417        'METHODS' => array( // Do not exist in Phix)
418            0 => ''
419        ),
420        'SYMBOLS' => array(
421            0 => 'color: #0000FF;', // brackets
422            1 => 'color: #0000FF;'  // operators
423        ),
424        'REGEXPS' => array(),
425        'SCRIPT' => array( // Never included in scripts.
426        )
427    ),
428    'REGEXPS' => array(),
429    'URLS' => array(
430        1 => '',
431        2 => '',
432        3 => ''
433    ),
434    'OOLANG' => false,
435    'OBJECT_SPLITTERS' => array(),
436    'STRICT_MODE_APPLIES' => GESHI_NEVER,
437    'SCRIPT_DELIMITERS' => array(),
438    'HIGHLIGHT_STRICT_BLOCK' => array()
439);
440