|
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 ?> |