plugins/geshi/geshi/tcl.php
changeset 2 9e3258dfae15
parent 0 441963e5b07a
child 3 f3e2bbbd2155
--- a/plugins/geshi/geshi/tcl.php	Sun Feb 10 19:00:04 2008 -0500
+++ b/plugins/geshi/geshi/tcl.php	Fri May 29 19:30:59 2009 -0400
@@ -4,7 +4,7 @@
  * ---------------------------------
  * Author: Reid van Melle (rvanmelle@gmail.com)
  * Copyright: (c) 2004 Reid van Melle (sorry@nowhere)
- * Release Version: 1.0.7.20
+ * Release Version: 1.0.8.2
  * Date Started: 2006/05/05
  *
  * TCL/iTCL language file for GeSHi.
@@ -16,12 +16,14 @@
  *
  * CHANGES
  * -------
+ * 2008/05/23 (1.0.7.22)
+ *  -  Added description of extra language features (SF#1970248)
  * 2006/05/05 (1.0.0)
  *  -  First Release
  *
  * TODO (updated 2006/05/05)
  * -------------------------
- * - Get TCL built-in special variables hilighted with a new color..
+ * - Get TCL built-in special variables highlighted with a new color..
  *   currently, these are listed in //special variables in the keywords
  *   section, but they get covered by the general REGEXP for symbols
  * - General cleanup, testing, and verification
@@ -47,135 +49,146 @@
  ************************************************************************************/
 
 $language_data = array (
-	'LANG_NAME' => 'TCL',
-	'COMMENT_SINGLE' => array(1 => '#'),
-	'COMMENT_MULTI' => array(),
-	'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
-	'QUOTEMARKS' => array('"', "'"),
-	'ESCAPE_CHAR' => '\\',
-	'KEYWORDS' => array(
-
-		/*
-		** Set 1: reserved words
-		** http://python.org/doc/current/ref/keywords.html
-		*/
-		1 => array(
-			'proc', 'global', 'upvar', 'if', 'then', 'else', 'elseif', 'for', 'foreach',
-			'break', 'continue', 'while', 'set', 'eval', 'case', 'in', 'switch',
-			'default', 'exit', 'error', 'proc', 'return', 'uplevel', 'loop', 
-			'for_array_keys', 'for_recursive_glob', 'for_file', 'unwind_protect',
-			'expr', 'catch', 'namespace', 'rename', 'variable',
-			// itcl
-			'method', 'itcl_class', 'public', 'protected'),
+    'LANG_NAME' => 'TCL',
+    'COMMENT_SINGLE' => array(1 => '#'),
+    'COMMENT_MULTI' => array(),
+    'COMMENT_REGEXP' => array(
+        1 => '/(?<!\\\\)#(?:\\\\\\\\|\\\\\\n|.)*$/m',
+        2 => '/{[^}\n]+}/'
+        ),
+    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
+    'QUOTEMARKS' => array('"', "'"),
+    'ESCAPE_CHAR' => '\\',
+    'KEYWORDS' => array(
+        /*
+         * Set 1: reserved words
+         * http://python.org/doc/current/ref/keywords.html
+         */
+        1 => array(
+            'proc', 'global', 'upvar', 'if', 'then', 'else', 'elseif', 'for', 'foreach',
+            'break', 'continue', 'while', 'set', 'eval', 'case', 'in', 'switch',
+            'default', 'exit', 'error', 'return', 'uplevel', 'loop',
+            'for_array_keys', 'for_recursive_glob', 'for_file', 'unwind_protect',
+            'expr', 'catch', 'namespace', 'rename', 'variable',
+            // itcl
+            'method', 'itcl_class', 'public', 'protected'),
 
-		/*
-		** Set 2: builtins
-		** http://asps.activatestate.com/ASPN/docs/ActiveTcl/8.4/tcl/tcl_2_contents.htm
-		*/
-		2 => array(
-			// string handling
-			'append', 'binary', 'format', 're_syntax', 'regexp', 'regsub',
-			'scan', 'string', 'subst', 
-			// list handling
-			'concat', 'join', 'lappend', 'lindex', 'list', 'llength', 'lrange',
-			'lreplace', 'lsearch', 'lset', 'lsort', 'split',
-			// math
-			'expr',
-			// procedures and output
-			'incr', 'close', 'eof', 'fblocked', 'fconfigure', 'fcopy', 'file',
-			'fileevent', 'flush', 'gets', 'open', 'puts', 'read', 'seek', 
-			'socket', 'tell',
-			// packages and source files
-			'load', 'loadTk', 'package', 'pgk::create', 'pgk_mkIndex', 'source',
-			// interpreter routines
-			'bgerror', 'history', 'info', 'interp', 'memory', 'unknown',
-			// library routines
-			'enconding', 'http', 'msgcat',
-			// system related
-			'cd', 'clock', 'exec', 'exit', 'glob', 'pid', 'pwd', 'time',
-			// platform specified
-			'dde', 'registry', 'resource',
-			// special variables
-			'$argc', '$argv', '$errorCode', '$errorInfo', '$argv0', 
-			'$auto_index', '$auto_oldpath', '$auto_path', '$env', 
-			'$tcl_interactive', '$tcl_libpath', '$tcl_library', 
-			'$tcl_pkgPath', '$tcl_platform', '$tcl_precision', '$tcl_traceExec',
-			),
+        /*
+         * Set 2: builtins
+         * http://asps.activatestate.com/ASPN/docs/ActiveTcl/8.4/tcl/tcl_2_contents.htm
+         */
+        2 => array(
+            // string handling
+            'append', 'binary', 'format', 're_syntax', 'regexp', 'regsub',
+            'scan', 'string', 'subst',
+            // list handling
+            'concat', 'join', 'lappend', 'lindex', 'list', 'llength', 'lrange',
+            'lreplace', 'lsearch', 'lset', 'lsort', 'split',
+            // procedures and output
+            'incr', 'close', 'eof', 'fblocked', 'fconfigure', 'fcopy', 'file',
+            'fileevent', 'flush', 'gets', 'open', 'puts', 'read', 'seek',
+            'socket', 'tell',
+            // packages and source files
+            'load', 'loadTk', 'package', 'pgk::create', 'pgk_mkIndex', 'source',
+            // interpreter routines
+            'bgerror', 'history', 'info', 'interp', 'memory', 'unknown',
+            // library routines
+            'enconding', 'http', 'msgcat',
+            // system related
+            'cd', 'clock', 'exec', 'glob', 'pid', 'pwd', 'time',
+            // platform specified
+            'dde', 'registry', 'resource',
+            // special variables
+            '$argc', '$argv', '$errorCode', '$errorInfo', '$argv0',
+            '$auto_index', '$auto_oldpath', '$auto_path', '$env',
+            '$tcl_interactive', '$tcl_libpath', '$tcl_library',
+            '$tcl_pkgPath', '$tcl_platform', '$tcl_precision', '$tcl_traceExec',
+            ),
 
-		/*
-		** Set 3: standard library
-		*/
-		3 => array(
-			'comment', 'dde', 'filename', 'http', 'library', 'memory',
-			'packagens', 'registry', 'resource', 'tcltest', 'tclvars',
-			),
+        /*
+         * Set 3: standard library
+         */
+        3 => array(
+            'comment', 'filename', 'library', 'packagens', 'tcltest', 'tclvars',
+            ),
 
-		/*
-		** Set 4: special methods
-		*/
-		4 => array(
-			)
+        /*
+         * Set 4: special methods
+         */
+//        4 => array(
+//            )
 
-		),
-	'SYMBOLS' => array(
-			'(', ')', '[', ']', '{', '}', '$', '*', '&', '%', '!', ';', '<', '>', '?'
-		),
-	'CASE_SENSITIVE' => array(
-		GESHI_COMMENTS => true,
-		1 => true,
+        ),
+    'SYMBOLS' => array(
+        '(', ')', '[', ']', '{', '}', '$', '*', '&', '%', '!', ';', '<', '>', '?'
+        ),
+    'CASE_SENSITIVE' => array(
+        GESHI_COMMENTS => false,
+        1 => true,
         2 => true,
         3 => true,
-        4 => true
-		),
-	'STYLES' => array(
-		'KEYWORDS' => array(
-			1 => 'color: #ff7700;font-weight:bold;',	// Reserved
-			2 => 'color: #008000;',						// Built-ins + self
-			3 => 'color: #dc143c;',						// Standard lib
-			4 => 'color: #0000cd;'						// Special methods
-			),
-		'COMMENTS' => array(
-			1 => 'color: #808080; font-style: italic;',
-			'MULTI' => 'color: #808080; font-style: italic;'
-			),
-		'ESCAPE_CHAR' => array(
-			0 => 'color: #000099; font-weight: bold;'
-			),
-		'BRACKETS' => array(
-			0 => 'color: black;'
-			),
-		'STRINGS' => array(
-			0 => 'color: #483d8b;'
-			),
-		'NUMBERS' => array(
-			0 => 'color: #ff4500;'
-			),
-		'METHODS' => array(
-			1 => 'color: black;'
-			),
-		'SYMBOLS' => array(
-			0 => 'color: #66cc66;'
-			),
-		'REGEXPS' => array(
+//        4 => true
+        ),
+    'STYLES' => array(
+        'KEYWORDS' => array(
+            1 => 'color: #ff7700;font-weight:bold;',    // Reserved
+            2 => 'color: #008000;',                        // Built-ins + self
+            3 => 'color: #dc143c;',                        // Standard lib
+//            4 => 'color: #0000cd;'                        // Special methods
+            ),
+        'COMMENTS' => array(
+            1 => 'color: #808080; font-style: italic;',
+            2 => 'color: #483d8b;',
+            'MULTI' => 'color: #808080; font-style: italic;'
+            ),
+        'ESCAPE_CHAR' => array(
+            0 => 'color: #000099; font-weight: bold;'
+            ),
+        'BRACKETS' => array(
+            0 => 'color: black;'
+            ),
+        'STRINGS' => array(
+            0 => 'color: #483d8b;'
+            ),
+        'NUMBERS' => array(
+            0 => 'color: #ff4500;'
+            ),
+        'METHODS' => array(
+            1 => 'color: black;'
+            ),
+        'SYMBOLS' => array(
+            0 => 'color: #66cc66;'
+            ),
+        'REGEXPS' => array(
             0 => 'color: #ff3333;'
-			),
-		'SCRIPT' => array(
-			)
-		),
-	'URLS' => array(
-		),
-	'OOLANG' => true,
-	'OBJECT_SPLITTERS' => array(
-		1 => '::'
-		),
-	'REGEXPS' => array(
-		0 => '[\\$]+[a-zA-Z_][a-zA-Z0-9_]*',
-		),
-	'STRICT_MODE_APPLIES' => GESHI_NEVER,
-	'SCRIPT_DELIMITERS' => array(
-		),
-	'HIGHLIGHT_STRICT_BLOCK' => array(
-		)
+            ),
+        'SCRIPT' => array(
+            )
+        ),
+    'URLS' => array(
+        1 => '',
+        2 => '',
+        3 => '',
+//        4 => ''
+        ),
+    'OOLANG' => true,
+    'OBJECT_SPLITTERS' => array(
+        1 => '::'
+        ),
+    'REGEXPS' => array(
+        //Special variables
+        0 => '[\\$]+[a-zA-Z_][a-zA-Z0-9_]*',
+        ),
+    'STRICT_MODE_APPLIES' => GESHI_NEVER,
+    'SCRIPT_DELIMITERS' => array(
+        ),
+    'HIGHLIGHT_STRICT_BLOCK' => array(
+        ),
+    'PARSER_CONTROL' => array(
+        'COMMENTS' => array(
+            'DISALLOWED_BEFORE' => '\\'
+        )
+    )
 );
 
 ?>