1<?php
2/*************************************************************************************
3 * oz.php
4 * --------
5 * Author: Wolfgang Meyer (Wolfgang.Meyer@gmx.net)
6 * Copyright: (c) 2010 Wolfgang Meyer
7 * Release Version: 1.0.9.1
8 * Date Started: 2010/01/03
9 *
10 * Oz language file for GeSHi.
11 *
12 * CHANGES
13 * -------
14 *
15 *************************************************************************************
16 *
17 *     This file is part of GeSHi.
18 *
19 *   GeSHi is free software; you can redistribute it and/or modify
20 *   it under the terms of the GNU General Public License as published by
21 *   the Free Software Foundation; either version 2 of the License, or
22 *   (at your option) any later version.
23 *
24 *   GeSHi is distributed in the hope that it will be useful,
25 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
26 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27 *   GNU General Public License for more details.
28 *
29 *   You should have received a copy of the GNU General Public License
30 *   along with GeSHi; if not, write to the Free Software
31 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
32 *
33 ************************************************************************************/
34
35$language_data = array(
36    'LANG_NAME' => 'OZ',
37    'COMMENT_SINGLE' => array(1 => '%'),
38    'COMMENT_MULTI' => array('/*' => '*/'),
39    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
40    'QUOTEMARKS' => array('"','\''),
41    'ESCAPE_CHAR' => '\\',
42    'NUMBERS' => array(),
43    'KEYWORDS' => array(
44        1 => array(
45            'declare','local','in','end','proc','fun','functor','require','prepare',
46            'import','export','define','at','case','then','else','of','elseof',
47            'elsecase','if','elseif','class','from','prop','attr','feat','meth',
48            'self','true','false','unit','div','mod','andthen','orelse','cond','or',
49            'dis','choice','not','thread','try','catch','finally','raise','lock',
50            'skip','fail','for','do'
51            )
52        ),
53    'CASE_SENSITIVE' => array(
54        GESHI_COMMENTS => false,
55        1 => true
56        ),
57    'SYMBOLS' => array(
58        '@', '!', '|', '<-', ':=', '<', '>', '=<', '>=', '<=', '#', '~', '.',
59        '*', '-', '+', '/', '<:', '>:', '=:', '=<:', '>=:', '\\=', '\\=:', ',',
60        '!!', '...', '==', '::', ':::'
61        ),
62    'STYLES' => array(
63        'REGEXPS' => array(
64            1 => 'color: #0000ff;',
65            2 => 'color: #00a030;',
66            3 => 'color: #bc8f8f;',
67            4 => 'color: #0000ff;',
68            5 => 'color: #a020f0;'
69            ),
70        'ESCAPE_CHAR' => array(
71            0 => 'color: #bc8f8f;'
72            ),
73        'KEYWORDS' => array(
74            1 => 'color: #a020f0;'
75            ),
76        'COMMENTS' => array(
77            1 => 'color: #B22222;',
78            'MULTI' => 'color: #B22222;'
79            ),
80        'STRINGS' => array(
81            0 => 'color: #bc8f8f;'
82            ),
83        'SYMBOLS' => array(
84            0 => 'color: #a020f0;'
85            ),
86        'BRACKETS' => array(),
87        'NUMBERS' => array(),
88        'METHODS' => array(),
89        'SCRIPT' => array()
90        ),
91    'OOLANG' => false,
92    'OBJECT_SPLITTERS' => array(),
93    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
94    'SCRIPT_DELIMITERS' => array(),
95    'HIGHLIGHT_STRICT_BLOCK' => array(),
96    'URLS' => array(
97        1 => ''
98        ),
99    'REGEXPS' => array(
100        // function and procedure definition
101        1 => array(
102            GESHI_SEARCH => "(proc|fun)([^{}\n\)]*)(\\{)([\$A-Z\300-\326\330-\336][A-Z\300-\326\330-\336a-z\337-\366\370-\3770-9_.]*)",
103            GESHI_REPLACE => '\4',
104            GESHI_MODIFIERS => '',
105            GESHI_BEFORE => '\1\2\3',
106            GESHI_AFTER => ''
107            ),
108        // class definition
109        2 => array(
110            GESHI_SEARCH => "(class)([^A-Z\$]*)([\$A-Z\300-\326\330-\336][A-Z\300-\326\330-\336a-z\337-\366\370-\3770-9_.]*)",
111            GESHI_REPLACE => '\3\4',
112            GESHI_MODIFIERS => '',
113            GESHI_BEFORE => '\1\2',
114            GESHI_AFTER => ''
115            ),
116        // single character
117        3 => array(
118            GESHI_SEARCH => "&amp;.",
119            GESHI_REPLACE => '\0',
120            GESHI_MODIFIERS => '',
121            GESHI_BEFORE => '',
122            GESHI_AFTER => ''
123            ),
124        // method definition
125        4 => array(
126            GESHI_SEARCH => "(meth)([^a-zA-Z]+)([a-zA-Z\300-\326\330-\336][A-Z\300-\326\330-\336a-z\337-\366\370-\3770-9]*)",
127            GESHI_REPLACE => '\3',
128            GESHI_MODIFIERS => '',
129            GESHI_BEFORE => '\1\2',
130            GESHI_AFTER => ''
131            ),
132        // highlight "[]"
133        // ([] is actually a keyword, but that causes problems in validation; putting it into symbols doesn't work.)
134        5 => array(
135            GESHI_SEARCH => "\[\]",
136            GESHI_REPLACE => '\0',
137            GESHI_MODIFIERS => '',
138            GESHI_BEFORE => '',
139            GESHI_AFTER => ''
140            )
141        )
142);
143