ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
j.php
Go to the documentation of this file.
1<?php
2/*************************************************************************************
3 * j.php
4 * --------
5 * Author: Ric Sherlock (tikkanz@gmail.com)
6 * Copyright: (c) 2009 Ric Sherlock
7 * Release Version: 1.0.8.12
8 * Date Started: 2009/11/10
9 *
10 * J language file for GeSHi.
11 *
12 * CHANGES
13 * -------
14 * 2010/07/18 (1.0.8.10)
15 * - Infinity and negative infinity recognized as numbers
16 * 2010/03/01 (1.0.8.8)
17 * - Add support for label_xyz. and goto_xyz.
18 * - Fix highlighting of for_i.
19 * - Use alternative method for highlighting for_xyz. construct
20 * 2010/02/14 (1.0.8.7)
21 * - Add support for primitives
22 * 2010/01/12 (1.0.2)
23 * - Use HARDQUOTE for strings
24 * - Highlight open quotes/incomplete strings
25 * - Highlight multi-line comments that use Note
26 * - Refinements for NUMBERS and Argument keywords
27 * - Highlight infinity and neg. infinity using REGEXPS
28 * - Highlight "for_myvar." style Control keyword using REGEXPS
29 * 2009/12/14 (1.0.1)
30 * - Regex for NUMBERS, SYMBOLS for () and turn off BRACKETS
31 * 2009/11/12 (1.0.0)
32 * - First Release
33 *
34 * TODO (updated 2010/01/27)
35 * -------------------------
36 * * combine keyword categories by using conditional regex statement in PARSER CONTROL?
37 *************************************************************************************
38 *
39 * This file is part of GeSHi.
40 *
41 * GeSHi is free software; you can redistribute it and/or modify
42 * it under the terms of the GNU General Public License as published by
43 * the Free Software Foundation; either version 2 of the License, or
44 * (at your option) any later version.
45 *
46 * GeSHi is distributed in the hope that it will be useful,
47 * but WITHOUT ANY WARRANTY; without even the implied warranty of
48 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
49 * GNU General Public License for more details.
50 *
51 * You should have received a copy of the GNU General Public License
52 * along with GeSHi; if not, write to the Free Software
53 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
54 *
55 ************************************************************************************/
56
58 'LANG_NAME' => 'J',
59 'COMMENT_SINGLE' => array(),
60 'COMMENT_MULTI' => array(),
61 'COMMENT_REGEXP' => array(
62 1 => '/(?<!\w)NB\..*?$/m', //singleline comments NB.
63 2 => '/(?<=\bNote\b).*?$\s+\‍)(?:(?!\n)\s)*$/sm', //multiline comments in Note
64 3 => "/'[^']*?$/m" //incomplete strings/open quotes
65 ),
66 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
67 'QUOTEMARKS' => array(),
68 'ESCAPE_CHAR' => '',
69 'HARDQUOTE' => array("'", "'"),
70 'HARDESCAPE' => array("'"),
71 'HARDCHAR' => "'",
72 'NUMBERS' => array(
73 0 => '\b(?:_?\d+(?:\.\d+)?(?:x|[bejprx]_?[\da-z]+(?:\.[\da-z]+)?)?|__?)(?![\w\.\:])',
74 ),
75 'KEYWORDS' => array(
76 //Control words
77 1 => array(
78 'assert.', 'break.', 'case.', 'catch.', 'catcht.', 'continue.', 'do.',
79 'else.', 'elseif.', 'end.', 'fcase.', 'for.', 'goto.', 'if.', 'label.',
80 'return.', 'select.', 'throw.', 'trap.', 'try.', 'while.', 'whilst.'
81 ),
82 //Arguments
83 2 => array(
84 'm', 'n', 'u', 'v', 'x', 'y'
85 ),
86 ),
87 'SYMBOLS' => array(
88 //Punctuation
89 0 => array(
90 '(', ')'
91 )
92 ),
93 'CASE_SENSITIVE' => array(
94 GESHI_COMMENTS => false,
95 1 => true,
96 2 => true,
97 //6 => true,
98 //7 => true,
99 //8 => true,
100 ),
101 'STYLES' => array(
102 'KEYWORDS' => array(
103 1 => 'color: #0000ff; font-weight: bold;',
104 2 => 'color: #0000cc; font-weight: bold;',
105 //6 => 'color: #000000; font-weight: bold;',
106 //7 => 'color: #000000; font-weight: bold;',
107 //8 => 'color: #000000; font-weight: bold;',
108 ),
109 'COMMENTS' => array(
110 1 => 'color: #666666; font-style: italic;',
111 2 => 'color: #666666; font-style: italic; font-weight: bold;',
112 3 => 'color: #ff00ff; ', //open quote
113 'MULTI' => 'color: #666666; font-style: italic;'
114 ),
115 'ESCAPE_CHAR' => array(
116 'HARD' => 'font-weight: bold;',
117 0 => '',
118 ),
119 'BRACKETS' => array(
120 0 => 'color: #009900;'
121 ),
122 'STRINGS' => array(
123 'HARD' => 'color: #ff0000;',
124 0 => 'color: #ff0000;',
125 ),
126 'NUMBERS' => array(
127 0 => 'color: #009999; font-weight: bold;'
128 ),
129 'METHODS' => array(
130 ),
131 'SYMBOLS' => array(
132 0 => 'color: #009900; font-weight: bold;'
133 ),
134 'REGEXPS' => array(
135 0 => 'color: #0000ff; font-weight: bold;', //for_xyz. - same as kw1
136 ),
137 'SCRIPT' => array(
138 )
139 ),
140 'URLS' => array(
141 1 => '', //'http://www.jsoftware.com/help/dictionary/ctrl.htm',
142 2 => '',
143 //6 => '', //'http://www.jsoftware.com/jwiki/Vocabulary',
144 //7 => '', //'http://www.jsoftware.com/jwiki/Vocabulary',
145 //8 => '', //'http://www.jsoftware.com/jwiki/Vocabulary',
146 ),
147 'OOLANG' => false,
148 'OBJECT_SPLITTERS' => array(
149 ),
150 'REGEXPS' => array(
151 0 => '\b(for|goto|label)_[a-zA-Z]\w*\.', //for_xyz. - should be kw1
152 ),
153 'STRICT_MODE_APPLIES' => GESHI_NEVER,
154 'SCRIPT_DELIMITERS' => array(
155 ),
156 'HIGHLIGHT_STRICT_BLOCK' => array(
157 ),
158 'PARSER_CONTROL' => array(
159 'ENABLE_FLAGS' => array(
160 'BRACKETS' => GESHI_NEVER,
161 ),
162 'NUMBERS' => array(
163 'PRECHECK_RX' => '#[\d_]#', // underscore is valid number
164 ),
165 'KEYWORDS' => array(
166 //Control words
167 2 => array(
168 'DISALLOWED_BEFORE' => '(?<!\w)',
169 'DISALLOWED_AFTER' => '(?![\w\.\:])',
170 ),
171 //Primtives starting with a symbol (except . or :)
172 6 => array(
173 'DISALLOWED_BEFORE' => '(?!K)', // effect should be to allow anything
174 'DISALLOWED_AFTER' => '(?=.*)',
175 ),
176 //Primtives starting with a letter
177 7 => array(
178 'DISALLOWED_BEFORE' => '(?<!\w)',
179 'DISALLOWED_AFTER' => '(?=.*)',
180 ),
181 //Primtives starting with symbol . or :
182 8 => array(
183 'DISALLOWED_BEFORE' => '(?<=\s)',
184 'DISALLOWED_AFTER' => '(?=.*)',
185 ),
186 )
187 )
188);
An exception for terminatinating execution or to throw for unit testing.
const GESHI_CAPS_NO_CHANGE
Lowercase keywords found.
Definition: geshi.php:95
const GESHI_COMMENTS
Used in language files to mark comments.
Definition: geshi.php:150
const GESHI_NEVER
#+ @access private
Definition: geshi.php:124
$language_data
Definition: j.php:57