1<?php
2/*************************************************************************************
3 * boo.php
4 * --------
5 * Author: Marcus Griep (neoeinstein+GeSHi@gmail.com)
6 * Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us)
7 * Release Version: 1.0.9.1
8 * Date Started: 2007/09/10
9 *
10 * Boo language file for GeSHi.
11 *
12 * CHANGES
13 * -------
14 * 2004/09/10 (1.0.8)
15 *  -  First Release
16 *
17 * TODO (updated 2007/09/10)
18 * -------------------------
19 * Regular Expression Literal matching
20 *
21 *************************************************************************************
22 *
23 *     This file is part of GeSHi.
24 *
25 *   GeSHi is free software; you can redistribute it and/or modify
26 *   it under the terms of the GNU General Public License as published by
27 *   the Free Software Foundation; either version 2 of the License, or
28 *   (at your option) any later version.
29 *
30 *   GeSHi is distributed in the hope that it will be useful,
31 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
32 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
33 *   GNU General Public License for more details.
34 *
35 *   You should have received a copy of the GNU General Public License
36 *   along with GeSHi; if not, write to the Free Software
37 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
38 *
39 ************************************************************************************/
40
41$language_data = array (
42    'LANG_NAME' => 'Boo',
43    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
44    'COMMENT_MULTI' => array('/*' => '*/'),
45    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
46    'QUOTEMARKS' => array("'''", "'", '"""', '"'),
47    'HARDQUOTE' => array('"""', '"""'),
48    'HARDESCAPE' => array('\"""'),
49    'ESCAPE_CHAR' => '\\',
50    'KEYWORDS' => array(
51        1 => array(//Namespace
52            'namespace', 'import', 'from'
53            ),
54        2 => array(//Jump
55            'yield', 'return', 'goto', 'continue', 'break'
56            ),
57        3 => array(//Conditional
58            'while', 'unless', 'then', 'in', 'if', 'for', 'else', 'elif'
59            ),
60        4 => array(//Property
61            'set', 'get'
62            ),
63        5 => array(//Exception
64            'try', 'raise', 'failure', 'except', 'ensure'
65            ),
66        6 => array(//Visibility
67            'public', 'private', 'protected', 'internal'
68            ),
69        7 => array(//Define
70            'struct', 'ref', 'of', 'interface', 'event', 'enum', 'do', 'destructor', 'def', 'constructor', 'class'
71            ),
72        8 => array(//Cast
73            'typeof', 'cast', 'as'
74            ),
75        9 => array(//BiMacro
76            'yieldAll', 'using', 'unchecked', 'rawArayIndexing', 'print', 'normalArrayIndexing', 'lock',
77            'debug', 'checked', 'assert'
78            ),
79        10 => array(//BiAttr
80            'required', 'property', 'meta', 'getter', 'default'
81            ),
82        11 => array(//BiFunc
83            'zip', 'shellp', 'shellm', 'shell', 'reversed', 'range', 'prompt',
84            'matrix', 'map', 'len', 'join', 'iterator', 'gets', 'enumerate', 'cat', 'array'
85            ),
86        12 => array(//HiFunc
87            '__switch__', '__initobj__', '__eval__', '__addressof__', 'quack'
88            ),
89        13 => array(//Primitive
90            'void', 'ushort', 'ulong', 'uint', 'true', 'timespan', 'string', 'single',
91            'short', 'sbyte', 'regex', 'object', 'null', 'long', 'int', 'false', 'duck',
92            'double', 'decimal', 'date', 'char', 'callable', 'byte', 'bool'
93            ),
94        14 => array(//Operator
95            'not', 'or', 'and', 'is', 'isa',
96            ),
97        15 => array(//Modifier
98            'virtual', 'transient', 'static', 'partial', 'override', 'final', 'abstract'
99            ),
100        16 => array(//Access
101            'super', 'self'
102            ),
103        17 => array(//Pass
104            'pass'
105            )
106        ),
107    'SYMBOLS' => array(
108        '[|', '|]', '${', '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>', '+', '-', ';'
109        ),
110    'CASE_SENSITIVE' => array(
111        GESHI_COMMENTS => false,
112        1 => true,
113        2 => true,
114        3 => true,
115        4 => true,
116        5 => true,
117        6 => true,
118        7 => true,
119        8 => true,
120        9 => true,
121        10 => true,
122        11 => true,
123        12 => true,
124        13 => true,
125        14 => true,
126        15 => true,
127        16 => true,
128        17 => true
129        ),
130    'STYLES' => array(
131        'KEYWORDS' => array(
132            1 => 'color:green;font-weight:bold;',
133            2 => 'color:navy;',
134            3 => 'color:blue;font-weight:bold;',
135            4 => 'color:#8B4513;',
136            5 => 'color:teal;font-weight:bold;',
137            6 => 'color:blue;font-weight:bold;',
138            7 => 'color:blue;font-weight:bold;',
139            8 => 'color:blue;font-weight:bold;',
140            9 => 'color:maroon;',
141            10 => 'color:maroon;',
142            11 => 'color:purple;',
143            12 => 'color:#4B0082;',
144            13 => 'color:purple;font-weight:bold;',
145            14 => 'color:#008B8B;font-weight:bold;',
146            15 => 'color:brown;',
147            16 => 'color:black;font-weight:bold;',
148            17 => 'color:gray;'
149            ),
150        'COMMENTS' => array(
151            1 => 'color: #999999; font-style: italic;',
152            2 => 'color: #999999; font-style: italic;',
153            'MULTI' => 'color: #008000; font-style: italic;'
154            ),
155        'ESCAPE_CHAR' => array(
156            0 => 'color: #0000FF; font-weight: bold;',
157            'HARD' => 'color: #0000FF; font-weight: bold;',
158            ),
159        'BRACKETS' => array(
160            0 => 'color: #006400;'
161            ),
162        'STRINGS' => array(
163            0 => 'color: #008000;',
164            'HARD' => 'color: #008000;'
165            ),
166        'NUMBERS' => array(
167            0 => 'color: #00008B;'
168            ),
169        'METHODS' => array(
170            0 => 'color: 000000;',
171            1 => 'color: 000000;'
172            ),
173        'SYMBOLS' => array(
174            0 => 'color: #006400;'
175            ),
176        'REGEXPS' => array(
177            #0 => 'color: #0066ff;'
178            ),
179        'SCRIPT' => array(
180            )
181        ),
182    'URLS' => array(
183        1 => '',
184        2 => '',
185        3 => '',
186        4 => '',
187        5 => '',
188        6 => '',
189        7 => '',
190        8 => '',
191        9 => '',
192        10 => '',
193        11 => '',
194        12 => '',
195        13 => '',
196        14 => '',
197        15 => '',
198        16 => '',
199        17 => ''
200        ),
201    'OOLANG' => true,
202    'OBJECT_SPLITTERS' => array(
203        0 => '.',
204        1 => '::'
205        ),
206    'REGEXPS' => array(
207        #0 => '%(@)?\/(?:(?(1)[^\/\\\\\r\n]+|[^\/\\\\\r\n \t]+)|\\\\[\/\\\\\w+()|.*?$^[\]{}\d])+\/%'
208        ),
209    'STRICT_MODE_APPLIES' => GESHI_NEVER,
210    'SCRIPT_DELIMITERS' => array(
211        ),
212    'HIGHLIGHT_STRICT_BLOCK' => array(
213        ),
214    'TAB_WIDTH' => 4
215);
216