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