1<?php
2/*************************************************************************************
3 * euphoria.php
4 * ---------------------------------
5 * Author: Nicholas Koceja (nerketur@hotmail.com)
6 * Copyright: (c) 2010 Nicholas Koceja
7 * Release Version: 1.0.9.1
8 * Date Started: 11/24/2010
9 *
10 * Euphoria language file for GeSHi.
11 *
12 * Author's note:  The colors are based off of the Euphoria Editor (ed.ex) colors.
13 * Also, I added comments in places so I could remember a few things about Euphoria.
14 *
15 *
16 * CHANGES
17 * -------
18 * <date-of-release> (1.0.8.9)
19 *  -  First Release
20 *
21 * TODO (updated <date-of-release>)
22 * -------------------------
23 * seperate the funtions from the procedures, and have a slight color change for each.
24 *
25 *************************************************************************************
26 *
27 *     This file is part of GeSHi.
28 *
29 *   GeSHi is free software; you can redistribute it and/or modify
30 *   it under the terms of the GNU General Public License as published by
31 *   the Free Software Foundation; either version 2 of the License, or
32 *   (at your option) any later version.
33 *
34 *   GeSHi is distributed in the hope that it will be useful,
35 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
36 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
37 *   GNU General Public License for more details.
38 *
39 *   You should have received a copy of the GNU General Public License
40 *   along with GeSHi; if not, write to the Free Software
41 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
42 *
43 ************************************************************************************/
44
45$language_data = array (
46    'LANG_NAME' => 'Euphoria',
47    'COMMENT_SINGLE' => array(1 => '--'),
48    'COMMENT_MULTI' => array(), //Euphoria doesn't support multi-line comments
49    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
50    'QUOTEMARKS' => array("'", '"'),
51    'ESCAPE_CHAR' => '\\',
52    'KEYWORDS' => array(
53        1 => array( // keywords
54            'and', 'by', 'constant', 'do', 'else', 'elsif', 'end', 'exit',
55            'for', 'function', 'global', 'if', 'include', 'not', 'or',
56            'procedure', 'return', 'then', 'to', 'type', 'while', 'with',
57            'without', 'xor'
58            ),
59        2 => array( // built-ins
60            'abort', 'and_bits', 'append', 'arctan', 'atom', 'c_func', 'call',
61            'c_proc', 'call_func', 'call_proc', 'clear_screen', 'close', 'compare',
62            'command_line', 'cos', 'date', 'equal', 'find', 'find_from', 'floor',
63            'getc', 'getenv', 'gets', 'get_key', 'get_pixel', 'integer', 'length',
64            'log', 'machine_func', 'machine_proc', 'match', 'match_from',
65            'mem_copy', 'mem_set', 'not_bits', 'object', 'open', 'or_bits', 'peek',
66            'peek4s', 'peek4u', 'pixel', 'platform', 'poke', 'poke4', 'position',
67            'power', 'prepend', 'print', 'printf', 'profile', 'puts', 'rand',
68            'remainder', 'repeat', 'routine_id', 'sequence', 'sin', 'sprintf',
69            'sqrt', 'system', 'system_exec', 'tan', 'task_clock_stop',
70            'task_clock_start', 'task_create', 'task_list', 'task_schedule',
71            'task_self', 'task_status', 'task_suspend', 'task_yield', 'time',
72            'trace', 'xor_bits'
73            ),
74        ),
75    'SYMBOLS' => array(
76        0 => array(
77            '(', ')', '{', '}', '[', ']'
78            ),
79        1 => array(
80            '+', '-', '*', '/', '=', '&', '^'
81            ),
82        2 => array(
83            '&', '?', ','
84            )
85        ),
86    'CASE_SENSITIVE' => array(
87        GESHI_COMMENTS => false,
88        1 => true,
89        2 => true,
90        ),
91    'STYLES' => array(
92        'KEYWORDS' => array(
93            1 => 'color: #0000ff; font-weight: bold;', // keywords
94            2 => 'color: #cc33ff; font-weight: bold;', // builtins
95            ),
96        'COMMENTS' => array(
97            1 => 'color: #ff0000; font-style: italic;',
98            'MULTI' => '' // doesn't exist
99            ),
100        'ESCAPE_CHAR' => array(
101            0 => 'color: #009900; font-weight: bold;'
102            ),
103        'BRACKETS' => array(
104            0 => 'color: #999900; font-weight: bold;'
105            ),
106        'STRINGS' => array(
107            0 => 'color: #00cc00;'
108            ),
109        'NUMBERS' => array(
110            0 => 'color: #cc33cc; font-style: italic'
111            ),
112        'METHODS' => array( // Doesn't exist in Euphoria.  Everything is a function =)
113            0 => ''
114            ),
115        'SYMBOLS' => array(
116            0 => 'color: #999900;', // brackets
117            1 => 'color: #333333;', // operators
118            2 => 'color: #333333; font-style: bold' // print+concat
119            ),
120        'REGEXPS' => array(
121            ),
122        'SCRIPT' => array( // Never included in scripts.
123            )
124        ),
125    'REGEXPS' => array(
126        ),
127    'URLS' => array(
128        1 => '',
129        2 => ''
130        ),
131    'OOLANG' => false,
132    'OBJECT_SPLITTERS' => array(),
133    'STRICT_MODE_APPLIES' => GESHI_NEVER,
134    'SCRIPT_DELIMITERS' => array(
135        ),
136    'HIGHLIGHT_STRICT_BLOCK' => array(
137        )
138);
139