1<?php
2/*************************************************************************************
3 * magiksf.php
4 * --------
5 * Author: Sjoerd van Leent (svanleent@gmail.com)
6 * Copyright: (c) 2010 Sjoerd van Leent
7 * Release Version: 1.0.9.1
8 * Date Started: 2010/02/15
9 *
10 * MagikSF language file for GeSHi.
11 *
12 * CHANGES
13 * -------
14 * 2010/02/22 (1.0.0.2)
15 *   - Symbols also accept the ! and ? characters properly
16 *   - Labels (identifiers starting with !) are also coloured
17 * 2010/02/17 (1.0.0.1)
18 *   -  Parsing out symbols better
19 *   -  Add package identifiers
20 * 2010/02/15 (1.0.0)
21 *   -  First Release
22 *
23 * TODO
24 * ----
25 *
26 *************************************************************************************
27 *
28 *     This file is part of GeSHi.
29 *
30 *   GeSHi is free software; you can redistribute it and/or modify
31 *   it under the terms of the GNU General Public License as published by
32 *   the Free Software Foundation; either version 2 of the License, or
33 *   (at your option) any later version.
34 *
35 *   GeSHi is distributed in the hope that it will be useful,
36 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
37 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
38 *   GNU General Public License for more details.
39 *
40 *   You should have received a copy of the GNU General Public License
41 *   along with GeSHi; if not, write to the Free Software
42 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
43 *
44 ************************************************************************************/
45
46$language_data = array (
47    'ESCAPE_CHAR' => null,
48    'LANG_NAME' => 'MagikSF',
49    'COMMENT_SINGLE' => array(1 => '##', 2 => '#%', 3 => '#'),
50    'COMMENT_MULTI' => array("_pragma(" => ")"),
51    //Multiline-continued single-line comments
52    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
53    'QUOTEMARKS' => array("'", '"'),
54    'ESCAPE_CHAR' => '', // FIXME: Duplicate array key. null or ''?
55    'KEYWORDS' => array(
56        1 => array(
57            '_block', '_endblock', '_proc', '_endproc', '_loop', '_endloop',
58            '_method', '_endmethod',
59            '_protect', '_endprotect', '_protection', '_locking',
60            '_continue',
61            ),
62        2 => array(
63            '_self', '_thisthread', '_pragma', '_private', '_abstract',
64            '_local', '_global', '_dynamic', '_package', '_constant',
65            '_import', '_iter', '_lock', '_optional', '_recursive', '_super'
66            ),
67        3 => array(
68            '_if', '_endif', '_then', '_else', '_elif', '_orif', '_andif', '_for', '_over',
69            '_try', '_endtry', '_when', '_throw', '_catch', '_endcatch', '_handling',
70            '_finally', '_loopbody', '_return', '_leave', '_with'
71            ),
72        4 => array(
73            '_false', '_true', '_maybe', '_unset', '_no_way'
74            ),
75        5 => array(
76            '_mod', '_div', '_or', '_and', '_cf', '_is', '_isnt', '_not', '_gather', '_scatter',
77            '_allresults', '_clone', '_xor'
78            ),
79        6 => array(
80            'def_slotted_exemplar', 'write_string', 'write', 'condition',
81            'record_transaction', 'gis_program_manager', 'perform', 'define_shared_constant',
82            'property_list', 'rope', 'def_property', 'def_mixin'
83            ),
84        ),
85    'SYMBOLS' => array(
86        '(', ')', '{', '}', '[', ']',
87        '+', '-', '*', '/', '**',
88        '=', '<', '>', '<<', '>>',
89        ',', '$',
90        ),
91    'CASE_SENSITIVE' => array(
92        GESHI_COMMENTS => false,
93        1 => false,
94        2 => false,
95        3 => false,
96        4 => false,
97        5 => false,
98        6 => false
99        ),
100    'STYLES' => array(
101        'KEYWORDS' => array(
102            1 => 'color: #000000; font-weight: bold;',
103            2 => 'color: #ff3f3f;',
104            3 => 'color: #3f7f3f; font-weight: bold;',
105            4 => 'color: #cc66cc;',
106            5 => 'color: #ff3fff; font-weight: bold;',
107            6 => 'font-weight: bold;',
108            ),
109        'COMMENTS' => array(
110            1 => 'color: #339933; font-weight: bold;',
111            2 => 'color: #993333;',
112            3 => 'color: #339933;',
113            'MULTI' => 'color: #7f7f7f; font-style: italic',
114            ),
115        'ESCAPE_CHAR' => array(
116            0 => 'color: #000099; font-weight: bold;'
117            ),
118        'BRACKETS' => array(
119            0 => 'color: #ff3f3f;'
120            ),
121        'STRINGS' => array(
122            0 => 'color: #ff0000;'
123            ),
124        'NUMBERS' => array(
125            0 => 'color: #cc66cc;'
126            ),
127        'METHODS' => array(
128            1 => 'color: #202020;',
129            2 => 'color: #202020;'
130            ),
131        'SYMBOLS' => array(
132            0 => 'color: #ff3f3f;'
133            ),
134        'REGEXPS' => array(
135            1 => 'color: #3f3fff;',
136            2 => 'color: #3f3fff;',
137            3 => 'color: #cc66cc;',
138            4 => 'color: #7f3f7f; font-style: italic;',
139            ),
140        'SCRIPT' => array(
141            )
142        ),
143    'URLS' => array(
144        1 => '',
145        2 => '',
146        3 => '',
147        4 => '',
148        5 => '',
149        6 => ''
150        ),
151    'OOLANG' => true,
152    'OBJECT_SPLITTERS' => array(
153        1 => '.'
154        ),
155    'REGEXPS' => array(
156        1 => array(
157            GESHI_SEARCH => '\b[a-zA-Z0-9_]+:', // package identifiers
158            GESHI_REPLACE => '\\0',
159            GESHI_MODIFIERS => '',
160            GESHI_BEFORE => '',
161            GESHI_AFTER => ''
162            ),
163        2 => array(
164            GESHI_SEARCH => ':(?:[a-zA-Z0-9!?_]+|(?:[<pipe>].*?[<pipe>]))*', //symbols
165            GESHI_REPLACE => '\\0',
166            GESHI_MODIFIERS => '',
167            GESHI_BEFORE => '',
168            GESHI_AFTER => ''
169            ),
170        3 => array(
171            GESHI_SEARCH => '%space|%tab|%newline|%.', //characters
172            GESHI_REPLACE => '\\0',
173            GESHI_MODIFIERS => '',
174            GESHI_BEFORE => '',
175            GESHI_AFTER => ''
176            ),
177        4 => array(
178            GESHI_SEARCH => '@(?:[a-zA-Z0-9!?_]+|(?:[<pipe>].*?[<pipe>]))*', //symbols
179            GESHI_REPLACE => '\\0',
180            GESHI_MODIFIERS => '',
181            GESHI_BEFORE => '',
182            GESHI_AFTER => ''
183            ),
184        ),
185    'STRICT_MODE_APPLIES' => GESHI_NEVER,
186    'SCRIPT_DELIMITERS' => array(
187        ),
188    'HIGHLIGHT_STRICT_BLOCK' => array(
189        ),
190    'TAB_WIDTH' => 4
191);
192