1<?php
2/*************************************************************************************
3 * xojo.php
4 * --------
5 * Author: Dr Garry Pettet (contact@garrypettet.com)
6 * Copyright: (c) 2014 Dr Garry Pettet (http://garrypettet.com)
7 * Release Version: 1.0.9.1
8 * Date Started: 2014/10/19
9 *
10 * Xojo language file for GeSHi.
11 *
12 * CHANGES
13 * -------
14 * 2014/10/19 (1.0.8.13)
15 *  -  First Release
16 *
17 * TODO (updated 2014/10/19)
18 * -------------------------
19 *
20 *************************************************************************************
21 *
22 *     This file is part of GeSHi.
23 *
24 *   GeSHi is free software; you can redistribute it and/or modify
25 *   it under the terms of the GNU General Public License as published by
26 *   the Free Software Foundation; either version 2 of the License, or
27 *   (at your option) any later version.
28 *
29 *   GeSHi is distributed in the hope that it will be useful,
30 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
31 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
32 *   GNU General Public License for more details.
33 *
34 *   You should have received a copy of the GNU General Public License
35 *   along with GeSHi; if not, write to the Free Software
36 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
37 *
38 ************************************************************************************/
39
40$language_data = array(
41    'LANG_NAME' => 'Xojo',
42    'COMMENT_SINGLE' => array(1 => "'", 2 => '//', 3 => 'rem'),
43    'COMMENT_MULTI' => array(),
44    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
45    'QUOTEMARKS' => array('"'),
46    'ESCAPE_CHAR' => '',
47    'NUMBERS' => array(
48        1 => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE, // integers
49        2 => GESHI_NUMBER_FLT_NONSCI // floating point numbers
50    ),
51    'KEYWORDS' => array(
52        //Keywords
53        1 => array(
54            'AddHandler',
55            'AddressOf',
56            'Aggregates',
57            'And',
58            'Array',
59            'As',
60            'Assigns',
61            'Attributes',
62            'Break',
63            'ByRef',
64            'ByVal',
65            'Call',
66            'Case',
67            'Catch',
68            'Class',
69            'Const',
70            'Continue',
71            'CType',
72            'Declare',
73            'Delegate',
74            'Dim',
75            'Do',
76            'DownTo',
77            'Each',
78            'Else',
79            'Elseif',
80            'End',
81            'Enum',
82            'Event',
83            'Exception',
84            'Exit',
85            'Extends',
86            'False',
87            'Finally',
88            'For',
89            'Function',
90            'Global',
91            'GoTo',
92            'Handles',
93            'If',
94            'Implements',
95            'In',
96            'Inherits',
97            'Inline68K',
98            'Interface',
99            'Is',
100            'IsA',
101            'Lib',
102            'Loop',
103            'Me',
104            'Mod',
105            'Module',
106            'Namespace',
107            'New',
108            'Next',
109            'Nil',
110            'Not',
111            'Object',
112            'Of',
113            'Optional',
114            'Or',
115            'ParamArray',
116            'Private',
117            'Property',
118            'Protected',
119            'Public',
120            'Raise',
121            'RaiseEvent',
122            'Rect',
123            'Redim',
124            'RemoveHandler',
125            'Return',
126            'Select',
127            'Self',
128            'Shared',
129            'Soft',
130            'Static',
131            'Step',
132            'Sub',
133            'Super',
134            'Then',
135            'To',
136            'True',
137            'Try',
138            'Until',
139            'Using',
140            'Wend',
141            'While',
142            'With',
143            'WeakAddressOf',
144            'Xor'
145        ),
146        //Data Types
147        2 => array(
148            'Boolean',
149            'CFStringRef',
150            'CString',
151            'Currency',
152            'Double',
153            'Int8',
154            'Int16',
155            'Int32',
156            'Int64',
157            'Integer',
158            'OSType',
159            'PString',
160            'Ptr',
161            'Short',
162            'Single',
163            'String',
164            'Structure',
165            'UInt8',
166            'UInt16',
167            'UInt32',
168            'UInt64',
169            'UShort',
170            'WindowPtr',
171            'WString',
172            'XMLNodeType'
173        ),
174        //Compiler Directives
175        3 => array(
176            '#Bad',
177            '#Else',
178            '#Endif',
179            '#If',
180            '#Pragma',
181            '#Tag'
182        ),
183    ),
184    'SYMBOLS' => array(
185        '+',
186        '-',
187        '*',
188        '=',
189        '/',
190        '>',
191        '<',
192        '^',
193        '(',
194        ')',
195        '.'
196    ),
197    'CASE_SENSITIVE' => array(
198        GESHI_COMMENTS => false,
199        1 => false,
200        2 => false,
201        3 => false
202    ),
203    'STYLES' => array(
204        'KEYWORDS' => array(
205            1 => 'color: #0000FF;',  // keywords
206            2 => 'color: #0000FF;',  // primitive data types
207            3 => 'color: #0000FF;',  // compiler commands
208        ),
209        'COMMENTS' => array(
210            1 => 'color: #7F0000;',
211            2 => 'color: #7F0000;',
212            3 => 'color: #7F0000;',
213            'MULTI' => 'color: #7F0000;'
214        ),
215        'ESCAPE_CHAR' => array(
216            0 => 'color: #008080;'
217        ),
218        'BRACKETS' => array(
219            0 => 'color: #000000;'
220        ),
221        'STRINGS' => array(
222            0 => 'color: #6500FE;'
223        ),
224        'NUMBERS' => array(
225            1 => 'color: #326598;', // integers
226            2 => 'color: #006532;', // floating point numbers
227        ),
228        'METHODS' => array(
229            1 => 'color: #000000;'
230        ),
231        'SYMBOLS' => array(
232            0 => 'color: #000000;'
233        ),
234        'REGEXPS' => array(
235            1 => 'color: #326598;', // &h hex numbers
236            2 => 'color: #326598;', // &b hex numbers
237            3 => 'color: #326598;', // &o hex numbers
238        ),
239        'SCRIPT' => array()
240    ),
241    'URLS' => array(
242        1 => 'http://docs.xojo.com/index.php/{FNAMEU}',
243        2 => 'http://docs.xojo.com/index.php/{FNAMEU}',
244        3 => ''
245    ),
246    'OOLANG' => true,
247    'OBJECT_SPLITTERS' => array(
248        1 => '.'
249    ),
250    'REGEXPS' => array(
251        1 => array( // &h numbers
252            // search for &h, then any number of letters a-f or numbers 0-9
253            GESHI_SEARCH => '(&amp;h[0-9a-fA-F]*\b)',
254            GESHI_REPLACE => '\\1',
255            GESHI_MODIFIERS => '',
256            GESHI_BEFORE => '',
257            GESHI_AFTER => ''
258        ),
259        2 => array( // &b numbers
260            // search for &b, then any number of 0-1 digits
261            GESHI_SEARCH => '(&amp;b[0-1]*\b)',
262            GESHI_REPLACE => '\\1',
263            GESHI_MODIFIERS => '',
264            GESHI_BEFORE => '',
265            GESHI_AFTER => ''
266        ),
267        3 => array( // &o octal numbers
268            // search for &o, then any number of 0-7 digits
269            GESHI_SEARCH => '(&amp;o[0-7]*\b)',
270            GESHI_REPLACE => '\\1',
271            GESHI_MODIFIERS => '',
272            GESHI_BEFORE => '',
273            GESHI_AFTER => ''
274        )
275    ),
276    'STRICT_MODE_APPLIES' => GESHI_NEVER,
277    'SCRIPT_DELIMITERS' => array(),
278    'HIGHLIGHT_STRICT_BLOCK' => array()
279);
280