0
|
1 |
<?php
|
|
2 |
/*************************************************************************************
|
|
3 |
* sas.php
|
|
4 |
* -------
|
|
5 |
* Author: Galen Johnson (solitaryr@gmail.com)
|
|
6 |
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
|
|
7 |
* Release Version: 1.0.7.20
|
|
8 |
* Date Started: 2005/12/27
|
|
9 |
*
|
|
10 |
* SAS language file for GeSHi. Based on the sas vim file.
|
|
11 |
*
|
|
12 |
* CHANGES
|
|
13 |
* -------
|
|
14 |
* 2005/12/27 (1.0.0)
|
|
15 |
* - First Release
|
|
16 |
*
|
|
17 |
* TODO (updated 2005/12/27)
|
|
18 |
* -------------------------
|
|
19 |
*
|
|
20 |
* * Check highlighting stuff works
|
|
21 |
*
|
|
22 |
*************************************************************************************
|
|
23 |
*
|
|
24 |
* This file is part of GeSHi.
|
|
25 |
*
|
|
26 |
* GeSHi is free software; you can redistribute it and/or modify
|
|
27 |
* it under the terms of the GNU General Public License as published by
|
|
28 |
* the Free Software Foundation; either version 2 of the License, or
|
|
29 |
* (at your option) any later version.
|
|
30 |
*
|
|
31 |
* GeSHi is distributed in the hope that it will be useful,
|
|
32 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
33 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
34 |
* GNU General Public License for more details.
|
|
35 |
*
|
|
36 |
* You should have received a copy of the GNU General Public License
|
|
37 |
* along with GeSHi; if not, write to the Free Software
|
|
38 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
39 |
*
|
|
40 |
************************************************************************************/
|
|
41 |
|
|
42 |
$language_data = array (
|
|
43 |
'LANG_NAME' => 'SAS',
|
|
44 |
'COMMENT_SINGLE' => array(),
|
|
45 |
'COMMENT_MULTI' => array('/*' => '*/'),
|
|
46 |
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
|
|
47 |
'QUOTEMARKS' => array("'", '"'),
|
|
48 |
'ESCAPE_CHAR' => '\\',
|
|
49 |
'KEYWORDS' => array(
|
|
50 |
1 => array(
|
|
51 |
'_NULL_', '_INFILE_', '_N_', '_WEBOUT_', '_NUMERIC_', '_CHARACTER_', '_ALL_'
|
|
52 |
),
|
|
53 |
2 => array(
|
|
54 |
'%BQUOTE', '%NRBQUOTE', '%CMPRES', '%QCMPRES',
|
|
55 |
|
|
56 |
'%COMPSTOR', '%DATATYP', '%DISPLAY', '%DO',
|
|
57 |
'%ELSE', '%END', '%EVAL', '%GLOBAL',
|
|
58 |
'%GOTO', '%IF', '%INDEX', '%INPUT',
|
|
59 |
'%KEYDEF', '%LABEL', '%LEFT', '%LENGTH',
|
|
60 |
'%LET', '%LOCAL', '%LOWCASE', '%MACRO',
|
|
61 |
'%MEND', '%NRBQUOTE', '%NRQUOTE', '%NRSTR',
|
|
62 |
|
|
63 |
'%PUT', '%QCMPRES', '%QLEFT', '%QLOWCASE',
|
|
64 |
'%QSCAN', '%QSUBSTR', '%QSYSFUNC', '%QTRIM',
|
|
65 |
'%QUOTE', '%QUPCASE', '%SCAN', '%STR',
|
|
66 |
'%SUBSTR', '%SUPERQ', '%SYSCALL', '%SYSEVALF',
|
|
67 |
'%SYSEXEC', '%SYSFUNC', '%SYSGET', '%SYSLPUT',
|
|
68 |
'%SYSPROD', '%SYSRC', '%SYSRPUT', '%THEN',
|
|
69 |
|
|
70 |
'%TO', '%TRIM', '%UNQUOTE', '%UNTIL',
|
|
71 |
'%UPCASE', '%VERIFY', '%WHILE', '%WINDOW'
|
|
72 |
),
|
|
73 |
3 => array(
|
|
74 |
'ABS', 'ADDR', 'AIRY', 'ARCOS', 'ARSIN', 'ATAN', 'ATTRC', 'ATTRN',
|
|
75 |
|
|
76 |
'BAND', 'BETAINV', 'BLSHIFT', 'BNOT', 'BOR', 'BRSHIFT', 'BXOR',
|
|
77 |
'BYTE', 'CDF', 'CEIL', 'CEXIST', 'CINV', 'CLOSE', 'CNONCT', 'COLLATE',
|
|
78 |
'COMPBL', 'COMPOUND', 'COMPRESS', 'COSH', 'COS', 'CSS', 'CUROBS',
|
|
79 |
'CV', 'DACCDBSL', 'DACCDB', 'DACCSL', 'DACCSYD', 'DACCTAB',
|
|
80 |
'DAIRY', 'DATETIME', 'DATEJUL', 'DATEPART', 'DATE', 'DAY',
|
|
81 |
'DCLOSE', 'DEPDBSL', 'DEPDB', 'DEPSL',
|
|
82 |
|
|
83 |
'DEPSYD', 'DEPSYD', 'DEPTAB', 'DEPTAB', 'DEQUOTE', 'DHMS',
|
|
84 |
'DIF', 'DIGAMMA', 'DIM', 'DINFO', 'DNUM', 'DOPEN', 'DOPTNAME',
|
|
85 |
'DOPTNUM', 'DREAD', 'DROPNOTE', 'DSNAME', 'ERFC', 'ERF', 'EXIST',
|
|
86 |
'EXP', 'FAPPEND', 'FCLOSE', 'FCOL', 'FDELETE', 'FETCHOBS', 'FETCH',
|
|
87 |
'FEXIST', 'FGET', 'FILEEXIST', 'FILENAME', 'FILEREF', 'FINFO',
|
|
88 |
'FINV', 'FIPNAMEL', 'FIPNAME', 'FIPSTATE', 'FLOOR', 'FNONCT',
|
|
89 |
|
|
90 |
'FNOTE', 'FOPEN', 'FOPTNAME', 'FOPTNUM', 'FPOINT', 'FPOS',
|
|
91 |
'FPUT', 'FREAD', 'FREWIND', 'FRLEN', 'FSEP', 'FUZZ', 'FWRITE',
|
|
92 |
'GAMINV', 'GAMMA', 'GETOPTION', 'GETVARC', 'GETVARN', 'HBOUND',
|
|
93 |
'HMS', 'HOSTHELP', 'HOUR', 'IBESSEL', 'INDEXW', 'INDEXC',
|
|
94 |
'INDEX', 'INPUTN', 'INPUTC', 'INPUT', 'INTRR', 'INTCK', 'INTNX',
|
|
95 |
'INT', 'IRR', 'JBESSEL', 'JULDATE', 'KURTOSIS', 'LAG', 'LBOUND',
|
|
96 |
|
|
97 |
'LEFT', 'LENGTH', 'LGAMMA', 'LIBNAME', 'LIBREF', 'LOG10',
|
|
98 |
'LOG2', 'LOGPDF', 'LOGPMF', 'LOGSDF', 'LOG', 'LOWCASE', 'MAX', 'MDY',
|
|
99 |
'MEAN', 'MINUTE', 'MIN', 'MOD', 'MONTH', 'MOPEN', 'MORT',
|
|
100 |
'NETPV', 'NMISS', 'NORMAL', 'NPV', 'N', 'OPEN', 'ORDINAL',
|
|
101 |
'PATHNAME', 'PDF', 'PEEKC', 'PEEK', 'PMF', 'POINT', 'POISSON', 'POKE',
|
|
102 |
'PROBBETA', 'PROBBNML', 'PROBCHI', 'PROBF', 'PROBGAM',
|
|
103 |
|
|
104 |
'PROBHYPR', 'PROBIT', 'PROBNEGB', 'PROBNORM', 'PROBT', 'PUTN',
|
|
105 |
'PUTC', 'PUT', 'QTR', 'QUOTE', 'RANBIN', 'RANCAU', 'RANEXP',
|
|
106 |
'RANGAM', 'RANGE', 'RANK', 'RANNOR', 'RANPOI', 'RANTBL', 'RANTRI',
|
|
107 |
'RANUNI', 'REPEAT', 'RESOLVE', 'REVERSE', 'REWIND', 'RIGHT',
|
|
108 |
'ROUND', 'SAVING', 'SCAN', 'SDF', 'SECOND', 'SIGN', 'SINH', 'SIN',
|
|
109 |
'SKEWNESS', 'SOUNDEX', 'SPEDIS', 'SQRT', 'STDERR', 'STD', 'STFIPS',
|
|
110 |
|
|
111 |
'STNAME', 'STNAMEL', 'SUBSTR', 'SUM', 'SYMGET', 'SYSGET', 'SYSMSG',
|
|
112 |
'SYSPROD', 'SYSRC', 'SYSTEM', 'TANH', 'TAN', 'TIMEPART', 'TIME',
|
|
113 |
'TINV', 'TNONCT', 'TODAY', 'TRANSLATE', 'TRANWRD', 'TRIGAMMA',
|
|
114 |
'TRIMN', 'TRIM', 'TRUNC', 'UNIFORM', 'UPCASE', 'USS',
|
|
115 |
'VARFMT', 'VARINFMT', 'VARLABEL', 'VARLEN', 'VARNAME',
|
|
116 |
'VARNUM', 'VARRAYX', 'VARRAY', 'VARTYPE', 'VAR', 'VERIFY', 'VFORMATX',
|
|
117 |
|
|
118 |
'VFORMATDX', 'VFORMATD', 'VFORMATNX', 'VFORMATN', 'VFORMATWX',
|
|
119 |
'VFORMATW', 'VFORMAT', 'VINARRAYX', 'VINARRAY', 'VINFORMATX',
|
|
120 |
'VINFORMATDX', 'VINFORMATD', 'VINFORMATNX', 'VINFORMATN',
|
|
121 |
'VINFORMATWX', 'VINFORMATW', 'VINFORMAT', 'VLABELX',
|
|
122 |
'VLABEL', 'VLENGTHX', 'VLENGTH', 'VNAMEX', 'VNAME', 'VTYPEX',
|
|
123 |
'VTYPE', 'WEEKDAY', 'YEAR', 'YYQ', 'ZIPFIPS', 'ZIPNAME', 'ZIPNAMEL',
|
|
124 |
|
|
125 |
'ZIPSTATE'
|
|
126 |
),
|
|
127 |
4 => array(
|
|
128 |
'ABORT', 'ARRAY', 'ATTRIB', 'BY', 'CALL', 'CARDS4', 'CATNAME',
|
|
129 |
'CONTINUE', 'DATALINES4', 'DELETE', 'DISPLAY',
|
|
130 |
|
|
131 |
'DM', 'DROP', 'ENDSAS', 'FILENAME', 'FILE', 'FOOTNOTE',
|
|
132 |
'FORMAT', 'GOTO', 'INFILE', 'INFORMAT', 'INPUT', 'KEEP',
|
|
133 |
'LABEL', 'LEAVE', 'LENGTH', 'LIBNAME', 'LINK', 'LIST', 'LOSTCARD',
|
|
134 |
'MERGE', 'MISSING', 'MODIFY', 'OPTIONS', 'OUTPUT', 'PAGE',
|
|
135 |
'PUT', 'REDIRECT', 'REMOVE', 'RENAME', 'REPLACE', 'RETAIN',
|
|
136 |
'RETURN', 'SELECT', 'SET', 'SKIP', 'STARTSAS', 'STOP', 'TITLE',
|
|
137 |
|
|
138 |
'UPDATE', 'WAITSAS', 'WHERE', 'WINDOW', 'X', 'SYSTASK',
|
|
139 |
'ADD', 'AND', 'ALTER', 'AS', 'CASCADE', 'CHECK', 'CREATE',
|
|
140 |
'DELETE', 'DESCRIBE', 'DISTINCT', 'DROP', 'FOREIGN',
|
|
141 |
'FROM', 'GROUP', 'HAVING', 'INDEX', 'INSERT', 'INTO', 'IN',
|
|
142 |
'KEY', 'LIKE', 'MESSAGE', 'MODIFY', 'MSGTYPE', 'NOT',
|
|
143 |
'NULL', 'ON', 'OR', 'ORDER', 'PRIMARY', 'REFERENCES',
|
|
144 |
|
|
145 |
'RESET', 'RESTRICT', 'SELECT', 'SET', 'TABLE',
|
|
146 |
'UNIQUE', 'UPDATE', 'VALIDATE', 'VIEW', 'WHERE'
|
|
147 |
),
|
|
148 |
5 => array(
|
|
149 |
'DO', 'ELSE', 'END', 'IF', 'THEN', 'UNTIL', 'WHILE'
|
|
150 |
|
|
151 |
),
|
|
152 |
6 => array(
|
|
153 |
'RUN', 'QUIT', 'DATA'
|
|
154 |
),
|
|
155 |
7 => array(
|
|
156 |
|
|
157 |
'ERROR'
|
|
158 |
),
|
|
159 |
8 => array(
|
|
160 |
'WARNING'
|
|
161 |
),
|
|
162 |
|
|
163 |
9 => array(
|
|
164 |
'NOTE'
|
|
165 |
)
|
|
166 |
),
|
|
167 |
'SYMBOLS' => array(
|
|
168 |
|
|
169 |
),
|
|
170 |
'CASE_SENSITIVE' => array(
|
|
171 |
GESHI_COMMENTS => false,
|
|
172 |
1 => false,
|
|
173 |
|
|
174 |
2 => false,
|
|
175 |
3 => false,
|
|
176 |
4 => false,
|
|
177 |
5 => false,
|
|
178 |
|
|
179 |
6 => false,
|
|
180 |
7 => false,
|
|
181 |
8 => false,
|
|
182 |
9 => false
|
|
183 |
|
|
184 |
),
|
|
185 |
'STYLES' => array(
|
|
186 |
'KEYWORDS' => array(
|
|
187 |
1 => 'color: #0000ff;',
|
|
188 |
|
|
189 |
2 => 'color: #0000ff;',
|
|
190 |
3 => 'color: #0000ff;',
|
|
191 |
4 => 'color: #0000ff;',
|
|
192 |
5 => 'color: #0000ff;',
|
|
193 |
|
|
194 |
6 => 'color: #000080; font-weight: bold;',
|
|
195 |
7 => 'color: #ff0000;',
|
|
196 |
8 => 'color: #00ff00;',
|
|
197 |
9 => 'color: #0000ff;'
|
|
198 |
|
|
199 |
),
|
|
200 |
'COMMENTS' => array(
|
|
201 |
1 => 'color: #006400; font-style: italic;',
|
|
202 |
'MULTI' => 'color: #006400; font-style: italic;'
|
|
203 |
|
|
204 |
),
|
|
205 |
'ESCAPE_CHAR' => array(
|
|
206 |
0 => 'color: #000099; font-weight: bold;'
|
|
207 |
),
|
|
208 |
'BRACKETS' => array(
|
|
209 |
|
|
210 |
0 => 'color: #66cc66;'
|
|
211 |
),
|
|
212 |
'STRINGS' => array(
|
|
213 |
0 => 'color: #a020f0;'
|
|
214 |
|
|
215 |
),
|
|
216 |
'NUMBERS' => array(
|
|
217 |
0 => 'color: #2e8b57; font-weight: bold;'
|
|
218 |
),
|
|
219 |
'METHODS' => array(
|
|
220 |
|
|
221 |
),
|
|
222 |
'SYMBOLS' => array(
|
|
223 |
0 => 'color: #66cc66;'
|
|
224 |
),
|
|
225 |
'SCRIPT' => array(
|
|
226 |
|
|
227 |
0 => '',
|
|
228 |
1 => '',
|
|
229 |
2 => '',
|
|
230 |
3 => ''
|
|
231 |
|
|
232 |
),
|
|
233 |
'REGEXPS' => array(
|
|
234 |
0 => 'color: #0000ff; font-weight: bold;',
|
|
235 |
1 => 'color: #000080; font-weight: bold;',
|
|
236 |
|
|
237 |
2 => 'color: #006400; font-style: italic;',
|
|
238 |
3 => 'color: #006400; font-style: italic;',
|
|
239 |
4 => 'color: #006400; font-style: italic;',
|
|
240 |
5 => 'color: #ff0000; font-weight: bold;',
|
|
241 |
|
|
242 |
6 => 'color: #00ff00; font-style: italic;',
|
|
243 |
7 => 'color: #0000ff; font-style: normal;',
|
|
244 |
8 => 'color: #b218b2; font-weight: bold;',
|
|
245 |
9 => 'color: #b218b2; font-weight: bold;'
|
|
246 |
|
|
247 |
)
|
|
248 |
),
|
|
249 |
'URLS' => array(
|
|
250 |
1 => '',
|
|
251 |
2 => '',
|
|
252 |
|
|
253 |
3 => '',
|
|
254 |
4 => '',
|
|
255 |
5 => '',
|
|
256 |
6 => '',
|
|
257 |
|
|
258 |
7 => '',
|
|
259 |
8 => '',
|
|
260 |
9 => ''
|
|
261 |
),
|
|
262 |
|
|
263 |
'OOLANG' => false,
|
|
264 |
'OBJECT_SPLITTERS' => array(
|
|
265 |
),
|
|
266 |
'REGEXPS' => array(
|
|
267 |
|
|
268 |
0 => "&[a-zA-Z_][a-zA-Z0-9_]*",
|
|
269 |
1 => array(
|
|
270 |
GESHI_SEARCH => '(^\\s*)(PROC \\w+)',
|
|
271 |
GESHI_REPLACE => '\\2',
|
|
272 |
|
|
273 |
GESHI_MODIFIERS => 'im',
|
|
274 |
GESHI_BEFORE => '\\1',
|
|
275 |
GESHI_AFTER => ''
|
|
276 |
),
|
|
277 |
|
|
278 |
2 => array(
|
|
279 |
GESHI_SEARCH => '(^\\s*)(\\*.*;)',
|
|
280 |
GESHI_REPLACE => '\\2',
|
|
281 |
GESHI_MODIFIERS => 'im',
|
|
282 |
|
|
283 |
GESHI_BEFORE => '\\1',
|
|
284 |
GESHI_AFTER => ''
|
|
285 |
),
|
|
286 |
3 => array(
|
|
287 |
|
|
288 |
GESHI_SEARCH => '(.*;\\s*)(\\*.*;)',
|
|
289 |
GESHI_REPLACE => '\\2',
|
|
290 |
GESHI_MODIFIERS => 'im',
|
|
291 |
GESHI_BEFORE => '\\1',
|
|
292 |
|
|
293 |
GESHI_AFTER => ''
|
|
294 |
),
|
|
295 |
4 => array(
|
|
296 |
GESHI_SEARCH => '(^\\s*)(%\\*.*;)',
|
|
297 |
|
|
298 |
GESHI_REPLACE => '\\2',
|
|
299 |
GESHI_MODIFIERS => 'im',
|
|
300 |
GESHI_BEFORE => '\\1',
|
|
301 |
GESHI_AFTER => ''
|
|
302 |
|
|
303 |
),
|
|
304 |
5 => array(
|
|
305 |
GESHI_SEARCH => '(^ERROR.*)',
|
|
306 |
GESHI_REPLACE => '\\1',
|
|
307 |
|
|
308 |
GESHI_MODIFIERS => 'im',
|
|
309 |
GESHI_BEFORE => '',
|
|
310 |
GESHI_AFTER => ''
|
|
311 |
),
|
|
312 |
|
|
313 |
6 => array(
|
|
314 |
GESHI_SEARCH => '(^WARNING.*)',
|
|
315 |
GESHI_REPLACE => '\\1',
|
|
316 |
GESHI_MODIFIERS => 'im',
|
|
317 |
|
|
318 |
GESHI_BEFORE => '',
|
|
319 |
GESHI_AFTER => ''
|
|
320 |
),
|
|
321 |
7 => array(
|
|
322 |
|
|
323 |
GESHI_SEARCH => '(^NOTE.*)',
|
|
324 |
GESHI_REPLACE => '\\1',
|
|
325 |
GESHI_MODIFIERS => 'im',
|
|
326 |
GESHI_BEFORE => '',
|
|
327 |
|
|
328 |
GESHI_AFTER => ''
|
|
329 |
),
|
|
330 |
8 => array(
|
|
331 |
GESHI_SEARCH => '(^\\s*)(CARDS.*)(^\\s*;\\s*$)',
|
|
332 |
|
|
333 |
GESHI_REPLACE => '\\2',
|
|
334 |
GESHI_MODIFIERS => 'sim',
|
|
335 |
GESHI_BEFORE => '\\1',
|
|
336 |
GESHI_AFTER => '\\3'
|
|
337 |
|
|
338 |
),
|
|
339 |
9 => array(
|
|
340 |
GESHI_SEARCH => '(^\\s*)(DATALINES.*)(^\\s*;\\s*$)',
|
|
341 |
GESHI_REPLACE => '\\2',
|
|
342 |
|
|
343 |
GESHI_MODIFIERS => 'sim',
|
|
344 |
GESHI_BEFORE => '\\1',
|
|
345 |
GESHI_AFTER => '\\3'
|
|
346 |
)
|
|
347 |
|
|
348 |
),
|
|
349 |
'STRICT_MODE_APPLIES' => GESHI_MAYBE,
|
|
350 |
'SCRIPT_DELIMITERS' => array(
|
|
351 |
),
|
|
352 |
'HIGHLIGHT_STRICT_BLOCK' => array(
|
|
353 |
|
|
354 |
)
|
|
355 |
);
|
|
356 |
|
|
357 |
?>
|