1<?php 2/************************************************************************************* 3 * smalltalk.php 4 * -------- 5 * Author: Bananeweizen (Bananeweizen@gmx.de) 6 * Copyright: (c) 2005 Bananeweizen (www.bananeweizen.de) 7 * Release Version: 1.0.9.1 8 * Date Started: 2005/03/27 9 * 10 * Smalltalk language file for GeSHi. 11 * 12 * CHANGES 13 * ------- 14 * 2006-05-24 (1.0.0) 15 * - First Release 16 * 17 * TODO 18 * ------------------------- 19 * * recognize nested array symbols correctly 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' => 'Smalltalk', 43 'COMMENT_SINGLE' => array(), 44 'COMMENT_MULTI' => array('"' => '"'), 45 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, 46 'QUOTEMARKS' => array("'"), 47 'ESCAPE_CHAR' => '', 48 'KEYWORDS' => array( 49 1 => array( 50 'self','super','true','false','nil' 51 ) 52 ), 53 'SYMBOLS' => array( 54 '[', ']', '=' , ':=', '(', ')', '#' 55 ), 56 'CASE_SENSITIVE' => array( 57 GESHI_COMMENTS => false, 58 1 => true 59 ), 60 'STYLES' => array( 61 'KEYWORDS' => array( 62 1 => 'color: #7f007f;' 63 ), 64 'COMMENTS' => array( 65 'MULTI' => 'color: #007f00; font-style: italic;' 66 ), 67 'ESCAPE_CHAR' => array( 68 0 => '' 69 ), 70 'BRACKETS' => array( 71 0 => '' 72 ), 73 'STRINGS' => array( 74 0 => 'color: #7f0000;' 75 ), 76 'NUMBERS' => array( 77 0 => 'color: #7f0000;' 78 ), 79 'METHODS' => array( 80 0 => '' 81 ), 82 'SYMBOLS' => array( 83 0 => 'color: #000066; font-weight:bold;' 84 ), 85 'REGEXPS' => array( 86 0 => 'color: #0000ff;', 87 1 => 'color: #7f0000;', 88 2 => 'color: #7f0000;', 89 3 => 'color: #00007f;', 90 5 => 'color: #00007f;', 91 6 => 'color: #00007f;' 92 ), 93 'SCRIPT' => array( 94 0 => '' 95 ) 96 ), 97 'URLS' => array( 98 1 => '' 99 ), 100 'OOLANG' => false, 101 'OBJECT_SPLITTERS' => array( 102 ), 103 'REGEXPS' => array( 104 0 => array( 105 GESHI_SEARCH => '([^a-zA-Z0-9_#<])([A-Z]+[a-zA-Z0-9_]*)(?!>)', //class names 106 GESHI_REPLACE => '\\2', 107 GESHI_MODIFIERS => '', 108 GESHI_BEFORE => '\\1', 109 GESHI_AFTER => '' 110 ), 111 1 => array( 112 GESHI_SEARCH => '(#+)([a-zA-Z0-9_]+)', //symbols 113 GESHI_REPLACE => '\\1\\2', 114 GESHI_MODIFIERS => '', 115 GESHI_BEFORE => '', 116 GESHI_AFTER => '' 117 ), 118 2 => array( 119 GESHI_SEARCH => '(#\s*\([^)]*\))', //array symbols 120 GESHI_REPLACE => '\\1', 121 GESHI_MODIFIERS => '', 122 GESHI_BEFORE => '', 123 GESHI_AFTER => '' 124 ), 125 3 => array( 126 GESHI_SEARCH => '<PIPE>([a-zA-Z0-9_\s]+)<PIPE>', //temporary variables 127 GESHI_REPLACE => '\\1', 128 GESHI_MODIFIERS => '', 129 GESHI_BEFORE => '|', 130 GESHI_AFTER => '|' 131 ), 132 5 => array( 133 GESHI_SEARCH => '([:(,=[.*\/+-]\s*(?!\d+\/))([a-zA-Z0-9_]+)', //message parameters, message receivers 134 GESHI_REPLACE => '\\2', 135 GESHI_MODIFIERS => 's', 136 GESHI_BEFORE => '\\1', 137 GESHI_AFTER => '' 138 ), 139 6 => array( 140 GESHI_SEARCH => '([a-zA-Z0-9_]+)(\s*:=)', //assignment targets 141 GESHI_REPLACE => '\\1', 142 GESHI_MODIFIERS => '', 143 GESHI_BEFORE => '', 144 GESHI_AFTER => '\\2' 145 ) 146 ), 147 'STRICT_MODE_APPLIES' => GESHI_NEVER, 148 'SCRIPT_DELIMITERS' => array( 149 ), 150 'HIGHLIGHT_STRICT_BLOCK' => array( 151 ) 152); 153