--- a/plugins/geshi/geshi/sas.php Sun Feb 10 19:00:04 2008 -0500
+++ b/plugins/geshi/geshi/sas.php Fri May 29 19:30:59 2009 -0400
@@ -4,19 +4,21 @@
* -------
* Author: Galen Johnson (solitaryr@gmail.com)
* Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.8.2
* Date Started: 2005/12/27
*
* SAS language file for GeSHi. Based on the sas vim file.
*
* CHANGES
* -------
+ * 2008/05/23 (1.0.7.22)
+ * - Added description of extra language features (SF#1970248)
+ * - Cleaned up code style
* 2005/12/27 (1.0.0)
* - First Release
*
* TODO (updated 2005/12/27)
* -------------------------
- *
* * Check highlighting stuff works
*
*************************************************************************************
@@ -48,309 +50,240 @@
'ESCAPE_CHAR' => '\\',
'KEYWORDS' => array(
1 => array(
- '_NULL_', '_INFILE_', '_N_', '_WEBOUT_', '_NUMERIC_', '_CHARACTER_', '_ALL_'
+ '_ALL_','_CHARACTER_','_INFILE_','_N_','_NULL_','_NUMERIC_',
+ '_WEBOUT_'
),
2 => array(
- '%BQUOTE', '%NRBQUOTE', '%CMPRES', '%QCMPRES',
-
- '%COMPSTOR', '%DATATYP', '%DISPLAY', '%DO',
- '%ELSE', '%END', '%EVAL', '%GLOBAL',
- '%GOTO', '%IF', '%INDEX', '%INPUT',
- '%KEYDEF', '%LABEL', '%LEFT', '%LENGTH',
- '%LET', '%LOCAL', '%LOWCASE', '%MACRO',
- '%MEND', '%NRBQUOTE', '%NRQUOTE', '%NRSTR',
-
- '%PUT', '%QCMPRES', '%QLEFT', '%QLOWCASE',
- '%QSCAN', '%QSUBSTR', '%QSYSFUNC', '%QTRIM',
- '%QUOTE', '%QUPCASE', '%SCAN', '%STR',
- '%SUBSTR', '%SUPERQ', '%SYSCALL', '%SYSEVALF',
- '%SYSEXEC', '%SYSFUNC', '%SYSGET', '%SYSLPUT',
- '%SYSPROD', '%SYSRC', '%SYSRPUT', '%THEN',
-
- '%TO', '%TRIM', '%UNQUOTE', '%UNTIL',
- '%UPCASE', '%VERIFY', '%WHILE', '%WINDOW'
+ '%BQUOTE','%CMPRES','%COMPSTOR','%DATATYP','%DISPLAY','%DO','%ELSE',
+ '%END','%EVAL','%GLOBAL','%GOTO','%IF','%INDEX','%INPUT','%KEYDEF',
+ '%LABEL','%LEFT','%LENGTH','%LET','%LOCAL','%LOWCASE','%MACRO',
+ '%MEND','%NRBQUOTE','%NRQUOTE','%NRSTR','%PUT','%QCMPRES','%QLEFT',
+ '%QLOWCASE','%QSCAN','%QSUBSTR','%QSYSFUNC','%QTRIM','%QUOTE',
+ '%QUPCASE','%SCAN','%STR','%SUBSTR','%SUPERQ','%SYSCALL',
+ '%SYSEVALF','%SYSEXEC','%SYSFUNC','%SYSGET','%SYSLPUT','%SYSPROD',
+ '%SYSRC','%SYSRPUT','%THEN','%TO','%TRIM','%UNQUOTE','%UNTIL',
+ '%UPCASE','%VERIFY','%WHILE','%WINDOW'
),
3 => array(
- 'ABS', 'ADDR', 'AIRY', 'ARCOS', 'ARSIN', 'ATAN', 'ATTRC', 'ATTRN',
-
- 'BAND', 'BETAINV', 'BLSHIFT', 'BNOT', 'BOR', 'BRSHIFT', 'BXOR',
- 'BYTE', 'CDF', 'CEIL', 'CEXIST', 'CINV', 'CLOSE', 'CNONCT', 'COLLATE',
- 'COMPBL', 'COMPOUND', 'COMPRESS', 'COSH', 'COS', 'CSS', 'CUROBS',
- 'CV', 'DACCDBSL', 'DACCDB', 'DACCSL', 'DACCSYD', 'DACCTAB',
- 'DAIRY', 'DATETIME', 'DATEJUL', 'DATEPART', 'DATE', 'DAY',
- 'DCLOSE', 'DEPDBSL', 'DEPDB', 'DEPSL',
-
- 'DEPSYD', 'DEPSYD', 'DEPTAB', 'DEPTAB', 'DEQUOTE', 'DHMS',
- 'DIF', 'DIGAMMA', 'DIM', 'DINFO', 'DNUM', 'DOPEN', 'DOPTNAME',
- 'DOPTNUM', 'DREAD', 'DROPNOTE', 'DSNAME', 'ERFC', 'ERF', 'EXIST',
- 'EXP', 'FAPPEND', 'FCLOSE', 'FCOL', 'FDELETE', 'FETCHOBS', 'FETCH',
- 'FEXIST', 'FGET', 'FILEEXIST', 'FILENAME', 'FILEREF', 'FINFO',
- 'FINV', 'FIPNAMEL', 'FIPNAME', 'FIPSTATE', 'FLOOR', 'FNONCT',
-
- 'FNOTE', 'FOPEN', 'FOPTNAME', 'FOPTNUM', 'FPOINT', 'FPOS',
- 'FPUT', 'FREAD', 'FREWIND', 'FRLEN', 'FSEP', 'FUZZ', 'FWRITE',
- 'GAMINV', 'GAMMA', 'GETOPTION', 'GETVARC', 'GETVARN', 'HBOUND',
- 'HMS', 'HOSTHELP', 'HOUR', 'IBESSEL', 'INDEXW', 'INDEXC',
- 'INDEX', 'INPUTN', 'INPUTC', 'INPUT', 'INTRR', 'INTCK', 'INTNX',
- 'INT', 'IRR', 'JBESSEL', 'JULDATE', 'KURTOSIS', 'LAG', 'LBOUND',
-
- 'LEFT', 'LENGTH', 'LGAMMA', 'LIBNAME', 'LIBREF', 'LOG10',
- 'LOG2', 'LOGPDF', 'LOGPMF', 'LOGSDF', 'LOG', 'LOWCASE', 'MAX', 'MDY',
- 'MEAN', 'MINUTE', 'MIN', 'MOD', 'MONTH', 'MOPEN', 'MORT',
- 'NETPV', 'NMISS', 'NORMAL', 'NPV', 'N', 'OPEN', 'ORDINAL',
- 'PATHNAME', 'PDF', 'PEEKC', 'PEEK', 'PMF', 'POINT', 'POISSON', 'POKE',
- 'PROBBETA', 'PROBBNML', 'PROBCHI', 'PROBF', 'PROBGAM',
-
- 'PROBHYPR', 'PROBIT', 'PROBNEGB', 'PROBNORM', 'PROBT', 'PUTN',
- 'PUTC', 'PUT', 'QTR', 'QUOTE', 'RANBIN', 'RANCAU', 'RANEXP',
- 'RANGAM', 'RANGE', 'RANK', 'RANNOR', 'RANPOI', 'RANTBL', 'RANTRI',
- 'RANUNI', 'REPEAT', 'RESOLVE', 'REVERSE', 'REWIND', 'RIGHT',
- 'ROUND', 'SAVING', 'SCAN', 'SDF', 'SECOND', 'SIGN', 'SINH', 'SIN',
- 'SKEWNESS', 'SOUNDEX', 'SPEDIS', 'SQRT', 'STDERR', 'STD', 'STFIPS',
-
- 'STNAME', 'STNAMEL', 'SUBSTR', 'SUM', 'SYMGET', 'SYSGET', 'SYSMSG',
- 'SYSPROD', 'SYSRC', 'SYSTEM', 'TANH', 'TAN', 'TIMEPART', 'TIME',
- 'TINV', 'TNONCT', 'TODAY', 'TRANSLATE', 'TRANWRD', 'TRIGAMMA',
- 'TRIMN', 'TRIM', 'TRUNC', 'UNIFORM', 'UPCASE', 'USS',
- 'VARFMT', 'VARINFMT', 'VARLABEL', 'VARLEN', 'VARNAME',
- 'VARNUM', 'VARRAYX', 'VARRAY', 'VARTYPE', 'VAR', 'VERIFY', 'VFORMATX',
-
- 'VFORMATDX', 'VFORMATD', 'VFORMATNX', 'VFORMATN', 'VFORMATWX',
- 'VFORMATW', 'VFORMAT', 'VINARRAYX', 'VINARRAY', 'VINFORMATX',
- 'VINFORMATDX', 'VINFORMATD', 'VINFORMATNX', 'VINFORMATN',
- 'VINFORMATWX', 'VINFORMATW', 'VINFORMAT', 'VLABELX',
- 'VLABEL', 'VLENGTHX', 'VLENGTH', 'VNAMEX', 'VNAME', 'VTYPEX',
- 'VTYPE', 'WEEKDAY', 'YEAR', 'YYQ', 'ZIPFIPS', 'ZIPNAME', 'ZIPNAMEL',
-
- 'ZIPSTATE'
+ 'ABS','ADDR','AIRY','ARCOS','ARSIN','ATAN','ATTRC','ATTRN','BAND',
+ 'BETAINV','BLSHIFT','BNOT','BOR','BRSHIFT','BXOR','BYTE','CDF',
+ 'CEIL','CEXIST','CINV','CLOSE','CNONCT','COLLATE','COMPBL',
+ 'COMPOUND','COMPRESS','COSH','COS','CSS','CUROBS','CV','DACCDBSL',
+ 'DACCDB','DACCSL','DACCSYD','DACCTAB','DAIRY','DATETIME','DATEJUL',
+ 'DATEPART','DATE','DAY','DCLOSE','DEPDBSL','DEPDB','DEPSL','DEPSYD',
+ 'DEPTAB','DEQUOTE','DHMS','DIF','DIGAMMA','DIM','DINFO','DNUM',
+ 'DOPEN','DOPTNAME','DOPTNUM','DREAD','DROPNOTE','DSNAME','ERFC',
+ 'ERF','EXIST','EXP','FAPPEND','FCLOSE','FCOL','FDELETE','FETCHOBS',
+ 'FETCH','FEXIST','FGET','FILEEXIST','FILENAME','FILEREF','FINFO',
+ 'FINV','FIPNAMEL','FIPNAME','FIPSTATE','FLOOR','FNONCT','FNOTE',
+ 'FOPEN','FOPTNAME','FOPTNUM','FPOINT','FPOS','FPUT','FREAD',
+ 'FREWIND','FRLEN','FSEP','FUZZ','FWRITE','GAMINV','GAMMA',
+ 'GETOPTION','GETVARC','GETVARN','HBOUND','HMS','HOSTHELP','HOUR',
+ 'IBESSEL','INDEXW','INDEXC','INDEX','INPUTN','INPUTC','INPUT',
+ 'INTRR','INTCK','INTNX','INT','IRR','JBESSEL','JULDATE','KURTOSIS',
+ 'LAG','LBOUND','LEFT','LENGTH','LGAMMA','LIBNAME','LIBREF','LOG10',
+ 'LOG2','LOGPDF','LOGPMF','LOGSDF','LOG','LOWCASE','MAX','MDY',
+ 'MEAN','MINUTE','MIN','MOD','MONTH','MOPEN','MORT','NETPV','NMISS',
+ 'NORMAL','NPV','N','OPEN','ORDINAL','PATHNAME','PDF','PEEKC','PEEK',
+ 'PMF','POINT','POISSON','POKE','PROBBETA','PROBBNML','PROBCHI',
+ 'PROBF','PROBGAM','PROBHYPR','PROBIT','PROBNEGB','PROBNORM','PROBT',
+ 'PUTN','PUTC','PUT','QTR','QUOTE','RANBIN','RANCAU','RANEXP',
+ 'RANGAM','RANGE','RANK','RANNOR','RANPOI','RANTBL','RANTRI',
+ 'RANUNI','REPEAT','RESOLVE','REVERSE','REWIND','RIGHT','ROUND',
+ 'SAVING','SCAN','SDF','SECOND','SIGN','SINH','SIN','SKEWNESS',
+ 'SOUNDEX','SPEDIS','SQRT','STDERR','STD','STFIPS','STNAME',
+ 'STNAMEL','SUBSTR','SUM','SYMGET','SYSGET','SYSMSG','SYSPROD',
+ 'SYSRC','SYSTEM','TANH','TAN','TIMEPART','TIME','TINV','TNONCT',
+ 'TODAY','TRANSLATE','TRANWRD','TRIGAMMA','TRIMN','TRIM','TRUNC',
+ 'UNIFORM','UPCASE','USS','VARFMT','VARINFMT','VARLABEL','VARLEN',
+ 'VARNAME','VARNUM','VARRAYX','VARRAY','VARTYPE','VAR','VERIFY',
+ 'VFORMATX','VFORMATDX','VFORMATD','VFORMATNX','VFORMATN',
+ 'VFORMATWX','VFORMATW','VFORMAT','VINARRAYX','VINARRAY',
+ 'VINFORMATX','VINFORMATDX','VINFORMATD','VINFORMATNX','VINFORMATN',
+ 'VINFORMATWX','VINFORMATW','VINFORMAT','VLABELX','VLABEL',
+ 'VLENGTHX','VLENGTH','VNAMEX','VNAME','VTYPEX','VTYPE','WEEKDAY',
+ 'YEAR','YYQ','ZIPFIPS','ZIPNAME','ZIPNAMEL','ZIPSTATE'
),
4 => array(
- 'ABORT', 'ARRAY', 'ATTRIB', 'BY', 'CALL', 'CARDS4', 'CATNAME',
- 'CONTINUE', 'DATALINES4', 'DELETE', 'DISPLAY',
-
- 'DM', 'DROP', 'ENDSAS', 'FILENAME', 'FILE', 'FOOTNOTE',
- 'FORMAT', 'GOTO', 'INFILE', 'INFORMAT', 'INPUT', 'KEEP',
- 'LABEL', 'LEAVE', 'LENGTH', 'LIBNAME', 'LINK', 'LIST', 'LOSTCARD',
- 'MERGE', 'MISSING', 'MODIFY', 'OPTIONS', 'OUTPUT', 'PAGE',
- 'PUT', 'REDIRECT', 'REMOVE', 'RENAME', 'REPLACE', 'RETAIN',
- 'RETURN', 'SELECT', 'SET', 'SKIP', 'STARTSAS', 'STOP', 'TITLE',
-
- 'UPDATE', 'WAITSAS', 'WHERE', 'WINDOW', 'X', 'SYSTASK',
- 'ADD', 'AND', 'ALTER', 'AS', 'CASCADE', 'CHECK', 'CREATE',
- 'DELETE', 'DESCRIBE', 'DISTINCT', 'DROP', 'FOREIGN',
- 'FROM', 'GROUP', 'HAVING', 'INDEX', 'INSERT', 'INTO', 'IN',
- 'KEY', 'LIKE', 'MESSAGE', 'MODIFY', 'MSGTYPE', 'NOT',
- 'NULL', 'ON', 'OR', 'ORDER', 'PRIMARY', 'REFERENCES',
-
- 'RESET', 'RESTRICT', 'SELECT', 'SET', 'TABLE',
- 'UNIQUE', 'UPDATE', 'VALIDATE', 'VIEW', 'WHERE'
+ 'ABORT','ADD','ALTER','AND','ARRAY','AS','ATTRIB','BY','CALL',
+ 'CARDS4','CASCADE','CATNAME','CHECK','CONTINUE','CREATE',
+ 'DATALINES4','DELETE','DESCRIBE','DISPLAY','DISTINCT','DM','DROP',
+ 'ENDSAS','FILE','FOOTNOTE','FOREIGN','FORMAT','FROM',
+ 'GOTO','GROUP','HAVING','IN','INFILE','INFORMAT',
+ 'INSERT','INTO','KEEP','KEY','LABEL','LEAVE',
+ 'LIKE','LINK','LIST','LOSTCARD','MERGE','MESSAGE','MISSING',
+ 'MODIFY','MSGTYPE','NOT','NULL','ON','OPTIONS','OR','ORDER',
+ 'OUTPUT','PAGE','PRIMARY','REDIRECT','REFERENCES','REMOVE',
+ 'RENAME','REPLACE','RESET','RESTRICT','RETAIN','RETURN','SELECT',
+ 'SET','SKIP','STARTSAS','STOP','SYSTASK','TABLE','TITLE','UNIQUE',
+ 'UPDATE','VALIDATE','VIEW','WAITSAS','WHERE','WINDOW','X'
),
5 => array(
- 'DO', 'ELSE', 'END', 'IF', 'THEN', 'UNTIL', 'WHILE'
-
+ 'DO','ELSE','END','IF','THEN','UNTIL','WHILE'
),
6 => array(
- 'RUN', 'QUIT', 'DATA'
+ 'RUN','QUIT','DATA'
),
7 => array(
-
'ERROR'
),
8 => array(
'WARNING'
),
-
9 => array(
'NOTE'
)
),
'SYMBOLS' => array(
-
),
'CASE_SENSITIVE' => array(
GESHI_COMMENTS => false,
1 => false,
-
2 => false,
3 => false,
4 => false,
5 => false,
-
6 => false,
7 => false,
8 => false,
9 => false
-
),
'STYLES' => array(
'KEYWORDS' => array(
1 => 'color: #0000ff;',
-
2 => 'color: #0000ff;',
3 => 'color: #0000ff;',
4 => 'color: #0000ff;',
5 => 'color: #0000ff;',
-
6 => 'color: #000080; font-weight: bold;',
7 => 'color: #ff0000;',
8 => 'color: #00ff00;',
9 => 'color: #0000ff;'
-
),
'COMMENTS' => array(
- 1 => 'color: #006400; font-style: italic;',
+// 1 => 'color: #006400; font-style: italic;',
'MULTI' => 'color: #006400; font-style: italic;'
-
),
'ESCAPE_CHAR' => array(
0 => 'color: #000099; font-weight: bold;'
),
'BRACKETS' => array(
-
0 => 'color: #66cc66;'
),
'STRINGS' => array(
0 => 'color: #a020f0;'
-
),
'NUMBERS' => array(
0 => 'color: #2e8b57; font-weight: bold;'
),
'METHODS' => array(
-
),
'SYMBOLS' => array(
0 => 'color: #66cc66;'
),
'SCRIPT' => array(
-
0 => '',
1 => '',
2 => '',
3 => ''
-
),
'REGEXPS' => array(
0 => 'color: #0000ff; font-weight: bold;',
1 => 'color: #000080; font-weight: bold;',
-
2 => 'color: #006400; font-style: italic;',
3 => 'color: #006400; font-style: italic;',
4 => 'color: #006400; font-style: italic;',
5 => 'color: #ff0000; font-weight: bold;',
-
6 => 'color: #00ff00; font-style: italic;',
7 => 'color: #0000ff; font-style: normal;',
8 => 'color: #b218b2; font-weight: bold;',
9 => 'color: #b218b2; font-weight: bold;'
-
)
),
'URLS' => array(
1 => '',
2 => '',
-
3 => '',
4 => '',
5 => '',
6 => '',
-
7 => '',
8 => '',
9 => ''
),
-
'OOLANG' => false,
'OBJECT_SPLITTERS' => array(
),
'REGEXPS' => array(
-
0 => "&[a-zA-Z_][a-zA-Z0-9_]*",
- 1 => array(
+ 1 => array(//Procedures
GESHI_SEARCH => '(^\\s*)(PROC \\w+)',
GESHI_REPLACE => '\\2',
-
GESHI_MODIFIERS => 'im',
GESHI_BEFORE => '\\1',
GESHI_AFTER => ''
),
-
2 => array(
GESHI_SEARCH => '(^\\s*)(\\*.*;)',
GESHI_REPLACE => '\\2',
GESHI_MODIFIERS => 'im',
-
GESHI_BEFORE => '\\1',
GESHI_AFTER => ''
),
3 => array(
-
GESHI_SEARCH => '(.*;\\s*)(\\*.*;)',
GESHI_REPLACE => '\\2',
GESHI_MODIFIERS => 'im',
GESHI_BEFORE => '\\1',
-
GESHI_AFTER => ''
),
4 => array(
GESHI_SEARCH => '(^\\s*)(%\\*.*;)',
-
GESHI_REPLACE => '\\2',
GESHI_MODIFIERS => 'im',
GESHI_BEFORE => '\\1',
GESHI_AFTER => ''
-
),
- 5 => array(
+ 5 => array(//Error messages
GESHI_SEARCH => '(^ERROR.*)',
GESHI_REPLACE => '\\1',
-
+ GESHI_MODIFIERS => 'im',
+ GESHI_BEFORE => '',
+ GESHI_AFTER => ''
+ ),
+ 6 => array(//Warning messages
+ GESHI_SEARCH => '(^WARNING.*)',
+ GESHI_REPLACE => '\\1',
GESHI_MODIFIERS => 'im',
GESHI_BEFORE => '',
GESHI_AFTER => ''
),
-
- 6 => array(
- GESHI_SEARCH => '(^WARNING.*)',
- GESHI_REPLACE => '\\1',
- GESHI_MODIFIERS => 'im',
-
- GESHI_BEFORE => '',
- GESHI_AFTER => ''
- ),
- 7 => array(
-
+ 7 => array(//Notice messages
GESHI_SEARCH => '(^NOTE.*)',
GESHI_REPLACE => '\\1',
GESHI_MODIFIERS => 'im',
GESHI_BEFORE => '',
-
GESHI_AFTER => ''
),
8 => array(
GESHI_SEARCH => '(^\\s*)(CARDS.*)(^\\s*;\\s*$)',
-
GESHI_REPLACE => '\\2',
GESHI_MODIFIERS => 'sim',
GESHI_BEFORE => '\\1',
GESHI_AFTER => '\\3'
-
),
9 => array(
GESHI_SEARCH => '(^\\s*)(DATALINES.*)(^\\s*;\\s*$)',
GESHI_REPLACE => '\\2',
-
GESHI_MODIFIERS => 'sim',
GESHI_BEFORE => '\\1',
GESHI_AFTER => '\\3'
)
-
),
'STRICT_MODE_APPLIES' => GESHI_MAYBE,
'SCRIPT_DELIMITERS' => array(
),
'HIGHLIGHT_STRICT_BLOCK' => array(
-
)
);