Home | History | Annotate | Download | only in geshi
      1 <?php
      2 /*************************************************************************************
      3  * smalltalk.php
      4  * --------
      5  * Author: Bananeweizen (Bananeweizen (at) gmx.de)
      6  * Copyright: (c) 2005 Bananeweizen (www.bananeweizen.de)
      7  * Release Version: 1.0.8.3
      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('self','super','true','false','nil')
     50         ),
     51     'SYMBOLS' => array(
     52         '[', ']', '=' , ':=', '(', ')', '#'
     53         ),
     54     'CASE_SENSITIVE' => array(
     55         GESHI_COMMENTS => false,
     56         1 => true
     57         ),
     58     'STYLES' => array(
     59         'KEYWORDS' => array(
     60             1 => 'color: #7f007f;'
     61             ),
     62         'COMMENTS' => array(
     63             'MULTI' => 'color: #007f00; font-style: italic;'
     64             ),
     65         'ESCAPE_CHAR' => array(
     66             0 => ''
     67             ),
     68         'BRACKETS' => array(
     69             0 => ''
     70             ),
     71         'STRINGS' => array(
     72             0 => 'color: #7f0000;'
     73             ),
     74         'NUMBERS' => array(
     75             0 => 'color: #7f0000;'
     76             ),
     77         'METHODS' => array(
     78             0 => ''
     79             ),
     80         'SYMBOLS' => array(
     81             0 => 'color: #000066; font-weight:bold;'
     82             ),
     83         'REGEXPS' => array(
     84             0 => 'color: #0000ff;',
     85             1 => 'color: #7f0000;',
     86             2 => 'color: #7f0000;',
     87             3 => 'color: #00007f;',
     88             4 => 'color: #7f007f;',
     89             5 => 'color: #00007f;',
     90             6 => 'color: #00007f;'
     91             ),
     92         'SCRIPT' => array(
     93             0 => ''
     94             )
     95         ),
     96     'URLS' => array(
     97         1 => ''
     98         ),
     99     'OOLANG' => false,
    100     'OBJECT_SPLITTERS' => array(
    101         ),
    102     'REGEXPS' => array(
    103         0 => array(
    104             GESHI_SEARCH => '([^a-zA-Z0-9_#<])([A-Z]+[a-zA-Z0-9_]*)(?!>)', //class names
    105             GESHI_REPLACE => '\\2',
    106             GESHI_MODIFIERS => '',
    107             GESHI_BEFORE => '\\1',
    108             GESHI_AFTER => ''
    109             ),
    110         1 => array(
    111             GESHI_SEARCH => '(#+)([a-zA-Z0-9_]+)', //symbols
    112             GESHI_REPLACE => '\\1\\2',
    113             GESHI_MODIFIERS => '',
    114             GESHI_BEFORE => '',
    115             GESHI_AFTER => ''
    116             ),
    117         2 => array(
    118             GESHI_SEARCH => '(#\s*\([^)]*\))', //array symbols
    119             GESHI_REPLACE => '\\1',
    120             GESHI_MODIFIERS => '',
    121             GESHI_BEFORE => '',
    122             GESHI_AFTER => ''
    123             ),
    124         3 => array(
    125             GESHI_SEARCH => '<PIPE>([a-zA-Z0-9_\s]+)<PIPE>', //temporary variables
    126             GESHI_REPLACE => '\\1',
    127             GESHI_MODIFIERS => '',
    128             GESHI_BEFORE => '|',
    129             GESHI_AFTER => '|'
    130             ),
    131         4 => array(
    132             GESHI_SEARCH => '(self|super|true|false|nil)', //keywords again (to avoid matching in next regexp)
    133             GESHI_REPLACE => '\\1',
    134             GESHI_MODIFIERS => '',
    135             GESHI_BEFORE => '',
    136             GESHI_AFTER => ''
    137             ),
    138         5 => array(
    139             GESHI_SEARCH => '([:(,=[.*\/+-]\s*)([a-zA-Z0-9_]+)', //message parameters, message receivers
    140             GESHI_REPLACE => '\\2',
    141             GESHI_MODIFIERS => 's',
    142             GESHI_BEFORE => '\\1',
    143             GESHI_AFTER => ''
    144             ),
    145         6 => array(
    146             GESHI_SEARCH => '([a-zA-Z0-9_]+)(\s*:=)', //assignment targets
    147             GESHI_REPLACE => '\\1',
    148             GESHI_MODIFIERS => '',
    149             GESHI_BEFORE => '',
    150             GESHI_AFTER => '\\2'
    151             )
    152         ),
    153     'STRICT_MODE_APPLIES' => GESHI_NEVER,
    154     'SCRIPT_DELIMITERS' => array(
    155         ),
    156     'HIGHLIGHT_STRICT_BLOCK' => array(
    157         )
    158 );
    159 
    160 ?>
    161