plugins/geshi/geshi/dos.php
changeset 2 9e3258dfae15
parent 0 441963e5b07a
child 3 f3e2bbbd2155
equal deleted inserted replaced
1:c715631f809a 2:9e3258dfae15
     2 /*************************************************************************************
     2 /*************************************************************************************
     3  * dos.php
     3  * dos.php
     4  * -------
     4  * -------
     5  * Author: Alessandro Staltari (staltari@geocities.com)
     5  * Author: Alessandro Staltari (staltari@geocities.com)
     6  * Copyright: (c) 2005 Alessandro Staltari (http://www.geocities.com/SiliconValley/Vista/8155/)
     6  * Copyright: (c) 2005 Alessandro Staltari (http://www.geocities.com/SiliconValley/Vista/8155/)
     7  * Release Version: 1.0.7.20
     7  * Release Version: 1.0.8.2
     8  * Date Started: 2005/07/05
     8  * Date Started: 2005/07/05
     9  *
     9  *
    10  * DOS language file for GeSHi.
    10  * DOS language file for GeSHi.
    11  *
    11  *
    12  * CHANGES
    12  * CHANGES
    13  * -------
    13  * -------
       
    14  * 2008/05/23 (1.0.7.22)
       
    15  *   -  Added description of extra language features (SF#1970248)
    14  * 2005/07/05 (1.0.0)
    16  * 2005/07/05 (1.0.0)
    15  *  -  First Release
    17  *  -  First Release
    16  *
    18  *
    17  * TODO (updated 2005/07/05)
    19  * TODO (updated 2005/07/05)
    18  * -------------------------
    20  * -------------------------
    19  *
    21  *
    20  * - Find a way to higlight %*
       
    21  * - Highlight pipes and redirection (do we really need this?)
    22  * - Highlight pipes and redirection (do we really need this?)
    22  * - Add missing keywords.
    23  * - Add missing keywords.
    23  * - Find a good hyperlink for keywords.
    24  * - Find a good hyperlink for keywords.
    24  * - Improve styles.
    25  * - Improve styles.
    25  *
    26  *
    57  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    58  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    58  *
    59  *
    59  ************************************************************************************/
    60  ************************************************************************************/
    60 
    61 
    61 $language_data = array (
    62 $language_data = array (
    62 	'LANG_NAME' => 'DOS',
    63     'LANG_NAME' => 'DOS',
    63 	'COMMENT_SINGLE' => array(1 =>'REM', 2 => '@REM'),
    64     'COMMENT_SINGLE' => array(),
    64 	'COMMENT_MULTI' => array(),
    65     'COMMENT_MULTI' => array(),
    65 	'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
    66     //DOS comment lines
    66 	'QUOTEMARKS' => array(),
    67     'COMMENT_REGEXP' => array(1 => "/^\s*@?REM.*$/mi"),
    67 	'ESCAPE_CHAR' => '',
    68     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
    68 	'KEYWORDS' => array(
    69     'QUOTEMARKS' => array(),
    69 	    /* Flow control keywords */
    70     'ESCAPE_CHAR' => '',
    70 		1 => array(
    71     'KEYWORDS' => array(
    71 			'if', 'else', 'goto',
    72         /* Flow control keywords */
    72 			'for', 'in', 'do',
    73         1 => array(
    73 			'call', 'exit'
    74             'if', 'else', 'goto', 'shift',
    74 			),
    75             'for', 'in', 'do',
    75 	    /* IF statement keywords */
    76             'call', 'exit'
    76 		2 => array(
    77             ),
    77 			'not', 'exist', 'errorlevel',
    78         /* IF statement keywords */
    78 			'defined',
    79         2 => array(
    79 			'equ', 'neq', 'lss', 'leq', 'gtr', 'geq'
    80             'not', 'exist', 'errorlevel',
    80 			),
    81             'defined',
    81 	    /* Internal commands */
    82             'equ', 'neq', 'lss', 'leq', 'gtr', 'geq'
    82 		3 => array(
    83             ),
    83 			'shift',
    84         /* Internal commands */
    84 			'cd', 'dir', 'echo',
    85         3 => array(
    85 			'setlocal', 'endlocal', 'set',
    86             'cd', 'md', 'rd', 'chdir', 'mkdir', 'rmdir', 'dir',
    86 			'pause'
    87             'del', 'copy', 'move', 'ren', 'rename',
    87 			),
    88             'echo',
    88 	    /* Special files */
    89             'setlocal', 'endlocal', 'set',
    89 
    90             'pause',
    90 		4 => array(
    91             'pushd', 'popd', 'title', 'verify'
    91 			'prn', 'nul', 'lpt3', 'lpt2', 'lpt1', 'con',
    92             ),
    92 			'com4', 'com3', 'com2', 'com1', 'aux'
    93         /* Special files */
    93 			)
    94         4 => array(
    94 		),
    95             'prn', 'nul', 'lpt3', 'lpt2', 'lpt1', 'con',
    95 	'SYMBOLS' => array(
    96             'com4', 'com3', 'com2', 'com1', 'aux'
    96 		'(', ')'
    97             )
    97 		),
    98         ),
    98 	'CASE_SENSITIVE' => array(
    99     'SYMBOLS' => array(
    99 		GESHI_COMMENTS => false,
   100         '(', ')', '@', '%'
   100 		1 => false
   101         ),
   101 		),
   102     'CASE_SENSITIVE' => array(
   102 	'STYLES' => array(
   103         GESHI_COMMENTS => false,
   103 		'KEYWORDS' => array(
   104         1 => false,
   104 			1 => 'color: #00b100; font-weight: bold;',
   105         2 => false,
   105 			2 => 'color: #000000; font-weight: bold;',
   106         3 => false,
   106 			3 => 'color: #b1b100; font-weight: bold;',
   107         4 => false
   107 			4 => 'color: #0000ff; font-weight: bold;'
   108         ),
   108 			),
   109     'STYLES' => array(
   109 		'COMMENTS' => array(
   110         'KEYWORDS' => array(
   110 			1 => 'color: #808080; font-style: italic;',
   111             1 => 'color: #00b100; font-weight: bold;',
   111 			2 => 'color: #808080; font-style: italic;'
   112             2 => 'color: #000000; font-weight: bold;',
   112 			),
   113             3 => 'color: #b1b100; font-weight: bold;',
   113 		'ESCAPE_CHAR' => array(
   114             4 => 'color: #0000ff; font-weight: bold;'
   114 			),
   115             ),
   115 		'BRACKETS' => array(
   116         'COMMENTS' => array(
   116 			0 => 'color: #66cc66;'
   117             1 => 'color: #808080; font-style: italic;'
   117 			),
   118             ),
   118 		'STRINGS' => array(
   119         'ESCAPE_CHAR' => array(
   119 			0 => 'color: #ff0000;'
   120             0 => 'color: #ff0000; font-weight: bold;'
   120 			),
   121             ),
   121 		'NUMBERS' => array(
   122         'BRACKETS' => array(
   122 /*			0 => 'color: #cc66cc;' */
   123             0 => 'color: #66cc66;'
   123 			),
   124             ),
   124 		'METHODS' => array(
   125         'STRINGS' => array(
   125 			),
   126             0 => 'color: #ff0000;'
   126 		'SYMBOLS' => array(
   127             ),
   127 			0 => 'color: #33cc33;',
   128         'NUMBERS' => array(
   128 			1 => 'color: #33cc33;'
   129             0 => 'color: #cc66cc;'
   129 			),
   130             ),
   130 		'SCRIPT' => array(
   131         'METHODS' => array(
   131 			),
   132             ),
   132 		'REGEXPS' => array(
   133         'SYMBOLS' => array(
   133 			0 => 'color: #b100b1; font-weight: bold;',
   134             0 => 'color: #33cc33;',
   134 			1 => 'color: #448844;',
   135             1 => 'color: #33cc33;'
   135 			2 => 'color: #448888;'
   136             ),
   136 			)
   137         'SCRIPT' => array(
   137 		),
   138             ),
   138 	'OOLANG' => false,
   139         'REGEXPS' => array(
   139 	'OBJECT_SPLITTERS' => array(
   140             0 => 'color: #b100b1; font-weight: bold;',
   140 		),
   141             1 => 'color: #448844;',
       
   142             2 => 'color: #448888;'
       
   143             )
       
   144         ),
       
   145     'OOLANG' => false,
       
   146     'OBJECT_SPLITTERS' => array(
       
   147         ),
   141     'URLS' => array(
   148     'URLS' => array(
   142          1 => 'http://www.ss64.com/nt/{FNAME}.html',
   149         1 => 'http://www.ss64.com/nt/{FNAMEL}.html',
   143          2 => 'http://www.ss64.com/nt/{FNAME}.html',
   150         2 => 'http://www.ss64.com/nt/{FNAMEL}.html',
   144          3 => 'http://www.ss64.com/nt/{FNAME}.html',
   151         3 => 'http://www.ss64.com/nt/{FNAMEL}.html',
   145          4 => 'http://www.ss64.com/nt/{FNAME}.html'
   152         4 => 'http://www.ss64.com/nt/{FNAMEL}.html'
   146          ),
   153         ),
   147 	'REGEXPS' => array(
   154     'REGEXPS' => array(
   148 	/* Label */
   155         /* Label */
   149 	    0 => array(
   156         0 => array(
   150 /*		GESHI_SEARCH => '((?si:[@\s]+GOTO\s+|\s+:)[\s]*)((?<!\n)[^\s\n]*)',*/
   157 /*            GESHI_SEARCH => '((?si:[@\s]+GOTO\s+|\s+:)[\s]*)((?<!\n)[^\s\n]*)',*/
   151 		GESHI_SEARCH => '((?si:[@\s]+GOTO\s+|\s+:)[\s]*)((?<!\n)[^\n]*)',
   158             GESHI_SEARCH => '((?si:[@\s]+GOTO\s+|\s+:)[\s]*)((?<!\n)[^\n]*)',
   152 		GESHI_REPLACE => '\\2',
   159             GESHI_REPLACE => '\\2',
   153 		GESHI_MODIFIERS => 'si',
   160             GESHI_MODIFIERS => 'si',
   154 		GESHI_BEFORE => '\\1',
   161             GESHI_BEFORE => '\\1',
   155 		GESHI_AFTER => ''
   162             GESHI_AFTER => ''
   156 		),
   163         ),
   157 	/* Variable assignement */
   164         /* Variable assignement */
   158 	    1 => array(
   165         1 => array(
   159 /*		GESHI_SEARCH => '(SET[\s]+(?si:/A[\s]+|/P[\s]+|))([^=\s\n]+)([\s]*=)',*/
   166 /*            GESHI_SEARCH => '(SET[\s]+(?si:\/A[\s]+|\/P[\s]+|))([^=\s\n]+)([\s]*=)',*/
   160 		GESHI_SEARCH => '(SET[\s]+(?si:/A[\s]+|/P[\s]+|))([^=\n]+)([\s]*=)',
   167             GESHI_SEARCH => '(SET[\s]+(?si:\/A[\s]+|\/P[\s]+|))([^=\n]+)([\s]*=)',
   161 		GESHI_REPLACE => '\\2',
   168             GESHI_REPLACE => '\\2',
   162 		GESHI_MODIFIERS => 'si',
   169             GESHI_MODIFIERS => 'si',
   163 		GESHI_BEFORE => '\\1',
   170             GESHI_BEFORE => '\\1',
   164 		GESHI_AFTER => '\\3'
   171             GESHI_AFTER => '\\3'
   165 		),
   172             ),
   166 	/* Arguments or variable evaluation */
   173         /* Arguments or variable evaluation */
   167 	    2 => array(
   174         2 => array(
   168 /*		GESHI_SEARCH => '(%)([\d*]|[^%\s]*(?=%))((?<!%\d)%|)',*/
   175 /*            GESHI_SEARCH => '(%)([\d*]|[^%\s]*(?=%))((?<!%\d)%|)',*/
   169 		GESHI_SEARCH => '(%)([\d*]|[^%]*(?=%))((?<!%\d)%|)',
   176             GESHI_SEARCH => '(%(?:%(?=[a-z0-9]))?)([\d*]|(?:~[adfnpstxz]*(?:$\w+:)?)?[a-z0-9](?!\w)|[^%\n]*(?=%))((?<!%\d)%|)',
   170 		GESHI_REPLACE => '\\2',
   177             GESHI_REPLACE => '\\2',
   171 		GESHI_MODIFIERS => 'si',
   178             GESHI_MODIFIERS => 'si',
   172 		GESHI_BEFORE => '\\1',
   179             GESHI_BEFORE => '\\1',
   173 		GESHI_AFTER => '\\3'
   180             GESHI_AFTER => '\\3'
   174 		)
   181             )
   175 		),
   182         ),
   176 	'STRICT_MODE_APPLIES' => GESHI_NEVER,
   183     'STRICT_MODE_APPLIES' => GESHI_NEVER,
   177 	'SCRIPT_DELIMITERS' => array(
   184     'SCRIPT_DELIMITERS' => array(
   178 		),
   185         ),
   179 	'HIGHLIGHT_STRICT_BLOCK' => array(
   186     'HIGHLIGHT_STRICT_BLOCK' => array(
   180 		)
   187         ),
       
   188     'TAB_WIDTH' => 4,
       
   189     'PARSER_CONTROL' => array(
       
   190         'KEYWORDS' => array(
       
   191             4 => array(
       
   192                 'DISALLOWED_BEFORE' => '(?<!\w)'
       
   193                 )
       
   194             )
       
   195         )
   181 );
   196 );
   182 
   197 
   183 ?>
   198 ?>