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