diff --git a/Packages/backups/2014-02-04_before_cb_GeSHi-mod_1-2.tar.gz b/Packages/backups/2014-02-04_before_cb_GeSHi-mod_1-2.tar.gz new file mode 100644 index 0000000..df3b3a4 Binary files /dev/null and b/Packages/backups/2014-02-04_before_cb_GeSHi-mod_1-2.tar.gz differ diff --git a/Packages/cb_GeSHi-mod_1-2.zip b/Packages/cb_GeSHi-mod_1-2.zip new file mode 100644 index 0000000..2d874a9 Binary files /dev/null and b/Packages/cb_GeSHi-mod_1-2.zip differ diff --git a/Packages/installed.list b/Packages/installed.list index e69de29..6dbebe5 100644 --- a/Packages/installed.list +++ b/Packages/installed.list @@ -0,0 +1 @@ +1391537333 \ No newline at end of file diff --git a/Sources/Subs.php b/Sources/Subs.php index 94d02ce..874dcd8 100644 --- a/Sources/Subs.php +++ b/Sources/Subs.php @@ -1122,43 +1122,69 @@ function parse_bbc($message, $smileys = true, $cache_id = '', $parse_tags = arra array( 'tag' => 'code', 'type' => 'unparsed_equals_content', - 'content' => '
' . $txt['code'] . ': ($2) ' . $txt['code_select'] . '
' . ($context['browser']['is_gecko'] || $context['browser']['is_opera'] ? '
' : '') . '$1' . ($context['browser']['is_gecko'] || $context['browser']['is_opera'] ? '
' : ''), + 'content' => '$1', // !!! Maybe this can be simplified? 'validate' => isset($disabled['code']) ? null : create_function('&$tag, &$data, $disabled', ' - global $context; + global $sourcedir, $settings, $txt; - if (!isset($disabled[\'code\'])) - { - $php_parts = preg_split(\'~(<\?php|\?>)~\', $data[0], -1, PREG_SPLIT_DELIM_CAPTURE); + $data[0] = strtr($data[0], array( + \'[]\' => \'[]\', + \'['\' => \'['\', + \'
\' => "\n", + ) + ); + $data[0] = un_htmlspecialchars($data[0]); + $data[1] = explode(\',\', $data[1]); - for ($php_i = 0, $php_n = count($php_parts); $php_i < $php_n; $php_i++) - { - // Do PHP code coloring? - if ($php_parts[$php_i] != \'<?php\') - continue; + if (strpos($data[1][0], \'.\')) { + list($lang, $start_number) = explode(\'.\', $data[1][0]); + } else { + $lang = $data[1][0]; + $start_number = 1; + } - $php_string = \'\'; - while ($php_i + 1 < count($php_parts) && $php_parts[$php_i] != \'?>\') - { - $php_string .= $php_parts[$php_i]; - $php_parts[$php_i++] = \'\'; - } - $php_parts[$php_i] = highlight_php_code($php_string . $php_parts[$php_i]); - } + if (!is_numeric($start_number)) + $start_number = 1; - // Fix the PHP code stuff... - $data[0] = str_replace("
\t
", "\t", implode(\'\', $php_parts)); + include_once($sourcedir . \'/geshi.php\'); - // Older browsers are annoying, aren\'t they? - if ($context[\'browser\'][\'is_ie4\'] || $context[\'browser\'][\'is_ie5\'] || $context[\'browser\'][\'is_ie5.5\']) - $data[0] = str_replace("\t", "
\t
", $data[0]); - else - $data[0] = str_replace("\t", "\t", $data[0]); + $geshi = new Geshi($data[0], $lang); + if ($geshi->error()) { + $lang = "text"; + $geshi->set_language($lang, true); + } + $geshi->set_overall_class(\'geshi\'); - // Recent Opera bug requiring temporary fix. &nsbp; is needed before to avoid broken selection. - if ($context[\'browser\'][\'is_opera\']) - $data[0] .= \' \'; - }'), + $geshi->start_line_numbers_at($start_number); + + if(count($data[1]) > 1) { + array_filter($data[1], \'is_numeric\'); + if (strlen(trim($settings[\'geshi_highlight_lines_extra_style\']))) + $geshi->set_highlight_lines_extra_style($settings[\'geshi_highlight_lines_extra_style\']); + $geshi->highlight_lines_extra($data[1]); + } + + $geshi->set_overall_class(\'geshi\'); + $geshi->set_header_type($settings[\'geshi_code_container\']); + + $geshi->enable_line_numbers($settings[\'geshi_line_numbers\'], $settings[\'geshi_fancy_line_number\']); + $geshi->set_line_style($settings[\'geshi_line_style\'], $settings[\'geshi_line_style_fancy\']); + + $pre_header = ""; + if ($settings[\'geshi_enable_pre_header\']) { + $pre_header = \'
\' . str_replace(array("{CODE}", "{TAG}", "{LANGUAGE}"), array($txt[\'code\'], strtoupper($lang), $geshi->get_language_name()), $settings[\'geshi_pre_header\']) . "
"; + } + + if ($settings[\'geshi_enable_header\']) { + $geshi->set_header_content($settings[\'geshi_header\']); + } + + if ($settings[\'geshi_enable_footer\']) { + $geshi->set_footer_content($settings[\'geshi_footer\']); + } + + $data[0] = $pre_header . str_replace("\n", "", $geshi->parse_code()); + '), 'block_level' => true, ), array( @@ -2292,6 +2318,9 @@ function parse_bbc($message, $smileys = true, $cache_id = '', $parse_tags = arra if (isset($tag['validate'])) $tag['validate']($tag, $data, $disabled); + if(is_array($data[1])) + $data[1] = array_shift($data[1]); + $code = strtr($tag['content'], array('$1' => $data[0], '$2' => $data[1])); $message = substr($message, 0, $pos) . "\n" . $code . "\n" . substr($message, $pos3 + 3 + strlen($tag['tag'])); $pos += strlen($code) - 1 + 2; diff --git a/Sources/Who.php b/Sources/Who.php index 9fc5194..ec48f1c 100644 --- a/Sources/Who.php +++ b/Sources/Who.php @@ -728,6 +728,8 @@ function Credits($in_admin = false) $txt['some_mod_copyright'], */ 'mods' => array( + + 'cb|GeSHi-mod © 2011, codebirth', ), ); diff --git a/Sources/geshi.php b/Sources/geshi.php new file mode 100644 index 0000000..c6ff9ef --- /dev/null +++ b/Sources/geshi.php @@ -0,0 +1,4775 @@ +, Benny Baumann + * @copyright (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2008 Benny Baumann + * @license http://gnu.org/copyleft/gpl.html GNU GPL + * + */ + +// +// GeSHi Constants +// You should use these constant names in your programs instead of +// their values - you never know when a value may change in a future +// version +// + +/** The version of this GeSHi file */ +define('GESHI_VERSION', '1.0.8.11'); + +// Define the root directory for the GeSHi code tree +if (!defined('GESHI_ROOT')) { + /** The root directory for GeSHi */ + define('GESHI_ROOT', dirname(__FILE__) . DIRECTORY_SEPARATOR); +} +/** The language file directory for GeSHi + @access private */ +define('GESHI_LANG_ROOT', GESHI_ROOT . 'geshi' . DIRECTORY_SEPARATOR); + +// Define if GeSHi should be paranoid about security +if (!defined('GESHI_SECURITY_PARANOID')) { + /** Tells GeSHi to be paranoid about security settings */ + define('GESHI_SECURITY_PARANOID', false); +} + +// Line numbers - use with enable_line_numbers() +/** Use no line numbers when building the result */ +define('GESHI_NO_LINE_NUMBERS', 0); +/** Use normal line numbers when building the result */ +define('GESHI_NORMAL_LINE_NUMBERS', 1); +/** Use fancy line numbers when building the result */ +define('GESHI_FANCY_LINE_NUMBERS', 2); + +// Container HTML type +/** Use nothing to surround the source */ +define('GESHI_HEADER_NONE', 0); +/** Use a "div" to surround the source */ +define('GESHI_HEADER_DIV', 1); +/** Use a "pre" to surround the source */ +define('GESHI_HEADER_PRE', 2); +/** Use a pre to wrap lines when line numbers are enabled or to wrap the whole code. */ +define('GESHI_HEADER_PRE_VALID', 3); +/** + * Use a "table" to surround the source: + * + * + * + * + * + *
$header
$linenumbers
$code>
$footer
+ * + * this is essentially only a workaround for Firefox, see sf#1651996 or take a look at + * https://bugzilla.mozilla.org/show_bug.cgi?id=365805 + * @note when linenumbers are disabled this is essentially the same as GESHI_HEADER_PRE + */ +define('GESHI_HEADER_PRE_TABLE', 4); + +// Capatalisation constants +/** Lowercase keywords found */ +define('GESHI_CAPS_NO_CHANGE', 0); +/** Uppercase keywords found */ +define('GESHI_CAPS_UPPER', 1); +/** Leave keywords found as the case that they are */ +define('GESHI_CAPS_LOWER', 2); + +// Link style constants +/** Links in the source in the :link state */ +define('GESHI_LINK', 0); +/** Links in the source in the :hover state */ +define('GESHI_HOVER', 1); +/** Links in the source in the :active state */ +define('GESHI_ACTIVE', 2); +/** Links in the source in the :visited state */ +define('GESHI_VISITED', 3); + +// Important string starter/finisher +// Note that if you change these, they should be as-is: i.e., don't +// write them as if they had been run through htmlentities() +/** The starter for important parts of the source */ +define('GESHI_START_IMPORTANT', ''); +/** The ender for important parts of the source */ +define('GESHI_END_IMPORTANT', ''); + +/**#@+ + * @access private + */ +// When strict mode applies for a language +/** Strict mode never applies (this is the most common) */ +define('GESHI_NEVER', 0); +/** Strict mode *might* apply, and can be enabled or + disabled by {@link GeSHi->enable_strict_mode()} */ +define('GESHI_MAYBE', 1); +/** Strict mode always applies */ +define('GESHI_ALWAYS', 2); + +// Advanced regexp handling constants, used in language files +/** The key of the regex array defining what to search for */ +define('GESHI_SEARCH', 0); +/** The key of the regex array defining what bracket group in a + matched search to use as a replacement */ +define('GESHI_REPLACE', 1); +/** The key of the regex array defining any modifiers to the regular expression */ +define('GESHI_MODIFIERS', 2); +/** The key of the regex array defining what bracket group in a + matched search to put before the replacement */ +define('GESHI_BEFORE', 3); +/** The key of the regex array defining what bracket group in a + matched search to put after the replacement */ +define('GESHI_AFTER', 4); +/** The key of the regex array defining a custom keyword to use + for this regexp's html tag class */ +define('GESHI_CLASS', 5); + +/** Used in language files to mark comments */ +define('GESHI_COMMENTS', 0); + +/** Used to work around missing PHP features **/ +define('GESHI_PHP_PRE_433', !(version_compare(PHP_VERSION, '4.3.3') === 1)); + +/** make sure we can call stripos **/ +if (!function_exists('stripos')) { + // the offset param of preg_match is not supported below PHP 4.3.3 + if (GESHI_PHP_PRE_433) { + /** + * @ignore + */ + function stripos($haystack, $needle, $offset = null) { + if (!is_null($offset)) { + $haystack = substr($haystack, $offset); + } + if (preg_match('/'. preg_quote($needle, '/') . '/', $haystack, $match, PREG_OFFSET_CAPTURE)) { + return $match[0][1]; + } + return false; + } + } + else { + /** + * @ignore + */ + function stripos($haystack, $needle, $offset = null) { + if (preg_match('/'. preg_quote($needle, '/') . '/', $haystack, $match, PREG_OFFSET_CAPTURE, $offset)) { + return $match[0][1]; + } + return false; + } + } +} + +/** some old PHP / PCRE subpatterns only support up to xxx subpatterns in + regular expressions. Set this to false if your PCRE lib is up to date + @see GeSHi->optimize_regexp_list() + **/ +define('GESHI_MAX_PCRE_SUBPATTERNS', 500); +/** it's also important not to generate too long regular expressions + be generous here... but keep in mind, that when reaching this limit we + still have to close open patterns. 12k should do just fine on a 16k limit. + @see GeSHi->optimize_regexp_list() + **/ +define('GESHI_MAX_PCRE_LENGTH', 12288); + +//Number format specification +/** Basic number format for integers */ +define('GESHI_NUMBER_INT_BASIC', 1); //Default integers \d+ +/** Enhanced number format for integers like seen in C */ +define('GESHI_NUMBER_INT_CSTYLE', 2); //Default C-Style \d+[lL]? +/** Number format to highlight binary numbers with a suffix "b" */ +define('GESHI_NUMBER_BIN_SUFFIX', 16); //[01]+[bB] +/** Number format to highlight binary numbers with a prefix % */ +define('GESHI_NUMBER_BIN_PREFIX_PERCENT', 32); //%[01]+ +/** Number format to highlight binary numbers with a prefix 0b (C) */ +define('GESHI_NUMBER_BIN_PREFIX_0B', 64); //0b[01]+ +/** Number format to highlight octal numbers with a leading zero */ +define('GESHI_NUMBER_OCT_PREFIX', 256); //0[0-7]+ +/** Number format to highlight octal numbers with a prefix 0o (logtalk) */ +define('GESHI_NUMBER_OCT_PREFIX_0O', 512); //0[0-7]+ +/** Number format to highlight octal numbers with a leading @ (Used in HiSofts Devpac series). */ +define('GESHI_NUMBER_OCT_PREFIX_AT', 1024); //@[0-7]+ +/** Number format to highlight octal numbers with a suffix of o */ +define('GESHI_NUMBER_OCT_SUFFIX', 2048); //[0-7]+[oO] +/** Number format to highlight hex numbers with a prefix 0x */ +define('GESHI_NUMBER_HEX_PREFIX', 4096); //0x[0-9a-fA-F]+ +/** Number format to highlight hex numbers with a prefix $ */ +define('GESHI_NUMBER_HEX_PREFIX_DOLLAR', 8192); //$[0-9a-fA-F]+ +/** Number format to highlight hex numbers with a suffix of h */ +define('GESHI_NUMBER_HEX_SUFFIX', 16384); //[0-9][0-9a-fA-F]*h +/** Number format to highlight floating-point numbers without support for scientific notation */ +define('GESHI_NUMBER_FLT_NONSCI', 65536); //\d+\.\d+ +/** Number format to highlight floating-point numbers without support for scientific notation */ +define('GESHI_NUMBER_FLT_NONSCI_F', 131072); //\d+(\.\d+)?f +/** Number format to highlight floating-point numbers with support for scientific notation (E) and optional leading zero */ +define('GESHI_NUMBER_FLT_SCI_SHORT', 262144); //\.\d+e\d+ +/** Number format to highlight floating-point numbers with support for scientific notation (E) and required leading digit */ +define('GESHI_NUMBER_FLT_SCI_ZERO', 524288); //\d+(\.\d+)?e\d+ +//Custom formats are passed by RX array + +// Error detection - use these to analyse faults +/** No sourcecode to highlight was specified + * @deprecated + */ +define('GESHI_ERROR_NO_INPUT', 1); +/** The language specified does not exist */ +define('GESHI_ERROR_NO_SUCH_LANG', 2); +/** GeSHi could not open a file for reading (generally a language file) */ +define('GESHI_ERROR_FILE_NOT_READABLE', 3); +/** The header type passed to {@link GeSHi->set_header_type()} was invalid */ +define('GESHI_ERROR_INVALID_HEADER_TYPE', 4); +/** The line number type passed to {@link GeSHi->enable_line_numbers()} was invalid */ +define('GESHI_ERROR_INVALID_LINE_NUMBER_TYPE', 5); +/**#@-*/ + + +/** + * The GeSHi Class. + * + * Please refer to the documentation for GeSHi 1.0.X that is available + * at http://qbnz.com/highlighter/documentation.php for more information + * about how to use this class. + * + * @package geshi + * @author Nigel McNie , Benny Baumann + * @copyright (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2008 Benny Baumann + */ +class GeSHi { + /**#@+ + * @access private + */ + /** + * The source code to highlight + * @var string + */ + var $source = ''; + + /** + * The language to use when highlighting + * @var string + */ + var $language = ''; + + /** + * The data for the language used + * @var array + */ + var $language_data = array(); + + /** + * The path to the language files + * @var string + */ + var $language_path = GESHI_LANG_ROOT; + + /** + * The error message associated with an error + * @var string + * @todo check err reporting works + */ + var $error = false; + + /** + * Possible error messages + * @var array + */ + var $error_messages = array( + GESHI_ERROR_NO_SUCH_LANG => 'GeSHi could not find the language {LANGUAGE} (using path {PATH})', + GESHI_ERROR_FILE_NOT_READABLE => 'The file specified for load_from_file was not readable', + GESHI_ERROR_INVALID_HEADER_TYPE => 'The header type specified is invalid', + GESHI_ERROR_INVALID_LINE_NUMBER_TYPE => 'The line number type specified is invalid' + ); + + /** + * Whether highlighting is strict or not + * @var boolean + */ + var $strict_mode = false; + + /** + * Whether to use CSS classes in output + * @var boolean + */ + var $use_classes = false; + + /** + * The type of header to use. Can be one of the following + * values: + * + * - GESHI_HEADER_PRE: Source is outputted in a "pre" HTML element. + * - GESHI_HEADER_DIV: Source is outputted in a "div" HTML element. + * - GESHI_HEADER_NONE: No header is outputted. + * + * @var int + */ + var $header_type = GESHI_HEADER_PRE; + + /** + * Array of permissions for which lexics should be highlighted + * @var array + */ + var $lexic_permissions = array( + 'KEYWORDS' => array(), + 'COMMENTS' => array('MULTI' => true), + 'REGEXPS' => array(), + 'ESCAPE_CHAR' => true, + 'BRACKETS' => true, + 'SYMBOLS' => false, + 'STRINGS' => true, + 'NUMBERS' => true, + 'METHODS' => true, + 'SCRIPT' => true + ); + + /** + * The time it took to parse the code + * @var double + */ + var $time = 0; + + /** + * The content of the header block + * @var string + */ + var $header_content = ''; + + /** + * The content of the footer block + * @var string + */ + var $footer_content = ''; + + /** + * The style of the header block + * @var string + */ + var $header_content_style = ''; + + /** + * The style of the footer block + * @var string + */ + var $footer_content_style = ''; + + /** + * Tells if a block around the highlighted source should be forced + * if not using line numbering + * @var boolean + */ + var $force_code_block = false; + + /** + * The styles for hyperlinks in the code + * @var array + */ + var $link_styles = array(); + + /** + * Whether important blocks should be recognised or not + * @var boolean + * @deprecated + * @todo REMOVE THIS FUNCTIONALITY! + */ + var $enable_important_blocks = false; + + /** + * Styles for important parts of the code + * @var string + * @deprecated + * @todo As above - rethink the whole idea of important blocks as it is buggy and + * will be hard to implement in 1.2 + */ + var $important_styles = 'font-weight: bold; color: red;'; // Styles for important parts of the code + + /** + * Whether CSS IDs should be added to the code + * @var boolean + */ + var $add_ids = false; + + /** + * Lines that should be highlighted extra + * @var array + */ + var $highlight_extra_lines = array(); + + /** + * Styles of lines that should be highlighted extra + * @var array + */ + var $highlight_extra_lines_styles = array(); + + /** + * Styles of extra-highlighted lines + * @var string + */ + var $highlight_extra_lines_style = 'background-color: #ffc;'; + + /** + * The line ending + * If null, nl2br() will be used on the result string. + * Otherwise, all instances of \n will be replaced with $line_ending + * @var string + */ + var $line_ending = null; + + /** + * Number at which line numbers should start at + * @var int + */ + var $line_numbers_start = 1; + + /** + * The overall style for this code block + * @var string + */ + var $overall_style = 'font-family:monospace;'; + + /** + * The style for the actual code + * @var string + */ + var $code_style = 'font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;'; + + /** + * The overall class for this code block + * @var string + */ + var $overall_class = ''; + + /** + * The overall ID for this code block + * @var string + */ + var $overall_id = ''; + + /** + * Line number styles + * @var string + */ + var $line_style1 = 'font-weight: normal; vertical-align:top;'; + + /** + * Line number styles for fancy lines + * @var string + */ + var $line_style2 = 'font-weight: bold; vertical-align:top;'; + + /** + * Style for line numbers when GESHI_HEADER_PRE_TABLE is chosen + * @var string + */ + var $table_linenumber_style = 'width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;'; + + /** + * Flag for how line numbers are displayed + * @var boolean + */ + var $line_numbers = GESHI_NO_LINE_NUMBERS; + + /** + * Flag to decide if multi line spans are allowed. Set it to false to make sure + * each tag is closed before and reopened after each linefeed. + * @var boolean + */ + var $allow_multiline_span = true; + + /** + * The "nth" value for fancy line highlighting + * @var int + */ + var $line_nth_row = 0; + + /** + * The size of tab stops + * @var int + */ + var $tab_width = 8; + + /** + * Should we use language-defined tab stop widths? + * @var int + */ + var $use_language_tab_width = false; + + /** + * Default target for keyword links + * @var string + */ + var $link_target = ''; + + /** + * The encoding to use for entity encoding + * NOTE: Used with Escape Char Sequences to fix UTF-8 handling (cf. SF#2037598) + * @var string + */ + var $encoding = 'utf-8'; + + /** + * Should keywords be linked? + * @var boolean + */ + var $keyword_links = true; + + /** + * Currently loaded language file + * @var string + * @since 1.0.7.22 + */ + var $loaded_language = ''; + + /** + * Wether the caches needed for parsing are built or not + * + * @var bool + * @since 1.0.8 + */ + var $parse_cache_built = false; + + /** + * Work around for Suhosin Patch with disabled /e modifier + * + * Note from suhosins author in config file: + *
+ * The /e modifier inside preg_replace() allows code execution. + * Often it is the cause for remote code execution exploits. It is wise to + * deactivate this feature and test where in the application it is used. + * The developer using the /e modifier should be made aware that he should + * use preg_replace_callback() instead + *
+ * + * @var array + * @since 1.0.8 + */ + var $_kw_replace_group = 0; + var $_rx_key = 0; + + /** + * some "callback parameters" for handle_multiline_regexps + * + * @since 1.0.8 + * @access private + * @var string + */ + var $_hmr_before = ''; + var $_hmr_replace = ''; + var $_hmr_after = ''; + var $_hmr_key = 0; + + /**#@-*/ + + /** + * Creates a new GeSHi object, with source and language + * + * @param string The source code to highlight + * @param string The language to highlight the source with + * @param string The path to the language file directory. This + * is deprecated! I've backported the auto path + * detection from the 1.1.X dev branch, so now it + * should be automatically set correctly. If you have + * renamed the language directory however, you will + * still need to set the path using this parameter or + * {@link GeSHi->set_language_path()} + * @since 1.0.0 + */ + function GeSHi($source = '', $language = '', $path = '') { + if (!empty($source)) { + $this->set_source($source); + } + if (!empty($language)) { + $this->set_language($language); + } + $this->set_language_path($path); + } + + /** + * Returns the version of GeSHi + * + * @return string + * @since 1 0.8.11 + */ + function get_version() + { + return GESHI_VERSION; + } + + /** + * Returns an error message associated with the last GeSHi operation, + * or false if no error has occured + * + * @return string|false An error message if there has been an error, else false + * @since 1.0.0 + */ + function error() { + if ($this->error) { + //Put some template variables for debugging here ... + $debug_tpl_vars = array( + '{LANGUAGE}' => $this->language, + '{PATH}' => $this->language_path + ); + $msg = str_replace( + array_keys($debug_tpl_vars), + array_values($debug_tpl_vars), + $this->error_messages[$this->error]); + + return "
GeSHi Error: $msg (code {$this->error})
"; + } + return false; + } + + /** + * Gets a human-readable language name (thanks to Simon Patterson + * for the idea :)) + * + * @return string The name for the current language + * @since 1.0.2 + */ + function get_language_name() { + if (GESHI_ERROR_NO_SUCH_LANG == $this->error) { + return $this->language_data['LANG_NAME'] . ' (Unknown Language)'; + } + return $this->language_data['LANG_NAME']; + } + + /** + * Sets the source code for this object + * + * @param string The source code to highlight + * @since 1.0.0 + */ + function set_source($source) { + $this->source = $source; + $this->highlight_extra_lines = array(); + } + + /** + * Sets the language for this object + * + * @note since 1.0.8 this function won't reset language-settings by default anymore! + * if you need this set $force_reset = true + * + * @param string The name of the language to use + * @since 1.0.0 + */ + function set_language($language, $force_reset = false) { + if ($force_reset) { + $this->loaded_language = false; + } + + //Clean up the language name to prevent malicious code injection + $language = preg_replace('#[^a-zA-Z0-9\-_]#', '', $language); + + $language = strtolower($language); + + //Retreive the full filename + $file_name = $this->language_path . $language . '.php'; + if ($file_name == $this->loaded_language) { + // this language is already loaded! + return; + } + + $this->language = $language; + + $this->error = false; + $this->strict_mode = GESHI_NEVER; + + //Check if we can read the desired file + if (!is_readable($file_name)) { + $this->error = GESHI_ERROR_NO_SUCH_LANG; + return; + } + + // Load the language for parsing + $this->load_language($file_name); + } + + /** + * Sets the path to the directory containing the language files. Note + * that this path is relative to the directory of the script that included + * geshi.php, NOT geshi.php itself. + * + * @param string The path to the language directory + * @since 1.0.0 + * @deprecated The path to the language files should now be automatically + * detected, so this method should no longer be needed. The + * 1.1.X branch handles manual setting of the path differently + * so this method will disappear in 1.2.0. + */ + function set_language_path($path) { + if(strpos($path,':')) { + //Security Fix to prevent external directories using fopen wrappers. + if(DIRECTORY_SEPARATOR == "\\") { + if(!preg_match('#^[a-zA-Z]:#', $path) || false !== strpos($path, ':', 2)) { + return; + } + } else { + return; + } + } + if(preg_match('#[^/a-zA-Z0-9_\.\-\\\s:]#', $path)) { + //Security Fix to prevent external directories using fopen wrappers. + return; + } + if(GESHI_SECURITY_PARANOID && false !== strpos($path, '/.')) { + //Security Fix to prevent external directories using fopen wrappers. + return; + } + if(GESHI_SECURITY_PARANOID && false !== strpos($path, '..')) { + //Security Fix to prevent external directories using fopen wrappers. + return; + } + if ($path) { + $this->language_path = ('/' == $path[strlen($path) - 1]) ? $path : $path . '/'; + $this->set_language($this->language); // otherwise set_language_path has no effect + } + } + + /** + * Get supported langs or an associative array lang=>full_name. + * @param boolean $longnames + * @return array + */ + function get_supported_languages($full_names=false) + { + // return array + $back = array(); + + // we walk the lang root + $dir = dir($this->language_path); + + // foreach entry + while (false !== ($entry = $dir->read())) + { + $full_path = $this->language_path.$entry; + + // Skip all dirs + if (is_dir($full_path)) { + continue; + } + + // we only want lang.php files + if (!preg_match('/^([^.]+)\.php$/', $entry, $matches)) { + continue; + } + + // Raw lang name is here + $langname = $matches[1]; + + // We want the fullname too? + if ($full_names === true) + { + if (false !== ($fullname = $this->get_language_fullname($langname))) + { + $back[$langname] = $fullname; // we go associative + } + } + else + { + // just store raw langname + $back[] = $langname; + } + } + + $dir->close(); + + return $back; + } + + /** + * Get full_name for a lang or false. + * @param string $language short langname (html4strict for example) + * @return mixed + */ + function get_language_fullname($language) + { + //Clean up the language name to prevent malicious code injection + $language = preg_replace('#[^a-zA-Z0-9\-_]#', '', $language); + + $language = strtolower($language); + + // get fullpath-filename for a langname + $fullpath = $this->language_path.$language.'.php'; + + // we need to get contents :S + if (false === ($data = file_get_contents($fullpath))) { + $this->error = sprintf('Geshi::get_lang_fullname() Unknown Language: %s', $language); + return false; + } + + // match the langname + if (!preg_match('/\'LANG_NAME\'\s*=>\s*\'((?:[^\']|\\\')+?)\'/', $data, $matches)) { + $this->error = sprintf('Geshi::get_lang_fullname(%s): Regex can not detect language', $language); + return false; + } + + // return fullname for langname + return stripcslashes($matches[1]); + } + + /** + * Sets the type of header to be used. + * + * If GESHI_HEADER_DIV is used, the code is surrounded in a "div".This + * means more source code but more control over tab width and line-wrapping. + * GESHI_HEADER_PRE means that a "pre" is used - less source, but less + * control. Default is GESHI_HEADER_PRE. + * + * From 1.0.7.2, you can use GESHI_HEADER_NONE to specify that no header code + * should be outputted. + * + * @param int The type of header to be used + * @since 1.0.0 + */ + function set_header_type($type) { + //Check if we got a valid header type + if (!in_array($type, array(GESHI_HEADER_NONE, GESHI_HEADER_DIV, + GESHI_HEADER_PRE, GESHI_HEADER_PRE_VALID, GESHI_HEADER_PRE_TABLE))) { + $this->error = GESHI_ERROR_INVALID_HEADER_TYPE; + return; + } + + //Set that new header type + $this->header_type = $type; + } + + /** + * Sets the styles for the code that will be outputted + * when this object is parsed. The style should be a + * string of valid stylesheet declarations + * + * @param string The overall style for the outputted code block + * @param boolean Whether to merge the styles with the current styles or not + * @since 1.0.0 + */ + function set_overall_style($style, $preserve_defaults = false) { + if (!$preserve_defaults) { + $this->overall_style = $style; + } else { + $this->overall_style .= $style; + } + } + + /** + * Sets the overall classname for this block of code. This + * class can then be used in a stylesheet to style this object's + * output + * + * @param string The class name to use for this block of code + * @since 1.0.0 + */ + function set_overall_class($class) { + $this->overall_class = $class; + } + + /** + * Sets the overall id for this block of code. This id can then + * be used in a stylesheet to style this object's output + * + * @param string The ID to use for this block of code + * @since 1.0.0 + */ + function set_overall_id($id) { + $this->overall_id = $id; + } + + /** + * Sets whether CSS classes should be used to highlight the source. Default + * is off, calling this method with no arguments will turn it on + * + * @param boolean Whether to turn classes on or not + * @since 1.0.0 + */ + function enable_classes($flag = true) { + $this->use_classes = ($flag) ? true : false; + } + + /** + * Sets the style for the actual code. This should be a string + * containing valid stylesheet declarations. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * Note: Use this method to override any style changes you made to + * the line numbers if you are using line numbers, else the line of + * code will have the same style as the line number! Consult the + * GeSHi documentation for more information about this. + * + * @param string The style to use for actual code + * @param boolean Whether to merge the current styles with the new styles + * @since 1.0.2 + */ + function set_code_style($style, $preserve_defaults = false) { + if (!$preserve_defaults) { + $this->code_style = $style; + } else { + $this->code_style .= $style; + } + } + + /** + * Sets the styles for the line numbers. + * + * @param string The style for the line numbers that are "normal" + * @param string|boolean If a string, this is the style of the line + * numbers that are "fancy", otherwise if boolean then this + * defines whether the normal styles should be merged with the + * new normal styles or not + * @param boolean If set, is the flag for whether to merge the "fancy" + * styles with the current styles or not + * @since 1.0.2 + */ + function set_line_style($style1, $style2 = '', $preserve_defaults = false) { + //Check if we got 2 or three parameters + if (is_bool($style2)) { + $preserve_defaults = $style2; + $style2 = ''; + } + + //Actually set the new styles + if (!$preserve_defaults) { + $this->line_style1 = $style1; + $this->line_style2 = $style2; + } else { + $this->line_style1 .= $style1; + $this->line_style2 .= $style2; + } + } + + /** + * Sets whether line numbers should be displayed. + * + * Valid values for the first parameter are: + * + * - GESHI_NO_LINE_NUMBERS: Line numbers will not be displayed + * - GESHI_NORMAL_LINE_NUMBERS: Line numbers will be displayed + * - GESHI_FANCY_LINE_NUMBERS: Fancy line numbers will be displayed + * + * For fancy line numbers, the second parameter is used to signal which lines + * are to be fancy. For example, if the value of this parameter is 5 then every + * 5th line will be fancy. + * + * @param int How line numbers should be displayed + * @param int Defines which lines are fancy + * @since 1.0.0 + */ + function enable_line_numbers($flag, $nth_row = 5) { + if (GESHI_NO_LINE_NUMBERS != $flag && GESHI_NORMAL_LINE_NUMBERS != $flag + && GESHI_FANCY_LINE_NUMBERS != $flag) { + $this->error = GESHI_ERROR_INVALID_LINE_NUMBER_TYPE; + } + $this->line_numbers = $flag; + $this->line_nth_row = $nth_row; + } + + /** + * Sets wether spans and other HTML markup generated by GeSHi can + * span over multiple lines or not. Defaults to true to reduce overhead. + * Set it to false if you want to manipulate the output or manually display + * the code in an ordered list. + * + * @param boolean Wether multiline spans are allowed or not + * @since 1.0.7.22 + */ + function enable_multiline_span($flag) { + $this->allow_multiline_span = (bool) $flag; + } + + /** + * Get current setting for multiline spans, see GeSHi->enable_multiline_span(). + * + * @see enable_multiline_span + * @return bool + */ + function get_multiline_span() { + return $this->allow_multiline_span; + } + + /** + * Sets the style for a keyword group. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param int The key of the keyword group to change the styles of + * @param string The style to make the keywords + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @since 1.0.0 + */ + function set_keyword_group_style($key, $style, $preserve_defaults = false) { + //Set the style for this keyword group + if (!$preserve_defaults) { + $this->language_data['STYLES']['KEYWORDS'][$key] = $style; + } else { + $this->language_data['STYLES']['KEYWORDS'][$key] .= $style; + } + + //Update the lexic permissions + if (!isset($this->lexic_permissions['KEYWORDS'][$key])) { + $this->lexic_permissions['KEYWORDS'][$key] = true; + } + } + + /** + * Turns highlighting on/off for a keyword group + * + * @param int The key of the keyword group to turn on or off + * @param boolean Whether to turn highlighting for that group on or off + * @since 1.0.0 + */ + function set_keyword_group_highlighting($key, $flag = true) { + $this->lexic_permissions['KEYWORDS'][$key] = ($flag) ? true : false; + } + + /** + * Sets the styles for comment groups. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param int The key of the comment group to change the styles of + * @param string The style to make the comments + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @since 1.0.0 + */ + function set_comments_style($key, $style, $preserve_defaults = false) { + if (!$preserve_defaults) { + $this->language_data['STYLES']['COMMENTS'][$key] = $style; + } else { + $this->language_data['STYLES']['COMMENTS'][$key] .= $style; + } + } + + /** + * Turns highlighting on/off for comment groups + * + * @param int The key of the comment group to turn on or off + * @param boolean Whether to turn highlighting for that group on or off + * @since 1.0.0 + */ + function set_comments_highlighting($key, $flag = true) { + $this->lexic_permissions['COMMENTS'][$key] = ($flag) ? true : false; + } + + /** + * Sets the styles for escaped characters. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param string The style to make the escape characters + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @since 1.0.0 + */ + function set_escape_characters_style($style, $preserve_defaults = false, $group = 0) { + if (!$preserve_defaults) { + $this->language_data['STYLES']['ESCAPE_CHAR'][$group] = $style; + } else { + $this->language_data['STYLES']['ESCAPE_CHAR'][$group] .= $style; + } + } + + /** + * Turns highlighting on/off for escaped characters + * + * @param boolean Whether to turn highlighting for escape characters on or off + * @since 1.0.0 + */ + function set_escape_characters_highlighting($flag = true) { + $this->lexic_permissions['ESCAPE_CHAR'] = ($flag) ? true : false; + } + + /** + * Sets the styles for brackets. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * This method is DEPRECATED: use set_symbols_style instead. + * This method will be removed in 1.2.X + * + * @param string The style to make the brackets + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @since 1.0.0 + * @deprecated In favour of set_symbols_style + */ + function set_brackets_style($style, $preserve_defaults = false) { + if (!$preserve_defaults) { + $this->language_data['STYLES']['BRACKETS'][0] = $style; + } else { + $this->language_data['STYLES']['BRACKETS'][0] .= $style; + } + } + + /** + * Turns highlighting on/off for brackets + * + * This method is DEPRECATED: use set_symbols_highlighting instead. + * This method will be remove in 1.2.X + * + * @param boolean Whether to turn highlighting for brackets on or off + * @since 1.0.0 + * @deprecated In favour of set_symbols_highlighting + */ + function set_brackets_highlighting($flag) { + $this->lexic_permissions['BRACKETS'] = ($flag) ? true : false; + } + + /** + * Sets the styles for symbols. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param string The style to make the symbols + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @param int Tells the group of symbols for which style should be set. + * @since 1.0.1 + */ + function set_symbols_style($style, $preserve_defaults = false, $group = 0) { + // Update the style of symbols + if (!$preserve_defaults) { + $this->language_data['STYLES']['SYMBOLS'][$group] = $style; + } else { + $this->language_data['STYLES']['SYMBOLS'][$group] .= $style; + } + + // For backward compatibility + if (0 == $group) { + $this->set_brackets_style ($style, $preserve_defaults); + } + } + + /** + * Turns highlighting on/off for symbols + * + * @param boolean Whether to turn highlighting for symbols on or off + * @since 1.0.0 + */ + function set_symbols_highlighting($flag) { + // Update lexic permissions for this symbol group + $this->lexic_permissions['SYMBOLS'] = ($flag) ? true : false; + + // For backward compatibility + $this->set_brackets_highlighting ($flag); + } + + /** + * Sets the styles for strings. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param string The style to make the escape characters + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @param int Tells the group of strings for which style should be set. + * @since 1.0.0 + */ + function set_strings_style($style, $preserve_defaults = false, $group = 0) { + if (!$preserve_defaults) { + $this->language_data['STYLES']['STRINGS'][$group] = $style; + } else { + $this->language_data['STYLES']['STRINGS'][$group] .= $style; + } + } + + /** + * Turns highlighting on/off for strings + * + * @param boolean Whether to turn highlighting for strings on or off + * @since 1.0.0 + */ + function set_strings_highlighting($flag) { + $this->lexic_permissions['STRINGS'] = ($flag) ? true : false; + } + + /** + * Sets the styles for strict code blocks. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param string The style to make the script blocks + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @param int Tells the group of script blocks for which style should be set. + * @since 1.0.8.4 + */ + function set_script_style($style, $preserve_defaults = false, $group = 0) { + // Update the style of symbols + if (!$preserve_defaults) { + $this->language_data['STYLES']['SCRIPT'][$group] = $style; + } else { + $this->language_data['STYLES']['SCRIPT'][$group] .= $style; + } + } + + /** + * Sets the styles for numbers. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param string The style to make the numbers + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @param int Tells the group of numbers for which style should be set. + * @since 1.0.0 + */ + function set_numbers_style($style, $preserve_defaults = false, $group = 0) { + if (!$preserve_defaults) { + $this->language_data['STYLES']['NUMBERS'][$group] = $style; + } else { + $this->language_data['STYLES']['NUMBERS'][$group] .= $style; + } + } + + /** + * Turns highlighting on/off for numbers + * + * @param boolean Whether to turn highlighting for numbers on or off + * @since 1.0.0 + */ + function set_numbers_highlighting($flag) { + $this->lexic_permissions['NUMBERS'] = ($flag) ? true : false; + } + + /** + * Sets the styles for methods. $key is a number that references the + * appropriate "object splitter" - see the language file for the language + * you are highlighting to get this number. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param int The key of the object splitter to change the styles of + * @param string The style to make the methods + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @since 1.0.0 + */ + function set_methods_style($key, $style, $preserve_defaults = false) { + if (!$preserve_defaults) { + $this->language_data['STYLES']['METHODS'][$key] = $style; + } else { + $this->language_data['STYLES']['METHODS'][$key] .= $style; + } + } + + /** + * Turns highlighting on/off for methods + * + * @param boolean Whether to turn highlighting for methods on or off + * @since 1.0.0 + */ + function set_methods_highlighting($flag) { + $this->lexic_permissions['METHODS'] = ($flag) ? true : false; + } + + /** + * Sets the styles for regexps. If $preserve_defaults is + * true, then styles are merged with the default styles, with the + * user defined styles having priority + * + * @param string The style to make the regular expression matches + * @param boolean Whether to merge the new styles with the old or just + * to overwrite them + * @since 1.0.0 + */ + function set_regexps_style($key, $style, $preserve_defaults = false) { + if (!$preserve_defaults) { + $this->language_data['STYLES']['REGEXPS'][$key] = $style; + } else { + $this->language_data['STYLES']['REGEXPS'][$key] .= $style; + } + } + + /** + * Turns highlighting on/off for regexps + * + * @param int The key of the regular expression group to turn on or off + * @param boolean Whether to turn highlighting for the regular expression group on or off + * @since 1.0.0 + */ + function set_regexps_highlighting($key, $flag) { + $this->lexic_permissions['REGEXPS'][$key] = ($flag) ? true : false; + } + + /** + * Sets whether a set of keywords are checked for in a case sensitive manner + * + * @param int The key of the keyword group to change the case sensitivity of + * @param boolean Whether to check in a case sensitive manner or not + * @since 1.0.0 + */ + function set_case_sensitivity($key, $case) { + $this->language_data['CASE_SENSITIVE'][$key] = ($case) ? true : false; + } + + /** + * Sets the case that keywords should use when found. Use the constants: + * + * - GESHI_CAPS_NO_CHANGE: leave keywords as-is + * - GESHI_CAPS_UPPER: convert all keywords to uppercase where found + * - GESHI_CAPS_LOWER: convert all keywords to lowercase where found + * + * @param int A constant specifying what to do with matched keywords + * @since 1.0.1 + */ + function set_case_keywords($case) { + if (in_array($case, array( + GESHI_CAPS_NO_CHANGE, GESHI_CAPS_UPPER, GESHI_CAPS_LOWER))) { + $this->language_data['CASE_KEYWORDS'] = $case; + } + } + + /** + * Sets how many spaces a tab is substituted for + * + * Widths below zero are ignored + * + * @param int The tab width + * @since 1.0.0 + */ + function set_tab_width($width) { + $this->tab_width = intval($width); + + //Check if it fit's the constraints: + if ($this->tab_width < 1) { + //Return it to the default + $this->tab_width = 8; + } + } + + /** + * Sets whether or not to use tab-stop width specifed by language + * + * @param boolean Whether to use language-specific tab-stop widths + * @since 1.0.7.20 + */ + function set_use_language_tab_width($use) { + $this->use_language_tab_width = (bool) $use; + } + + /** + * Returns the tab width to use, based on the current language and user + * preference + * + * @return int Tab width + * @since 1.0.7.20 + */ + function get_real_tab_width() { + if (!$this->use_language_tab_width || + !isset($this->language_data['TAB_WIDTH'])) { + return $this->tab_width; + } else { + return $this->language_data['TAB_WIDTH']; + } + } + + /** + * Enables/disables strict highlighting. Default is off, calling this + * method without parameters will turn it on. See documentation + * for more details on strict mode and where to use it. + * + * @param boolean Whether to enable strict mode or not + * @since 1.0.0 + */ + function enable_strict_mode($mode = true) { + if (GESHI_MAYBE == $this->language_data['STRICT_MODE_APPLIES']) { + $this->strict_mode = ($mode) ? GESHI_ALWAYS : GESHI_NEVER; + } + } + + /** + * Disables all highlighting + * + * @since 1.0.0 + * @todo Rewrite with array traversal + * @deprecated In favour of enable_highlighting + */ + function disable_highlighting() { + $this->enable_highlighting(false); + } + + /** + * Enables all highlighting + * + * The optional flag parameter was added in version 1.0.7.21 and can be used + * to enable (true) or disable (false) all highlighting. + * + * @since 1.0.0 + * @param boolean A flag specifying whether to enable or disable all highlighting + * @todo Rewrite with array traversal + */ + function enable_highlighting($flag = true) { + $flag = $flag ? true : false; + foreach ($this->lexic_permissions as $key => $value) { + if (is_array($value)) { + foreach ($value as $k => $v) { + $this->lexic_permissions[$key][$k] = $flag; + } + } else { + $this->lexic_permissions[$key] = $flag; + } + } + + // Context blocks + $this->enable_important_blocks = $flag; + } + + /** + * Given a file extension, this method returns either a valid geshi language + * name, or the empty string if it couldn't be found + * + * @param string The extension to get a language name for + * @param array A lookup array to use instead of the default one + * @since 1.0.5 + * @todo Re-think about how this method works (maybe make it private and/or make it + * a extension->lang lookup?) + * @todo static? + */ + function get_language_name_from_extension( $extension, $lookup = array() ) { + $extension = strtolower($extension); + + if ( !is_array($lookup) || empty($lookup)) { + $lookup = array( + '6502acme' => array( 'a', 's', 'asm', 'inc' ), + '6502tasm' => array( 'a', 's', 'asm', 'inc' ), + '6502kickass' => array( 'a', 's', 'asm', 'inc' ), + '68000devpac' => array( 'a', 's', 'asm', 'inc' ), + 'abap' => array('abap'), + 'actionscript' => array('as'), + 'ada' => array('a', 'ada', 'adb', 'ads'), + 'apache' => array('conf'), + 'asm' => array('ash', 'asm', 'inc'), + 'asp' => array('asp'), + 'bash' => array('sh'), + 'bf' => array('bf'), + 'c' => array('c', 'h'), + 'c_mac' => array('c', 'h'), + 'caddcl' => array(), + 'cadlisp' => array(), + 'cdfg' => array('cdfg'), + 'cobol' => array('cbl'), + 'cpp' => array('cpp', 'hpp', 'C', 'H', 'CPP', 'HPP'), + 'csharp' => array('cs'), + 'css' => array('css'), + 'd' => array('d'), + 'delphi' => array('dpk', 'dpr', 'pp', 'pas'), + 'diff' => array('diff', 'patch'), + 'dos' => array('bat', 'cmd'), + 'gdb' => array('kcrash', 'crash', 'bt'), + 'gettext' => array('po', 'pot'), + 'gml' => array('gml'), + 'gnuplot' => array('plt'), + 'groovy' => array('groovy'), + 'haskell' => array('hs'), + 'haxe' => array('hx'), + 'html4strict' => array('html', 'htm'), + 'ini' => array('ini', 'desktop'), + 'java' => array('java'), + 'javascript' => array('js'), + 'klonec' => array('kl1'), + 'klonecpp' => array('klx'), + 'latex' => array('tex'), + 'lisp' => array('lisp'), + 'lua' => array('lua'), + 'matlab' => array('m'), + 'mpasm' => array(), + 'mysql' => array('sql'), + 'nsis' => array(), + 'objc' => array(), + 'oobas' => array(), + 'oracle8' => array(), + 'oracle10' => array(), + 'pascal' => array('pas'), + 'perl' => array('pl', 'pm'), + 'php' => array('php', 'php5', 'phtml', 'phps'), + 'povray' => array('pov'), + 'providex' => array('pvc', 'pvx'), + 'prolog' => array('pl'), + 'python' => array('py'), + 'qbasic' => array('bi'), + 'reg' => array('reg'), + 'ruby' => array('rb'), + 'sas' => array('sas'), + 'scala' => array('scala'), + 'scheme' => array('scm'), + 'scilab' => array('sci'), + 'smalltalk' => array('st'), + 'smarty' => array(), + 'tcl' => array('tcl'), + 'text' => array('txt'), + 'vb' => array('bas'), + 'vbnet' => array(), + 'visualfoxpro' => array(), + 'whitespace' => array('ws'), + 'xml' => array('xml', 'svg', 'xrc'), + 'z80' => array('z80', 'asm', 'inc') + ); + } + + foreach ($lookup as $lang => $extensions) { + if (in_array($extension, $extensions)) { + return $lang; + } + } + + return 'text'; + } + + /** + * Given a file name, this method loads its contents in, and attempts + * to set the language automatically. An optional lookup table can be + * passed for looking up the language name. If not specified a default + * table is used + * + * The language table is in the form + *
array(
+     *   'lang_name' => array('extension', 'extension', ...),
+     *   'lang_name' ...
+     * );
+ * + * @param string The filename to load the source from + * @param array A lookup array to use instead of the default one + * @todo Complete rethink of this and above method + * @since 1.0.5 + */ + function load_from_file($file_name, $lookup = array()) { + if (is_readable($file_name)) { + $this->set_source(file_get_contents($file_name)); + $this->set_language($this->get_language_name_from_extension(substr(strrchr($file_name, '.'), 1), $lookup)); + } else { + $this->error = GESHI_ERROR_FILE_NOT_READABLE; + } + } + + /** + * Adds a keyword to a keyword group for highlighting + * + * @param int The key of the keyword group to add the keyword to + * @param string The word to add to the keyword group + * @since 1.0.0 + */ + function add_keyword($key, $word) { + if (!is_array($this->language_data['KEYWORDS'][$key])) { + $this->language_data['KEYWORDS'][$key] = array(); + } + if (!in_array($word, $this->language_data['KEYWORDS'][$key])) { + $this->language_data['KEYWORDS'][$key][] = $word; + + //NEW in 1.0.8 don't recompile the whole optimized regexp, simply append it + if ($this->parse_cache_built) { + $subkey = count($this->language_data['CACHED_KEYWORD_LISTS'][$key]) - 1; + $this->language_data['CACHED_KEYWORD_LISTS'][$key][$subkey] .= '|' . preg_quote($word, '/'); + } + } + } + + /** + * Removes a keyword from a keyword group + * + * @param int The key of the keyword group to remove the keyword from + * @param string The word to remove from the keyword group + * @param bool Wether to automatically recompile the optimized regexp list or not. + * Note: if you set this to false and @see GeSHi->parse_code() was already called once, + * for the current language, you have to manually call @see GeSHi->optimize_keyword_group() + * or the removed keyword will stay in cache and still be highlighted! On the other hand + * it might be too expensive to recompile the regexp list for every removal if you want to + * remove a lot of keywords. + * @since 1.0.0 + */ + function remove_keyword($key, $word, $recompile = true) { + $key_to_remove = array_search($word, $this->language_data['KEYWORDS'][$key]); + if ($key_to_remove !== false) { + unset($this->language_data['KEYWORDS'][$key][$key_to_remove]); + + //NEW in 1.0.8, optionally recompile keyword group + if ($recompile && $this->parse_cache_built) { + $this->optimize_keyword_group($key); + } + } + } + + /** + * Creates a new keyword group + * + * @param int The key of the keyword group to create + * @param string The styles for the keyword group + * @param boolean Whether the keyword group is case sensitive ornot + * @param array The words to use for the keyword group + * @since 1.0.0 + */ + function add_keyword_group($key, $styles, $case_sensitive = true, $words = array()) { + $words = (array) $words; + if (empty($words)) { + // empty word lists mess up highlighting + return false; + } + + //Add the new keyword group internally + $this->language_data['KEYWORDS'][$key] = $words; + $this->lexic_permissions['KEYWORDS'][$key] = true; + $this->language_data['CASE_SENSITIVE'][$key] = $case_sensitive; + $this->language_data['STYLES']['KEYWORDS'][$key] = $styles; + + //NEW in 1.0.8, cache keyword regexp + if ($this->parse_cache_built) { + $this->optimize_keyword_group($key); + } + } + + /** + * Removes a keyword group + * + * @param int The key of the keyword group to remove + * @since 1.0.0 + */ + function remove_keyword_group ($key) { + //Remove the keyword group internally + unset($this->language_data['KEYWORDS'][$key]); + unset($this->lexic_permissions['KEYWORDS'][$key]); + unset($this->language_data['CASE_SENSITIVE'][$key]); + unset($this->language_data['STYLES']['KEYWORDS'][$key]); + + //NEW in 1.0.8 + unset($this->language_data['CACHED_KEYWORD_LISTS'][$key]); + } + + /** + * compile optimized regexp list for keyword group + * + * @param int The key of the keyword group to compile & optimize + * @since 1.0.8 + */ + function optimize_keyword_group($key) { + $this->language_data['CACHED_KEYWORD_LISTS'][$key] = + $this->optimize_regexp_list($this->language_data['KEYWORDS'][$key]); + $space_as_whitespace = false; + if(isset($this->language_data['PARSER_CONTROL'])) { + if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'])) { + if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['SPACE_AS_WHITESPACE'])) { + $space_as_whitespace = $this->language_data['PARSER_CONTROL']['KEYWORDS']['SPACE_AS_WHITESPACE']; + } + if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'])) { + if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'])) { + $space_as_whitespace = $this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE']; + } + } + } + } + if($space_as_whitespace) { + foreach($this->language_data['CACHED_KEYWORD_LISTS'][$key] as $rxk => $rxv) { + $this->language_data['CACHED_KEYWORD_LISTS'][$key][$rxk] = + str_replace(" ", "\\s+", $rxv); + } + } + } + + /** + * Sets the content of the header block + * + * @param string The content of the header block + * @since 1.0.2 + */ + function set_header_content($content) { + $this->header_content = $content; + } + + /** + * Sets the content of the footer block + * + * @param string The content of the footer block + * @since 1.0.2 + */ + function set_footer_content($content) { + $this->footer_content = $content; + } + + /** + * Sets the style for the header content + * + * @param string The style for the header content + * @since 1.0.2 + */ + function set_header_content_style($style) { + $this->header_content_style = $style; + } + + /** + * Sets the style for the footer content + * + * @param string The style for the footer content + * @since 1.0.2 + */ + function set_footer_content_style($style) { + $this->footer_content_style = $style; + } + + /** + * Sets whether to force a surrounding block around + * the highlighted code or not + * + * @param boolean Tells whether to enable or disable this feature + * @since 1.0.7.20 + */ + function enable_inner_code_block($flag) { + $this->force_code_block = (bool)$flag; + } + + /** + * Sets the base URL to be used for keywords + * + * @param int The key of the keyword group to set the URL for + * @param string The URL to set for the group. If {FNAME} is in + * the url somewhere, it is replaced by the keyword + * that the URL is being made for + * @since 1.0.2 + */ + function set_url_for_keyword_group($group, $url) { + $this->language_data['URLS'][$group] = $url; + } + + /** + * Sets styles for links in code + * + * @param int A constant that specifies what state the style is being + * set for - e.g. :hover or :visited + * @param string The styles to use for that state + * @since 1.0.2 + */ + function set_link_styles($type, $styles) { + $this->link_styles[$type] = $styles; + } + + /** + * Sets the target for links in code + * + * @param string The target for links in the code, e.g. _blank + * @since 1.0.3 + */ + function set_link_target($target) { + if (!$target) { + $this->link_target = ''; + } else { + $this->link_target = ' target="' . $target . '"'; + } + } + + /** + * Sets styles for important parts of the code + * + * @param string The styles to use on important parts of the code + * @since 1.0.2 + */ + function set_important_styles($styles) { + $this->important_styles = $styles; + } + + /** + * Sets whether context-important blocks are highlighted + * + * @param boolean Tells whether to enable or disable highlighting of important blocks + * @todo REMOVE THIS SHIZ FROM GESHI! + * @deprecated + * @since 1.0.2 + */ + function enable_important_blocks($flag) { + $this->enable_important_blocks = ( $flag ) ? true : false; + } + + /** + * Whether CSS IDs should be added to each line + * + * @param boolean If true, IDs will be added to each line. + * @since 1.0.2 + */ + function enable_ids($flag = true) { + $this->add_ids = ($flag) ? true : false; + } + + /** + * Specifies which lines to highlight extra + * + * The extra style parameter was added in 1.0.7.21. + * + * @param mixed An array of line numbers to highlight, or just a line + * number on its own. + * @param string A string specifying the style to use for this line. + * If null is specified, the default style is used. + * If false is specified, the line will be removed from + * special highlighting + * @since 1.0.2 + * @todo Some data replication here that could be cut down on + */ + function highlight_lines_extra($lines, $style = null) { + if (is_array($lines)) { + //Split up the job using single lines at a time + foreach ($lines as $line) { + $this->highlight_lines_extra($line, $style); + } + } else { + //Mark the line as being highlighted specially + $lines = intval($lines); + $this->highlight_extra_lines[$lines] = $lines; + + //Decide on which style to use + if ($style === null) { //Check if we should use default style + unset($this->highlight_extra_lines_styles[$lines]); + } elseif ($style === false) { //Check if to remove this line + unset($this->highlight_extra_lines[$lines]); + unset($this->highlight_extra_lines_styles[$lines]); + } else { + $this->highlight_extra_lines_styles[$lines] = $style; + } + } + } + + /** + * Sets the style for extra-highlighted lines + * + * @param string The style for extra-highlighted lines + * @since 1.0.2 + */ + function set_highlight_lines_extra_style($styles) { + $this->highlight_extra_lines_style = $styles; + } + + /** + * Sets the line-ending + * + * @param string The new line-ending + * @since 1.0.2 + */ + function set_line_ending($line_ending) { + $this->line_ending = (string)$line_ending; + } + + /** + * Sets what number line numbers should start at. Should + * be a positive integer, and will be converted to one. + * + * Warning: Using this method will add the "start" + * attribute to the <ol> that is used for line numbering. + * This is not valid XHTML strict, so if that's what you + * care about then don't use this method. Firefox is getting + * support for the CSS method of doing this in 1.1 and Opera + * has support for the CSS method, but (of course) IE doesn't + * so it's not worth doing it the CSS way yet. + * + * @param int The number to start line numbers at + * @since 1.0.2 + */ + function start_line_numbers_at($number) { + $this->line_numbers_start = abs(intval($number)); + } + + /** + * Sets the encoding used for htmlspecialchars(), for international + * support. + * + * NOTE: This is not needed for now because htmlspecialchars() is not + * being used (it has a security hole in PHP4 that has not been patched). + * Maybe in a future version it may make a return for speed reasons, but + * I doubt it. + * + * @param string The encoding to use for the source + * @since 1.0.3 + */ + function set_encoding($encoding) { + if ($encoding) { + $this->encoding = strtolower($encoding); + } + } + + /** + * Turns linking of keywords on or off. + * + * @param boolean If true, links will be added to keywords + * @since 1.0.2 + */ + function enable_keyword_links($enable = true) { + $this->keyword_links = (bool) $enable; + } + + /** + * Setup caches needed for styling. This is automatically called in + * parse_code() and get_stylesheet() when appropriate. This function helps + * stylesheet generators as they rely on some style information being + * preprocessed + * + * @since 1.0.8 + * @access private + */ + function build_style_cache() { + //Build the style cache needed to highlight numbers appropriate + if($this->lexic_permissions['NUMBERS']) { + //First check what way highlighting information for numbers are given + if(!isset($this->language_data['NUMBERS'])) { + $this->language_data['NUMBERS'] = 0; + } + + if(is_array($this->language_data['NUMBERS'])) { + $this->language_data['NUMBERS_CACHE'] = $this->language_data['NUMBERS']; + } else { + $this->language_data['NUMBERS_CACHE'] = array(); + if(!$this->language_data['NUMBERS']) { + $this->language_data['NUMBERS'] = + GESHI_NUMBER_INT_BASIC | + GESHI_NUMBER_FLT_NONSCI; + } + + for($i = 0, $j = $this->language_data['NUMBERS']; $j > 0; ++$i, $j>>=1) { + //Rearrange style indices if required ... + if(isset($this->language_data['STYLES']['NUMBERS'][1<<$i])) { + $this->language_data['STYLES']['NUMBERS'][$i] = + $this->language_data['STYLES']['NUMBERS'][1<<$i]; + unset($this->language_data['STYLES']['NUMBERS'][1<<$i]); + } + + //Check if this bit is set for highlighting + if($j&1) { + //So this bit is set ... + //Check if it belongs to group 0 or the actual stylegroup + if(isset($this->language_data['STYLES']['NUMBERS'][$i])) { + $this->language_data['NUMBERS_CACHE'][$i] = 1 << $i; + } else { + if(!isset($this->language_data['NUMBERS_CACHE'][0])) { + $this->language_data['NUMBERS_CACHE'][0] = 0; + } + $this->language_data['NUMBERS_CACHE'][0] |= 1 << $i; + } + } + } + } + } + } + + /** + * Setup caches needed for parsing. This is automatically called in parse_code() when appropriate. + * This function makes stylesheet generators much faster as they do not need these caches. + * + * @since 1.0.8 + * @access private + */ + function build_parse_cache() { + // cache symbol regexp + //As this is a costy operation, we avoid doing it for multiple groups ... + //Instead we perform it for all symbols at once. + // + //For this to work, we need to reorganize the data arrays. + if ($this->lexic_permissions['SYMBOLS'] && !empty($this->language_data['SYMBOLS'])) { + $this->language_data['MULTIPLE_SYMBOL_GROUPS'] = count($this->language_data['STYLES']['SYMBOLS']) > 1; + + $this->language_data['SYMBOL_DATA'] = array(); + $symbol_preg_multi = array(); // multi char symbols + $symbol_preg_single = array(); // single char symbols + foreach ($this->language_data['SYMBOLS'] as $key => $symbols) { + if (is_array($symbols)) { + foreach ($symbols as $sym) { + $sym = $this->hsc($sym); + if (!isset($this->language_data['SYMBOL_DATA'][$sym])) { + $this->language_data['SYMBOL_DATA'][$sym] = $key; + if (isset($sym[1])) { // multiple chars + $symbol_preg_multi[] = preg_quote($sym, '/'); + } else { // single char + if ($sym == '-') { + // don't trigger range out of order error + $symbol_preg_single[] = '\-'; + } else { + $symbol_preg_single[] = preg_quote($sym, '/'); + } + } + } + } + } else { + $symbols = $this->hsc($symbols); + if (!isset($this->language_data['SYMBOL_DATA'][$symbols])) { + $this->language_data['SYMBOL_DATA'][$symbols] = 0; + if (isset($symbols[1])) { // multiple chars + $symbol_preg_multi[] = preg_quote($symbols, '/'); + } elseif ($symbols == '-') { + // don't trigger range out of order error + $symbol_preg_single[] = '\-'; + } else { // single char + $symbol_preg_single[] = preg_quote($symbols, '/'); + } + } + } + } + + //Now we have an array with each possible symbol as the key and the style as the actual data. + //This way we can set the correct style just the moment we highlight ... + // + //Now we need to rewrite our array to get a search string that + $symbol_preg = array(); + if (!empty($symbol_preg_multi)) { + rsort($symbol_preg_multi); + $symbol_preg[] = implode('|', $symbol_preg_multi); + } + if (!empty($symbol_preg_single)) { + rsort($symbol_preg_single); + $symbol_preg[] = '[' . implode('', $symbol_preg_single) . ']'; + } + $this->language_data['SYMBOL_SEARCH'] = implode("|", $symbol_preg); + } + + // cache optimized regexp for keyword matching + // remove old cache + $this->language_data['CACHED_KEYWORD_LISTS'] = array(); + foreach (array_keys($this->language_data['KEYWORDS']) as $key) { + if (!isset($this->lexic_permissions['KEYWORDS'][$key]) || + $this->lexic_permissions['KEYWORDS'][$key]) { + $this->optimize_keyword_group($key); + } + } + + // brackets + if ($this->lexic_permissions['BRACKETS']) { + $this->language_data['CACHE_BRACKET_MATCH'] = array('[', ']', '(', ')', '{', '}'); + if (!$this->use_classes && isset($this->language_data['STYLES']['BRACKETS'][0])) { + $this->language_data['CACHE_BRACKET_REPLACE'] = array( + '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">[|>', + '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">]|>', + '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">(|>', + '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">)|>', + '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">{|>', + '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">}|>', + ); + } + else { + $this->language_data['CACHE_BRACKET_REPLACE'] = array( + '<| class="br0">[|>', + '<| class="br0">]|>', + '<| class="br0">(|>', + '<| class="br0">)|>', + '<| class="br0">{|>', + '<| class="br0">}|>', + ); + } + } + + //Build the parse cache needed to highlight numbers appropriate + if($this->lexic_permissions['NUMBERS']) { + //Check if the style rearrangements have been processed ... + //This also does some preprocessing to check which style groups are useable ... + if(!isset($this->language_data['NUMBERS_CACHE'])) { + $this->build_style_cache(); + } + + //Number format specification + //All this formats are matched case-insensitively! + static $numbers_format = array( + GESHI_NUMBER_INT_BASIC => + '(?:(? + '(? + '(? + '(? + '(? + '(? + '(? + '(? + '(? + '(? + '(? + '(? + '(? + '(? + '(? + '(?language_data['NUMBERS_RXCACHE'] = array(); + foreach($this->language_data['NUMBERS_CACHE'] as $key => $rxdata) { + if(is_string($rxdata)) { + $regexp = $rxdata; + } else { + //This is a bitfield of number flags to highlight: + //Build an array, implode them together and make this the actual RX + $rxuse = array(); + for($i = 1; $i <= $rxdata; $i<<=1) { + if($rxdata & $i) { + $rxuse[] = $numbers_format[$i]; + } + } + $regexp = implode("|", $rxuse); + } + + $this->language_data['NUMBERS_RXCACHE'][$key] = + "/(?)($regexp)(?!(?:|(?>[^\<]))+>)(?![^<]*>)(?!\|>)(?!\/>)/i"; // + } + + if(!isset($this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'])) { + $this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'] = '#\d#'; + } + } + + $this->parse_cache_built = true; + } + + /** + * Returns the code in $this->source, highlighted and surrounded by the + * nessecary HTML. + * + * This should only be called ONCE, cos it's SLOW! If you want to highlight + * the same source multiple times, you're better off doing a whole lot of + * str_replaces to replace the <span>s + * + * @since 1.0.0 + */ + function parse_code () { + // Start the timer + $start_time = microtime(); + + // Replace all newlines to a common form. + $code = str_replace("\r\n", "\n", $this->source); + $code = str_replace("\r", "\n", $code); + + // Firstly, if there is an error, we won't highlight + if ($this->error) { + //Escape the source for output + $result = $this->hsc($this->source); + + //This fix is related to SF#1923020, but has to be applied regardless of + //actually highlighting symbols. + $result = str_replace(array('', ''), array(';', '|'), $result); + + // Timing is irrelevant + $this->set_time($start_time, $start_time); + $this->finalise($result); + return $result; + } + + // make sure the parse cache is up2date + if (!$this->parse_cache_built) { + $this->build_parse_cache(); + } + + // Initialise various stuff + $length = strlen($code); + $COMMENT_MATCHED = false; + $stuff_to_parse = ''; + $endresult = ''; + + // "Important" selections are handled like multiline comments + // @todo GET RID OF THIS SHIZ + if ($this->enable_important_blocks) { + $this->language_data['COMMENT_MULTI'][GESHI_START_IMPORTANT] = GESHI_END_IMPORTANT; + } + + if ($this->strict_mode) { + // Break the source into bits. Each bit will be a portion of the code + // within script delimiters - for example, HTML between < and > + $k = 0; + $parts = array(); + $matches = array(); + $next_match_pointer = null; + // we use a copy to unset delimiters on demand (when they are not found) + $delim_copy = $this->language_data['SCRIPT_DELIMITERS']; + $i = 0; + while ($i < $length) { + $next_match_pos = $length + 1; // never true + foreach ($delim_copy as $dk => $delimiters) { + if(is_array($delimiters)) { + foreach ($delimiters as $open => $close) { + // make sure the cache is setup properly + if (!isset($matches[$dk][$open])) { + $matches[$dk][$open] = array( + 'next_match' => -1, + 'dk' => $dk, + + 'open' => $open, // needed for grouping of adjacent code blocks (see below) + 'open_strlen' => strlen($open), + + 'close' => $close, + 'close_strlen' => strlen($close), + ); + } + // Get the next little bit for this opening string + if ($matches[$dk][$open]['next_match'] < $i) { + // only find the next pos if it was not already cached + $open_pos = strpos($code, $open, $i); + if ($open_pos === false) { + // no match for this delimiter ever + unset($delim_copy[$dk][$open]); + continue; + } + $matches[$dk][$open]['next_match'] = $open_pos; + } + if ($matches[$dk][$open]['next_match'] < $next_match_pos) { + //So we got a new match, update the close_pos + $matches[$dk][$open]['close_pos'] = + strpos($code, $close, $matches[$dk][$open]['next_match']+1); + + $next_match_pointer =& $matches[$dk][$open]; + $next_match_pos = $matches[$dk][$open]['next_match']; + } + } + } else { + //So we should match an RegExp as Strict Block ... + /** + * The value in $delimiters is expected to be an RegExp + * containing exactly 2 matching groups: + * - Group 1 is the opener + * - Group 2 is the closer + */ + if(!GESHI_PHP_PRE_433 && //Needs proper rewrite to work with PHP >=4.3.0; 4.3.3 is guaranteed to work. + preg_match($delimiters, $code, $matches_rx, PREG_OFFSET_CAPTURE, $i)) { + //We got a match ... + if(isset($matches_rx['start']) && isset($matches_rx['end'])) + { + $matches[$dk] = array( + 'next_match' => $matches_rx['start'][1], + 'dk' => $dk, + + 'close_strlen' => strlen($matches_rx['end'][0]), + 'close_pos' => $matches_rx['end'][1], + ); + } else { + $matches[$dk] = array( + 'next_match' => $matches_rx[1][1], + 'dk' => $dk, + + 'close_strlen' => strlen($matches_rx[2][0]), + 'close_pos' => $matches_rx[2][1], + ); + } + } else { + // no match for this delimiter ever + unset($delim_copy[$dk]); + continue; + } + + if ($matches[$dk]['next_match'] <= $next_match_pos) { + $next_match_pointer =& $matches[$dk]; + $next_match_pos = $matches[$dk]['next_match']; + } + } + } + + // non-highlightable text + $parts[$k] = array( + 1 => substr($code, $i, $next_match_pos - $i) + ); + ++$k; + + if ($next_match_pos > $length) { + // out of bounds means no next match was found + break; + } + + // highlightable code + $parts[$k][0] = $next_match_pointer['dk']; + + //Only combine for non-rx script blocks + if(is_array($delim_copy[$next_match_pointer['dk']])) { + // group adjacent script blocks, e.g. should be one block, not three! + $i = $next_match_pos + $next_match_pointer['open_strlen']; + while (true) { + $close_pos = strpos($code, $next_match_pointer['close'], $i); + if ($close_pos == false) { + break; + } + $i = $close_pos + $next_match_pointer['close_strlen']; + if ($i == $length) { + break; + } + if ($code[$i] == $next_match_pointer['open'][0] && ($next_match_pointer['open_strlen'] == 1 || + substr($code, $i, $next_match_pointer['open_strlen']) == $next_match_pointer['open'])) { + // merge adjacent but make sure we don't merge things like + foreach ($matches as $submatches) { + foreach ($submatches as $match) { + if ($match['next_match'] == $i) { + // a different block already matches here! + break 3; + } + } + } + } else { + break; + } + } + } else { + $close_pos = $next_match_pointer['close_pos'] + $next_match_pointer['close_strlen']; + $i = $close_pos; + } + + if ($close_pos === false) { + // no closing delimiter found! + $parts[$k][1] = substr($code, $next_match_pos); + ++$k; + break; + } else { + $parts[$k][1] = substr($code, $next_match_pos, $i - $next_match_pos); + ++$k; + } + } + unset($delim_copy, $next_match_pointer, $next_match_pos, $matches); + $num_parts = $k; + + if ($num_parts == 1 && $this->strict_mode == GESHI_MAYBE) { + // when we have only one part, we don't have anything to highlight at all. + // if we have a "maybe" strict language, this should be handled as highlightable code + $parts = array( + 0 => array( + 0 => '', + 1 => '' + ), + 1 => array( + 0 => null, + 1 => $parts[0][1] + ) + ); + $num_parts = 2; + } + + } else { + // Not strict mode - simply dump the source into + // the array at index 1 (the first highlightable block) + $parts = array( + 0 => array( + 0 => '', + 1 => '' + ), + 1 => array( + 0 => null, + 1 => $code + ) + ); + $num_parts = 2; + } + + //Unset variables we won't need any longer + unset($code); + + //Preload some repeatedly used values regarding hardquotes ... + $hq = isset($this->language_data['HARDQUOTE']) ? $this->language_data['HARDQUOTE'][0] : false; + $hq_strlen = strlen($hq); + + //Preload if line numbers are to be generated afterwards + //Added a check if line breaks should be forced even without line numbers, fixes SF#1727398 + $check_linenumbers = $this->line_numbers != GESHI_NO_LINE_NUMBERS || + !empty($this->highlight_extra_lines) || !$this->allow_multiline_span; + + //preload the escape char for faster checking ... + $escaped_escape_char = $this->hsc($this->language_data['ESCAPE_CHAR']); + + // this is used for single-line comments + $sc_disallowed_before = ""; + $sc_disallowed_after = ""; + + if (isset($this->language_data['PARSER_CONTROL'])) { + if (isset($this->language_data['PARSER_CONTROL']['COMMENTS'])) { + if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE'])) { + $sc_disallowed_before = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE']; + } + if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER'])) { + $sc_disallowed_after = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER']; + } + } + } + + //Fix for SF#1932083: Multichar Quotemarks unsupported + $is_string_starter = array(); + if ($this->lexic_permissions['STRINGS']) { + foreach ($this->language_data['QUOTEMARKS'] as $quotemark) { + if (!isset($is_string_starter[$quotemark[0]])) { + $is_string_starter[$quotemark[0]] = (string)$quotemark; + } elseif (is_string($is_string_starter[$quotemark[0]])) { + $is_string_starter[$quotemark[0]] = array( + $is_string_starter[$quotemark[0]], + $quotemark); + } else { + $is_string_starter[$quotemark[0]][] = $quotemark; + } + } + } + + // Now we go through each part. We know that even-indexed parts are + // code that shouldn't be highlighted, and odd-indexed parts should + // be highlighted + for ($key = 0; $key < $num_parts; ++$key) { + $STRICTATTRS = ''; + + // If this block should be highlighted... + if (!($key & 1)) { + // Else not a block to highlight + $endresult .= $this->hsc($parts[$key][1]); + unset($parts[$key]); + continue; + } + + $result = ''; + $part = $parts[$key][1]; + + $highlight_part = true; + if ($this->strict_mode && !is_null($parts[$key][0])) { + // get the class key for this block of code + $script_key = $parts[$key][0]; + $highlight_part = $this->language_data['HIGHLIGHT_STRICT_BLOCK'][$script_key]; + if ($this->language_data['STYLES']['SCRIPT'][$script_key] != '' && + $this->lexic_permissions['SCRIPT']) { + // Add a span element around the source to + // highlight the overall source block + if (!$this->use_classes && + $this->language_data['STYLES']['SCRIPT'][$script_key] != '') { + $attributes = ' style="' . $this->language_data['STYLES']['SCRIPT'][$script_key] . '"'; + } else { + $attributes = ' class="sc' . $script_key . '"'; + } + $result .= ""; + $STRICTATTRS = $attributes; + } + } + + if ($highlight_part) { + // Now, highlight the code in this block. This code + // is really the engine of GeSHi (along with the method + // parse_non_string_part). + + // cache comment regexps incrementally + $next_comment_regexp_key = ''; + $next_comment_regexp_pos = -1; + $next_comment_multi_pos = -1; + $next_comment_single_pos = -1; + $comment_regexp_cache_per_key = array(); + $comment_multi_cache_per_key = array(); + $comment_single_cache_per_key = array(); + $next_open_comment_multi = ''; + $next_comment_single_key = ''; + $escape_regexp_cache_per_key = array(); + $next_escape_regexp_key = ''; + $next_escape_regexp_pos = -1; + + $length = strlen($part); + for ($i = 0; $i < $length; ++$i) { + // Get the next char + $char = $part[$i]; + $char_len = 1; + + // update regexp comment cache if needed + if (isset($this->language_data['COMMENT_REGEXP']) && $next_comment_regexp_pos < $i) { + $next_comment_regexp_pos = $length; + foreach ($this->language_data['COMMENT_REGEXP'] as $comment_key => $regexp) { + $match_i = false; + if (isset($comment_regexp_cache_per_key[$comment_key]) && + ($comment_regexp_cache_per_key[$comment_key]['pos'] >= $i || + $comment_regexp_cache_per_key[$comment_key]['pos'] === false)) { + // we have already matched something + if ($comment_regexp_cache_per_key[$comment_key]['pos'] === false) { + // this comment is never matched + continue; + } + $match_i = $comment_regexp_cache_per_key[$comment_key]['pos']; + } elseif ( + //This is to allow use of the offset parameter in preg_match and stay as compatible with older PHP versions as possible + (GESHI_PHP_PRE_433 && preg_match($regexp, substr($part, $i), $match, PREG_OFFSET_CAPTURE)) || + (!GESHI_PHP_PRE_433 && preg_match($regexp, $part, $match, PREG_OFFSET_CAPTURE, $i)) + ) { + $match_i = $match[0][1]; + if (GESHI_PHP_PRE_433) { + $match_i += $i; + } + + $comment_regexp_cache_per_key[$comment_key] = array( + 'key' => $comment_key, + 'length' => strlen($match[0][0]), + 'pos' => $match_i + ); + } else { + $comment_regexp_cache_per_key[$comment_key]['pos'] = false; + continue; + } + + if ($match_i !== false && $match_i < $next_comment_regexp_pos) { + $next_comment_regexp_pos = $match_i; + $next_comment_regexp_key = $comment_key; + if ($match_i === $i) { + break; + } + } + } + } + + $string_started = false; + + if (isset($is_string_starter[$char])) { + // Possibly the start of a new string ... + + //Check which starter it was ... + //Fix for SF#1932083: Multichar Quotemarks unsupported + if (is_array($is_string_starter[$char])) { + $char_new = ''; + foreach ($is_string_starter[$char] as $testchar) { + if ($testchar === substr($part, $i, strlen($testchar)) && + strlen($testchar) > strlen($char_new)) { + $char_new = $testchar; + $string_started = true; + } + } + if ($string_started) { + $char = $char_new; + } + } else { + $testchar = $is_string_starter[$char]; + if ($testchar === substr($part, $i, strlen($testchar))) { + $char = $testchar; + $string_started = true; + } + } + $char_len = strlen($char); + } + + if ($string_started && ($i != $next_comment_regexp_pos)) { + // Hand out the correct style information for this string + $string_key = array_search($char, $this->language_data['QUOTEMARKS']); + if (!isset($this->language_data['STYLES']['STRINGS'][$string_key]) || + !isset($this->language_data['STYLES']['ESCAPE_CHAR'][$string_key])) { + $string_key = 0; + } + + // parse the stuff before this + $result .= $this->parse_non_string_part($stuff_to_parse); + $stuff_to_parse = ''; + + if (!$this->use_classes) { + $string_attributes = ' style="' . $this->language_data['STYLES']['STRINGS'][$string_key] . '"'; + } else { + $string_attributes = ' class="st'.$string_key.'"'; + } + + // now handle the string + $string = "" . GeSHi::hsc($char); + $start = $i + $char_len; + $string_open = true; + + if(empty($this->language_data['ESCAPE_REGEXP'])) { + $next_escape_regexp_pos = $length; + } + + do { + //Get the regular ending pos ... + $close_pos = strpos($part, $char, $start); + if(false === $close_pos) { + $close_pos = $length; + } + + if($this->lexic_permissions['ESCAPE_CHAR']) { + // update escape regexp cache if needed + if (isset($this->language_data['ESCAPE_REGEXP']) && $next_escape_regexp_pos < $start) { + $next_escape_regexp_pos = $length; + foreach ($this->language_data['ESCAPE_REGEXP'] as $escape_key => $regexp) { + $match_i = false; + if (isset($escape_regexp_cache_per_key[$escape_key]) && + ($escape_regexp_cache_per_key[$escape_key]['pos'] >= $start || + $escape_regexp_cache_per_key[$escape_key]['pos'] === false)) { + // we have already matched something + if ($escape_regexp_cache_per_key[$escape_key]['pos'] === false) { + // this comment is never matched + continue; + } + $match_i = $escape_regexp_cache_per_key[$escape_key]['pos']; + } elseif ( + //This is to allow use of the offset parameter in preg_match and stay as compatible with older PHP versions as possible + (GESHI_PHP_PRE_433 && preg_match($regexp, substr($part, $start), $match, PREG_OFFSET_CAPTURE)) || + (!GESHI_PHP_PRE_433 && preg_match($regexp, $part, $match, PREG_OFFSET_CAPTURE, $start)) + ) { + $match_i = $match[0][1]; + if (GESHI_PHP_PRE_433) { + $match_i += $start; + } + + $escape_regexp_cache_per_key[$escape_key] = array( + 'key' => $escape_key, + 'length' => strlen($match[0][0]), + 'pos' => $match_i + ); + } else { + $escape_regexp_cache_per_key[$escape_key]['pos'] = false; + continue; + } + + if ($match_i !== false && $match_i < $next_escape_regexp_pos) { + $next_escape_regexp_pos = $match_i; + $next_escape_regexp_key = $escape_key; + if ($match_i === $start) { + break; + } + } + } + } + + //Find the next simple escape position + if('' != $this->language_data['ESCAPE_CHAR']) { + $simple_escape = strpos($part, $this->language_data['ESCAPE_CHAR'], $start); + if(false === $simple_escape) { + $simple_escape = $length; + } + } else { + $simple_escape = $length; + } + } else { + $next_escape_regexp_pos = $length; + $simple_escape = $length; + } + + if($simple_escape < $next_escape_regexp_pos && + $simple_escape < $length && + $simple_escape < $close_pos) { + //The nexxt escape sequence is a simple one ... + $es_pos = $simple_escape; + + //Add the stuff not in the string yet ... + $string .= $this->hsc(substr($part, $start, $es_pos - $start)); + + //Get the style for this escaped char ... + if (!$this->use_classes) { + $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][0] . '"'; + } else { + $escape_char_attributes = ' class="es0"'; + } + + //Add the style for the escape char ... + $string .= "" . + GeSHi::hsc($this->language_data['ESCAPE_CHAR']); + + //Get the byte AFTER the ESCAPE_CHAR we just found + $es_char = $part[$es_pos + 1]; + if ($es_char == "\n") { + // don't put a newline around newlines + $string .= "\n"; + $start = $es_pos + 2; + } elseif (ord($es_char) >= 128) { + //This is an non-ASCII char (UTF8 or single byte) + //This code tries to work around SF#2037598 ... + if(function_exists('mb_substr')) { + $es_char_m = mb_substr(substr($part, $es_pos+1, 16), 0, 1, $this->encoding); + $string .= $es_char_m . ''; + } elseif (!GESHI_PHP_PRE_433 && 'utf-8' == $this->encoding) { + if(preg_match("/[\xC2-\xDF][\x80-\xBF]". + "|\xE0[\xA0-\xBF][\x80-\xBF]". + "|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}". + "|\xED[\x80-\x9F][\x80-\xBF]". + "|\xF0[\x90-\xBF][\x80-\xBF]{2}". + "|[\xF1-\xF3][\x80-\xBF]{3}". + "|\xF4[\x80-\x8F][\x80-\xBF]{2}/s", + $part, $es_char_m, null, $es_pos + 1)) { + $es_char_m = $es_char_m[0]; + } else { + $es_char_m = $es_char; + } + $string .= $this->hsc($es_char_m) . ''; + } else { + $es_char_m = $this->hsc($es_char); + } + $start = $es_pos + strlen($es_char_m) + 1; + } else { + $string .= $this->hsc($es_char) . ''; + $start = $es_pos + 2; + } + } elseif ($next_escape_regexp_pos < $length && + $next_escape_regexp_pos < $close_pos) { + $es_pos = $next_escape_regexp_pos; + //Add the stuff not in the string yet ... + $string .= $this->hsc(substr($part, $start, $es_pos - $start)); + + //Get the key and length of this match ... + $escape = $escape_regexp_cache_per_key[$next_escape_regexp_key]; + $escape_str = substr($part, $es_pos, $escape['length']); + $escape_key = $escape['key']; + + //Get the style for this escaped char ... + if (!$this->use_classes) { + $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][$escape_key] . '"'; + } else { + $escape_char_attributes = ' class="es' . $escape_key . '"'; + } + + //Add the style for the escape char ... + $string .= "" . + $this->hsc($escape_str) . ''; + + $start = $es_pos + $escape['length']; + } else { + //Copy the remainder of the string ... + $string .= $this->hsc(substr($part, $start, $close_pos - $start + $char_len)) . ''; + $start = $close_pos + $char_len; + $string_open = false; + } + } while($string_open); + + if ($check_linenumbers) { + // Are line numbers used? If, we should end the string before + // the newline and begin it again (so when
  • s are put in the source + // remains XHTML compliant) + // note to self: This opens up possibility of config files specifying + // that languages can/cannot have multiline strings??? + $string = str_replace("\n", "\n", $string); + } + + $result .= $string; + $string = ''; + $i = $start - 1; + continue; + } elseif ($this->lexic_permissions['STRINGS'] && $hq && $hq[0] == $char && + substr($part, $i, $hq_strlen) == $hq && ($i != $next_comment_regexp_pos)) { + // The start of a hard quoted string + if (!$this->use_classes) { + $string_attributes = ' style="' . $this->language_data['STYLES']['STRINGS']['HARD'] . '"'; + $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR']['HARD'] . '"'; + } else { + $string_attributes = ' class="st_h"'; + $escape_char_attributes = ' class="es_h"'; + } + // parse the stuff before this + $result .= $this->parse_non_string_part($stuff_to_parse); + $stuff_to_parse = ''; + + // now handle the string + $string = ''; + + // look for closing quote + $start = $i + $hq_strlen; + while ($close_pos = strpos($part, $this->language_data['HARDQUOTE'][1], $start)) { + $start = $close_pos + 1; + if ($this->lexic_permissions['ESCAPE_CHAR'] && $part[$close_pos - 1] == $this->language_data['HARDCHAR'] && + (($i + $hq_strlen) != ($close_pos))) { //Support empty string for HQ escapes if Starter = Escape + // make sure this quote is not escaped + foreach ($this->language_data['HARDESCAPE'] as $hardescape) { + if (substr($part, $close_pos - 1, strlen($hardescape)) == $hardescape) { + // check wether this quote is escaped or if it is something like '\\' + $escape_char_pos = $close_pos - 1; + while ($escape_char_pos > 0 + && $part[$escape_char_pos - 1] == $this->language_data['HARDCHAR']) { + --$escape_char_pos; + } + if (($close_pos - $escape_char_pos) & 1) { + // uneven number of escape chars => this quote is escaped + continue 2; + } + } + } + } + + // found closing quote + break; + } + + //Found the closing delimiter? + if (!$close_pos) { + // span till the end of this $part when no closing delimiter is found + $close_pos = $length; + } + + //Get the actual string + $string = substr($part, $i, $close_pos - $i + 1); + $i = $close_pos; + + // handle escape chars and encode html chars + // (special because when we have escape chars within our string they may not be escaped) + if ($this->lexic_permissions['ESCAPE_CHAR'] && $this->language_data['ESCAPE_CHAR']) { + $start = 0; + $new_string = ''; + while ($es_pos = strpos($string, $this->language_data['ESCAPE_CHAR'], $start)) { + // hmtl escape stuff before + $new_string .= $this->hsc(substr($string, $start, $es_pos - $start)); + // check if this is a hard escape + foreach ($this->language_data['HARDESCAPE'] as $hardescape) { + if (substr($string, $es_pos, strlen($hardescape)) == $hardescape) { + // indeed, this is a hardescape + $new_string .= "" . + $this->hsc($hardescape) . ''; + $start = $es_pos + strlen($hardescape); + continue 2; + } + } + // not a hard escape, but a normal escape + // they come in pairs of two + $c = 0; + while (isset($string[$es_pos + $c]) && isset($string[$es_pos + $c + 1]) + && $string[$es_pos + $c] == $this->language_data['ESCAPE_CHAR'] + && $string[$es_pos + $c + 1] == $this->language_data['ESCAPE_CHAR']) { + $c += 2; + } + if ($c) { + $new_string .= "" . + str_repeat($escaped_escape_char, $c) . + ''; + $start = $es_pos + $c; + } else { + // this is just a single lonely escape char... + $new_string .= $escaped_escape_char; + $start = $es_pos + 1; + } + } + $string = $new_string . $this->hsc(substr($string, $start)); + } else { + $string = $this->hsc($string); + } + + if ($check_linenumbers) { + // Are line numbers used? If, we should end the string before + // the newline and begin it again (so when
  • s are put in the source + // remains XHTML compliant) + // note to self: This opens up possibility of config files specifying + // that languages can/cannot have multiline strings??? + $string = str_replace("\n", "\n", $string); + } + + $result .= "" . $string . ''; + $string = ''; + continue; + } else { + //Have a look for regexp comments + if ($i == $next_comment_regexp_pos) { + $COMMENT_MATCHED = true; + $comment = $comment_regexp_cache_per_key[$next_comment_regexp_key]; + $test_str = $this->hsc(substr($part, $i, $comment['length'])); + + //@todo If remove important do remove here + if ($this->lexic_permissions['COMMENTS']['MULTI']) { + if (!$this->use_classes) { + $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS'][$comment['key']] . '"'; + } else { + $attributes = ' class="co' . $comment['key'] . '"'; + } + + $test_str = "" . $test_str . ""; + + // Short-cut through all the multiline code + if ($check_linenumbers) { + // strreplace to put close span and open span around multiline newlines + $test_str = str_replace( + "\n", "\n", + str_replace("\n ", "\n ", $test_str) + ); + } + } + + $i += $comment['length'] - 1; + + // parse the rest + $result .= $this->parse_non_string_part($stuff_to_parse); + $stuff_to_parse = ''; + } + + // If we haven't matched a regexp comment, try multi-line comments + if (!$COMMENT_MATCHED) { + // Is this a multiline comment? + if (!empty($this->language_data['COMMENT_MULTI']) && $next_comment_multi_pos < $i) { + $next_comment_multi_pos = $length; + foreach ($this->language_data['COMMENT_MULTI'] as $open => $close) { + $match_i = false; + if (isset($comment_multi_cache_per_key[$open]) && + ($comment_multi_cache_per_key[$open] >= $i || + $comment_multi_cache_per_key[$open] === false)) { + // we have already matched something + if ($comment_multi_cache_per_key[$open] === false) { + // this comment is never matched + continue; + } + $match_i = $comment_multi_cache_per_key[$open]; + } elseif (($match_i = stripos($part, $open, $i)) !== false) { + $comment_multi_cache_per_key[$open] = $match_i; + } else { + $comment_multi_cache_per_key[$open] = false; + continue; + } + if ($match_i !== false && $match_i < $next_comment_multi_pos) { + $next_comment_multi_pos = $match_i; + $next_open_comment_multi = $open; + if ($match_i === $i) { + break; + } + } + } + } + if ($i == $next_comment_multi_pos) { + $open = $next_open_comment_multi; + $close = $this->language_data['COMMENT_MULTI'][$open]; + $open_strlen = strlen($open); + $close_strlen = strlen($close); + $COMMENT_MATCHED = true; + $test_str_match = $open; + //@todo If remove important do remove here + if ($this->lexic_permissions['COMMENTS']['MULTI'] || + $open == GESHI_START_IMPORTANT) { + if ($open != GESHI_START_IMPORTANT) { + if (!$this->use_classes) { + $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS']['MULTI'] . '"'; + } else { + $attributes = ' class="coMULTI"'; + } + $test_str = "" . $this->hsc($open); + } else { + if (!$this->use_classes) { + $attributes = ' style="' . $this->important_styles . '"'; + } else { + $attributes = ' class="imp"'; + } + + // We don't include the start of the comment if it's an + // "important" part + $test_str = ""; + } + } else { + $test_str = $this->hsc($open); + } + + $close_pos = strpos( $part, $close, $i + $open_strlen ); + + if ($close_pos === false) { + $close_pos = $length; + } + + // Short-cut through all the multiline code + $rest_of_comment = $this->hsc(substr($part, $i + $open_strlen, $close_pos - $i - $open_strlen + $close_strlen)); + if (($this->lexic_permissions['COMMENTS']['MULTI'] || + $test_str_match == GESHI_START_IMPORTANT) && + $check_linenumbers) { + + // strreplace to put close span and open span around multiline newlines + $test_str .= str_replace( + "\n", "\n", + str_replace("\n ", "\n ", $rest_of_comment) + ); + } else { + $test_str .= $rest_of_comment; + } + + if ($this->lexic_permissions['COMMENTS']['MULTI'] || + $test_str_match == GESHI_START_IMPORTANT) { + $test_str .= ''; + } + + $i = $close_pos + $close_strlen - 1; + + // parse the rest + $result .= $this->parse_non_string_part($stuff_to_parse); + $stuff_to_parse = ''; + } + } + + // If we haven't matched a multiline comment, try single-line comments + if (!$COMMENT_MATCHED) { + // cache potential single line comment occurances + if (!empty($this->language_data['COMMENT_SINGLE']) && $next_comment_single_pos < $i) { + $next_comment_single_pos = $length; + foreach ($this->language_data['COMMENT_SINGLE'] as $comment_key => $comment_mark) { + $match_i = false; + if (isset($comment_single_cache_per_key[$comment_key]) && + ($comment_single_cache_per_key[$comment_key] >= $i || + $comment_single_cache_per_key[$comment_key] === false)) { + // we have already matched something + if ($comment_single_cache_per_key[$comment_key] === false) { + // this comment is never matched + continue; + } + $match_i = $comment_single_cache_per_key[$comment_key]; + } elseif ( + // case sensitive comments + ($this->language_data['CASE_SENSITIVE'][GESHI_COMMENTS] && + ($match_i = stripos($part, $comment_mark, $i)) !== false) || + // non case sensitive + (!$this->language_data['CASE_SENSITIVE'][GESHI_COMMENTS] && + (($match_i = strpos($part, $comment_mark, $i)) !== false))) { + $comment_single_cache_per_key[$comment_key] = $match_i; + } else { + $comment_single_cache_per_key[$comment_key] = false; + continue; + } + if ($match_i !== false && $match_i < $next_comment_single_pos) { + $next_comment_single_pos = $match_i; + $next_comment_single_key = $comment_key; + if ($match_i === $i) { + break; + } + } + } + } + if ($next_comment_single_pos == $i) { + $comment_key = $next_comment_single_key; + $comment_mark = $this->language_data['COMMENT_SINGLE'][$comment_key]; + $com_len = strlen($comment_mark); + + // This check will find special variables like $# in bash + // or compiler directives of Delphi beginning {$ + if ((empty($sc_disallowed_before) || ($i == 0) || + (false === strpos($sc_disallowed_before, $part[$i-1]))) && + (empty($sc_disallowed_after) || ($length <= $i + $com_len) || + (false === strpos($sc_disallowed_after, $part[$i + $com_len])))) + { + // this is a valid comment + $COMMENT_MATCHED = true; + if ($this->lexic_permissions['COMMENTS'][$comment_key]) { + if (!$this->use_classes) { + $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS'][$comment_key] . '"'; + } else { + $attributes = ' class="co' . $comment_key . '"'; + } + $test_str = "" . $this->hsc($this->change_case($comment_mark)); + } else { + $test_str = $this->hsc($comment_mark); + } + + //Check if this comment is the last in the source + $close_pos = strpos($part, "\n", $i); + $oops = false; + if ($close_pos === false) { + $close_pos = $length; + $oops = true; + } + $test_str .= $this->hsc(substr($part, $i + $com_len, $close_pos - $i - $com_len)); + if ($this->lexic_permissions['COMMENTS'][$comment_key]) { + $test_str .= ""; + } + + // Take into account that the comment might be the last in the source + if (!$oops) { + $test_str .= "\n"; + } + + $i = $close_pos; + + // parse the rest + $result .= $this->parse_non_string_part($stuff_to_parse); + $stuff_to_parse = ''; + } + } + } + } + + // Where are we adding this char? + if (!$COMMENT_MATCHED) { + $stuff_to_parse .= $char; + } else { + $result .= $test_str; + unset($test_str); + $COMMENT_MATCHED = false; + } + } + // Parse the last bit + $result .= $this->parse_non_string_part($stuff_to_parse); + $stuff_to_parse = ''; + } else { + $result .= $this->hsc($part); + } + // Close the that surrounds the block + if ($STRICTATTRS != '') { + $result = str_replace("\n", "\n", $result); + $result .= ''; + } + + $endresult .= $result; + unset($part, $parts[$key], $result); + } + + //This fix is related to SF#1923020, but has to be applied regardless of + //actually highlighting symbols. + /** NOTE: memorypeak #3 */ + $endresult = str_replace(array('', ''), array(';', '|'), $endresult); + +// // Parse the last stuff (redundant?) +// $result .= $this->parse_non_string_part($stuff_to_parse); + + // Lop off the very first and last spaces +// $result = substr($result, 1, -1); + + // We're finished: stop timing + $this->set_time($start_time, microtime()); + + $this->finalise($endresult); + return $endresult; + } + + /** + * Swaps out spaces and tabs for HTML indentation. Not needed if + * the code is in a pre block... + * + * @param string The source to indent (reference!) + * @since 1.0.0 + * @access private + */ + function indent(&$result) { + /// Replace tabs with the correct number of spaces + if (false !== strpos($result, "\t")) { + $lines = explode("\n", $result); + $result = null;//Save memory while we process the lines individually + $tab_width = $this->get_real_tab_width(); + $tab_string = ' ' . str_repeat(' ', $tab_width); + + for ($key = 0, $n = count($lines); $key < $n; $key++) { + $line = $lines[$key]; + if (false === strpos($line, "\t")) { + continue; + } + + $pos = 0; + $length = strlen($line); + $lines[$key] = ''; // reduce memory + + $IN_TAG = false; + for ($i = 0; $i < $length; ++$i) { + $char = $line[$i]; + // Simple engine to work out whether we're in a tag. + // If we are we modify $pos. This is so we ignore HTML + // in the line and only workout the tab replacement + // via the actual content of the string + // This test could be improved to include strings in the + // html so that < or > would be allowed in user's styles + // (e.g. quotes: '<' '>'; or similar) + if ($IN_TAG) { + if ('>' == $char) { + $IN_TAG = false; + } + $lines[$key] .= $char; + } elseif ('<' == $char) { + $IN_TAG = true; + $lines[$key] .= '<'; + } elseif ('&' == $char) { + $substr = substr($line, $i + 3, 5); + $posi = strpos($substr, ';'); + if (false === $posi) { + ++$pos; + } else { + $pos -= $posi+2; + } + $lines[$key] .= $char; + } elseif ("\t" == $char) { + $str = ''; + // OPTIMISE - move $strs out. Make an array: + // $tabs = array( + // 1 => ' ', + // 2 => '  ', + // 3 => '   ' etc etc + // to use instead of building a string every time + $tab_end_width = $tab_width - ($pos % $tab_width); //Moved out of the look as it doesn't change within the loop + if (($pos & 1) || 1 == $tab_end_width) { + $str .= substr($tab_string, 6, $tab_end_width); + } else { + $str .= substr($tab_string, 0, $tab_end_width+5); + } + $lines[$key] .= $str; + $pos += $tab_end_width; + + if (false === strpos($line, "\t", $i + 1)) { + $lines[$key] .= substr($line, $i + 1); + break; + } + } elseif (0 == $pos && ' ' == $char) { + $lines[$key] .= ' '; + ++$pos; + } else { + $lines[$key] .= $char; + ++$pos; + } + } + } + $result = implode("\n", $lines); + unset($lines);//We don't need the lines separated beyond this --- free them! + } + // Other whitespace + // BenBE: Fix to reduce the number of replacements to be done + $result = preg_replace('/^ /m', ' ', $result); + $result = str_replace(' ', '  ', $result); + + if ($this->line_numbers == GESHI_NO_LINE_NUMBERS && $this->header_type != GESHI_HEADER_PRE_TABLE) { + if ($this->line_ending === null) { + $result = nl2br($result); + } else { + $result = str_replace("\n", $this->line_ending, $result); + } + } + } + + /** + * Changes the case of a keyword for those languages where a change is asked for + * + * @param string The keyword to change the case of + * @return string The keyword with its case changed + * @since 1.0.0 + * @access private + */ + function change_case($instr) { + switch ($this->language_data['CASE_KEYWORDS']) { + case GESHI_CAPS_UPPER: + return strtoupper($instr); + case GESHI_CAPS_LOWER: + return strtolower($instr); + default: + return $instr; + } + } + + /** + * Handles replacements of keywords to include markup and links if requested + * + * @param string The keyword to add the Markup to + * @return The HTML for the match found + * @since 1.0.8 + * @access private + * + * @todo Get rid of ender in keyword links + */ + function handle_keyword_replace($match) { + $k = $this->_kw_replace_group; + $keyword = $match[0]; + $keyword_match = $match[1]; + + $before = ''; + $after = ''; + + if ($this->keyword_links) { + // Keyword links have been ebabled + + if (isset($this->language_data['URLS'][$k]) && + $this->language_data['URLS'][$k] != '') { + // There is a base group for this keyword + + // Old system: strtolower + //$keyword = ( $this->language_data['CASE_SENSITIVE'][$group] ) ? $keyword : strtolower($keyword); + // New system: get keyword from language file to get correct case + if (!$this->language_data['CASE_SENSITIVE'][$k] && + strpos($this->language_data['URLS'][$k], '{FNAME}') !== false) { + foreach ($this->language_data['KEYWORDS'][$k] as $word) { + if (strcasecmp($word, $keyword_match) == 0) { + break; + } + } + } else { + $word = $keyword_match; + } + + $before = '<|UR1|"' . + str_replace( + array( + '{FNAME}', + '{FNAMEL}', + '{FNAMEU}', + '.'), + array( + str_replace('+', '%20', urlencode($this->hsc($word))), + str_replace('+', '%20', urlencode($this->hsc(strtolower($word)))), + str_replace('+', '%20', urlencode($this->hsc(strtoupper($word)))), + ''), + $this->language_data['URLS'][$k] + ) . '">'; + $after = ''; + } + } + + return $before . '<|/'. $k .'/>' . $this->change_case($keyword) . '|>' . $after; + } + + /** + * handles regular expressions highlighting-definitions with callback functions + * + * @note this is a callback, don't use it directly + * + * @param array the matches array + * @return The highlighted string + * @since 1.0.8 + * @access private + */ + function handle_regexps_callback($matches) { + // before: "' style=\"' . call_user_func(\"$func\", '\\1') . '\"\\1|>'", + return ' style="' . call_user_func($this->language_data['STYLES']['REGEXPS'][$this->_rx_key], $matches[1]) . '"'. $matches[1] . '|>'; + } + + /** + * handles newlines in REGEXPS matches. Set the _hmr_* vars before calling this + * + * @note this is a callback, don't use it directly + * + * @param array the matches array + * @return string + * @since 1.0.8 + * @access private + */ + function handle_multiline_regexps($matches) { + $before = $this->_hmr_before; + $after = $this->_hmr_after; + if ($this->_hmr_replace) { + $replace = $this->_hmr_replace; + $search = array(); + + foreach (array_keys($matches) as $k) { + $search[] = '\\' . $k; + } + + $before = str_replace($search, $matches, $before); + $after = str_replace($search, $matches, $after); + $replace = str_replace($search, $matches, $replace); + } else { + $replace = $matches[0]; + } + return $before + . '<|!REG3XP' . $this->_hmr_key .'!>' + . str_replace("\n", "|>\n<|!REG3XP" . $this->_hmr_key . '!>', $replace) + . '|>' + . $after; + } + + /** + * Takes a string that has no strings or comments in it, and highlights + * stuff like keywords, numbers and methods. + * + * @param string The string to parse for keyword, numbers etc. + * @since 1.0.0 + * @access private + * @todo BUGGY! Why? Why not build string and return? + */ + function parse_non_string_part($stuff_to_parse) { + $stuff_to_parse = ' ' . $this->hsc($stuff_to_parse); + + // Highlight keywords + $disallowed_before = "(?lexic_permissions['STRINGS']) { + $quotemarks = preg_quote(implode($this->language_data['QUOTEMARKS']), '/'); + $disallowed_before .= $quotemarks; + $disallowed_after .= $quotemarks; + } + $disallowed_before .= "])"; + $disallowed_after .= "])"; + + $parser_control_pergroup = false; + if (isset($this->language_data['PARSER_CONTROL'])) { + if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'])) { + $x = 0; // check wether per-keyword-group parser_control is enabled + if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'])) { + $disallowed_before = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE']; + ++$x; + } + if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'])) { + $disallowed_after = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER']; + ++$x; + } + $parser_control_pergroup = (count($this->language_data['PARSER_CONTROL']['KEYWORDS']) - $x) > 0; + } + } + + foreach (array_keys($this->language_data['KEYWORDS']) as $k) { + if (!isset($this->lexic_permissions['KEYWORDS'][$k]) || + $this->lexic_permissions['KEYWORDS'][$k]) { + + $case_sensitive = $this->language_data['CASE_SENSITIVE'][$k]; + $modifiers = $case_sensitive ? '' : 'i'; + + // NEW in 1.0.8 - per-keyword-group parser control + $disallowed_before_local = $disallowed_before; + $disallowed_after_local = $disallowed_after; + if ($parser_control_pergroup && isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k])) { + if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_BEFORE'])) { + $disallowed_before_local = + $this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_BEFORE']; + } + + if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_AFTER'])) { + $disallowed_after_local = + $this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_AFTER']; + } + } + + $this->_kw_replace_group = $k; + + //NEW in 1.0.8, the cached regexp list + // since we don't want PHP / PCRE to crash due to too large patterns we split them into smaller chunks + for ($set = 0, $set_length = count($this->language_data['CACHED_KEYWORD_LISTS'][$k]); $set < $set_length; ++$set) { + $keywordset =& $this->language_data['CACHED_KEYWORD_LISTS'][$k][$set]; + // Might make a more unique string for putting the number in soon + // Basically, we don't put the styles in yet because then the styles themselves will + // get highlighted if the language has a CSS keyword in it (like CSS, for example ;)) + $stuff_to_parse = preg_replace_callback( + "/$disallowed_before_local({$keywordset})(?!\(?:htm|php|aspx?))$disallowed_after_local/$modifiers", + array($this, 'handle_keyword_replace'), + $stuff_to_parse + ); + } + } + } + + // Regular expressions + foreach ($this->language_data['REGEXPS'] as $key => $regexp) { + if ($this->lexic_permissions['REGEXPS'][$key]) { + if (is_array($regexp)) { + if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { + // produce valid HTML when we match multiple lines + $this->_hmr_replace = $regexp[GESHI_REPLACE]; + $this->_hmr_before = $regexp[GESHI_BEFORE]; + $this->_hmr_key = $key; + $this->_hmr_after = $regexp[GESHI_AFTER]; + $stuff_to_parse = preg_replace_callback( + "/" . $regexp[GESHI_SEARCH] . "/{$regexp[GESHI_MODIFIERS]}", + array($this, 'handle_multiline_regexps'), + $stuff_to_parse); + $this->_hmr_replace = false; + $this->_hmr_before = ''; + $this->_hmr_after = ''; + } else { + $stuff_to_parse = preg_replace( + '/' . $regexp[GESHI_SEARCH] . '/' . $regexp[GESHI_MODIFIERS], + $regexp[GESHI_BEFORE] . '<|!REG3XP'. $key .'!>' . $regexp[GESHI_REPLACE] . '|>' . $regexp[GESHI_AFTER], + $stuff_to_parse); + } + } else { + if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { + // produce valid HTML when we match multiple lines + $this->_hmr_key = $key; + $stuff_to_parse = preg_replace_callback( "/(" . $regexp . ")/", + array($this, 'handle_multiline_regexps'), $stuff_to_parse); + $this->_hmr_key = ''; + } else { + $stuff_to_parse = preg_replace( "/(" . $regexp . ")/", "<|!REG3XP$key!>\\1|>", $stuff_to_parse); + } + } + } + } + + // Highlight numbers. As of 1.0.8 we support different types of numbers + $numbers_found = false; + + if ($this->lexic_permissions['NUMBERS'] && preg_match($this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'], $stuff_to_parse )) { + $numbers_found = true; + + //For each of the formats ... + foreach($this->language_data['NUMBERS_RXCACHE'] as $id => $regexp) { + //Check if it should be highlighted ... + $stuff_to_parse = preg_replace($regexp, "<|/NUM!$id/>\\1|>", $stuff_to_parse); + } + } + + // + // Now that's all done, replace /[number]/ with the correct styles + // + foreach (array_keys($this->language_data['KEYWORDS']) as $k) { + if (!$this->use_classes) { + $attributes = ' style="' . + (isset($this->language_data['STYLES']['KEYWORDS'][$k]) ? + $this->language_data['STYLES']['KEYWORDS'][$k] : "") . '"'; + } else { + $attributes = ' class="kw' . $k . '"'; + } + $stuff_to_parse = str_replace("<|/$k/>", "<|$attributes>", $stuff_to_parse); + } + + if ($numbers_found) { + // Put number styles in + foreach($this->language_data['NUMBERS_RXCACHE'] as $id => $regexp) { + //Commented out for now, as this needs some review ... + // if ($numbers_permissions & $id) { + //Get the appropriate style ... + //Checking for unset styles is done by the style cache builder ... + if (!$this->use_classes) { + $attributes = ' style="' . $this->language_data['STYLES']['NUMBERS'][$id] . '"'; + } else { + $attributes = ' class="nu'.$id.'"'; + } + + //Set in the correct styles ... + $stuff_to_parse = str_replace("/NUM!$id/", $attributes, $stuff_to_parse); + // } + } + } + + // Highlight methods and fields in objects + if ($this->lexic_permissions['METHODS'] && $this->language_data['OOLANG']) { + $oolang_spaces = "[\s]*"; + $oolang_before = ""; + $oolang_after = "[a-zA-Z][a-zA-Z0-9_]*"; + if (isset($this->language_data['PARSER_CONTROL'])) { + if (isset($this->language_data['PARSER_CONTROL']['OOLANG'])) { + if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_BEFORE'])) { + $oolang_before = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_BEFORE']; + } + if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_AFTER'])) { + $oolang_after = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_AFTER']; + } + if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_SPACES'])) { + $oolang_spaces = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_SPACES']; + } + } + } + + foreach ($this->language_data['OBJECT_SPLITTERS'] as $key => $splitter) { + if (false !== strpos($stuff_to_parse, $splitter)) { + if (!$this->use_classes) { + $attributes = ' style="' . $this->language_data['STYLES']['METHODS'][$key] . '"'; + } else { + $attributes = ' class="me' . $key . '"'; + } + $stuff_to_parse = preg_replace("/($oolang_before)(" . preg_quote($this->language_data['OBJECT_SPLITTERS'][$key], '/') . ")($oolang_spaces)($oolang_after)/", "\\1\\2\\3<|$attributes>\\4|>", $stuff_to_parse); + } + } + } + + // + // Highlight brackets. Yes, I've tried adding a semi-colon to this list. + // You try it, and see what happens ;) + // TODO: Fix lexic permissions not converting entities if shouldn't + // be highlighting regardless + // + if ($this->lexic_permissions['BRACKETS']) { + $stuff_to_parse = str_replace( $this->language_data['CACHE_BRACKET_MATCH'], + $this->language_data['CACHE_BRACKET_REPLACE'], $stuff_to_parse ); + } + + + //FIX for symbol highlighting ... + if ($this->lexic_permissions['SYMBOLS'] && !empty($this->language_data['SYMBOLS'])) { + //Get all matches and throw away those witin a block that is already highlighted... (i.e. matched by a regexp) + $n_symbols = preg_match_all("/<\|(?:|[^>])+>(?:(?!\|>).*?)\|>|<\/a>|(?:" . $this->language_data['SYMBOL_SEARCH'] . ")+(?![^<]+?>)/", $stuff_to_parse, $pot_symbols, PREG_OFFSET_CAPTURE | PREG_SET_ORDER); + $global_offset = 0; + for ($s_id = 0; $s_id < $n_symbols; ++$s_id) { + $symbol_match = $pot_symbols[$s_id][0][0]; + if (strpos($symbol_match, '<') !== false || strpos($symbol_match, '>') !== false) { + // already highlighted blocks _must_ include either < or > + // so if this conditional applies, we have to skip this match + // BenBE: UNLESS the block contains or + if(strpos($symbol_match, '') === false && + strpos($symbol_match, '') === false) { + continue; + } + } + + // if we reach this point, we have a valid match which needs to be highlighted + + $symbol_length = strlen($symbol_match); + $symbol_offset = $pot_symbols[$s_id][0][1]; + unset($pot_symbols[$s_id]); + $symbol_end = $symbol_length + $symbol_offset; + $symbol_hl = ""; + + // if we have multiple styles, we have to handle them properly + if ($this->language_data['MULTIPLE_SYMBOL_GROUPS']) { + $old_sym = -1; + // Split the current stuff to replace into its atomic symbols ... + preg_match_all("/" . $this->language_data['SYMBOL_SEARCH'] . "/", $symbol_match, $sym_match_syms, PREG_PATTERN_ORDER); + foreach ($sym_match_syms[0] as $sym_ms) { + //Check if consequtive symbols belong to the same group to save output ... + if (isset($this->language_data['SYMBOL_DATA'][$sym_ms]) + && ($this->language_data['SYMBOL_DATA'][$sym_ms] != $old_sym)) { + if (-1 != $old_sym) { + $symbol_hl .= "|>"; + } + $old_sym = $this->language_data['SYMBOL_DATA'][$sym_ms]; + if (!$this->use_classes) { + $symbol_hl .= '<| style="' . $this->language_data['STYLES']['SYMBOLS'][$old_sym] . '">'; + } else { + $symbol_hl .= '<| class="sy' . $old_sym . '">'; + } + } + $symbol_hl .= $sym_ms; + } + unset($sym_match_syms); + + //Close remaining tags and insert the replacement at the right position ... + //Take caution if symbol_hl is empty to avoid doubled closing spans. + if (-1 != $old_sym) { + $symbol_hl .= "|>"; + } + } else { + if (!$this->use_classes) { + $symbol_hl = '<| style="' . $this->language_data['STYLES']['SYMBOLS'][0] . '">'; + } else { + $symbol_hl = '<| class="sy0">'; + } + $symbol_hl .= $symbol_match . '|>'; + } + + $stuff_to_parse = substr_replace($stuff_to_parse, $symbol_hl, $symbol_offset + $global_offset, $symbol_length); + + // since we replace old text with something of different size, + // we'll have to keep track of the differences + $global_offset += strlen($symbol_hl) - $symbol_length; + } + } + //FIX for symbol highlighting ... + + // Add class/style for regexps + foreach (array_keys($this->language_data['REGEXPS']) as $key) { + if ($this->lexic_permissions['REGEXPS'][$key]) { + if (is_callable($this->language_data['STYLES']['REGEXPS'][$key])) { + $this->_rx_key = $key; + $stuff_to_parse = preg_replace_callback("/!REG3XP$key!(.*)\|>/U", + array($this, 'handle_regexps_callback'), + $stuff_to_parse); + } else { + if (!$this->use_classes) { + $attributes = ' style="' . $this->language_data['STYLES']['REGEXPS'][$key] . '"'; + } else { + if (is_array($this->language_data['REGEXPS'][$key]) && + array_key_exists(GESHI_CLASS, $this->language_data['REGEXPS'][$key])) { + $attributes = ' class="' . + $this->language_data['REGEXPS'][$key][GESHI_CLASS] . '"'; + } else { + $attributes = ' class="re' . $key . '"'; + } + } + $stuff_to_parse = str_replace("!REG3XP$key!", "$attributes", $stuff_to_parse); + } + } + } + + // Replace with . for urls + $stuff_to_parse = str_replace('', '.', $stuff_to_parse); + // Replace <|UR1| with link_styles[GESHI_LINK])) { + if ($this->use_classes) { + $stuff_to_parse = str_replace('<|UR1|', 'link_target . ' href=', $stuff_to_parse); + } else { + $stuff_to_parse = str_replace('<|UR1|', 'link_target . ' style="' . $this->link_styles[GESHI_LINK] . '" href=', $stuff_to_parse); + } + } else { + $stuff_to_parse = str_replace('<|UR1|', 'link_target . ' href=', $stuff_to_parse); + } + + // + // NOW we add the span thingy ;) + // + + $stuff_to_parse = str_replace('<|', '', '', $stuff_to_parse ); + return substr($stuff_to_parse, 1); + } + + /** + * Sets the time taken to parse the code + * + * @param microtime The time when parsing started + * @param microtime The time when parsing ended + * @since 1.0.2 + * @access private + */ + function set_time($start_time, $end_time) { + $start = explode(' ', $start_time); + $end = explode(' ', $end_time); + $this->time = $end[0] + $end[1] - $start[0] - $start[1]; + } + + /** + * Gets the time taken to parse the code + * + * @return double The time taken to parse the code + * @since 1.0.2 + */ + function get_time() { + return $this->time; + } + + /** + * Merges arrays recursively, overwriting values of the first array with values of later arrays + * + * @since 1.0.8 + * @access private + */ + function merge_arrays() { + $arrays = func_get_args(); + $narrays = count($arrays); + + // check arguments + // comment out if more performance is necessary (in this case the foreach loop will trigger a warning if the argument is not an array) + for ($i = 0; $i < $narrays; $i ++) { + if (!is_array($arrays[$i])) { + // also array_merge_recursive returns nothing in this case + trigger_error('Argument #' . ($i+1) . ' is not an array - trying to merge array with scalar! Returning false!', E_USER_WARNING); + return false; + } + } + + // the first array is in the output set in every case + $ret = $arrays[0]; + + // merege $ret with the remaining arrays + for ($i = 1; $i < $narrays; $i ++) { + foreach ($arrays[$i] as $key => $value) { + if (is_array($value) && isset($ret[$key])) { + // if $ret[$key] is not an array you try to merge an scalar value with an array - the result is not defined (incompatible arrays) + // in this case the call will trigger an E_USER_WARNING and the $ret[$key] will be false. + $ret[$key] = $this->merge_arrays($ret[$key], $value); + } else { + $ret[$key] = $value; + } + } + } + + return $ret; + } + + /** + * Gets language information and stores it for later use + * + * @param string The filename of the language file you want to load + * @since 1.0.0 + * @access private + * @todo Needs to load keys for lexic permissions for keywords, regexps etc + */ + function load_language($file_name) { + if ($file_name == $this->loaded_language) { + // this file is already loaded! + return; + } + + //Prepare some stuff before actually loading the language file + $this->loaded_language = $file_name; + $this->parse_cache_built = false; + $this->enable_highlighting(); + $language_data = array(); + + //Load the language file + require $file_name; + + // Perhaps some checking might be added here later to check that + // $language data is a valid thing but maybe not + $this->language_data = $language_data; + + // Set strict mode if should be set + $this->strict_mode = $this->language_data['STRICT_MODE_APPLIES']; + + // Set permissions for all lexics to true + // so they'll be highlighted by default + foreach (array_keys($this->language_data['KEYWORDS']) as $key) { + if (!empty($this->language_data['KEYWORDS'][$key])) { + $this->lexic_permissions['KEYWORDS'][$key] = true; + } else { + $this->lexic_permissions['KEYWORDS'][$key] = false; + } + } + + foreach (array_keys($this->language_data['COMMENT_SINGLE']) as $key) { + $this->lexic_permissions['COMMENTS'][$key] = true; + } + foreach (array_keys($this->language_data['REGEXPS']) as $key) { + $this->lexic_permissions['REGEXPS'][$key] = true; + } + + // for BenBE and future code reviews: + // we can use empty here since we only check for existance and emptiness of an array + // if it is not an array at all but rather false or null this will work as intended as well + // even if $this->language_data['PARSER_CONTROL'] is undefined this won't trigger a notice + if (!empty($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS'])) { + foreach ($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS'] as $flag => $value) { + // it's either true or false and maybe is true as well + $perm = $value !== GESHI_NEVER; + if ($flag == 'ALL') { + $this->enable_highlighting($perm); + continue; + } + if (!isset($this->lexic_permissions[$flag])) { + // unknown lexic permission + continue; + } + if (is_array($this->lexic_permissions[$flag])) { + foreach ($this->lexic_permissions[$flag] as $key => $val) { + $this->lexic_permissions[$flag][$key] = $perm; + } + } else { + $this->lexic_permissions[$flag] = $perm; + } + } + unset($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS']); + } + + //Fix: Problem where hardescapes weren't handled if no ESCAPE_CHAR was given + //You need to set one for HARDESCAPES only in this case. + if(!isset($this->language_data['HARDCHAR'])) { + $this->language_data['HARDCHAR'] = $this->language_data['ESCAPE_CHAR']; + } + + //NEW in 1.0.8: Allow styles to be loaded from a separate file to override defaults + $style_filename = substr($file_name, 0, -4) . '.style.php'; + if (is_readable($style_filename)) { + //Clear any style_data that could have been set before ... + if (isset($style_data)) { + unset($style_data); + } + + //Read the Style Information from the style file + include $style_filename; + + //Apply the new styles to our current language styles + if (isset($style_data) && is_array($style_data)) { + $this->language_data['STYLES'] = + $this->merge_arrays($this->language_data['STYLES'], $style_data); + } + } + } + + /** + * Takes the parsed code and various options, and creates the HTML + * surrounding it to make it look nice. + * + * @param string The code already parsed (reference!) + * @since 1.0.0 + * @access private + */ + function finalise(&$parsed_code) { + // Remove end parts of important declarations + // This is BUGGY!! My fault for bad code: fix coming in 1.2 + // @todo Remove this crap + if ($this->enable_important_blocks && + (strpos($parsed_code, $this->hsc(GESHI_START_IMPORTANT)) === false)) { + $parsed_code = str_replace($this->hsc(GESHI_END_IMPORTANT), '', $parsed_code); + } + + // Add HTML whitespace stuff if we're using the
    header + if ($this->header_type != GESHI_HEADER_PRE && $this->header_type != GESHI_HEADER_PRE_VALID) { + $this->indent($parsed_code); + } + + // purge some unnecessary stuff + /** NOTE: memorypeak #1 */ + $parsed_code = preg_replace('#]+>(\s*)#', '\\1', $parsed_code); + + // If we are using IDs for line numbers, there needs to be an overall + // ID set to prevent collisions. + if ($this->add_ids && !$this->overall_id) { + $this->overall_id = 'geshi-' . substr(md5(microtime()), 0, 4); + } + + // Get code into lines + /** NOTE: memorypeak #2 */ + $code = explode("\n", $parsed_code); + $parsed_code = $this->header(); + + // If we're using line numbers, we insert
  • s and appropriate + // markup to style them (otherwise we don't need to do anything) + if ($this->line_numbers != GESHI_NO_LINE_NUMBERS && $this->header_type != GESHI_HEADER_PRE_TABLE) { + // If we're using the
     header, we shouldn't add newlines because
    +            // the 
     will line-break them (and the 
  • s already do this for us) + $ls = ($this->header_type != GESHI_HEADER_PRE && $this->header_type != GESHI_HEADER_PRE_VALID) ? "\n" : ''; + + // Set vars to defaults for following loop + $i = 0; + + // Foreach line... + for ($i = 0, $n = count($code); $i < $n;) { + //Reset the attributes for a new line ... + $attrs = array(); + + // Make lines have at least one space in them if they're empty + // BenBE: Checking emptiness using trim instead of relying on blanks + if ('' == trim($code[$i])) { + $code[$i] = ' '; + } + + // If this is a "special line"... + if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS && + $i % $this->line_nth_row == ($this->line_nth_row - 1)) { + // Set the attributes to style the line + if ($this->use_classes) { + //$attr = ' class="li2"'; + $attrs['class'][] = 'li2'; + $def_attr = ' class="de2"'; + } else { + //$attr = ' style="' . $this->line_style2 . '"'; + $attrs['style'][] = $this->line_style2; + // This style "covers up" the special styles set for special lines + // so that styles applied to special lines don't apply to the actual + // code on that line + $def_attr = ' style="' . $this->code_style . '"'; + } + } else { + if ($this->use_classes) { + //$attr = ' class="li1"'; + $attrs['class'][] = 'li1'; + $def_attr = ' class="de1"'; + } else { + //$attr = ' style="' . $this->line_style1 . '"'; + $attrs['style'][] = $this->line_style1; + $def_attr = ' style="' . $this->code_style . '"'; + } + } + + //Check which type of tag to insert for this line + if ($this->header_type == GESHI_HEADER_PRE_VALID) { + $start = ""; + $end = '
  • '; + } else { + // Span or div? + $start = ""; + $end = ''; + } + + ++$i; + + // Are we supposed to use ids? If so, add them + if ($this->add_ids) { + $attrs['id'][] = "$this->overall_id-$i"; + } + + //Is this some line with extra styles??? + if (in_array($i, $this->highlight_extra_lines)) { + if ($this->use_classes) { + if (isset($this->highlight_extra_lines_styles[$i])) { + $attrs['class'][] = "lx$i"; + } else { + $attrs['class'][] = "ln-xtra"; + } + } else { + array_push($attrs['style'], $this->get_line_style($i)); + } + } + + // Add in the line surrounded by appropriate list HTML + $attr_string = ''; + foreach ($attrs as $key => $attr) { + $attr_string .= ' ' . $key . '="' . implode(' ', $attr) . '"'; + } + + $parsed_code .= "$start{$code[$i-1]}$end
  • $ls"; + unset($code[$i - 1]); + } + } else { + $n = count($code); + if ($this->use_classes) { + $attributes = ' class="de1"'; + } else { + $attributes = ' style="'. $this->code_style .'"'; + } + if ($this->header_type == GESHI_HEADER_PRE_VALID) { + $parsed_code .= ''; + } elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) { + if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { + if ($this->use_classes) { + $attrs = ' class="ln"'; + } else { + $attrs = ' style="'. $this->table_linenumber_style .'"'; + } + $parsed_code .= ''; + // get linenumbers + // we don't merge it with the for below, since it should be better for + // memory consumption this way + // @todo: but... actually it would still be somewhat nice to merge the two loops + // the mem peaks are at different positions + for ($i = 0; $i < $n; ++$i) { + $close = 0; + // fancy lines + if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS && + $i % $this->line_nth_row == ($this->line_nth_row - 1)) { + // Set the attributes to style the line + if ($this->use_classes) { + $parsed_code .= ''; + } else { + // This style "covers up" the special styles set for special lines + // so that styles applied to special lines don't apply to the actual + // code on that line + $parsed_code .= '' + .''; + } + $close += 2; + } + //Is this some line with extra styles??? + if (in_array($i + 1, $this->highlight_extra_lines)) { + if ($this->use_classes) { + if (isset($this->highlight_extra_lines_styles[$i])) { + $parsed_code .= ""; + } else { + $parsed_code .= ""; + } + } else { + $parsed_code .= "get_line_style($i) . "\">"; + } + ++$close; + } + $parsed_code .= $this->line_numbers_start + $i; + if ($close) { + $parsed_code .= str_repeat('', $close); + } elseif ($i != $n) { + $parsed_code .= "\n"; + } + } + $parsed_code .= ''; + } + $parsed_code .= ''; + } + // No line numbers, but still need to handle highlighting lines extra. + // Have to use divs so the full width of the code is highlighted + $close = 0; + for ($i = 0; $i < $n; ++$i) { + // Make lines have at least one space in them if they're empty + // BenBE: Checking emptiness using trim instead of relying on blanks + if ('' == trim($code[$i])) { + $code[$i] = ' '; + } + // fancy lines + if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS && + $i % $this->line_nth_row == ($this->line_nth_row - 1)) { + // Set the attributes to style the line + if ($this->use_classes) { + $parsed_code .= ''; + } else { + // This style "covers up" the special styles set for special lines + // so that styles applied to special lines don't apply to the actual + // code on that line + $parsed_code .= '' + .''; + } + $close += 2; + } + //Is this some line with extra styles??? + if (in_array($i + 1, $this->highlight_extra_lines)) { + if ($this->use_classes) { + if (isset($this->highlight_extra_lines_styles[$i])) { + $parsed_code .= ""; + } else { + $parsed_code .= ""; + } + } else { + $parsed_code .= "get_line_style($i) . "\">"; + } + ++$close; + } + + $parsed_code .= $code[$i]; + + if ($close) { + $parsed_code .= str_repeat('', $close); + $close = 0; + } + elseif ($i + 1 < $n) { + $parsed_code .= "\n"; + } + unset($code[$i]); + } + + if ($this->header_type == GESHI_HEADER_PRE_VALID || $this->header_type == GESHI_HEADER_PRE_TABLE) { + $parsed_code .= ''; + } + if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) { + $parsed_code .= ''; + } + } + + $parsed_code .= $this->footer(); + } + + /** + * Creates the header for the code block (with correct attributes) + * + * @return string The header for the code block + * @since 1.0.0 + * @access private + */ + function header() { + // Get attributes needed + /** + * @todo Document behaviour change - class is outputted regardless of whether + * we're using classes or not. Same with style + */ + $attributes = ' class="' . $this->_genCSSName($this->language); + if ($this->overall_class != '') { + $attributes .= " ".$this->_genCSSName($this->overall_class); + } + $attributes .= '"'; + + if ($this->overall_id != '') { + $attributes .= " id=\"{$this->overall_id}\""; + } + if ($this->overall_style != '' && !$this->use_classes) { + $attributes .= ' style="' . $this->overall_style . '"'; + } + + $ol_attributes = ''; + + if ($this->line_numbers_start != 1) { + $ol_attributes .= ' start="' . $this->line_numbers_start . '"'; + } + + // Get the header HTML + $header = $this->header_content; + if ($header) { + if ($this->header_type == GESHI_HEADER_PRE || $this->header_type == GESHI_HEADER_PRE_VALID) { + $header = str_replace("\n", '', $header); + } + $header = $this->replace_keywords($header); + + if ($this->use_classes) { + $attr = ' class="head"'; + } else { + $attr = " style=\"{$this->header_content_style}\""; + } + if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) { + $header = "$header"; + } else { + $header = "$header"; + } + } + + if (GESHI_HEADER_NONE == $this->header_type) { + if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { + return "$header"; + } + return $header . ($this->force_code_block ? '
    ' : ''); + } + + // Work out what to return and do it + if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { + if ($this->header_type == GESHI_HEADER_PRE) { + return "$header"; + } elseif ($this->header_type == GESHI_HEADER_DIV || + $this->header_type == GESHI_HEADER_PRE_VALID) { + return "$header"; + } elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) { + return "$header"; + } + } else { + if ($this->header_type == GESHI_HEADER_PRE) { + return "$header" . + ($this->force_code_block ? '
    ' : ''); + } else { + return "$header" . + ($this->force_code_block ? '
    ' : ''); + } + } + } + + /** + * Returns the footer for the code block. + * + * @return string The footer for the code block + * @since 1.0.0 + * @access private + */ + function footer() { + $footer = $this->footer_content; + if ($footer) { + if ($this->header_type == GESHI_HEADER_PRE) { + $footer = str_replace("\n", '', $footer);; + } + $footer = $this->replace_keywords($footer); + + if ($this->use_classes) { + $attr = ' class="foot"'; + } else { + $attr = " style=\"{$this->footer_content_style}\""; + } + if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) { + $footer = "$footer"; + } else { + $footer = "$footer
    "; + } + } + + if (GESHI_HEADER_NONE == $this->header_type) { + return ($this->line_numbers != GESHI_NO_LINE_NUMBERS) ? '' . $footer : $footer; + } + + if ($this->header_type == GESHI_HEADER_DIV || $this->header_type == GESHI_HEADER_PRE_VALID) { + if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { + return "$footer
    "; + } + return ($this->force_code_block ? '
    ' : '') . + "$footer"; + } + elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) { + if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { + return "$footer"; + } + return ($this->force_code_block ? '' : '') . + "$footer"; + } + else { + if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) { + return "$footer"; + } + return ($this->force_code_block ? '' : '') . + "$footer"; + } + } + + /** + * Replaces certain keywords in the header and footer with + * certain configuration values + * + * @param string The header or footer content to do replacement on + * @return string The header or footer with replaced keywords + * @since 1.0.2 + * @access private + */ + function replace_keywords($instr) { + $keywords = $replacements = array(); + + $keywords[] = '
      to have no effect at all if there are line numbers + // (
        s have margins that should be destroyed so all layout is + // controlled by the set_overall_style method, which works on the + //
         or 
        container). Additionally, set default styles for lines + if (!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) { + //$stylesheet .= "$selector, {$selector}ol, {$selector}ol li {margin: 0;}\n"; + $stylesheet .= "$selector.de1, $selector.de2 {{$this->code_style}}\n"; + } + + // Add overall styles + // note: neglect economy_mode, empty styles are meaningless + if ($this->overall_style != '') { + $stylesheet .= "$selector {{$this->overall_style}}\n"; + } + + // Add styles for links + // note: economy mode does not make _any_ sense here + // either the style is empty and thus no selector is needed + // or the appropriate key is given. + foreach ($this->link_styles as $key => $style) { + if ($style != '') { + switch ($key) { + case GESHI_LINK: + $stylesheet .= "{$selector}a:link {{$style}}\n"; + break; + case GESHI_HOVER: + $stylesheet .= "{$selector}a:hover {{$style}}\n"; + break; + case GESHI_ACTIVE: + $stylesheet .= "{$selector}a:active {{$style}}\n"; + break; + case GESHI_VISITED: + $stylesheet .= "{$selector}a:visited {{$style}}\n"; + break; + } + } + } + + // Header and footer + // note: neglect economy_mode, empty styles are meaningless + if ($this->header_content_style != '') { + $stylesheet .= "$selector.head {{$this->header_content_style}}\n"; + } + if ($this->footer_content_style != '') { + $stylesheet .= "$selector.foot {{$this->footer_content_style}}\n"; + } + + // Styles for important stuff + // note: neglect economy_mode, empty styles are meaningless + if ($this->important_styles != '') { + $stylesheet .= "$selector.imp {{$this->important_styles}}\n"; + } + + // Simple line number styles + if ((!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) && $this->line_style1 != '') { + $stylesheet .= "{$selector}li, {$selector}.li1 {{$this->line_style1}}\n"; + } + if ((!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) && $this->table_linenumber_style != '') { + $stylesheet .= "{$selector}.ln {{$this->table_linenumber_style}}\n"; + } + // If there is a style set for fancy line numbers, echo it out + if ((!$economy_mode || $this->line_numbers == GESHI_FANCY_LINE_NUMBERS) && $this->line_style2 != '') { + $stylesheet .= "{$selector}.li2 {{$this->line_style2}}\n"; + } + + // note: empty styles are meaningless + foreach ($this->language_data['STYLES']['KEYWORDS'] as $group => $styles) { + if ($styles != '' && (!$economy_mode || + (isset($this->lexic_permissions['KEYWORDS'][$group]) && + $this->lexic_permissions['KEYWORDS'][$group]))) { + $stylesheet .= "$selector.kw$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['COMMENTS'] as $group => $styles) { + if ($styles != '' && (!$economy_mode || + (isset($this->lexic_permissions['COMMENTS'][$group]) && + $this->lexic_permissions['COMMENTS'][$group]) || + (!empty($this->language_data['COMMENT_REGEXP']) && + !empty($this->language_data['COMMENT_REGEXP'][$group])))) { + $stylesheet .= "$selector.co$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['ESCAPE_CHAR'] as $group => $styles) { + if ($styles != '' && (!$economy_mode || $this->lexic_permissions['ESCAPE_CHAR'])) { + // NEW: since 1.0.8 we have to handle hardescapes + if ($group === 'HARD') { + $group = '_h'; + } + $stylesheet .= "$selector.es$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['BRACKETS'] as $group => $styles) { + if ($styles != '' && (!$economy_mode || $this->lexic_permissions['BRACKETS'])) { + $stylesheet .= "$selector.br$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['SYMBOLS'] as $group => $styles) { + if ($styles != '' && (!$economy_mode || $this->lexic_permissions['SYMBOLS'])) { + $stylesheet .= "$selector.sy$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['STRINGS'] as $group => $styles) { + if ($styles != '' && (!$economy_mode || $this->lexic_permissions['STRINGS'])) { + // NEW: since 1.0.8 we have to handle hardquotes + if ($group === 'HARD') { + $group = '_h'; + } + $stylesheet .= "$selector.st$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['NUMBERS'] as $group => $styles) { + if ($styles != '' && (!$economy_mode || $this->lexic_permissions['NUMBERS'])) { + $stylesheet .= "$selector.nu$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['METHODS'] as $group => $styles) { + if ($styles != '' && (!$economy_mode || $this->lexic_permissions['METHODS'])) { + $stylesheet .= "$selector.me$group {{$styles}}\n"; + } + } + // note: neglect economy_mode, empty styles are meaningless + foreach ($this->language_data['STYLES']['SCRIPT'] as $group => $styles) { + if ($styles != '') { + $stylesheet .= "$selector.sc$group {{$styles}}\n"; + } + } + foreach ($this->language_data['STYLES']['REGEXPS'] as $group => $styles) { + if ($styles != '' && (!$economy_mode || + (isset($this->lexic_permissions['REGEXPS'][$group]) && + $this->lexic_permissions['REGEXPS'][$group]))) { + if (is_array($this->language_data['REGEXPS'][$group]) && + array_key_exists(GESHI_CLASS, $this->language_data['REGEXPS'][$group])) { + $stylesheet .= "$selector."; + $stylesheet .= $this->language_data['REGEXPS'][$group][GESHI_CLASS]; + $stylesheet .= " {{$styles}}\n"; + } else { + $stylesheet .= "$selector.re$group {{$styles}}\n"; + } + } + } + // Styles for lines being highlighted extra + if (!$economy_mode || (count($this->highlight_extra_lines)!=count($this->highlight_extra_lines_styles))) { + $stylesheet .= "{$selector}.ln-xtra, {$selector}li.ln-xtra, {$selector}div.ln-xtra {{$this->highlight_extra_lines_style}}\n"; + } + $stylesheet .= "{$selector}span.xtra { display:block; }\n"; + foreach ($this->highlight_extra_lines_styles as $lineid => $linestyle) { + $stylesheet .= "{$selector}.lx$lineid, {$selector}li.lx$lineid, {$selector}div.lx$lineid {{$linestyle}}\n"; + } + + return $stylesheet; + } + + /** + * Get's the style that is used for the specified line + * + * @param int The line number information is requested for + * @access private + * @since 1.0.7.21 + */ + function get_line_style($line) { + //$style = null; + $style = null; + if (isset($this->highlight_extra_lines_styles[$line])) { + $style = $this->highlight_extra_lines_styles[$line]; + } else { // if no "extra" style assigned + $style = $this->highlight_extra_lines_style; + } + + return $style; + } + + /** + * this functions creates an optimized regular expression list + * of an array of strings. + * + * Example: + * $list = array('faa', 'foo', 'foobar'); + * => string 'f(aa|oo(bar)?)' + * + * @param $list array of (unquoted) strings + * @param $regexp_delimiter your regular expression delimiter, @see preg_quote() + * @return string for regular expression + * @author Milian Wolff + * @since 1.0.8 + * @access private + */ + function optimize_regexp_list($list, $regexp_delimiter = '/') { + $regex_chars = array('.', '\\', '+', '-', '*', '?', '[', '^', ']', '$', + '(', ')', '{', '}', '=', '!', '<', '>', '|', ':', $regexp_delimiter); + sort($list); + $regexp_list = array(''); + $num_subpatterns = 0; + $list_key = 0; + + // the tokens which we will use to generate the regexp list + $tokens = array(); + $prev_keys = array(); + // go through all entries of the list and generate the token list + $cur_len = 0; + for ($i = 0, $i_max = count($list); $i < $i_max; ++$i) { + if ($cur_len > GESHI_MAX_PCRE_LENGTH) { + // seems like the length of this pcre is growing exorbitantly + $regexp_list[++$list_key] = $this->_optimize_regexp_list_tokens_to_string($tokens); + $num_subpatterns = substr_count($regexp_list[$list_key], '(?:'); + $tokens = array(); + $cur_len = 0; + } + $level = 0; + $entry = preg_quote((string) $list[$i], $regexp_delimiter); + $pointer = &$tokens; + // properly assign the new entry to the correct position in the token array + // possibly generate smaller common denominator keys + while (true) { + // get the common denominator + if (isset($prev_keys[$level])) { + if ($prev_keys[$level] == $entry) { + // this is a duplicate entry, skip it + continue 2; + } + $char = 0; + while (isset($entry[$char]) && isset($prev_keys[$level][$char]) + && $entry[$char] == $prev_keys[$level][$char]) { + ++$char; + } + if ($char > 0) { + // this entry has at least some chars in common with the current key + if ($char == strlen($prev_keys[$level])) { + // current key is totally matched, i.e. this entry has just some bits appended + $pointer = &$pointer[$prev_keys[$level]]; + } else { + // only part of the keys match + $new_key_part1 = substr($prev_keys[$level], 0, $char); + $new_key_part2 = substr($prev_keys[$level], $char); + + if (in_array($new_key_part1[0], $regex_chars) + || in_array($new_key_part2[0], $regex_chars)) { + // this is bad, a regex char as first character + $pointer[$entry] = array('' => true); + array_splice($prev_keys, $level, count($prev_keys), $entry); + $cur_len += strlen($entry); + continue; + } else { + // relocate previous tokens + $pointer[$new_key_part1] = array($new_key_part2 => $pointer[$prev_keys[$level]]); + unset($pointer[$prev_keys[$level]]); + $pointer = &$pointer[$new_key_part1]; + // recreate key index + array_splice($prev_keys, $level, count($prev_keys), array($new_key_part1, $new_key_part2)); + $cur_len += strlen($new_key_part2); + } + } + ++$level; + $entry = substr($entry, $char); + continue; + } + // else: fall trough, i.e. no common denominator was found + } + if ($level == 0 && !empty($tokens)) { + // we can dump current tokens into the string and throw them away afterwards + $new_entry = $this->_optimize_regexp_list_tokens_to_string($tokens); + $new_subpatterns = substr_count($new_entry, '(?:'); + if (GESHI_MAX_PCRE_SUBPATTERNS && $num_subpatterns + $new_subpatterns > GESHI_MAX_PCRE_SUBPATTERNS) { + $regexp_list[++$list_key] = $new_entry; + $num_subpatterns = $new_subpatterns; + } else { + if (!empty($regexp_list[$list_key])) { + $new_entry = '|' . $new_entry; + } + $regexp_list[$list_key] .= $new_entry; + $num_subpatterns += $new_subpatterns; + } + $tokens = array(); + $cur_len = 0; + } + // no further common denominator found + $pointer[$entry] = array('' => true); + array_splice($prev_keys, $level, count($prev_keys), $entry); + + $cur_len += strlen($entry); + break; + } + unset($list[$i]); + } + // make sure the last tokens get converted as well + $new_entry = $this->_optimize_regexp_list_tokens_to_string($tokens); + if (GESHI_MAX_PCRE_SUBPATTERNS && $num_subpatterns + substr_count($new_entry, '(?:') > GESHI_MAX_PCRE_SUBPATTERNS) { + if ( !empty($regexp_list[$list_key]) ) { + ++$list_key; + } + $regexp_list[$list_key] = $new_entry; + } else { + if (!empty($regexp_list[$list_key])) { + $new_entry = '|' . $new_entry; + } + $regexp_list[$list_key] .= $new_entry; + } + return $regexp_list; + } + /** + * this function creates the appropriate regexp string of an token array + * you should not call this function directly, @see $this->optimize_regexp_list(). + * + * @param &$tokens array of tokens + * @param $recursed bool to know wether we recursed or not + * @return string + * @author Milian Wolff + * @since 1.0.8 + * @access private + */ + function _optimize_regexp_list_tokens_to_string(&$tokens, $recursed = false) { + $list = ''; + foreach ($tokens as $token => $sub_tokens) { + $list .= $token; + $close_entry = isset($sub_tokens['']); + unset($sub_tokens['']); + if (!empty($sub_tokens)) { + $list .= '(?:' . $this->_optimize_regexp_list_tokens_to_string($sub_tokens, true) . ')'; + if ($close_entry) { + // make sub_tokens optional + $list .= '?'; + } + } + $list .= '|'; + } + if (!$recursed) { + // do some optimizations + // common trailing strings + // BUGGY! + //$list = preg_replace_callback('#(?<=^|\:|\|)\w+?(\w+)(?:\|.+\1)+(?=\|)#', create_function( + // '$matches', 'return "(?:" . preg_replace("#" . preg_quote($matches[1], "#") . "(?=\||$)#", "", $matches[0]) . ")" . $matches[1];'), $list); + // (?:p)? => p? + $list = preg_replace('#\(\?\:(.)\)\?#', '\1?', $list); + // (?:a|b|c|d|...)? => [abcd...]? + // TODO: a|bb|c => [ac]|bb + static $callback_2; + if (!isset($callback_2)) { + $callback_2 = create_function('$matches', 'return "[" . str_replace("|", "", $matches[1]) . "]";'); + } + $list = preg_replace_callback('#\(\?\:((?:.\|)+.)\)#', $callback_2, $list); + } + // return $list without trailing pipe + return substr($list, 0, -1); + } +} // End Class GeSHi + + +if (!function_exists('geshi_highlight')) { + /** + * Easy way to highlight stuff. Behaves just like highlight_string + * + * @param string The code to highlight + * @param string The language to highlight the code in + * @param string The path to the language files. You can leave this blank if you need + * as from version 1.0.7 the path should be automatically detected + * @param boolean Whether to return the result or to echo + * @return string The code highlighted (if $return is true) + * @since 1.0.2 + */ + function geshi_highlight($string, $language, $path = null, $return = false) { + $geshi = new GeSHi($string, $language, $path); + $geshi->set_header_type(GESHI_HEADER_NONE); + + if ($return) { + return '' . $geshi->parse_code() . ''; + } + + echo '' . $geshi->parse_code() . ''; + + if ($geshi->error()) { + return false; + } + return true; + } +} + +?> \ No newline at end of file diff --git a/Sources/geshi/4cs.php b/Sources/geshi/4cs.php new file mode 100644 index 0000000..5209c51 --- /dev/null +++ b/Sources/geshi/4cs.php @@ -0,0 +1,139 @@ + 'GADV 4CS', + 'COMMENT_SINGLE' => array(1 => "//"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'All', 'AllMatches', 'And', 'And_Filters', 'As', 'Asc', 'BasedOn', + 'BestMatch', 'Block', 'Buffer', 'ByRef', 'ByVal', 'Call', 'Channel', + 'Chr', 'Clear', 'Close', 'Confirm', 'Const', 'Continue', 'Cos', + 'Critical', 'Declare', 'Default', 'DefaultChannel', 'DefaultDelayTime', + 'DefaultReceiveMode', 'DefaultResponseTime', '#Define', 'DelayTime', + 'Delete', 'Div', 'Else', '#Else', 'ElseIf', '#ElseIf', 'End', 'EndCritical', + 'EndInlineC', 'EndFunction', 'EndIf', '#EndIf', 'EndInputList', + 'EndLocalChannel', 'EndScenario', 'EndSub', 'EndWhile', 'Error', + 'ErrorLevelOff', 'ErrorLevelOn', 'ErrorLevelSet', 'ErrorLevelSetRaw', + 'Event', 'EventMode', 'EventOff', 'EventOn', 'EventSet', 'EventSetRaw', + 'Execute', 'Exit', 'Exp', 'FileClose', 'FilterClear', 'FileEOF', 'FileOpen', + 'FileRead', 'FileSize', 'FileWrite', 'FilterAdd', 'FilterMode', + 'FilterOff', 'FilterOn', 'For', 'Format', 'Function', 'GoOnline', 'GoTo', + 'Handle', 'Hide', 'If', '#If', '#IfDef', '#IfNDef', 'Ignore', '#Include', + 'InlineC', 'Input', 'InputItem', 'InputList', 'Kill', 'LBound', 'LocalChannel', + 'Local', 'Log', 'Log10', 'LogOff', 'LogOn', 'Loop', 'Message', 'Mod', + 'MonitorChannel', 'MostFormat', 'MostMessage', 'Named', 'Never', 'Next', + 'NoOrder', 'Not', 'Nothing', 'NoWait', 'Numeric', 'OnError', 'OnEvent', + 'Or', 'Or_Filters', 'Order', 'Pass', 'Pow', 'Prototype', 'Quit', 'Raise', + 'Random', 'Receive', 'ReceiveMode', 'ReceiveRaw', 'Redim', 'Remote', 'Repeat', + 'Repeated', 'ResponseTime', 'Resume', 'ResumeCritical', 'RT_Common', + 'RT_Dll_Call', 'RT_FILEIO', 'RT_General', 'RT_HardwareAccess', + 'RT_MessageVariableAccess', 'RT_Scenario', 'RT_VariableAccess', 'Runtime', + 'Scenario', 'ScenarioEnd', 'ScenarioStart', 'ScenarioStatus', 'ScenarioTerminate', + 'Send', 'SendRaw', 'Set', 'SetError', 'Sin', 'Single', 'Show', 'Start', + 'StartCritical', 'Starts', 'Static', 'Step', 'Stop', 'String', 'Sub', + 'System_Error', 'TerminateAllChilds', 'Terminates', 'Then', 'Throw', 'TimeOut', + 'To', 'TooLate', 'Trunc', 'UBound', 'Unexpected', 'Until', 'User_Error', + 'View', 'Wait', 'Warning', 'While', 'XOr' + ), + 2 => array( + 'alias', 'winapi', 'long', 'char', 'double', 'float', 'int', 'short', 'lib' + ) + ), + 'SYMBOLS' => array( + '=', ':=', '<', '>', '<>' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000C0; font-weight: bold;', + 2 => 'color: #808080;' + ), + 'COMMENTS' => array( + 1 => 'color: #008000;' + ), + 'BRACKETS' => array( + 0 => 'color: #000080;' + ), + 'STRINGS' => array( + 0 => 'color: #800080;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #66cc66;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000080;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;' + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?> \ No newline at end of file diff --git a/Sources/geshi/6502acme.php b/Sources/geshi/6502acme.php new file mode 100644 index 0000000..203e04d --- /dev/null +++ b/Sources/geshi/6502acme.php @@ -0,0 +1,230 @@ + 'MOS 6502 (6510) ACME Cross Assembler format', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + /* 6502/6510 Opcodes. */ + 1 => array( + 'adc', 'and', 'asl', 'bcc', 'bcs', 'beq', 'bit', 'bmi', + 'bne', 'bpl', 'brk', 'bvc', 'bvs', 'clc', 'cld', 'cli', + 'clv', 'cmp', 'cpx', 'cpy', 'dec', 'dex', 'dey', 'eor', + 'inc', 'inx', 'iny', 'jmp', 'jsr', 'lda', 'ldx', 'ldy', + 'lsr', 'nop', 'ora', 'pha', 'php', 'pla', 'plp', 'rol', + 'ror', 'rti', 'rts', 'sbc', 'sec', 'sed', 'sei', 'sta', + 'stx', 'sty', 'tax', 'tay', 'tsx', 'txa', 'txs', 'tya', + ), + /* Index Registers, yes the 6502 has other registers by they are only + * accessable by specific opcodes. The 65816 also has access to the stack pointer S. */ + 2 => array( + 'x', 'y', 's' + ), + /* Directives or "pseudo opcodes" as defined by ACME 0.93 file AllPOs.txt. */ + 3 => array( + '!8', '!08', '!by', '!byte', + '!16', '!wo', '!word', + '!24', '!32', + '!fi', '!fill', + '!align', + '!ct', '!convtab', + '!tx', '!text', + '!pet', + '!raw', + '!scrxor', + '!to', + '!source', + '!bin', '!binary', + '!zn', '!zone', + '!sl', + '!svl', + '!sal', + '!if', '!ifdef', + '!for', + '!set', + '!do', 'while', 'until', + '!eof', '!endoffile', + '!warn', '!error', '!serious', + '!macro', +// , '*=' // Not a valid keyword (uses both * and = signs) moved to symbols instead. + '!initmem', + '!pseudopc', + '!cpu', + '!al', '!as', '!rl', '!rs', + ), + + /* 6502/6510 undocumented opcodes (often referred to as illegal instructions). + * These are present in the 6502/6510 but NOT in the newer CMOS revisions of the 65C02 or 65816. + * As they are undocumented instructions there are no "official" names for them, there are also + * several more that mainly perform various forms of crash and are not supported by ACME 0.93. + */ + 4 => array( + 'anc', 'arr', 'asr', 'dcp', 'dop', 'isc', 'jam', 'lax', + 'rla', 'rra', 'sax', 'sbx', 'slo', 'sre', 'top', + ), + /* 65c02 instructions, MOS added a few (much needed) instructions in the CMOS version of the 6502, but stupidly removed the undocumented/illegal opcodes. + * ACME 0.93 does not support the rmb0-7 and smb0-7 instructions (they are currently rem'ed out). */ + 5 => array( + 'bra', 'phx', 'phy', 'plx', 'ply', 'stz', 'trb', 'tsb' + ), + /* 65816 instructions. */ + 6 => array( + 'brl', 'cop', 'jml', 'jsl', 'mvn', 'mvp', 'pea', 'pei', + 'per', 'phb', 'phd', 'phk', 'plb', 'pld', 'rep', 'rtl', + 'sep', 'tcd', 'tcs', 'tdc', 'tsc', 'txy', 'tyx', 'wdm', + 'xba', 'xce', + ), + /* Deprecated directives or "pseudo opcodes" as defined by ACME 0.93 file AllPOs.txt. */ + 7 => array( + '!cbm', + '!sz', '!subzone', + '!realpc', + ), + /* Math functions, some are aliases for the symbols. */ + 8 => array( + 'not', 'div', 'mod', 'xor', 'or', 'sin', 'cos', 'tan', + 'arcsin', 'arccos', 'arctan', 'int', 'float', + + ), + + ), + 'SYMBOLS' => array( +// '[', ']', '(', ')', '{', '}', // These are already defined by GeSHi as BRACKETS. + '*=', '#', '!', '^', '-', '*', '/', + '%', '+', '-', '<<', '>>', '>>>', + '<', '>', '^', '<=', '<', '>=', '>', '!=', + '=', '&', '|', '<>', + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00f; font-weight:bold;', + 2 => 'color: #00f; font-weight:bold;', + 3 => 'color: #080; font-weight:bold;', + 4 => 'color: #f00; font-weight:bold;', + 5 => 'color: #80f; font-weight:bold;', + 6 => 'color: #f08; font-weight:bold;', + 7 => 'color: #a04; font-weight:bold; font-style: italic;', + 8 => 'color: #000;', + ), + 'COMMENTS' => array( + 1 => 'color: #999; font-style: italic;', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #009; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000;' + ), + 'STRINGS' => array( + 0 => 'color: #080;' + ), + 'NUMBERS' => array( + GESHI_NUMBER_INT_BASIC => 'color: #f00;', + GESHI_NUMBER_HEX_PREFIX_DOLLAR => 'color: #f00;', + GESHI_NUMBER_HEX_PREFIX => 'color: #f00;', + GESHI_NUMBER_BIN_PREFIX_PERCENT => 'color: #f00;', + GESHI_NUMBER_FLT_NONSCI => 'color: #f00;', + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #080;' + ), + 'REGEXPS' => array( + 0 => 'color: #f00;' + , 1 => 'color: #933;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | + GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_HEX_PREFIX_DOLLAR | + GESHI_NUMBER_HEX_PREFIX | + GESHI_NUMBER_BIN_PREFIX_PERCENT, + // AMCE Octal format not support and gets picked up as Decimal unfortunately. + 'REGEXPS' => array( + //ACME .# Binary number format. e.g. %..##..##..## + 0 => '\%[\.\#]{1,64}', + //ACME Local Labels + 1 => '\.[_a-zA-Z][_a-zA-Z0-9]*', + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 8, + 'PARSER_CONTROL' => array( + 'NUMBERS' => array( + 'PRECHECK_RX' => '/[\da-fA-F\.\$\%]/' + ) + ) +); + +?> \ No newline at end of file diff --git a/Sources/geshi/6502kickass.php b/Sources/geshi/6502kickass.php new file mode 100644 index 0000000..8042826 --- /dev/null +++ b/Sources/geshi/6502kickass.php @@ -0,0 +1,241 @@ + 'MOS 6502 (6510) Kick Assembler format', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + /* 6502/6510 Opcodes including undocumented opcodes as Kick Assembler 3.13 does not make a distinction - they are ALL valid. */ + 1 => array( + 'adc', 'ahx', 'alr', 'anc', 'anc2', 'and', 'arr', 'asl', + 'axs', 'bcc', 'bcs', 'beq', 'bit', 'bmi', 'bne', 'bpl', + 'brk', 'bvc', 'bvs', 'clc', 'cld', 'cli', 'clv', 'cmp', + 'cpx', 'cpy', 'dcp', 'dec', 'dex', 'dey', 'eor', 'inc', + 'inx', 'iny', 'isc', 'jmp', 'jsr', 'las', 'lax', 'lda', + 'ldx', 'ldy', 'lsr', 'nop', 'ora', 'pha', 'php', 'pla', + 'plp', 'rla', 'rol', 'ror', 'rra', 'rti', 'rts', 'sax', + 'sbc', 'sbc2', 'sec', 'sed', 'sei', 'shx', 'shy', 'slo', + 'sre', 'sta', 'stx', 'sty', 'tas', 'tax', 'tay', 'tsx', + 'txa', 'txs', 'tya', 'xaa', + ), + /* DTV additional Opcodes. */ + 2 => array( + 'bra', 'sac', 'sir' + ), + /* Index Registers, yes the 6502 has other registers by they are only + * accessable by specific opcodes. */ + 3 => array( + 'x', 'y' + ), + /* Directives. */ + 4 => array( + '.pc', '.pseudopc', 'virtual', '.align', '.byte', '.word', '.text', '.fill', + '.import source', '.import binary', '.import c64', '.import text', '.import', '.print', '.printnow', + '.error', '.var', '.eval', '.const', '.eval const', '.enum', '.label', '.define', '.struct', + 'if', '.for', '.macro', '.function', '.return', '.pseudocommand', '.namespace', '.filenamespace', + '.assert', '.asserterror', + ), + /* Kick Assembler 3.13 Functions/Operators. */ + 5 => array( + 'size', 'charAt', 'substring', 'asNumber', 'asBoolean', 'toIntString', 'toBinaryString', 'toOctalString', + 'toHexString', 'lock', // String functions/operators. + 'get', 'set', 'add', 'remove', 'shuffle', // List functions. + 'put', 'keys', // Hashtable functions. + 'getType', 'getValue', 'CmdArgument', // Pseudo Commands functions. + 'asmCommandSize', // Opcode Constants functions. + 'LoadBinary', 'getSize', + 'LoadSid', 'getData', + 'LoadPicture', 'width', 'height', 'getPixel', 'getSinglecolorByte', 'getMulticolorByte', + 'createFile', 'writeln', + 'cmdLineVars', + 'getX', 'getY', 'getZ', // Vector functions. + 'RotationMatrix', 'ScaleMatrix', 'MoveMatrix', 'PerspectiveMatrix', // Matrix functions. + + ), + + /* Kick Assembler 3.13 Math Functions. */ + 6 => array( + 'abs', 'acos', 'asin', 'atan', 'atan2', 'cbrt', 'ceil', 'cos', 'cosh', + 'exp', 'expm1', 'floor', 'hypot', 'IEEEremainder', 'log', 'log10', + 'log1p', 'max', 'min', 'pow', 'mod', 'random', 'round', 'signum', + 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'toDegrees', 'toRadians', + ), + + /* Kick Assembler 3.13 Objects/Data Types. */ + 7 => array( + 'List', // List() Object. + 'Hashtable', // Hashtable() Object. + 'Vector', // Vector() Object. + 'Matrix', // Matrix() Object. + ), + + /* Kick Assembler 3.13 Constants. */ + 8 => array( + 'PI', 'E', // Math Constants. + 'AT_ABSOLUTE' , 'AT_ABSOLUTEX' , 'AT_ABSOLUTEY' , 'AT_IMMEDIATE', // Pseudo Commands Constants. + 'AT_INDIRECT' , 'AT_IZEROPAGEX' , 'AT_IZEROPAGEY' , 'AT_NONE', + 'BLACK', 'WHITE', 'RED', 'CYAN', 'PURPLE', 'GREEN', 'BLUE', // Colour Constants. + 'YELLOW', 'ORANGE', 'BROWN', 'LIGHT_RED', 'DARK_GRAY', 'GRAY', + 'LIGHT_GREEN', 'LIGHT_BLUE', 'LIGHT_GRAY', + 'C64FILE', // Template Tag names. + 'BF_C64FILE', 'BF_BITMAP_SINGLECOLOR', 'BF_KOALA' , 'BF_FLI', // Binary format constant + ), + + ), + 'SYMBOLS' => array( +// '[', ']', '(', ')', '{', '}', // These are already defined by GeSHi as BRACKETS. + '-', '+', '-', '*', '/', '>', '<', '<<', '>>', '&', '|', '^', '=', '==', + '!=', '>=', '<=', '!', '&&', '||', '#', + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00f; font-weight:bold;', + 2 => 'color: #00f; font-weight:bold;', + 3 => 'color: #00f; font-weight:bold;', + 4 => 'color: #080; font-weight:bold;', + 5 => 'color: #80f; font-weight:bold;', + 6 => 'color: #f08; font-weight:bold;', + 7 => 'color: #a04; font-weight:bold; font-style: italic;', + 8 => 'color: #f08; font-weight:bold;', + ), + 'COMMENTS' => array( + 1 => 'color: #999; font-style: italic;', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #009; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000;' + ), + 'STRINGS' => array( + 0 => 'color: #080;' + ), + 'NUMBERS' => array( + GESHI_NUMBER_INT_BASIC => 'color: #f00;', + GESHI_NUMBER_HEX_PREFIX_DOLLAR => 'color: #f00;', + GESHI_NUMBER_BIN_PREFIX_PERCENT => 'color: #f00;', + GESHI_NUMBER_FLT_NONSCI => 'color: #f00;', + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #080;' + ), + 'REGEXPS' => array( + 0 => 'color: #933;', + 1 => 'color: #933;', + 2 => 'color: #933;', + 3 => 'color: #00f; font-weight:bold;', + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | + GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_HEX_PREFIX_DOLLAR | + GESHI_NUMBER_BIN_PREFIX_PERCENT, + // AMCE Octal format not support and gets picked up as Decimal unfortunately. + 'REGEXPS' => array( + //Labels end with a collon. + 0 => '[!]{0,1}[_a-zA-Z][_a-zA-Z0-9]*\:', + //Multi Labels (local labels) references start with ! and end with + or - for forward/backward reference. + 1 => '![_a-zA-Z][_a-zA-Z0-9]*[+-]', + //Macros start with a colon :Macro. + 2 => ':[_a-zA-Z][_a-zA-Z0-9]*', + // Opcode Constants, such as LDA_IMM, STA_IZPY are basically all 6502 opcodes + // in UPPER case followed by _underscore_ and the ADDRESS MODE. + // As you might imagine that is rather a lot ( 78 supported Opcodes * 12 Addressing modes = 936 variations) + // So I thought it better and easier to maintain as a regular expression. + // NOTE: The order of the Address Modes must be maintained or it wont work properly (eg. place ZP first and find out!) + 3 => '[A-Z]{3}[2]?_(?:IMM|IND|IZPX|IZPY|ZPX|ZPY|ABSX|ABSY|REL|ABS|ZP)', + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 8, + 'PARSER_CONTROL' => array( + 'NUMBERS' => array( + 'PRECHECK_RX' => '/[\da-fA-F\.\$\%]/' + ), + 'KEYWORDS' => array( + 5 => array ( + 'DISALLOWED_BEFORE' => "(?|^&'\"])" + ), + 6 => array ( + 'DISALLOWED_BEFORE' => "(?|^&'\"])" + ), + 8 => array ( + 'DISALLOWED_BEFORE' => "(?|^&'\"])" + ) + ) + ), +); + +?> \ No newline at end of file diff --git a/Sources/geshi/6502tasm.php b/Sources/geshi/6502tasm.php new file mode 100644 index 0000000..86aa479 --- /dev/null +++ b/Sources/geshi/6502tasm.php @@ -0,0 +1,189 @@ + 'MOS 6502 (6510) TASM/64TASS 1.46 Assembler format', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + /* 6502/6510 Opcodes. */ + 1 => array( + 'adc', 'and', 'asl', 'bcc', 'bcs', 'beq', 'bit', 'bmi', + 'bne', 'bpl', 'brk', 'bvc', 'bvs', 'clc', 'cld', 'cli', + 'clv', 'cmp', 'cpx', 'cpy', 'dec', 'dex', 'dey', 'eor', + 'inc', 'inx', 'iny', 'jmp', 'jsr', 'lda', 'ldx', 'ldy', + 'lsr', 'nop', 'ora', 'pha', 'php', 'pla', 'plp', 'rol', + 'ror', 'rti', 'rts', 'sbc', 'sec', 'sed', 'sei', 'sta', + 'stx', 'sty', 'tax', 'tay', 'tsx', 'txa', 'txs', 'tya', + ), + /* Index Registers, yes the 6502 has other registers by they are only + * accessable by specific opcodes. The 65816 also has access to the stack pointer S. */ + 2 => array( + 'x', 'y', 's' + ), + /* Directives. */ + 3 => array( + '.al', '.align', '.as', '.assert', '.binary', '.byte', '.cerror', '.char', + '.comment', '.cpu', '.cwarn', '.databank', '.dpage', '.else', '.elsif', + '.enc', '.endc', '.endif', '.endm', '.endp', '.error', '.fi', '.fill', + '.for', '.here', '.if', '.ifeq', '.ifmi', '.ifne', '.ifpl', + '.include', '.int', '.logical', '.long', '.macro', '.next', '.null', '.offs', + '.page', '.pend', '.proc', '.rept', '.rta', '.shift', '.text', '.warn', '.word', + '.xl', '.xs', +// , '*=' // Not a valid keyword (uses both * and = signs) moved to symbols instead. + ), + + /* 6502/6510 undocumented opcodes (often referred to as illegal instructions). + * These are present in the 6502/6510 but NOT in the newer CMOS revisions of the 65C02 or 65816. + * As they are undocumented instructions there are no "official" names for them, these are the names + * used by 64TASS V1.46. + */ + 4 => array( + 'ahx', 'alr', 'anc', 'ane', 'arr', 'asr', 'axs', 'dcm', + 'dcp', 'ins', 'isb', 'isc', 'jam', 'lae', 'las', 'lax', + 'lds', 'lxa', 'rla', 'rra', 'sax', 'sbx', 'sha', 'shs', + 'shx', 'shy', 'slo', 'sre', 'tas', 'xaa', + ), + /* 65c02 instructions, MOS added a few (much needed) instructions in the + * CMOS version of the 6502, but stupidly removed the undocumented/illegal opcodes. */ + 5 => array( + 'bra', 'dea', 'gra', 'ina', 'phx', 'phy', 'plx', 'ply', + 'stz', 'trb', 'tsb', + ), + /* 65816 instructions. */ + 6 => array( + 'brl', 'cop', 'jml', 'jsl', 'mvn', 'mvp', 'pea', 'pei', + 'per', 'phb', 'phd', 'phk', 'plb', 'pld', 'rep', 'rtl', + 'sep', 'stp', 'swa', 'tad', 'tcd', 'tcs', 'tda', + 'tdc', 'tsa', 'tsc', 'txy', 'tyx', 'wai', 'xba', 'xce', + ), + /* Deprecated directives (or yet to be implemented). */ + 7 => array( + '.global', '.check' + ), + ), + 'SYMBOLS' => array( +// '[', ']', '(', ')', '{', '}', // These are already defined by GeSHi as BRACKETS. + '*=', '#', '<', '>', '`', '=', '<', '>', + '!=', '>=', '<=', '+', '-', '*', '/', '//', '|', + '^', '&', '<<', '>>', '-', '~', '!', + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00f; font-weight:bold;', + 2 => 'color: #00f; font-weight:bold;', + 3 => 'color: #080; font-weight:bold;', + 4 => 'color: #f00; font-weight:bold;', + 5 => 'color: #80f; font-weight:bold;', + 6 => 'color: #f08; font-weight:bold;', + 7 => 'color: #a04; font-weight:bold; font-style: italic;', + ), + 'COMMENTS' => array( + 1 => 'color: #999; font-style: italic;', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #009; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000;' + ), + 'STRINGS' => array( + 0 => 'color: #080;' + ), + 'NUMBERS' => array( + GESHI_NUMBER_INT_BASIC => 'color: #f00;', + GESHI_NUMBER_HEX_PREFIX_DOLLAR => 'color: #f00;', + GESHI_NUMBER_BIN_PREFIX_PERCENT => 'color: #f00;', + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #080;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | + GESHI_NUMBER_HEX_PREFIX_DOLLAR | + GESHI_NUMBER_BIN_PREFIX_PERCENT, + // AMCE Octal format not support and gets picked up as Decimal unfortunately. + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 8, + 'PARSER_CONTROL' => array( + 'NUMBERS' => array( + 'PRECHECK_RX' => '/[\da-fA-F\.\$\%]/' + ) + ) +); + +?> \ No newline at end of file diff --git a/Sources/geshi/68000devpac.php b/Sources/geshi/68000devpac.php new file mode 100644 index 0000000..f46387a --- /dev/null +++ b/Sources/geshi/68000devpac.php @@ -0,0 +1,168 @@ + 'Motorola 68000 - HiSoft Devpac ST 2 Assembler format', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + /* Directives. */ + 1 => array( + 'end', 'include', 'incbin', 'opt', 'even', 'cnop', 'dc.b', 'dc.w', + 'dc.l', 'ds.b', 'ds.w', 'ds.l', 'dcb.b', 'dcb.w', 'dcb.l', + 'fail', 'output', '__g2', 'rept', 'endr', 'list', 'nolist', 'plen', + 'llen', 'ttl', 'subttl', 'spc', 'page', 'listchar', 'format', + 'equ', 'equr', 'set', 'reg', 'rs.b', 'rs.w', 'rs.l', 'rsreset', + 'rsset', '__rs', 'ifeq', 'ifne', 'ifgt', 'ifge', 'iflt', 'ifle', 'endc', + 'ifd', 'ifnd', 'ifc', 'ifnc', 'elseif', 'iif', 'macro', 'endm', 'mexit', + 'narg', '\@', 'section', 'text', 'data', 'bss', 'xdef', 'xref', 'org', + 'offset', '__lk', 'comment', + ), + /* 68000 Opcodes. */ + 2 => array( + 'abcd', 'add', 'adda', 'addi', 'addq', 'addx', 'and', 'andi', + 'asl', 'asr', 'bcc', 'bchg', 'bclr', 'bcs', 'beq', 'bge', + 'bgt', 'bhi', 'ble', 'bls', 'blt', 'bmi', 'bne', 'bpl', + 'bra', 'bset', 'bsr', 'btst', 'bvc', 'bvs', 'chk', 'clr', + 'cmp', 'cmpa', 'cmpi', 'cmpm', 'dbcc', 'dbcs', 'dbeq', 'dbf', + 'dbge', 'dbgt', 'dbhi', 'dble', 'dbls', 'dblt', 'dbmi', 'dbne', + 'dbpl', 'dbra', 'dbt', 'dbvc', 'dbvs', 'divs', 'divu', 'eor', + 'eori', 'exg', 'ext','illegal','jmp', 'jsr', 'lea', 'link', + 'lsl', 'lsr', 'move','movea','movem','movep','moveq', 'muls', + 'mulu', 'nbcd', 'neg', 'negx', 'nop', 'not', 'or', 'ori', + 'pea', 'reset', 'rol', 'ror', 'roxl', 'roxr', 'rte', 'rtr', + 'rts', 'sbcd', 'scc', 'scs', 'seq', 'sf', 'sge', 'sgt', + 'shi', 'sle', 'sls', 'slt', 'smi', 'sne', 'spl', 'st', + 'stop', 'sub', 'suba', 'subi', 'subq', 'subx', 'svc', 'svs', + 'swap', 'tas', 'trap','trapv', 'tst', 'unlk', + ), + /* oprand sizes. */ + 3 => array( + 'b', 'w', 'l' , 's' + ), + /* 68000 Registers. */ + 4 => array( + 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', + 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'sp', 'usp', 'ssp', + 'pc', 'ccr', 'sr', + ), + ), + 'SYMBOLS' => array( +// '[', ']', '(', ')', '{', '}', // These are already defined by GeSHi as BRACKETS. + '+', '-', '~', '<<', '>>', '&', + '!', '^', '*', '/', '=', '<', '>', + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #f08; font-weight:bold;', + 2 => 'color: #00f; font-weight:bold;', + 3 => 'color: #00f; font-weight:bold;', + 4 => 'color: #080; font-weight:bold;', + ), + 'COMMENTS' => array( + 1 => 'color: #999; font-style: italic;', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #009; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000;' + ), + 'STRINGS' => array( + 0 => 'color: #080;' + ), + 'NUMBERS' => array( + GESHI_NUMBER_INT_BASIC => 'color: #f00;', + GESHI_NUMBER_HEX_PREFIX_DOLLAR => 'color: #f00;', + GESHI_NUMBER_BIN_PREFIX_PERCENT => 'color: #f00;', + GESHI_NUMBER_OCT_PREFIX_AT => 'color: #f00;', + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #080;' + ), + 'REGEXPS' => array( + 0 => 'color: #933;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | + GESHI_NUMBER_HEX_PREFIX_DOLLAR | + GESHI_NUMBER_OCT_PREFIX_AT | + GESHI_NUMBER_BIN_PREFIX_PERCENT, + 'REGEXPS' => array( + //Labels may end in a colon. + 0 => '(?<=\A\x20|\r|\n|^)[\._a-zA-Z][\._a-zA-Z0-9]*[\:]?[\s]' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 8, + 'PARSER_CONTROL' => array( + 'NUMBERS' => array( + 'PRECHECK_RX' => '/[\da-fA-F\.\$\%\@]/' + ) + ) +); + +?> \ No newline at end of file diff --git a/Sources/geshi/abap.php b/Sources/geshi/abap.php new file mode 100644 index 0000000..5acd261 --- /dev/null +++ b/Sources/geshi/abap.php @@ -0,0 +1,1409 @@ +.htm + * + * CHANGES + * ------- + * 2009/02/25 (1.0.8.3) + * - Some more rework of the language file + * 2009/01/04 (1.0.8.2) + * - Major Release, more than 1000 statements and keywords added = whole abap 7.1 (Sandra Rossi) + * 2007/06/27 (1.0.0) + * - First Release + * + * TODO + * ---- + * - in DATA data TYPE type, 2nd "data" and 2nd "type" are highlighted with data + * style, but should be ignored. Same problem for all words!!! This is quite impossible to + * solve it as we should define syntaxes of all statements (huge effort!) and use a lex + * or something like that instead of regexp I guess. + * - Some words are considered as being statement names (report, tables, etc.) though they + * are used as keyword in some statements. For example: FORM xxxx TABLES itab. It was + * arbitrary decided to define them as statement instead of keyword, because it may be + * useful to have the URL to SAP help for some of them. + * - if a comment is between 2 words of a keyword (for example SEPARATED "comment \n BY), + * it is not considered as a keyword, but it should! + * - for statements like "READ DATASET", GeSHi does not allow to set URLs because these + * statements are determined by REGEXPS. For "READ DATASET", the URL should be + * ABAPREAD_DATASET.htm. If a technical solution is found, be careful : URLs + * are sometimes not valid because the URL does not exist. For example, for "AT NEW" + * statement, the URL should be ABAPAT_ITAB.htm (not ABAPAT_NEW.htm). + * There are many other exceptions. + * Note: for adding this functionality within your php program, you can execute this code: + * function add_urls_to_multi_tokens( $matches ) { + * $url = preg_replace( "/[ \n]+/" , "_" , $matches[3] ); + * if( $url == $matches[3] ) return $matches[0] ; + * else return $matches[1]."".$matches[3]."".$matches[4]; + * } + * $html = $geshi->parse_code(); + * $html = preg_replace_callback( "£(zzz:(control|statement|data);\">)(.+?)()£s", "add_urls_to_multi_tokens", $html ); + * echo $html; + * - Numbers followed by a dot terminating the statement are not properly recognized + * + ************************************************************************************* + * + * This file is part of GeSHi. + * + * GeSHi is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GeSHi is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GeSHi; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + ************************************************************************************/ + +$language_data = array( + 'LANG_NAME' => 'ABAP', + 'COMMENT_SINGLE' => array( + 1 => '"' + ), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + // lines beginning with star at 1st position are comments + // (star anywhere else is not a comment, especially be careful with + // "assign dref->* to " statement) + 2 => '/^\*.*?$/m' + ), + 'CASE_KEYWORDS' => 0, + 'QUOTEMARKS' => array( + 1 => "'", + 2 => "`" + ), + 'ESCAPE_CHAR' => '', + + 'KEYWORDS' => array( + //*********************************************** + // Section 2 : process sequences of several tokens + //*********************************************** + + 7 => array( + 'at new', + 'at end of', + 'at first', + 'at last', + 'loop at', + 'loop at screen', + ), + + 8 => array( + 'private section', + 'protected section', + 'public section', + 'at line-selection', + 'at selection-screen', + 'at user-command', + 'assign component', + 'assign table field', + 'call badi', + 'call customer-function', + 'call customer subscreen', + 'call dialog', + 'call function', + 'call method', + 'call screen', + 'call selection-screen', + 'call transaction', + 'call transformation', + 'close cursor', + 'close dataset', + 'commit work', + 'convert date', + 'convert text', + 'convert time stamp', + 'create data', + 'create object', + 'delete dataset', + 'delete from', + 'describe distance', + 'describe field', + 'describe list', + 'describe table', + 'exec sql', + 'exit from sql', + 'exit from step-loop', + 'export dynpro', + 'export nametab', + 'free memory', + 'generate subroutine-pool', + 'get badi', + 'get bit', + 'get cursor', + 'get dataset', + 'get locale', + 'get parameter', + 'get pf-status', + 'get property', + 'get reference', + 'get run time', + 'get time', + 'get time stamp', + 'import directory', + 'insert report', + 'insert text-pool', + 'leave list-processing', + 'leave program', + 'leave screen', + 'leave to list-processing', + 'leave to transaction', + 'modify line', + 'modify screen', + 'move percentage', + 'open cursor', + 'open dataset', + 'raise event', + 'raise exception', + 'read dataset', + 'read line', + 'read report', + 'read table', + 'read textpool', + 'receive results from function', + 'refresh control', + 'rollback work', + 'set bit', + 'set blank lines', + 'set country', + 'set cursor', + 'set dataset', + 'set extended check', + 'set handler', + 'set hold data', + 'set language', + 'set left scroll-boundary', + 'set locale', + 'set margin', + 'set parameter', + 'set pf-status', + 'set property', + 'set run time analyzer', + 'set run time clock', + 'set screen', + 'set titlebar', + 'set update task', + 'set user-command', + 'suppress dialog', + 'truncate dataset', + 'wait until', + 'wait up to', + ), + + 9 => array( + 'accepting duplicate keys', + 'accepting padding', + 'accepting truncation', + 'according to', + 'actual length', + 'adjacent duplicates', + 'after input', + 'all blob columns', + 'all clob columns', + 'all fields', + 'all methods', + 'all other columns', + 'and mark', + 'and return to screen', + 'and return', + 'and skip first screen', + 'and wait', + 'any table', + 'appendage type', + 'archive mode', + 'archiving parameters', + 'area handle', + 'as checkbox', + 'as icon', + 'as line', + 'as listbox', + 'as person table', + 'as search patterns', + 'as separate unit', + 'as subscreen', + 'as symbol', + 'as text', + 'as window', + 'at cursor-selection', + 'at exit-command', + 'at next application statement', + 'at position', + + 'backup into', + 'before output', + 'before unwind', + 'begin of block', + 'begin of common part', + 'begin of line', + 'begin of screen', + 'begin of tabbed block', + 'begin of version', + 'begin of', + 'big endian', + 'binary mode', + 'binary search', + 'by kernel module', + 'bypassing buffer', + + 'client specified', + 'code page', + 'code page hint', + 'code page into', + 'color black', + 'color blue', + 'color green', + 'color pink', + 'color red', + 'color yellow', + 'compression off', + 'compression on', + 'connect to', + 'corresponding fields of table', + 'corresponding fields of', + 'cover page', + 'cover text', + 'create package', + 'create private', + 'create protected', + 'create public', + 'current position', + + 'data buffer', + 'data values', + 'dataset expiration', + 'daylight saving time', + 'default key', + 'default program', + 'default screen', + 'defining database', + 'deleting leading', + 'deleting trailing', + 'directory entry', + 'display like', + 'display offset', + 'during line-selection', + 'dynamic selections', + + 'edit mask', + 'end of block', + 'end of common part', + 'end of file', + 'end of line', + 'end of screen', + 'end of tabbed block', + 'end of version', + 'end of', + 'endian into', + 'ending at', + 'enhancement options into', + 'enhancement into', + 'environment time format', + 'execute procedure', + 'exporting list to memory', + 'extension type', + + 'field format', + 'field selection', + 'field value into', + 'final methods', + 'first occurrence of', + 'fixed-point arithmetic', + 'for all entries', + 'for all instances', + 'for appending', + 'for columns', + 'for event of', + 'for field', + 'for high', + 'for input', + 'for lines', + 'for low', + 'for node', + 'for output', + 'for select', + 'for table', + 'for testing', + 'for update', + 'for user', + 'frame entry', + 'frame program from', + 'from code page', + 'from context', + 'from database', + 'from logfile id', + 'from number format', + 'from screen', + 'from table', + 'function key', + + 'get connection', + 'global friends', + 'group by', + + 'hashed table of', + 'hashed table', + + 'if found', + 'ignoring case', + 'ignoring conversion errors', + 'ignoring structure boundaries', + 'implementations from', + 'in background', + 'in background task', + 'in background unit', + 'in binary mode', + 'in byte mode', + 'in char-to-hex mode', + 'in character mode', + 'in group', + 'in legacy binary mode', + 'in legacy text mode', + 'in program', + 'in remote task', + 'in text mode', + 'in table', + 'in update task', + 'include bound', + 'include into', + 'include program from', + 'include structure', + 'include type', + 'including gaps', + 'index table', + 'inheriting from', + 'init destination', + 'initial line of', + 'initial line', + 'initial size', + 'internal table', + 'into sortable code', + + 'keep in spool', + 'keeping directory entry', + 'keeping logical unit of work', + 'keeping task', + 'keywords from', + + 'left margin', + 'left outer', + 'levels into', + 'line format', + 'line into', + 'line of', + 'line page', + 'line value from', + 'line value into', + 'lines of', + 'list authority', + 'list dataset', + 'list name', + 'little endian', + 'lob handle for', + 'local friends', + 'locator for', + 'lower case', + + 'main table field', + 'match count', + 'match length', + 'match line', + 'match offset', + 'matchcode object', + 'maximum length', + 'maximum width into', + 'memory id', + 'message into', + 'messages into', + 'modif id', + + 'nesting level', + 'new list identification', + 'next cursor', + 'no database selection', + 'no dialog', + 'no end of line', + 'no fields', + 'no flush', + 'no intervals', + 'no intervals off', + 'no standard page heading', + 'no-extension off', + 'non-unique key', + 'non-unique sorted key', + 'not at end of mode', + 'number of lines', + 'number of pages', + + 'object key', + 'obligatory off', + 'of current page', + 'of page', + 'of program', + 'offset into', + 'on block', + 'on commit', + 'on end of task', + 'on end of', + 'on exit-command', + 'on help-request for', + 'on radiobutton group', + 'on rollback', + 'on value-request for', + 'open for package', + 'option class-coding', + 'option class', + 'option coding', + 'option expand', + 'option syncpoints', + 'options from', + 'order by', + 'overflow into', + + 'package section', + 'package size', + 'preferred parameter', + 'preserving identifier escaping', + 'primary key', + 'print off', + 'print on', + 'program from', + 'program type', + + 'radiobutton groups', + 'radiobutton group', + 'range of', + 'reader for', + 'receive buffer', + 'reduced functionality', + 'ref to data', + 'ref to object', + 'ref to', + + 'reference into', + 'renaming with suffix', + 'replacement character', + 'replacement count', + 'replacement length', + 'replacement line', + 'replacement offset', + 'respecting blanks', + 'respecting case', + 'result into', + 'risk level', + + 'sap cover page', + 'search fkeq', + 'search fkge', + 'search gkeq', + 'search gkge', + 'section of', + 'send buffer', + 'separated by', + 'shared buffer', + 'shared memory', + 'shared memory enabled', + 'skipping byte-order mark', + 'sorted by', + 'sorted table of', + 'sorted table', + 'spool parameters', + 'standard table of', + 'standard table', + 'starting at', + 'starting new task', + 'statements into', + 'structure default', + 'structures into', + + 'table field', + 'table of', + 'text mode', + 'time stamp', + 'time zone', + 'to code page', + 'to column', + 'to context', + 'to first page', + 'to last page', + 'to last line', + 'to line', + 'to lower case', + 'to number format', + 'to page', + 'to sap spool', + 'to upper case', + 'tokens into', + 'transporting no fields', + 'type tableview', + 'type tabstrip', + + 'unicode enabling', + 'up to', + 'upper case', + 'using edit mask', + 'using key', + 'using no edit mask', + 'using screen', + 'using selection-screen', + 'using selection-set', + 'using selection-sets of program', + + 'valid between', + 'valid from', + 'value check', + 'via job', + 'via selection-screen', + 'visible length', + + 'whenever found', + 'with analysis', + 'with byte-order mark', + 'with comments', + 'with current switchstates', + 'with explicit enhancements', + 'with frame', + 'with free selections', + 'with further secondary keys', + 'with header line', + 'with hold', + 'with implicit enhancements', + 'with inactive enhancements', + 'with includes', + 'with key', + 'with linefeed', + 'with list tokenization', + 'with native linefeed', + 'with non-unique key', + 'with null', + 'with pragmas', + 'with precompiled headers', + 'with selection-table', + 'with smart linefeed', + 'with table key', + 'with test code', + 'with type-pools', + 'with unique key', + 'with unix linefeed', + 'with windows linefeed', + 'without further secondary keys', + 'without selection-screen', + 'without spool dynpro', + 'without trmac', + 'word into', + 'writer for' + ), + + //********************************************************** + // Other abap statements + //********************************************************** + 3 => array( + 'add', + 'add-corresponding', + 'aliases', + 'append', + 'assign', + 'at', + 'authority-check', + + 'break-point', + + 'clear', + 'collect', + 'compute', + 'concatenate', + 'condense', + 'class', + 'class-events', + 'class-methods', + 'class-pool', + + 'define', + 'delete', + 'demand', + 'detail', + 'divide', + 'divide-corresponding', + + 'editor-call', + 'end-of-file', + 'end-enhancement-section', + 'end-of-definition', + 'end-of-page', + 'end-of-selection', + 'endclass', + 'endenhancement', + 'endexec', + 'endform', + 'endfunction', + 'endinterface', + 'endmethod', + 'endmodule', + 'endon', + 'endprovide', + 'endselect', + 'enhancement', + 'enhancement-point', + 'enhancement-section', + 'export', + 'extract', + 'events', + + 'fetch', + 'field-groups', + 'find', + 'format', + 'form', + 'free', + 'function-pool', + 'function', + + 'get', + + 'hide', + + 'import', + 'infotypes', + 'input', + 'insert', + 'include', + 'initialization', + 'interface', + 'interface-pool', + 'interfaces', + + 'leave', + 'load-of-program', + 'log-point', + + 'maximum', + 'message', + 'methods', + 'method', + 'minimum', + 'modify', + 'move', + 'move-corresponding', + 'multiply', + 'multiply-corresponding', + + 'new-line', + 'new-page', + 'new-section', + + 'overlay', + + 'pack', + 'perform', + 'position', + 'print-control', + 'program', + 'provide', + 'put', + + 'raise', + 'refresh', + 'reject', + 'replace', + 'report', + 'reserve', + + 'scroll', + 'search', + 'select', + 'selection-screen', + 'shift', + 'skip', + 'sort', + 'split', + 'start-of-selection', + 'submit', + 'subtract', + 'subtract-corresponding', + 'sum', + 'summary', + 'summing', + 'supply', + 'syntax-check', + + 'top-of-page', + 'transfer', + 'translate', + 'type-pool', + + 'uline', + 'unpack', + 'update', + + 'window', + 'write' + + ), + + //********************************************************** + // keywords + //********************************************************** + + 4 => array( + 'abbreviated', + 'abstract', + 'accept', + 'acos', + 'activation', + 'alias', + 'align', + 'all', + 'allocate', + 'and', + 'assigned', + 'any', + 'appending', + 'area', + 'as', + 'ascending', + 'asin', + 'assigning', + 'atan', + 'attributes', + 'avg', + + 'backward', + 'between', + 'bit-and', + 'bit-not', + 'bit-or', + 'bit-set', + 'bit-xor', + 'boolc', + 'boolx', + 'bound', + 'bt', + 'blocks', + 'bounds', + 'boxed', + 'by', + 'byte-ca', + 'byte-cn', + 'byte-co', + 'byte-cs', + 'byte-na', + 'byte-ns', + + 'ca', + 'calling', + 'casting', + 'ceil', + 'center', + 'centered', + 'changing', + 'char_off', + 'charlen', + 'circular', + 'class_constructor', + 'client', + 'clike', + 'close', + 'cmax', + 'cmin', + 'cn', + 'cnt', + 'co', + 'col_background', + 'col_group', + 'col_heading', + 'col_key', + 'col_negative', + 'col_normal', + 'col_positive', + 'col_total', + 'color', + 'column', + 'comment', + 'comparing', + 'components', + 'condition', + 'context', + 'copies', + 'count', + 'country', + 'cpi', + 'creating', + 'critical', + 'concat_lines_of', + 'cos', + 'cosh', + 'count_any_not_of', + 'count_any_of', + 'cp', + 'cs', + 'csequence', + 'currency', + 'current', + 'cx_static_check', + 'cx_root', + 'cx_dynamic_check', + + 'dangerous', + 'database', + 'datainfo', + 'date', + 'dbmaxlen', + 'dd/mm/yy', + 'dd/mm/yyyy', + 'ddmmyy', + 'deallocate', + 'decfloat', + 'decfloat16', + 'decfloat34', + 'decimals', + 'default', + 'deferred', + 'definition', + 'department', + 'descending', + 'destination', + 'disconnect', + 'display-mode', + 'distance', + 'distinct', + 'div', + 'dummy', + + 'encoding', + 'end-lines', + 'engineering', + 'environment', + 'eq', + 'equiv', + 'error_message', + 'errormessage', + 'escape', + 'exact', + 'exception-table', + 'exceptions', + 'exclude', + 'excluding', + 'exists', + 'exp', + 'exponent', + 'exporting', + 'extended_monetary', + + 'field', + 'filter-table', + 'filters', + 'filter', + 'final', + 'find_any_not_of', + 'find_any_of', + 'find_end', + 'floor', + 'first-line', + 'font', + 'forward', + 'for', + 'frac', + 'from_mixed', + 'friends', + 'from', + + 'giving', + 'ge', + 'gt', + + 'handle', + 'harmless', + 'having', + 'head-lines', + 'help-id', + 'help-request', + 'high', + 'hold', + 'hotspot', + + 'id', + 'ids', + 'immediately', + 'implementation', + 'importing', + 'in', + 'initial', + 'incl', + 'including', + 'increment', + 'index', + 'index-line', + 'inner', + 'inout', + 'intensified', + 'into', + 'inverse', + 'is', + 'iso', + + 'join', + + 'key', + 'kind', + + 'log10', + 'language', + 'late', + 'layout', + 'le', + 'lt', + 'left-justified', + 'leftplus', + 'leftspace', + 'left', + 'length', + 'level', + 'like', + 'line-count', + 'line-size', + 'lines', + 'line', + 'load', + 'long', + 'lower', + 'low', + 'lpi', + + 'matches', + 'match', + 'mail', + 'major-id', + 'max', + 'medium', + 'memory', + 'message-id', + 'module', + 'minor-id', + 'min', + 'mm/dd/yyyy', + 'mm/dd/yy', + 'mmddyy', + 'mode', + 'modifier', + 'mod', + 'monetary', + + 'name', + 'nb', + 'ne', + 'next', + 'no-display', + 'no-extension', + 'no-gap', + 'no-gaps', + 'no-grouping', + 'no-heading', + 'no-scrolling', + 'no-sign', + 'no-title', + 'no-topofpage', + 'no-zero', + 'nodes', + 'non-unicode', + 'no', + 'number', + 'nmax', + 'nmin', + 'not', + 'null', + 'numeric', + 'numofchar', + + 'o', + 'objects', + 'obligatory', + 'occurs', + 'offset', + 'off', + 'of', + 'only', + 'open', + 'option', + 'optional', + 'options', + 'output-length', + 'output', + 'out', + 'on change of', + 'or', + 'others', + + 'pad', + 'page', + 'pages', + 'parameter-table', + 'part', + 'performing', + 'pos_high', + 'pos_low', + 'priority', + 'public', + 'pushbutton', + + 'queue-only', + 'quickinfo', + + 'raising', + 'range', + 'read-only', + 'received', + 'receiver', + 'receiving', + 'redefinition', + 'reference', + 'regex', + 'replacing', + 'reset', + 'responsible', + 'result', + 'results', + 'resumable', + 'returncode', + 'returning', + 'right', + 'right-specified', + 'rightplus', + 'rightspace', + 'round', + 'rows', + 'repeat', + 'requested', + 'rescale', + 'reverse', + + 'scale_preserving', + 'scale_preserving_scientific', + 'scientific', + 'scientific_with_leading_zero', + 'screen', + 'scrolling', + 'seconds', + 'segment', + 'shift_left', + 'shift_right', + 'sign', + 'simple', + 'sin', + 'sinh', + 'short', + 'shortdump-id', + 'sign_as_postfix', + 'single', + 'size', + 'some', + 'source', + 'space', + 'spots', + 'stable', + 'state', + 'static', + 'statusinfo', + 'sqrt', + 'string', + 'strlen', + 'structure', + 'style', + 'subkey', + 'submatches', + 'substring', + 'substring_after', + 'substring_before', + 'substring_from', + 'substring_to', + 'super', + 'supplied', + 'switch', + + 'tan', + 'tanh', + 'table_line', + 'table', + 'tab', + 'then', + 'timestamp', + 'times', + 'time', + 'timezone', + 'title-lines', + 'title', + 'top-lines', + 'to', + 'to_lower', + 'to_mixed', + 'to_upper', + 'trace-file', + 'trace-table', + 'transporting', + 'trunc', + 'type', + + 'under', + 'unique', + 'unit', + 'user-command', + 'using', + 'utf-8', + + 'valid', + 'value', + 'value-request', + 'values', + 'vary', + 'varying', + 'version', + + 'warning', + 'where', + 'width', + 'with', + 'word', + 'with-heading', + 'with-title', + + 'xsequence', + 'xstring', + 'xstrlen', + + 'yes', + 'yymmdd', + + 'z', + 'zero' + + ), + + //********************************************************** + // screen statements + //********************************************************** + + 5 => array( + 'call subscreen', + 'chain', + 'endchain', + 'on chain-input', + 'on chain-request', + 'on help-request', + 'on input', + 'on request', + 'on value-request', + 'process' + ), + + //********************************************************** + // internal statements + //********************************************************** + + 6 => array( + 'generate dynpro', + 'generate report', + 'import dynpro', + 'import nametab', + 'include methods', + 'load report', + 'scan abap-source', + 'scan and check abap-source', + 'syntax-check for dynpro', + 'syntax-check for program', + 'syntax-trace', + 'system-call', + 'system-exit', + 'verification-message' + ), + + //********************************************************** + // Control statements + //********************************************************** + + 1 => array( + 'assert', + 'case', + 'catch', + 'check', + 'cleanup', + 'continue', + 'do', + 'else', + 'elseif', + 'endat', + 'endcase', + 'endcatch', + 'endif', + 'enddo', + 'endloop', + 'endtry', + 'endwhile', + 'exit', + 'if', + 'loop', + 'resume', + 'retry', + 'return', + 'stop', + 'try', + 'when', + 'while' + + ), + + //********************************************************** + // variable declaration statements + //********************************************************** + + 2 => array( + 'class-data', + 'controls', + 'constants', + 'data', + 'field-symbols', + 'fields', + 'local', + 'parameters', + 'ranges', + 'select-options', + 'statics', + 'tables', + 'type-pools', + 'types' + ) + ), + 'SYMBOLS' => array( + 0 => array( + '->*', '->', '=>', + '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '!', '%', '^', '&', ':', ',', '.' + ), + 1 => array( + '>=', '<=', '<', '>', '=' + ), + 2 => 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: #000066; text-transform: uppercase; font-weight: bold; zzz:control;', //control statements + 2 => 'color: #cc4050; text-transform: uppercase; font-weight: bold; zzz:data;', //data statements + 3 => 'color: #005066; text-transform: uppercase; font-weight: bold; zzz:statement;', //first token of other statements + 4 => 'color: #500066; text-transform: uppercase; font-weight: bold; zzz:keyword;', // next tokens of other statements ("keywords") + 5 => 'color: #005066; text-transform: uppercase; font-weight: bold; zzz:statement;', + 6 => 'color: #000066; text-transform: uppercase; font-weight: bold; zzz:control;', + 7 => 'color: #000066; text-transform: uppercase; font-weight: bold; zzz:control;', + 8 => 'color: #005066; text-transform: uppercase; font-weight: bold; zzz:statement;', + 9 => 'color: #500066; text-transform: uppercase; font-weight: bold; zzz:keyword;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 2 => 'color: #339933;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #808080;' + ), + 'STRINGS' => array( + 0 => 'color: #4da619;' + ), + 'NUMBERS' => array( + 0 => 'color: #3399ff;' + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #808080;', + 1 => 'color: #800080;', + 2 => 'color: #0000ff;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => 'http://help.sap.com/abapdocu/en/ABAP{FNAMEU}.htm', + 2 => 'http://help.sap.com/abapdocu/en/ABAP{FNAMEU}.htm', + 3 => 'http://help.sap.com/abapdocu/en/ABAP{FNAMEU}.htm', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '->', + 2 => '=>' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 7 => array( + 'SPACE_AS_WHITESPACE' => true + ), + 8 => array( + 'SPACE_AS_WHITESPACE' => true + ), + 9 => array( + 'SPACE_AS_WHITESPACE' => true + ) + ) + ), + 'TAB_WIDTH' => 4 +); + +?> \ No newline at end of file diff --git a/Sources/geshi/actionscript.php b/Sources/geshi/actionscript.php new file mode 100644 index 0000000..08e5b49 --- /dev/null +++ b/Sources/geshi/actionscript.php @@ -0,0 +1,197 @@ + 'ActionScript', + 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + '#include', 'for', 'foreach', 'each', 'if', 'elseif', 'else', 'while', 'do', 'dowhile', + 'endwhile', 'endif', 'switch', 'case', 'endswitch', 'return', 'break', 'continue', 'in' + ), + 2 => array( + 'null', 'false', 'true', 'var', + 'default', 'function', 'class', + 'new', '_global' + ), + 3 => array( + '#endinitclip', '#initclip', '__proto__', '_accProps', '_alpha', '_currentframe', + '_droptarget', '_focusrect', '_framesloaded', '_height', '_highquality', '_lockroot', + '_name', '_parent', '_quality', '_root', '_rotation', '_soundbuftime', '_target', '_totalframes', + '_url', '_visible', '_width', '_x', '_xmouse', '_xscale', '_y', '_ymouse', '_yscale', 'abs', + 'Accessibility', 'acos', 'activityLevel', 'add', 'addListener', 'addPage', 'addProperty', + 'addRequestHeader', 'align', 'allowDomain', 'allowInsecureDomain', 'and', 'appendChild', + 'apply', 'Arguments', 'Array', 'asfunction', 'asin', 'atan', 'atan2', 'attachAudio', 'attachMovie', + 'attachSound', 'attachVideo', 'attributes', 'autosize', 'avHardwareDisable', 'background', + 'backgroundColor', 'BACKSPACE', 'bandwidth', 'beginFill', 'beginGradientFill', 'blockIndent', + 'bold', 'Boolean', 'border', 'borderColor', 'bottomScroll', 'bufferLength', 'bufferTime', + 'builtInItems', 'bullet', 'Button', 'bytesLoaded', 'bytesTotal', 'call', 'callee', 'caller', + 'Camera', 'capabilities', 'CAPSLOCK', 'caption', 'catch', 'ceil', 'charAt', 'charCodeAt', + 'childNodes', 'chr', 'clear', 'clearInterval', 'cloneNode', 'close', 'Color', 'concat', + 'connect', 'condenseWhite', 'constructor', 'contentType', 'ContextMenu', 'ContextMenuItem', + 'CONTROL', 'copy', 'cos', 'createElement', 'createEmptyMovieClip', 'createTextField', + 'createTextNode', 'currentFps', 'curveTo', 'CustomActions', 'customItems', 'data', 'Date', + 'deblocking', 'delete', 'DELETEKEY', 'docTypeDecl', 'domain', 'DOWN', + 'duplicateMovieClip', 'duration', 'dynamic', 'E', 'embedFonts', 'enabled', + 'END', 'endFill', 'ENTER', 'eq', 'Error', 'ESCAPE(Konstante)', 'escape(Funktion)', 'eval', + 'exactSettings', 'exp', 'extends', 'finally', 'findText', 'firstChild', 'floor', + 'flush', 'focusEnabled', 'font', 'fps', 'fromCharCode', 'fscommand', + 'gain', 'ge', 'get', 'getAscii', 'getBeginIndex', 'getBounds', 'getBytesLoaded', 'getBytesTotal', + 'getCaretIndex', 'getCode', 'getCount', 'getDate', 'getDay', 'getDepth', 'getEndIndex', 'getFocus', + 'getFontList', 'getFullYear', 'getHours', 'getInstanceAtDepth', 'getLocal', 'getMilliseconds', + 'getMinutes', 'getMonth', 'getNewTextFormat', 'getNextHighestDepth', 'getPan', 'getProgress', + 'getProperty', 'getRGB', 'getSeconds', 'getSelected', 'getSelectedText', 'getSize', 'getStyle', + 'getStyleNames', 'getSWFVersion', 'getText', 'getTextExtent', 'getTextFormat', 'getTextSnapshot', + 'getTime', 'getTimer', 'getTimezoneOffset', 'getTransform', 'getURL', 'getUTCDate', 'getUTCDay', + 'getUTCFullYear', 'getUTCHours', 'getUTCMilliseconds', 'getUTCMinutes', 'getUTCMonth', 'getUTCSeconds', + 'getVersion', 'getVolume', 'getYear', 'globalToLocal', 'goto', 'gotoAndPlay', 'gotoAndStop', + 'hasAccessibility', 'hasAudio', 'hasAudioEncoder', 'hasChildNodes', 'hasEmbeddedVideo', 'hasMP3', + 'hasPrinting', 'hasScreenBroadcast', 'hasScreenPlayback', 'hasStreamingAudio', 'hasStreamingVideo', + 'hasVideoEncoder', 'height', 'hide', 'hideBuiltInItems', 'hitArea', 'hitTest', 'hitTestTextNearPos', + 'HOME', 'hscroll', 'html', 'htmlText', 'ID3', 'ifFrameLoaded', 'ignoreWhite', 'implements', + 'import', 'indent', 'index', 'indexOf', 'Infinity', '-Infinity', 'INSERT', 'insertBefore', 'install', + 'instanceof', 'int', 'interface', 'isActive', 'isDebugger', 'isDown', 'isFinite', 'isNaN', 'isToggled', + 'italic', 'join', 'Key', 'language', 'lastChild', 'lastIndexOf', 'le', 'leading', 'LEFT', 'leftMargin', + 'length', 'level', 'lineStyle', 'lineTo', 'list', 'LN10', 'LN2', 'load', 'loadClip', 'loaded', 'loadMovie', + 'loadMovieNum', 'loadSound', 'loadVariables', 'loadVariablesNum', 'LoadVars', 'LocalConnection', + 'localFileReadDisable', 'localToGlobal', 'log', 'LOG10E', 'LOG2E', 'manufacturer', 'Math', 'max', + 'MAX_VALUE', 'maxChars', 'maxhscroll', 'maxscroll', 'mbchr', 'mblength', 'mbord', 'mbsubstring', 'menu', + 'message', 'Microphone', 'min', 'MIN_VALUE', 'MMExecute', 'motionLevel', 'motionTimeOut', 'Mouse', + 'mouseWheelEnabled', 'moveTo', 'Movieclip', 'MovieClipLoader', 'multiline', 'muted', 'name', 'names', 'NaN', + 'ne', 'NEGATIVE_INFINITY', 'NetConnection', 'NetStream', 'newline', 'nextFrame', + 'nextScene', 'nextSibling', 'nodeName', 'nodeType', 'nodeValue', 'not', 'Number', 'Object', + 'on', 'onActivity', 'onChanged', 'onClipEvent', 'onClose', 'onConnect', 'onData', 'onDragOut', + 'onDragOver', 'onEnterFrame', 'onID3', 'onKeyDown', 'onKeyUp', 'onKillFocus', 'onLoad', 'onLoadComplete', + 'onLoadError', 'onLoadInit', 'onLoadProgress', 'onLoadStart', 'onMouseDown', 'onMouseMove', 'onMouseUp', + 'onMouseWheel', 'onPress', 'onRelease', 'onReleaseOutside', 'onResize', 'onRollOut', 'onRollOver', + 'onScroller', 'onSelect', 'onSetFocus', 'onSoundComplete', 'onStatus', 'onUnload', 'onUpdate', 'onXML', + 'or(logischesOR)', 'ord', 'os', 'parentNode', 'parseCSS', 'parseFloat', 'parseInt', 'parseXML', 'password', + 'pause', 'PGDN', 'PGUP', 'PI', 'pixelAspectRatio', 'play', 'playerType', 'pop', 'position', + 'POSITIVE_INFINITY', 'pow', 'prevFrame', 'previousSibling', 'prevScene', 'print', 'printAsBitmap', + 'printAsBitmapNum', 'PrintJob', 'printNum', 'private', 'prototype', 'public', 'push', 'quality', + 'random', 'rate', 'registerClass', 'removeListener', 'removeMovieClip', 'removeNode', 'removeTextField', + 'replaceSel', 'replaceText', 'resolutionX', 'resolutionY', 'restrict', 'reverse', 'RIGHT', + 'rightMargin', 'round', 'scaleMode', 'screenColor', 'screenDPI', 'screenResolutionX', 'screenResolutionY', + 'scroll', 'seek', 'selectable', 'Selection', 'send', 'sendAndLoad', 'separatorBefore', 'serverString', + 'set', 'setvariable', 'setBufferTime', 'setClipboard', 'setDate', 'setFocus', 'setFullYear', 'setGain', + 'setHours', 'setInterval', 'setMask', 'setMilliseconds', 'setMinutes', 'setMode', 'setMonth', + 'setMotionLevel', 'setNewTextFormat', 'setPan', 'setProperty', 'setQuality', 'setRate', 'setRGB', + 'setSeconds', 'setSelectColor', 'setSelected', 'setSelection', 'setSilenceLevel', 'setStyle', + 'setTextFormat', 'setTime', 'setTransform', 'setUseEchoSuppression', 'setUTCDate', 'setUTCFullYear', + 'setUTCHours', 'setUTCMilliseconds', 'setUTCMinutes', 'setUTCMonth', 'setUTCSeconds', 'setVolume', + 'setYear', 'SharedObject', 'SHIFT(Konstante)', 'shift(Methode)', 'show', 'showMenu', 'showSettings', + 'silenceLevel', 'silenceTimeout', 'sin', 'size', 'slice', 'smoothing', 'sort', 'sortOn', 'Sound', 'SPACE', + 'splice', 'split', 'sqrt', 'SQRT1_2', 'SQRT2', 'Stage', 'start', 'startDrag', 'static', 'status', 'stop', + 'stopAllSounds', 'stopDrag', 'String', 'StyleSheet(Klasse)', 'styleSheet(Eigenschaft)', 'substr', + 'substring', 'super', 'swapDepths', 'System', 'TAB', 'tabChildren', 'tabEnabled', 'tabIndex', + 'tabStops', 'tan', 'target', 'targetPath', 'tellTarget', 'text', 'textColor', 'TextField', 'TextFormat', + 'textHeight', 'TextSnapshot', 'textWidth', 'this', 'throw', 'time', 'toggleHighQuality', 'toLowerCase', + 'toString', 'toUpperCase', 'trace', 'trackAsMenu', 'try', 'type', 'typeof', 'undefined', + 'underline', 'unescape', 'uninstall', 'unloadClip', 'unloadMovie', 'unLoadMovieNum', 'unshift', 'unwatch', + 'UP', 'updateAfterEvent', 'updateProperties', 'url', 'useCodePage', 'useEchoSuppression', 'useHandCursor', + 'UTC', 'valueOf', 'variable', 'version', 'Video', 'visible', 'void', 'watch', 'width', + 'with', 'wordwrap', 'XML', 'xmlDecl', 'XMLNode', 'XMLSocket' + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #0066CC;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 2 => 'color: #808080; font-style: italic;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;' + ), + 'METHODS' => array( + 1 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); + +?> \ No newline at end of file diff --git a/Sources/geshi/actionscript3.php b/Sources/geshi/actionscript3.php new file mode 100644 index 0000000..189d714 --- /dev/null +++ b/Sources/geshi/actionscript3.php @@ -0,0 +1,473 @@ + 'ActionScript 3', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array( + //Regular expressions + 2 => "/(?<=[\\s^])(s|tr|y)\\/(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])+(? GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'with', 'while', 'void', 'undefined', 'typeof', 'try', 'true', + 'throw', 'this', 'switch', 'super', 'set', 'return', 'public', 'protected', + 'private', 'null', 'new', 'is', 'internal', 'instanceof', 'in', + 'import', 'if', 'get', 'for', 'false', 'else', 'each', 'do', + 'delete', 'default', 'continue', 'catch', 'case', 'break', 'as', + 'extends', 'override' + ), + 2 => array( + 'var' + ), + 3 => array( + 'function' + ), + 4 => array( + 'class', 'package' + ), + 6 => array( + 'flash.xml', 'flash.utils', 'flash.ui', 'flash.text', + 'flash.system', 'flash.profiler', 'flash.printing', 'flash.net', + 'flash.media', 'flash.geom', 'flash.filters', 'flash.external', + 'flash.events', 'flash.errors', 'flash.display', + 'flash.accessibility' + ), + 7 => array( + 'zoom', 'year', 'y', 'xmlDecl', 'x', 'writeUnsignedInt', + 'writeUTFBytes', 'writeUTF', 'writeShort', 'writeObject', + 'writeMultiByte', 'writeInt', 'writeFloat', 'writeExternal', + 'writeDynamicProperty', 'writeDynamicProperties', 'writeDouble', + 'writeBytes', 'writeByte', 'writeBoolean', 'wordWrap', + 'willTrigger', 'width', 'volume', 'visible', 'videoWidth', + 'videoHeight', 'version', 'valueOf', 'value', 'usingTLS', + 'useRichTextClipboard', 'useHandCursor', 'useEchoSuppression', + 'useCodePage', 'url', 'uri', 'uploadCompleteData', 'upload', + 'updateProperties', 'updateAfterEvent', 'upState', 'unshift', + 'unlock', 'unload', 'union', 'unescapeMultiByte', 'unescape', + 'underline', 'uncompress', 'type', 'ty', 'tx', 'transparent', + 'translate', 'transformPoint', 'transform', 'trackAsMenu', 'track', + 'trace', 'totalMemory', 'totalFrames', 'topLeft', 'top', + 'togglePause', 'toXMLString', 'toUpperCase', 'toUTCString', + 'toTimeString', 'toString', 'toPrecision', 'toLowerCase', + 'toLocaleUpperCase', 'toLocaleTimeString', 'toLocaleString', + 'toLocaleLowerCase', 'toLocaleDateString', 'toFixed', + 'toExponential', 'toDateString', 'timezoneOffset', 'timerComplete', + 'timer', 'time', 'threshold', 'thickness', 'textWidth', + 'textSnapshot', 'textInput', 'textHeight', 'textColor', 'text', + 'test', 'target', 'tan', 'tabStops', 'tabIndexChange', 'tabIndex', + 'tabEnabledChange', 'tabEnabled', 'tabChildrenChange', + 'tabChildren', 'sync', 'swfVersion', 'swapChildrenAt', + 'swapChildren', 'subtract', 'substring', 'substr', 'styleSheet', + 'styleNames', 'strength', 'stopPropagation', + 'stopImmediatePropagation', 'stopDrag', 'stopAll', 'stop', 'status', + 'startDrag', 'start', 'stageY', 'stageX', 'stageWidth', + 'stageHeight', 'stageFocusRect', 'stage', 'sqrt', 'split', 'splice', + 'source', 'soundTransform', 'soundComplete', 'sortOn', 'sort', + 'songName', 'some', 'socketData', 'smoothing', 'slice', 'size', + 'sin', 'silent', 'silenceTimeout', 'silenceLevel', 'showSettings', + 'showRedrawRegions', 'showDefaultContextMenu', 'show', 'shortcut', + 'shiftKey', 'shift', 'sharpness', 'sharedEvents', 'shadowColor', + 'shadowAlpha', 'settings', 'setUseEchoSuppression', 'setUTCSeconds', + 'setUTCMonth', 'setUTCMinutes', 'setUTCMilliseconds', 'setUTCHours', + 'setUTCFullYear', 'setUTCDate', 'setTimeout', 'setTime', + 'setTextFormat', 'setStyle', 'setSilenceLevel', 'setSettings', + 'setSelection', 'setSelected', 'setSelectColor', 'setSeconds', + 'setQuality', 'setPropertyIsEnumerable', 'setProperty', 'setPixels', + 'setPixel32', 'setPixel', 'setNamespace', 'setName', + 'setMotionLevel', 'setMonth', 'setMode', 'setMinutes', + 'setMilliseconds', 'setLoopback', 'setLoopBack', 'setLocalName', + 'setKeyFrameInterval', 'setInterval', 'setHours', 'setFullYear', + 'setEmpty', 'setDirty', 'setDate', 'setCompositionString', + 'setClipboard', 'setChildren', 'setChildIndex', + 'setAdvancedAntiAliasingTable', 'serverString', 'separatorBefore', + 'sendToURL', 'send', 'selectionEndIndex', 'selectionBeginIndex', + 'selectable', 'select', 'seek', 'securityError', 'securityDomain', + 'secondsUTC', 'seconds', 'search', 'scrollV', 'scrollRect', + 'scrollH', 'scroll', 'screenResolutionY', 'screenResolutionX', + 'screenDPI', 'screenColor', 'scenes', 'scaleY', 'scaleX', + 'scaleMode', 'scale9Grid', 'scale', 'save', 'sandboxType', + 'sameDomain', 'running', 'round', 'rotation', 'rotate', 'root', + 'rollOver', 'rollOut', 'rightToRight', 'rightToLeft', 'rightPeak', + 'rightMargin', 'right', 'rewind', 'reverse', 'resume', 'restrict', + 'resize', 'reset', 'requestHeaders', 'replaceText', + 'replaceSelectedText', 'replace', 'repeatCount', 'render', + 'removedFromStage', 'removed', 'removeNode', 'removeNamespace', + 'removeEventListener', 'removeChildAt', 'removeChild', + 'relatedObject', 'registerFont', 'registerClassAlias', 'redOffset', + 'redMultiplier', 'rect', 'receiveVideo', 'receiveAudio', + 'readUnsignedShort', 'readUnsignedInt', 'readUnsignedByte', + 'readUTFBytes', 'readUTF', 'readShort', 'readObject', + 'readMultiByte', 'readInt', 'readFloat', 'readExternal', + 'readDouble', 'readBytes', 'readByte', 'readBoolean', 'ratios', + 'rate', 'random', 'quality', 'push', 'publish', 'proxyType', + 'prototype', 'propertyIsEnumerable', 'progress', + 'processingInstructions', 'printAsBitmap', 'print', + 'previousSibling', 'preventDefault', 'prevScene', 'prevFrame', + 'prettyPrinting', 'prettyIndent', 'preserveAlpha', 'prependChild', + 'prefix', 'pow', 'position', 'pop', 'polar', 'playerType', 'play', + 'pixelSnapping', 'pixelDissolve', 'pixelBounds', 'pixelAspectRatio', + 'perlinNoise', 'pause', 'parseXML', 'parseInt', 'parseFloat', + 'parseCSS', 'parse', 'parentNode', 'parentDomain', + 'parentAllowsChild', 'parent', 'parameters', 'paperWidth', + 'paperHeight', 'pan', 'paletteMap', 'pageWidth', 'pageHeight', + 'overState', 'outsideCutoff', 'os', 'orientation', 'open', + 'opaqueBackground', 'onPlayStatus', 'onMetaData', 'onCuePoint', + 'offsetPoint', 'offset', 'objectID', 'objectEncoding', 'numLock', + 'numLines', 'numFrames', 'numChildren', 'normalize', 'noise', + 'nodeValue', 'nodeType', 'nodeName', 'nodeKind', 'noAutoLabeling', + 'nextValue', 'nextSibling', 'nextScene', 'nextNameIndex', + 'nextName', 'nextFrame', 'netStatus', 'navigateToURL', + 'namespaceURI', 'namespaceDeclarations', 'namespace', 'names', + 'name', 'muted', 'multiline', 'moveTo', 'mouseY', 'mouseX', + 'mouseWheelEnabled', 'mouseWheel', 'mouseUp', 'mouseTarget', + 'mouseOver', 'mouseOut', 'mouseMove', 'mouseLeave', + 'mouseFocusChange', 'mouseEnabled', 'mouseDown', 'mouseChildren', + 'motionTimeout', 'motionLevel', 'monthUTC', 'month', + 'modificationDate', 'mode', 'minutesUTC', 'minutes', 'min', + 'millisecondsUTC', 'milliseconds', 'method', 'message', 'merge', + 'menuSelect', 'menuItemSelect', 'maxScrollV', 'maxScrollH', + 'maxLevel', 'maxChars', 'max', 'matrixY', 'matrixX', 'matrix', + 'match', 'mask', 'mapPoint', 'mapBitmap', 'map', 'manufacturer', + 'macType', 'loopback', 'loop', 'log', 'lock', 'localeCompare', + 'localY', 'localX', 'localToGlobal', 'localName', + 'localFileReadDisable', 'loaderURL', 'loaderInfo', 'loader', + 'loadPolicyFile', 'loadBytes', 'load', 'liveDelay', 'link', + 'lineTo', 'lineStyle', 'lineGradientStyle', 'level', + 'letterSpacing', 'length', 'leftToRight', 'leftToLeft', 'leftPeak', + 'leftMargin', 'left', 'leading', 'lastIndexOf', 'lastIndex', + 'lastChild', 'language', 'labels', 'knockout', 'keyUp', + 'keyLocation', 'keyFrameInterval', 'keyFocusChange', 'keyDown', + 'keyCode', 'kerning', 'join', 'italic', 'isXMLName', + 'isPrototypeOf', 'isNaN', 'isFocusInaccessible', 'isFinite', + 'isEmpty', 'isDefaultPrevented', 'isDebugger', 'isBuffering', + 'isAttribute', 'isAccessible', 'ioError', 'invert', 'invalidate', + 'intersects', 'intersection', 'interpolate', 'insideCutoff', + 'insertChildBefore', 'insertChildAfter', 'insertBefore', 'inner', + 'init', 'info', 'inflatePoint', 'inflate', 'indexOf', 'index', + 'indent', 'inScopeNamespaces', 'imeComposition', 'ime', + 'ignoreWhitespace', 'ignoreWhite', 'ignoreProcessingInstructions', + 'ignoreComments', 'ignoreCase', 'identity', 'idMap', 'id3', + 'httpStatus', 'htmlText', 'hoursUTC', 'hours', 'hitTestTextNearPos', + 'hitTestState', 'hitTestPoint', 'hitTestObject', 'hitTest', + 'hitArea', 'highlightColor', 'highlightAlpha', 'hideObject', + 'hideBuiltInItems', 'hide', 'height', 'hasVideoEncoder', 'hasTLS', + 'hasStreamingVideo', 'hasStreamingAudio', 'hasSimpleContent', + 'hasScreenPlayback', 'hasScreenBroadcast', 'hasProperty', + 'hasPrinting', 'hasOwnProperty', 'hasMP3', 'hasIME', 'hasGlyphs', + 'hasEventListener', 'hasEmbeddedVideo', 'hasDefinition', + 'hasComplexContent', 'hasChildNodes', 'hasAudioEncoder', 'hasAudio', + 'hasAccessibility', 'gridFitType', 'greenOffset', 'greenMultiplier', + 'graphics', 'gotoAndStop', 'gotoAndPlay', 'globalToLocal', 'global', + 'getUTCSeconds', 'getUTCMonth', 'getUTCMinutes', + 'getUTCMilliseconds', 'getUTCHours', 'getUTCFullYear', 'getUTCDay', + 'getUTCDate', 'getTimezoneOffset', 'getTimer', 'getTime', + 'getTextRunInfo', 'getTextFormat', 'getText', 'getStyle', + 'getStackTrace', 'getSelectedText', 'getSelected', 'getSeconds', + 'getRemote', 'getRect', 'getQualifiedSuperclassName', + 'getQualifiedClassName', 'getProperty', 'getPrefixForNamespace', + 'getPixels', 'getPixel32', 'getPixel', 'getParagraphLength', + 'getObjectsUnderPoint', 'getNamespaceForPrefix', 'getMonth', + 'getMinutes', 'getMilliseconds', 'getMicrophone', 'getLocal', + 'getLineText', 'getLineOffset', 'getLineMetrics', 'getLineLength', + 'getLineIndexOfChar', 'getLineIndexAtPoint', 'getImageReference', + 'getHours', 'getFullYear', 'getFirstCharInParagraph', + 'getDescendants', 'getDefinitionByName', 'getDefinition', 'getDay', + 'getDate', 'getColorBoundsRect', 'getClassByAlias', 'getChildIndex', + 'getChildByName', 'getChildAt', 'getCharIndexAtPoint', + 'getCharBoundaries', 'getCamera', 'getBounds', 'genre', + 'generateFilterRect', 'gain', 'fullYearUTC', 'fullYear', + 'fullScreen', 'fscommand', 'fromCharCode', 'framesLoaded', + 'frameRate', 'frame', 'fps', 'forwardAndBack', 'formatToString', + 'forceSimple', 'forEach', 'fontType', 'fontStyle', 'fontSize', + 'fontName', 'font', 'focusRect', 'focusOut', 'focusIn', 'focus', + 'flush', 'floor', 'floodFill', 'firstChild', 'findText', 'filters', + 'filter', 'fillRect', 'fileList', 'extension', 'extended', 'exp', + 'exec', 'exactSettings', 'every', 'eventPhase', 'escapeMultiByte', + 'escape', 'errorID', 'error', 'equals', 'enumerateFonts', + 'enterFrame', 'endian', 'endFill', 'encodeURIComponent', + 'encodeURI', 'enabled', 'embedFonts', 'elements', + 'dynamicPropertyWriter', 'dropTarget', 'drawRoundRect', 'drawRect', + 'drawEllipse', 'drawCircle', 'draw', 'download', 'downState', + 'doubleClickEnabled', 'doubleClick', 'dotall', 'domain', + 'docTypeDecl', 'doConversion', 'divisor', 'distance', 'dispose', + 'displayState', 'displayMode', 'displayAsPassword', 'dispatchEvent', + 'description', 'describeType', 'descent', 'descendants', + 'deltaTransformPoint', 'delta', 'deleteProperty', 'delay', + 'defaultTextFormat', 'defaultSettings', 'defaultObjectEncoding', + 'decodeURIComponent', 'decodeURI', 'decode', 'deblocking', + 'deactivate', 'dayUTC', 'day', 'dateUTC', 'date', 'dataFormat', + 'data', 'd', 'customItems', 'curveTo', 'currentTarget', + 'currentScene', 'currentLabels', 'currentLabel', 'currentFrame', + 'currentFPS', 'currentDomain', 'currentCount', 'ctrlKey', 'creator', + 'creationDate', 'createTextNode', 'createGradientBox', + 'createElement', 'createBox', 'cos', 'copyPixels', 'copyChannel', + 'copy', 'conversionMode', 'contextMenuOwner', 'contextMenu', + 'contentType', 'contentLoaderInfo', 'content', 'containsRect', + 'containsPoint', 'contains', 'constructor', 'connectedProxyType', + 'connected', 'connect', 'condenseWhite', 'concatenatedMatrix', + 'concatenatedColorTransform', 'concat', 'computeSpectrum', + 'compress', 'componentY', 'componentX', 'complete', 'compare', + 'comments', 'comment', 'colors', 'colorTransform', 'color', 'code', + 'close', 'cloneNode', 'clone', 'client', 'click', 'clearTimeout', + 'clearInterval', 'clear', 'clamp', 'children', 'childNodes', + 'childIndex', 'childAllowsParent', 'child', 'checkPolicyFile', + 'charCount', 'charCodeAt', 'charCode', 'charAt', 'changeList', + 'change', 'ceil', 'caretIndex', 'caption', 'capsLock', 'cancelable', + 'cancel', 'callee', 'callProperty', 'call', 'cacheAsBitmap', 'c', + 'bytesTotal', 'bytesLoaded', 'bytesAvailable', 'buttonMode', + 'buttonDown', 'bullet', 'builtInItems', 'bufferTime', + 'bufferLength', 'bubbles', 'browse', 'bottomScrollV', 'bottomRight', + 'bottom', 'borderColor', 'border', 'bold', 'blurY', 'blurX', + 'blueOffset', 'blueMultiplier', 'blockIndent', 'blendMode', + 'bitmapData', 'bias', 'beginGradientFill', 'beginFill', + 'beginBitmapFill', 'bandwidth', 'backgroundColor', 'background', + 'b', 'available', 'avHardwareDisable', 'autoSize', 'attributes', + 'attribute', 'attachNetStream', 'attachCamera', 'attachAudio', + 'atan2', 'atan', 'asyncError', 'asin', 'ascent', 'artist', + 'areSoundsInaccessible', 'areInaccessibleObjectsUnderPoint', + 'applyFilter', 'apply', 'applicationDomain', 'appendText', + 'appendChild', 'antiAliasType', 'angle', 'alwaysShowSelection', + 'altKey', 'alphas', 'alphaOffset', 'alphaMultiplier', 'alpha', + 'allowInsecureDomain', 'allowDomain', 'align', 'album', + 'addedToStage', 'added', 'addPage', 'addNamespace', 'addHeader', + 'addEventListener', 'addChildAt', 'addChild', 'addCallback', 'add', + 'activityLevel', 'activity', 'active', 'activating', 'activate', + 'actionScriptVersion', 'acos', 'accessibilityProperties', 'abs' + ), + 8 => array( + 'WRAP', 'VERTICAL', 'VARIABLES', + 'UTC', 'UPLOAD_COMPLETE_DATA', 'UP', 'UNLOAD', 'UNKNOWN', + 'UNIQUESORT', 'TOP_RIGHT', 'TOP_LEFT', 'TOP', 'TIMER_COMPLETE', + 'TIMER', 'TEXT_NODE', 'TEXT_INPUT', 'TEXT', 'TAB_INDEX_CHANGE', + 'TAB_ENABLED_CHANGE', 'TAB_CHILDREN_CHANGE', 'TAB', 'SYNC', + 'SUBTRACT', 'SUBPIXEL', 'STATUS', 'STANDARD', 'SQUARE', 'SQRT2', + 'SQRT1_2', 'SPACE', 'SOUND_COMPLETE', 'SOCKET_DATA', 'SHOW_ALL', + 'SHIFT', 'SETTINGS_MANAGER', 'SELECT', 'SECURITY_ERROR', 'SCROLL', + 'SCREEN', 'ROUND', 'ROLL_OVER', 'ROLL_OUT', 'RIGHT', 'RGB', + 'RETURNINDEXEDARRAY', 'RESIZE', 'REPEAT', 'RENDER', + 'REMOVED_FROM_STAGE', 'REMOVED', 'REMOTE', 'REGULAR', 'REFLECT', + 'RED', 'RADIAL', 'PROGRESS', 'PRIVACY', 'POST', 'POSITIVE_INFINITY', + 'PORTRAIT', 'PIXEL', 'PI', 'PENDING', 'PAGE_UP', 'PAGE_DOWN', 'PAD', + 'OVERLAY', 'OUTER', 'OPEN', 'NaN', 'NUM_PAD', 'NUMPAD_SUBTRACT', + 'NUMPAD_MULTIPLY', 'NUMPAD_ENTER', 'NUMPAD_DIVIDE', + 'NUMPAD_DECIMAL', 'NUMPAD_ADD', 'NUMPAD_9', 'NUMPAD_8', 'NUMPAD_7', + 'NUMPAD_6', 'NUMPAD_5', 'NUMPAD_4', 'NUMPAD_3', 'NUMPAD_2', + 'NUMPAD_1', 'NUMPAD_0', 'NUMERIC', 'NO_SCALE', 'NO_BORDER', + 'NORMAL', 'NONE', 'NEVER', 'NET_STATUS', 'NEGATIVE_INFINITY', + 'MULTIPLY', 'MOUSE_WHEEL', 'MOUSE_UP', 'MOUSE_OVER', 'MOUSE_OUT', + 'MOUSE_MOVE', 'MOUSE_LEAVE', 'MOUSE_FOCUS_CHANGE', 'MOUSE_DOWN', + 'MITER', 'MIN_VALUE', 'MICROPHONE', 'MENU_SELECT', + 'MENU_ITEM_SELECT', 'MEDIUM', 'MAX_VALUE', 'LOW', 'LOG2E', 'LOG10E', + 'LOCAL_WITH_NETWORK', 'LOCAL_WITH_FILE', 'LOCAL_TRUSTED', + 'LOCAL_STORAGE', 'LN2', 'LN10', 'LITTLE_ENDIAN', 'LINK', + 'LINEAR_RGB', 'LINEAR', 'LIGHT_COLOR', 'LIGHTEN', 'LEFT', 'LCD', + 'LAYER', 'LANDSCAPE', 'KOREAN', 'KEY_UP', 'KEY_FOCUS_CHANGE', + 'KEY_DOWN', 'JUSTIFY', 'JAPANESE_KATAKANA_HALF', + 'JAPANESE_KATAKANA_FULL', 'JAPANESE_HIRAGANA', 'Infinity', 'ITALIC', + 'IO_ERROR', 'INVERT', 'INSERT', 'INPUT', 'INNER', 'INIT', + 'IME_COMPOSITION', 'IGNORE', 'ID3', 'HTTP_STATUS', 'HORIZONTAL', + 'HOME', 'HIGH', 'HARDLIGHT', 'GREEN', 'GET', 'FULLSCREEN', 'FULL', + 'FOCUS_OUT', 'FOCUS_IN', 'FLUSHED', 'FLASH9', 'FLASH8', 'FLASH7', + 'FLASH6', 'FLASH5', 'FLASH4', 'FLASH3', 'FLASH2', 'FLASH1', 'F9', + 'F8', 'F7', 'F6', 'F5', 'F4', 'F3', 'F2', 'F15', 'F14', 'F13', + 'F12', 'F11', 'F10', 'F1', 'EXACT_FIT', 'ESCAPE', 'ERROR', 'ERASE', + 'ENTER_FRAME', 'ENTER', 'END', 'EMBEDDED', 'ELEMENT_NODE', 'E', + 'DYNAMIC', 'DOWN', 'DOUBLE_CLICK', 'DIFFERENCE', 'DEVICE', + 'DESCENDING', 'DELETE', 'DEFAULT', 'DEACTIVATE', 'DATA', + 'DARK_COLOR', 'DARKEN', 'CRT', 'CONTROL', 'CONNECT', 'COMPLETE', + 'COLOR', 'CLOSE', 'CLICK', 'CLAMP', 'CHINESE', 'CHANGE', 'CENTER', + 'CASEINSENSITIVE', 'CAPTURING_PHASE', 'CAPS_LOCK', 'CANCEL', + 'CAMERA', 'BUBBLING_PHASE', 'BOTTOM_RIGHT', 'BOTTOM_LEFT', 'BOTTOM', + 'BOLD_ITALIC', 'BOLD', 'BLUE', 'BINARY', 'BIG_ENDIAN', 'BEVEL', + 'BEST', 'BACKSPACE', 'AUTO', 'AT_TARGET', 'ASYNC_ERROR', 'AMF3', + 'AMF0', 'ALWAYS', 'ALPHANUMERIC_HALF', 'ALPHANUMERIC_FULL', 'ALPHA', + 'ADVANCED', 'ADDED_TO_STAGE', 'ADDED', 'ADD', 'ACTIVITY', + 'ACTIONSCRIPT3', 'ACTIONSCRIPT2' + ), + //FIX: Must be last in order to avoid conflicts with keywords present + //in other keyword groups, that might get highlighted as part of the URL. + //I know this is not a proper work-around, but should do just fine. + 5 => array( + 'uint', 'int', 'arguments', 'XMLSocket', 'XMLNodeType', 'XMLNode', + 'XMLList', 'XMLDocument', 'XML', 'Video', 'VerifyError', + 'URLVariables', 'URLStream', 'URLRequestMethod', 'URLRequestHeader', + 'URLRequest', 'URLLoaderDataFormat', 'URLLoader', 'URIError', + 'TypeError', 'Transform', 'TimerEvent', 'Timer', 'TextSnapshot', + 'TextRenderer', 'TextLineMetrics', 'TextFormatAlign', 'TextFormat', + 'TextFieldType', 'TextFieldAutoSize', 'TextField', 'TextEvent', + 'TextDisplayMode', 'TextColorType', 'System', 'SyntaxError', + 'SyncEvent', 'StyleSheet', 'String', 'StatusEvent', 'StaticText', + 'StageScaleMode', 'StageQuality', 'StageAlign', 'Stage', + 'StackOverflowError', 'Sprite', 'SpreadMethod', 'SoundTransform', + 'SoundMixer', 'SoundLoaderContext', 'SoundChannel', 'Sound', + 'Socket', 'SimpleButton', 'SharedObjectFlushStatus', 'SharedObject', + 'Shape', 'SecurityPanel', 'SecurityErrorEvent', 'SecurityError', + 'SecurityDomain', 'Security', 'ScriptTimeoutError', 'Scene', + 'SWFVersion', 'Responder', 'RegExp', 'ReferenceError', 'Rectangle', + 'RangeError', 'QName', 'Proxy', 'ProgressEvent', + 'PrintJobOrientation', 'PrintJobOptions', 'PrintJob', 'Point', + 'PixelSnapping', 'ObjectEncoding', 'Object', 'Number', 'NetStream', + 'NetStatusEvent', 'NetConnection', 'Namespace', 'MovieClip', + 'MouseEvent', 'Mouse', 'MorphShape', 'Microphone', 'MemoryError', + 'Matrix', 'Math', 'LocalConnection', 'LoaderInfo', 'LoaderContext', + 'Loader', 'LineScaleMode', 'KeyboardEvent', 'Keyboard', + 'KeyLocation', 'JointStyle', 'InvalidSWFError', + 'InterpolationMethod', 'InteractiveObject', 'IllegalOperationError', + 'IOErrorEvent', 'IOError', 'IMEEvent', 'IMEConversionMode', 'IME', + 'IExternalizable', 'IEventDispatcher', 'IDynamicPropertyWriter', + 'IDynamicPropertyOutput', 'IDataOutput', 'IDataInput', 'ID3Info', + 'IBitmapDrawable', 'HTTPStatusEvent', 'GridFitType', 'Graphics', + 'GradientType', 'GradientGlowFilter', 'GradientBevelFilter', + 'GlowFilter', 'Function', 'FrameLabel', 'FontType', 'FontStyle', + 'Font', 'FocusEvent', 'FileReferenceList', 'FileReference', + 'FileFilter', 'ExternalInterface', 'EventPhase', 'EventDispatcher', + 'Event', 'EvalError', 'ErrorEvent', 'Error', 'Endian', 'EOFError', + 'DropShadowFilter', 'DisplayObjectContainer', 'DisplayObject', + 'DisplacementMapFilterMode', 'DisplacementMapFilter', 'Dictionary', + 'DefinitionError', 'Date', 'DataEvent', 'ConvolutionFilter', + 'ContextMenuItem', 'ContextMenuEvent', 'ContextMenuBuiltInItems', + 'ContextMenu', 'ColorTransform', 'ColorMatrixFilter', 'Class', + 'CapsStyle', 'Capabilities', 'Camera', 'CSMSettings', 'ByteArray', + 'Boolean', 'BlurFilter', 'BlendMode', 'BitmapFilterType', + 'BitmapFilterQuality', 'BitmapFilter', 'BitmapDataChannel', + 'BitmapData', 'Bitmap', 'BevelFilter', 'AsyncErrorEvent', 'Array', + 'ArgumentError', 'ApplicationDomain', 'AntiAliasType', + 'ActivityEvent', 'ActionScriptVersion', 'AccessibilityProperties', + 'Accessibility', 'AVM1Movie' + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '{', '}', '!', '%', '&', '*', '|', '/', '<', '>', '^', '-', '+', '~', '?', ':', ';', '.', ',' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0033ff; font-weight: bold;', + 2 => 'color: #6699cc; font-weight: bold;', + 3 => 'color: #339966; font-weight: bold;', + 4 => 'color: #9900cc; font-weight: bold;', + 5 => 'color: #004993;', + 6 => 'color: #004993;', + 7 => 'color: #004993;', + 8 => 'color: #004993;' + ), + 'COMMENTS' => array( + 1 => 'color: #009900; font-style: italic;', + 2 => 'color: #009966; font-style: italic;', + 'MULTI' => 'color: #3f5fbf;' + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #990000;' + ), + 'NUMBERS' => array( + 0 => 'color: #000000; font-weight:bold;' + ), + 'METHODS' => array( + 0 => 'color: #000000;', + ), + 'SYMBOLS' => array( + 0 => 'color: #000066; font-weight: bold;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => 'http://www.google.com/search?q={FNAMEL}%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:{FNAMEL}.html', + 6 => '', + 7 => '', + 8 => '' + ), + 'OOLANG' => false,//Save some time as OO identifiers aren't used + 'OBJECT_SPLITTERS' => array( + // commented out because it's not very relevant for AS, as all properties, methods and constants are dot-accessed. + // I believe it's preferable to have package highlighting for example, which is not possible with this enabled. + // 0 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); + +?> \ No newline at end of file diff --git a/Sources/geshi/ada.php b/Sources/geshi/ada.php new file mode 100644 index 0000000..c4ef2c3 --- /dev/null +++ b/Sources/geshi/ada.php @@ -0,0 +1,135 @@ + 'Ada', + 'COMMENT_SINGLE' => array(1 => '--'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'begin', 'declare', 'do', 'else', 'elsif', 'exception', 'for', 'if', + 'is', 'loop', 'while', 'then', 'end', 'select', 'case', 'until', + 'goto', 'return' + ), + 2 => array( + 'abs', 'and', 'at', 'mod', 'not', 'or', 'rem', 'xor' + ), + 3 => array( + 'abort', 'abstract', 'accept', 'access', 'aliased', 'all', 'array', + 'body', 'constant', 'delay', 'delta', 'digits', 'entry', 'exit', + 'function', 'generic', 'in', 'interface', 'limited', 'new', 'null', + 'of', 'others', 'out', 'overriding', 'package', 'pragma', 'private', + 'procedure', 'protected', 'raise', 'range', 'record', 'renames', + 'requeue', 'reverse', 'separate', 'subtype', 'synchronized', + 'tagged', 'task', 'terminate', 'type', 'use', 'when', 'with' + ) + ), + 'SYMBOLS' => array( + '(', ')' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00007f;', + 2 => 'color: #0000ff;', + 3 => 'color: #46aa03; font-weight:bold;', + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'COMMENTS' => array( + 1 => 'color: #adadad; font-style: italic;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #66cc66;' + ), + 'STRINGS' => array( + 0 => 'color: #7f007f;' + ), + 'NUMBERS' => array( + 0 => 'color: #ff0000;' + ), + 'METHODS' => array( + 1 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #66cc66;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?> \ No newline at end of file diff --git a/Sources/geshi/algol68.php b/Sources/geshi/algol68.php new file mode 100644 index 0000000..5b1e5aa --- /dev/null +++ b/Sources/geshi/algol68.php @@ -0,0 +1,329 @@ + $prebits.$LONGS."(?:".$bl.")".$postbits, + "INT" => $preint.$LONGS."(?:".$il.")".$postint, + "REAL" => $prereal.$LONGS."(?:".$rl.")".$postreal, + + "BOLD" => 'color: #b1b100; font-weight: bold;', + "ITALIC" => 'color: #b1b100;', # procedures traditionally italic # + "NONSTD" => 'color: #FF0000; font-weight: bold;', # RED # + "COMMENT" => 'color: #666666; font-style: italic;' + ); + } +} +$a68=geshi_langfile_algol68_vars(); + +$language_data = array( + 'LANG_NAME' => 'ALGOL 68', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array( + '¢' => '¢', + '£' => '£', + '#' => '#', + ), + 'COMMENT_REGEXP' => array( + 1 => '/\bCO((?:MMENT)?)\b.*?\bCO\\1\b/i', + 2 => '/\bPR((?:AGMAT)?)\b.*?\bPR\\1\b/i', + 3 => '/\bQUOTE\b.*?\bQUOTE\b/i' + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '"', + 'NUMBERS' => GESHI_NUMBER_HEX_SUFFIX, # Warning: Feature!! # +# GESHI_NUMBER_HEX_SUFFIX, # Attempt ignore default # + 'KEYWORDS' => array( +# Extensions + 1 => array('KEEP', 'FINISH', 'USE', 'SYSPROCS', 'IOSTATE', 'USING', 'ENVIRON', 'PROGRAM', 'CONTEXT'), +# 2 => array('CASE', 'IN', 'OUSE', 'IN', 'OUT', 'ESAC', '(', '|', '|:', ')', 'FOR', 'FROM', 'TO', 'BY', 'WHILE', 'DO', 'OD', 'IF', 'THEN', 'ELIF', 'THEN', 'ELSE', 'FI', 'PAR', 'BEGIN', 'EXIT', 'END', 'GO', 'GOTO', 'FORALL', 'UPTO', 'DOWNTO', 'FOREACH', 'ASSERT'), # + 2 => array('CASE', 'IN', 'OUSE', /* 'IN',*/ 'OUT', 'ESAC', 'PAR', 'BEGIN', 'EXIT', 'END', 'GO TO', 'GOTO', 'FOR', 'FROM', 'TO', 'BY', 'WHILE', 'DO', 'OD', 'IF', 'THEN', 'ELIF', /* 'THEN',*/ 'ELSE', 'FI' ), + 3 => array('BITS', 'BOOL', 'BYTES', 'CHAR', 'COMPL', 'INT', 'REAL', 'SEMA', 'STRING', 'VOID'), + 4 => array('MODE', 'OP', 'PRIO', 'PROC', 'FLEX', 'HEAP', 'LOC', 'REF', 'LONG', 'SHORT', 'EITHER'), +# Extensions or deprecated keywords +# 'PIPE': keyword somehow interferes with the internal operation of GeSHi + 5 => array('FORALL', 'UPTO', 'DOWNTO', 'FOREACH', 'ASSERT', 'CTB', 'CT', 'CTAB', 'COMPLEX', 'VECTOR', 'SOUND' /*, 'PIPE'*/), + 6 => array('CHANNEL', 'FILE', 'FORMAT', 'STRUCT', 'UNION', 'OF'), +# '(', '|', '|:', ')', # +# 7 => array('OF', 'AT', '@', 'IS', ':=:', 'ISNT', ':/=:', ':≠:', 'CTB', 'CT', '::', 'CTAB', '::=', 'TRUE', 'FALSE', 'EMPTY', 'NIL', 'â—‹', 'SKIP', '~'), + 7 => array('AT', 'IS', 'ISNT', 'TRUE', 'FALSE', 'EMPTY', 'NIL', 'SKIP'), + 8 => array('NOT', 'UP', 'DOWN', 'LWB', 'UPB', /* '-',*/ 'ABS', 'ARG', 'BIN', 'ENTIER', 'LENG', 'LEVEL', 'ODD', 'REPR', 'ROUND', 'SHORTEN', 'CONJ', 'SIGN'), +# OPERATORS ordered roughtly by PRIORITY # +# 9 => array('¬', '↑', '↓', '⌊', '⌈', '~', '⎩', '⎧'), +# 10 => array('+*', 'I', '+×', '⊥', '!', 'â¨'), + 10 => array('I'), +# 11 => array('SHL', 'SHR', '**', 'UP', 'DOWN', 'LWB', 'UPB', '↑', '↓', '⌊', '⌈', '⎩', '⎧'), + 11 => array('SHL', 'SHR', /*'UP', 'DOWN', 'LWB', 'UPB'*/), +# 12 => array('*', '/', '%', 'OVER', '%*', 'MOD', 'ELEM', '×', '÷', '÷×', '÷*', '%×', 'â–¡', '÷:'), + 12 => array('OVER', 'MOD', 'ELEM'), +# 13 => array('-', '+'), +# 14 => array('<', 'LT', '<=', 'LE', '>=', 'GE', '>', 'GT', '≤', '≥'), + 14 => array('LT', 'LE', 'GE', 'GT'), +# 15 => array('=', 'EQ', '/=', 'NE', '≠', '~='), + 15 => array('EQ', 'NE'), +# 16 => array('&', 'AND', '∧', 'OR', '∨', '/\\', '\\/'), + 16 => array('AND', 'OR'), + 17 => array('MINUSAB', 'PLUSAB', 'TIMESAB', 'DIVAB', 'OVERAB', 'MODAB', 'PLUSTO'), +# 18 => array('-:=', '+:=', '*:=', '/:=', '%:=', '%*:=', '+=:', '×:=', '÷:=', '÷×:=', '÷*:=', '%×:=', '÷::=', 'MINUS', 'PLUS', 'DIV', 'MOD', 'PRUS'), +# Extensions or deprecated keywords + 18 => array('MINUS', 'PLUS', 'DIV', /* 'MOD',*/ 'PRUS', 'IS NOT'), +# Extensions or deprecated keywords + 19 => array('THEF', 'ANDF', 'ORF', 'ANDTH', 'OREL', 'ANDTHEN', 'ORELSE'), +# Built in procedures - from standard prelude # + 20 => array('int lengths', 'intlengths', 'int shorths', 'intshorths', 'max int', 'maxint', 'real lengths', 'reallengths', 'real shorths', 'realshorths', 'bits lengths', 'bitslengths', 'bits shorths', 'bitsshorths', 'bytes lengths', 'byteslengths', 'bytes shorths', 'bytesshorths', 'max abs char', 'maxabschar', 'int width', 'intwidth', 'long int width', 'longintwidth', 'long long int width', 'longlongintwidth', 'real width', 'realwidth', 'long real width', 'longrealwidth', 'long long real width', 'longlongrealwidth', 'exp width', 'expwidth', 'long exp width', 'longexpwidth', 'long long exp width', 'longlongexpwidth', 'bits width', 'bitswidth', 'long bits width', 'longbitswidth', 'long long bits width', 'longlongbitswidth', 'bytes width', 'byteswidth', 'long bytes width', 'longbyteswidth', 'max real', 'maxreal', 'small real', 'smallreal', 'long max int', 'longmaxint', 'long long max int', 'longlongmaxint', 'long max real', 'longmaxreal', 'long small real', 'longsmallreal', 'long long max real', 'longlongmaxreal', 'long long small real', 'longlongsmallreal', 'long max bits', 'longmaxbits', 'long long max bits', 'longlongmaxbits', 'null character', 'nullcharacter', 'blank', 'flip', 'flop', 'error char', 'errorchar', 'exp char', 'expchar', 'newline char', 'newlinechar', 'formfeed char', 'formfeedchar', 'tab char', 'tabchar'), + 21 => array('stand in channel', 'standinchannel', 'stand out channel', 'standoutchannel', 'stand back channel', 'standbackchannel', 'stand draw channel', 'standdrawchannel', 'stand error channel', 'standerrorchannel'), + 22 => array('put possible', 'putpossible', 'get possible', 'getpossible', 'bin possible', 'binpossible', 'set possible', 'setpossible', 'reset possible', 'resetpossible', 'reidf possible', 'reidfpossible', 'draw possible', 'drawpossible', 'compressible', 'on logical file end', 'onlogicalfileend', 'on physical file end', 'onphysicalfileend', 'on line end', 'onlineend', 'on page end', 'onpageend', 'on format end', 'onformatend', 'on value error', 'onvalueerror', 'on open error', 'onopenerror', 'on transput error', 'ontransputerror', 'on format error', 'onformaterror', 'open', 'establish', 'create', 'associate', 'close', 'lock', 'scratch', 'space', 'new line', 'newline', 'print', 'write f', 'writef', 'print f', 'printf', 'write bin', 'writebin', 'print bin', 'printbin', 'read f', 'readf', 'read bin', 'readbin', 'put f', 'putf', 'get f', 'getf', 'make term', 'maketerm', 'make device', 'makedevice', 'idf', 'term', 'read int', 'readint', 'read long int', 'readlongint', 'read long long int', 'readlonglongint', 'read real', 'readreal', 'read long real', 'readlongreal', 'read long long real', 'readlonglongreal', 'read complex', 'readcomplex', 'read long complex', 'readlongcomplex', 'read long long complex', 'readlonglongcomplex', 'read bool', 'readbool', 'read bits', 'readbits', 'read long bits', 'readlongbits', 'read long long bits', 'readlonglongbits', 'read char', 'readchar', 'read string', 'readstring', 'print int', 'printint', 'print long int', 'printlongint', 'print long long int', 'printlonglongint', 'print real', 'printreal', 'print long real', 'printlongreal', 'print long long real', 'printlonglongreal', 'print complex', 'printcomplex', 'print long complex', 'printlongcomplex', 'print long long complex', 'printlonglongcomplex', 'print bool', 'printbool', 'print bits', 'printbits', 'print long bits', 'printlongbits', 'print long long bits', 'printlonglongbits', 'print char', 'printchar', 'print string', 'printstring', 'whole', 'fixed', 'float'), + 23 => array('pi', 'long pi', 'longpi', 'long long pi', 'longlongpi'), + 24 => array('sqrt', 'curt', 'cbrt', 'exp', 'ln', 'log', 'sin', 'arc sin', 'arcsin', 'cos', 'arc cos', 'arccos', 'tan', 'arc tan', 'arctan', 'long sqrt', 'longsqrt', 'long curt', 'longcurt', 'long cbrt', 'longcbrt', 'long exp', 'longexp', 'long ln', 'longln', 'long log', 'longlog', 'long sin', 'longsin', 'long arc sin', 'longarcsin', 'long cos', 'longcos', 'long arc cos', 'longarccos', 'long tan', 'longtan', 'long arc tan', 'longarctan', 'long long sqrt', 'longlongsqrt', 'long long curt', 'longlongcurt', 'long long cbrt', 'longlongcbrt', 'long long exp', 'longlongexp', 'long long ln', 'longlongln', 'long long log', 'longlonglog', 'long long sin', 'longlongsin', 'long long arc sin', 'longlongarcsin', 'long long cos', 'longlongcos', 'long long arc cos', 'longlongarccos', 'long long tan', 'longlongtan', 'long long arc tan', 'longlongarctan'), + 25 => array('first random', 'firstrandom', 'next random', 'nextrandom', 'long next random', 'longnextrandom', 'long long next random', 'longlongnextrandom'), + 26 => array('real', 'bits pack', 'bitspack', 'long bits pack', 'longbitspack', 'long long bits pack', 'longlongbitspack', 'bytes pack', 'bytespack', 'long bytes pack', 'longbytespack', 'char in string', 'charinstring', 'last char in string', 'lastcharinstring', 'string in string', 'stringinstring'), + 27 => array('utc time', 'utctime', 'local time', 'localtime', 'argc', 'argv', 'get env', 'getenv', 'reset errno', 'reseterrno', 'errno', 'strerror'), + 28 => array('sinh', 'long sinh', 'longsinh', 'long long sinh', 'longlongsinh', 'arc sinh', 'arcsinh', 'long arc sinh', 'longarcsinh', 'long long arc sinh', 'longlongarcsinh', 'cosh', 'long cosh', 'longcosh', 'long long cosh', 'longlongcosh', 'arc cosh', 'arccosh', 'long arc cosh', 'longarccosh', 'long long arc cosh', 'longlongarccosh', 'tanh', 'long tanh', 'longtanh', 'long long tanh', 'longlongtanh', 'arc tanh', 'arctanh', 'long arc tanh', 'longarctanh', 'long long arc tanh', 'longlongarctanh', 'arc tan2', 'arctan2', 'long arc tan2', 'longarctan2', 'long long arc tan2', 'longlongarctan2'), + 29 => array('complex sqrt', 'complexsqrt', 'long complex sqrt', 'longcomplexsqrt', 'long long complex sqrt', 'longlongcomplexsqrt', 'complex exp', 'complexexp', 'long complex exp', 'longcomplexexp', 'long long complex exp', 'longlongcomplexexp', 'complex ln', 'complexln', 'long complex ln', 'longcomplexln', 'long long complex ln', 'longlongcomplexln', 'complex sin', 'complexsin', 'long complex sin', 'longcomplexsin', 'long long complex sin', 'longlongcomplexsin', 'complex arc sin', 'complexarcsin', 'long complex arc sin', 'longcomplexarcsin', 'long long complex arc sin', 'longlongcomplexarcsin', 'complex cos', 'complexcos', 'long complex cos', 'longcomplexcos', 'long long complex cos', 'longlongcomplexcos', 'complex arc cos', 'complexarccos', 'long complex arc cos', 'longcomplexarccos', 'long long complex arc cos', 'longlongcomplexarccos', 'complex tan', 'complextan', 'long complex tan', 'longcomplextan', 'long long complex tan', 'longlongcomplextan', 'complex arc tan', 'complexarctan', 'long complex arc tan', 'longcomplexarctan', 'long long complex arc tan', 'longlongcomplexarctan', 'complex sinh', 'complexsinh', 'complex arc sinh', 'complexarcsinh', 'complex cosh', 'complexcosh', 'complex arc cosh', 'complexarccosh', 'complex tanh', 'complextanh', 'complex arc tanh', 'complexarctanh') + ), + 'SYMBOLS' => array( + 1 => array( /* reverse length sorted... */ '÷×:=', '%×:=', ':≠:', '÷*:=', '÷::=', '%*:=', ':/=:', '×:=', '÷:=', '÷×', '%:=', '%×', '*:=', '+:=', '+=:', '+×', '-:=', '/:=', '::=', ':=:', '÷*', '÷:', '↑', '↓', '∧', '∨', '≠', '≤', '≥', '⊥', '⌈', '⌊', '⎧', '⎩', /* 'â¨', */ 'â–¡', 'â—‹', '%*', '**', '+*', '/=', '::', '/\\', '\\/', '<=', '>=', '|:', '~=', '¬', '×', '÷', '!', '%', '&', '(', ')', '*', '+', ',', '-', '/', ':', ';', '<', '=', '>', '?', '@', '[', ']', '^', '{', '|', '}', '~') + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true, +# 9 => true, + 10 => true, + 11 => true, + 12 => true, +# 13 => true, + 14 => true, + 15 => true, + 16 => true, + 17 => true, + 18 => true, + 19 => true, + 20 => true, + 21 => true, + 22 => true, + 23 => true, + 24 => true, + 25 => true, + 26 => true, + 27 => true, + 28 => true, + 29 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => $a68['NONSTD'], 2 => $a68['BOLD'], 3 => $a68['BOLD'], 4 => $a68['BOLD'], + 5 => $a68['NONSTD'], 6 => $a68['BOLD'], 7 => $a68['BOLD'], 8 => $a68['BOLD'], + /* 9 => $a68['BOLD'],*/ 10 => $a68['BOLD'], 11 => $a68['BOLD'], 12 => $a68['BOLD'], + /* 13 => $a68['BOLD'],*/ 14 => $a68['BOLD'], 15 => $a68['BOLD'], 16 => $a68['BOLD'], 17 => $a68['BOLD'], + 18 => $a68['NONSTD'], 19 => $a68['NONSTD'], + 20 => $a68['ITALIC'], 21 => $a68['ITALIC'], 22 => $a68['ITALIC'], 23 => $a68['ITALIC'], + 24 => $a68['ITALIC'], 25 => $a68['ITALIC'], 26 => $a68['ITALIC'], 27 => $a68['ITALIC'], + 28 => $a68['ITALIC'], 29 => $a68['ITALIC'] + ), + 'COMMENTS' => array( + 1 => $a68['COMMENT'], 2 => $a68['COMMENT'], 3 => $a68['COMMENT'], /* 4 => $a68['COMMENT'], + 5 => $a68['COMMENT'],*/ 'MULTI' => $a68['COMMENT'] + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #0000ff;' + ), + 'NUMBERS' => array( + 0 => 'color: #cc66cc;', + ), + 'METHODS' => array( + 0 => 'color: #004000;', + 1 => 'color: #004000;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;', + 1 => 'color: #339933;' + ), + 'REGEXPS' => array( + 0 => 'color: #cc66cc;', # BITS # + 1 => 'color: #cc66cc;', # REAL # + /* 2 => 'color: #cc66cc;', # INT # */ + ), + 'SCRIPT' => array() + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', +# 9 => '', + 10 => '', + 11 => '', + 12 => '', +# 13 => '', + 14 => '', + 15 => '', + 16 => '', + 17 => '', + 18 => '', + 19 => '', + 20 => '', + 21 => '', + 22 => '', + 23 => '', + 24 => '', + 25 => '', + 26 => '', + 27 => '', + 28 => '', + 29 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 0 => '→', + 1 => 'OF' + ), + 'REGEXPS' => array( + 0 => $a68['BITS'], + 1 => $a68['REAL'] + # 2 => $a68['INT'], # Breaks formatting for some reason # + # 2 => $GESHI_NUMBER_INT_BASIC # Also breaks formatting # + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); + +unset($a68); +?> \ No newline at end of file diff --git a/Sources/geshi/apache.php b/Sources/geshi/apache.php new file mode 100644 index 0000000..c944443 --- /dev/null +++ b/Sources/geshi/apache.php @@ -0,0 +1,483 @@ + 'Apache configuration', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + /*keywords*/ + 1 => array( + //core.c + 'AcceptFilter','AcceptPathInfo','AccessConfig','AccessFileName', + 'AddDefaultCharset','AddOutputFilterByType','AllowEncodedSlashes', + 'AllowOverride','AuthName','AuthType','ContentDigest', + 'CoreDumpDirectory','DefaultType','DocumentRoot','EnableMMAP', + 'EnableSendfile','ErrorDocument','ErrorLog','FileETag','ForceType', + 'HostnameLookups','Include','LimitInternalRecursion', + 'LimitRequestBody','LimitRequestFields','LimitRequestFieldsize', + 'LimitRequestLine','LimitXMLRequestBody','LogLevel','MaxMemFree', + 'MaxRequestsPerChild','NameVirtualHost','Options','PidFile','Port', + 'Protocol','Require','RLimitCPU','RLimitMEM','RLimitNPROC', + 'Satisfy','ScoreBoardFile','ServerAdmin','ServerAlias','ServerName', + 'ServerPath','ServerRoot','ServerSignature','ServerTokens', + 'SetHandler','SetInputFilter','SetOutputFilter','ThreadStackSize', + 'Timeout','TraceEnable','UseCanonicalName', + 'UseCanonicalPhysicalPort', + + //http_core.c + 'KeepAlive','KeepAliveTimeout','MaxKeepAliveRequests', + + //mod_actions.c + 'Action','Script', + + //mod_alias.c + 'Alias','AliasMatch','Redirect','RedirectMatch','RedirectPermanent', + 'RedirectTemp','ScriptAlias','ScriptAliasMatch', + + //mod_asis.c + + //mod_auth_basic.c + 'AuthBasicAuthoritative','AuthBasicProvider', + + //mod_auth_digest.c + 'AuthDigestAlgorithm','AuthDigestDomain','AuthDigestNcCheck', + 'AuthDigestNonceFormat','AuthDigestNonceLifetime', + 'AuthDigestProvider','AuthDigestQop','AuthDigestShmemSize', + + //mod_authn_alias.c + + //mod_authn_anon.c + 'Anonymous','Anonymous_LogEmail','Anonymous_MustGiveEmail', + 'Anonymous_NoUserId','Anonymous_VerifyEmail', + + //mod_authn_dbd.c + 'AuthDBDUserPWQuery','AuthDBDUserRealmQuery', + + //mod_authn_dbm.c + 'AuthDBMType','AuthDBMUserFile', + + //mod_authn_default.c + 'AuthDefaultAuthoritative', + + //mod_authn_file.c + 'AuthUserFile', + + //mod_authnz_ldap.c + 'AuthLDAPBindDN','AuthLDAPBindPassword','AuthLDAPCharsetConfig', + 'AuthLDAPCompareDNOnServer','AuthLDAPDereferenceAliases', + 'AuthLDAPGroupAttribute','AuthLDAPGroupAttributeIsDN', + 'AuthLDAPRemoteUserAttribute','AuthLDAPRemoteUserIsDN', + 'AuthLDAPURL','AuthzLDAPAuthoritative', + + //mod_authz_dbm.c + 'AuthDBMGroupFile','AuthzDBMAuthoritative','AuthzDBMType', + + //mod_authz_default.c + 'AuthzDefaultAuthoritative', + + //mod_authz_groupfile.c + 'AuthGroupFile','AuthzGroupFileAuthoritative', + + //mod_authz_host.c + 'Allow','Deny','Order', + + //mod_authz_owner.c + 'AuthzOwnerAuthoritative', + + //mod_authz_svn.c + 'AuthzForceUsernameCase','AuthzSVNAccessFile','AuthzSVNAnonymous', + 'AuthzSVNAuthoritative','AuthzSVNNoAuthWhenAnonymousAllowed', + + //mod_authz_user.c + 'AuthzUserAuthoritative', + + //mod_autoindex.c + 'AddAlt','AddAltByEncoding','AddAltByType','AddDescription', + 'AddIcon','AddIconByEncoding','AddIconByType','DefaultIcon', + 'FancyIndexing','HeaderName','IndexHeadInsert','IndexIgnore', + 'IndexOptions','IndexOrderDefault','IndexStyleSheet','ReadmeName', + + //mod_bt.c + 'Tracker','TrackerDetailURL','TrackerFlags','TrackerHashMaxAge', + 'TrackerHashMinAge','TrackerHashWatermark','TrackerHome', + 'TrackerReturnInterval','TrackerReturnMax', + 'TrackerReturnPeerFactor','TrackerReturnPeers','TrackerRootInclude', + 'TrackerStyleSheet', + + //mod_bw.c + 'BandWidth','BandWidthError','BandWidthModule','BandWidthPacket', + 'ForceBandWidthModule','LargeFileLimit','MaxConnection', + 'MinBandWidth', + + //mod_cache.c + 'CacheDefaultExpire','CacheDisable','CacheEnable', + 'CacheIgnoreCacheControl','CacheIgnoreHeaders', + 'CacheIgnoreNoLastMod','CacheIgnoreQueryString', + 'CacheLastModifiedFactor','CacheMaxExpire','CacheStoreNoStore', + 'CacheStorePrivate', + + //mod_cern_meta.c + 'MetaDir','MetaFiles','MetaSuffix', + + //mod_cgi.c + 'ScriptLog','ScriptLogBuffer','ScriptLogLength', + + //mod_charset_lite.c + 'CharsetDefault','CharsetOptions','CharsetSourceEnc', + + //mod_dav.c + 'DAV','DAVDepthInfinity','DAVMinTimeout', + + //mod_dav_fs.c + 'DAVLockDB', + + //mod_dav_lock.c + 'DAVGenericLockDB', + + //mod_dav_svn.c + 'SVNActivitiesDB','SVNAllowBulkUpdates','SVNAutoversioning', + 'SVNIndexXSLT','SVNListParentPath','SVNMasterURI','SVNParentPath', + 'SVNPath','SVNPathAuthz','SVNReposName','SVNSpecialURI', + + //mod_dbd.c + 'DBDExptime','DBDKeep','DBDMax','DBDMin','DBDParams','DBDPersist', + 'DBDPrepareSQL','DBDriver', + + //mod_deflate.c + 'DeflateBufferSize','DeflateCompressionLevel','DeflateFilterNote', + 'DeflateMemLevel','DeflateWindowSize', + + //mod_dir.c + 'DirectoryIndex','DirectorySlash', + + //mod_disk_cache.c + 'CacheDirLength','CacheDirLevels','CacheMaxFileSize', + 'CacheMinFileSize','CacheRoot', + + //mod_dumpio.c + 'DumpIOInput','DumpIOLogLevel','DumpIOOutput', + + //mod_env.c + 'PassEnv','SetEnv','UnsetEnv', + + //mod_expires.c + 'ExpiresActive','ExpiresByType','ExpiresDefault', + + //mod_ext_filter.c + 'ExtFilterDefine','ExtFilterOptions', + + //mod_file_cache.c + 'cachefile','mmapfile', + + //mod_filter.c + 'FilterChain','FilterDeclare','FilterProtocol','FilterProvider', + 'FilterTrace', + + //mod_gnutls.c + 'GnuTLSCache','GnuTLSCacheTimeout','GnuTLSCertificateFile', + 'GnuTLSKeyFile','GnuTLSPGPCertificateFile','GnuTLSPGPKeyFile', + 'GnuTLSClientVerify','GnuTLSClientCAFile','GnuTLSPGPKeyringFile', + 'GnuTLSEnable','GnuTLSDHFile','GnuTLSRSAFile','GnuTLSSRPPasswdFile', + 'GnuTLSSRPPasswdConfFile','GnuTLSPriorities', + 'GnuTLSExportCertificates', + + //mod_headers.c + 'Header','RequestHeader', + + //mod_imagemap.c + 'ImapBase','ImapDefault','ImapMenu', + + //mod_include.c + 'SSIAccessEnable','SSIEndTag','SSIErrorMsg','SSIStartTag', + 'SSITimeFormat','SSIUndefinedEcho','XBitHack', + + //mod_ident.c + 'IdentityCheck','IdentityCheckTimeout', + + //mod_info.c + 'AddModuleInfo', + + //mod_isapi.c + 'ISAPIAppendLogToErrors','ISAPIAppendLogToQuery','ISAPICacheFile', + 'ISAPIFakeAsync','ISAPILogNotSupported','ISAPIReadAheadBuffer', + + //mod_log_config.c + 'BufferedLogs','CookieLog','CustomLog','LogFormat','TransferLog', + + //mod_log_forensic.c + 'ForensicLog', + + //mod_log_rotate.c + 'RotateInterval','RotateLogs','RotateLogsLocalTime', + + //mod_logio.c + + //mod_mem_cache.c + 'MCacheMaxObjectCount','MCacheMaxObjectSize', + 'MCacheMaxStreamingBuffer','MCacheMinObjectSize', + 'MCacheRemovalAlgorithm','MCacheSize', + + //mod_mime.c + 'AddCharset','AddEncoding','AddHandler','AddInputFilter', + 'AddLanguage','AddOutputFilter','AddType','DefaultLanguage', + 'ModMimeUsePathInfo','MultiviewsMatch','RemoveCharset', + 'RemoveEncoding','RemoveHandler','RemoveInputFilter', + 'RemoveLanguage','RemoveOutputFilter','RemoveType','TypesConfig', + + //mod_mime_magic.c + 'MimeMagicFile', + + //mod_negotiation.c + 'CacheNegotiatedDocs','ForceLanguagePriority','LanguagePriority', + + //mod_php5.c + 'php_admin_flag','php_admin_value','php_flag','php_value', + 'PHPINIDir', + + //mod_proxy.c + 'AllowCONNECT','BalancerMember','NoProxy','ProxyBadHeader', + 'ProxyBlock','ProxyDomain','ProxyErrorOverride', + 'ProxyFtpDirCharset','ProxyIOBufferSize','ProxyMaxForwards', + 'ProxyPass','ProxyPassInterpolateEnv','ProxyPassMatch', + 'ProxyPassReverse','ProxyPassReverseCookieDomain', + 'ProxyPassReverseCookiePath','ProxyPreserveHost', + 'ProxyReceiveBufferSize','ProxyRemote','ProxyRemoteMatch', + 'ProxyRequests','ProxySet','ProxyStatus','ProxyTimeout','ProxyVia', + + //mod_proxy_ajp.c + + //mod_proxy_balancer.c + + //mod_proxy_connect.c + + //mod_proxy_ftp.c + + //mod_proxy_http.c + + //mod_rewrite.c + 'RewriteBase','RewriteCond','RewriteEngine','RewriteLock', + 'RewriteLog','RewriteLogLevel','RewriteMap','RewriteOptions', + 'RewriteRule', + + //mod_setenvif.c + 'BrowserMatch','BrowserMatchNoCase','SetEnvIf','SetEnvIfNoCase', + + //mod_so.c + 'LoadFile','LoadModule', + + //mod_speling.c + 'CheckCaseOnly','CheckSpelling', + + //mod_ssl.c + 'SSLCACertificateFile','SSLCACertificatePath','SSLCADNRequestFile', + 'SSLCADNRequestPath','SSLCARevocationFile','SSLCARevocationPath', + 'SSLCertificateChainFile','SSLCertificateFile', + 'SSLCertificateKeyFile','SSLCipherSuite','SSLCryptoDevice', + 'SSLEngine','SSLHonorCipherOrder','SSLMutex','SSLOptions', + 'SSLPassPhraseDialog','SSLProtocol','SSLProxyCACertificateFile', + 'SSLProxyCACertificatePath','SSLProxyCARevocationFile', + 'SSLProxyCARevocationPath','SSLProxyCipherSuite','SSLProxyEngine', + 'SSLProxyMachineCertificateFile','SSLProxyMachineCertificatePath', + 'SSLProxyProtocol','SSLProxyVerify','SSLProxyVerifyDepth', + 'SSLRandomSeed','SSLRenegBufferSize','SSLRequire','SSLRequireSSL', + 'SSLSessionCache','SSLSessionCacheTimeout','SSLUserName', + 'SSLVerifyClient','SSLVerifyDepth', + + //mod_status.c + 'ExtendedStatus','SeeRequestTail', + + //mod_substitute.c + 'Substitute', + + //mod_suexec.c + 'SuexecUserGroup', + + //mod_unique_id.c + + //mod_upload_progress + 'ReportUploads', 'TrackUploads', 'UploadProgressSharedMemorySize', + + //mod_userdir.c + 'UserDir', + + //mod_usertrack.c + 'CookieDomain','CookieExpires','CookieName','CookieStyle', + 'CookieTracking', + + //mod_version.c + + //mod_vhost_alias.c + 'VirtualDocumentRoot','VirtualDocumentRootIP', + 'VirtualScriptAlias','VirtualScriptAliasIP', + + //mod_view.c + 'ViewEnable', + + //mod_win32.c + 'ScriptInterpreterSource', + + //mpm_winnt.c + 'Listen','ListenBacklog','ReceiveBufferSize','SendBufferSize', + 'ThreadLimit','ThreadsPerChild','Win32DisableAcceptEx', + + //mpm_common.c + 'AcceptMutex','AddModule','ClearModuleList','EnableExceptionHook', + 'Group','LockFile','MaxClients','MaxSpareServers','MaxSpareThreads', + 'MinSpareServers','MinSpareThreads','ServerLimit','StartServers', + 'StartThreads','User', + + //util_ldap.c + 'LDAPCacheEntries','LDAPCacheTTL','LDAPConnectionTimeout', + 'LDAPOpCacheEntries','LDAPOpCacheTTL','LDAPSharedCacheFile', + 'LDAPSharedCacheSize','LDAPTrustedClientCert', + 'LDAPTrustedGlobalCert','LDAPTrustedMode','LDAPVerifyServerCert', + + //Unknown Mods ... + 'AgentLog','BindAddress','bs2000account','CacheForceCompletion', + 'CacheGCInterval','CacheSize','NoCache','qsc','RefererIgnore', + 'RefererLog','Resourceconfig','ServerType','SingleListen' + ), + /*keywords 2*/ + 2 => array( + 'all','on','off','standalone','inetd','indexes', + 'force-response-1.0','downgrade-1.0','nokeepalive', + 'includes','followsymlinks','none', + 'x-compress','x-gzip' + ), + /*keywords 3*/ + 3 => array( + //core.c + 'Directory','DirectoryMatch','Files','FilesMatch','IfDefine', + 'IfModule','Limit','LimitExcept','Location','LocationMatch', + 'VirtualHost', + + //mod_authn_alias.c + 'AuthnProviderAlias', + + //mod_proxy.c + 'Proxy','ProxyMatch', + + //mod_version.c + 'IfVersion' + ) + ), + 'SYMBOLS' => array( + '+', '-' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00007f;', + 2 => 'color: #0000ff;', + 3 => 'color: #000000; font-weight:bold;', + ), + 'COMMENTS' => array( + 1 => 'color: #adadad; font-style: italic;', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #339933;' + ), + 'STRINGS' => array( + 0 => 'color: #7f007f;' + ), + 'NUMBERS' => array( + 0 => 'color: #ff0000;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #008000;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'ENABLE_FLAGS' => array( + 'BRACKETS' => GESHI_NEVER, + 'SYMBOLS' => GESHI_NEVER + ), + 'KEYWORDS' => array( + 3 => array( + 'DISALLOWED_BEFORE' => '(?<=<|<\/)', + 'DISALLOWED_AFTER' => '(?=\s|\/|>)', + ) + ) + ) +); + +?> \ No newline at end of file diff --git a/Sources/geshi/applescript.php b/Sources/geshi/applescript.php new file mode 100644 index 0000000..603fa4a --- /dev/null +++ b/Sources/geshi/applescript.php @@ -0,0 +1,157 @@ + 'AppleScript', + 'COMMENT_SINGLE' => array(1 => '--'), + 'COMMENT_MULTI' => array( '(*' => '*)'), + 'COMMENT_REGEXP' => array( + 2 => '/(?<=[a-z])\'/i', + 3 => '/(? GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array( + 'application','close','count','delete','duplicate','exists','launch','make','move','open', + 'print','quit','reopen','run','save','saving', 'idle', 'path to', 'number', 'alias', 'list', 'text', 'string', + 'integer', 'it','me','version','pi','result','space','tab','anything','case','diacriticals','expansion', + 'hyphens','punctuation','bold','condensed','expanded','hidden','italic','outline','plain', + 'shadow','strikethrough','subscript','superscript','underline','ask','no','yes','false', 'id', + 'true','weekday','monday','mon','tuesday','tue','wednesday','wed','thursday','thu','friday', + 'fri','saturday','sat','sunday','sun','month','january','jan','february','feb','march', + 'mar','april','apr','may','june','jun','july','jul','august','aug','september', 'quote', 'do JavaScript', + 'sep','october','oct','november','nov','december','dec','minutes','hours', 'name', 'default answer', + 'days','weeks', 'folder', 'folders', 'file', 'files', 'window', 'eject', 'disk', 'reveal', 'sleep', + 'shut down', 'restart', 'display dialog', 'buttons', 'invisibles', 'item', 'items', 'delimiters', 'offset of', + 'AppleScript\'s', 'choose file', 'choose folder', 'choose from list', 'beep', 'contents', 'do shell script', + 'paragraph', 'paragraphs', 'missing value', 'quoted form', 'desktop', 'POSIX path', 'POSIX file', + 'activate', 'document', 'adding', 'receiving', 'content', 'new', 'properties', 'info for', 'bounds', + 'selection', 'extension', 'into', 'onto', 'by', 'between', 'against', 'set the clipboard to', 'the clipboard' + ), + 2 => array( + 'each','some','every','whose','where','index','first','second','third','fourth', + 'fifth','sixth','seventh','eighth','ninth','tenth','last','front','back','st','nd', + 'rd','th','middle','named','through','thru','before','after','beginning','the', 'as', + 'div','mod','and','not','or','contains','equal','equals','isnt', 'less', 'greater' + ), + 3 => array( + 'script','property','prop','end','to','set','global','local','on','of', + 'in','given','with','without','return','continue','tell','if','then','else','repeat', + 'times','while','until','from','exit','try','error','considering','ignoring','timeout', + 'transaction','my','get','put','is', 'copy' + ) + ), + 'SYMBOLS' => array( + ')','+','-','^','*','/','&','<','>=','<','<=','=','�' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0066ff;', + 2 => 'color: #ff0033;', + 3 => 'color: #ff0033; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #808080; font-style: italic;', + 2 => '', + 3 => 'color: #ff0000;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000000; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + 0 => 'color: #009900;' + ), + 'NUMBERS' => array( + 0 => 'color: #000000;' + ), + 'METHODS' => array( + 1 => 'color: #006600;', + 2 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000000;' + ), + 'REGEXPS' => array( + 0 => 'color: #339933;', + 4 => 'color: #0066ff;', + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => ',+-=<>/?^&*' + ), + 'REGEXPS' => array( + //Variables + 0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*', + //File descriptors + 4 => '<[a-zA-Z_][a-zA-Z0-9_]*>', + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'SPACE_AS_WHITESPACE' => true + ) + ) +); + +?> \ No newline at end of file diff --git a/Sources/geshi/apt_sources.php b/Sources/geshi/apt_sources.php new file mode 100644 index 0000000..9f1ed04 --- /dev/null +++ b/Sources/geshi/apt_sources.php @@ -0,0 +1,148 @@ + 'Apt sources', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array(), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + /*keywords*/ + 1 => array( + 'deb-src', 'deb' + ), + 2 => array( + //Generic + 'stable', 'old-stable', 'testing', 'testing-proposed-updates', + 'unstable', 'unstable-proposed-updates', 'experimental', + 'non-US', 'security', 'volatile', 'volatile-sloppy', + 'apt-build', + 'stable/updates', + //Debian + 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato', 'woody', 'sarge', + 'etch', 'lenny', 'wheezy', 'sid', + //Ubuntu + 'warty', 'warty-updates', 'warty-security', 'warty-proposed', 'warty-backports', + 'hoary', 'hoary-updates', 'hoary-security', 'hoary-proposed', 'hoary-backports', + 'breezy', 'breezy-updates', 'breezy-security', 'breezy-proposed', 'breezy-backports', + 'dapper', 'dapper-updates', 'dapper-security', 'dapper-proposed', 'dapper-backports', + 'edgy', 'edgy-updates', 'edgy-security', 'edgy-proposed', 'edgy-backports', + 'feisty', 'feisty-updates', 'feisty-security', 'feisty-proposed', 'feisty-backports', + 'gutsy', 'gutsy-updates', 'gutsy-security', 'gutsy-proposed', 'gutsy-backports', + 'hardy', 'hardy-updates', 'hardy-security', 'hardy-proposed', 'hardy-backports', + 'intrepid', 'intrepid-updates', 'intrepid-security', 'intrepid-proposed', 'intrepid-backports', + 'jaunty', 'jaunty-updates', 'jaunty-security', 'jaunty-proposed', 'jaunty-backports', + 'karmic', 'karmic-updates', 'karmic-security', 'karmic-proposed', 'karmic-backports', + 'lucid', 'lucid-updates', 'lucid-security', 'lucid-proposed', 'lucid-backports', + 'maverick', 'maverick-updates', 'maverick-security', 'maverick-proposed', 'maverick-backports' + ), + 3 => array( + 'main', 'restricted', 'preview', 'contrib', 'non-free', + 'commercial', 'universe', 'multiverse' + ) + ), + 'REGEXPS' => array( + 0 => "(((http|ftp):\/\/|file:\/)[^\s]+)|(cdrom:\[[^\]]*\][^\s]*)", + ), + 'SYMBOLS' => array( + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => true, + 3 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00007f;', + 2 => 'color: #b1b100;', + 3 => 'color: #b16000;' + ), + 'COMMENTS' => array( + 1 => 'color: #adadad; font-style: italic;', + ), + 'ESCAPE_CHAR' => array( + ), + 'BRACKETS' => array( + ), + 'STRINGS' => array( + ), + 'NUMBERS' => array( + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + ), + 'REGEXPS' => array( + 0 => 'color: #009900;', + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'PARSER_CONTROL' => array( + 'ENABLE_FLAGS' => array( + 'NUMBERS' => GESHI_NEVER, + 'METHODS' => GESHI_NEVER, + 'SCRIPT' => GESHI_NEVER, + 'SYMBOLS' => GESHI_NEVER, + 'ESCAPE_CHAR' => GESHI_NEVER, + 'BRACKETS' => GESHI_NEVER, + 'STRINGS' => GESHI_NEVER, + ), + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => '(?|^\/])', + 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\.])' + ) + ), + 'TAB_WIDTH' => 4 +); + +?> \ No newline at end of file diff --git a/Sources/geshi/arm.php b/Sources/geshi/arm.php new file mode 100644 index 0000000..8e3c0a3 --- /dev/null +++ b/Sources/geshi/arm.php @@ -0,0 +1,3318 @@ + 'ARM ASSEMBLER', + 'COMMENT_SINGLE' => array( + 1 => ';' + ), + 'COMMENT_MULTI' => array(), + //Line address prefix suppression + 'COMMENT_REGEXP' => array( + 2 => "/^(?:[0-9a-f]{0,4}:)?[0-9a-f]{4}(?:[0-9a-f]{4})?/mi" + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + /* Unconditional Data Processing Instructions */ + 1 => array( + /* Data Processing: Unconditional Addition & Subtraction */ + 'adc.w','adcal.w', + 'adc','adcal', + 'add.w','addal.w', + 'add','addal', + 'addw','addwal', + 'rsb.w','rsbal.w', + 'rsb','rsbal', + 'rsc','rscal', + 'sbc.w','sbcal.w', + 'sbc','sbcal', + 'sub.w','subal.w', + 'sub','subal', + 'neg.w','negal.w', + 'neg','negal', + 'adr.w','adral.w', + 'adr','adral', + /* Data Processing: Unconditional Logical */ + 'and.w','andal.w', + 'and','andal', + 'bic.w','bical.w', + 'bic','bical', + 'orr.w','orral.w', + 'orr','orral', + 'orn.w','ornal.w', + 'orn','ornal', + 'eor.w','eoral.w', + 'eor','eoral', + 'mov.w','moval.w', + 'mov','moval', + 'movw','movwal', + 'movt','movtal', + 'cpy','cpyal', + 'mvn.w','mvnal.w', + 'mvn','mvnal', + /* Data Processing: Unconditional Shifts and Rotates */ + 'asr.w','asral.w', + 'asr','asral', + 'lsl.w','lslal.w', + 'lsl','lslal', + 'lsr.w','lsral.w', + 'lsr','lsral', + 'ror.w','roral.w', + 'ror','roral', + 'rrx','rrxal', + /* Data Processing: Unconditional Word Multiply and Multiply-Add */ + 'mul','mulal', + 'mla','mlaal', + 'mls','mlsal', + 'smull','smullal', + 'muls','mulsal', + 'umull','umullal', + 'smlal','smlalal', + 'umlal','umlalal', + /* Data Processing: Unconditional Halfword Multiply and Multiply-Add (ARMv5TE) */ + 'smulbb','smulbbal', + 'smulbt','smulbtal', + 'smultb','smultbal', + 'smultt','smulttal', + 'smulwb','smulwbal', + 'smulwt','smulwtal', + 'smlalbb','smlalbbal', + 'smlalbt','smlalbtal', + 'smlaltb','smlaltbal', + 'smlaltt','smlalttal', + 'smlabb','smlabbal', + 'smlabt','smlabtal', + 'smlatb','smlatbal', + 'smlatt','smlattal', + 'smlawb','smlawbal', + 'smlawt','smlawtal', + /* Data Processing: Unconditional Bit Operations */ + 'ubfx','ubfxal', + 'sbfx','sbfxal', + 'bfc','bfcal', + 'bfi','bfial', + 'clz','clzal', + /* Data Processing: Unconditional Divide (ARMv7-R) */ + 'sdiv','sdival', + 'udiv','udival' + ), + /* Conditional Data Processing Instructions */ + 2 => array( + /* Data Processing: Conditional Addition & Subtraction */ + 'adceq.w','adcne.w','adccs.w','adchs.w','adccc.w','adclo.w','adcmi.w','adcpl.w','adcvs.w','adcvc.w','adchi.w','adcls.w','adcge.w','adclt.w','adcgt.w','adcle.w', + 'adceq','adcne','adccs','adchs','adccc','adclo','adcmi','adcpl','adcvs','adcvc','adchi','adcls','adcge','adclt','adcgt','adcle', + 'addeq.w','addne.w','addcs.w','addhs.w','addcc.w','addlo.w','addmi.w','addpl.w','addvs.w','addvc.w','addhi.w','addls.w','addge.w','addlt.w','addgt.w','addle.w', + 'addeq','addne','addcs','addhs','addcc','addlo','addmi','addpl','addvs','addvc','addhi','addls','addge','addlt','addgt','addle', + 'addweq','addwne','addwcs','addwhs','addwcc','addwlo','addwmi','addwpl','addwvs','addwvc','addwhi','addwls','addwge','addwlt','addwgt','addwle', + 'rsbeq.w','rsbne.w','rsbcs.w','rsbhs.w','rsbcc.w','rsblo.w','rsbmi.w','rsbpl.w','rsbvs.w','rsbvc.w','rsbhi.w','rsbls.w','rsbge.w','rsblt.w','rsbgt.w','rsble.w', + 'rsbeq','rsbne','rsbcs','rsbhs','rsbcc','rsblo','rsbmi','rsbpl','rsbvs','rsbvc','rsbhi','rsbls','rsbge','rsblt','rsbgt','rsble', + 'rsceq','rscne','rsccs','rschs','rsccc','rsclo','rscmi','rscpl','rscvs','rscvc','rschi','rscls','rscge','rsclt','rscgt','rscle', + 'sbceq.w','sbcne.w','sbccs.w','sbchs.w','sbccc.w','sbclo.w','sbcmi.w','sbcpl.w','sbcvs.w','sbcvc.w','sbchi.w','sbcls.w','sbcge.w','sbclt.w','sbcgt.w','sbcle.w', + 'sbceq','sbcne','sbccs','sbchs','sbccc','sbclo','sbcmi','sbcpl','sbcvs','sbcvc','sbchi','sbcls','sbcge','sbclt','sbcgt','sbcle', + 'subeq.w','subne.w','subcs.w','subhs.w','subcc.w','sublo.w','submi.w','subpl.w','subvs.w','subvc.w','subhi.w','subls.w','subge.w','sublt.w','subgt.w','suble.w', + 'subeq','subne','subcs','subhs','subcc','sublo','submi','subpl','subvs','subvc','subhi','subls','subge','sublt','subgt','suble', + 'negeq.w','negne.w','negcs.w','neghs.w','negcc.w','neglo.w','negmi.w','negpl.w','negvs.w','negvc.w','neghi.w','negls.w','negge.w','neglt.w','neggt.w','negle.w', + 'negeq','negne','negcs','neghs','negcc','neglo','negmi','negpl','negvs','negvc','neghi','negls','negge','neglt','neggt','negle', + 'adreq.w','adrne.w','adrcs.w','adrhs.w','adrcc.w','adrlo.w','adrmi.w','adrpl.w','adrvs.w','adrvc.w','adrhi.w','adrls.w','adrge.w','adrlt.w','adrgt.w','adrle.w', + 'adreq','adrne','adrcs','adrhs','adrcc','adrlo','adrmi','adrpl','adrvs','adrvc','adrhi','adrls','adrge','adrlt','adrgt','adrle', + /* Data Processing: Conditional Logical */ + 'andeq.w','andne.w','andcs.w','andhs.w','andcc.w','andlo.w','andmi.w','andpl.w','andvs.w','andvc.w','andhi.w','andls.w','andge.w','andlt.w','andgt.w','andle.w', + 'andeq','andne','andcs','andhs','andcc','andlo','andmi','andpl','andvs','andvc','andhi','andls','andge','andlt','andgt','andle', + 'biceq.w','bicne.w','biccs.w','bichs.w','biccc.w','biclo.w','bicmi.w','bicpl.w','bicvs.w','bicvc.w','bichi.w','bicls.w','bicge.w','biclt.w','bicgt.w','bicle.w', + 'biceq','bicne','biccs','bichs','biccc','biclo','bicmi','bicpl','bicvs','bicvc','bichi','bicls','bicge','biclt','bicgt','bicle', + 'orreq.w','orrne.w','orrcs.w','orrhs.w','orrcc.w','orrlo.w','orrmi.w','orrpl.w','orrvs.w','orrvc.w','orrhi.w','orrls.w','orrge.w','orrlt.w','orrgt.w','orrle.w', + 'orreq','orrne','orrcs','orrhs','orrcc','orrlo','orrmi','orrpl','orrvs','orrvc','orrhi','orrls','orrge','orrlt','orrgt','orrle', + 'orneq.w','ornne.w','orncs.w','ornhs.w','orncc.w','ornlo.w','ornmi.w','ornpl.w','ornvs.w','ornvc.w','ornhi.w','ornls.w','ornge.w','ornlt.w','orngt.w','ornle.w', + 'orneq','ornne','orncs','ornhs','orncc','ornlo','ornmi','ornpl','ornvs','ornvc','ornhi','ornls','ornge','ornlt','orngt','ornle', + 'eoreq.w','eorne.w','eorcs.w','eorhs.w','eorcc.w','eorlo.w','eormi.w','eorpl.w','eorvs.w','eorvc.w','eorhi.w','eorls.w','eorge.w','eorlt.w','eorgt.w','eorle.w', + 'eoreq','eorne','eorcs','eorhs','eorcc','eorlo','eormi','eorpl','eorvs','eorvc','eorhi','eorls','eorge','eorlt','eorgt','eorle', + 'moveq.w','movne.w','movcs.w','movhs.w','movcc.w','movlo.w','movmi.w','movpl.w','movvs.w','movvc.w','movhi.w','movls.w','movge.w','movlt.w','movgt.w','movle.w', + 'moveq','movne','movcs','movhs','movcc','movlo','movmi','movpl','movvs','movvc','movhi','movls','movge','movlt','movgt','movle', + 'movweq','movwne','movwcs','movwhs','movwcc','movwlo','movwmi','movwpl','movwvs','movwvc','movwhi','movwls','movwge','movwlt','movwgt','movwle', + 'movteq','movtne','movtcs','movths','movtcc','movtlo','movtmi','movtpl','movtvs','movtvc','movthi','movtls','movtge','movtlt','movtgt','movtle', + 'cpyeq','cpyne','cpycs','cpyhs','cpycc','cpylo','cpymi','cpypl','cpyvs','cpyvc','cpyhi','cpyls','cpyge','cpylt','cpygt','cpyle', + 'mvneq.w','mvnne.w','mvncs.w','mvnhs.w','mvncc.w','mvnlo.w','mvnmi.w','mvnpl.w','mvnvs.w','mvnvc.w','mvnhi.w','mvnls.w','mvnge.w','mvnlt.w','mvngt.w','mvnle.w', + 'mvneq','mvnne','mvncs','mvnhs','mvncc','mvnlo','mvnmi','mvnpl','mvnvs','mvnvc','mvnhi','mvnls','mvnge','mvnlt','mvngt','mvnle', + /* Data Processing: Conditional Shifts and Rotates */ + 'asreq.w','asrne.w','asrcs.w','asrhs.w','asrcc.w','asrlo.w','asrmi.w','asrpl.w','asrvs.w','asrvc.w','asrhi.w','asrls.w','asrge.w','asrlt.w','asrgt.w','asrle.w', + 'asreq','asrne','asrcs','asrhs','asrcc','asrlo','asrmi','asrpl','asrvs','asrvc','asrhi','asrls','asrge','asrlt','asrgt','asrle', + 'lsleq.w','lslne.w','lslcs.w','lslhs.w','lslcc.w','lsllo.w','lslmi.w','lslpl.w','lslvs.w','lslvc.w','lslhi.w','lslls.w','lslge.w','lsllt.w','lslgt.w','lslle.w', + 'lsleq','lslne','lslcs','lslhs','lslcc','lsllo','lslmi','lslpl','lslvs','lslvc','lslhi','lslls','lslge','lsllt','lslgt','lslle', + 'lsreq.w','lsrne.w','lsrcs.w','lsrhs.w','lsrcc.w','lsrlo.w','lsrmi.w','lsrpl.w','lsrvs.w','lsrvc.w','lsrhi.w','lsrls.w','lsrge.w','lsrlt.w','lsrgt.w','lsrle.w', + 'lsreq','lsrne','lsrcs','lsrhs','lsrcc','lsrlo','lsrmi','lsrpl','lsrvs','lsrvc','lsrhi','lsrls','lsrge','lsrlt','lsrgt','lsrle', + 'roreq.w','rorne.w','rorcs.w','rorhs.w','rorcc.w','rorlo.w','rormi.w','rorpl.w','rorvs.w','rorvc.w','rorhi.w','rorls.w','rorge.w','rorlt.w','rorgt.w','rorle.w', + 'roreq','rorne','rorcs','rorhs','rorcc','rorlo','rormi','rorpl','rorvs','rorvc','rorhi','rorls','rorge','rorlt','rorgt','rorle', + 'rrxeq','rrxne','rrxcs','rrxhs','rrxcc','rrxlo','rrxmi','rrxpl','rrxvs','rrxvc','rrxhi','rrxls','rrxge','rrxlt','rrxgt','rrxle', + /* Data Processing: Conditional Word Multiply and Multiply-Add */ + 'muleq','mulne','mulcs','mulhs','mulcc','mullo','mulmi','mulpl','mulvs','mulvc','mulhi','mulls','mulge','mullt','mulgt','mulle', + 'mlaeq','mlane','mlacs','mlahs','mlacc','mlalo','mlami','mlapl','mlavs','mlavc','mlahi','mlals','mlage','mlalt','mlagt','mlale', + 'mlseq','mlsne','mlscs','mlshs','mlscc','mlslo','mlsmi','mlspl','mlsvs','mlsvc','mlshi','mlsls','mlsge','mlslt','mlsgt','mlsle', + 'smulleq','smullne','smullcs','smullhs','smullcc','smulllo','smullmi','smullpl','smullvs','smullvc','smullhi','smullls','smullge','smulllt','smullgt','smullle', + 'mulseq','mulsne','mulscs','mulshs','mulscc','mulslo','mulsmi','mulspl','mulsvs','mulsvc','mulshi','mulsls','mulsge','mulslt','mulsgt','mulsle', + 'umulleq','umullne','umullcs','umullhs','umullcc','umulllo','umullmi','umullpl','umullvs','umullvc','umullhi','umullls','umullge','umulllt','umullgt','umullle', + 'smlaleq','smlalne','smlalcs','smlalhs','smlalcc','smlallo','smlalmi','smlalpl','smlalvs','smlalvc','smlalhi','smlalls','smlalge','smlallt','smlalgt','smlalle', + 'umlaleq','umlalne','umlalcs','umlalhs','umlalcc','umlallo','umlalmi','umlalpl','umlalvs','umlalvc','umlalhi','umlalls','umlalge','umlallt','umlalgt','umlalle', + /* Data Processing: Conditional Halfword Multiply and Multiply-Add (ARMv5TE) */ + 'smulbbeq','smulbbne','smulbbcs','smulbbhs','smulbbcc','smulbblo','smulbbmi','smulbbpl','smulbbvs','smulbbvc','smulbbhi','smulbbls','smulbbge','smulbblt','smulbbgt','smulbble', + 'smulbteq','smulbtne','smulbtcs','smulbths','smulbtcc','smulbtlo','smulbtmi','smulbtpl','smulbtvs','smulbtvc','smulbthi','smulbtls','smulbtge','smulbtlt','smulbtgt','smulbtle', + 'smultbeq','smultbne','smultbcs','smultbhs','smultbcc','smultblo','smultbmi','smultbpl','smultbvs','smultbvc','smultbhi','smultbls','smultbge','smultblt','smultbgt','smultble', + 'smultteq','smulttne','smulttcs','smultths','smulttcc','smulttlo','smulttmi','smulttpl','smulttvs','smulttvc','smultthi','smulttls','smulttge','smulttlt','smulttgt','smulttle', + 'smulwbeq','smulwbne','smulwbcs','smulwbhs','smulwbcc','smulwblo','smulwbmi','smulwbpl','smulwbvs','smulwbvc','smulwbhi','smulwbls','smulwbge','smulwblt','smulwbgt','smulwble', + 'smulwteq','smulwtne','smulwtcs','smulwths','smulwtcc','smulwtlo','smulwtmi','smulwtpl','smulwtvs','smulwtvc','smulwthi','smulwtls','smulwtge','smulwtlt','smulwtgt','smulwtle', + 'smlalbbeq','smlalbbne','smlalbbcs','smlalbbhs','smlalbbcc','smlalbblo','smlalbbmi','smlalbbpl','smlalbbvs','smlalbbvc','smlalbbhi','smlalbbls','smlalbbge','smlalbblt','smlalbbgt','smlalbble', + 'smlalbteq','smlalbtne','smlalbtcs','smlalbths','smlalbtcc','smlalbtlo','smlalbtmi','smlalbtpl','smlalbtvs','smlalbtvc','smlalbthi','smlalbtls','smlalbtge','smlalbtlt','smlalbtgt','smlalbtle', + 'smlaltbeq','smlaltbne','smlaltbcs','smlaltbhs','smlaltbcc','smlaltblo','smlaltbmi','smlaltbpl','smlaltbvs','smlaltbvc','smlaltbhi','smlaltbls','smlaltbge','smlaltblt','smlaltbgt','smlaltble', + 'smlaltteq','smlalttne','smlalttcs','smlaltths','smlalttcc','smlalttlo','smlalttmi','smlalttpl','smlalttvs','smlalttvc','smlaltthi','smlalttls','smlalttge','smlalttlt','smlalttgt','smlalttle', + 'smlabbeq','smlabbne','smlabbcs','smlabbhs','smlabbcc','smlabblo','smlabbmi','smlabbpl','smlabbvs','smlabbvc','smlabbhi','smlabbls','smlabbge','smlabblt','smlabbgt','smlabble', + 'smlabteq','smlabtne','smlabtcs','smlabths','smlabtcc','smlabtlo','smlabtmi','smlabtpl','smlabtvs','smlabtvc','smlabthi','smlabtls','smlabtge','smlabtlt','smlabtgt','smlabtle', + 'smlatbeq','smlatbne','smlatbcs','smlatbhs','smlatbcc','smlatblo','smlatbmi','smlatbpl','smlatbvs','smlatbvc','smlatbhi','smlatbls','smlatbge','smlatblt','smlatbgt','smlatble', + 'smlatteq','smlattne','smlattcs','smlatths','smlattcc','smlattlo','smlattmi','smlattpl','smlattvs','smlattvc','smlatthi','smlattls','smlattge','smlattlt','smlattgt','smlattle', + 'smlawbeq','smlawbne','smlawbcs','smlawbhs','smlawbcc','smlawblo','smlawbmi','smlawbpl','smlawbvs','smlawbvc','smlawbhi','smlawbls','smlawbge','smlawblt','smlawbgt','smlawble', + 'smlawteq','smlawtne','smlawtcs','smlawths','smlawtcc','smlawtlo','smlawtmi','smlawtpl','smlawtvs','smlawtvc','smlawthi','smlawtls','smlawtge','smlawtlt','smlawtgt','smlawtle', + /* Data Processing: Conditional Bit Operations */ + 'ubfxeq','ubfxne','ubfxcs','ubfxhs','ubfxcc','ubfxlo','ubfxmi','ubfxpl','ubfxvs','ubfxvc','ubfxhi','ubfxls','ubfxge','ubfxlt','ubfxgt','ubfxle', + 'sbfxeq','sbfxne','sbfxcs','sbfxhs','sbfxcc','sbfxlo','sbfxmi','sbfxpl','sbfxvs','sbfxvc','sbfxhi','sbfxls','sbfxge','sbfxlt','sbfxgt','sbfxle', + 'bfceq','bfcne','bfccs','bfchs','bfccc','bfclo','bfcmi','bfcpl','bfcvs','bfcvc','bfchi','bfcls','bfcge','bfclt','bfcgt','bfcle', + 'bfieq','bfine','bfics','bfihs','bficc','bfilo','bfimi','bfipl','bfivs','bfivc','bfihi','bfils','bfige','bfilt','bfigt','bfile', + 'clzeq','clzne','clzcs','clzhs','clzcc','clzlo','clzmi','clzpl','clzvs','clzvc','clzhi','clzls','clzge','clzlt','clzgt','clzle', + /* ARMv7-R: Conditional Divide */ + 'sdiveq','sdivne','sdivcs','sdivhs','sdivcc','sdivlo','sdivmi','sdivpl','sdivvs','sdivvc','sdivhi','sdivls','sdivge','sdivlt','sdivgt','sdivle', + 'udiveq','udivne','udivcs','udivhs','udivcc','udivlo','udivmi','udivpl','udivvs','udivvc','udivhi','udivls','udivge','udivlt','udivgt','udivle' + ), + /* Unconditional Memory Access */ + 3 => array( + /* Memory Access: Unconditional Memory Loads and Prefetches */ + 'ldm.w','ldmal.w', + 'ldm','ldmal', + 'ldmda','ldmdaal', + 'ldmdb','ldmdbal', + 'ldmib','ldmibal', + 'ldmia','ldmiaal', + 'ldmea','ldmeaal', + 'ldmed','ldmedal', + 'ldmfa','ldmfaal', + 'ldmfd','ldmfdal', + 'ldrd','ldrdal', + 'ldr.w','ldral.w', + 'ldr','ldral', + 'ldrh.w','ldrhal.w', + 'ldrh','ldrhal', + 'ldrb.w','ldrbal.w', + 'ldrb','ldrbal', + 'ldrsh.w','ldrshal.w', + 'ldrsh','ldrshal', + 'ldrsb.w','ldrsbal.w', + 'ldrsb','ldrsbal', + 'ldrt','ldrtal', + 'ldrht','ldrhtal', + 'ldrbt','ldrbtal', + 'ldrsht','ldrshtal', + 'ldrsbt','ldrsbtal', + 'pop.w','popal.w', + 'pop','popal', + 'pld','pldal', + 'pldw','pldwal', + 'pli','plial', + /* Memory Access: Unconditional Memory Stores */ + 'stm.w','stmal.w', + 'stm','stmal', + 'stmda','stmdaal', + 'stmdb','stmdbal', + 'stmib','stmibal', + 'stmia','stmiaal', + 'stmea','stmeaal', + 'stmed','stmedal', + 'stdfa','stdfaal', + 'stdfd','stdfdal', + 'strd','strdal', + 'str.w','stral.w', + 'str','stral', + 'strh.w','strhal.w', + 'strh','strhal', + 'strb.w','strbal.w', + 'strb','strbal', + 'strt','strtal', + 'strht','strhtal', + 'strbt','strbtal', + 'push.w','pushal.w', + 'push','pushal' + ), + /* Conditional Memory Access */ + 4 => array( + /* Memory Access: Conditional Memory Loads and Prefetches */ + 'ldmeq.w','ldmne.w','ldmcs.w','ldmhs.w','ldmcc.w','ldmlo.w','ldmmi.w','ldmpl.w','ldmvs.w','ldmvc.w','ldmhi.w','ldmls.w','ldmge.w','ldmlt.w','ldmgt.w','ldmle.w', + 'ldmeq','ldmne','ldmcs','ldmhs','ldmcc','ldmlo','ldmmi','ldmpl','ldmvs','ldmvc','ldmhi','ldmls','ldmge','ldmlt','ldmgt','ldmle', + 'ldmdaeq','ldmdane','ldmdacs','ldmdahs','ldmdacc','ldmdalo','ldmdami','ldmdapl','ldmdavs','ldmdavc','ldmdahi','ldmdals','ldmdage','ldmdalt','ldmdagt','ldmdale', + 'ldmdbeq','ldmdbne','ldmdbcs','ldmdbhs','ldmdbcc','ldmdblo','ldmdbmi','ldmdbpl','ldmdbvs','ldmdbvc','ldmdbhi','ldmdbls','ldmdbge','ldmdblt','ldmdbgt','ldmdble', + 'ldmibeq','ldmibne','ldmibcs','ldmibhs','ldmibcc','ldmiblo','ldmibmi','ldmibpl','ldmibvs','ldmibvc','ldmibhi','ldmibls','ldmibge','ldmiblt','ldmibgt','ldmible', + 'ldmiaeq','ldmiane','ldmiacs','ldmiahs','ldmiacc','ldmialo','ldmiami','ldmiapl','ldmiavs','ldmiavc','ldmiahi','ldmials','ldmiage','ldmialt','ldmiagt','ldmiale', + 'ldmeaeq','ldmeane','ldmeacs','ldmeahs','ldmeacc','ldmealo','ldmeami','ldmeapl','ldmeavs','ldmeavc','ldmeahi','ldmeals','ldmeage','ldmealt','ldmeagt','ldmeale', + 'ldmedeq','ldmedne','ldmedcs','ldmedhs','ldmedcc','ldmedlo','ldmedmi','ldmedpl','ldmedvs','ldmedvc','ldmedhi','ldmedls','ldmedge','ldmedlt','ldmedgt','ldmedle', + 'ldmfaeq','ldmfane','ldmfacs','ldmfahs','ldmfacc','ldmfalo','ldmfami','ldmfapl','ldmfavs','ldmfavc','ldmfahi','ldmfals','ldmfage','ldmfalt','ldmfagt','ldmfale', + 'ldmfdeq','ldmfdne','ldmfdcs','ldmfdhs','ldmfdcc','ldmfdlo','ldmfdmi','ldmfdpl','ldmfdvs','ldmfdvc','ldmfdhi','ldmfdls','ldmfdge','ldmfdlt','ldmfdgt','ldmfdle', + 'ldrdeq','ldrdne','ldrdcs','ldrdhs','ldrdcc','ldrdlo','ldrdmi','ldrdpl','ldrdvs','ldrdvc','ldrdhi','ldrdls','ldrdge','ldrdlt','ldrdgt','ldrdle', + 'ldreq.w','ldrne.w','ldrcs.w','ldrhs.w','ldrcc.w','ldrlo.w','ldrmi.w','ldrpl.w','ldrvs.w','ldrvc.w','ldrhi.w','ldrls.w','ldrge.w','ldrlt.w','ldrgt.w','ldrle.w', + 'ldreq','ldrne','ldrcs','ldrhs','ldrcc','ldrlo','ldrmi','ldrpl','ldrvs','ldrvc','ldrhi','ldrls','ldrge','ldrlt','ldrgt','ldrle', + 'ldrheq.w','ldrhne.w','ldrhcs.w','ldrhhs.w','ldrhcc.w','ldrhlo.w','ldrhmi.w','ldrhpl.w','ldrhvs.w','ldrhvc.w','ldrhhi.w','ldrhls.w','ldrhge.w','ldrhlt.w','ldrhgt.w','ldrhle.w', + 'ldrheq','ldrhne','ldrhcs','ldrhhs','ldrhcc','ldrhlo','ldrhmi','ldrhpl','ldrhvs','ldrhvc','ldrhhi','ldrhls','ldrhge','ldrhlt','ldrhgt','ldrhle', + 'ldrbeq.w','ldrbne.w','ldrbcs.w','ldrbhs.w','ldrbcc.w','ldrblo.w','ldrbmi.w','ldrbpl.w','ldrbvs.w','ldrbvc.w','ldrbhi.w','ldrbls.w','ldrbge.w','ldrblt.w','ldrbgt.w','ldrble.w', + 'ldrbeq','ldrbne','ldrbcs','ldrbhs','ldrbcc','ldrblo','ldrbmi','ldrbpl','ldrbvs','ldrbvc','ldrbhi','ldrbls','ldrbge','ldrblt','ldrbgt','ldrble', + 'ldrsheq.w','ldrshne.w','ldrshcs.w','ldrshhs.w','ldrshcc.w','ldrshlo.w','ldrshmi.w','ldrshpl.w','ldrshvs.w','ldrshvc.w','ldrshhi.w','ldrshls.w','ldrshge.w','ldrshlt.w','ldrshgt.w','ldrshle.w', + 'ldrsheq','ldrshne','ldrshcs','ldrshhs','ldrshcc','ldrshlo','ldrshmi','ldrshpl','ldrshvs','ldrshvc','ldrshhi','ldrshls','ldrshge','ldrshlt','ldrshgt','ldrshle', + 'ldrsbeq.w','ldrsbne.w','ldrsbcs.w','ldrsbhs.w','ldrsbcc.w','ldrsblo.w','ldrsbmi.w','ldrsbpl.w','ldrsbvs.w','ldrsbvc.w','ldrsbhi.w','ldrsbls.w','ldrsbge.w','ldrsblt.w','ldrsbgt.w','ldrsble.w', + 'ldrsbeq','ldrsbne','ldrsbcs','ldrsbhs','ldrsbcc','ldrsblo','ldrsbmi','ldrsbpl','ldrsbvs','ldrsbvc','ldrsbhi','ldrsbls','ldrsbge','ldrsblt','ldrsbgt','ldrsble', + 'ldrteq','ldrtne','ldrtcs','ldrths','ldrtcc','ldrtlo','ldrtmi','ldrtpl','ldrtvs','ldrtvc','ldrthi','ldrtls','ldrtge','ldrtlt','ldrtgt','ldrtle', + 'ldrhteq','ldrhtne','ldrhtcs','ldrhths','ldrhtcc','ldrhtlo','ldrhtmi','ldrhtpl','ldrhtvs','ldrhtvc','ldrhthi','ldrhtls','ldrhtge','ldrhtlt','ldrhtgt','ldrhtle', + 'ldrbteq','ldrbtne','ldrbtcs','ldrbths','ldrbtcc','ldrbtlo','ldrbtmi','ldrbtpl','ldrbtvs','ldrbtvc','ldrbthi','ldrbtls','ldrbtge','ldrbtlt','ldrbtgt','ldrbtle', + 'ldrshteq','ldrshtne','ldrshtcs','ldrshths','ldrshtcc','ldrshtlo','ldrshtmi','ldrshtpl','ldrshtvs','ldrshtvc','ldrshthi','ldrshtls','ldrshtge','ldrshtlt','ldrshtgt','ldrshtle', + 'ldrsbteq','ldrsbtne','ldrsbtcs','ldrsbths','ldrsbtcc','ldrsbtlo','ldrsbtmi','ldrsbtpl','ldrsbtvs','ldrsbtvc','ldrsbthi','ldrsbtls','ldrsbtge','ldrsbtlt','ldrsbtgt','ldrsbtle', + 'popeq.w','popne.w','popcs.w','pophs.w','popcc.w','poplo.w','popmi.w','poppl.w','popvs.w','popvc.w','pophi.w','popls.w','popge.w','poplt.w','popgt.w','pople.w', + 'popeq','popne','popcs','pophs','popcc','poplo','popmi','poppl','popvs','popvc','pophi','popls','popge','poplt','popgt','pople', + 'pldeq','pldne','pldcs','pldhs','pldcc','pldlo','pldmi','pldpl','pldvs','pldvc','pldhi','pldls','pldge','pldlt','pldgt','pldle', + 'pldweq','pldwne','pldwcs','pldwhs','pldwcc','pldwlo','pldwmi','pldwpl','pldwvs','pldwvc','pldwhi','pldwls','pldwge','pldwlt','pldwgt','pldwle', + 'plieq','pline','plics','plihs','plicc','plilo','plimi','plipl','plivs','plivc','plihi','plils','plige','plilt','pligt','plile', + /* Memory Access: Conditional Memory Stores */ + 'stmeq.w','stmne.w','stmcs.w','stmhs.w','stmcc.w','stmlo.w','stmmi.w','stmpl.w','stmvs.w','stmvc.w','stmhi.w','stmls.w','stmge.w','stmlt.w','stmgt.w','stmle.w', + 'stmeq','stmne','stmcs','stmhs','stmcc','stmlo','stmmi','stmpl','stmvs','stmvc','stmhi','stmls','stmge','stmlt','stmgt','stmle', + 'stmdaeq','stmdane','stmdacs','stmdahs','stmdacc','stmdalo','stmdami','stmdapl','stmdavs','stmdavc','stmdahi','stmdals','stmdage','stmdalt','stmdagt','stmdale', + 'stmdbeq','stmdbne','stmdbcs','stmdbhs','stmdbcc','stmdblo','stmdbmi','stmdbpl','stmdbvs','stmdbvc','stmdbhi','stmdbls','stmdbge','stmdblt','stmdbgt','stmdble', + 'stmibeq','stmibne','stmibcs','stmibhs','stmibcc','stmiblo','stmibmi','stmibpl','stmibvs','stmibvc','stmibhi','stmibls','stmibge','stmiblt','stmibgt','stmible', + 'stmiaeq','stmiane','stmiacs','stmiahs','stmiacc','stmialo','stmiami','stmiapl','stmiavs','stmiavc','stmiahi','stmials','stmiage','stmialt','stmiagt','stmiale', + 'stmeaeq','stmeane','stmeacs','stmeahs','stmeacc','stmealo','stmeami','stmeapl','stmeavs','stmeavc','stmeahi','stmeals','stmeage','stmealt','stmeagt','stmeale', + 'stmedeq','stmedne','stmedcs','stmedhs','stmedcc','stmedlo','stmedmi','stmedpl','stmedvs','stmedvc','stmedhi','stmedls','stmedge','stmedlt','stmedgt','stmedle', + 'stdfaeq','stdfane','stdfacs','stdfahs','stdfacc','stdfalo','stdfami','stdfapl','stdfavs','stdfavc','stdfahi','stdfals','stdfage','stdfalt','stdfagt','stdfale', + 'stdfdeq','stdfdne','stdfdcs','stdfdhs','stdfdcc','stdfdlo','stdfdmi','stdfdpl','stdfdvs','stdfdvc','stdfdhi','stdfdls','stdfdge','stdfdlt','stdfdgt','stdfdle', + 'strdeq','strdne','strdcs','strdhs','strdcc','strdlo','strdmi','strdpl','strdvs','strdvc','strdhi','strdls','strdge','strdlt','strdgt','strdle', + 'streq.w','strne.w','strcs.w','strhs.w','strcc.w','strlo.w','strmi.w','strpl.w','strvs.w','strvc.w','strhi.w','strls.w','strge.w','strlt.w','strgt.w','strle.w', + 'streq','strne','strcs','strhs','strcc','strlo','strmi','strpl','strvs','strvc','strhi','strls','strge','strlt','strgt','strle', + 'strheq.w','strhne.w','strhcs.w','strhhs.w','strhcc.w','strhlo.w','strhmi.w','strhpl.w','strhvs.w','strhvc.w','strhhi.w','strhls.w','strhge.w','strhlt.w','strhgt.w','strhle.w', + 'strheq','strhne','strhcs','strhhs','strhcc','strhlo','strhmi','strhpl','strhvs','strhvc','strhhi','strhls','strhge','strhlt','strhgt','strhle', + 'strbeq.w','strbne.w','strbcs.w','strbhs.w','strbcc.w','strblo.w','strbmi.w','strbpl.w','strbvs.w','strbvc.w','strbhi.w','strbls.w','strbge.w','strblt.w','strbgt.w','strble.w', + 'strbeq','strbne','strbcs','strbhs','strbcc','strblo','strbmi','strbpl','strbvs','strbvc','strbhi','strbls','strbge','strblt','strbgt','strble', + 'strteq','strtne','strtcs','strths','strtcc','strtlo','strtmi','strtpl','strtvs','strtvc','strthi','strtls','strtge','strtlt','strtgt','strtle', + 'strhteq','strhtne','strhtcs','strhths','strhtcc','strhtlo','strhtmi','strhtpl','strhtvs','strhtvc','strhthi','strhtls','strhtge','strhtlt','strhtgt','strhtle', + 'strbteq','strbtne','strbtcs','strbths','strbtcc','strbtlo','strbtmi','strbtpl','strbtvs','strbtvc','strbthi','strbtls','strbtge','strbtlt','strbtgt','strbtle', + 'pusheq.w','pushne.w','pushcs.w','pushhs.w','pushcc.w','pushlo.w','pushmi.w','pushpl.w','pushvs.w','pushvc.w','pushhi.w','pushls.w','pushge.w','pushlt.w','pushgt.w','pushle.w', + 'pusheq','pushne','pushcs','pushhs','pushcc','pushlo','pushmi','pushpl','pushvs','pushvc','pushhi','pushls','pushge','pushlt','pushgt','pushle' + ), + /* Unconditional Flags-Affecting Instructions */ + 5 => array( + /* Set Flags: Unconditional Addition and Subtraction */ + 'adds.w','addsal.w', + 'adds','addsal', + 'subs.w','subsal.w', + 'subs','subsal', + 'rsbs.w','rsbsal.w', + 'rsbs','rsbsal', + 'negs.w','negsal.w', + 'negs','negsal', + 'adcs.w','adcsal.w', + 'adcs','adcsal', + 'sbcs.w','sbcsal.w', + 'sbcs','sbcsal', + 'rscs','rscsal', + 'cmp.w','cmpal.w', + 'cmp','cmpal', + 'cmn.w','cmnal.w', + 'cmn','cmnal', + /* Set Flags: Unconditional Logical */ + 'ands.w','andsal.w', + 'ands','andsal', + 'bics.w','bicsal.w', + 'bics','bicsal', + 'orrs.w','orrsal.w', + 'orrs','orrsal', + 'orns.w','ornsal.w', + 'orns','ornsal', + 'eors.w','eorsal.w', + 'eors','eorsal', + 'mvns.w','mvnsal.w', + 'mvns','mvnsal', + 'movs.w','movsal.w', + 'movs','movsal', + 'teq','teqal', + 'tst.w','tstal.w', + 'tst','tstal', + 'mrs','mrsal', + 'msr','msral', + /* Set Flags: Unconditional Shifts and Rotates */ + 'asrs.w','asrsal.w', + 'asrs','asrsal', + 'lsls.w','lslsal.w', + 'lsls','lslsal', + 'lsrs.w','lsrsal.w', + 'lsrs','lsrsal', + 'rors.w','rorsal.w', + 'rors','rorsal', + 'rrxs','rrxsal', + /* Set Flags: Unconditional Multiply and Multiply-Add */ + 'mlas','mlasal', + 'smulls','smullsal', + 'umulls','umullsal', + 'smlals','smlalsal', + 'umlals','umlalsal' + ), + /* Conditional Flags-Affecting Instructions */ + 6 => array( + /* Set Flags: Conditional Addition and Subtraction */ + 'addseq.w','addsne.w','addscs.w','addshs.w','addscc.w','addslo.w','addsmi.w','addspl.w','addsvs.w','addsvc.w','addshi.w','addsls.w','addsge.w','addslt.w','addsgt.w','addsle.w', + 'addseq','addsne','addscs','addshs','addscc','addslo','addsmi','addspl','addsvs','addsvc','addshi','addsls','addsge','addslt','addsgt','addsle', + 'subseq.w','subsne.w','subscs.w','subshs.w','subscc.w','subslo.w','subsmi.w','subspl.w','subsvs.w','subsvc.w','subshi.w','subsls.w','subsge.w','subslt.w','subsgt.w','subsle.w', + 'subseq','subsne','subscs','subshs','subscc','subslo','subsmi','subspl','subsvs','subsvc','subshi','subsls','subsge','subslt','subsgt','subsle', + 'rsbseq.w','rsbsne.w','rsbscs.w','rsbshs.w','rsbscc.w','rsbslo.w','rsbsmi.w','rsbspl.w','rsbsvs.w','rsbsvc.w','rsbshi.w','rsbsls.w','rsbsge.w','rsbslt.w','rsbsgt.w','rsbsle.w', + 'rsbseq','rsbsne','rsbscs','rsbshs','rsbscc','rsbslo','rsbsmi','rsbspl','rsbsvs','rsbsvc','rsbshi','rsbsls','rsbsge','rsbslt','rsbsgt','rsbsle', + 'negseq.w','negsne.w','negscs.w','negshs.w','negscc.w','negslo.w','negsmi.w','negspl.w','negsvs.w','negsvc.w','negshi.w','negsls.w','negsge.w','negslt.w','negsgt.w','negsle.w', + 'negseq','negsne','negscs','negshs','negscc','negslo','negsmi','negspl','negsvs','negsvc','negshi','negsls','negsge','negslt','negsgt','negsle', + 'adcseq.w','adcsne.w','adcscs.w','adcshs.w','adcscc.w','adcslo.w','adcsmi.w','adcspl.w','adcsvs.w','adcsvc.w','adcshi.w','adcsls.w','adcsge.w','adcslt.w','adcsgt.w','adcsle.w', + 'adcseq','adcsne','adcscs','adcshs','adcscc','adcslo','adcsmi','adcspl','adcsvs','adcsvc','adcshi','adcsls','adcsge','adcslt','adcsgt','adcsle', + 'sbcseq.w','sbcsne.w','sbcscs.w','sbcshs.w','sbcscc.w','sbcslo.w','sbcsmi.w','sbcspl.w','sbcsvs.w','sbcsvc.w','sbcshi.w','sbcsls.w','sbcsge.w','sbcslt.w','sbcsgt.w','sbcsle.w', + 'sbcseq','sbcsne','sbcscs','sbcshs','sbcscc','sbcslo','sbcsmi','sbcspl','sbcsvs','sbcsvc','sbcshi','sbcsls','sbcsge','sbcslt','sbcsgt','sbcsle', + 'rscseq','rscsne','rscscs','rscshs','rscscc','rscslo','rscsmi','rscspl','rscsvs','rscsvc','rscshi','rscsls','rscsge','rscslt','rscsgt','rscsle', + 'cmpeq.w','cmpne.w','cmpcs.w','cmphs.w','cmpcc.w','cmplo.w','cmpmi.w','cmppl.w','cmpvs.w','cmpvc.w','cmphi.w','cmpls.w','cmpge.w','cmplt.w','cmpgt.w','cmple.w', + 'cmpeq','cmpne','cmpcs','cmphs','cmpcc','cmplo','cmpmi','cmppl','cmpvs','cmpvc','cmphi','cmpls','cmpge','cmplt','cmpgt','cmple', + 'cmneq.w','cmnne.w','cmncs.w','cmnhs.w','cmncc.w','cmnlo.w','cmnmi.w','cmnpl.w','cmnvs.w','cmnvc.w','cmnhi.w','cmnls.w','cmnge.w','cmnlt.w','cmngt.w','cmnle.w', + 'cmneq','cmnne','cmncs','cmnhs','cmncc','cmnlo','cmnmi','cmnpl','cmnvs','cmnvc','cmnhi','cmnls','cmnge','cmnlt','cmngt','cmnle', + /* Set Flags: Conditional Logical */ + 'andseq.w','andsne.w','andscs.w','andshs.w','andscc.w','andslo.w','andsmi.w','andspl.w','andsvs.w','andsvc.w','andshi.w','andsls.w','andsge.w','andslt.w','andsgt.w','andsle.w', + 'andseq','andsne','andscs','andshs','andscc','andslo','andsmi','andspl','andsvs','andsvc','andshi','andsls','andsge','andslt','andsgt','andsle', + 'bicseq.w','bicsne.w','bicscs.w','bicshs.w','bicscc.w','bicslo.w','bicsmi.w','bicspl.w','bicsvs.w','bicsvc.w','bicshi.w','bicsls.w','bicsge.w','bicslt.w','bicsgt.w','bicsle.w', + 'bicseq','bicsne','bicscs','bicshs','bicscc','bicslo','bicsmi','bicspl','bicsvs','bicsvc','bicshi','bicsls','bicsge','bicslt','bicsgt','bicsle', + 'orrseq.w','orrsne.w','orrscs.w','orrshs.w','orrscc.w','orrslo.w','orrsmi.w','orrspl.w','orrsvs.w','orrsvc.w','orrshi.w','orrsls.w','orrsge.w','orrslt.w','orrsgt.w','orrsle.w', + 'orrseq','orrsne','orrscs','orrshs','orrscc','orrslo','orrsmi','orrspl','orrsvs','orrsvc','orrshi','orrsls','orrsge','orrslt','orrsgt','orrsle', + 'ornseq.w','ornsne.w','ornscs.w','ornshs.w','ornscc.w','ornslo.w','ornsmi.w','ornspl.w','ornsvs.w','ornsvc.w','ornshi.w','ornsls.w','ornsge.w','ornslt.w','ornsgt.w','ornsle.w', + 'ornseq','ornsne','ornscs','ornshs','ornscc','ornslo','ornsmi','ornspl','ornsvs','ornsvc','ornshi','ornsls','ornsge','ornslt','ornsgt','ornsle', + 'eorseq.w','eorsne.w','eorscs.w','eorshs.w','eorscc.w','eorslo.w','eorsmi.w','eorspl.w','eorsvs.w','eorsvc.w','eorshi.w','eorsls.w','eorsge.w','eorslt.w','eorsgt.w','eorsle.w', + 'eorseq','eorsne','eorscs','eorshs','eorscc','eorslo','eorsmi','eorspl','eorsvs','eorsvc','eorshi','eorsls','eorsge','eorslt','eorsgt','eorsle', + 'mvnseq.w','mvnsne.w','mvnscs.w','mvnshs.w','mvnscc.w','mvnslo.w','mvnsmi.w','mvnspl.w','mvnsvs.w','mvnsvc.w','mvnshi.w','mvnsls.w','mvnsge.w','mvnslt.w','mvnsgt.w','mvnsle.w', + 'mvnseq','mvnsne','mvnscs','mvnshs','mvnscc','mvnslo','mvnsmi','mvnspl','mvnsvs','mvnsvc','mvnshi','mvnsls','mvnsge','mvnslt','mvnsgt','mvnsle', + 'movseq.w','movsne.w','movscs.w','movshs.w','movscc.w','movslo.w','movsmi.w','movspl.w','movsvs.w','movsvc.w','movshi.w','movsls.w','movsge.w','movslt.w','movsgt.w','movsle.w', + 'movseq','movsne','movscs','movshs','movscc','movslo','movsmi','movspl','movsvs','movsvc','movshi','movsls','movsge','movslt','movsgt','movsle', + 'teqeq','teqne','teqcs','teqhs','teqcc','teqlo','teqmi','teqpl','teqvs','teqvc','teqhi','teqls','teqge','teqlt','teqgt','teqle', + 'tsteq.w','tstne.w','tstcs.w','tsths.w','tstcc.w','tstlo.w','tstmi.w','tstpl.w','tstvs.w','tstvc.w','tsthi.w','tstls.w','tstge.w','tstlt.w','tstgt.w','tstle.w', + 'tsteq','tstne','tstcs','tsths','tstcc','tstlo','tstmi','tstpl','tstvs','tstvc','tsthi','tstls','tstge','tstlt','tstgt','tstle', + 'mrseq','mrsne','mrscs','mrshs','mrscc','mrslo','mrsmi','mrspl','mrsvs','mrsvc','mrshi','mrsls','mrsge','mrslt','mrsgt','mrsle', + 'msreq','msrne','msrcs','msrhs','msrcc','msrlo','msrmi','msrpl','msrvs','msrvc','msrhi','msrls','msrge','msrlt','msrgt','msrle', + /* Set Flags: Conditional Shifts and Rotates */ + 'asrseq.w','asrsne.w','asrscs.w','asrshs.w','asrscc.w','asrslo.w','asrsmi.w','asrspl.w','asrsvs.w','asrsvc.w','asrshi.w','asrsls.w','asrsge.w','asrslt.w','asrsgt.w','asrsle.w', + 'asrseq','asrsne','asrscs','asrshs','asrscc','asrslo','asrsmi','asrspl','asrsvs','asrsvc','asrshi','asrsls','asrsge','asrslt','asrsgt','asrsle', + 'lslseq.w','lslsne.w','lslscs.w','lslshs.w','lslscc.w','lslslo.w','lslsmi.w','lslspl.w','lslsvs.w','lslsvc.w','lslshi.w','lslsls.w','lslsge.w','lslslt.w','lslsgt.w','lslsle.w', + 'lslseq','lslsne','lslscs','lslshs','lslscc','lslslo','lslsmi','lslspl','lslsvs','lslsvc','lslshi','lslsls','lslsge','lslslt','lslsgt','lslsle', + 'lsrseq.w','lsrsne.w','lsrscs.w','lsrshs.w','lsrscc.w','lsrslo.w','lsrsmi.w','lsrspl.w','lsrsvs.w','lsrsvc.w','lsrshi.w','lsrsls.w','lsrsge.w','lsrslt.w','lsrsgt.w','lsrsle.w', + 'lsrseq','lsrsne','lsrscs','lsrshs','lsrscc','lsrslo','lsrsmi','lsrspl','lsrsvs','lsrsvc','lsrshi','lsrsls','lsrsge','lsrslt','lsrsgt','lsrsle', + 'rorseq.w','rorsne.w','rorscs.w','rorshs.w','rorscc.w','rorslo.w','rorsmi.w','rorspl.w','rorsvs.w','rorsvc.w','rorshi.w','rorsls.w','rorsge.w','rorslt.w','rorsgt.w','rorsle.w', + 'rorseq','rorsne','rorscs','rorshs','rorscc','rorslo','rorsmi','rorspl','rorsvs','rorsvc','rorshi','rorsls','rorsge','rorslt','rorsgt','rorsle', + 'rrxseq','rrxsne','rrxscs','rrxshs','rrxscc','rrxslo','rrxsmi','rrxspl','rrxsvs','rrxsvc','rrxshi','rrxsls','rrxsge','rrxslt','rrxsgt','rrxsle', + /* Set Flags: Conditional Multiply and Multiply-Add */ + 'mlaseq','mlasne','mlascs','mlashs','mlascc','mlaslo','mlasmi','mlaspl','mlasvs','mlasvc','mlashi','mlasls','mlasge','mlaslt','mlasgt','mlasle', + 'smullseq','smullsne','smullscs','smullshs','smullscc','smullslo','smullsmi','smullspl','smullsvs','smullsvc','smullshi','smullsls','smullsge','smullslt','smullsgt','smullsle', + 'umullseq','umullsne','umullscs','umullshs','umullscc','umullslo','umullsmi','umullspl','umullsvs','umullsvc','umullshi','umullsls','umullsge','umullslt','umullsgt','umullsle', + 'smlalseq','smlalsne','smlalscs','smlalshs','smlalscc','smlalslo','smlalsmi','smlalspl','smlalsvs','smlalsvc','smlalshi','smlalsls','smlalsge','smlalslt','smlalsgt','smlalsle', + 'umlalseq','umlalsne','umlalscs','umlalshs','umlalscc','umlalslo','umlalsmi','umlalspl','umlalsvs','umlalsvc','umlalshi','umlalsls','umlalsge','umlalslt','umlalsgt','umlalsle' + ), + /* Unconditional Flow Control Instructions */ + 7 => array( + /* Flow Control: Unconditional Branch and If-Then-Else */ + 'b.w','bal.w', + 'b','bal', + 'bl','blal', + 'bx','bxal', + 'blx','blxal', + 'bxj','bxjal', + 'cbnz', + 'cbz', + 'tbb','tbbal', + 'tbh','tbhal', + 'it', + 'itt', + 'ite', + 'ittt', + 'itet', + 'itte', + 'itee', + 'itttt', + 'itett', + 'ittet', + 'iteet', + 'ittte', + 'itete', + 'ittee', + 'iteee' + ), + /* Conditional Flow Control Instructions */ + 8 => array( + /* Flow Control: Conditional Branch and If-Then-Else */ + 'beq.w','bne.w','bcs.w','bhs.w','bcc.w','blo.w','bmi.w','bpl.w','bvs.w','bvc.w','bhi.w','bls.w','bge.w','blt.w','bgt.w','ble.w', + 'beq','bne','bcs','bhs','bcc','blo','bmi','bpl','bvs','bvc','bhi','bls','bge','blt','bgt','ble', + 'bleq','blne','blcs','blhs','blcc','bllo','blmi','blpl','blvs','blvc','blhi','blls','blge','bllt','blgt','blle', + 'bxeq','bxne','bxcs','bxhs','bxcc','bxlo','bxmi','bxpl','bxvs','bxvc','bxhi','bxls','bxge','bxlt','bxgt','bxle', + 'blxeq','blxne','blxcs','blxhs','blxcc','blxlo','blxmi','blxpl','blxvs','blxvc','blxhi','blxls','blxge','blxlt','blxgt','blxle', + 'bxjeq','bxjne','bxjcs','bxjhs','bxjcc','bxjlo','bxjmi','bxjpl','bxjvs','bxjvc','bxjhi','bxjls','bxjge','bxjlt','bxjgt','bxjle', + 'tbbeq','tbbne','tbbcs','tbbhs','tbbcc','tbblo','tbbmi','tbbpl','tbbvs','tbbvc','tbbhi','tbbls','tbbge','tbblt','tbbgt','tbble', + 'tbheq','tbhne','tbhcs','tbhhs','tbhcc','tbhlo','tbhmi','tbhpl','tbhvs','tbhvc','tbhhi','tbhls','tbhge','tbhlt','tbhgt','tbhle' + ), + /* Unconditional Syncronization Instructions */ + 9 => array( + /* Synchronization: Unconditional Loads, Stores and Barriers */ + 'ldrexd','ldrexdal', + 'ldrex','ldrexal', + 'ldrexh','ldrexhal', + 'ldrexb','ldrexbal', + 'strexd','strexdal', + 'strex','strexal', + 'strexh','strexhal', + 'strexb','strexbal', + 'clrex','clrexal', + 'swp','swpal', + 'swpb','swpbal', + 'dbc','dbcal', + 'dsb','dsbal', + 'isb','isbal', + 'yield.w','yieldal.w', + 'yield','yieldal', + 'nop.w','nopal.w', + 'nop','nopal' + ), + /* Conditional Syncronization Instructions */ + 10 => array( + /* Synchronization: Conditional Loads, Stores and Barriers */ + 'ldrexdeq','ldrexdne','ldrexdcs','ldrexdhs','ldrexdcc','ldrexdlo','ldrexdmi','ldrexdpl','ldrexdvs','ldrexdvc','ldrexdhi','ldrexdls','ldrexdge','ldrexdlt','ldrexdgt','ldrexdle', + 'ldrexeq','ldrexne','ldrexcs','ldrexhs','ldrexcc','ldrexlo','ldrexmi','ldrexpl','ldrexvs','ldrexvc','ldrexhi','ldrexls','ldrexge','ldrexlt','ldrexgt','ldrexle', + 'ldrexheq','ldrexhne','ldrexhcs','ldrexhhs','ldrexhcc','ldrexhlo','ldrexhmi','ldrexhpl','ldrexhvs','ldrexhvc','ldrexhhi','ldrexhls','ldrexhge','ldrexhlt','ldrexhgt','ldrexhle', + 'ldrexbeq','ldrexbne','ldrexbcs','ldrexbhs','ldrexbcc','ldrexblo','ldrexbmi','ldrexbpl','ldrexbvs','ldrexbvc','ldrexbhi','ldrexbls','ldrexbge','ldrexblt','ldrexbgt','ldrexble', + 'strexdeq','strexdne','strexdcs','strexdhs','strexdcc','strexdlo','strexdmi','strexdpl','strexdvs','strexdvc','strexdhi','strexdls','strexdge','strexdlt','strexdgt','strexdle', + 'strexeq','strexne','strexcs','strexhs','strexcc','strexlo','strexmi','strexpl','strexvs','strexvc','strexhi','strexls','strexge','strexlt','strexgt','strexle', + 'strexheq','strexhne','strexhcs','strexhhs','strexhcc','strexhlo','strexhmi','strexhpl','strexhvs','strexhvc','strexhhi','strexhls','strexhge','strexhlt','strexhgt','strexhle', + 'strexbeq','strexbne','strexbcs','strexbhs','strexbcc','strexblo','strexbmi','strexbpl','strexbvs','strexbvc','strexbhi','strexbls','strexbge','strexblt','strexbgt','strexble', + 'clrexeq','clrexne','clrexcs','clrexhs','clrexcc','clrexlo','clrexmi','clrexpl','clrexvs','clrexvc','clrexhi','clrexls','clrexge','clrexlt','clrexgt','clrexle', + 'swpeq','swpne','swpcs','swphs','swpcc','swplo','swpmi','swppl','swpvs','swpvc','swphi','swpls','swpge','swplt','swpgt','swple', + 'swpbeq','swpbne','swpbcs','swpbhs','swpbcc','swpblo','swpbmi','swpbpl','swpbvs','swpbvc','swpbhi','swpbls','swpbge','swpblt','swpbgt','swpble', + 'dbceq','dbcne','dbccs','dbchs','dbccc','dbclo','dbcmi','dbcpl','dbcvs','dbcvc','dbchi','dbcls','dbcge','dbclt','dbcgt','dbcle', + 'dsbeq','dsbne','dsbcs','dsbhs','dsbcc','dsblo','dsbmi','dsbpl','dsbvs','dsbvc','dsbhi','dsbls','dsbge','dsblt','dsbgt','dsble', + 'isbeq','isbne','isbcs','isbhs','isbcc','isblo','isbmi','isbpl','isbvs','isbvc','isbhi','isbls','isbge','isblt','isbgt','isble', + 'yieldeq.w','yieldne.w','yieldcs.w','yieldhs.w','yieldcc.w','yieldlo.w','yieldmi.w','yieldpl.w','yieldvs.w','yieldvc.w','yieldhi.w','yieldls.w','yieldge.w','yieldlt.w','yieldgt.w','yieldle.w', + 'yieldeq','yieldne','yieldcs','yieldhs','yieldcc','yieldlo','yieldmi','yieldpl','yieldvs','yieldvc','yieldhi','yieldls','yieldge','yieldlt','yieldgt','yieldle', + 'nopeq.w','nopne.w','nopcs.w','nophs.w','nopcc.w','noplo.w','nopmi.w','noppl.w','nopvs.w','nopvc.w','nophi.w','nopls.w','nopge.w','noplt.w','nopgt.w','nople.w', + 'nopeq','nopne','nopcs','nophs','nopcc','noplo','nopmi','noppl','nopvs','nopvc','nophi','nopls','nopge','noplt','nopgt','nople' + ), + /* Unconditional ARMv6 SIMD */ + 11 => array( + /* ARMv6 SIMD: Unconditional Addition, Subtraction & Saturation */ + 'sadd16','sadd16al', + 'sadd8','sadd8al', + 'uadd16','uadd16al', + 'uadd8','uadd8al', + 'ssub16','ssub16al', + 'ssub8','ssub8al', + 'usub16','usub16al', + 'usub8','usub8al', + 'sasx','sasxal', + 'ssax','ssaxal', + 'uasx','uasxal', + 'usax','usaxal', + 'usad8','usad8al', + 'usada8','usada8al', + /* ARMv6 SIMD: Unconditional Halving Addition & Subtraction */ + 'shadd16','shadd16al', + 'shadd8','shadd8al', + 'uhadd16','uhadd16al', + 'uhadd8','uhadd8al', + 'shsub16','shsub16al', + 'shsub8','shsub8al', + 'uhsub16','uhsub16al', + 'uhsub8','uhsub8al', + 'shasx','shasxal', + 'shsax','shsaxal', + 'uhasx','uhasxal', + 'uhsax','uhsaxal', + /* ARMv6 SIMD: Unconditional Saturating Operations */ + 'qadd','qaddal', + 'qadd16','qadd16al', + 'qadd8','qadd8al', + 'uqadd16','uqadd16al', + 'uqadd8','uqadd8al', + 'qsub','qsubal', + 'qsub16','qsub16al', + 'qsub8','qsub8al', + 'uqsub16','uqsub16al', + 'uqsub8','uqsub8al', + 'qasx','qasxal', + 'qsax','qsaxal', + 'uqasx','uqasxal', + 'uqsax','uqsaxal', + 'qdadd','qdaddal', + 'qdsub','qdsubal', + 'ssat','ssatal', + 'ssat16','ssat16al', + 'usat','usatal', + 'usat16','usat16al', + /* ARMv6 SIMD: Unconditional Permutation and Combine Operations */ + 'sxtah','sxtahal', + 'sxtab','sxtabal', + 'sxtab16','sxtab16al', + 'uxtah','uxtahal', + 'uxtab','uxtabal', + 'uxtab16','uxtab16al', + 'sxth.w','sxthal.w', + 'sxth','sxthal', + 'sxtb.w','sxtbal.w', + 'sxtb','sxtbal', + 'sxtb16','sxtb16al', + 'uxth.w','uxthal.w', + 'uxth','uxthal', + 'uxtb.w','uxtbal.w', + 'uxtb','uxtbal', + 'uxtb16','uxtb16al', + 'pkhbt','pkhbtal', + 'pkhtb','pkhtbal', + 'rbit','rbital', + 'rev.w','reval.w', + 'rev','reval', + 'rev16.w','rev16al.w', + 'rev16','rev16al', + 'revsh.w','revshal.w', + 'revsh','revshal', + 'sel','selal', + /* ARMv6 SIMD: Unconditional Multiply and Multiply-Add */ + 'smlad','smladal', + 'smladx','smladxal', + 'smlsd','smlsdal', + 'smlsdx','smlsdxal', + 'smlald','smlaldal', + 'smlaldx','smlaldxal', + 'smlsld','smlsldal', + 'smlsldx','smlsldxal', + 'smmul','smmulal', + 'smmulr','smmulral', + 'smmla','smmlaal', + 'smmlar','smmlaral', + 'smmls','smmlsal', + 'smmlsr','smmlsral', + 'smuad','smuadal', + 'smuadx','smuadxal', + 'smusd','smusdal', + 'smusdx','smusdxal', + 'umaal','umaalal' + ), + /* Conditional ARMv6 SIMD */ + 12 => array( + /* ARMv6 SIMD: Conditional Addition, Subtraction & Saturation */ + 'sadd16eq','sadd16ne','sadd16cs','sadd16hs','sadd16cc','sadd16lo','sadd16mi','sadd16pl','sadd16vs','sadd16vc','sadd16hi','sadd16ls','sadd16ge','sadd16lt','sadd16gt','sadd16le', + 'sadd8eq','sadd8ne','sadd8cs','sadd8hs','sadd8cc','sadd8lo','sadd8mi','sadd8pl','sadd8vs','sadd8vc','sadd8hi','sadd8ls','sadd8ge','sadd8lt','sadd8gt','sadd8le', + 'uadd16eq','uadd16ne','uadd16cs','uadd16hs','uadd16cc','uadd16lo','uadd16mi','uadd16pl','uadd16vs','uadd16vc','uadd16hi','uadd16ls','uadd16ge','uadd16lt','uadd16gt','uadd16le', + 'uadd8eq','uadd8ne','uadd8cs','uadd8hs','uadd8cc','uadd8lo','uadd8mi','uadd8pl','uadd8vs','uadd8vc','uadd8hi','uadd8ls','uadd8ge','uadd8lt','uadd8gt','uadd8le', + 'ssub16eq','ssub16ne','ssub16cs','ssub16hs','ssub16cc','ssub16lo','ssub16mi','ssub16pl','ssub16vs','ssub16vc','ssub16hi','ssub16ls','ssub16ge','ssub16lt','ssub16gt','ssub16le', + 'ssub8eq','ssub8ne','ssub8cs','ssub8hs','ssub8cc','ssub8lo','ssub8mi','ssub8pl','ssub8vs','ssub8vc','ssub8hi','ssub8ls','ssub8ge','ssub8lt','ssub8gt','ssub8le', + 'usub16eq','usub16ne','usub16cs','usub16hs','usub16cc','usub16lo','usub16mi','usub16pl','usub16vs','usub16vc','usub16hi','usub16ls','usub16ge','usub16lt','usub16gt','usub16le', + 'usub8eq','usub8ne','usub8cs','usub8hs','usub8cc','usub8lo','usub8mi','usub8pl','usub8vs','usub8vc','usub8hi','usub8ls','usub8ge','usub8lt','usub8gt','usub8le', + 'sasxeq','sasxne','sasxcs','sasxhs','sasxcc','sasxlo','sasxmi','sasxpl','sasxvs','sasxvc','sasxhi','sasxls','sasxge','sasxlt','sasxgt','sasxle', + 'ssaxeq','ssaxne','ssaxcs','ssaxhs','ssaxcc','ssaxlo','ssaxmi','ssaxpl','ssaxvs','ssaxvc','ssaxhi','ssaxls','ssaxge','ssaxlt','ssaxgt','ssaxle', + 'uasxeq','uasxne','uasxcs','uasxhs','uasxcc','uasxlo','uasxmi','uasxpl','uasxvs','uasxvc','uasxhi','uasxls','uasxge','uasxlt','uasxgt','uasxle', + 'usaxeq','usaxne','usaxcs','usaxhs','usaxcc','usaxlo','usaxmi','usaxpl','usaxvs','usaxvc','usaxhi','usaxls','usaxge','usaxlt','usaxgt','usaxle', + 'usad8eq','usad8ne','usad8cs','usad8hs','usad8cc','usad8lo','usad8mi','usad8pl','usad8vs','usad8vc','usad8hi','usad8ls','usad8ge','usad8lt','usad8gt','usad8le', + 'usada8eq','usada8ne','usada8cs','usada8hs','usada8cc','usada8lo','usada8mi','usada8pl','usada8vs','usada8vc','usada8hi','usada8ls','usada8ge','usada8lt','usada8gt','usada8le', + /* ARMv6 SIMD: Conditional Halving Addition & Subtraction */ + 'shadd16eq','shadd16ne','shadd16cs','shadd16hs','shadd16cc','shadd16lo','shadd16mi','shadd16pl','shadd16vs','shadd16vc','shadd16hi','shadd16ls','shadd16ge','shadd16lt','shadd16gt','shadd16le', + 'shadd8eq','shadd8ne','shadd8cs','shadd8hs','shadd8cc','shadd8lo','shadd8mi','shadd8pl','shadd8vs','shadd8vc','shadd8hi','shadd8ls','shadd8ge','shadd8lt','shadd8gt','shadd8le', + 'uhadd16eq','uhadd16ne','uhadd16cs','uhadd16hs','uhadd16cc','uhadd16lo','uhadd16mi','uhadd16pl','uhadd16vs','uhadd16vc','uhadd16hi','uhadd16ls','uhadd16ge','uhadd16lt','uhadd16gt','uhadd16le', + 'uhadd8eq','uhadd8ne','uhadd8cs','uhadd8hs','uhadd8cc','uhadd8lo','uhadd8mi','uhadd8pl','uhadd8vs','uhadd8vc','uhadd8hi','uhadd8ls','uhadd8ge','uhadd8lt','uhadd8gt','uhadd8le', + 'shsub16eq','shsub16ne','shsub16cs','shsub16hs','shsub16cc','shsub16lo','shsub16mi','shsub16pl','shsub16vs','shsub16vc','shsub16hi','shsub16ls','shsub16ge','shsub16lt','shsub16gt','shsub16le', + 'shsub8eq','shsub8ne','shsub8cs','shsub8hs','shsub8cc','shsub8lo','shsub8mi','shsub8pl','shsub8vs','shsub8vc','shsub8hi','shsub8ls','shsub8ge','shsub8lt','shsub8gt','shsub8le', + 'uhsub16eq','uhsub16ne','uhsub16cs','uhsub16hs','uhsub16cc','uhsub16lo','uhsub16mi','uhsub16pl','uhsub16vs','uhsub16vc','uhsub16hi','uhsub16ls','uhsub16ge','uhsub16lt','uhsub16gt','uhsub16le', + 'uhsub8eq','uhsub8ne','uhsub8cs','uhsub8hs','uhsub8cc','uhsub8lo','uhsub8mi','uhsub8pl','uhsub8vs','uhsub8vc','uhsub8hi','uhsub8ls','uhsub8ge','uhsub8lt','uhsub8gt','uhsub8le', + 'shasxeq','shasxne','shasxcs','shasxhs','shasxcc','shasxlo','shasxmi','shasxpl','shasxvs','shasxvc','shasxhi','shasxls','shasxge','shasxlt','shasxgt','shasxle', + 'shsaxeq','shsaxne','shsaxcs','shsaxhs','shsaxcc','shsaxlo','shsaxmi','shsaxpl','shsaxvs','shsaxvc','shsaxhi','shsaxls','shsaxge','shsaxlt','shsaxgt','shsaxle', + 'uhasxeq','uhasxne','uhasxcs','uhasxhs','uhasxcc','uhasxlo','uhasxmi','uhasxpl','uhasxvs','uhasxvc','uhasxhi','uhasxls','uhasxge','uhasxlt','uhasxgt','uhasxle', + 'uhsaxeq','uhsaxne','uhsaxcs','uhsaxhs','uhsaxcc','uhsaxlo','uhsaxmi','uhsaxpl','uhsaxvs','uhsaxvc','uhsaxhi','uhsaxls','uhsaxge','uhsaxlt','uhsaxgt','uhsaxle', + /* ARMv6 SIMD: Conditional Saturating Operations */ + 'qaddeq','qaddne','qaddcs','qaddhs','qaddcc','qaddlo','qaddmi','qaddpl','qaddvs','qaddvc','qaddhi','qaddls','qaddge','qaddlt','qaddgt','qaddle', + 'qadd16eq','qadd16ne','qadd16cs','qadd16hs','qadd16cc','qadd16lo','qadd16mi','qadd16pl','qadd16vs','qadd16vc','qadd16hi','qadd16ls','qadd16ge','qadd16lt','qadd16gt','qadd16le', + 'qadd8eq','qadd8ne','qadd8cs','qadd8hs','qadd8cc','qadd8lo','qadd8mi','qadd8pl','qadd8vs','qadd8vc','qadd8hi','qadd8ls','qadd8ge','qadd8lt','qadd8gt','qadd8le', + 'uqadd16eq','uqadd16ne','uqadd16cs','uqadd16hs','uqadd16cc','uqadd16lo','uqadd16mi','uqadd16pl','uqadd16vs','uqadd16vc','uqadd16hi','uqadd16ls','uqadd16ge','uqadd16lt','uqadd16gt','uqadd16le', + 'uqadd8eq','uqadd8ne','uqadd8cs','uqadd8hs','uqadd8cc','uqadd8lo','uqadd8mi','uqadd8pl','uqadd8vs','uqadd8vc','uqadd8hi','uqadd8ls','uqadd8ge','uqadd8lt','uqadd8gt','uqadd8le', + 'qsubeq','qsubne','qsubcs','qsubhs','qsubcc','qsublo','qsubmi','qsubpl','qsubvs','qsubvc','qsubhi','qsubls','qsubge','qsublt','qsubgt','qsuble', + 'qsub16eq','qsub16ne','qsub16cs','qsub16hs','qsub16cc','qsub16lo','qsub16mi','qsub16pl','qsub16vs','qsub16vc','qsub16hi','qsub16ls','qsub16ge','qsub16lt','qsub16gt','qsub16le', + 'qsub8eq','qsub8ne','qsub8cs','qsub8hs','qsub8cc','qsub8lo','qsub8mi','qsub8pl','qsub8vs','qsub8vc','qsub8hi','qsub8ls','qsub8ge','qsub8lt','qsub8gt','qsub8le', + 'uqsub16eq','uqsub16ne','uqsub16cs','uqsub16hs','uqsub16cc','uqsub16lo','uqsub16mi','uqsub16pl','uqsub16vs','uqsub16vc','uqsub16hi','uqsub16ls','uqsub16ge','uqsub16lt','uqsub16gt','uqsub16le', + 'uqsub8eq','uqsub8ne','uqsub8cs','uqsub8hs','uqsub8cc','uqsub8lo','uqsub8mi','uqsub8pl','uqsub8vs','uqsub8vc','uqsub8hi','uqsub8ls','uqsub8ge','uqsub8lt','uqsub8gt','uqsub8le', + 'qasxeq','qasxne','qasxcs','qasxhs','qasxcc','qasxlo','qasxmi','qasxpl','qasxvs','qasxvc','qasxhi','qasxls','qasxge','qasxlt','qasxgt','qasxle', + 'qsaxeq','qsaxne','qsaxcs','qsaxhs','qsaxcc','qsaxlo','qsaxmi','qsaxpl','qsaxvs','qsaxvc','qsaxhi','qsaxls','qsaxge','qsaxlt','qsaxgt','qsaxle', + 'uqasxeq','uqasxne','uqasxcs','uqasxhs','uqasxcc','uqasxlo','uqasxmi','uqasxpl','uqasxvs','uqasxvc','uqasxhi','uqasxls','uqasxge','uqasxlt','uqasxgt','uqasxle', + 'uqsaxeq','uqsaxne','uqsaxcs','uqsaxhs','uqsaxcc','uqsaxlo','uqsaxmi','uqsaxpl','uqsaxvs','uqsaxvc','uqsaxhi','uqsaxls','uqsaxge','uqsaxlt','uqsaxgt','uqsaxle', + 'qdaddeq','qdaddne','qdaddcs','qdaddhs','qdaddcc','qdaddlo','qdaddmi','qdaddpl','qdaddvs','qdaddvc','qdaddhi','qdaddls','qdaddge','qdaddlt','qdaddgt','qdaddle', + 'qdsubeq','qdsubne','qdsubcs','qdsubhs','qdsubcc','qdsublo','qdsubmi','qdsubpl','qdsubvs','qdsubvc','qdsubhi','qdsubls','qdsubge','qdsublt','qdsubgt','qdsuble', + 'ssateq','ssatne','ssatcs','ssaths','ssatcc','ssatlo','ssatmi','ssatpl','ssatvs','ssatvc','ssathi','ssatls','ssatge','ssatlt','ssatgt','ssatle', + 'ssat16eq','ssat16ne','ssat16cs','ssat16hs','ssat16cc','ssat16lo','ssat16mi','ssat16pl','ssat16vs','ssat16vc','ssat16hi','ssat16ls','ssat16ge','ssat16lt','ssat16gt','ssat16le', + 'usateq','usatne','usatcs','usaths','usatcc','usatlo','usatmi','usatpl','usatvs','usatvc','usathi','usatls','usatge','usatlt','usatgt','usatle', + 'usat16eq','usat16ne','usat16cs','usat16hs','usat16cc','usat16lo','usat16mi','usat16pl','usat16vs','usat16vc','usat16hi','usat16ls','usat16ge','usat16lt','usat16gt','usat16le', + /* ARMv6 SIMD: Conditional Permutation and Combine Operations */ + 'sxtaheq','sxtahne','sxtahcs','sxtahhs','sxtahcc','sxtahlo','sxtahmi','sxtahpl','sxtahvs','sxtahvc','sxtahhi','sxtahls','sxtahge','sxtahlt','sxtahgt','sxtahle', + 'sxtabeq','sxtabne','sxtabcs','sxtabhs','sxtabcc','sxtablo','sxtabmi','sxtabpl','sxtabvs','sxtabvc','sxtabhi','sxtabls','sxtabge','sxtablt','sxtabgt','sxtable', + 'sxtab16eq','sxtab16ne','sxtab16cs','sxtab16hs','sxtab16cc','sxtab16lo','sxtab16mi','sxtab16pl','sxtab16vs','sxtab16vc','sxtab16hi','sxtab16ls','sxtab16ge','sxtab16lt','sxtab16gt','sxtab16le', + 'uxtaheq','uxtahne','uxtahcs','uxtahhs','uxtahcc','uxtahlo','uxtahmi','uxtahpl','uxtahvs','uxtahvc','uxtahhi','uxtahls','uxtahge','uxtahlt','uxtahgt','uxtahle', + 'uxtabeq','uxtabne','uxtabcs','uxtabhs','uxtabcc','uxtablo','uxtabmi','uxtabpl','uxtabvs','uxtabvc','uxtabhi','uxtabls','uxtabge','uxtablt','uxtabgt','uxtable', + 'uxtab16eq','uxtab16ne','uxtab16cs','uxtab16hs','uxtab16cc','uxtab16lo','uxtab16mi','uxtab16pl','uxtab16vs','uxtab16vc','uxtab16hi','uxtab16ls','uxtab16ge','uxtab16lt','uxtab16gt','uxtab16le', + 'sxtheq.w','sxthne.w','sxthcs.w','sxthhs.w','sxthcc.w','sxthlo.w','sxthmi.w','sxthpl.w','sxthvs.w','sxthvc.w','sxthhi.w','sxthls.w','sxthge.w','sxthlt.w','sxthgt.w','sxthle.w', + 'sxtheq','sxthne','sxthcs','sxthhs','sxthcc','sxthlo','sxthmi','sxthpl','sxthvs','sxthvc','sxthhi','sxthls','sxthge','sxthlt','sxthgt','sxthle', + 'sxtbeq.w','sxtbne.w','sxtbcs.w','sxtbhs.w','sxtbcc.w','sxtblo.w','sxtbmi.w','sxtbpl.w','sxtbvs.w','sxtbvc.w','sxtbhi.w','sxtbls.w','sxtbge.w','sxtblt.w','sxtbgt.w','sxtble.w', + 'sxtbeq','sxtbne','sxtbcs','sxtbhs','sxtbcc','sxtblo','sxtbmi','sxtbpl','sxtbvs','sxtbvc','sxtbhi','sxtbls','sxtbge','sxtblt','sxtbgt','sxtble', + 'sxtb16eq','sxtb16ne','sxtb16cs','sxtb16hs','sxtb16cc','sxtb16lo','sxtb16mi','sxtb16pl','sxtb16vs','sxtb16vc','sxtb16hi','sxtb16ls','sxtb16ge','sxtb16lt','sxtb16gt','sxtb16le', + 'uxtheq.w','uxthne.w','uxthcs.w','uxthhs.w','uxthcc.w','uxthlo.w','uxthmi.w','uxthpl.w','uxthvs.w','uxthvc.w','uxthhi.w','uxthls.w','uxthge.w','uxthlt.w','uxthgt.w','uxthle.w', + 'uxtheq','uxthne','uxthcs','uxthhs','uxthcc','uxthlo','uxthmi','uxthpl','uxthvs','uxthvc','uxthhi','uxthls','uxthge','uxthlt','uxthgt','uxthle', + 'uxtbeq.w','uxtbne.w','uxtbcs.w','uxtbhs.w','uxtbcc.w','uxtblo.w','uxtbmi.w','uxtbpl.w','uxtbvs.w','uxtbvc.w','uxtbhi.w','uxtbls.w','uxtbge.w','uxtblt.w','uxtbgt.w','uxtble.w', + 'uxtbeq','uxtbne','uxtbcs','uxtbhs','uxtbcc','uxtblo','uxtbmi','uxtbpl','uxtbvs','uxtbvc','uxtbhi','uxtbls','uxtbge','uxtblt','uxtbgt','uxtble', + 'uxtb16eq','uxtb16ne','uxtb16cs','uxtb16hs','uxtb16cc','uxtb16lo','uxtb16mi','uxtb16pl','uxtb16vs','uxtb16vc','uxtb16hi','uxtb16ls','uxtb16ge','uxtb16lt','uxtb16gt','uxtb16le', + 'pkhbteq','pkhbtne','pkhbtcs','pkhbths','pkhbtcc','pkhbtlo','pkhbtmi','pkhbtpl','pkhbtvs','pkhbtvc','pkhbthi','pkhbtls','pkhbtge','pkhbtlt','pkhbtgt','pkhbtle', + 'pkhtbeq','pkhtbne','pkhtbcs','pkhtbhs','pkhtbcc','pkhtblo','pkhtbmi','pkhtbpl','pkhtbvs','pkhtbvc','pkhtbhi','pkhtbls','pkhtbge','pkhtblt','pkhtbgt','pkhtble', + 'rbiteq','rbitne','rbitcs','rbiths','rbitcc','rbitlo','rbitmi','rbitpl','rbitvs','rbitvc','rbithi','rbitls','rbitge','rbitlt','rbitgt','rbitle', + 'reveq.w','revne.w','revcs.w','revhs.w','revcc.w','revlo.w','revmi.w','revpl.w','revvs.w','revvc.w','revhi.w','revls.w','revge.w','revlt.w','revgt.w','revle.w', + 'reveq','revne','revcs','revhs','revcc','revlo','revmi','revpl','revvs','revvc','revhi','revls','revge','revlt','revgt','revle', + 'rev16eq.w','rev16ne.w','rev16cs.w','rev16hs.w','rev16cc.w','rev16lo.w','rev16mi.w','rev16pl.w','rev16vs.w','rev16vc.w','rev16hi.w','rev16ls.w','rev16ge.w','rev16lt.w','rev16gt.w','rev16le.w', + 'rev16eq','rev16ne','rev16cs','rev16hs','rev16cc','rev16lo','rev16mi','rev16pl','rev16vs','rev16vc','rev16hi','rev16ls','rev16ge','rev16lt','rev16gt','rev16le', + 'revsheq.w','revshne.w','revshcs.w','revshhs.w','revshcc.w','revshlo.w','revshmi.w','revshpl.w','revshvs.w','revshvc.w','revshhi.w','revshls.w','revshge.w','revshlt.w','revshgt.w','revshle.w', + 'revsheq','revshne','revshcs','revshhs','revshcc','revshlo','revshmi','revshpl','revshvs','revshvc','revshhi','revshls','revshge','revshlt','revshgt','revshle', + 'seleq','selne','selcs','selhs','selcc','sello','selmi','selpl','selvs','selvc','selhi','sells','selge','sellt','selgt','selle', + /* ARMv6 SIMD: Conditional Multiply and Multiply-Add */ + 'smladeq','smladne','smladcs','smladhs','smladcc','smladlo','smladmi','smladpl','smladvs','smladvc','smladhi','smladls','smladge','smladlt','smladgt','smladle', + 'smladxeq','smladxne','smladxcs','smladxhs','smladxcc','smladxlo','smladxmi','smladxpl','smladxvs','smladxvc','smladxhi','smladxls','smladxge','smladxlt','smladxgt','smladxle', + 'smlsdeq','smlsdne','smlsdcs','smlsdhs','smlsdcc','smlsdlo','smlsdmi','smlsdpl','smlsdvs','smlsdvc','smlsdhi','smlsdls','smlsdge','smlsdlt','smlsdgt','smlsdle', + 'smlsdxeq','smlsdxne','smlsdxcs','smlsdxhs','smlsdxcc','smlsdxlo','smlsdxmi','smlsdxpl','smlsdxvs','smlsdxvc','smlsdxhi','smlsdxls','smlsdxge','smlsdxlt','smlsdxgt','smlsdxle', + 'smlaldeq','smlaldne','smlaldcs','smlaldhs','smlaldcc','smlaldlo','smlaldmi','smlaldpl','smlaldvs','smlaldvc','smlaldhi','smlaldls','smlaldge','smlaldlt','smlaldgt','smlaldle', + 'smlaldxeq','smlaldxne','smlaldxcs','smlaldxhs','smlaldxcc','smlaldxlo','smlaldxmi','smlaldxpl','smlaldxvs','smlaldxvc','smlaldxhi','smlaldxls','smlaldxge','smlaldxlt','smlaldxgt','smlaldxle', + 'smlsldeq','smlsldne','smlsldcs','smlsldhs','smlsldcc','smlsldlo','smlsldmi','smlsldpl','smlsldvs','smlsldvc','smlsldhi','smlsldls','smlsldge','smlsldlt','smlsldgt','smlsldle', + 'smlsldxeq','smlsldxne','smlsldxcs','smlsldxhs','smlsldxcc','smlsldxlo','smlsldxmi','smlsldxpl','smlsldxvs','smlsldxvc','smlsldxhi','smlsldxls','smlsldxge','smlsldxlt','smlsldxgt','smlsldxle', + 'smmuleq','smmulne','smmulcs','smmulhs','smmulcc','smmullo','smmulmi','smmulpl','smmulvs','smmulvc','smmulhi','smmulls','smmulge','smmullt','smmulgt','smmulle', + 'smmulreq','smmulrne','smmulrcs','smmulrhs','smmulrcc','smmulrlo','smmulrmi','smmulrpl','smmulrvs','smmulrvc','smmulrhi','smmulrls','smmulrge','smmulrlt','smmulrgt','smmulrle', + 'smmlaeq','smmlane','smmlacs','smmlahs','smmlacc','smmlalo','smmlami','smmlapl','smmlavs','smmlavc','smmlahi','smmlals','smmlage','smmlalt','smmlagt','smmlale', + 'smmlareq','smmlarne','smmlarcs','smmlarhs','smmlarcc','smmlarlo','smmlarmi','smmlarpl','smmlarvs','smmlarvc','smmlarhi','smmlarls','smmlarge','smmlarlt','smmlargt','smmlarle', + 'smmlseq','smmlsne','smmlscs','smmlshs','smmlscc','smmlslo','smmlsmi','smmlspl','smmlsvs','smmlsvc','smmlshi','smmlsls','smmlsge','smmlslt','smmlsgt','smmlsle', + 'smmlsreq','smmlsrne','smmlsrcs','smmlsrhs','smmlsrcc','smmlsrlo','smmlsrmi','smmlsrpl','smmlsrvs','smmlsrvc','smmlsrhi','smmlsrls','smmlsrge','smmlsrlt','smmlsrgt','smmlsrle', + 'smuadeq','smuadne','smuadcs','smuadhs','smuadcc','smuadlo','smuadmi','smuadpl','smuadvs','smuadvc','smuadhi','smuadls','smuadge','smuadlt','smuadgt','smuadle', + 'smuadxeq','smuadxne','smuadxcs','smuadxhs','smuadxcc','smuadxlo','smuadxmi','smuadxpl','smuadxvs','smuadxvc','smuadxhi','smuadxls','smuadxge','smuadxlt','smuadxgt','smuadxle', + 'smusdeq','smusdne','smusdcs','smusdhs','smusdcc','smusdlo','smusdmi','smusdpl','smusdvs','smusdvc','smusdhi','smusdls','smusdge','smusdlt','smusdgt','smusdle', + 'smusdxeq','smusdxne','smusdxcs','smusdxhs','smusdxcc','smusdxlo','smusdxmi','smusdxpl','smusdxvs','smusdxvc','smusdxhi','smusdxls','smusdxge','smusdxlt','smusdxgt','smusdxle', + 'umaaleq','umaalne','umaalcs','umaalhs','umaalcc','umaallo','umaalmi','umaalpl','umaalvs','umaalvc','umaalhi','umaalls','umaalge','umaallt','umaalgt','umaalle' + ), + /* Unconditional Coprocessor Instructions */ + 13 => array( + /* Data Processing: Unconditional Coprocessor Instructions */ + 'cdp','cdpal', + 'cdp2','cdp2al', + 'ldc','ldcal', + 'ldcl','ldclal', + 'ldc2','ldc2al', + 'ldc2l','ldc2lal', + 'stc','stcal', + 'stcl','stclal', + 'stc2','stc2al', + 'stc2l','stc2lal', + 'mcr','mcral', + 'mcr2','mcr2al', + 'mcrr','mcrral', + 'mcrr2','mcrr2al', + 'mrc','mrcal', + 'mrc2','mrc2al', + 'mrrc','mrrcal', + 'mrrc2','mrrc2al' + ), + /* Conditional Coprocessor Instructions */ + 14 => array( + /* Data Processing: Conditional Coprocessor Instructions */ + 'cdpeq','cdpne','cdpcs','cdphs','cdpcc','cdplo','cdpmi','cdppl','cdpvs','cdpvc','cdphi','cdpls','cdpge','cdplt','cdpgt','cdple', + 'cdp2eq','cdp2ne','cdp2cs','cdp2hs','cdp2cc','cdp2lo','cdp2mi','cdp2pl','cdp2vs','cdp2vc','cdp2hi','cdp2ls','cdp2ge','cdp2lt','cdp2gt','cdp2le', + 'ldceq','ldcne','ldccs','ldchs','ldccc','ldclo','ldcmi','ldcpl','ldcvs','ldcvc','ldchi','ldcls','ldcge','ldclt','ldcgt','ldcle', + 'ldcleq','ldclne','ldclcs','ldclhs','ldclcc','ldcllo','ldclmi','ldclpl','ldclvs','ldclvc','ldclhi','ldclls','ldclge','ldcllt','ldclgt','ldclle', + 'ldc2eq','ldc2ne','ldc2cs','ldc2hs','ldc2cc','ldc2lo','ldc2mi','ldc2pl','ldc2vs','ldc2vc','ldc2hi','ldc2ls','ldc2ge','ldc2lt','ldc2gt','ldc2le', + 'ldc2leq','ldc2lne','ldc2lcs','ldc2lhs','ldc2lcc','ldc2llo','ldc2lmi','ldc2lpl','ldc2lvs','ldc2lvc','ldc2lhi','ldc2lls','ldc2lge','ldc2llt','ldc2lgt','ldc2lle', + 'stceq','stcne','stccs','stchs','stccc','stclo','stcmi','stcpl','stcvs','stcvc','stchi','stcls','stcge','stclt','stcgt','stcle', + 'stcleq','stclne','stclcs','stclhs','stclcc','stcllo','stclmi','stclpl','stclvs','stclvc','stclhi','stclls','stclge','stcllt','stclgt','stclle', + 'stc2eq','stc2ne','stc2cs','stc2hs','stc2cc','stc2lo','stc2mi','stc2pl','stc2vs','stc2vc','stc2hi','stc2ls','stc2ge','stc2lt','stc2gt','stc2le', + 'stc2leq','stc2lne','stc2lcs','stc2lhs','stc2lcc','stc2llo','stc2lmi','stc2lpl','stc2lvs','stc2lvc','stc2lhi','stc2lls','stc2lge','stc2llt','stc2lgt','stc2lle', + 'mcreq','mcrne','mcrcs','mcrhs','mcrcc','mcrlo','mcrmi','mcrpl','mcrvs','mcrvc','mcrhi','mcrls','mcrge','mcrlt','mcrgt','mcrle', + 'mcr2eq','mcr2ne','mcr2cs','mcr2hs','mcr2cc','mcr2lo','mcr2mi','mcr2pl','mcr2vs','mcr2vc','mcr2hi','mcr2ls','mcr2ge','mcr2lt','mcr2gt','mcr2le', + 'mcrreq','mcrrne','mcrrcs','mcrrhs','mcrrcc','mcrrlo','mcrrmi','mcrrpl','mcrrvs','mcrrvc','mcrrhi','mcrrls','mcrrge','mcrrlt','mcrrgt','mcrrle', + 'mcrr2eq','mcrr2ne','mcrr2cs','mcrr2hs','mcrr2cc','mcrr2lo','mcrr2mi','mcrr2pl','mcrr2vs','mcrr2vc','mcrr2hi','mcrr2ls','mcrr2ge','mcrr2lt','mcrr2gt','mcrr2le', + 'mrceq','mrcne','mrccs','mrchs','mrccc','mrclo','mrcmi','mrcpl','mrcvs','mrcvc','mrchi','mrcls','mrcge','mrclt','mrcgt','mrcle', + 'mrc2eq','mrc2ne','mrc2cs','mrc2hs','mrc2cc','mrc2lo','mrc2mi','mrc2pl','mrc2vs','mrc2vc','mrc2hi','mrc2ls','mrc2ge','mrc2lt','mrc2gt','mrc2le', + 'mrrceq','mrrcne','mrrccs','mrrchs','mrrccc','mrrclo','mrrcmi','mrrcpl','mrrcvs','mrrcvc','mrrchi','mrrcls','mrrcge','mrrclt','mrrcgt','mrrcle', + 'mrrc2eq','mrrc2ne','mrrc2cs','mrrc2hs','mrrc2cc','mrrc2lo','mrrc2mi','mrrc2pl','mrrc2vs','mrrc2vc','mrrc2hi','mrrc2ls','mrrc2ge','mrrc2lt','mrrc2gt','mrrc2le' + ), + /* Unconditional System Instructions */ + 15 => array( + /* System: Unconditional Debug and State-Change Instructions */ + 'bkpt', + 'dbg','dbgal', + 'setend', + 'svc','svcal', + 'sev.w','seval.w', + 'sev','seval', + 'wfe.w','wfeal.w', + 'wfe','wfeal', + 'wfi.w','wfial.w', + 'wfi','wfial', + /* System: Unconditional ThumbEE Instructions */ + 'enterx', + 'leavex', + 'chka.n','chkaal.n', + 'chka','chkaal', + 'hb.n','hbal.n', + 'hb','hbal', + 'hbl.n','hblal.n', + 'hbl','hblal', + 'hblp.n','hblpal.n', + 'hblp','hblpal', + 'hbp.n','hbpal.n', + 'hbp','hbpal', + /* System: Unconditional Privileged Instructions */ + 'cpsie.n', + 'cpsie.w', + 'cpsie', + 'cpsid.n', + 'cpsid.w', + 'cpsid', + 'smc','smcal', + 'rfeda','rfedaal', + 'rfedb','rfedbal', + 'rfeia','rfeiaal', + 'rfeib','rfeibal', + 'srsda','srsdaal', + 'srsdb','srsdbal', + 'srsia','srsiaal', + 'srsib','srsibal' + ), + /* Conditional System Instructions */ + 16 => array( + /* System: Conditional Debug and State-Change Instructions */ + 'dbgeq','dbgne','dbgcs','dbghs','dbgcc','dbglo','dbgmi','dbgpl','dbgvs','dbgvc','dbghi','dbgls','dbgge','dbglt','dbggt','dbgle', + 'svceq','svcne','svccs','svchs','svccc','svclo','svcmi','svcpl','svcvs','svcvc','svchi','svcls','svcge','svclt','svcgt','svcle', + 'seveq.w','sevne.w','sevcs.w','sevhs.w','sevcc.w','sevlo.w','sevmi.w','sevpl.w','sevvs.w','sevvc.w','sevhi.w','sevls.w','sevge.w','sevlt.w','sevgt.w','sevle.w', + 'seveq','sevne','sevcs','sevhs','sevcc','sevlo','sevmi','sevpl','sevvs','sevvc','sevhi','sevls','sevge','sevlt','sevgt','sevle', + 'wfeeq.w','wfene.w','wfecs.w','wfehs.w','wfecc.w','wfelo.w','wfemi.w','wfepl.w','wfevs.w','wfevc.w','wfehi.w','wfels.w','wfege.w','wfelt.w','wfegt.w','wfele.w', + 'wfeeq','wfene','wfecs','wfehs','wfecc','wfelo','wfemi','wfepl','wfevs','wfevc','wfehi','wfels','wfege','wfelt','wfegt','wfele', + 'wfieq.w','wfine.w','wfics.w','wfihs.w','wficc.w','wfilo.w','wfimi.w','wfipl.w','wfivs.w','wfivc.w','wfihi.w','wfils.w','wfige.w','wfilt.w','wfigt.w','wfile.w', + 'wfieq','wfine','wfics','wfihs','wficc','wfilo','wfimi','wfipl','wfivs','wfivc','wfihi','wfils','wfige','wfilt','wfigt','wfile', + /* System: Conditional ThumbEE Instructions */ + 'chkaeq.n','chkane.n','chkacs.n','chkahs.n','chkacc.n','chkalo.n','chkami.n','chkapl.n','chkavs.n','chkavc.n','chkahi.n','chkals.n','chkage.n','chkalt.n','chkagt.n','chkale.n', + 'chkaeq','chkane','chkacs','chkahs','chkacc','chkalo','chkami','chkapl','chkavs','chkavc','chkahi','chkals','chkage','chkalt','chkagt','chkale', + 'hbeq.n','hbne.n','hbcs.n','hbhs.n','hbcc.n','hblo.n','hbmi.n','hbpl.n','hbvs.n','hbvc.n','hbhi.n','hbls.n','hbge.n','hblt.n','hbgt.n','hble.n', + 'hbeq','hbne','hbcs','hbhs','hbcc','hblo','hbmi','hbpl','hbvs','hbvc','hbhi','hbls','hbge','hblt','hbgt','hble', + 'hbleq.n','hblne.n','hblcs.n','hblhs.n','hblcc.n','hbllo.n','hblmi.n','hblpl.n','hblvs.n','hblvc.n','hblhi.n','hblls.n','hblge.n','hbllt.n','hblgt.n','hblle.n', + 'hbleq','hblne','hblcs','hblhs','hblcc','hbllo','hblmi','hblpl','hblvs','hblvc','hblhi','hblls','hblge','hbllt','hblgt','hblle', + 'hblpeq.n','hblpne.n','hblpcs.n','hblphs.n','hblpcc.n','hblplo.n','hblpmi.n','hblppl.n','hblpvs.n','hblpvc.n','hblphi.n','hblpls.n','hblpge.n','hblplt.n','hblpgt.n','hblple.n', + 'hblpeq','hblpne','hblpcs','hblphs','hblpcc','hblplo','hblpmi','hblppl','hblpvs','hblpvc','hblphi','hblpls','hblpge','hblplt','hblpgt','hblple', + 'hbpeq.n','hbpne.n','hbpcs.n','hbphs.n','hbpcc.n','hbplo.n','hbpmi.n','hbppl.n','hbpvs.n','hbpvc.n','hbphi.n','hbpls.n','hbpge.n','hbplt.n','hbpgt.n','hbple.n', + 'hbpeq','hbpne','hbpcs','hbphs','hbpcc','hbplo','hbpmi','hbppl','hbpvs','hbpvc','hbphi','hbpls','hbpge','hbplt','hbpgt','hbple', + /* System: Conditional Privileged Instructions */ + 'smceq','smcne','smccs','smchs','smccc','smclo','smcmi','smcpl','smcvs','smcvc','smchi','smcls','smcge','smclt','smcgt','smcle', + 'rfedaeq','rfedane','rfedacs','rfedahs','rfedacc','rfedalo','rfedami','rfedapl','rfedavs','rfedavc','rfedahi','rfedals','rfedage','rfedalt','rfedagt','rfedale', + 'rfedbeq','rfedbne','rfedbcs','rfedbhs','rfedbcc','rfedblo','rfedbmi','rfedbpl','rfedbvs','rfedbvc','rfedbhi','rfedbls','rfedbge','rfedblt','rfedbgt','rfedble', + 'rfeiaeq','rfeiane','rfeiacs','rfeiahs','rfeiacc','rfeialo','rfeiami','rfeiapl','rfeiavs','rfeiavc','rfeiahi','rfeials','rfeiage','rfeialt','rfeiagt','rfeiale', + 'rfeibeq','rfeibne','rfeibcs','rfeibhs','rfeibcc','rfeiblo','rfeibmi','rfeibpl','rfeibvs','rfeibvc','rfeibhi','rfeibls','rfeibge','rfeiblt','rfeibgt','rfeible', + 'srsdaeq','srsdane','srsdacs','srsdahs','srsdacc','srsdalo','srsdami','srsdapl','srsdavs','srsdavc','srsdahi','srsdals','srsdage','srsdalt','srsdagt','srsdale', + 'srsdbeq','srsdbne','srsdbcs','srsdbhs','srsdbcc','srsdblo','srsdbmi','srsdbpl','srsdbvs','srsdbvc','srsdbhi','srsdbls','srsdbge','srsdblt','srsdbgt','srsdble', + 'srsiaeq','srsiane','srsiacs','srsiahs','srsiacc','srsialo','srsiami','srsiapl','srsiavs','srsiavc','srsiahi','srsials','srsiage','srsialt','srsiagt','srsiale', + 'srsibeq','srsibne','srsibcs','srsibhs','srsibcc','srsiblo','srsibmi','srsibpl','srsibvs','srsibvc','srsibhi','srsibls','srsibge','srsiblt','srsibgt','srsible' + ), + /* Unconditional WMMX/WMMX2 instructions */ + 17 => array( + /* Unconditional WMMX/WMMX2 SIMD Instructions */ + 'tandcb','tandcbal', + 'tandch','tandchal', + 'tandcw','tandcwal', + 'tbcstb','tbcstbal', + 'tbcsth','tbcsthal', + 'tbcstw','tbcstwal', + 'textrcb','textrcbal', + 'textrch','textrchal', + 'textrcw','textrcwal', + 'textrmsb','textrmsbal', + 'textrmsh','textrmshal', + 'textrmsw','textrmswal', + 'textrmub','textrmubal', + 'textrmuh','textrmuhal', + 'textrmuw','textrmuwal', + 'tinsrb','tinsrbal', + 'tinsrh','tinsrhal', + 'tinsrw','tinsrwal', + 'tmcr','tmcral', + 'tmcrr','tmcrral', + 'tmia','tmiaal', + 'tmiaph','tmiaphal', + 'tmiabb','tmiabbal', + 'tmiabt','tmiabtal', + 'tmiatb','tmiatbal', + 'tmiatt','tmiattal', + 'tmovmskb','tmovmskbal', + 'tmovmskh','tmovmskhal', + 'tmovmskw','tmovmskwal', + 'tmrc','tmrcal', + 'tmrrc','tmrrcal', + 'torcb','torcbal', + 'torch','torchal', + 'torcw','torcwal', + 'torvscb','torvscbal', + 'torvsch','torvschal', + 'torvscw','torvscwal', + 'wabsb','wabsbal', + 'wabsh','wabshal', + 'wabsw','wabswal', + 'wabsdiffb','wabsdiffbal', + 'wabsdiffh','wabsdiffhal', + 'wabsdiffw','wabsdiffwal', + 'waccb','waccbal', + 'wacch','wacchal', + 'waccw','waccwal', + 'waddb','waddbal', + 'waddh','waddhal', + 'waddw','waddwal', + 'waddbc','waddbcal', + 'waddhc','waddhcal', + 'waddwc','waddwcal', + 'waddbss','waddbssal', + 'waddhss','waddhssal', + 'waddwss','waddwssal', + 'waddbus','waddbusal', + 'waddhus','waddhusal', + 'waddwus','waddwusal', + 'waddsubhx','waddsubhxal', + 'waligni','walignial', + 'walignr0','walignr0al', + 'walignr1','walignr1al', + 'walignr2','walignr2al', + 'walignr3','walignr3al', + 'wand','wandal', + 'wandn','wandnal', + 'wavg2b','wavg2bal', + 'wavg2h','wavg2hal', + 'wavg2br','wavg2bral', + 'wavg2hr','wavg2hral', + 'wavg4','wavg4al', + 'wavg4r','wavg4ral', + 'wcmpeqb','wcmpeqbal', + 'wcmpeqh','wcmpeqhal', + 'wcmpeqw','wcmpeqwal', + 'wcmpgtsb','wcmpgtsbal', + 'wcmpgtsh','wcmpgtshal', + 'wcmpgtsw','wcmpgtswal', + 'wcmpgtub','wcmpgtubal', + 'wcmpgtuh','wcmpgtuhal', + 'wcmpgtuw','wcmpgtuwal', + 'wldrb','wldrbal', + 'wldrh','wldrhal', + 'wldrw','wldrwal', + 'wldrd','wldrdal', + 'wmacs','wmacsal', + 'wmacu','wmacual', + 'wmacsz','wmacszal', + 'wmacuz','wmacuzal', + 'wmadds','wmaddsal', + 'wmaddu','wmaddual', + 'wmaddsx','wmaddsxal', + 'wmaddux','wmadduxal', + 'wmaddsn','wmaddsnal', + 'wmaddun','wmaddunal', + 'wmaxsb','wmaxsbal', + 'wmaxsh','wmaxshal', + 'wmaxsw','wmaxswal', + 'wmaxub','wmaxubal', + 'wmaxuh','wmaxuhal', + 'wmaxuw','wmaxuwal', + 'wmerge','wmergeal', + 'wmiabb','wmiabbal', + 'wmiabt','wmiabtal', + 'wmiatb','wmiatbal', + 'wmiatt','wmiattal', + 'wmiabbn','wmiabbnal', + 'wmiabtn','wmiabtnal', + 'wmiatbn','wmiatbnal', + 'wmiattn','wmiattnal', + 'wmiawbb','wmiawbbal', + 'wmiawbt','wmiawbtal', + 'wmiawtb','wmiawtbal', + 'wmiawtt','wmiawttal', + 'wmiawbbn','wmiawbbnal', + 'wmiawbtn','wmiawbtnal', + 'wmiawtbn','wmiawtbnal', + 'wmiawttn','wmiawttnal', + 'wminsb','wminsbal', + 'wminsh','wminshal', + 'wminsw','wminswal', + 'wminub','wminubal', + 'wminuh','wminuhal', + 'wminuw','wminuwal', + 'wmov','wmoval', + 'wmulsm','wmulsmal', + 'wmulsl','wmulslal', + 'wmulum','wmulumal', + 'wmulul','wmululal', + 'wmulsmr','wmulsmral', + 'wmulslr','wmulslral', + 'wmulumr','wmulumral', + 'wmululr','wmululral', + 'wmulwum','wmulwumal', + 'wmulwsm','wmulwsmal', + 'wmulwl','wmulwlal', + 'wmulwumr','wmulwumral', + 'wmulwsmr','wmulwsmral', + 'wor','woral', + 'wpackhss','wpackhssal', + 'wpackwss','wpackwssal', + 'wpackdss','wpackdssal', + 'wpackhus','wpackhusal', + 'wpackwus','wpackwusal', + 'wpackdus','wpackdusal', + 'wqmiabb','wqmiabbal', + 'wqmiabt','wqmiabtal', + 'wqmiatb','wqmiatbal', + 'wqmiatt','wqmiattal', + 'wqmiabbn','wqmiabbnal', + 'wqmiabtn','wqmiabtnal', + 'wqmiatbn','wqmiatbnal', + 'wqmiattn','wqmiattnal', + 'wqmulm','wqmulmal', + 'wqmulmr','wqmulmral', + 'wqmulwm','wqmulwmal', + 'wqmulwmr','wqmulwmral', + 'wrorh','wrorhal', + 'wrorw','wrorwal', + 'wrord','wrordal', + 'wrorhg','wrorhgal', + 'wrorwg','wrorwgal', + 'wrordg','wrordgal', + 'wsadb','wsadbal', + 'wsadh','wsadhal', + 'wsadbz','wsadbzal', + 'wsadhz','wsadhzal', + 'wshufh','wshufhal', + 'wsllh','wsllhal', + 'wsllw','wsllwal', + 'wslld','wslldal', + 'wsllhg','wsllhgal', + 'wsllwg','wsllwgal', + 'wslldg','wslldgal', + 'wsrah','wsrahal', + 'wsraw','wsrawal', + 'wsrad','wsradal', + 'wsrahg','wsrahgal', + 'wsrawg','wsrawgal', + 'wsradg','wsradgal', + 'wsrlh','wsrlhal', + 'wsrlw','wsrlwal', + 'wsrld','wsrldal', + 'wsrlhg','wsrlhgal', + 'wsrlwg','wsrlwgal', + 'wsrldg','wsrldgal', + 'wstrb','wstrbal', + 'wstrh','wstrhal', + 'wstrw','wstrwal', + 'wstrd','wstrdal', + 'wsubb','wsubbal', + 'wsubh','wsubhal', + 'wsubw','wsubwal', + 'wsubbss','wsubbssal', + 'wsubhss','wsubhssal', + 'wsubwss','wsubwssal', + 'wsubbus','wsubbusal', + 'wsubhus','wsubhusal', + 'wsubwus','wsubwusal', + 'wsubaddhx','wsubaddhxal', + 'wunpckehsb','wunpckehsbal', + 'wunpckehsh','wunpckehshal', + 'wunpckehsw','wunpckehswal', + 'wunpckehub','wunpckehubal', + 'wunpckehuh','wunpckehuhal', + 'wunpckehuw','wunpckehuwal', + 'wunpckihb','wunpckihbal', + 'wunpckihh','wunpckihhal', + 'wunpckihw','wunpckihwal', + 'wunpckelsb','wunpckelsbal', + 'wunpckelsh','wunpckelshal', + 'wunpckelsw','wunpckelswal', + 'wunpckelub','wunpckelubal', + 'wunpckeluh','wunpckeluhal', + 'wunpckeluw','wunpckeluwal', + 'wunpckilb','wunpckilbal', + 'wunpckilh','wunpckilhal', + 'wunpckilw','wunpckilwal', + 'wxor','wxoral', + 'wzero','wzeroal' + ), + /* Conditional WMMX/WMMX2 SIMD Instructions */ + 18 => array( + /* Conditional WMMX/WMMX2 SIMD Instructions */ + 'tandcbeq','tandcbne','tandcbcs','tandcbhs','tandcbcc','tandcblo','tandcbmi','tandcbpl','tandcbvs','tandcbvc','tandcbhi','tandcbls','tandcbge','tandcblt','tandcbgt','tandcble', + 'tandcheq','tandchne','tandchcs','tandchhs','tandchcc','tandchlo','tandchmi','tandchpl','tandchvs','tandchvc','tandchhi','tandchls','tandchge','tandchlt','tandchgt','tandchle', + 'tandcweq','tandcwne','tandcwcs','tandcwhs','tandcwcc','tandcwlo','tandcwmi','tandcwpl','tandcwvs','tandcwvc','tandcwhi','tandcwls','tandcwge','tandcwlt','tandcwgt','tandcwle', + 'tbcstbeq','tbcstbne','tbcstbcs','tbcstbhs','tbcstbcc','tbcstblo','tbcstbmi','tbcstbpl','tbcstbvs','tbcstbvc','tbcstbhi','tbcstbls','tbcstbge','tbcstblt','tbcstbgt','tbcstble', + 'tbcstheq','tbcsthne','tbcsthcs','tbcsthhs','tbcsthcc','tbcsthlo','tbcsthmi','tbcsthpl','tbcsthvs','tbcsthvc','tbcsthhi','tbcsthls','tbcsthge','tbcsthlt','tbcsthgt','tbcsthle', + 'tbcstweq','tbcstwne','tbcstwcs','tbcstwhs','tbcstwcc','tbcstwlo','tbcstwmi','tbcstwpl','tbcstwvs','tbcstwvc','tbcstwhi','tbcstwls','tbcstwge','tbcstwlt','tbcstwgt','tbcstwle', + 'textrcbeq','textrcbne','textrcbcs','textrcbhs','textrcbcc','textrcblo','textrcbmi','textrcbpl','textrcbvs','textrcbvc','textrcbhi','textrcbls','textrcbge','textrcblt','textrcbgt','textrcble', + 'textrcheq','textrchne','textrchcs','textrchhs','textrchcc','textrchlo','textrchmi','textrchpl','textrchvs','textrchvc','textrchhi','textrchls','textrchge','textrchlt','textrchgt','textrchle', + 'textrcweq','textrcwne','textrcwcs','textrcwhs','textrcwcc','textrcwlo','textrcwmi','textrcwpl','textrcwvs','textrcwvc','textrcwhi','textrcwls','textrcwge','textrcwlt','textrcwgt','textrcwle', + 'textrmsbeq','textrmsbne','textrmsbcs','textrmsbhs','textrmsbcc','textrmsblo','textrmsbmi','textrmsbpl','textrmsbvs','textrmsbvc','textrmsbhi','textrmsbls','textrmsbge','textrmsblt','textrmsbgt','textrmsble', + 'textrmsheq','textrmshne','textrmshcs','textrmshhs','textrmshcc','textrmshlo','textrmshmi','textrmshpl','textrmshvs','textrmshvc','textrmshhi','textrmshls','textrmshge','textrmshlt','textrmshgt','textrmshle', + 'textrmsweq','textrmswne','textrmswcs','textrmswhs','textrmswcc','textrmswlo','textrmswmi','textrmswpl','textrmswvs','textrmswvc','textrmswhi','textrmswls','textrmswge','textrmswlt','textrmswgt','textrmswle', + 'textrmubeq','textrmubne','textrmubcs','textrmubhs','textrmubcc','textrmublo','textrmubmi','textrmubpl','textrmubvs','textrmubvc','textrmubhi','textrmubls','textrmubge','textrmublt','textrmubgt','textrmuble', + 'textrmuheq','textrmuhne','textrmuhcs','textrmuhhs','textrmuhcc','textrmuhlo','textrmuhmi','textrmuhpl','textrmuhvs','textrmuhvc','textrmuhhi','textrmuhls','textrmuhge','textrmuhlt','textrmuhgt','textrmuhle', + 'textrmuweq','textrmuwne','textrmuwcs','textrmuwhs','textrmuwcc','textrmuwlo','textrmuwmi','textrmuwpl','textrmuwvs','textrmuwvc','textrmuwhi','textrmuwls','textrmuwge','textrmuwlt','textrmuwgt','textrmuwle', + 'tinsrbeq','tinsrbne','tinsrbcs','tinsrbhs','tinsrbcc','tinsrblo','tinsrbmi','tinsrbpl','tinsrbvs','tinsrbvc','tinsrbhi','tinsrbls','tinsrbge','tinsrblt','tinsrbgt','tinsrble', + 'tinsrheq','tinsrhne','tinsrhcs','tinsrhhs','tinsrhcc','tinsrhlo','tinsrhmi','tinsrhpl','tinsrhvs','tinsrhvc','tinsrhhi','tinsrhls','tinsrhge','tinsrhlt','tinsrhgt','tinsrhle', + 'tinsrweq','tinsrwne','tinsrwcs','tinsrwhs','tinsrwcc','tinsrwlo','tinsrwmi','tinsrwpl','tinsrwvs','tinsrwvc','tinsrwhi','tinsrwls','tinsrwge','tinsrwlt','tinsrwgt','tinsrwle', + 'tmcreq','tmcrne','tmcrcs','tmcrhs','tmcrcc','tmcrlo','tmcrmi','tmcrpl','tmcrvs','tmcrvc','tmcrhi','tmcrls','tmcrge','tmcrlt','tmcrgt','tmcrle', + 'tmcrreq','tmcrrne','tmcrrcs','tmcrrhs','tmcrrcc','tmcrrlo','tmcrrmi','tmcrrpl','tmcrrvs','tmcrrvc','tmcrrhi','tmcrrls','tmcrrge','tmcrrlt','tmcrrgt','tmcrrle', + 'tmiaeq','tmiane','tmiacs','tmiahs','tmiacc','tmialo','tmiami','tmiapl','tmiavs','tmiavc','tmiahi','tmials','tmiage','tmialt','tmiagt','tmiale', + 'tmiapheq','tmiaphne','tmiaphcs','tmiaphhs','tmiaphcc','tmiaphlo','tmiaphmi','tmiaphpl','tmiaphvs','tmiaphvc','tmiaphhi','tmiaphls','tmiaphge','tmiaphlt','tmiaphgt','tmiaphle', + 'tmiabbeq','tmiabbne','tmiabbcs','tmiabbhs','tmiabbcc','tmiabblo','tmiabbmi','tmiabbpl','tmiabbvs','tmiabbvc','tmiabbhi','tmiabbls','tmiabbge','tmiabblt','tmiabbgt','tmiabble', + 'tmiabteq','tmiabtne','tmiabtcs','tmiabths','tmiabtcc','tmiabtlo','tmiabtmi','tmiabtpl','tmiabtvs','tmiabtvc','tmiabthi','tmiabtls','tmiabtge','tmiabtlt','tmiabtgt','tmiabtle', + 'tmiatbeq','tmiatbne','tmiatbcs','tmiatbhs','tmiatbcc','tmiatblo','tmiatbmi','tmiatbpl','tmiatbvs','tmiatbvc','tmiatbhi','tmiatbls','tmiatbge','tmiatblt','tmiatbgt','tmiatble', + 'tmiatteq','tmiattne','tmiattcs','tmiatths','tmiattcc','tmiattlo','tmiattmi','tmiattpl','tmiattvs','tmiattvc','tmiatthi','tmiattls','tmiattge','tmiattlt','tmiattgt','tmiattle', + 'tmovmskbeq','tmovmskbne','tmovmskbcs','tmovmskbhs','tmovmskbcc','tmovmskblo','tmovmskbmi','tmovmskbpl','tmovmskbvs','tmovmskbvc','tmovmskbhi','tmovmskbls','tmovmskbge','tmovmskblt','tmovmskbgt','tmovmskble', + 'tmovmskheq','tmovmskhne','tmovmskhcs','tmovmskhhs','tmovmskhcc','tmovmskhlo','tmovmskhmi','tmovmskhpl','tmovmskhvs','tmovmskhvc','tmovmskhhi','tmovmskhls','tmovmskhge','tmovmskhlt','tmovmskhgt','tmovmskhle', + 'tmovmskweq','tmovmskwne','tmovmskwcs','tmovmskwhs','tmovmskwcc','tmovmskwlo','tmovmskwmi','tmovmskwpl','tmovmskwvs','tmovmskwvc','tmovmskwhi','tmovmskwls','tmovmskwge','tmovmskwlt','tmovmskwgt','tmovmskwle', + 'tmrceq','tmrcne','tmrccs','tmrchs','tmrccc','tmrclo','tmrcmi','tmrcpl','tmrcvs','tmrcvc','tmrchi','tmrcls','tmrcge','tmrclt','tmrcgt','tmrcle', + 'tmrrceq','tmrrcne','tmrrccs','tmrrchs','tmrrccc','tmrrclo','tmrrcmi','tmrrcpl','tmrrcvs','tmrrcvc','tmrrchi','tmrrcls','tmrrcge','tmrrclt','tmrrcgt','tmrrcle', + 'torcbeq','torcbne','torcbcs','torcbhs','torcbcc','torcblo','torcbmi','torcbpl','torcbvs','torcbvc','torcbhi','torcbls','torcbge','torcblt','torcbgt','torcble', + 'torcheq','torchne','torchcs','torchhs','torchcc','torchlo','torchmi','torchpl','torchvs','torchvc','torchhi','torchls','torchge','torchlt','torchgt','torchle', + 'torcweq','torcwne','torcwcs','torcwhs','torcwcc','torcwlo','torcwmi','torcwpl','torcwvs','torcwvc','torcwhi','torcwls','torcwge','torcwlt','torcwgt','torcwle', + 'torvscbeq','torvscbne','torvscbcs','torvscbhs','torvscbcc','torvscblo','torvscbmi','torvscbpl','torvscbvs','torvscbvc','torvscbhi','torvscbls','torvscbge','torvscblt','torvscbgt','torvscble', + 'torvscheq','torvschne','torvschcs','torvschhs','torvschcc','torvschlo','torvschmi','torvschpl','torvschvs','torvschvc','torvschhi','torvschls','torvschge','torvschlt','torvschgt','torvschle', + 'torvscweq','torvscwne','torvscwcs','torvscwhs','torvscwcc','torvscwlo','torvscwmi','torvscwpl','torvscwvs','torvscwvc','torvscwhi','torvscwls','torvscwge','torvscwlt','torvscwgt','torvscwle', + 'wabsbeq','wabsbne','wabsbcs','wabsbhs','wabsbcc','wabsblo','wabsbmi','wabsbpl','wabsbvs','wabsbvc','wabsbhi','wabsbls','wabsbge','wabsblt','wabsbgt','wabsble', + 'wabsheq','wabshne','wabshcs','wabshhs','wabshcc','wabshlo','wabshmi','wabshpl','wabshvs','wabshvc','wabshhi','wabshls','wabshge','wabshlt','wabshgt','wabshle', + 'wabsweq','wabswne','wabswcs','wabswhs','wabswcc','wabswlo','wabswmi','wabswpl','wabswvs','wabswvc','wabswhi','wabswls','wabswge','wabswlt','wabswgt','wabswle', + 'wabsdiffbeq','wabsdiffbne','wabsdiffbcs','wabsdiffbhs','wabsdiffbcc','wabsdiffblo','wabsdiffbmi','wabsdiffbpl','wabsdiffbvs','wabsdiffbvc','wabsdiffbhi','wabsdiffbls','wabsdiffbge','wabsdiffblt','wabsdiffbgt','wabsdiffble', + 'wabsdiffheq','wabsdiffhne','wabsdiffhcs','wabsdiffhhs','wabsdiffhcc','wabsdiffhlo','wabsdiffhmi','wabsdiffhpl','wabsdiffhvs','wabsdiffhvc','wabsdiffhhi','wabsdiffhls','wabsdiffhge','wabsdiffhlt','wabsdiffhgt','wabsdiffhle', + 'wabsdiffweq','wabsdiffwne','wabsdiffwcs','wabsdiffwhs','wabsdiffwcc','wabsdiffwlo','wabsdiffwmi','wabsdiffwpl','wabsdiffwvs','wabsdiffwvc','wabsdiffwhi','wabsdiffwls','wabsdiffwge','wabsdiffwlt','wabsdiffwgt','wabsdiffwle', + 'waccbeq','waccbne','waccbcs','waccbhs','waccbcc','waccblo','waccbmi','waccbpl','waccbvs','waccbvc','waccbhi','waccbls','waccbge','waccblt','waccbgt','waccble', + 'waccheq','wacchne','wacchcs','wacchhs','wacchcc','wacchlo','wacchmi','wacchpl','wacchvs','wacchvc','wacchhi','wacchls','wacchge','wacchlt','wacchgt','wacchle', + 'waccweq','waccwne','waccwcs','waccwhs','waccwcc','waccwlo','waccwmi','waccwpl','waccwvs','waccwvc','waccwhi','waccwls','waccwge','waccwlt','waccwgt','waccwle', + 'waddbeq','waddbne','waddbcs','waddbhs','waddbcc','waddblo','waddbmi','waddbpl','waddbvs','waddbvc','waddbhi','waddbls','waddbge','waddblt','waddbgt','waddble', + 'waddheq','waddhne','waddhcs','waddhhs','waddhcc','waddhlo','waddhmi','waddhpl','waddhvs','waddhvc','waddhhi','waddhls','waddhge','waddhlt','waddhgt','waddhle', + 'waddweq','waddwne','waddwcs','waddwhs','waddwcc','waddwlo','waddwmi','waddwpl','waddwvs','waddwvc','waddwhi','waddwls','waddwge','waddwlt','waddwgt','waddwle', + 'waddbceq','waddbcne','waddbccs','waddbchs','waddbccc','waddbclo','waddbcmi','waddbcpl','waddbcvs','waddbcvc','waddbchi','waddbcls','waddbcge','waddbclt','waddbcgt','waddbcle', + 'waddhceq','waddhcne','waddhccs','waddhchs','waddhccc','waddhclo','waddhcmi','waddhcpl','waddhcvs','waddhcvc','waddhchi','waddhcls','waddhcge','waddhclt','waddhcgt','waddhcle', + 'waddwceq','waddwcne','waddwccs','waddwchs','waddwccc','waddwclo','waddwcmi','waddwcpl','waddwcvs','waddwcvc','waddwchi','waddwcls','waddwcge','waddwclt','waddwcgt','waddwcle', + 'waddbsseq','waddbssne','waddbsscs','waddbsshs','waddbsscc','waddbsslo','waddbssmi','waddbsspl','waddbssvs','waddbssvc','waddbsshi','waddbssls','waddbssge','waddbsslt','waddbssgt','waddbssle', + 'waddhsseq','waddhssne','waddhsscs','waddhsshs','waddhsscc','waddhsslo','waddhssmi','waddhsspl','waddhssvs','waddhssvc','waddhsshi','waddhssls','waddhssge','waddhsslt','waddhssgt','waddhssle', + 'waddwsseq','waddwssne','waddwsscs','waddwsshs','waddwsscc','waddwsslo','waddwssmi','waddwsspl','waddwssvs','waddwssvc','waddwsshi','waddwssls','waddwssge','waddwsslt','waddwssgt','waddwssle', + 'waddbuseq','waddbusne','waddbuscs','waddbushs','waddbuscc','waddbuslo','waddbusmi','waddbuspl','waddbusvs','waddbusvc','waddbushi','waddbusls','waddbusge','waddbuslt','waddbusgt','waddbusle', + 'waddhuseq','waddhusne','waddhuscs','waddhushs','waddhuscc','waddhuslo','waddhusmi','waddhuspl','waddhusvs','waddhusvc','waddhushi','waddhusls','waddhusge','waddhuslt','waddhusgt','waddhusle', + 'waddwuseq','waddwusne','waddwuscs','waddwushs','waddwuscc','waddwuslo','waddwusmi','waddwuspl','waddwusvs','waddwusvc','waddwushi','waddwusls','waddwusge','waddwuslt','waddwusgt','waddwusle', + 'waddsubhxeq','waddsubhxne','waddsubhxcs','waddsubhxhs','waddsubhxcc','waddsubhxlo','waddsubhxmi','waddsubhxpl','waddsubhxvs','waddsubhxvc','waddsubhxhi','waddsubhxls','waddsubhxge','waddsubhxlt','waddsubhxgt','waddsubhxle', + 'walignieq','walignine','walignics','walignihs','walignicc','walignilo','walignimi','walignipl','walignivs','walignivc','walignihi','walignils','walignige','walignilt','walignigt','walignile', + 'walignr0eq','walignr0ne','walignr0cs','walignr0hs','walignr0cc','walignr0lo','walignr0mi','walignr0pl','walignr0vs','walignr0vc','walignr0hi','walignr0ls','walignr0ge','walignr0lt','walignr0gt','walignr0le', + 'walignr1eq','walignr1ne','walignr1cs','walignr1hs','walignr1cc','walignr1lo','walignr1mi','walignr1pl','walignr1vs','walignr1vc','walignr1hi','walignr1ls','walignr1ge','walignr1lt','walignr1gt','walignr1le', + 'walignr2eq','walignr2ne','walignr2cs','walignr2hs','walignr2cc','walignr2lo','walignr2mi','walignr2pl','walignr2vs','walignr2vc','walignr2hi','walignr2ls','walignr2ge','walignr2lt','walignr2gt','walignr2le', + 'walignr3eq','walignr3ne','walignr3cs','walignr3hs','walignr3cc','walignr3lo','walignr3mi','walignr3pl','walignr3vs','walignr3vc','walignr3hi','walignr3ls','walignr3ge','walignr3lt','walignr3gt','walignr3le', + 'wandeq','wandne','wandcs','wandhs','wandcc','wandlo','wandmi','wandpl','wandvs','wandvc','wandhi','wandls','wandge','wandlt','wandgt','wandle', + 'wandneq','wandnne','wandncs','wandnhs','wandncc','wandnlo','wandnmi','wandnpl','wandnvs','wandnvc','wandnhi','wandnls','wandnge','wandnlt','wandngt','wandnle', + 'wavg2beq','wavg2bne','wavg2bcs','wavg2bhs','wavg2bcc','wavg2blo','wavg2bmi','wavg2bpl','wavg2bvs','wavg2bvc','wavg2bhi','wavg2bls','wavg2bge','wavg2blt','wavg2bgt','wavg2ble', + 'wavg2heq','wavg2hne','wavg2hcs','wavg2hhs','wavg2hcc','wavg2hlo','wavg2hmi','wavg2hpl','wavg2hvs','wavg2hvc','wavg2hhi','wavg2hls','wavg2hge','wavg2hlt','wavg2hgt','wavg2hle', + 'wavg2breq','wavg2brne','wavg2brcs','wavg2brhs','wavg2brcc','wavg2brlo','wavg2brmi','wavg2brpl','wavg2brvs','wavg2brvc','wavg2brhi','wavg2brls','wavg2brge','wavg2brlt','wavg2brgt','wavg2brle', + 'wavg2hreq','wavg2hrne','wavg2hrcs','wavg2hrhs','wavg2hrcc','wavg2hrlo','wavg2hrmi','wavg2hrpl','wavg2hrvs','wavg2hrvc','wavg2hrhi','wavg2hrls','wavg2hrge','wavg2hrlt','wavg2hrgt','wavg2hrle', + 'wavg4eq','wavg4ne','wavg4cs','wavg4hs','wavg4cc','wavg4lo','wavg4mi','wavg4pl','wavg4vs','wavg4vc','wavg4hi','wavg4ls','wavg4ge','wavg4lt','wavg4gt','wavg4le', + 'wavg4req','wavg4rne','wavg4rcs','wavg4rhs','wavg4rcc','wavg4rlo','wavg4rmi','wavg4rpl','wavg4rvs','wavg4rvc','wavg4rhi','wavg4rls','wavg4rge','wavg4rlt','wavg4rgt','wavg4rle', + 'wcmpeqbeq','wcmpeqbne','wcmpeqbcs','wcmpeqbhs','wcmpeqbcc','wcmpeqblo','wcmpeqbmi','wcmpeqbpl','wcmpeqbvs','wcmpeqbvc','wcmpeqbhi','wcmpeqbls','wcmpeqbge','wcmpeqblt','wcmpeqbgt','wcmpeqble', + 'wcmpeqheq','wcmpeqhne','wcmpeqhcs','wcmpeqhhs','wcmpeqhcc','wcmpeqhlo','wcmpeqhmi','wcmpeqhpl','wcmpeqhvs','wcmpeqhvc','wcmpeqhhi','wcmpeqhls','wcmpeqhge','wcmpeqhlt','wcmpeqhgt','wcmpeqhle', + 'wcmpeqweq','wcmpeqwne','wcmpeqwcs','wcmpeqwhs','wcmpeqwcc','wcmpeqwlo','wcmpeqwmi','wcmpeqwpl','wcmpeqwvs','wcmpeqwvc','wcmpeqwhi','wcmpeqwls','wcmpeqwge','wcmpeqwlt','wcmpeqwgt','wcmpeqwle', + 'wcmpgtsbeq','wcmpgtsbne','wcmpgtsbcs','wcmpgtsbhs','wcmpgtsbcc','wcmpgtsblo','wcmpgtsbmi','wcmpgtsbpl','wcmpgtsbvs','wcmpgtsbvc','wcmpgtsbhi','wcmpgtsbls','wcmpgtsbge','wcmpgtsblt','wcmpgtsbgt','wcmpgtsble', + 'wcmpgtsheq','wcmpgtshne','wcmpgtshcs','wcmpgtshhs','wcmpgtshcc','wcmpgtshlo','wcmpgtshmi','wcmpgtshpl','wcmpgtshvs','wcmpgtshvc','wcmpgtshhi','wcmpgtshls','wcmpgtshge','wcmpgtshlt','wcmpgtshgt','wcmpgtshle', + 'wcmpgtsweq','wcmpgtswne','wcmpgtswcs','wcmpgtswhs','wcmpgtswcc','wcmpgtswlo','wcmpgtswmi','wcmpgtswpl','wcmpgtswvs','wcmpgtswvc','wcmpgtswhi','wcmpgtswls','wcmpgtswge','wcmpgtswlt','wcmpgtswgt','wcmpgtswle', + 'wcmpgtubeq','wcmpgtubne','wcmpgtubcs','wcmpgtubhs','wcmpgtubcc','wcmpgtublo','wcmpgtubmi','wcmpgtubpl','wcmpgtubvs','wcmpgtubvc','wcmpgtubhi','wcmpgtubls','wcmpgtubge','wcmpgtublt','wcmpgtubgt','wcmpgtuble', + 'wcmpgtuheq','wcmpgtuhne','wcmpgtuhcs','wcmpgtuhhs','wcmpgtuhcc','wcmpgtuhlo','wcmpgtuhmi','wcmpgtuhpl','wcmpgtuhvs','wcmpgtuhvc','wcmpgtuhhi','wcmpgtuhls','wcmpgtuhge','wcmpgtuhlt','wcmpgtuhgt','wcmpgtuhle', + 'wcmpgtuweq','wcmpgtuwne','wcmpgtuwcs','wcmpgtuwhs','wcmpgtuwcc','wcmpgtuwlo','wcmpgtuwmi','wcmpgtuwpl','wcmpgtuwvs','wcmpgtuwvc','wcmpgtuwhi','wcmpgtuwls','wcmpgtuwge','wcmpgtuwlt','wcmpgtuwgt','wcmpgtuwle', + 'wldrbeq','wldrbne','wldrbcs','wldrbhs','wldrbcc','wldrblo','wldrbmi','wldrbpl','wldrbvs','wldrbvc','wldrbhi','wldrbls','wldrbge','wldrblt','wldrbgt','wldrble', + 'wldrheq','wldrhne','wldrhcs','wldrhhs','wldrhcc','wldrhlo','wldrhmi','wldrhpl','wldrhvs','wldrhvc','wldrhhi','wldrhls','wldrhge','wldrhlt','wldrhgt','wldrhle', + 'wldrweq','wldrwne','wldrwcs','wldrwhs','wldrwcc','wldrwlo','wldrwmi','wldrwpl','wldrwvs','wldrwvc','wldrwhi','wldrwls','wldrwge','wldrwlt','wldrwgt','wldrwle', + 'wldrdeq','wldrdne','wldrdcs','wldrdhs','wldrdcc','wldrdlo','wldrdmi','wldrdpl','wldrdvs','wldrdvc','wldrdhi','wldrdls','wldrdge','wldrdlt','wldrdgt','wldrdle', + 'wmacseq','wmacsne','wmacscs','wmacshs','wmacscc','wmacslo','wmacsmi','wmacspl','wmacsvs','wmacsvc','wmacshi','wmacsls','wmacsge','wmacslt','wmacsgt','wmacsle', + 'wmacueq','wmacune','wmacucs','wmacuhs','wmacucc','wmaculo','wmacumi','wmacupl','wmacuvs','wmacuvc','wmacuhi','wmaculs','wmacuge','wmacult','wmacugt','wmacule', + 'wmacszeq','wmacszne','wmacszcs','wmacszhs','wmacszcc','wmacszlo','wmacszmi','wmacszpl','wmacszvs','wmacszvc','wmacszhi','wmacszls','wmacszge','wmacszlt','wmacszgt','wmacszle', + 'wmacuzeq','wmacuzne','wmacuzcs','wmacuzhs','wmacuzcc','wmacuzlo','wmacuzmi','wmacuzpl','wmacuzvs','wmacuzvc','wmacuzhi','wmacuzls','wmacuzge','wmacuzlt','wmacuzgt','wmacuzle', + 'wmaddseq','wmaddsne','wmaddscs','wmaddshs','wmaddscc','wmaddslo','wmaddsmi','wmaddspl','wmaddsvs','wmaddsvc','wmaddshi','wmaddsls','wmaddsge','wmaddslt','wmaddsgt','wmaddsle', + 'wmaddueq','wmaddune','wmadducs','wmadduhs','wmadducc','wmaddulo','wmaddumi','wmaddupl','wmadduvs','wmadduvc','wmadduhi','wmadduls','wmadduge','wmaddult','wmaddugt','wmaddule', + 'wmaddsxeq','wmaddsxne','wmaddsxcs','wmaddsxhs','wmaddsxcc','wmaddsxlo','wmaddsxmi','wmaddsxpl','wmaddsxvs','wmaddsxvc','wmaddsxhi','wmaddsxls','wmaddsxge','wmaddsxlt','wmaddsxgt','wmaddsxle', + 'wmadduxeq','wmadduxne','wmadduxcs','wmadduxhs','wmadduxcc','wmadduxlo','wmadduxmi','wmadduxpl','wmadduxvs','wmadduxvc','wmadduxhi','wmadduxls','wmadduxge','wmadduxlt','wmadduxgt','wmadduxle', + 'wmaddsneq','wmaddsnne','wmaddsncs','wmaddsnhs','wmaddsncc','wmaddsnlo','wmaddsnmi','wmaddsnpl','wmaddsnvs','wmaddsnvc','wmaddsnhi','wmaddsnls','wmaddsnge','wmaddsnlt','wmaddsngt','wmaddsnle', + 'wmadduneq','wmaddunne','wmadduncs','wmaddunhs','wmadduncc','wmaddunlo','wmaddunmi','wmaddunpl','wmaddunvs','wmaddunvc','wmaddunhi','wmaddunls','wmaddunge','wmaddunlt','wmaddungt','wmaddunle', + 'wmaxsbeq','wmaxsbne','wmaxsbcs','wmaxsbhs','wmaxsbcc','wmaxsblo','wmaxsbmi','wmaxsbpl','wmaxsbvs','wmaxsbvc','wmaxsbhi','wmaxsbls','wmaxsbge','wmaxsblt','wmaxsbgt','wmaxsble', + 'wmaxsheq','wmaxshne','wmaxshcs','wmaxshhs','wmaxshcc','wmaxshlo','wmaxshmi','wmaxshpl','wmaxshvs','wmaxshvc','wmaxshhi','wmaxshls','wmaxshge','wmaxshlt','wmaxshgt','wmaxshle', + 'wmaxsweq','wmaxswne','wmaxswcs','wmaxswhs','wmaxswcc','wmaxswlo','wmaxswmi','wmaxswpl','wmaxswvs','wmaxswvc','wmaxswhi','wmaxswls','wmaxswge','wmaxswlt','wmaxswgt','wmaxswle', + 'wmaxubeq','wmaxubne','wmaxubcs','wmaxubhs','wmaxubcc','wmaxublo','wmaxubmi','wmaxubpl','wmaxubvs','wmaxubvc','wmaxubhi','wmaxubls','wmaxubge','wmaxublt','wmaxubgt','wmaxuble', + 'wmaxuheq','wmaxuhne','wmaxuhcs','wmaxuhhs','wmaxuhcc','wmaxuhlo','wmaxuhmi','wmaxuhpl','wmaxuhvs','wmaxuhvc','wmaxuhhi','wmaxuhls','wmaxuhge','wmaxuhlt','wmaxuhgt','wmaxuhle', + 'wmaxuweq','wmaxuwne','wmaxuwcs','wmaxuwhs','wmaxuwcc','wmaxuwlo','wmaxuwmi','wmaxuwpl','wmaxuwvs','wmaxuwvc','wmaxuwhi','wmaxuwls','wmaxuwge','wmaxuwlt','wmaxuwgt','wmaxuwle', + 'wmergeeq','wmergene','wmergecs','wmergehs','wmergecc','wmergelo','wmergemi','wmergepl','wmergevs','wmergevc','wmergehi','wmergels','wmergege','wmergelt','wmergegt','wmergele', + 'wmiabbeq','wmiabbne','wmiabbcs','wmiabbhs','wmiabbcc','wmiabblo','wmiabbmi','wmiabbpl','wmiabbvs','wmiabbvc','wmiabbhi','wmiabbls','wmiabbge','wmiabblt','wmiabbgt','wmiabble', + 'wmiabteq','wmiabtne','wmiabtcs','wmiabths','wmiabtcc','wmiabtlo','wmiabtmi','wmiabtpl','wmiabtvs','wmiabtvc','wmiabthi','wmiabtls','wmiabtge','wmiabtlt','wmiabtgt','wmiabtle', + 'wmiatbeq','wmiatbne','wmiatbcs','wmiatbhs','wmiatbcc','wmiatblo','wmiatbmi','wmiatbpl','wmiatbvs','wmiatbvc','wmiatbhi','wmiatbls','wmiatbge','wmiatblt','wmiatbgt','wmiatble', + 'wmiatteq','wmiattne','wmiattcs','wmiatths','wmiattcc','wmiattlo','wmiattmi','wmiattpl','wmiattvs','wmiattvc','wmiatthi','wmiattls','wmiattge','wmiattlt','wmiattgt','wmiattle', + 'wmiabbneq','wmiabbnne','wmiabbncs','wmiabbnhs','wmiabbncc','wmiabbnlo','wmiabbnmi','wmiabbnpl','wmiabbnvs','wmiabbnvc','wmiabbnhi','wmiabbnls','wmiabbnge','wmiabbnlt','wmiabbngt','wmiabbnle', + 'wmiabtneq','wmiabtnne','wmiabtncs','wmiabtnhs','wmiabtncc','wmiabtnlo','wmiabtnmi','wmiabtnpl','wmiabtnvs','wmiabtnvc','wmiabtnhi','wmiabtnls','wmiabtnge','wmiabtnlt','wmiabtngt','wmiabtnle', + 'wmiatbneq','wmiatbnne','wmiatbncs','wmiatbnhs','wmiatbncc','wmiatbnlo','wmiatbnmi','wmiatbnpl','wmiatbnvs','wmiatbnvc','wmiatbnhi','wmiatbnls','wmiatbnge','wmiatbnlt','wmiatbngt','wmiatbnle', + 'wmiattneq','wmiattnne','wmiattncs','wmiattnhs','wmiattncc','wmiattnlo','wmiattnmi','wmiattnpl','wmiattnvs','wmiattnvc','wmiattnhi','wmiattnls','wmiattnge','wmiattnlt','wmiattngt','wmiattnle', + 'wmiawbbeq','wmiawbbne','wmiawbbcs','wmiawbbhs','wmiawbbcc','wmiawbblo','wmiawbbmi','wmiawbbpl','wmiawbbvs','wmiawbbvc','wmiawbbhi','wmiawbbls','wmiawbbge','wmiawbblt','wmiawbbgt','wmiawbble', + 'wmiawbteq','wmiawbtne','wmiawbtcs','wmiawbths','wmiawbtcc','wmiawbtlo','wmiawbtmi','wmiawbtpl','wmiawbtvs','wmiawbtvc','wmiawbthi','wmiawbtls','wmiawbtge','wmiawbtlt','wmiawbtgt','wmiawbtle', + 'wmiawtbeq','wmiawtbne','wmiawtbcs','wmiawtbhs','wmiawtbcc','wmiawtblo','wmiawtbmi','wmiawtbpl','wmiawtbvs','wmiawtbvc','wmiawtbhi','wmiawtbls','wmiawtbge','wmiawtblt','wmiawtbgt','wmiawtble', + 'wmiawtteq','wmiawttne','wmiawttcs','wmiawtths','wmiawttcc','wmiawttlo','wmiawttmi','wmiawttpl','wmiawttvs','wmiawttvc','wmiawtthi','wmiawttls','wmiawttge','wmiawttlt','wmiawttgt','wmiawttle', + 'wmiawbbneq','wmiawbbnne','wmiawbbncs','wmiawbbnhs','wmiawbbncc','wmiawbbnlo','wmiawbbnmi','wmiawbbnpl','wmiawbbnvs','wmiawbbnvc','wmiawbbnhi','wmiawbbnls','wmiawbbnge','wmiawbbnlt','wmiawbbngt','wmiawbbnle', + 'wmiawbtneq','wmiawbtnne','wmiawbtncs','wmiawbtnhs','wmiawbtncc','wmiawbtnlo','wmiawbtnmi','wmiawbtnpl','wmiawbtnvs','wmiawbtnvc','wmiawbtnhi','wmiawbtnls','wmiawbtnge','wmiawbtnlt','wmiawbtngt','wmiawbtnle', + 'wmiawtbneq','wmiawtbnne','wmiawtbncs','wmiawtbnhs','wmiawtbncc','wmiawtbnlo','wmiawtbnmi','wmiawtbnpl','wmiawtbnvs','wmiawtbnvc','wmiawtbnhi','wmiawtbnls','wmiawtbnge','wmiawtbnlt','wmiawtbngt','wmiawtbnle', + 'wmiawttneq','wmiawttnne','wmiawttncs','wmiawttnhs','wmiawttncc','wmiawttnlo','wmiawttnmi','wmiawttnpl','wmiawttnvs','wmiawttnvc','wmiawttnhi','wmiawttnls','wmiawttnge','wmiawttnlt','wmiawttngt','wmiawttnle', + 'wminsbeq','wminsbne','wminsbcs','wminsbhs','wminsbcc','wminsblo','wminsbmi','wminsbpl','wminsbvs','wminsbvc','wminsbhi','wminsbls','wminsbge','wminsblt','wminsbgt','wminsble', + 'wminsheq','wminshne','wminshcs','wminshhs','wminshcc','wminshlo','wminshmi','wminshpl','wminshvs','wminshvc','wminshhi','wminshls','wminshge','wminshlt','wminshgt','wminshle', + 'wminsweq','wminswne','wminswcs','wminswhs','wminswcc','wminswlo','wminswmi','wminswpl','wminswvs','wminswvc','wminswhi','wminswls','wminswge','wminswlt','wminswgt','wminswle', + 'wminubeq','wminubne','wminubcs','wminubhs','wminubcc','wminublo','wminubmi','wminubpl','wminubvs','wminubvc','wminubhi','wminubls','wminubge','wminublt','wminubgt','wminuble', + 'wminuheq','wminuhne','wminuhcs','wminuhhs','wminuhcc','wminuhlo','wminuhmi','wminuhpl','wminuhvs','wminuhvc','wminuhhi','wminuhls','wminuhge','wminuhlt','wminuhgt','wminuhle', + 'wminuweq','wminuwne','wminuwcs','wminuwhs','wminuwcc','wminuwlo','wminuwmi','wminuwpl','wminuwvs','wminuwvc','wminuwhi','wminuwls','wminuwge','wminuwlt','wminuwgt','wminuwle', + 'wmoveq','wmovne','wmovcs','wmovhs','wmovcc','wmovlo','wmovmi','wmovpl','wmovvs','wmovvc','wmovhi','wmovls','wmovge','wmovlt','wmovgt','wmovle', + 'wmulsmeq','wmulsmne','wmulsmcs','wmulsmhs','wmulsmcc','wmulsmlo','wmulsmmi','wmulsmpl','wmulsmvs','wmulsmvc','wmulsmhi','wmulsmls','wmulsmge','wmulsmlt','wmulsmgt','wmulsmle', + 'wmulsleq','wmulslne','wmulslcs','wmulslhs','wmulslcc','wmulsllo','wmulslmi','wmulslpl','wmulslvs','wmulslvc','wmulslhi','wmulslls','wmulslge','wmulsllt','wmulslgt','wmulslle', + 'wmulumeq','wmulumne','wmulumcs','wmulumhs','wmulumcc','wmulumlo','wmulummi','wmulumpl','wmulumvs','wmulumvc','wmulumhi','wmulumls','wmulumge','wmulumlt','wmulumgt','wmulumle', + 'wmululeq','wmululne','wmululcs','wmululhs','wmululcc','wmulullo','wmululmi','wmululpl','wmululvs','wmululvc','wmululhi','wmululls','wmululge','wmulullt','wmululgt','wmululle', + 'wmulsmreq','wmulsmrne','wmulsmrcs','wmulsmrhs','wmulsmrcc','wmulsmrlo','wmulsmrmi','wmulsmrpl','wmulsmrvs','wmulsmrvc','wmulsmrhi','wmulsmrls','wmulsmrge','wmulsmrlt','wmulsmrgt','wmulsmrle', + 'wmulslreq','wmulslrne','wmulslrcs','wmulslrhs','wmulslrcc','wmulslrlo','wmulslrmi','wmulslrpl','wmulslrvs','wmulslrvc','wmulslrhi','wmulslrls','wmulslrge','wmulslrlt','wmulslrgt','wmulslrle', + 'wmulumreq','wmulumrne','wmulumrcs','wmulumrhs','wmulumrcc','wmulumrlo','wmulumrmi','wmulumrpl','wmulumrvs','wmulumrvc','wmulumrhi','wmulumrls','wmulumrge','wmulumrlt','wmulumrgt','wmulumrle', + 'wmululreq','wmululrne','wmululrcs','wmululrhs','wmululrcc','wmululrlo','wmululrmi','wmululrpl','wmululrvs','wmululrvc','wmululrhi','wmululrls','wmululrge','wmululrlt','wmululrgt','wmululrle', + 'wmulwumeq','wmulwumne','wmulwumcs','wmulwumhs','wmulwumcc','wmulwumlo','wmulwummi','wmulwumpl','wmulwumvs','wmulwumvc','wmulwumhi','wmulwumls','wmulwumge','wmulwumlt','wmulwumgt','wmulwumle', + 'wmulwsmeq','wmulwsmne','wmulwsmcs','wmulwsmhs','wmulwsmcc','wmulwsmlo','wmulwsmmi','wmulwsmpl','wmulwsmvs','wmulwsmvc','wmulwsmhi','wmulwsmls','wmulwsmge','wmulwsmlt','wmulwsmgt','wmulwsmle', + 'wmulwleq','wmulwlne','wmulwlcs','wmulwlhs','wmulwlcc','wmulwllo','wmulwlmi','wmulwlpl','wmulwlvs','wmulwlvc','wmulwlhi','wmulwlls','wmulwlge','wmulwllt','wmulwlgt','wmulwlle', + 'wmulwumreq','wmulwumrne','wmulwumrcs','wmulwumrhs','wmulwumrcc','wmulwumrlo','wmulwumrmi','wmulwumrpl','wmulwumrvs','wmulwumrvc','wmulwumrhi','wmulwumrls','wmulwumrge','wmulwumrlt','wmulwumrgt','wmulwumrle', + 'wmulwsmreq','wmulwsmrne','wmulwsmrcs','wmulwsmrhs','wmulwsmrcc','wmulwsmrlo','wmulwsmrmi','wmulwsmrpl','wmulwsmrvs','wmulwsmrvc','wmulwsmrhi','wmulwsmrls','wmulwsmrge','wmulwsmrlt','wmulwsmrgt','wmulwsmrle', + 'woreq','worne','worcs','worhs','worcc','worlo','wormi','worpl','worvs','worvc','worhi','worls','worge','worlt','worgt','worle', + 'wpackhsseq','wpackhssne','wpackhsscs','wpackhsshs','wpackhsscc','wpackhsslo','wpackhssmi','wpackhsspl','wpackhssvs','wpackhssvc','wpackhsshi','wpackhssls','wpackhssge','wpackhsslt','wpackhssgt','wpackhssle', + 'wpackwsseq','wpackwssne','wpackwsscs','wpackwsshs','wpackwsscc','wpackwsslo','wpackwssmi','wpackwsspl','wpackwssvs','wpackwssvc','wpackwsshi','wpackwssls','wpackwssge','wpackwsslt','wpackwssgt','wpackwssle', + 'wpackdsseq','wpackdssne','wpackdsscs','wpackdsshs','wpackdsscc','wpackdsslo','wpackdssmi','wpackdsspl','wpackdssvs','wpackdssvc','wpackdsshi','wpackdssls','wpackdssge','wpackdsslt','wpackdssgt','wpackdssle', + 'wpackhuseq','wpackhusne','wpackhuscs','wpackhushs','wpackhuscc','wpackhuslo','wpackhusmi','wpackhuspl','wpackhusvs','wpackhusvc','wpackhushi','wpackhusls','wpackhusge','wpackhuslt','wpackhusgt','wpackhusle', + 'wpackwuseq','wpackwusne','wpackwuscs','wpackwushs','wpackwuscc','wpackwuslo','wpackwusmi','wpackwuspl','wpackwusvs','wpackwusvc','wpackwushi','wpackwusls','wpackwusge','wpackwuslt','wpackwusgt','wpackwusle', + 'wpackduseq','wpackdusne','wpackduscs','wpackdushs','wpackduscc','wpackduslo','wpackdusmi','wpackduspl','wpackdusvs','wpackdusvc','wpackdushi','wpackdusls','wpackdusge','wpackduslt','wpackdusgt','wpackdusle', + 'wqmiabbeq','wqmiabbne','wqmiabbcs','wqmiabbhs','wqmiabbcc','wqmiabblo','wqmiabbmi','wqmiabbpl','wqmiabbvs','wqmiabbvc','wqmiabbhi','wqmiabbls','wqmiabbge','wqmiabblt','wqmiabbgt','wqmiabble', + 'wqmiabteq','wqmiabtne','wqmiabtcs','wqmiabths','wqmiabtcc','wqmiabtlo','wqmiabtmi','wqmiabtpl','wqmiabtvs','wqmiabtvc','wqmiabthi','wqmiabtls','wqmiabtge','wqmiabtlt','wqmiabtgt','wqmiabtle', + 'wqmiatbeq','wqmiatbne','wqmiatbcs','wqmiatbhs','wqmiatbcc','wqmiatblo','wqmiatbmi','wqmiatbpl','wqmiatbvs','wqmiatbvc','wqmiatbhi','wqmiatbls','wqmiatbge','wqmiatblt','wqmiatbgt','wqmiatble', + 'wqmiatteq','wqmiattne','wqmiattcs','wqmiatths','wqmiattcc','wqmiattlo','wqmiattmi','wqmiattpl','wqmiattvs','wqmiattvc','wqmiatthi','wqmiattls','wqmiattge','wqmiattlt','wqmiattgt','wqmiattle', + 'wqmiabbneq','wqmiabbnne','wqmiabbncs','wqmiabbnhs','wqmiabbncc','wqmiabbnlo','wqmiabbnmi','wqmiabbnpl','wqmiabbnvs','wqmiabbnvc','wqmiabbnhi','wqmiabbnls','wqmiabbnge','wqmiabbnlt','wqmiabbngt','wqmiabbnle', + 'wqmiabtneq','wqmiabtnne','wqmiabtncs','wqmiabtnhs','wqmiabtncc','wqmiabtnlo','wqmiabtnmi','wqmiabtnpl','wqmiabtnvs','wqmiabtnvc','wqmiabtnhi','wqmiabtnls','wqmiabtnge','wqmiabtnlt','wqmiabtngt','wqmiabtnle', + 'wqmiatbneq','wqmiatbnne','wqmiatbncs','wqmiatbnhs','wqmiatbncc','wqmiatbnlo','wqmiatbnmi','wqmiatbnpl','wqmiatbnvs','wqmiatbnvc','wqmiatbnhi','wqmiatbnls','wqmiatbnge','wqmiatbnlt','wqmiatbngt','wqmiatbnle', + 'wqmiattneq','wqmiattnne','wqmiattncs','wqmiattnhs','wqmiattncc','wqmiattnlo','wqmiattnmi','wqmiattnpl','wqmiattnvs','wqmiattnvc','wqmiattnhi','wqmiattnls','wqmiattnge','wqmiattnlt','wqmiattngt','wqmiattnle', + 'wqmulmeq','wqmulmne','wqmulmcs','wqmulmhs','wqmulmcc','wqmulmlo','wqmulmmi','wqmulmpl','wqmulmvs','wqmulmvc','wqmulmhi','wqmulmls','wqmulmge','wqmulmlt','wqmulmgt','wqmulmle', + 'wqmulmreq','wqmulmrne','wqmulmrcs','wqmulmrhs','wqmulmrcc','wqmulmrlo','wqmulmrmi','wqmulmrpl','wqmulmrvs','wqmulmrvc','wqmulmrhi','wqmulmrls','wqmulmrge','wqmulmrlt','wqmulmrgt','wqmulmrle', + 'wqmulwmeq','wqmulwmne','wqmulwmcs','wqmulwmhs','wqmulwmcc','wqmulwmlo','wqmulwmmi','wqmulwmpl','wqmulwmvs','wqmulwmvc','wqmulwmhi','wqmulwmls','wqmulwmge','wqmulwmlt','wqmulwmgt','wqmulwmle', + 'wqmulwmreq','wqmulwmrne','wqmulwmrcs','wqmulwmrhs','wqmulwmrcc','wqmulwmrlo','wqmulwmrmi','wqmulwmrpl','wqmulwmrvs','wqmulwmrvc','wqmulwmrhi','wqmulwmrls','wqmulwmrge','wqmulwmrlt','wqmulwmrgt','wqmulwmrle', + 'wrorheq','wrorhne','wrorhcs','wrorhhs','wrorhcc','wrorhlo','wrorhmi','wrorhpl','wrorhvs','wrorhvc','wrorhhi','wrorhls','wrorhge','wrorhlt','wrorhgt','wrorhle', + 'wrorweq','wrorwne','wrorwcs','wrorwhs','wrorwcc','wrorwlo','wrorwmi','wrorwpl','wrorwvs','wrorwvc','wrorwhi','wrorwls','wrorwge','wrorwlt','wrorwgt','wrorwle', + 'wrordeq','wrordne','wrordcs','wrordhs','wrordcc','wrordlo','wrordmi','wrordpl','wrordvs','wrordvc','wrordhi','wrordls','wrordge','wrordlt','wrordgt','wrordle', + 'wrorhgeq','wrorhgne','wrorhgcs','wrorhghs','wrorhgcc','wrorhglo','wrorhgmi','wrorhgpl','wrorhgvs','wrorhgvc','wrorhghi','wrorhgls','wrorhgge','wrorhglt','wrorhggt','wrorhgle', + 'wrorwgeq','wrorwgne','wrorwgcs','wrorwghs','wrorwgcc','wrorwglo','wrorwgmi','wrorwgpl','wrorwgvs','wrorwgvc','wrorwghi','wrorwgls','wrorwgge','wrorwglt','wrorwggt','wrorwgle', + 'wrordgeq','wrordgne','wrordgcs','wrordghs','wrordgcc','wrordglo','wrordgmi','wrordgpl','wrordgvs','wrordgvc','wrordghi','wrordgls','wrordgge','wrordglt','wrordggt','wrordgle', + 'wsadbeq','wsadbne','wsadbcs','wsadbhs','wsadbcc','wsadblo','wsadbmi','wsadbpl','wsadbvs','wsadbvc','wsadbhi','wsadbls','wsadbge','wsadblt','wsadbgt','wsadble', + 'wsadheq','wsadhne','wsadhcs','wsadhhs','wsadhcc','wsadhlo','wsadhmi','wsadhpl','wsadhvs','wsadhvc','wsadhhi','wsadhls','wsadhge','wsadhlt','wsadhgt','wsadhle', + 'wsadbzeq','wsadbzne','wsadbzcs','wsadbzhs','wsadbzcc','wsadbzlo','wsadbzmi','wsadbzpl','wsadbzvs','wsadbzvc','wsadbzhi','wsadbzls','wsadbzge','wsadbzlt','wsadbzgt','wsadbzle', + 'wsadhzeq','wsadhzne','wsadhzcs','wsadhzhs','wsadhzcc','wsadhzlo','wsadhzmi','wsadhzpl','wsadhzvs','wsadhzvc','wsadhzhi','wsadhzls','wsadhzge','wsadhzlt','wsadhzgt','wsadhzle', + 'wshufheq','wshufhne','wshufhcs','wshufhhs','wshufhcc','wshufhlo','wshufhmi','wshufhpl','wshufhvs','wshufhvc','wshufhhi','wshufhls','wshufhge','wshufhlt','wshufhgt','wshufhle', + 'wsllheq','wsllhne','wsllhcs','wsllhhs','wsllhcc','wsllhlo','wsllhmi','wsllhpl','wsllhvs','wsllhvc','wsllhhi','wsllhls','wsllhge','wsllhlt','wsllhgt','wsllhle', + 'wsllweq','wsllwne','wsllwcs','wsllwhs','wsllwcc','wsllwlo','wsllwmi','wsllwpl','wsllwvs','wsllwvc','wsllwhi','wsllwls','wsllwge','wsllwlt','wsllwgt','wsllwle', + 'wslldeq','wslldne','wslldcs','wslldhs','wslldcc','wslldlo','wslldmi','wslldpl','wslldvs','wslldvc','wslldhi','wslldls','wslldge','wslldlt','wslldgt','wslldle', + 'wsllhgeq','wsllhgne','wsllhgcs','wsllhghs','wsllhgcc','wsllhglo','wsllhgmi','wsllhgpl','wsllhgvs','wsllhgvc','wsllhghi','wsllhgls','wsllhgge','wsllhglt','wsllhggt','wsllhgle', + 'wsllwgeq','wsllwgne','wsllwgcs','wsllwghs','wsllwgcc','wsllwglo','wsllwgmi','wsllwgpl','wsllwgvs','wsllwgvc','wsllwghi','wsllwgls','wsllwgge','wsllwglt','wsllwggt','wsllwgle', + 'wslldgeq','wslldgne','wslldgcs','wslldghs','wslldgcc','wslldglo','wslldgmi','wslldgpl','wslldgvs','wslldgvc','wslldghi','wslldgls','wslldgge','wslldglt','wslldggt','wslldgle', + 'wsraheq','wsrahne','wsrahcs','wsrahhs','wsrahcc','wsrahlo','wsrahmi','wsrahpl','wsrahvs','wsrahvc','wsrahhi','wsrahls','wsrahge','wsrahlt','wsrahgt','wsrahle', + 'wsraweq','wsrawne','wsrawcs','wsrawhs','wsrawcc','wsrawlo','wsrawmi','wsrawpl','wsrawvs','wsrawvc','wsrawhi','wsrawls','wsrawge','wsrawlt','wsrawgt','wsrawle', + 'wsradeq','wsradne','wsradcs','wsradhs','wsradcc','wsradlo','wsradmi','wsradpl','wsradvs','wsradvc','wsradhi','wsradls','wsradge','wsradlt','wsradgt','wsradle', + 'wsrahgeq','wsrahgne','wsrahgcs','wsrahghs','wsrahgcc','wsrahglo','wsrahgmi','wsrahgpl','wsrahgvs','wsrahgvc','wsrahghi','wsrahgls','wsrahgge','wsrahglt','wsrahggt','wsrahgle', + 'wsrawgeq','wsrawgne','wsrawgcs','wsrawghs','wsrawgcc','wsrawglo','wsrawgmi','wsrawgpl','wsrawgvs','wsrawgvc','wsrawghi','wsrawgls','wsrawgge','wsrawglt','wsrawggt','wsrawgle', + 'wsradgeq','wsradgne','wsradgcs','wsradghs','wsradgcc','wsradglo','wsradgmi','wsradgpl','wsradgvs','wsradgvc','wsradghi','wsradgls','wsradgge','wsradglt','wsradggt','wsradgle', + 'wsrlheq','wsrlhne','wsrlhcs','wsrlhhs','wsrlhcc','wsrlhlo','wsrlhmi','wsrlhpl','wsrlhvs','wsrlhvc','wsrlhhi','wsrlhls','wsrlhge','wsrlhlt','wsrlhgt','wsrlhle', + 'wsrlweq','wsrlwne','wsrlwcs','wsrlwhs','wsrlwcc','wsrlwlo','wsrlwmi','wsrlwpl','wsrlwvs','wsrlwvc','wsrlwhi','wsrlwls','wsrlwge','wsrlwlt','wsrlwgt','wsrlwle', + 'wsrldeq','wsrldne','wsrldcs','wsrldhs','wsrldcc','wsrldlo','wsrldmi','wsrldpl','wsrldvs','wsrldvc','wsrldhi','wsrldls','wsrldge','wsrldlt','wsrldgt','wsrldle', + 'wsrlhgeq','wsrlhgne','wsrlhgcs','wsrlhghs','wsrlhgcc','wsrlhglo','wsrlhgmi','wsrlhgpl','wsrlhgvs','wsrlhgvc','wsrlhghi','wsrlhgls','wsrlhgge','wsrlhglt','wsrlhggt','wsrlhgle', + 'wsrlwgeq','wsrlwgne','wsrlwgcs','wsrlwghs','wsrlwgcc','wsrlwglo','wsrlwgmi','wsrlwgpl','wsrlwgvs','wsrlwgvc','wsrlwghi','wsrlwgls','wsrlwgge','wsrlwglt','wsrlwggt','wsrlwgle', + 'wsrldgeq','wsrldgne','wsrldgcs','wsrldghs','wsrldgcc','wsrldglo','wsrldgmi','wsrldgpl','wsrldgvs','wsrldgvc','wsrldghi','wsrldgls','wsrldgge','wsrldglt','wsrldggt','wsrldgle', + 'wstrbeq','wstrbne','wstrbcs','wstrbhs','wstrbcc','wstrblo','wstrbmi','wstrbpl','wstrbvs','wstrbvc','wstrbhi','wstrbls','wstrbge','wstrblt','wstrbgt','wstrble', + 'wstrheq','wstrhne','wstrhcs','wstrhhs','wstrhcc','wstrhlo','wstrhmi','wstrhpl','wstrhvs','wstrhvc','wstrhhi','wstrhls','wstrhge','wstrhlt','wstrhgt','wstrhle', + 'wstrweq','wstrwne','wstrwcs','wstrwhs','wstrwcc','wstrwlo','wstrwmi','wstrwpl','wstrwvs','wstrwvc','wstrwhi','wstrwls','wstrwge','wstrwlt','wstrwgt','wstrwle', + 'wstrdeq','wstrdne','wstrdcs','wstrdhs','wstrdcc','wstrdlo','wstrdmi','wstrdpl','wstrdvs','wstrdvc','wstrdhi','wstrdls','wstrdge','wstrdlt','wstrdgt','wstrdle', + 'wsubbeq','wsubbne','wsubbcs','wsubbhs','wsubbcc','wsubblo','wsubbmi','wsubbpl','wsubbvs','wsubbvc','wsubbhi','wsubbls','wsubbge','wsubblt','wsubbgt','wsubble', + 'wsubheq','wsubhne','wsubhcs','wsubhhs','wsubhcc','wsubhlo','wsubhmi','wsubhpl','wsubhvs','wsubhvc','wsubhhi','wsubhls','wsubhge','wsubhlt','wsubhgt','wsubhle', + 'wsubweq','wsubwne','wsubwcs','wsubwhs','wsubwcc','wsubwlo','wsubwmi','wsubwpl','wsubwvs','wsubwvc','wsubwhi','wsubwls','wsubwge','wsubwlt','wsubwgt','wsubwle', + 'wsubbsseq','wsubbssne','wsubbsscs','wsubbsshs','wsubbsscc','wsubbsslo','wsubbssmi','wsubbsspl','wsubbssvs','wsubbssvc','wsubbsshi','wsubbssls','wsubbssge','wsubbsslt','wsubbssgt','wsubbssle', + 'wsubhsseq','wsubhssne','wsubhsscs','wsubhsshs','wsubhsscc','wsubhsslo','wsubhssmi','wsubhsspl','wsubhssvs','wsubhssvc','wsubhsshi','wsubhssls','wsubhssge','wsubhsslt','wsubhssgt','wsubhssle', + 'wsubwsseq','wsubwssne','wsubwsscs','wsubwsshs','wsubwsscc','wsubwsslo','wsubwssmi','wsubwsspl','wsubwssvs','wsubwssvc','wsubwsshi','wsubwssls','wsubwssge','wsubwsslt','wsubwssgt','wsubwssle', + 'wsubbuseq','wsubbusne','wsubbuscs','wsubbushs','wsubbuscc','wsubbuslo','wsubbusmi','wsubbuspl','wsubbusvs','wsubbusvc','wsubbushi','wsubbusls','wsubbusge','wsubbuslt','wsubbusgt','wsubbusle', + 'wsubhuseq','wsubhusne','wsubhuscs','wsubhushs','wsubhuscc','wsubhuslo','wsubhusmi','wsubhuspl','wsubhusvs','wsubhusvc','wsubhushi','wsubhusls','wsubhusge','wsubhuslt','wsubhusgt','wsubhusle', + 'wsubwuseq','wsubwusne','wsubwuscs','wsubwushs','wsubwuscc','wsubwuslo','wsubwusmi','wsubwuspl','wsubwusvs','wsubwusvc','wsubwushi','wsubwusls','wsubwusge','wsubwuslt','wsubwusgt','wsubwusle', + 'wsubaddhxeq','wsubaddhxne','wsubaddhxcs','wsubaddhxhs','wsubaddhxcc','wsubaddhxlo','wsubaddhxmi','wsubaddhxpl','wsubaddhxvs','wsubaddhxvc','wsubaddhxhi','wsubaddhxls','wsubaddhxge','wsubaddhxlt','wsubaddhxgt','wsubaddhxle', + 'wunpckehsbeq','wunpckehsbne','wunpckehsbcs','wunpckehsbhs','wunpckehsbcc','wunpckehsblo','wunpckehsbmi','wunpckehsbpl','wunpckehsbvs','wunpckehsbvc','wunpckehsbhi','wunpckehsbls','wunpckehsbge','wunpckehsblt','wunpckehsbgt','wunpckehsble', + 'wunpckehsheq','wunpckehshne','wunpckehshcs','wunpckehshhs','wunpckehshcc','wunpckehshlo','wunpckehshmi','wunpckehshpl','wunpckehshvs','wunpckehshvc','wunpckehshhi','wunpckehshls','wunpckehshge','wunpckehshlt','wunpckehshgt','wunpckehshle', + 'wunpckehsweq','wunpckehswne','wunpckehswcs','wunpckehswhs','wunpckehswcc','wunpckehswlo','wunpckehswmi','wunpckehswpl','wunpckehswvs','wunpckehswvc','wunpckehswhi','wunpckehswls','wunpckehswge','wunpckehswlt','wunpckehswgt','wunpckehswle', + 'wunpckehubeq','wunpckehubne','wunpckehubcs','wunpckehubhs','wunpckehubcc','wunpckehublo','wunpckehubmi','wunpckehubpl','wunpckehubvs','wunpckehubvc','wunpckehubhi','wunpckehubls','wunpckehubge','wunpckehublt','wunpckehubgt','wunpckehuble', + 'wunpckehuheq','wunpckehuhne','wunpckehuhcs','wunpckehuhhs','wunpckehuhcc','wunpckehuhlo','wunpckehuhmi','wunpckehuhpl','wunpckehuhvs','wunpckehuhvc','wunpckehuhhi','wunpckehuhls','wunpckehuhge','wunpckehuhlt','wunpckehuhgt','wunpckehuhle', + 'wunpckehuweq','wunpckehuwne','wunpckehuwcs','wunpckehuwhs','wunpckehuwcc','wunpckehuwlo','wunpckehuwmi','wunpckehuwpl','wunpckehuwvs','wunpckehuwvc','wunpckehuwhi','wunpckehuwls','wunpckehuwge','wunpckehuwlt','wunpckehuwgt','wunpckehuwle', + 'wunpckihbeq','wunpckihbne','wunpckihbcs','wunpckihbhs','wunpckihbcc','wunpckihblo','wunpckihbmi','wunpckihbpl','wunpckihbvs','wunpckihbvc','wunpckihbhi','wunpckihbls','wunpckihbge','wunpckihblt','wunpckihbgt','wunpckihble', + 'wunpckihheq','wunpckihhne','wunpckihhcs','wunpckihhhs','wunpckihhcc','wunpckihhlo','wunpckihhmi','wunpckihhpl','wunpckihhvs','wunpckihhvc','wunpckihhhi','wunpckihhls','wunpckihhge','wunpckihhlt','wunpckihhgt','wunpckihhle', + 'wunpckihweq','wunpckihwne','wunpckihwcs','wunpckihwhs','wunpckihwcc','wunpckihwlo','wunpckihwmi','wunpckihwpl','wunpckihwvs','wunpckihwvc','wunpckihwhi','wunpckihwls','wunpckihwge','wunpckihwlt','wunpckihwgt','wunpckihwle', + 'wunpckelsbeq','wunpckelsbne','wunpckelsbcs','wunpckelsbhs','wunpckelsbcc','wunpckelsblo','wunpckelsbmi','wunpckelsbpl','wunpckelsbvs','wunpckelsbvc','wunpckelsbhi','wunpckelsbls','wunpckelsbge','wunpckelsblt','wunpckelsbgt','wunpckelsble', + 'wunpckelsheq','wunpckelshne','wunpckelshcs','wunpckelshhs','wunpckelshcc','wunpckelshlo','wunpckelshmi','wunpckelshpl','wunpckelshvs','wunpckelshvc','wunpckelshhi','wunpckelshls','wunpckelshge','wunpckelshlt','wunpckelshgt','wunpckelshle', + 'wunpckelsweq','wunpckelswne','wunpckelswcs','wunpckelswhs','wunpckelswcc','wunpckelswlo','wunpckelswmi','wunpckelswpl','wunpckelswvs','wunpckelswvc','wunpckelswhi','wunpckelswls','wunpckelswge','wunpckelswlt','wunpckelswgt','wunpckelswle', + 'wunpckelubeq','wunpckelubne','wunpckelubcs','wunpckelubhs','wunpckelubcc','wunpckelublo','wunpckelubmi','wunpckelubpl','wunpckelubvs','wunpckelubvc','wunpckelubhi','wunpckelubls','wunpckelubge','wunpckelublt','wunpckelubgt','wunpckeluble', + 'wunpckeluheq','wunpckeluhne','wunpckeluhcs','wunpckeluhhs','wunpckeluhcc','wunpckeluhlo','wunpckeluhmi','wunpckeluhpl','wunpckeluhvs','wunpckeluhvc','wunpckeluhhi','wunpckeluhls','wunpckeluhge','wunpckeluhlt','wunpckeluhgt','wunpckeluhle', + 'wunpckeluweq','wunpckeluwne','wunpckeluwcs','wunpckeluwhs','wunpckeluwcc','wunpckeluwlo','wunpckeluwmi','wunpckeluwpl','wunpckeluwvs','wunpckeluwvc','wunpckeluwhi','wunpckeluwls','wunpckeluwge','wunpckeluwlt','wunpckeluwgt','wunpckeluwle', + 'wunpckilbeq','wunpckilbne','wunpckilbcs','wunpckilbhs','wunpckilbcc','wunpckilblo','wunpckilbmi','wunpckilbpl','wunpckilbvs','wunpckilbvc','wunpckilbhi','wunpckilbls','wunpckilbge','wunpckilblt','wunpckilbgt','wunpckilble', + 'wunpckilheq','wunpckilhne','wunpckilhcs','wunpckilhhs','wunpckilhcc','wunpckilhlo','wunpckilhmi','wunpckilhpl','wunpckilhvs','wunpckilhvc','wunpckilhhi','wunpckilhls','wunpckilhge','wunpckilhlt','wunpckilhgt','wunpckilhle', + 'wunpckilweq','wunpckilwne','wunpckilwcs','wunpckilwhs','wunpckilwcc','wunpckilwlo','wunpckilwmi','wunpckilwpl','wunpckilwvs','wunpckilwvc','wunpckilwhi','wunpckilwls','wunpckilwge','wunpckilwlt','wunpckilwgt','wunpckilwle', + 'wxoreq','wxorne','wxorcs','wxorhs','wxorcc','wxorlo','wxormi','wxorpl','wxorvs','wxorvc','wxorhi','wxorls','wxorge','wxorlt','wxorgt','wxorle', + 'wzeroeq','wzerone','wzerocs','wzerohs','wzerocc','wzerolo','wzeromi','wzeropl','wzerovs','wzerovc','wzerohi','wzerols','wzeroge','wzerolt','wzerogt','wzerole' + ), + /* Unconditional VFPv3 & NEON SIMD Memory Access Instructions */ + 19 => array( + /* Unconditional VFPv3 & NEON SIMD Memory Access: Loads */ + 'vld.8','vldal.8', + 'vld.16','vldal.16', + 'vld.32','vldal.32', + 'vld.64','vldal.64', + + 'vld1.8','vld1al.8', + 'vld1.16','vld1al.16', + 'vld1.32','vld1al.32', + + 'vld2.8','vld2al.8', + 'vld2.16','vld2al.16', + 'vld2.32','vld2al.32', + + 'vld3.8','vld3al.8', + 'vld3.16','vld3al.16', + 'vld3.32','vld3al.32', + + 'vld4.8','vld4al.8', + 'vld4.16','vld4al.16', + 'vld4.32','vld4al.32', + + 'vldm','vldmal', + 'vldm.32','vldmal.32', + 'vldm.64','vldmal.64', + + 'vldmia','vldmiaal', + 'vldmia.32','vldmiaal.32', + 'vldmia.64','vldmiaal.64', + + 'vldmdb','vldmdbal', + 'vldmdb.32','vldmdbal.32', + 'vldmdb.64','vldmdbal.64', + + 'vldr','vldral', + 'vldr.32','vldral.32', + 'vldr.64','vldral.64', + + 'vpop','vpopal', + 'vpop.32','vpopal.32', + 'vpop.64','vpopal.64', + + /* Unconditional VFPv3 & NEON SIMD Memory Access: Stores */ + 'vst1.8','vst1al.8', + 'vst1.16','vst1al.16', + 'vst1.32','vst1al.32', + 'vst1.64','vst1al.64', + + 'vst2.8','vst2al.8', + 'vst2.16','vst2al.16', + 'vst2.32','vst2al.32', + + 'vst3.8','vst3al.8', + 'vst3.16','vst3al.16', + 'vst3.32','vst3al.32', + + 'vst4.8','vst4al.8', + 'vst4.16','vst4al.16', + 'vst4.32','vst4al.32', + + 'vstm','vstmal', + 'vstm.32','vstmal.32', + 'vstm.64','vstmal.64', + + 'vstmia','vstmiaal', + 'vstmia.32','vstmiaal.32', + 'vstmia.64','vstmiaal.64', + + 'vstmdb','vstmdbal', + 'vstmdb.32','vstmdbal.32', + 'vstmdb.64','vstmdbal.64', + + 'vstr','vstral', + 'vstr.32','vstral.32', + 'vstr.64','vstral.64', + + 'vpush','vpushal', + 'vpush.32','vpushal.32', + 'vpush.64','vpushal.64' + ), + /* Unconditional NEON SIMD Logical Instructions */ + 20 => array( + 'vand','vandal', + 'vand.i8','vandal.i8', + 'vand.i16','vandal.i16', + 'vand.i32','vandal.i32', + 'vand.i64','vandal.i64', + 'vand.s8','vandal.s8', + 'vand.s16','vandal.s16', + 'vand.s32','vandal.s32', + 'vand.s64','vandal.s64', + 'vand.u8','vandal.u8', + 'vand.u16','vandal.u16', + 'vand.u32','vandal.u32', + 'vand.u64','vandal.u64', + 'vand.f32','vandal.f32', + 'vand.f64','vandal.f64', + + 'vbic','vbical', + 'vbic.i8','vbical.i8', + 'vbic.i16','vbical.i16', + 'vbic.i32','vbical.i32', + 'vbic.i64','vbical.i64', + 'vbic.s8','vbical.s8', + 'vbic.s16','vbical.s16', + 'vbic.s32','vbical.s32', + 'vbic.s64','vbical.s64', + 'vbic.u8','vbical.u8', + 'vbic.u16','vbical.u16', + 'vbic.u32','vbical.u32', + 'vbic.u64','vbical.u64', + 'vbic.f32','vbical.f32', + 'vbic.f64','vbical.f64', + + 'vbif','vbifal', + 'vbif.i8','vbifal.i8', + 'vbif.i16','vbifal.i16', + 'vbif.i32','vbifal.i32', + 'vbif.i64','vbifal.i64', + 'vbif.s8','vbifal.s8', + 'vbif.s16','vbifal.s16', + 'vbif.s32','vbifal.s32', + 'vbif.s64','vbifal.s64', + 'vbif.u8','vbifal.u8', + 'vbif.u16','vbifal.u16', + 'vbif.u32','vbifal.u32', + 'vbif.u64','vbifal.u64', + 'vbif.f32','vbifal.f32', + 'vbif.f64','vbifal.f64', + + 'vbit','vbital', + 'vbit.i8','vbital.i8', + 'vbit.i16','vbital.i16', + 'vbit.i32','vbital.i32', + 'vbit.i64','vbital.i64', + 'vbit.s8','vbital.s8', + 'vbit.s16','vbital.s16', + 'vbit.s32','vbital.s32', + 'vbit.s64','vbital.s64', + 'vbit.u8','vbital.u8', + 'vbit.u16','vbital.u16', + 'vbit.u32','vbital.u32', + 'vbit.u64','vbital.u64', + 'vbit.f32','vbital.f32', + 'vbit.f64','vbital.f64', + + 'vbsl','vbslal', + 'vbsl.i8','vbslal.i8', + 'vbsl.i16','vbslal.i16', + 'vbsl.i32','vbslal.i32', + 'vbsl.i64','vbslal.i64', + 'vbsl.s8','vbslal.s8', + 'vbsl.s16','vbslal.s16', + 'vbsl.s32','vbslal.s32', + 'vbsl.s64','vbslal.s64', + 'vbsl.u8','vbslal.u8', + 'vbsl.u16','vbslal.u16', + 'vbsl.u32','vbslal.u32', + 'vbsl.u64','vbslal.u64', + 'vbsl.f32','vbslal.f32', + 'vbsl.f64','vbslal.f64', + + 'veor','veoral', + 'veor.i8','veoral.i8', + 'veor.i16','veoral.i16', + 'veor.i32','veoral.i32', + 'veor.i64','veoral.i64', + 'veor.s8','veoral.s8', + 'veor.s16','veoral.s16', + 'veor.s32','veoral.s32', + 'veor.s64','veoral.s64', + 'veor.u8','veoral.u8', + 'veor.u16','veoral.u16', + 'veor.u32','veoral.u32', + 'veor.u64','veoral.u64', + 'veor.f32','veoral.f32', + 'veor.f64','veoral.f64', + + 'vmov','vmoval', + 'vmov.8','vmoval.8', + 'vmov.16','vmoval.16', + 'vmov.32','vmoval.32', + 'vmov.i8','vmoval.i8', + 'vmov.i16','vmoval.i16', + 'vmov.i32','vmoval.i32', + 'vmov.i64','vmoval.i64', + 'vmov.f32','vmoval.f32', + 'vmov.f64','vmoval.f64', + + 'vmvn','vmvnal', + 'vmvn.s8','vmvnal.s8', + 'vmvn.s16','vmvnal.s16', + 'vmvn.s32','vmvnal.s32', + 'vmvn.s64','vmvnal.s64', + 'vmvn.u8','vmvnal.u8', + 'vmvn.u16','vmvnal.u16', + 'vmvn.u32','vmvnal.u32', + 'vmvn.u64','vmvnal.u64', + 'vmvn.i8','vmvnal.i8', + 'vmvn.i16','vmvnal.i16', + 'vmvn.i32','vmvnal.i32', + 'vmvn.i64','vmvnal.i64', + 'vmvn.f32','vmvnal.f32', + 'vmvn.f64','vmvnal.f64', + + 'vorn','vornal', + 'vorn.s8','vornal.s8', + 'vorn.s16','vornal.s16', + 'vorn.s32','vornal.s32', + 'vorn.s64','vornal.s64', + 'vorn.u8','vornal.u8', + 'vorn.u16','vornal.u16', + 'vorn.u32','vornal.u32', + 'vorn.u64','vornal.u64', + 'vorn.i8','vornal.i8', + 'vorn.i16','vornal.i16', + 'vorn.i32','vornal.i32', + 'vorn.i64','vornal.i64', + 'vorn.f32','vornal.f32', + 'vorn.f64','vornal.f64', + + 'vorr','vorral', + 'vorr.s8','vorral.s8', + 'vorr.s16','vorral.s16', + 'vorr.s32','vorral.s32', + 'vorr.s64','vorral.s64', + 'vorr.u8','vorral.u8', + 'vorr.u16','vorral.u16', + 'vorr.u32','vorral.u32', + 'vorr.u64','vorral.u64', + 'vorr.i8','vorral.i8', + 'vorr.i16','vorral.i16', + 'vorr.i32','vorral.i32', + 'vorr.i64','vorral.i64', + 'vorr.f32','vorral.f32', + 'vorr.f64','vorral.f64', + + 'vswp','vswpal', + 'vswp.s8','vswpal.s8', + 'vswp.s16','vswpal.s16', + 'vswp.s32','vswpal.s32', + 'vswp.s64','vswpal.s64', + 'vswp.u8','vswpal.u8', + 'vswp.u16','vswpal.u16', + 'vswp.u32','vswpal.u32', + 'vswp.u64','vswpal.u64', + 'vswp.i8','vswpal.i8', + 'vswp.i16','vswpal.i16', + 'vswp.i32','vswpal.i32', + 'vswp.i64','vswpal.i64', + 'vswp.f32','vswpal.f32', + 'vswp.f64','vswpal.f64' + ), + /* Unconditional NEON SIMD ARM Registers Interop Instructions */ + 21 => array( + 'vmrs','vmrsal', + 'vmsr','vmsral' + ), + /* Unconditional NEON SIMD Bit/Byte-Level Instructions */ + 22 => array( + 'vcnt.8','vcntal.8', + 'vdup.8','vdupal.8', + + 'vdup.16','vdupal.16', + 'vdup.32','vdupal.32', + + 'vext.8','vextal.8', + 'vext.16','vextal.16', + + 'vext.32','vextal.32', + 'vext.64','vextal.64', + + 'vrev16.8','vrev16al.8', + 'vrev32.8','vrev32al.8', + 'vrev32.16','vrev32al.16', + 'vrev64.8','vrev64al.8', + 'vrev64.16','vrev64al.16', + 'vrev64.32','vrev64al.32', + + 'vsli.8','vslial.8', + 'vsli.16','vslial.16', + 'vsli.32','vslial.32', + 'vsli.64','vslial.64', + + 'vsri.8','vsrial.8', + 'vsri.16','vsrial.16', + 'vsri.32','vsrial.32', + 'vsri.64','vsrial.64', + + 'vtbl.8','vtblal.8', + + 'vtbx','vtbxal', + + 'vtrn.8','vtrnal.8', + 'vtrn.16','vtrnal.16', + 'vtrn.32','vtrnal.32', + + 'vtst.8','vtstal.8', + 'vtst.16','vtstal.16', + 'vtst.32','vtstal.32', + + 'vuzp.8','vuzpal.8', + 'vuzp.16','vuzpal.16', + 'vuzp.32','vuzpal.32', + + 'vzip.8','vzipal.8', + 'vzip.16','vzipal.16', + 'vzip.32','vzipal.32', + + 'vmull.p8','vmullal.p8' + ), + /* Unconditional NEON SIMD Universal Integer Instructions */ + 23 => array( + 'vadd.i8','vaddal.i8', + 'vadd.i16','vaddal.i16', + 'vadd.i32','vaddal.i32', + 'vadd.i64','vaddal.i64', + + 'vsub.i8','vsubal.i8', + 'vsub.i16','vsubal.i16', + 'vsub.i32','vsubal.i32', + 'vsub.i64','vsubal.i64', + + 'vaddhn.i16','vaddhnal.i16', + 'vaddhn.i32','vaddhnal.i32', + 'vaddhn.i64','vaddhnal.i64', + + 'vsubhn.i16','vsubhnal.i16', + 'vsubhn.i32','vsubhnal.i32', + 'vsubhn.i64','vsubhnal.i64', + + 'vraddhn.i16','vraddhnal.i16', + 'vraddhn.i32','vraddhnal.i32', + 'vraddhn.i64','vraddhnal.i64', + + 'vrsubhn.i16','vrsubhnal.i16', + 'vrsubhn.i32','vrsubhnal.i32', + 'vrsubhn.i64','vrsubhnal.i64', + + 'vpadd.i8','vpaddal.i8', + 'vpadd.i16','vpaddal.i16', + 'vpadd.i32','vpaddal.i32', + + 'vceq.i8','vceqal.i8', + 'vceq.i16','vceqal.i16', + 'vceq.i32','vceqal.i32', + + 'vclz.i8','vclzal.i8', + 'vclz.i16','vclzal.i16', + 'vclz.i32','vclzal.i32', + + 'vmovn.i16','vmovnal.i16', + 'vmovn.i32','vmovnal.i32', + 'vmovn.i64','vmovnal.i64', + + 'vmla.s8','vmlaal.s8', + 'vmla.s16','vmlaal.s16', + 'vmla.s32','vmlaal.s32', + 'vmla.u8','vmlaal.u8', + 'vmla.u16','vmlaal.u16', + 'vmla.u32','vmlaal.u32', + 'vmla.i8','vmlaal.i8', + 'vmla.i16','vmlaal.i16', + 'vmla.i32','vmlaal.i32', + + 'vmls.s8','vmlsal.s8', + 'vmls.s16','vmlsal.s16', + 'vmls.s32','vmlsal.s32', + 'vmls.u8','vmlsal.u8', + 'vmls.u16','vmlsal.u16', + 'vmls.u32','vmlsal.u32', + 'vmls.i8','vmlsal.i8', + 'vmls.i16','vmlsal.i16', + 'vmls.i32','vmlsal.i32', + + 'vmul.s8','vmulal.s8', + 'vmul.s16','vmulal.s16', + 'vmul.s32','vmulal.s32', + 'vmul.u8','vmulal.u8', + 'vmul.u16','vmulal.u16', + 'vmul.u32','vmulal.u32', + 'vmul.i8','vmulal.i8', + 'vmul.i16','vmulal.i16', + 'vmul.i32','vmulal.i32', + 'vmul.p8','vmulal.p8', + + 'vrshrn.i16','vrshrnal.i16', + 'vrshrn.i32','vrshrnal.i32', + 'vrshrn.i64','vrshrnal.i64', + + 'vshrn.i16','vshrnal.i16', + 'vshrn.i32','vshrnal.i32', + 'vshrn.i64','vshrnal.i64', + + 'vshl.i8','vshlal.i8', + 'vshl.i16','vshlal.i16', + 'vshl.i32','vshlal.i32', + 'vshl.i64','vshlal.i64', + + 'vshll.i8','vshllal.i8', + 'vshll.i16','vshllal.i16', + 'vshll.i32','vshllal.i32' + ), + /* Unconditional NEON SIMD Signed Integer Instructions */ + 24 => array( + 'vaba.s8','vabaal.s8', + 'vaba.s16','vabaal.s16', + 'vaba.s32','vabaal.s32', + + 'vabal.s8','vabalal.s8', + 'vabal.s16','vabalal.s16', + 'vabal.s32','vabalal.s32', + + 'vabd.s8','vabdal.s8', + 'vabd.s16','vabdal.s16', + 'vabd.s32','vabdal.s32', + + 'vabs.s8','vabsal.s8', + 'vabs.s16','vabsal.s16', + 'vabs.s32','vabsal.s32', + + 'vaddl.s8','vaddlal.s8', + 'vaddl.s16','vaddlal.s16', + 'vaddl.s32','vaddlal.s32', + + 'vcge.s8','vcgeal.s8', + 'vcge.s16','vcgeal.s16', + 'vcge.s32','vcgeal.s32', + + 'vcle.s8','vcleal.s8', + 'vcle.s16','vcleal.s16', + 'vcle.s32','vcleal.s32', + + 'vcgt.s8','vcgtal.s8', + 'vcgt.s16','vcgtal.s16', + 'vcgt.s32','vcgtal.s32', + + 'vclt.s8','vcltal.s8', + 'vclt.s16','vcltal.s16', + 'vclt.s32','vcltal.s32', + + 'vcls.s8','vclsal.s8', + 'vcls.s16','vclsal.s16', + 'vcls.s32','vclsal.s32', + + 'vaddw.s8','vaddwal.s8', + 'vaddw.s16','vaddwal.s16', + 'vaddw.s32','vaddwal.s32', + + 'vhadd.s8','vhaddal.s8', + 'vhadd.s16','vhaddal.s16', + 'vhadd.s32','vhaddal.s32', + + 'vhsub.s8','vhsubal.s8', + 'vhsub.s16','vhsubal.s16', + 'vhsub.s32','vhsubal.s32', + + 'vmax.s8','vmaxal.s8', + 'vmax.s16','vmaxal.s16', + 'vmax.s32','vmaxal.s32', + + 'vmin.s8','vminal.s8', + 'vmin.s16','vminal.s16', + 'vmin.s32','vminal.s32', + + 'vmlal.s8','vmlalal.s8', + 'vmlal.s16','vmlalal.s16', + 'vmlal.s32','vmlalal.s32', + + 'vmlsl.s8','vmlslal.s8', + 'vmlsl.s16','vmlslal.s16', + 'vmlsl.s32','vmlslal.s32', + + 'vneg.s8','vnegal.s8', + 'vneg.s16','vnegal.s16', + 'vneg.s32','vnegal.s32', + + 'vpadal.s8','vpadalal.s8', + 'vpadal.s16','vpadalal.s16', + 'vpadal.s32','vpadalal.s32', + + 'vmovl.s8','vmovlal.s8', + 'vmovl.s16','vmovlal.s16', + 'vmovl.s32','vmovlal.s32', + + 'vmull.s8','vmullal.s8', + 'vmull.s16','vmullal.s16', + 'vmull.s32','vmullal.s32', + + 'vpaddl.s8','vpaddlal.s8', + 'vpaddl.s16','vpaddlal.s16', + 'vpaddl.s32','vpaddlal.s32', + + 'vpmax.s8','vpmaxal.s8', + 'vpmax.s16','vpmaxal.s16', + 'vpmax.s32','vpmaxal.s32', + + 'vpmin.s8','vpminal.s8', + 'vpmin.s16','vpminal.s16', + 'vpmin.s32','vpminal.s32', + + 'vqabs.s8','vqabsal.s8', + 'vqabs.s16','vqabsal.s16', + 'vqabs.s32','vqabsal.s32', + + 'vqadd.s8','vqaddal.s8', + 'vqadd.s16','vqaddal.s16', + 'vqadd.s32','vqaddal.s32', + 'vqadd.s64','vqaddal.s64', + + 'vqdmlal.s16','vqdmlalal.s16', + 'vqdmlal.s32','vqdmlalal.s32', + + 'vqdmlsl.s16','vqdmlslal.s16', + 'vqdmlsl.s32','vqdmlslal.s32', + + 'vqdmulh.s16','vqdmulhal.s16', + 'vqdmulh.s32','vqdmulhal.s32', + + 'vqdmull.s16','vqdmullal.s16', + 'vqdmull.s32','vqdmullal.s32', + + 'vqmovn.s16','vqmovnal.s16', + 'vqmovn.s32','vqmovnal.s32', + 'vqmovn.s64','vqmovnal.s64', + + 'vqmovun.s16','vqmovunal.s16', + 'vqmovun.s32','vqmovunal.s32', + 'vqmovun.s64','vqmovunal.s64', + + 'vqneg.s8','vqnegal.s8', + 'vqneg.s16','vqnegal.s16', + 'vqneg.s32','vqnegal.s32', + + 'vqrdmulh.s16','vqrdmulhal.s16', + 'vqrdmulh.s32','vqrdmulhal.s32', + + 'vqrshl.s8','vqrshlal.s8', + 'vqrshl.s16','vqrshlal.s16', + 'vqrshl.s32','vqrshlal.s32', + 'vqrshl.s64','vqrshlal.s64', + + 'vqrshrn.s16','vqrshrnal.s16', + 'vqrshrn.s32','vqrshrnal.s32', + 'vqrshrn.s64','vqrshrnal.s64', + + 'vqrshrun.s16','vqrshrunal.s16', + 'vqrshrun.s32','vqrshrunal.s32', + 'vqrshrun.s64','vqrshrunal.s64', + + 'vqshl.s8','vqshlal.s8', + 'vqshl.s16','vqshlal.s16', + 'vqshl.s32','vqshlal.s32', + 'vqshl.s64','vqshlal.s64', + + 'vqshlu.s8','vqshlual.s8', + 'vqshlu.s16','vqshlual.s16', + 'vqshlu.s32','vqshlual.s32', + 'vqshlu.s64','vqshlual.s64', + + 'vqshrn.s16','vqshrnal.s16', + 'vqshrn.s32','vqshrnal.s32', + 'vqshrn.s64','vqshrnal.s64', + + 'vqshrun.s16','vqshrunal.s16', + 'vqshrun.s32','vqshrunal.s32', + 'vqshrun.s64','vqshrunal.s64', + + 'vqsub.s8','vqsubal.s8', + 'vqsub.s16','vqsubal.s16', + 'vqsub.s32','vqsubal.s32', + 'vqsub.s64','vqsubal.s64', + + 'vrhadd.s8','vrhaddal.s8', + 'vrhadd.s16','vrhaddal.s16', + 'vrhadd.s32','vrhaddal.s32', + + 'vrshl.s8','vrshlal.s8', + 'vrshl.s16','vrshlal.s16', + 'vrshl.s32','vrshlal.s32', + 'vrshl.s64','vrshlal.s64', + + 'vrshr.s8','vrshral.s8', + 'vrshr.s16','vrshral.s16', + 'vrshr.s32','vrshral.s32', + 'vrshr.s64','vrshral.s64', + + 'vrsra.s8','vrsraal.s8', + 'vrsra.s16','vrsraal.s16', + 'vrsra.s32','vrsraal.s32', + 'vrsra.s64','vrsraal.s64', + + 'vshl.s8','vshlal.s8', + 'vshl.s16','vshlal.s16', + 'vshl.s32','vshlal.s32', + 'vshl.s64','vshlal.s64', + + 'vshll.s8','vshllal.s8', + 'vshll.s16','vshllal.s16', + 'vshll.s32','vshllal.s32', + + 'vshr.s8','vshral.s8', + 'vshr.s16','vshral.s16', + 'vshr.s32','vshral.s32', + 'vshr.s64','vshral.s64', + + 'vsra.s8','vsraal.s8', + 'vsra.s16','vsraal.s16', + 'vsra.s32','vsraal.s32', + 'vsra.s64','vsraal.s64', + + 'vsubl.s8','vsublal.s8', + 'vsubl.s16','vsublal.s16', + 'vsubl.s32','vsublal.s32', + + 'vsubh.s8','vsubhal.s8', + 'vsubh.s16','vsubhal.s16', + 'vsubh.s32','vsubhal.s32' + ), + /* Unconditional NEON SIMD Unsigned Integer Instructions */ + 25 => array( + 'vaba.u8','vabaal.u8', + 'vaba.u16','vabaal.u16', + 'vaba.u32','vabaal.u32', + + 'vabal.u8','vabalal.u8', + 'vabal.u16','vabalal.u16', + 'vabal.u32','vabalal.u32', + + 'vabd.u8','vabdal.u8', + 'vabd.u16','vabdal.u16', + 'vabd.u32','vabdal.u32', + + 'vaddl.u8','vaddlal.u8', + 'vaddl.u16','vaddlal.u16', + 'vaddl.u32','vaddlal.u32', + + 'vsubl.u8','vsublal.u8', + 'vsubl.u16','vsublal.u16', + 'vsubl.u32','vsublal.u32', + + 'vaddw.u8','vaddwal.u8', + 'vaddw.u16','vaddwal.u16', + 'vaddw.u32','vaddwal.u32', + + 'vsubh.u8','vsubhal.u8', + 'vsubh.u16','vsubhal.u16', + 'vsubh.u32','vsubhal.u32', + + 'vhadd.u8','vhaddal.u8', + 'vhadd.u16','vhaddal.u16', + 'vhadd.u32','vhaddal.u32', + + 'vhsub.u8','vhsubal.u8', + 'vhsub.u16','vhsubal.u16', + 'vhsub.u32','vhsubal.u32', + + 'vpadal.u8','vpadalal.u8', + 'vpadal.u16','vpadalal.u16', + 'vpadal.u32','vpadalal.u32', + + 'vpaddl.u8','vpaddlal.u8', + 'vpaddl.u16','vpaddlal.u16', + 'vpaddl.u32','vpaddlal.u32', + + 'vcge.u8','vcgeal.u8', + 'vcge.u16','vcgeal.u16', + 'vcge.u32','vcgeal.u32', + + 'vcle.u8','vcleal.u8', + 'vcle.u16','vcleal.u16', + 'vcle.u32','vcleal.u32', + + 'vcgt.u8','vcgtal.u8', + 'vcgt.u16','vcgtal.u16', + 'vcgt.u32','vcgtal.u32', + + 'vclt.u8','vcltal.u8', + 'vclt.u16','vcltal.u16', + 'vclt.u32','vcltal.u32', + + 'vmax.u8','vmaxal.u8', + 'vmax.u16','vmaxal.u16', + 'vmax.u32','vmaxal.u32', + + 'vmin.u8','vminal.u8', + 'vmin.u16','vminal.u16', + 'vmin.u32','vminal.u32', + + 'vmlal.u8','vmlalal.u8', + 'vmlal.u16','vmlalal.u16', + 'vmlal.u32','vmlalal.u32', + + 'vmlsl.u8','vmlslal.u8', + 'vmlsl.u16','vmlslal.u16', + 'vmlsl.u32','vmlslal.u32', + + 'vmull.u8','vmullal.u8', + 'vmull.u16','vmullal.u16', + 'vmull.u32','vmullal.u32', + + 'vmovl.u8','vmovlal.u8', + 'vmovl.u16','vmovlal.u16', + 'vmovl.u32','vmovlal.u32', + + 'vshl.u8','vshlal.u8', + 'vshl.u16','vshlal.u16', + 'vshl.u32','vshlal.u32', + 'vshl.u64','vshlal.u64', + + 'vshll.u8','vshllal.u8', + 'vshll.u16','vshllal.u16', + 'vshll.u32','vshllal.u32', + + 'vshr.u8','vshral.u8', + 'vshr.u16','vshral.u16', + 'vshr.u32','vshral.u32', + 'vshr.u64','vshral.u64', + + 'vsra.u8','vsraal.u8', + 'vsra.u16','vsraal.u16', + 'vsra.u32','vsraal.u32', + 'vsra.u64','vsraal.u64', + + 'vpmax.u8','vpmaxal.u8', + 'vpmax.u16','vpmaxal.u16', + 'vpmax.u32','vpmaxal.u32', + + 'vpmin.u8','vpminal.u8', + 'vpmin.u16','vpminal.u16', + 'vpmin.u32','vpminal.u32', + + 'vqadd.u8','vqaddal.u8', + 'vqadd.u16','vqaddal.u16', + 'vqadd.u32','vqaddal.u32', + 'vqadd.u64','vqaddal.u64', + + 'vqsub.u8','vqsubal.u8', + 'vqsub.u16','vqsubal.u16', + 'vqsub.u32','vqsubal.u32', + 'vqsub.u64','vqsubal.u64', + + 'vqmovn.u16','vqmovnal.u16', + 'vqmovn.u32','vqmovnal.u32', + 'vqmovn.u64','vqmovnal.u64', + + 'vqshl.u8','vqshlal.u8', + 'vqshl.u16','vqshlal.u16', + 'vqshl.u32','vqshlal.u32', + 'vqshl.u64','vqshlal.u64', + + 'vqshrn.u16','vqshrnal.u16', + 'vqshrn.u32','vqshrnal.u32', + 'vqshrn.u64','vqshrnal.u64', + + 'vqrshl.u8','vqrshlal.u8', + 'vqrshl.u16','vqrshlal.u16', + 'vqrshl.u32','vqrshlal.u32', + 'vqrshl.u64','vqrshlal.u64', + + 'vqrshrn.u16','vqrshrnal.u16', + 'vqrshrn.u32','vqrshrnal.u32', + 'vqrshrn.u64','vqrshrnal.u64', + + 'vrhadd.u8','vrhaddal.u8', + 'vrhadd.u16','vrhaddal.u16', + 'vrhadd.u32','vrhaddal.u32', + + 'vrshl.u8','vrshlal.u8', + 'vrshl.u16','vrshlal.u16', + 'vrshl.u32','vrshlal.u32', + 'vrshl.u64','vrshlal.u64', + + 'vrshr.u8','vrshral.u8', + 'vrshr.u16','vrshral.u16', + 'vrshr.u32','vrshral.u32', + 'vrshr.u64','vrshral.u64', + + 'vrsra.u8','vrsraal.u8', + 'vrsra.u16','vrsraal.u16', + 'vrsra.u32','vrsraal.u32', + 'vrsra.u64','vrsraal.u64' + ), + /* Unconditional VFPv3 & NEON SIMD Floating-Point Instructions */ + 26 => array( + 'vabd.f32','vabdal.f32', + + 'vabs.f32','vabsal.f32', + 'vabs.f64','vabsal.f64', + + 'vacge.f32','vacgeal.f32', + 'vacgt.f32','vacgtal.f32', + 'vacle.f32','vacleal.f32', + 'vaclt.f32','vacltal.f32', + + 'vadd.f32','vaddal.f32', + 'vadd.f64','vaddal.f64', + + 'vceq.f32','vceqal.f32', + 'vcge.f32','vcgeal.f32', + 'vcle.f32','vcleal.f32', + 'vcgt.f32','vcgtal.f32', + 'vclt.f32','vcltal.f32', + + 'vcmp.f32','vcmpal.f32', + 'vcmp.f64','vcmpal.f64', + + 'vcmpe.f32','vcmpeal.f32', + 'vcmpe.f64','vcmpeal.f64', + + 'vcvt.s16.f32','vcvtal.s16.f32', + 'vcvt.s16.f64','vcvtal.s16.f64', + 'vcvt.s32.f32','vcvtal.s32.f32', + 'vcvt.s32.f64','vcvtal.s32.f64', + 'vcvt.u16.f32','vcvtal.u16.f32', + 'vcvt.u16.f64','vcvtal.u16.f64', + 'vcvt.u32.f32','vcvtal.u32.f32', + 'vcvt.u32.f64','vcvtal.u32.f64', + 'vcvt.f16.f32','vcvtal.f16.f32', + 'vcvt.f32.s32','vcvtal.f32.s32', + 'vcvt.f32.u32','vcvtal.f32.u32', + 'vcvt.f32.f16','vcvtal.f32.f16', + 'vcvt.f32.f64','vcvtal.f32.f64', + 'vcvt.f64.s32','vcvtal.f64.s32', + 'vcvt.f64.u32','vcvtal.f64.u32', + 'vcvt.f64.f32','vcvtal.f64.f32', + + 'vcvtr.s32.f32','vcvtral.s32.f32', + 'vcvtr.s32.f64','vcvtral.s32.f64', + 'vcvtr.u32.f32','vcvtral.u32.f32', + 'vcvtr.u32.f64','vcvtral.u32.f64', + + 'vcvtb.f16.f32','vcvtbal.f16.f32', + 'vcvtb.f32.f16','vcvtbal.f32.f16', + + 'vcvtt.f16.f32','vcvttal.f16.f32', + 'vcvtt.f32.f16','vcvttal.f32.f16', + + 'vdiv.f32','vdival.f32', + 'vdiv.f64','vdival.f64', + + 'vmax.f32','vmaxal.f32', + 'vmin.f32','vminal.f32', + + 'vmla.f32','vmlaal.f32', + 'vmla.f64','vmlaal.f64', + + 'vmls.f32','vmlsal.f32', + 'vmls.f64','vmlsal.f64', + + 'vmul.f32','vmulal.f32', + 'vmul.f64','vmulal.f64', + + 'vneg.f32','vnegal.f32', + 'vneg.f64','vnegal.f64', + + 'vnmla.f32','vnmlaal.f32', + 'vnmla.f64','vnmlaal.f64', + + 'vnmls.f32','vnmlsal.f32', + 'vnmls.f64','vnmlsal.f64', + + 'vnmul.f64','vnmulal.f64', + 'vnmul.f32','vnmulal.f32', + + 'vpadd.f32','vpaddal.f32', + + 'vpmax.f32','vpmaxal.f32', + 'vpmin.f32','vpminal.f32', + + 'vrecpe.u32','vrecpeal.u32', + 'vrecpe.f32','vrecpeal.f32', + 'vrecps.f32','vrecpsal.f32', + + 'vrsqrte.u32','vrsqrteal.u32', + 'vrsqrte.f32','vrsqrteal.f32', + 'vrsqrts.f32','vrsqrtsal.f32', + + 'vsqrt.f32','vsqrtal.f32', + 'vsqrt.f64','vsqrtal.f64', + + 'vsub.f32','vsubal.f32', + 'vsub.f64','vsubal.f64' + ), + /* Conditional VFPv3 & NEON SIMD Memory Access Instructions */ + 27 => array( + /* Conditional VFPv3 & NEON SIMD Memory Access: Loads */ + 'vldeq.8','vldne.8','vldcs.8','vldhs.8','vldcc.8','vldlo.8','vldmi.8','vldpl.8','vldvs.8','vldvc.8','vldhi.8','vldls.8','vldge.8','vldlt.8','vldgt.8','vldle.8', + 'vldeq.16','vldne.16','vldcs.16','vldhs.16','vldcc.16','vldlo.16','vldmi.16','vldpl.16','vldvs.16','vldvc.16','vldhi.16','vldls.16','vldge.16','vldlt.16','vldgt.16','vldle.16', + 'vldeq.32','vldne.32','vldcs.32','vldhs.32','vldcc.32','vldlo.32','vldmi.32','vldpl.32','vldvs.32','vldvc.32','vldhi.32','vldls.32','vldge.32','vldlt.32','vldgt.32','vldle.32', + 'vldeq.64','vldne.64','vldcs.64','vldhs.64','vldcc.64','vldlo.64','vldmi.64','vldpl.64','vldvs.64','vldvc.64','vldhi.64','vldls.64','vldge.64','vldlt.64','vldgt.64','vldle.64', + + 'vld1eq.8','vld1ne.8','vld1cs.8','vld1hs.8','vld1cc.8','vld1lo.8','vld1mi.8','vld1pl.8','vld1vs.8','vld1vc.8','vld1hi.8','vld1ls.8','vld1ge.8','vld1lt.8','vld1gt.8','vld1le.8', + 'vld1eq.16','vld1ne.16','vld1cs.16','vld1hs.16','vld1cc.16','vld1lo.16','vld1mi.16','vld1pl.16','vld1vs.16','vld1vc.16','vld1hi.16','vld1ls.16','vld1ge.16','vld1lt.16','vld1gt.16','vld1le.16', + 'vld1eq.32','vld1ne.32','vld1cs.32','vld1hs.32','vld1cc.32','vld1lo.32','vld1mi.32','vld1pl.32','vld1vs.32','vld1vc.32','vld1hi.32','vld1ls.32','vld1ge.32','vld1lt.32','vld1gt.32','vld1le.32', + + 'vld2eq.8','vld2ne.8','vld2cs.8','vld2hs.8','vld2cc.8','vld2lo.8','vld2mi.8','vld2pl.8','vld2vs.8','vld2vc.8','vld2hi.8','vld2ls.8','vld2ge.8','vld2lt.8','vld2gt.8','vld2le.8', + 'vld2eq.16','vld2ne.16','vld2cs.16','vld2hs.16','vld2cc.16','vld2lo.16','vld2mi.16','vld2pl.16','vld2vs.16','vld2vc.16','vld2hi.16','vld2ls.16','vld2ge.16','vld2lt.16','vld2gt.16','vld2le.16', + 'vld2eq.32','vld2ne.32','vld2cs.32','vld2hs.32','vld2cc.32','vld2lo.32','vld2mi.32','vld2pl.32','vld2vs.32','vld2vc.32','vld2hi.32','vld2ls.32','vld2ge.32','vld2lt.32','vld2gt.32','vld2le.32', + + 'vld3eq.8','vld3ne.8','vld3cs.8','vld3hs.8','vld3cc.8','vld3lo.8','vld3mi.8','vld3pl.8','vld3vs.8','vld3vc.8','vld3hi.8','vld3ls.8','vld3ge.8','vld3lt.8','vld3gt.8','vld3le.8', + 'vld3eq.16','vld3ne.16','vld3cs.16','vld3hs.16','vld3cc.16','vld3lo.16','vld3mi.16','vld3pl.16','vld3vs.16','vld3vc.16','vld3hi.16','vld3ls.16','vld3ge.16','vld3lt.16','vld3gt.16','vld3le.16', + 'vld3eq.32','vld3ne.32','vld3cs.32','vld3hs.32','vld3cc.32','vld3lo.32','vld3mi.32','vld3pl.32','vld3vs.32','vld3vc.32','vld3hi.32','vld3ls.32','vld3ge.32','vld3lt.32','vld3gt.32','vld3le.32', + + 'vld4eq.8','vld4ne.8','vld4cs.8','vld4hs.8','vld4cc.8','vld4lo.8','vld4mi.8','vld4pl.8','vld4vs.8','vld4vc.8','vld4hi.8','vld4ls.8','vld4ge.8','vld4lt.8','vld4gt.8','vld4le.8', + 'vld4eq.16','vld4ne.16','vld4cs.16','vld4hs.16','vld4cc.16','vld4lo.16','vld4mi.16','vld4pl.16','vld4vs.16','vld4vc.16','vld4hi.16','vld4ls.16','vld4ge.16','vld4lt.16','vld4gt.16','vld4le.16', + 'vld4eq.32','vld4ne.32','vld4cs.32','vld4hs.32','vld4cc.32','vld4lo.32','vld4mi.32','vld4pl.32','vld4vs.32','vld4vc.32','vld4hi.32','vld4ls.32','vld4ge.32','vld4lt.32','vld4gt.32','vld4le.32', + + 'vldmeq','vldmne','vldmcs','vldmhs','vldmcc','vldmlo','vldmmi','vldmpl','vldmvs','vldmvc','vldmhi','vldmls','vldmge','vldmlt','vldmgt','vldmle', + 'vldmeq.32','vldmne.32','vldmcs.32','vldmhs.32','vldmcc.32','vldmlo.32','vldmmi.32','vldmpl.32','vldmvs.32','vldmvc.32','vldmhi.32','vldmls.32','vldmge.32','vldmlt.32','vldmgt.32','vldmle.32', + 'vldmeq.64','vldmne.64','vldmcs.64','vldmhs.64','vldmcc.64','vldmlo.64','vldmmi.64','vldmpl.64','vldmvs.64','vldmvc.64','vldmhi.64','vldmls.64','vldmge.64','vldmlt.64','vldmgt.64','vldmle.64', + + 'vldmiaeq','vldmiane','vldmiacs','vldmiahs','vldmiacc','vldmialo','vldmiami','vldmiapl','vldmiavs','vldmiavc','vldmiahi','vldmials','vldmiage','vldmialt','vldmiagt','vldmiale', + 'vldmiaeq.32','vldmiane.32','vldmiacs.32','vldmiahs.32','vldmiacc.32','vldmialo.32','vldmiami.32','vldmiapl.32','vldmiavs.32','vldmiavc.32','vldmiahi.32','vldmials.32','vldmiage.32','vldmialt.32','vldmiagt.32','vldmiale.32', + 'vldmiaeq.64','vldmiane.64','vldmiacs.64','vldmiahs.64','vldmiacc.64','vldmialo.64','vldmiami.64','vldmiapl.64','vldmiavs.64','vldmiavc.64','vldmiahi.64','vldmials.64','vldmiage.64','vldmialt.64','vldmiagt.64','vldmiale.64', + + 'vldmdbeq','vldmdbne','vldmdbcs','vldmdbhs','vldmdbcc','vldmdblo','vldmdbmi','vldmdbpl','vldmdbvs','vldmdbvc','vldmdbhi','vldmdbls','vldmdbge','vldmdblt','vldmdbgt','vldmdble', + 'vldmdbeq.32','vldmdbne.32','vldmdbcs.32','vldmdbhs.32','vldmdbcc.32','vldmdblo.32','vldmdbmi.32','vldmdbpl.32','vldmdbvs.32','vldmdbvc.32','vldmdbhi.32','vldmdbls.32','vldmdbge.32','vldmdblt.32','vldmdbgt.32','vldmdble.32', + 'vldmdbeq.64','vldmdbne.64','vldmdbcs.64','vldmdbhs.64','vldmdbcc.64','vldmdblo.64','vldmdbmi.64','vldmdbpl.64','vldmdbvs.64','vldmdbvc.64','vldmdbhi.64','vldmdbls.64','vldmdbge.64','vldmdblt.64','vldmdbgt.64','vldmdble.64', + + 'vldreq','vldrne','vldrcs','vldrhs','vldrcc','vldrlo','vldrmi','vldrpl','vldrvs','vldrvc','vldrhi','vldrls','vldrge','vldrlt','vldrgt','vldrle', + 'vldreq.32','vldrne.32','vldrcs.32','vldrhs.32','vldrcc.32','vldrlo.32','vldrmi.32','vldrpl.32','vldrvs.32','vldrvc.32','vldrhi.32','vldrls.32','vldrge.32','vldrlt.32','vldrgt.32','vldrle.32', + 'vldreq.64','vldrne.64','vldrcs.64','vldrhs.64','vldrcc.64','vldrlo.64','vldrmi.64','vldrpl.64','vldrvs.64','vldrvc.64','vldrhi.64','vldrls.64','vldrge.64','vldrlt.64','vldrgt.64','vldrle.64', + + 'vpopeq','vpopne','vpopcs','vpophs','vpopcc','vpoplo','vpopmi','vpoppl','vpopvs','vpopvc','vpophi','vpopls','vpopge','vpoplt','vpopgt','vpople', + 'vpopeq.32','vpopne.32','vpopcs.32','vpophs.32','vpopcc.32','vpoplo.32','vpopmi.32','vpoppl.32','vpopvs.32','vpopvc.32','vpophi.32','vpopls.32','vpopge.32','vpoplt.32','vpopgt.32','vpople.32', + 'vpopeq.64','vpopne.64','vpopcs.64','vpophs.64','vpopcc.64','vpoplo.64','vpopmi.64','vpoppl.64','vpopvs.64','vpopvc.64','vpophi.64','vpopls.64','vpopge.64','vpoplt.64','vpopgt.64','vpople.64', + + /* Conditional VFPv3 & NEON SIMD Memory Access: Stores */ + 'vst1eq.8','vst1ne.8','vst1cs.8','vst1hs.8','vst1cc.8','vst1lo.8','vst1mi.8','vst1pl.8','vst1vs.8','vst1vc.8','vst1hi.8','vst1ls.8','vst1ge.8','vst1lt.8','vst1gt.8','vst1le.8', + 'vst1eq.16','vst1ne.16','vst1cs.16','vst1hs.16','vst1cc.16','vst1lo.16','vst1mi.16','vst1pl.16','vst1vs.16','vst1vc.16','vst1hi.16','vst1ls.16','vst1ge.16','vst1lt.16','vst1gt.16','vst1le.16', + 'vst1eq.32','vst1ne.32','vst1cs.32','vst1hs.32','vst1cc.32','vst1lo.32','vst1mi.32','vst1pl.32','vst1vs.32','vst1vc.32','vst1hi.32','vst1ls.32','vst1ge.32','vst1lt.32','vst1gt.32','vst1le.32', + 'vst1eq.64','vst1ne.64','vst1cs.64','vst1hs.64','vst1cc.64','vst1lo.64','vst1mi.64','vst1pl.64','vst1vs.64','vst1vc.64','vst1hi.64','vst1ls.64','vst1ge.64','vst1lt.64','vst1gt.64','vst1le.64', + + 'vst2eq.8','vst2ne.8','vst2cs.8','vst2hs.8','vst2cc.8','vst2lo.8','vst2mi.8','vst2pl.8','vst2vs.8','vst2vc.8','vst2hi.8','vst2ls.8','vst2ge.8','vst2lt.8','vst2gt.8','vst2le.8', + 'vst2eq.16','vst2ne.16','vst2cs.16','vst2hs.16','vst2cc.16','vst2lo.16','vst2mi.16','vst2pl.16','vst2vs.16','vst2vc.16','vst2hi.16','vst2ls.16','vst2ge.16','vst2lt.16','vst2gt.16','vst2le.16', + 'vst2eq.32','vst2ne.32','vst2cs.32','vst2hs.32','vst2cc.32','vst2lo.32','vst2mi.32','vst2pl.32','vst2vs.32','vst2vc.32','vst2hi.32','vst2ls.32','vst2ge.32','vst2lt.32','vst2gt.32','vst2le.32', + + 'vst3eq.8','vst3ne.8','vst3cs.8','vst3hs.8','vst3cc.8','vst3lo.8','vst3mi.8','vst3pl.8','vst3vs.8','vst3vc.8','vst3hi.8','vst3ls.8','vst3ge.8','vst3lt.8','vst3gt.8','vst3le.8', + 'vst3eq.16','vst3ne.16','vst3cs.16','vst3hs.16','vst3cc.16','vst3lo.16','vst3mi.16','vst3pl.16','vst3vs.16','vst3vc.16','vst3hi.16','vst3ls.16','vst3ge.16','vst3lt.16','vst3gt.16','vst3le.16', + 'vst3eq.32','vst3ne.32','vst3cs.32','vst3hs.32','vst3cc.32','vst3lo.32','vst3mi.32','vst3pl.32','vst3vs.32','vst3vc.32','vst3hi.32','vst3ls.32','vst3ge.32','vst3lt.32','vst3gt.32','vst3le.32', + + 'vst4eq.8','vst4ne.8','vst4cs.8','vst4hs.8','vst4cc.8','vst4lo.8','vst4mi.8','vst4pl.8','vst4vs.8','vst4vc.8','vst4hi.8','vst4ls.8','vst4ge.8','vst4lt.8','vst4gt.8','vst4le.8', + 'vst4eq.16','vst4ne.16','vst4cs.16','vst4hs.16','vst4cc.16','vst4lo.16','vst4mi.16','vst4pl.16','vst4vs.16','vst4vc.16','vst4hi.16','vst4ls.16','vst4ge.16','vst4lt.16','vst4gt.16','vst4le.16', + 'vst4eq.32','vst4ne.32','vst4cs.32','vst4hs.32','vst4cc.32','vst4lo.32','vst4mi.32','vst4pl.32','vst4vs.32','vst4vc.32','vst4hi.32','vst4ls.32','vst4ge.32','vst4lt.32','vst4gt.32','vst4le.32', + + 'vstmeq','vstmne','vstmcs','vstmhs','vstmcc','vstmlo','vstmmi','vstmpl','vstmvs','vstmvc','vstmhi','vstmls','vstmge','vstmlt','vstmgt','vstmle', + 'vstmeq.32','vstmne.32','vstmcs.32','vstmhs.32','vstmcc.32','vstmlo.32','vstmmi.32','vstmpl.32','vstmvs.32','vstmvc.32','vstmhi.32','vstmls.32','vstmge.32','vstmlt.32','vstmgt.32','vstmle.32', + 'vstmeq.64','vstmne.64','vstmcs.64','vstmhs.64','vstmcc.64','vstmlo.64','vstmmi.64','vstmpl.64','vstmvs.64','vstmvc.64','vstmhi.64','vstmls.64','vstmge.64','vstmlt.64','vstmgt.64','vstmle.64', + + 'vstmiaeq','vstmiane','vstmiacs','vstmiahs','vstmiacc','vstmialo','vstmiami','vstmiapl','vstmiavs','vstmiavc','vstmiahi','vstmials','vstmiage','vstmialt','vstmiagt','vstmiale', + 'vstmiaeq.32','vstmiane.32','vstmiacs.32','vstmiahs.32','vstmiacc.32','vstmialo.32','vstmiami.32','vstmiapl.32','vstmiavs.32','vstmiavc.32','vstmiahi.32','vstmials.32','vstmiage.32','vstmialt.32','vstmiagt.32','vstmiale.32', + 'vstmiaeq.64','vstmiane.64','vstmiacs.64','vstmiahs.64','vstmiacc.64','vstmialo.64','vstmiami.64','vstmiapl.64','vstmiavs.64','vstmiavc.64','vstmiahi.64','vstmials.64','vstmiage.64','vstmialt.64','vstmiagt.64','vstmiale.64', + + 'vstmdbeq','vstmdbne','vstmdbcs','vstmdbhs','vstmdbcc','vstmdblo','vstmdbmi','vstmdbpl','vstmdbvs','vstmdbvc','vstmdbhi','vstmdbls','vstmdbge','vstmdblt','vstmdbgt','vstmdble', + 'vstmdbeq.32','vstmdbne.32','vstmdbcs.32','vstmdbhs.32','vstmdbcc.32','vstmdblo.32','vstmdbmi.32','vstmdbpl.32','vstmdbvs.32','vstmdbvc.32','vstmdbhi.32','vstmdbls.32','vstmdbge.32','vstmdblt.32','vstmdbgt.32','vstmdble.32', + 'vstmdbeq.64','vstmdbne.64','vstmdbcs.64','vstmdbhs.64','vstmdbcc.64','vstmdblo.64','vstmdbmi.64','vstmdbpl.64','vstmdbvs.64','vstmdbvc.64','vstmdbhi.64','vstmdbls.64','vstmdbge.64','vstmdblt.64','vstmdbgt.64','vstmdble.64', + + 'vstreq','vstrne','vstrcs','vstrhs','vstrcc','vstrlo','vstrmi','vstrpl','vstrvs','vstrvc','vstrhi','vstrls','vstrge','vstrlt','vstrgt','vstrle', + 'vstreq.32','vstrne.32','vstrcs.32','vstrhs.32','vstrcc.32','vstrlo.32','vstrmi.32','vstrpl.32','vstrvs.32','vstrvc.32','vstrhi.32','vstrls.32','vstrge.32','vstrlt.32','vstrgt.32','vstrle.32', + 'vstreq.64','vstrne.64','vstrcs.64','vstrhs.64','vstrcc.64','vstrlo.64','vstrmi.64','vstrpl.64','vstrvs.64','vstrvc.64','vstrhi.64','vstrls.64','vstrge.64','vstrlt.64','vstrgt.64','vstrle.64', + + 'vpusheq','vpushne','vpushcs','vpushhs','vpushcc','vpushlo','vpushmi','vpushpl','vpushvs','vpushvc','vpushhi','vpushls','vpushge','vpushlt','vpushgt','vpushle', + 'vpusheq.32','vpushne.32','vpushcs.32','vpushhs.32','vpushcc.32','vpushlo.32','vpushmi.32','vpushpl.32','vpushvs.32','vpushvc.32','vpushhi.32','vpushls.32','vpushge.32','vpushlt.32','vpushgt.32','vpushle.32', + 'vpusheq.64','vpushne.64','vpushcs.64','vpushhs.64','vpushcc.64','vpushlo.64','vpushmi.64','vpushpl.64','vpushvs.64','vpushvc.64','vpushhi.64','vpushls.64','vpushge.64','vpushlt.64','vpushgt.64','vpushle.64' + ), + /* Conditional NEON SIMD Logical Instructions */ + 28 => array( + 'vandeq','vandne','vandcs','vandhs','vandcc','vandlo','vandmi','vandpl','vandvs','vandvc','vandhi','vandls','vandge','vandlt','vandgt','vandle', + 'vandeq.i8','vandne.i8','vandcs.i8','vandhs.i8','vandcc.i8','vandlo.i8','vandmi.i8','vandpl.i8','vandvs.i8','vandvc.i8','vandhi.i8','vandls.i8','vandge.i8','vandlt.i8','vandgt.i8','vandle.i8', + 'vandeq.i16','vandne.i16','vandcs.i16','vandhs.i16','vandcc.i16','vandlo.i16','vandmi.i16','vandpl.i16','vandvs.i16','vandvc.i16','vandhi.i16','vandls.i16','vandge.i16','vandlt.i16','vandgt.i16','vandle.i16', + 'vandeq.i32','vandne.i32','vandcs.i32','vandhs.i32','vandcc.i32','vandlo.i32','vandmi.i32','vandpl.i32','vandvs.i32','vandvc.i32','vandhi.i32','vandls.i32','vandge.i32','vandlt.i32','vandgt.i32','vandle.i32', + 'vandeq.i64','vandne.i64','vandcs.i64','vandhs.i64','vandcc.i64','vandlo.i64','vandmi.i64','vandpl.i64','vandvs.i64','vandvc.i64','vandhi.i64','vandls.i64','vandge.i64','vandlt.i64','vandgt.i64','vandle.i64', + 'vandeq.s8','vandne.s8','vandcs.s8','vandhs.s8','vandcc.s8','vandlo.s8','vandmi.s8','vandpl.s8','vandvs.s8','vandvc.s8','vandhi.s8','vandls.s8','vandge.s8','vandlt.s8','vandgt.s8','vandle.s8', + 'vandeq.s16','vandne.s16','vandcs.s16','vandhs.s16','vandcc.s16','vandlo.s16','vandmi.s16','vandpl.s16','vandvs.s16','vandvc.s16','vandhi.s16','vandls.s16','vandge.s16','vandlt.s16','vandgt.s16','vandle.s16', + 'vandeq.s32','vandne.s32','vandcs.s32','vandhs.s32','vandcc.s32','vandlo.s32','vandmi.s32','vandpl.s32','vandvs.s32','vandvc.s32','vandhi.s32','vandls.s32','vandge.s32','vandlt.s32','vandgt.s32','vandle.s32', + 'vandeq.s64','vandne.s64','vandcs.s64','vandhs.s64','vandcc.s64','vandlo.s64','vandmi.s64','vandpl.s64','vandvs.s64','vandvc.s64','vandhi.s64','vandls.s64','vandge.s64','vandlt.s64','vandgt.s64','vandle.s64', + 'vandeq.u8','vandne.u8','vandcs.u8','vandhs.u8','vandcc.u8','vandlo.u8','vandmi.u8','vandpl.u8','vandvs.u8','vandvc.u8','vandhi.u8','vandls.u8','vandge.u8','vandlt.u8','vandgt.u8','vandle.u8', + 'vandeq.u16','vandne.u16','vandcs.u16','vandhs.u16','vandcc.u16','vandlo.u16','vandmi.u16','vandpl.u16','vandvs.u16','vandvc.u16','vandhi.u16','vandls.u16','vandge.u16','vandlt.u16','vandgt.u16','vandle.u16', + 'vandeq.u32','vandne.u32','vandcs.u32','vandhs.u32','vandcc.u32','vandlo.u32','vandmi.u32','vandpl.u32','vandvs.u32','vandvc.u32','vandhi.u32','vandls.u32','vandge.u32','vandlt.u32','vandgt.u32','vandle.u32', + 'vandeq.u64','vandne.u64','vandcs.u64','vandhs.u64','vandcc.u64','vandlo.u64','vandmi.u64','vandpl.u64','vandvs.u64','vandvc.u64','vandhi.u64','vandls.u64','vandge.u64','vandlt.u64','vandgt.u64','vandle.u64', + 'vandeq.f32','vandne.f32','vandcs.f32','vandhs.f32','vandcc.f32','vandlo.f32','vandmi.f32','vandpl.f32','vandvs.f32','vandvc.f32','vandhi.f32','vandls.f32','vandge.f32','vandlt.f32','vandgt.f32','vandle.f32', + 'vandeq.f64','vandne.f64','vandcs.f64','vandhs.f64','vandcc.f64','vandlo.f64','vandmi.f64','vandpl.f64','vandvs.f64','vandvc.f64','vandhi.f64','vandls.f64','vandge.f64','vandlt.f64','vandgt.f64','vandle.f64', + + 'vbiceq','vbicne','vbiccs','vbichs','vbiccc','vbiclo','vbicmi','vbicpl','vbicvs','vbicvc','vbichi','vbicls','vbicge','vbiclt','vbicgt','vbicle', + 'vbiceq.i8','vbicne.i8','vbiccs.i8','vbichs.i8','vbiccc.i8','vbiclo.i8','vbicmi.i8','vbicpl.i8','vbicvs.i8','vbicvc.i8','vbichi.i8','vbicls.i8','vbicge.i8','vbiclt.i8','vbicgt.i8','vbicle.i8', + 'vbiceq.i16','vbicne.i16','vbiccs.i16','vbichs.i16','vbiccc.i16','vbiclo.i16','vbicmi.i16','vbicpl.i16','vbicvs.i16','vbicvc.i16','vbichi.i16','vbicls.i16','vbicge.i16','vbiclt.i16','vbicgt.i16','vbicle.i16', + 'vbiceq.i32','vbicne.i32','vbiccs.i32','vbichs.i32','vbiccc.i32','vbiclo.i32','vbicmi.i32','vbicpl.i32','vbicvs.i32','vbicvc.i32','vbichi.i32','vbicls.i32','vbicge.i32','vbiclt.i32','vbicgt.i32','vbicle.i32', + 'vbiceq.i64','vbicne.i64','vbiccs.i64','vbichs.i64','vbiccc.i64','vbiclo.i64','vbicmi.i64','vbicpl.i64','vbicvs.i64','vbicvc.i64','vbichi.i64','vbicls.i64','vbicge.i64','vbiclt.i64','vbicgt.i64','vbicle.i64', + 'vbiceq.s8','vbicne.s8','vbiccs.s8','vbichs.s8','vbiccc.s8','vbiclo.s8','vbicmi.s8','vbicpl.s8','vbicvs.s8','vbicvc.s8','vbichi.s8','vbicls.s8','vbicge.s8','vbiclt.s8','vbicgt.s8','vbicle.s8', + 'vbiceq.s16','vbicne.s16','vbiccs.s16','vbichs.s16','vbiccc.s16','vbiclo.s16','vbicmi.s16','vbicpl.s16','vbicvs.s16','vbicvc.s16','vbichi.s16','vbicls.s16','vbicge.s16','vbiclt.s16','vbicgt.s16','vbicle.s16', + 'vbiceq.s32','vbicne.s32','vbiccs.s32','vbichs.s32','vbiccc.s32','vbiclo.s32','vbicmi.s32','vbicpl.s32','vbicvs.s32','vbicvc.s32','vbichi.s32','vbicls.s32','vbicge.s32','vbiclt.s32','vbicgt.s32','vbicle.s32', + 'vbiceq.s64','vbicne.s64','vbiccs.s64','vbichs.s64','vbiccc.s64','vbiclo.s64','vbicmi.s64','vbicpl.s64','vbicvs.s64','vbicvc.s64','vbichi.s64','vbicls.s64','vbicge.s64','vbiclt.s64','vbicgt.s64','vbicle.s64', + 'vbiceq.u8','vbicne.u8','vbiccs.u8','vbichs.u8','vbiccc.u8','vbiclo.u8','vbicmi.u8','vbicpl.u8','vbicvs.u8','vbicvc.u8','vbichi.u8','vbicls.u8','vbicge.u8','vbiclt.u8','vbicgt.u8','vbicle.u8', + 'vbiceq.u16','vbicne.u16','vbiccs.u16','vbichs.u16','vbiccc.u16','vbiclo.u16','vbicmi.u16','vbicpl.u16','vbicvs.u16','vbicvc.u16','vbichi.u16','vbicls.u16','vbicge.u16','vbiclt.u16','vbicgt.u16','vbicle.u16', + 'vbiceq.u32','vbicne.u32','vbiccs.u32','vbichs.u32','vbiccc.u32','vbiclo.u32','vbicmi.u32','vbicpl.u32','vbicvs.u32','vbicvc.u32','vbichi.u32','vbicls.u32','vbicge.u32','vbiclt.u32','vbicgt.u32','vbicle.u32', + 'vbiceq.u64','vbicne.u64','vbiccs.u64','vbichs.u64','vbiccc.u64','vbiclo.u64','vbicmi.u64','vbicpl.u64','vbicvs.u64','vbicvc.u64','vbichi.u64','vbicls.u64','vbicge.u64','vbiclt.u64','vbicgt.u64','vbicle.u64', + 'vbiceq.f32','vbicne.f32','vbiccs.f32','vbichs.f32','vbiccc.f32','vbiclo.f32','vbicmi.f32','vbicpl.f32','vbicvs.f32','vbicvc.f32','vbichi.f32','vbicls.f32','vbicge.f32','vbiclt.f32','vbicgt.f32','vbicle.f32', + 'vbiceq.f64','vbicne.f64','vbiccs.f64','vbichs.f64','vbiccc.f64','vbiclo.f64','vbicmi.f64','vbicpl.f64','vbicvs.f64','vbicvc.f64','vbichi.f64','vbicls.f64','vbicge.f64','vbiclt.f64','vbicgt.f64','vbicle.f64', + + 'vbifeq','vbifne','vbifcs','vbifhs','vbifcc','vbiflo','vbifmi','vbifpl','vbifvs','vbifvc','vbifhi','vbifls','vbifge','vbiflt','vbifgt','vbifle', + 'vbifeq.i8','vbifne.i8','vbifcs.i8','vbifhs.i8','vbifcc.i8','vbiflo.i8','vbifmi.i8','vbifpl.i8','vbifvs.i8','vbifvc.i8','vbifhi.i8','vbifls.i8','vbifge.i8','vbiflt.i8','vbifgt.i8','vbifle.i8', + 'vbifeq.i16','vbifne.i16','vbifcs.i16','vbifhs.i16','vbifcc.i16','vbiflo.i16','vbifmi.i16','vbifpl.i16','vbifvs.i16','vbifvc.i16','vbifhi.i16','vbifls.i16','vbifge.i16','vbiflt.i16','vbifgt.i16','vbifle.i16', + 'vbifeq.i32','vbifne.i32','vbifcs.i32','vbifhs.i32','vbifcc.i32','vbiflo.i32','vbifmi.i32','vbifpl.i32','vbifvs.i32','vbifvc.i32','vbifhi.i32','vbifls.i32','vbifge.i32','vbiflt.i32','vbifgt.i32','vbifle.i32', + 'vbifeq.i64','vbifne.i64','vbifcs.i64','vbifhs.i64','vbifcc.i64','vbiflo.i64','vbifmi.i64','vbifpl.i64','vbifvs.i64','vbifvc.i64','vbifhi.i64','vbifls.i64','vbifge.i64','vbiflt.i64','vbifgt.i64','vbifle.i64', + 'vbifeq.s8','vbifne.s8','vbifcs.s8','vbifhs.s8','vbifcc.s8','vbiflo.s8','vbifmi.s8','vbifpl.s8','vbifvs.s8','vbifvc.s8','vbifhi.s8','vbifls.s8','vbifge.s8','vbiflt.s8','vbifgt.s8','vbifle.s8', + 'vbifeq.s16','vbifne.s16','vbifcs.s16','vbifhs.s16','vbifcc.s16','vbiflo.s16','vbifmi.s16','vbifpl.s16','vbifvs.s16','vbifvc.s16','vbifhi.s16','vbifls.s16','vbifge.s16','vbiflt.s16','vbifgt.s16','vbifle.s16', + 'vbifeq.s32','vbifne.s32','vbifcs.s32','vbifhs.s32','vbifcc.s32','vbiflo.s32','vbifmi.s32','vbifpl.s32','vbifvs.s32','vbifvc.s32','vbifhi.s32','vbifls.s32','vbifge.s32','vbiflt.s32','vbifgt.s32','vbifle.s32', + 'vbifeq.s64','vbifne.s64','vbifcs.s64','vbifhs.s64','vbifcc.s64','vbiflo.s64','vbifmi.s64','vbifpl.s64','vbifvs.s64','vbifvc.s64','vbifhi.s64','vbifls.s64','vbifge.s64','vbiflt.s64','vbifgt.s64','vbifle.s64', + 'vbifeq.u8','vbifne.u8','vbifcs.u8','vbifhs.u8','vbifcc.u8','vbiflo.u8','vbifmi.u8','vbifpl.u8','vbifvs.u8','vbifvc.u8','vbifhi.u8','vbifls.u8','vbifge.u8','vbiflt.u8','vbifgt.u8','vbifle.u8', + 'vbifeq.u16','vbifne.u16','vbifcs.u16','vbifhs.u16','vbifcc.u16','vbiflo.u16','vbifmi.u16','vbifpl.u16','vbifvs.u16','vbifvc.u16','vbifhi.u16','vbifls.u16','vbifge.u16','vbiflt.u16','vbifgt.u16','vbifle.u16', + 'vbifeq.u32','vbifne.u32','vbifcs.u32','vbifhs.u32','vbifcc.u32','vbiflo.u32','vbifmi.u32','vbifpl.u32','vbifvs.u32','vbifvc.u32','vbifhi.u32','vbifls.u32','vbifge.u32','vbiflt.u32','vbifgt.u32','vbifle.u32', + 'vbifeq.u64','vbifne.u64','vbifcs.u64','vbifhs.u64','vbifcc.u64','vbiflo.u64','vbifmi.u64','vbifpl.u64','vbifvs.u64','vbifvc.u64','vbifhi.u64','vbifls.u64','vbifge.u64','vbiflt.u64','vbifgt.u64','vbifle.u64', + 'vbifeq.f32','vbifne.f32','vbifcs.f32','vbifhs.f32','vbifcc.f32','vbiflo.f32','vbifmi.f32','vbifpl.f32','vbifvs.f32','vbifvc.f32','vbifhi.f32','vbifls.f32','vbifge.f32','vbiflt.f32','vbifgt.f32','vbifle.f32', + 'vbifeq.f64','vbifne.f64','vbifcs.f64','vbifhs.f64','vbifcc.f64','vbiflo.f64','vbifmi.f64','vbifpl.f64','vbifvs.f64','vbifvc.f64','vbifhi.f64','vbifls.f64','vbifge.f64','vbiflt.f64','vbifgt.f64','vbifle.f64', + + 'vbiteq','vbitne','vbitcs','vbiths','vbitcc','vbitlo','vbitmi','vbitpl','vbitvs','vbitvc','vbithi','vbitls','vbitge','vbitlt','vbitgt','vbitle', + 'vbiteq.i8','vbitne.i8','vbitcs.i8','vbiths.i8','vbitcc.i8','vbitlo.i8','vbitmi.i8','vbitpl.i8','vbitvs.i8','vbitvc.i8','vbithi.i8','vbitls.i8','vbitge.i8','vbitlt.i8','vbitgt.i8','vbitle.i8', + 'vbiteq.i16','vbitne.i16','vbitcs.i16','vbiths.i16','vbitcc.i16','vbitlo.i16','vbitmi.i16','vbitpl.i16','vbitvs.i16','vbitvc.i16','vbithi.i16','vbitls.i16','vbitge.i16','vbitlt.i16','vbitgt.i16','vbitle.i16', + 'vbiteq.i32','vbitne.i32','vbitcs.i32','vbiths.i32','vbitcc.i32','vbitlo.i32','vbitmi.i32','vbitpl.i32','vbitvs.i32','vbitvc.i32','vbithi.i32','vbitls.i32','vbitge.i32','vbitlt.i32','vbitgt.i32','vbitle.i32', + 'vbiteq.i64','vbitne.i64','vbitcs.i64','vbiths.i64','vbitcc.i64','vbitlo.i64','vbitmi.i64','vbitpl.i64','vbitvs.i64','vbitvc.i64','vbithi.i64','vbitls.i64','vbitge.i64','vbitlt.i64','vbitgt.i64','vbitle.i64', + 'vbiteq.s8','vbitne.s8','vbitcs.s8','vbiths.s8','vbitcc.s8','vbitlo.s8','vbitmi.s8','vbitpl.s8','vbitvs.s8','vbitvc.s8','vbithi.s8','vbitls.s8','vbitge.s8','vbitlt.s8','vbitgt.s8','vbitle.s8', + 'vbiteq.s16','vbitne.s16','vbitcs.s16','vbiths.s16','vbitcc.s16','vbitlo.s16','vbitmi.s16','vbitpl.s16','vbitvs.s16','vbitvc.s16','vbithi.s16','vbitls.s16','vbitge.s16','vbitlt.s16','vbitgt.s16','vbitle.s16', + 'vbiteq.s32','vbitne.s32','vbitcs.s32','vbiths.s32','vbitcc.s32','vbitlo.s32','vbitmi.s32','vbitpl.s32','vbitvs.s32','vbitvc.s32','vbithi.s32','vbitls.s32','vbitge.s32','vbitlt.s32','vbitgt.s32','vbitle.s32', + 'vbiteq.s64','vbitne.s64','vbitcs.s64','vbiths.s64','vbitcc.s64','vbitlo.s64','vbitmi.s64','vbitpl.s64','vbitvs.s64','vbitvc.s64','vbithi.s64','vbitls.s64','vbitge.s64','vbitlt.s64','vbitgt.s64','vbitle.s64', + 'vbiteq.u8','vbitne.u8','vbitcs.u8','vbiths.u8','vbitcc.u8','vbitlo.u8','vbitmi.u8','vbitpl.u8','vbitvs.u8','vbitvc.u8','vbithi.u8','vbitls.u8','vbitge.u8','vbitlt.u8','vbitgt.u8','vbitle.u8', + 'vbiteq.u16','vbitne.u16','vbitcs.u16','vbiths.u16','vbitcc.u16','vbitlo.u16','vbitmi.u16','vbitpl.u16','vbitvs.u16','vbitvc.u16','vbithi.u16','vbitls.u16','vbitge.u16','vbitlt.u16','vbitgt.u16','vbitle.u16', + 'vbiteq.u32','vbitne.u32','vbitcs.u32','vbiths.u32','vbitcc.u32','vbitlo.u32','vbitmi.u32','vbitpl.u32','vbitvs.u32','vbitvc.u32','vbithi.u32','vbitls.u32','vbitge.u32','vbitlt.u32','vbitgt.u32','vbitle.u32', + 'vbiteq.u64','vbitne.u64','vbitcs.u64','vbiths.u64','vbitcc.u64','vbitlo.u64','vbitmi.u64','vbitpl.u64','vbitvs.u64','vbitvc.u64','vbithi.u64','vbitls.u64','vbitge.u64','vbitlt.u64','vbitgt.u64','vbitle.u64', + 'vbiteq.f32','vbitne.f32','vbitcs.f32','vbiths.f32','vbitcc.f32','vbitlo.f32','vbitmi.f32','vbitpl.f32','vbitvs.f32','vbitvc.f32','vbithi.f32','vbitls.f32','vbitge.f32','vbitlt.f32','vbitgt.f32','vbitle.f32', + 'vbiteq.f64','vbitne.f64','vbitcs.f64','vbiths.f64','vbitcc.f64','vbitlo.f64','vbitmi.f64','vbitpl.f64','vbitvs.f64','vbitvc.f64','vbithi.f64','vbitls.f64','vbitge.f64','vbitlt.f64','vbitgt.f64','vbitle.f64', + + 'vbsleq','vbslne','vbslcs','vbslhs','vbslcc','vbsllo','vbslmi','vbslpl','vbslvs','vbslvc','vbslhi','vbslls','vbslge','vbsllt','vbslgt','vbslle', + 'vbsleq.i8','vbslne.i8','vbslcs.i8','vbslhs.i8','vbslcc.i8','vbsllo.i8','vbslmi.i8','vbslpl.i8','vbslvs.i8','vbslvc.i8','vbslhi.i8','vbslls.i8','vbslge.i8','vbsllt.i8','vbslgt.i8','vbslle.i8', + 'vbsleq.i16','vbslne.i16','vbslcs.i16','vbslhs.i16','vbslcc.i16','vbsllo.i16','vbslmi.i16','vbslpl.i16','vbslvs.i16','vbslvc.i16','vbslhi.i16','vbslls.i16','vbslge.i16','vbsllt.i16','vbslgt.i16','vbslle.i16', + 'vbsleq.i32','vbslne.i32','vbslcs.i32','vbslhs.i32','vbslcc.i32','vbsllo.i32','vbslmi.i32','vbslpl.i32','vbslvs.i32','vbslvc.i32','vbslhi.i32','vbslls.i32','vbslge.i32','vbsllt.i32','vbslgt.i32','vbslle.i32', + 'vbsleq.i64','vbslne.i64','vbslcs.i64','vbslhs.i64','vbslcc.i64','vbsllo.i64','vbslmi.i64','vbslpl.i64','vbslvs.i64','vbslvc.i64','vbslhi.i64','vbslls.i64','vbslge.i64','vbsllt.i64','vbslgt.i64','vbslle.i64', + 'vbsleq.s8','vbslne.s8','vbslcs.s8','vbslhs.s8','vbslcc.s8','vbsllo.s8','vbslmi.s8','vbslpl.s8','vbslvs.s8','vbslvc.s8','vbslhi.s8','vbslls.s8','vbslge.s8','vbsllt.s8','vbslgt.s8','vbslle.s8', + 'vbsleq.s16','vbslne.s16','vbslcs.s16','vbslhs.s16','vbslcc.s16','vbsllo.s16','vbslmi.s16','vbslpl.s16','vbslvs.s16','vbslvc.s16','vbslhi.s16','vbslls.s16','vbslge.s16','vbsllt.s16','vbslgt.s16','vbslle.s16', + 'vbsleq.s32','vbslne.s32','vbslcs.s32','vbslhs.s32','vbslcc.s32','vbsllo.s32','vbslmi.s32','vbslpl.s32','vbslvs.s32','vbslvc.s32','vbslhi.s32','vbslls.s32','vbslge.s32','vbsllt.s32','vbslgt.s32','vbslle.s32', + 'vbsleq.s64','vbslne.s64','vbslcs.s64','vbslhs.s64','vbslcc.s64','vbsllo.s64','vbslmi.s64','vbslpl.s64','vbslvs.s64','vbslvc.s64','vbslhi.s64','vbslls.s64','vbslge.s64','vbsllt.s64','vbslgt.s64','vbslle.s64', + 'vbsleq.u8','vbslne.u8','vbslcs.u8','vbslhs.u8','vbslcc.u8','vbsllo.u8','vbslmi.u8','vbslpl.u8','vbslvs.u8','vbslvc.u8','vbslhi.u8','vbslls.u8','vbslge.u8','vbsllt.u8','vbslgt.u8','vbslle.u8', + 'vbsleq.u16','vbslne.u16','vbslcs.u16','vbslhs.u16','vbslcc.u16','vbsllo.u16','vbslmi.u16','vbslpl.u16','vbslvs.u16','vbslvc.u16','vbslhi.u16','vbslls.u16','vbslge.u16','vbsllt.u16','vbslgt.u16','vbslle.u16', + 'vbsleq.u32','vbslne.u32','vbslcs.u32','vbslhs.u32','vbslcc.u32','vbsllo.u32','vbslmi.u32','vbslpl.u32','vbslvs.u32','vbslvc.u32','vbslhi.u32','vbslls.u32','vbslge.u32','vbsllt.u32','vbslgt.u32','vbslle.u32', + 'vbsleq.u64','vbslne.u64','vbslcs.u64','vbslhs.u64','vbslcc.u64','vbsllo.u64','vbslmi.u64','vbslpl.u64','vbslvs.u64','vbslvc.u64','vbslhi.u64','vbslls.u64','vbslge.u64','vbsllt.u64','vbslgt.u64','vbslle.u64', + 'vbsleq.f32','vbslne.f32','vbslcs.f32','vbslhs.f32','vbslcc.f32','vbsllo.f32','vbslmi.f32','vbslpl.f32','vbslvs.f32','vbslvc.f32','vbslhi.f32','vbslls.f32','vbslge.f32','vbsllt.f32','vbslgt.f32','vbslle.f32', + 'vbsleq.f64','vbslne.f64','vbslcs.f64','vbslhs.f64','vbslcc.f64','vbsllo.f64','vbslmi.f64','vbslpl.f64','vbslvs.f64','vbslvc.f64','vbslhi.f64','vbslls.f64','vbslge.f64','vbsllt.f64','vbslgt.f64','vbslle.f64', + + 'veoreq','veorne','veorcs','veorhs','veorcc','veorlo','veormi','veorpl','veorvs','veorvc','veorhi','veorls','veorge','veorlt','veorgt','veorle', + 'veoreq.i8','veorne.i8','veorcs.i8','veorhs.i8','veorcc.i8','veorlo.i8','veormi.i8','veorpl.i8','veorvs.i8','veorvc.i8','veorhi.i8','veorls.i8','veorge.i8','veorlt.i8','veorgt.i8','veorle.i8', + 'veoreq.i16','veorne.i16','veorcs.i16','veorhs.i16','veorcc.i16','veorlo.i16','veormi.i16','veorpl.i16','veorvs.i16','veorvc.i16','veorhi.i16','veorls.i16','veorge.i16','veorlt.i16','veorgt.i16','veorle.i16', + 'veoreq.i32','veorne.i32','veorcs.i32','veorhs.i32','veorcc.i32','veorlo.i32','veormi.i32','veorpl.i32','veorvs.i32','veorvc.i32','veorhi.i32','veorls.i32','veorge.i32','veorlt.i32','veorgt.i32','veorle.i32', + 'veoreq.i64','veorne.i64','veorcs.i64','veorhs.i64','veorcc.i64','veorlo.i64','veormi.i64','veorpl.i64','veorvs.i64','veorvc.i64','veorhi.i64','veorls.i64','veorge.i64','veorlt.i64','veorgt.i64','veorle.i64', + 'veoreq.s8','veorne.s8','veorcs.s8','veorhs.s8','veorcc.s8','veorlo.s8','veormi.s8','veorpl.s8','veorvs.s8','veorvc.s8','veorhi.s8','veorls.s8','veorge.s8','veorlt.s8','veorgt.s8','veorle.s8', + 'veoreq.s16','veorne.s16','veorcs.s16','veorhs.s16','veorcc.s16','veorlo.s16','veormi.s16','veorpl.s16','veorvs.s16','veorvc.s16','veorhi.s16','veorls.s16','veorge.s16','veorlt.s16','veorgt.s16','veorle.s16', + 'veoreq.s32','veorne.s32','veorcs.s32','veorhs.s32','veorcc.s32','veorlo.s32','veormi.s32','veorpl.s32','veorvs.s32','veorvc.s32','veorhi.s32','veorls.s32','veorge.s32','veorlt.s32','veorgt.s32','veorle.s32', + 'veoreq.s64','veorne.s64','veorcs.s64','veorhs.s64','veorcc.s64','veorlo.s64','veormi.s64','veorpl.s64','veorvs.s64','veorvc.s64','veorhi.s64','veorls.s64','veorge.s64','veorlt.s64','veorgt.s64','veorle.s64', + 'veoreq.u8','veorne.u8','veorcs.u8','veorhs.u8','veorcc.u8','veorlo.u8','veormi.u8','veorpl.u8','veorvs.u8','veorvc.u8','veorhi.u8','veorls.u8','veorge.u8','veorlt.u8','veorgt.u8','veorle.u8', + 'veoreq.u16','veorne.u16','veorcs.u16','veorhs.u16','veorcc.u16','veorlo.u16','veormi.u16','veorpl.u16','veorvs.u16','veorvc.u16','veorhi.u16','veorls.u16','veorge.u16','veorlt.u16','veorgt.u16','veorle.u16', + 'veoreq.u32','veorne.u32','veorcs.u32','veorhs.u32','veorcc.u32','veorlo.u32','veormi.u32','veorpl.u32','veorvs.u32','veorvc.u32','veorhi.u32','veorls.u32','veorge.u32','veorlt.u32','veorgt.u32','veorle.u32', + 'veoreq.u64','veorne.u64','veorcs.u64','veorhs.u64','veorcc.u64','veorlo.u64','veormi.u64','veorpl.u64','veorvs.u64','veorvc.u64','veorhi.u64','veorls.u64','veorge.u64','veorlt.u64','veorgt.u64','veorle.u64', + 'veoreq.f32','veorne.f32','veorcs.f32','veorhs.f32','veorcc.f32','veorlo.f32','veormi.f32','veorpl.f32','veorvs.f32','veorvc.f32','veorhi.f32','veorls.f32','veorge.f32','veorlt.f32','veorgt.f32','veorle.f32', + 'veoreq.f64','veorne.f64','veorcs.f64','veorhs.f64','veorcc.f64','veorlo.f64','veormi.f64','veorpl.f64','veorvs.f64','veorvc.f64','veorhi.f64','veorls.f64','veorge.f64','veorlt.f64','veorgt.f64','veorle.f64', + + 'vmoveq','vmovne','vmovcs','vmovhs','vmovcc','vmovlo','vmovmi','vmovpl','vmovvs','vmovvc','vmovhi','vmovls','vmovge','vmovlt','vmovgt','vmovle', + 'vmoveq.8','vmovne.8','vmovcs.8','vmovhs.8','vmovcc.8','vmovlo.8','vmovmi.8','vmovpl.8','vmovvs.8','vmovvc.8','vmovhi.8','vmovls.8','vmovge.8','vmovlt.8','vmovgt.8','vmovle.8', + 'vmoveq.16','vmovne.16','vmovcs.16','vmovhs.16','vmovcc.16','vmovlo.16','vmovmi.16','vmovpl.16','vmovvs.16','vmovvc.16','vmovhi.16','vmovls.16','vmovge.16','vmovlt.16','vmovgt.16','vmovle.16', + 'vmoveq.32','vmovne.32','vmovcs.32','vmovhs.32','vmovcc.32','vmovlo.32','vmovmi.32','vmovpl.32','vmovvs.32','vmovvc.32','vmovhi.32','vmovls.32','vmovge.32','vmovlt.32','vmovgt.32','vmovle.32', + 'vmoveq.i8','vmovne.i8','vmovcs.i8','vmovhs.i8','vmovcc.i8','vmovlo.i8','vmovmi.i8','vmovpl.i8','vmovvs.i8','vmovvc.i8','vmovhi.i8','vmovls.i8','vmovge.i8','vmovlt.i8','vmovgt.i8','vmovle.i8', + 'vmoveq.i16','vmovne.i16','vmovcs.i16','vmovhs.i16','vmovcc.i16','vmovlo.i16','vmovmi.i16','vmovpl.i16','vmovvs.i16','vmovvc.i16','vmovhi.i16','vmovls.i16','vmovge.i16','vmovlt.i16','vmovgt.i16','vmovle.i16', + 'vmoveq.i32','vmovne.i32','vmovcs.i32','vmovhs.i32','vmovcc.i32','vmovlo.i32','vmovmi.i32','vmovpl.i32','vmovvs.i32','vmovvc.i32','vmovhi.i32','vmovls.i32','vmovge.i32','vmovlt.i32','vmovgt.i32','vmovle.i32', + 'vmoveq.i64','vmovne.i64','vmovcs.i64','vmovhs.i64','vmovcc.i64','vmovlo.i64','vmovmi.i64','vmovpl.i64','vmovvs.i64','vmovvc.i64','vmovhi.i64','vmovls.i64','vmovge.i64','vmovlt.i64','vmovgt.i64','vmovle.i64', + 'vmoveq.f32','vmovne.f32','vmovcs.f32','vmovhs.f32','vmovcc.f32','vmovlo.f32','vmovmi.f32','vmovpl.f32','vmovvs.f32','vmovvc.f32','vmovhi.f32','vmovls.f32','vmovge.f32','vmovlt.f32','vmovgt.f32','vmovle.f32', + 'vmoveq.f64','vmovne.f64','vmovcs.f64','vmovhs.f64','vmovcc.f64','vmovlo.f64','vmovmi.f64','vmovpl.f64','vmovvs.f64','vmovvc.f64','vmovhi.f64','vmovls.f64','vmovge.f64','vmovlt.f64','vmovgt.f64','vmovle.f64', + + 'vmvneq','vmvnne','vmvncs','vmvnhs','vmvncc','vmvnlo','vmvnmi','vmvnpl','vmvnvs','vmvnvc','vmvnhi','vmvnls','vmvnge','vmvnlt','vmvngt','vmvnle', + 'vmvneq.s8','vmvnne.s8','vmvncs.s8','vmvnhs.s8','vmvncc.s8','vmvnlo.s8','vmvnmi.s8','vmvnpl.s8','vmvnvs.s8','vmvnvc.s8','vmvnhi.s8','vmvnls.s8','vmvnge.s8','vmvnlt.s8','vmvngt.s8','vmvnle.s8', + 'vmvneq.s16','vmvnne.s16','vmvncs.s16','vmvnhs.s16','vmvncc.s16','vmvnlo.s16','vmvnmi.s16','vmvnpl.s16','vmvnvs.s16','vmvnvc.s16','vmvnhi.s16','vmvnls.s16','vmvnge.s16','vmvnlt.s16','vmvngt.s16','vmvnle.s16', + 'vmvneq.s32','vmvnne.s32','vmvncs.s32','vmvnhs.s32','vmvncc.s32','vmvnlo.s32','vmvnmi.s32','vmvnpl.s32','vmvnvs.s32','vmvnvc.s32','vmvnhi.s32','vmvnls.s32','vmvnge.s32','vmvnlt.s32','vmvngt.s32','vmvnle.s32', + 'vmvneq.s64','vmvnne.s64','vmvncs.s64','vmvnhs.s64','vmvncc.s64','vmvnlo.s64','vmvnmi.s64','vmvnpl.s64','vmvnvs.s64','vmvnvc.s64','vmvnhi.s64','vmvnls.s64','vmvnge.s64','vmvnlt.s64','vmvngt.s64','vmvnle.s64', + 'vmvneq.u8','vmvnne.u8','vmvncs.u8','vmvnhs.u8','vmvncc.u8','vmvnlo.u8','vmvnmi.u8','vmvnpl.u8','vmvnvs.u8','vmvnvc.u8','vmvnhi.u8','vmvnls.u8','vmvnge.u8','vmvnlt.u8','vmvngt.u8','vmvnle.u8', + 'vmvneq.u16','vmvnne.u16','vmvncs.u16','vmvnhs.u16','vmvncc.u16','vmvnlo.u16','vmvnmi.u16','vmvnpl.u16','vmvnvs.u16','vmvnvc.u16','vmvnhi.u16','vmvnls.u16','vmvnge.u16','vmvnlt.u16','vmvngt.u16','vmvnle.u16', + 'vmvneq.u32','vmvnne.u32','vmvncs.u32','vmvnhs.u32','vmvncc.u32','vmvnlo.u32','vmvnmi.u32','vmvnpl.u32','vmvnvs.u32','vmvnvc.u32','vmvnhi.u32','vmvnls.u32','vmvnge.u32','vmvnlt.u32','vmvngt.u32','vmvnle.u32', + 'vmvneq.u64','vmvnne.u64','vmvncs.u64','vmvnhs.u64','vmvncc.u64','vmvnlo.u64','vmvnmi.u64','vmvnpl.u64','vmvnvs.u64','vmvnvc.u64','vmvnhi.u64','vmvnls.u64','vmvnge.u64','vmvnlt.u64','vmvngt.u64','vmvnle.u64', + 'vmvneq.i8','vmvnne.i8','vmvncs.i8','vmvnhs.i8','vmvncc.i8','vmvnlo.i8','vmvnmi.i8','vmvnpl.i8','vmvnvs.i8','vmvnvc.i8','vmvnhi.i8','vmvnls.i8','vmvnge.i8','vmvnlt.i8','vmvngt.i8','vmvnle.i8', + 'vmvneq.i16','vmvnne.i16','vmvncs.i16','vmvnhs.i16','vmvncc.i16','vmvnlo.i16','vmvnmi.i16','vmvnpl.i16','vmvnvs.i16','vmvnvc.i16','vmvnhi.i16','vmvnls.i16','vmvnge.i16','vmvnlt.i16','vmvngt.i16','vmvnle.i16', + 'vmvneq.i32','vmvnne.i32','vmvncs.i32','vmvnhs.i32','vmvncc.i32','vmvnlo.i32','vmvnmi.i32','vmvnpl.i32','vmvnvs.i32','vmvnvc.i32','vmvnhi.i32','vmvnls.i32','vmvnge.i32','vmvnlt.i32','vmvngt.i32','vmvnle.i32', + 'vmvneq.i64','vmvnne.i64','vmvncs.i64','vmvnhs.i64','vmvncc.i64','vmvnlo.i64','vmvnmi.i64','vmvnpl.i64','vmvnvs.i64','vmvnvc.i64','vmvnhi.i64','vmvnls.i64','vmvnge.i64','vmvnlt.i64','vmvngt.i64','vmvnle.i64', + 'vmvneq.f32','vmvnne.f32','vmvncs.f32','vmvnhs.f32','vmvncc.f32','vmvnlo.f32','vmvnmi.f32','vmvnpl.f32','vmvnvs.f32','vmvnvc.f32','vmvnhi.f32','vmvnls.f32','vmvnge.f32','vmvnlt.f32','vmvngt.f32','vmvnle.f32', + 'vmvneq.f64','vmvnne.f64','vmvncs.f64','vmvnhs.f64','vmvncc.f64','vmvnlo.f64','vmvnmi.f64','vmvnpl.f64','vmvnvs.f64','vmvnvc.f64','vmvnhi.f64','vmvnls.f64','vmvnge.f64','vmvnlt.f64','vmvngt.f64','vmvnle.f64', + + 'vorneq','vornne','vorncs','vornhs','vorncc','vornlo','vornmi','vornpl','vornvs','vornvc','vornhi','vornls','vornge','vornlt','vorngt','vornle', + 'vorneq.s8','vornne.s8','vorncs.s8','vornhs.s8','vorncc.s8','vornlo.s8','vornmi.s8','vornpl.s8','vornvs.s8','vornvc.s8','vornhi.s8','vornls.s8','vornge.s8','vornlt.s8','vorngt.s8','vornle.s8', + 'vorneq.s16','vornne.s16','vorncs.s16','vornhs.s16','vorncc.s16','vornlo.s16','vornmi.s16','vornpl.s16','vornvs.s16','vornvc.s16','vornhi.s16','vornls.s16','vornge.s16','vornlt.s16','vorngt.s16','vornle.s16', + 'vorneq.s32','vornne.s32','vorncs.s32','vornhs.s32','vorncc.s32','vornlo.s32','vornmi.s32','vornpl.s32','vornvs.s32','vornvc.s32','vornhi.s32','vornls.s32','vornge.s32','vornlt.s32','vorngt.s32','vornle.s32', + 'vorneq.s64','vornne.s64','vorncs.s64','vornhs.s64','vorncc.s64','vornlo.s64','vornmi.s64','vornpl.s64','vornvs.s64','vornvc.s64','vornhi.s64','vornls.s64','vornge.s64','vornlt.s64','vorngt.s64','vornle.s64', + 'vorneq.u8','vornne.u8','vorncs.u8','vornhs.u8','vorncc.u8','vornlo.u8','vornmi.u8','vornpl.u8','vornvs.u8','vornvc.u8','vornhi.u8','vornls.u8','vornge.u8','vornlt.u8','vorngt.u8','vornle.u8', + 'vorneq.u16','vornne.u16','vorncs.u16','vornhs.u16','vorncc.u16','vornlo.u16','vornmi.u16','vornpl.u16','vornvs.u16','vornvc.u16','vornhi.u16','vornls.u16','vornge.u16','vornlt.u16','vorngt.u16','vornle.u16', + 'vorneq.u32','vornne.u32','vorncs.u32','vornhs.u32','vorncc.u32','vornlo.u32','vornmi.u32','vornpl.u32','vornvs.u32','vornvc.u32','vornhi.u32','vornls.u32','vornge.u32','vornlt.u32','vorngt.u32','vornle.u32', + 'vorneq.u64','vornne.u64','vorncs.u64','vornhs.u64','vorncc.u64','vornlo.u64','vornmi.u64','vornpl.u64','vornvs.u64','vornvc.u64','vornhi.u64','vornls.u64','vornge.u64','vornlt.u64','vorngt.u64','vornle.u64', + 'vorneq.i8','vornne.i8','vorncs.i8','vornhs.i8','vorncc.i8','vornlo.i8','vornmi.i8','vornpl.i8','vornvs.i8','vornvc.i8','vornhi.i8','vornls.i8','vornge.i8','vornlt.i8','vorngt.i8','vornle.i8', + 'vorneq.i16','vornne.i16','vorncs.i16','vornhs.i16','vorncc.i16','vornlo.i16','vornmi.i16','vornpl.i16','vornvs.i16','vornvc.i16','vornhi.i16','vornls.i16','vornge.i16','vornlt.i16','vorngt.i16','vornle.i16', + 'vorneq.i32','vornne.i32','vorncs.i32','vornhs.i32','vorncc.i32','vornlo.i32','vornmi.i32','vornpl.i32','vornvs.i32','vornvc.i32','vornhi.i32','vornls.i32','vornge.i32','vornlt.i32','vorngt.i32','vornle.i32', + 'vorneq.i64','vornne.i64','vorncs.i64','vornhs.i64','vorncc.i64','vornlo.i64','vornmi.i64','vornpl.i64','vornvs.i64','vornvc.i64','vornhi.i64','vornls.i64','vornge.i64','vornlt.i64','vorngt.i64','vornle.i64', + 'vorneq.f32','vornne.f32','vorncs.f32','vornhs.f32','vorncc.f32','vornlo.f32','vornmi.f32','vornpl.f32','vornvs.f32','vornvc.f32','vornhi.f32','vornls.f32','vornge.f32','vornlt.f32','vorngt.f32','vornle.f32', + 'vorneq.f64','vornne.f64','vorncs.f64','vornhs.f64','vorncc.f64','vornlo.f64','vornmi.f64','vornpl.f64','vornvs.f64','vornvc.f64','vornhi.f64','vornls.f64','vornge.f64','vornlt.f64','vorngt.f64','vornle.f64', + + 'vorreq','vorrne','vorrcs','vorrhs','vorrcc','vorrlo','vorrmi','vorrpl','vorrvs','vorrvc','vorrhi','vorrls','vorrge','vorrlt','vorrgt','vorrle', + 'vorreq.s8','vorrne.s8','vorrcs.s8','vorrhs.s8','vorrcc.s8','vorrlo.s8','vorrmi.s8','vorrpl.s8','vorrvs.s8','vorrvc.s8','vorrhi.s8','vorrls.s8','vorrge.s8','vorrlt.s8','vorrgt.s8','vorrle.s8', + 'vorreq.s16','vorrne.s16','vorrcs.s16','vorrhs.s16','vorrcc.s16','vorrlo.s16','vorrmi.s16','vorrpl.s16','vorrvs.s16','vorrvc.s16','vorrhi.s16','vorrls.s16','vorrge.s16','vorrlt.s16','vorrgt.s16','vorrle.s16', + 'vorreq.s32','vorrne.s32','vorrcs.s32','vorrhs.s32','vorrcc.s32','vorrlo.s32','vorrmi.s32','vorrpl.s32','vorrvs.s32','vorrvc.s32','vorrhi.s32','vorrls.s32','vorrge.s32','vorrlt.s32','vorrgt.s32','vorrle.s32', + 'vorreq.s64','vorrne.s64','vorrcs.s64','vorrhs.s64','vorrcc.s64','vorrlo.s64','vorrmi.s64','vorrpl.s64','vorrvs.s64','vorrvc.s64','vorrhi.s64','vorrls.s64','vorrge.s64','vorrlt.s64','vorrgt.s64','vorrle.s64', + 'vorreq.u8','vorrne.u8','vorrcs.u8','vorrhs.u8','vorrcc.u8','vorrlo.u8','vorrmi.u8','vorrpl.u8','vorrvs.u8','vorrvc.u8','vorrhi.u8','vorrls.u8','vorrge.u8','vorrlt.u8','vorrgt.u8','vorrle.u8', + 'vorreq.u16','vorrne.u16','vorrcs.u16','vorrhs.u16','vorrcc.u16','vorrlo.u16','vorrmi.u16','vorrpl.u16','vorrvs.u16','vorrvc.u16','vorrhi.u16','vorrls.u16','vorrge.u16','vorrlt.u16','vorrgt.u16','vorrle.u16', + 'vorreq.u32','vorrne.u32','vorrcs.u32','vorrhs.u32','vorrcc.u32','vorrlo.u32','vorrmi.u32','vorrpl.u32','vorrvs.u32','vorrvc.u32','vorrhi.u32','vorrls.u32','vorrge.u32','vorrlt.u32','vorrgt.u32','vorrle.u32', + 'vorreq.u64','vorrne.u64','vorrcs.u64','vorrhs.u64','vorrcc.u64','vorrlo.u64','vorrmi.u64','vorrpl.u64','vorrvs.u64','vorrvc.u64','vorrhi.u64','vorrls.u64','vorrge.u64','vorrlt.u64','vorrgt.u64','vorrle.u64', + 'vorreq.i8','vorrne.i8','vorrcs.i8','vorrhs.i8','vorrcc.i8','vorrlo.i8','vorrmi.i8','vorrpl.i8','vorrvs.i8','vorrvc.i8','vorrhi.i8','vorrls.i8','vorrge.i8','vorrlt.i8','vorrgt.i8','vorrle.i8', + 'vorreq.i16','vorrne.i16','vorrcs.i16','vorrhs.i16','vorrcc.i16','vorrlo.i16','vorrmi.i16','vorrpl.i16','vorrvs.i16','vorrvc.i16','vorrhi.i16','vorrls.i16','vorrge.i16','vorrlt.i16','vorrgt.i16','vorrle.i16', + 'vorreq.i32','vorrne.i32','vorrcs.i32','vorrhs.i32','vorrcc.i32','vorrlo.i32','vorrmi.i32','vorrpl.i32','vorrvs.i32','vorrvc.i32','vorrhi.i32','vorrls.i32','vorrge.i32','vorrlt.i32','vorrgt.i32','vorrle.i32', + 'vorreq.i64','vorrne.i64','vorrcs.i64','vorrhs.i64','vorrcc.i64','vorrlo.i64','vorrmi.i64','vorrpl.i64','vorrvs.i64','vorrvc.i64','vorrhi.i64','vorrls.i64','vorrge.i64','vorrlt.i64','vorrgt.i64','vorrle.i64', + 'vorreq.f32','vorrne.f32','vorrcs.f32','vorrhs.f32','vorrcc.f32','vorrlo.f32','vorrmi.f32','vorrpl.f32','vorrvs.f32','vorrvc.f32','vorrhi.f32','vorrls.f32','vorrge.f32','vorrlt.f32','vorrgt.f32','vorrle.f32', + 'vorreq.f64','vorrne.f64','vorrcs.f64','vorrhs.f64','vorrcc.f64','vorrlo.f64','vorrmi.f64','vorrpl.f64','vorrvs.f64','vorrvc.f64','vorrhi.f64','vorrls.f64','vorrge.f64','vorrlt.f64','vorrgt.f64','vorrle.f64', + + 'vswpeq','vswpne','vswpcs','vswphs','vswpcc','vswplo','vswpmi','vswppl','vswpvs','vswpvc','vswphi','vswpls','vswpge','vswplt','vswpgt','vswple', + 'vswpeq.s8','vswpne.s8','vswpcs.s8','vswphs.s8','vswpcc.s8','vswplo.s8','vswpmi.s8','vswppl.s8','vswpvs.s8','vswpvc.s8','vswphi.s8','vswpls.s8','vswpge.s8','vswplt.s8','vswpgt.s8','vswple.s8', + 'vswpeq.s16','vswpne.s16','vswpcs.s16','vswphs.s16','vswpcc.s16','vswplo.s16','vswpmi.s16','vswppl.s16','vswpvs.s16','vswpvc.s16','vswphi.s16','vswpls.s16','vswpge.s16','vswplt.s16','vswpgt.s16','vswple.s16', + 'vswpeq.s32','vswpne.s32','vswpcs.s32','vswphs.s32','vswpcc.s32','vswplo.s32','vswpmi.s32','vswppl.s32','vswpvs.s32','vswpvc.s32','vswphi.s32','vswpls.s32','vswpge.s32','vswplt.s32','vswpgt.s32','vswple.s32', + 'vswpeq.s64','vswpne.s64','vswpcs.s64','vswphs.s64','vswpcc.s64','vswplo.s64','vswpmi.s64','vswppl.s64','vswpvs.s64','vswpvc.s64','vswphi.s64','vswpls.s64','vswpge.s64','vswplt.s64','vswpgt.s64','vswple.s64', + 'vswpeq.u8','vswpne.u8','vswpcs.u8','vswphs.u8','vswpcc.u8','vswplo.u8','vswpmi.u8','vswppl.u8','vswpvs.u8','vswpvc.u8','vswphi.u8','vswpls.u8','vswpge.u8','vswplt.u8','vswpgt.u8','vswple.u8', + 'vswpeq.u16','vswpne.u16','vswpcs.u16','vswphs.u16','vswpcc.u16','vswplo.u16','vswpmi.u16','vswppl.u16','vswpvs.u16','vswpvc.u16','vswphi.u16','vswpls.u16','vswpge.u16','vswplt.u16','vswpgt.u16','vswple.u16', + 'vswpeq.u32','vswpne.u32','vswpcs.u32','vswphs.u32','vswpcc.u32','vswplo.u32','vswpmi.u32','vswppl.u32','vswpvs.u32','vswpvc.u32','vswphi.u32','vswpls.u32','vswpge.u32','vswplt.u32','vswpgt.u32','vswple.u32', + 'vswpeq.u64','vswpne.u64','vswpcs.u64','vswphs.u64','vswpcc.u64','vswplo.u64','vswpmi.u64','vswppl.u64','vswpvs.u64','vswpvc.u64','vswphi.u64','vswpls.u64','vswpge.u64','vswplt.u64','vswpgt.u64','vswple.u64', + 'vswpeq.i8','vswpne.i8','vswpcs.i8','vswphs.i8','vswpcc.i8','vswplo.i8','vswpmi.i8','vswppl.i8','vswpvs.i8','vswpvc.i8','vswphi.i8','vswpls.i8','vswpge.i8','vswplt.i8','vswpgt.i8','vswple.i8', + 'vswpeq.i16','vswpne.i16','vswpcs.i16','vswphs.i16','vswpcc.i16','vswplo.i16','vswpmi.i16','vswppl.i16','vswpvs.i16','vswpvc.i16','vswphi.i16','vswpls.i16','vswpge.i16','vswplt.i16','vswpgt.i16','vswple.i16', + 'vswpeq.i32','vswpne.i32','vswpcs.i32','vswphs.i32','vswpcc.i32','vswplo.i32','vswpmi.i32','vswppl.i32','vswpvs.i32','vswpvc.i32','vswphi.i32','vswpls.i32','vswpge.i32','vswplt.i32','vswpgt.i32','vswple.i32', + 'vswpeq.i64','vswpne.i64','vswpcs.i64','vswphs.i64','vswpcc.i64','vswplo.i64','vswpmi.i64','vswppl.i64','vswpvs.i64','vswpvc.i64','vswphi.i64','vswpls.i64','vswpge.i64','vswplt.i64','vswpgt.i64','vswple.i64', + 'vswpeq.f32','vswpne.f32','vswpcs.f32','vswphs.f32','vswpcc.f32','vswplo.f32','vswpmi.f32','vswppl.f32','vswpvs.f32','vswpvc.f32','vswphi.f32','vswpls.f32','vswpge.f32','vswplt.f32','vswpgt.f32','vswple.f32', + 'vswpeq.f64','vswpne.f64','vswpcs.f64','vswphs.f64','vswpcc.f64','vswplo.f64','vswpmi.f64','vswppl.f64','vswpvs.f64','vswpvc.f64','vswphi.f64','vswpls.f64','vswpge.f64','vswplt.f64','vswpgt.f64','vswple.f64' + ), + /* Conditional NEON SIMD ARM Registers Interop Instructions */ + 29 => array( + 'vmrseq','vmrsne','vmrscs','vmrshs','vmrscc','vmrslo','vmrsmi','vmrspl','vmrsvs','vmrsvc','vmrshi','vmrsls','vmrsge','vmrslt','vmrsgt','vmrsle', + 'vmsreq','vmsrne','vmsrcs','vmsrhs','vmsrcc','vmsrlo','vmsrmi','vmsrpl','vmsrvs','vmsrvc','vmsrhi','vmsrls','vmsrge','vmsrlt','vmsrgt','vmsrle' + ), + /* Conditional NEON SIMD Bit/Byte-Level Instructions */ + 30 => array( + 'vcnteq.8','vcntne.8','vcntcs.8','vcnths.8','vcntcc.8','vcntlo.8','vcntmi.8','vcntpl.8','vcntvs.8','vcntvc.8','vcnthi.8','vcntls.8','vcntge.8','vcntlt.8','vcntgt.8','vcntle.8', + 'vdupeq.8','vdupne.8','vdupcs.8','vduphs.8','vdupcc.8','vduplo.8','vdupmi.8','vduppl.8','vdupvs.8','vdupvc.8','vduphi.8','vdupls.8','vdupge.8','vduplt.8','vdupgt.8','vduple.8', + + 'vdupeq.16','vdupne.16','vdupcs.16','vduphs.16','vdupcc.16','vduplo.16','vdupmi.16','vduppl.16','vdupvs.16','vdupvc.16','vduphi.16','vdupls.16','vdupge.16','vduplt.16','vdupgt.16','vduple.16', + 'vdupeq.32','vdupne.32','vdupcs.32','vduphs.32','vdupcc.32','vduplo.32','vdupmi.32','vduppl.32','vdupvs.32','vdupvc.32','vduphi.32','vdupls.32','vdupge.32','vduplt.32','vdupgt.32','vduple.32', + + 'vexteq.8','vextne.8','vextcs.8','vexths.8','vextcc.8','vextlo.8','vextmi.8','vextpl.8','vextvs.8','vextvc.8','vexthi.8','vextls.8','vextge.8','vextlt.8','vextgt.8','vextle.8', + 'vexteq.16','vextne.16','vextcs.16','vexths.16','vextcc.16','vextlo.16','vextmi.16','vextpl.16','vextvs.16','vextvc.16','vexthi.16','vextls.16','vextge.16','vextlt.16','vextgt.16','vextle.16', + + 'vexteq.32','vextne.32','vextcs.32','vexths.32','vextcc.32','vextlo.32','vextmi.32','vextpl.32','vextvs.32','vextvc.32','vexthi.32','vextls.32','vextge.32','vextlt.32','vextgt.32','vextle.32', + 'vexteq.64','vextne.64','vextcs.64','vexths.64','vextcc.64','vextlo.64','vextmi.64','vextpl.64','vextvs.64','vextvc.64','vexthi.64','vextls.64','vextge.64','vextlt.64','vextgt.64','vextle.64', + + 'vrev16eq.8','vrev16ne.8','vrev16cs.8','vrev16hs.8','vrev16cc.8','vrev16lo.8','vrev16mi.8','vrev16pl.8','vrev16vs.8','vrev16vc.8','vrev16hi.8','vrev16ls.8','vrev16ge.8','vrev16lt.8','vrev16gt.8','vrev16le.8', + 'vrev32eq.8','vrev32ne.8','vrev32cs.8','vrev32hs.8','vrev32cc.8','vrev32lo.8','vrev32mi.8','vrev32pl.8','vrev32vs.8','vrev32vc.8','vrev32hi.8','vrev32ls.8','vrev32ge.8','vrev32lt.8','vrev32gt.8','vrev32le.8', + 'vrev32eq.16','vrev32ne.16','vrev32cs.16','vrev32hs.16','vrev32cc.16','vrev32lo.16','vrev32mi.16','vrev32pl.16','vrev32vs.16','vrev32vc.16','vrev32hi.16','vrev32ls.16','vrev32ge.16','vrev32lt.16','vrev32gt.16','vrev32le.16', + 'vrev64eq.8','vrev64ne.8','vrev64cs.8','vrev64hs.8','vrev64cc.8','vrev64lo.8','vrev64mi.8','vrev64pl.8','vrev64vs.8','vrev64vc.8','vrev64hi.8','vrev64ls.8','vrev64ge.8','vrev64lt.8','vrev64gt.8','vrev64le.8', + 'vrev64eq.16','vrev64ne.16','vrev64cs.16','vrev64hs.16','vrev64cc.16','vrev64lo.16','vrev64mi.16','vrev64pl.16','vrev64vs.16','vrev64vc.16','vrev64hi.16','vrev64ls.16','vrev64ge.16','vrev64lt.16','vrev64gt.16','vrev64le.16', + 'vrev64eq.32','vrev64ne.32','vrev64cs.32','vrev64hs.32','vrev64cc.32','vrev64lo.32','vrev64mi.32','vrev64pl.32','vrev64vs.32','vrev64vc.32','vrev64hi.32','vrev64ls.32','vrev64ge.32','vrev64lt.32','vrev64gt.32','vrev64le.32', + + 'vslieq.8','vsline.8','vslics.8','vslihs.8','vslicc.8','vslilo.8','vslimi.8','vslipl.8','vslivs.8','vslivc.8','vslihi.8','vslils.8','vslige.8','vslilt.8','vsligt.8','vslile.8', + 'vslieq.16','vsline.16','vslics.16','vslihs.16','vslicc.16','vslilo.16','vslimi.16','vslipl.16','vslivs.16','vslivc.16','vslihi.16','vslils.16','vslige.16','vslilt.16','vsligt.16','vslile.16', + 'vslieq.32','vsline.32','vslics.32','vslihs.32','vslicc.32','vslilo.32','vslimi.32','vslipl.32','vslivs.32','vslivc.32','vslihi.32','vslils.32','vslige.32','vslilt.32','vsligt.32','vslile.32', + 'vslieq.64','vsline.64','vslics.64','vslihs.64','vslicc.64','vslilo.64','vslimi.64','vslipl.64','vslivs.64','vslivc.64','vslihi.64','vslils.64','vslige.64','vslilt.64','vsligt.64','vslile.64', + + 'vsrieq.8','vsrine.8','vsrics.8','vsrihs.8','vsricc.8','vsrilo.8','vsrimi.8','vsripl.8','vsrivs.8','vsrivc.8','vsrihi.8','vsrils.8','vsrige.8','vsrilt.8','vsrigt.8','vsrile.8', + 'vsrieq.16','vsrine.16','vsrics.16','vsrihs.16','vsricc.16','vsrilo.16','vsrimi.16','vsripl.16','vsrivs.16','vsrivc.16','vsrihi.16','vsrils.16','vsrige.16','vsrilt.16','vsrigt.16','vsrile.16', + 'vsrieq.32','vsrine.32','vsrics.32','vsrihs.32','vsricc.32','vsrilo.32','vsrimi.32','vsripl.32','vsrivs.32','vsrivc.32','vsrihi.32','vsrils.32','vsrige.32','vsrilt.32','vsrigt.32','vsrile.32', + 'vsrieq.64','vsrine.64','vsrics.64','vsrihs.64','vsricc.64','vsrilo.64','vsrimi.64','vsripl.64','vsrivs.64','vsrivc.64','vsrihi.64','vsrils.64','vsrige.64','vsrilt.64','vsrigt.64','vsrile.64', + + 'vtbleq.8','vtblne.8','vtblcs.8','vtblhs.8','vtblcc.8','vtbllo.8','vtblmi.8','vtblpl.8','vtblvs.8','vtblvc.8','vtblhi.8','vtblls.8','vtblge.8','vtbllt.8','vtblgt.8','vtblle.8', + + 'vtbxeq','vtbxne','vtbxcs','vtbxhs','vtbxcc','vtbxlo','vtbxmi','vtbxpl','vtbxvs','vtbxvc','vtbxhi','vtbxls','vtbxge','vtbxlt','vtbxgt','vtbxle', + + 'vtrneq.8','vtrnne.8','vtrncs.8','vtrnhs.8','vtrncc.8','vtrnlo.8','vtrnmi.8','vtrnpl.8','vtrnvs.8','vtrnvc.8','vtrnhi.8','vtrnls.8','vtrnge.8','vtrnlt.8','vtrngt.8','vtrnle.8', + 'vtrneq.16','vtrnne.16','vtrncs.16','vtrnhs.16','vtrncc.16','vtrnlo.16','vtrnmi.16','vtrnpl.16','vtrnvs.16','vtrnvc.16','vtrnhi.16','vtrnls.16','vtrnge.16','vtrnlt.16','vtrngt.16','vtrnle.16', + 'vtrneq.32','vtrnne.32','vtrncs.32','vtrnhs.32','vtrncc.32','vtrnlo.32','vtrnmi.32','vtrnpl.32','vtrnvs.32','vtrnvc.32','vtrnhi.32','vtrnls.32','vtrnge.32','vtrnlt.32','vtrngt.32','vtrnle.32', + + 'vtsteq.8','vtstne.8','vtstcs.8','vtsths.8','vtstcc.8','vtstlo.8','vtstmi.8','vtstpl.8','vtstvs.8','vtstvc.8','vtsthi.8','vtstls.8','vtstge.8','vtstlt.8','vtstgt.8','vtstle.8', + 'vtsteq.16','vtstne.16','vtstcs.16','vtsths.16','vtstcc.16','vtstlo.16','vtstmi.16','vtstpl.16','vtstvs.16','vtstvc.16','vtsthi.16','vtstls.16','vtstge.16','vtstlt.16','vtstgt.16','vtstle.16', + 'vtsteq.32','vtstne.32','vtstcs.32','vtsths.32','vtstcc.32','vtstlo.32','vtstmi.32','vtstpl.32','vtstvs.32','vtstvc.32','vtsthi.32','vtstls.32','vtstge.32','vtstlt.32','vtstgt.32','vtstle.32', + + 'vuzpeq.8','vuzpne.8','vuzpcs.8','vuzphs.8','vuzpcc.8','vuzplo.8','vuzpmi.8','vuzppl.8','vuzpvs.8','vuzpvc.8','vuzphi.8','vuzpls.8','vuzpge.8','vuzplt.8','vuzpgt.8','vuzple.8', + 'vuzpeq.16','vuzpne.16','vuzpcs.16','vuzphs.16','vuzpcc.16','vuzplo.16','vuzpmi.16','vuzppl.16','vuzpvs.16','vuzpvc.16','vuzphi.16','vuzpls.16','vuzpge.16','vuzplt.16','vuzpgt.16','vuzple.16', + 'vuzpeq.32','vuzpne.32','vuzpcs.32','vuzphs.32','vuzpcc.32','vuzplo.32','vuzpmi.32','vuzppl.32','vuzpvs.32','vuzpvc.32','vuzphi.32','vuzpls.32','vuzpge.32','vuzplt.32','vuzpgt.32','vuzple.32', + + 'vzipeq.8','vzipne.8','vzipcs.8','vziphs.8','vzipcc.8','vziplo.8','vzipmi.8','vzippl.8','vzipvs.8','vzipvc.8','vziphi.8','vzipls.8','vzipge.8','vziplt.8','vzipgt.8','vziple.8', + 'vzipeq.16','vzipne.16','vzipcs.16','vziphs.16','vzipcc.16','vziplo.16','vzipmi.16','vzippl.16','vzipvs.16','vzipvc.16','vziphi.16','vzipls.16','vzipge.16','vziplt.16','vzipgt.16','vziple.16', + 'vzipeq.32','vzipne.32','vzipcs.32','vziphs.32','vzipcc.32','vziplo.32','vzipmi.32','vzippl.32','vzipvs.32','vzipvc.32','vziphi.32','vzipls.32','vzipge.32','vziplt.32','vzipgt.32','vziple.32', + + 'vmulleq.p8','vmullne.p8','vmullcs.p8','vmullhs.p8','vmullcc.p8','vmulllo.p8','vmullmi.p8','vmullpl.p8','vmullvs.p8','vmullvc.p8','vmullhi.p8','vmullls.p8','vmullge.p8','vmulllt.p8','vmullgt.p8','vmullle.p8' + ), + /* Conditional NEON SIMD Universal Integer Instructions */ + 31 => array( + 'vaddeq.i8','vaddne.i8','vaddcs.i8','vaddhs.i8','vaddcc.i8','vaddlo.i8','vaddmi.i8','vaddpl.i8','vaddvs.i8','vaddvc.i8','vaddhi.i8','vaddls.i8','vaddge.i8','vaddlt.i8','vaddgt.i8','vaddle.i8', + 'vaddeq.i16','vaddne.i16','vaddcs.i16','vaddhs.i16','vaddcc.i16','vaddlo.i16','vaddmi.i16','vaddpl.i16','vaddvs.i16','vaddvc.i16','vaddhi.i16','vaddls.i16','vaddge.i16','vaddlt.i16','vaddgt.i16','vaddle.i16', + 'vaddeq.i32','vaddne.i32','vaddcs.i32','vaddhs.i32','vaddcc.i32','vaddlo.i32','vaddmi.i32','vaddpl.i32','vaddvs.i32','vaddvc.i32','vaddhi.i32','vaddls.i32','vaddge.i32','vaddlt.i32','vaddgt.i32','vaddle.i32', + 'vaddeq.i64','vaddne.i64','vaddcs.i64','vaddhs.i64','vaddcc.i64','vaddlo.i64','vaddmi.i64','vaddpl.i64','vaddvs.i64','vaddvc.i64','vaddhi.i64','vaddls.i64','vaddge.i64','vaddlt.i64','vaddgt.i64','vaddle.i64', + + 'vsubeq.i8','vsubne.i8','vsubcs.i8','vsubhs.i8','vsubcc.i8','vsublo.i8','vsubmi.i8','vsubpl.i8','vsubvs.i8','vsubvc.i8','vsubhi.i8','vsubls.i8','vsubge.i8','vsublt.i8','vsubgt.i8','vsuble.i8', + 'vsubeq.i16','vsubne.i16','vsubcs.i16','vsubhs.i16','vsubcc.i16','vsublo.i16','vsubmi.i16','vsubpl.i16','vsubvs.i16','vsubvc.i16','vsubhi.i16','vsubls.i16','vsubge.i16','vsublt.i16','vsubgt.i16','vsuble.i16', + 'vsubeq.i32','vsubne.i32','vsubcs.i32','vsubhs.i32','vsubcc.i32','vsublo.i32','vsubmi.i32','vsubpl.i32','vsubvs.i32','vsubvc.i32','vsubhi.i32','vsubls.i32','vsubge.i32','vsublt.i32','vsubgt.i32','vsuble.i32', + 'vsubeq.i64','vsubne.i64','vsubcs.i64','vsubhs.i64','vsubcc.i64','vsublo.i64','vsubmi.i64','vsubpl.i64','vsubvs.i64','vsubvc.i64','vsubhi.i64','vsubls.i64','vsubge.i64','vsublt.i64','vsubgt.i64','vsuble.i64', + + 'vaddhneq.i16','vaddhnne.i16','vaddhncs.i16','vaddhnhs.i16','vaddhncc.i16','vaddhnlo.i16','vaddhnmi.i16','vaddhnpl.i16','vaddhnvs.i16','vaddhnvc.i16','vaddhnhi.i16','vaddhnls.i16','vaddhnge.i16','vaddhnlt.i16','vaddhngt.i16','vaddhnle.i16', + 'vaddhneq.i32','vaddhnne.i32','vaddhncs.i32','vaddhnhs.i32','vaddhncc.i32','vaddhnlo.i32','vaddhnmi.i32','vaddhnpl.i32','vaddhnvs.i32','vaddhnvc.i32','vaddhnhi.i32','vaddhnls.i32','vaddhnge.i32','vaddhnlt.i32','vaddhngt.i32','vaddhnle.i32', + 'vaddhneq.i64','vaddhnne.i64','vaddhncs.i64','vaddhnhs.i64','vaddhncc.i64','vaddhnlo.i64','vaddhnmi.i64','vaddhnpl.i64','vaddhnvs.i64','vaddhnvc.i64','vaddhnhi.i64','vaddhnls.i64','vaddhnge.i64','vaddhnlt.i64','vaddhngt.i64','vaddhnle.i64', + + 'vsubhneq.i16','vsubhnne.i16','vsubhncs.i16','vsubhnhs.i16','vsubhncc.i16','vsubhnlo.i16','vsubhnmi.i16','vsubhnpl.i16','vsubhnvs.i16','vsubhnvc.i16','vsubhnhi.i16','vsubhnls.i16','vsubhnge.i16','vsubhnlt.i16','vsubhngt.i16','vsubhnle.i16', + 'vsubhneq.i32','vsubhnne.i32','vsubhncs.i32','vsubhnhs.i32','vsubhncc.i32','vsubhnlo.i32','vsubhnmi.i32','vsubhnpl.i32','vsubhnvs.i32','vsubhnvc.i32','vsubhnhi.i32','vsubhnls.i32','vsubhnge.i32','vsubhnlt.i32','vsubhngt.i32','vsubhnle.i32', + 'vsubhneq.i64','vsubhnne.i64','vsubhncs.i64','vsubhnhs.i64','vsubhncc.i64','vsubhnlo.i64','vsubhnmi.i64','vsubhnpl.i64','vsubhnvs.i64','vsubhnvc.i64','vsubhnhi.i64','vsubhnls.i64','vsubhnge.i64','vsubhnlt.i64','vsubhngt.i64','vsubhnle.i64', + + 'vraddhneq.i16','vraddhnne.i16','vraddhncs.i16','vraddhnhs.i16','vraddhncc.i16','vraddhnlo.i16','vraddhnmi.i16','vraddhnpl.i16','vraddhnvs.i16','vraddhnvc.i16','vraddhnhi.i16','vraddhnls.i16','vraddhnge.i16','vraddhnlt.i16','vraddhngt.i16','vraddhnle.i16', + 'vraddhneq.i32','vraddhnne.i32','vraddhncs.i32','vraddhnhs.i32','vraddhncc.i32','vraddhnlo.i32','vraddhnmi.i32','vraddhnpl.i32','vraddhnvs.i32','vraddhnvc.i32','vraddhnhi.i32','vraddhnls.i32','vraddhnge.i32','vraddhnlt.i32','vraddhngt.i32','vraddhnle.i32', + 'vraddhneq.i64','vraddhnne.i64','vraddhncs.i64','vraddhnhs.i64','vraddhncc.i64','vraddhnlo.i64','vraddhnmi.i64','vraddhnpl.i64','vraddhnvs.i64','vraddhnvc.i64','vraddhnhi.i64','vraddhnls.i64','vraddhnge.i64','vraddhnlt.i64','vraddhngt.i64','vraddhnle.i64', + + 'vrsubhneq.i16','vrsubhnne.i16','vrsubhncs.i16','vrsubhnhs.i16','vrsubhncc.i16','vrsubhnlo.i16','vrsubhnmi.i16','vrsubhnpl.i16','vrsubhnvs.i16','vrsubhnvc.i16','vrsubhnhi.i16','vrsubhnls.i16','vrsubhnge.i16','vrsubhnlt.i16','vrsubhngt.i16','vrsubhnle.i16', + 'vrsubhneq.i32','vrsubhnne.i32','vrsubhncs.i32','vrsubhnhs.i32','vrsubhncc.i32','vrsubhnlo.i32','vrsubhnmi.i32','vrsubhnpl.i32','vrsubhnvs.i32','vrsubhnvc.i32','vrsubhnhi.i32','vrsubhnls.i32','vrsubhnge.i32','vrsubhnlt.i32','vrsubhngt.i32','vrsubhnle.i32', + 'vrsubhneq.i64','vrsubhnne.i64','vrsubhncs.i64','vrsubhnhs.i64','vrsubhncc.i64','vrsubhnlo.i64','vrsubhnmi.i64','vrsubhnpl.i64','vrsubhnvs.i64','vrsubhnvc.i64','vrsubhnhi.i64','vrsubhnls.i64','vrsubhnge.i64','vrsubhnlt.i64','vrsubhngt.i64','vrsubhnle.i64', + + 'vpaddeq.i8','vpaddne.i8','vpaddcs.i8','vpaddhs.i8','vpaddcc.i8','vpaddlo.i8','vpaddmi.i8','vpaddpl.i8','vpaddvs.i8','vpaddvc.i8','vpaddhi.i8','vpaddls.i8','vpaddge.i8','vpaddlt.i8','vpaddgt.i8','vpaddle.i8', + 'vpaddeq.i16','vpaddne.i16','vpaddcs.i16','vpaddhs.i16','vpaddcc.i16','vpaddlo.i16','vpaddmi.i16','vpaddpl.i16','vpaddvs.i16','vpaddvc.i16','vpaddhi.i16','vpaddls.i16','vpaddge.i16','vpaddlt.i16','vpaddgt.i16','vpaddle.i16', + 'vpaddeq.i32','vpaddne.i32','vpaddcs.i32','vpaddhs.i32','vpaddcc.i32','vpaddlo.i32','vpaddmi.i32','vpaddpl.i32','vpaddvs.i32','vpaddvc.i32','vpaddhi.i32','vpaddls.i32','vpaddge.i32','vpaddlt.i32','vpaddgt.i32','vpaddle.i32', + + 'vceqeq.i8','vceqne.i8','vceqcs.i8','vceqhs.i8','vceqcc.i8','vceqlo.i8','vceqmi.i8','vceqpl.i8','vceqvs.i8','vceqvc.i8','vceqhi.i8','vceqls.i8','vceqge.i8','vceqlt.i8','vceqgt.i8','vceqle.i8', + 'vceqeq.i16','vceqne.i16','vceqcs.i16','vceqhs.i16','vceqcc.i16','vceqlo.i16','vceqmi.i16','vceqpl.i16','vceqvs.i16','vceqvc.i16','vceqhi.i16','vceqls.i16','vceqge.i16','vceqlt.i16','vceqgt.i16','vceqle.i16', + 'vceqeq.i32','vceqne.i32','vceqcs.i32','vceqhs.i32','vceqcc.i32','vceqlo.i32','vceqmi.i32','vceqpl.i32','vceqvs.i32','vceqvc.i32','vceqhi.i32','vceqls.i32','vceqge.i32','vceqlt.i32','vceqgt.i32','vceqle.i32', + + 'vclzeq.i8','vclzne.i8','vclzcs.i8','vclzhs.i8','vclzcc.i8','vclzlo.i8','vclzmi.i8','vclzpl.i8','vclzvs.i8','vclzvc.i8','vclzhi.i8','vclzls.i8','vclzge.i8','vclzlt.i8','vclzgt.i8','vclzle.i8', + 'vclzeq.i16','vclzne.i16','vclzcs.i16','vclzhs.i16','vclzcc.i16','vclzlo.i16','vclzmi.i16','vclzpl.i16','vclzvs.i16','vclzvc.i16','vclzhi.i16','vclzls.i16','vclzge.i16','vclzlt.i16','vclzgt.i16','vclzle.i16', + 'vclzeq.i32','vclzne.i32','vclzcs.i32','vclzhs.i32','vclzcc.i32','vclzlo.i32','vclzmi.i32','vclzpl.i32','vclzvs.i32','vclzvc.i32','vclzhi.i32','vclzls.i32','vclzge.i32','vclzlt.i32','vclzgt.i32','vclzle.i32', + + 'vmovneq.i16','vmovnne.i16','vmovncs.i16','vmovnhs.i16','vmovncc.i16','vmovnlo.i16','vmovnmi.i16','vmovnpl.i16','vmovnvs.i16','vmovnvc.i16','vmovnhi.i16','vmovnls.i16','vmovnge.i16','vmovnlt.i16','vmovngt.i16','vmovnle.i16', + 'vmovneq.i32','vmovnne.i32','vmovncs.i32','vmovnhs.i32','vmovncc.i32','vmovnlo.i32','vmovnmi.i32','vmovnpl.i32','vmovnvs.i32','vmovnvc.i32','vmovnhi.i32','vmovnls.i32','vmovnge.i32','vmovnlt.i32','vmovngt.i32','vmovnle.i32', + 'vmovneq.i64','vmovnne.i64','vmovncs.i64','vmovnhs.i64','vmovncc.i64','vmovnlo.i64','vmovnmi.i64','vmovnpl.i64','vmovnvs.i64','vmovnvc.i64','vmovnhi.i64','vmovnls.i64','vmovnge.i64','vmovnlt.i64','vmovngt.i64','vmovnle.i64', + + 'vmlaeq.s8','vmlane.s8','vmlacs.s8','vmlahs.s8','vmlacc.s8','vmlalo.s8','vmlami.s8','vmlapl.s8','vmlavs.s8','vmlavc.s8','vmlahi.s8','vmlals.s8','vmlage.s8','vmlalt.s8','vmlagt.s8','vmlale.s8', + 'vmlaeq.s16','vmlane.s16','vmlacs.s16','vmlahs.s16','vmlacc.s16','vmlalo.s16','vmlami.s16','vmlapl.s16','vmlavs.s16','vmlavc.s16','vmlahi.s16','vmlals.s16','vmlage.s16','vmlalt.s16','vmlagt.s16','vmlale.s16', + 'vmlaeq.s32','vmlane.s32','vmlacs.s32','vmlahs.s32','vmlacc.s32','vmlalo.s32','vmlami.s32','vmlapl.s32','vmlavs.s32','vmlavc.s32','vmlahi.s32','vmlals.s32','vmlage.s32','vmlalt.s32','vmlagt.s32','vmlale.s32', + 'vmlaeq.u8','vmlane.u8','vmlacs.u8','vmlahs.u8','vmlacc.u8','vmlalo.u8','vmlami.u8','vmlapl.u8','vmlavs.u8','vmlavc.u8','vmlahi.u8','vmlals.u8','vmlage.u8','vmlalt.u8','vmlagt.u8','vmlale.u8', + 'vmlaeq.u16','vmlane.u16','vmlacs.u16','vmlahs.u16','vmlacc.u16','vmlalo.u16','vmlami.u16','vmlapl.u16','vmlavs.u16','vmlavc.u16','vmlahi.u16','vmlals.u16','vmlage.u16','vmlalt.u16','vmlagt.u16','vmlale.u16', + 'vmlaeq.u32','vmlane.u32','vmlacs.u32','vmlahs.u32','vmlacc.u32','vmlalo.u32','vmlami.u32','vmlapl.u32','vmlavs.u32','vmlavc.u32','vmlahi.u32','vmlals.u32','vmlage.u32','vmlalt.u32','vmlagt.u32','vmlale.u32', + 'vmlaeq.i8','vmlane.i8','vmlacs.i8','vmlahs.i8','vmlacc.i8','vmlalo.i8','vmlami.i8','vmlapl.i8','vmlavs.i8','vmlavc.i8','vmlahi.i8','vmlals.i8','vmlage.i8','vmlalt.i8','vmlagt.i8','vmlale.i8', + 'vmlaeq.i16','vmlane.i16','vmlacs.i16','vmlahs.i16','vmlacc.i16','vmlalo.i16','vmlami.i16','vmlapl.i16','vmlavs.i16','vmlavc.i16','vmlahi.i16','vmlals.i16','vmlage.i16','vmlalt.i16','vmlagt.i16','vmlale.i16', + 'vmlaeq.i32','vmlane.i32','vmlacs.i32','vmlahs.i32','vmlacc.i32','vmlalo.i32','vmlami.i32','vmlapl.i32','vmlavs.i32','vmlavc.i32','vmlahi.i32','vmlals.i32','vmlage.i32','vmlalt.i32','vmlagt.i32','vmlale.i32', + + 'vmlseq.s8','vmlsne.s8','vmlscs.s8','vmlshs.s8','vmlscc.s8','vmlslo.s8','vmlsmi.s8','vmlspl.s8','vmlsvs.s8','vmlsvc.s8','vmlshi.s8','vmlsls.s8','vmlsge.s8','vmlslt.s8','vmlsgt.s8','vmlsle.s8', + 'vmlseq.s16','vmlsne.s16','vmlscs.s16','vmlshs.s16','vmlscc.s16','vmlslo.s16','vmlsmi.s16','vmlspl.s16','vmlsvs.s16','vmlsvc.s16','vmlshi.s16','vmlsls.s16','vmlsge.s16','vmlslt.s16','vmlsgt.s16','vmlsle.s16', + 'vmlseq.s32','vmlsne.s32','vmlscs.s32','vmlshs.s32','vmlscc.s32','vmlslo.s32','vmlsmi.s32','vmlspl.s32','vmlsvs.s32','vmlsvc.s32','vmlshi.s32','vmlsls.s32','vmlsge.s32','vmlslt.s32','vmlsgt.s32','vmlsle.s32', + 'vmlseq.u8','vmlsne.u8','vmlscs.u8','vmlshs.u8','vmlscc.u8','vmlslo.u8','vmlsmi.u8','vmlspl.u8','vmlsvs.u8','vmlsvc.u8','vmlshi.u8','vmlsls.u8','vmlsge.u8','vmlslt.u8','vmlsgt.u8','vmlsle.u8', + 'vmlseq.u16','vmlsne.u16','vmlscs.u16','vmlshs.u16','vmlscc.u16','vmlslo.u16','vmlsmi.u16','vmlspl.u16','vmlsvs.u16','vmlsvc.u16','vmlshi.u16','vmlsls.u16','vmlsge.u16','vmlslt.u16','vmlsgt.u16','vmlsle.u16', + 'vmlseq.u32','vmlsne.u32','vmlscs.u32','vmlshs.u32','vmlscc.u32','vmlslo.u32','vmlsmi.u32','vmlspl.u32','vmlsvs.u32','vmlsvc.u32','vmlshi.u32','vmlsls.u32','vmlsge.u32','vmlslt.u32','vmlsgt.u32','vmlsle.u32', + 'vmlseq.i8','vmlsne.i8','vmlscs.i8','vmlshs.i8','vmlscc.i8','vmlslo.i8','vmlsmi.i8','vmlspl.i8','vmlsvs.i8','vmlsvc.i8','vmlshi.i8','vmlsls.i8','vmlsge.i8','vmlslt.i8','vmlsgt.i8','vmlsle.i8', + 'vmlseq.i16','vmlsne.i16','vmlscs.i16','vmlshs.i16','vmlscc.i16','vmlslo.i16','vmlsmi.i16','vmlspl.i16','vmlsvs.i16','vmlsvc.i16','vmlshi.i16','vmlsls.i16','vmlsge.i16','vmlslt.i16','vmlsgt.i16','vmlsle.i16', + 'vmlseq.i32','vmlsne.i32','vmlscs.i32','vmlshs.i32','vmlscc.i32','vmlslo.i32','vmlsmi.i32','vmlspl.i32','vmlsvs.i32','vmlsvc.i32','vmlshi.i32','vmlsls.i32','vmlsge.i32','vmlslt.i32','vmlsgt.i32','vmlsle.i32', + + 'vmuleq.s8','vmulne.s8','vmulcs.s8','vmulhs.s8','vmulcc.s8','vmullo.s8','vmulmi.s8','vmulpl.s8','vmulvs.s8','vmulvc.s8','vmulhi.s8','vmulls.s8','vmulge.s8','vmullt.s8','vmulgt.s8','vmulle.s8', + 'vmuleq.s16','vmulne.s16','vmulcs.s16','vmulhs.s16','vmulcc.s16','vmullo.s16','vmulmi.s16','vmulpl.s16','vmulvs.s16','vmulvc.s16','vmulhi.s16','vmulls.s16','vmulge.s16','vmullt.s16','vmulgt.s16','vmulle.s16', + 'vmuleq.s32','vmulne.s32','vmulcs.s32','vmulhs.s32','vmulcc.s32','vmullo.s32','vmulmi.s32','vmulpl.s32','vmulvs.s32','vmulvc.s32','vmulhi.s32','vmulls.s32','vmulge.s32','vmullt.s32','vmulgt.s32','vmulle.s32', + 'vmuleq.u8','vmulne.u8','vmulcs.u8','vmulhs.u8','vmulcc.u8','vmullo.u8','vmulmi.u8','vmulpl.u8','vmulvs.u8','vmulvc.u8','vmulhi.u8','vmulls.u8','vmulge.u8','vmullt.u8','vmulgt.u8','vmulle.u8', + 'vmuleq.u16','vmulne.u16','vmulcs.u16','vmulhs.u16','vmulcc.u16','vmullo.u16','vmulmi.u16','vmulpl.u16','vmulvs.u16','vmulvc.u16','vmulhi.u16','vmulls.u16','vmulge.u16','vmullt.u16','vmulgt.u16','vmulle.u16', + 'vmuleq.u32','vmulne.u32','vmulcs.u32','vmulhs.u32','vmulcc.u32','vmullo.u32','vmulmi.u32','vmulpl.u32','vmulvs.u32','vmulvc.u32','vmulhi.u32','vmulls.u32','vmulge.u32','vmullt.u32','vmulgt.u32','vmulle.u32', + 'vmuleq.i8','vmulne.i8','vmulcs.i8','vmulhs.i8','vmulcc.i8','vmullo.i8','vmulmi.i8','vmulpl.i8','vmulvs.i8','vmulvc.i8','vmulhi.i8','vmulls.i8','vmulge.i8','vmullt.i8','vmulgt.i8','vmulle.i8', + 'vmuleq.i16','vmulne.i16','vmulcs.i16','vmulhs.i16','vmulcc.i16','vmullo.i16','vmulmi.i16','vmulpl.i16','vmulvs.i16','vmulvc.i16','vmulhi.i16','vmulls.i16','vmulge.i16','vmullt.i16','vmulgt.i16','vmulle.i16', + 'vmuleq.i32','vmulne.i32','vmulcs.i32','vmulhs.i32','vmulcc.i32','vmullo.i32','vmulmi.i32','vmulpl.i32','vmulvs.i32','vmulvc.i32','vmulhi.i32','vmulls.i32','vmulge.i32','vmullt.i32','vmulgt.i32','vmulle.i32', + 'vmuleq.p8','vmulne.p8','vmulcs.p8','vmulhs.p8','vmulcc.p8','vmullo.p8','vmulmi.p8','vmulpl.p8','vmulvs.p8','vmulvc.p8','vmulhi.p8','vmulls.p8','vmulge.p8','vmullt.p8','vmulgt.p8','vmulle.p8', + + 'vrshrneq.i16','vrshrnne.i16','vrshrncs.i16','vrshrnhs.i16','vrshrncc.i16','vrshrnlo.i16','vrshrnmi.i16','vrshrnpl.i16','vrshrnvs.i16','vrshrnvc.i16','vrshrnhi.i16','vrshrnls.i16','vrshrnge.i16','vrshrnlt.i16','vrshrngt.i16','vrshrnle.i16', + 'vrshrneq.i32','vrshrnne.i32','vrshrncs.i32','vrshrnhs.i32','vrshrncc.i32','vrshrnlo.i32','vrshrnmi.i32','vrshrnpl.i32','vrshrnvs.i32','vrshrnvc.i32','vrshrnhi.i32','vrshrnls.i32','vrshrnge.i32','vrshrnlt.i32','vrshrngt.i32','vrshrnle.i32', + 'vrshrneq.i64','vrshrnne.i64','vrshrncs.i64','vrshrnhs.i64','vrshrncc.i64','vrshrnlo.i64','vrshrnmi.i64','vrshrnpl.i64','vrshrnvs.i64','vrshrnvc.i64','vrshrnhi.i64','vrshrnls.i64','vrshrnge.i64','vrshrnlt.i64','vrshrngt.i64','vrshrnle.i64', + + 'vshrneq.i16','vshrnne.i16','vshrncs.i16','vshrnhs.i16','vshrncc.i16','vshrnlo.i16','vshrnmi.i16','vshrnpl.i16','vshrnvs.i16','vshrnvc.i16','vshrnhi.i16','vshrnls.i16','vshrnge.i16','vshrnlt.i16','vshrngt.i16','vshrnle.i16', + 'vshrneq.i32','vshrnne.i32','vshrncs.i32','vshrnhs.i32','vshrncc.i32','vshrnlo.i32','vshrnmi.i32','vshrnpl.i32','vshrnvs.i32','vshrnvc.i32','vshrnhi.i32','vshrnls.i32','vshrnge.i32','vshrnlt.i32','vshrngt.i32','vshrnle.i32', + 'vshrneq.i64','vshrnne.i64','vshrncs.i64','vshrnhs.i64','vshrncc.i64','vshrnlo.i64','vshrnmi.i64','vshrnpl.i64','vshrnvs.i64','vshrnvc.i64','vshrnhi.i64','vshrnls.i64','vshrnge.i64','vshrnlt.i64','vshrngt.i64','vshrnle.i64', + + 'vshleq.i8','vshlne.i8','vshlcs.i8','vshlhs.i8','vshlcc.i8','vshllo.i8','vshlmi.i8','vshlpl.i8','vshlvs.i8','vshlvc.i8','vshlhi.i8','vshlls.i8','vshlge.i8','vshllt.i8','vshlgt.i8','vshlle.i8', + 'vshleq.i16','vshlne.i16','vshlcs.i16','vshlhs.i16','vshlcc.i16','vshllo.i16','vshlmi.i16','vshlpl.i16','vshlvs.i16','vshlvc.i16','vshlhi.i16','vshlls.i16','vshlge.i16','vshllt.i16','vshlgt.i16','vshlle.i16', + 'vshleq.i32','vshlne.i32','vshlcs.i32','vshlhs.i32','vshlcc.i32','vshllo.i32','vshlmi.i32','vshlpl.i32','vshlvs.i32','vshlvc.i32','vshlhi.i32','vshlls.i32','vshlge.i32','vshllt.i32','vshlgt.i32','vshlle.i32', + 'vshleq.i64','vshlne.i64','vshlcs.i64','vshlhs.i64','vshlcc.i64','vshllo.i64','vshlmi.i64','vshlpl.i64','vshlvs.i64','vshlvc.i64','vshlhi.i64','vshlls.i64','vshlge.i64','vshllt.i64','vshlgt.i64','vshlle.i64', + + 'vshlleq.i8','vshllne.i8','vshllcs.i8','vshllhs.i8','vshllcc.i8','vshlllo.i8','vshllmi.i8','vshllpl.i8','vshllvs.i8','vshllvc.i8','vshllhi.i8','vshllls.i8','vshllge.i8','vshlllt.i8','vshllgt.i8','vshllle.i8', + 'vshlleq.i16','vshllne.i16','vshllcs.i16','vshllhs.i16','vshllcc.i16','vshlllo.i16','vshllmi.i16','vshllpl.i16','vshllvs.i16','vshllvc.i16','vshllhi.i16','vshllls.i16','vshllge.i16','vshlllt.i16','vshllgt.i16','vshllle.i16', + 'vshlleq.i32','vshllne.i32','vshllcs.i32','vshllhs.i32','vshllcc.i32','vshlllo.i32','vshllmi.i32','vshllpl.i32','vshllvs.i32','vshllvc.i32','vshllhi.i32','vshllls.i32','vshllge.i32','vshlllt.i32','vshllgt.i32','vshllle.i32' + ), + /* Conditional NEON SIMD Signed Integer Instructions */ + 32 => array( + 'vabaeq.s8','vabane.s8','vabacs.s8','vabahs.s8','vabacc.s8','vabalo.s8','vabami.s8','vabapl.s8','vabavs.s8','vabavc.s8','vabahi.s8','vabals.s8','vabage.s8','vabalt.s8','vabagt.s8','vabale.s8', + 'vabaeq.s16','vabane.s16','vabacs.s16','vabahs.s16','vabacc.s16','vabalo.s16','vabami.s16','vabapl.s16','vabavs.s16','vabavc.s16','vabahi.s16','vabals.s16','vabage.s16','vabalt.s16','vabagt.s16','vabale.s16', + 'vabaeq.s32','vabane.s32','vabacs.s32','vabahs.s32','vabacc.s32','vabalo.s32','vabami.s32','vabapl.s32','vabavs.s32','vabavc.s32','vabahi.s32','vabals.s32','vabage.s32','vabalt.s32','vabagt.s32','vabale.s32', + + 'vabaleq.s8','vabalne.s8','vabalcs.s8','vabalhs.s8','vabalcc.s8','vaballo.s8','vabalmi.s8','vabalpl.s8','vabalvs.s8','vabalvc.s8','vabalhi.s8','vaballs.s8','vabalge.s8','vaballt.s8','vabalgt.s8','vaballe.s8', + 'vabaleq.s16','vabalne.s16','vabalcs.s16','vabalhs.s16','vabalcc.s16','vaballo.s16','vabalmi.s16','vabalpl.s16','vabalvs.s16','vabalvc.s16','vabalhi.s16','vaballs.s16','vabalge.s16','vaballt.s16','vabalgt.s16','vaballe.s16', + 'vabaleq.s32','vabalne.s32','vabalcs.s32','vabalhs.s32','vabalcc.s32','vaballo.s32','vabalmi.s32','vabalpl.s32','vabalvs.s32','vabalvc.s32','vabalhi.s32','vaballs.s32','vabalge.s32','vaballt.s32','vabalgt.s32','vaballe.s32', + + 'vabdeq.s8','vabdne.s8','vabdcs.s8','vabdhs.s8','vabdcc.s8','vabdlo.s8','vabdmi.s8','vabdpl.s8','vabdvs.s8','vabdvc.s8','vabdhi.s8','vabdls.s8','vabdge.s8','vabdlt.s8','vabdgt.s8','vabdle.s8', + 'vabdeq.s16','vabdne.s16','vabdcs.s16','vabdhs.s16','vabdcc.s16','vabdlo.s16','vabdmi.s16','vabdpl.s16','vabdvs.s16','vabdvc.s16','vabdhi.s16','vabdls.s16','vabdge.s16','vabdlt.s16','vabdgt.s16','vabdle.s16', + 'vabdeq.s32','vabdne.s32','vabdcs.s32','vabdhs.s32','vabdcc.s32','vabdlo.s32','vabdmi.s32','vabdpl.s32','vabdvs.s32','vabdvc.s32','vabdhi.s32','vabdls.s32','vabdge.s32','vabdlt.s32','vabdgt.s32','vabdle.s32', + + 'vabseq.s8','vabsne.s8','vabscs.s8','vabshs.s8','vabscc.s8','vabslo.s8','vabsmi.s8','vabspl.s8','vabsvs.s8','vabsvc.s8','vabshi.s8','vabsls.s8','vabsge.s8','vabslt.s8','vabsgt.s8','vabsle.s8', + 'vabseq.s16','vabsne.s16','vabscs.s16','vabshs.s16','vabscc.s16','vabslo.s16','vabsmi.s16','vabspl.s16','vabsvs.s16','vabsvc.s16','vabshi.s16','vabsls.s16','vabsge.s16','vabslt.s16','vabsgt.s16','vabsle.s16', + 'vabseq.s32','vabsne.s32','vabscs.s32','vabshs.s32','vabscc.s32','vabslo.s32','vabsmi.s32','vabspl.s32','vabsvs.s32','vabsvc.s32','vabshi.s32','vabsls.s32','vabsge.s32','vabslt.s32','vabsgt.s32','vabsle.s32', + + 'vaddleq.s8','vaddlne.s8','vaddlcs.s8','vaddlhs.s8','vaddlcc.s8','vaddllo.s8','vaddlmi.s8','vaddlpl.s8','vaddlvs.s8','vaddlvc.s8','vaddlhi.s8','vaddlls.s8','vaddlge.s8','vaddllt.s8','vaddlgt.s8','vaddlle.s8', + 'vaddleq.s16','vaddlne.s16','vaddlcs.s16','vaddlhs.s16','vaddlcc.s16','vaddllo.s16','vaddlmi.s16','vaddlpl.s16','vaddlvs.s16','vaddlvc.s16','vaddlhi.s16','vaddlls.s16','vaddlge.s16','vaddllt.s16','vaddlgt.s16','vaddlle.s16', + 'vaddleq.s32','vaddlne.s32','vaddlcs.s32','vaddlhs.s32','vaddlcc.s32','vaddllo.s32','vaddlmi.s32','vaddlpl.s32','vaddlvs.s32','vaddlvc.s32','vaddlhi.s32','vaddlls.s32','vaddlge.s32','vaddllt.s32','vaddlgt.s32','vaddlle.s32', + + 'vcgeeq.s8','vcgene.s8','vcgecs.s8','vcgehs.s8','vcgecc.s8','vcgelo.s8','vcgemi.s8','vcgepl.s8','vcgevs.s8','vcgevc.s8','vcgehi.s8','vcgels.s8','vcgege.s8','vcgelt.s8','vcgegt.s8','vcgele.s8', + 'vcgeeq.s16','vcgene.s16','vcgecs.s16','vcgehs.s16','vcgecc.s16','vcgelo.s16','vcgemi.s16','vcgepl.s16','vcgevs.s16','vcgevc.s16','vcgehi.s16','vcgels.s16','vcgege.s16','vcgelt.s16','vcgegt.s16','vcgele.s16', + 'vcgeeq.s32','vcgene.s32','vcgecs.s32','vcgehs.s32','vcgecc.s32','vcgelo.s32','vcgemi.s32','vcgepl.s32','vcgevs.s32','vcgevc.s32','vcgehi.s32','vcgels.s32','vcgege.s32','vcgelt.s32','vcgegt.s32','vcgele.s32', + + 'vcleeq.s8','vclene.s8','vclecs.s8','vclehs.s8','vclecc.s8','vclelo.s8','vclemi.s8','vclepl.s8','vclevs.s8','vclevc.s8','vclehi.s8','vclels.s8','vclege.s8','vclelt.s8','vclegt.s8','vclele.s8', + 'vcleeq.s16','vclene.s16','vclecs.s16','vclehs.s16','vclecc.s16','vclelo.s16','vclemi.s16','vclepl.s16','vclevs.s16','vclevc.s16','vclehi.s16','vclels.s16','vclege.s16','vclelt.s16','vclegt.s16','vclele.s16', + 'vcleeq.s32','vclene.s32','vclecs.s32','vclehs.s32','vclecc.s32','vclelo.s32','vclemi.s32','vclepl.s32','vclevs.s32','vclevc.s32','vclehi.s32','vclels.s32','vclege.s32','vclelt.s32','vclegt.s32','vclele.s32', + + 'vcgteq.s8','vcgtne.s8','vcgtcs.s8','vcgths.s8','vcgtcc.s8','vcgtlo.s8','vcgtmi.s8','vcgtpl.s8','vcgtvs.s8','vcgtvc.s8','vcgthi.s8','vcgtls.s8','vcgtge.s8','vcgtlt.s8','vcgtgt.s8','vcgtle.s8', + 'vcgteq.s16','vcgtne.s16','vcgtcs.s16','vcgths.s16','vcgtcc.s16','vcgtlo.s16','vcgtmi.s16','vcgtpl.s16','vcgtvs.s16','vcgtvc.s16','vcgthi.s16','vcgtls.s16','vcgtge.s16','vcgtlt.s16','vcgtgt.s16','vcgtle.s16', + 'vcgteq.s32','vcgtne.s32','vcgtcs.s32','vcgths.s32','vcgtcc.s32','vcgtlo.s32','vcgtmi.s32','vcgtpl.s32','vcgtvs.s32','vcgtvc.s32','vcgthi.s32','vcgtls.s32','vcgtge.s32','vcgtlt.s32','vcgtgt.s32','vcgtle.s32', + + 'vclteq.s8','vcltne.s8','vcltcs.s8','vclths.s8','vcltcc.s8','vcltlo.s8','vcltmi.s8','vcltpl.s8','vcltvs.s8','vcltvc.s8','vclthi.s8','vcltls.s8','vcltge.s8','vcltlt.s8','vcltgt.s8','vcltle.s8', + 'vclteq.s16','vcltne.s16','vcltcs.s16','vclths.s16','vcltcc.s16','vcltlo.s16','vcltmi.s16','vcltpl.s16','vcltvs.s16','vcltvc.s16','vclthi.s16','vcltls.s16','vcltge.s16','vcltlt.s16','vcltgt.s16','vcltle.s16', + 'vclteq.s32','vcltne.s32','vcltcs.s32','vclths.s32','vcltcc.s32','vcltlo.s32','vcltmi.s32','vcltpl.s32','vcltvs.s32','vcltvc.s32','vclthi.s32','vcltls.s32','vcltge.s32','vcltlt.s32','vcltgt.s32','vcltle.s32', + + 'vclseq.s8','vclsne.s8','vclscs.s8','vclshs.s8','vclscc.s8','vclslo.s8','vclsmi.s8','vclspl.s8','vclsvs.s8','vclsvc.s8','vclshi.s8','vclsls.s8','vclsge.s8','vclslt.s8','vclsgt.s8','vclsle.s8', + 'vclseq.s16','vclsne.s16','vclscs.s16','vclshs.s16','vclscc.s16','vclslo.s16','vclsmi.s16','vclspl.s16','vclsvs.s16','vclsvc.s16','vclshi.s16','vclsls.s16','vclsge.s16','vclslt.s16','vclsgt.s16','vclsle.s16', + 'vclseq.s32','vclsne.s32','vclscs.s32','vclshs.s32','vclscc.s32','vclslo.s32','vclsmi.s32','vclspl.s32','vclsvs.s32','vclsvc.s32','vclshi.s32','vclsls.s32','vclsge.s32','vclslt.s32','vclsgt.s32','vclsle.s32', + + 'vaddweq.s8','vaddwne.s8','vaddwcs.s8','vaddwhs.s8','vaddwcc.s8','vaddwlo.s8','vaddwmi.s8','vaddwpl.s8','vaddwvs.s8','vaddwvc.s8','vaddwhi.s8','vaddwls.s8','vaddwge.s8','vaddwlt.s8','vaddwgt.s8','vaddwle.s8', + 'vaddweq.s16','vaddwne.s16','vaddwcs.s16','vaddwhs.s16','vaddwcc.s16','vaddwlo.s16','vaddwmi.s16','vaddwpl.s16','vaddwvs.s16','vaddwvc.s16','vaddwhi.s16','vaddwls.s16','vaddwge.s16','vaddwlt.s16','vaddwgt.s16','vaddwle.s16', + 'vaddweq.s32','vaddwne.s32','vaddwcs.s32','vaddwhs.s32','vaddwcc.s32','vaddwlo.s32','vaddwmi.s32','vaddwpl.s32','vaddwvs.s32','vaddwvc.s32','vaddwhi.s32','vaddwls.s32','vaddwge.s32','vaddwlt.s32','vaddwgt.s32','vaddwle.s32', + + 'vhaddeq.s8','vhaddne.s8','vhaddcs.s8','vhaddhs.s8','vhaddcc.s8','vhaddlo.s8','vhaddmi.s8','vhaddpl.s8','vhaddvs.s8','vhaddvc.s8','vhaddhi.s8','vhaddls.s8','vhaddge.s8','vhaddlt.s8','vhaddgt.s8','vhaddle.s8', + 'vhaddeq.s16','vhaddne.s16','vhaddcs.s16','vhaddhs.s16','vhaddcc.s16','vhaddlo.s16','vhaddmi.s16','vhaddpl.s16','vhaddvs.s16','vhaddvc.s16','vhaddhi.s16','vhaddls.s16','vhaddge.s16','vhaddlt.s16','vhaddgt.s16','vhaddle.s16', + 'vhaddeq.s32','vhaddne.s32','vhaddcs.s32','vhaddhs.s32','vhaddcc.s32','vhaddlo.s32','vhaddmi.s32','vhaddpl.s32','vhaddvs.s32','vhaddvc.s32','vhaddhi.s32','vhaddls.s32','vhaddge.s32','vhaddlt.s32','vhaddgt.s32','vhaddle.s32', + + 'vhsubeq.s8','vhsubne.s8','vhsubcs.s8','vhsubhs.s8','vhsubcc.s8','vhsublo.s8','vhsubmi.s8','vhsubpl.s8','vhsubvs.s8','vhsubvc.s8','vhsubhi.s8','vhsubls.s8','vhsubge.s8','vhsublt.s8','vhsubgt.s8','vhsuble.s8', + 'vhsubeq.s16','vhsubne.s16','vhsubcs.s16','vhsubhs.s16','vhsubcc.s16','vhsublo.s16','vhsubmi.s16','vhsubpl.s16','vhsubvs.s16','vhsubvc.s16','vhsubhi.s16','vhsubls.s16','vhsubge.s16','vhsublt.s16','vhsubgt.s16','vhsuble.s16', + 'vhsubeq.s32','vhsubne.s32','vhsubcs.s32','vhsubhs.s32','vhsubcc.s32','vhsublo.s32','vhsubmi.s32','vhsubpl.s32','vhsubvs.s32','vhsubvc.s32','vhsubhi.s32','vhsubls.s32','vhsubge.s32','vhsublt.s32','vhsubgt.s32','vhsuble.s32', + + 'vmaxeq.s8','vmaxne.s8','vmaxcs.s8','vmaxhs.s8','vmaxcc.s8','vmaxlo.s8','vmaxmi.s8','vmaxpl.s8','vmaxvs.s8','vmaxvc.s8','vmaxhi.s8','vmaxls.s8','vmaxge.s8','vmaxlt.s8','vmaxgt.s8','vmaxle.s8', + 'vmaxeq.s16','vmaxne.s16','vmaxcs.s16','vmaxhs.s16','vmaxcc.s16','vmaxlo.s16','vmaxmi.s16','vmaxpl.s16','vmaxvs.s16','vmaxvc.s16','vmaxhi.s16','vmaxls.s16','vmaxge.s16','vmaxlt.s16','vmaxgt.s16','vmaxle.s16', + 'vmaxeq.s32','vmaxne.s32','vmaxcs.s32','vmaxhs.s32','vmaxcc.s32','vmaxlo.s32','vmaxmi.s32','vmaxpl.s32','vmaxvs.s32','vmaxvc.s32','vmaxhi.s32','vmaxls.s32','vmaxge.s32','vmaxlt.s32','vmaxgt.s32','vmaxle.s32', + + 'vmineq.s8','vminne.s8','vmincs.s8','vminhs.s8','vmincc.s8','vminlo.s8','vminmi.s8','vminpl.s8','vminvs.s8','vminvc.s8','vminhi.s8','vminls.s8','vminge.s8','vminlt.s8','vmingt.s8','vminle.s8', + 'vmineq.s16','vminne.s16','vmincs.s16','vminhs.s16','vmincc.s16','vminlo.s16','vminmi.s16','vminpl.s16','vminvs.s16','vminvc.s16','vminhi.s16','vminls.s16','vminge.s16','vminlt.s16','vmingt.s16','vminle.s16', + 'vmineq.s32','vminne.s32','vmincs.s32','vminhs.s32','vmincc.s32','vminlo.s32','vminmi.s32','vminpl.s32','vminvs.s32','vminvc.s32','vminhi.s32','vminls.s32','vminge.s32','vminlt.s32','vmingt.s32','vminle.s32', + + 'vmlaleq.s8','vmlalne.s8','vmlalcs.s8','vmlalhs.s8','vmlalcc.s8','vmlallo.s8','vmlalmi.s8','vmlalpl.s8','vmlalvs.s8','vmlalvc.s8','vmlalhi.s8','vmlalls.s8','vmlalge.s8','vmlallt.s8','vmlalgt.s8','vmlalle.s8', + 'vmlaleq.s16','vmlalne.s16','vmlalcs.s16','vmlalhs.s16','vmlalcc.s16','vmlallo.s16','vmlalmi.s16','vmlalpl.s16','vmlalvs.s16','vmlalvc.s16','vmlalhi.s16','vmlalls.s16','vmlalge.s16','vmlallt.s16','vmlalgt.s16','vmlalle.s16', + 'vmlaleq.s32','vmlalne.s32','vmlalcs.s32','vmlalhs.s32','vmlalcc.s32','vmlallo.s32','vmlalmi.s32','vmlalpl.s32','vmlalvs.s32','vmlalvc.s32','vmlalhi.s32','vmlalls.s32','vmlalge.s32','vmlallt.s32','vmlalgt.s32','vmlalle.s32', + + 'vmlsleq.s8','vmlslne.s8','vmlslcs.s8','vmlslhs.s8','vmlslcc.s8','vmlsllo.s8','vmlslmi.s8','vmlslpl.s8','vmlslvs.s8','vmlslvc.s8','vmlslhi.s8','vmlslls.s8','vmlslge.s8','vmlsllt.s8','vmlslgt.s8','vmlslle.s8', + 'vmlsleq.s16','vmlslne.s16','vmlslcs.s16','vmlslhs.s16','vmlslcc.s16','vmlsllo.s16','vmlslmi.s16','vmlslpl.s16','vmlslvs.s16','vmlslvc.s16','vmlslhi.s16','vmlslls.s16','vmlslge.s16','vmlsllt.s16','vmlslgt.s16','vmlslle.s16', + 'vmlsleq.s32','vmlslne.s32','vmlslcs.s32','vmlslhs.s32','vmlslcc.s32','vmlsllo.s32','vmlslmi.s32','vmlslpl.s32','vmlslvs.s32','vmlslvc.s32','vmlslhi.s32','vmlslls.s32','vmlslge.s32','vmlsllt.s32','vmlslgt.s32','vmlslle.s32', + + 'vnegeq.s8','vnegne.s8','vnegcs.s8','vneghs.s8','vnegcc.s8','vneglo.s8','vnegmi.s8','vnegpl.s8','vnegvs.s8','vnegvc.s8','vneghi.s8','vnegls.s8','vnegge.s8','vneglt.s8','vneggt.s8','vnegle.s8', + 'vnegeq.s16','vnegne.s16','vnegcs.s16','vneghs.s16','vnegcc.s16','vneglo.s16','vnegmi.s16','vnegpl.s16','vnegvs.s16','vnegvc.s16','vneghi.s16','vnegls.s16','vnegge.s16','vneglt.s16','vneggt.s16','vnegle.s16', + 'vnegeq.s32','vnegne.s32','vnegcs.s32','vneghs.s32','vnegcc.s32','vneglo.s32','vnegmi.s32','vnegpl.s32','vnegvs.s32','vnegvc.s32','vneghi.s32','vnegls.s32','vnegge.s32','vneglt.s32','vneggt.s32','vnegle.s32', + + 'vpadaleq.s8','vpadalne.s8','vpadalcs.s8','vpadalhs.s8','vpadalcc.s8','vpadallo.s8','vpadalmi.s8','vpadalpl.s8','vpadalvs.s8','vpadalvc.s8','vpadalhi.s8','vpadalls.s8','vpadalge.s8','vpadallt.s8','vpadalgt.s8','vpadalle.s8', + 'vpadaleq.s16','vpadalne.s16','vpadalcs.s16','vpadalhs.s16','vpadalcc.s16','vpadallo.s16','vpadalmi.s16','vpadalpl.s16','vpadalvs.s16','vpadalvc.s16','vpadalhi.s16','vpadalls.s16','vpadalge.s16','vpadallt.s16','vpadalgt.s16','vpadalle.s16', + 'vpadaleq.s32','vpadalne.s32','vpadalcs.s32','vpadalhs.s32','vpadalcc.s32','vpadallo.s32','vpadalmi.s32','vpadalpl.s32','vpadalvs.s32','vpadalvc.s32','vpadalhi.s32','vpadalls.s32','vpadalge.s32','vpadallt.s32','vpadalgt.s32','vpadalle.s32', + + 'vmovleq.s8','vmovlne.s8','vmovlcs.s8','vmovlhs.s8','vmovlcc.s8','vmovllo.s8','vmovlmi.s8','vmovlpl.s8','vmovlvs.s8','vmovlvc.s8','vmovlhi.s8','vmovlls.s8','vmovlge.s8','vmovllt.s8','vmovlgt.s8','vmovlle.s8', + 'vmovleq.s16','vmovlne.s16','vmovlcs.s16','vmovlhs.s16','vmovlcc.s16','vmovllo.s16','vmovlmi.s16','vmovlpl.s16','vmovlvs.s16','vmovlvc.s16','vmovlhi.s16','vmovlls.s16','vmovlge.s16','vmovllt.s16','vmovlgt.s16','vmovlle.s16', + 'vmovleq.s32','vmovlne.s32','vmovlcs.s32','vmovlhs.s32','vmovlcc.s32','vmovllo.s32','vmovlmi.s32','vmovlpl.s32','vmovlvs.s32','vmovlvc.s32','vmovlhi.s32','vmovlls.s32','vmovlge.s32','vmovllt.s32','vmovlgt.s32','vmovlle.s32', + + 'vmulleq.s8','vmullne.s8','vmullcs.s8','vmullhs.s8','vmullcc.s8','vmulllo.s8','vmullmi.s8','vmullpl.s8','vmullvs.s8','vmullvc.s8','vmullhi.s8','vmullls.s8','vmullge.s8','vmulllt.s8','vmullgt.s8','vmullle.s8', + 'vmulleq.s16','vmullne.s16','vmullcs.s16','vmullhs.s16','vmullcc.s16','vmulllo.s16','vmullmi.s16','vmullpl.s16','vmullvs.s16','vmullvc.s16','vmullhi.s16','vmullls.s16','vmullge.s16','vmulllt.s16','vmullgt.s16','vmullle.s16', + 'vmulleq.s32','vmullne.s32','vmullcs.s32','vmullhs.s32','vmullcc.s32','vmulllo.s32','vmullmi.s32','vmullpl.s32','vmullvs.s32','vmullvc.s32','vmullhi.s32','vmullls.s32','vmullge.s32','vmulllt.s32','vmullgt.s32','vmullle.s32', + + 'vpaddleq.s8','vpaddlne.s8','vpaddlcs.s8','vpaddlhs.s8','vpaddlcc.s8','vpaddllo.s8','vpaddlmi.s8','vpaddlpl.s8','vpaddlvs.s8','vpaddlvc.s8','vpaddlhi.s8','vpaddlls.s8','vpaddlge.s8','vpaddllt.s8','vpaddlgt.s8','vpaddlle.s8', + 'vpaddleq.s16','vpaddlne.s16','vpaddlcs.s16','vpaddlhs.s16','vpaddlcc.s16','vpaddllo.s16','vpaddlmi.s16','vpaddlpl.s16','vpaddlvs.s16','vpaddlvc.s16','vpaddlhi.s16','vpaddlls.s16','vpaddlge.s16','vpaddllt.s16','vpaddlgt.s16','vpaddlle.s16', + 'vpaddleq.s32','vpaddlne.s32','vpaddlcs.s32','vpaddlhs.s32','vpaddlcc.s32','vpaddllo.s32','vpaddlmi.s32','vpaddlpl.s32','vpaddlvs.s32','vpaddlvc.s32','vpaddlhi.s32','vpaddlls.s32','vpaddlge.s32','vpaddllt.s32','vpaddlgt.s32','vpaddlle.s32', + + 'vpmaxeq.s8','vpmaxne.s8','vpmaxcs.s8','vpmaxhs.s8','vpmaxcc.s8','vpmaxlo.s8','vpmaxmi.s8','vpmaxpl.s8','vpmaxvs.s8','vpmaxvc.s8','vpmaxhi.s8','vpmaxls.s8','vpmaxge.s8','vpmaxlt.s8','vpmaxgt.s8','vpmaxle.s8', + 'vpmaxeq.s16','vpmaxne.s16','vpmaxcs.s16','vpmaxhs.s16','vpmaxcc.s16','vpmaxlo.s16','vpmaxmi.s16','vpmaxpl.s16','vpmaxvs.s16','vpmaxvc.s16','vpmaxhi.s16','vpmaxls.s16','vpmaxge.s16','vpmaxlt.s16','vpmaxgt.s16','vpmaxle.s16', + 'vpmaxeq.s32','vpmaxne.s32','vpmaxcs.s32','vpmaxhs.s32','vpmaxcc.s32','vpmaxlo.s32','vpmaxmi.s32','vpmaxpl.s32','vpmaxvs.s32','vpmaxvc.s32','vpmaxhi.s32','vpmaxls.s32','vpmaxge.s32','vpmaxlt.s32','vpmaxgt.s32','vpmaxle.s32', + + 'vpmineq.s8','vpminne.s8','vpmincs.s8','vpminhs.s8','vpmincc.s8','vpminlo.s8','vpminmi.s8','vpminpl.s8','vpminvs.s8','vpminvc.s8','vpminhi.s8','vpminls.s8','vpminge.s8','vpminlt.s8','vpmingt.s8','vpminle.s8', + 'vpmineq.s16','vpminne.s16','vpmincs.s16','vpminhs.s16','vpmincc.s16','vpminlo.s16','vpminmi.s16','vpminpl.s16','vpminvs.s16','vpminvc.s16','vpminhi.s16','vpminls.s16','vpminge.s16','vpminlt.s16','vpmingt.s16','vpminle.s16', + 'vpmineq.s32','vpminne.s32','vpmincs.s32','vpminhs.s32','vpmincc.s32','vpminlo.s32','vpminmi.s32','vpminpl.s32','vpminvs.s32','vpminvc.s32','vpminhi.s32','vpminls.s32','vpminge.s32','vpminlt.s32','vpmingt.s32','vpminle.s32', + + 'vqabseq.s8','vqabsne.s8','vqabscs.s8','vqabshs.s8','vqabscc.s8','vqabslo.s8','vqabsmi.s8','vqabspl.s8','vqabsvs.s8','vqabsvc.s8','vqabshi.s8','vqabsls.s8','vqabsge.s8','vqabslt.s8','vqabsgt.s8','vqabsle.s8', + 'vqabseq.s16','vqabsne.s16','vqabscs.s16','vqabshs.s16','vqabscc.s16','vqabslo.s16','vqabsmi.s16','vqabspl.s16','vqabsvs.s16','vqabsvc.s16','vqabshi.s16','vqabsls.s16','vqabsge.s16','vqabslt.s16','vqabsgt.s16','vqabsle.s16', + 'vqabseq.s32','vqabsne.s32','vqabscs.s32','vqabshs.s32','vqabscc.s32','vqabslo.s32','vqabsmi.s32','vqabspl.s32','vqabsvs.s32','vqabsvc.s32','vqabshi.s32','vqabsls.s32','vqabsge.s32','vqabslt.s32','vqabsgt.s32','vqabsle.s32', + + 'vqaddeq.s8','vqaddne.s8','vqaddcs.s8','vqaddhs.s8','vqaddcc.s8','vqaddlo.s8','vqaddmi.s8','vqaddpl.s8','vqaddvs.s8','vqaddvc.s8','vqaddhi.s8','vqaddls.s8','vqaddge.s8','vqaddlt.s8','vqaddgt.s8','vqaddle.s8', + 'vqaddeq.s16','vqaddne.s16','vqaddcs.s16','vqaddhs.s16','vqaddcc.s16','vqaddlo.s16','vqaddmi.s16','vqaddpl.s16','vqaddvs.s16','vqaddvc.s16','vqaddhi.s16','vqaddls.s16','vqaddge.s16','vqaddlt.s16','vqaddgt.s16','vqaddle.s16', + 'vqaddeq.s32','vqaddne.s32','vqaddcs.s32','vqaddhs.s32','vqaddcc.s32','vqaddlo.s32','vqaddmi.s32','vqaddpl.s32','vqaddvs.s32','vqaddvc.s32','vqaddhi.s32','vqaddls.s32','vqaddge.s32','vqaddlt.s32','vqaddgt.s32','vqaddle.s32', + 'vqaddeq.s64','vqaddne.s64','vqaddcs.s64','vqaddhs.s64','vqaddcc.s64','vqaddlo.s64','vqaddmi.s64','vqaddpl.s64','vqaddvs.s64','vqaddvc.s64','vqaddhi.s64','vqaddls.s64','vqaddge.s64','vqaddlt.s64','vqaddgt.s64','vqaddle.s64', + + 'vqdmlaleq.s16','vqdmlalne.s16','vqdmlalcs.s16','vqdmlalhs.s16','vqdmlalcc.s16','vqdmlallo.s16','vqdmlalmi.s16','vqdmlalpl.s16','vqdmlalvs.s16','vqdmlalvc.s16','vqdmlalhi.s16','vqdmlalls.s16','vqdmlalge.s16','vqdmlallt.s16','vqdmlalgt.s16','vqdmlalle.s16', + 'vqdmlaleq.s32','vqdmlalne.s32','vqdmlalcs.s32','vqdmlalhs.s32','vqdmlalcc.s32','vqdmlallo.s32','vqdmlalmi.s32','vqdmlalpl.s32','vqdmlalvs.s32','vqdmlalvc.s32','vqdmlalhi.s32','vqdmlalls.s32','vqdmlalge.s32','vqdmlallt.s32','vqdmlalgt.s32','vqdmlalle.s32', + + 'vqdmlsleq.s16','vqdmlslne.s16','vqdmlslcs.s16','vqdmlslhs.s16','vqdmlslcc.s16','vqdmlsllo.s16','vqdmlslmi.s16','vqdmlslpl.s16','vqdmlslvs.s16','vqdmlslvc.s16','vqdmlslhi.s16','vqdmlslls.s16','vqdmlslge.s16','vqdmlsllt.s16','vqdmlslgt.s16','vqdmlslle.s16', + 'vqdmlsleq.s32','vqdmlslne.s32','vqdmlslcs.s32','vqdmlslhs.s32','vqdmlslcc.s32','vqdmlsllo.s32','vqdmlslmi.s32','vqdmlslpl.s32','vqdmlslvs.s32','vqdmlslvc.s32','vqdmlslhi.s32','vqdmlslls.s32','vqdmlslge.s32','vqdmlsllt.s32','vqdmlslgt.s32','vqdmlslle.s32', + + 'vqdmulheq.s16','vqdmulhne.s16','vqdmulhcs.s16','vqdmulhhs.s16','vqdmulhcc.s16','vqdmulhlo.s16','vqdmulhmi.s16','vqdmulhpl.s16','vqdmulhvs.s16','vqdmulhvc.s16','vqdmulhhi.s16','vqdmulhls.s16','vqdmulhge.s16','vqdmulhlt.s16','vqdmulhgt.s16','vqdmulhle.s16', + 'vqdmulheq.s32','vqdmulhne.s32','vqdmulhcs.s32','vqdmulhhs.s32','vqdmulhcc.s32','vqdmulhlo.s32','vqdmulhmi.s32','vqdmulhpl.s32','vqdmulhvs.s32','vqdmulhvc.s32','vqdmulhhi.s32','vqdmulhls.s32','vqdmulhge.s32','vqdmulhlt.s32','vqdmulhgt.s32','vqdmulhle.s32', + + 'vqdmulleq.s16','vqdmullne.s16','vqdmullcs.s16','vqdmullhs.s16','vqdmullcc.s16','vqdmulllo.s16','vqdmullmi.s16','vqdmullpl.s16','vqdmullvs.s16','vqdmullvc.s16','vqdmullhi.s16','vqdmullls.s16','vqdmullge.s16','vqdmulllt.s16','vqdmullgt.s16','vqdmullle.s16', + 'vqdmulleq.s32','vqdmullne.s32','vqdmullcs.s32','vqdmullhs.s32','vqdmullcc.s32','vqdmulllo.s32','vqdmullmi.s32','vqdmullpl.s32','vqdmullvs.s32','vqdmullvc.s32','vqdmullhi.s32','vqdmullls.s32','vqdmullge.s32','vqdmulllt.s32','vqdmullgt.s32','vqdmullle.s32', + + 'vqmovneq.s16','vqmovnne.s16','vqmovncs.s16','vqmovnhs.s16','vqmovncc.s16','vqmovnlo.s16','vqmovnmi.s16','vqmovnpl.s16','vqmovnvs.s16','vqmovnvc.s16','vqmovnhi.s16','vqmovnls.s16','vqmovnge.s16','vqmovnlt.s16','vqmovngt.s16','vqmovnle.s16', + 'vqmovneq.s32','vqmovnne.s32','vqmovncs.s32','vqmovnhs.s32','vqmovncc.s32','vqmovnlo.s32','vqmovnmi.s32','vqmovnpl.s32','vqmovnvs.s32','vqmovnvc.s32','vqmovnhi.s32','vqmovnls.s32','vqmovnge.s32','vqmovnlt.s32','vqmovngt.s32','vqmovnle.s32', + 'vqmovneq.s64','vqmovnne.s64','vqmovncs.s64','vqmovnhs.s64','vqmovncc.s64','vqmovnlo.s64','vqmovnmi.s64','vqmovnpl.s64','vqmovnvs.s64','vqmovnvc.s64','vqmovnhi.s64','vqmovnls.s64','vqmovnge.s64','vqmovnlt.s64','vqmovngt.s64','vqmovnle.s64', + + 'vqmovuneq.s16','vqmovunne.s16','vqmovuncs.s16','vqmovunhs.s16','vqmovuncc.s16','vqmovunlo.s16','vqmovunmi.s16','vqmovunpl.s16','vqmovunvs.s16','vqmovunvc.s16','vqmovunhi.s16','vqmovunls.s16','vqmovunge.s16','vqmovunlt.s16','vqmovungt.s16','vqmovunle.s16', + 'vqmovuneq.s32','vqmovunne.s32','vqmovuncs.s32','vqmovunhs.s32','vqmovuncc.s32','vqmovunlo.s32','vqmovunmi.s32','vqmovunpl.s32','vqmovunvs.s32','vqmovunvc.s32','vqmovunhi.s32','vqmovunls.s32','vqmovunge.s32','vqmovunlt.s32','vqmovungt.s32','vqmovunle.s32', + 'vqmovuneq.s64','vqmovunne.s64','vqmovuncs.s64','vqmovunhs.s64','vqmovuncc.s64','vqmovunlo.s64','vqmovunmi.s64','vqmovunpl.s64','vqmovunvs.s64','vqmovunvc.s64','vqmovunhi.s64','vqmovunls.s64','vqmovunge.s64','vqmovunlt.s64','vqmovungt.s64','vqmovunle.s64', + + 'vqnegeq.s8','vqnegne.s8','vqnegcs.s8','vqneghs.s8','vqnegcc.s8','vqneglo.s8','vqnegmi.s8','vqnegpl.s8','vqnegvs.s8','vqnegvc.s8','vqneghi.s8','vqnegls.s8','vqnegge.s8','vqneglt.s8','vqneggt.s8','vqnegle.s8', + 'vqnegeq.s16','vqnegne.s16','vqnegcs.s16','vqneghs.s16','vqnegcc.s16','vqneglo.s16','vqnegmi.s16','vqnegpl.s16','vqnegvs.s16','vqnegvc.s16','vqneghi.s16','vqnegls.s16','vqnegge.s16','vqneglt.s16','vqneggt.s16','vqnegle.s16', + 'vqnegeq.s32','vqnegne.s32','vqnegcs.s32','vqneghs.s32','vqnegcc.s32','vqneglo.s32','vqnegmi.s32','vqnegpl.s32','vqnegvs.s32','vqnegvc.s32','vqneghi.s32','vqnegls.s32','vqnegge.s32','vqneglt.s32','vqneggt.s32','vqnegle.s32', + + 'vqrdmulheq.s16','vqrdmulhne.s16','vqrdmulhcs.s16','vqrdmulhhs.s16','vqrdmulhcc.s16','vqrdmulhlo.s16','vqrdmulhmi.s16','vqrdmulhpl.s16','vqrdmulhvs.s16','vqrdmulhvc.s16','vqrdmulhhi.s16','vqrdmulhls.s16','vqrdmulhge.s16','vqrdmulhlt.s16','vqrdmulhgt.s16','vqrdmulhle.s16', + 'vqrdmulheq.s32','vqrdmulhne.s32','vqrdmulhcs.s32','vqrdmulhhs.s32','vqrdmulhcc.s32','vqrdmulhlo.s32','vqrdmulhmi.s32','vqrdmulhpl.s32','vqrdmulhvs.s32','vqrdmulhvc.s32','vqrdmulhhi.s32','vqrdmulhls.s32','vqrdmulhge.s32','vqrdmulhlt.s32','vqrdmulhgt.s32','vqrdmulhle.s32', + + 'vqrshleq.s8','vqrshlne.s8','vqrshlcs.s8','vqrshlhs.s8','vqrshlcc.s8','vqrshllo.s8','vqrshlmi.s8','vqrshlpl.s8','vqrshlvs.s8','vqrshlvc.s8','vqrshlhi.s8','vqrshlls.s8','vqrshlge.s8','vqrshllt.s8','vqrshlgt.s8','vqrshlle.s8', + 'vqrshleq.s16','vqrshlne.s16','vqrshlcs.s16','vqrshlhs.s16','vqrshlcc.s16','vqrshllo.s16','vqrshlmi.s16','vqrshlpl.s16','vqrshlvs.s16','vqrshlvc.s16','vqrshlhi.s16','vqrshlls.s16','vqrshlge.s16','vqrshllt.s16','vqrshlgt.s16','vqrshlle.s16', + 'vqrshleq.s32','vqrshlne.s32','vqrshlcs.s32','vqrshlhs.s32','vqrshlcc.s32','vqrshllo.s32','vqrshlmi.s32','vqrshlpl.s32','vqrshlvs.s32','vqrshlvc.s32','vqrshlhi.s32','vqrshlls.s32','vqrshlge.s32','vqrshllt.s32','vqrshlgt.s32','vqrshlle.s32', + 'vqrshleq.s64','vqrshlne.s64','vqrshlcs.s64','vqrshlhs.s64','vqrshlcc.s64','vqrshllo.s64','vqrshlmi.s64','vqrshlpl.s64','vqrshlvs.s64','vqrshlvc.s64','vqrshlhi.s64','vqrshlls.s64','vqrshlge.s64','vqrshllt.s64','vqrshlgt.s64','vqrshlle.s64', + + 'vqrshrneq.s16','vqrshrnne.s16','vqrshrncs.s16','vqrshrnhs.s16','vqrshrncc.s16','vqrshrnlo.s16','vqrshrnmi.s16','vqrshrnpl.s16','vqrshrnvs.s16','vqrshrnvc.s16','vqrshrnhi.s16','vqrshrnls.s16','vqrshrnge.s16','vqrshrnlt.s16','vqrshrngt.s16','vqrshrnle.s16', + 'vqrshrneq.s32','vqrshrnne.s32','vqrshrncs.s32','vqrshrnhs.s32','vqrshrncc.s32','vqrshrnlo.s32','vqrshrnmi.s32','vqrshrnpl.s32','vqrshrnvs.s32','vqrshrnvc.s32','vqrshrnhi.s32','vqrshrnls.s32','vqrshrnge.s32','vqrshrnlt.s32','vqrshrngt.s32','vqrshrnle.s32', + 'vqrshrneq.s64','vqrshrnne.s64','vqrshrncs.s64','vqrshrnhs.s64','vqrshrncc.s64','vqrshrnlo.s64','vqrshrnmi.s64','vqrshrnpl.s64','vqrshrnvs.s64','vqrshrnvc.s64','vqrshrnhi.s64','vqrshrnls.s64','vqrshrnge.s64','vqrshrnlt.s64','vqrshrngt.s64','vqrshrnle.s64', + + 'vqrshruneq.s16','vqrshrunne.s16','vqrshruncs.s16','vqrshrunhs.s16','vqrshruncc.s16','vqrshrunlo.s16','vqrshrunmi.s16','vqrshrunpl.s16','vqrshrunvs.s16','vqrshrunvc.s16','vqrshrunhi.s16','vqrshrunls.s16','vqrshrunge.s16','vqrshrunlt.s16','vqrshrungt.s16','vqrshrunle.s16', + 'vqrshruneq.s32','vqrshrunne.s32','vqrshruncs.s32','vqrshrunhs.s32','vqrshruncc.s32','vqrshrunlo.s32','vqrshrunmi.s32','vqrshrunpl.s32','vqrshrunvs.s32','vqrshrunvc.s32','vqrshrunhi.s32','vqrshrunls.s32','vqrshrunge.s32','vqrshrunlt.s32','vqrshrungt.s32','vqrshrunle.s32', + 'vqrshruneq.s64','vqrshrunne.s64','vqrshruncs.s64','vqrshrunhs.s64','vqrshruncc.s64','vqrshrunlo.s64','vqrshrunmi.s64','vqrshrunpl.s64','vqrshrunvs.s64','vqrshrunvc.s64','vqrshrunhi.s64','vqrshrunls.s64','vqrshrunge.s64','vqrshrunlt.s64','vqrshrungt.s64','vqrshrunle.s64', + + 'vqshleq.s8','vqshlne.s8','vqshlcs.s8','vqshlhs.s8','vqshlcc.s8','vqshllo.s8','vqshlmi.s8','vqshlpl.s8','vqshlvs.s8','vqshlvc.s8','vqshlhi.s8','vqshlls.s8','vqshlge.s8','vqshllt.s8','vqshlgt.s8','vqshlle.s8', + 'vqshleq.s16','vqshlne.s16','vqshlcs.s16','vqshlhs.s16','vqshlcc.s16','vqshllo.s16','vqshlmi.s16','vqshlpl.s16','vqshlvs.s16','vqshlvc.s16','vqshlhi.s16','vqshlls.s16','vqshlge.s16','vqshllt.s16','vqshlgt.s16','vqshlle.s16', + 'vqshleq.s32','vqshlne.s32','vqshlcs.s32','vqshlhs.s32','vqshlcc.s32','vqshllo.s32','vqshlmi.s32','vqshlpl.s32','vqshlvs.s32','vqshlvc.s32','vqshlhi.s32','vqshlls.s32','vqshlge.s32','vqshllt.s32','vqshlgt.s32','vqshlle.s32', + 'vqshleq.s64','vqshlne.s64','vqshlcs.s64','vqshlhs.s64','vqshlcc.s64','vqshllo.s64','vqshlmi.s64','vqshlpl.s64','vqshlvs.s64','vqshlvc.s64','vqshlhi.s64','vqshlls.s64','vqshlge.s64','vqshllt.s64','vqshlgt.s64','vqshlle.s64', + + 'vqshlueq.s8','vqshlune.s8','vqshlucs.s8','vqshluhs.s8','vqshlucc.s8','vqshlulo.s8','vqshlumi.s8','vqshlupl.s8','vqshluvs.s8','vqshluvc.s8','vqshluhi.s8','vqshluls.s8','vqshluge.s8','vqshlult.s8','vqshlugt.s8','vqshlule.s8', + 'vqshlueq.s16','vqshlune.s16','vqshlucs.s16','vqshluhs.s16','vqshlucc.s16','vqshlulo.s16','vqshlumi.s16','vqshlupl.s16','vqshluvs.s16','vqshluvc.s16','vqshluhi.s16','vqshluls.s16','vqshluge.s16','vqshlult.s16','vqshlugt.s16','vqshlule.s16', + 'vqshlueq.s32','vqshlune.s32','vqshlucs.s32','vqshluhs.s32','vqshlucc.s32','vqshlulo.s32','vqshlumi.s32','vqshlupl.s32','vqshluvs.s32','vqshluvc.s32','vqshluhi.s32','vqshluls.s32','vqshluge.s32','vqshlult.s32','vqshlugt.s32','vqshlule.s32', + 'vqshlueq.s64','vqshlune.s64','vqshlucs.s64','vqshluhs.s64','vqshlucc.s64','vqshlulo.s64','vqshlumi.s64','vqshlupl.s64','vqshluvs.s64','vqshluvc.s64','vqshluhi.s64','vqshluls.s64','vqshluge.s64','vqshlult.s64','vqshlugt.s64','vqshlule.s64', + + 'vqshrneq.s16','vqshrnne.s16','vqshrncs.s16','vqshrnhs.s16','vqshrncc.s16','vqshrnlo.s16','vqshrnmi.s16','vqshrnpl.s16','vqshrnvs.s16','vqshrnvc.s16','vqshrnhi.s16','vqshrnls.s16','vqshrnge.s16','vqshrnlt.s16','vqshrngt.s16','vqshrnle.s16', + 'vqshrneq.s32','vqshrnne.s32','vqshrncs.s32','vqshrnhs.s32','vqshrncc.s32','vqshrnlo.s32','vqshrnmi.s32','vqshrnpl.s32','vqshrnvs.s32','vqshrnvc.s32','vqshrnhi.s32','vqshrnls.s32','vqshrnge.s32','vqshrnlt.s32','vqshrngt.s32','vqshrnle.s32', + 'vqshrneq.s64','vqshrnne.s64','vqshrncs.s64','vqshrnhs.s64','vqshrncc.s64','vqshrnlo.s64','vqshrnmi.s64','vqshrnpl.s64','vqshrnvs.s64','vqshrnvc.s64','vqshrnhi.s64','vqshrnls.s64','vqshrnge.s64','vqshrnlt.s64','vqshrngt.s64','vqshrnle.s64', + + 'vqshruneq.s16','vqshrunne.s16','vqshruncs.s16','vqshrunhs.s16','vqshruncc.s16','vqshrunlo.s16','vqshrunmi.s16','vqshrunpl.s16','vqshrunvs.s16','vqshrunvc.s16','vqshrunhi.s16','vqshrunls.s16','vqshrunge.s16','vqshrunlt.s16','vqshrungt.s16','vqshrunle.s16', + 'vqshruneq.s32','vqshrunne.s32','vqshruncs.s32','vqshrunhs.s32','vqshruncc.s32','vqshrunlo.s32','vqshrunmi.s32','vqshrunpl.s32','vqshrunvs.s32','vqshrunvc.s32','vqshrunhi.s32','vqshrunls.s32','vqshrunge.s32','vqshrunlt.s32','vqshrungt.s32','vqshrunle.s32', + 'vqshruneq.s64','vqshrunne.s64','vqshruncs.s64','vqshrunhs.s64','vqshruncc.s64','vqshrunlo.s64','vqshrunmi.s64','vqshrunpl.s64','vqshrunvs.s64','vqshrunvc.s64','vqshrunhi.s64','vqshrunls.s64','vqshrunge.s64','vqshrunlt.s64','vqshrungt.s64','vqshrunle.s64', + + 'vqsubeq.s8','vqsubne.s8','vqsubcs.s8','vqsubhs.s8','vqsubcc.s8','vqsublo.s8','vqsubmi.s8','vqsubpl.s8','vqsubvs.s8','vqsubvc.s8','vqsubhi.s8','vqsubls.s8','vqsubge.s8','vqsublt.s8','vqsubgt.s8','vqsuble.s8', + 'vqsubeq.s16','vqsubne.s16','vqsubcs.s16','vqsubhs.s16','vqsubcc.s16','vqsublo.s16','vqsubmi.s16','vqsubpl.s16','vqsubvs.s16','vqsubvc.s16','vqsubhi.s16','vqsubls.s16','vqsubge.s16','vqsublt.s16','vqsubgt.s16','vqsuble.s16', + 'vqsubeq.s32','vqsubne.s32','vqsubcs.s32','vqsubhs.s32','vqsubcc.s32','vqsublo.s32','vqsubmi.s32','vqsubpl.s32','vqsubvs.s32','vqsubvc.s32','vqsubhi.s32','vqsubls.s32','vqsubge.s32','vqsublt.s32','vqsubgt.s32','vqsuble.s32', + 'vqsubeq.s64','vqsubne.s64','vqsubcs.s64','vqsubhs.s64','vqsubcc.s64','vqsublo.s64','vqsubmi.s64','vqsubpl.s64','vqsubvs.s64','vqsubvc.s64','vqsubhi.s64','vqsubls.s64','vqsubge.s64','vqsublt.s64','vqsubgt.s64','vqsuble.s64', + + 'vrhaddeq.s8','vrhaddne.s8','vrhaddcs.s8','vrhaddhs.s8','vrhaddcc.s8','vrhaddlo.s8','vrhaddmi.s8','vrhaddpl.s8','vrhaddvs.s8','vrhaddvc.s8','vrhaddhi.s8','vrhaddls.s8','vrhaddge.s8','vrhaddlt.s8','vrhaddgt.s8','vrhaddle.s8', + 'vrhaddeq.s16','vrhaddne.s16','vrhaddcs.s16','vrhaddhs.s16','vrhaddcc.s16','vrhaddlo.s16','vrhaddmi.s16','vrhaddpl.s16','vrhaddvs.s16','vrhaddvc.s16','vrhaddhi.s16','vrhaddls.s16','vrhaddge.s16','vrhaddlt.s16','vrhaddgt.s16','vrhaddle.s16', + 'vrhaddeq.s32','vrhaddne.s32','vrhaddcs.s32','vrhaddhs.s32','vrhaddcc.s32','vrhaddlo.s32','vrhaddmi.s32','vrhaddpl.s32','vrhaddvs.s32','vrhaddvc.s32','vrhaddhi.s32','vrhaddls.s32','vrhaddge.s32','vrhaddlt.s32','vrhaddgt.s32','vrhaddle.s32', + + 'vrshleq.s8','vrshlne.s8','vrshlcs.s8','vrshlhs.s8','vrshlcc.s8','vrshllo.s8','vrshlmi.s8','vrshlpl.s8','vrshlvs.s8','vrshlvc.s8','vrshlhi.s8','vrshlls.s8','vrshlge.s8','vrshllt.s8','vrshlgt.s8','vrshlle.s8', + 'vrshleq.s16','vrshlne.s16','vrshlcs.s16','vrshlhs.s16','vrshlcc.s16','vrshllo.s16','vrshlmi.s16','vrshlpl.s16','vrshlvs.s16','vrshlvc.s16','vrshlhi.s16','vrshlls.s16','vrshlge.s16','vrshllt.s16','vrshlgt.s16','vrshlle.s16', + 'vrshleq.s32','vrshlne.s32','vrshlcs.s32','vrshlhs.s32','vrshlcc.s32','vrshllo.s32','vrshlmi.s32','vrshlpl.s32','vrshlvs.s32','vrshlvc.s32','vrshlhi.s32','vrshlls.s32','vrshlge.s32','vrshllt.s32','vrshlgt.s32','vrshlle.s32', + 'vrshleq.s64','vrshlne.s64','vrshlcs.s64','vrshlhs.s64','vrshlcc.s64','vrshllo.s64','vrshlmi.s64','vrshlpl.s64','vrshlvs.s64','vrshlvc.s64','vrshlhi.s64','vrshlls.s64','vrshlge.s64','vrshllt.s64','vrshlgt.s64','vrshlle.s64', + + 'vrshreq.s8','vrshrne.s8','vrshrcs.s8','vrshrhs.s8','vrshrcc.s8','vrshrlo.s8','vrshrmi.s8','vrshrpl.s8','vrshrvs.s8','vrshrvc.s8','vrshrhi.s8','vrshrls.s8','vrshrge.s8','vrshrlt.s8','vrshrgt.s8','vrshrle.s8', + 'vrshreq.s16','vrshrne.s16','vrshrcs.s16','vrshrhs.s16','vrshrcc.s16','vrshrlo.s16','vrshrmi.s16','vrshrpl.s16','vrshrvs.s16','vrshrvc.s16','vrshrhi.s16','vrshrls.s16','vrshrge.s16','vrshrlt.s16','vrshrgt.s16','vrshrle.s16', + 'vrshreq.s32','vrshrne.s32','vrshrcs.s32','vrshrhs.s32','vrshrcc.s32','vrshrlo.s32','vrshrmi.s32','vrshrpl.s32','vrshrvs.s32','vrshrvc.s32','vrshrhi.s32','vrshrls.s32','vrshrge.s32','vrshrlt.s32','vrshrgt.s32','vrshrle.s32', + 'vrshreq.s64','vrshrne.s64','vrshrcs.s64','vrshrhs.s64','vrshrcc.s64','vrshrlo.s64','vrshrmi.s64','vrshrpl.s64','vrshrvs.s64','vrshrvc.s64','vrshrhi.s64','vrshrls.s64','vrshrge.s64','vrshrlt.s64','vrshrgt.s64','vrshrle.s64', + + 'vrsraeq.s8','vrsrane.s8','vrsracs.s8','vrsrahs.s8','vrsracc.s8','vrsralo.s8','vrsrami.s8','vrsrapl.s8','vrsravs.s8','vrsravc.s8','vrsrahi.s8','vrsrals.s8','vrsrage.s8','vrsralt.s8','vrsragt.s8','vrsrale.s8', + 'vrsraeq.s16','vrsrane.s16','vrsracs.s16','vrsrahs.s16','vrsracc.s16','vrsralo.s16','vrsrami.s16','vrsrapl.s16','vrsravs.s16','vrsravc.s16','vrsrahi.s16','vrsrals.s16','vrsrage.s16','vrsralt.s16','vrsragt.s16','vrsrale.s16', + 'vrsraeq.s32','vrsrane.s32','vrsracs.s32','vrsrahs.s32','vrsracc.s32','vrsralo.s32','vrsrami.s32','vrsrapl.s32','vrsravs.s32','vrsravc.s32','vrsrahi.s32','vrsrals.s32','vrsrage.s32','vrsralt.s32','vrsragt.s32','vrsrale.s32', + 'vrsraeq.s64','vrsrane.s64','vrsracs.s64','vrsrahs.s64','vrsracc.s64','vrsralo.s64','vrsrami.s64','vrsrapl.s64','vrsravs.s64','vrsravc.s64','vrsrahi.s64','vrsrals.s64','vrsrage.s64','vrsralt.s64','vrsragt.s64','vrsrale.s64', + + 'vshleq.s8','vshlne.s8','vshlcs.s8','vshlhs.s8','vshlcc.s8','vshllo.s8','vshlmi.s8','vshlpl.s8','vshlvs.s8','vshlvc.s8','vshlhi.s8','vshlls.s8','vshlge.s8','vshllt.s8','vshlgt.s8','vshlle.s8', + 'vshleq.s16','vshlne.s16','vshlcs.s16','vshlhs.s16','vshlcc.s16','vshllo.s16','vshlmi.s16','vshlpl.s16','vshlvs.s16','vshlvc.s16','vshlhi.s16','vshlls.s16','vshlge.s16','vshllt.s16','vshlgt.s16','vshlle.s16', + 'vshleq.s32','vshlne.s32','vshlcs.s32','vshlhs.s32','vshlcc.s32','vshllo.s32','vshlmi.s32','vshlpl.s32','vshlvs.s32','vshlvc.s32','vshlhi.s32','vshlls.s32','vshlge.s32','vshllt.s32','vshlgt.s32','vshlle.s32', + 'vshleq.s64','vshlne.s64','vshlcs.s64','vshlhs.s64','vshlcc.s64','vshllo.s64','vshlmi.s64','vshlpl.s64','vshlvs.s64','vshlvc.s64','vshlhi.s64','vshlls.s64','vshlge.s64','vshllt.s64','vshlgt.s64','vshlle.s64', + + 'vshlleq.s8','vshllne.s8','vshllcs.s8','vshllhs.s8','vshllcc.s8','vshlllo.s8','vshllmi.s8','vshllpl.s8','vshllvs.s8','vshllvc.s8','vshllhi.s8','vshllls.s8','vshllge.s8','vshlllt.s8','vshllgt.s8','vshllle.s8', + 'vshlleq.s16','vshllne.s16','vshllcs.s16','vshllhs.s16','vshllcc.s16','vshlllo.s16','vshllmi.s16','vshllpl.s16','vshllvs.s16','vshllvc.s16','vshllhi.s16','vshllls.s16','vshllge.s16','vshlllt.s16','vshllgt.s16','vshllle.s16', + 'vshlleq.s32','vshllne.s32','vshllcs.s32','vshllhs.s32','vshllcc.s32','vshlllo.s32','vshllmi.s32','vshllpl.s32','vshllvs.s32','vshllvc.s32','vshllhi.s32','vshllls.s32','vshllge.s32','vshlllt.s32','vshllgt.s32','vshllle.s32', + + 'vshreq.s8','vshrne.s8','vshrcs.s8','vshrhs.s8','vshrcc.s8','vshrlo.s8','vshrmi.s8','vshrpl.s8','vshrvs.s8','vshrvc.s8','vshrhi.s8','vshrls.s8','vshrge.s8','vshrlt.s8','vshrgt.s8','vshrle.s8', + 'vshreq.s16','vshrne.s16','vshrcs.s16','vshrhs.s16','vshrcc.s16','vshrlo.s16','vshrmi.s16','vshrpl.s16','vshrvs.s16','vshrvc.s16','vshrhi.s16','vshrls.s16','vshrge.s16','vshrlt.s16','vshrgt.s16','vshrle.s16', + 'vshreq.s32','vshrne.s32','vshrcs.s32','vshrhs.s32','vshrcc.s32','vshrlo.s32','vshrmi.s32','vshrpl.s32','vshrvs.s32','vshrvc.s32','vshrhi.s32','vshrls.s32','vshrge.s32','vshrlt.s32','vshrgt.s32','vshrle.s32', + 'vshreq.s64','vshrne.s64','vshrcs.s64','vshrhs.s64','vshrcc.s64','vshrlo.s64','vshrmi.s64','vshrpl.s64','vshrvs.s64','vshrvc.s64','vshrhi.s64','vshrls.s64','vshrge.s64','vshrlt.s64','vshrgt.s64','vshrle.s64', + + 'vsraeq.s8','vsrane.s8','vsracs.s8','vsrahs.s8','vsracc.s8','vsralo.s8','vsrami.s8','vsrapl.s8','vsravs.s8','vsravc.s8','vsrahi.s8','vsrals.s8','vsrage.s8','vsralt.s8','vsragt.s8','vsrale.s8', + 'vsraeq.s16','vsrane.s16','vsracs.s16','vsrahs.s16','vsracc.s16','vsralo.s16','vsrami.s16','vsrapl.s16','vsravs.s16','vsravc.s16','vsrahi.s16','vsrals.s16','vsrage.s16','vsralt.s16','vsragt.s16','vsrale.s16', + 'vsraeq.s32','vsrane.s32','vsracs.s32','vsrahs.s32','vsracc.s32','vsralo.s32','vsrami.s32','vsrapl.s32','vsravs.s32','vsravc.s32','vsrahi.s32','vsrals.s32','vsrage.s32','vsralt.s32','vsragt.s32','vsrale.s32', + 'vsraeq.s64','vsrane.s64','vsracs.s64','vsrahs.s64','vsracc.s64','vsralo.s64','vsrami.s64','vsrapl.s64','vsravs.s64','vsravc.s64','vsrahi.s64','vsrals.s64','vsrage.s64','vsralt.s64','vsragt.s64','vsrale.s64', + + 'vsubleq.s8','vsublne.s8','vsublcs.s8','vsublhs.s8','vsublcc.s8','vsubllo.s8','vsublmi.s8','vsublpl.s8','vsublvs.s8','vsublvc.s8','vsublhi.s8','vsublls.s8','vsublge.s8','vsubllt.s8','vsublgt.s8','vsublle.s8', + 'vsubleq.s16','vsublne.s16','vsublcs.s16','vsublhs.s16','vsublcc.s16','vsubllo.s16','vsublmi.s16','vsublpl.s16','vsublvs.s16','vsublvc.s16','vsublhi.s16','vsublls.s16','vsublge.s16','vsubllt.s16','vsublgt.s16','vsublle.s16', + 'vsubleq.s32','vsublne.s32','vsublcs.s32','vsublhs.s32','vsublcc.s32','vsubllo.s32','vsublmi.s32','vsublpl.s32','vsublvs.s32','vsublvc.s32','vsublhi.s32','vsublls.s32','vsublge.s32','vsubllt.s32','vsublgt.s32','vsublle.s32', + + 'vsubheq.s8','vsubhne.s8','vsubhcs.s8','vsubhhs.s8','vsubhcc.s8','vsubhlo.s8','vsubhmi.s8','vsubhpl.s8','vsubhvs.s8','vsubhvc.s8','vsubhhi.s8','vsubhls.s8','vsubhge.s8','vsubhlt.s8','vsubhgt.s8','vsubhle.s8', + 'vsubheq.s16','vsubhne.s16','vsubhcs.s16','vsubhhs.s16','vsubhcc.s16','vsubhlo.s16','vsubhmi.s16','vsubhpl.s16','vsubhvs.s16','vsubhvc.s16','vsubhhi.s16','vsubhls.s16','vsubhge.s16','vsubhlt.s16','vsubhgt.s16','vsubhle.s16', + 'vsubheq.s32','vsubhne.s32','vsubhcs.s32','vsubhhs.s32','vsubhcc.s32','vsubhlo.s32','vsubhmi.s32','vsubhpl.s32','vsubhvs.s32','vsubhvc.s32','vsubhhi.s32','vsubhls.s32','vsubhge.s32','vsubhlt.s32','vsubhgt.s32','vsubhle.s32' + ), + /* Conditional NEON SIMD Unsigned Integer Instructions */ + 33 => array( + 'vabaeq.u8','vabane.u8','vabacs.u8','vabahs.u8','vabacc.u8','vabalo.u8','vabami.u8','vabapl.u8','vabavs.u8','vabavc.u8','vabahi.u8','vabals.u8','vabage.u8','vabalt.u8','vabagt.u8','vabale.u8', + 'vabaeq.u16','vabane.u16','vabacs.u16','vabahs.u16','vabacc.u16','vabalo.u16','vabami.u16','vabapl.u16','vabavs.u16','vabavc.u16','vabahi.u16','vabals.u16','vabage.u16','vabalt.u16','vabagt.u16','vabale.u16', + 'vabaeq.u32','vabane.u32','vabacs.u32','vabahs.u32','vabacc.u32','vabalo.u32','vabami.u32','vabapl.u32','vabavs.u32','vabavc.u32','vabahi.u32','vabals.u32','vabage.u32','vabalt.u32','vabagt.u32','vabale.u32', + + 'vabaleq.u8','vabalne.u8','vabalcs.u8','vabalhs.u8','vabalcc.u8','vaballo.u8','vabalmi.u8','vabalpl.u8','vabalvs.u8','vabalvc.u8','vabalhi.u8','vaballs.u8','vabalge.u8','vaballt.u8','vabalgt.u8','vaballe.u8', + 'vabaleq.u16','vabalne.u16','vabalcs.u16','vabalhs.u16','vabalcc.u16','vaballo.u16','vabalmi.u16','vabalpl.u16','vabalvs.u16','vabalvc.u16','vabalhi.u16','vaballs.u16','vabalge.u16','vaballt.u16','vabalgt.u16','vaballe.u16', + 'vabaleq.u32','vabalne.u32','vabalcs.u32','vabalhs.u32','vabalcc.u32','vaballo.u32','vabalmi.u32','vabalpl.u32','vabalvs.u32','vabalvc.u32','vabalhi.u32','vaballs.u32','vabalge.u32','vaballt.u32','vabalgt.u32','vaballe.u32', + + 'vabdeq.u8','vabdne.u8','vabdcs.u8','vabdhs.u8','vabdcc.u8','vabdlo.u8','vabdmi.u8','vabdpl.u8','vabdvs.u8','vabdvc.u8','vabdhi.u8','vabdls.u8','vabdge.u8','vabdlt.u8','vabdgt.u8','vabdle.u8', + 'vabdeq.u16','vabdne.u16','vabdcs.u16','vabdhs.u16','vabdcc.u16','vabdlo.u16','vabdmi.u16','vabdpl.u16','vabdvs.u16','vabdvc.u16','vabdhi.u16','vabdls.u16','vabdge.u16','vabdlt.u16','vabdgt.u16','vabdle.u16', + 'vabdeq.u32','vabdne.u32','vabdcs.u32','vabdhs.u32','vabdcc.u32','vabdlo.u32','vabdmi.u32','vabdpl.u32','vabdvs.u32','vabdvc.u32','vabdhi.u32','vabdls.u32','vabdge.u32','vabdlt.u32','vabdgt.u32','vabdle.u32', + + 'vaddleq.u8','vaddlne.u8','vaddlcs.u8','vaddlhs.u8','vaddlcc.u8','vaddllo.u8','vaddlmi.u8','vaddlpl.u8','vaddlvs.u8','vaddlvc.u8','vaddlhi.u8','vaddlls.u8','vaddlge.u8','vaddllt.u8','vaddlgt.u8','vaddlle.u8', + 'vaddleq.u16','vaddlne.u16','vaddlcs.u16','vaddlhs.u16','vaddlcc.u16','vaddllo.u16','vaddlmi.u16','vaddlpl.u16','vaddlvs.u16','vaddlvc.u16','vaddlhi.u16','vaddlls.u16','vaddlge.u16','vaddllt.u16','vaddlgt.u16','vaddlle.u16', + 'vaddleq.u32','vaddlne.u32','vaddlcs.u32','vaddlhs.u32','vaddlcc.u32','vaddllo.u32','vaddlmi.u32','vaddlpl.u32','vaddlvs.u32','vaddlvc.u32','vaddlhi.u32','vaddlls.u32','vaddlge.u32','vaddllt.u32','vaddlgt.u32','vaddlle.u32', + + 'vsubleq.u8','vsublne.u8','vsublcs.u8','vsublhs.u8','vsublcc.u8','vsubllo.u8','vsublmi.u8','vsublpl.u8','vsublvs.u8','vsublvc.u8','vsublhi.u8','vsublls.u8','vsublge.u8','vsubllt.u8','vsublgt.u8','vsublle.u8', + 'vsubleq.u16','vsublne.u16','vsublcs.u16','vsublhs.u16','vsublcc.u16','vsubllo.u16','vsublmi.u16','vsublpl.u16','vsublvs.u16','vsublvc.u16','vsublhi.u16','vsublls.u16','vsublge.u16','vsubllt.u16','vsublgt.u16','vsublle.u16', + 'vsubleq.u32','vsublne.u32','vsublcs.u32','vsublhs.u32','vsublcc.u32','vsubllo.u32','vsublmi.u32','vsublpl.u32','vsublvs.u32','vsublvc.u32','vsublhi.u32','vsublls.u32','vsublge.u32','vsubllt.u32','vsublgt.u32','vsublle.u32', + + 'vaddweq.u8','vaddwne.u8','vaddwcs.u8','vaddwhs.u8','vaddwcc.u8','vaddwlo.u8','vaddwmi.u8','vaddwpl.u8','vaddwvs.u8','vaddwvc.u8','vaddwhi.u8','vaddwls.u8','vaddwge.u8','vaddwlt.u8','vaddwgt.u8','vaddwle.u8', + 'vaddweq.u16','vaddwne.u16','vaddwcs.u16','vaddwhs.u16','vaddwcc.u16','vaddwlo.u16','vaddwmi.u16','vaddwpl.u16','vaddwvs.u16','vaddwvc.u16','vaddwhi.u16','vaddwls.u16','vaddwge.u16','vaddwlt.u16','vaddwgt.u16','vaddwle.u16', + 'vaddweq.u32','vaddwne.u32','vaddwcs.u32','vaddwhs.u32','vaddwcc.u32','vaddwlo.u32','vaddwmi.u32','vaddwpl.u32','vaddwvs.u32','vaddwvc.u32','vaddwhi.u32','vaddwls.u32','vaddwge.u32','vaddwlt.u32','vaddwgt.u32','vaddwle.u32', + + 'vsubheq.u8','vsubhne.u8','vsubhcs.u8','vsubhhs.u8','vsubhcc.u8','vsubhlo.u8','vsubhmi.u8','vsubhpl.u8','vsubhvs.u8','vsubhvc.u8','vsubhhi.u8','vsubhls.u8','vsubhge.u8','vsubhlt.u8','vsubhgt.u8','vsubhle.u8', + 'vsubheq.u16','vsubhne.u16','vsubhcs.u16','vsubhhs.u16','vsubhcc.u16','vsubhlo.u16','vsubhmi.u16','vsubhpl.u16','vsubhvs.u16','vsubhvc.u16','vsubhhi.u16','vsubhls.u16','vsubhge.u16','vsubhlt.u16','vsubhgt.u16','vsubhle.u16', + 'vsubheq.u32','vsubhne.u32','vsubhcs.u32','vsubhhs.u32','vsubhcc.u32','vsubhlo.u32','vsubhmi.u32','vsubhpl.u32','vsubhvs.u32','vsubhvc.u32','vsubhhi.u32','vsubhls.u32','vsubhge.u32','vsubhlt.u32','vsubhgt.u32','vsubhle.u32', + + 'vhaddeq.u8','vhaddne.u8','vhaddcs.u8','vhaddhs.u8','vhaddcc.u8','vhaddlo.u8','vhaddmi.u8','vhaddpl.u8','vhaddvs.u8','vhaddvc.u8','vhaddhi.u8','vhaddls.u8','vhaddge.u8','vhaddlt.u8','vhaddgt.u8','vhaddle.u8', + 'vhaddeq.u16','vhaddne.u16','vhaddcs.u16','vhaddhs.u16','vhaddcc.u16','vhaddlo.u16','vhaddmi.u16','vhaddpl.u16','vhaddvs.u16','vhaddvc.u16','vhaddhi.u16','vhaddls.u16','vhaddge.u16','vhaddlt.u16','vhaddgt.u16','vhaddle.u16', + 'vhaddeq.u32','vhaddne.u32','vhaddcs.u32','vhaddhs.u32','vhaddcc.u32','vhaddlo.u32','vhaddmi.u32','vhaddpl.u32','vhaddvs.u32','vhaddvc.u32','vhaddhi.u32','vhaddls.u32','vhaddge.u32','vhaddlt.u32','vhaddgt.u32','vhaddle.u32', + + 'vhsubeq.u8','vhsubne.u8','vhsubcs.u8','vhsubhs.u8','vhsubcc.u8','vhsublo.u8','vhsubmi.u8','vhsubpl.u8','vhsubvs.u8','vhsubvc.u8','vhsubhi.u8','vhsubls.u8','vhsubge.u8','vhsublt.u8','vhsubgt.u8','vhsuble.u8', + 'vhsubeq.u16','vhsubne.u16','vhsubcs.u16','vhsubhs.u16','vhsubcc.u16','vhsublo.u16','vhsubmi.u16','vhsubpl.u16','vhsubvs.u16','vhsubvc.u16','vhsubhi.u16','vhsubls.u16','vhsubge.u16','vhsublt.u16','vhsubgt.u16','vhsuble.u16', + 'vhsubeq.u32','vhsubne.u32','vhsubcs.u32','vhsubhs.u32','vhsubcc.u32','vhsublo.u32','vhsubmi.u32','vhsubpl.u32','vhsubvs.u32','vhsubvc.u32','vhsubhi.u32','vhsubls.u32','vhsubge.u32','vhsublt.u32','vhsubgt.u32','vhsuble.u32', + + 'vpadaleq.u8','vpadalne.u8','vpadalcs.u8','vpadalhs.u8','vpadalcc.u8','vpadallo.u8','vpadalmi.u8','vpadalpl.u8','vpadalvs.u8','vpadalvc.u8','vpadalhi.u8','vpadalls.u8','vpadalge.u8','vpadallt.u8','vpadalgt.u8','vpadalle.u8', + 'vpadaleq.u16','vpadalne.u16','vpadalcs.u16','vpadalhs.u16','vpadalcc.u16','vpadallo.u16','vpadalmi.u16','vpadalpl.u16','vpadalvs.u16','vpadalvc.u16','vpadalhi.u16','vpadalls.u16','vpadalge.u16','vpadallt.u16','vpadalgt.u16','vpadalle.u16', + 'vpadaleq.u32','vpadalne.u32','vpadalcs.u32','vpadalhs.u32','vpadalcc.u32','vpadallo.u32','vpadalmi.u32','vpadalpl.u32','vpadalvs.u32','vpadalvc.u32','vpadalhi.u32','vpadalls.u32','vpadalge.u32','vpadallt.u32','vpadalgt.u32','vpadalle.u32', + + 'vpaddleq.u8','vpaddlne.u8','vpaddlcs.u8','vpaddlhs.u8','vpaddlcc.u8','vpaddllo.u8','vpaddlmi.u8','vpaddlpl.u8','vpaddlvs.u8','vpaddlvc.u8','vpaddlhi.u8','vpaddlls.u8','vpaddlge.u8','vpaddllt.u8','vpaddlgt.u8','vpaddlle.u8', + 'vpaddleq.u16','vpaddlne.u16','vpaddlcs.u16','vpaddlhs.u16','vpaddlcc.u16','vpaddllo.u16','vpaddlmi.u16','vpaddlpl.u16','vpaddlvs.u16','vpaddlvc.u16','vpaddlhi.u16','vpaddlls.u16','vpaddlge.u16','vpaddllt.u16','vpaddlgt.u16','vpaddlle.u16', + 'vpaddleq.u32','vpaddlne.u32','vpaddlcs.u32','vpaddlhs.u32','vpaddlcc.u32','vpaddllo.u32','vpaddlmi.u32','vpaddlpl.u32','vpaddlvs.u32','vpaddlvc.u32','vpaddlhi.u32','vpaddlls.u32','vpaddlge.u32','vpaddllt.u32','vpaddlgt.u32','vpaddlle.u32', + + 'vcgeeq.u8','vcgene.u8','vcgecs.u8','vcgehs.u8','vcgecc.u8','vcgelo.u8','vcgemi.u8','vcgepl.u8','vcgevs.u8','vcgevc.u8','vcgehi.u8','vcgels.u8','vcgege.u8','vcgelt.u8','vcgegt.u8','vcgele.u8', + 'vcgeeq.u16','vcgene.u16','vcgecs.u16','vcgehs.u16','vcgecc.u16','vcgelo.u16','vcgemi.u16','vcgepl.u16','vcgevs.u16','vcgevc.u16','vcgehi.u16','vcgels.u16','vcgege.u16','vcgelt.u16','vcgegt.u16','vcgele.u16', + 'vcgeeq.u32','vcgene.u32','vcgecs.u32','vcgehs.u32','vcgecc.u32','vcgelo.u32','vcgemi.u32','vcgepl.u32','vcgevs.u32','vcgevc.u32','vcgehi.u32','vcgels.u32','vcgege.u32','vcgelt.u32','vcgegt.u32','vcgele.u32', + + 'vcleeq.u8','vclene.u8','vclecs.u8','vclehs.u8','vclecc.u8','vclelo.u8','vclemi.u8','vclepl.u8','vclevs.u8','vclevc.u8','vclehi.u8','vclels.u8','vclege.u8','vclelt.u8','vclegt.u8','vclele.u8', + 'vcleeq.u16','vclene.u16','vclecs.u16','vclehs.u16','vclecc.u16','vclelo.u16','vclemi.u16','vclepl.u16','vclevs.u16','vclevc.u16','vclehi.u16','vclels.u16','vclege.u16','vclelt.u16','vclegt.u16','vclele.u16', + 'vcleeq.u32','vclene.u32','vclecs.u32','vclehs.u32','vclecc.u32','vclelo.u32','vclemi.u32','vclepl.u32','vclevs.u32','vclevc.u32','vclehi.u32','vclels.u32','vclege.u32','vclelt.u32','vclegt.u32','vclele.u32', + + 'vcgteq.u8','vcgtne.u8','vcgtcs.u8','vcgths.u8','vcgtcc.u8','vcgtlo.u8','vcgtmi.u8','vcgtpl.u8','vcgtvs.u8','vcgtvc.u8','vcgthi.u8','vcgtls.u8','vcgtge.u8','vcgtlt.u8','vcgtgt.u8','vcgtle.u8', + 'vcgteq.u16','vcgtne.u16','vcgtcs.u16','vcgths.u16','vcgtcc.u16','vcgtlo.u16','vcgtmi.u16','vcgtpl.u16','vcgtvs.u16','vcgtvc.u16','vcgthi.u16','vcgtls.u16','vcgtge.u16','vcgtlt.u16','vcgtgt.u16','vcgtle.u16', + 'vcgteq.u32','vcgtne.u32','vcgtcs.u32','vcgths.u32','vcgtcc.u32','vcgtlo.u32','vcgtmi.u32','vcgtpl.u32','vcgtvs.u32','vcgtvc.u32','vcgthi.u32','vcgtls.u32','vcgtge.u32','vcgtlt.u32','vcgtgt.u32','vcgtle.u32', + + 'vclteq.u8','vcltne.u8','vcltcs.u8','vclths.u8','vcltcc.u8','vcltlo.u8','vcltmi.u8','vcltpl.u8','vcltvs.u8','vcltvc.u8','vclthi.u8','vcltls.u8','vcltge.u8','vcltlt.u8','vcltgt.u8','vcltle.u8', + 'vclteq.u16','vcltne.u16','vcltcs.u16','vclths.u16','vcltcc.u16','vcltlo.u16','vcltmi.u16','vcltpl.u16','vcltvs.u16','vcltvc.u16','vclthi.u16','vcltls.u16','vcltge.u16','vcltlt.u16','vcltgt.u16','vcltle.u16', + 'vclteq.u32','vcltne.u32','vcltcs.u32','vclths.u32','vcltcc.u32','vcltlo.u32','vcltmi.u32','vcltpl.u32','vcltvs.u32','vcltvc.u32','vclthi.u32','vcltls.u32','vcltge.u32','vcltlt.u32','vcltgt.u32','vcltle.u32', + + 'vmaxeq.u8','vmaxne.u8','vmaxcs.u8','vmaxhs.u8','vmaxcc.u8','vmaxlo.u8','vmaxmi.u8','vmaxpl.u8','vmaxvs.u8','vmaxvc.u8','vmaxhi.u8','vmaxls.u8','vmaxge.u8','vmaxlt.u8','vmaxgt.u8','vmaxle.u8', + 'vmaxeq.u16','vmaxne.u16','vmaxcs.u16','vmaxhs.u16','vmaxcc.u16','vmaxlo.u16','vmaxmi.u16','vmaxpl.u16','vmaxvs.u16','vmaxvc.u16','vmaxhi.u16','vmaxls.u16','vmaxge.u16','vmaxlt.u16','vmaxgt.u16','vmaxle.u16', + 'vmaxeq.u32','vmaxne.u32','vmaxcs.u32','vmaxhs.u32','vmaxcc.u32','vmaxlo.u32','vmaxmi.u32','vmaxpl.u32','vmaxvs.u32','vmaxvc.u32','vmaxhi.u32','vmaxls.u32','vmaxge.u32','vmaxlt.u32','vmaxgt.u32','vmaxle.u32', + + 'vmineq.u8','vminne.u8','vmincs.u8','vminhs.u8','vmincc.u8','vminlo.u8','vminmi.u8','vminpl.u8','vminvs.u8','vminvc.u8','vminhi.u8','vminls.u8','vminge.u8','vminlt.u8','vmingt.u8','vminle.u8', + 'vmineq.u16','vminne.u16','vmincs.u16','vminhs.u16','vmincc.u16','vminlo.u16','vminmi.u16','vminpl.u16','vminvs.u16','vminvc.u16','vminhi.u16','vminls.u16','vminge.u16','vminlt.u16','vmingt.u16','vminle.u16', + 'vmineq.u32','vminne.u32','vmincs.u32','vminhs.u32','vmincc.u32','vminlo.u32','vminmi.u32','vminpl.u32','vminvs.u32','vminvc.u32','vminhi.u32','vminls.u32','vminge.u32','vminlt.u32','vmingt.u32','vminle.u32', + + 'vmlaleq.u8','vmlalne.u8','vmlalcs.u8','vmlalhs.u8','vmlalcc.u8','vmlallo.u8','vmlalmi.u8','vmlalpl.u8','vmlalvs.u8','vmlalvc.u8','vmlalhi.u8','vmlalls.u8','vmlalge.u8','vmlallt.u8','vmlalgt.u8','vmlalle.u8', + 'vmlaleq.u16','vmlalne.u16','vmlalcs.u16','vmlalhs.u16','vmlalcc.u16','vmlallo.u16','vmlalmi.u16','vmlalpl.u16','vmlalvs.u16','vmlalvc.u16','vmlalhi.u16','vmlalls.u16','vmlalge.u16','vmlallt.u16','vmlalgt.u16','vmlalle.u16', + 'vmlaleq.u32','vmlalne.u32','vmlalcs.u32','vmlalhs.u32','vmlalcc.u32','vmlallo.u32','vmlalmi.u32','vmlalpl.u32','vmlalvs.u32','vmlalvc.u32','vmlalhi.u32','vmlalls.u32','vmlalge.u32','vmlallt.u32','vmlalgt.u32','vmlalle.u32', + + 'vmlsleq.u8','vmlslne.u8','vmlslcs.u8','vmlslhs.u8','vmlslcc.u8','vmlsllo.u8','vmlslmi.u8','vmlslpl.u8','vmlslvs.u8','vmlslvc.u8','vmlslhi.u8','vmlslls.u8','vmlslge.u8','vmlsllt.u8','vmlslgt.u8','vmlslle.u8', + 'vmlsleq.u16','vmlslne.u16','vmlslcs.u16','vmlslhs.u16','vmlslcc.u16','vmlsllo.u16','vmlslmi.u16','vmlslpl.u16','vmlslvs.u16','vmlslvc.u16','vmlslhi.u16','vmlslls.u16','vmlslge.u16','vmlsllt.u16','vmlslgt.u16','vmlslle.u16', + 'vmlsleq.u32','vmlslne.u32','vmlslcs.u32','vmlslhs.u32','vmlslcc.u32','vmlsllo.u32','vmlslmi.u32','vmlslpl.u32','vmlslvs.u32','vmlslvc.u32','vmlslhi.u32','vmlslls.u32','vmlslge.u32','vmlsllt.u32','vmlslgt.u32','vmlslle.u32', + + 'vmulleq.u8','vmullne.u8','vmullcs.u8','vmullhs.u8','vmullcc.u8','vmulllo.u8','vmullmi.u8','vmullpl.u8','vmullvs.u8','vmullvc.u8','vmullhi.u8','vmullls.u8','vmullge.u8','vmulllt.u8','vmullgt.u8','vmullle.u8', + 'vmulleq.u16','vmullne.u16','vmullcs.u16','vmullhs.u16','vmullcc.u16','vmulllo.u16','vmullmi.u16','vmullpl.u16','vmullvs.u16','vmullvc.u16','vmullhi.u16','vmullls.u16','vmullge.u16','vmulllt.u16','vmullgt.u16','vmullle.u16', + 'vmulleq.u32','vmullne.u32','vmullcs.u32','vmullhs.u32','vmullcc.u32','vmulllo.u32','vmullmi.u32','vmullpl.u32','vmullvs.u32','vmullvc.u32','vmullhi.u32','vmullls.u32','vmullge.u32','vmulllt.u32','vmullgt.u32','vmullle.u32', + + 'vmovleq.u8','vmovlne.u8','vmovlcs.u8','vmovlhs.u8','vmovlcc.u8','vmovllo.u8','vmovlmi.u8','vmovlpl.u8','vmovlvs.u8','vmovlvc.u8','vmovlhi.u8','vmovlls.u8','vmovlge.u8','vmovllt.u8','vmovlgt.u8','vmovlle.u8', + 'vmovleq.u16','vmovlne.u16','vmovlcs.u16','vmovlhs.u16','vmovlcc.u16','vmovllo.u16','vmovlmi.u16','vmovlpl.u16','vmovlvs.u16','vmovlvc.u16','vmovlhi.u16','vmovlls.u16','vmovlge.u16','vmovllt.u16','vmovlgt.u16','vmovlle.u16', + 'vmovleq.u32','vmovlne.u32','vmovlcs.u32','vmovlhs.u32','vmovlcc.u32','vmovllo.u32','vmovlmi.u32','vmovlpl.u32','vmovlvs.u32','vmovlvc.u32','vmovlhi.u32','vmovlls.u32','vmovlge.u32','vmovllt.u32','vmovlgt.u32','vmovlle.u32', + + 'vshleq.u8','vshlne.u8','vshlcs.u8','vshlhs.u8','vshlcc.u8','vshllo.u8','vshlmi.u8','vshlpl.u8','vshlvs.u8','vshlvc.u8','vshlhi.u8','vshlls.u8','vshlge.u8','vshllt.u8','vshlgt.u8','vshlle.u8', + 'vshleq.u16','vshlne.u16','vshlcs.u16','vshlhs.u16','vshlcc.u16','vshllo.u16','vshlmi.u16','vshlpl.u16','vshlvs.u16','vshlvc.u16','vshlhi.u16','vshlls.u16','vshlge.u16','vshllt.u16','vshlgt.u16','vshlle.u16', + 'vshleq.u32','vshlne.u32','vshlcs.u32','vshlhs.u32','vshlcc.u32','vshllo.u32','vshlmi.u32','vshlpl.u32','vshlvs.u32','vshlvc.u32','vshlhi.u32','vshlls.u32','vshlge.u32','vshllt.u32','vshlgt.u32','vshlle.u32', + 'vshleq.u64','vshlne.u64','vshlcs.u64','vshlhs.u64','vshlcc.u64','vshllo.u64','vshlmi.u64','vshlpl.u64','vshlvs.u64','vshlvc.u64','vshlhi.u64','vshlls.u64','vshlge.u64','vshllt.u64','vshlgt.u64','vshlle.u64', + + 'vshlleq.u8','vshllne.u8','vshllcs.u8','vshllhs.u8','vshllcc.u8','vshlllo.u8','vshllmi.u8','vshllpl.u8','vshllvs.u8','vshllvc.u8','vshllhi.u8','vshllls.u8','vshllge.u8','vshlllt.u8','vshllgt.u8','vshllle.u8', + 'vshlleq.u16','vshllne.u16','vshllcs.u16','vshllhs.u16','vshllcc.u16','vshlllo.u16','vshllmi.u16','vshllpl.u16','vshllvs.u16','vshllvc.u16','vshllhi.u16','vshllls.u16','vshllge.u16','vshlllt.u16','vshllgt.u16','vshllle.u16', + 'vshlleq.u32','vshllne.u32','vshllcs.u32','vshllhs.u32','vshllcc.u32','vshlllo.u32','vshllmi.u32','vshllpl.u32','vshllvs.u32','vshllvc.u32','vshllhi.u32','vshllls.u32','vshllge.u32','vshlllt.u32','vshllgt.u32','vshllle.u32', + + 'vshreq.u8','vshrne.u8','vshrcs.u8','vshrhs.u8','vshrcc.u8','vshrlo.u8','vshrmi.u8','vshrpl.u8','vshrvs.u8','vshrvc.u8','vshrhi.u8','vshrls.u8','vshrge.u8','vshrlt.u8','vshrgt.u8','vshrle.u8', + 'vshreq.u16','vshrne.u16','vshrcs.u16','vshrhs.u16','vshrcc.u16','vshrlo.u16','vshrmi.u16','vshrpl.u16','vshrvs.u16','vshrvc.u16','vshrhi.u16','vshrls.u16','vshrge.u16','vshrlt.u16','vshrgt.u16','vshrle.u16', + 'vshreq.u32','vshrne.u32','vshrcs.u32','vshrhs.u32','vshrcc.u32','vshrlo.u32','vshrmi.u32','vshrpl.u32','vshrvs.u32','vshrvc.u32','vshrhi.u32','vshrls.u32','vshrge.u32','vshrlt.u32','vshrgt.u32','vshrle.u32', + 'vshreq.u64','vshrne.u64','vshrcs.u64','vshrhs.u64','vshrcc.u64','vshrlo.u64','vshrmi.u64','vshrpl.u64','vshrvs.u64','vshrvc.u64','vshrhi.u64','vshrls.u64','vshrge.u64','vshrlt.u64','vshrgt.u64','vshrle.u64', + + 'vsraeq.u8','vsrane.u8','vsracs.u8','vsrahs.u8','vsracc.u8','vsralo.u8','vsrami.u8','vsrapl.u8','vsravs.u8','vsravc.u8','vsrahi.u8','vsrals.u8','vsrage.u8','vsralt.u8','vsragt.u8','vsrale.u8', + 'vsraeq.u16','vsrane.u16','vsracs.u16','vsrahs.u16','vsracc.u16','vsralo.u16','vsrami.u16','vsrapl.u16','vsravs.u16','vsravc.u16','vsrahi.u16','vsrals.u16','vsrage.u16','vsralt.u16','vsragt.u16','vsrale.u16', + 'vsraeq.u32','vsrane.u32','vsracs.u32','vsrahs.u32','vsracc.u32','vsralo.u32','vsrami.u32','vsrapl.u32','vsravs.u32','vsravc.u32','vsrahi.u32','vsrals.u32','vsrage.u32','vsralt.u32','vsragt.u32','vsrale.u32', + 'vsraeq.u64','vsrane.u64','vsracs.u64','vsrahs.u64','vsracc.u64','vsralo.u64','vsrami.u64','vsrapl.u64','vsravs.u64','vsravc.u64','vsrahi.u64','vsrals.u64','vsrage.u64','vsralt.u64','vsragt.u64','vsrale.u64', + + 'vpmaxeq.u8','vpmaxne.u8','vpmaxcs.u8','vpmaxhs.u8','vpmaxcc.u8','vpmaxlo.u8','vpmaxmi.u8','vpmaxpl.u8','vpmaxvs.u8','vpmaxvc.u8','vpmaxhi.u8','vpmaxls.u8','vpmaxge.u8','vpmaxlt.u8','vpmaxgt.u8','vpmaxle.u8', + 'vpmaxeq.u16','vpmaxne.u16','vpmaxcs.u16','vpmaxhs.u16','vpmaxcc.u16','vpmaxlo.u16','vpmaxmi.u16','vpmaxpl.u16','vpmaxvs.u16','vpmaxvc.u16','vpmaxhi.u16','vpmaxls.u16','vpmaxge.u16','vpmaxlt.u16','vpmaxgt.u16','vpmaxle.u16', + 'vpmaxeq.u32','vpmaxne.u32','vpmaxcs.u32','vpmaxhs.u32','vpmaxcc.u32','vpmaxlo.u32','vpmaxmi.u32','vpmaxpl.u32','vpmaxvs.u32','vpmaxvc.u32','vpmaxhi.u32','vpmaxls.u32','vpmaxge.u32','vpmaxlt.u32','vpmaxgt.u32','vpmaxle.u32', + + 'vpmineq.u8','vpminne.u8','vpmincs.u8','vpminhs.u8','vpmincc.u8','vpminlo.u8','vpminmi.u8','vpminpl.u8','vpminvs.u8','vpminvc.u8','vpminhi.u8','vpminls.u8','vpminge.u8','vpminlt.u8','vpmingt.u8','vpminle.u8', + 'vpmineq.u16','vpminne.u16','vpmincs.u16','vpminhs.u16','vpmincc.u16','vpminlo.u16','vpminmi.u16','vpminpl.u16','vpminvs.u16','vpminvc.u16','vpminhi.u16','vpminls.u16','vpminge.u16','vpminlt.u16','vpmingt.u16','vpminle.u16', + 'vpmineq.u32','vpminne.u32','vpmincs.u32','vpminhs.u32','vpmincc.u32','vpminlo.u32','vpminmi.u32','vpminpl.u32','vpminvs.u32','vpminvc.u32','vpminhi.u32','vpminls.u32','vpminge.u32','vpminlt.u32','vpmingt.u32','vpminle.u32', + + 'vqaddeq.u8','vqaddne.u8','vqaddcs.u8','vqaddhs.u8','vqaddcc.u8','vqaddlo.u8','vqaddmi.u8','vqaddpl.u8','vqaddvs.u8','vqaddvc.u8','vqaddhi.u8','vqaddls.u8','vqaddge.u8','vqaddlt.u8','vqaddgt.u8','vqaddle.u8', + 'vqaddeq.u16','vqaddne.u16','vqaddcs.u16','vqaddhs.u16','vqaddcc.u16','vqaddlo.u16','vqaddmi.u16','vqaddpl.u16','vqaddvs.u16','vqaddvc.u16','vqaddhi.u16','vqaddls.u16','vqaddge.u16','vqaddlt.u16','vqaddgt.u16','vqaddle.u16', + 'vqaddeq.u32','vqaddne.u32','vqaddcs.u32','vqaddhs.u32','vqaddcc.u32','vqaddlo.u32','vqaddmi.u32','vqaddpl.u32','vqaddvs.u32','vqaddvc.u32','vqaddhi.u32','vqaddls.u32','vqaddge.u32','vqaddlt.u32','vqaddgt.u32','vqaddle.u32', + 'vqaddeq.u64','vqaddne.u64','vqaddcs.u64','vqaddhs.u64','vqaddcc.u64','vqaddlo.u64','vqaddmi.u64','vqaddpl.u64','vqaddvs.u64','vqaddvc.u64','vqaddhi.u64','vqaddls.u64','vqaddge.u64','vqaddlt.u64','vqaddgt.u64','vqaddle.u64', + + 'vqsubeq.u8','vqsubne.u8','vqsubcs.u8','vqsubhs.u8','vqsubcc.u8','vqsublo.u8','vqsubmi.u8','vqsubpl.u8','vqsubvs.u8','vqsubvc.u8','vqsubhi.u8','vqsubls.u8','vqsubge.u8','vqsublt.u8','vqsubgt.u8','vqsuble.u8', + 'vqsubeq.u16','vqsubne.u16','vqsubcs.u16','vqsubhs.u16','vqsubcc.u16','vqsublo.u16','vqsubmi.u16','vqsubpl.u16','vqsubvs.u16','vqsubvc.u16','vqsubhi.u16','vqsubls.u16','vqsubge.u16','vqsublt.u16','vqsubgt.u16','vqsuble.u16', + 'vqsubeq.u32','vqsubne.u32','vqsubcs.u32','vqsubhs.u32','vqsubcc.u32','vqsublo.u32','vqsubmi.u32','vqsubpl.u32','vqsubvs.u32','vqsubvc.u32','vqsubhi.u32','vqsubls.u32','vqsubge.u32','vqsublt.u32','vqsubgt.u32','vqsuble.u32', + 'vqsubeq.u64','vqsubne.u64','vqsubcs.u64','vqsubhs.u64','vqsubcc.u64','vqsublo.u64','vqsubmi.u64','vqsubpl.u64','vqsubvs.u64','vqsubvc.u64','vqsubhi.u64','vqsubls.u64','vqsubge.u64','vqsublt.u64','vqsubgt.u64','vqsuble.u64', + + 'vqmovneq.u16','vqmovnne.u16','vqmovncs.u16','vqmovnhs.u16','vqmovncc.u16','vqmovnlo.u16','vqmovnmi.u16','vqmovnpl.u16','vqmovnvs.u16','vqmovnvc.u16','vqmovnhi.u16','vqmovnls.u16','vqmovnge.u16','vqmovnlt.u16','vqmovngt.u16','vqmovnle.u16', + 'vqmovneq.u32','vqmovnne.u32','vqmovncs.u32','vqmovnhs.u32','vqmovncc.u32','vqmovnlo.u32','vqmovnmi.u32','vqmovnpl.u32','vqmovnvs.u32','vqmovnvc.u32','vqmovnhi.u32','vqmovnls.u32','vqmovnge.u32','vqmovnlt.u32','vqmovngt.u32','vqmovnle.u32', + 'vqmovneq.u64','vqmovnne.u64','vqmovncs.u64','vqmovnhs.u64','vqmovncc.u64','vqmovnlo.u64','vqmovnmi.u64','vqmovnpl.u64','vqmovnvs.u64','vqmovnvc.u64','vqmovnhi.u64','vqmovnls.u64','vqmovnge.u64','vqmovnlt.u64','vqmovngt.u64','vqmovnle.u64', + + 'vqshleq.u8','vqshlne.u8','vqshlcs.u8','vqshlhs.u8','vqshlcc.u8','vqshllo.u8','vqshlmi.u8','vqshlpl.u8','vqshlvs.u8','vqshlvc.u8','vqshlhi.u8','vqshlls.u8','vqshlge.u8','vqshllt.u8','vqshlgt.u8','vqshlle.u8', + 'vqshleq.u16','vqshlne.u16','vqshlcs.u16','vqshlhs.u16','vqshlcc.u16','vqshllo.u16','vqshlmi.u16','vqshlpl.u16','vqshlvs.u16','vqshlvc.u16','vqshlhi.u16','vqshlls.u16','vqshlge.u16','vqshllt.u16','vqshlgt.u16','vqshlle.u16', + 'vqshleq.u32','vqshlne.u32','vqshlcs.u32','vqshlhs.u32','vqshlcc.u32','vqshllo.u32','vqshlmi.u32','vqshlpl.u32','vqshlvs.u32','vqshlvc.u32','vqshlhi.u32','vqshlls.u32','vqshlge.u32','vqshllt.u32','vqshlgt.u32','vqshlle.u32', + 'vqshleq.u64','vqshlne.u64','vqshlcs.u64','vqshlhs.u64','vqshlcc.u64','vqshllo.u64','vqshlmi.u64','vqshlpl.u64','vqshlvs.u64','vqshlvc.u64','vqshlhi.u64','vqshlls.u64','vqshlge.u64','vqshllt.u64','vqshlgt.u64','vqshlle.u64', + + 'vqshrneq.u16','vqshrnne.u16','vqshrncs.u16','vqshrnhs.u16','vqshrncc.u16','vqshrnlo.u16','vqshrnmi.u16','vqshrnpl.u16','vqshrnvs.u16','vqshrnvc.u16','vqshrnhi.u16','vqshrnls.u16','vqshrnge.u16','vqshrnlt.u16','vqshrngt.u16','vqshrnle.u16', + 'vqshrneq.u32','vqshrnne.u32','vqshrncs.u32','vqshrnhs.u32','vqshrncc.u32','vqshrnlo.u32','vqshrnmi.u32','vqshrnpl.u32','vqshrnvs.u32','vqshrnvc.u32','vqshrnhi.u32','vqshrnls.u32','vqshrnge.u32','vqshrnlt.u32','vqshrngt.u32','vqshrnle.u32', + 'vqshrneq.u64','vqshrnne.u64','vqshrncs.u64','vqshrnhs.u64','vqshrncc.u64','vqshrnlo.u64','vqshrnmi.u64','vqshrnpl.u64','vqshrnvs.u64','vqshrnvc.u64','vqshrnhi.u64','vqshrnls.u64','vqshrnge.u64','vqshrnlt.u64','vqshrngt.u64','vqshrnle.u64', + + 'vqrshleq.u8','vqrshlne.u8','vqrshlcs.u8','vqrshlhs.u8','vqrshlcc.u8','vqrshllo.u8','vqrshlmi.u8','vqrshlpl.u8','vqrshlvs.u8','vqrshlvc.u8','vqrshlhi.u8','vqrshlls.u8','vqrshlge.u8','vqrshllt.u8','vqrshlgt.u8','vqrshlle.u8', + 'vqrshleq.u16','vqrshlne.u16','vqrshlcs.u16','vqrshlhs.u16','vqrshlcc.u16','vqrshllo.u16','vqrshlmi.u16','vqrshlpl.u16','vqrshlvs.u16','vqrshlvc.u16','vqrshlhi.u16','vqrshlls.u16','vqrshlge.u16','vqrshllt.u16','vqrshlgt.u16','vqrshlle.u16', + 'vqrshleq.u32','vqrshlne.u32','vqrshlcs.u32','vqrshlhs.u32','vqrshlcc.u32','vqrshllo.u32','vqrshlmi.u32','vqrshlpl.u32','vqrshlvs.u32','vqrshlvc.u32','vqrshlhi.u32','vqrshlls.u32','vqrshlge.u32','vqrshllt.u32','vqrshlgt.u32','vqrshlle.u32', + 'vqrshleq.u64','vqrshlne.u64','vqrshlcs.u64','vqrshlhs.u64','vqrshlcc.u64','vqrshllo.u64','vqrshlmi.u64','vqrshlpl.u64','vqrshlvs.u64','vqrshlvc.u64','vqrshlhi.u64','vqrshlls.u64','vqrshlge.u64','vqrshllt.u64','vqrshlgt.u64','vqrshlle.u64', + + 'vqrshrneq.u16','vqrshrnne.u16','vqrshrncs.u16','vqrshrnhs.u16','vqrshrncc.u16','vqrshrnlo.u16','vqrshrnmi.u16','vqrshrnpl.u16','vqrshrnvs.u16','vqrshrnvc.u16','vqrshrnhi.u16','vqrshrnls.u16','vqrshrnge.u16','vqrshrnlt.u16','vqrshrngt.u16','vqrshrnle.u16', + 'vqrshrneq.u32','vqrshrnne.u32','vqrshrncs.u32','vqrshrnhs.u32','vqrshrncc.u32','vqrshrnlo.u32','vqrshrnmi.u32','vqrshrnpl.u32','vqrshrnvs.u32','vqrshrnvc.u32','vqrshrnhi.u32','vqrshrnls.u32','vqrshrnge.u32','vqrshrnlt.u32','vqrshrngt.u32','vqrshrnle.u32', + 'vqrshrneq.u64','vqrshrnne.u64','vqrshrncs.u64','vqrshrnhs.u64','vqrshrncc.u64','vqrshrnlo.u64','vqrshrnmi.u64','vqrshrnpl.u64','vqrshrnvs.u64','vqrshrnvc.u64','vqrshrnhi.u64','vqrshrnls.u64','vqrshrnge.u64','vqrshrnlt.u64','vqrshrngt.u64','vqrshrnle.u64', + + 'vrhaddeq.u8','vrhaddne.u8','vrhaddcs.u8','vrhaddhs.u8','vrhaddcc.u8','vrhaddlo.u8','vrhaddmi.u8','vrhaddpl.u8','vrhaddvs.u8','vrhaddvc.u8','vrhaddhi.u8','vrhaddls.u8','vrhaddge.u8','vrhaddlt.u8','vrhaddgt.u8','vrhaddle.u8', + 'vrhaddeq.u16','vrhaddne.u16','vrhaddcs.u16','vrhaddhs.u16','vrhaddcc.u16','vrhaddlo.u16','vrhaddmi.u16','vrhaddpl.u16','vrhaddvs.u16','vrhaddvc.u16','vrhaddhi.u16','vrhaddls.u16','vrhaddge.u16','vrhaddlt.u16','vrhaddgt.u16','vrhaddle.u16', + 'vrhaddeq.u32','vrhaddne.u32','vrhaddcs.u32','vrhaddhs.u32','vrhaddcc.u32','vrhaddlo.u32','vrhaddmi.u32','vrhaddpl.u32','vrhaddvs.u32','vrhaddvc.u32','vrhaddhi.u32','vrhaddls.u32','vrhaddge.u32','vrhaddlt.u32','vrhaddgt.u32','vrhaddle.u32', + + 'vrshleq.u8','vrshlne.u8','vrshlcs.u8','vrshlhs.u8','vrshlcc.u8','vrshllo.u8','vrshlmi.u8','vrshlpl.u8','vrshlvs.u8','vrshlvc.u8','vrshlhi.u8','vrshlls.u8','vrshlge.u8','vrshllt.u8','vrshlgt.u8','vrshlle.u8', + 'vrshleq.u16','vrshlne.u16','vrshlcs.u16','vrshlhs.u16','vrshlcc.u16','vrshllo.u16','vrshlmi.u16','vrshlpl.u16','vrshlvs.u16','vrshlvc.u16','vrshlhi.u16','vrshlls.u16','vrshlge.u16','vrshllt.u16','vrshlgt.u16','vrshlle.u16', + 'vrshleq.u32','vrshlne.u32','vrshlcs.u32','vrshlhs.u32','vrshlcc.u32','vrshllo.u32','vrshlmi.u32','vrshlpl.u32','vrshlvs.u32','vrshlvc.u32','vrshlhi.u32','vrshlls.u32','vrshlge.u32','vrshllt.u32','vrshlgt.u32','vrshlle.u32', + 'vrshleq.u64','vrshlne.u64','vrshlcs.u64','vrshlhs.u64','vrshlcc.u64','vrshllo.u64','vrshlmi.u64','vrshlpl.u64','vrshlvs.u64','vrshlvc.u64','vrshlhi.u64','vrshlls.u64','vrshlge.u64','vrshllt.u64','vrshlgt.u64','vrshlle.u64', + + 'vrshreq.u8','vrshrne.u8','vrshrcs.u8','vrshrhs.u8','vrshrcc.u8','vrshrlo.u8','vrshrmi.u8','vrshrpl.u8','vrshrvs.u8','vrshrvc.u8','vrshrhi.u8','vrshrls.u8','vrshrge.u8','vrshrlt.u8','vrshrgt.u8','vrshrle.u8', + 'vrshreq.u16','vrshrne.u16','vrshrcs.u16','vrshrhs.u16','vrshrcc.u16','vrshrlo.u16','vrshrmi.u16','vrshrpl.u16','vrshrvs.u16','vrshrvc.u16','vrshrhi.u16','vrshrls.u16','vrshrge.u16','vrshrlt.u16','vrshrgt.u16','vrshrle.u16', + 'vrshreq.u32','vrshrne.u32','vrshrcs.u32','vrshrhs.u32','vrshrcc.u32','vrshrlo.u32','vrshrmi.u32','vrshrpl.u32','vrshrvs.u32','vrshrvc.u32','vrshrhi.u32','vrshrls.u32','vrshrge.u32','vrshrlt.u32','vrshrgt.u32','vrshrle.u32', + 'vrshreq.u64','vrshrne.u64','vrshrcs.u64','vrshrhs.u64','vrshrcc.u64','vrshrlo.u64','vrshrmi.u64','vrshrpl.u64','vrshrvs.u64','vrshrvc.u64','vrshrhi.u64','vrshrls.u64','vrshrge.u64','vrshrlt.u64','vrshrgt.u64','vrshrle.u64', + + 'vrsraeq.u8','vrsrane.u8','vrsracs.u8','vrsrahs.u8','vrsracc.u8','vrsralo.u8','vrsrami.u8','vrsrapl.u8','vrsravs.u8','vrsravc.u8','vrsrahi.u8','vrsrals.u8','vrsrage.u8','vrsralt.u8','vrsragt.u8','vrsrale.u8', + 'vrsraeq.u16','vrsrane.u16','vrsracs.u16','vrsrahs.u16','vrsracc.u16','vrsralo.u16','vrsrami.u16','vrsrapl.u16','vrsravs.u16','vrsravc.u16','vrsrahi.u16','vrsrals.u16','vrsrage.u16','vrsralt.u16','vrsragt.u16','vrsrale.u16', + 'vrsraeq.u32','vrsrane.u32','vrsracs.u32','vrsrahs.u32','vrsracc.u32','vrsralo.u32','vrsrami.u32','vrsrapl.u32','vrsravs.u32','vrsravc.u32','vrsrahi.u32','vrsrals.u32','vrsrage.u32','vrsralt.u32','vrsragt.u32','vrsrale.u32', + 'vrsraeq.u64','vrsrane.u64','vrsracs.u64','vrsrahs.u64','vrsracc.u64','vrsralo.u64','vrsrami.u64','vrsrapl.u64','vrsravs.u64','vrsravc.u64','vrsrahi.u64','vrsrals.u64','vrsrage.u64','vrsralt.u64','vrsragt.u64','vrsrale.u64', + ), + /* Conditional VFPv3 & NEON SIMD Floating-Point Instructions */ + 34 => array( + 'vabdeq.f32','vabdne.f32','vabdcs.f32','vabdhs.f32','vabdcc.f32','vabdlo.f32','vabdmi.f32','vabdpl.f32','vabdvs.f32','vabdvc.f32','vabdhi.f32','vabdls.f32','vabdge.f32','vabdlt.f32','vabdgt.f32','vabdle.f32', + + 'vabseq.f32','vabsne.f32','vabscs.f32','vabshs.f32','vabscc.f32','vabslo.f32','vabsmi.f32','vabspl.f32','vabsvs.f32','vabsvc.f32','vabshi.f32','vabsls.f32','vabsge.f32','vabslt.f32','vabsgt.f32','vabsle.f32', + 'vabseq.f64','vabsne.f64','vabscs.f64','vabshs.f64','vabscc.f64','vabslo.f64','vabsmi.f64','vabspl.f64','vabsvs.f64','vabsvc.f64','vabshi.f64','vabsls.f64','vabsge.f64','vabslt.f64','vabsgt.f64','vabsle.f64', + + 'vacgeeq.f32','vacgene.f32','vacgecs.f32','vacgehs.f32','vacgecc.f32','vacgelo.f32','vacgemi.f32','vacgepl.f32','vacgevs.f32','vacgevc.f32','vacgehi.f32','vacgels.f32','vacgege.f32','vacgelt.f32','vacgegt.f32','vacgele.f32', + 'vacgteq.f32','vacgtne.f32','vacgtcs.f32','vacgths.f32','vacgtcc.f32','vacgtlo.f32','vacgtmi.f32','vacgtpl.f32','vacgtvs.f32','vacgtvc.f32','vacgthi.f32','vacgtls.f32','vacgtge.f32','vacgtlt.f32','vacgtgt.f32','vacgtle.f32', + 'vacleeq.f32','vaclene.f32','vaclecs.f32','vaclehs.f32','vaclecc.f32','vaclelo.f32','vaclemi.f32','vaclepl.f32','vaclevs.f32','vaclevc.f32','vaclehi.f32','vaclels.f32','vaclege.f32','vaclelt.f32','vaclegt.f32','vaclele.f32', + 'vaclteq.f32','vacltne.f32','vacltcs.f32','vaclths.f32','vacltcc.f32','vacltlo.f32','vacltmi.f32','vacltpl.f32','vacltvs.f32','vacltvc.f32','vaclthi.f32','vacltls.f32','vacltge.f32','vacltlt.f32','vacltgt.f32','vacltle.f32', + + 'vaddeq.f32','vaddne.f32','vaddcs.f32','vaddhs.f32','vaddcc.f32','vaddlo.f32','vaddmi.f32','vaddpl.f32','vaddvs.f32','vaddvc.f32','vaddhi.f32','vaddls.f32','vaddge.f32','vaddlt.f32','vaddgt.f32','vaddle.f32', + 'vaddeq.f64','vaddne.f64','vaddcs.f64','vaddhs.f64','vaddcc.f64','vaddlo.f64','vaddmi.f64','vaddpl.f64','vaddvs.f64','vaddvc.f64','vaddhi.f64','vaddls.f64','vaddge.f64','vaddlt.f64','vaddgt.f64','vaddle.f64', + + 'vceqeq.f32','vceqne.f32','vceqcs.f32','vceqhs.f32','vceqcc.f32','vceqlo.f32','vceqmi.f32','vceqpl.f32','vceqvs.f32','vceqvc.f32','vceqhi.f32','vceqls.f32','vceqge.f32','vceqlt.f32','vceqgt.f32','vceqle.f32', + 'vcgeeq.f32','vcgene.f32','vcgecs.f32','vcgehs.f32','vcgecc.f32','vcgelo.f32','vcgemi.f32','vcgepl.f32','vcgevs.f32','vcgevc.f32','vcgehi.f32','vcgels.f32','vcgege.f32','vcgelt.f32','vcgegt.f32','vcgele.f32', + 'vcleeq.f32','vclene.f32','vclecs.f32','vclehs.f32','vclecc.f32','vclelo.f32','vclemi.f32','vclepl.f32','vclevs.f32','vclevc.f32','vclehi.f32','vclels.f32','vclege.f32','vclelt.f32','vclegt.f32','vclele.f32', + 'vcgteq.f32','vcgtne.f32','vcgtcs.f32','vcgths.f32','vcgtcc.f32','vcgtlo.f32','vcgtmi.f32','vcgtpl.f32','vcgtvs.f32','vcgtvc.f32','vcgthi.f32','vcgtls.f32','vcgtge.f32','vcgtlt.f32','vcgtgt.f32','vcgtle.f32', + 'vclteq.f32','vcltne.f32','vcltcs.f32','vclths.f32','vcltcc.f32','vcltlo.f32','vcltmi.f32','vcltpl.f32','vcltvs.f32','vcltvc.f32','vclthi.f32','vcltls.f32','vcltge.f32','vcltlt.f32','vcltgt.f32','vcltle.f32', + + 'vcmpeq.f32','vcmpne.f32','vcmpcs.f32','vcmphs.f32','vcmpcc.f32','vcmplo.f32','vcmpmi.f32','vcmppl.f32','vcmpvs.f32','vcmpvc.f32','vcmphi.f32','vcmpls.f32','vcmpge.f32','vcmplt.f32','vcmpgt.f32','vcmple.f32', + 'vcmpeq.f64','vcmpne.f64','vcmpcs.f64','vcmphs.f64','vcmpcc.f64','vcmplo.f64','vcmpmi.f64','vcmppl.f64','vcmpvs.f64','vcmpvc.f64','vcmphi.f64','vcmpls.f64','vcmpge.f64','vcmplt.f64','vcmpgt.f64','vcmple.f64', + + 'vcmpeeq.f32','vcmpene.f32','vcmpecs.f32','vcmpehs.f32','vcmpecc.f32','vcmpelo.f32','vcmpemi.f32','vcmpepl.f32','vcmpevs.f32','vcmpevc.f32','vcmpehi.f32','vcmpels.f32','vcmpege.f32','vcmpelt.f32','vcmpegt.f32','vcmpele.f32', + 'vcmpeeq.f64','vcmpene.f64','vcmpecs.f64','vcmpehs.f64','vcmpecc.f64','vcmpelo.f64','vcmpemi.f64','vcmpepl.f64','vcmpevs.f64','vcmpevc.f64','vcmpehi.f64','vcmpels.f64','vcmpege.f64','vcmpelt.f64','vcmpegt.f64','vcmpele.f64', + + 'vcvteq.s16.f32','vcvtne.s16.f32','vcvtcs.s16.f32','vcvths.s16.f32','vcvtcc.s16.f32','vcvtlo.s16.f32','vcvtmi.s16.f32','vcvtpl.s16.f32','vcvtvs.s16.f32','vcvtvc.s16.f32','vcvthi.s16.f32','vcvtls.s16.f32','vcvtge.s16.f32','vcvtlt.s16.f32','vcvtgt.s16.f32','vcvtle.s16.f32', + 'vcvteq.s16.f64','vcvtne.s16.f64','vcvtcs.s16.f64','vcvths.s16.f64','vcvtcc.s16.f64','vcvtlo.s16.f64','vcvtmi.s16.f64','vcvtpl.s16.f64','vcvtvs.s16.f64','vcvtvc.s16.f64','vcvthi.s16.f64','vcvtls.s16.f64','vcvtge.s16.f64','vcvtlt.s16.f64','vcvtgt.s16.f64','vcvtle.s16.f64', + 'vcvteq.s32.f32','vcvtne.s32.f32','vcvtcs.s32.f32','vcvths.s32.f32','vcvtcc.s32.f32','vcvtlo.s32.f32','vcvtmi.s32.f32','vcvtpl.s32.f32','vcvtvs.s32.f32','vcvtvc.s32.f32','vcvthi.s32.f32','vcvtls.s32.f32','vcvtge.s32.f32','vcvtlt.s32.f32','vcvtgt.s32.f32','vcvtle.s32.f32', + 'vcvteq.s32.f64','vcvtne.s32.f64','vcvtcs.s32.f64','vcvths.s32.f64','vcvtcc.s32.f64','vcvtlo.s32.f64','vcvtmi.s32.f64','vcvtpl.s32.f64','vcvtvs.s32.f64','vcvtvc.s32.f64','vcvthi.s32.f64','vcvtls.s32.f64','vcvtge.s32.f64','vcvtlt.s32.f64','vcvtgt.s32.f64','vcvtle.s32.f64', + 'vcvteq.u16.f32','vcvtne.u16.f32','vcvtcs.u16.f32','vcvths.u16.f32','vcvtcc.u16.f32','vcvtlo.u16.f32','vcvtmi.u16.f32','vcvtpl.u16.f32','vcvtvs.u16.f32','vcvtvc.u16.f32','vcvthi.u16.f32','vcvtls.u16.f32','vcvtge.u16.f32','vcvtlt.u16.f32','vcvtgt.u16.f32','vcvtle.u16.f32', + 'vcvteq.u16.f64','vcvtne.u16.f64','vcvtcs.u16.f64','vcvths.u16.f64','vcvtcc.u16.f64','vcvtlo.u16.f64','vcvtmi.u16.f64','vcvtpl.u16.f64','vcvtvs.u16.f64','vcvtvc.u16.f64','vcvthi.u16.f64','vcvtls.u16.f64','vcvtge.u16.f64','vcvtlt.u16.f64','vcvtgt.u16.f64','vcvtle.u16.f64', + 'vcvteq.u32.f32','vcvtne.u32.f32','vcvtcs.u32.f32','vcvths.u32.f32','vcvtcc.u32.f32','vcvtlo.u32.f32','vcvtmi.u32.f32','vcvtpl.u32.f32','vcvtvs.u32.f32','vcvtvc.u32.f32','vcvthi.u32.f32','vcvtls.u32.f32','vcvtge.u32.f32','vcvtlt.u32.f32','vcvtgt.u32.f32','vcvtle.u32.f32', + 'vcvteq.u32.f64','vcvtne.u32.f64','vcvtcs.u32.f64','vcvths.u32.f64','vcvtcc.u32.f64','vcvtlo.u32.f64','vcvtmi.u32.f64','vcvtpl.u32.f64','vcvtvs.u32.f64','vcvtvc.u32.f64','vcvthi.u32.f64','vcvtls.u32.f64','vcvtge.u32.f64','vcvtlt.u32.f64','vcvtgt.u32.f64','vcvtle.u32.f64', + 'vcvteq.f16.f32','vcvtne.f16.f32','vcvtcs.f16.f32','vcvths.f16.f32','vcvtcc.f16.f32','vcvtlo.f16.f32','vcvtmi.f16.f32','vcvtpl.f16.f32','vcvtvs.f16.f32','vcvtvc.f16.f32','vcvthi.f16.f32','vcvtls.f16.f32','vcvtge.f16.f32','vcvtlt.f16.f32','vcvtgt.f16.f32','vcvtle.f16.f32', + 'vcvteq.f32.s32','vcvtne.f32.s32','vcvtcs.f32.s32','vcvths.f32.s32','vcvtcc.f32.s32','vcvtlo.f32.s32','vcvtmi.f32.s32','vcvtpl.f32.s32','vcvtvs.f32.s32','vcvtvc.f32.s32','vcvthi.f32.s32','vcvtls.f32.s32','vcvtge.f32.s32','vcvtlt.f32.s32','vcvtgt.f32.s32','vcvtle.f32.s32', + 'vcvteq.f32.u32','vcvtne.f32.u32','vcvtcs.f32.u32','vcvths.f32.u32','vcvtcc.f32.u32','vcvtlo.f32.u32','vcvtmi.f32.u32','vcvtpl.f32.u32','vcvtvs.f32.u32','vcvtvc.f32.u32','vcvthi.f32.u32','vcvtls.f32.u32','vcvtge.f32.u32','vcvtlt.f32.u32','vcvtgt.f32.u32','vcvtle.f32.u32', + 'vcvteq.f32.f16','vcvtne.f32.f16','vcvtcs.f32.f16','vcvths.f32.f16','vcvtcc.f32.f16','vcvtlo.f32.f16','vcvtmi.f32.f16','vcvtpl.f32.f16','vcvtvs.f32.f16','vcvtvc.f32.f16','vcvthi.f32.f16','vcvtls.f32.f16','vcvtge.f32.f16','vcvtlt.f32.f16','vcvtgt.f32.f16','vcvtle.f32.f16', + 'vcvteq.f32.f64','vcvtne.f32.f64','vcvtcs.f32.f64','vcvths.f32.f64','vcvtcc.f32.f64','vcvtlo.f32.f64','vcvtmi.f32.f64','vcvtpl.f32.f64','vcvtvs.f32.f64','vcvtvc.f32.f64','vcvthi.f32.f64','vcvtls.f32.f64','vcvtge.f32.f64','vcvtlt.f32.f64','vcvtgt.f32.f64','vcvtle.f32.f64', + 'vcvteq.f64.s32','vcvtne.f64.s32','vcvtcs.f64.s32','vcvths.f64.s32','vcvtcc.f64.s32','vcvtlo.f64.s32','vcvtmi.f64.s32','vcvtpl.f64.s32','vcvtvs.f64.s32','vcvtvc.f64.s32','vcvthi.f64.s32','vcvtls.f64.s32','vcvtge.f64.s32','vcvtlt.f64.s32','vcvtgt.f64.s32','vcvtle.f64.s32', + 'vcvteq.f64.u32','vcvtne.f64.u32','vcvtcs.f64.u32','vcvths.f64.u32','vcvtcc.f64.u32','vcvtlo.f64.u32','vcvtmi.f64.u32','vcvtpl.f64.u32','vcvtvs.f64.u32','vcvtvc.f64.u32','vcvthi.f64.u32','vcvtls.f64.u32','vcvtge.f64.u32','vcvtlt.f64.u32','vcvtgt.f64.u32','vcvtle.f64.u32', + 'vcvteq.f64.f32','vcvtne.f64.f32','vcvtcs.f64.f32','vcvths.f64.f32','vcvtcc.f64.f32','vcvtlo.f64.f32','vcvtmi.f64.f32','vcvtpl.f64.f32','vcvtvs.f64.f32','vcvtvc.f64.f32','vcvthi.f64.f32','vcvtls.f64.f32','vcvtge.f64.f32','vcvtlt.f64.f32','vcvtgt.f64.f32','vcvtle.f64.f32', + + 'vcvtreq.s32.f32','vcvtrne.s32.f32','vcvtrcs.s32.f32','vcvtrhs.s32.f32','vcvtrcc.s32.f32','vcvtrlo.s32.f32','vcvtrmi.s32.f32','vcvtrpl.s32.f32','vcvtrvs.s32.f32','vcvtrvc.s32.f32','vcvtrhi.s32.f32','vcvtrls.s32.f32','vcvtrge.s32.f32','vcvtrlt.s32.f32','vcvtrgt.s32.f32','vcvtrle.s32.f32', + 'vcvtreq.s32.f64','vcvtrne.s32.f64','vcvtrcs.s32.f64','vcvtrhs.s32.f64','vcvtrcc.s32.f64','vcvtrlo.s32.f64','vcvtrmi.s32.f64','vcvtrpl.s32.f64','vcvtrvs.s32.f64','vcvtrvc.s32.f64','vcvtrhi.s32.f64','vcvtrls.s32.f64','vcvtrge.s32.f64','vcvtrlt.s32.f64','vcvtrgt.s32.f64','vcvtrle.s32.f64', + 'vcvtreq.u32.f32','vcvtrne.u32.f32','vcvtrcs.u32.f32','vcvtrhs.u32.f32','vcvtrcc.u32.f32','vcvtrlo.u32.f32','vcvtrmi.u32.f32','vcvtrpl.u32.f32','vcvtrvs.u32.f32','vcvtrvc.u32.f32','vcvtrhi.u32.f32','vcvtrls.u32.f32','vcvtrge.u32.f32','vcvtrlt.u32.f32','vcvtrgt.u32.f32','vcvtrle.u32.f32', + 'vcvtreq.u32.f64','vcvtrne.u32.f64','vcvtrcs.u32.f64','vcvtrhs.u32.f64','vcvtrcc.u32.f64','vcvtrlo.u32.f64','vcvtrmi.u32.f64','vcvtrpl.u32.f64','vcvtrvs.u32.f64','vcvtrvc.u32.f64','vcvtrhi.u32.f64','vcvtrls.u32.f64','vcvtrge.u32.f64','vcvtrlt.u32.f64','vcvtrgt.u32.f64','vcvtrle.u32.f64', + + 'vcvtbeq.f16.f32','vcvtbne.f16.f32','vcvtbcs.f16.f32','vcvtbhs.f16.f32','vcvtbcc.f16.f32','vcvtblo.f16.f32','vcvtbmi.f16.f32','vcvtbpl.f16.f32','vcvtbvs.f16.f32','vcvtbvc.f16.f32','vcvtbhi.f16.f32','vcvtbls.f16.f32','vcvtbge.f16.f32','vcvtblt.f16.f32','vcvtbgt.f16.f32','vcvtble.f16.f32', + 'vcvtbeq.f32.f16','vcvtbne.f32.f16','vcvtbcs.f32.f16','vcvtbhs.f32.f16','vcvtbcc.f32.f16','vcvtblo.f32.f16','vcvtbmi.f32.f16','vcvtbpl.f32.f16','vcvtbvs.f32.f16','vcvtbvc.f32.f16','vcvtbhi.f32.f16','vcvtbls.f32.f16','vcvtbge.f32.f16','vcvtblt.f32.f16','vcvtbgt.f32.f16','vcvtble.f32.f16', + + 'vcvtteq.f16.f32','vcvttne.f16.f32','vcvttcs.f16.f32','vcvtths.f16.f32','vcvttcc.f16.f32','vcvttlo.f16.f32','vcvttmi.f16.f32','vcvttpl.f16.f32','vcvttvs.f16.f32','vcvttvc.f16.f32','vcvtthi.f16.f32','vcvttls.f16.f32','vcvttge.f16.f32','vcvttlt.f16.f32','vcvttgt.f16.f32','vcvttle.f16.f32', + 'vcvtteq.f32.f16','vcvttne.f32.f16','vcvttcs.f32.f16','vcvtths.f32.f16','vcvttcc.f32.f16','vcvttlo.f32.f16','vcvttmi.f32.f16','vcvttpl.f32.f16','vcvttvs.f32.f16','vcvttvc.f32.f16','vcvtthi.f32.f16','vcvttls.f32.f16','vcvttge.f32.f16','vcvttlt.f32.f16','vcvttgt.f32.f16','vcvttle.f32.f16', + + 'vdiveq.f32','vdivne.f32','vdivcs.f32','vdivhs.f32','vdivcc.f32','vdivlo.f32','vdivmi.f32','vdivpl.f32','vdivvs.f32','vdivvc.f32','vdivhi.f32','vdivls.f32','vdivge.f32','vdivlt.f32','vdivgt.f32','vdivle.f32', + 'vdiveq.f64','vdivne.f64','vdivcs.f64','vdivhs.f64','vdivcc.f64','vdivlo.f64','vdivmi.f64','vdivpl.f64','vdivvs.f64','vdivvc.f64','vdivhi.f64','vdivls.f64','vdivge.f64','vdivlt.f64','vdivgt.f64','vdivle.f64', + + 'vmaxeq.f32','vmaxne.f32','vmaxcs.f32','vmaxhs.f32','vmaxcc.f32','vmaxlo.f32','vmaxmi.f32','vmaxpl.f32','vmaxvs.f32','vmaxvc.f32','vmaxhi.f32','vmaxls.f32','vmaxge.f32','vmaxlt.f32','vmaxgt.f32','vmaxle.f32', + 'vmineq.f32','vminne.f32','vmincs.f32','vminhs.f32','vmincc.f32','vminlo.f32','vminmi.f32','vminpl.f32','vminvs.f32','vminvc.f32','vminhi.f32','vminls.f32','vminge.f32','vminlt.f32','vmingt.f32','vminle.f32', + + 'vmlaeq.f32','vmlane.f32','vmlacs.f32','vmlahs.f32','vmlacc.f32','vmlalo.f32','vmlami.f32','vmlapl.f32','vmlavs.f32','vmlavc.f32','vmlahi.f32','vmlals.f32','vmlage.f32','vmlalt.f32','vmlagt.f32','vmlale.f32', + 'vmlaeq.f64','vmlane.f64','vmlacs.f64','vmlahs.f64','vmlacc.f64','vmlalo.f64','vmlami.f64','vmlapl.f64','vmlavs.f64','vmlavc.f64','vmlahi.f64','vmlals.f64','vmlage.f64','vmlalt.f64','vmlagt.f64','vmlale.f64', + + 'vmlseq.f32','vmlsne.f32','vmlscs.f32','vmlshs.f32','vmlscc.f32','vmlslo.f32','vmlsmi.f32','vmlspl.f32','vmlsvs.f32','vmlsvc.f32','vmlshi.f32','vmlsls.f32','vmlsge.f32','vmlslt.f32','vmlsgt.f32','vmlsle.f32', + 'vmlseq.f64','vmlsne.f64','vmlscs.f64','vmlshs.f64','vmlscc.f64','vmlslo.f64','vmlsmi.f64','vmlspl.f64','vmlsvs.f64','vmlsvc.f64','vmlshi.f64','vmlsls.f64','vmlsge.f64','vmlslt.f64','vmlsgt.f64','vmlsle.f64', + + 'vmuleq.f32','vmulne.f32','vmulcs.f32','vmulhs.f32','vmulcc.f32','vmullo.f32','vmulmi.f32','vmulpl.f32','vmulvs.f32','vmulvc.f32','vmulhi.f32','vmulls.f32','vmulge.f32','vmullt.f32','vmulgt.f32','vmulle.f32', + 'vmuleq.f64','vmulne.f64','vmulcs.f64','vmulhs.f64','vmulcc.f64','vmullo.f64','vmulmi.f64','vmulpl.f64','vmulvs.f64','vmulvc.f64','vmulhi.f64','vmulls.f64','vmulge.f64','vmullt.f64','vmulgt.f64','vmulle.f64', + + 'vnegeq.f32','vnegne.f32','vnegcs.f32','vneghs.f32','vnegcc.f32','vneglo.f32','vnegmi.f32','vnegpl.f32','vnegvs.f32','vnegvc.f32','vneghi.f32','vnegls.f32','vnegge.f32','vneglt.f32','vneggt.f32','vnegle.f32', + 'vnegeq.f64','vnegne.f64','vnegcs.f64','vneghs.f64','vnegcc.f64','vneglo.f64','vnegmi.f64','vnegpl.f64','vnegvs.f64','vnegvc.f64','vneghi.f64','vnegls.f64','vnegge.f64','vneglt.f64','vneggt.f64','vnegle.f64', + + 'vnmlaeq.f32','vnmlane.f32','vnmlacs.f32','vnmlahs.f32','vnmlacc.f32','vnmlalo.f32','vnmlami.f32','vnmlapl.f32','vnmlavs.f32','vnmlavc.f32','vnmlahi.f32','vnmlals.f32','vnmlage.f32','vnmlalt.f32','vnmlagt.f32','vnmlale.f32', + 'vnmlaeq.f64','vnmlane.f64','vnmlacs.f64','vnmlahs.f64','vnmlacc.f64','vnmlalo.f64','vnmlami.f64','vnmlapl.f64','vnmlavs.f64','vnmlavc.f64','vnmlahi.f64','vnmlals.f64','vnmlage.f64','vnmlalt.f64','vnmlagt.f64','vnmlale.f64', + + 'vnmlseq.f32','vnmlsne.f32','vnmlscs.f32','vnmlshs.f32','vnmlscc.f32','vnmlslo.f32','vnmlsmi.f32','vnmlspl.f32','vnmlsvs.f32','vnmlsvc.f32','vnmlshi.f32','vnmlsls.f32','vnmlsge.f32','vnmlslt.f32','vnmlsgt.f32','vnmlsle.f32', + 'vnmlseq.f64','vnmlsne.f64','vnmlscs.f64','vnmlshs.f64','vnmlscc.f64','vnmlslo.f64','vnmlsmi.f64','vnmlspl.f64','vnmlsvs.f64','vnmlsvc.f64','vnmlshi.f64','vnmlsls.f64','vnmlsge.f64','vnmlslt.f64','vnmlsgt.f64','vnmlsle.f64', + + 'vnmuleq.f64','vnmulne.f64','vnmulcs.f64','vnmulhs.f64','vnmulcc.f64','vnmullo.f64','vnmulmi.f64','vnmulpl.f64','vnmulvs.f64','vnmulvc.f64','vnmulhi.f64','vnmulls.f64','vnmulge.f64','vnmullt.f64','vnmulgt.f64','vnmulle.f64', + 'vnmuleq.f32','vnmulne.f32','vnmulcs.f32','vnmulhs.f32','vnmulcc.f32','vnmullo.f32','vnmulmi.f32','vnmulpl.f32','vnmulvs.f32','vnmulvc.f32','vnmulhi.f32','vnmulls.f32','vnmulge.f32','vnmullt.f32','vnmulgt.f32','vnmulle.f32', + + 'vpaddeq.f32','vpaddne.f32','vpaddcs.f32','vpaddhs.f32','vpaddcc.f32','vpaddlo.f32','vpaddmi.f32','vpaddpl.f32','vpaddvs.f32','vpaddvc.f32','vpaddhi.f32','vpaddls.f32','vpaddge.f32','vpaddlt.f32','vpaddgt.f32','vpaddle.f32', + + 'vpmaxeq.f32','vpmaxne.f32','vpmaxcs.f32','vpmaxhs.f32','vpmaxcc.f32','vpmaxlo.f32','vpmaxmi.f32','vpmaxpl.f32','vpmaxvs.f32','vpmaxvc.f32','vpmaxhi.f32','vpmaxls.f32','vpmaxge.f32','vpmaxlt.f32','vpmaxgt.f32','vpmaxle.f32', + 'vpmineq.f32','vpminne.f32','vpmincs.f32','vpminhs.f32','vpmincc.f32','vpminlo.f32','vpminmi.f32','vpminpl.f32','vpminvs.f32','vpminvc.f32','vpminhi.f32','vpminls.f32','vpminge.f32','vpminlt.f32','vpmingt.f32','vpminle.f32', + + 'vrecpeeq.u32','vrecpene.u32','vrecpecs.u32','vrecpehs.u32','vrecpecc.u32','vrecpelo.u32','vrecpemi.u32','vrecpepl.u32','vrecpevs.u32','vrecpevc.u32','vrecpehi.u32','vrecpels.u32','vrecpege.u32','vrecpelt.u32','vrecpegt.u32','vrecpele.u32', + 'vrecpeeq.f32','vrecpene.f32','vrecpecs.f32','vrecpehs.f32','vrecpecc.f32','vrecpelo.f32','vrecpemi.f32','vrecpepl.f32','vrecpevs.f32','vrecpevc.f32','vrecpehi.f32','vrecpels.f32','vrecpege.f32','vrecpelt.f32','vrecpegt.f32','vrecpele.f32', + 'vrecpseq.f32','vrecpsne.f32','vrecpscs.f32','vrecpshs.f32','vrecpscc.f32','vrecpslo.f32','vrecpsmi.f32','vrecpspl.f32','vrecpsvs.f32','vrecpsvc.f32','vrecpshi.f32','vrecpsls.f32','vrecpsge.f32','vrecpslt.f32','vrecpsgt.f32','vrecpsle.f32', + + 'vrsqrteeq.u32','vrsqrtene.u32','vrsqrtecs.u32','vrsqrtehs.u32','vrsqrtecc.u32','vrsqrtelo.u32','vrsqrtemi.u32','vrsqrtepl.u32','vrsqrtevs.u32','vrsqrtevc.u32','vrsqrtehi.u32','vrsqrtels.u32','vrsqrtege.u32','vrsqrtelt.u32','vrsqrtegt.u32','vrsqrtele.u32', + 'vrsqrteeq.f32','vrsqrtene.f32','vrsqrtecs.f32','vrsqrtehs.f32','vrsqrtecc.f32','vrsqrtelo.f32','vrsqrtemi.f32','vrsqrtepl.f32','vrsqrtevs.f32','vrsqrtevc.f32','vrsqrtehi.f32','vrsqrtels.f32','vrsqrtege.f32','vrsqrtelt.f32','vrsqrtegt.f32','vrsqrtele.f32', + 'vrsqrtseq.f32','vrsqrtsne.f32','vrsqrtscs.f32','vrsqrtshs.f32','vrsqrtscc.f32','vrsqrtslo.f32','vrsqrtsmi.f32','vrsqrtspl.f32','vrsqrtsvs.f32','vrsqrtsvc.f32','vrsqrtshi.f32','vrsqrtsls.f32','vrsqrtsge.f32','vrsqrtslt.f32','vrsqrtsgt.f32','vrsqrtsle.f32', + + 'vsqrteq.f32','vsqrtne.f32','vsqrtcs.f32','vsqrths.f32','vsqrtcc.f32','vsqrtlo.f32','vsqrtmi.f32','vsqrtpl.f32','vsqrtvs.f32','vsqrtvc.f32','vsqrthi.f32','vsqrtls.f32','vsqrtge.f32','vsqrtlt.f32','vsqrtgt.f32','vsqrtle.f32', + 'vsqrteq.f64','vsqrtne.f64','vsqrtcs.f64','vsqrths.f64','vsqrtcc.f64','vsqrtlo.f64','vsqrtmi.f64','vsqrtpl.f64','vsqrtvs.f64','vsqrtvc.f64','vsqrthi.f64','vsqrtls.f64','vsqrtge.f64','vsqrtlt.f64','vsqrtgt.f64','vsqrtle.f64', + + 'vsubeq.f32','vsubne.f32','vsubcs.f32','vsubhs.f32','vsubcc.f32','vsublo.f32','vsubmi.f32','vsubpl.f32','vsubvs.f32','vsubvc.f32','vsubhi.f32','vsubls.f32','vsubge.f32','vsublt.f32','vsubgt.f32','vsuble.f32', + 'vsubeq.f64','vsubne.f64','vsubcs.f64','vsubhs.f64','vsubcc.f64','vsublo.f64','vsubmi.f64','vsubpl.f64','vsubvs.f64','vsubvc.f64','vsubhi.f64','vsubls.f64','vsubge.f64','vsublt.f64','vsubgt.f64','vsuble.f64' + ), + /* Registers */ + 35 => array( + /* General-Purpose Registers */ + 'r0','r1','r2','r3','r4','r5','r6','r7', + 'r8','r9','r10','r11','r12','r13','r14','r15', + /* Scratch Registers */ + 'a1','a2','a3','a4', + /* Variable Registers */ + 'v1','v2','v3','v4','v5','v6','v7','v8', + /* Other Synonims for General-Purpose Registers */ + 'sb','sl','fp','ip','sp','lr','pc', + /* WMMX Data Registers */ + 'wr0','wr1','wr2','wr3','wr4','wr5','wr6','wr7', + 'wr8','wr9','wr10','wr11','wr12','wr13','wr14','wr15', + /* WMMX Control Registers */ + 'wcid','wcon','wcssf','wcasf', + /* WMMX-Mapped General-Purpose Registers */ + 'wcgr0','wcgr1','wcgr2','wcgr3', + /* VFPv3 Registers */ + 's0','s1','s2','s3','s4','s5','s6','s7', + 's8','s9','s10','s11','s12','s13','s14','s15', + 's16','s17','s18','s19','s20','s21','s22','s23', + 's24','s25','s26','s27','s28','s29','s30','s31', + /* VFPv3/NEON Registers */ + 'd0','d1','d2','d3','d4','d5','d6','d7', + 'd8','d9','d10','d11','d12','d13','d14','d15', + 'd16','d17','d18','d19','d20','d21','d22','d23', + 'd24','d25','d26','d27','d28','d29','d30','d31', + /* NEON Registers */ + 'q0','q1','q2','q3','q4','q5','q6','q7', + 'q8','q9','q10','q11','q12','q13','q14','q15' + ) + ), + '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, + 10 => false, + 11 => false, + 12 => false, + 13 => false, + 14 => false, + 15 => false, + 16 => false, + 17 => false, + 18 => false, + 19 => false, + 20 => false, + 21 => false, + 22 => false, + 23 => false, + 24 => false, + 25 => false, + 26 => false, + 27 => false, + 28 => false, + 29 => false, + 30 => false, + 31 => false, + 32 => false, + 33 => false, + 34 => false, + 35 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + /* Unconditional Data Processing Instructions */ + 1 => 'color: #00007f; font-weight: normal; font-style: normal;', + /* Conditional Data Processing Instructions */ + 2 => 'color: #00007f; font-weight: normal; font-style: italic;', + /* Unconditional Memory Access Instructions */ + 3 => 'color: #00007f; font-weight: normal; font-style: normal;', + /* Conditional Memory Access Instructions */ + 4 => 'color: #00007f; font-weight: normal; font-style: italic;', + /* Unconditional Flags Changing Instructions */ + 5 => 'color: #00007f; font-weight: bold; font-style: normal;', + /* Conditional Flags Changing Instructions */ + 6 => 'color: #00007f; font-weight: bold; font-style: italic;', + /* Unconditional Flow Control Instructions */ + 7 => 'color: #0000ff; font-weight: normal; font-style: normal;', + /* Conditional Flow Control Instructions */ + 8 => 'color: #0000ff; font-weight: normal; font-style: italic;', + /* Unconditional Syncronization Instructions */ + 9 => 'color: #00007f; font-weight: normal; font-style: normal;', + /* Conditional Syncronization Instructions */ + 10 => 'color: #00007f; font-weight: normal; font-style: italic;', + /* Unonditional ARMv6 SIMD */ + 11 => 'color: #b00040; font-weight: normal; font-style: normal;', + /* Conditional ARMv6 SIMD */ + 12 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Unconditional Coprocessor Instructions */ + 13 => 'color: #00007f; font-weight: normal; font-style: normal;', + /* Conditional Coprocessor Instructions */ + 14 => 'color: #00007f; font-weight: bold; font-style: italic;', + /* Unconditional System Instructions */ + 15 => 'color: #00007f; font-weight: normal; font-style: normal;', + /* Conditional System Instructions */ + 16 => 'color: #00007f; font-weight: bold; font-style: italic;', + /* Unconditional WMMX/WMMX2 SIMD Instructions */ + 17 => 'color: #b00040; font-weight: normal; font-style: normal;', + /* Conditional WMMX/WMMX2 SIMD Instructions */ + 18 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Unconditional VFPv3 & NEON SIMD Memory Access Instructions */ + 19 => 'color: #b00040; font-weight: normal; font-style: normal;', + /* Unconditional NEON SIMD Logical Instructions */ + 20 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Unconditional NEON SIMD ARM Registers Interop Instructions */ + 21 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Unconditional NEON SIMD Bit/Byte-Level Instructions */ + 22 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Unconditional NEON SIMD Universal Integer Instructions */ + 23 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Unconditional NEON SIMD Signed Integer Instructions */ + 24 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Unconditional NEON SIMD Unsigned Integer Instructions */ + 25 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Unconditional VFPv3 & NEON SIMD Floating-Point Instructions */ + 26 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Conditional VFPv3 & NEON SIMD Memory Access Instructions */ + 27 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Conditional NEON SIMD Logical Instructions */ + 28 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Conditional NEON SIMD ARM Registers Interop Instructions */ + 29 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Conditional NEON SIMD Bit/Byte-Level Instructions */ + 30 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Conditional NEON SIMD Universal Integer Instructions */ + 31 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Conditional NEON SIMD Signed Integer Instructions */ + 32 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Conditional NEON SIMD Unsigned Integer Instructions */ + 33 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Conditional VFPv3 & NEON SIMD Floating-Point Instructions */ + 34 => 'color: #b00040; font-weight: normal; font-style: italic;', + /* Registers */ + 35 => 'color: #46aa03; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #adadad; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900; font-weight: bold;' + ), + 'STRINGS' => array( + 0 => 'color: #7f007f;' + ), + 'NUMBERS' => array( + 0 => 'color: #ff0000;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => '', + 10 => '', + 11 => '', + 12 => '', + 13 => '', + 14 => '', + 15 => '', + 16 => '', + 17 => '', + 18 => '', + 19 => '', + 20 => '', + 21 => '', + 22 => '', + 23 => '', + 24 => '', + 25 => '', + 26 => '', + 27 => '', + 28 => '', + 29 => '', + 30 => '', + 31 => '', + 32 => '', + 33 => '', + 34 => '', + 35 => '' + ), + 'NUMBERS' => + GESHI_NUMBER_BIN_PREFIX_PERCENT | + GESHI_NUMBER_BIN_SUFFIX | + GESHI_NUMBER_HEX_PREFIX | + GESHI_NUMBER_HEX_SUFFIX | + GESHI_NUMBER_OCT_SUFFIX | + GESHI_NUMBER_INT_BASIC | + GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | + GESHI_NUMBER_FLT_SCI_ZERO, + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 8, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(?|^])", + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%])" + ) + ) +); + +?> \ No newline at end of file diff --git a/Sources/geshi/asm.php b/Sources/geshi/asm.php new file mode 100644 index 0000000..dd0a7ec --- /dev/null +++ b/Sources/geshi/asm.php @@ -0,0 +1,603 @@ + 'ASM', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(), + //Line address prefix suppression + 'COMMENT_REGEXP' => array(2 => "/^(?:[0-9a-f]{0,4}:)?[0-9a-f]{4}(?:[0-9a-f]{4})?/mi"), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + /* General-Purpose */ + 1 => array( + /* BCD instructions */ + 'aaa','aad','aam','aas','daa','das', + /* Control flow instructions */ + 'ja','jae','jb','jbe','jc','je','jg','jge','jl','jle','jmp','jna', + 'jnae','jnb','jnbe','jnc','jne','jng','jnge','jnl','jnle','jno','jnp','jns','jnz', + 'jo','jp','jpe','jpo','js','jz','jcxz','jecxz','jrcxz','loop','loope','loopne', + 'call','ret','enter','leave','syscall','sysenter','int','into', + /* Predicate instructions */ + 'seta','setae','setb','setbe','setc','sete','setg','setge','setl','setle','setna', + 'setnae','setnb','setnbe','setnc','setne','setng','setnge','setnl','setnle','setno', + 'setnp','setns','setnz','seto','setp','setpe','setpo','sets','setz','salc', + /* Conditional move instructions */ + 'cmovo','cmovno','cmovb','cmovc','cmovnae','cmovae','cmovnb','cmovnc','cmove','cmovz', + 'cmovne','cmovnz','cmovbe','cmovna','cmova','cmovnbe','cmovs','cmovns','cmovp','cmovpe', + 'cmovnp','cmovpo','cmovl','cmovnge','cmovge','cmovnl','cmovle','cmovng','cmovg','cmovnle', + /* ALU instructions */ + 'add','sub','adc','sbb','neg','cmp','inc','dec','and','or','xor','not','test', + 'shl','shr','sal','sar','shld','shrd','rol','ror','rcl','rcr', + 'cbw','cwd','cwde','cdq','cdqe','cqo','bsf','bsr','bt','btc','btr','bts', + 'idiv','imul','div','mul','bswap','nop', + /* Memory instructions */ + 'lea','mov','movsx','movsxd','movzx','xlatb','bound','xchg','xadd','cmpxchg','cmpxchg8b','cmpxchg16b', + /* Stack instructions */ + 'push','pop','pusha','popa','pushad','popad','pushf','popf','pushfd','popfd','pushfq','popfq', + /* EFLAGS manipulations instructions */ + 'clc','cld','stc','std','cmc','lahf','sahf', + /* Prefix instructions */ + 'lock','rep','repe','repz','repne','repnz', + /* String instructions */ + 'cmps','cmpsb','cmpsw',/*'cmpsd',*/ 'cmpsq', /*CMPSD conflicts with the SSE2 instructions of the same name*/ + 'movs','movsb','movsw',/*'movsd',*/ 'movsq', /*MOVSD conflicts with the SSE2 instructions of the same name*/ + 'scas','scasb','scasw','scasd','scasq', + 'stos','stosb','stosw','stosd','stosq', + 'lods','lodsb','lodsw','lodsd','lodsq', + /* Information instructions */ + 'cpuid','rdtsc','rdtscp','rdpmc','xgetbv', + 'sgdt','sidt','sldt','smsw','str','lar', + /* LWP instructions */ + 'llwpcb','slwpcb','lwpval','lwpins', + /* Instructions from miscellaneous extensions */ + 'crc32','popcnt','lzcnt','tzcnt','movbe','pclmulqdq','rdrand', + /* FSGSBASE instructions */ + 'rdfsbase','rdgsbase','wrfsbase','wrgsbase', + /* BMI1 instructions */ + 'andn','bextr','blsi','blsmk','blsr', + /* BMI2 instructions */ + 'bzhi','mulx','pdep','pext','rorx','sarx','shlx','shrx', + /* TBM instructions */ + 'blcfill','blci','blcic','blcmsk','blcs','blsfill','blsic','t1mskc','tzmsk', + /* Legacy instructions */ + 'arpl','ud2','lds','les','lfs','lgs','lss','lsl','verr','verw', + /* Privileged instructions */ + 'cli','sti','clts','hlt','rsm','in','insb','insw','insd', + 'out','outsb','outsw','outsd','clflush','invd','invlpg','invpcid','wbinvd', + 'iret','iretd','iretq','sysexit','sysret','lidt','lgdt','lldt','lmsw','ltr', + 'monitor','mwait','rdmsr','wrmsr','swapgs', + 'fxsave','fxsave64','fxrstor','fxrstor64', + 'xsave','xsaveopt','xrstor','xsetbv','getsec', + /* VMX instructions */ + 'invept','invvpid','vmcall','vmclear','vmlaunch','vmresume', + 'vmptrld','vmptrst','vmread','vmwrite','vmxoff','vmxon', + /* SVM (AMD-V) instructions */ + 'invlpga','skinit','clgi','stgi','vmload','vmsave','vmmcall','vmrun' + ), + /*FPU*/ + 2 => array( + 'f2xm1','fabs','fadd','faddp','fbld','fbstp','fchs','fclex','fcom','fcomp','fcompp','fdecstp', + 'fdisi','fdiv','fdivp','fdivr','fdivrp','feni','ffree','fiadd','ficom','ficomp','fidiv', + 'fidivr','fild','fimul','fincstp','finit','fist','fistp','fisub','fisubr','fld','fld1', + 'fldcw','fldenv','fldenvw','fldl2e','fldl2t','fldlg2','fldln2','fldpi','fldz','fmul', + 'fmulp','fnclex','fndisi','fneni','fninit','fnop','fnsave','fnsavew','fnstcw','fnstenv', + 'fnstenvw','fnstsw','fpatan','fprem','fptan','frndint','frstor','frstorw','fsave', + 'fsavew','fscale','fsqrt','fst','fstcw','fstenv','fstenvw','fstp','fstsw','fsub','fsubp', + 'fsubr','fsubrp','ftst','fwait','fxam','fxch','fxtract','fyl2x','fyl2xp1', + 'fsetpm','fcos','fldenvd','fnsaved','fnstenvd','fprem1','frstord','fsaved','fsin','fsincos', + 'fstenvd','fucom','fucomp','fucompp','ffreep', + /* FCMOV instructions */ + 'fcomi','fcomip','fucomi','fucomip', + 'fcmovb','fcmove','fcmovbe','fcmovu','fcmovnb','fcmovne','fcmovnbe','fcmovnu', + /* SSE3 instructions */ + 'fisttp' + ), + /*SIMD*/ + 3 => array( + /* MMX instructions */ + 'movd','movq', + 'paddb','paddw','paddd','paddsb','paddsw','paddusb','paddusw', + 'psubb','psubw','psubd','psubsb','psubsw','psubusb','psubusw', + 'pand','pandn','por','pxor', + 'pcmpeqb','pcmpeqd','pcmpeqw','pcmpgtb','pcmpgtd','pcmpgtw', + 'pmaddwd','pmulhw','pmullw', + 'psllw','pslld','psllq','psrlw','psrld','psrlq','psraw','psrad', + 'packuswb','packsswb','packssdw', + 'punpcklbw','punpcklwd','punpckldq','punpckhbw','punpckhwd','punpckhdq', + 'emms', + /* MMX+ instructions */ + 'pavgb','pavgw', + 'pextrw','pinsrw','pmovmskb', + 'pmaxsw','pmaxub','pminsw','pminub', + 'pmulhuw','psadbw','pshufw', + 'prefetchnta','prefetcht0','prefetcht1','prefetcht2', + 'maskmovq','movntq','sfence', + /* EMMX instructions (only available on Cyrix MediaGXm) */ + 'paddsiw','psubsiw', + /*'pmulhrw',*/'pmachriw','pmulhriw', /* PMULHRW conflicts with the 3dnow! instruction of the same name */ + 'pmagw','pdistib','paveb', + 'pmvzb','pmvnzb','pmvlzb','pmvgezb', + /* 3dnow! instructions! */ + 'pfacc','pfadd','pfsub','pfsubr','pfmul', + 'pfcmpeq','pfcmpge','pfcmpgt', + 'pfmax','pfmin', + 'pfrcp','pfrcpit1','pfrcpit2','pfrsqit1','pfrsqrt', + 'pi2fd','pf2id', + 'pavgusb','pmulhrw', + 'femms', + /* 3dnow!+ instructions */ + 'pfnacc','pfpnacc','pi2fw','pf2iw','pswapd', + /* 3dnow! Geode instructions */ + 'pfrsqrtv','pfrcpv', + /* 3dnow! Prefetch instructions */ + 'prefetch','prefetchw', + /* SSE instructions */ + 'addss','addps','subss','subps', + 'mulss','mulps','divss','divps','sqrtss','sqrtps', + 'rcpss','rcpps','rsqrtss','rsqrtps', + 'maxss','maxps','minss','minps', + 'cmpss','comiss','ucomiss','cmpps', + 'cmpeqss','cmpltss','cmpless','cmpunordss','cmpneqss','cmpnltss','cmpnless','cmpordss', + 'cmpeqps','cmpltps','cmpleps','cmpunordps','cmpneqps','cmpnltps','cmpnleps','cmpordps', + 'andnps','andps','orps','xorps', + 'cvtsi2ss','cvtss2si','cvttss2si', + 'cvtpi2ps','cvtps2pi','cvttps2pi', + 'movss','movlps','movhps','movlhps','movhlps','movaps','movups','movntps','movmskps', + 'shufps','unpckhps','unpcklps', + 'ldmxcsr','stmxcsr', + /* SSE2 instructions */ + 'addpd','addsd','subpd','subsd', + 'mulsd','mulpd','divsd','divpd','sqrtsd','sqrtpd', + 'maxsd','maxpd','minsd','minpd', + 'cmpsd','comisd','ucomisd','cmppd', + 'cmpeqsd','cmpltsd','cmplesd','cmpunordsd','cmpneqsd','cmpnltsd','cmpnlesd','cmpordsd', + 'cmpeqpd','cmpltpd','cmplepd','cmpunordpd','cmpneqpd','cmpnltpd','cmpnlepd','cmpordpd', + 'andnpd','andpd','orpd','xorpd', + 'cvtsd2ss','cvtpd2ps','cvtss2sd','cvtps2pd', + 'cvtdq2ps','cvtps2dq','cvttps2dq', + 'cvtdq2pd','cvtpd2dq','cvttpd2dq', + 'cvtsi2sd','cvtsd2si','cvttsd2si', + 'cvtpi2pd','cvtpd2pi','cvttpd2pi', + 'movsd','movlpd','movhpd','movapd','movupd','movntpd','movmskpd', + 'shufpd','unpckhpd','unpcklpd', + 'movnti','movdqa','movdqu','movntdq','maskmovdqu', + 'movdq2q','movq2dq', + 'paddq','psubq','pmuludq', + 'pslldq','psrldq', + 'punpcklqdq','punpckhqdq', + 'pshufhw','pshuflw','pshufd', + 'lfence','mfence', + /* SSE3 instructions */ + 'addsubps','addsubpd', + 'haddps','haddpd','hsubps','hsubpd', + 'movsldup','movshdup','movddup', + 'lddqu', + /* SSSE3 instructions */ + 'psignb','psignw','psignd', + 'pabsb','pabsw','pabsd', + 'palignr','pshufb', + 'pmulhrsw','pmaddubsw', + 'phaddw','phaddd','phaddsw', + 'phsubw','phsubd','phsubsw', + /* SSE4A instructions */ + 'extrq','insertq','movntsd','movntss', + /* SSE4.1 instructions */ + 'mpsadbw','phminposuw', + 'pmuldq','pmulld', + 'dpps','dppd', + 'blendps','blendpd','blendvps','blendvpd','pblendvb','pblendw', + 'pmaxsb','pmaxuw','pmaxsd','pmaxud','pminsb','pminuw','pminsd','pminud', + 'roundps','roundss','roundpd','roundsd', + 'insertps','pinsrb','pinsrd','pinsrq', + 'extractps','pextrb','pextrd','pextrq', + 'pmovsxbw','pmovsxbd','pmovsxbq','pmovsxwd','pmovsxwq','pmovsxdq', + 'pmovzxbw','pmovzxbd','pmovzxbq','pmovzxwd','pmovzxwq','pmovzxdq', + 'ptest', + 'pcmpeqq', + 'packusdw', + 'movntdqa', + /* SSE4.2 instructions */ + 'pcmpgtq', + 'pcmpestri','pcmpestrm','pcmpistri','pcmpistrm', + /* AES instructions */ + 'aesenc','aesenclast','aesdec','aesdeclast','aeskeygenassist','aesimc', + /* VIA Padlock instructions */ + 'xcryptcbc','xcryptcfb','xcryptctr','xcryptecb','xcryptofb', + 'xsha1','xsha256','montmul','xstore', + /* AVX instructions */ + 'vaddss','vaddps','vaddsd','vaddpd','vsubss','vsubps','vsubsd','vsubpd', + 'vaddsubps','vaddsubpd', + 'vhaddps','vhaddpd','vhsubps','vhsubpd', + 'vmulss','vmulps','vmulsd','vmulpd', + 'vmaxss','vmaxps','vmaxsd','vmaxpd','vminss','vminps','vminsd','vminpd', + 'vandps','vandpd','vandnps','vandnpd','vorps','vorpd','vxorps','vxorpd', + 'vblendps','vblendpd','vblendvps','vblendvpd', + 'vcmpss','vcomiss','vucomiss','vcmpsd','vcomisd','vucomisd','vcmpps','vcmppd', + 'vcmpeqss','vcmpltss','vcmpless','vcmpunordss','vcmpneqss','vcmpnltss','vcmpnless','vcmpordss', + 'vcmpeq_uqss','vcmpngess','vcmpngtss','vcmpfalsess','vcmpneq_oqss','vcmpgess','vcmpgtss','vcmptruess', + 'vcmpeq_osss','vcmplt_oqss','vcmple_oqss','vcmpunord_sss','vcmpneq_usss','vcmpnlt_uqss','vcmpnle_uqss','vcmpord_sss', + 'vcmpeq_usss','vcmpnge_uqss','vcmpngt_uqss','vcmpfalse_osss','vcmpneq_osss','vcmpge_oqss','vcmpgt_oqss','vcmptrue_usss', + 'vcmpeqps','vcmpltps','vcmpleps','vcmpunordps','vcmpneqps','vcmpnltps','vcmpnleps','vcmpordps', + 'vcmpeq_uqps','vcmpngeps','vcmpngtps','vcmpfalseps','vcmpneq_oqps','vcmpgeps','vcmpgtps','vcmptrueps', + 'vcmpeq_osps','vcmplt_oqps','vcmple_oqps','vcmpunord_sps','vcmpneq_usps','vcmpnlt_uqps','vcmpnle_uqps','vcmpord_sps', + 'vcmpeq_usps','vcmpnge_uqps','vcmpngt_uqps','vcmpfalse_osps','vcmpneq_osps','vcmpge_oqps','vcmpgt_oqps','vcmptrue_usps', + 'vcmpeqsd','vcmpltsd','vcmplesd','vcmpunordsd','vcmpneqsd','vcmpnltsd','vcmpnlesd','vcmpordsd', + 'vcmpeq_uqsd','vcmpngesd','vcmpngtsd','vcmpfalsesd','vcmpneq_oqsd','vcmpgesd','vcmpgtsd','vcmptruesd', + 'vcmpeq_ossd','vcmplt_oqsd','vcmple_oqsd','vcmpunord_ssd','vcmpneq_ussd','vcmpnlt_uqsd','vcmpnle_uqsd','vcmpord_ssd', + 'vcmpeq_ussd','vcmpnge_uqsd','vcmpngt_uqsd','vcmpfalse_ossd','vcmpneq_ossd','vcmpge_oqsd','vcmpgt_oqsd','vcmptrue_ussd', + 'vcmpeqpd','vcmpltpd','vcmplepd','vcmpunordpd','vcmpneqpd','vcmpnltpd','vcmpnlepd','vcmpordpd', + 'vcmpeq_uqpd','vcmpngepd','vcmpngtpd','vcmpfalsepd','vcmpneq_oqpd','vcmpgepd','vcmpgtpd','vcmptruepd', + 'vcmpeq_ospd','vcmplt_oqpd','vcmple_oqpd','vcmpunord_spd','vcmpneq_uspd','vcmpnlt_uqpd','vcmpnle_uqpd','vcmpord_spd', + 'vcmpeq_uspd','vcmpnge_uqpd','vcmpngt_uqpd','vcmpfalse_ospd','vcmpneq_ospd','vcmpge_oqpd','vcmpgt_oqpd','vcmptrue_uspd', + 'vcvtsd2ss','vcvtpd2ps','vcvtss2sd','vcvtps2pd', + 'vcvtsi2ss','vcvtss2si','vcvttss2si', + 'vcvtpi2ps','vcvtps2pi','vcvttps2pi', + 'vcvtdq2ps','vcvtps2dq','vcvttps2dq', + 'vcvtdq2pd','vcvtpd2dq','vcvttpd2dq', + 'vcvtsi2sd','vcvtsd2si','vcvttsd2si', + 'vcvtpi2pd','vcvtpd2pi','vcvttpd2pi', + 'vdivss','vdivps','vdivsd','vdivpd','vsqrtss','vsqrtps','vsqrtsd','vsqrtpd', + 'vdpps','vdppd', + 'vmaskmovps','vmaskmovpd', + 'vmovss','vmovsd','vmovaps','vmovapd','vmovups','vmovupd','vmovntps','vmovntpd', + 'vmovhlps','vmovlhps','vmovlps','vmovlpd','vmovhps','vmovhpd', + 'vmovsldup','vmovshdup','vmovddup', + 'vmovmskps','vmovmskpd', + 'vroundss','vroundps','vroundsd','vroundpd', + 'vrcpss','vrcpps','vrsqrtss','vrsqrtps', + 'vunpcklps','vunpckhps','vunpcklpd','vunpckhpd', + 'vbroadcastss','vbroadcastsd','vbroadcastf128', + 'vextractps','vinsertps','vextractf128','vinsertf128', + 'vshufps','vshufpd','vpermilps','vpermilpd','vperm2f128', + 'vtestps','vtestpd', + 'vpaddb','vpaddusb','vpaddsb','vpaddw','vpaddusw','vpaddsw','vpaddd','vpaddq', + 'vpsubb','vpsubusb','vpsubsb','vpsubw','vpsubusw','vpsubsw','vpsubd','vpsubq', + 'vphaddw','vphaddsw','vphaddd','vphsubw','vphsubsw','vphsubd', + 'vpsllw','vpslld','vpsllq','vpsrlw','vpsrld','vpsrlq','vpsraw','vpsrad', + 'vpand','vpandn','vpor','vpxor', + 'vpblendwb','vpblendw', + 'vpsignb','vpsignw','vpsignd', + 'vpavgb','vpavgw', + 'vpabsb','vpabsw','vpabsd', + 'vmovd','vmovq','vmovdqa','vmovdqu','vlddqu','vmovntdq','vmovntdqa','vmaskmovdqu', + 'vpmovsxbw','vpmovsxbd','vpmovsxbq','vpmovsxwd','vpmovsxwq','vpmovsxdq', + 'vpmovzxbw','vpmovzxbd','vpmovzxbq','vpmovzxwd','vpmovzxwq','vpmovzxdq', + 'vpackuswb','vpacksswb','vpackusdw','vpackssdw', + 'vpcmpeqb','vpcmpeqw','vpcmpeqd','vpcmpeqq','vpcmpgtb','vpcmpgtw','vpcmpgtd','vpcmpgtq', + 'vpmaddubsw','vpmaddwd', + 'vpmullw','vpmulhuw','vpmulhw','vpmulhrsw','vpmulld','vpmuludq','vpmuldq', + 'vpmaxub','vpmaxsb','vpmaxuw','vpmaxsw','vpmaxud','vpmaxsd', + 'vpminub','vpminsb','vpminuw','vpminsw','vpminud','vpminsd', + 'vpmovmskb','vptest', + 'vpunpcklbw','vpunpcklwd','vpunpckldq','vpunpcklqdq', + 'vpunpckhbw','vpunpckhwd','vpunpckhdq','vpunpckhqdq', + 'vpslldq','vpsrldq','vpalignr', + 'vpshufb','vpshuflw','vpshufhw','vpshufd', + 'vpextrb','vpextrw','vpextrd','vpextrq','vpinsrb','vpinsrw','vpinsrd','vpinsrq', + 'vpsadbw','vmpsadbw','vphminposuw', + 'vpcmpestri','vpcmpestrm','vpcmpistri','vpcmpistrm', + 'vpclmulqdq','vaesenc','vaesenclast','vaesdec','vaesdeclast','vaeskeygenassist','vaesimc', + 'vldmxcsr','vstmxcsr','vzeroall','vzeroupper', + /* AVX2 instructions */ + 'vbroadcasti128','vpbroadcastb','vpbroadcastw','vpbroadcastd','vpbroadcastq', + 'vpblendd', + 'vpermd','vpermq','vperm2i128', + 'vextracti128','vinserti128', + 'vpmaskmovd','vpmaskmovq', + 'vpsllvd','vpsllvq','vpsravd','vpsrlvd', + 'vpgatherdd','vpgatherqd','vgatherdq','vgatherqq', + 'vpermps','vpermpd', + 'vgatherdpd','vgatherqpd','vgatherdps','vgatherqps', + /* XOP instructions */ + 'vfrczss','vfrczps','vfrczsd','vfrczpd', + 'vpermil2ps','vperlil2pd', + 'vpcomub','vpcomb','vpcomuw','vpcomw','vpcomud','vpcomd','vpcomuq','vpcomq', + 'vphaddubw','vphaddbw','vphaddubd','vphaddbd','vphaddubq','vphaddbq', + 'vphadduwd','vphaddwd','vphadduwq','vphaddwq','vphaddudq','vphadddq', + 'vphsubbw','vphsubwd','vphsubdq', + 'vpmacsdd','vpmacssdd','vpmacsdql','vpmacssdql','vpmacsdqh','vpmacssdqh', + 'vpmacsww','vpmacssww','vpmacswd','vpmacsswd', + 'vpmadcswd','vpmadcsswd', + 'vpcmov','vpperm', + 'vprotb','vprotw','vprotd','vprotq', + 'vpshab','vpshaw','vpshad','vpshaq', + 'vpshlb','vpshlw','vpshld','vpshlq', + /* CVT16 instructions */ + 'vcvtph2ps','vcvtps2ph', + /* FMA4 instructions */ + 'vfmaddss','vfmaddps','vfmaddsd','vfmaddpd', + 'vfmsubss','vfmsubps','vfmsubsd','vfmsubpd', + 'vnfmaddss','vnfmaddps','vnfmaddsd','vnfmaddpd', + 'vnfmsubss','vnfmsubps','vnfmsubsd','vnfmsubpd', + 'vfmaddsubps','vfmaddsubpd','vfmsubaddps','vfmsubaddpd', + /* FMA3 instructions */ + 'vfmadd132ss','vfmadd213ss','vfmadd231ss', + 'vfmadd132ps','vfmadd213ps','vfmadd231ps', + 'vfmadd132sd','vfmadd213sd','vfmadd231sd', + 'vfmadd132pd','vfmadd213pd','vfmadd231pd', + 'vfmaddsub132ps','vfmaddsub213ps','vfmaddsub231ps', + 'vfmaddsub132pd','vfmaddsub213pd','vfmaddsub231pd', + 'vfmsubadd132ps','vfmsubadd213ps','vfmsubadd231ps', + 'vfmsubadd132pd','vfmsubadd213pd','vfmsubadd231pd', + 'vfmsub132ss','vfmsub213ss','vfmsub231ss', + 'vfmsub132ps','vfmsub213ps','vfmsub231ps', + 'vfmsub132sd','vfmsub213sd','vfmsub231sd', + 'vfmsub132pd','vfmsub213pd','vfmsub231pd', + 'vfnmadd132ss','vfnmadd213ss','vfnmadd231ss', + 'vfnmadd132ps','vfnmadd213ps','vfnmadd231ps', + 'vfnmadd132sd','vfnmadd213sd','vfnmadd231sd', + 'vfnmadd132pd','vfnmadd213pd','vfnmadd231pd', + 'vfnmsub132ss','vfnmsub213ss','vfnmsub231ss', + 'vfnmsub132ps','vfnmsub213ps','vfnmsub231ps', + 'vfnmsub132sd','vfnmsub213sd','vfnmsub231sd', + 'vfnmsub132pd','vfnmsub213pd','vfnmsub231pd' + ), + /*registers*/ + 4 => array( + /* General-Purpose Registers */ + 'al','ah','bl','bh','cl','ch','dl','dh','sil','dil','bpl','spl', + 'r8b','r9b','r10b','r11b','r12b','r13b','r14b','r15b', + 'ax','bx','cx','dx','si','di','bp','sp', + 'r8w','r9w','r10w','r11w','r12w','r13w','r14w','r15w', + 'eax','ebx','ecx','edx','esi','edi','ebp','esp', + 'r8d','r9d','r10d','r11d','r12d','r13d','r14d','r15d', + 'rax','rcx','rdx','rbx','rsp','rbp','rsi','rdi', + 'r8','r9','r10','r11','r12','r13','r14','r15', + /* Debug Registers */ + 'dr0','dr1','dr2','dr3','dr6','dr7', + /* Control Registers */ + 'cr0','cr2','cr3','cr4','cr8', + /* Test Registers (Supported on Intel 486 only) */ + 'tr3','tr4','tr5','tr6','tr7', + /* Segment Registers */ + 'cs','ds','es','fs','gs','ss', + /* FPU Registers */ + 'st','st0','st1','st2','st3','st4','st5','st6','st7', + /* MMX Registers */ + 'mm0','mm1','mm2','mm3','mm4','mm5','mm6','mm7', + /* SSE Registers */ + 'xmm0','xmm1','xmm2','xmm3','xmm4','xmm5','xmm6','xmm7', + 'xmm8','xmm9','xmm10','xmm11','xmm12','xmm13','xmm14','xmm15', + /* AVX Registers */ + 'ymm0','ymm1','ymm2','ymm3','ymm4','ymm5','ymm6','ymm7', + 'ymm8','ymm9','ymm10','ymm11','ymm12','ymm13','ymm14','ymm15' + ), + /*Directive*/ + 5 => array( + 'db','dw','dd','dq','dt','do','dy', + 'resb','resw','resd','resq','rest','reso','resy','incbin','equ','times','safeseh', + '__utf16__','__utf32__', + 'default','cpu','float','start','imagebase','osabi', + '..start','..imagebase','..gotpc','..gotoff','..gottpoff','..got','..plt','..sym','..tlsie', + 'section','segment','__sect__','group','absolute', + '.bss','.comment','.data','.lbss','.ldata','.lrodata','.rdata','.rodata','.tbss','.tdata','.text', + 'alloc','bss','code','exec','data','noalloc','nobits','noexec','nowrite','progbits','rdata','tls','write', + 'private','public','common','stack','overlay','class', + 'extern','global','import','export', + '%define','%idefine','%xdefine','%ixdefine','%assign','%undef', + '%defstr','%idefstr','%deftok','%ideftok', + '%strcat','%strlen','%substr', + '%macro','%imacro','%rmacro','%exitmacro','%endmacro','%unmacro', + '%if','%ifn','%elif','%elifn','%else','%endif', + '%ifdef','%ifndef','%elifdef','%elifndef', + '%ifmacro','%ifnmacro','%elifmacro','%elifnmacro', + '%ifctx','%ifnctx','%elifctx','%elifnctx', + '%ifidn','%ifnidn','%elifidn','%elifnidn', + '%ifidni','%ifnidni','%elifidni','%elifnidni', + '%ifid','%ifnid','%elifid','%elifnid', + '%ifnum','%ifnnum','%elifnum','%elifnnum', + '%ifstr','%ifnstr','%elifstr','%elifnstr', + '%iftoken','%ifntoken','%eliftoken','%elifntoken', + '%ifempty','%ifnempty','%elifempty','%elifnempty', + '%ifenv','%ifnenv','%elifenv','%elifnenv', + '%rep','%exitrep','%endrep', + '%while','%exitwhile','%endwhile', + '%include','%pathsearch','%depend','%use', + '%push','%pop','%repl','%arg','%local','%stacksize','flat','flat64','large','small', + '%error','%warning','%fatal', + '%00','.nolist','%rotate','%line','%!','%final','%clear', + 'struc','endstruc','istruc','at','iend', + 'align','alignb','sectalign', + 'bits','use16','use32','use64', + '__nasm_major__','__nasm_minor__','__nasm_subminor__','___nasm_patchlevel__', + '__nasm_version_id__','__nasm_ver__', + '__file__','__line__','__pass__','__bits__','__output_format__', + '__date__','__time__','__date_num__','__time_num__','__posix_time__', + '__utc_date__','__utc_time__','__utc_date_num__','__utc_time_num__', + '__float_daz__','__float_round__','__float__', + /* Keywords from standard packages */ + '__use_altreg__', + '__use_smartalign__','smartalign','__alignmode__', + '__use_fp__','__infinity__','__nan__','__qnan__','__snan__', + '__float8__','__float16__','__float32__','__float64__','__float80m__','__float80e__','__float128l__','__float128h__' + ), + /*Operands*/ + 6 => array( + 'a16','a32','a64','o16','o32','o64','strict', + 'byte','word','dword','qword','tword','oword','yword','nosplit', + '%0','%1','%2','%3','%4','%5','%6','%7','%8','%9', + 'abs','rel', + 'seg','wrt' + ) + ), + 'SYMBOLS' => array( + 1 => array( + '[', ']', '(', ')', + '+', '-', '*', '/', '%', + '.', ',', ';', ':' + ), + 2 => array( + '$','$$','%+','%?','%??' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00007f; font-weight: bold;', + 2 => 'color: #0000ff;', + 3 => 'color: #b00040;', + 4 => 'color: #46aa03; font-weight: bold;', + 5 => 'color: #0000ff; font-weight: bold;', + 6 => 'color: #0000ff; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #adadad; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #009900; font-weight: bold;' + ), + 'STRINGS' => array( + 0 => 'color: #7f007f;' + ), + 'NUMBERS' => array( + 0 => 'color: #ff0000;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 1 => 'color: #339933;', + 2 => 'color: #0000ff; font-weight: bold;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '' + ), + 'NUMBERS' => + GESHI_NUMBER_BIN_PREFIX_PERCENT | + GESHI_NUMBER_BIN_SUFFIX | + GESHI_NUMBER_HEX_PREFIX | + GESHI_NUMBER_HEX_SUFFIX | + GESHI_NUMBER_OCT_SUFFIX | + GESHI_NUMBER_INT_BASIC | + GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | + GESHI_NUMBER_FLT_SCI_ZERO, + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 8, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(?|^])", + 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%])" + ) + ) +); + +?> \ No newline at end of file diff --git a/Sources/geshi/asp.php b/Sources/geshi/asp.php new file mode 100644 index 0000000..0096a16 --- /dev/null +++ b/Sources/geshi/asp.php @@ -0,0 +1,164 @@ + 'ASP', + 'COMMENT_SINGLE' => array(1 => "'", 2 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'include', 'file', 'Const', 'Dim', 'Option', 'Explicit', 'Implicit', 'Set', 'Select', 'ReDim', 'Preserve', + 'ByVal', 'ByRef', 'End', 'Private', 'Public', 'If', 'Then', 'Else', 'ElseIf', 'Case', 'With', 'NOT', + 'While', 'Wend', 'For', 'Loop', 'Do', 'Request', 'Response', 'Server', 'ADODB', 'Session', 'Application', + 'Each', 'In', 'Get', 'Next', 'INT', 'CINT', 'CBOOL', 'CDATE', 'CBYTE', 'CCUR', 'CDBL', 'CLNG', 'CSNG', + 'CSTR', 'Fix', 'Is', 'Sgn', 'String', 'Boolean', 'Currency', 'Me', 'Single', 'Long', 'Integer', 'Byte', + 'Variant', 'Double', 'To', 'Let', 'Xor', 'Resume', 'On', 'Error', 'Imp', 'GoTo', 'Call', 'Global' + ), + 2 => array( + 'Null', 'Nothing', 'And', + 'False', + 'True', 'var', 'Or', 'BOF', 'EOF', 'xor', + 'Function', 'Class', 'New', 'Sub' + ), + 3 => array( + 'CreateObject', 'Write', 'Redirect', 'Cookies', 'BinaryRead', 'ClientCertificate', 'Form', 'QueryString', + 'ServerVariables', 'TotalBytes', 'AddHeader', 'AppendToLog', 'BinaryWrite', 'Buffer', 'CacheControl', + 'Charset', 'Clear', 'ContentType', 'End()', 'Expires', 'ExpiresAbsolute', 'Flush()', 'IsClientConnected', + 'PICS', 'Status', 'Connection', 'Recordset', 'Execute', 'Abandon', 'Lock', 'UnLock', 'Command', 'Fields', + 'Properties', 'Property', 'Send', 'Replace', 'InStr', 'TRIM', 'NOW', 'Day', 'Month', 'Hour', 'Minute', 'Second', + 'Year', 'MonthName', 'LCase', 'UCase', 'Abs', 'Array', 'As', 'LEN', 'MoveFirst', 'MoveLast', 'MovePrevious', + 'MoveNext', 'LBound', 'UBound', 'Transfer', 'Open', 'Close', 'MapPath', 'FileExists', 'OpenTextFile', 'ReadAll' + ) + ), + 'SYMBOLS' => array( + 1 => array( + '<%', '%>' + ), + 0 => array( + '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>', + ';', ':', '?', '='), + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #990099; font-weight: bold;', + 2 => 'color: #0000ff; font-weight: bold;', + 3 => 'color: #330066;' + ), + 'COMMENTS' => array( + 1 => 'color: #008000;', + 2 => 'color: #ff6600;', + 'MULTI' => 'color: #008000;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #006600; font-weight:bold;' + ), + 'STRINGS' => array( + 0 => 'color: #cc0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #800000;' + ), + 'METHODS' => array( + 1 => 'color: #9900cc;' + ), + 'SYMBOLS' => array( + 0 => 'color: #006600; font-weight: bold;', + 1 => 'color: #000000; font-weight: bold;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '' + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + 0 => array( + '<%' => '%>' + ), + 1 => array( + '' + ), + 2 => array( + '' + ), + 3 => "/(?P<%=?)(?:\"[^\"]*?\"|\/\*(?!\*\/).*?\*\/|.)*?(?P%>|\Z)/sm" + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => true, + 1 => true, + 2 => true, + 3 => true + ) +); + +?> \ No newline at end of file diff --git a/Sources/geshi/asymptote.php b/Sources/geshi/asymptote.php new file mode 100644 index 0000000..8683588 --- /dev/null +++ b/Sources/geshi/asymptote.php @@ -0,0 +1,194 @@ + 'asymptote', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array( + //Multiline-continued single-line comments + 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m', + //Multiline-continued preprocessor define + 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m' + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + //Simple Single Char Escapes + 1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i", + //Hexadecimal Char Specs + 2 => "#\\\\x[\da-fA-F]{2}#", + //Hexadecimal Char Specs + 3 => "#\\\\u[\da-fA-F]{4}#", + //Hexadecimal Char Specs + 4 => "#\\\\U[\da-fA-F]{8}#", + //Octal Char Specs + 5 => "#\\\\[0-7]{1,3}#" + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B | + GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + 1 => array( + 'and','controls','tension','atleast','curl','if','else','while','for','do','return','break','continue','struct','typedef','new','access','import','unravel','from','include','quote','static','public','private','restricted','this','explicit','true','false','null','cycle','newframe','operator' + ), + 2 => array( + 'Braid','FitResult','Label','Legend','Segment','Solution','TreeNode','abscissa','arc','arrowhead','binarytree','binarytreeNode','block','bool','bool3','bounds','bqe','circle','conic','coord','coordsys','cputime','ellipse','file','filltype','frame','grid3','guide','horner','hsv','hyperbola','indexedTransform','int','inversion','key','light','line','linefit','marginT','marker','mass','object','pair','parabola','path','path3','pen','picture','point','position','projection','real','revolution','scaleT','scientific','segment','side','slice','solution','splitface','string','surface','tensionSpecifier','ticklocate','ticksgridT','tickvalues','transform','transformation','tree','triangle','trilinear','triple','vector','vertex','void'), + 3 => array( + 'AND','Arc','ArcArrow','ArcArrows','Arrow','Arrows','Automatic','AvantGarde','BBox','BWRainbow','BWRainbow2','Bar','Bars','BeginArcArrow','BeginArrow','BeginBar','BeginDotMargin','BeginMargin','BeginPenMargin','Blank','Bookman','Bottom','BottomTop','Bounds','Break','Broken','BrokenLog','CLZ','CTZ','Ceil','Circle','CircleBarIntervalMarker','Cos','Courier','CrossIntervalMarker','DOSendl','DOSnewl','DefaultFormat','DefaultLogFormat','Degrees','Dir','DotMargin','DotMargins','Dotted','Draw','Drawline','Embed','EndArcArrow','EndArrow','EndBar','EndDotMargin','EndMargin','EndPenMargin','Fill','FillDraw','Floor','Format','Full','Gaussian','Gaussrand','Gaussrandpair', + 'Gradient','Grayscale','Helvetica','Hermite','HookHead','InOutTicks','InTicks','Jn','Label','Landscape','Left','LeftRight','LeftTicks','Legend','Linear','Link','Log','LogFormat','Margin','Margins','Mark','MidArcArrow','MidArrow','NOT','NewCenturySchoolBook','NoBox','NoMargin','NoModifier','NoTicks','NoTicks3','NoZero','NoZeroFormat','None','OR','OmitFormat','OmitTick','OmitTickInterval','OmitTickIntervals','OutTicks','Ox','Oy','Palatino','PaletteTicks','Pen','PenMargin','PenMargins','Pentype','Portrait','RadialShade','RadialShadeDraw','Rainbow','Range','Relative','Right','RightTicks','Rotate','Round','SQR','Scale','ScaleX','ScaleY','ScaleZ','Seascape','Segment','Shift','Sin','Slant','Spline','StickIntervalMarker','Straight','Symbol','Tan','TeXify','Ticks','Ticks3','TildeIntervalMarker','TimesRoman','Top','TrueMargin','UnFill','UpsideDown','Wheel','X','XEquals','XOR','XY','XYEquals','XYZero','XYgrid','XZEquals','XZZero','XZero','XZgrid','Y','YEquals','YXgrid','YZ','YZEquals','YZZero','YZero','YZgrid','Yn','Z','ZX','ZXgrid','ZYgrid','ZapfChancery','ZapfDingbats','_begingroup3','_cputime','_draw','_eval','_image','_labelpath','_projection','_strokepath','_texpath','aCos','aSin','aTan','abort','abs','accel','acos','acosh','acot','acsc','activatequote','add', + 'addArrow','addMargins','addSaveFunction','addpenarc','addpenline','adjust','alias','align','all','altitude','angabscissa','angle','angpoint','animate','annotate','anticomplementary','antipedal','apply','approximate','arc','arcarrowsize','arccircle','arcdir','arcfromcenter','arcfromfocus','arclength','arcnodesnumber','arcpoint','arcsubtended','arcsubtendedcenter','arctime','arctopath','array','arrow','arrow2','arrowbase','arrowbasepoints','arrowsize','asec','asin','asinh','ask','assert','asy','asycode','asydir','asyfigure','asyfilecode','asyinclude','asywrite','atan','atan2','atanh','atbreakpoint','atexit','attach','attract','atupdate','autoformat','autoscale','autoscale3','axes','axes3','axialshade','axis','axiscoverage','azimuth','babel','background','bangles','bar','barmarksize','barsize','basealign','baseline','bbox','beep','begin','beginclip','begingroup','beginpoint','between','bevel','bezier','bezierP','bezierPP','bezierPPP','bezulate','bibliography','bibliographystyle','binarytree','binarytreeNode','binomial','binput','bins','bisector','bisectorpoint','bispline','blend','blockconnector','boutput','box','bqe','breakpoint','breakpoints','brick','buildRestoreDefaults','buildRestoreThunk','buildcycle','bulletcolor','byte','calculateScaling','canonical','canonicalcartesiansystem','cartesiansystem','case1','case2','case3','case4','cbrt','cd','ceil','center','centerToFocus', + 'centroid','cevian','change2','changecoordsys','checkSegment','checkconditionlength','checker','checkincreasing','checklengths','checkposition','checktriangle','choose','circle','circlebarframe','circlemarkradius','circlenodesnumber','circumcenter','circumcircle','clamped','clear','clip','clipdraw','close','cmyk','code','colatitude','collect','collinear','color','colorless','colors','colorspace','comma','compassmark','complement','complementary','concat','concurrent','cone','conic','conicnodesnumber','conictype','conj','connect','connected','connectedindex','containmentTree','contains','contour','contour3','contouredges','controlSpecifier','convert','coordinates','coordsys','copy','copyPairOrTriple','cos','cosh','cot','countIntersections','cputime','crop','cropcode','cross', + 'crossframe','crosshatch','crossmarksize','csc','cubicroots','curabscissa','curlSpecifier','curpoint','currentarrow','currentexitfunction','currentmomarrow','currentpolarconicroutine','curve','cut','cutafter','cutbefore','cyclic','cylinder','deactivatequote','debugger','deconstruct','defaultdir','defaultformat','defaultpen','defined','degenerate','degrees','delete','deletepreamble','determinant','diagonal','diamond','diffdiv','dir','dirSpecifier','dirtime','display','distance', + 'divisors','do_overpaint','dot','dotframe','dotsize','downcase','draw','drawAll','drawDoubleLine','drawFermion','drawGhost','drawGluon','drawMomArrow','drawPRCcylinder','drawPRCdisk','drawPRCsphere','drawPRCtube','drawPhoton','drawScalar','drawVertex','drawVertexBox','drawVertexBoxO','drawVertexBoxX','drawVertexO','drawVertexOX','drawVertexTriangle','drawVertexTriangleO','drawVertexX','drawarrow','drawarrow2','drawline','drawpixel','drawtick','duplicate','elle','ellipse','ellipsenodesnumber','embed','embed3','empty','enclose','end','endScript','endclip','endgroup','endgroup3','endl','endpoint','endpoints','eof','eol','equation','equations','erase','erasestep','erf','erfc','error','errorbar','errorbars','eval','excenter','excircle','exit','exitXasyMode','exitfunction','exp','expfactors','expi','expm1','exradius','extend','extension','extouch','fabs','factorial','fermat','fft','fhorner','figure','file','filecode','fill','filldraw','filloutside','fillrule','filltype','find','finite','finiteDifferenceJacobian','firstcut','firstframe','fit','fit2','fixedscaling','floor','flush','fmdefaults','fmod','focusToCenter','font','fontcommand','fontsize','foot','format','frac','frequency','fromCenter','fromFocus','fspline','functionshade','gamma','generate_random_backtrace','generateticks','gergonne','getc','getint','getpair','getreal','getstring','gettriple','gluon','gouraudshade','graph','graphic','gray','grestore','grid','grid3','gsave','halfbox','hatch','hdiffdiv','hermite','hex','histogram','history','hline','hprojection', + 'hsv','hyperbola','hyperbolanodesnumber','hyperlink','hypot','identity','image','incenter','incentral','incircle','increasing','incrementposition','indexedTransform','indexedfigure','initXasyMode','initdefaults','input','inradius','insert','inside','integrate','interactive','interior','interp','interpolate','intersect','intersection','intersectionpoint','intersectionpoints','intersections','intouch','inverse','inversion','invisible','is3D','isCCW','isDuplicate','isogonal','isogonalconjugate','isotomic','isotomicconjugate','isparabola','italic','item','jobname','key','kurtosis','kurtosisexcess','label','labelaxis','labelmargin','labelpath','labels','labeltick','labelx','labelx3','labely','labely3','labelz','labelz3','lastcut','latex','latitude','latticeshade','layer','layout','ldexp','leastsquares','legend','legenditem','length','lexorder','lift','light','limits','line','linear','linecap','lineinversion','linejoin','linemargin','lineskip','linetype','linewidth','link','list','lm_enorm','lm_evaluate_default','lm_lmdif','lm_lmpar','lm_minimize','lm_print_default','lm_print_quiet','lm_qrfac','lm_qrsolv','locale','locate', + 'locatefile','location','log','log10','log1p','logaxiscoverage','longitude','lookup','makeNode','makedraw','makepen','map','margin','markangle','markangleradius','markanglespace','markarc','marker','markinterval','marknodes','markrightangle','markuniform','mass','masscenter','massformat','math','max','max3','maxAfterTransform','maxbezier','maxbound','maxcoords','maxlength','maxratio','maxtimes','mean','medial','median','midpoint','min','min3','minAfterTransform','minbezier','minbound','minipage','minratio','mintimes','miterlimit','mktemp','momArrowPath','momarrowsize','monotonic','multifigure','nativeformat','natural','needshipout','newl','newpage','newslide','newton','newtree','nextframe','nextnormal','nextpage','nib','nodabscissa','none','norm','normalvideo','notaknot','nowarn','numberpage','nurb','object','offset','onpath','opacity','opposite','orientation','origin','orthic','orthocentercenter','outformat','outline','outname','outprefix','output','overloadedMessage','overwrite','pack','pad','pairs','palette','parabola','parabolanodesnumber','parallel','parallelogram','partialsum','path','path3','pattern','pause','pdf','pedal','periodic','perp','perpendicular','perpendicularmark','phantom','phi1','phi2','phi3','photon','piecewisestraight','point','polar','polarconicroutine','polargraph','polygon','postcontrol','postscript','pow10','ppoint','prc','prc0','precision','precontrol','prepend','printBytecode','print_random_addresses','project','projection','purge','pwhermite','quadrant','quadraticroots','quantize','quarticroots','quotient','radialshade','radians','radicalcenter','radicalline','radius','rand','randompath','rd','readline','realmult','realquarticroots','rectangle','rectangular','rectify','reflect','relabscissa','relative','relativedistance','reldir','relpoint','reltime','remainder','remark','removeDuplicates','rename','replace','report','resetdefaultpen','restore','restoredefaults','reverse','reversevideo','rf','rfind','rgb','rgba','rgbint','rms', + 'rotate','rotateO','rotation','round','roundbox','roundedpath','roundrectangle','same','samecoordsys','sameside','sample','save','savedefaults','saveline','scale','scale3','scaleO','scaleT','scaleless','scientific','search','searchindex','searchtree','sec','secondaryX','secondaryY','seconds','section','sector','seek','seekeof','segment','sequence','setcontour','setpens','sgn','sgnd','sharpangle','sharpdegrees','shift','shiftless','shipout','shipout3','show','side','simeq','simpson','sin','sinh','size','size3','skewness','skip','slant','sleep','slope','slopefield','solve','solveBVP','sort','sourceline','sphere','split','sqrt','square','srand','standardizecoordsys','startScript','stdev','step','stickframe','stickmarksize','stickmarkspace','stop','straight','straightness','string','stripdirectory','stripextension','stripfile','stripsuffix','strokepath','subdivide','subitem','subpath','substr','sum','surface','symmedial','symmedian','system', + 'tab','tableau','tan','tangent','tangential','tangents','tanh','tell','tensionSpecifier','tensorshade','tex','texcolor','texify','texpath','texpreamble','texreset','texshipout','texsize','textpath','thick','thin','tick','tickMax','tickMax3','tickMin','tickMin3','ticklabelshift','ticklocate','tildeframe','tildemarksize','tile','tiling','time','times','title','titlepage','topbox','transform','transformation','transpose','trembleFuzz','triangle','triangleAbc','triangleabc','triangulate','tricoef','tridiagonal','trilinear','trim','truepoint','tube','uncycle','unfill','uniform','unique','unit','unitrand','unitsize','unityroot','unstraighten','upcase','updatefunction','uperiodic','upscale','uptodate','usepackage','usersetting','usetypescript','usleep','value','variance','variancebiased','vbox','vector','vectorfield','verbatim','view','vline','vperiodic','vprojection','warn','warning','windingnumber','write','xaxis','xaxis3','xaxis3At','xaxisAt','xequals','xinput','xlimits','xoutput','xpart','xscale','xscaleO','xtick','xtick3','xtrans','yaxis','yaxis3','yaxis3At','yaxisAt','yequals','ylimits','ypart','yscale','yscaleO','ytick','ytick3','ytrans','zaxis3','zaxis3At','zero','zero3','zlimits','zpart','ztick','ztick3','ztrans' + ), + 4 => array( + 'AliceBlue','Align','Allow','AntiqueWhite','Apricot','Aqua','Aquamarine','Aspect','Azure','BeginPoint','Beige','Bisque','Bittersweet','Black','BlanchedAlmond','Blue','BlueGreen','BlueViolet','Both','Break','BrickRed','Brown','BurlyWood','BurntOrange','CCW','CW','CadetBlue','CarnationPink','Center','Centered','Cerulean','Chartreuse','Chocolate','Coeff','Coral','CornflowerBlue','Cornsilk','Crimson','Crop','Cyan','Dandelion','DarkBlue','DarkCyan','DarkGoldenrod','DarkGray','DarkGreen','DarkKhaki','DarkMagenta','DarkOliveGreen','DarkOrange','DarkOrchid','DarkRed','DarkSalmon','DarkSeaGreen','DarkSlateBlue','DarkSlateGray','DarkTurquoise','DarkViolet','DeepPink','DeepSkyBlue','DefaultHead','DimGray','DodgerBlue','Dotted','Down','Draw','E','ENE','EPS','ESE','E_Euler','E_PC','E_RK2','E_RK3BS','Emerald','EndPoint','Euler','Fill','FillDraw','FireBrick','FloralWhite','ForestGreen','Fuchsia','Gainsboro','GhostWhite','Gold','Goldenrod','Gray','Green','GreenYellow','Honeydew','HookHead','Horizontal','HotPink','I','IgnoreAspect','IndianRed','Indigo','Ivory','JOIN_IN','JOIN_OUT','JungleGreen','Khaki','LM_DWARF','LM_MACHEP','LM_SQRT_DWARF','LM_SQRT_GIANT','LM_USERTOL','Label','Lavender','LavenderBlush','LawnGreen','Left','LeftJustified','LeftSide','LemonChiffon','LightBlue','LightCoral','LightCyan','LightGoldenrodYellow', + 'LightGreen','LightGrey','LightPink','LightSalmon','LightSeaGreen','LightSkyBlue','LightSlateGray','LightSteelBlue','LightYellow','Lime','LimeGreen','Linear','Linen','Log','Logarithmic','Magenta','Mahogany','Mark','MarkFill','Maroon','Max','MediumAquamarine','MediumBlue','MediumOrchid','MediumPurple','MediumSeaGreen','MediumSlateBlue','MediumSpringGreen','MediumTurquoise','MediumVioletRed','Melon','MidPoint','MidnightBlue','Min','MintCream','MistyRose','Moccasin','Move','MoveQuiet','Mulberry','N','NE','NNE','NNW','NW','NavajoWhite','Navy','NavyBlue','NoAlign','NoCrop','NoFill','NoSide','OldLace','Olive','OliveDrab','OliveGreen','Orange','OrangeRed','Orchid','Ox','Oy','PC','PaleGoldenrod','PaleGreen','PaleTurquoise','PaleVioletRed','PapayaWhip','Peach','PeachPuff','Periwinkle','Peru','PineGreen','Pink','Plum','PowderBlue','ProcessBlue','Purple','RK2','RK3','RK3BS','RK4','RK5','RK5DP','RK5F','RawSienna','Red','RedOrange','RedViolet','Rhodamine','Right','RightJustified','RightSide','RosyBrown','RoyalBlue','RoyalPurple','RubineRed','S','SE','SSE','SSW','SW','SaddleBrown','Salmon','SandyBrown','SeaGreen','Seashell','Sepia','Sienna','Silver','SimpleHead','SkyBlue','SlateBlue','SlateGray','Snow','SpringGreen','SteelBlue','Suppress','SuppressQuiet','Tan','TeXHead','Teal','TealBlue','Thistle','Ticksize','Tomato', + 'Turquoise','UnFill','Up','VERSION','Value','Vertical','Violet','VioletRed','W','WNW','WSW','Wheat','White','WhiteSmoke','WildStrawberry','XYAlign','YAlign','Yellow','YellowGreen','YellowOrange','addpenarc','addpenline','align','allowstepping','angularsystem','animationdelay','appendsuffix','arcarrowangle','arcarrowfactor','arrow2sizelimit','arrowangle','arrowbarb','arrowdir','arrowfactor','arrowhookfactor','arrowlength','arrowsizelimit','arrowtexfactor','authorpen','axis','axiscoverage','axislabelfactor','background','backgroundcolor','backgroundpen','barfactor','barmarksizefactor','basealign','baselinetemplate','beveljoin','bigvertexpen','bigvertexsize','black','blue','bm','bottom','bp','brown','bullet','byfoci','byvertices','camerafactor','chartreuse','circlemarkradiusfactor','circlenodesnumberfactor','circleprecision','circlescale','cm','codefile','codepen','codeskip','colorPen','coloredNodes','coloredSegments', + 'conditionlength','conicnodesfactor','count','cputimeformat','crossmarksizefactor','currentcoordsys','currentlight','currentpatterns','currentpen','currentpicture','currentposition','currentprojection','curvilinearsystem','cuttings','cyan','darkblue','darkbrown','darkcyan','darkgray','darkgreen','darkgrey','darkmagenta','darkolive','darkred','dashdotted','dashed','datepen','dateskip','debuggerlines','debugging','deepblue','deepcyan','deepgray','deepgreen','deepgrey','deepmagenta','deepred','default','defaultControl','defaultS','defaultbackpen','defaultcoordsys','defaultexcursion','defaultfilename','defaultformat','defaultmassformat','defaultpen','diagnostics','differentlengths','dot','dotfactor','dotframe','dotted','doublelinepen','doublelinespacing','down','duplicateFuzz','edge','ellipsenodesnumberfactor','eps','epsgeo','epsilon','evenodd','expansionfactor','extendcap','exterior','fermionpen','figureborder','figuremattpen','file3','firstnode','firststep','foregroundcolor','fuchsia','fuzz','gapfactor','ghostpen','gluonamplitude','gluonpen','gluonratio','gray','green','grey','hatchepsilon','havepagenumber','heavyblue','heavycyan','heavygray','heavygreen','heavygrey','heavymagenta','heavyred','hline','hwratio','hyperbola','hyperbolanodesnumberfactor','identity4','ignore','inXasyMode','inch','inches','includegraphicscommand','inf','infinity','institutionpen','intMax','intMin','interior','invert','invisible','itempen','itemskip','itemstep','labelmargin','landscape','lastnode','left','legendhskip','legendlinelength', + 'legendmargin','legendmarkersize','legendmaxrelativewidth','legendvskip','lightblue','lightcyan','lightgray','lightgreen','lightgrey','lightmagenta','lightolive','lightred','lightyellow','line','linemargin','lm_infmsg','lm_shortmsg','longdashdotted','longdashed','magenta','magneticRadius','mantissaBits','markangleradius','markangleradiusfactor','markanglespace','markanglespacefactor','mediumblue','mediumcyan','mediumgray','mediumgreen','mediumgrey','mediummagenta','mediumred','mediumyellow','middle','minDistDefault','minblockheight','minblockwidth','mincirclediameter','minipagemargin','minipagewidth','minvertexangle','miterjoin','mm','momarrowfactor','momarrowlength','momarrowmargin','momarrowoffset','momarrowpen','monoPen','morepoints','nCircle','newbulletcolor','ngraph','nil','nmesh','nobasealign','nodeMarginDefault','nodesystem','nomarker','nopoint','noprimary','nullpath','nullpen','numarray','ocgindex','oldbulletcolor','olive','orange','origin','overpaint','page','pageheight','pagemargin','pagenumberalign','pagenumberpen','pagenumberposition','pagewidth','paleblue','palecyan','palegray','palegreen','palegrey', + 'palemagenta','palered','paleyellow','parabolanodesnumberfactor','perpfactor','phi','photonamplitude','photonpen','photonratio','pi','pink','plain','plain_bounds','plain_scaling','plus','preamblenodes','pt','purple','r3','r4a','r4b','randMax','realDigits','realEpsilon','realMax','realMin','red','relativesystem','reverse','right','roundcap','roundjoin','royalblue','salmon','saveFunctions','scalarpen','sequencereal','settings','shipped','signedtrailingzero','solid','springgreen','sqrtEpsilon','squarecap','squarepen','startposition','stdin','stdout','stepfactor','stepfraction','steppagenumberpen','stepping','stickframe','stickmarksizefactor','stickmarkspacefactor','swap','textpen','ticksize','tildeframe','tildemarksizefactor','tinv','titlealign','titlepagepen','titlepageposition','titlepen','titleskip','top','trailingzero','treeLevelStep','treeMinNodeWidth','treeNodeStep','trembleAngle','trembleFrequency','trembleRandom','undefined','unitcircle','unitsquare','up','urlpen','urlskip','version','vertexpen','vertexsize','viewportmargin','viewportsize','vline','white','wye','xformStack','yellow','ylabelwidth','zerotickfuzz','zerowinding' + ) + ), + 'SYMBOLS' => array( + 0 => array( + '(', ')', '{', '}', '[', ']' + ), + 1 => array('<', '>','='), + 2 => array('+', '-', '*', '/', '%'), + 3 => array('!', '^', '&', '|'), + 4 => array('?', ':', ';'), + 5 => array('..') + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #990000;', + 4 => 'color: #009900; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666;', + 2 => 'color: #339900;', + 'MULTI' => 'color: #ff0000; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 1 => 'color: #000099; font-weight: bold;', + 2 => 'color: #660099; font-weight: bold;', + 3 => 'color: #660099; font-weight: bold;', + 4 => 'color: #660099; font-weight: bold;', + 5 => 'color: #006699; font-weight: bold;', + 'HARD' => '', + ), + 'BRACKETS' => array( + 0 => 'color: #008000;' + ), + 'STRINGS' => array( + 0 => 'color: #FF0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;', + GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;', + GESHI_NUMBER_OCT_PREFIX => 'color: #208080;', + GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', + GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI => 'color:#800080;' + ), + 'METHODS' => array( + 1 => 'color: #007788;', + 2 => 'color: #007788;' + ), + 'SYMBOLS' => array( + 0 => 'color: #008000;', + 1 => 'color: #000080;', + 2 => 'color: #000040;', + 3 => 'color: #000040;', + 4 => 'color: #008080;', + 5 => 'color: #009080;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.', + 2 => '::' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(? "(?![a-zA-Z0-9_\|%\\-])" + ) + ) +); + +?> diff --git a/Sources/geshi/autoconf.php b/Sources/geshi/autoconf.php new file mode 100644 index 0000000..7a0f1ee --- /dev/null +++ b/Sources/geshi/autoconf.php @@ -0,0 +1,512 @@ + 'Autoconf', + 'COMMENT_SINGLE' => array(2 => '#'), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + //Multiline-continued single-line comments + 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m', + //Multiline-continued preprocessor define + 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m', + //Single Line comment started by dnl + 3 => '/(? GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array(), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B | + GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + 1 => array( + 'AC_ACT_IFELSE', + 'AC_AIX', + 'AC_ALLOCA', + 'AC_ARG_ARRAY', + 'AC_ARG_ENABLE', + 'AC_ARG_PROGRAM', + 'AC_ARG_VAR', + 'AC_ARG_WITH', + 'AC_AUTOCONF_VERSION', + 'AC_BEFORE', + 'AC_C_BACKSLASH_A', + 'AC_C_BIGENDIAN', + 'AC_C_CHAR_UNSIGNED', + 'AC_C_CONST', + 'AC_C_CROSS', + 'AC_C_FLEXIBLE_ARRAY_MEMBER', + 'AC_C_INLINE', + 'AC_C_LONG_DOUBLE', + 'AC_C_PROTOTYPES', + 'AC_C_RESTRICT', + 'AC_C_STRINGIZE', + 'AC_C_TYPEOF', + 'AC_C_VARARRAYS', + 'AC_C_VOLATILE', + 'AC_CACHE_CHECK', + 'AC_CACHE_LOAD', + 'AC_CACHE_SAVE', + 'AC_CACHE_VAL', + 'AC_CANONICAL_BUILD', + 'AC_CANONICAL_HOST', + 'AC_CANONICAL_SYSTEM', + 'AC_CANONICAL_TARGET', + 'AC_CHAR_UNSIGNED', + 'AC_CHECK_ALIGNOF', + 'AC_CHECK_DECL', + 'AC_CHECK_DECLS', + 'AC_CHECK_DECLS_ONCE', + 'AC_CHECK_FILE', + 'AC_CHECK_FILES', + 'AC_CHECK_FUNC', + 'AC_CHECK_FUNCS', + 'AC_CHECK_FUNCS_ONCE', + 'AC_CHECK_HEADER', + 'AC_CHECK_HEADERS', + 'AC_CHECK_HEADERS_ONCE', + 'AC_CHECK_LIB', + 'AC_CHECK_MEMBER', + 'AC_CHECK_MEMBERS', + 'AC_CHECK_PROG', + 'AC_CHECK_PROGS', + 'AC_CHECK_SIZEOF', + 'AC_CHECK_TARGET_TOOL', + 'AC_CHECK_TARGET_TOOLS', + 'AC_CHECK_TOOL', + 'AC_CHECK_TOOLS', + 'AC_CHECK_TYPE', + 'AC_CHECK_TYPES', + 'AC_CHECKING', + 'AC_COMPILE_CHECK', + 'AC_COMPILE_IFELSE', + 'AC_COMPUTE_INT', + 'AC_CONFIG_AUX_DIR', + 'AC_CONFIG_COMMANDS', + 'AC_CONFIG_COMMANDS_POST', + 'AC_CONFIG_COMMANDS_PRE', + 'AC_CONFIG_FILES', + 'AC_CONFIG_HEADERS', + 'AC_CONFIG_ITEMS', + 'AC_CONFIG_LIBOBJ_DIR', + 'AC_CONFIG_LINKS', + 'AC_CONFIG_MACRO_DIR', + 'AC_CONFIG_SRCDIR', + 'AC_CONFIG_SUBDIRS', + 'AC_CONFIG_TESTDIR', + 'AC_CONST', + 'AC_COPYRIGHT', + 'AC_CROSS_CHECK', + 'AC_CYGWIN', + 'AC_DATAROOTDIR_CHECKED', + 'AC_DECL_SYS_SIGLIST', + 'AC_DECL_YYTEXT', + 'AC_DEFINE', + 'AC_DEFINE_UNQUOTED', + 'AC_DEFUN', + 'AC_DEFUN_ONCE', + 'AC_DIAGNOSE', + 'AC_DIR_HEADER', + 'AC_DISABLE_OPTION_CHECKING', + 'AC_DYNIX_SEQ', + 'AC_EGREP_CPP', + 'AC_EGREP_HEADER', + 'AC_EMXOS2', + 'AC_ENABLE', + 'AC_ERLANG_CHECK_LIB', + 'AC_ERLANG_NEED_ERL', + 'AC_ERLANG_NEED_ERLC', + 'AC_ERLANG_PATH_ERL', + 'AC_ERLANG_PATH_ERLC', + 'AC_ERLANG_SUBST_ERTS_VER', + 'AC_ERLANG_SUBST_INSTALL_LIB_DIR', + 'AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR', + 'AC_ERLANG_SUBST_LIB_DIR', + 'AC_ERLANG_SUBST_ROOT_DIR', + 'AC_ERROR', + 'AC_EXEEXT', + 'AC_F77_DUMMY_MAIN', + 'AC_F77_FUNC', + 'AC_F77_LIBRARY_LDFLAGS', + 'AC_F77_MAIN', + 'AC_F77_WRAPPERS', + 'AC_FATAL', + 'AC_FC_FREEFORM', + 'AC_FC_FUNC', + 'AC_FC_LIBRARY_LDFLAGS', + 'AC_FC_MAIN', + 'AC_FC_SRCEXT', + 'AC_FC_WRAPPERS', + 'AC_FIND_X', + 'AC_FIND_XTRA', + 'AC_FOREACH', + 'AC_FUNC_ALLOCA', + 'AC_FUNC_CHECK', + 'AC_FUNC_CHOWN', + 'AC_FUNC_CLOSEDIR_VOID', + 'AC_FUNC_ERROR_AT_LINE', + 'AC_FUNC_FNMATCH', + 'AC_FUNC_FNMATCH_GNU', + 'AC_FUNC_FORK', + 'AC_FUNC_FSEEKO', + 'AC_FUNC_GETGROUPS', + 'AC_FUNC_GETLOADAVG', + 'AC_FUNC_GETMNTENT', + 'AC_FUNC_GETPGRP', + 'AC_FUNC_LSTAT', + 'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK', + 'AC_FUNC_MALLOC', + 'AC_FUNC_MBRTOWC', + 'AC_FUNC_MEMCMP', + 'AC_FUNC_MKTIME', + 'AC_FUNC_MMAP', + 'AC_FUNC_OBSTACK', + 'AC_FUNC_REALLOC', + 'AC_FUNC_SELECT_ARGTYPES', + 'AC_FUNC_SETPGRP', + 'AC_FUNC_SETVBUF_REVERSED', + 'AC_FUNC_STAT', + 'AC_FUNC_STRCOLL', + 'AC_FUNC_STRERROR_R', + 'AC_FUNC_STRFTIME', + 'AC_FUNC_STRNLEN', + 'AC_FUNC_STRTOD', + 'AC_FUNC_STRTOLD', + 'AC_FUNC_UTIME_NULL', + 'AC_FUNC_VPRINTF', + 'AC_FUNC_WAIT3', + 'AC_GCC_TRADITIONAL', + 'AC_GETGROUPS_T', + 'AC_GETLOADAVG', + 'AC_GNU_SOURCE', + 'AC_HAVE_FUNCS', + 'AC_HAVE_HEADERS', + 'AC_HAVE_LIBRARY', + 'AC_HAVE_POUNDBANG', + 'AC_HEADER_ASSERT', + 'AC_HEADER_CHECK', + 'AC_HEADER_DIRENT', + 'AC_HEADER_EGREP', + 'AC_HEADER_MAJOR', + 'AC_HEADER_RESOLV', + 'AC_HEADER_STAT', + 'AC_HEADER_STDBOOL', + 'AC_HEADER_STDC', + 'AC_HEADER_SYS_WAIT', + 'AC_HEADER_TIME', + 'AC_HEADER_TIOCGWINSZ', + 'AC_HELP_STRING', + 'AC_INCLUDES_DEFAULT', + 'AC_INIT', + 'AC_INLINE', + 'AC_INT_16_BITS', + 'AC_IRIX_SUN', + 'AC_ISC_POSIX', + 'AC_LANG_ASSERT', + 'AC_LANG_C', + 'AC_LANG_CALL', + 'AC_LANG_CONFTEST', + 'AC_LANG_CPLUSPLUS', + 'AC_LANG_FORTRAN77', + 'AC_LANG_FUNC_LINK_TRY', + 'AC_LANG_POP', + 'AC_LANG_PROGRAM', + 'AC_LANG_PUSH', + 'AC_LANG_RESTORE', + 'AC_LANG_SAVE', + 'AC_LANG_SOURCE', + 'AC_LANG_WERROR', + 'AC_LIBOBJ', + 'AC_LIBSOURCE', + 'AC_LIBSOURCES', + 'AC_LINK_FILES', + 'AC_LINK_IFELSE', + 'AC_LN_S', + 'AC_LONG_64_BITS', + 'AC_LONG_DOUBLE', + 'AC_LONG_FILE_NAMES', + 'AC_MAJOR_HEADER', + 'AC_MEMORY_H', + 'AC_MINGW32', + 'AC_MINIX', + 'AC_MINUS_C_MINUS_O', + 'AC_MMAP', + 'AC_MODE_T', + 'AC_MSG_CHECKING', + 'AC_MSG_ERROR', + 'AC_MSG_FAILURE', + 'AC_MSG_NOTICE', + 'AC_MSG_RESULT', + 'AC_MSG_WARN', + 'AC_OBJEXT', + 'AC_OBSOLETE', + 'AC_OFF_T', + 'AC_OPENMP', + 'AC_OUTPUT', + 'AC_OUTPUT_COMMANDS', + 'AC_PACKAGE_BUGREPORT', + 'AC_PACKAGE_NAME', + 'AC_PACKAGE_STRING', + 'AC_PACKAGE_TARNAME', + 'AC_PACKAGE_URL', + 'AC_PACKAGE_VERSION', + 'AC_PATH_PROG', + 'AC_PATH_PROGS', + 'AC_PATH_PROGS_FEATURE_CHECK', + 'AC_PATH_TARGET_TOOL', + 'AC_PATH_TOOL', + 'AC_PATH_X', + 'AC_PATH_XTRA', + 'AC_PID_T', + 'AC_PREFIX', + 'AC_PREFIX_DEFAULT', + 'AC_PREFIX_PROGRAM', + 'AC_PREPROC_IFELSE', + 'AC_PREREQ', + 'AC_PRESERVE_HELP_ORDER', + 'AC_PROG_AWK', + 'AC_PROG_CC', + 'AC_PROG_CC_C89', + 'AC_PROG_CC_C99', + 'AC_PROG_CC_C_O', + 'AC_PROG_CC_STDC', + 'AC_PROG_CPP', + 'AC_PROG_CPP_WERROR', + 'AC_PROG_CXX', + 'AC_PROG_CXX_C_O', + 'AC_PROG_CXXCPP', + 'AC_PROG_EGREP', + 'AC_PROG_F77', + 'AC_PROG_F77_C_O', + 'AC_PROG_FC', + 'AC_PROG_FC_C_O', + 'AC_PROG_FGREP', + 'AC_PROG_GCC_TRADITIONAL', + 'AC_PROG_GREP', + 'AC_PROG_INSTALL', + 'AC_PROG_LEX', + 'AC_PROG_LN_S', + 'AC_PROG_MAKE_SET', + 'AC_PROG_MKDIR_P', + 'AC_PROG_OBJC', + 'AC_PROG_OBJCPP', + 'AC_PROG_OBJCXX', + 'AC_PROG_OBJCXXCPP', + 'AC_PROG_RANLIB', + 'AC_PROG_SED', + 'AC_PROG_YACC', + 'AC_PROGRAM_CHECK', + 'AC_PROGRAM_EGREP', + 'AC_PROGRAM_PATH', + 'AC_PROGRAMS_CHECK', + 'AC_PROGRAMS_PATH', + 'AC_REMOTE_TAPE', + 'AC_REPLACE_FNMATCH', + 'AC_REPLACE_FUNCS', + 'AC_REQUIRE', + 'AC_REQUIRE_AUX_FILE', + 'AC_REQUIRE_CPP', + 'AC_RESTARTABLE_SYSCALLS', + 'AC_RETSIGTYPE', + 'AC_REVISION', + 'AC_RSH', + 'AC_RUN_IFELSE', + 'AC_SCO_INTL', + 'AC_SEARCH_LIBS', + 'AC_SET_MAKE', + 'AC_SETVBUF_REVERSED', + 'AC_SIZE_T', + 'AC_SIZEOF_TYPE', + 'AC_ST_BLKSIZE', + 'AC_ST_BLOCKS', + 'AC_ST_RDEV', + 'AC_STAT_MACROS_BROKEN', + 'AC_STDC_HEADERS', + 'AC_STRCOLL', + 'AC_STRUCT_DIRENT_D_INO', + 'AC_STRUCT_DIRENT_D_TYPE', + 'AC_STRUCT_ST_BLKSIZE', + 'AC_STRUCT_ST_BLOCKS', + 'AC_STRUCT_ST_RDEV', + 'AC_STRUCT_TIMEZONE', + 'AC_STRUCT_TM', + 'AC_SUBST', + 'AC_SUBST_FILE', + 'AC_SYS_INTERPRETER', + 'AC_SYS_LARGEFILE', + 'AC_SYS_LONG_FILE_NAMES', + 'AC_SYS_POSIX_TERMIOS', + 'AC_SYS_RESTARTABLE_SYSCALLS', + 'AC_SYS_SIGLIST_DECLARED', + 'AC_TEST_CPP', + 'AC_TEST_PROGRAM', + 'AC_TIME_WITH_SYS_TIME', + 'AC_TIMEZONE', + 'AC_TRY_ACT', + 'AC_TRY_COMPILE', + 'AC_TRY_CPP', + 'AC_TRY_LINK', + 'AC_TRY_LINK_FUNC', + 'AC_TRY_RUN', + 'AC_TYPE_GETGROUPS', + 'AC_TYPE_INT16_T', + 'AC_TYPE_INT32_T', + 'AC_TYPE_INT64_T', + 'AC_TYPE_INT8_T', + 'AC_TYPE_INTMAX_T', + 'AC_TYPE_INTPTR_T', + 'AC_TYPE_LONG_DOUBLE', + 'AC_TYPE_LONG_DOUBLE_WIDER', + 'AC_TYPE_LONG_LONG_INT', + 'AC_TYPE_MBSTATE_T', + 'AC_TYPE_MODE_T', + 'AC_TYPE_OFF_T', + 'AC_TYPE_PID_T', + 'AC_TYPE_SIGNAL', + 'AC_TYPE_SIZE_T', + 'AC_TYPE_SSIZE_T', + 'AC_TYPE_UID_T', + 'AC_TYPE_UINT16_T', + 'AC_TYPE_UINT32_T', + 'AC_TYPE_UINT64_T', + 'AC_TYPE_UINT8_T', + 'AC_TYPE_UINTMAX_T', + 'AC_TYPE_UINTPTR_T', + 'AC_TYPE_UNSIGNED_LONG_LONG_INT', + 'AC_UID_T', + 'AC_UNISTD_H', + 'AC_USE_SYSTEM_EXTENSIONS', + 'AC_USG', + 'AC_UTIME_NULL', + 'AC_VALIDATE_CACHED_SYSTEM_TUPLE', + 'AC_VERBOSE', + 'AC_VFORK', + 'AC_VPRINTF', + 'AC_WAIT3', + 'AC_WARN', + 'AC_WARNING', + 'AC_WITH', + 'AC_WORDS_BIGENDIAN', + 'AC_XENIX_DIR', + 'AC_YYTEXT_POINTER', + 'AH_BOTTOM', + 'AH_HEADER', + 'AH_TEMPLATE', + 'AH_TOP', + 'AH_VERBATIM', + 'AU_ALIAS', + 'AU_DEFUN'), + ), + 'SYMBOLS' => array('(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>', ';;', '`'), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #00ffff;', + ), + 'COMMENTS' => array( + 1 => 'color: #666666;', + 2 => 'color: #339900;', + 3 => 'color: #666666;', + 'MULTI' => 'color: #ff0000; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099;', + 1 => 'color: #000099;', + 2 => 'color: #660099;', + 3 => 'color: #660099;', + 4 => 'color: #660099;', + 5 => 'color: #006699;', + 'HARD' => '', + ), + 'BRACKETS' => array( + 0 => 'color: #008000;' + ), + 'STRINGS' => array( + 0 => 'color: #996600;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;', + GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;', + GESHI_NUMBER_OCT_PREFIX => 'color: #208080;', + GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', + GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI => 'color:#800080;' + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #008000;', + 1 => 'color: #000080;', + 2 => 'color: #000040;', + 3 => 'color: #000040;', + 4 => 'color: #008080;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'COMMENTS' => array( + 'DISALLOWED_BEFORE' => '$' + ), + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(? "(?![\.\-a-zA-Z0-9_%\\/])" + ) + ) +); + +?> \ No newline at end of file diff --git a/Sources/geshi/autohotkey.php b/Sources/geshi/autohotkey.php new file mode 100644 index 0000000..970684d --- /dev/null +++ b/Sources/geshi/autohotkey.php @@ -0,0 +1,373 @@ + 'Autohotkey', + 'COMMENT_SINGLE' => array( + 1 => ';' + ), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'while','if','and','or','else','return' + ), + 2 => array( + // built in variables + 'A_AhkPath','A_AhkVersion','A_AppData','A_AppDataCommon', + 'A_AutoTrim','A_BatchLines','A_CaretX','A_CaretY', + 'A_ComputerName','A_ControlDelay','A_Cursor','A_DD', + 'A_DDD','A_DDDD','A_DefaultMouseSpeed','A_Desktop', + 'A_DesktopCommon','A_DetectHiddenText','A_DetectHiddenWindows','A_EndChar', + 'A_EventInfo','A_ExitReason','A_FormatFloat','A_FormatInteger', + 'A_Gui','A_GuiEvent','A_GuiControl','A_GuiControlEvent', + 'A_GuiHeight','A_GuiWidth','A_GuiX','A_GuiY', + 'A_Hour','A_IconFile','A_IconHidden','A_IconNumber', + 'A_IconTip','A_Index','A_IPAddress1','A_IPAddress2', + 'A_IPAddress3','A_IPAddress4','A_ISAdmin','A_IsCompiled', + 'A_IsCritical','A_IsPaused','A_IsSuspended','A_KeyDelay', + 'A_Language','A_LastError','A_LineFile','A_LineNumber', + 'A_LoopField','A_LoopFileAttrib','A_LoopFileDir','A_LoopFileExt', + 'A_LoopFileFullPath','A_LoopFileLongPath','A_LoopFileName','A_LoopFileShortName', + 'A_LoopFileShortPath','A_LoopFileSize','A_LoopFileSizeKB','A_LoopFileSizeMB', + 'A_LoopFileTimeAccessed','A_LoopFileTimeCreated','A_LoopFileTimeModified','A_LoopReadLine', + 'A_LoopRegKey','A_LoopRegName','A_LoopRegSubkey','A_LoopRegTimeModified', + 'A_LoopRegType','A_MDAY','A_Min','A_MM', + 'A_MMM','A_MMMM','A_Mon','A_MouseDelay', + 'A_MSec','A_MyDocuments','A_Now','A_NowUTC', + 'A_NumBatchLines','A_OSType','A_OSVersion','A_PriorHotkey', + 'A_ProgramFiles','A_Programs','A_ProgramsCommon','A_ScreenHeight', + 'A_ScreenWidth','A_ScriptDir','A_ScriptFullPath','A_ScriptName', + 'A_Sec','A_Space','A_StartMenu','A_StartMenuCommon', + 'A_Startup','A_StartupCommon','A_StringCaseSense','A_Tab', + 'A_Temp','A_ThisFunc','A_ThisHotkey','A_ThisLabel', + 'A_ThisMenu','A_ThisMenuItem','A_ThisMenuItemPos','A_TickCount', + 'A_TimeIdle','A_TimeIdlePhysical','A_TimeSincePriorHotkey','A_TimeSinceThisHotkey', + 'A_TitleMatchMode','A_TitleMatchModeSpeed','A_UserName','A_WDay', + 'A_WinDelay','A_WinDir','A_WorkingDir','A_YDay', + 'A_YEAR','A_YWeek','A_YYYY','Clipboard', + 'ClipboardAll','ComSpec','ErrorLevel','ProgramFiles', + ), + 3 => array( + 'AutoTrim', + 'BlockInput','Break','Click', + 'ClipWait','Continue','Control', + 'ControlClick','ControlFocus','ControlGet', + 'ControlGetFocus','ControlGetPos','ControlGetText', + 'ControlMove','ControlSend','ControlSendRaw', + 'ControlSetText','CoordMode','Critical', + 'DetectHiddenText','DetectHiddenWindows','DllCall','Drive', + 'DriveGet','DriveSpaceFree', + 'Else','EnvAdd','EnvDiv', + 'EnvGet','EnvMult','EnvSet', + 'EnvSub','EnvUpdate','Exit', + 'ExitApp','FileAppend','FileCopy', + 'FileCopyDir','FileCreateDir','FileCreateShortcut', + 'FileDelete','FileGetAttrib','FileGetShortcut', + 'FileGetSize','FileGetTime','FileGetVersion', + 'FileInstall','FileMove','FileMoveDir', + 'FileRead','FileReadLine','FileRecycle', + 'FileRecycleEmpty','FileRemoveDir','FileSelectFile', + 'FileSelectFolder','FileSetAttrib','FileSetTime', + 'FormatTime','Gosub', + 'Goto','GroupActivate','GroupAdd', + 'GroupClose','GroupDeactivate','Gui', + 'GuiControl','GuiControlGet','Hotkey', + 'IfExist','IfGreater','IfGreaterOrEqual', + 'IfInString','IfLess','IfLessOrEqual', + 'IfMsgBox','IfNotEqual','IfNotExist', + 'IfNotInString','IfWinActive','IfWinExist', + 'IfWinNotActive','IfWinNotExist','ImageSearch', + 'IniDelete','IniRead','IniWrite', + 'Input','InputBox','KeyHistory', + 'KeyWait','ListHotkeys','ListLines', + 'ListVars','Loop', + 'Menu','MouseClick','MouseClickDrag', + 'MouseGetPos','MouseMove','MsgBox', + 'OnMessage','OnExit','OutputDebug', + 'PixelGetColor','PixelSearch','PostMessage', + 'Process','Progress','Random', + 'RegExMatch','RegExReplace','RegisterCallback', + 'RegDelete','RegRead','RegWrite', + 'Reload','Repeat','Return', + 'Run','RunAs','RunWait', + 'Send','SendEvent','SendInput', + 'SendMessage','SendMode','SendPlay', + 'SendRaw','SetBatchLines','SetCapslockState', + 'SetControlDelay','SetDefaultMouseSpeed','SetEnv', + 'SetFormat','SetKeyDelay','SetMouseDelay', + 'SetNumlockState','SetScrollLockState','SetStoreCapslockMode', + 'SetTimer','SetTitleMatchMode','SetWinDelay', + 'SetWorkingDir','Shutdown','Sleep', + 'Sort','SoundBeep','SoundGet', + 'SoundGetWaveVolume','SoundPlay','SoundSet', + 'SoundSetWaveVolume','SplashImage','SplashTextOff', + 'SplashTextOn','SplitPath','StatusBarGetText', + 'StatusBarWait','StringCaseSense','StringGetPos', + 'StringLeft','StringLen','StringLower', + 'StringMid','StringReplace','StringRight', + 'StringSplit','StringTrimLeft','StringTrimRight', + 'StringUpper','Suspend','SysGet', + 'Thread','ToolTip','Transform', + 'TrayTip','URLDownloadToFile','While', + 'VarSetCapacity', + 'WinActivate','WinActivateBottom','WinClose', + 'WinGet','WinGetActiveStats','WinGetActiveTitle', + 'WinGetClass','WinGetPos','WinGetText', + 'WinGetTitle','WinHide','WinKill', + 'WinMaximize','WinMenuSelectItem','WinMinimize', + 'WinMinimizeAll','WinMinimizeAllUndo','WinMove', + 'WinRestore','WinSet','WinSetTitle', + 'WinShow','WinWait','WinWaitActive', + 'WinWaitClose','WinWaitNotActive' + ), + 4 => array( + 'Abs','ACos','Asc','ASin', + 'ATan','Ceil','Chr','Cos', + 'Exp','FileExist','Floor', + 'GetKeyState','IL_Add','IL_Create','IL_Destroy', + 'InStr','IsFunc','IsLabel','Ln', + 'Log','LV_Add','LV_Delete','LV_DeleteCol', + 'LV_GetCount','LV_GetNext','LV_GetText','LV_Insert', + 'LV_InsertCol','LV_Modify','LV_ModifyCol','LV_SetImageList', + 'Mod','NumGet','NumPut', + 'Round', + 'SB_SetIcon','SB_SetParts','SB_SetText','Sin', + 'Sqrt','StrLen','SubStr','Tan', + 'TV_Add','TV_Delete','TV_GetChild','TV_GetCount', + 'TV_GetNext','TV_Get','TV_GetParent','TV_GetPrev', + 'TV_GetSelection','TV_GetText','TV_Modify', + 'WinActive','WinExist' + ), + 5 => array( + // #Directives + 'AllowSameLineComments','ClipboardTimeout','CommentFlag', + 'ErrorStdOut','EscapeChar','HotkeyInterval', + 'HotkeyModifierTimeout','Hotstring','IfWinActive', + 'IfWinExist','IfWinNotActive','IfWinNotExist', + 'Include','IncludeAgain','InstallKeybdHook', + 'InstallMouseHook','KeyHistory','LTrim', + 'MaxHotkeysPerInterval','MaxMem','MaxThreads', + 'MaxThreadsBuffer','MaxThreadsPerHotkey','NoEnv', + 'NoTrayIcon','Persistent','SingleInstance', + 'UseHook','WinActivateForce' + ), + 6 => array( + 'Shift','LShift','RShift', + 'Alt','LAlt','RAlt', + 'LControl','RControl', + 'Ctrl','LCtrl','RCtrl', + 'LWin','RWin','AppsKey', + 'AltDown','AltUp','ShiftDown', + 'ShiftUp','CtrlDown','CtrlUp', + 'LWinDown','LWinUp','RWinDown', + 'RWinUp','LButton','RButton', + 'MButton','WheelUp','WheelDown', + 'WheelLeft','WheelRight','XButton1', + 'XButton2','Joy1','Joy2', + 'Joy3','Joy4','Joy5', + 'Joy6','Joy7','Joy8', + 'Joy9','Joy10','Joy11', + 'Joy12','Joy13','Joy14', + 'Joy15','Joy16','Joy17', + 'Joy18','Joy19','Joy20', + 'Joy21','Joy22','Joy23', + 'Joy24','Joy25','Joy26', + 'Joy27','Joy28','Joy29', + 'Joy30','Joy31','Joy32', + 'JoyX','JoyY','JoyZ', + 'JoyR','JoyU','JoyV', + 'JoyPOV','JoyName','JoyButtons', + 'JoyAxes','JoyInfo','Space', + 'Tab','Enter', + 'Escape','Esc','BackSpace', + 'BS','Delete','Del', + 'Insert','Ins','PGUP', + 'PGDN','Home','End', + 'Up','Down','Left', + 'Right','PrintScreen','CtrlBreak', + 'Pause','ScrollLock','CapsLock', + 'NumLock','Numpad0','Numpad1', + 'Numpad2','Numpad3','Numpad4', + 'Numpad5','Numpad6','Numpad7', + 'Numpad8','Numpad9','NumpadMult', + 'NumpadAdd','NumpadSub','NumpadDiv', + 'NumpadDot','NumpadDel','NumpadIns', + 'NumpadClear','NumpadUp','NumpadDown', + 'NumpadLeft','NumpadRight','NumpadHome', + 'NumpadEnd','NumpadPgup','NumpadPgdn', + 'NumpadEnter','F1','F2', + 'F3','F4','F5', + 'F6','F7','F8', + 'F9','F10','F11', + 'F12','F13','F14', + 'F15','F16','F17', + 'F18','F19','F20', + 'F21','F22','F23', + 'F24','Browser_Back','Browser_Forward', + 'Browser_Refresh','Browser_Stop','Browser_Search', + 'Browser_Favorites','Browser_Home','Volume_Mute', + 'Volume_Down','Volume_Up','Media_Next', + 'Media_Prev','Media_Stop','Media_Play_Pause', + 'Launch_Mail','Launch_Media','Launch_App1', + 'Launch_App2' + ), + 7 => array( + // Gui commands + 'Add', + 'Show', 'Submit', 'Cancel', 'Destroy', + 'Font', 'Color', 'Margin', 'Flash', 'Default', + 'GuiEscape','GuiClose','GuiSize','GuiContextMenu','GuiDropFilesTabStop', + ), + 8 => array( + // Gui Controls + 'Button', + 'Checkbox','Radio','DropDownList','DDL', + 'ComboBox','ListBox','ListView', + 'Text', 'Edit', 'UpDown', 'Picture', + 'TreeView','DateTime', 'MonthCal', + 'Slider' + ) + ), + 'SYMBOLS' => array( + '(',')','[',']', + '+','-','*','/','&','^', + '=','+=','-=','*=','/=','&=', + '==','<','<=','>','>=',':=', + ',','.' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false, + 7 => false, + 8 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #AAAAFF; font-weight: bold;', // reserved #blue + 2 => 'color: #88FF88;', // BIV yellow + 3 => 'color: #FF00FF; font-style: italic;', // commands purple + 4 => 'color: #888844; font-weight: bold;', // functions #0080FF + 5 => 'color: #000000; font-style: italic;', // directives #black + 6 => 'color: #FF0000; font-style: italic;', // hotkeys #red + 7 => 'color: #000000; font-style: italic;', // gui commands #black + 8 => 'color: #000000; font-style: italic;' // gui controls + ), + 'COMMENTS' => array( + 'MULTI' => 'font-style: italic; color: #669900;', + 1 => 'font-style: italic; color: #009933;' + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => 'color: #00FF00; font-weight: bold;' + ), + 'STRINGS' => array( + 0 => 'font-weight: bold; color: #008080;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;' + ), + 'METHODS' => array( + 1 => 'color: #0000FF; font-style: italic; font-weight: italic;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000000; font-weight: italic;' + ), + 'REGEXPS' => array( + 0 => 'font-weight: italic; color: #A00A0;', + 1 => 'color: #CC0000; font-style: italic;', + 2 => 'color: #DD0000; font-style: italic;', + 3 => 'color: #88FF88;' + ), + 'SCRIPT' => array( + ) + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '_' + ), + 'REGEXPS' => array( + //Variables + 0 => '%[a-zA-Z_][a-zA-Z0-9_]*%', + //hotstrings + 1 => '::[\w\d]+::', + //labels + 2 => '\w[\w\d]+:\s', + //Built-in Variables + 3 => '\bA_\w+\b(?![^<]*>)' + ), + 'URLS' => array( + 1 => '', + 2 => 'http://www.autohotkey.com/docs/Variables.htm#{FNAME}', + 3 => 'http://www.autohotkey.com/docs/commands/{FNAME}.htm', + 4 => 'http://www.autohotkey.com/docs/Functions.htm#BuiltIn', + 5 => 'http://www.autohotkey.com/docs/commands/_{FNAME}.htm', + 6 => '', + 7 => 'http://www.autohotkey.com/docs/commands/Gui.htm#{FNAME}', + 8 => 'http://www.autohotkey.com/docs/commands/GuiControls.htm#{FNAME}' + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => true, + 1 => true, + 2 => true, + 3 => true + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 5 => array( + 'DISALLOWED_BEFORE' => '(? \ No newline at end of file diff --git a/Sources/geshi/autoit.php b/Sources/geshi/autoit.php new file mode 100644 index 0000000..ab401b4 --- /dev/null +++ b/Sources/geshi/autoit.php @@ -0,0 +1,1175 @@ + 'AutoIt', + 'COMMENT_SINGLE' => array(';'), + 'COMMENT_MULTI' => array( + '#comments-start' => '#comments-end', + '#cs' => '#ce'), + 'COMMENT_REGEXP' => array( + 0 => '/(? '/(?<=include)\s+<.*?>/' + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'And','ByRef','Case','Const','ContinueCase','ContinueLoop', + 'Default','Dim','Do','Else','ElseIf','EndFunc','EndIf','EndSelect', + 'EndSwitch','EndWith','Enum','Exit','ExitLoop','False','For','Func', + 'Global','If','In','Local','Next','Not','Or','ReDim','Return', + 'Select','Step','Switch','Then','To','True','Until','WEnd','While', + 'With' + ), + 2 => array( + '@AppDataCommonDir','@AppDataDir','@AutoItExe','@AutoItPID', + '@AutoItUnicode','@AutoItVersion','@AutoItX64','@COM_EventObj', + '@CommonFilesDir','@Compiled','@ComputerName','@ComSpec','@CR', + '@CRLF','@DesktopCommonDir','@DesktopDepth','@DesktopDir', + '@DesktopHeight','@DesktopRefresh','@DesktopWidth', + '@DocumentsCommonDir','@error','@exitCode','@exitMethod', + '@extended','@FavoritesCommonDir','@FavoritesDir','@GUI_CtrlHandle', + '@GUI_CtrlId','@GUI_DragFile','@GUI_DragId','@GUI_DropId', + '@GUI_WinHandle','@HomeDrive','@HomePath','@HomeShare', + '@HotKeyPressed','@HOUR','@InetGetActive','@InetGetBytesRead', + '@IPAddress1','@IPAddress2','@IPAddress3','@IPAddress4','@KBLayout', + '@LF','@LogonDNSDomain','@LogonDomain','@LogonServer','@MDAY', + '@MIN','@MON','@MyDocumentsDir','@NumParams','@OSBuild','@OSLang', + '@OSServicePack','@OSTYPE','@OSVersion','@ProcessorArch', + '@ProgramFilesDir','@ProgramsCommonDir','@ProgramsDir','@ScriptDir', + '@ScriptFullPath','@ScriptLineNumber','@ScriptName','@SEC', + '@StartMenuCommonDir','@StartMenuDir','@StartupCommonDir', + '@StartupDir','@SW_DISABLE','@SW_ENABLE','@SW_HIDE','@SW_LOCK', + '@SW_MAXIMIZE','@SW_MINIMIZE','@SW_RESTORE','@SW_SHOW', + '@SW_SHOWDEFAULT','@SW_SHOWMAXIMIZED','@SW_SHOWMINIMIZED', + '@SW_SHOWMINNOACTIVE','@SW_SHOWNA','@SW_SHOWNOACTIVATE', + '@SW_SHOWNORMAL','@SW_UNLOCK','@SystemDir','@TAB','@TempDir', + '@TRAY_ID','@TrayIconFlashing','@TrayIconVisible','@UserName', + '@UserProfileDir','@WDAY','@WindowsDir','@WorkingDir','@YDAY', + '@YEAR' + ), + 3 => array( + 'Abs','ACos','AdlibDisable','AdlibEnable','Asc','AscW','ASin', + 'Assign','ATan','AutoItSetOption','AutoItWinGetTitle', + 'AutoItWinSetTitle','Beep','Binary','BinaryLen','BinaryMid', + 'BinaryToString','BitAND','BitNOT','BitOR','BitRotate','BitShift', + 'BitXOR','BlockInput','Break','Call','CDTray','Ceiling','Chr', + 'ChrW','ClipGet','ClipPut','ConsoleRead','ConsoleWrite', + 'ConsoleWriteError','ControlClick','ControlCommand', + 'ControlDisable','ControlEnable','ControlFocus','ControlGetFocus', + 'ControlGetHandle','ControlGetPos','ControlGetText','ControlHide', + 'ControlListView','ControlMove','ControlSend','ControlSetText', + 'ControlShow','ControlTreeView','Cos','Dec','DirCopy','DirCreate', + 'DirGetSize','DirMove','DirRemove','DllCall','DllCallbackFree', + 'DllCallbackGetPtr','DllCallbackRegister','DllClose','DllOpen', + 'DllStructCreate','DllStructGetData','DllStructGetPtr', + 'DllStructGetSize','DllStructSetData','DriveGetDrive', + 'DriveGetFileSystem','DriveGetLabel','DriveGetSerial', + 'DriveGetType','DriveMapAdd','DriveMapDel','DriveMapGet', + 'DriveSetLabel','DriveSpaceFree','DriveSpaceTotal','DriveStatus', + 'EnvGet','EnvSet','EnvUpdate','Eval','Execute','Exp', + 'FileChangeDir','FileClose','FileCopy','FileCreateNTFSLink', + 'FileCreateShortcut','FileDelete','FileExists','FileFindFirstFile', + 'FileFindNextFile','FileGetAttrib','FileGetLongName', + 'FileGetShortcut','FileGetShortName','FileGetSize','FileGetTime', + 'FileGetVersion','FileInstall','FileMove','FileOpen', + 'FileOpenDialog','FileRead','FileReadLine','FileRecycle', + 'FileRecycleEmpty','FileSaveDialog','FileSelectFolder', + 'FileSetAttrib','FileSetTime','FileWrite','FileWriteLine','Floor', + 'FtpSetProxy','GUICreate','GUICtrlCreateAvi','GUICtrlCreateButton', + 'GUICtrlCreateCheckbox','GUICtrlCreateCombo', + 'GUICtrlCreateContextMenu','GUICtrlCreateDate','GUICtrlCreateDummy', + 'GUICtrlCreateEdit','GUICtrlCreateGraphic','GUICtrlCreateGroup', + 'GUICtrlCreateIcon','GUICtrlCreateInput','GUICtrlCreateLabel', + 'GUICtrlCreateList','GUICtrlCreateListView', + 'GUICtrlCreateListViewItem','GUICtrlCreateMenu', + 'GUICtrlCreateMenuItem','GUICtrlCreateMonthCal','GUICtrlCreateObj', + 'GUICtrlCreatePic','GUICtrlCreateProgress','GUICtrlCreateRadio', + 'GUICtrlCreateSlider','GUICtrlCreateTab','GUICtrlCreateTabItem', + 'GUICtrlCreateTreeView','GUICtrlCreateTreeViewItem', + 'GUICtrlCreateUpdown','GUICtrlDelete','GUICtrlGetHandle', + 'GUICtrlGetState','GUICtrlRead','GUICtrlRecvMsg', + 'GUICtrlRegisterListViewSort','GUICtrlSendMsg','GUICtrlSendToDummy', + 'GUICtrlSetBkColor','GUICtrlSetColor','GUICtrlSetCursor', + 'GUICtrlSetData','GUICtrlSetFont','GUICtrlSetDefColor', + 'GUICtrlSetDefBkColor','GUICtrlSetGraphic','GUICtrlSetImage', + 'GUICtrlSetLimit','GUICtrlSetOnEvent','GUICtrlSetPos', + 'GUICtrlSetResizing','GUICtrlSetState','GUICtrlSetStyle', + 'GUICtrlSetTip','GUIDelete','GUIGetCursorInfo','GUIGetMsg', + 'GUIGetStyle','GUIRegisterMsg','GUISetAccelerators()', + 'GUISetBkColor','GUISetCoord','GUISetCursor','GUISetFont', + 'GUISetHelp','GUISetIcon','GUISetOnEvent','GUISetState', + 'GUISetStyle','GUIStartGroup','GUISwitch','Hex','HotKeySet', + 'HttpSetProxy','HWnd','InetGet','InetGetSize','IniDelete','IniRead', + 'IniReadSection','IniReadSectionNames','IniRenameSection', + 'IniWrite','IniWriteSection','InputBox','Int','IsAdmin','IsArray', + 'IsBinary','IsBool','IsDeclared','IsDllStruct','IsFloat','IsHWnd', + 'IsInt','IsKeyword','IsNumber','IsObj','IsPtr','IsString','Log', + 'MemGetStats','Mod','MouseClick','MouseClickDrag','MouseDown', + 'MouseGetCursor','MouseGetPos','MouseMove','MouseUp','MouseWheel', + 'MsgBox','Number','ObjCreate','ObjEvent','ObjGet','ObjName','Opt', + 'Ping','PixelChecksum','PixelGetColor','PixelSearch','PluginClose', + 'PluginOpen','ProcessClose','ProcessExists','ProcessGetStats', + 'ProcessList','ProcessSetPriority','ProcessWait','ProcessWaitClose', + 'ProgressOff','ProgressOn','ProgressSet','Ptr','Random','RegDelete', + 'RegEnumKey','RegEnumVal','RegRead','RegWrite','Round','Run', + 'RunAs','RunAsWait','RunWait','Send','SendKeepActive','SetError', + 'SetExtended','ShellExecute','ShellExecuteWait','Shutdown','Sin', + 'Sleep','SoundPlay','SoundSetWaveVolume','SplashImageOn', + 'SplashOff','SplashTextOn','Sqrt','SRandom','StatusbarGetText', + 'StderrRead','StdinWrite','StdioClose','StdoutRead','String', + 'StringAddCR','StringCompare','StringFormat','StringInStr', + 'StringIsAlNum','StringIsAlpha','StringIsASCII','StringIsDigit', + 'StringIsFloat','StringIsInt','StringIsLower','StringIsSpace', + 'StringIsUpper','StringIsXDigit','StringLeft','StringLen', + 'StringLower','StringMid','StringRegExp','StringRegExpReplace', + 'StringReplace','StringRight','StringSplit','StringStripCR', + 'StringStripWS','StringToBinary','StringTrimLeft','StringTrimRight', + 'StringUpper','Tan','TCPAccept','TCPCloseSocket','TCPConnect', + 'TCPListen','TCPNameToIP','TCPRecv','TCPSend','TCPShutdown', + 'TCPStartup','TimerDiff','TimerInit','ToolTip','TrayCreateItem', + 'TrayCreateMenu','TrayGetMsg','TrayItemDelete','TrayItemGetHandle', + 'TrayItemGetState','TrayItemGetText','TrayItemSetOnEvent', + 'TrayItemSetState','TrayItemSetText','TraySetClick','TraySetIcon', + 'TraySetOnEvent','TraySetPauseIcon','TraySetState','TraySetToolTip', + 'TrayTip','UBound','UDPBind','UDPCloseSocket','UDPOpen','UDPRecv', + 'UDPSend','UDPShutdown','UDPStartup','VarGetType','WinActivate', + 'WinActive','WinClose','WinExists','WinFlash','WinGetCaretPos', + 'WinGetClassList','WinGetClientSize','WinGetHandle','WinGetPos', + 'WinGetProcess','WinGetState','WinGetText','WinGetTitle','WinKill', + 'WinList','WinMenuSelectItem','WinMinimizeAll','WinMinimizeAllUndo', + 'WinMove','WinSetOnTop','WinSetState','WinSetTitle','WinSetTrans', + 'WinWait','WinWaitActive','WinWaitClose','WinWaitNotActive' + ), + 4 => array( + 'ArrayAdd','ArrayBinarySearch','ArrayConcatenate','ArrayDelete', + 'ArrayDisplay','ArrayFindAll','ArrayInsert','ArrayMax', + 'ArrayMaxIndex','ArrayMin','ArrayMinIndex','ArrayPop','ArrayPush', + 'ArrayReverse','ArraySearch','ArraySort','ArraySwap','ArrayToClip', + 'ArrayToString','ArrayTrim','ChooseColor','ChooseFont', + 'ClipBoard_ChangeChain','ClipBoard_Close','ClipBoard_CountFormats', + 'ClipBoard_Empty','ClipBoard_EnumFormats','ClipBoard_FormatStr', + 'ClipBoard_GetData','ClipBoard_GetDataEx','ClipBoard_GetFormatName', + 'ClipBoard_GetOpenWindow','ClipBoard_GetOwner', + 'ClipBoard_GetPriorityFormat','ClipBoard_GetSequenceNumber', + 'ClipBoard_GetViewer','ClipBoard_IsFormatAvailable', + 'ClipBoard_Open','ClipBoard_RegisterFormat','ClipBoard_SetData', + 'ClipBoard_SetDataEx','ClipBoard_SetViewer','ClipPutFile', + 'ColorConvertHSLtoRGB','ColorConvertRGBtoHSL','ColorGetBlue', + 'ColorGetGreen','ColorGetRed','Date_Time_CompareFileTime', + 'Date_Time_DOSDateTimeToArray','Date_Time_DOSDateTimeToFileTime', + 'Date_Time_DOSDateTimeToStr','Date_Time_DOSDateToArray', + 'Date_Time_DOSDateToStr','Date_Time_DOSTimeToArray', + 'Date_Time_DOSTimeToStr','Date_Time_EncodeFileTime', + 'Date_Time_EncodeSystemTime','Date_Time_FileTimeToArray', + 'Date_Time_FileTimeToDOSDateTime', + 'Date_Time_FileTimeToLocalFileTime','Date_Time_FileTimeToStr', + 'Date_Time_FileTimeToSystemTime','Date_Time_GetFileTime', + 'Date_Time_GetLocalTime','Date_Time_GetSystemTime', + 'Date_Time_GetSystemTimeAdjustment', + 'Date_Time_GetSystemTimeAsFileTime', + 'Date_Time_GetSystemTimes','Date_Time_GetTickCount', + 'Date_Time_GetTimeZoneInformation', + 'Date_Time_LocalFileTimeToFileTime','Date_Time_SetFileTime', + 'Date_Time_SetLocalTime','Date_Time_SetSystemTime', + 'Date_Time_SetSystemTimeAdjustment', + 'Date_Time_SetTimeZoneInformation','Date_Time_SystemTimeToArray', + 'Date_Time_SystemTimeToDateStr','Date_Time_SystemTimeToDateTimeStr', + 'Date_Time_SystemTimeToFileTime','Date_Time_SystemTimeToTimeStr', + 'Date_Time_SystemTimeToTzSpecificLocalTime', + 'Date_Time_TzSpecificLocalTimeToSystemTime','DateAdd', + 'DateDayOfWeek','DateDaysInMonth','DateDiff','DateIsLeapYear', + 'DateIsValid','DateTimeFormat','DateTimeSplit','DateToDayOfWeek', + 'DateToDayOfWeekISO','DateToDayValue','DateToMonth', + 'DayValueToDate','DebugBugReportEnv','DebugOut','DebugSetup', + 'Degree','EventLog__Backup','EventLog__Clear','EventLog__Close', + 'EventLog__Count','EventLog__DeregisterSource','EventLog__Full', + 'EventLog__Notify','EventLog__Oldest','EventLog__Open', + 'EventLog__OpenBackup','EventLog__Read','EventLog__RegisterSource', + 'EventLog__Report','FileCountLines','FileCreate','FileListToArray', + 'FilePrint','FileReadToArray','FileWriteFromArray', + 'FileWriteLog','FileWriteToLine','GDIPlus_ArrowCapCreate', + 'GDIPlus_ArrowCapDispose','GDIPlus_ArrowCapGetFillState', + 'GDIPlus_ArrowCapGetHeight','GDIPlus_ArrowCapGetMiddleInset', + 'GDIPlus_ArrowCapGetWidth','GDIPlus_ArrowCapSetFillState', + 'GDIPlus_ArrowCapSetHeight','GDIPlus_ArrowCapSetMiddleInset', + 'GDIPlus_ArrowCapSetWidth','GDIPlus_BitmapCloneArea', + 'GDIPlus_BitmapCreateFromFile','GDIPlus_BitmapCreateFromGraphics', + 'GDIPlus_BitmapCreateFromHBITMAP', + 'GDIPlus_BitmapCreateHBITMAPFromBitmap','GDIPlus_BitmapDispose', + 'GDIPlus_BitmapLockBits','GDIPlus_BitmapUnlockBits', + 'GDIPlus_BrushClone','GDIPlus_BrushCreateSolid', + 'GDIPlus_BrushDispose','GDIPlus_BrushGetType', + 'GDIPlus_CustomLineCapDispose','GDIPlus_Decoders', + 'GDIPlus_DecodersGetCount','GDIPlus_DecodersGetSize', + 'GDIPlus_Encoders','GDIPlus_EncodersGetCLSID', + 'GDIPlus_EncodersGetCount','GDIPlus_EncodersGetParamList', + 'GDIPlus_EncodersGetParamListSize','GDIPlus_EncodersGetSize', + 'GDIPlus_FontCreate','GDIPlus_FontDispose', + 'GDIPlus_FontFamilyCreate','GDIPlus_FontFamilyDispose', + 'GDIPlus_GraphicsClear','GDIPlus_GraphicsCreateFromHDC', + 'GDIPlus_GraphicsCreateFromHWND','GDIPlus_GraphicsDispose', + 'GDIPlus_GraphicsDrawArc','GDIPlus_GraphicsDrawBezier', + 'GDIPlus_GraphicsDrawClosedCurve','GDIPlus_GraphicsDrawCurve', + 'GDIPlus_GraphicsDrawEllipse','GDIPlus_GraphicsDrawImage', + 'GDIPlus_GraphicsDrawImageRect','GDIPlus_GraphicsDrawImageRectRect', + 'GDIPlus_GraphicsDrawLine','GDIPlus_GraphicsDrawPie', + 'GDIPlus_GraphicsDrawPolygon','GDIPlus_GraphicsDrawRect', + 'GDIPlus_GraphicsDrawString','GDIPlus_GraphicsDrawStringEx', + 'GDIPlus_GraphicsFillClosedCurve','GDIPlus_GraphicsFillEllipse', + 'GDIPlus_GraphicsFillPie','GDIPlus_GraphicsFillRect', + 'GDIPlus_GraphicsGetDC','GDIPlus_GraphicsGetSmoothingMode', + 'GDIPlus_GraphicsMeasureString','GDIPlus_GraphicsReleaseDC', + 'GDIPlus_GraphicsSetSmoothingMode','GDIPlus_GraphicsSetTransform', + 'GDIPlus_ImageDispose','GDIPlus_ImageGetGraphicsContext', + 'GDIPlus_ImageGetHeight','GDIPlus_ImageGetWidth', + 'GDIPlus_ImageLoadFromFile','GDIPlus_ImageSaveToFile', + 'GDIPlus_ImageSaveToFileEx','GDIPlus_MatrixCreate', + 'GDIPlus_MatrixDispose','GDIPlus_MatrixRotate','GDIPlus_ParamAdd', + 'GDIPlus_ParamInit','GDIPlus_PenCreate','GDIPlus_PenDispose', + 'GDIPlus_PenGetAlignment','GDIPlus_PenGetColor', + 'GDIPlus_PenGetCustomEndCap','GDIPlus_PenGetDashCap', + 'GDIPlus_PenGetDashStyle','GDIPlus_PenGetEndCap', + 'GDIPlus_PenGetWidth','GDIPlus_PenSetAlignment', + 'GDIPlus_PenSetColor','GDIPlus_PenSetCustomEndCap', + 'GDIPlus_PenSetDashCap','GDIPlus_PenSetDashStyle', + 'GDIPlus_PenSetEndCap','GDIPlus_PenSetWidth','GDIPlus_RectFCreate', + 'GDIPlus_Shutdown','GDIPlus_Startup','GDIPlus_StringFormatCreate', + 'GDIPlus_StringFormatDispose','GetIP','GUICtrlAVI_Close', + 'GUICtrlAVI_Create','GUICtrlAVI_Destroy','GUICtrlAVI_Open', + 'GUICtrlAVI_OpenEx','GUICtrlAVI_Play','GUICtrlAVI_Seek', + 'GUICtrlAVI_Show','GUICtrlAVI_Stop','GUICtrlButton_Click', + 'GUICtrlButton_Create','GUICtrlButton_Destroy', + 'GUICtrlButton_Enable','GUICtrlButton_GetCheck', + 'GUICtrlButton_GetFocus','GUICtrlButton_GetIdealSize', + 'GUICtrlButton_GetImage','GUICtrlButton_GetImageList', + 'GUICtrlButton_GetState','GUICtrlButton_GetText', + 'GUICtrlButton_GetTextMargin','GUICtrlButton_SetCheck', + 'GUICtrlButton_SetFocus','GUICtrlButton_SetImage', + 'GUICtrlButton_SetImageList','GUICtrlButton_SetSize', + 'GUICtrlButton_SetState','GUICtrlButton_SetStyle', + 'GUICtrlButton_SetText','GUICtrlButton_SetTextMargin', + 'GUICtrlButton_Show','GUICtrlComboBox_AddDir', + 'GUICtrlComboBox_AddString','GUICtrlComboBox_AutoComplete', + 'GUICtrlComboBox_BeginUpdate','GUICtrlComboBox_Create', + 'GUICtrlComboBox_DeleteString','GUICtrlComboBox_Destroy', + 'GUICtrlComboBox_EndUpdate','GUICtrlComboBox_FindString', + 'GUICtrlComboBox_FindStringExact','GUICtrlComboBox_GetComboBoxInfo', + 'GUICtrlComboBox_GetCount','GUICtrlComboBox_GetCurSel', + 'GUICtrlComboBox_GetDroppedControlRect', + 'GUICtrlComboBox_GetDroppedControlRectEx', + 'GUICtrlComboBox_GetDroppedState','GUICtrlComboBox_GetDroppedWidth', + 'GUICtrlComboBox_GetEditSel','GUICtrlComboBox_GetEditText', + 'GUICtrlComboBox_GetExtendedUI', + 'GUICtrlComboBox_GetHorizontalExtent', + 'GUICtrlComboBox_GetItemHeight','GUICtrlComboBox_GetLBText', + 'GUICtrlComboBox_GetLBTextLen','GUICtrlComboBox_GetList', + 'GUICtrlComboBox_GetListArray','GUICtrlComboBox_GetLocale', + 'GUICtrlComboBox_GetLocaleCountry','GUICtrlComboBox_GetLocaleLang', + 'GUICtrlComboBox_GetLocalePrimLang', + 'GUICtrlComboBox_GetLocaleSubLang','GUICtrlComboBox_GetMinVisible', + 'GUICtrlComboBox_GetTopIndex','GUICtrlComboBox_InitStorage', + 'GUICtrlComboBox_InsertString','GUICtrlComboBox_LimitText', + 'GUICtrlComboBox_ReplaceEditSel','GUICtrlComboBox_ResetContent', + 'GUICtrlComboBox_SelectString','GUICtrlComboBox_SetCurSel', + 'GUICtrlComboBox_SetDroppedWidth','GUICtrlComboBox_SetEditSel', + 'GUICtrlComboBox_SetEditText','GUICtrlComboBox_SetExtendedUI', + 'GUICtrlComboBox_SetHorizontalExtent', + 'GUICtrlComboBox_SetItemHeight','GUICtrlComboBox_SetMinVisible', + 'GUICtrlComboBox_SetTopIndex','GUICtrlComboBox_ShowDropDown', + 'GUICtrlComboBoxEx_AddDir','GUICtrlComboBoxEx_AddString', + 'GUICtrlComboBoxEx_BeginUpdate','GUICtrlComboBoxEx_Create', + 'GUICtrlComboBoxEx_CreateSolidBitMap', + 'GUICtrlComboBoxEx_DeleteString','GUICtrlComboBoxEx_Destroy', + 'GUICtrlComboBoxEx_EndUpdate','GUICtrlComboBoxEx_FindStringExact', + 'GUICtrlComboBoxEx_GetComboBoxInfo', + 'GUICtrlComboBoxEx_GetComboControl','GUICtrlComboBoxEx_GetCount', + 'GUICtrlComboBoxEx_GetCurSel', + 'GUICtrlComboBoxEx_GetDroppedControlRect', + 'GUICtrlComboBoxEx_GetDroppedControlRectEx', + 'GUICtrlComboBoxEx_GetDroppedState', + 'GUICtrlComboBoxEx_GetDroppedWidth', + 'GUICtrlComboBoxEx_GetEditControl','GUICtrlComboBoxEx_GetEditSel', + 'GUICtrlComboBoxEx_GetEditText', + 'GUICtrlComboBoxEx_GetExtendedStyle', + 'GUICtrlComboBoxEx_GetExtendedUI','GUICtrlComboBoxEx_GetImageList', + 'GUICtrlComboBoxEx_GetItem','GUICtrlComboBoxEx_GetItemEx', + 'GUICtrlComboBoxEx_GetItemHeight','GUICtrlComboBoxEx_GetItemImage', + 'GUICtrlComboBoxEx_GetItemIndent', + 'GUICtrlComboBoxEx_GetItemOverlayImage', + 'GUICtrlComboBoxEx_GetItemParam', + 'GUICtrlComboBoxEx_GetItemSelectedImage', + 'GUICtrlComboBoxEx_GetItemText','GUICtrlComboBoxEx_GetItemTextLen', + 'GUICtrlComboBoxEx_GetList','GUICtrlComboBoxEx_GetListArray', + 'GUICtrlComboBoxEx_GetLocale','GUICtrlComboBoxEx_GetLocaleCountry', + 'GUICtrlComboBoxEx_GetLocaleLang', + 'GUICtrlComboBoxEx_GetLocalePrimLang', + 'GUICtrlComboBoxEx_GetLocaleSubLang', + 'GUICtrlComboBoxEx_GetMinVisible','GUICtrlComboBoxEx_GetTopIndex', + 'GUICtrlComboBoxEx_InitStorage','GUICtrlComboBoxEx_InsertString', + 'GUICtrlComboBoxEx_LimitText','GUICtrlComboBoxEx_ReplaceEditSel', + 'GUICtrlComboBoxEx_ResetContent','GUICtrlComboBoxEx_SetCurSel', + 'GUICtrlComboBoxEx_SetDroppedWidth','GUICtrlComboBoxEx_SetEditSel', + 'GUICtrlComboBoxEx_SetEditText', + 'GUICtrlComboBoxEx_SetExtendedStyle', + 'GUICtrlComboBoxEx_SetExtendedUI','GUICtrlComboBoxEx_SetImageList', + 'GUICtrlComboBoxEx_SetItem','GUICtrlComboBoxEx_SetItemEx', + 'GUICtrlComboBoxEx_SetItemHeight','GUICtrlComboBoxEx_SetItemImage', + 'GUICtrlComboBoxEx_SetItemIndent', + 'GUICtrlComboBoxEx_SetItemOverlayImage', + 'GUICtrlComboBoxEx_SetItemParam', + 'GUICtrlComboBoxEx_SetItemSelectedImage', + 'GUICtrlComboBoxEx_SetMinVisible','GUICtrlComboBoxEx_SetTopIndex', + 'GUICtrlComboBoxEx_ShowDropDown','GUICtrlDTP_Create', + 'GUICtrlDTP_Destroy','GUICtrlDTP_GetMCColor','GUICtrlDTP_GetMCFont', + 'GUICtrlDTP_GetMonthCal','GUICtrlDTP_GetRange', + 'GUICtrlDTP_GetRangeEx','GUICtrlDTP_GetSystemTime', + 'GUICtrlDTP_GetSystemTimeEx','GUICtrlDTP_SetFormat', + 'GUICtrlDTP_SetMCColor','GUICtrlDTP_SetMCFont', + 'GUICtrlDTP_SetRange','GUICtrlDTP_SetRangeEx', + 'GUICtrlDTP_SetSystemTime','GUICtrlDTP_SetSystemTimeEx', + 'GUICtrlEdit_AppendText','GUICtrlEdit_BeginUpdate', + 'GUICtrlEdit_CanUndo','GUICtrlEdit_CharFromPos', + 'GUICtrlEdit_Create','GUICtrlEdit_Destroy', + 'GUICtrlEdit_EmptyUndoBuffer','GUICtrlEdit_EndUpdate', + 'GUICtrlEdit_Find','GUICtrlEdit_FmtLines', + 'GUICtrlEdit_GetFirstVisibleLine','GUICtrlEdit_GetLimitText', + 'GUICtrlEdit_GetLine','GUICtrlEdit_GetLineCount', + 'GUICtrlEdit_GetMargins','GUICtrlEdit_GetModify', + 'GUICtrlEdit_GetPasswordChar','GUICtrlEdit_GetRECT', + 'GUICtrlEdit_GetRECTEx','GUICtrlEdit_GetSel','GUICtrlEdit_GetText', + 'GUICtrlEdit_GetTextLen','GUICtrlEdit_HideBalloonTip', + 'GUICtrlEdit_InsertText','GUICtrlEdit_LineFromChar', + 'GUICtrlEdit_LineIndex','GUICtrlEdit_LineLength', + 'GUICtrlEdit_LineScroll','GUICtrlEdit_PosFromChar', + 'GUICtrlEdit_ReplaceSel','GUICtrlEdit_Scroll', + 'GUICtrlEdit_SetLimitText','GUICtrlEdit_SetMargins', + 'GUICtrlEdit_SetModify','GUICtrlEdit_SetPasswordChar', + 'GUICtrlEdit_SetReadOnly','GUICtrlEdit_SetRECT', + 'GUICtrlEdit_SetRECTEx','GUICtrlEdit_SetRECTNP', + 'GUICtrlEdit_SetRectNPEx','GUICtrlEdit_SetSel', + 'GUICtrlEdit_SetTabStops','GUICtrlEdit_SetText', + 'GUICtrlEdit_ShowBalloonTip','GUICtrlEdit_Undo', + 'GUICtrlHeader_AddItem','GUICtrlHeader_ClearFilter', + 'GUICtrlHeader_ClearFilterAll','GUICtrlHeader_Create', + 'GUICtrlHeader_CreateDragImage','GUICtrlHeader_DeleteItem', + 'GUICtrlHeader_Destroy','GUICtrlHeader_EditFilter', + 'GUICtrlHeader_GetBitmapMargin','GUICtrlHeader_GetImageList', + 'GUICtrlHeader_GetItem','GUICtrlHeader_GetItemAlign', + 'GUICtrlHeader_GetItemBitmap','GUICtrlHeader_GetItemCount', + 'GUICtrlHeader_GetItemDisplay','GUICtrlHeader_GetItemFlags', + 'GUICtrlHeader_GetItemFormat','GUICtrlHeader_GetItemImage', + 'GUICtrlHeader_GetItemOrder','GUICtrlHeader_GetItemParam', + 'GUICtrlHeader_GetItemRect','GUICtrlHeader_GetItemRectEx', + 'GUICtrlHeader_GetItemText','GUICtrlHeader_GetItemWidth', + 'GUICtrlHeader_GetOrderArray','GUICtrlHeader_GetUnicodeFormat', + 'GUICtrlHeader_HitTest','GUICtrlHeader_InsertItem', + 'GUICtrlHeader_Layout','GUICtrlHeader_OrderToIndex', + 'GUICtrlHeader_SetBitmapMargin', + 'GUICtrlHeader_SetFilterChangeTimeout', + 'GUICtrlHeader_SetHotDivider','GUICtrlHeader_SetImageList', + 'GUICtrlHeader_SetItem','GUICtrlHeader_SetItemAlign', + 'GUICtrlHeader_SetItemBitmap','GUICtrlHeader_SetItemDisplay', + 'GUICtrlHeader_SetItemFlags','GUICtrlHeader_SetItemFormat', + 'GUICtrlHeader_SetItemImage','GUICtrlHeader_SetItemOrder', + 'GUICtrlHeader_SetItemParam','GUICtrlHeader_SetItemText', + 'GUICtrlHeader_SetItemWidth','GUICtrlHeader_SetOrderArray', + 'GUICtrlHeader_SetUnicodeFormat','GUICtrlIpAddress_ClearAddress', + 'GUICtrlIpAddress_Create','GUICtrlIpAddress_Destroy', + 'GUICtrlIpAddress_Get','GUICtrlIpAddress_GetArray', + 'GUICtrlIpAddress_GetEx','GUICtrlIpAddress_IsBlank', + 'GUICtrlIpAddress_Set','GUICtrlIpAddress_SetArray', + 'GUICtrlIpAddress_SetEx','GUICtrlIpAddress_SetFocus', + 'GUICtrlIpAddress_SetFont','GUICtrlIpAddress_SetRange', + 'GUICtrlIpAddress_ShowHide','GUICtrlListBox_AddFile', + 'GUICtrlListBox_AddString','GUICtrlListBox_BeginUpdate', + 'GUICtrlListBox_Create','GUICtrlListBox_DeleteString', + 'GUICtrlListBox_Destroy','GUICtrlListBox_Dir', + 'GUICtrlListBox_EndUpdate','GUICtrlListBox_FindInText', + 'GUICtrlListBox_FindString','GUICtrlListBox_GetAnchorIndex', + 'GUICtrlListBox_GetCaretIndex','GUICtrlListBox_GetCount', + 'GUICtrlListBox_GetCurSel','GUICtrlListBox_GetHorizontalExtent', + 'GUICtrlListBox_GetItemData','GUICtrlListBox_GetItemHeight', + 'GUICtrlListBox_GetItemRect','GUICtrlListBox_GetItemRectEx', + 'GUICtrlListBox_GetListBoxInfo','GUICtrlListBox_GetLocale', + 'GUICtrlListBox_GetLocaleCountry','GUICtrlListBox_GetLocaleLang', + 'GUICtrlListBox_GetLocalePrimLang', + 'GUICtrlListBox_GetLocaleSubLang','GUICtrlListBox_GetSel', + 'GUICtrlListBox_GetSelCount','GUICtrlListBox_GetSelItems', + 'GUICtrlListBox_GetSelItemsText','GUICtrlListBox_GetText', + 'GUICtrlListBox_GetTextLen','GUICtrlListBox_GetTopIndex', + 'GUICtrlListBox_InitStorage','GUICtrlListBox_InsertString', + 'GUICtrlListBox_ItemFromPoint','GUICtrlListBox_ReplaceString', + 'GUICtrlListBox_ResetContent','GUICtrlListBox_SelectString', + 'GUICtrlListBox_SelItemRange','GUICtrlListBox_SelItemRangeEx', + 'GUICtrlListBox_SetAnchorIndex','GUICtrlListBox_SetCaretIndex', + 'GUICtrlListBox_SetColumnWidth','GUICtrlListBox_SetCurSel', + 'GUICtrlListBox_SetHorizontalExtent','GUICtrlListBox_SetItemData', + 'GUICtrlListBox_SetItemHeight','GUICtrlListBox_SetLocale', + 'GUICtrlListBox_SetSel','GUICtrlListBox_SetTabStops', + 'GUICtrlListBox_SetTopIndex','GUICtrlListBox_Sort', + 'GUICtrlListBox_SwapString','GUICtrlListBox_UpdateHScroll', + 'GUICtrlListView_AddArray','GUICtrlListView_AddColumn', + 'GUICtrlListView_AddItem','GUICtrlListView_AddSubItem', + 'GUICtrlListView_ApproximateViewHeight', + 'GUICtrlListView_ApproximateViewRect', + 'GUICtrlListView_ApproximateViewWidth','GUICtrlListView_Arrange', + 'GUICtrlListView_BeginUpdate','GUICtrlListView_CancelEditLabel', + 'GUICtrlListView_ClickItem','GUICtrlListView_CopyItems', + 'GUICtrlListView_Create','GUICtrlListView_CreateDragImage', + 'GUICtrlListView_CreateSolidBitMap', + 'GUICtrlListView_DeleteAllItems','GUICtrlListView_DeleteColumn', + 'GUICtrlListView_DeleteItem','GUICtrlListView_DeleteItemsSelected', + 'GUICtrlListView_Destroy','GUICtrlListView_DrawDragImage', + 'GUICtrlListView_EditLabel','GUICtrlListView_EnableGroupView', + 'GUICtrlListView_EndUpdate','GUICtrlListView_EnsureVisible', + 'GUICtrlListView_FindInText','GUICtrlListView_FindItem', + 'GUICtrlListView_FindNearest','GUICtrlListView_FindParam', + 'GUICtrlListView_FindText','GUICtrlListView_GetBkColor', + 'GUICtrlListView_GetBkImage','GUICtrlListView_GetCallbackMask', + 'GUICtrlListView_GetColumn','GUICtrlListView_GetColumnCount', + 'GUICtrlListView_GetColumnOrder', + 'GUICtrlListView_GetColumnOrderArray', + 'GUICtrlListView_GetColumnWidth','GUICtrlListView_GetCounterPage', + 'GUICtrlListView_GetEditControl', + 'GUICtrlListView_GetExtendedListViewStyle', + 'GUICtrlListView_GetGroupInfo', + 'GUICtrlListView_GetGroupViewEnabled','GUICtrlListView_GetHeader', + 'GUICtrlListView_GetHotCursor','GUICtrlListView_GetHotItem', + 'GUICtrlListView_GetHoverTime','GUICtrlListView_GetImageList', + 'GUICtrlListView_GetISearchString','GUICtrlListView_GetItem', + 'GUICtrlListView_GetItemChecked','GUICtrlListView_GetItemCount', + 'GUICtrlListView_GetItemCut','GUICtrlListView_GetItemDropHilited', + 'GUICtrlListView_GetItemEx','GUICtrlListView_GetItemFocused', + 'GUICtrlListView_GetItemGroupID','GUICtrlListView_GetItemImage', + 'GUICtrlListView_GetItemIndent','GUICtrlListView_GetItemParam', + 'GUICtrlListView_GetItemPosition', + 'GUICtrlListView_GetItemPositionX', + 'GUICtrlListView_GetItemPositionY','GUICtrlListView_GetItemRect', + 'GUICtrlListView_GetItemRectEx','GUICtrlListView_GetItemSelected', + 'GUICtrlListView_GetItemSpacing','GUICtrlListView_GetItemSpacingX', + 'GUICtrlListView_GetItemSpacingY','GUICtrlListView_GetItemState', + 'GUICtrlListView_GetItemStateImage','GUICtrlListView_GetItemText', + 'GUICtrlListView_GetItemTextArray', + 'GUICtrlListView_GetItemTextString','GUICtrlListView_GetNextItem', + 'GUICtrlListView_GetNumberOfWorkAreas','GUICtrlListView_GetOrigin', + 'GUICtrlListView_GetOriginX','GUICtrlListView_GetOriginY', + 'GUICtrlListView_GetOutlineColor', + 'GUICtrlListView_GetSelectedColumn', + 'GUICtrlListView_GetSelectedCount', + 'GUICtrlListView_GetSelectedIndices', + 'GUICtrlListView_GetSelectionMark','GUICtrlListView_GetStringWidth', + 'GUICtrlListView_GetSubItemRect','GUICtrlListView_GetTextBkColor', + 'GUICtrlListView_GetTextColor','GUICtrlListView_GetToolTips', + 'GUICtrlListView_GetTopIndex','GUICtrlListView_GetUnicodeFormat', + 'GUICtrlListView_GetView','GUICtrlListView_GetViewDetails', + 'GUICtrlListView_GetViewLarge','GUICtrlListView_GetViewList', + 'GUICtrlListView_GetViewRect','GUICtrlListView_GetViewSmall', + 'GUICtrlListView_GetViewTile','GUICtrlListView_HideColumn', + 'GUICtrlListView_HitTest','GUICtrlListView_InsertColumn', + 'GUICtrlListView_InsertGroup','GUICtrlListView_InsertItem', + 'GUICtrlListView_JustifyColumn','GUICtrlListView_MapIDToIndex', + 'GUICtrlListView_MapIndexToID','GUICtrlListView_RedrawItems', + 'GUICtrlListView_RegisterSortCallBack', + 'GUICtrlListView_RemoveAllGroups','GUICtrlListView_RemoveGroup', + 'GUICtrlListView_Scroll','GUICtrlListView_SetBkColor', + 'GUICtrlListView_SetBkImage','GUICtrlListView_SetCallBackMask', + 'GUICtrlListView_SetColumn','GUICtrlListView_SetColumnOrder', + 'GUICtrlListView_SetColumnOrderArray', + 'GUICtrlListView_SetColumnWidth', + 'GUICtrlListView_SetExtendedListViewStyle', + 'GUICtrlListView_SetGroupInfo','GUICtrlListView_SetHotItem', + 'GUICtrlListView_SetHoverTime','GUICtrlListView_SetIconSpacing', + 'GUICtrlListView_SetImageList','GUICtrlListView_SetItem', + 'GUICtrlListView_SetItemChecked','GUICtrlListView_SetItemCount', + 'GUICtrlListView_SetItemCut','GUICtrlListView_SetItemDropHilited', + 'GUICtrlListView_SetItemEx','GUICtrlListView_SetItemFocused', + 'GUICtrlListView_SetItemGroupID','GUICtrlListView_SetItemImage', + 'GUICtrlListView_SetItemIndent','GUICtrlListView_SetItemParam', + 'GUICtrlListView_SetItemPosition', + 'GUICtrlListView_SetItemPosition32', + 'GUICtrlListView_SetItemSelected','GUICtrlListView_SetItemState', + 'GUICtrlListView_SetItemStateImage','GUICtrlListView_SetItemText', + 'GUICtrlListView_SetOutlineColor', + 'GUICtrlListView_SetSelectedColumn', + 'GUICtrlListView_SetSelectionMark','GUICtrlListView_SetTextBkColor', + 'GUICtrlListView_SetTextColor','GUICtrlListView_SetToolTips', + 'GUICtrlListView_SetUnicodeFormat','GUICtrlListView_SetView', + 'GUICtrlListView_SetWorkAreas','GUICtrlListView_SimpleSort', + 'GUICtrlListView_SortItems','GUICtrlListView_SubItemHitTest', + 'GUICtrlListView_UnRegisterSortCallBack', + 'GUICtrlMenu_AddMenuItem','GUICtrlMenu_AppendMenu', + 'GUICtrlMenu_CheckMenuItem','GUICtrlMenu_CheckRadioItem', + 'GUICtrlMenu_CreateMenu','GUICtrlMenu_CreatePopup', + 'GUICtrlMenu_DeleteMenu','GUICtrlMenu_DestroyMenu', + 'GUICtrlMenu_DrawMenuBar','GUICtrlMenu_EnableMenuItem', + 'GUICtrlMenu_FindItem','GUICtrlMenu_FindParent', + 'GUICtrlMenu_GetItemBmp','GUICtrlMenu_GetItemBmpChecked', + 'GUICtrlMenu_GetItemBmpUnchecked','GUICtrlMenu_GetItemChecked', + 'GUICtrlMenu_GetItemCount','GUICtrlMenu_GetItemData', + 'GUICtrlMenu_GetItemDefault','GUICtrlMenu_GetItemDisabled', + 'GUICtrlMenu_GetItemEnabled','GUICtrlMenu_GetItemGrayed', + 'GUICtrlMenu_GetItemHighlighted','GUICtrlMenu_GetItemID', + 'GUICtrlMenu_GetItemInfo','GUICtrlMenu_GetItemRect', + 'GUICtrlMenu_GetItemRectEx','GUICtrlMenu_GetItemState', + 'GUICtrlMenu_GetItemStateEx','GUICtrlMenu_GetItemSubMenu', + 'GUICtrlMenu_GetItemText','GUICtrlMenu_GetItemType', + 'GUICtrlMenu_GetMenu','GUICtrlMenu_GetMenuBackground', + 'GUICtrlMenu_GetMenuBarInfo','GUICtrlMenu_GetMenuContextHelpID', + 'GUICtrlMenu_GetMenuData','GUICtrlMenu_GetMenuDefaultItem', + 'GUICtrlMenu_GetMenuHeight','GUICtrlMenu_GetMenuInfo', + 'GUICtrlMenu_GetMenuStyle','GUICtrlMenu_GetSystemMenu', + 'GUICtrlMenu_InsertMenuItem','GUICtrlMenu_InsertMenuItemEx', + 'GUICtrlMenu_IsMenu','GUICtrlMenu_LoadMenu', + 'GUICtrlMenu_MapAccelerator','GUICtrlMenu_MenuItemFromPoint', + 'GUICtrlMenu_RemoveMenu','GUICtrlMenu_SetItemBitmaps', + 'GUICtrlMenu_SetItemBmp','GUICtrlMenu_SetItemBmpChecked', + 'GUICtrlMenu_SetItemBmpUnchecked','GUICtrlMenu_SetItemChecked', + 'GUICtrlMenu_SetItemData','GUICtrlMenu_SetItemDefault', + 'GUICtrlMenu_SetItemDisabled','GUICtrlMenu_SetItemEnabled', + 'GUICtrlMenu_SetItemGrayed','GUICtrlMenu_SetItemHighlighted', + 'GUICtrlMenu_SetItemID','GUICtrlMenu_SetItemInfo', + 'GUICtrlMenu_SetItemState','GUICtrlMenu_SetItemSubMenu', + 'GUICtrlMenu_SetItemText','GUICtrlMenu_SetItemType', + 'GUICtrlMenu_SetMenu','GUICtrlMenu_SetMenuBackground', + 'GUICtrlMenu_SetMenuContextHelpID','GUICtrlMenu_SetMenuData', + 'GUICtrlMenu_SetMenuDefaultItem','GUICtrlMenu_SetMenuHeight', + 'GUICtrlMenu_SetMenuInfo','GUICtrlMenu_SetMenuStyle', + 'GUICtrlMenu_TrackPopupMenu','GUICtrlMonthCal_Create', + 'GUICtrlMonthCal_Destroy','GUICtrlMonthCal_GetColor', + 'GUICtrlMonthCal_GetColorArray','GUICtrlMonthCal_GetCurSel', + 'GUICtrlMonthCal_GetCurSelStr','GUICtrlMonthCal_GetFirstDOW', + 'GUICtrlMonthCal_GetFirstDOWStr','GUICtrlMonthCal_GetMaxSelCount', + 'GUICtrlMonthCal_GetMaxTodayWidth', + 'GUICtrlMonthCal_GetMinReqHeight','GUICtrlMonthCal_GetMinReqRect', + 'GUICtrlMonthCal_GetMinReqRectArray', + 'GUICtrlMonthCal_GetMinReqWidth','GUICtrlMonthCal_GetMonthDelta', + 'GUICtrlMonthCal_GetMonthRange','GUICtrlMonthCal_GetMonthRangeMax', + 'GUICtrlMonthCal_GetMonthRangeMaxStr', + 'GUICtrlMonthCal_GetMonthRangeMin', + 'GUICtrlMonthCal_GetMonthRangeMinStr', + 'GUICtrlMonthCal_GetMonthRangeSpan','GUICtrlMonthCal_GetRange', + 'GUICtrlMonthCal_GetRangeMax','GUICtrlMonthCal_GetRangeMaxStr', + 'GUICtrlMonthCal_GetRangeMin','GUICtrlMonthCal_GetRangeMinStr', + 'GUICtrlMonthCal_GetSelRange','GUICtrlMonthCal_GetSelRangeMax', + 'GUICtrlMonthCal_GetSelRangeMaxStr', + 'GUICtrlMonthCal_GetSelRangeMin', + 'GUICtrlMonthCal_GetSelRangeMinStr','GUICtrlMonthCal_GetToday', + 'GUICtrlMonthCal_GetTodayStr','GUICtrlMonthCal_GetUnicodeFormat', + 'GUICtrlMonthCal_HitTest','GUICtrlMonthCal_SetColor', + 'GUICtrlMonthCal_SetCurSel','GUICtrlMonthCal_SetDayState', + 'GUICtrlMonthCal_SetFirstDOW','GUICtrlMonthCal_SetMaxSelCount', + 'GUICtrlMonthCal_SetMonthDelta','GUICtrlMonthCal_SetRange', + 'GUICtrlMonthCal_SetSelRange','GUICtrlMonthCal_SetToday', + 'GUICtrlMonthCal_SetUnicodeFormat','GUICtrlRebar_AddBand', + 'GUICtrlRebar_AddToolBarBand','GUICtrlRebar_BeginDrag', + 'GUICtrlRebar_Create','GUICtrlRebar_DeleteBand', + 'GUICtrlRebar_Destroy','GUICtrlRebar_DragMove', + 'GUICtrlRebar_EndDrag','GUICtrlRebar_GetBandBackColor', + 'GUICtrlRebar_GetBandBorders','GUICtrlRebar_GetBandBordersEx', + 'GUICtrlRebar_GetBandChildHandle','GUICtrlRebar_GetBandChildSize', + 'GUICtrlRebar_GetBandCount','GUICtrlRebar_GetBandForeColor', + 'GUICtrlRebar_GetBandHeaderSize','GUICtrlRebar_GetBandID', + 'GUICtrlRebar_GetBandIdealSize','GUICtrlRebar_GetBandLength', + 'GUICtrlRebar_GetBandLParam','GUICtrlRebar_GetBandMargins', + 'GUICtrlRebar_GetBandMarginsEx','GUICtrlRebar_GetBandRect', + 'GUICtrlRebar_GetBandRectEx','GUICtrlRebar_GetBandStyle', + 'GUICtrlRebar_GetBandStyleBreak', + 'GUICtrlRebar_GetBandStyleChildEdge', + 'GUICtrlRebar_GetBandStyleFixedBMP', + 'GUICtrlRebar_GetBandStyleFixedSize', + 'GUICtrlRebar_GetBandStyleGripperAlways', + 'GUICtrlRebar_GetBandStyleHidden', + 'GUICtrlRebar_GetBandStyleHideTitle', + 'GUICtrlRebar_GetBandStyleNoGripper', + 'GUICtrlRebar_GetBandStyleTopAlign', + 'GUICtrlRebar_GetBandStyleUseChevron', + 'GUICtrlRebar_GetBandStyleVariableHeight', + 'GUICtrlRebar_GetBandText','GUICtrlRebar_GetBarHeight', + 'GUICtrlRebar_GetBKColor','GUICtrlRebar_GetColorScheme', + 'GUICtrlRebar_GetRowCount','GUICtrlRebar_GetRowHeight', + 'GUICtrlRebar_GetTextColor','GUICtrlRebar_GetToolTips', + 'GUICtrlRebar_GetUnicodeFormat','GUICtrlRebar_HitTest', + 'GUICtrlRebar_IDToIndex','GUICtrlRebar_MaximizeBand', + 'GUICtrlRebar_MinimizeBand','GUICtrlRebar_MoveBand', + 'GUICtrlRebar_SetBandBackColor','GUICtrlRebar_SetBandForeColor', + 'GUICtrlRebar_SetBandHeaderSize','GUICtrlRebar_SetBandID', + 'GUICtrlRebar_SetBandIdealSize','GUICtrlRebar_SetBandLength', + 'GUICtrlRebar_SetBandLParam','GUICtrlRebar_SetBandStyle', + 'GUICtrlRebar_SetBandStyleBreak', + 'GUICtrlRebar_SetBandStyleChildEdge', + 'GUICtrlRebar_SetBandStyleFixedBMP', + 'GUICtrlRebar_SetBandStyleFixedSize', + 'GUICtrlRebar_SetBandStyleGripperAlways', + 'GUICtrlRebar_SetBandStyleHidden', + 'GUICtrlRebar_SetBandStyleHideTitle', + 'GUICtrlRebar_SetBandStyleNoGripper', + 'GUICtrlRebar_SetBandStyleTopAlign', + 'GUICtrlRebar_SetBandStyleUseChevron', + 'GUICtrlRebar_SetBandStyleVariableHeight', + 'GUICtrlRebar_SetBandText','GUICtrlRebar_SetBKColor', + 'GUICtrlRebar_SetColorScheme','GUICtrlRebar_SetTextColor', + 'GUICtrlRebar_SetToolTips','GUICtrlRebar_SetUnicodeFormat', + 'GUICtrlRebar_ShowBand','GUICtrlSlider_ClearSel', + 'GUICtrlSlider_ClearTics','GUICtrlSlider_Create', + 'GUICtrlSlider_Destroy','GUICtrlSlider_GetBuddy', + 'GUICtrlSlider_GetChannelRect','GUICtrlSlider_GetLineSize', + 'GUICtrlSlider_GetNumTics','GUICtrlSlider_GetPageSize', + 'GUICtrlSlider_GetPos','GUICtrlSlider_GetPTics', + 'GUICtrlSlider_GetRange','GUICtrlSlider_GetRangeMax', + 'GUICtrlSlider_GetRangeMin','GUICtrlSlider_GetSel', + 'GUICtrlSlider_GetSelEnd','GUICtrlSlider_GetSelStart', + 'GUICtrlSlider_GetThumbLength','GUICtrlSlider_GetThumbRect', + 'GUICtrlSlider_GetThumbRectEx','GUICtrlSlider_GetTic', + 'GUICtrlSlider_GetTicPos','GUICtrlSlider_GetToolTips', + 'GUICtrlSlider_GetUnicodeFormat','GUICtrlSlider_SetBuddy', + 'GUICtrlSlider_SetLineSize','GUICtrlSlider_SetPageSize', + 'GUICtrlSlider_SetPos','GUICtrlSlider_SetRange', + 'GUICtrlSlider_SetRangeMax','GUICtrlSlider_SetRangeMin', + 'GUICtrlSlider_SetSel','GUICtrlSlider_SetSelEnd', + 'GUICtrlSlider_SetSelStart','GUICtrlSlider_SetThumbLength', + 'GUICtrlSlider_SetTic','GUICtrlSlider_SetTicFreq', + 'GUICtrlSlider_SetTipSide','GUICtrlSlider_SetToolTips', + 'GUICtrlSlider_SetUnicodeFormat','GUICtrlStatusBar_Create', + 'GUICtrlStatusBar_Destroy','GUICtrlStatusBar_EmbedControl', + 'GUICtrlStatusBar_GetBorders','GUICtrlStatusBar_GetBordersHorz', + 'GUICtrlStatusBar_GetBordersRect','GUICtrlStatusBar_GetBordersVert', + 'GUICtrlStatusBar_GetCount','GUICtrlStatusBar_GetHeight', + 'GUICtrlStatusBar_GetIcon','GUICtrlStatusBar_GetParts', + 'GUICtrlStatusBar_GetRect','GUICtrlStatusBar_GetRectEx', + 'GUICtrlStatusBar_GetText','GUICtrlStatusBar_GetTextFlags', + 'GUICtrlStatusBar_GetTextLength','GUICtrlStatusBar_GetTextLengthEx', + 'GUICtrlStatusBar_GetTipText','GUICtrlStatusBar_GetUnicodeFormat', + 'GUICtrlStatusBar_GetWidth','GUICtrlStatusBar_IsSimple', + 'GUICtrlStatusBar_Resize','GUICtrlStatusBar_SetBkColor', + 'GUICtrlStatusBar_SetIcon','GUICtrlStatusBar_SetMinHeight', + 'GUICtrlStatusBar_SetParts','GUICtrlStatusBar_SetSimple', + 'GUICtrlStatusBar_SetText','GUICtrlStatusBar_SetTipText', + 'GUICtrlStatusBar_SetUnicodeFormat','GUICtrlStatusBar_ShowHide', + 'GUICtrlTab_Create','GUICtrlTab_DeleteAllItems', + 'GUICtrlTab_DeleteItem','GUICtrlTab_DeselectAll', + 'GUICtrlTab_Destroy','GUICtrlTab_FindTab','GUICtrlTab_GetCurFocus', + 'GUICtrlTab_GetCurSel','GUICtrlTab_GetDisplayRect', + 'GUICtrlTab_GetDisplayRectEx','GUICtrlTab_GetExtendedStyle', + 'GUICtrlTab_GetImageList','GUICtrlTab_GetItem', + 'GUICtrlTab_GetItemCount','GUICtrlTab_GetItemImage', + 'GUICtrlTab_GetItemParam','GUICtrlTab_GetItemRect', + 'GUICtrlTab_GetItemRectEx','GUICtrlTab_GetItemState', + 'GUICtrlTab_GetItemText','GUICtrlTab_GetRowCount', + 'GUICtrlTab_GetToolTips','GUICtrlTab_GetUnicodeFormat', + 'GUICtrlTab_HighlightItem','GUICtrlTab_HitTest', + 'GUICtrlTab_InsertItem','GUICtrlTab_RemoveImage', + 'GUICtrlTab_SetCurFocus','GUICtrlTab_SetCurSel', + 'GUICtrlTab_SetExtendedStyle','GUICtrlTab_SetImageList', + 'GUICtrlTab_SetItem','GUICtrlTab_SetItemImage', + 'GUICtrlTab_SetItemParam','GUICtrlTab_SetItemSize', + 'GUICtrlTab_SetItemState','GUICtrlTab_SetItemText', + 'GUICtrlTab_SetMinTabWidth','GUICtrlTab_SetPadding', + 'GUICtrlTab_SetToolTips','GUICtrlTab_SetUnicodeFormat', + 'GUICtrlToolbar_AddBitmap','GUICtrlToolbar_AddButton', + 'GUICtrlToolbar_AddButtonSep','GUICtrlToolbar_AddString', + 'GUICtrlToolbar_ButtonCount','GUICtrlToolbar_CheckButton', + 'GUICtrlToolbar_ClickAccel','GUICtrlToolbar_ClickButton', + 'GUICtrlToolbar_ClickIndex','GUICtrlToolbar_CommandToIndex', + 'GUICtrlToolbar_Create','GUICtrlToolbar_Customize', + 'GUICtrlToolbar_DeleteButton','GUICtrlToolbar_Destroy', + 'GUICtrlToolbar_EnableButton','GUICtrlToolbar_FindToolbar', + 'GUICtrlToolbar_GetAnchorHighlight','GUICtrlToolbar_GetBitmapFlags', + 'GUICtrlToolbar_GetButtonBitmap','GUICtrlToolbar_GetButtonInfo', + 'GUICtrlToolbar_GetButtonInfoEx','GUICtrlToolbar_GetButtonParam', + 'GUICtrlToolbar_GetButtonRect','GUICtrlToolbar_GetButtonRectEx', + 'GUICtrlToolbar_GetButtonSize','GUICtrlToolbar_GetButtonState', + 'GUICtrlToolbar_GetButtonStyle','GUICtrlToolbar_GetButtonText', + 'GUICtrlToolbar_GetColorScheme', + 'GUICtrlToolbar_GetDisabledImageList', + 'GUICtrlToolbar_GetExtendedStyle','GUICtrlToolbar_GetHotImageList', + 'GUICtrlToolbar_GetHotItem','GUICtrlToolbar_GetImageList', + 'GUICtrlToolbar_GetInsertMark','GUICtrlToolbar_GetInsertMarkColor', + 'GUICtrlToolbar_GetMaxSize','GUICtrlToolbar_GetMetrics', + 'GUICtrlToolbar_GetPadding','GUICtrlToolbar_GetRows', + 'GUICtrlToolbar_GetString','GUICtrlToolbar_GetStyle', + 'GUICtrlToolbar_GetStyleAltDrag', + 'GUICtrlToolbar_GetStyleCustomErase','GUICtrlToolbar_GetStyleFlat', + 'GUICtrlToolbar_GetStyleList','GUICtrlToolbar_GetStyleRegisterDrop', + 'GUICtrlToolbar_GetStyleToolTips', + 'GUICtrlToolbar_GetStyleTransparent', + 'GUICtrlToolbar_GetStyleWrapable','GUICtrlToolbar_GetTextRows', + 'GUICtrlToolbar_GetToolTips','GUICtrlToolbar_GetUnicodeFormat', + 'GUICtrlToolbar_HideButton','GUICtrlToolbar_HighlightButton', + 'GUICtrlToolbar_HitTest','GUICtrlToolbar_IndexToCommand', + 'GUICtrlToolbar_InsertButton','GUICtrlToolbar_InsertMarkHitTest', + 'GUICtrlToolbar_IsButtonChecked','GUICtrlToolbar_IsButtonEnabled', + 'GUICtrlToolbar_IsButtonHidden', + 'GUICtrlToolbar_IsButtonHighlighted', + 'GUICtrlToolbar_IsButtonIndeterminate', + 'GUICtrlToolbar_IsButtonPressed','GUICtrlToolbar_LoadBitmap', + 'GUICtrlToolbar_LoadImages','GUICtrlToolbar_MapAccelerator', + 'GUICtrlToolbar_MoveButton','GUICtrlToolbar_PressButton', + 'GUICtrlToolbar_SetAnchorHighlight','GUICtrlToolbar_SetBitmapSize', + 'GUICtrlToolbar_SetButtonBitMap','GUICtrlToolbar_SetButtonInfo', + 'GUICtrlToolbar_SetButtonInfoEx','GUICtrlToolbar_SetButtonParam', + 'GUICtrlToolbar_SetButtonSize','GUICtrlToolbar_SetButtonState', + 'GUICtrlToolbar_SetButtonStyle','GUICtrlToolbar_SetButtonText', + 'GUICtrlToolbar_SetButtonWidth','GUICtrlToolbar_SetCmdID', + 'GUICtrlToolbar_SetColorScheme', + 'GUICtrlToolbar_SetDisabledImageList', + 'GUICtrlToolbar_SetDrawTextFlags','GUICtrlToolbar_SetExtendedStyle', + 'GUICtrlToolbar_SetHotImageList','GUICtrlToolbar_SetHotItem', + 'GUICtrlToolbar_SetImageList','GUICtrlToolbar_SetIndent', + 'GUICtrlToolbar_SetIndeterminate','GUICtrlToolbar_SetInsertMark', + 'GUICtrlToolbar_SetInsertMarkColor','GUICtrlToolbar_SetMaxTextRows', + 'GUICtrlToolbar_SetMetrics','GUICtrlToolbar_SetPadding', + 'GUICtrlToolbar_SetParent','GUICtrlToolbar_SetRows', + 'GUICtrlToolbar_SetStyle','GUICtrlToolbar_SetStyleAltDrag', + 'GUICtrlToolbar_SetStyleCustomErase','GUICtrlToolbar_SetStyleFlat', + 'GUICtrlToolbar_SetStyleList','GUICtrlToolbar_SetStyleRegisterDrop', + 'GUICtrlToolbar_SetStyleToolTips', + 'GUICtrlToolbar_SetStyleTransparent', + 'GUICtrlToolbar_SetStyleWrapable','GUICtrlToolbar_SetToolTips', + 'GUICtrlToolbar_SetUnicodeFormat','GUICtrlToolbar_SetWindowTheme', + 'GUICtrlTreeView_Add','GUICtrlTreeView_AddChild', + 'GUICtrlTreeView_AddChildFirst','GUICtrlTreeView_AddFirst', + 'GUICtrlTreeView_BeginUpdate','GUICtrlTreeView_ClickItem', + 'GUICtrlTreeView_Create','GUICtrlTreeView_CreateDragImage', + 'GUICtrlTreeView_CreateSolidBitMap','GUICtrlTreeView_Delete', + 'GUICtrlTreeView_DeleteAll','GUICtrlTreeView_DeleteChildren', + 'GUICtrlTreeView_Destroy','GUICtrlTreeView_DisplayRect', + 'GUICtrlTreeView_DisplayRectEx','GUICtrlTreeView_EditText', + 'GUICtrlTreeView_EndEdit','GUICtrlTreeView_EndUpdate', + 'GUICtrlTreeView_EnsureVisible','GUICtrlTreeView_Expand', + 'GUICtrlTreeView_ExpandedOnce','GUICtrlTreeView_FindItem', + 'GUICtrlTreeView_FindItemEx','GUICtrlTreeView_GetBkColor', + 'GUICtrlTreeView_GetBold','GUICtrlTreeView_GetChecked', + 'GUICtrlTreeView_GetChildCount','GUICtrlTreeView_GetChildren', + 'GUICtrlTreeView_GetCount','GUICtrlTreeView_GetCut', + 'GUICtrlTreeView_GetDropTarget','GUICtrlTreeView_GetEditControl', + 'GUICtrlTreeView_GetExpanded','GUICtrlTreeView_GetFirstChild', + 'GUICtrlTreeView_GetFirstItem','GUICtrlTreeView_GetFirstVisible', + 'GUICtrlTreeView_GetFocused','GUICtrlTreeView_GetHeight', + 'GUICtrlTreeView_GetImageIndex', + 'GUICtrlTreeView_GetImageListIconHandle', + 'GUICtrlTreeView_GetIndent','GUICtrlTreeView_GetInsertMarkColor', + 'GUICtrlTreeView_GetISearchString','GUICtrlTreeView_GetItemByIndex', + 'GUICtrlTreeView_GetItemHandle','GUICtrlTreeView_GetItemParam', + 'GUICtrlTreeView_GetLastChild','GUICtrlTreeView_GetLineColor', + 'GUICtrlTreeView_GetNext','GUICtrlTreeView_GetNextChild', + 'GUICtrlTreeView_GetNextSibling','GUICtrlTreeView_GetNextVisible', + 'GUICtrlTreeView_GetNormalImageList', + 'GUICtrlTreeView_GetParentHandle','GUICtrlTreeView_GetParentParam', + 'GUICtrlTreeView_GetPrev','GUICtrlTreeView_GetPrevChild', + 'GUICtrlTreeView_GetPrevSibling','GUICtrlTreeView_GetPrevVisible', + 'GUICtrlTreeView_GetScrollTime','GUICtrlTreeView_GetSelected', + 'GUICtrlTreeView_GetSelectedImageIndex', + 'GUICtrlTreeView_GetSelection','GUICtrlTreeView_GetSiblingCount', + 'GUICtrlTreeView_GetState','GUICtrlTreeView_GetStateImageIndex', + 'GUICtrlTreeView_GetStateImageList','GUICtrlTreeView_GetText', + 'GUICtrlTreeView_GetTextColor','GUICtrlTreeView_GetToolTips', + 'GUICtrlTreeView_GetTree','GUICtrlTreeView_GetUnicodeFormat', + 'GUICtrlTreeView_GetVisible','GUICtrlTreeView_GetVisibleCount', + 'GUICtrlTreeView_HitTest','GUICtrlTreeView_HitTestEx', + 'GUICtrlTreeView_HitTestItem','GUICtrlTreeView_Index', + 'GUICtrlTreeView_InsertItem','GUICtrlTreeView_IsFirstItem', + 'GUICtrlTreeView_IsParent','GUICtrlTreeView_Level', + 'GUICtrlTreeView_SelectItem','GUICtrlTreeView_SelectItemByIndex', + 'GUICtrlTreeView_SetBkColor','GUICtrlTreeView_SetBold', + 'GUICtrlTreeView_SetChecked','GUICtrlTreeView_SetCheckedByIndex', + 'GUICtrlTreeView_SetChildren','GUICtrlTreeView_SetCut', + 'GUICtrlTreeView_SetDropTarget','GUICtrlTreeView_SetFocused', + 'GUICtrlTreeView_SetHeight','GUICtrlTreeView_SetIcon', + 'GUICtrlTreeView_SetImageIndex','GUICtrlTreeView_SetIndent', + 'GUICtrlTreeView_SetInsertMark', + 'GUICtrlTreeView_SetInsertMarkColor', + 'GUICtrlTreeView_SetItemHeight','GUICtrlTreeView_SetItemParam', + 'GUICtrlTreeView_SetLineColor','GUICtrlTreeView_SetNormalImageList', + 'GUICtrlTreeView_SetScrollTime','GUICtrlTreeView_SetSelected', + 'GUICtrlTreeView_SetSelectedImageIndex','GUICtrlTreeView_SetState', + 'GUICtrlTreeView_SetStateImageIndex', + 'GUICtrlTreeView_SetStateImageList','GUICtrlTreeView_SetText', + 'GUICtrlTreeView_SetTextColor','GUICtrlTreeView_SetToolTips', + 'GUICtrlTreeView_SetUnicodeFormat','GUICtrlTreeView_Sort', + 'GUIImageList_Add','GUIImageList_AddBitmap','GUIImageList_AddIcon', + 'GUIImageList_AddMasked','GUIImageList_BeginDrag', + 'GUIImageList_Copy','GUIImageList_Create','GUIImageList_Destroy', + 'GUIImageList_DestroyIcon','GUIImageList_DragEnter', + 'GUIImageList_DragLeave','GUIImageList_DragMove', + 'GUIImageList_Draw','GUIImageList_DrawEx','GUIImageList_Duplicate', + 'GUIImageList_EndDrag','GUIImageList_GetBkColor', + 'GUIImageList_GetIcon','GUIImageList_GetIconHeight', + 'GUIImageList_GetIconSize','GUIImageList_GetIconSizeEx', + 'GUIImageList_GetIconWidth','GUIImageList_GetImageCount', + 'GUIImageList_GetImageInfoEx','GUIImageList_Remove', + 'GUIImageList_ReplaceIcon','GUIImageList_SetBkColor', + 'GUIImageList_SetIconSize','GUIImageList_SetImageCount', + 'GUIImageList_Swap','GUIScrollBars_EnableScrollBar', + 'GUIScrollBars_GetScrollBarInfoEx','GUIScrollBars_GetScrollBarRect', + 'GUIScrollBars_GetScrollBarRGState', + 'GUIScrollBars_GetScrollBarXYLineButton', + 'GUIScrollBars_GetScrollBarXYThumbBottom', + 'GUIScrollBars_GetScrollBarXYThumbTop', + 'GUIScrollBars_GetScrollInfo','GUIScrollBars_GetScrollInfoEx', + 'GUIScrollBars_GetScrollInfoMax','GUIScrollBars_GetScrollInfoMin', + 'GUIScrollBars_GetScrollInfoPage','GUIScrollBars_GetScrollInfoPos', + 'GUIScrollBars_GetScrollInfoTrackPos','GUIScrollBars_GetScrollPos', + 'GUIScrollBars_GetScrollRange','GUIScrollBars_Init', + 'GUIScrollBars_ScrollWindow','GUIScrollBars_SetScrollInfo', + 'GUIScrollBars_SetScrollInfoMax','GUIScrollBars_SetScrollInfoMin', + 'GUIScrollBars_SetScrollInfoPage','GUIScrollBars_SetScrollInfoPos', + 'GUIScrollBars_SetScrollRange','GUIScrollBars_ShowScrollBar', + 'GUIToolTip_Activate','GUIToolTip_AddTool','GUIToolTip_AdjustRect', + 'GUIToolTip_BitsToTTF','GUIToolTip_Create','GUIToolTip_DelTool', + 'GUIToolTip_Destroy','GUIToolTip_EnumTools', + 'GUIToolTip_GetBubbleHeight','GUIToolTip_GetBubbleSize', + 'GUIToolTip_GetBubbleWidth','GUIToolTip_GetCurrentTool', + 'GUIToolTip_GetDelayTime','GUIToolTip_GetMargin', + 'GUIToolTip_GetMarginEx','GUIToolTip_GetMaxTipWidth', + 'GUIToolTip_GetText','GUIToolTip_GetTipBkColor', + 'GUIToolTip_GetTipTextColor','GUIToolTip_GetTitleBitMap', + 'GUIToolTip_GetTitleText','GUIToolTip_GetToolCount', + 'GUIToolTip_GetToolInfo','GUIToolTip_HitTest', + 'GUIToolTip_NewToolRect','GUIToolTip_Pop','GUIToolTip_PopUp', + 'GUIToolTip_SetDelayTime','GUIToolTip_SetMargin', + 'GUIToolTip_SetMaxTipWidth','GUIToolTip_SetTipBkColor', + 'GUIToolTip_SetTipTextColor','GUIToolTip_SetTitle', + 'GUIToolTip_SetToolInfo','GUIToolTip_SetWindowTheme', + 'GUIToolTip_ToolExists','GUIToolTip_ToolToArray', + 'GUIToolTip_TrackActivate','GUIToolTip_TrackPosition', + 'GUIToolTip_TTFToBits','GUIToolTip_Update', + 'GUIToolTip_UpdateTipText','HexToString','IE_Example', + 'IE_Introduction','IE_VersionInfo','IEAction','IEAttach', + 'IEBodyReadHTML','IEBodyReadText','IEBodyWriteHTML','IECreate', + 'IECreateEmbedded','IEDocGetObj','IEDocInsertHTML', + 'IEDocInsertText','IEDocReadHTML','IEDocWriteHTML', + 'IEErrorHandlerDeRegister','IEErrorHandlerRegister','IEErrorNotify', + 'IEFormElementCheckBoxSelect','IEFormElementGetCollection', + 'IEFormElementGetObjByName','IEFormElementGetValue', + 'IEFormElementOptionSelect','IEFormElementRadioSelect', + 'IEFormElementSetValue','IEFormGetCollection','IEFormGetObjByName', + 'IEFormImageClick','IEFormReset','IEFormSubmit', + 'IEFrameGetCollection','IEFrameGetObjByName','IEGetObjById', + 'IEGetObjByName','IEHeadInsertEventScript','IEImgClick', + 'IEImgGetCollection','IEIsFrameSet','IELinkClickByIndex', + 'IELinkClickByText','IELinkGetCollection','IELoadWait', + 'IELoadWaitTimeout','IENavigate','IEPropertyGet','IEPropertySet', + 'IEQuit','IETableGetCollection','IETableWriteToArray', + 'IETagNameAllGetCollection','IETagNameGetCollection','Iif', + 'INetExplorerCapable','INetGetSource','INetMail','INetSmtpMail', + 'IsPressed','MathCheckDiv','Max','MemGlobalAlloc','MemGlobalFree', + 'MemGlobalLock','MemGlobalSize','MemGlobalUnlock','MemMoveMemory', + 'MemMsgBox','MemShowError','MemVirtualAlloc','MemVirtualAllocEx', + 'MemVirtualFree','MemVirtualFreeEx','Min','MouseTrap', + 'NamedPipes_CallNamedPipe','NamedPipes_ConnectNamedPipe', + 'NamedPipes_CreateNamedPipe','NamedPipes_CreatePipe', + 'NamedPipes_DisconnectNamedPipe', + 'NamedPipes_GetNamedPipeHandleState','NamedPipes_GetNamedPipeInfo', + 'NamedPipes_PeekNamedPipe','NamedPipes_SetNamedPipeHandleState', + 'NamedPipes_TransactNamedPipe','NamedPipes_WaitNamedPipe', + 'Net_Share_ConnectionEnum','Net_Share_FileClose', + 'Net_Share_FileEnum','Net_Share_FileGetInfo','Net_Share_PermStr', + 'Net_Share_ResourceStr','Net_Share_SessionDel', + 'Net_Share_SessionEnum','Net_Share_SessionGetInfo', + 'Net_Share_ShareAdd','Net_Share_ShareCheck','Net_Share_ShareDel', + 'Net_Share_ShareEnum','Net_Share_ShareGetInfo', + 'Net_Share_ShareSetInfo','Net_Share_StatisticsGetSvr', + 'Net_Share_StatisticsGetWrk','Now','NowCalc','NowCalcDate', + 'NowDate','NowTime','PathFull','PathMake','PathSplit', + 'ProcessGetName','ProcessGetPriority','Radian', + 'ReplaceStringInFile','RunDOS','ScreenCapture_Capture', + 'ScreenCapture_CaptureWnd','ScreenCapture_SaveImage', + 'ScreenCapture_SetBMPFormat','ScreenCapture_SetJPGQuality', + 'ScreenCapture_SetTIFColorDepth','ScreenCapture_SetTIFCompression', + 'Security__AdjustTokenPrivileges','Security__GetAccountSid', + 'Security__GetLengthSid','Security__GetTokenInformation', + 'Security__ImpersonateSelf','Security__IsValidSid', + 'Security__LookupAccountName','Security__LookupAccountSid', + 'Security__LookupPrivilegeValue','Security__OpenProcessToken', + 'Security__OpenThreadToken','Security__OpenThreadTokenEx', + 'Security__SetPrivilege','Security__SidToStringSid', + 'Security__SidTypeStr','Security__StringSidToSid','SendMessage', + 'SendMessageA','SetDate','SetTime','Singleton','SoundClose', + 'SoundLength','SoundOpen','SoundPause','SoundPlay','SoundPos', + 'SoundResume','SoundSeek','SoundStatus','SoundStop', + 'SQLite_Changes','SQLite_Close','SQLite_Display2DResult', + 'SQLite_Encode','SQLite_ErrCode','SQLite_ErrMsg','SQLite_Escape', + 'SQLite_Exec','SQLite_FetchData','SQLite_FetchNames', + 'SQLite_GetTable','SQLite_GetTable2d','SQLite_LastInsertRowID', + 'SQLite_LibVersion','SQLite_Open','SQLite_Query', + 'SQLite_QueryFinalize','SQLite_QueryReset','SQLite_QuerySingleRow', + 'SQLite_SaveMode','SQLite_SetTimeout','SQLite_Shutdown', + 'SQLite_SQLiteExe','SQLite_Startup','SQLite_TotalChanges', + 'StringAddComma','StringBetween','StringEncrypt','StringInsert', + 'StringProper','StringRepeat','StringReverse','StringSplit', + 'StringToHex','TCPIpToName','TempFile','TicksToTime','Timer_Diff', + 'Timer_GetTimerID','Timer_Init','Timer_KillAllTimers', + 'Timer_KillTimer','Timer_SetTimer','TimeToTicks','VersionCompare', + 'viClose','viExecCommand','viFindGpib','viGpibBusReset','viGTL', + 'viOpen','viSetAttribute','viSetTimeout','WeekNumberISO', + 'WinAPI_AttachConsole','WinAPI_AttachThreadInput','WinAPI_Beep', + 'WinAPI_BitBlt','WinAPI_CallNextHookEx','WinAPI_Check', + 'WinAPI_ClientToScreen','WinAPI_CloseHandle', + 'WinAPI_CommDlgExtendedError','WinAPI_CopyIcon', + 'WinAPI_CreateBitmap','WinAPI_CreateCompatibleBitmap', + 'WinAPI_CreateCompatibleDC','WinAPI_CreateEvent', + 'WinAPI_CreateFile','WinAPI_CreateFont','WinAPI_CreateFontIndirect', + 'WinAPI_CreateProcess','WinAPI_CreateSolidBitmap', + 'WinAPI_CreateSolidBrush','WinAPI_CreateWindowEx', + 'WinAPI_DefWindowProc','WinAPI_DeleteDC','WinAPI_DeleteObject', + 'WinAPI_DestroyIcon','WinAPI_DestroyWindow','WinAPI_DrawEdge', + 'WinAPI_DrawFrameControl','WinAPI_DrawIcon','WinAPI_DrawIconEx', + 'WinAPI_DrawText','WinAPI_EnableWindow','WinAPI_EnumDisplayDevices', + 'WinAPI_EnumWindows','WinAPI_EnumWindowsPopup', + 'WinAPI_EnumWindowsTop','WinAPI_ExpandEnvironmentStrings', + 'WinAPI_ExtractIconEx','WinAPI_FatalAppExit','WinAPI_FillRect', + 'WinAPI_FindExecutable','WinAPI_FindWindow','WinAPI_FlashWindow', + 'WinAPI_FlashWindowEx','WinAPI_FloatToInt', + 'WinAPI_FlushFileBuffers','WinAPI_FormatMessage','WinAPI_FrameRect', + 'WinAPI_FreeLibrary','WinAPI_GetAncestor','WinAPI_GetAsyncKeyState', + 'WinAPI_GetClassName','WinAPI_GetClientHeight', + 'WinAPI_GetClientRect','WinAPI_GetClientWidth', + 'WinAPI_GetCurrentProcess','WinAPI_GetCurrentProcessID', + 'WinAPI_GetCurrentThread','WinAPI_GetCurrentThreadId', + 'WinAPI_GetCursorInfo','WinAPI_GetDC','WinAPI_GetDesktopWindow', + 'WinAPI_GetDeviceCaps','WinAPI_GetDIBits','WinAPI_GetDlgCtrlID', + 'WinAPI_GetDlgItem','WinAPI_GetFileSizeEx','WinAPI_GetFocus', + 'WinAPI_GetForegroundWindow','WinAPI_GetIconInfo', + 'WinAPI_GetLastError','WinAPI_GetLastErrorMessage', + 'WinAPI_GetModuleHandle','WinAPI_GetMousePos','WinAPI_GetMousePosX', + 'WinAPI_GetMousePosY','WinAPI_GetObject','WinAPI_GetOpenFileName', + 'WinAPI_GetOverlappedResult','WinAPI_GetParent', + 'WinAPI_GetProcessAffinityMask','WinAPI_GetSaveFileName', + 'WinAPI_GetStdHandle','WinAPI_GetStockObject','WinAPI_GetSysColor', + 'WinAPI_GetSysColorBrush','WinAPI_GetSystemMetrics', + 'WinAPI_GetTextExtentPoint32','WinAPI_GetWindow', + 'WinAPI_GetWindowDC','WinAPI_GetWindowHeight', + 'WinAPI_GetWindowLong','WinAPI_GetWindowRect', + 'WinAPI_GetWindowText','WinAPI_GetWindowThreadProcessId', + 'WinAPI_GetWindowWidth','WinAPI_GetXYFromPoint', + 'WinAPI_GlobalMemStatus','WinAPI_GUIDFromString', + 'WinAPI_GUIDFromStringEx','WinAPI_HiWord','WinAPI_InProcess', + 'WinAPI_IntToFloat','WinAPI_InvalidateRect','WinAPI_IsClassName', + 'WinAPI_IsWindow','WinAPI_IsWindowVisible','WinAPI_LoadBitmap', + 'WinAPI_LoadImage','WinAPI_LoadLibrary','WinAPI_LoadLibraryEx', + 'WinAPI_LoadShell32Icon','WinAPI_LoadString','WinAPI_LocalFree', + 'WinAPI_LoWord','WinAPI_MakeDWord','WinAPI_MAKELANGID', + 'WinAPI_MAKELCID','WinAPI_MakeLong','WinAPI_MessageBeep', + 'WinAPI_Mouse_Event','WinAPI_MoveWindow','WinAPI_MsgBox', + 'WinAPI_MulDiv','WinAPI_MultiByteToWideChar', + 'WinAPI_MultiByteToWideCharEx','WinAPI_OpenProcess', + 'WinAPI_PointFromRect','WinAPI_PostMessage','WinAPI_PrimaryLangId', + 'WinAPI_PtInRect','WinAPI_ReadFile','WinAPI_ReadProcessMemory', + 'WinAPI_RectIsEmpty','WinAPI_RedrawWindow', + 'WinAPI_RegisterWindowMessage','WinAPI_ReleaseCapture', + 'WinAPI_ReleaseDC','WinAPI_ScreenToClient','WinAPI_SelectObject', + 'WinAPI_SetBkColor','WinAPI_SetCapture','WinAPI_SetCursor', + 'WinAPI_SetDefaultPrinter','WinAPI_SetDIBits','WinAPI_SetEvent', + 'WinAPI_SetFocus','WinAPI_SetFont','WinAPI_SetHandleInformation', + 'WinAPI_SetLastError','WinAPI_SetParent', + 'WinAPI_SetProcessAffinityMask','WinAPI_SetSysColors', + 'WinAPI_SetTextColor','WinAPI_SetWindowLong','WinAPI_SetWindowPos', + 'WinAPI_SetWindowsHookEx','WinAPI_SetWindowText', + 'WinAPI_ShowCursor','WinAPI_ShowError','WinAPI_ShowMsg', + 'WinAPI_ShowWindow','WinAPI_StringFromGUID','WinAPI_SubLangId', + 'WinAPI_SystemParametersInfo','WinAPI_TwipsPerPixelX', + 'WinAPI_TwipsPerPixelY','WinAPI_UnhookWindowsHookEx', + 'WinAPI_UpdateLayeredWindow','WinAPI_UpdateWindow', + 'WinAPI_ValidateClassName','WinAPI_WaitForInputIdle', + 'WinAPI_WaitForMultipleObjects','WinAPI_WaitForSingleObject', + 'WinAPI_WideCharToMultiByte','WinAPI_WindowFromPoint', + 'WinAPI_WriteConsole','WinAPI_WriteFile', + 'WinAPI_WriteProcessMemory','WinNet_AddConnection', + 'WinNet_AddConnection2','WinNet_AddConnection3', + 'WinNet_CancelConnection','WinNet_CancelConnection2', + 'WinNet_CloseEnum','WinNet_ConnectionDialog', + 'WinNet_ConnectionDialog1','WinNet_DisconnectDialog', + 'WinNet_DisconnectDialog1','WinNet_EnumResource', + 'WinNet_GetConnection','WinNet_GetConnectionPerformance', + 'WinNet_GetLastError','WinNet_GetNetworkInformation', + 'WinNet_GetProviderName','WinNet_GetResourceInformation', + 'WinNet_GetResourceParent','WinNet_GetUniversalName', + 'WinNet_GetUser','WinNet_OpenEnum','WinNet_RestoreConnection', + 'WinNet_UseConnection','Word_VersionInfo','WordAttach','WordCreate', + 'WordDocAdd','WordDocAddLink','WordDocAddPicture','WordDocClose', + 'WordDocFindReplace','WordDocGetCollection', + 'WordDocLinkGetCollection','WordDocOpen','WordDocPrint', + 'WordDocPropertyGet','WordDocPropertySet','WordDocSave', + 'WordDocSaveAs','WordErrorHandlerDeRegister', + 'WordErrorHandlerRegister','WordErrorNotify','WordMacroRun', + 'WordPropertyGet','WordPropertySet','WordQuit' + ), + 5 => array( + 'ce','comments-end','comments-start','cs','include','include-once', + 'NoTrayIcon','RequireAdmin' + ), + 6 => array( + 'AutoIt3Wrapper_Au3Check_Parameters', + 'AutoIt3Wrapper_Au3Check_Stop_OnWarning', + 'AutoIt3Wrapper_Change2CUI','AutoIt3Wrapper_Compression', + 'AutoIt3Wrapper_cvsWrapper_Parameters','AutoIt3Wrapper_Icon', + 'AutoIt3Wrapper_Outfile','AutoIt3Wrapper_Outfile_Type', + 'AutoIt3Wrapper_Plugin_Funcs','AutoIt3Wrapper_Res_Comment', + 'AutoIt3Wrapper_Res_Description','AutoIt3Wrapper_Res_Field', + 'AutoIt3Wrapper_Res_File_Add','AutoIt3Wrapper_Res_Fileversion', + 'AutoIt3Wrapper_Res_FileVersion_AutoIncrement', + 'AutoIt3Wrapper_Res_Icon_Add','AutoIt3Wrapper_Res_Language', + 'AutoIt3Wrapper_Res_LegalCopyright', + 'AutoIt3Wrapper_res_requestedExecutionLevel', + 'AutoIt3Wrapper_Res_SaveSource','AutoIt3Wrapper_Run_After', + 'AutoIt3Wrapper_Run_Au3check','AutoIt3Wrapper_Run_Before', + 'AutoIt3Wrapper_Run_cvsWrapper','AutoIt3Wrapper_Run_Debug_Mode', + 'AutoIt3Wrapper_Run_Obfuscator','AutoIt3Wrapper_Run_Tidy', + 'AutoIt3Wrapper_Tidy_Stop_OnError','AutoIt3Wrapper_UseAnsi', + 'AutoIt3Wrapper_UseUpx','AutoIt3Wrapper_UseX64', + 'AutoIt3Wrapper_Version','EndRegion','forceref', + 'Obfuscator_Ignore_Funcs','Obfuscator_Ignore_Variables', + 'Obfuscator_Parameters','Region','Tidy_Parameters' + ) + ), + 'SYMBOLS' => array( + '(',')','[',']', + '+','-','*','/','&','^', + '=','+=','-=','*=','/=','&=', + '==','<','<=','>','>=', + ',','.' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #0000FF; font-weight: bold;', + 2 => 'color: #800000; font-weight: bold;', + 3 => 'color: #000080; font-style: italic; font-weight: bold;', + 4 => 'color: #0080FF; font-style: italic; font-weight: bold;', + 5 => 'color: #F000FF; font-style: italic;', + 6 => 'color: #A00FF0; font-style: italic;' + ), + 'COMMENTS' => array( + 'MULTI' => 'font-style: italic; color: #669900;', + 0 => 'font-style: italic; color: #009933;', + 1 => 'font-style: italic; color: #9977BB;', + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => 'color: #FF0000; font-weight: bold;' + ), + 'STRINGS' => array( + 0 => 'font-weight: bold; color: #9977BB;' + ), + 'NUMBERS' => array( + 0 => 'color: #AC00A9; font-style: italic; font-weight: bold;' + ), + 'METHODS' => array( + 1 => 'color: #0000FF; font-style: italic; font-weight: bold;' + ), + 'SYMBOLS' => array( + 0 => 'color: #FF0000; font-weight: bold;' + ), + 'REGEXPS' => array( + 0 => 'font-weight: bold; color: #AA0000;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => 'http://www.autoitscript.com/autoit3/docs/keywords.htm', + 2 => 'http://www.autoitscript.com/autoit3/docs/macros.htm', + 3 => 'http://www.autoitscript.com/autoit3/docs/functions/{FNAME}.htm', + 4 => '', + 5 => '', + 6 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'REGEXPS' => array( + //Variables + 0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*' + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => true, + 1 => true, + 2 => true, + 3 => true + ), + 'PARSER_CONTROL' => array( + 'KEYWORDS' => array( + 4 => array( + 'DISALLOWED_BEFORE' => '(? array( + 'DISALLOWED_BEFORE' => '(? array( + 'DISALLOWED_BEFORE' => '(? \ No newline at end of file diff --git a/Sources/geshi/avisynth.php b/Sources/geshi/avisynth.php new file mode 100644 index 0000000..88f6628 --- /dev/null +++ b/Sources/geshi/avisynth.php @@ -0,0 +1,194 @@ + 'AviSynth', + 'COMMENT_SINGLE' => array(1 => '#'), + 'COMMENT_MULTI' => array('/*' => '*/', '[*' => '*]'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + // Reserved words. + 1 => array( + 'try', 'cache', 'function', 'global', 'return' + ), + // Constants / special variables. + 2 => array( + 'true', 'yes', 'false', 'no', '__END__' + ), + // Internal Filters. + 3 => array( + 'AviSource', 'AviFileSource', 'AddBorders', 'AlignedSplice', 'AssumeFPS', 'AssumeScaledFPS', + 'AssumeFrameBased', 'AssumeFieldBased', 'AssumeBFF', 'AssumeTFF', 'Amplify', 'AmplifydB', + 'AssumeSampleRate', 'AudioDub', 'AudioDubEx', 'Animate', 'ApplyRange', + 'BicubicResize', 'BilinearResize', 'BlackmanResize', 'Blur', 'Bob', 'BlankClip', 'Blackness', + 'ColorYUV', 'ConvertBackToYUY2', 'ConvertToRGB', 'ConvertToRGB24', 'ConvertToRGB32', + 'ConvertToYUY2', 'ConvertToY8', 'ConvertToYV411', 'ConvertToYV12', 'ConvertToYV16', 'ConvertToYV24', + 'ColorKeyMask', 'Crop', 'CropBottom', 'ChangeFPS', 'ConvertFPS', 'ComplementParity', 'ConvertAudioTo8bit', + 'ConvertAudioTo16bit', 'ConvertAudioTo24bit', 'ConvertAudioTo32bit', 'ConvertAudioToFloat', 'ConvertToMono', + 'ConditionalFilter', 'ConditionalReader', 'ColorBars', 'Compare', + 'DirectShowSource', 'DeleteFrame', 'Dissolve', 'DuplicateFrame', 'DoubleWeave', 'DelayAudio', + 'EnsureVBRMP3Sync', + 'FixLuminance', 'FlipHorizontal', 'FlipVertical', 'FixBrokenChromaUpsampling', 'FadeIn0', 'FadeIn', + 'FadeIn2', 'FadeOut0', 'FadeOut', 'FadeOut2', 'FadeIO0', 'FadeIO', 'FadeIO2', 'FreezeFrame', 'FrameEvaluate', + 'GreyScale', 'GaussResize', 'GeneralConvolution', 'GetChannel', 'GetLeftChannel', 'GetRightChannel', + 'HorizontalReduceBy2', 'Histogram', + 'ImageReader', 'ImageSource', 'ImageWriter', 'Invert', 'Interleave', 'Info', + 'KillAudio', 'KillVideo', + 'Levels', 'Limiter', 'Layer', 'Letterbox', 'LanczosResize', 'Lanczos4Resize', 'Loop', + 'MergeARGB', 'MergeRGB', 'MergeChroma', 'MergeLuma', 'Merge', 'Mask', 'MaskHS', 'MergeChannels', 'MixAudio', + 'MonoToStereo', 'MessageClip', + 'Normalize', + 'OpenDMLSource', 'Overlay', + 'PointResize', 'PeculiarBlend', 'Pulldown', + 'RGBAdjust', 'ResetMask', 'Reverse', 'ResampleAudio', 'ReduceBy2', + 'SegmentedAviSource', 'SegmentedDirectShowSource', 'SoundOut', 'ShowAlpha', 'ShowRed', 'ShowGreen', + 'ShowBlue', 'SwapUV', 'Subtract', 'SincResize', 'Spline16Resize', 'Spline36Resize', 'Spline64Resize', + 'SelectEven', 'SelectOdd', 'SelectEvery', 'SelectRangeEvery', 'Sharpen', 'SpatialSoften', 'SeparateFields', + 'ShowFiveVersions', 'ShowFrameNumber', 'ShowSMPTE', 'ShowTime', 'StackHorizontal', 'StackVertical', 'Subtitle', + 'SwapFields', 'SuperEQ', 'SSRC', 'ScriptClip', + 'Tweak', 'TurnLeft', 'TurnRight', 'Turn180', 'TemporalSoften', 'TimeStretch', 'TCPServer', 'TCPSource', 'Trim', + 'Tone', + 'UToY', 'UToY8', 'UnalignedSplice', + 'VToY', 'VToY8', 'VerticalReduceBy2', 'Version', + 'WavSource', 'Weave', 'WriteFile', 'WriteFileIf', 'WriteFileStart', 'WriteFileEnd', + 'YToUV' + ), + // Internal functions. + 4 => array( + 'Abs', 'Apply', 'Assert', 'AverageLuma', 'AverageChromaU', 'AverageChromaV', + 'Ceil', 'Cos', 'Chr', 'ChromaUDifference', 'ChromaVDifference', + 'Defined', 'Default', + 'Exp', 'Exist', 'Eval', + 'Floor', 'Frac', 'Float', 'Findstr', 'GetMTMode', + 'HexValue', + 'Int', 'IsBool', 'IsClip', 'IsFloat', 'IsInt', 'IsString', 'Import', + 'LoadPlugin', 'Log', 'LCase', 'LeftStr', 'LumaDifference', 'LoadVirtualDubPlugin', 'LoadVFAPIPlugin', + 'LoadCPlugin', 'Load_Stdcall_Plugin', + 'Max', 'MulDiv', 'MidStr', + 'NOP', + 'OPT_AllowFloatAudio', 'OPT_UseWaveExtensible', + 'Pi', 'Pow', + 'Round', 'Rand', 'RevStr', 'RightStr', 'RGBDifference', 'RGBDifferenceFromPrevious', 'RGBDifferenceToNext', + 'Sin', 'Sqrt', 'Sign', 'Spline', 'StrLen', 'String', 'Select', 'SetMemoryMax', 'SetWorkingDir', 'SetMTMode', + 'SetPlanarLegacyAlignment', + 'Time', + 'UCase', 'UDifferenceFromPrevious', 'UDifferenceToNext', 'UPlaneMax', 'UPlaneMin', 'UPlaneMedian', + 'UPlaneMinMaxDifference', + 'Value', 'VersionNumber', 'VersionString', 'VDifferenceFromPrevious', 'VDifferenceToNext', 'VPlaneMax', + 'VPlaneMin', 'VPlaneMedian', 'VPlaneMinMaxDifference', + 'YDifferenceFromPrevious', 'YDifferenceToNext', 'YPlaneMax', 'YPlaneMin', 'YPlaneMedian', + 'YPlaneMinMaxDifference' + ) + ), + 'SYMBOLS' => array( + '+', '++', '-', '--', '/', '*', '%', + '=', '==', '<', '<=', '>', '>=', '<>', '!=', + '!', '?', ':', + '|', '||', '&&', + '\\', + '(', ')', '{', '}', + '.', ',' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color:#9966CC; font-weight:bold;', + 2 => 'color:#0000FF; font-weight:bold;', + 3 => 'color:#CC3300; font-weight:bold;', + 4 => 'color:#660000; font-weight:bold;' + ), + 'COMMENTS' => array( + 1 => 'color:#008000; font-style:italic;', + 'MULTI' => 'color:#000080; font-style:italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color:#000099;' + ), + 'BRACKETS' => array( + 0 => 'color:#006600; font-weight:bold;' + ), + 'STRINGS' => array( + 0 => 'color:#996600;' + ), + 'NUMBERS' => array( + 0 => 'color:#006666;' + ), + 'METHODS' => array( + 1 => 'color:#9900CC;' + ), + 'SYMBOLS' => array( + 0 => 'color:#006600; font-weight:bold;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => 'http://avisynth.org/mediawiki/{FNAME}', + 4 => '' + ), + 'REGEXPS' => array( + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.' + ), + 'STRICT_MODE_APPLIES' => GESHI_MAYBE, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); +?> diff --git a/Sources/geshi/awk.php b/Sources/geshi/awk.php new file mode 100644 index 0000000..1ec239b --- /dev/null +++ b/Sources/geshi/awk.php @@ -0,0 +1,158 @@ + 'awk', + 'COMMENT_SINGLE' => array( + 1 => '#' + ), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array ( + 1 => array( + 'for', 'in', 'if', 'else', 'while', 'do', 'continue', 'break' + ), + 2 => array( + 'BEGIN', 'END' + ), + 3 => array( + 'ARGC', 'ARGV', 'CONVFMT', 'ENVIRON', + 'FILENAME', 'FNR', 'FS', 'NF', 'NR', 'OFMT', + 'OFS','ORS','RLENGTH','RS','RSTART','SUBSEP' + ), + 4 => array( + 'gsub','index','length','match','split', + 'sprintf','sub','substr','tolower','toupper', + 'atan2','cos','exp','int','log','rand', + 'sin','sqrt','srand' + ), + 5 => array( + 'print','printf','getline','close','fflush','system' + ), + 6 => array( + 'function', 'return' + ) + ), + 'SYMBOLS' => array ( + 0 => array( + '(',')','[',']','{','}' + ), + 1 => array( + '!','||','&&' + ), + 2 => array( + '<','>','<=','>=','==','!=' + ), + 3 => array( + '+','-','*','/','%','^','++','--' + ), + 4 => array( + '~','!~' + ), + 5 => array( + '?',':' + ) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + 5 => false, + 6 => false + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #C20CB9; font-weight: bold;', + 3 => 'color: #4107D5; font-weight: bold;', + 4 => 'color: #07D589; font-weight: bold;', + 5 => 'color: #0BD507; font-weight: bold;', + 6 => 'color: #078CD5; font-weight: bold;' + ), + 'COMMENTS' => array( + 1 => 'color:#808080;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'SYMBOLS' => array( + 0 => 'color:black;', + 1 => 'color:black;', + 2 => 'color:black;', + 3 => 'color:black;', + 4 => 'color:#C4C364;', + 5 => 'color:black;font-weight:bold;'), + 'SCRIPT' => array(), + 'REGEXPS' => array( + 0 => 'color:#000088;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #000000;' + ), + 'BRACKETS' => array( + 0 => 'color: #7a0874; font-weight: bold;' + ), + 'METHODS' => array() + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array (), + 'REGEXPS' => array( + 0 => "\\$[a-zA-Z0-9_]+" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array (), + 'HIGHLIGHT_STRICT_BLOCK' => array() +); + +?> diff --git a/Sources/geshi/bascomavr.php b/Sources/geshi/bascomavr.php new file mode 100644 index 0000000..864f74e --- /dev/null +++ b/Sources/geshi/bascomavr.php @@ -0,0 +1,185 @@ + 'BASCOM AVR', + 'COMMENT_SINGLE' => array(1 => "'"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + // Navy Blue Bold Keywords + '1WRESET' , '1WREAD' , '1WWRITE' , '1WSEARCHFIRST' , '1WSEARCHNEXT' ,'1WVERIFY' , '1WIRECOUNT', + 'CONFIG' , 'ACI' , 'ADC' , 'BCCARD' , 'CLOCK' , 'COM1' , + 'COM2' , 'PS2EMU' , 'ATEMU' , 'I2CSLAVE' , + 'INPUT', 'OUTPUT', 'GRAPHLCD' , 'KEYBOARD' , 'TIMER0' , 'TIMER1' , + 'LCDBUS' , 'LCDMODE' , '1WIRE' , 'LCD' , 'SERIALOUT' , + 'SERIALIN' , 'SPI' , 'LCDPIN' , 'SDA' , 'SCL' , + 'WATCHDOG' , 'PORT' , 'COUNTER0', 'COUNTER1' , 'TCPIP' , 'TWISLAVE' , + 'X10' , 'XRAM' , 'USB', + 'BCD' , 'GRAY2BIN' , 'BIN2GRAY' , 'BIN' , 'MAKEBCD' , 'MAKEDEC' , 'MAKEINT' , 'FORMAT' , 'FUSING' , 'BINVAL' , + 'CRC8' , 'CRC16' , 'CRC16UNI' , 'CRC32' , 'HIGH' , 'HIGHW' , 'LOW', + 'DATE' , 'TIME' , 'DATE$' , 'TIME$' , 'DAYOFWEEK' , 'DAYOFYEAR' , 'SECOFDAY' , 'SECELAPSED' , 'SYSDAY' , 'SYSSEC' , 'SYSSECELAPSED', + 'WAIT' , 'WAITMS' , 'WAITUS' , 'DELAY', + 'BSAVE' , 'BLOAD' , 'GET' , 'VER' , 'DISKFREE' , 'DIR' , 'DriveReset' , 'DriveInit' , 'LINE' , 'INITFILESYSTEM' , + 'EOF' , 'WRITE' , 'FLUSH' , 'FREEFILE' , 'FILEATTR' , 'FILEDATE' , 'FILETIME' , 'FILEDATETIME' , 'FILELEN' , 'SEEK' , + 'KILL' , 'DriveGetIdentity' , 'DriveWriteSector' , 'DriveReadSector' , 'LOC' , 'LOF' , 'PUT' , 'OPEN' , 'CLOSE', + 'GLCDCMD' , 'GLCDDATA' , 'SETFONT' , 'PSET' , 'SHOWPIC' , 'SHOWPICE' , 'CIRCLE' , 'BOX', + 'I2CINIT' , 'I2CRECEIVE' , 'I2CSEND' , 'I2CSTART','I2CSTOP','I2CRBYTE','I2CWBYTE', + 'ALIAS' , 'BITWAIT' , 'TOGGLE' , 'RESET' , 'SET' , 'SHIFTIN' , 'SHIFTOUT' , 'DEBOUNCE' , 'PULSEIN' , 'PULSEOUT', + 'IDLE' , 'POWERDOWN' , 'POWERSAVE' , 'ON', 'INTERRUPT' , 'ENABLE' , 'DISABLE' , 'START' , 'VERSION' , 'CLOCKDIVISION' , 'CRYSTAL' , 'STOP', + 'ADR' , 'ADR2' , 'WRITEEEPROM' , 'CPEEK' , 'CPEEKH' , 'PEEK' , 'POKE' , 'OUT' , 'READEEPROM' , 'DATA' , 'INP' , 'READ' , 'RESTORE' , 'LOOKDOWN' , 'LOOKUP' , 'LOOKUPSTR' , 'LOAD' , 'LOADADR' , 'LOADLABEL' , 'LOADWORDADR' , 'MEMCOPY', + 'RC5SEND' , 'RC6SEND' , 'GETRC5' , 'SONYSEND', + 'BAUD' , 'BAUD1', 'BUFSPACE' , 'CLEAR', 'ECHO' , 'WAITKEY' , 'ISCHARWAITING' , 'INKEY' , 'INPUTBIN' , 'INPUTHEX' , 'PRINT', 'PRINT1','PRINT0', 'PRINTBIN' , 'SERIN' , 'SEROUT' , 'SPC' , 'MAKEMODBUS', + 'SPIIN' , 'SPIINIT' , 'SPIMOVE' , 'SPIOUT', 'SINGLE', + 'ASC' , 'UCASE' , 'LCASE' , 'TRIM' , 'SPLIT' , 'LTRIM' , 'INSTR' , 'SPACE' , 'RTRIM' , 'LEFT' , 'LEN' , 'MID' , 'RIGHT' , 'VAL' , 'STR' , 'CHR' , 'CHECKSUM' , 'HEX' , 'HEXVAL', + 'BASE64DEC' , 'BASE64ENC' , 'IP2STR' , 'UDPREAD' , 'UDPWRITE' , 'UDPWRITESTR' , 'TCPWRITE' , 'TCPWRITESTR' , 'TCPREAD' , 'GETDSTIP' , 'GETDSTPORT' , 'SOCKETSTAT' , 'SOCKETCONNECT' , 'SOCKETLISTEN' , 'GETSOCKET' , 'CLOSESOCKET' , + 'SETTCP' , 'GETTCPREGS' , 'SETTCPREGS' , 'SETIPPROTOCOL' , 'TCPCHECKSUM', + 'HOME' , 'CURSOR' , 'UPPERLINE' , 'THIRDLINE' , 'INITLCD' , 'LOWERLINE' , 'LCDAT' , 'FOURTHLINE' , 'DISPLAY' , 'LCDCONTRAST' , 'LOCATE' , 'SHIFTCURSOR' , 'DEFLCDCHAR' , 'SHIFTLCD' , 'CLS', + 'ACOS' , 'ASIN' , 'ATN' , 'ATN2' , 'EXP' , 'RAD2DEG' , 'FRAC' , 'TAN' , 'TANH' , 'COS' , 'COSH' , 'LOG' , 'LOG10' , 'ROUND' , 'ABS' , 'INT' , 'MAX' , 'MIN' , 'SQR' , 'SGN' , 'POWER' , 'SIN' , 'SINH' , 'FIX' , 'INCR' , 'DECR' , 'DEG2RAD', + 'DBG' , 'DEBUG', 'DTMFOUT' , 'ENCODER' , 'GETADC' , 'GETKBD' , 'GETATKBD' , 'GETRC' , 'VALUE' , 'POPALL' , 'PS2MOUSEXY' , 'PUSHALL' , + 'RETURN' , 'RND' , 'ROTATE' , 'SENDSCAN' , 'SENDSCANKBD' , 'SHIFT' , 'SOUND' , 'STCHECK' , 'SWAP' , 'VARPTR' , 'X10DETECT' , 'X10SEND' , 'READMAGCARD' , 'REM' , 'BITS' , 'BYVAL' , 'CALL' , 'READHITAG', + 'Buffered', 'Size', 'Dummy', 'Parity', 'None', 'Stopbits', 'Databits', 'Clockpol', 'Synchrone', 'Prescaler', 'Reference', 'int0', 'int1', 'Interrupts', + 'Auto', 'avcc', 'ack', 'nack', 'Pin', 'Db4', 'Db3', 'Db2', 'Db1', 'Db7', 'Db6', 'Db5', 'Db0', 'e', 'rs', 'twi', + ), + 2 => array( + // Red Lowercase Keywords + '$ASM' , '$BAUD' , '$BAUD1' , '$BGF' , '$BOOT' , '$CRYSTAL' , '$DATA' , '$DBG' , '$DEFAULT' , '$EEPLEAVE' , '$EEPROM' , + '$EEPROMHEX' , '$EXTERNAL' , '$HWSTACK' , '$INC' , '$INCLUDE' , '$INITMICRO' , '$LCD' , '$LCDRS' , '$LCDPUTCTRL' , + '$LCDPUTDATA' , '$LCDVFO' , '$LIB' , '$LOADER' , '$LOADERSIZE' , '$MAP' , '$NOCOMPILE' , '$NOINIT' , '$NORAMCLEAR' , + '$PROG' , '$PROGRAMMER' , '$REGFILE' , '$RESOURCE' , '$ROMSTART', '$SERIALINPUT', '$SERIALINPUT1' , '$SERIALINPUT2LCD' , + '$SERIALOUTPUT' , '$SERIALOUTPUT1' , '$SIM' , '$SWSTACK' , '$TIMEOUT' , '$TINY' , '$WAITSTATE' , '$XRAMSIZE' , '$XRAMSTART', '$XA', + '#IF' , '#ELSE' , '#ENDIF', '$framesize' + ), + 3 => array( + // Blue Lowercase Keywords + 'IF', 'THEN', 'ELSE', 'END', 'WHILE', 'WEND', 'DO', 'LOOP', 'SELECT', 'CASE', 'FOR', 'NEXT', + 'GOSUB' , 'GOTO' , 'LOCAL' , 'SUB' , 'DEFBIT', 'DEFBYTE', 'DEFINT', 'DEFWORD', 'DEFLNG', 'DEFSNG', 'DEFDBL', + 'CONST', 'DECLARE', 'FUNCTION', 'DIM', 'EXIT', 'LONG', 'INTEGER', 'BYTE', 'AS', 'STRING', 'WORD' + ), + 4 => array( + //light blue + 'PINA.0', 'PINA.1', 'PINA.2', 'PINA.3', 'PINA.4', 'PINA.5', 'PINA.6', 'PINA.7', + 'PINB.0', 'PINB.1', 'PINB.2', 'PINB.3', 'PINB.4', 'PINB.5', 'PINB.6', 'PINB.7', + 'PINC.0', 'PINC.1', 'PINC.2', 'PINC.3', 'PINC.4', 'PINC.5', 'PINC.6', 'PINC.7', + 'PIND.0', 'PIND.1', 'PIND.2', 'PIND.3', 'PIND.4', 'PIND.5', 'PIND.6', 'PIND.7', + 'PINE.0', 'PINE.1', 'PINE.2', 'PINE.3', 'PINE.4', 'PINE.5', 'PINE.6', 'PINE.7', + 'PINF.0', 'PINF.1', 'PINF.2', 'PINF.3', 'PINF.4', 'PINF.5', 'PINF.6', 'PINF.7', + + 'PORTA.0', 'PORTA.1', 'PORTA.2', 'PORTA.3', 'PORTA.4', 'PORTA.5', 'PORTA.6', 'PORTA.7', + 'PORTB.0', 'PORTB.1', 'PORTB.2', 'PORTB.3', 'PORTB.4', 'PORTB.5', 'PORTB.6', 'PORTB.7', + 'PORTC.0', 'PORTC.1', 'PORTC.2', 'PORTC.3', 'PORTC.4', 'PORTC.5', 'PORTC.6', 'PORTC.7', + 'PORTD.0', 'PORTD.1', 'PORTD.2', 'PORTD.3', 'PORTD.4', 'PORTD.5', 'PORTD.6', 'PORTD.7', + 'PORTE.0', 'PORTE.1', 'PORTE.2', 'PORTE.3', 'PORTE.4', 'PORTE.5', 'PORTE.6', 'PORTE.7', + 'PORTF.0', 'PORTF.1', 'PORTF.2', 'PORTF.3', 'PORTF.4', 'PORTF.5', 'PORTF.6', 'PORTF.7', + + 'DDRA.0', 'DDRA.1', 'DDRA.2', 'DDRA.3', 'DDRA.4', 'DDRA.5', 'DDRA.6', 'DDRA.7', + 'DDRB.0', 'DDRB.1', 'DDRB.2', 'DDRB.3', 'DDRB.4', 'DDRB.5', 'DDRB.6', 'DDRB.7', + 'DDRC.0', 'DDRC.1', 'DDRC.2', 'DDRC.3', 'DDRC.4', 'DDRC.5', 'DDRC.6', 'DDRC.7', + 'DDRD.0', 'DDRD.1', 'DDRD.2', 'DDRD.3', 'DDRD.4', 'DDRD.5', 'DDRD.6', 'DDRD.7', + 'DDRE.0', 'DDRE.1', 'DDRE.2', 'DDRE.3', 'DDRE.4', 'DDRE.5', 'DDRE.6', 'DDRE.7', + 'DDRF.0', 'DDRF.1', 'DDRF.2', 'DDRF.3', 'DDRF.4', 'DDRF.5', 'DDRF.6', 'DDRF.7', + + 'DDRA','DDRB','DDRC','DDRD','DDRE','DDRF', + 'PORTA','PORTB','PORTC','PORTD','PORTE','PORTF', + 'PINA','PINB','PINC','PIND','PINE','PINF', + ) + ), + 'SYMBOLS' => array( + '=', '<', '>', '>=', '<=', '+', '-', '*', '/', '%', '(', ')', '{', '}', '[', ']', ';', ':', '$', '&H' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + 4 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000080; font-weight: bold;', + 2 => 'color: #FF0000;', + 3 => 'color: #0000FF;', + 4 => 'color: #0080FF;', + ), + 'COMMENTS' => array( + 1 => 'color: #657CC4; font-style: italic;' + ), + 'BRACKETS' => array( + 0 => 'color: #000080;' + ), + 'STRINGS' => array( + 0 => 'color: #008000;' + ), + 'NUMBERS' => array( + 0 => 'color: #000080; font-weight: bold;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #0000FF;' + ), + 'ESCAPE_CHAR' => array( + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); + +?> \ No newline at end of file diff --git a/Sources/geshi/bash.php b/Sources/geshi/bash.php new file mode 100644 index 0000000..c69f005 --- /dev/null +++ b/Sources/geshi/bash.php @@ -0,0 +1,440 @@ + 'Bash', + // Bash DOES have single line comments with # markers. But bash also has + // the $# variable, so comments need special handling (see sf.net + // 1564839) + 'COMMENT_SINGLE' => array('#'), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array( + //Variables + 1 => "/\\$\\{[^\\n\\}]*?\\}/i", + //BASH-style Heredoc + 2 => '/<<-?\s*?(\'?)([a-zA-Z0-9]+)\1\\n.*\\n\\2(?![a-zA-Z0-9])/siU', + //Escaped String Starters + 3 => "/\\\\['\"]/siU", + // Single-Line Shell usage: Hide the prompt at the beginning + /* 4 => "/\A(?!#!)\s*(?>[\w:@\\/\\-\\._~]*[$#]\s?)?(?=[^\n]+\n?\Z)|^(?!#!)(\w+@)?[\w\\-\\.]+(:~?)[\w\\/\\-\\._]*?[$#]\s?/ms" */ + 4 => "/\A(?!#!)(?:(?>[\w:@\\/\\-\\._~]*)[$#]\s?)(?=(?>[^\n]+)\n?\Z)|^(?!#!)(?:\w+@)?(?>[\w\\-\\.]+)(?>:~?[\w\\/\\-\\._]*?)?[$#]\s?/sm" + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'HARDQUOTE' => array("'", "'"), + 'HARDESCAPE' => array("\'"), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + //Simple Single Char Escapes + 1 => "#\\\\[nfrtv\\$\\\"\n]#i", + // $var + 2 => "#\\$[a-z_][a-z0-9_]*#i", + // ${...} + 3 => "/\\$\\{[^\\n\\}]*?\\}/i", + // $(...) + 4 => "/\\$\\([^\\n\\)]*?\\)/i", + // `...` + 5 => "/`[^`]*`/" + ), + 'KEYWORDS' => array( + 1 => array( + 'case', 'do', 'done', 'elif', 'else', 'esac', 'fi', 'for', 'function', + 'if', 'in', 'select', 'set', 'then', 'until', 'while', 'time' + ), + 2 => array( + 'aclocal', 'aconnect', 'apachectl', 'apache2ctl', 'aplay', 'apm', + 'apmsleep', 'apropos', 'apt-cache', 'apt-cdrom', 'apt-config', + 'apt-file', 'apt-ftparchive', 'apt-get', 'apt-key', 'apt-listbugs', + 'apt-listchanges', 'apt-mark', 'apt-mirror', 'apt-sortpkgs', + 'apt-src', 'apticron', 'aptitude', 'aptsh', 'apxs', 'apxs2', 'ar', + 'arch', 'arecord', 'as', 'as86', 'ash', 'autoconf', 'autoheader', + 'automake', 'awk', + + 'apachectl start', 'apachectl stop', 'apachectl restart', + 'apachectl graceful', 'apachectl graceful-stop', + 'apachectl configtest', 'apachectl status', 'apachectl fullstatus', + 'apachectl help', 'apache2ctl start', 'apache2ctl stop', + 'apache2ctl restart', 'apache2ctl graceful', + 'apache2ctl graceful-stop', 'apache2ctl configtest', + 'apache2ctl status', 'apache2ctl fullstatus', 'apache2ctl help', + + 'apt-cache add', 'apt-cache depends', 'apt-cache dotty', + 'apt-cache dump', 'apt-cache dumpavail', 'apt-cache gencaches', + 'apt-cache pkgnames', 'apt-cache policy', 'apt-cache rdepends', + 'apt-cache search', 'apt-cache show', 'apt-cache showauto', + 'apt-cache showpkg', 'apt-cache showsrc', 'apt-cache stats', + 'apt-cache unmet', 'apt-cache xvcg', 'apt-cdrom add', + 'apt-cdrom ident', 'apt-config dump', 'apt-config shell', + 'apt-file find', 'apt-file list', 'apt-file purge', + 'apt-file search', 'apt-file shot', 'apt-file update', + 'apt-get autoclean', 'apt-get autoremove', 'apt-get build-dep', + 'apt-get check', 'apt-get clean', 'apt-get dist-upgrade', + 'apt-get dselect-upgrade', 'apt-get install', 'apt-get markauto', + 'apt-get purge', 'apt-get remove', 'apt-get source', + 'apt-get unmarkauto', 'apt-get update', 'apt-get upgrade', + 'apt-key add', 'apt-key adv', 'apt-key del', 'apt-key export', + 'apt-key exportall', 'apt-key finger', 'apt-key list', + 'apt-key net-update', 'apt-key update', 'apt-listbugs apt', + 'apt-listbugs list', 'apt-listbugs rss', 'apt-src build', + 'apt-src clean', 'apt-src import', 'apt-src install', + 'apt-src list', 'apt-src location', 'apt-src name', + 'apt-src remove', 'apt-src update', 'apt-src upgrade', + 'apt-src version', + + 'basename', 'bash', 'bc', 'bison', 'bunzip2', 'bzcat', + 'bzcmp', 'bzdiff', 'bzegrep', 'bzfgrep', 'bzgrep', + 'bzip2', 'bzip2recover', 'bzless', 'bzmore', + + 'c++', 'cal', 'cat', 'chattr', 'cc', 'cdda2wav', 'cdparanoia', + 'cdrdao', 'cd-read', 'cdrecord', 'chfn', 'chgrp', 'chmod', + 'chown', 'chroot', 'chsh', 'chvt', 'clear', 'cmp', 'comm', 'co', + 'col', 'cp', 'cpio', 'cpp', 'csh', 'cut', 'cvs', 'cvs-pserver', + + 'cvs add', 'cvs admin', 'cvs annotate', 'cvs checkout', + 'cvs commit', 'cvs diff', 'cvs edit', 'cvs editors', 'cvs export', + 'cvs history', 'cvs import', 'cvs init', 'cvs log', 'cvs login', + 'cvs logout', 'cvs ls', 'cvs pserver', 'cvs rannotate', + 'cvs rdiff', 'cvs release', 'cvs remove', 'cvs rlog', 'cvs rls', + 'cvs rtag', 'cvs server', 'cvs status', 'cvs tag', 'cvs unedit', + 'cvs update', 'cvs version', 'cvs watch', 'cvs watchers', + + 'dash', 'date', 'dc', 'dch', 'dcop', 'dd', 'ddate', 'ddd', + 'deallocvt', 'debconf', 'defoma', 'depmod', 'df', 'dh', + 'dialog', 'diff', 'diff3', 'dig', 'dir', 'dircolors', 'directomatic', + 'dirname', 'dmesg', 'dnsdomainname', 'domainname', 'dpkg', + 'dselect', 'du', 'dumpkeys', + + 'ed', 'egrep', 'env', 'expr', + + 'false', 'fbset', 'fdisk', 'ffmpeg', 'fgconsole','fgrep', 'file', + 'find', 'flex', 'flex++', 'fmt', 'free', 'ftp', 'funzip', 'fuser', + + 'g++', 'gawk', 'gc','gcc', 'gdb', 'getent', 'getkeycodes', + 'getopt', 'gettext', 'gettextize', 'gimp', 'gimp-remote', + 'gimptool', 'gmake', 'gocr', 'grep', 'groups', 'gs', 'gunzip', + 'gzexe', 'gzip', + + 'git', 'git add', 'git add--interactive', 'git am', 'git annotate', + 'git apply', 'git archive', 'git bisect', 'git bisect--helper', + 'git blame', 'git branch', 'git bundle', 'git cat-file', + 'git check-attr', 'git checkout', 'git checkout-index', + 'git check-ref-format', 'git cherry', 'git cherry-pick', + 'git clean', 'git clone', 'git commit', 'git commit-tree', + 'git config', 'git count-objects', 'git daemon', 'git describe', + 'git diff', 'git diff-files', 'git diff-index', 'git difftool', + 'git difftool--helper', 'git diff-tree', 'git fast-export', + 'git fast-import', 'git fetch', 'git fetch-pack', + 'git filter-branch', 'git fmt-merge-msg', 'git for-each-ref', + 'git format-patch', 'git fsck', 'git fsck-objects', 'git gc', + 'git get-tar-commit-id', 'git grep', 'git hash-object', 'git help', + 'git http-backend', 'git http-fetch', 'git http-push', + 'git imap-send', 'git index-pack', 'git init', 'git init-db', + 'git instaweb', 'git log', 'git lost-found', 'git ls-files', + 'git ls-remote', 'git ls-tree', 'git mailinfo', 'git mailsplit', + 'git merge', 'git merge-base', 'git merge-file', 'git merge-index', + 'git merge-octopus', 'git merge-one-file', 'git merge-ours', + 'git merge-recursive', 'git merge-resolve', 'git merge-subtree', + 'git mergetool', 'git merge-tree', 'git mktag', 'git mktree', + 'git mv', 'git name-rev', 'git notes', 'git pack-objects', + 'git pack-redundant', 'git pack-refs', 'git patch-id', + 'git peek-remote', 'git prune', 'git prune-packed', 'git pull', + 'git push', 'git quiltimport', 'git read-tree', 'git rebase', + 'git rebase--interactive', 'git receive-pack', 'git reflog', + 'git relink', 'git remote', 'git remote-ftp', 'git remote-ftps', + 'git remote-http', 'git remote-https', 'git remote-testgit', + 'git repack', 'git replace', 'git repo-config', 'git request-pull', + 'git rerere', 'git reset', 'git revert', 'git rev-list', + 'git rev-parse', 'git rm', 'git send-pack', 'git shell', + 'git shortlog', 'git show', 'git show-branch', 'git show-index', + 'git show-ref', 'git stage', 'git stash', 'git status', + 'git stripspace', 'git submodule', 'git symbolic-ref', 'git tag', + 'git tar-tree', 'git unpack-file', 'git unpack-objects', + 'git update-index', 'git update-ref', 'git update-server-info', + 'git upload-archive', 'git upload-pack', 'git var', + 'git verify-pack', 'git verify-tag', 'git web--browse', + 'git whatchanged', 'git write-tree', + + 'gitaction', 'git-add', 'git-add--interactive', 'git-am', + 'git-annotate', 'git-apply', 'git-archive', 'git-bisect', + 'git-bisect--helper', 'git-blame', 'git-branch', 'git-bundle', + 'git-cat-file', 'git-check-attr', 'git-checkout', + 'git-checkout-index', 'git-check-ref-format', 'git-cherry', + 'git-cherry-pick', 'git-clean', 'git-clone', 'git-commit', + 'git-commit-tree', 'git-config', 'git-count-objects', 'git-daemon', + 'git-describe', 'git-diff', 'git-diff-files', 'git-diff-index', + 'git-difftool', 'git-difftool--helper', 'git-diff-tree', + 'gitdpkgname', 'git-fast-export', 'git-fast-import', 'git-fetch', + 'git-fetch-pack', 'git-fetch--tool', 'git-filter-branch', 'gitfm', + 'git-fmt-merge-msg', 'git-for-each-ref', 'git-format-patch', + 'git-fsck', 'git-fsck-objects', 'git-gc', 'git-get-tar-commit-id', + 'git-grep', 'git-hash-object', 'git-help', 'git-http-fetch', + 'git-http-push', 'git-imap-send', 'git-index-pack', 'git-init', + 'git-init-db', 'git-instaweb', 'gitkeys', 'git-log', + 'git-lost-found', 'git-ls-files', 'git-ls-remote', 'git-ls-tree', + 'git-mailinfo', 'git-mailsplit', 'git-merge', 'git-merge-base', + 'git-merge-file', 'git-merge-index', 'git-merge-octopus', + 'git-merge-one-file', 'git-merge-ours', 'git-merge-recursive', + 'git-merge-resolve', 'git-merge-subtree', 'git-mergetool', + 'git-mergetool--lib', 'git-merge-tree', 'gitmkdirs', 'git-mktag', + 'git-mktree', 'gitmount', 'git-mv', 'git-name-rev', + 'git-pack-objects', 'git-pack-redundant', 'git-pack-refs', + 'git-parse-remote', 'git-patch-id', 'git-peek-remote', 'git-prune', + 'git-prune-packed', 'gitps', 'git-pull', 'git-push', + 'git-quiltimport', 'git-read-tree', 'git-rebase', + 'git-rebase--interactive', 'git-receive-pack', 'git-reflog', + 'gitregrep', 'git-relink', 'git-remote', 'git-repack', + 'git-repo-config', 'git-request-pull', 'git-rerere', 'git-reset', + 'git-revert', 'git-rev-list', 'git-rev-parse', 'gitrfgrep', + 'gitrgrep', 'git-rm', 'git-send-pack', 'git-shell', 'git-shortlog', + 'git-show', 'git-show-branch', 'git-show-index', 'git-show-ref', + 'git-sh-setup', 'git-stage', 'git-stash', 'git-status', + 'git-stripspace', 'git-submodule', 'git-svn', 'git-symbolic-ref', + 'git-tag', 'git-tar-tree', 'gitunpack', 'git-unpack-file', + 'git-unpack-objects', 'git-update-index', 'git-update-ref', + 'git-update-server-info', 'git-upload-archive', 'git-upload-pack', + 'git-var', 'git-verify-pack', 'git-verify-tag', 'gitview', + 'git-web--browse', 'git-whatchanged', 'gitwhich', 'gitwipe', + 'git-write-tree', 'gitxgrep', + + 'head', 'hexdump', 'hostname', + + 'id', 'ifconfig', 'ifdown', 'ifup', 'igawk', 'install', + + 'ip', 'ip addr', 'ip addrlabel', 'ip link', 'ip maddr', 'ip mroute', + 'ip neigh', 'ip route', 'ip rule', 'ip tunnel', 'ip xfrm', + + 'join', + + 'kbd_mode','kbdrate', 'kdialog', 'kfile', 'kill', 'killall', + + 'lame', 'last', 'lastb', 'ld', 'ld86', 'ldd', 'less', 'lex', 'link', + 'ln', 'loadkeys', 'loadunimap', 'locate', 'lockfile', 'login', + 'logname', 'lp', 'lpr', 'ls', 'lsattr', 'lsmod', 'lsmod.old', + 'lspci', 'ltrace', 'lynx', + + 'm4', 'make', 'man', 'mapscrn', 'mesg', 'mkdir', 'mkfifo', + 'mknod', 'mktemp', 'more', 'mount', 'mplayer', 'msgfmt', 'mv', + + 'namei', 'nano', 'nasm', 'nawk', 'netstat', 'nice', + 'nisdomainname', 'nl', 'nm', 'nm86', 'nmap', 'nohup', 'nop', + + 'od', 'openvt', + + 'passwd', 'patch', 'pcregrep', 'pcretest', 'perl', 'perror', + 'pgawk', 'pidof', 'ping', 'pr', 'procmail', 'prune', 'ps', 'pstree', + 'ps2ascii', 'ps2epsi', 'ps2frag', 'ps2pdf', 'ps2ps', 'psbook', + 'psmerge', 'psnup', 'psresize', 'psselect', 'pstops', + + 'rbash', 'rcs', 'rcs2log', 'read', 'readlink', 'red', 'resizecons', + 'rev', 'rm', 'rmdir', 'rsh', 'run-parts', + + 'sash', 'scp', 'screen', 'sed', 'seq', 'sendmail', 'setfont', + 'setkeycodes', 'setleds', 'setmetamode', 'setserial', 'setterm', + 'sh', 'showkey', 'shred', 'size', 'size86', 'skill', 'sleep', + 'slogin', 'snice', 'sort', 'sox', 'split', 'ssed', 'ssh', 'ssh-add', + 'ssh-agent', 'ssh-keygen', 'ssh-keyscan', 'stat', 'strace', + 'strings', 'strip', 'stty', 'su', 'sudo', 'suidperl', 'sum', 'svn', + 'svnadmin', 'svndumpfilter', 'svnlook', 'svnmerge', 'svnmucc', + 'svnserve', 'svnshell', 'svnsync', 'svnversion', 'svnwrap', 'sync', + + 'svn add', 'svn ann', 'svn annotate', 'svn blame', 'svn cat', + 'svn changelist', 'svn checkout', 'svn ci', 'svn cl', 'svn cleanup', + 'svn co', 'svn commit', 'svn copy', 'svn cp', 'svn del', + 'svn delete', 'svn di', 'svn diff', 'svn export', 'svn h', + 'svn help', 'svn import', 'svn info', 'svn list', 'svn lock', + 'svn log', 'svn ls', 'svn merge', 'svn mergeinfo', 'svn mkdir', + 'svn move', 'svn mv', 'svn pd', 'svn pdel', 'svn pe', 'svn pedit', + 'svn pg', 'svn pget', 'svn pl', 'svn plist', 'svn praise', + 'svn propdel', 'svn propedit', 'svn propget', 'svn proplist', + 'svn propset', 'svn ps', 'svn pset', 'svn remove', 'svn ren', + 'svn rename', 'svn resolve', 'svn resolved', 'svn revert', 'svn rm', + 'svn st', 'svn stat', 'svn status', 'svn sw', 'svn switch', + 'svn unlock', 'svn up', 'svn update', + + 'tac', 'tail', 'tar', 'tee', 'tempfile', 'touch', 'tr', 'tree', + 'true', + + 'umount', 'uname', 'unicode_start', 'unicode_stop', 'uniq', + 'unlink', 'unzip', 'updatedb', 'updmap', 'uptime', 'users', + 'utmpdump', 'uuidgen', + + 'valgrind', 'vdir', 'vi', 'vim', 'vmstat', + + 'w', 'wall', 'watch', 'wc', 'wget', 'whatis', 'whereis', + 'which', 'whiptail', 'who', 'whoami', 'whois', 'wine', 'wineboot', + 'winebuild', 'winecfg', 'wineconsole', 'winedbg', 'winedump', + 'winefile', 'wodim', 'write', + + 'xargs', 'xhost', 'xmodmap', 'xset', + + 'yacc', 'yes', 'ypdomainname', 'yum', + + 'yum check-update', 'yum clean', 'yum deplist', 'yum erase', + 'yum groupinfo', 'yum groupinstall', 'yum grouplist', + 'yum groupremove', 'yum groupupdate', 'yum info', 'yum install', + 'yum list', 'yum localinstall', 'yum localupdate', 'yum makecache', + 'yum provides', 'yum remove', 'yum resolvedep', 'yum search', + 'yum shell', 'yum update', 'yum upgrade', 'yum whatprovides', + + 'zcat', 'zcmp', 'zdiff', 'zdump', 'zegrep', 'zfgrep', 'zforce', + 'zgrep', 'zip', 'zipgrep', 'zipinfo', 'zless', 'zmore', 'znew', + 'zsh', 'zsoelim' + ), + 3 => array( + 'alias', 'bg', 'bind', 'break', 'builtin', 'cd', 'command', + 'compgen', 'complete', 'continue', 'declare', 'dirs', 'disown', + 'echo', 'enable', 'eval', 'exec', 'exit', 'export', 'fc', + 'fg', 'getopts', 'hash', 'help', 'history', 'jobs', 'let', + 'local', 'logout', 'popd', 'printf', 'pushd', 'pwd', 'readonly', + 'return', 'shift', 'shopt', 'source', 'suspend', 'test', 'times', + 'trap', 'type', 'typeset', 'ulimit', 'umask', 'unalias', 'unset', + 'wait' + ) + ), + 'SYMBOLS' => array( + '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>', ';;', '`' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000000; font-weight: bold;', + 2 => 'color: #c20cb9; font-weight: bold;', + 3 => 'color: #7a0874; font-weight: bold;' + ), + 'COMMENTS' => array( + 0 => 'color: #666666; font-style: italic;', + 1 => 'color: #800000;', + 2 => 'color: #cc0000; font-style: italic;', + 3 => 'color: #000000; font-weight: bold;', + 4 => 'color: #666666;' + ), + 'ESCAPE_CHAR' => array( + 1 => 'color: #000099; font-weight: bold;', + 2 => 'color: #007800;', + 3 => 'color: #007800;', + 4 => 'color: #007800;', + 5 => 'color: #780078;', + 'HARD' => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #7a0874; font-weight: bold;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;', + 'HARD' => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #000000;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #000000; font-weight: bold;' + ), + 'REGEXPS' => array( + 0 => 'color: #007800;', + 1 => 'color: #007800;', + 2 => 'color: #007800;', + 4 => 'color: #007800;', + 5 => 'color: #660033;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + //Variables (will be handled by comment_regexps) + 0 => "\\$\\{[a-zA-Z_][a-zA-Z0-9_]*?\\}", + //Variables without braces + 1 => "\\$[a-zA-Z_][a-zA-Z0-9_]*", + //Variable assignment + 2 => "(? "\\$[*#\$\\-\\?!\d]", + //Parameters of commands + 5 => "(?<=\s)--?[0-9a-zA-Z\-]+(?=[\s=]|<(?:SEMI|PIPE)>|$)" + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'COMMENTS' => array( + 'DISALLOWED_BEFORE' => '$' + ), + 'KEYWORDS' => array( + 'DISALLOWED_BEFORE' => "(? "(?![\.\-a-zA-Z0-9_%=\\/:])", + 2 => array( + 'SPACE_AS_WHITESPACE' => false + ) + ) + ) +); + +?> \ No newline at end of file diff --git a/Sources/geshi/basic4gl.php b/Sources/geshi/basic4gl.php new file mode 100644 index 0000000..35c9274 --- /dev/null +++ b/Sources/geshi/basic4gl.php @@ -0,0 +1,341 @@ + 'Basic4GL', + 'COMMENT_SINGLE' => array(1 => "'"), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + + // Navy Blue Bold Keywords + + 'true','rnd_max','m_pi','m_e','false','VK_ZOOM','VK_UP','VK_TAB','VK_SUBTRACT','VK_SPACE','VK_SNAPSHOT', + 'VK_SHIFT','VK_SEPARATOR','VK_SELECT','VK_SCROLL','VK_RWIN','VK_RSHIFT','VK_RMENU','VK_RIGHT','VK_RETURN', + 'VK_RCONTROL','VK_RBUTTON','VK_PROCESSKEY','VK_PRIOR','VK_PRINT','VK_PLAY','VK_PAUSE','VK_NUMPAD9','VK_NUMPAD8', + 'VK_NUMPAD7','VK_NUMPAD6','VK_NUMPAD5','VK_NUMPAD4','VK_NUMPAD3','VK_NUMPAD2','VK_NUMPAD1','VK_NUMPAD0', + 'VK_NUMLOCK','VK_NONCONVERT','VK_NEXT','VK_MULTIPLY','VK_MODECHANGE','VK_MENU','VK_MBUTTON','VK_LWIN', + 'VK_LSHIFT','VK_LMENU','VK_LEFT','VK_LCONTROL','VK_LBUTTON','VK_KANJI','VK_KANA','VK_JUNJA','VK_INSERT', + 'VK_HOME','VK_HELP','VK_HANJA','VK_HANGUL','VK_HANGEUL','VK_FINAL','VK_F9','VK_F8','VK_F7','VK_F6','VK_F5', + 'VK_F4','VK_F3','VK_F24','VK_F23','VK_F22','VK_F21','VK_F20','VK_F2','VK_F19','VK_F18','VK_F17','VK_F16', + 'VK_F15','VK_F14','VK_F13','VK_F12','VK_F11','VK_F10','VK_F1','VK_EXSEL','VK_EXECUTE','VK_ESCAPE','VK_EREOF', + 'VK_END','VK_DOWN','VK_DIVIDE','VK_DELETE','VK_DECIMAL','VK_CRSEL','VK_CONVERT','VK_CONTROL','VK_CLEAR', + 'VK_CAPITAL','VK_CANCEL','VK_BACK','VK_ATTN','VK_APPS','VK_ADD','VK_ACCEPT','TEXT_SIMPLE','TEXT_OVERLAID', + 'TEXT_BUFFERED','SPR_TILEMAP','SPR_SPRITE','SPR_INVALID','MOUSE_RBUTTON','MOUSE_MBUTTON','MOUSE_LBUTTON', + 'GL_ZOOM_Y','GL_ZOOM_X','GL_ZERO','GL_XOR','GL_WIN_swap_hint','GL_WIN_draw_range_elements','GL_VIEWPORT_BIT', + 'GL_VIEWPORT','GL_VERTEX_ARRAY_TYPE_EXT','GL_VERTEX_ARRAY_TYPE','GL_VERTEX_ARRAY_STRIDE_EXT','GL_VERTEX_ARRAY_STRIDE', + 'GL_VERTEX_ARRAY_SIZE_EXT','GL_VERTEX_ARRAY_SIZE','GL_VERTEX_ARRAY_POINTER_EXT','GL_VERTEX_ARRAY_POINTER', + 'GL_VERTEX_ARRAY_EXT','GL_VERTEX_ARRAY_COUNT_EXT','GL_VERTEX_ARRAY','GL_VERSION_1_1','GL_VERSION','GL_VENDOR', + 'GL_V3F','GL_V2F','GL_UNSIGNED_SHORT','GL_UNSIGNED_INT','GL_UNSIGNED_BYTE','GL_UNPACK_SWAP_BYTES','GL_UNPACK_SKIP_ROWS', + 'GL_UNPACK_SKIP_PIXELS','GL_UNPACK_ROW_LENGTH','GL_UNPACK_LSB_FIRST','GL_UNPACK_ALIGNMENT','GL_TRUE','GL_TRIANGLE_STRIP', + 'GL_TRIANGLE_FAN','GL_TRIANGLES','GL_TRANSFORM_BIT','GL_TEXTURE_WRAP_T','GL_TEXTURE_WRAP_S','GL_TEXTURE_WIDTH', + 'GL_TEXTURE_STACK_DEPTH','GL_TEXTURE_RESIDENT','GL_TEXTURE_RED_SIZE','GL_TEXTURE_PRIORITY','GL_TEXTURE_MIN_FILTER', + 'GL_TEXTURE_MATRIX','GL_TEXTURE_MAG_FILTER','GL_TEXTURE_LUMINANCE_SIZE','GL_TEXTURE_INTERNAL_FORMAT','GL_TEXTURE_INTENSITY_SIZE', + 'GL_TEXTURE_HEIGHT','GL_TEXTURE_GREEN_SIZE','GL_TEXTURE_GEN_T','GL_TEXTURE_GEN_S','GL_TEXTURE_GEN_R','GL_TEXTURE_GEN_Q', + 'GL_TEXTURE_GEN_MODE','GL_TEXTURE_ENV_MODE','GL_TEXTURE_ENV_COLOR','GL_TEXTURE_ENV','GL_TEXTURE_COORD_ARRAY_TYPE_EXT', + 'GL_TEXTURE_COORD_ARRAY_TYPE','GL_TEXTURE_COORD_ARRAY_STRIDE_EXT','GL_TEXTURE_COORD_ARRAY_STRIDE','GL_TEXTURE_COORD_ARRAY_SIZE_EXT', + 'GL_TEXTURE_COORD_ARRAY_SIZE','GL_TEXTURE_COORD_ARRAY_POINTER_EXT','GL_TEXTURE_COORD_ARRAY_POINTER','GL_TEXTURE_COORD_ARRAY_EXT', + 'GL_TEXTURE_COORD_ARRAY_COUNT_EXT','GL_TEXTURE_COORD_ARRAY','GL_TEXTURE_COMPONENTS','GL_TEXTURE_BORDER_COLOR','GL_TEXTURE_BORDER', + 'GL_TEXTURE_BLUE_SIZE','GL_TEXTURE_BIT','GL_TEXTURE_BINDING_2D','GL_TEXTURE_BINDING_1D','GL_TEXTURE_ALPHA_SIZE', + 'GL_TEXTURE_2D','GL_TEXTURE_1D','GL_TEXTURE9_ARB','GL_TEXTURE9','GL_TEXTURE8_ARB','GL_TEXTURE8','GL_TEXTURE7_ARB', + 'GL_TEXTURE7','GL_TEXTURE6_ARB','GL_TEXTURE6','GL_TEXTURE5_ARB','GL_TEXTURE5','GL_TEXTURE4_ARB','GL_TEXTURE4', + 'GL_TEXTURE3_ARB','GL_TEXTURE31_ARB','GL_TEXTURE31','GL_TEXTURE30_ARB','GL_TEXTURE30','GL_TEXTURE3','GL_TEXTURE2_ARB', + 'GL_TEXTURE29_ARB','GL_TEXTURE29','GL_TEXTURE28_ARB','GL_TEXTURE28','GL_TEXTURE27_ARB','GL_TEXTURE27','GL_TEXTURE26_ARB', + 'GL_TEXTURE26','GL_TEXTURE25_ARB','GL_TEXTURE25','GL_TEXTURE24_ARB','GL_TEXTURE24','GL_TEXTURE23_ARB','GL_TEXTURE23', + 'GL_TEXTURE22_ARB','GL_TEXTURE22','GL_TEXTURE21_ARB','GL_TEXTURE21','GL_TEXTURE20_ARB','GL_TEXTURE20','GL_TEXTURE2', + 'GL_TEXTURE1_ARB','GL_TEXTURE19_ARB','GL_TEXTURE19','GL_TEXTURE18_ARB','GL_TEXTURE18','GL_TEXTURE17_ARB', + 'GL_TEXTURE17','GL_TEXTURE16_ARB','GL_TEXTURE16','GL_TEXTURE15_ARB','GL_TEXTURE15','GL_TEXTURE14_ARB','GL_TEXTURE14', + 'GL_TEXTURE13_ARB','GL_TEXTURE13','GL_TEXTURE12_ARB','GL_TEXTURE12','GL_TEXTURE11_ARB','GL_TEXTURE11','GL_TEXTURE10_ARB', + 'GL_TEXTURE10','GL_TEXTURE1','GL_TEXTURE0_ARB','GL_TEXTURE0','GL_TEXTURE','GL_T4F_V4F','GL_T4F_C4F_N3F_V4F','GL_T2F_V3F', + 'GL_T2F_N3F_V3F','GL_T2F_C4UB_V3F','GL_T2F_C4F_N3F_V3F','GL_T2F_C3F_V3F','GL_T','GL_SUBPIXEL_BITS','GL_STEREO', + 'GL_STENCIL_WRITEMASK','GL_STENCIL_VALUE_MASK','GL_STENCIL_TEST','GL_STENCIL_REF','GL_STENCIL_PASS_DEPTH_PASS', + 'GL_STENCIL_PASS_DEPTH_FAIL','GL_STENCIL_INDEX','GL_STENCIL_FUNC','GL_STENCIL_FAIL','GL_STENCIL_CLEAR_VALUE', + 'GL_STENCIL_BUFFER_BIT','GL_STENCIL_BITS','GL_STENCIL','GL_STACK_UNDERFLOW','GL_STACK_OVERFLOW','GL_SRC_COLOR', + 'GL_SRC_ALPHA_SATURATE','GL_SRC_ALPHA','GL_SPOT_EXPONENT','GL_SPOT_DIRECTION','GL_SPOT_CUTOFF','GL_SPHERE_MAP', + 'GL_SPECULAR','GL_SOURCE2_RGB_EXT','GL_SOURCE2_RGB','GL_SOURCE2_ALPHA_EXT','GL_SOURCE2_ALPHA','GL_SOURCE1_RGB_EXT', + 'GL_SOURCE1_RGB','GL_SOURCE1_ALPHA_EXT','GL_SOURCE1_ALPHA','GL_SOURCE0_RGB_EXT','GL_SOURCE0_RGB','GL_SOURCE0_ALPHA_EXT', + 'GL_SOURCE0_ALPHA','GL_SMOOTH','GL_SHORT','GL_SHININESS','GL_SHADE_MODEL','GL_SET','GL_SELECTION_BUFFER_SIZE', + 'GL_SELECTION_BUFFER_POINTER','GL_SELECT','GL_SCISSOR_TEST','GL_SCISSOR_BOX','GL_SCISSOR_BIT','GL_S','GL_RIGHT', + 'GL_RGB_SCALE_EXT','GL_RGB_SCALE','GL_RGBA_MODE','GL_RGBA8','GL_RGBA4','GL_RGBA2','GL_RGBA16','GL_RGBA12','GL_RGBA', + 'GL_RGB8','GL_RGB5_A1','GL_RGB5','GL_RGB4','GL_RGB16','GL_RGB12','GL_RGB10_A2','GL_RGB10','GL_RGB','GL_RETURN', + 'GL_REPLACE','GL_REPEAT','GL_RENDER_MODE','GL_RENDERER','GL_RENDER','GL_RED_SCALE','GL_RED_BITS','GL_RED_BIAS', + 'GL_RED','GL_READ_BUFFER','GL_R3_G3_B2','GL_R','GL_QUAD_STRIP','GL_QUADS','GL_QUADRATIC_ATTENUATION','GL_Q', + 'GL_PROXY_TEXTURE_2D','GL_PROXY_TEXTURE_1D','GL_PROJECTION_STACK_DEPTH','GL_PROJECTION_MATRIX','GL_PROJECTION', + 'GL_PRIMARY_COLOR_EXT','GL_PRIMARY_COLOR','GL_PREVIOUS_EXT','GL_PREVIOUS','GL_POSITION','GL_POLYGON_TOKEN', + 'GL_POLYGON_STIPPLE_BIT','GL_POLYGON_STIPPLE','GL_POLYGON_SMOOTH_HINT','GL_POLYGON_SMOOTH','GL_POLYGON_OFFSET_UNITS', + 'GL_POLYGON_OFFSET_POINT','GL_POLYGON_OFFSET_LINE','GL_POLYGON_OFFSET_FILL','GL_POLYGON_OFFSET_FACTOR','GL_POLYGON_MODE', + 'GL_POLYGON_BIT','GL_POLYGON','GL_POINT_TOKEN','GL_POINT_SMOOTH_HINT','GL_POINT_SMOOTH','GL_POINT_SIZE_RANGE', + 'GL_POINT_SIZE_GRANULARITY','GL_POINT_SIZE','GL_POINT_BIT','GL_POINTS','GL_POINT','GL_PIXEL_MODE_BIT', + 'GL_PIXEL_MAP_S_TO_S_SIZE','GL_PIXEL_MAP_S_TO_S','GL_PIXEL_MAP_R_TO_R_SIZE','GL_PIXEL_MAP_R_TO_R','GL_PIXEL_MAP_I_TO_R_SIZE', + 'GL_PIXEL_MAP_I_TO_R','GL_PIXEL_MAP_I_TO_I_SIZE','GL_PIXEL_MAP_I_TO_I','GL_PIXEL_MAP_I_TO_G_SIZE','GL_PIXEL_MAP_I_TO_G', + 'GL_PIXEL_MAP_I_TO_B_SIZE','GL_PIXEL_MAP_I_TO_B','GL_PIXEL_MAP_I_TO_A_SIZE','GL_PIXEL_MAP_I_TO_A','GL_PIXEL_MAP_G_TO_G_SIZE', + 'GL_PIXEL_MAP_G_TO_G','GL_PIXEL_MAP_B_TO_B_SIZE','GL_PIXEL_MAP_B_TO_B','GL_PIXEL_MAP_A_TO_A_SIZE','GL_PIXEL_MAP_A_TO_A', + 'GL_PHONG_WIN','GL_PHONG_HINT_WIN','GL_PERSPECTIVE_CORRECTION_HINT','GL_PASS_THROUGH_TOKEN','GL_PACK_SWAP_BYTES', + 'GL_PACK_SKIP_ROWS','GL_PACK_SKIP_PIXELS','GL_PACK_ROW_LENGTH','GL_PACK_LSB_FIRST','GL_PACK_ALIGNMENT','GL_OUT_OF_MEMORY', + 'GL_OR_REVERSE','GL_OR_INVERTED','GL_ORDER','GL_OR','GL_OPERAND2_RGB_EXT','GL_OPERAND2_RGB','GL_OPERAND2_ALPHA_EXT', + 'GL_OPERAND2_ALPHA','GL_OPERAND1_RGB_EXT','GL_OPERAND1_RGB','GL_OPERAND1_ALPHA_EXT','GL_OPERAND1_ALPHA','GL_OPERAND0_RGB_EXT', + 'GL_OPERAND0_RGB','GL_OPERAND0_ALPHA_EXT','GL_OPERAND0_ALPHA','GL_ONE_MINUS_SRC_COLOR','GL_ONE_MINUS_SRC_ALPHA', + 'GL_ONE_MINUS_DST_COLOR','GL_ONE_MINUS_DST_ALPHA','GL_ONE','GL_OBJECT_PLANE','GL_OBJECT_LINEAR','GL_NO_ERROR', + 'GL_NOTEQUAL','GL_NORMAL_ARRAY_TYPE_EXT','GL_NORMAL_ARRAY_TYPE','GL_NORMAL_ARRAY_STRIDE_EXT','GL_NORMAL_ARRAY_STRIDE', + 'GL_NORMAL_ARRAY_POINTER_EXT','GL_NORMAL_ARRAY_POINTER','GL_NORMAL_ARRAY_EXT','GL_NORMAL_ARRAY_COUNT_EXT', + 'GL_NORMAL_ARRAY','GL_NORMALIZE','GL_NOR','GL_NOOP','GL_NONE','GL_NICEST','GL_NEVER','GL_NEAREST_MIPMAP_NEAREST','GL_NEAREST_MIPMAP_LINEAR', + 'GL_NEAREST','GL_NAND','GL_NAME_STACK_DEPTH','GL_N3F_V3F','GL_MULT','GL_MODULATE','GL_MODELVIEW_STACK_DEPTH','GL_MODELVIEW_MATRIX', + 'GL_MODELVIEW','GL_MAX_VIEWPORT_DIMS','GL_MAX_TEXTURE_UNITS_ARB','GL_MAX_TEXTURE_UNITS','GL_MAX_TEXTURE_STACK_DEPTH', + 'GL_MAX_TEXTURE_SIZE','GL_MAX_PROJECTION_STACK_DEPTH','GL_MAX_PIXEL_MAP_TABLE','GL_MAX_NAME_STACK_DEPTH','GL_MAX_MODELVIEW_STACK_DEPTH', + 'GL_MAX_LIST_NESTING','GL_MAX_LIGHTS','GL_MAX_EVAL_ORDER','GL_MAX_ELEMENTS_VERTICES_WIN','GL_MAX_ELEMENTS_INDICES_WIN', + 'GL_MAX_CLIP_PLANES','GL_MAX_CLIENT_ATTRIB_STACK_DEPTH','GL_MAX_ATTRIB_STACK_DEPTH','GL_MATRIX_MODE','GL_MAP_STENCIL', + 'GL_MAP_COLOR','GL_MAP2_VERTEX_4','GL_MAP2_VERTEX_3','GL_MAP2_TEXTURE_COORD_4','GL_MAP2_TEXTURE_COORD_3','GL_MAP2_TEXTURE_COORD_2', + 'GL_MAP2_TEXTURE_COORD_1','GL_MAP2_NORMAL','GL_MAP2_INDEX','GL_MAP2_GRID_SEGMENTS','GL_MAP2_GRID_DOMAIN','GL_MAP2_COLOR_4', + 'GL_MAP1_VERTEX_4','GL_MAP1_VERTEX_3','GL_MAP1_TEXTURE_COORD_4','GL_MAP1_TEXTURE_COORD_3','GL_MAP1_TEXTURE_COORD_2', + 'GL_MAP1_TEXTURE_COORD_1','GL_MAP1_NORMAL','GL_MAP1_INDEX','GL_MAP1_GRID_SEGMENTS','GL_MAP1_GRID_DOMAIN', + 'GL_MAP1_COLOR_4','GL_LUMINANCE_ALPHA','GL_LUMINANCE8_ALPHA8','GL_LUMINANCE8','GL_LUMINANCE6_ALPHA2','GL_LUMINANCE4_ALPHA4', + 'GL_LUMINANCE4','GL_LUMINANCE16_ALPHA16','GL_LUMINANCE16','GL_LUMINANCE12_ALPHA4','GL_LUMINANCE12_ALPHA12','GL_LUMINANCE12', + 'GL_LUMINANCE','GL_LOGIC_OP_MODE','GL_LOGIC_OP','GL_LOAD','GL_LIST_MODE','GL_LIST_INDEX','GL_LIST_BIT', + 'GL_LIST_BASE','GL_LINE_WIDTH_RANGE','GL_LINE_WIDTH_GRANULARITY','GL_LINE_WIDTH','GL_LINE_TOKEN','GL_LINE_STRIP','GL_LINE_STIPPLE_REPEAT', + 'GL_LINE_STIPPLE_PATTERN','GL_LINE_STIPPLE','GL_LINE_SMOOTH_HINT','GL_LINE_SMOOTH','GL_LINE_RESET_TOKEN','GL_LINE_LOOP', + 'GL_LINE_BIT','GL_LINES','GL_LINEAR_MIPMAP_NEAREST','GL_LINEAR_MIPMAP_LINEAR','GL_LINEAR_ATTENUATION','GL_LINEAR', + 'GL_LINE','GL_LIGHT_MODEL_TWO_SIDE','GL_LIGHT_MODEL_LOCAL_VIEWER','GL_LIGHT_MODEL_AMBIENT','GL_LIGHTING_BIT', + 'GL_LIGHTING','GL_LIGHT7','GL_LIGHT6','GL_LIGHT5','GL_LIGHT4','GL_LIGHT3','GL_LIGHT2','GL_LIGHT1','GL_LIGHT0', + 'GL_LESS','GL_LEQUAL','GL_LEFT','GL_KEEP','GL_INVERT','GL_INVALID_VALUE','GL_INVALID_OPERATION','GL_INVALID_ENUM','GL_INTERPOLATE_EXT', + 'GL_INTERPOLATE','GL_INTENSITY8','GL_INTENSITY4','GL_INTENSITY16','GL_INTENSITY12','GL_INTENSITY','GL_INT', + 'GL_INDEX_WRITEMASK','GL_INDEX_SHIFT','GL_INDEX_OFFSET','GL_INDEX_MODE','GL_INDEX_LOGIC_OP','GL_INDEX_CLEAR_VALUE','GL_INDEX_BITS', + 'GL_INDEX_ARRAY_TYPE_EXT','GL_INDEX_ARRAY_TYPE','GL_INDEX_ARRAY_STRIDE_EXT','GL_INDEX_ARRAY_STRIDE','GL_INDEX_ARRAY_POINTER_EXT', + 'GL_INDEX_ARRAY_POINTER','GL_INDEX_ARRAY_EXT','GL_INDEX_ARRAY_COUNT_EXT','GL_INDEX_ARRAY','GL_INCR','GL_HINT_BIT', + 'GL_GREEN_SCALE','GL_GREEN_BITS','GL_GREEN_BIAS','GL_GREEN','GL_GREATER','GL_GEQUAL','GL_FRONT_RIGHT','GL_FRONT_LEFT', + 'GL_FRONT_FACE','GL_FRONT_AND_BACK','GL_FRONT','GL_FOG_START','GL_FOG_SPECULAR_TEXTURE_WIN','GL_FOG_MODE','GL_FOG_INDEX', + 'GL_FOG_HINT','GL_FOG_END','GL_FOG_DENSITY','GL_FOG_COLOR','GL_FOG_BIT','GL_FOG','GL_FLOAT','GL_FLAT','GL_FILL', + 'GL_FEEDBACK_BUFFER_TYPE','GL_FEEDBACK_BUFFER_SIZE','GL_FEEDBACK_BUFFER_POINTER','GL_FEEDBACK','GL_FASTEST','GL_FALSE', + 'GL_EYE_PLANE','GL_EYE_LINEAR','GL_EXT_vertex_array','GL_EXT_paletted_texture','GL_EXT_bgra','GL_EXTENSIONS','GL_EXP2', + 'GL_EXP','GL_EVAL_BIT','GL_EQUIV','GL_EQUAL','GL_ENABLE_BIT','GL_EMISSION','GL_EDGE_FLAG_ARRAY_STRIDE_EXT','GL_EDGE_FLAG_ARRAY_STRIDE', + 'GL_EDGE_FLAG_ARRAY_POINTER_EXT','GL_EDGE_FLAG_ARRAY_POINTER','GL_EDGE_FLAG_ARRAY_EXT','GL_EDGE_FLAG_ARRAY_COUNT_EXT','GL_EDGE_FLAG_ARRAY', + 'GL_EDGE_FLAG','GL_DST_COLOR','GL_DST_ALPHA','GL_DRAW_PIXEL_TOKEN','GL_DRAW_BUFFER','GL_DOUBLE_EXT','GL_DOUBLEBUFFER', + 'GL_DOUBLE','GL_DONT_CARE','GL_DOMAIN','GL_DITHER','GL_DIFFUSE','GL_DEPTH_WRITEMASK','GL_DEPTH_TEST','GL_DEPTH_SCALE', + 'GL_DEPTH_RANGE','GL_DEPTH_FUNC','GL_DEPTH_COMPONENT','GL_DEPTH_CLEAR_VALUE','GL_DEPTH_BUFFER_BIT','GL_DEPTH_BITS', + 'GL_DEPTH_BIAS','GL_DEPTH','GL_DECR','GL_DECAL','GL_CW','GL_CURRENT_TEXTURE_COORDS','GL_CURRENT_RASTER_TEXTURE_COORDS','GL_CURRENT_RASTER_POSITION_VALID', + 'GL_CURRENT_RASTER_POSITION','GL_CURRENT_RASTER_INDEX','GL_CURRENT_RASTER_DISTANCE','GL_CURRENT_RASTER_COLOR','GL_CURRENT_NORMAL', + 'GL_CURRENT_INDEX','GL_CURRENT_COLOR','GL_CURRENT_BIT','GL_CULL_FACE_MODE','GL_CULL_FACE','GL_COPY_PIXEL_TOKEN', + 'GL_COPY_INVERTED','GL_COPY','GL_CONSTANT_EXT','GL_CONSTANT_ATTENUATION','GL_CONSTANT','GL_COMPILE_AND_EXECUTE','GL_COMPILE','GL_COMBINE_RGB_EXT', + 'GL_COMBINE_RGB','GL_COMBINE_EXT','GL_COMBINE_ALPHA_EXT','GL_COMBINE_ALPHA','GL_COMBINE','GL_COLOR_WRITEMASK', + 'GL_COLOR_TABLE_WIDTH_EXT','GL_COLOR_TABLE_RED_SIZE_EXT','GL_COLOR_TABLE_LUMINANCE_SIZE_EXT','GL_COLOR_TABLE_INTENSITY_SIZE_EXT', + 'GL_COLOR_TABLE_GREEN_SIZE_EXT','GL_COLOR_TABLE_FORMAT_EXT','GL_COLOR_TABLE_BLUE_SIZE_EXT','GL_COLOR_TABLE_ALPHA_SIZE_EXT', + 'GL_COLOR_MATERIAL_PARAMETER','GL_COLOR_MATERIAL_FACE','GL_COLOR_MATERIAL','GL_COLOR_LOGIC_OP','GL_COLOR_INDEXES', + 'GL_COLOR_INDEX8_EXT','GL_COLOR_INDEX4_EXT','GL_COLOR_INDEX2_EXT','GL_COLOR_INDEX1_EXT','GL_COLOR_INDEX16_EXT', + 'GL_COLOR_INDEX12_EXT','GL_COLOR_INDEX','GL_COLOR_CLEAR_VALUE','GL_COLOR_BUFFER_BIT','GL_COLOR_ARRAY_TYPE_EXT', + 'GL_COLOR_ARRAY_TYPE','GL_COLOR_ARRAY_STRIDE_EXT','GL_COLOR_ARRAY_STRIDE','GL_COLOR_ARRAY_SIZE_EXT','GL_COLOR_ARRAY_SIZE', + 'GL_COLOR_ARRAY_POINTER_EXT','GL_COLOR_ARRAY_POINTER','GL_COLOR_ARRAY_EXT','GL_COLOR_ARRAY_COUNT_EXT','GL_COLOR_ARRAY', + 'GL_COLOR','GL_COEFF','GL_CLIP_PLANE5','GL_CLIP_PLANE4','GL_CLIP_PLANE3','GL_CLIP_PLANE2','GL_CLIP_PLANE1','GL_CLIP_PLANE0', + 'GL_CLIENT_VERTEX_ARRAY_BIT','GL_CLIENT_PIXEL_STORE_BIT','GL_CLIENT_ATTRIB_STACK_DEPTH','GL_CLIENT_ALL_ATTRIB_BITS', + 'GL_CLIENT_ACTIVE_TEXTURE_ARB','GL_CLIENT_ACTIVE_TEXTURE','GL_CLEAR','GL_CLAMP','GL_CCW','GL_C4UB_V3F','GL_C4UB_V2F', + 'GL_C4F_N3F_V3F','GL_C3F_V3F','GL_BYTE','GL_BLUE_SCALE','GL_BLUE_BITS','GL_BLUE_BIAS','GL_BLUE','GL_BLEND_SRC','GL_BLEND_DST', + 'GL_BLEND','GL_BITMAP_TOKEN','GL_BITMAP','GL_BGR_EXT','GL_BGRA_EXT','GL_BACK_RIGHT','GL_BACK_LEFT','GL_BACK', + 'GL_AUX_BUFFERS','GL_AUX3','GL_AUX2','GL_AUX1','GL_AUX0','GL_AUTO_NORMAL','GL_ATTRIB_STACK_DEPTH','GL_AND_REVERSE', + 'GL_AND_INVERTED','GL_AND','GL_AMBIENT_AND_DIFFUSE','GL_AMBIENT','GL_ALWAYS','GL_ALPHA_TEST_REF','GL_ALPHA_TEST_FUNC', + 'GL_ALPHA_TEST','GL_ALPHA_SCALE','GL_ALPHA_BITS','GL_ALPHA_BIAS','GL_ALPHA8','GL_ALPHA4','GL_ALPHA16','GL_ALPHA12', + 'GL_ALPHA','GL_ALL_ATTRIB_BITS','GL_ADD_SIGNED_EXT','GL_ADD_SIGNED','GL_ADD','GL_ACTIVE_TEXTURE_ARB','GL_ACTIVE_TEXTURE', + 'GL_ACCUM_RED_BITS','GL_ACCUM_GREEN_BITS','GL_ACCUM_CLEAR_VALUE','GL_ACCUM_BUFFER_BIT','GL_ACCUM_BLUE_BITS','GL_ACCUM_ALPHA_BITS', + 'GL_ACCUM','GL_4_BYTES','GL_4D_COLOR_TEXTURE','GL_3_BYTES','GL_3D_COLOR_TEXTURE','GL_3D_COLOR','GL_3D','GL_2_BYTES', + 'GL_2D','GLU_V_STEP','GLU_VERTEX','GLU_VERSION_1_2','GLU_VERSION_1_1','GLU_VERSION','GLU_U_STEP','GLU_UNKNOWN','GLU_TRUE', + 'GLU_TESS_WINDING_RULE','GLU_TESS_WINDING_POSITIVE','GLU_TESS_WINDING_ODD','GLU_TESS_WINDING_NONZERO','GLU_TESS_WINDING_NEGATIVE', + 'GLU_TESS_WINDING_ABS_GEQ_TWO','GLU_TESS_VERTEX_DATA','GLU_TESS_VERTEX','GLU_TESS_TOLERANCE','GLU_TESS_NEED_COMBINE_CALLBACK','GLU_TESS_MISSING_END_POLYGON', + 'GLU_TESS_MISSING_END_CONTOUR','GLU_TESS_MISSING_BEGIN_POLYGON','GLU_TESS_MISSING_BEGIN_CONTOUR','GLU_TESS_ERROR_DATA', + 'GLU_TESS_ERROR8','GLU_TESS_ERROR7','GLU_TESS_ERROR6','GLU_TESS_ERROR5','GLU_TESS_ERROR4','GLU_TESS_ERROR3','GLU_TESS_ERROR2', + 'GLU_TESS_ERROR1','GLU_TESS_ERROR','GLU_TESS_END_DATA','GLU_TESS_END','GLU_TESS_EDGE_FLAG_DATA','GLU_TESS_EDGE_FLAG', + 'GLU_TESS_COORD_TOO_LARGE','GLU_TESS_COMBINE_DATA','GLU_TESS_COMBINE','GLU_TESS_BOUNDARY_ONLY','GLU_TESS_BEGIN_DATA', + 'GLU_TESS_BEGIN','GLU_SMOOTH','GLU_SILHOUETTE','GLU_SAMPLING_TOLERANCE','GLU_SAMPLING_METHOD','GLU_POINT','GLU_PATH_LENGTH', + 'GLU_PARAMETRIC_TOLERANCE','GLU_PARAMETRIC_ERROR','GLU_OUT_OF_MEMORY','GLU_OUTSIDE','GLU_OUTLINE_POLYGON','GLU_OUTLINE_PATCH', + 'GLU_NURBS_ERROR9','GLU_NURBS_ERROR8','GLU_NURBS_ERROR7','GLU_NURBS_ERROR6','GLU_NURBS_ERROR5','GLU_NURBS_ERROR4', + 'GLU_NURBS_ERROR37','GLU_NURBS_ERROR36','GLU_NURBS_ERROR35','GLU_NURBS_ERROR34','GLU_NURBS_ERROR33','GLU_NURBS_ERROR32', + 'GLU_NURBS_ERROR31','GLU_NURBS_ERROR30','GLU_NURBS_ERROR3','GLU_NURBS_ERROR29','GLU_NURBS_ERROR28','GLU_NURBS_ERROR27','GLU_NURBS_ERROR26', + 'GLU_NURBS_ERROR25','GLU_NURBS_ERROR24','GLU_NURBS_ERROR23','GLU_NURBS_ERROR22','GLU_NURBS_ERROR21','GLU_NURBS_ERROR20', + 'GLU_NURBS_ERROR2','GLU_NURBS_ERROR19','GLU_NURBS_ERROR18','GLU_NURBS_ERROR17','GLU_NURBS_ERROR16','GLU_NURBS_ERROR15','GLU_NURBS_ERROR14', + 'GLU_NURBS_ERROR13','GLU_NURBS_ERROR12','GLU_NURBS_ERROR11','GLU_NURBS_ERROR10','GLU_NURBS_ERROR1','GLU_NONE', + 'GLU_MAP1_TRIM_3','GLU_MAP1_TRIM_2','GLU_LINE','GLU_INVALID_VALUE','GLU_INVALID_ENUM','GLU_INTERIOR','GLU_INSIDE','GLU_INCOMPATIBLE_GL_VERSION', + 'GLU_FLAT','GLU_FILL','GLU_FALSE','GLU_EXTERIOR','GLU_EXTENSIONS','GLU_ERROR','GLU_END','GLU_EDGE_FLAG','GLU_DOMAIN_DISTANCE', + 'GLU_DISPLAY_MODE','GLU_CW','GLU_CULLING','GLU_CCW','GLU_BEGIN','GLU_AUTO_LOAD_MATRIX','CHANNEL_UNORDERED','CHANNEL_ORDERED', + 'CHANNEL_MAX' + ), + 2 => array( + + // Red Lowercase Keywords + + 'WriteWord','WriteString','WriteReal','WriteLine','WriteInt','WriteFloat','WriteDouble','WriteChar','WriteByte', + 'windowwidth','windowheight','waittimer','Vec4','Vec3','Vec2','val','UpdateJoystick','ucase$','Transpose','tickcount', + 'textscroll','textrows','textmode','textcols','tanh','tand','tan','synctimercatchup','synctimer','swapbuffers', + 'str$','stopsoundvoice','stopsounds','stopmusic','sqrt','sqr','sprzorder','spryvel','sprytiles','sprysize','spryrepeat', + 'spryflip','sprycentre','spry','sprxvel','sprxtiles','sprxsize','sprxrepeat','sprxflip','sprxcentre','sprx', + 'sprvisible','sprvel','sprtype','sprtop','sprspin','sprsolid','sprsetzorder','sprsetyvel','sprsetysize','sprsetyrepeat', + 'sprsetyflip','sprsetycentre','sprsety','sprsetxvel','sprsetxsize','sprsetxrepeat','sprsetxflip','sprsetxcentre', + 'sprsetx','sprsetvisible','sprsetvel','sprsettiles','sprsettextures','sprsettexture','sprsetspin','sprsetsolid', + 'sprsetsize','sprsetscale','sprsetpos','sprsetparallax','sprsetframe','sprsetcolor','sprsetanimspeed','sprsetanimloop', + 'sprsetangle','sprsetalpha','sprscale','sprright','sprpos','sprparallax','sprleft','spriteareawidth','spriteareaheight', + 'sprframe','sprcolor','sprcameraz','sprcameray','sprcamerax','sprcamerasetz','sprcamerasety','sprcamerasetx', + 'sprcamerasetpos','sprcamerasetfov','sprcamerasetangle','sprcamerapos','sprcamerafov','sprcameraangle', + 'sprbottom','spranimspeed','spranimloop','spranimdone','sprangle','spralpha','spraddtextures','spraddtexture', + 'sounderror','sleep','sind','sin','showcursor','sgn','settextscroll','setmusicvolume','SendMessage','Seek', + 'scankeydown','RTInvert','rnd','right$','resizetext','resizespritearea','RejectConnection','ReceiveMessage','ReadWord', + 'ReadText','ReadReal','ReadLine','ReadInt','ReadFloat','ReadDouble','ReadChar','ReadByte','randomize','printr', + 'print','pow','playsound','playmusic','performancecounter','Orthonormalize','OpenFileWrite','OpenFileRead','Normalize', + 'newtilemap','newsprite','NewServer','NewConnection','musicplaying','mouse_yd','mouse_y','mouse_xd','mouse_x', + 'mouse_wheel','mouse_button','mid$','MessageSmoothed','MessageReliable','MessagePending','MessageChannel','maxtextureunits', + 'MatrixZero','MatrixTranslate','MatrixScale','MatrixRotateZ','MatrixRotateY','MatrixRotateX','MatrixRotate','MatrixIdentity', + 'MatrixCrossProduct','MatrixBasis','log','locate','loadtexture','loadsound','loadmipmaptexture','loadmipmapimagestrip', + 'loadimagestrip','loadimage','Length','len','left$','lcase$','keydown','Joy_Y','Joy_X','Joy_Up','Joy_Right','Joy_Left', + 'Joy_Keys','Joy_Down','Joy_Button','Joy_3','Joy_2','Joy_1','Joy_0','int','inscankey','input$','inkey$','inittimer', + 'imagewidth','imagestripframes','imageheight','imageformat','imagedatatype','hidecursor','glViewport','glVertex4sv', + 'glVertex4s','glVertex4iv','glVertex4i','glVertex4fv','glVertex4f','glVertex4dv','glVertex4d','glVertex3sv','glVertex3s', + 'glVertex3iv','glVertex3i','glVertex3fv','glVertex3f','glVertex3dv','glVertex3d','glVertex2sv','glVertex2s','glVertex2iv', + 'glVertex2i','glVertex2fv','glVertex2f','glVertex2dv','glVertex2d','gluPerspective','gluOrtho2D','gluLookAt', + 'glubuild2dmipmaps','glTranslatef','glTranslated','gltexsubimage2d','glTexParameteriv','glTexParameteri', + 'glTexParameterfv','glTexParameterf','glteximage2d','glTexGeniv','glTexGeni','glTexGenfv','glTexGenf','glTexGendv', + 'glTexGend','glTexEnviv','glTexEnvi','glTexEnvfv','glTexEnvf','glTexCoord4sv','glTexCoord4s','glTexCoord4iv','glTexCoord4i', + 'glTexCoord4fv','glTexCoord4f','glTexCoord4dv','glTexCoord4d','glTexCoord3sv','glTexCoord3s','glTexCoord3iv','glTexCoord3i', + 'glTexCoord3fv','glTexCoord3f','glTexCoord3dv','glTexCoord3d','glTexCoord2sv','glTexCoord2s','glTexCoord2iv','glTexCoord2i', + 'glTexCoord2fv','glTexCoord2f','glTexCoord2dv','glTexCoord2d','glTexCoord1sv','glTexCoord1s','glTexCoord1iv','glTexCoord1i','glTexCoord1fv', + 'glTexCoord1f','glTexCoord1dv','glTexCoord1d','glStencilOp','glStencilMask','glStencilFunc','glShadeModel','glSelectBuffer', + 'glScissor','glScalef','glScaled','glRotatef','glRotated','glRenderMode','glRectsv','glRects','glRectiv','glRecti', + 'glRectfv','glRectf','glRectdv','glRectd','glReadBuffer','glRasterPos4sv','glRasterPos4s','glRasterPos4iv', + 'glRasterPos4i','glRasterPos4fv','glRasterPos4f','glRasterPos4dv','glRasterPos4d','glRasterPos3sv','glRasterPos3s', + 'glRasterPos3iv','glRasterPos3i','glRasterPos3fv','glRasterPos3f','glRasterPos3dv','glRasterPos3d','glRasterPos2sv', + 'glRasterPos2s','glRasterPos2iv','glRasterPos2i','glRasterPos2fv','glRasterPos2f','glRasterPos2dv','glRasterPos2d', + 'glPushName','glPushMatrix','glPushClientAttrib','glPushAttrib','glPrioritizeTextures','glPopName','glPopMatrix', + 'glPopClientAttrib','glPopAttrib','glpolygonstipple','glPolygonOffset','glPolygonMode','glPointSize','glPixelZoom', + 'glPixelTransferi','glPixelTransferf','glPixelStorei','glPixelStoref','glPassThrough','glOrtho','glNormal3sv','glNormal3s', + 'glNormal3iv','glNormal3i','glNormal3fv','glNormal3f','glNormal3dv','glNormal3d','glNormal3bv','glNormal3b','glNewList', + 'glMultMatrixf','glMultMatrixd','glmultitexcoord2f','glmultitexcoord2d','glMatrixMode','glMaterialiv','glMateriali', + 'glMaterialfv','glMaterialf','glMapGrid2f','glMapGrid2d','glMapGrid1f','glMapGrid1d','glLogicOp','glLoadName','glLoadMatrixf', + 'glLoadMatrixd','glLoadIdentity','glListBase','glLineWidth','glLineStipple','glLightModeliv','glLightModeli','glLightModelfv', + 'glLightModelf','glLightiv','glLighti','glLightfv','glLightf','glIsTexture','glIsList','glIsEnabled','glInitNames', + 'glIndexubv','glIndexub','glIndexsv','glIndexs','glIndexMask','glIndexiv','glIndexi','glIndexfv','glIndexf','glIndexdv', + 'glIndexd','glHint','glGetTexParameteriv','glGetTexParameterfv','glGetTexLevelParameteriv','glGetTexLevelParameterfv', + 'glGetTexGeniv','glGetTexGenfv','glGetTexGendv','glGetTexEnviv','glGetTexEnvfv','glgetstring','glgetpolygonstipple','glGetPixelMapuiv', + 'glGetMaterialiv','glGetMaterialfv','glGetLightiv','glGetLightfv','glGetIntegerv','glGetFloatv', + 'glGetError','glGetDoublev','glGetClipPlane','glGetBooleanv','glgentextures','glgentexture', + 'glgenlists','glFrustum','glFrontFace','glFogiv','glFogi','glFogfv','glFogf','glFlush','glFinish','glFeedbackBuffer', + 'glEvalPoint2','glEvalPoint1','glEvalMesh2','glEvalMesh1','glEvalCoord2fv','glEvalCoord2f','glEvalCoord2dv','glEvalCoord2d', + 'glEvalCoord1fv','glEvalCoord1f','glEvalCoord1dv','glEvalCoord1d','glEndList','glEnd','glEnableClientState','glEnable', + 'glEdgeFlagv','glEdgeFlag','glDrawBuffer','glDrawArrays','glDisableClientState','glDisable','glDepthRange','glDepthMask', + 'glDepthFunc','gldeletetextures','gldeletetexture','gldeletelists','glCullFace','glCopyTexSubImage2D','glCopyTexSubImage1D', + 'glCopyTexImage2D','glCopyTexImage1D','glColorMaterial','glColorMask','glColor4usv','glColor4us','glColor4uiv','glColor4ui', + 'glColor4ubv','glColor4ub','glColor4sv','glColor4s','glColor4iv','glColor4i','glColor4fv','glColor4f','glColor4dv', + 'glColor4d','glColor4bv','glColor4b','glColor3usv','glColor3us','glColor3uiv','glColor3ui','glColor3ubv','glColor3ub', + 'glColor3sv','glColor3s','glColor3iv','glColor3i','glColor3fv','glColor3f','glColor3dv','glColor3d','glColor3bv', + 'glColor3b','glClipPlane','glClearStencil','glClearIndex','glClearDepth','glClearColor','glClearAccum','glClear', + 'glcalllists','glCallList','glBlendFunc','glBindTexture','glBegin','glArrayElement','glAreTexturesResident', + 'glAlphaFunc','glactivetexture','glAccum','font','FindNextFile','FindFirstFile','FindClose','FileError', + 'extensionsupported','exp','execute','EndOfFile','drawtext','divbyzero','Determinant','deletesprite','deletesound', + 'DeleteServer','deleteimage','DeleteConnection','defaultfont','CrossProduct','cosd','cos','copysprite','ConnectionPending', + 'ConnectionHandShaking','ConnectionConnected','ConnectionAddress','compilererrorline','compilererrorcol','compilererror', + 'compilefile','compile','color','cls','CloseFile','clearregion','clearline','clearkeys','chr$','charat$','bindsprite', + 'beep','atnd','atn2d','atn2','atn','atand','asc','argcount','arg','animatesprites','AcceptConnection','abs' + ), + 3 => array( + + // Blue Lowercase Keywords + + 'xor','while','wend','until','type','traditional_print','traditional','to','then','struc','string','step','single', + 'run','return','reset','read','or','null','not','next','lor','loop','language','land','integer','input','if', + 'goto','gosub','for','endstruc','endif','end','elseif','else','double','do','dim','data','const','basic4gl','as', + 'and','alloc' + ) + + ), + 'SYMBOLS' => array( + '=', '<', '>', '>=', '<=', '+', '-', '*', '/', '%', '(', ')', '{', '}', '[', ']', '&', ';', ':', '$' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + 3 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000080; font-weight: bold;', + 2 => 'color: #FF0000;', + 3 => 'color: #0000FF;' + ), + 'COMMENTS' => array( + 1 => 'color: #657CC4; font-style: italic;' + ), + 'BRACKETS' => array( + 0 => 'color: #000080;' + ), + 'STRINGS' => array( + 0 => 'color: #008000;' + ), + 'NUMBERS' => array( + 0 => 'color: #000080; font-weight: bold;' + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #0000FF;' + ), + 'ESCAPE_CHAR' => array( + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); + +?> diff --git a/Sources/geshi/bf.php b/Sources/geshi/bf.php new file mode 100644 index 0000000..c06ca5b --- /dev/null +++ b/Sources/geshi/bf.php @@ -0,0 +1,115 @@ + 'Brainfuck', + 'COMMENT_SINGLE' => array(), + 'COMMENT_MULTI' => array(), + 'COMMENT_REGEXP' => array(1 => '/[^\n+\-<>\[\]\.\,Y]+/s'), + 'CASE_KEYWORDS' => GESHI_CAPS_UPPER, + 'QUOTEMARKS' => array(), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + ), + 'SYMBOLS' => array( + 0 => array('+', '-'), + 1 => array('[', ']'), + 2 => array('<', '>'), + 3 => array('.', ','), + 4 => array('Y') //Brainfork Extension ;-) + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;' + ), + 'BRACKETS' => array( + 0 => 'color: #660000;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + ), + 'METHODS' => array( + ), + 'SYMBOLS' => array( + 0 => 'color: #006600;', + 1 => 'color: #660000;', + 2 => 'color: #000066;', + 3 => 'color: #666600;', + 4 => 'color: #660066;' + ), + 'ESCAPE_CHAR' => array( + ), + 'SCRIPT' => array( + ), + 'REGEXPS' => array( + ) + ), + 'URLS' => array( + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4, + 'PARSER_CONTROL' => array( + 'ENABLE_FLAGS' => array( + 'STRINGS' => GESHI_NEVER, + 'NUMBERS' => GESHI_NEVER, + 'BRACKETS' => GESHI_NEVER + ), + 'KEYWORDS' => array( + 'DISALLOW_BEFORE' => '', + 'DISALLOW_AFTER' => '' + ) + ) +); + +?> \ No newline at end of file diff --git a/Sources/geshi/bibtex.php b/Sources/geshi/bibtex.php new file mode 100644 index 0000000..51cb4ce --- /dev/null +++ b/Sources/geshi/bibtex.php @@ -0,0 +1,183 @@ + 'BibTeX', + 'OOLANG' => false, + 'COMMENT_SINGLE' => array( + 1 => '%%' + ), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array(), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 0 => array( + '@comment','@preamble','@string' + ), + // Standard entry types + 1 => array( + '@article','@book','@booklet','@conference','@inbook', + '@incollection','@inproceedings','@manual','@mastersthesis', + '@misc','@phdthesis','@proceedings','@techreport','@unpublished' + ), + // Custom entry types + 2 => array( + '@collection','@patent','@webpage' + ), + // Standard entry field names + 3 => array( + 'address','annote','author','booktitle','chapter','crossref', + 'edition','editor','howpublished','institution','journal','key', + 'month','note','number','organization','pages','publisher','school', + 'series','title','type','volume','year' + ), + // Custom entry field names + 4 => array( + 'abstract','affiliation','chaptername','cited-by','cites', + 'contents','copyright','date-added','date-modified','doi','eprint', + 'isbn','issn','keywords','language','lccn','lib-congress', + 'location','price','rating','read','size','source','url' + ) + ), + 'URLS' => array( + 0 => '', + 1 => '', + 2 => '', + 3 => '', + 4 => '' + ), + 'SYMBOLS' => array( + '{', '}', '#', '=', ',' + ), + 'CASE_SENSITIVE' => array( + 1 => false, + 2 => false, + 3 => false, + 4 => false, + GESHI_COMMENTS => false, + ), + // Define the colors for the groups listed above + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #C02020;', // Standard entry types + 2 => 'color: #C02020;', // Custom entry types + 3 => 'color: #C08020;', // Standard entry field names + 4 => 'color: #C08020;' // Custom entry field names + ), + 'COMMENTS' => array( + 1 => 'color: #2C922C; font-style: italic;' + ), + 'STRINGS' => array( + 0 => 'color: #2020C0;' + ), + 'SYMBOLS' => array( + 0 => 'color: #E02020;' + ), + 'REGEXPS' => array( + 1 => 'color: #2020C0;', // {...} + 2 => 'color: #C08020;', // BibDesk fields + 3 => 'color: #800000;' // LaTeX commands + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000000; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #E02020;' + ), + 'NUMBERS' => array( + ), + 'METHODS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'REGEXPS' => array( + // {parameters} + 1 => array( + GESHI_SEARCH => "(?<=\\{)(?:\\{(?R)\\}|[^\\{\\}])*(?=\\})", + GESHI_REPLACE => '\0', + GESHI_MODIFIERS => 's', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 2 => array( + GESHI_SEARCH => "\bBdsk-(File|Url)-\d+", + GESHI_REPLACE => '\0', + GESHI_MODIFIERS => 'Us', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + 3 => array( + GESHI_SEARCH => "\\\\[A-Za-z0-9]*+", + GESHI_REPLACE => '\0', + GESHI_MODIFIERS => 'Us', + GESHI_BEFORE => '', + GESHI_AFTER => '' + ), + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'OBJECT_SPLITTERS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'PARSER_CONTROL' => array( + 'ENABLE_FLAGS' => array( + 'NUMBERS' => GESHI_NEVER + ), + 'KEYWORDS' => array( + 3 => array( + 'DISALLOWED_AFTER' => '(?=\s*=)' + ), + 4 => array( + 'DISALLOWED_AFTER' => '(?=\s*=)' + ), + ) + ) +); + +?> \ No newline at end of file diff --git a/Sources/geshi/blitzbasic.php b/Sources/geshi/blitzbasic.php new file mode 100644 index 0000000..1d3c08d --- /dev/null +++ b/Sources/geshi/blitzbasic.php @@ -0,0 +1,185 @@ + 'BlitzBasic', + 'COMMENT_SINGLE' => array(1 => ';'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"'), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array( + 1 => array( + 'If','EndIf','ElseIf','Else','While','Wend','Return','Next','Include','End Type','End Select','End If','End Function','End','Select', + 'Type','Forever','For','Or','And','AppTitle','Case','Goto','Gosub','Step','Stop','Int','Last','False','Then','To','True','Until','Float', + 'String','Before','Not' + ), + 2 => array( + // All Functions - 2D BB and 3D BB + 'Xor','WriteString','WriteShort','WritePixelFast','WritePixel','WriteLine','WriteInt','WriteFloat','WriteFile','WriteBytes', + 'WriteByte','Write','WaitTimer','WaitMouse','WaitKey','WaitJoy','VWait','Viewport', + 'Upper','UpdateGamma','UnlockBuffer','UDPTimeouts','UDPStreamPort','UDPStreamIP','UDPMsgPort','UDPMsgIP', + 'Trim','TotalVidMem','TileImage','TileBlock','TFormImage','TFormFilter','Text', + 'TCPTimeouts','TCPStreamPort','TCPStreamIP','Tan','SystemProperty','StringWidth','StringHeight','Str','StopNetGame', + 'StopChannel','StartNetGame','Sqr','SoundVolume','SoundPitch','SoundPan','Sin','Shr', + 'ShowPointer','Shl','Sgn','SetGfxDriver','SetGamma','SetFont','SetEnv','SetBuffer','SendUDPMsg','SendNetMsg', + 'SeekFile','SeedRnd','ScanLine','ScaleImage','SaveImage','SaveBuffer','Sar','RuntimeError','RSet', + 'RotateImage','RndSeed','Rnd','Right','ResumeChannel','Restore','ResizeImage','ResizeBank','Replace', + 'Repeat','RecvUDPMsg','RecvNetMsg','RectsOverlap','Rect','ReadString','ReadShort','ReadPixelFast','ReadPixel','ReadLine', + 'ReadInt','ReadFloat','ReadFile','ReadDir','ReadBytes','ReadByte','ReadAvail','Read','Rand','Print', + 'PokeShort','PokeInt','PokeFloat','PokeByte','Plot','PlaySound','PlayMusic','PlayCDTrack','Pi','PeekShort', + 'PeekInt','PeekFloat','PeekByte','PauseChannel','Oval','Origin','OpenTCPStream','OpenMovie','OpenFile', + 'Null','NextFile','New','NetPlayerName','NetPlayerLocal','NetMsgType','NetMsgTo','NetMsgFrom', + 'NetMsgData','MovieWidth','MoviePlaying','MovieHeight','MoveMouse','MouseZSpeed','MouseZ','MouseYSpeed','MouseY','MouseXSpeed', + 'MouseX','MouseHit','MouseDown','Mod','Millisecs','MidHandle','Mid','MaskImage','LSet','Lower', + 'LoopSound','Log10','Log','LockBuffer','Locate','Local','LoadSound','LoadImage','LoadFont','LoadBuffer', + 'LoadAnimImage','Line','Len','Left','KeyHit','KeyDown','JoyZDir','JoyZ','JoyYDir', + 'JoyYaw','JoyY','JoyXDir','JoyX','JoyVDir','JoyV','JoyUDir','JoyU','JoyType','JoyRoll', + 'JoyPitch','JoyHit','JoyHat','JoyDown','JoinNetGame','Instr','Insert','Input', + 'ImageYHandle','ImageXHandle','ImageWidth','ImagesOverlap','ImagesCollide','ImageRectOverlap','ImageRectCollide','ImageHeight','ImageBuffer', + 'HostNetGame','HostIP','HidePointer','Hex','HandleImage','GraphicsWidth','GraphicsHeight','GraphicsDepth','GraphicsBuffer','Graphics', + 'GrabImage','Global','GFXModeWidth','GFXModeHeight','GfxModeExists','GFXModeDepth','GfxDriverName','GetMouse', + 'GetKey','GetJoy','GetEnv','GetColor','GammaRed','GammaGreen','GammaBlue','Function','FrontBuffer','FreeTimer', + 'FreeSound','FreeImage','FreeFont','FreeBank','FontWidth','FontHeight','FlushMouse','FlushKeys', + 'FlushJoy','Floor','Flip','First','FileType','FileSize','FilePos','Field', + 'Exp','Exit','ExecFile','Eof','EndGraphics','Each','DrawMovie','DrawImageRect','DrawImage','DrawBlockRect','DrawBlock', + 'DottedIP','Dim','DeleteNetPlayer','DeleteFile','DeleteDir','Delete','Delay','Default','DebugLog','Data', + 'CurrentTime','CurrentDir','CurrentDate','CreateUDPStream','CreateTimer','CreateTCPServer','CreateNetPlayer','CreateImage','CreateDir','CreateBank', + 'CountHostIPs','CountGFXModes','CountGfxDrivers','Cos','CopyStream','CopyRect','CopyPixelFast','CopyPixel','CopyImage','CopyFile', + 'CopyBank','Const','CommandLine','ColorRed','ColorGreen','ColorBlue','Color','ClsColor','Cls','CloseUDPStream', + 'CloseTCPStream','CloseTCPServer','CloseMovie','CloseFile','CloseDir','Chr','ChannelVolume','ChannelPlaying','ChannelPitch','ChannelPan', + 'ChangeDir','Ceil','CallDLL','Bin','BankSize','BackBuffer','AvailVidMem','AutoMidHandle', + 'ATan2','ATan','ASin','Asc','After','ACos','AcceptTCPStream','Abs', + // 3D Commands + 'Wireframe','Windowed3D','WBuffer','VertexZ','VertexY', + 'VertexX','VertexW','VertexV','VertexU','VertexTexCoords','VertexRed','VertexNZ','VertexNY','VertexNX','VertexNormal', + 'VertexGreen','VertexCoords','VertexColor','VertexBlue','VertexAlpha','VectorYaw','VectorPitch','UpdateWorld','UpdateNormals','TurnEntity', + 'TrisRendered','TriangleVertex','TranslateEntity','TFormVector','TFormPoint','TFormNormal','TFormedZ','TFormedY','TFormedX','TextureWidth', + 'TextureName','TextureHeight','TextureFilter','TextureCoords','TextureBuffer','TextureBlend','TerrainZ','TerrainY','TerrainX','TerrainSize', + 'TerrainShading','TerrainHeight','TerrainDetail','SpriteViewMode','ShowEntity','SetCubeFace','SetAnimTime','SetAnimKey','ScaleTexture','ScaleSprite', + 'ScaleMesh','ScaleEntity','RotateTexture','RotateSprite','RotateMesh','RotateEntity','ResetEntity','RenderWorld','ProjectedZ','ProjectedY', + 'ProjectedX','PositionTexture','PositionMesh','PositionEntity','PointEntity','PickedZ','PickedY','PickedX','PickedTriangle','PickedTime', + 'PickedSurface','PickedNZ','PickedNY','PickedNX','PickedEntity','PaintSurface','PaintMesh','PaintEntity','NameEntity','MoveEntity', + 'ModifyTerrain','MeshWidth','MeshHeight','MeshesIntersect','MeshDepth','MD2AnimTime','MD2AnimLength','MD2Animating','LoadTexture','LoadTerrain', + 'LoadSprite','LoadMesh','LoadMD2','LoaderMatrix','LoadBSP','LoadBrush','LoadAnimTexture','LoadAnimSeq','LoadAnimMesh','Load3DSound', + 'LinePick','LightRange','LightMesh','LightConeAngles','LightColor','HWMultiTex','HideEntity','HandleSprite','Graphics3D','GfxMode3DExists', + 'GfxMode3D','GfxDriverCaps3D','GfxDriver3D','GetSurfaceBrush','GetSurface','GetParent','GetMatElement','GetEntityType','GetEntityBrush','GetChild', + 'GetBrushTexture','FreeTexture','FreeEntity','FreeBrush','FlipMesh','FitMesh','FindSurface','FindChild','ExtractAnimSeq','EntityZ', + 'EntityYaw','EntityY','EntityX','EntityVisible','EntityType','EntityTexture','EntityShininess','EntityRoll','EntityRadius','EntityPitch', + 'EntityPickMode','EntityPick','EntityParent','EntityOrder','EntityName','EntityInView','EntityFX','EntityDistance','EntityColor','EntityCollided', + 'EntityBox','EntityBlend','EntityAutoFade','EntityAlpha','EmitSound','Dither','DeltaYaw','DeltaPitch','CreateTexture','CreateTerrain', + 'CreateSurface','CreateSprite','CreateSphere','CreatePlane','CreatePivot','CreateMirror','CreateMesh','CreateListener','CreateLight','CreateCylinder', + 'CreateCube','CreateCone','CreateCamera','CreateBrush','CountVertices','CountTriangles','CountSurfaces','CountGfxModes3D','CountCollisions','CountChildren', + 'CopyMesh','CopyEntity','CollisionZ','CollisionY','CollisionX','CollisionTriangle','CollisionTime','CollisionSurface','Collisions','CollisionNZ', + 'CollisionNY','CollisionNX','CollisionEntity','ClearWorld','ClearTextureFilters','ClearSurface','ClearCollisions','CaptureWorld','CameraZoom','CameraViewport', + 'CameraRange','CameraProjMode','CameraProject','CameraPick','CameraFogRange','CameraFogMode','CameraFogColor','CameraClsMode','CameraClsColor','BSPLighting', + 'BSPAmbientLight','BrushTexture','BrushShininess','BrushFX','BrushColor','BrushBlend','BrushAlpha','AntiAlias','AnimTime','AnimSeq', + 'AnimLength','Animating','AnimateMD2','Animate','AmbientLight','AlignToVector','AddVertex','AddTriangle','AddMesh','AddAnimSeq', + ) + ), + 'SYMBOLS' => array( + '(',')' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => false, + 2 => false, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #000066; font-weight: bold;', + 2 => 'color: #0000ff;' + ), + 'COMMENTS' => array( + 1 => 'color: #D9D100; font-style: italic;', + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;' + ), + 'BRACKETS' => array( + 0 => 'color: #000066;' + ), + 'STRINGS' => array( + 0 => 'color: #009900;' + ), + 'NUMBERS' => array( + 0 => 'color: #CC0000;' + ), + 'METHODS' => array( + 1 => 'color: #006600;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000066;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + 0 => '', + 1 => '', + ) + ), + 'URLS' => array( + 1 => '', + 2 => '' + ), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + 1 => '\\' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array(), + 'HIGHLIGHT_STRICT_BLOCK' => array( + 0 => false, + 1 => false + ) +); + +?> diff --git a/Sources/geshi/bnf.php b/Sources/geshi/bnf.php new file mode 100644 index 0000000..ca15cf9 --- /dev/null +++ b/Sources/geshi/bnf.php @@ -0,0 +1,119 @@ + 'bnf', + 'COMMENT_SINGLE' => array(';'), + 'COMMENT_MULTI' => array(), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array('"', "'"), + 'ESCAPE_CHAR' => '', + 'KEYWORDS' => array(), + 'SYMBOLS' => array( + 0 => array('(', ')'), + 1 => array('<', '>'), + 2 => array('[', ']'), + 3 => array('{', '}'), + 4 => array('=', '*', '/', '|', ':'), + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false + ), + 'STYLES' => array( + 'KEYWORDS' => array(), + 'COMMENTS' => array( + 0 => 'color: #666666; font-style: italic;', // Single Line comments + ), + 'ESCAPE_CHAR' => array( + 0 => '' + ), + 'BRACKETS' => array( + 0 => '' + ), + 'STRINGS' => array( + 0 => 'color: #a00;', + 1 => 'color: #a00;' + ), + 'NUMBERS' => array( + 0 => '' + ), + 'METHODS' => array( + 0 => '' + ), + 'SYMBOLS' => array( + 0 => 'color: #000066; font-weight: bold;', // Round brackets + 1 => 'color: #000066; font-weight: bold;', // Angel Brackets + 2 => 'color: #000066; font-weight: bold;', // Square Brackets + 3 => 'color: #000066; font-weight: bold;', // BRaces + 4 => 'color: #006600; font-weight: bold;', // Other operator symbols + ), + 'REGEXPS' => array( + 0 => 'color: #007;', + ), + 'SCRIPT' => array( + 0 => '' + ) + ), + 'URLS' => array(), + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array(), + 'REGEXPS' => array( + //terminal symbols + 0 => array( + GESHI_SEARCH => '(<)([^&]+?)(>)', + GESHI_REPLACE => '\\2', + GESHI_MODIFIERS => '', + GESHI_BEFORE => '\\1', + GESHI_AFTER => '\\3' + ), + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ) +); + +?> \ No newline at end of file diff --git a/Sources/geshi/boo.php b/Sources/geshi/boo.php new file mode 100644 index 0000000..b68d442 --- /dev/null +++ b/Sources/geshi/boo.php @@ -0,0 +1,217 @@ + 'Boo', + 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'''", "'", '"""', '"'), + 'HARDQUOTE' => array('"""', '"""'), + 'HARDESCAPE' => array('\"""'), + 'ESCAPE_CHAR' => '\\', + 'KEYWORDS' => array( + 1 => array(//Namespace + 'namespace', 'import', 'from' + ), + 2 => array(//Jump + 'yield', 'return', 'goto', 'continue', 'break' + ), + 3 => array(//Conditional + 'while', 'unless', 'then', 'in', 'if', 'for', 'else', 'elif' + ), + 4 => array(//Property + 'set', 'get' + ), + 5 => array(//Exception + 'try', 'raise', 'failure', 'except', 'ensure' + ), + 6 => array(//Visibility + 'public', 'private', 'protected', 'internal' + ), + 7 => array(//Define + 'struct', 'ref', 'of', 'interface', 'event', 'enum', 'do', 'destructor', 'def', 'constructor', 'class' + ), + 8 => array(//Cast + 'typeof', 'cast', 'as' + ), + 9 => array(//BiMacro + 'yieldAll', 'using', 'unchecked', 'rawArayIndexing', 'print', 'normalArrayIndexing', 'lock', + 'debug', 'checked', 'assert' + ), + 10 => array(//BiAttr + 'required', 'property', 'meta', 'getter', 'default' + ), + 11 => array(//BiFunc + 'zip', 'shellp', 'shellm', 'shell', 'reversed', 'range', 'prompt', + 'matrix', 'map', 'len', 'join', 'iterator', 'gets', 'enumerate', 'cat', 'array' + ), + 12 => array(//HiFunc + '__switch__', '__initobj__', '__eval__', '__addressof__', 'quack' + ), + 13 => array(//Primitive + 'void', 'ushort', 'ulong', 'uint', 'true', 'timespan', 'string', 'single', + 'short', 'sbyte', 'regex', 'object', 'null', 'long', 'int', 'false', 'duck', + 'double', 'decimal', 'date', 'char', 'callable', 'byte', 'bool' + ), + 14 => array(//Operator + 'not', 'or', 'and', 'is', 'isa', + ), + 15 => array(//Modifier + 'virtual', 'transient', 'static', 'partial', 'override', 'final', 'abstract' + ), + 16 => array(//Access + 'super', 'self' + ), + 17 => array(//Pass + 'pass' + ) + ), + 'SYMBOLS' => array( + '[|', '|]', '${', '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>', '+', '-', ';' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + 5 => true, + 6 => true, + 7 => true, + 8 => true, + 9 => true, + 10 => true, + 11 => true, + 12 => true, + 13 => true, + 14 => true, + 15 => true, + 16 => true, + 17 => true + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color:green;font-weight:bold;', + 2 => 'color:navy;', + 3 => 'color:blue;font-weight:bold;', + 4 => 'color:#8B4513;', + 5 => 'color:teal;font-weight:bold;', + 6 => 'color:blue;font-weight:bold;', + 7 => 'color:blue;font-weight:bold;', + 8 => 'color:blue;font-weight:bold;', + 9 => 'color:maroon;', + 10 => 'color:maroon;', + 11 => 'color:purple;', + 12 => 'color:#4B0082;', + 13 => 'color:purple;font-weight:bold;', + 14 => 'color:#008B8B;font-weight:bold;', + 15 => 'color:brown;', + 16 => 'color:black;font-weight:bold;', + 17 => 'color:gray;' + ), + 'COMMENTS' => array( + 1 => 'color: #999999; font-style: italic;', + 2 => 'color: #999999; font-style: italic;', + 'MULTI' => 'color: #008000; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #0000FF; font-weight: bold;', + 'HARD' => 'color: #0000FF; font-weight: bold;', + ), + 'BRACKETS' => array( + 0 => 'color: #006400;' + ), + 'STRINGS' => array( + 0 => 'color: #008000;', + 'HARD' => 'color: #008000;' + ), + 'NUMBERS' => array( + 0 => 'color: #00008B;' + ), + 'METHODS' => array( + 0 => 'color: 000000;', + 1 => 'color: 000000;' + ), + 'SYMBOLS' => array( + 0 => 'color: #006400;' + ), + 'REGEXPS' => array( + #0 => 'color: #0066ff;' + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => '', + 4 => '', + 5 => '', + 6 => '', + 7 => '', + 8 => '', + 9 => '', + 10 => '', + 11 => '', + 12 => '', + 13 => '', + 14 => '', + 15 => '', + 16 => '', + 17 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 0 => '.', + 1 => '::' + ), + 'REGEXPS' => array( + #0 => '%(@)?\/(?:(?(1)[^\/\\\\\r\n]+|[^\/\\\\\r\n \t]+)|\\\\[\/\\\\\w+()|.*?$^[\]{}\d])+\/%' + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); + +?> diff --git a/Sources/geshi/c.php b/Sources/geshi/c.php new file mode 100644 index 0000000..35d5b01 --- /dev/null +++ b/Sources/geshi/c.php @@ -0,0 +1,281 @@ + 'C', + 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'COMMENT_REGEXP' => array( + //Multiline-continued single-line comments + 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m', + //Multiline-continued preprocessor define + 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m' + ), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + 'ESCAPE_REGEXP' => array( + //Simple Single Char Escapes + 1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i", + //Hexadecimal Char Specs + 2 => "#\\\\x[\da-fA-F]{2}#", + //Hexadecimal Char Specs + 3 => "#\\\\u[\da-fA-F]{4}#", + //Hexadecimal Char Specs + 4 => "#\\\\U[\da-fA-F]{8}#", + //Octal Char Specs + 5 => "#\\\\[0-7]{1,3}#" + ), + 'NUMBERS' => + GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B | + GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI | + GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO, + 'KEYWORDS' => array( + 1 => array( + 'if', 'return', 'while', 'case', 'continue', 'default', + 'do', 'else', 'for', 'switch', 'goto' + ), + 2 => array( + 'null', 'false', 'break', 'true', 'function', 'enum', 'extern', 'inline' + ), + 3 => array( + // assert.h + 'assert', + + //complex.h + 'cabs', 'cacos', 'cacosh', 'carg', 'casin', 'casinh', 'catan', + 'catanh', 'ccos', 'ccosh', 'cexp', 'cimag', 'cis', 'clog', 'conj', + 'cpow', 'cproj', 'creal', 'csin', 'csinh', 'csqrt', 'ctan', 'ctanh', + + //ctype.h + 'digittoint', 'isalnum', 'isalpha', 'isascii', 'isblank', 'iscntrl', + 'isdigit', 'isgraph', 'islower', 'isprint', 'ispunct', 'isspace', + 'isupper', 'isxdigit', 'toascii', 'tolower', 'toupper', + + //inttypes.h + 'imaxabs', 'imaxdiv', 'strtoimax', 'strtoumax', 'wcstoimax', + 'wcstoumax', + + //locale.h + 'localeconv', 'setlocale', + + //math.h + 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'exp', + 'fabs', 'floor', 'frexp', 'ldexp', 'log', 'log10', 'modf', 'pow', + 'sin', 'sinh', 'sqrt', 'tan', 'tanh', + + //setjmp.h + 'longjmp', 'setjmp', + + //signal.h + 'raise', + + //stdarg.h + 'va_arg', 'va_copy', 'va_end', 'va_start', + + //stddef.h + 'offsetof', + + //stdio.h + 'clearerr', 'fclose', 'fdopen', 'feof', 'ferror', 'fflush', 'fgetc', + 'fgetpos', 'fgets', 'fopen', 'fprintf', 'fputc', 'fputchar', + 'fputs', 'fread', 'freopen', 'fscanf', 'fseek', 'fsetpos', 'ftell', + 'fwrite', 'getc', 'getch', 'getchar', 'gets', 'perror', 'printf', + 'putc', 'putchar', 'puts', 'remove', 'rename', 'rewind', 'scanf', + 'setbuf', 'setvbuf', 'snprintf', 'sprintf', 'sscanf', 'tmpfile', + 'tmpnam', 'ungetc', 'vfprintf', 'vfscanf', 'vprintf', 'vscanf', + 'vsprintf', 'vsscanf', + + //stdlib.h + 'abort', 'abs', 'atexit', 'atof', 'atoi', 'atol', 'bsearch', + 'calloc', 'div', 'exit', 'free', 'getenv', 'itoa', 'labs', 'ldiv', + 'ltoa', 'malloc', 'qsort', 'rand', 'realloc', 'srand', 'strtod', + 'strtol', 'strtoul', 'system', + + //string.h + 'memchr', 'memcmp', 'memcpy', 'memmove', 'memset', 'strcat', + 'strchr', 'strcmp', 'strcoll', 'strcpy', 'strcspn', 'strerror', + 'strlen', 'strncat', 'strncmp', 'strncpy', 'strpbrk', 'strrchr', + 'strspn', 'strstr', 'strtok', 'strxfrm', + + //time.h + 'asctime', 'clock', 'ctime', 'difftime', 'gmtime', 'localtime', + 'mktime', 'strftime', 'time', + + //wchar.h + 'btowc', 'fgetwc', 'fgetws', 'fputwc', 'fputws', 'fwide', + 'fwprintf', 'fwscanf', 'getwc', 'getwchar', 'mbrlen', 'mbrtowc', + 'mbsinit', 'mbsrtowcs', 'putwc', 'putwchar', 'swprintf', 'swscanf', + 'ungetwc', 'vfwprintf', 'vswprintf', 'vwprintf', 'wcrtomb', + 'wcscat', 'wcschr', 'wcscmp', 'wcscoll', 'wcscpy', 'wcscspn', + 'wcsftime', 'wcslen', 'wcsncat', 'wcsncmp', 'wcsncpy', 'wcspbrk', + 'wcsrchr', 'wcsrtombs', 'wcsspn', 'wcsstr', 'wcstod', 'wcstok', + 'wcstol', 'wcstoul', 'wcsxfrm', 'wctob', 'wmemchr', 'wmemcmp', + 'wmemcpy', 'wmemmove', 'wmemset', 'wprintf', 'wscanf', + + //wctype.h + 'iswalnum', 'iswalpha', 'iswcntrl', 'iswctype', 'iswdigit', + 'iswgraph', 'iswlower', 'iswprint', 'iswpunct', 'iswspace', + 'iswupper', 'iswxdigit', 'towctrans', 'towlower', 'towupper', + 'wctrans', 'wctype' + ), + 4 => array( + 'auto', 'char', 'const', 'double', 'float', 'int', 'long', + 'register', 'short', 'signed', 'sizeof', 'static', 'struct', + 'typedef', 'union', 'unsigned', 'void', 'volatile', 'wchar_t', + + 'int8', 'int16', 'int32', 'int64', + 'uint8', 'uint16', 'uint32', 'uint64', + + 'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t', + 'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t', + + 'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t', + 'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t', + + 'int8_t', 'int16_t', 'int32_t', 'int64_t', + 'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t', + + 'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t', + 'size_t', 'off_t' + ), + ), + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', + '+', '-', '*', '/', '%', + '=', '<', '>', + '!', '^', '&', '|', + '?', ':', + ';', ',' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, + 2 => true, + 3 => true, + 4 => true, + ), + 'STYLES' => array( + 'KEYWORDS' => array( + 1 => 'color: #b1b100;', + 2 => 'color: #000000; font-weight: bold;', + 3 => 'color: #000066;', + 4 => 'color: #993333;' + ), + 'COMMENTS' => array( + 1 => 'color: #666666; font-style: italic;', + 2 => 'color: #339933;', + 'MULTI' => 'color: #808080; font-style: italic;' + ), + 'ESCAPE_CHAR' => array( + 0 => 'color: #000099; font-weight: bold;', + 1 => 'color: #000099; font-weight: bold;', + 2 => 'color: #660099; font-weight: bold;', + 3 => 'color: #660099; font-weight: bold;', + 4 => 'color: #660099; font-weight: bold;', + 5 => 'color: #006699; font-weight: bold;', + 'HARD' => '', + ), + 'BRACKETS' => array( + 0 => 'color: #009900;' + ), + 'STRINGS' => array( + 0 => 'color: #ff0000;' + ), + 'NUMBERS' => array( + 0 => 'color: #0000dd;', + GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;', + GESHI_NUMBER_OCT_PREFIX => 'color: #208080;', + GESHI_NUMBER_HEX_PREFIX => 'color: #208080;', + GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;', + GESHI_NUMBER_FLT_NONSCI => 'color:#800080;' + ), + 'METHODS' => array( + 1 => 'color: #202020;', + 2 => 'color: #202020;' + ), + 'SYMBOLS' => array( + 0 => 'color: #339933;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + 'URLS' => array( + 1 => '', + 2 => '', + 3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAMEL}.html', + 4 => '' + ), + 'OOLANG' => true, + 'OBJECT_SPLITTERS' => array( + 1 => '.', + 2 => '::' + ), + 'REGEXPS' => array( + ), + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + 'TAB_WIDTH' => 4 +); + +?> \ No newline at end of file diff --git a/Sources/geshi/c_loadrunner.php b/Sources/geshi/c_loadrunner.php new file mode 100644 index 0000000..42b3d77 --- /dev/null +++ b/Sources/geshi/c_loadrunner.php @@ -0,0 +1,323 @@ + 'C (LoadRunner)', + 'COMMENT_SINGLE' => array(1 => '//'), + 'COMMENT_MULTI' => array('/*' => '*/'), + 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE, + 'QUOTEMARKS' => array("'", '"'), + 'ESCAPE_CHAR' => '', + // Escape characters within strings (like \\) are not highlighted differently in LoadRunner, so + // I am using GeSHi escape characters (or regular expressions) to highlight LoadRunner {parameters}. + // LoadRunner {parameters} must begin with a letter and contain only alphanumeric characters and '_' + 'ESCAPE_REGEXP' => array( + 0 => "#\{[a-zA-Z]{1}[a-zA-Z_]{0,}\}#", + ), + + // Keywords + 'KEYWORDS' => array( + // Keywords from http://en.wikipedia.org/wiki/C_syntax + 1 => array( + 'auto', 'break', 'case', 'char', 'const', 'continue', 'default', + 'do', 'double', 'else', 'enum', 'extern', 'float', 'for', 'goto', + 'if', 'inline', 'int', 'long', 'register', 'restrict', 'return', + 'short', 'signed', 'sizeof', 'static', 'struct', 'switch', + 'typedef', 'union', 'unsigned', 'void', 'volatile', 'while', + '_Bool', '_Complex', '_Imaginary' + ), + // C preprocessor directives from http://en.wikipedia.org/wiki/C_preprocessor + 2 => array( + '#define', '#if', '#ifdef', '#ifndef', '#include', '#else', '#elif', '#endif', '#pragma', '#undef' + ), + // Functions from lrun.h + 3 => array( + 'lr_start_transaction', 'lr_start_sub_transaction', 'lr_start_transaction_instance', 'lr_end_transaction', + 'lr_end_sub_transaction', 'lr_end_transaction_instance', 'lr_stop_transaction', 'lr_stop_transaction_instance', + 'lr_resume_transaction', 'lr_resume_transaction_instance', 'lr_wasted_time', 'lr_set_transaction', 'lr_user_data_point', + 'lr_user_data_point_instance', 'lr_user_data_point_ex', 'lr_user_data_point_instance_ex', 'lr_get_transaction_duration', + 'lr_get_trans_instance_duration', 'lr_get_transaction_think_time', 'lr_get_trans_instance_think_time', + 'lr_get_transaction_wasted_time', 'lr_get_trans_instance_wasted_time', 'lr_get_transaction_status', + 'lr_get_trans_instance_status', 'lr_set_transaction_status', 'lr_set_transaction_status_by_name', + 'lr_set_transaction_instance_status', 'lr_start_timer', 'lr_end_timer', 'lr_rendezvous', 'lr_rendezvous_ex', + 'lr_get_vuser_ip', 'lr_whoami', 'lr_get_host_name', 'lr_get_master_host_name', 'lr_get_attrib_long', + 'lr_get_attrib_string', 'lr_get_attrib_double', 'lr_paramarr_idx', 'lr_paramarr_random', 'lr_paramarr_len', + 'lr_param_unique', 'lr_param_sprintf', 'lr_load_dll', 'lr_continue_on_error', 'lr_decrypt', 'lr_abort', 'lr_exit', + 'lr_peek_events', 'lr_think_time', 'lr_debug_message', 'lr_log_message', 'lr_message', 'lr_error_message', + 'lr_output_message', 'lr_vuser_status_message', 'lr_fail_trans_with_error', 'lr_next_row', 'lr_advance_param', + 'lr_eval_string', 'lr_eval_string_ext', 'lr_eval_string_ext_free', 'lr_param_increment', 'lr_save_var', + 'lr_save_string', 'lr_save_int', 'lr_save_datetime', 'lr_save_searched_string', 'lr_set_debug_message', + 'lr_get_debug_message', 'lr_enable_ip_spoofing', 'lr_disable_ip_spoofing', 'lr_convert_string_encoding' + ), + // Constants from lrun.h + 4 => array( + 'DP_FLAGS_NO_LOG', 'DP_FLAGS_STANDARD_LOG', 'DP_FLAGS_EXTENDED_LOG', 'merc_timer_handle_t', 'LR_EXIT_VUSER', + 'LR_EXIT_ACTION_AND_CONTINUE', 'LR_EXIT_ITERATION_AND_CONTINUE', 'LR_EXIT_VUSER_AFTER_ITERATION', + 'LR_EXIT_VUSER_AFTER_ACTION', 'LR_EXIT_MAIN_ITERATION_AND_CONTINUE', 'LR_MSG_CLASS_DISABLE_LOG', + 'LR_MSG_CLASS_STANDARD_LOG', 'LR_MSG_CLASS_RETURNED_DATA', 'LR_MSG_CLASS_PARAMETERS', 'LR_MSG_CLASS_ADVANCED_TRACE', + 'LR_MSG_CLASS_EXTENDED_LOG', 'LR_MSG_CLASS_SENT_DATA', 'LR_MSG_CLASS_JIT_LOG_ON_ERROR', 'LR_SWITCH_OFF', 'LR_SWITCH_ON', + 'LR_SWITCH_DEFAULT', 'ONE_DAY', 'ONE_HOUR', 'ONE_MIN', 'DATE_NOW', 'TIME_NOW', 'LR_MSG_CLASS_BRIEF_LOG', + 'LR_MSG_CLASS_RESULT_DATA', 'LR_MSG_CLASS_FULL_TRACE', 'LR_MSG_CLASS_AUTO_LOG', 'LR_MSG_OFF', 'LR_MSG_ON', + 'LR_MSG_DEFAULT' + ), + // Functions from web_api.h + 5 => array( + 'web_reg_add_cookie', 'web_report_data_point', 'web_text_link', 'web_element', 'web_image_link', 'web_static_image', + 'web_image_submit', 'web_button', 'web_edit_field', 'web_radio_group', 'web_check_box', 'web_list', 'web_text_area', + 'web_map_area', 'web_eval_java_script', 'web_reg_dialog', 'web_reg_cross_step_download', 'web_browser', + 'web_set_rts_key', 'web_save_param_length', 'web_save_timestamp_param', 'web_load_cache', 'web_dump_cache', + 'web_add_cookie_ex' + ), + // Constants from web_api.h + 6 => array( + 'DESCRIPTION', 'ACTION', 'VERIFICATION', 'LR_NOT_FOUND', 'HTTP_INFO_TOTAL_REQUEST_STAT', + 'HTTP_INFO_TOTAL_RESPONSE_STAT', 'LRW_OPT_STOP_VUSER_ON_ERROR', 'LRW_OPT_DISPLAY_IMAGE_BODY' + ), + // Functions from as_web.h + 7 => array( + 'web_add_filter', 'web_add_auto_filter', 'web_add_auto_header', 'web_add_header', 'web_add_cookie', + 'web_cleanup_auto_headers', 'web_cleanup_cookies', 'web_concurrent_end', 'web_concurrent_start', 'web_create_html_param', + 'web_create_html_param_ex', 'web_custom_request', 'web_disable_keep_alive', 'web_enable_keep_alive', 'web_find', + 'web_get_int_property', 'web_image', 'web_image_check', 'web_link', 'web_global_verification', 'web_reg_find', + 'web_reg_save_param', 'web_convert_param', 'web_remove_auto_filter', 'web_remove_auto_header', 'web_revert_auto_header', + 'web_remove_cookie', 'web_save_header', 'web_set_certificate', 'web_set_certificate_ex', 'web_set_connections_limit', + 'web_set_max_html_param_len', 'web_set_max_retries', 'web_set_proxy', 'web_set_proxy_bypass', 'web_set_secure_proxy', + 'web_set_sockets_option', 'web_set_option', 'web_set_timeout', 'web_set_user', 'web_sjis_to_euc_param', + 'web_submit_data', 'web_submit_form', 'web_url', 'web_set_proxy_bypass_local', 'web_cache_cleanup', + 'web_create_html_query', 'web_create_radio_button_param', 'web_switch_net_layer' + ), + // Constants from as_web.h + 8 => array( + 'ENDFORM', 'LAST', 'ENDITEM', 'EXTRARES', 'ITEMDATA', 'STARTHIDDENS', 'ENDHIDDENS', 'CONNECT', 'RECEIVE', 'RESOLVE', + 'STEP', 'REQUEST', 'RESPONSE', 'STARTQUERY', 'ENDQUERY', 'INPROPS', 'OUTPROPS', 'ENDPROPS', 'RAW_BODY_START', + 'RAW_BODY_END', 'HTTP_INFO_RETURN_CODE', 'HTTP_INFO_DOWNLOAD_SIZE', 'HTTP_INFO_DOWNLOAD_TIME', + 'LRW_NET_SOCKET_OPT_LOAD_VERIFY_FILE', 'LRW_NET_SOCKET_OPT_DEFAULT_VERIFY_PATH', 'LRW_NET_SOCKET_OPT_SSL_VERSION', + 'LRW_NET_SOCKET_OPT_SSL_CIPHER_LIST', 'LRW_NET_SOCKET_OPT_SO_REUSE_ADDRESS', 'LRW_NET_SOCKET_OPT_USER_IP_ADDRESS', + 'LRW_NET_SOCKET_OPT_IP_ADDRESS_BY_INDEX', 'LRW_NET_SOCKET_OPT_HELP', 'LRW_NET_SOCKET_OPT_PRINT_USER_IP_ADDRESS_LIST', + 'LRW_OPT_HTML_CHAR_REF_BACKWARD_COMPATIBILITY', 'LRW_OPT_VALUE_YES', 'LRW_OPT_VALUE_NO' + ), + // Functions from as_sapgui.h + 9 => array( + 'sapgui_open_connection', 'sapgui_open_connection_ex', 'sapgui_logon', 'sapgui_create_session', + 'sapgui_create_new_session', 'sapgui_call_method', 'sapgui_call_method_ex', 'sapgui_set_property', + 'sapgui_get_property', 'sapgui_set_collection_property', 'sapgui_active_object_from_parent_method', + 'sapgui_active_object_from_parent_property', 'sapgui_call_method_of_active_object', + 'sapgui_call_method_of_active_object_ex', 'sapgui_set_property_of_active_object', 'sapgui_get_property_of_active_object', + 'sapgui_select_active_connection', 'sapgui_select_active_session', 'sapgui_select_active_window ', + 'sapgui_status_bar_get_text', 'sapgui_status_bar_get_param', 'sapgui_status_bar_get_type', 'sapgui_get_status_bar_text', + 'sapgui_get_active_window_title', 'sapgui_is_object_available', 'sapgui_is_tab_selected', 'sapgui_is_object_changeable', + 'sapgui_set_ok_code', 'sapgui_send_vkey', 'sapgui_resize_window', 'sapgui_window_resize', 'sapgui_window_maximize', + 'sapgui_window_close', 'sapgui_window_restore', 'sapgui_window_scroll_to_row', 'sapgui_press_button', + 'sapgui_select_radio_button', 'sapgui_set_password', 'sapgui_set_text', 'sapgui_select_menu', 'sapgui_select_tab', + 'sapgui_set_checkbox', 'sapgui_set_focus', 'sapgui_select_combobox_entry', 'sapgui_get_ok_code', + 'sapgui_is_radio_button_selected', 'sapgui_get_text', 'sapgui_is_checkbox_selected', 'sapgui_table_set_focus', + 'sapgui_table_press_button', 'sapgui_table_select_radio_button', 'sapgui_table_set_password', 'sapgui_table_set_text', + 'sapgui_table_set_checkbox', 'sapgui_table_select_combobox_entry', 'sapgui_table_set_row_selected', + 'sapgui_table_set_column_selected', 'sapgui_table_set_column_width', 'sapgui_table_reorder', 'sapgui_table_fill_data', + 'sapgui_table_get_text', 'sapgui_table_is_radio_button_selected', 'sapgui_table_is_checkbox_selected', + 'sapgui_table_is_row_selected', 'sapgui_table_is_column_selected', 'sapgui_table_get_column_width', + 'sapgui_grid_clear_selection', 'sapgui_grid_select_all', 'sapgui_grid_selection_changed', + 'sapgui_grid_press_column_header', 'sapgui_grid_select_cell', 'sapgui_grid_select_rows', 'sapgui_grid_select_column', + 'sapgui_grid_deselect_column', 'sapgui_grid_select_columns', 'sapgui_grid_select_cells', 'sapgui_grid_select_cell_row', + 'sapgui_grid_select_cell_column', 'sapgui_grid_set_column_order', 'sapgui_grid_set_column_width', + 'sapgui_grid_scroll_to_row', 'sapgui_grid_double_click', 'sapgui_grid_click', 'sapgui_grid_press_button', + 'sapgui_grid_press_total_row', 'sapgui_grid_set_cell_data', 'sapgui_grid_set_checkbox', + 'sapgui_grid_double_click_current_cell', 'sapgui_grid_click_current_cell', 'sapgui_grid_press_button_current_cell', + 'sapgui_grid_press_total_row_current_cell', 'sapgui_grid_press_F1', 'sapgui_grid_press_F4', 'sapgui_grid_press_ENTER', + 'sapgui_grid_press_toolbar_button', 'sapgui_grid_press_toolbar_context_button', 'sapgui_grid_open_context_menu', + 'sapgui_grid_select_context_menu', 'sapgui_grid_select_toolbar_menu', 'sapgui_grid_fill_data', + 'sapgui_grid_get_current_cell_row', 'sapgui_grid_get_current_cell_column', 'sapgui_grid_get_rows_count', + 'sapgui_grid_get_columns_count', 'sapgui_grid_get_cell_data', 'sapgui_grid_is_checkbox_selected', + 'sapgui_tree_scroll_to_node', 'sapgui_tree_set_hierarchy_header_width', 'sapgui_tree_set_selected_node', + 'sapgui_tree_double_click_node', 'sapgui_tree_press_key', 'sapgui_tree_press_button', 'sapgui_tree_set_checkbox', + 'sapgui_tree_double_click_item', 'sapgui_tree_click_link', 'sapgui_tree_open_default_context_menu', + 'sapgui_tree_open_node_context_menu', 'sapgui_tree_open_header_context_menu', 'sapgui_tree_open_item_context_menu', + 'sapgui_tree_select_context_menu', 'sapgui_tree_select_item', 'sapgui_tree_select_node', 'sapgui_tree_unselect_node', + 'sapgui_tree_unselect_all', 'sapgui_tree_select_column', 'sapgui_tree_unselect_column', 'sapgui_tree_set_column_order', + 'sapgui_tree_collapse_node', 'sapgui_tree_expand_node', 'sapgui_tree_scroll_to_item', 'sapgui_tree_set_column_width', + 'sapgui_tree_press_header', 'sapgui_tree_is_checkbox_selected', 'sapgui_tree_get_node_text', 'sapgui_tree_get_item_text', + 'sapgui_calendar_scroll_to_date', 'sapgui_calendar_focus_date', 'sapgui_calendar_select_interval', + 'sapgui_apogrid_select_all', 'sapgui_apogrid_clear_selection', 'sapgui_apogrid_select_cell', + 'sapgui_apogrid_deselect_cell', 'sapgui_apogrid_select_row', 'sapgui_apogrid_deselect_row', + 'sapgui_apogrid_select_column', 'sapgui_apogrid_deselect_column', 'sapgui_apogrid_scroll_to_row', + 'sapgui_apogrid_scroll_to_column', 'sapgui_apogrid_double_click', 'sapgui_apogrid_set_cell_data', + 'sapgui_apogrid_get_cell_data', 'sapgui_apogrid_is_cell_changeable', 'sapgui_apogrid_get_cell_format', + 'sapgui_apogrid_get_cell_tooltip', 'sapgui_apogrid_press_ENTER', 'sapgui_apogrid_open_cell_context_menu', + 'sapgui_apogrid_select_context_menu_item', 'sapgui_text_edit_scroll_to_line', 'sapgui_text_edit_set_selection_indexes', + 'sapgui_text_edit_set_unprotected_text_part', 'sapgui_text_edit_get_first_visible_line', + 'sapgui_text_edit_get_selection_index_start', 'sapgui_text_edit_get_selection_index_end', + 'sapgui_text_edit_get_number_of_unprotected_text_parts', 'sapgui_text_edit_double_click', + 'sapgui_text_edit_single_file_dropped', 'sapgui_text_edit_multiple_files_dropped', 'sapgui_text_edit_press_F1', + 'sapgui_text_edit_press_F4', 'sapgui_text_edit_open_context_menu', 'sapgui_text_edit_select_context_menu', + 'sapgui_text_edit_modified_status_changed', 'sapgui_htmlviewer_send_event', 'sapgui_htmlviewer_dom_get_property', + 'sapgui_toolbar_press_button', 'sapgui_toolbar_press_context_button', 'sapgui_toolbar_select_menu_item', + 'sapgui_toolbar_select_menu_item_by_text', 'sapgui_toolbar_select_context_menu_item', + 'sapgui_toolbar_select_context_menu_item_by_text' + ), + // Constants from as_sapgui.h + 10 => array( + 'BEGIN_OPTIONAL', 'END_OPTIONAL', 'al-keys', 'ENTER', 'HELP', 'F2', 'BACK', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', + 'F10', 'F11', 'ESC', 'SHIFT_F1', 'SHIFT_F2', 'SHIFT_F3', 'SHIFT_F4', 'SHIFT_F5', 'SHIFT_F6', 'SHIFT_F7', 'SHIFT_F8', + 'SHIFT_F9', 'SHIFT_F10', 'SHIFT_F11', 'SHIFT_F12', 'CTRL_F1', 'CTRL_F2', 'CTRL_F3', 'CTRL_F4', 'CTRL_F5', 'CTRL_F6', + 'CTRL_F7', 'CTRL_F8', 'CTRL_F9', 'CTRL_F10', 'CTRL_F11', 'CTRL_F12', 'CTRL_SHIFT_F1', 'CTRL_SHIFT_F2', 'CTRL_SHIFT_F3', + 'CTRL_SHIFT_F4', 'CTRL_SHIFT_F5', 'CTRL_SHIFT_F6', 'CTRL_SHIFT_F7', 'CTRL_SHIFT_F8', 'CTRL_SHIFT_F9', 'CTRL_SHIFT_F10', + 'CTRL_SHIFT_F11', 'CTRL_SHIFT_F12', 'CANCEL', 'CTRL_F', 'CTRL_PAGE_UP', 'PAGE_UP', 'PAGE_DOWN', 'CTRL_PAGE_DOWN', + 'CTRL_G', 'CTRL_P' + ), + ), + + // Symbols and Case Sensitivity + // Symbols from: http://en.wikipedia.org/wiki/C_syntax + 'SYMBOLS' => array( + '(', ')', '{', '}', '[', ']', + '+', '-', '*', '/', '%', + '=', '<', '>', '!', '^', '&', '|', '?', ':', ';', ',' + ), + 'CASE_SENSITIVE' => array( + GESHI_COMMENTS => false, + 1 => true, // Standard C reserved keywords + 2 => true, // C preprocessor directives + 3 => true, // Functions from lrun.h + 4 => true, // Constants from lrun.h + 5 => true, // Functions from web_api.h + 6 => true, // Constants from web_api.h + 7 => true, // Functions from as_web.h + 8 => true, // Constants from as_web.h + 9 => true, // Functions from as_sapgui.h + 10 => true, // Constants from as_sapgui.h + ), + + // Styles + 'STYLES' => array( + 'KEYWORDS' => array( + // Functions are brown, constants and reserved words are blue + 1 => 'color: #0000ff;', // Standard C reserved keywords + 2 => 'color: #0000ff;', // C preprocessor directives + 3 => 'color: #8a0000;', // Functions from lrun.h + 4 => 'color: #0000ff;', // Constants from lrun.h + 5 => 'color: #8a0000;', // Functions from web_api.h + 6 => 'color: #0000ff;', // Constants from web_api.h + 7 => 'color: #8a0000;', // Functions from as_web.h + 8 => 'color: #0000ff;', // Constants from as_web.h + 9 => 'color: #8a0000;', // Functions from as_sapgui.h + 10 => 'color: #0000ff;', // Constants from as_sapgui.h + ), + 'COMMENTS' => array( + // Comments are grey + 1 => 'color: #9b9b9b;', + 'MULTI' => 'color: #9b9b9b;' + ), + 'ESCAPE_CHAR' => array( + // GeSHi cannot define a separate style for ESCAPE_REGEXP. The style for ESCAPE_CHAR also applies to ESCAPE_REGEXP. + // This is used for LoadRunner {parameters} + // {parameters} are pink + 0 => 'color: #c000c0;' + ), + 'BRACKETS' => array( + 0 => 'color: #000000;' + ), + 'STRINGS' => array( + // Strings are green + 0 => 'color: #008080;' + ), + 'NUMBERS' => array( + // Numbers are green + 0 => 'color: #008080;', + GESHI_NUMBER_BIN_PREFIX_0B => 'color: #008080;', + GESHI_NUMBER_OCT_PREFIX => 'color: #008080;', + GESHI_NUMBER_HEX_PREFIX => 'color: #008080;', + GESHI_NUMBER_FLT_SCI_SHORT => 'color:#008080;', + GESHI_NUMBER_FLT_SCI_ZERO => 'color:#008080;', + GESHI_NUMBER_FLT_NONSCI_F => 'color:#008080;', + GESHI_NUMBER_FLT_NONSCI => 'color:#008080;' + ), + 'METHODS' => array( + 1 => 'color: #000000;' + ), + 'SYMBOLS' => array( + 0 => 'color: #000000;' + ), + 'REGEXPS' => array( + ), + 'SCRIPT' => array( + ) + ), + + // URLs for Functions + 'URLS' => array( + 1 => '', // Standard C reserved keywords + 2 => '', // C preprocessor directives + 3 => '', // Functions from lrun.h + 4 => '', // Constants from lrun.h + 5 => '', // Functions from web_api.h + 6 => '', // Constants from web_api.h + 7 => '', // Functions from as_web.h + 8 => '', // Constants from as_web.h + 9 => '', // Functions from as_sapgui.h + 10 => '', // Constants from as_sapgui.h + ), + + // Object Orientation + 'OOLANG' => false, + 'OBJECT_SPLITTERS' => array( + ), + + // Regular Expressions + // Note that REGEXPS are not applied within strings. + 'REGEXPS' => array( + ), + + // Contextual Highlighting and Strict Mode + 'STRICT_MODE_APPLIES' => GESHI_NEVER, + 'SCRIPT_DELIMITERS' => array( + ), + 'HIGHLIGHT_STRICT_BLOCK' => array( + ), + + // Tabs + // Note that if you are using
         tags for your code, then the browser chooses how many spaces your tabs will translate to.
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/c_mac.php b/Sources/geshi/c_mac.php
        new file mode 100644
        index 0000000..41c21ce
        --- /dev/null
        +++ b/Sources/geshi/c_mac.php
        @@ -0,0 +1,227 @@
        + 'C (Mac)',
        +    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Multiline-continued single-line comments
        +        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
        +        //Multiline-continued preprocessor define
        +        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        //Simple Single Char Escapes
        +        1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
        +        //Hexadecimal Char Specs
        +        2 => "#\\\\x[\da-fA-F]{2}#",
        +        //Hexadecimal Char Specs
        +        3 => "#\\\\u[\da-fA-F]{4}#",
        +        //Hexadecimal Char Specs
        +        4 => "#\\\\U[\da-fA-F]{8}#",
        +        //Octal Char Specs
        +        5 => "#\\\\[0-7]{1,3}#"
        +        ),
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
        +        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
        +        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'if', 'return', 'while', 'case', 'continue', 'default',
        +            'do', 'else', 'for', 'switch', 'goto'
        +            ),
        +        2 => array(
        +            'NULL', 'false', 'break', 'true', 'enum', 'errno', 'EDOM',
        +            'ERANGE', 'FLT_RADIX', 'FLT_ROUNDS', 'FLT_DIG', 'DBL_DIG', 'LDBL_DIG',
        +            'FLT_EPSILON', 'DBL_EPSILON', 'LDBL_EPSILON', 'FLT_MANT_DIG', 'DBL_MANT_DIG',
        +            'LDBL_MANT_DIG', 'FLT_MAX', 'DBL_MAX', 'LDBL_MAX', 'FLT_MAX_EXP', 'DBL_MAX_EXP',
        +            'LDBL_MAX_EXP', 'FLT_MIN', 'DBL_MIN', 'LDBL_MIN', 'FLT_MIN_EXP', 'DBL_MIN_EXP',
        +            'LDBL_MIN_EXP', 'CHAR_BIT', 'CHAR_MAX', 'CHAR_MIN', 'SCHAR_MAX', 'SCHAR_MIN',
        +            'UCHAR_MAX', 'SHRT_MAX', 'SHRT_MIN', 'USHRT_MAX', 'INT_MAX', 'INT_MIN',
        +            'UINT_MAX', 'LONG_MAX', 'LONG_MIN', 'ULONG_MAX', 'HUGE_VAL', 'SIGABRT',
        +            'SIGFPE', 'SIGILL', 'SIGINT', 'SIGSEGV', 'SIGTERM', 'SIG_DFL', 'SIG_ERR',
        +            'SIG_IGN', 'BUFSIZ', 'EOF', 'FILENAME_MAX', 'FOPEN_MAX', 'L_tmpnam',
        +            'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'stdin', 'stdout', 'stderr',
        +            'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC',
        +            // Mac-specific constants:
        +            'kCFAllocatorDefault'
        +            ),
        +        3 => array(
        +            'printf', 'fprintf', 'snprintf', 'sprintf', 'assert',
        +            'isalnum', 'isalpha', 'isdigit', 'iscntrl', 'isgraph', 'islower', 'isprint',
        +            'ispunct', 'isspace', 'isupper', 'isxdigit', 'tolower', 'toupper',
        +            'exp', 'log', 'log10', 'pow', 'sqrt', 'ceil', 'floor', 'fabs', 'ldexp',
        +            'frexp', 'modf', 'fmod', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'atan2',
        +            'sinh', 'cosh', 'tanh', 'setjmp', 'longjmp',
        +            'va_start', 'va_arg', 'va_end', 'offsetof', 'sizeof', 'fopen', 'freopen',
        +            'fflush', 'fclose', 'remove', 'rename', 'tmpfile', 'tmpname', 'setvbuf',
        +            'setbuf', 'vfprintf', 'vprintf', 'vsprintf', 'fscanf', 'scanf', 'sscanf',
        +            'fgetc', 'fgets', 'fputc', 'fputs', 'getc', 'getchar', 'gets', 'putc',
        +            'putchar', 'puts', 'ungetc', 'fread', 'fwrite', 'fseek', 'ftell', 'rewind',
        +            'fgetpos', 'fsetpos', 'clearerr', 'feof', 'ferror', 'perror', 'abs', 'labs',
        +            'div', 'ldiv', 'atof', 'atoi', 'atol', 'strtod', 'strtol', 'strtoul', 'calloc',
        +            'malloc', 'realloc', 'free', 'abort', 'exit', 'atexit', 'system', 'getenv',
        +            'bsearch', 'qsort', 'rand', 'srand', 'strcpy', 'strncpy', 'strcat', 'strncat',
        +            'strcmp', 'strncmp', 'strcoll', 'strchr', 'strrchr', 'strspn', 'strcspn',
        +            'strpbrk', 'strstr', 'strlen', 'strerror', 'strtok', 'strxfrm', 'memcpy',
        +            'memmove', 'memcmp', 'memchr', 'memset', 'clock', 'time', 'difftime', 'mktime',
        +            'asctime', 'ctime', 'gmtime', 'localtime', 'strftime'
        +            ),
        +        4 => array(
        +            'auto', 'char', 'const', 'double',  'float', 'int', 'long',
        +            'register', 'short', 'signed', 'static', 'struct',
        +            'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf',
        +            'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t',
        +            'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', 'wchar_t',
        +
        +            'int8', 'int16', 'int32', 'int64',
        +            'uint8', 'uint16', 'uint32', 'uint64',
        +
        +            'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t',
        +            'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
        +
        +            'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t',
        +            'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t',
        +
        +            'int8_t', 'int16_t', 'int32_t', 'int64_t',
        +            'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t',
        +
        +            'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t',
        +
        +            // Mac-specific types:
        +            'CFArrayRef', 'CFDictionaryRef', 'CFMutableDictionaryRef', 'CFBundleRef', 'CFSetRef', 'CFStringRef',
        +            'CFURLRef', 'CFLocaleRef', 'CFDateFormatterRef', 'CFNumberFormatterRef', 'CFPropertyListRef',
        +            'CFTreeRef', 'CFWriteStreamRef', 'CFCharacterSetRef', 'CFMutableStringRef', 'CFNotificationRef',
        +            'CFReadStreamRef', 'CFNull', 'CFAllocatorRef', 'CFBagRef', 'CFBinaryHeapRef',
        +            'CFBitVectorRef', 'CFBooleanRef', 'CFDataRef', 'CFDateRef', 'CFMachPortRef', 'CFMessagePortRef',
        +            'CFMutableArrayRef', 'CFMutableBagRef', 'CFMutableBitVectorRef', 'CFMutableCharacterSetRef',
        +            'CFMutableDataRef', 'CFMutableSetRef', 'CFNumberRef', 'CFPlugInRef', 'CFPlugInInstanceRef',
        +            'CFRunLoopRef', 'CFRunLoopObserverRef', 'CFRunLoopSourceRef', 'CFRunLoopTimerRef', 'CFSocketRef',
        +            'CFTimeZoneRef', 'CFTypeRef', 'CFUserNotificationRef', 'CFUUIDRef', 'CFXMLNodeRef', 'CFXMLParserRef',
        +            'CFXMLTreeRef'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000ff;',
        +            2 => 'color: #0000ff;',
        +            3 => 'color: #0000dd;',
        +            4 => 'color: #0000ff;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #ff0000;',
        +            2 => 'color: #339900;',
        +            'MULTI' => 'color: #ff0000; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            1 => 'color: #000099; font-weight: bold;',
        +            2 => 'color: #660099; font-weight: bold;',
        +            3 => 'color: #660099; font-weight: bold;',
        +            4 => 'color: #660099; font-weight: bold;',
        +            5 => 'color: #006699; font-weight: bold;',
        +            'HARD' => '',
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #666666;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #0000dd;',
        +            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
        +            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
        +            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
        +            GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
        +            GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #00eeff;',
        +            2 => 'color: #00eeff;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAMEL}.html',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        2 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/caddcl.php b/Sources/geshi/caddcl.php
        new file mode 100644
        index 0000000..8b8b2f2
        --- /dev/null
        +++ b/Sources/geshi/caddcl.php
        @@ -0,0 +1,126 @@
        + 'CAD DCL',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'boxed_column','boxed_radio_column','boxed_radio_row','boxed_row',
        +            'column','concatenation','button','dialog','edit_box','image','image_button',
        +            'errtile','list_box','ok_cancel','ok_cancel_help','ok_cancel_help_errtile',
        +            'ok_cancel_help_info','ok_only','paragraph','popup_list','radio_button',
        +            'radio_column','radio_row','row','slider','spacer','spacer_0','spacer_1','text',
        +            'text_part','toggle',
        +            'action','alignment','allow_accept','aspect_ratio','big_increment',
        +            'children_alignment','children_fixed_height',
        +            'children_fixed_width','color',
        +            'edit_limit','edit_width','fixed_height','fixed_width',
        +            'height','initial_focus','is_cancel','is_default',
        +            'is_enabled','is_tab_stop','is-bold','key','label','layout','list',
        +            'max_value','min_value','mnemonic','multiple_select','password_char',
        +            'small_increment','tabs','tab_truncate','value','width',
        +            'false','true','left','right','centered','top','bottom',
        +            'dialog_line','dialog_foreground','dialog_background',
        +            'graphics_background','black','red','yellow','green','cyan',
        +            'blue','magenta','whitegraphics_foreground',
        +            'horizontal','vertical'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;'
        +            ),
        +        '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: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/cadlisp.php b/Sources/geshi/cadlisp.php
        new file mode 100644
        index 0000000..3fa7ead
        --- /dev/null
        +++ b/Sources/geshi/cadlisp.php
        @@ -0,0 +1,186 @@
        + 'CAD Lisp',
        +    'COMMENT_SINGLE' => array(1 => ";"),
        +    'COMMENT_MULTI' => array(";|" => "|;"),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'abs','acad_colordlg','acad_helpdlg','acad_strlsort','action_tile',
        +            'add_list','alert','alloc','and','angle','angtof','angtos','append','apply',
        +            'arx','arxload','arxunload','ascii','assoc','atan','atof','atoi','atom',
        +            'atoms-family','autoarxload','autoload','Boole','boundp','caddr',
        +            'cadr','car','cdr','chr','client_data_tile','close','command','cond',
        +            'cons','cos','cvunit','defun','defun-q','defun-q-list-ref',
        +            'defun-q-list-set','dictadd','dictnext','dictremove','dictrename',
        +            'dictsearch','dimx_tile','dimy_tile','distance','distof','done_dialog',
        +            'end_image','end_list','entdel','entget','entlast','entmake',
        +            'entmakex','entmod','entnext','entsel','entupd','eq','equal','eval','exit',
        +            'exp','expand','expt','fill_image','findfile','fix','float','foreach','function',
        +            'gc','gcd','get_attr','get_tile','getangle','getcfg','getcname','getcorner',
        +            'getdist','getenv','getfiled','getint','getkword','getorient','getpoint',
        +            'getreal','getstring','getvar','graphscr','grclear','grdraw','grread','grtext',
        +            'grvecs','handent','help','if','initdia','initget','inters','itoa','lambda','last',
        +            'layoutlist','length','list','listp','load','load_dialog','log','logand','logior',
        +            'lsh','mapcar','max','mem','member','menucmd','menugroup','min','minusp','mode_tile',
        +            'namedobjdict','nentsel','nentselp','new_dialog','nil','not','nth','null',
        +            'numberp','open','or','osnap','polar','prin1','princ','print','progn','prompt',
        +            'quit','quote','read','read-char','read-line','redraw','regapp','rem','repeat',
        +            'reverse','rtos','set','set_tile','setcfg','setenv','setfunhelp','setq','setvar',
        +            'setview','sin','slide_image','snvalid','sqrt','ssadd','ssdel','ssget','ssgetfirst',
        +            'sslength','ssmemb','ssname','ssnamex','sssetfirst','start_dialog','start_image',
        +            'start_list','startapp','strcase','strcat','strlen','subst','substr','t','tablet',
        +            'tblnext','tblobjname','tblsearch','term_dialog','terpri','textbox','textpage',
        +            'textscr','trace','trans','type','unload_dialog','untrace','vector_image','ver',
        +            'vports','wcmatch','while','write-char','write-line','xdroom','xdsize','zerop',
        +            'vl-acad-defun','vl-acad-undefun','vl-arx-import','vlax-3D-point',
        +            'vlax-add-cmd','vlax-create-object','vlax-curve-getArea',
        +            'vlax-curve-getClosestPointTo','vlax-curve-getClosestPointToProjection',
        +            'vlax-curve-getDistAtParam','vlax-curve-getDistAtPoint',
        +            'vlax-curve-getEndParam','vlax-curve-getEndPoint',
        +            'vlax-curve-getFirstDeriv','vlax-curve-getParamAtDist',
        +            'vlax-curve-getParamAtPoint','vlax-curve-getPointAtDist',
        +            'vlax-curve-getPointAtParam','vlax-curve-getSecondDeriv',
        +            'vlax-curve-getStartParam','vlax-curve-getStartPoint',
        +            'vlax-curve-isClosed','vlax-curve-isPeriodic','vlax-curve-isPlanar',
        +            'vlax-dump-object','vlax-erased-p','vlax-for','vlax-get-acad-object',
        +            'vlax-get-object','vlax-get-or-create-object','vlax-get-property',
        +            'vlax-import-type-library','vlax-invoke-method','vlax-ldata-delete',
        +            'vlax-ldata-get','vlax-ldata-list','vlax-ldata-put','vlax-ldata-test',
        +            'vlax-make-safearray','vlax-make-variant','vlax-map-collection',
        +            'vlax-method-applicable-p','vlax-object-released-p','vlax-product-key',
        +            'vlax-property-available-p','vlax-put-property','vlax-read-enabled-p',
        +            'vlax-release-object','vlax-remove-cmd','vlax-safearray-fill',
        +            'vlax-safearray-get-dim','vlax-safearray-get-element',
        +            'vlax-safearray-get-l-bound','vlax-safearray-get-u-bound',
        +            'vlax-safearray-put-element','vlax-safearray-type','vlax-tmatrix',
        +            'vlax-typeinfo-available-p','vlax-variant-change-type',
        +            'vlax-variant-type','vlax-variant-value','vlax-write-enabled-p',
        +            'vl-bb-ref','vl-bb-set','vl-catch-all-apply','vl-catch-all-error-message',
        +            'vl-catch-all-error-p','vl-cmdf','vl-consp','vl-directory-files','vl-doc-export',
        +            'vl-doc-import','vl-doc-ref','vl-doc-set','vl-every','vl-exit-with-error',
        +            'vl-exit-with-value','vl-file-copy','vl-file-delete','vl-file-directory-p',
        +            'vl-filename-base','vl-filename-directory','vl-filename-extension',
        +            'vl-filename-mktemp','vl-file-rename','vl-file-size','vl-file-systime',
        +            'vl-get-resource','vlisp-compile','vl-list-exported-functions',
        +            'vl-list-length','vl-list-loaded-vlx','vl-load-all','vl-load-com',
        +            'vl-load-reactors','vl-member-if','vl-member-if-not','vl-position',
        +            'vl-prin1-to-string','vl-princ-to-string','vl-propagate','vlr-acdb-reactor',
        +            'vlr-add','vlr-added-p','vlr-beep-reaction','vlr-command-reactor',
        +            'vlr-current-reaction-name','vlr-data','vlr-data-set',
        +            'vlr-deepclone-reactor','vlr-docmanager-reactor','vlr-dwg-reactor',
        +            'vlr-dxf-reactor','vlr-editor-reactor','vl-registry-delete',
        +            'vl-registry-descendents','vl-registry-read','vl-registry-write',
        +            'vl-remove','vl-remove-if','vl-remove-if-not','vlr-insert-reactor',
        +            'vlr-linker-reactor','vlr-lisp-reactor','vlr-miscellaneous-reactor',
        +            'vlr-mouse-reactor','vlr-notification','vlr-object-reactor',
        +            'vlr-owner-add','vlr-owner-remove','vlr-owners','vlr-pers','vlr-pers-list',
        +            'vlr-pers-p','vlr-pers-release','vlr-reaction-names','vlr-reactions',
        +            'vlr-reaction-set','vlr-reactors','vlr-remove','vlr-remove-all',
        +            'vlr-set-notification','vlr-sysvar-reactor','vlr-toolbar-reactor',
        +            'vlr-trace-reaction','vlr-type','vlr-types','vlr-undo-reactor',
        +            'vlr-wblock-reactor','vlr-window-reactor','vlr-xref-reactor',
        +            'vl-some','vl-sort','vl-sort-i','vl-string-elt','vl-string-left-trim',
        +            'vl-string-mismatch','vl-string-position','vl-string-right-trim',
        +            'vl-string-search','vl-string-subst','vl-string-translate','vl-string-trim',
        +            'vl-symbol-name','vl-symbolp','vl-symbol-value','vl-unload-vlx','vl-vbaload',
        +            'vl-vbarun','vl-vlx-loaded-p'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;'
        +            ),
        +        '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: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/cfdg.php b/Sources/geshi/cfdg.php
        new file mode 100644
        index 0000000..e40963f
        --- /dev/null
        +++ b/Sources/geshi/cfdg.php
        @@ -0,0 +1,124 @@
        +
        + * Copyright: (c) 2006 John Horigan http://www.ozonehouse.com/john/
        + * Release Version: 1.0.8.11
        + * Date Started: 2006/03/11
        + *
        + * CFDG language file for GeSHi.
        + *
        + * CHANGES
        + * -------
        + * 2006/03/11 (1.0.0)
        + *  -  First Release
        + *
        + * TODO (updated 2006/03/11)
        + * -------------------------
        + *
        + *************************************************************************************
        + *
        + *     This file is part of GeSHi.
        + *
        + *   GeSHi is free software; you can redistribute it and/or modify
        + *   it under the terms of the GNU General Public License as published by
        + *   the Free Software Foundation; either version 2 of the License, or
        + *   (at your option) any later version.
        + *
        + *   GeSHi is distributed in the hope that it will be useful,
        + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        + *   GNU General Public License for more details.
        + *
        + *   You should have received a copy of the GNU General Public License
        + *   along with GeSHi; if not, write to the Free Software
        + *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + ************************************************************************************/
        +
        +$language_data = array (
        +    'LANG_NAME' => 'CFDG',
        +    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'include', 'startshape', 'rule', 'background'
        +            ),
        +        2 => array(
        +            'SQUARE', 'CIRCLE', 'TRIANGLE',
        +            ),
        +        3 => array(
        +            'b','brightness','h','hue','sat','saturation',
        +            'a','alpha','x','y','z','s','size',
        +            'r','rotate','f','flip','skew','xml_set_object'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '[', ']', '{', '}', '*', '|'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #717100;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #006666;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            2 => 'color: #808080; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;',
        +            2 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            2 => '',
        +            3 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/cfm.php b/Sources/geshi/cfm.php
        new file mode 100644
        index 0000000..2d165bd
        --- /dev/null
        +++ b/Sources/geshi/cfm.php
        @@ -0,0 +1,299 @@
        + 'ColdFusion',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        /* CFM Tags */
        +        1 => array(
        +            'cfabort', 'cfapplet', 'cfapplication', 'cfargument', 'cfassociate',
        +            'cfbreak', 'cfcache', 'cfcase', 'cfcatch', 'cfchart', 'cfchartdata',
        +            'cfchartseries', 'cfcol', 'cfcollection', 'cfcomponent',
        +            'cfcontent', 'cfcookie', 'cfdefaultcase', 'cfdirectory',
        +            'cfdocument', 'cfdocumentitem', 'cfdocumentsection', 'cfdump',
        +            'cfelse', 'cfelseif', 'cferror', 'cfexecute', 'cfexit', 'cffile',
        +            'cfflush', 'cfform', 'cfformgroup', 'cfformitem', 'cfftp',
        +            'cffunction', 'cfgrid', 'cfgridcolumn', 'cfgridrow', 'cfgridupdate',
        +            'cfheader', 'cfhtmlhead', 'cfhttp', 'cfhttpparam', 'cfif',
        +            'cfimport', 'cfinclude', 'cfindex', 'cfinput', 'cfinsert',
        +            'cfinvoke', 'cfinvokeargument', 'cfldap', 'cflocation', 'cflock',
        +            'cflog', 'cflogin', 'cfloginuser', 'cflogout', 'cfloop', 'cfmail',
        +            'cfmailparam', 'cfmailpart', 'cfmodule', 'cfNTauthenticate',
        +            'cfobject', 'cfobjectcache', 'cfoutput', 'cfparam', 'cfpop',
        +            'cfprocessingdirective', 'cfprocparam',
        +            'cfprocresult', 'cfproperty', 'cfquery', 'cfqueryparam',
        +            'cfregistry', 'cfreport', 'cfreportparam', 'cfrethrow', 'cfreturn',
        +            'cfsavecontent', 'cfschedule', 'cfscript', 'cfsearch', 'cfselect',
        +            'cfset', 'cfsetting', 'cfsilent', 'cfstoredproc',
        +            'cfswitch', 'cftable', 'cftextarea', 'cfthrow', 'cftimer',
        +            'cftrace', 'cftransaction', 'cftree', 'cftreeitem', 'cftry',
        +            'cfupdate', 'cfwddx'
        +            ),
        +        /* HTML Tags */
        +        2 => array(
        +            'a', 'abbr', 'acronym', 'address', 'applet',
        +
        +            'base', 'basefont', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'b',
        +
        +            'caption', 'center', 'cite', 'code', 'colgroup', 'col',
        +
        +            'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt',
        +
        +            'em',
        +
        +            'fieldset', 'font', 'form', 'frame', 'frameset',
        +
        +            'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'html',
        +
        +            'iframe', 'ilayer', 'img', 'input', 'ins', 'isindex', 'i',
        +
        +            'kbd',
        +
        +            'label', 'legend', 'link', 'li',
        +
        +            'map', 'meta',
        +
        +            'noframes', 'noscript',
        +
        +            'object', 'ol', 'optgroup', 'option',
        +
        +            'param', 'pre', 'p',
        +
        +            'q',
        +
        +            'samp', 'script', 'select', 'small', 'span', 'strike', 'strong', 'style', 'sub', 'sup', 's',
        +
        +            'table', 'tbody', 'td', 'textarea', 'text', 'tfoot', 'thead', 'th', 'title', 'tr', 'tt',
        +
        +            'ul', 'u',
        +
        +            'var',
        +            ),
        +        /* HTML attributes */
        +        3 => array(
        +            'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alink', 'alt', 'archive', 'axis',
        +            'background', 'bgcolor', 'border',
        +            'cellpadding', 'cellspacing', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'classid', 'clear', 'code', 'codebase', 'codetype', 'color', 'cols', 'colspan', 'compact', 'content', 'coords',
        +            'data', 'datetime', 'declare', 'defer', 'dir', 'disabled',
        +            'enctype',
        +            'face', 'for', 'frame', 'frameborder',
        +            'headers', 'height', 'href', 'hreflang', 'hspace', 'http-equiv',
        +            'id', 'ismap',
        +            'label', 'lang', 'language', 'link', 'longdesc',
        +            'marginheight', 'marginwidth', 'maxlength', 'media', 'method', 'multiple',
        +            'name', 'nohref', 'noresize', 'noshade', 'nowrap',
        +            'object', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'onselect', 'onsubmit', 'onunload',
        +            'profile', 'prompt',
        +            'readonly', 'rel', 'rev', 'rowspan', 'rows', 'rules',
        +            'scheme', 'scope', 'scrolling', 'selected', 'shape', 'size', 'span', 'src', 'standby', 'start', 'style', 'summary',
        +            'tabindex', 'target', 'text', 'title', 'type',
        +            'usemap',
        +            'valign', 'value', 'valuetype', 'version', 'vlink', 'vspace',
        +            'width'
        +            ),
        +        /* CFM Script delimeters */
        +        4 => array(
        +            'var', 'function', 'while', 'if','else'
        +            ),
        +        /* CFM Functions */
        +        5 => array(
        +            'Abs', 'GetFunctionList', 'LSTimeFormat','ACos','GetGatewayHelper','LTrim','AddSOAPRequestHeader','GetHttpRequestData',
        +            'Max','AddSOAPResponseHeader','GetHttpTimeString','Mid','ArrayAppend','GetLocale','Min','ArrayAvg','GetLocaleDisplayName',
        +            'Minute','ArrayClear','GetMetaData','Month','ArrayDeleteAt','GetMetricData','MonthAsString','ArrayInsertAt','GetPageContext',
        +            'Now','ArrayIsEmpty','GetProfileSections','NumberFormat','ArrayLen','GetProfileString','ParagraphFormat','ArrayMax',
        +            'GetLocalHostIP','ParseDateTime','ArrayMin','GetSOAPRequest','Pi','ArrayNew','GetSOAPRequestHeader','PreserveSingleQuotes',
        +            'ArrayPrepend','GetSOAPResponse','Quarter','ArrayResize','GetSOAPResponseHeader','QueryAddColumn','ArraySet',
        +            'GetTempDirectory','QueryAddRow','ArraySort','QueryNew','ArraySum','GetTempFile','QuerySetCell',
        +            'ArraySwap','GetTickCount','QuotedValueList','ArrayToList','GetTimeZoneInfo','Rand','Asc','GetToken','Randomize',
        +            'ASin','Hash','RandRange','Atn','Hour','REFind','BinaryDecode','HTMLCodeFormat','REFindNoCase','BinaryEncode',
        +            'HTMLEditFormat','ReleaseComObject','BitAnd','IIf','RemoveChars','BitMaskClear','IncrementValue','RepeatString',
        +            'BitMaskRead','InputBaseN','Replace','BitMaskSet','Insert','ReplaceList','BitNot','Int','ReplaceNoCase','BitOr',
        +            'IsArray','REReplace','BitSHLN','IsBinary','REReplaceNoCase','BitSHRN','IsBoolean','Reverse','BitXor','IsCustomFunction',
        +            'Right','Ceiling','IsDate','RJustify','CharsetDecode','IsDebugMode','Round','CharsetEncode','IsDefined','RTrim',
        +            'Chr','IsLeapYear','Second','CJustify','IsLocalHost','SendGatewayMessage','Compare','IsNumeric','SetEncoding',
        +            'CompareNoCase','IsNumericDate','SetLocale','Cos','IsObject','SetProfileString','CreateDate','IsQuery','SetVariable',
        +            'CreateDateTime','IsSimpleValue','Sgn','CreateObject','IsSOAPRequest','Sin','CreateODBCDate','IsStruct','SpanExcluding',
        +            'CreateODBCDateTime','IsUserInRole','SpanIncluding','CreateODBCTime','IsValid','Sqr','CreateTime','IsWDDX','StripCR',
        +            'CreateTimeSpan','IsXML','StructAppend','CreateUUID','IsXmlAttribute','StructClear','DateAdd','IsXmlDoc','StructCopy',
        +            'DateCompare','IsXmlElem','StructCount','DateConvert','IsXmlNode','StructDelete','DateDiff','IsXmlRoot','StructFind',
        +            'DateFormat','JavaCast','StructFindKey','DatePart','JSStringFormat','StructFindValue','Day','LCase','StructGet',
        +            'DayOfWeek','Left','StructInsert','DayOfWeekAsString','Len','StructIsEmpty','DayOfYear','ListAppend','StructKeyArray',
        +            'DaysInMonth','ListChangeDelims','StructKeyExists','DaysInYear','ListContains','StructKeyList','DE','ListContainsNoCase',
        +            'StructNew','DecimalFormat','ListDeleteAt','StructSort','DecrementValue','ListFind','StructUpdate','Decrypt','ListFindNoCase',
        +            'Tan','DecryptBinary','ListFirst','TimeFormat','DeleteClientVariable','ListGetAt','ToBase64','DirectoryExists',
        +            'ListInsertAt','ToBinary','DollarFormat','ListLast','ToScript','Duplicate','ListLen','ToString','Encrypt','ListPrepend',
        +            'Trim','EncryptBinary','ListQualify','UCase','Evaluate','ListRest','URLDecode','Exp','ListSetAt','URLEncodedFormat',
        +            'ExpandPath','ListSort','URLSessionFormat','FileExists','ListToArray','Val','Find','ListValueCount','ValueList',
        +            'FindNoCase','ListValueCountNoCase','Week','FindOneOf','LJustify','Wrap','FirstDayOfMonth','Log','WriteOutput',
        +            'Fix','Log10','XmlChildPos','FormatBaseN','LSCurrencyFormat','XmlElemNew','GetAuthUser','LSDateFormat','XmlFormat',
        +            'GetBaseTagData','LSEuroCurrencyFormat','XmlGetNodeType','GetBaseTagList','LSIsCurrency','XmlNew','GetBaseTemplatePath',
        +            'LSIsDate','XmlParse','GetClientVariablesList','LSIsNumeric','XmlSearch','GetCurrentTemplatePath','LSNumberFormat',
        +            'XmlTransform','GetDirectoryFromPath','LSParseCurrency','XmlValidate','GetEncoding','LSParseDateTime','Year',
        +            'GetException','LSParseEuroCurrency','YesNoFormat','GetFileFromPath','LSParseNumber'
        +            ),
        +        /* CFM Attributes */
        +        6 => array(
        +            'dbtype','connectstring','datasource','username','password','query','delimeter','description','required','hint','default','access','from','to','list','index'
        +            ),
        +        7 => array(
        +            'EQ', 'GT', 'LT', 'GTE', 'LTE', 'IS', 'LIKE', 'NEQ'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '/', '=', '{', '}', '(', ')', '[', ']', '<', '>', '&'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        6 => false,
        +        7 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #990000; font-weight: bold;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #0000FF;',
        +            4 => 'color: #000000; font-weight: bold;',
        +            5 => 'color: #0000FF;',
        +            6 => 'color: #0000FF;',
        +            7 => 'color: #0000FF;'
        +            ),
        +        '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: #0000FF;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #FF0000;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #0000FF;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => 'color: #808080; font-style: italic;',
        +            1 => 'color: #00bbdd;',
        +            2 => 'color: #0000FF;',
        +            3 => 'color: #000099;',
        +            4 => 'color: #333333;',
        +            5 => 'color: #333333;'
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => 'http://december.com/html/4/element/{FNAMEL}.html',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => '',
        +        7 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
        +    'SCRIPT_DELIMITERS' => array(
        +        0 => array(
        +            ''
        +            ),
        +        1 => array(
        +            ' '>'
        +            ),
        +        2 => "/(?!<#)(?:(?:##)*)(#)[a-zA-Z0-9_\.\(\)]+(#)/",
        +        3 => array(
        +            '' => ''
        +            ),
        +        4 => array(
        +            '<' => '>'
        +            ),
        +        5 => '/((?!])+?(>)/si'
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => false,
        +        1 => false,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            1 => array(
        +                'DISALLOWED_BEFORE' => '(?<=<|<\/)',
        +                'DISALLOWED_AFTER' => '(?=\s|\/|>)',
        +                ),
        +            2 => array(
        +                'DISALLOWED_BEFORE' => '(?<=<|<\/)',
        +                'DISALLOWED_AFTER' => '(?=\s|\/|>)',
        +                ),
        +            3 => array(
        +                'DISALLOWED_BEFORE' => '(?|^])', // allow ; before keywords
        +                'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-])', // allow & after keywords
        +                ),
        +            7 => array(
        +                'DISALLOWED_BEFORE' => '(?&|^])', // allow ; before keywords
        +                'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-])', // allow & after keywords
        +                )
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/chaiscript.php b/Sources/geshi/chaiscript.php
        new file mode 100644
        index 0000000..f9d0a86
        --- /dev/null
        +++ b/Sources/geshi/chaiscript.php
        @@ -0,0 +1,140 @@
        + 'ChaiScript',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    //Regular Expressions
        +    'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'break', 'else', 'elseif', 'eval', 'for', 'if', 'return', 'while', 'try', 'catch', 'finally',
        +            ),
        +        2 => array(
        +            'def', 'false', 'fun', 'true', 'var', 'attr',
        +            ),
        +        3 => array(
        +            // built in functions
        +            'throw',
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}',
        +        '+', '-', '*', '/', '%',
        +        '!', '@', '&', '|', '^',
        +        '<', '>', '=',
        +        ',', ';', '?', ':'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000066; font-weight: bold;',
        +            2 => 'color: #003366; font-weight: bold;',
        +            3 => 'color: #000066;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #006600; font-style: italic;',
        +            2 => 'color: #009966; font-style: italic;',
        +            'MULTI' => 'color: #006600; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #3366CC;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #CC0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #660066;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            2 => '',
        +            3 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(
        +        0 => array(
        +            ),
        +        1 => array(
        +            )
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true,
        +        1 => true
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/cil.php b/Sources/geshi/cil.php
        new file mode 100644
        index 0000000..9872e75
        --- /dev/null
        +++ b/Sources/geshi/cil.php
        @@ -0,0 +1,196 @@
        + 'CIL',
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'COMMENT_SINGLE' => array('//'),
        +    'COMMENT_MULTI' => array(),
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(//Dotted
        +            '.zeroinit', '.vtfixup', '.vtentry', '.vtable', '.ver', '.try', '.subsystem', '.size', '.set', '.removeon',
        +            '.publickeytoken', '.publickey', '.property', '.permissionset', '.permission', '.pdirect', '.param', '.pack',
        +            '.override', '.other', '.namespace', '.mresource', '.module', '.method', '.maxstack', '.manifestres', '.locals',
        +            '.localized', '.locale', '.line', '.language', '.import', '.imagebase', '.hash', '.get', '.fire', '.file', '.field',
        +            '.export', '.event', '.entrypoint', '.emitbyte', '.data', '.custom', '.culture', '.ctor', '.corflags', '.class',
        +            '.cctor', '.assembly', '.addon'
        +            ),
        +        2 => array(//Attributes
        +            'wrapper', 'with', 'winapi', 'virtual', 'vector', 'vararg', 'value', 'userdefined', 'unused', 'unmanagedexp',
        +            'unmanaged', 'unicode', 'to', 'tls', 'thiscall', 'synchronized', 'struct', 'strict', 'storage', 'stdcall',
        +            'static', 'specialname', 'special', 'serializable', 'sequential', 'sealed', 'runtime', 'rtspecialname', 'request',
        +            'reqsecobj', 'reqrefuse', 'reqopt', 'reqmin', 'record', 'public', 'privatescope', 'private', 'preservesig',
        +            'prejitgrant', 'prejitdeny', 'platformapi', 'pinvokeimpl', 'pinned', 'permitonly', 'out', 'optil', 'opt',
        +            'notserialized', 'notremotable', 'not_in_gc_heap', 'noprocess', 'noncaslinkdemand', 'noncasinheritance',
        +            'noncasdemand', 'nometadata', 'nomangle', 'nomachine', 'noinlining', 'noappdomain', 'newslot', 'nested', 'native',
        +            'modreq', 'modopt', 'marshal', 'managed', 'literal', 'linkcheck', 'lcid', 'lasterr', 'internalcall', 'interface',
        +            'instance', 'initonly', 'init', 'inheritcheck', 'in', 'import', 'implicitres', 'implicitcom', 'implements',
        +            'illegal', 'il', 'hidebysig', 'handler', 'fromunmanaged', 'forwardref', 'fixed', 'finally', 'final', 'filter',
        +            'filetime', 'field', 'fault', 'fastcall', 'famorassem', 'family', 'famandassem', 'extern', 'extends', 'explicit',
        +            'error', 'enum', 'endmac', 'deny', 'demand', 'default', 'custom', 'compilercontrolled', 'clsid', 'class', 'cil',
        +            'cf', 'cdecl', 'catch', 'beforefieldinit', 'autochar', 'auto', 'at', 'assert', 'assembly', 'as', 'any', 'ansi',
        +            'alignment', 'algorithm', 'abstract'
        +            ),
        +        3 => array(//Types
        +            'wchar', 'void', 'variant', 'unsigned', 'valuetype', 'typedref', 'tbstr', 'sysstring', 'syschar', 'string',
        +            'streamed_object', 'stream', 'stored_object', 'safearray', 'objectref', 'object', 'nullref', 'method', 'lpwstr',
        +            'lpvoid', 'lptstr', 'lpstruct', 'lpstr', 'iunknown', 'int64', 'int32', 'int16', 'int8', 'int', 'idispatch',
        +            'hresult', 'float64', 'float32', 'float', 'decimal', 'date', 'currency', 'char', 'carray', 'byvalstr',
        +            'bytearray', 'boxed', 'bool', 'blob_object', 'blob', 'array'
        +            ),
        +        4 => array(//Prefix
        +            'volatile', 'unaligned', 'tail', 'readonly', 'no', 'constrained'
        +            ),
        +        5 => array(//Suffix
        +            'un', 'u8', 'u4', 'u2', 'u1', 'u', 's', 'ref', 'r8', 'r4', 'm1', 'i8', 'i4', 'i2', 'i1', 'i'#, '.8', '.7', '.6', '.5', '.4', '.3', '.2', '.1', '.0'
        +            ),
        +        6 => array(//Base
        +            'xor', 'switch', 'sub', 'stloc',
        +            'stind', 'starg',
        +            'shr', 'shl', 'ret', 'rem', 'pop', 'or', 'not', 'nop', 'neg', 'mul',
        +            'localloc', 'leave', 'ldnull', 'ldloca',
        +            'ldloc', 'ldind', 'ldftn', 'ldc', 'ldarga',
        +            'ldarg', 'jmp', 'initblk', 'endfinally', 'endfilter',
        +            'endfault', 'dup', 'div', 'cpblk', 'conv', 'clt', 'ckfinite', 'cgt', 'ceq', 'calli',
        +            'call', 'brzero', 'brtrue', 'brnull', 'brinst',
        +            'brfalse', 'break', 'br', 'bne', 'blt', 'ble', 'bgt', 'bge', 'beq', 'arglist',
        +            'and', 'add'
        +            ),
        +        7 => array(//Object
        +            'unbox.any', 'unbox', 'throw', 'stsfld', 'stobj', 'stfld', 'stelem', 'sizeof', 'rethrow', 'refanyval', 'refanytype', 'newobj',
        +            'newarr', 'mkrefany', 'ldvirtftn', 'ldtoken', 'ldstr', 'ldsflda', 'ldsfld', 'ldobj', 'ldlen', 'ldflda', 'ldfld',
        +            'ldelema', 'ldelem', 'isinst', 'initobj', 'cpobj', 'castclass',
        +            'callvirt', 'callmostderived', 'box'
        +            ),
        +        8 => array(//Other
        +            'prefixref', 'prefix7', 'prefix6', 'prefix5', 'prefix4', 'prefix3', 'prefix2', 'prefix1', 'prefix0'
        +            ),
        +        9 => array(//Literal
        +            'true', 'null', 'false'
        +            ),
        +        10 => array(//Comment-like
        +            '#line', '^THE_END^'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '!', '!!'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true,
        +        8 => true,
        +        9 => true,
        +        10 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color:maroon;font-weight:bold;',
        +            2 => 'color:blue;font-weight:bold;',
        +            3 => 'color:purple;font-weight:bold;',
        +            4 => 'color:teal;',
        +            5 => 'color:blue;',
        +            6 => 'color:blue;',
        +            7 => 'color:blue;',
        +            8 => 'color:blue;',
        +            9 => 'color:00008B',
        +            10 => 'color:gray'
        +            ),
        +        'COMMENTS' => array(
        +            0 => 'color:gray;font-style:italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #008000; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #006400;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #008000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #00008B;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #000033;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #006400;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color:blue;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => '',
        +        7 => '',
        +        8 => '',
        +        9 => '',
        +        10 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        0 => '(?<=ldc\\.i4\\.)[0-8]|(?<=(?:ldarg|ldloc|stloc)\\.)[0-3]' # Pickup the opcodes that end with integers
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        diff --git a/Sources/geshi/clojure.php b/Sources/geshi/clojure.php
        new file mode 100644
        index 0000000..0ad4e4a
        --- /dev/null
        +++ b/Sources/geshi/clojure.php
        @@ -0,0 +1,134 @@
        + 'Clojure',
        +    'COMMENT_SINGLE' => array(1 => ';'),
        +    'COMMENT_MULTI' => array(';|' => '|;'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'defn', 'defn-', 'defmulti', 'defmethod', 'defmacro', 'deftest',
        +            'defstruct', 'def', 'defonce', 'let', 'letfn', 'do', 'cond', 'condp',
        +            'for', 'loop', 'recur', 'when', 'when-not', 'when-let', 'when-first',
        +            'if', 'if-let', 'if-not', 'doto', 'and', 'or','not','aget','aset',
        +            'dosync', 'doseq', 'dotimes', 'dorun', 'doall',
        +            'load', 'import', 'unimport', 'ns', 'in-ns', 'refer', 'print',
        +            'try', 'catch', 'finally', 'throw', 'fn', 'update-in',
        +            'with-open', 'with-local-vars', 'binding',
        +            'gen-class', 'gen-and-load-class', 'gen-and-save-class',
        +            'implement', 'proxy', 'lazy-cons', 'with-meta',
        +            'struct', 'struct-map', 'delay', 'locking', 'sync', 'time', 'apply',
        +            'remove', 'merge', 'interleave', 'interpose', 'distinct',
        +            'cons', 'concat', 'lazy-cat', 'cycle', 'rest', 'frest', 'drop',
        +            'drop-while', 'nthrest', 'take', 'take-while', 'take-nth', 'butlast',
        +            'reverse', 'sort', 'sort-by', 'split-at', 'partition', 'split-with',
        +            'first', 'ffirst', 'rfirst', 'zipmap', 'into', 'set', 'vec',
        +            'to-array-2d', 'not-empty', 'seq?', 'not-every?', 'every?', 'not-any?',
        +            'map', 'mapcat', 'vector?', 'list?', 'hash-map', 'reduce', 'filter',
        +            'vals', 'keys', 'rseq', 'subseq', 'rsubseq', 'count', 'empty?',
        +            'fnseq', 'repeatedly', 'iterate', 'drop-last',
        +            'repeat', 'replicate', 'range',  'into-array',
        +            'line-seq', 'resultset-seq', 're-seq', 're-find', 'tree-seq', 'file-seq',
        +            'iterator-seq', 'enumeration-seq', 'declare',  'xml-seq',
        +            'symbol?', 'string?', 'vector', 'conj', 'str',
        +            'pos?', 'neg?', 'zero?', 'nil?', 'inc', 'dec', 'format',
        +            'alter', 'commute', 'ref-set', 'floor', 'assoc', 'send', 'send-off'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|', '.', '..', '->',
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => true,
        +        1 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;'
        +            ),
        +        '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: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #555;',
        +            1 => 'color: #555;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +            '::', ':'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/cmake.php b/Sources/geshi/cmake.php
        new file mode 100644
        index 0000000..67277aa
        --- /dev/null
        +++ b/Sources/geshi/cmake.php
        @@ -0,0 +1,181 @@
        + ()
        + *  -  First Release
        + *
        + * TODO (updated )
        + * -------------------------
        + *
        + *************************************************************************************
        + *
        + *     This file is part of GeSHi.
        + *
        + *   GeSHi is free software; you can redistribute it and/or modify
        + *   it under the terms of the GNU General Public License as published by
        + *   the Free Software Foundation; either version 2 of the License, or
        + *   (at your option) any later version.
        + *
        + *   GeSHi is distributed in the hope that it will be useful,
        + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        + *   GNU General Public License for more details.
        + *
        + *   You should have received a copy of the GNU General Public License
        + *   along with GeSHi; if not, write to the Free Software
        + *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + ************************************************************************************/
        +
        +$language_data = array (
        +    'LANG_NAME' => 'CMake',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'ESCAPE_REGEXP' => array(
        +        // Quoted variables ${...}
        +        1 => "/\\$(ENV)?\\{[^\\n\\}]*?\\}/i",
        +        // Quoted registry keys [...]
        +        2 => "/\\[HKEY[^\n\\]]*?]/i"
        +        ),
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'add_custom_command', 'add_custom_target', 'add_definitions',
        +            'add_dependencies', 'add_executable', 'add_library',
        +            'add_subdirectory', 'add_test', 'aux_source_directory', 'break',
        +            'build_command', 'cmake_minimum_required', 'cmake_policy',
        +            'configure_file', 'create_test_sourcelist', 'define_property',
        +            'else', 'elseif', 'enable_language', 'enable_testing',
        +            'endforeach', 'endfunction', 'endif', 'endmacro',
        +            'endwhile', 'execute_process', 'export', 'file', 'find_file',
        +            'find_library', 'find_package', 'find_path', 'find_program',
        +            'fltk_wrap_ui', 'foreach', 'function', 'get_cmake_property',
        +            'get_directory_property', 'get_filename_component', 'get_property',
        +            'get_source_file_property', 'get_target_property',
        +            'get_test_property', 'if', 'include', 'include_directories',
        +            'include_external_msproject', 'include_regular_expression',
        +            'install', 'link_directories', 'list', 'load_cache',
        +            'load_command', 'macro', 'mark_as_advanced', 'math', 'message',
        +            'option', 'output_required_files', 'project', 'qt_wrap_cpp',
        +            'qt_wrap_ui', 'remove_definitions', 'return', 'separate_arguments',
        +            'set', 'set_directory_properties', 'set_property',
        +            'set_source_files_properties', 'set_target_properties',
        +            'set_tests_properties', 'site_name', 'source_group', 'string',
        +            'target_link_libraries', 'try_compile', 'try_run', 'unset',
        +            'variable_watch', 'while'
        +            ),
        +        2 => array(
        +            // Deprecated commands
        +            'build_name', 'exec_program', 'export_library_dependencies',
        +            'install_files', 'install_programs', 'install_targets',
        +            'link_libraries', 'make_directory', 'remove', 'subdir_depends',
        +            'subdirs', 'use_mangled_mesa', 'utility_source',
        +            'variable_requires', 'write_file'
        +            ),
        +        3 => array(
        +            // Special command arguments, this list is not comprehesive.
        +            'AND', 'APPEND', 'ASCII', 'BOOL', 'CACHE', 'COMMAND', 'COMMENT',
        +            'COMPARE', 'CONFIGURE', 'DEFINED', 'DEPENDS', 'DIRECTORY',
        +            'EQUAL', 'EXCLUDE_FROM_ALL', 'EXISTS', 'FALSE', 'FATAL_ERROR',
        +            'FILEPATH', 'FIND', 'FORCE', 'GET', 'GLOBAL', 'GREATER',
        +            'IMPLICIT_DEPENDS', 'INSERT', 'INTERNAL', 'IS_ABSOLUTE',
        +            'IS_DIRECTORY', 'IS_NEWER_THAN', 'LENGTH', 'LESS',
        +            'MAIN_DEPENDENCY', 'MATCH', 'MATCHALL', 'MATCHES', 'MODULE', 'NOT',
        +            'NOTFOUND', 'OFF', 'ON', 'OR', 'OUTPUT', 'PARENT_SCOPE', 'PATH',
        +            'POLICY', 'POST_BUILD', 'PRE_BUILD', 'PRE_LINK', 'PROPERTY',
        +            'RANDOM', 'REGEX', 'REMOVE_AT', 'REMOVE_DUPLICATES', 'REMOVE_ITEM',
        +            'REPLACE', 'REVERSE', 'SEND_ERROR', 'SHARED', 'SORT', 'SOURCE',
        +            'STATIC', 'STATUS', 'STREQUAL', 'STRGREATER', 'STRING', 'STRIP',
        +            'STRLESS', 'SUBSTRING', 'TARGET', 'TEST', 'TOLOWER', 'TOUPPER',
        +            'TRUE', 'VERBATIM', 'VERSION', 'VERSION_EQUAL', 'VERSION_GREATOR',
        +            'VERSION_LESS', 'WORKING_DIRECTORY',
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => true
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array('(', ')')
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #1f3f81; font-style: bold;',
        +            2 => 'color: #1f3f81;',
        +            3 => 'color: #077807; font-sytle: italic;'
        +            ),
        +        'BRACKETS' => array(),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            1 => 'color: #b08000;',
        +            2 => 'color: #0000cd;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #912f11;',
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #197d8b;'
        +            ),
        +        'NUMBERS' => array(),
        +        'METHODS' => array(),
        +        'REGEXPS' => array(
        +            0 => 'color: #b08000;',
        +            1 => 'color: #0000cd;'
        +            ),
        +        'SCRIPT' => array()
        +        ),
        +    'URLS' => array(
        +        1 => 'http://www.cmake.org/cmake/help/cmake2.6docs.html#command:{FNAMEL}',
        +        2 => 'http://www.cmake.org/cmake/help/cmake2.6docs.html#command:{FNAMEL}',
        +        3 => '',
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(
        +        // Unquoted variables
        +        0 => "\\$(ENV)?\\{[^\\n}]*?\\}",
        +        // Unquoted registry keys
        +        1 => "\\[HKEY[^\n\\]]*?]"
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            // These keywords cannot come after a open paren
        +            1 => array(
        +                'DISALLOWED_AFTER' =>  '(?= *\()'
        +                ),
        +            2 => array(
        +                'DISALLOWED_AFTER' =>  '(?= *\()'
        +                )
        +            ),
        +        'ENABLE_FLAGS' => array(
        +            'BRACKETS' => GESHI_NEVER,
        +            'METHODS' => GESHI_NEVER,
        +            'NUMBERS' => GESHI_NEVER
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/cobol.php b/Sources/geshi/cobol.php
        new file mode 100644
        index 0000000..b07be48
        --- /dev/null
        +++ b/Sources/geshi/cobol.php
        @@ -0,0 +1,244 @@
        + 'COBOL',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(1 => '/^\*.*?$/m'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"', "'"),
        +    'ESCAPE_CHAR' => '\\',
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC |
        +        GESHI_NUMBER_FLT_NONSCI |
        +        GESHI_NUMBER_FLT_SCI_SHORT |
        +        GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        1 => array( //Compiler Directives
        +            'ANSI', 'BLANK', 'NOBLANK', 'CALL-SHARED', 'CANCEL', 'NOCANCEL',
        +            'CHECK', 'CODE', 'NOCODE', 'COLUMNS', 'COMPACT', 'NOCOMPACT',
        +            'COMPILE', 'CONSULT', 'NOCONSULT', 'CROSSREF', 'NOCROSSREF',
        +            'DIAGNOSE-74', 'NODIAGNOSE-74', 'DIAGNOSE-85', 'NODIAGNOSE-85',
        +            'DIAGNOSEALL', 'NODIAGNOSEALL', 'ENDIF', 'ENDUNIT', 'ENV',
        +            'ERRORFILE', 'ERRORS', 'FIPS', 'NOFIPS', 'FMAP', 'HEADING', 'HEAP',
        +            'HIGHPIN', 'HIGHREQUESTERS', 'ICODE', 'NOICODE', 'IF', 'IFNOT',
        +            'INNERLIST', 'NOINNERLIST', 'INSPECT', 'NOINSPECT', 'LARGEDATA',
        +            'LD', 'LESS-CODE', 'LIBRARY', 'LINES', 'LIST', 'NOLIST', 'LMAP',
        +            'NOLMAP', 'MAIN', 'MAP', 'NOMAP', 'NLD', 'NONSTOP', 'NON-SHARED',
        +            'OPTIMIZE', 'PERFORM-TRACE', 'PORT', 'NOPORT', 'RESETTOG',
        +            'RUNNABLE', 'RUNNAMED', 'SAVE', 'SAVEABEND', 'NOSAVEABEND',
        +            'SEARCH', 'NOSEARCH', 'SECTION', 'SETTOG', 'SHARED', 'SHOWCOPY',
        +            'NOSHOWCOPY', 'SHOWFILE', 'NOSHOWFILE', 'SOURCE', 'SQL', 'NOSQL',
        +            'SQLMEM', 'SUBSET', 'SUBTYPE', 'SUPPRESS', 'NOSUPPRESS', 'SYMBOLS',
        +            'NOSYMBOLS', 'SYNTAX', 'TANDEM', 'TRAP2', 'NOTRAP2', 'TRAP2-74',
        +            'NOTRAP2-74', 'UL', 'WARN', 'NOWARN'
        +            ),
        +        2 => array( //Statement Keywords
        +            'ACCEPT', 'ADD', 'TO', 'GIVING', 'CORRESPONDING', 'ALTER', 'CALL',
        +            'CHECKPOINT', 'CLOSE', 'COMPUTE', 'CONTINUE', 'COPY',
        +            'DELETE', 'DISPLAY', 'DIVIDE', 'INTO', 'REMAINDER', 'ENTER',
        +            'COBOL', 'EVALUATE', 'EXIT', 'GO', 'INITIALIZE',
        +            'TALLYING', 'REPLACING', 'CONVERTING', 'LOCKFILE', 'MERGE', 'MOVE',
        +            'MULTIPLY', 'OPEN', 'PERFORM', 'TIMES',
        +            'UNTIL', 'VARYING', 'RETURN',
        +            ),
        +        3 => array( //Reserved in some contexts
        +            'ACCESS', 'ADDRESS', 'ADVANCING', 'AFTER', 'ALL',
        +            'ALPHABET', 'ALPHABETIC', 'ALPHABETIC-LOWER', 'ALPHABETIC-UPPER',
        +            'ALPHANUMERIC', 'ALPHANUMERIC-EDITED', 'ALSO', 'ALTERNATE',
        +            'AND', 'ANY', 'APPROXIMATE', 'AREA', 'AREAS', 'ASCENDING', 'ASSIGN',
        +            'AT', 'AUTHOR', 'BEFORE', 'BINARY', 'BLOCK', 'BOTTOM', 'BY',
        +            'CD', 'CF', 'CH', 'CHARACTER', 'CHARACTERS',
        +            'CHARACTER-SET', 'CLASS', 'CLOCK-UNITS',
        +            'CODE-SET', 'COLLATING', 'COLUMN', 'COMMA',
        +            'COMMON', 'COMMUNICATION', 'COMP', 'COMP-3', 'COMP-5',
        +            'COMPUTATIONAL', 'COMPUTATIONAL-3', 'COMPUTATIONAL-5',
        +            'CONFIGURATION', 'CONTAINS', 'CONTENT', 'CONTROL',
        +            'CONTROLS', 'CORR', 'COUNT',
        +            'CURRENCY', 'DATA', 'DATE', 'DATE-COMPILED', 'DATE-WRITTEN', 'DAY',
        +            'DAY-OF-WEEK', 'DE', 'DEBUG-CONTENTS', 'DEBUG-ITEM', 'DEBUG-LINE',
        +            'DEBUG-SUB-2', 'DEBUG-SUB-3', 'DEBUGGING', 'DECIMAL-POINT',
        +            'DECLARATIVES', 'DEBUG-NAME', 'DEBUG-SUB-1', 'DELIMITED',
        +            'DELIMITER', 'DEPENDING', 'DESCENDING', 'DESTINATION', 'DETAIL',
        +            'DISABLE', 'DIVISION', 'DOWN', 'DUPLICATES',
        +            'DYNAMIC', 'EGI', 'ELSE', 'EMI', 'ENABLE', 'END', 'END-ADD',
        +            'END-COMPUTE', 'END-DELETE', 'END-DIVIDE', 'END-EVALUATE', 'END-IF',
        +            'END-MULTIPLY', 'END-OF-PAGE', 'END-PERFORM', 'END-READ',
        +            'END-RECEIVE', 'END-RETURN', 'END-REWRITE', 'END-SEARCH',
        +            'END-START', 'END-STRING', 'END-SUBTRACT', 'END-UNSTRING',
        +            'END-WRITE', 'EOP', 'EQUAL', 'ERROR', 'ESI',
        +            'EVERY', 'EXCEPTION', 'EXCLUSIVE', 'EXTEND',
        +            'EXTENDED-STORAGE', 'EXTERNAL', 'FALSE', 'FD', 'FILE',
        +            'FILE-CONTROL', 'FILLER', 'FINAL', 'FIRST', 'FOOTING', 'FOR',
        +            'FROM', 'FUNCTION', 'GENERATE', 'GENERIC', 'GLOBAL',
        +            'GREATER', 'GROUP', 'GUARDIAN-ERR', 'HIGH-VALUE',
        +            'HIGH-VALUES', 'I-O', 'I-O-CONTROL', 'IDENTIFICATION', 'IN',
        +            'INDEX', 'INDEXED', 'INDICATE', 'INITIAL', 'INITIATE',
        +            'INPUT', 'INPUT-OUTPUT', 'INSTALLATION',
        +            'INVALID', 'IS', 'JUST', 'JUSTIFIED', 'KEY', 'LABEL', 'LAST',
        +            'LEADING', 'LEFT', 'LESS', 'LIMIT', 'LIMITS', 'LINAGE',
        +            'LINAGE-COUNTER', 'LINE', 'LINE-COUNTER', 'LINKAGE', 'LOCK',
        +            'LOW-VALUE', 'LOW-VALUES', 'MEMORY', 'MESSAGE',
        +            'MODE', 'MODULES', 'MULTIPLE', 'NATIVE',
        +            'NEGATIVE', 'NEXT', 'NO', 'NOT', 'NULL', 'NULLS', 'NUMBER',
        +            'NUMERIC', 'NUMERIC-EDITED', 'OBJECT-COMPUTER', 'OCCURS', 'OF',
        +            'OFF', 'OMITTED', 'ON', 'OPTIONAL', 'OR', 'ORDER',
        +            'ORGANIZATION', 'OTHER', 'OUTPUT', 'OVERFLOW', 'PACKED-DECIMAL',
        +            'PADDING', 'PAGE', 'PAGE-COUNTER', 'PF', 'PH', 'PIC',
        +            'PICTURE', 'PLUS', 'POINTER', 'POSITION', 'POSITIVE', 'PRINTING',
        +            'PROCEDURE', 'PROCEDURES', 'PROCEED', 'PROGRAM', 'PROGRAM-ID',
        +            'PROGRAM-STATUS', 'PROGRAM-STATUS-1', 'PROGRAM-STATUS-2', 'PROMPT',
        +            'PROTECTED', 'PURGE', 'QUEUE', 'QUOTE', 'QUOTES', 'RD',
        +            'RECEIVE', 'RECEIVE-CONTROL', 'RECORD', 'RECORDS',
        +            'REDEFINES', 'REEL', 'REFERENCE', 'REFERENCES', 'RELATIVE',
        +            'REMOVAL', 'RENAMES', 'REPLACE',
        +            'REPLY', 'REPORT', 'REPORTING', 'REPORTS', 'RERUN',
        +            'RESERVE', 'RESET', 'REVERSED', 'REWIND', 'REWRITE', 'RF',
        +            'RH', 'RIGHT', 'ROUNDED', 'RUN', 'SAME', 'SD',
        +            'SECURITY', 'SEGMENT', 'SEGMENT-LIMIT', 'SELECT', 'SEND',
        +            'SENTENCE', 'SEPARATE', 'SEQUENCE', 'SEQUENTIAL', 'SET',
        +            'SIGN', 'SIZE', 'SORT', 'SORT-MERGE', 'SOURCE-COMPUTER',
        +            'SPACE', 'SPACES', 'SPECIAL-NAMES', 'STANDARD', 'STANDARD-1',
        +            'STANDARD-2', 'START', 'STARTBACKUP', 'STATUS', 'STOP', 'STRING',
        +            'SUB-QUEUE-1', 'SUB-QUEUE-2', 'SUB-QUEUE-3', 'SUBTRACT',
        +            'SYMBOLIC', 'SYNC', 'SYNCDEPTH', 'SYNCHRONIZED',
        +            'TABLE', 'TAL', 'TAPE', 'TERMINAL', 'TERMINATE', 'TEST',
        +            'TEXT', 'THAN', 'THEN', 'THROUGH', 'THRU', 'TIME',
        +            'TOP', 'TRAILING', 'TRUE', 'TYPE', 'UNIT', 'UNLOCK', 'UNLOCKFILE',
        +            'UNLOCKRECORD', 'UNSTRING', 'UP', 'UPON', 'USAGE', 'USE',
        +            'USING', 'VALUE', 'VALUES', 'WHEN', 'WITH', 'WORDS',
        +            'WORKING-STORAGE', 'WRITE', 'ZERO', 'ZEROES'
        +            ),
        +        4 => array( //Standard functions
        +            'ACOS', 'ANNUITY', 'ASIN', 'ATAN', 'CHAR', 'COS', 'CURRENT-DATE',
        +            'DATE-OF-INTEGER', 'DAY-OF-INTEGER', 'FACTORIAL', 'INTEGER',
        +            'INTEGER-OF-DATE', 'INTEGER-OF-DAY', 'INTEGER-PART', 'LENGTH',
        +            'LOG', 'LOG10', 'LOWER-CASE', 'MAX', 'MEAN', 'MEDIAN', 'MIDRANGE',
        +            'MIN', 'MOD', 'NUMVAL', 'NUMVAL-C', 'ORD', 'ORD-MAX', 'ORD-MIN',
        +            'PRESENT-VALUE', 'RANDOM', 'RANGE', 'REM', 'REVERSE', 'SIN', 'SQRT',
        +            'STANDARD-DEVIATION', 'SUM', 'TAN', 'UPPER-CASE', 'VARIANCE',
        +            'WHEN-COMPILED'
        +            ),
        +        5 => array( //Privileged Built-in Functions
        +            '#IN', '#OUT', '#TERM', '#TEMP', '#DYNAMIC', 'COBOL85^ARMTRAP',
        +            'COBOL85^COMPLETION', 'COBOL_COMPLETION_', 'COBOL_CONTROL_',
        +            'COBOL_GETENV_', 'COBOL_PUTENV_', 'COBOL85^RETURN^SORT^ERRORS',
        +            'COBOL_RETURN_SORT_ERRORS_', 'COBOL85^REWIND^SEQUENTIAL',
        +            'COBOL_REWIND_SEQUENTIAL_', 'COBOL85^SET^SORT^PARAM^TEXT',
        +            'COBOL_SET_SORT_PARAM_TEXT_', 'COBOL85^SET^SORT^PARAM^VALUE',
        +            'COBOL_SET_SORT_PARAM_VALUE_', 'COBOL_SET_MAX_RECORD_',
        +            'COBOL_SETMODE_', 'COBOL85^SPECIAL^OPEN', 'COBOL_SPECIAL_OPEN_',
        +            'COBOLASSIGN', 'COBOL_ASSIGN_', 'COBOLFILEINFO', 'COBOL_FILE_INFO_',
        +            'COBOLSPOOLOPEN', 'CREATEPROCESS', 'ALTERPARAMTEXT',
        +            'CHECKLOGICALNAME', 'CHECKMESSAGE', 'DELETEASSIGN', 'DELETEPARAM',
        +            'DELETESTARTUP', 'GETASSIGNTEXT', 'GETASSIGNVALUE', 'GETBACKUPCPU',
        +            'GETPARAMTEXT', 'GETSTARTUPTEXT', 'PUTASSIGNTEXT', 'PUTASSIGNVALUE',
        +            'PUTPARAMTEXT', 'PUTSTARTUPTEXT'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        //Avoid having - in identifiers marked as symbols
        +        ' + ', ' - ', ' * ', ' / ', ' ** ',
        +        '.', ',',
        +        '=',
        +        '(', ')', '[', ']'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000080; font-weight: bold;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #008000; font-weight: bold;',
        +            4 => 'color: #000080;',
        +            5 => 'color: #008000;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #a0a0a0; font-style: italic;',
        +            'MULTI' => 'color: #a0a0a0; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #993399;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #202020;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000066;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +    );
        +
        +?>
        diff --git a/Sources/geshi/coffeescript.php b/Sources/geshi/coffeescript.php
        new file mode 100644
        index 0000000..194aecd
        --- /dev/null
        +++ b/Sources/geshi/coffeescript.php
        @@ -0,0 +1,146 @@
        + 'CoffeeScript',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array('###' => '###'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    //Longest quotemarks ALWAYS first
        +    'QUOTEMARKS' => array('"""', "'''", '"', "'"),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +
        +        /*
        +        ** Set 1: control keywords
        +        */
        +        1 => array(
        +            'break', 'by', 'catch', 'continue', 'else', 'finally', 'for', 'in', 'of', 'if',
        +            'return', 'switch', 'then', 'throw', 'try', 'unless', 'when', 'while', 'until'
        +            ),
        +
        +        /*
        +        ** Set 2: logic keywords
        +        */
        +        2 => array(
        +            'and', 'or', 'is', 'isnt', 'not'
        +            ),
        +
        +        /*
        +        ** Set 3: other keywords
        +        */
        +        3 => array(
        +            'instanceof', 'new', 'delete', 'typeof',
        +            'class', 'super', 'this', 'extends'
        +            ),
        +
        +        /*
        +        ** Set 4: constants
        +        */
        +        4 => array(
        +            'true', 'false', 'on', 'off', 'yes', 'no',
        +            'Infinity', 'NaN', 'undefined', 'null'
        +            )
        +        ),
        +    '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;',
        +            2 => 'color: #008000;',
        +            3 => 'color: #dc143c;',
        +            4 => 'color: #0000cd;'
        +            ),
        +        '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(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(
        +        0 => array(
        +            ''
        +            )
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/cpp-qt.php b/Sources/geshi/cpp-qt.php
        new file mode 100644
        index 0000000..36626c9
        --- /dev/null
        +++ b/Sources/geshi/cpp-qt.php
        @@ -0,0 +1,564 @@
        + 'C++ (Qt)',
        +    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Multiline-continued single-line comments
        +        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
        +        //Multiline-continued preprocessor define
        +        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        //Simple Single Char Escapes
        +        1 => "#\\\\[abfnrtv\\\'\"?\n]#i",
        +        //Hexadecimal Char Specs
        +        2 => "#\\\\x[\da-fA-F]{2}#",
        +        //Hexadecimal Char Specs
        +        3 => "#\\\\u[\da-fA-F]{4}#",
        +        //Hexadecimal Char Specs
        +        4 => "#\\\\U[\da-fA-F]{8}#",
        +        //Octal Char Specs
        +        5 => "#\\\\[0-7]{1,3}#"
        +        ),
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
        +        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
        +        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'case', 'continue', 'default', 'do', 'else', 'for', 'goto', 'if', 'return',
        +            'switch', 'while', 'delete', 'new', 'this'
        +            ),
        +        2 => array(
        +            'NULL', 'false', 'break', 'true', 'enum', 'errno', 'EDOM',
        +            'ERANGE', 'FLT_RADIX', 'FLT_ROUNDS', 'FLT_DIG', 'DBL_DIG', 'LDBL_DIG',
        +            'FLT_EPSILON', 'DBL_EPSILON', 'LDBL_EPSILON', 'FLT_MANT_DIG', 'DBL_MANT_DIG',
        +            'LDBL_MANT_DIG', 'FLT_MAX', 'DBL_MAX', 'LDBL_MAX', 'FLT_MAX_EXP', 'DBL_MAX_EXP',
        +            'LDBL_MAX_EXP', 'FLT_MIN', 'DBL_MIN', 'LDBL_MIN', 'FLT_MIN_EXP', 'DBL_MIN_EXP',
        +            'LDBL_MIN_EXP', 'CHAR_BIT', 'CHAR_MAX', 'CHAR_MIN', 'SCHAR_MAX', 'SCHAR_MIN',
        +            'UCHAR_MAX', 'SHRT_MAX', 'SHRT_MIN', 'USHRT_MAX', 'INT_MAX', 'INT_MIN',
        +            'UINT_MAX', 'LONG_MAX', 'LONG_MIN', 'ULONG_MAX', 'HUGE_VAL', 'SIGABRT',
        +            'SIGFPE', 'SIGILL', 'SIGINT', 'SIGSEGV', 'SIGTERM', 'SIG_DFL', 'SIG_ERR',
        +            'SIG_IGN', 'BUFSIZ', 'EOF', 'FILENAME_MAX', 'FOPEN_MAX', 'L_tmpnam',
        +            'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'stdin', 'stdout', 'stderr',
        +            'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC',
        +            'virtual', 'public', 'private', 'protected', 'template', 'using', 'namespace',
        +            'try', 'catch', 'inline', 'dynamic_cast', 'const_cast', 'reinterpret_cast',
        +            'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class' ,
        +            'foreach','connect', 'Q_OBJECT' , 'slots' , 'signals', 'Q_SIGNALS', 'Q_SLOTS',
        +            'Q_FOREACH', 'QCOMPARE', 'QVERIFY', 'qDebug', 'kDebug', 'QBENCHMARK'
        +            ),
        +        3 => array(
        +            'cin', 'cerr', 'clog', 'cout',
        +            'printf', 'fprintf', 'snprintf', 'sprintf', 'assert',
        +            'isalnum', 'isalpha', 'isdigit', 'iscntrl', 'isgraph', 'islower', 'isprint',
        +            'ispunct', 'isspace', 'isupper', 'isxdigit', 'tolower', 'toupper',
        +            'exp', 'log', 'log10', 'pow', 'sqrt', 'ceil', 'floor', 'fabs', 'ldexp',
        +            'frexp', 'modf', 'fmod', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'atan2',
        +            'sinh', 'cosh', 'tanh', 'setjmp', 'longjmp',
        +            'va_start', 'va_arg', 'va_end', 'offsetof', 'sizeof', 'fopen', 'freopen',
        +            'fflush', 'fclose', 'remove', 'rename', 'tmpfile', 'tmpname', 'setvbuf',
        +            'setbuf', 'vfprintf', 'vprintf', 'vsprintf', 'fscanf', 'scanf', 'sscanf',
        +            'fgetc', 'fgets', 'fputc', 'fputs', 'getc', 'getchar', 'gets', 'putc',
        +            'putchar', 'puts', 'ungetc', 'fread', 'fwrite', 'fseek', 'ftell', 'rewind',
        +            'fgetpos', 'fsetpos', 'clearerr', 'feof', 'ferror', 'perror', 'abs', 'labs',
        +            'div', 'ldiv', 'atof', 'atoi', 'atol', 'strtod', 'strtol', 'strtoul', 'calloc',
        +            'malloc', 'realloc', 'free', 'abort', 'exit', 'atexit', 'system', 'getenv',
        +            'bsearch', 'qsort', 'rand', 'srand', 'strcpy', 'strncpy', 'strcat', 'strncat',
        +            'strcmp', 'strncmp', 'strcoll', 'strchr', 'strrchr', 'strspn', 'strcspn',
        +            'strpbrk', 'strstr', 'strlen', 'strerror', 'strtok', 'strxfrm', 'memcpy',
        +            'memmove', 'memcmp', 'memchr', 'memset', 'clock', 'time', 'difftime', 'mktime',
        +            'asctime', 'ctime', 'gmtime', 'localtime', 'strftime'
        +            ),
        +        4 => array(
        +            'auto', 'bool', 'char', 'const', 'double', 'float', 'int', 'long', 'longint',
        +            'register', 'short', 'shortint', 'signed', 'static', 'struct',
        +            'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf',
        +            'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t',
        +            'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', 'wchar_t',
        +
        +            'int8', 'int16', 'int32', 'int64',
        +            'uint8', 'uint16', 'uint32', 'uint64',
        +
        +            'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t',
        +            'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
        +
        +            'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t',
        +            'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t',
        +
        +            'int8_t', 'int16_t', 'int32_t', 'int64_t',
        +            'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t',
        +
        +            'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t'
        +            ),
        +        5 => array(
        +            "Q_UINT16", "Q_UINT32", "Q_UINT64", "Q_UINT8", "Q_ULLONG",
        +            "Q_ULONG", "Q3Accel", "Q3Action", "Q3ActionGroup", "Q3AsciiBucket",
        +            "Q3AsciiCache", "Q3AsciiCacheIterator", "Q3AsciiDict",
        +            "Q3AsciiDictIterator", "Q3BaseBucket", "Q3BoxLayout", "Q3Button",
        +            "Q3ButtonGroup", "Q3Cache", "Q3CacheIterator", "Q3Canvas",
        +            "Q3CanvasEllipse", "Q3CanvasItem", "Q3CanvasItemList",
        +            "Q3CanvasLine", "Q3CanvasPixmap", "Q3CanvasPixmapArray",
        +            "Q3CanvasPolygon", "Q3CanvasPolygonalItem", "Q3CanvasRectangle",
        +            "Q3CanvasSpline", "Q3CanvasSprite", "Q3CanvasText", "Q3CanvasView",
        +            "Q3CheckListItem", "Q3CheckTableItem", "Q3CleanupHandler",
        +            "Q3ColorDrag", "Q3ComboBox", "Q3ComboTableItem", "Q3CString",
        +            "Q3DataBrowser", "Q3DataTable", "Q3DataView", "Q3DateEdit",
        +            "Q3DateTimeEdit", "Q3DateTimeEditBase", "Q3DeepCopy", "Q3Dict",
        +            "Q3DictIterator", "Q3Dns", "Q3DnsSocket", "Q3DockArea",
        +            "Q3DockAreaLayout", "Q3DockWindow", "Q3DragObject", "Q3DropSite",
        +            "Q3EditorFactory", "Q3FileDialog", "Q3FileIconProvider",
        +            "Q3FilePreview", "Q3Frame", "Q3Ftp", "Q3GArray", "Q3GCache",
        +            "Q3GCacheIterator", "Q3GDict", "Q3GDictIterator", "Q3GList",
        +            "Q3GListIterator", "Q3GListStdIterator", "Q3Grid", "Q3GridLayout",
        +            "Q3GridView", "Q3GroupBox", "Q3GVector", "Q3HBox", "Q3HBoxLayout",
        +            "Q3HButtonGroup", "Q3Header", "Q3HGroupBox", "Q3Http",
        +            "Q3HttpHeader", "Q3HttpRequestHeader", "Q3HttpResponseHeader",
        +            "Q3IconDrag", "Q3IconDragItem", "Q3IconView", "Q3IconViewItem",
        +            "Q3ImageDrag", "Q3IntBucket", "Q3IntCache", "Q3IntCacheIterator",
        +            "Q3IntDict", "Q3IntDictIterator", "Q3ListBox", "Q3ListBoxItem",
        +            "Q3ListBoxPixmap", "Q3ListBoxText", "Q3ListView", "Q3ListViewItem",
        +            "Q3ListViewItemIterator", "Q3LNode", "Q3LocalFs", "Q3MainWindow",
        +            "Q3MemArray", "Q3MimeSourceFactory", "Q3MultiLineEdit",
        +            "Q3NetworkOperation", "Q3NetworkProtocol", "Q3NetworkProtocolDict",
        +            "Q3NetworkProtocolFactory", "Q3NetworkProtocolFactoryBase",
        +            "Q3ObjectDictionary", "Q3PaintDeviceMetrics", "Q3Painter",
        +            "Q3Picture", "Q3PointArray", "Q3PolygonScanner", "Q3PopupMenu",
        +            "Q3Process", "Q3ProgressBar", "Q3ProgressDialog", "Q3PtrBucket",
        +            "Q3PtrCollection", "Q3PtrDict", "Q3PtrDictIterator", "Q3PtrList",
        +            "Q3PtrListIterator", "Q3PtrListStdIterator", "Q3PtrQueue",
        +            "Q3PtrStack", "Q3PtrVector", "Q3RangeControl", "Q3ScrollView",
        +            "Q3Semaphore", "Q3ServerSocket", "Q3Shared", "Q3Signal",
        +            "Q3SimpleRichText", "Q3SingleCleanupHandler", "Q3Socket",
        +            "Q3SocketDevice", "Q3SortedList", "Q3SpinWidget", "Q3SqlCursor",
        +            "Q3SqlEditorFactory", "Q3SqlFieldInfo", "Q3SqlFieldInfoList",
        +            "Q3SqlForm", "Q3SqlPropertyMap", "Q3SqlRecordInfo",
        +            "Q3SqlSelectCursor", "Q3StoredDrag", "Q3StrIList", "Q3StringBucket",
        +            "Q3StrIVec", "Q3StrList", "Q3StrListIterator", "Q3StrVec",
        +            "Q3StyleSheet", "Q3StyleSheetItem", "Q3SyntaxHighlighter",
        +            "Q3TabDialog", "Q3Table", "Q3TableItem", "Q3TableSelection",
        +            "Q3TextBrowser", "Q3TextDrag", "Q3TextEdit",
        +            "Q3TextEditOptimPrivate", "Q3TextStream", "Q3TextView",
        +            "Q3TimeEdit", "Q3ToolBar", "Q3TSFUNC", "Q3UriDrag", "Q3Url",
        +            "Q3UrlOperator", "Q3ValueList", "Q3ValueListConstIterator",
        +            "Q3ValueListIterator", "Q3ValueStack", "Q3ValueVector", "Q3VBox",
        +            "Q3VBoxLayout", "Q3VButtonGroup", "Q3VGroupBox", "Q3WhatsThis",
        +            "Q3WidgetStack", "Q3Wizard", "QAbstractButton",
        +            "QAbstractEventDispatcher", "QAbstractExtensionFactory",
        +            "QAbstractExtensionManager", "QAbstractFileEngine",
        +            "QAbstractFileEngineHandler", "QAbstractFileEngineIterator",
        +            "QAbstractFormBuilder", "QAbstractGraphicsShapeItem",
        +            "QAbstractItemDelegate", "QAbstractItemModel", "QAbstractItemView",
        +            "QAbstractListModel", "QAbstractMessageHandler",
        +            "QAbstractNetworkCache", "QAbstractPageSetupDialog",
        +            "QAbstractPrintDialog", "QAbstractProxyModel",
        +            "QAbstractScrollArea", "QAbstractSlider", "QAbstractSocket",
        +            "QAbstractSpinBox", "QAbstractTableModel",
        +            "QAbstractTextDocumentLayout", "QAbstractUndoItem",
        +            "QAbstractUriResolver", "QAbstractXmlNodeModel",
        +            "QAbstractXmlReceiver", "QAccessible", "QAccessible2Interface",
        +            "QAccessibleApplication", "QAccessibleBridge",
        +            "QAccessibleBridgeFactoryInterface", "QAccessibleBridgePlugin",
        +            "QAccessibleEditableTextInterface", "QAccessibleEvent",
        +            "QAccessibleFactoryInterface", "QAccessibleInterface",
        +            "QAccessibleInterfaceEx", "QAccessibleObject",
        +            "QAccessibleObjectEx", "QAccessiblePlugin",
        +            "QAccessibleSimpleEditableTextInterface",
        +            "QAccessibleTableInterface", "QAccessibleTextInterface",
        +            "QAccessibleValueInterface", "QAccessibleWidget",
        +            "QAccessibleWidgetEx", "QAction", "QActionEvent", "QActionGroup",
        +            "QApplication", "QArgument", "QAssistantClient", "QAtomicInt",
        +            "QAtomicPointer", "QAuthenticator", "QBasicAtomicInt",
        +            "QBasicAtomicPointer", "QBasicTimer", "QBitArray", "QBitmap",
        +            "QBitRef", "QBool", "QBoxLayout", "QBrush", "QBrushData", "QBuffer",
        +            "QButtonGroup", "QByteArray", "QByteArrayMatcher", "QByteRef",
        +            "QCache", "QCalendarWidget", "QCDEStyle", "QChar", "QCharRef",
        +            "QCheckBox", "QChildEvent", "QCleanlooksStyle", "QClipboard",
        +            "QClipboardEvent", "QCloseEvent", "QColor", "QColorDialog",
        +            "QColorGroup", "QColormap", "QColumnView", "QComboBox",
        +            "QCommandLinkButton", "QCommonStyle", "QCompleter",
        +            "QConicalGradient", "QConstString", "QContextMenuEvent", "QCOORD",
        +            "QCoreApplication", "QCryptographicHash", "QCursor", "QCursorShape",
        +            "QCustomEvent", "QDataStream", "QDataWidgetMapper", "QDate",
        +            "QDateEdit", "QDateTime", "QDateTimeEdit", "QDB2Driver",
        +            "QDB2Result", "QDBusAbstractAdaptor", "QDBusAbstractInterface",
        +            "QDBusArgument", "QDBusConnection", "QDBusConnectionInterface",
        +            "QDBusContext", "QDBusError", "QDBusInterface", "QDBusMessage",
        +            "QDBusMetaType", "QDBusObjectPath", "QDBusPendingCall",
        +            "QDBusPendingCallWatcher", "QDBusPendingReply",
        +            "QDBusPendingReplyData", "QDBusReply", "QDBusServer",
        +            "QDBusSignature", "QDBusVariant", "QDebug",
        +            "QDesignerActionEditorInterface", "QDesignerBrushManagerInterface",
        +            "QDesignerComponents", "QDesignerContainerExtension",
        +            "QDesignerCustomWidgetCollectionInterface",
        +            "QDesignerCustomWidgetInterface", "QDesignerDnDItemInterface",
        +            "QDesignerDynamicPropertySheetExtension", "QDesignerExportWidget",
        +            "QDesignerExtraInfoExtension", "QDesignerFormEditorInterface",
        +            "QDesignerFormEditorPluginInterface", "QDesignerFormWindowCursorInterface",
        +            "QDesignerFormWindowInterface", "QDesignerFormWindowManagerInterface",
        +            "QDesignerFormWindowToolInterface",
        +            "QDesignerIconCacheInterface", "QDesignerIntegrationInterface",
        +            "QDesignerLanguageExtension", "QDesignerLayoutDecorationExtension",
        +            "QDesignerMemberSheetExtension", "QDesignerMetaDataBaseInterface",
        +            "QDesignerMetaDataBaseItemInterface",
        +            "QDesignerObjectInspectorInterface", "QDesignerPromotionInterface",
        +            "QDesignerPropertyEditorInterface",
        +            "QDesignerPropertySheetExtension", "QDesignerResourceBrowserInterface",
        +            "QDesignerTaskMenuExtension", "QDesignerWidgetBoxInterface",
        +            "QDesignerWidgetDataBaseInterface", "QDesignerWidgetDataBaseItemInterface",
        +            "QDesignerWidgetFactoryInterface", "QDesktopServices",
        +            "QDesktopWidget", "QDial", "QDialog", "QDialogButtonBox", "QDir",
        +            "QDirIterator", "QDirModel", "QDockWidget", "QDomAttr",
        +            "QDomCDATASection", "QDomCharacterData", "QDomComment",
        +            "QDomDocument", "QDomDocumentFragment", "QDomDocumentType",
        +            "QDomElement", "QDomEntity", "QDomEntityReference",
        +            "QDomImplementation", "QDomNamedNodeMap", "QDomNode",
        +            "QDomNodeList", "QDomNotation", "QDomProcessingInstruction",
        +            "QDomText", "QDoubleSpinBox", "QDoubleValidator", "QDrag",
        +            "QDragEnterEvent", "QDragLeaveEvent", "QDragMoveEvent",
        +            "QDragResponseEvent", "QDropEvent", "QDynamicPropertyChangeEvent",
        +            "QErrorMessage", "QEvent", "QEventLoop", "QEventSizeOfChecker",
        +            "QExplicitlySharedDataPointer", "QExtensionFactory",
        +            "QExtensionManager", "QFactoryInterface", "QFile", "QFileDialog",
        +            "QFileIconProvider", "QFileInfo", "QFileInfoList",
        +            "QFileInfoListIterator", "QFileOpenEvent", "QFileSystemModel",
        +            "QFileSystemWatcher", "QFlag", "QFlags", "QFocusEvent",
        +            "QFocusFrame", "QFont", "QFontComboBox", "QFontDatabase",
        +            "QFontDialog", "QFontInfo", "QFontMetrics", "QFontMetricsF",
        +            "QForeachContainer", "QForeachContainerBase", "QFormBuilder",
        +            "QFormLayout", "QFrame", "QFSFileEngine", "QFtp", "QFuture",
        +            "QFutureInterface", "QFutureInterfaceBase", "QFutureIterator",
        +            "QFutureSynchronizer", "QFutureWatcher", "QFutureWatcherBase",
        +            "QGenericArgument", "QGenericReturnArgument", "QGLColormap",
        +            "QGLContext", "QGLFormat", "QGLFramebufferObject", "QGlobalStatic",
        +            "QGlobalStaticDeleter", "QGLPixelBuffer", "QGLWidget", "QGradient",
        +            "QGradientStop", "QGradientStops", "QGraphicsEllipseItem",
        +            "QGraphicsGridLayout", "QGraphicsItem", "QGraphicsItemAnimation",
        +            "QGraphicsItemGroup", "QGraphicsLayout", "QGraphicsLayoutItem",
        +            "QGraphicsLinearLayout", "QGraphicsLineItem", "QGraphicsPathItem",
        +            "QGraphicsPixmapItem", "QGraphicsPolygonItem",
        +            "QGraphicsProxyWidget", "QGraphicsRectItem", "QGraphicsScene",
        +            "QGraphicsSceneContextMenuEvent", "QGraphicsSceneDragDropEvent",
        +            "QGraphicsSceneEvent", "QGraphicsSceneHelpEvent",
        +            "QGraphicsSceneHoverEvent", "QGraphicsSceneMouseEvent",
        +            "QGraphicsSceneMoveEvent", "QGraphicsSceneResizeEvent",
        +            "QGraphicsSceneWheelEvent", "QGraphicsSimpleTextItem",
        +            "QGraphicsSvgItem", "QGraphicsTextItem", "QGraphicsView",
        +            "QGraphicsWidget", "QGridLayout", "QGroupBox", "QGtkStyle", "QHash",
        +            "QHashData", "QHashDummyNode", "QHashDummyValue", "QHashIterator",
        +            "QHashNode", "QHBoxLayout", "QHeaderView", "QHelpContentItem",
        +            "QHelpContentModel", "QHelpContentWidget", "QHelpEngine",
        +            "QHelpEngineCore", "QHelpEvent", "QHelpGlobal", "QHelpIndexModel",
        +            "QHelpIndexWidget", "QHelpSearchEngine", "QHelpSearchQuery",
        +            "QHelpSearchQueryWidget", "QHelpSearchResultWidget", "QHideEvent",
        +            "QHostAddress", "QHostInfo", "QHoverEvent", "QHttp", "QHttpHeader",
        +            "QHttpRequestHeader", "QHttpResponseHeader", "QIBaseDriver",
        +            "QIBaseResult", "QIcon", "QIconDragEvent", "QIconEngine",
        +            "QIconEngineFactoryInterface", "QIconEngineFactoryInterfaceV2",
        +            "QIconEnginePlugin", "QIconEnginePluginV2", "QIconEngineV2",
        +            "QIconSet", "QImage", "QImageIOHandler",
        +            "QImageIOHandlerFactoryInterface", "QImageIOPlugin", "QImageReader",
        +            "QImageTextKeyLang", "QImageWriter", "QIncompatibleFlag",
        +            "QInputContext", "QInputContextFactory",
        +            "QInputContextFactoryInterface", "QInputContextPlugin",
        +            "QInputDialog", "QInputEvent", "QInputMethodEvent", "Q_INT16",
        +            "Q_INT32", "Q_INT64", "Q_INT8", "QInternal", "QIntForSize",
        +            "QIntForType", "QIntValidator", "QIODevice", "Q_IPV6ADDR",
        +            "QIPv6Address", "QItemDelegate", "QItemEditorCreator",
        +            "QItemEditorCreatorBase", "QItemEditorFactory", "QItemSelection",
        +            "QItemSelectionModel", "QItemSelectionRange", "QKeyEvent",
        +            "QKeySequence", "QLabel", "QLatin1Char", "QLatin1String", "QLayout",
        +            "QLayoutItem", "QLayoutIterator", "QLCDNumber", "QLibrary",
        +            "QLibraryInfo", "QLine", "QLinearGradient", "QLineEdit", "QLineF",
        +            "QLinkedList", "QLinkedListData", "QLinkedListIterator",
        +            "QLinkedListNode", "QList", "QListData", "QListIterator",
        +            "QListView", "QListWidget", "QListWidgetItem", "Q_LLONG", "QLocale",
        +            "QLocalServer", "QLocalSocket", "Q_LONG", "QMacCompatGLenum",
        +            "QMacCompatGLint", "QMacCompatGLuint", "QMacGLCompatTypes",
        +            "QMacMime", "QMacPasteboardMime", "QMainWindow", "QMap", "QMapData",
        +            "QMapIterator", "QMapNode", "QMapPayloadNode", "QMatrix",
        +            "QMdiArea", "QMdiSubWindow", "QMenu", "QMenuBar",
        +            "QMenubarUpdatedEvent", "QMenuItem", "QMessageBox",
        +            "QMetaClassInfo", "QMetaEnum", "QMetaMethod", "QMetaObject",
        +            "QMetaObjectExtraData", "QMetaProperty", "QMetaType", "QMetaTypeId",
        +            "QMetaTypeId2", "QMimeData", "QMimeSource", "QModelIndex",
        +            "QModelIndexList", "QMotifStyle", "QMouseEvent", "QMoveEvent",
        +            "QMovie", "QMultiHash", "QMultiMap", "QMutableFutureIterator",
        +            "QMutableHashIterator", "QMutableLinkedListIterator",
        +            "QMutableListIterator", "QMutableMapIterator",
        +            "QMutableSetIterator", "QMutableStringListIterator",
        +            "QMutableVectorIterator", "QMutex", "QMutexLocker", "QMYSQLDriver",
        +            "QMYSQLResult", "QNetworkAccessManager", "QNetworkAddressEntry",
        +            "QNetworkCacheMetaData", "QNetworkCookie", "QNetworkCookieJar",
        +            "QNetworkDiskCache", "QNetworkInterface", "QNetworkProxy",
        +            "QNetworkProxyFactory", "QNetworkProxyQuery", "QNetworkReply",
        +            "QNetworkRequest", "QNoDebug", "QNoImplicitBoolCast", "QObject",
        +            "QObjectCleanupHandler", "QObjectData", "QObjectList",
        +            "QObjectUserData", "QOCIDriver", "QOCIResult", "QODBCDriver",
        +            "QODBCResult", "QPageSetupDialog", "QPaintDevice", "QPaintEngine",
        +            "QPaintEngineState", "QPainter", "QPainterPath",
        +            "QPainterPathPrivate", "QPainterPathStroker", "QPaintEvent",
        +            "QPair", "QPalette", "QPen", "QPersistentModelIndex", "QPicture",
        +            "QPictureFormatInterface", "QPictureFormatPlugin", "QPictureIO",
        +            "Q_PID", "QPixmap", "QPixmapCache", "QPlainTextDocumentLayout",
        +            "QPlainTextEdit", "QPlastiqueStyle", "QPluginLoader", "QPoint",
        +            "QPointer", "QPointF", "QPolygon", "QPolygonF", "QPrintDialog",
        +            "QPrintEngine", "QPrinter", "QPrinterInfo", "QPrintPreviewDialog",
        +            "QPrintPreviewWidget", "QProcess", "QProgressBar",
        +            "QProgressDialog", "QProxyModel", "QPSQLDriver", "QPSQLResult",
        +            "QPushButton", "QQueue", "QRadialGradient", "QRadioButton",
        +            "QReadLocker", "QReadWriteLock", "QRect", "QRectF", "QRegExp",
        +            "QRegExpValidator", "QRegion", "QResizeEvent", "QResource",
        +            "QReturnArgument", "QRgb", "QRubberBand", "QRunnable",
        +            "QScriptable", "QScriptClass", "QScriptClassPropertyIterator",
        +            "QScriptContext", "QScriptContextInfo", "QScriptContextInfoList",
        +            "QScriptEngine", "QScriptEngineAgent", "QScriptEngineDebugger",
        +            "QScriptExtensionInterface", "QScriptExtensionPlugin",
        +            "QScriptString", "QScriptSyntaxCheckResult", "QScriptValue",
        +            "QScriptValueIterator", "QScriptValueList", "QScrollArea",
        +            "QScrollBar", "QSemaphore", "QSessionManager", "QSet",
        +            "QSetIterator", "QSettings", "QSharedData", "QSharedDataPointer",
        +            "QSharedMemory", "QSharedPointer", "QShortcut", "QShortcutEvent",
        +            "QShowEvent", "QSignalMapper", "QSignalSpy", "QSimpleXmlNodeModel",
        +            "QSize", "QSizeF", "QSizeGrip", "QSizePolicy", "QSlider",
        +            "QSocketNotifier", "QSortFilterProxyModel", "QSound",
        +            "QSourceLocation", "QSpacerItem", "QSpinBox", "QSplashScreen",
        +            "QSplitter", "QSplitterHandle", "QSpontaneKeyEvent", "QSqlDatabase",
        +            "QSqlDriver", "QSqlDriverCreator", "QSqlDriverCreatorBase",
        +            "QSqlDriverFactoryInterface", "QSqlDriverPlugin", "QSqlError",
        +            "QSqlField", "QSqlIndex", "QSQLite2Driver", "QSQLite2Result",
        +            "QSQLiteDriver", "QSQLiteResult", "QSqlQuery", "QSqlQueryModel",
        +            "QSqlRecord", "QSqlRelation", "QSqlRelationalDelegate",
        +            "QSqlRelationalTableModel", "QSqlResult", "QSqlTableModel", "QSsl",
        +            "QSslCertificate", "QSslCipher", "QSslConfiguration", "QSslError",
        +            "QSslKey", "QSslSocket", "QStack", "QStackedLayout",
        +            "QStackedWidget", "QStandardItem", "QStandardItemEditorCreator",
        +            "QStandardItemModel", "QStatusBar", "QStatusTipEvent",
        +            "QStdWString", "QString", "QStringList", "QStringListIterator",
        +            "QStringListModel", "QStringMatcher", "QStringRef", "QStyle",
        +            "QStyledItemDelegate", "QStyleFactory", "QStyleFactoryInterface",
        +            "QStyleHintReturn", "QStyleHintReturnMask",
        +            "QStyleHintReturnVariant", "QStyleOption", "QStyleOptionButton",
        +            "QStyleOptionComboBox", "QStyleOptionComplex",
        +            "QStyleOptionDockWidget", "QStyleOptionDockWidgetV2",
        +            "QStyleOptionFocusRect", "QStyleOptionFrame", "QStyleOptionFrameV2",
        +            "QStyleOptionFrameV3", "QStyleOptionGraphicsItem",
        +            "QStyleOptionGroupBox", "QStyleOptionHeader",
        +            "QStyleOptionMenuItem", "QStyleOptionProgressBar",
        +            "QStyleOptionProgressBarV2", "QStyleOptionQ3DockWindow",
        +            "QStyleOptionQ3ListView", "QStyleOptionQ3ListViewItem",
        +            "QStyleOptionRubberBand", "QStyleOptionSizeGrip",
        +            "QStyleOptionSlider", "QStyleOptionSpinBox", "QStyleOptionTab",
        +            "QStyleOptionTabBarBase", "QStyleOptionTabBarBaseV2",
        +            "QStyleOptionTabV2", "QStyleOptionTabV3",
        +            "QStyleOptionTabWidgetFrame", "QStyleOptionTitleBar",
        +            "QStyleOptionToolBar", "QStyleOptionToolBox",
        +            "QStyleOptionToolBoxV2", "QStyleOptionToolButton",
        +            "QStyleOptionViewItem", "QStyleOptionViewItemV2",
        +            "QStyleOptionViewItemV3", "QStyleOptionViewItemV4", "QStylePainter",
        +            "QStylePlugin", "QSvgGenerator", "QSvgRenderer", "QSvgWidget",
        +            "QSyntaxHighlighter", "QSysInfo", "QSystemLocale",
        +            "QSystemSemaphore", "QSystemTrayIcon", "Qt", "Qt3Support",
        +            "QTabBar", "QTabletEvent", "QTableView", "QTableWidget",
        +            "QTableWidgetItem", "QTableWidgetSelectionRange", "QTabWidget",
        +            "QtAlgorithms", "QtAssistant", "QtCleanUpFunction",
        +            "QtConcurrentFilter", "QtConcurrentMap", "QtConcurrentRun",
        +            "QtContainerFwd", "QtCore", "QTcpServer", "QTcpSocket", "QtDBus",
        +            "QtDebug", "QtDesigner", "QTDSDriver", "QTDSResult",
        +            "QTemporaryFile", "QtEndian", "QTest", "QTestAccessibility",
        +            "QTestAccessibilityEvent", "QTestData", "QTestDelayEvent",
        +            "QTestEvent", "QTestEventList", "QTestEventLoop",
        +            "QTestKeyClicksEvent", "QTestKeyEvent", "QTestMouseEvent",
        +            "QtEvents", "QTextBlock", "QTextBlockFormat", "QTextBlockGroup",
        +            "QTextBlockUserData", "QTextBoundaryFinder", "QTextBrowser",
        +            "QTextCharFormat", "QTextCodec", "QTextCodecFactoryInterface",
        +            "QTextCodecPlugin", "QTextCursor", "QTextDecoder", "QTextDocument",
        +            "QTextDocumentFragment", "QTextDocumentWriter", "QTextEdit",
        +            "QTextEncoder", "QTextFormat", "QTextFragment", "QTextFrame",
        +            "QTextFrameFormat", "QTextFrameLayoutData", "QTextImageFormat",
        +            "QTextInlineObject", "QTextIStream", "QTextItem", "QTextLayout",
        +            "QTextLength", "QTextLine", "QTextList", "QTextListFormat",
        +            "QTextObject", "QTextObjectInterface", "QTextOption",
        +            "QTextOStream", "QTextStream", "QTextStreamFunction",
        +            "QTextStreamManipulator", "QTextTable", "QTextTableCell",
        +            "QTextTableCellFormat", "QTextTableFormat", "QtGlobal", "QtGui",
        +            "QtHelp", "QThread", "QThreadPool", "QThreadStorage",
        +            "QThreadStorageData", "QTime", "QTimeEdit", "QTimeLine", "QTimer",
        +            "QTimerEvent", "QtMsgHandler", "QtNetwork", "QToolBar",
        +            "QToolBarChangeEvent", "QToolBox", "QToolButton", "QToolTip",
        +            "QtOpenGL", "QtPlugin", "QtPluginInstanceFunction", "QTransform",
        +            "QTranslator", "QTreeView", "QTreeWidget", "QTreeWidgetItem",
        +            "QTreeWidgetItemIterator", "QTS", "QtScript", "QtScriptTools",
        +            "QtSql", "QtSvg", "QtTest", "QtUiTools", "QtWebKit", "QtXml",
        +            "QtXmlPatterns", "QTypeInfo", "QUdpSocket", "QUiLoader",
        +            "QUintForSize", "QUintForType", "QUndoCommand", "QUndoGroup",
        +            "QUndoStack", "QUndoView", "QUnixPrintWidget", "QUpdateLaterEvent",
        +            "QUrl", "QUrlInfo", "QUuid", "QValidator", "QVariant",
        +            "QVariantComparisonHelper", "QVariantHash", "QVariantList",
        +            "QVariantMap", "QVarLengthArray", "QVBoxLayout", "QVector",
        +            "QVectorData", "QVectorIterator", "QVectorTypedData",
        +            "QWaitCondition", "QWeakPointer", "QWebDatabase", "QWebFrame",
        +            "QWebHistory", "QWebHistoryInterface", "QWebHistoryItem",
        +            "QWebHitTestResult", "QWebPage", "QWebPluginFactory",
        +            "QWebSecurityOrigin", "QWebSettings", "QWebView", "QWhatsThis",
        +            "QWhatsThisClickedEvent", "QWheelEvent", "QWidget", "QWidgetAction",
        +            "QWidgetData", "QWidgetItem", "QWidgetItemV2", "QWidgetList",
        +            "QWidgetMapper", "QWidgetSet", "QWindowsCEStyle", "QWindowsMime",
        +            "QWindowsMobileStyle", "QWindowsStyle", "QWindowStateChangeEvent",
        +            "QWindowsVistaStyle", "QWindowsXPStyle", "QWizard", "QWizardPage",
        +            "QWMatrix", "QWorkspace", "QWriteLocker", "QX11EmbedContainer",
        +            "QX11EmbedWidget", "QX11Info", "QXmlAttributes",
        +            "QXmlContentHandler", "QXmlDeclHandler", "QXmlDefaultHandler",
        +            "QXmlDTDHandler", "QXmlEntityResolver", "QXmlErrorHandler",
        +            "QXmlFormatter", "QXmlInputSource", "QXmlItem",
        +            "QXmlLexicalHandler", "QXmlLocator", "QXmlName", "QXmlNamePool",
        +            "QXmlNamespaceSupport", "QXmlNodeModelIndex", "QXmlParseException",
        +            "QXmlQuery", "QXmlReader", "QXmlResultItems", "QXmlSerializer",
        +            "QXmlSimpleReader", "QXmlStreamAttribute", "QXmlStreamAttributes",
        +            "QXmlStreamEntityDeclaration", "QXmlStreamEntityDeclarations",
        +            "QXmlStreamEntityResolver", "QXmlStreamNamespaceDeclaration",
        +            "QXmlStreamNamespaceDeclarations", "QXmlStreamNotationDeclaration",
        +            "QXmlStreamNotationDeclarations", "QXmlStreamReader",
        +            "QXmlStreamStringRef", "QXmlStreamWriter"
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':', ',', ';', '|', '<', '>'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight:bold;',
        +            2 => 'color: #0057AE;',
        +            3 => 'color: #2B74C7;',
        +            4 => 'color: #0057AE;',
        +            5 => 'color: #22aadd;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #888888;',
        +            2 => 'color: #006E28;',
        +            'MULTI' => 'color: #888888; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            1 => 'color: #000099; font-weight: bold;',
        +            2 => 'color: #660099; font-weight: bold;',
        +            3 => 'color: #660099; font-weight: bold;',
        +            4 => 'color: #660099; font-weight: bold;',
        +            5 => 'color: #006699; font-weight: bold;',
        +            'HARD' => '',
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #006E28;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #BF0303;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #B08000;',
        +            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
        +            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
        +            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
        +            GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
        +            GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #2B74C7;',
        +            2 => 'color: #2B74C7;',
        +            3 => 'color: #2B74C7;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #006E28;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => 'http://doc.trolltech.com/latest/{FNAMEL}.html'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        2 => '::',
        +        3 => '->',
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => "(?|^])",
        +            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])"
        +        ),
        +        'OOLANG' => array(
        +            'MATCH_AFTER' => '~?[a-zA-Z][a-zA-Z0-9_]*',
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/cpp.php b/Sources/geshi/cpp.php
        new file mode 100644
        index 0000000..42ab311
        --- /dev/null
        +++ b/Sources/geshi/cpp.php
        @@ -0,0 +1,240 @@
        + 'C++',
        +    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Multiline-continued single-line comments
        +        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
        +        //Multiline-continued preprocessor define
        +        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        //Simple Single Char Escapes
        +        1 => "#\\\\[abfnrtv\\\'\"?\n]#i",
        +        //Hexadecimal Char Specs
        +        2 => "#\\\\x[\da-fA-F]{2}#",
        +        //Hexadecimal Char Specs
        +        3 => "#\\\\u[\da-fA-F]{4}#",
        +        //Hexadecimal Char Specs
        +        4 => "#\\\\U[\da-fA-F]{8}#",
        +        //Octal Char Specs
        +        5 => "#\\\\[0-7]{1,3}#"
        +        ),
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
        +        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
        +        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'break', 'case', 'continue', 'default', 'do', 'else', 'for', 'goto', 'if', 'return',
        +            'switch', 'throw', 'while'
        +            ),
        +        2 => array(
        +            'NULL', 'false', 'true', 'enum', 'errno', 'EDOM',
        +            'ERANGE', 'FLT_RADIX', 'FLT_ROUNDS', 'FLT_DIG', 'DBL_DIG', 'LDBL_DIG',
        +            'FLT_EPSILON', 'DBL_EPSILON', 'LDBL_EPSILON', 'FLT_MANT_DIG', 'DBL_MANT_DIG',
        +            'LDBL_MANT_DIG', 'FLT_MAX', 'DBL_MAX', 'LDBL_MAX', 'FLT_MAX_EXP', 'DBL_MAX_EXP',
        +            'LDBL_MAX_EXP', 'FLT_MIN', 'DBL_MIN', 'LDBL_MIN', 'FLT_MIN_EXP', 'DBL_MIN_EXP',
        +            'LDBL_MIN_EXP', 'CHAR_BIT', 'CHAR_MAX', 'CHAR_MIN', 'SCHAR_MAX', 'SCHAR_MIN',
        +            'UCHAR_MAX', 'SHRT_MAX', 'SHRT_MIN', 'USHRT_MAX', 'INT_MAX', 'INT_MIN',
        +            'UINT_MAX', 'LONG_MAX', 'LONG_MIN', 'ULONG_MAX', 'HUGE_VAL', 'SIGABRT',
        +            'SIGFPE', 'SIGILL', 'SIGINT', 'SIGSEGV', 'SIGTERM', 'SIG_DFL', 'SIG_ERR',
        +            'SIG_IGN', 'BUFSIZ', 'EOF', 'FILENAME_MAX', 'FOPEN_MAX', 'L_tmpnam',
        +            'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'stdin', 'stdout', 'stderr',
        +            'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC',
        +            'virtual', 'public', 'private', 'protected', 'template', 'using', 'namespace',
        +            'try', 'catch', 'inline', 'dynamic_cast', 'const_cast', 'reinterpret_cast',
        +            'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class'
        +            ),
        +        3 => array(
        +            'cin', 'cerr', 'clog', 'cout', 'delete', 'new', 'this',
        +            'printf', 'fprintf', 'snprintf', 'sprintf', 'assert',
        +            'isalnum', 'isalpha', 'isdigit', 'iscntrl', 'isgraph', 'islower', 'isprint',
        +            'ispunct', 'isspace', 'isupper', 'isxdigit', 'tolower', 'toupper',
        +            'exp', 'log', 'log10', 'pow', 'sqrt', 'ceil', 'floor', 'fabs', 'ldexp',
        +            'frexp', 'modf', 'fmod', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'atan2',
        +            'sinh', 'cosh', 'tanh', 'setjmp', 'longjmp',
        +            'va_start', 'va_arg', 'va_end', 'offsetof', 'sizeof', 'fopen', 'freopen',
        +            'fflush', 'fclose', 'remove', 'rename', 'tmpfile', 'tmpname', 'setvbuf',
        +            'setbuf', 'vfprintf', 'vprintf', 'vsprintf', 'fscanf', 'scanf', 'sscanf',
        +            'fgetc', 'fgets', 'fputc', 'fputs', 'getc', 'getchar', 'gets', 'putc',
        +            'putchar', 'puts', 'ungetc', 'fread', 'fwrite', 'fseek', 'ftell', 'rewind',
        +            'fgetpos', 'fsetpos', 'clearerr', 'feof', 'ferror', 'perror', 'abs', 'labs',
        +            'div', 'ldiv', 'atof', 'atoi', 'atol', 'strtod', 'strtol', 'strtoul', 'calloc',
        +            'malloc', 'realloc', 'free', 'abort', 'exit', 'atexit', 'system', 'getenv',
        +            'bsearch', 'qsort', 'rand', 'srand', 'strcpy', 'strncpy', 'strcat', 'strncat',
        +            'strcmp', 'strncmp', 'strcoll', 'strchr', 'strrchr', 'strspn', 'strcspn',
        +            'strpbrk', 'strstr', 'strlen', 'strerror', 'strtok', 'strxfrm', 'memcpy',
        +            'memmove', 'memcmp', 'memchr', 'memset', 'clock', 'time', 'difftime', 'mktime',
        +            'asctime', 'ctime', 'gmtime', 'localtime', 'strftime'
        +            ),
        +        4 => array(
        +            'auto', 'bool', 'char', 'const', 'double', 'float', 'int', 'long', 'longint',
        +            'register', 'short', 'shortint', 'signed', 'static', 'struct',
        +            'typedef', 'union', 'unsigned', 'void', 'volatile', 'extern', 'jmp_buf',
        +            'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t',
        +            'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm', 'wchar_t',
        +
        +            'int8', 'int16', 'int32', 'int64',
        +            'uint8', 'uint16', 'uint32', 'uint64',
        +
        +            'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t',
        +            'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
        +
        +            'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t',
        +            'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t',
        +
        +            'int8_t', 'int16_t', 'int32_t', 'int64_t',
        +            'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t',
        +
        +            'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array('(', ')', '{', '}', '[', ']'),
        +        1 => array('<', '>','='),
        +        2 => array('+', '-', '*', '/', '%'),
        +        3 => array('!', '^', '&', '|'),
        +        4 => array('?', ':', ';')
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000ff;',
        +            2 => 'color: #0000ff;',
        +            3 => 'color: #0000dd;',
        +            4 => 'color: #0000ff;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666;',
        +            2 => 'color: #339900;',
        +            'MULTI' => 'color: #ff0000; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            1 => 'color: #000099; font-weight: bold;',
        +            2 => 'color: #660099; font-weight: bold;',
        +            3 => 'color: #660099; font-weight: bold;',
        +            4 => 'color: #660099; font-weight: bold;',
        +            5 => 'color: #006699; font-weight: bold;',
        +            'HARD' => '',
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #008000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #FF0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #0000dd;',
        +            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
        +            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
        +            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
        +            GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
        +            GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #007788;',
        +            2 => 'color: #007788;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #008000;',
        +            1 => 'color: #000080;',
        +            2 => 'color: #000040;',
        +            3 => 'color: #000040;',
        +            4 => 'color: #008080;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        2 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => "(? "(?![a-zA-Z0-9_\|%\\-])"
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/csharp.php b/Sources/geshi/csharp.php
        new file mode 100644
        index 0000000..26024e9
        --- /dev/null
        +++ b/Sources/geshi/csharp.php
        @@ -0,0 +1,256 @@
        + 'C#',
        +    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Using and Namespace directives (basic support)
        +        //Please note that the alias syntax for using is not supported
        +        3 => '/(?:(?<=using[\\n\\s])|(?<=namespace[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*[a-zA-Z0-9_]+[\n\s]*(?=[;=])/i'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'HARDQUOTE' => array('@"', '"'),
        +    'HARDESCAPE' => array('"'),
        +    'HARDCHAR' => '"',
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'abstract', 'add', 'as', 'base', 'break', 'by', 'case', 'catch', 'const', 'continue',
        +            'default', 'do', 'else', 'event', 'explicit', 'extern', 'false',
        +            'finally', 'fixed', 'for', 'foreach', 'from', 'get', 'goto', 'group', 'if',
        +            'implicit', 'in', 'into', 'internal', 'join', 'lock', 'namespace', 'null',
        +            'operator', 'out', 'override', 'params', 'partial', 'private',
        +            'protected', 'public', 'readonly', 'remove', 'ref', 'return', 'sealed',
        +            'select', 'set', 'stackalloc', 'static', 'switch', 'this', 'throw', 'true',
        +            'try', 'unsafe', 'using', 'var', 'value', 'virtual', 'volatile', 'where',
        +            'while', 'yield'
        +            ),
        +        2 => array(
        +            '#elif', '#endif', '#endregion', '#else', '#error', '#define', '#if',
        +            '#line', '#region', '#undef', '#warning'
        +            ),
        +        3 => array(
        +            'checked', 'is', 'new', 'sizeof', 'typeof', 'unchecked'
        +            ),
        +        4 => array(
        +            'bool', 'byte', 'char', 'class', 'decimal', 'delegate', 'double',
        +            'dynamic', 'enum', 'float', 'int', 'interface', 'long', 'object', 'sbyte',
        +            'short', 'string', 'struct', 'uint', 'ulong', 'ushort', 'void'
        +            ),
        +        5 => array(
        +            'Microsoft.Win32',
        +            'System',
        +            'System.CodeDOM',
        +            'System.CodeDOM.Compiler',
        +            'System.Collections',
        +            'System.Collections.Bases',
        +            'System.ComponentModel',
        +            'System.ComponentModel.Design',
        +            'System.ComponentModel.Design.CodeModel',
        +            'System.Configuration',
        +            'System.Configuration.Assemblies',
        +            'System.Configuration.Core',
        +            'System.Configuration.Install',
        +            'System.Configuration.Interceptors',
        +            'System.Configuration.Schema',
        +            'System.Configuration.Web',
        +            'System.Core',
        +            'System.Data',
        +            'System.Data.ADO',
        +            'System.Data.Design',
        +            'System.Data.Internal',
        +            'System.Data.SQL',
        +            'System.Data.SQLTypes',
        +            'System.Data.XML',
        +            'System.Data.XML.DOM',
        +            'System.Data.XML.XPath',
        +            'System.Data.XML.XSLT',
        +            'System.Diagnostics',
        +            'System.Diagnostics.SymbolStore',
        +            'System.DirectoryServices',
        +            'System.Drawing',
        +            'System.Drawing.Design',
        +            'System.Drawing.Drawing2D',
        +            'System.Drawing.Imaging',
        +            'System.Drawing.Printing',
        +            'System.Drawing.Text',
        +            'System.Globalization',
        +            'System.IO',
        +            'System.IO.IsolatedStorage',
        +            'System.Messaging',
        +            'System.Net',
        +            'System.Net.Sockets',
        +            'System.NewXml',
        +            'System.NewXml.XPath',
        +            'System.NewXml.Xsl',
        +            'System.Reflection',
        +            'System.Reflection.Emit',
        +            'System.Resources',
        +            'System.Runtime.InteropServices',
        +            'System.Runtime.InteropServices.Expando',
        +            'System.Runtime.Remoting',
        +            'System.Runtime.Serialization',
        +            'System.Runtime.Serialization.Formatters',
        +            'System.Runtime.Serialization.Formatters.Binary',
        +            'System.Security',
        +            'System.Security.Cryptography',
        +            'System.Security.Cryptography.X509Certificates',
        +            'System.Security.Permissions',
        +            'System.Security.Policy',
        +            'System.Security.Principal',
        +            'System.ServiceProcess',
        +            'System.Text',
        +            'System.Text.RegularExpressions',
        +            'System.Threading',
        +            'System.Timers',
        +            'System.Web',
        +            'System.Web.Caching',
        +            'System.Web.Configuration',
        +            'System.Web.Security',
        +            'System.Web.Services',
        +            'System.Web.Services.Description',
        +            'System.Web.Services.Discovery',
        +            'System.Web.Services.Protocols',
        +            'System.Web.UI',
        +            'System.Web.UI.Design',
        +            'System.Web.UI.Design.WebControls',
        +            'System.Web.UI.Design.WebControls.ListControls',
        +            'System.Web.UI.HtmlControls',
        +            'System.Web.UI.WebControls',
        +            'System.WinForms',
        +            'System.WinForms.ComponentModel',
        +            'System.WinForms.Design',
        +            'System.Xml',
        +            'System.Xml.Serialization',
        +            'System.Xml.Serialization.Code',
        +            'System.Xml.Serialization.Schema'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', ':', ';',
        +        '(', ')', '{', '}', '[', ']', '|', '.'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0600FF; font-weight: bold;',
        +            2 => 'color: #FF8000; font-weight: bold;',
        +            3 => 'color: #008000;',
        +            4 => 'color: #6666cc; font-weight: bold;',
        +            5 => 'color: #000000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008080; font-style: italic;',
        +            2 => 'color: #008080;',
        +            3 => 'color: #008080;',
        +            'MULTI' => 'color: #008080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #008080; font-weight: bold;',
        +            'HARD' => 'color: #008080; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #008000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #666666;',
        +            'HARD' => 'color: #666666;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #FF0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #0000FF;',
        +            2 => 'color: #0000FF;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #008000;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://www.google.com/search?q={FNAMEL}+msdn.microsoft.com',
        +        4 => '',
        +        5 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        2 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => "(?|^])",
        +            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_%\\-])"
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/css.php b/Sources/geshi/css.php
        new file mode 100644
        index 0000000..d09bea7
        --- /dev/null
        +++ b/Sources/geshi/css.php
        @@ -0,0 +1,226 @@
        + 'CSS',
        +    'COMMENT_SINGLE' => array(1 => '@'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        2 => "/(?<=\\()\\s*(?:(?:[a-z0-9]+?:\\/\\/)?[a-z0-9_\\-\\.\\/:]+?)?[a-z]+?\\.[a-z]+?(\\?[^\)]+?)?\\s*?(?=\\))/i"
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"', "'"),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        //Simple Single Char Escapes
        +        //1 => "#\\\\[nfrtv\$\"\n\\\\]#i",
        +        //Hexadecimal Char Specs
        +        2 => "#\\\\[\da-fA-F]{1,6}\s?#i",
        +        //Unicode Char Specs
        +        //3 => "#\\\\u[\da-fA-F]{1,8}#i",
        +        ),
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'aqua', 'azimuth', 'background-attachment', 'background-color',
        +            'background-image', 'background-position', 'background-repeat',
        +            'background', 'black', 'blue', 'border-bottom-color',
        +            'border-radius', 'border-top-left-radius', 'border-top-right-radius',
        +            'border-bottom-right-radius', 'border-bottom-left-radius',
        +            'border-bottom-style', 'border-bottom-width', 'border-left-color',
        +            'border-left-style', 'border-left-width', 'border-right',
        +            'border-right-color', 'border-right-style', 'border-right-width',
        +            'border-top-color', 'border-top-style',
        +            'border-top-width','border-bottom', 'border-collapse',
        +            'border-left', 'border-width', 'border-color', 'border-spacing',
        +            'border-style', 'border-top', 'border', 'caption-side', 'clear',
        +            'clip', 'color', 'content', 'counter-increment', 'counter-reset',
        +            'cue-after', 'cue-before', 'cue', 'cursor', 'direction', 'display',
        +            'elevation', 'empty-cells', 'float', 'font-family', 'font-size',
        +            'font-size-adjust', 'font-stretch', 'font-style', 'font-variant',
        +            'font-weight', 'font', 'line-height', 'letter-spacing',
        +            'list-style', 'list-style-image', 'list-style-position',
        +            'list-style-type', 'margin-bottom', 'margin-left', 'margin-right',
        +            'margin-top', 'margin', 'marker-offset', 'marks', 'max-height',
        +            'max-width', 'min-height', 'min-width', 'orphans', 'outline',
        +            'outline-color', 'outline-style', 'outline-width', 'overflow',
        +            'padding-bottom', 'padding-left', 'padding-right', 'padding-top',
        +            'padding', 'page', 'page-break-after', 'page-break-before',
        +            'page-break-inside', 'pause-after', 'pause-before', 'pause',
        +            'pitch', 'pitch-range', 'play-during', 'position', 'quotes',
        +            'richness', 'right', 'size', 'speak-header', 'speak-numeral',
        +            'speak-punctuation', 'speak', 'speech-rate', 'stress',
        +            'table-layout', 'text-align', 'text-decoration', 'text-indent',
        +            'text-shadow', 'text-transform', 'top', 'unicode-bidi',
        +            'vertical-align', 'visibility', 'voice-family', 'volume',
        +            'white-space', 'widows', 'width', 'word-spacing', 'z-index',
        +            'bottom', 'left', 'height'
        +            ),
        +        2 => array(
        +            'above', 'absolute', 'always', 'armenian', 'aural', 'auto',
        +            'avoid', 'baseline', 'behind', 'below', 'bidi-override', 'blink',
        +            'block', 'bold', 'bolder', 'both', 'capitalize', 'center-left',
        +            'center-right', 'center', 'circle', 'cjk-ideographic',
        +            'close-quote', 'collapse', 'condensed', 'continuous', 'crop',
        +            'crosshair', 'cross', 'cursive', 'dashed', 'decimal-leading-zero',
        +            'decimal', 'default', 'digits', 'disc', 'dotted', 'double',
        +            'e-resize', 'embed', 'extra-condensed', 'extra-expanded',
        +            'expanded', 'fantasy', 'far-left', 'far-right', 'faster', 'fast',
        +            'fixed', 'fuchsia', 'georgian', 'gray', 'green', 'groove',
        +            'hebrew', 'help', 'hidden', 'hide', 'higher', 'high',
        +            'hiragana-iroha', 'hiragana', 'icon', 'inherit', 'inline-table',
        +            'inline', 'inset', 'inside', 'invert', 'italic', 'justify',
        +            'katakana-iroha', 'katakana', 'landscape', 'larger', 'large',
        +            'left-side', 'leftwards', 'level', 'lighter', 'lime',
        +            'line-through', 'list-item', 'loud', 'lower-alpha', 'lower-greek',
        +            'lower-roman', 'lowercase', 'ltr', 'lower', 'low', 'maroon',
        +            'medium', 'message-box', 'middle', 'mix', 'monospace', 'n-resize',
        +            'narrower', 'navy', 'ne-resize', 'no-close-quote',
        +            'no-open-quote', 'no-repeat', 'none', 'normal', 'nowrap',
        +            'nw-resize', 'oblique', 'olive', 'once', 'open-quote', 'outset',
        +            'outside', 'overline', 'pointer', 'portrait', 'purple', 'px',
        +            'red', 'relative', 'repeat-x', 'repeat-y', 'repeat', 'rgb',
        +            'ridge', 'right-side', 'rightwards', 's-resize', 'sans-serif',
        +            'scroll', 'se-resize', 'semi-condensed', 'semi-expanded',
        +            'separate', 'serif', 'show', 'silent', 'silver', 'slow', 'slower',
        +            'small-caps', 'small-caption', 'smaller', 'soft', 'solid',
        +            'spell-out', 'square', 'static', 'status-bar', 'super',
        +            'sw-resize', 'table-caption', 'table-cell', 'table-column',
        +            'table-column-group', 'table-footer-group', 'table-header-group',
        +            'table-row', 'table-row-group', 'teal', 'text', 'text-bottom',
        +            'text-top', 'thick', 'thin', 'transparent', 'ultra-condensed',
        +            'ultra-expanded', 'underline', 'upper-alpha', 'upper-latin',
        +            'upper-roman', 'uppercase', 'url', 'visible', 'w-resize', 'wait',
        +            'white', 'wider', 'x-fast', 'x-high', 'x-large', 'x-loud',
        +            'x-low', 'x-small', 'x-soft', 'xx-large', 'xx-small', 'yellow',
        +            'yes'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', ':', ';',
        +        '>', '+', '*', ',', '^', '='
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight: bold;',
        +            2 => 'color: #993333;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #a1a100;',
        +            2 => 'color: #ff0000; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            //1 => 'color: #000099; font-weight: bold;',
        +            2 => 'color: #000099; font-weight: bold;'
        +            //3 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #00AA00;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #00AA00;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #cc00cc;',
        +            1 => 'color: #6666ff;',
        +            2 => 'color: #3333ff;',
        +            3 => 'color: #933;'
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        //DOM Node ID
        +        0 => '\#[a-zA-Z0-9\-_]+(?:\\\\:[a-zA-Z0-9\-_]+)*',
        +        //CSS classname
        +        1 => '\.(?!\d)[a-zA-Z0-9\-_]+(?:\\\\:[a-zA-Z0-9\-_]+)*\b(?=[\{\.#\s,:].|<\|)',
        +        //CSS Pseudo classes
        +        //note: & is needed for > (i.e. > )
        +        2 => '(? '[+\-]?(\d+|(\d*\.\d+))(em|ex|pt|px|cm|in|%)',
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'DISALLOWED_AFTER' => '(?![\-a-zA-Z0-9_\|%\\-&\.])',
        +            'DISALLOWED_BEFORE' => '(?
        \ No newline at end of file
        diff --git a/Sources/geshi/cuesheet.php b/Sources/geshi/cuesheet.php
        new file mode 100644
        index 0000000..ebaca95
        --- /dev/null
        +++ b/Sources/geshi/cuesheet.php
        @@ -0,0 +1,138 @@
        + 'Cuesheet',
        +    'COMMENT_SINGLE' => array(1 => ';'),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(
        +        //Single-Line Comments using REM command
        +        1 => "/(?<=\bREM\b).*?$/im",
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'CATALOG','CDTEXTFILE','FILE','FLAGS','INDEX','ISRC','PERFORMER',
        +            'POSTGAP','PREGAP','REM','SONGWRITER','TITLE','TRACK'
        +            ),
        +        2 => array(
        +            'AIFF', 'BINARY', 'MOTOROLA', 'MP3', 'WAVE'
        +            ),
        +        3 => array(
        +            '4CH', 'DCP', 'PRE', 'SCMS'
        +            ),
        +        4 => array(
        +            'AUDIO', 'CDG', 'MODE1/2048', 'MODE1/2336', 'MODE2/2336',
        +            'MODE2/2352', 'CDI/2336', 'CDI/2352'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        ':'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight: bold;',
        +            2 => 'color: #000066; font-weight: bold;',
        +            3 => 'color: #000066; font-weight: bold;',
        +            4 => 'color: #000066; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080;',
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #006600;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000066;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            1 => 'color: #000099;',
        +            2 => 'color: #009900;',
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://digitalx.org/cuesheetsyntax.php#{FNAMEL}',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        2 => '\b[A-Za-z0-9]{5}\d{7}\b',
        +        1 => '(?<=[\s:]|^)\d+(?=[\s:]|$)',
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 2,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => '(? '(?![\w\.])',
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/d.php b/Sources/geshi/d.php
        new file mode 100644
        index 0000000..7f3e985
        --- /dev/null
        +++ b/Sources/geshi/d.php
        @@ -0,0 +1,252 @@
        + 'D',
        +    'COMMENT_SINGLE' => array(2 => '///', 1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/', '/+' => '+/'),
        +    'COMMENT_REGEXP' => array(
        +        // doxygen comments
        +        3 => '#/\*\*(?![\*\/]).*\*/#sU',
        +        // raw strings
        +        4 => '#r"[^"]*"#s',
        +        // Script Style interpreter comment
        +        5 => "/\A#!(?=\\/).*?$/m"
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"', "'"),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        //Simple Single Char Escapes
        +        1 => "#\\\\[abfnrtv\\'\"?\n\\\\]#i",
        +        //Hexadecimal Char Specs
        +        2 => "#\\\\x[\da-fA-F]{2}#",
        +        //Hexadecimal Char Specs
        +        3 => "#\\\\u[\da-fA-F]{4}#",
        +        //Hexadecimal Char Specs
        +        4 => "#\\\\U[\da-fA-F]{8}#",
        +        //Octal Char Specs
        +        5 => "#\\\\[0-7]{1,3}#",
        +        //Named entity escapes
        +        /*6 => "#\\\\&(?:quot|amp|lt|gt|OElig|oelig|Scaron|scaron|Yuml|circ|tilde|".
        +            "ensp|emsp|thinsp|zwnj|zwj|lrm|rlm|ndash|mdash|lsquo|rsquo|sbquo|".
        +            "ldquo|rdquo|bdquo|dagger|Dagger|permil|lsaquo|rsaquo|euro|nbsp|".
        +            "iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|".
        +            "shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|".
        +            "sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|".
        +            "Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|".
        +            "Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|".
        +            "times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|".
        +            "aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|".
        +            "euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|".
        +            "otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|".
        +            "yuml|fnof|Alpha|Beta|Gamma|Delta|Epsilon|Zeta|Eta|Theta|Iota|".
        +            "Kappa|Lambda|Mu|Nu|Xi|Omicron|Pi|Rho|Sigma|Tau|Upsilon|Phi|Chi|".
        +            "Psi|Omega|alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|".
        +            "kappa|lambda|mu|nu|xi|omicron|pi|rho|sigmaf|sigma|tau|upsilon|".
        +            "phi|chi|psi|omega|thetasym|upsih|piv|bull|hellip|prime|Prime|".
        +            "oline|frasl|weierp|image|real|trade|alefsym|larr|uarr|rarr|darr|".
        +            "harr|crarr|lArr|uArr|rArr|dArr|hArr|forall|part|exist|empty|".
        +            "nabla|isin|notin|ni|prod|sum|minus|lowast|radic|prop|infin|ang|".
        +            "and|or|cap|cup|int|there4|sim|cong|asymp|ne|equiv|le|ge|sub|sup|".
        +            "nsub|sube|supe|oplus|otimes|perp|sdot|lceil|rceil|lfloor|rfloor|".
        +            "lang|rang|loz|spades|clubs|hearts|diams);#",*/
        +        // optimized:
        +        6 => "#\\\\&(?:A(?:Elig|acute|circ|grave|lpha|ring|tilde|uml)|Beta|".
        +            "C(?:cedil|hi)|D(?:agger|elta)|E(?:TH|acute|circ|grave|psilon|ta|uml)|".
        +            "Gamma|I(?:acute|circ|grave|ota|uml)|Kappa|Lambda|Mu|N(?:tilde|u)|".
        +            "O(?:Elig|acute|circ|grave|m(?:ega|icron)|slash|tilde|uml)|".
        +            "P(?:hi|i|rime|si)|Rho|S(?:caron|igma)|T(?:HORN|au|heta)|".
        +            "U(?:acute|circ|grave|psilon|uml)|Xi|Y(?:acute|uml)|Zeta|".
        +            "a(?:acute|c(?:irc|ute)|elig|grave|l(?:efsym|pha)|mp|n[dg]|ring|".
        +            "symp|tilde|uml)|b(?:dquo|eta|rvbar|ull)|c(?:ap|cedil|e(?:dil|nt)|".
        +            "hi|irc|lubs|o(?:ng|py)|rarr|u(?:p|rren))|d(?:Arr|a(?:gger|rr)|".
        +            "e(?:g|lta)|i(?:ams|vide))|e(?:acute|circ|grave|m(?:pty|sp)|nsp|".
        +            "psilon|quiv|t[ah]|u(?:ml|ro)|xist)|f(?:nof|orall|ra(?:c(?:1[24]|34)|sl))|".
        +            "g(?:amma|e|t)|h(?:Arr|arr|e(?:arts|llip))|i(?:acute|circ|excl|grave|mage|".
        +            "n(?:fin|t)|ota|quest|sin|uml)|kappa|l(?:Arr|a(?:mbda|ng|quo|rr)|ceil|".
        +            "dquo|e|floor|o(?:wast|z)|rm|s(?:aquo|quo)|t)|m(?:acr|dash|".
        +            "i(?:cro|ddot|nus)|u)|n(?:abla|bsp|dash|e|i|ot(?:in)?|sub|tilde|u)|".
        +            "o(?:acute|circ|elig|grave|line|m(?:ega|icron)|plus|r(?:d[fm])?|".
        +            "slash|ti(?:lde|mes)|uml)|p(?:ar[at]|er(?:mil|p)|hi|iv?|lusmn|ound|".
        +            "r(?:ime|o[dp])|si)|quot|r(?:Arr|a(?:dic|ng|quo|rr)|ceil|dquo|e(?:al|g)|".
        +            "floor|ho|lm|s(?:aquo|quo))|s(?:bquo|caron|dot|ect|hy|i(?:gmaf?|m)|".
        +            "pades|u(?:be?|m|p[123e]?)|zlig)|t(?:au|h(?:e(?:re4|ta(?:sym)?)|insp|".
        +            "orn)|i(?:lde|mes)|rade)|u(?:Arr|a(?:cute|rr)|circ|grave|ml|".
        +            "psi(?:h|lon)|uml)|weierp|xi|y(?:acute|en|uml)|z(?:eta|w(?:j|nj)));#",
        +        ),
        +    'HARDQUOTE' => array('`', '`'),
        +    'HARDESCAPE' => array(),
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
        +        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
        +        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        1 => array(
        +                'break', 'case', 'continue', 'do', 'else',
        +                'for', 'foreach', 'goto', 'if', 'return',
        +                'switch', 'while', 'foreach_reverse'
        +            ),
        +        2 => array(
        +                'alias', 'asm', 'assert', 'body', 'cast',
        +                'catch', 'default', 'delegate', 'delete',
        +                'extern', 'false', 'finally', 'function',
        +                'import', 'in', 'inout',
        +                'invariant', 'is', 'lazy', 'mixin', 'module', 'new',
        +                'null', 'out', 'pragma', 'ref', 'super', 'this',
        +                'throw', 'true', 'try', 'typeid',
        +                'typeof', 'union', 'with', 'scope'
        +            ),
        +        3 => array(
        +                'ClassInfo', 'Error', 'Exception',
        +                'Interface', 'Object', 'IMonitor',
        +                'OffsetTypeInfo', 'Throwable',
        +                'TypeInfo_Class', 'TypeInfo', '__traits',
        +                '__EOF__', '__FILE__', '__LINE__',
        +            ),
        +        4 => array(
        +                'abstract', 'align', 'auto', 'bit', 'bool',
        +                'byte', 'cdouble', 'cfloat', 'char',
        +                'class', 'const', 'creal', 'dchar', 'dstring', 'debug',
        +                'deprecated', 'double', 'enum', 'export',
        +                'final', 'float', 'idouble', 'ifloat', 'immutable', 'int',
        +                'interface', 'ireal', 'long', 'nothrow', 'override',
        +                'package', 'private', 'protected', 'ptrdiff_t',
        +                'public', 'real', 'short', 'shared', 'size_t',
        +                'static', 'string', 'struct', 'synchronized',
        +                'template', 'ubyte', 'ucent', 'uint',
        +                'ulong', 'unittest', 'ushort', 'version',
        +                'void', 'volatile', 'wchar', 'wstring',
        +                '__gshared', '@disable', '@property', 'pure', 'safe'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '?', '!', ';', ':', ',', '...', '..',
        +        '+', '-', '*', '/', '%', '&', '|', '^', '<', '>', '=', '~',
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #aaaadd; font-weight: bold;',
        +            4 => 'color: #993333;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            2 => 'color: #009933; font-style: italic;',
        +            3 => 'color: #009933; font-style: italic;',
        +            4 => 'color: #ff0000;',
        +            5 => 'color: #0040ff;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            1 => 'color: #000099; font-weight: bold;',
        +            2 => 'color: #660099; font-weight: bold;',
        +            3 => 'color: #660099; font-weight: bold;',
        +            4 => 'color: #660099; font-weight: bold;',
        +            5 => 'color: #006699; font-weight: bold;',
        +            6 => 'color: #666699; font-weight: bold; font-style: italic;',
        +            'HARD' => '',
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;',
        +            'HARD' => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #0000dd;',
        +            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
        +            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
        +            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
        +            GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
        +            GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;',
        +            2 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/dcl.php b/Sources/geshi/dcl.php
        new file mode 100644
        index 0000000..db12a4c
        --- /dev/null
        +++ b/Sources/geshi/dcl.php
        @@ -0,0 +1,192 @@
        + 'DCL',
        +    'COMMENT_SINGLE' => array('$!', '!'),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(
        +        2 => '/(?<=\$)\s*sql\s+.*?(?:quit|exit);?\s*?$/sim' // do not highlight inline sql
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'HARDESCAPE' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        1 => "/''[a-zA-Z\\-_]+'/"
        +        ),
        +    'KEYWORDS' => array(
        +        1 => array( // commands
        +            'ACCOUNTING', 'ALLOCATE', 'ANALYZE', 'APPEND', 'ASSIGN', 'ATTACH', 'BACKUP',
        +            'CALL', 'CANCEL', 'CHECKSUM', 'CLOSE', 'CONNECT', 'CONTINUE', 'CONVERT',
        +            'COPY', 'CREATE', 'DEALLOCATE', 'DEASSIGN', 'DEBUG', 'DECK',
        +            'DECRYPT', 'DEFINE', 'DELETE', 'DEPOSIT', 'DIFFERENCES', 'DIRECTORY',
        +            'DISABLE',  'AUTOSTART', 'DISCONNECT', 'DISMOUNT', 'DUMP', 'EDIT', 'ENABLE',
        +            'ENCRYPT', 'ENDSUBROUTINE', 'EOD', 'EOJ', 'EXAMINE', 'EXCHANGE',
        +            'EXIT', 'FONT', 'GOSUB', 'GOTO', 'HELP', 'IF', 'THEN', 'ELSE', 'ENDIF', 'INITIALIZE', 'INQUIRE',
        +            'INSTALL', 'JAVA', 'JOB', 'LIBRARY', 'LICENSE', 'LINK', 'LOGIN', 'LOGOUT',
        +            'MACRO', 'MAIL', 'MERGE', 'MESSAGE', 'MONITOR', 'MOUNT', 'NCS', 'ON', 'OPEN',
        +            'PASSWORD', 'PATCH', 'PHONE', 'PIPE', 'PPPD', 'PRINT', 'PRODUCT', 'PURGE',
        +            'READ', 'RECALL', 'RENAME', 'REPLY', 'REQUEST', 'RETURN', 'RMU', 'RUN', 'RUNOFF',
        +            'SEARCH', 'SET', 'SET AUDIT', 'SET BOOTBLOCK', 'SET BROADCAST',
        +            'SET CACHE', 'SET CARD_READER', 'SET CLUSTER', 'SET COMMAND', 'SET CONTROL',
        +            'SET CPU', 'SET DAY', 'SET DEFAULT', 'SET DEVICE', 'SET DIRECTORY',
        +            'SET DISPLAY', 'SET ENTRY', 'SET FILE', 'SET HOST', 'SET IMAGE', 'SET KEY',
        +            'SET LOGINS', 'SET MAGTAPE', 'SET MESSAGE', 'SET NETWORK', 'SET ON', 'SET OUTPUT_RATE',
        +            'SET PASSWORD', 'SET PREFERRED_PATH', 'SET PREFIX', 'SET PRINTER', 'SET PROCESS',
        +            'SET PROMPT', 'SET PROTECTION', 'SET QUEUE', 'SET RESTART_VALUE',
        +            'SET RIGHTS_LIST', 'SET RMS_DEFAULT', 'SET ROOT', 'SET SECURITY',
        +            'SET SERVER ACME_SERVER', 'SET SERVER REGISTRY_SERVER', 'SET SERVER SECURITY_SERVER',
        +            'SET SHADOW', 'SET SYMBOL', 'SET TERMINAL', 'SET TIME', 'SET VERIFY',
        +            'SET VOLUME', 'SET WORKING_SET', 'SHOW', 'SHOW AUDIT',
        +            'SHOW BROADCAST', 'SHOW CLUSTER', 'SHOW CPU', 'SHOW DEFAULT', 'SHOW DEVICES',
        +            'SHOW DISPLAY', 'SHOW ENTRY', 'SHOW ERROR', 'SHOW FASTPATH', 'SHOW IMAGE',
        +            'SHOW INTRUSION', 'SHOW KEY', 'SHOW LICENSE', 'SHOW LOGICAL', 'SHOW MEMORY',
        +            'SHOW NETWORK', 'SHOW PRINTER', 'SHOW PROCESS', 'SHOW PROTECTION', 'SHOW QUEUE',
        +            'SHOW QUOTA', 'SHOW RMS_DEFAULT', 'SHOW ROOT', 'SHOW SECURITY',
        +            'SHOW SERVER ACME_SERVER', 'SHOW SERVER REGISTRY_SERVER', 'SHOW SHADOW',
        +            'SHOW STATUS', 'SHOW SYMBOL', 'SHOW SYSTEM', 'SHOW TERMINAL', 'SHOW TIME',
        +            'SHOW TRANSLATION', 'SHOW USERS', 'SHOW WORKING_SET', 'SHOW ZONE', 'SORT',
        +            'SPAWN', 'START', 'STOP', 'SUBMIT', 'SUBROUTINE', 'SYNCHRONIZE', 'TYPE',
        +            'UNLOCK', 'VIEW', 'WAIT', 'WRITE', 'XAUTH'
        +            ),
        +        2 => array( // lexical functions
        +            'F$CONTEXT', 'F$CSID', 'F$CUNITS', 'F$CVSI', 'F$CVTIME', 'F$CVUI',
        +            'F$DELTA_TIME', 'F$DEVICE', 'F$DIRECTORY', 'F$EDIT', 'F$ELEMENT',
        +            'F$ENVIRONMENT', 'F$EXTRACT', 'F$FAO', 'F$FID_TO_NAME', 'F$FILE_ATTRIBUTES',
        +            'F$GETDVI', 'F$GETENV', 'F$GETJPI', 'F$GETQUI', 'F$GETSYI', 'F$IDENTIFIER',
        +            'F$INTEGER', 'F$LENGTH', 'F$LICENSE', 'F$LOCATE', 'F$MATCH_WILD', 'F$MESSAGE',
        +            'F$MODE', 'F$MULTIPATH', 'F$PARSE', 'F$PID', 'F$PRIVILEGE', 'F$PROCESS',
        +            'F$SEARCH', 'F$SETPRV', 'F$STRING', 'F$TIME', 'F$TRNLNM', 'F$TYPE', 'F$UNIQUE',
        +            'F$USER', 'F$VERIFY'
        +            ),
        +        3 => array( // special variables etc
        +            'sql$database', 'P1', 'P2', 'P3', 'P4', 'P5', 'P6', 'P7', 'P8', 'P9',
        +            '$status', '$severity', 'sys$login', 'sys$system',
        +            'sys$input', 'sys$output', 'sys$pipe'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '@', '&', '|', '<', '>', '-',
        +        '.eqs.', '.eq.', '.lt.', '.lts.', '.gt.', '.gts.', '.ne.', '.nes.',
        +        '.le.', '.ge.', '.ges.', '.les.',
        +        '.EQS.', '.EQ.', '.LT.', '.LTS.', '.GT.', '.GTS.', '.NE.', '.NES.',
        +        '.LE.', '.GE.', '.GES.', '.LES.',
        +        '.and.', '.or.', '.not.',
        +        '.AND.', '.OR.', '.NOT.',
        +        '==', ':==', '=', ':='
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000099; font-weight: bold;',
        +            2 => 'color: #0066FF;',
        +            3 => 'color: #993300;'
        +            ),
        +        'COMMENTS' => array(
        +            0 => 'color: #666666; font-style: italic;',
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #9999FF; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #006666;',
        +            1 => 'color: #0099FF;',
        +            2 => 'color: red;',
        +            3 => 'color: #007800;',
        +            4 => 'color: #007800;',
        +            5 => 'color: #780078;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #7a0874; font-weight: bold;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000; font-weight: bold;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #0099FF;',                     // variables
        +            1 => 'color: #0000FF;',                     // qualifiers
        +            2 => 'color: #FF6600; font-weight: bold;'   // labels
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        // variables
        +        0 => "'[a-zA-Z_\\-$]+'",
        +        // qualifiers and parameters
        +        1 => "(?:\/[a-zA-Z_\/]+)[\s=]",
        +        // labels
        +        2 => '(?<=\$)\s*[a-zA-Z\-_]+:'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'COMMENTS' => array(
        +        ),
        +        'KEYWORDS' => array(
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/dcpu16.php b/Sources/geshi/dcpu16.php
        new file mode 100644
        index 0000000..5fcb25e
        --- /dev/null
        +++ b/Sources/geshi/dcpu16.php
        @@ -0,0 +1,131 @@
        + 'DCPU-16 Assembly',
        +    'COMMENT_SINGLE' => array(1 => ';'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_HEX_PREFIX,
        +    'KEYWORDS' => array(
        +        /*CPU*/
        +        1 => array(
        +            'set','add','sub','mul','div','mod','shl','shr','and','bor','xor',
        +            'ife','ifn','ifg','ifb',
        +            'jsr'
        +            ),
        +        /*registers*/
        +        2 => array(
        +            'a','b','c','x','y','z','i','j',
        +            'pc','sp','o',
        +            'pop','peek','push' //Special cases with DCPU-16
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '[', ']', '+', '-', ','
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000088; font-weight:bold;',
        +            2 => 'color: #0000ff;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #adadad; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000088;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #7f007f;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #880000;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #008000;'
        +            ),
        +        'REGEXPS' => array(
        +            2 => 'color: #993333;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://0x10c.com/doc/dcpu-16.txt',
        +        2 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        //Hex numbers
        +        //0 => '0[0-9a-fA-F]{1,32}[hH]',
        +        //Binary numbers
        +        //1 => '\%[01]{1,64}|[01]{1,64}[bB]?(?![^<]*>)',
        +        //Labels
        +        2 => '^:[_a-zA-Z][_a-zA-Z0-9]?(?=\s|$)'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => "(? "(?![a-zA-Z0-9_\|%\\-])"
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/dcs.php b/Sources/geshi/dcs.php
        new file mode 100644
        index 0000000..d32cfc5
        --- /dev/null
        +++ b/Sources/geshi/dcs.php
        @@ -0,0 +1,182 @@
        + 'DCS',
        +    'COMMENT_SINGLE' => array(
        +        1 => ';'
        +        ),
        +    'COMMENT_MULTI' => array(
        +        ),
        +    'COMMENT_REGEXP' => array(
        +        // Highlight embedded C code in a separate color:
        +        2 => '/\bINSERT_C_CODE\b.*?\bEND_C_CODE\b/ims'
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
        +    'QUOTEMARKS' => array(
        +        '"'
        +        ),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => '',
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'abs', 'ascii_value', 'bit_value', 'blank_date', 'calc_unit_values', 'cm',
        +            'complete_months', 'complete_years', 'correct', 'create_input_file', 'cy',
        +            'date_convert', 'day', 'del_output_separator',
        +            'delete_existing_output_files', 'div', 'ex', 'exact_years', 'exp',
        +            'extract_date', 'failed_validation', 'file_number', 'first_record',
        +            'fract', 'fund_fac_a', 'fund_fac_b', 'fund_fac_c', 'fund_fac_d',
        +            'fund_fac_e', 'fund_fac_f', 'fund_fac_g', 'fund_fac_h', 'fund_fac_i',
        +            'fund_fac_j', 'fund_fac_k', 'fund_fac_l', 'fund_fac_m', 'fund_fac_n',
        +            'fund_fac_o', 'fund_fac_p', 'fund_fac_q', 'fund_fac_r', 'fund_fac_s',
        +            'fund_fac_t', 'fund_fac_u', 'fund_fac_v', 'fund_fac_w', 'fund_fac_x',
        +            'fund_fac_y', 'fund_fac_z', 'group', 'group_record',
        +            'input_file_date_time', 'input_file_extension', 'input_file_location',
        +            'input_file_name', 'int', 'invalid', 'last_record', 'leap_year', 'len',
        +            'ln', 'log', 'main_format_name', 'max', 'max_num_subrecords', 'message',
        +            'min', 'mod', 'month', 'months_add', 'months_sub', 'nearest_months',
        +            'nearest_years', 'next_record', 'nm', 'no_of_current_records',
        +            'no_of_records', 'numval', 'ny', 'output', 'output_array_as_constants',
        +            'output_file_path', 'output_record', 'pmdf_output', 'previous', 'rand',
        +            're_start', 'read_generic_table', 'read_generic_table_text',
        +            'read_input_footer', 'read_input_footer_text', 'read_input_header',
        +            'read_input_header_text', 'record_count', 'record_suppressed', 'round',
        +            'round_down', 'round_near', 'round_up', 'run_dcs_program', 'run_parameter',
        +            'run_parameter_text', 'set_main_record', 'set_num_subrecords',
        +            'sort_array', 'sort_current_records', 'sort_input', 'strval', 'substr',
        +            'summarise', 'summarise_record', 'summarise_units',
        +            'summarise_units_record', 'suppress_record', 'table_correct',
        +            'table_validate', 'terminate', 'time', 'today', 'trim', 'ubound', 'year',
        +            'years_add', 'years_sub'
        +            ),
        +        2 => array(
        +            'and', 'as', 'begin', 'boolean', 'byref', 'byval', 'call', 'case', 'date',
        +            'default', 'do', 'else', 'elseif', 'end_c_code', 'endfor', 'endfunction',
        +            'endif', 'endproc', 'endswitch', 'endwhile', 'eq',
        +            'explicit_declarations', 'false', 'for', 'from', 'function', 'ge', 'gt',
        +            'if', 'insert_c_code', 'integer', 'le', 'loop', 'lt', 'ne', 'not',
        +            'number', 'or', 'private', 'proc', 'public', 'quitloop', 'return',
        +            'short', 'step', 'switch', 'text', 'then', 'to', 'true', 'while'
        +            ),
        +        3 => array(
        +            // These keywords are not highlighted by the DCS IDE but we may as well
        +            // keep track of them anyway:
        +            'mp_file', 'odbc_file'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']',
        +        '=', '<', '>',
        +        '+', '-', '*', '/', '^',
        +        ':', ','
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: red;',
        +            2 => 'color: blue;',
        +            3 => 'color: black;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: black; background-color: silver;',
        +            // Colors for highlighting embedded C code:
        +            2 => 'color: maroon; background-color: pink;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: black;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: green;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: green;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: black;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/delphi.php b/Sources/geshi/delphi.php
        new file mode 100644
        index 0000000..d5596e0
        --- /dev/null
        +++ b/Sources/geshi/delphi.php
        @@ -0,0 +1,301 @@
        + 'Delphi',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('(*' => '*)', '{' => '}'),
        +    //Compiler directives
        +    'COMMENT_REGEXP' => array(2 => '/\\{\\$.*?}|\\(\\*\\$.*?\\*\\)/U'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'"),
        +    'ESCAPE_CHAR' => '',
        +
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'Abstract', 'And', 'Array', 'As', 'Asm', 'At', 'Begin', 'Case',
        +            'Class', 'Const', 'Constructor', 'Contains', 'Default', 'delayed', 'Destructor',
        +            'DispInterface', 'Div', 'Do', 'DownTo', 'Else', 'End', 'Except',
        +            'Export', 'Exports', 'External', 'File', 'Finalization', 'Finally', 'For',
        +            'Function', 'Generic', 'Goto', 'If', 'Implementation', 'In', 'Inherited',
        +            'Initialization', 'Inline', 'Interface', 'Is', 'Label', 'Library', 'Message',
        +            'Mod', 'Nil', 'Not', 'Object', 'Of', 'On', 'Or', 'Overload', 'Override',
        +            'Package', 'Packed', 'Private', 'Procedure', 'Program', 'Property',
        +            'Protected', 'Public', 'Published', 'Read', 'Raise', 'Record', 'Register',
        +            'Repeat', 'Requires', 'Resourcestring', 'Set', 'Shl', 'Shr', 'Specialize', 'Stored',
        +            'Then', 'ThreadVar', 'To', 'Try', 'Type', 'Unit', 'Until', 'Uses', 'Var',
        +            'Virtual', 'While', 'With', 'Write', 'Xor', 'assembler', 'far',
        +            'near', 'pascal', 'cdecl', 'safecall', 'stdcall', 'varargs'
        +            ),
        +        2 => array(
        +            'false', 'self', 'true',
        +            ),
        +        3 => array(
        +            'Abs', 'AcquireExceptionObject', 'Addr', 'AnsiToUtf8', 'Append', 'ArcTan',
        +            'Assert', 'AssignFile', 'Assigned', 'BeginThread', 'BlockRead',
        +            'BlockWrite', 'Break', 'ChDir', 'Chr', 'Close', 'CloseFile',
        +            'CompToCurrency', 'CompToDouble', 'Concat', 'Continue', 'Copy', 'Cos',
        +            'Dec', 'Delete', 'Dispose', 'DoubleToComp', 'EndThread', 'EnumModules',
        +            'EnumResourceModules', 'Eof', 'Eoln', 'Erase', 'ExceptAddr',
        +            'ExceptObject', 'Exclude', 'Exit', 'Exp', 'FilePos', 'FileSize',
        +            'FillChar', 'Finalize', 'FindClassHInstance', 'FindHInstance',
        +            'FindResourceHInstance', 'Flush', 'Frac', 'FreeMem', 'Get8087CW',
        +            'GetDir', 'GetLastError', 'GetMem', 'GetMemoryManager',
        +            'GetModuleFileName', 'GetVariantManager', 'Halt', 'Hi', 'High',
        +            'IOResult', 'Inc', 'Include', 'Initialize', 'Insert', 'Int',
        +            'IsMemoryManagerSet', 'IsVariantManagerSet', 'Length', 'Ln', 'Lo', 'Low',
        +            'MkDir', 'Move', 'New', 'Odd', 'OleStrToStrVar', 'OleStrToString', 'Ord',
        +            'PUCS4Chars', 'ParamCount', 'ParamStr', 'Pi', 'Pos', 'Pred', 'Ptr',
        +            'Random', 'Randomize', 'Read', 'ReadLn', 'ReallocMem',
        +            'ReleaseExceptionObject', 'Rename', 'Reset', 'Rewrite', 'RmDir', 'Round',
        +            'RunError', 'Seek', 'SeekEof', 'SeekEoln', 'Set8087CW', 'SetLength',
        +            'SetLineBreakStyle', 'SetMemoryManager', 'SetString', 'SetTextBuf',
        +            'SetVariantManager', 'Sin', 'SizeOf', 'Slice', 'Sqr', 'Sqrt', 'Str',
        +            'StringOfChar', 'StringToOleStr', 'StringToWideChar', 'Succ', 'Swap',
        +            'Trunc', 'Truncate', 'TypeInfo', 'UCS4StringToWideString', 'UTF8Decode',
        +            'UTF8Encode', 'UnicodeToUtf8', 'UniqueString', 'UpCase', 'Utf8ToAnsi',
        +            'Utf8ToUnicode', 'Val', 'VarArrayRedim', 'VarClear',
        +            'WideCharLenToStrVar', 'WideCharLenToString', 'WideCharToStrVar',
        +            'WideCharToString', 'WideStringToUCS4String', 'Write', 'WriteLn',
        +
        +            'Abort', 'AddExitProc', 'AddTerminateProc', 'AdjustLineBreaks', 'AllocMem',
        +            'AnsiCompareFileName', 'AnsiCompareStr', 'AnsiCompareText',
        +            'AnsiDequotedStr', 'AnsiExtractQuotedStr', 'AnsiLastChar',
        +            'AnsiLowerCase', 'AnsiLowerCaseFileName', 'AnsiPos', 'AnsiQuotedStr',
        +            'AnsiSameStr', 'AnsiSameText', 'AnsiStrComp', 'AnsiStrIComp',
        +            'AnsiStrLComp', 'AnsiStrLIComp', 'AnsiStrLastChar', 'AnsiStrLower',
        +            'AnsiStrPos', 'AnsiStrRScan', 'AnsiStrScan', 'AnsiStrUpper',
        +            'AnsiUpperCase', 'AnsiUpperCaseFileName', 'AppendStr', 'AssignStr',
        +            'Beep', 'BoolToStr', 'ByteToCharIndex', 'ByteToCharLen', 'ByteType',
        +            'CallTerminateProcs', 'ChangeFileExt', 'CharLength', 'CharToByteIndex',
        +            'CharToByteLen', 'CompareMem', 'CompareStr', 'CompareText', 'CreateDir',
        +            'CreateGUID', 'CurrToStr', 'CurrToStrF', 'CurrentYear', 'Date',
        +            'DateTimeToFileDate', 'DateTimeToStr', 'DateTimeToString',
        +            'DateTimeToSystemTime', 'DateTimeToTimeStamp', 'DateToStr', 'DayOfWeek',
        +            'DecodeDate', 'DecodeDateFully', 'DecodeTime', 'DeleteFile',
        +            'DirectoryExists', 'DiskFree', 'DiskSize', 'DisposeStr', 'EncodeDate',
        +            'EncodeTime', 'ExceptionErrorMessage', 'ExcludeTrailingBackslash',
        +            'ExcludeTrailingPathDelimiter', 'ExpandFileName', 'ExpandFileNameCase',
        +            'ExpandUNCFileName', 'ExtractFileDir', 'ExtractFileDrive',
        +            'ExtractFileExt', 'ExtractFileName', 'ExtractFilePath',
        +            'ExtractRelativePath', 'ExtractShortPathName', 'FileAge', 'FileClose',
        +            'FileCreate', 'FileDateToDateTime', 'FileExists', 'FileGetAttr',
        +            'FileGetDate', 'FileIsReadOnly', 'FileOpen', 'FileRead', 'FileSearch',
        +            'FileSeek', 'FileSetAttr', 'FileSetDate', 'FileSetReadOnly', 'FileWrite',
        +            'FinalizePackage', 'FindClose', 'FindCmdLineSwitch', 'FindFirst',
        +            'FindNext', 'FloatToCurr', 'FloatToDateTime', 'FloatToDecimal',
        +            'FloatToStr', 'FloatToStrF', 'FloatToText', 'FloatToTextFmt',
        +            'FmtLoadStr', 'FmtStr', 'ForceDirectories', 'Format', 'FormatBuf',
        +            'FormatCurr', 'FormatDateTime', 'FormatFloat', 'FreeAndNil',
        +            'GUIDToString', 'GetCurrentDir', 'GetEnvironmentVariable',
        +            'GetFileVersion', 'GetFormatSettings', 'GetLocaleFormatSettings',
        +            'GetModuleName', 'GetPackageDescription', 'GetPackageInfo', 'GetTime',
        +            'IncAMonth', 'IncMonth', 'IncludeTrailingBackslash',
        +            'IncludeTrailingPathDelimiter', 'InitializePackage', 'IntToHex',
        +            'IntToStr', 'InterlockedDecrement', 'InterlockedExchange',
        +            'InterlockedExchangeAdd', 'InterlockedIncrement', 'IsDelimiter',
        +            'IsEqualGUID', 'IsLeapYear', 'IsPathDelimiter', 'IsValidIdent',
        +            'Languages', 'LastDelimiter', 'LoadPackage', 'LoadStr', 'LowerCase',
        +            'MSecsToTimeStamp', 'NewStr', 'NextCharIndex', 'Now', 'OutOfMemoryError',
        +            'QuotedStr', 'RaiseLastOSError', 'RaiseLastWin32Error', 'RemoveDir',
        +            'RenameFile', 'ReplaceDate', 'ReplaceTime', 'SafeLoadLibrary',
        +            'SameFileName', 'SameText', 'SetCurrentDir', 'ShowException', 'Sleep',
        +            'StrAlloc', 'StrBufSize', 'StrByteType', 'StrCat', 'StrCharLength',
        +            'StrComp', 'StrCopy', 'StrDispose', 'StrECopy', 'StrEnd', 'StrFmt',
        +            'StrIComp', 'StrLCat', 'StrLComp', 'StrLCopy', 'StrLFmt', 'StrLIComp',
        +            'StrLen', 'StrLower', 'StrMove', 'StrNew', 'StrNextChar', 'StrPCopy',
        +            'StrPLCopy', 'StrPas', 'StrPos', 'StrRScan', 'StrScan', 'StrToBool',
        +            'StrToBoolDef', 'StrToCurr', 'StrToCurrDef', 'StrToDate', 'StrToDateDef',
        +            'StrToDateTime', 'StrToDateTimeDef', 'StrToFloat', 'StrToFloatDef',
        +            'StrToInt', 'StrToInt64', 'StrToInt64Def', 'StrToIntDef', 'StrToTime',
        +            'StrToTimeDef', 'StrUpper', 'StringReplace', 'StringToGUID', 'Supports',
        +            'SysErrorMessage', 'SystemTimeToDateTime', 'TextToFloat', 'Time',
        +            'TimeStampToDateTime', 'TimeStampToMSecs', 'TimeToStr', 'Trim',
        +            'TrimLeft', 'TrimRight', 'TryEncodeDate', 'TryEncodeTime',
        +            'TryFloatToCurr', 'TryFloatToDateTime', 'TryStrToBool', 'TryStrToCurr',
        +            'TryStrToDate', 'TryStrToDateTime', 'TryStrToFloat', 'TryStrToInt',
        +            'TryStrToInt64', 'TryStrToTime', 'UnloadPackage', 'UpperCase',
        +            'WideCompareStr', 'WideCompareText', 'WideFmtStr', 'WideFormat',
        +            'WideFormatBuf', 'WideLowerCase', 'WideSameStr', 'WideSameText',
        +            'WideUpperCase', 'Win32Check', 'WrapText',
        +
        +            'ActivateClassGroup', 'AllocateHwnd', 'BinToHex', 'CheckSynchronize',
        +            'CollectionsEqual', 'CountGenerations', 'DeallocateHwnd', 'EqualRect',
        +            'ExtractStrings', 'FindClass', 'FindGlobalComponent', 'GetClass',
        +            'GroupDescendantsWith', 'HexToBin', 'IdentToInt',
        +            'InitInheritedComponent', 'IntToIdent', 'InvalidPoint',
        +            'IsUniqueGlobalComponentName', 'LineStart', 'ObjectBinaryToText',
        +            'ObjectResourceToText', 'ObjectTextToBinary', 'ObjectTextToResource',
        +            'PointsEqual', 'ReadComponentRes', 'ReadComponentResEx',
        +            'ReadComponentResFile', 'Rect', 'RegisterClass', 'RegisterClassAlias',
        +            'RegisterClasses', 'RegisterComponents', 'RegisterIntegerConsts',
        +            'RegisterNoIcon', 'RegisterNonActiveX', 'SmallPoint', 'StartClassGroup',
        +            'TestStreamFormat', 'UnregisterClass', 'UnregisterClasses',
        +            'UnregisterIntegerConsts', 'UnregisterModuleClasses',
        +            'WriteComponentResFile',
        +
        +            'ArcCos', 'ArcCosh', 'ArcCot', 'ArcCotH', 'ArcCsc', 'ArcCscH', 'ArcSec',
        +            'ArcSecH', 'ArcSin', 'ArcSinh', 'ArcTan2', 'ArcTanh', 'Ceil',
        +            'CompareValue', 'Cosecant', 'Cosh', 'Cot', 'CotH', 'Cotan', 'Csc', 'CscH',
        +            'CycleToDeg', 'CycleToGrad', 'CycleToRad', 'DegToCycle', 'DegToGrad',
        +            'DegToRad', 'DivMod', 'DoubleDecliningBalance', 'EnsureRange', 'Floor',
        +            'Frexp', 'FutureValue', 'GetExceptionMask', 'GetPrecisionMode',
        +            'GetRoundMode', 'GradToCycle', 'GradToDeg', 'GradToRad', 'Hypot',
        +            'InRange', 'IntPower', 'InterestPayment', 'InterestRate',
        +            'InternalRateOfReturn', 'IsInfinite', 'IsNan', 'IsZero', 'Ldexp', 'LnXP1',
        +            'Log10', 'Log2', 'LogN', 'Max', 'MaxIntValue', 'MaxValue', 'Mean',
        +            'MeanAndStdDev', 'Min', 'MinIntValue', 'MinValue', 'MomentSkewKurtosis',
        +            'NetPresentValue', 'Norm', 'NumberOfPeriods', 'Payment', 'PeriodPayment',
        +            'Poly', 'PopnStdDev', 'PopnVariance', 'Power', 'PresentValue',
        +            'RadToCycle', 'RadToDeg', 'RadToGrad', 'RandG', 'RandomRange', 'RoundTo',
        +            'SLNDepreciation', 'SYDDepreciation', 'SameValue', 'Sec', 'SecH',
        +            'Secant', 'SetExceptionMask', 'SetPrecisionMode', 'SetRoundMode', 'Sign',
        +            'SimpleRoundTo', 'SinCos', 'Sinh', 'StdDev', 'Sum', 'SumInt',
        +            'SumOfSquares', 'SumsAndSquares', 'Tan', 'Tanh', 'TotalVariance',
        +            'Variance'
        +            ),
        +        4 => array(
        +            'AnsiChar', 'AnsiString', 'Bool', 'Boolean', 'Byte', 'ByteBool', 'Cardinal', 'Char',
        +            'Comp', 'Currency', 'DWORD', 'Double', 'Extended', 'Int64', 'Integer', 'IUnknown',
        +            'LongBool', 'LongInt', 'LongWord', 'PAnsiChar', 'PAnsiString', 'PBool', 'PBoolean', 'PByte',
        +            'PByteArray', 'PCardinal', 'PChar', 'PComp', 'PCurrency', 'PDWORD', 'PDate', 'PDateTime',
        +            'PDouble', 'PExtended', 'PInt64', 'PInteger', 'PLongInt', 'PLongWord', 'Pointer', 'PPointer',
        +            'PShortInt', 'PShortString', 'PSingle', 'PSmallInt', 'PString', 'PHandle', 'PVariant', 'PWord',
        +            'PWordArray', 'PWordBool', 'PWideChar', 'PWideString', 'Real', 'Real48', 'ShortInt', 'ShortString',
        +            'Single', 'SmallInt', 'String', 'TClass', 'TDate', 'TDateTime', 'TextFile', 'THandle',
        +            'TObject', 'TTime', 'Variant', 'WideChar', 'WideString', 'Word', 'WordBool'
        +            ),
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array('(', ')', '[', ']'),
        +        1 => array('.', ',', ':', ';'),
        +        2 => array('@', '^'),
        +        3 => array('=', '+', '-', '*', '/')
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight: bold;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #000066;',
        +            4 => 'color: #000066; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            2 => 'color: #008000; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #ff0000; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000066;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #0000cc;',
        +            1 => 'color: #ff0000;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000066;',
        +            1 => 'color: #000066;',
        +            2 => 'color: #000066;',
        +            3 => 'color: #000066;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        //Hex numbers
        +        0 => '(? '\#(?:\$[0-9a-fA-F]{1,4}|\d{1,5})'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 2,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            3 => array(
        +                'DISALLOWED_AFTER' => '(?=\s*[(;])'
        +                )
        +            )
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/diff.php b/Sources/geshi/diff.php
        new file mode 100644
        index 0000000..5b68171
        --- /dev/null
        +++ b/Sources/geshi/diff.php
        @@ -0,0 +1,196 @@
        + 'Diff',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => ' ',
        +    'KEYWORDS' => array(
        +            1 => array(
        +                '\ No newline at end of file'
        +            ),
        +//            2 => array(
        +//                '***************' /* This only seems to works in some cases? */
        +//            ),
        +        ),
        +    'SYMBOLS' => array(
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        1 => false,
        +//        2 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #aaaaaa; font-style: italic;',
        +//            2 => 'color: #dd6611;',
        +            ),
        +        'COMMENTS' => array(
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => ''
        +            ),
        +        'BRACKETS' => array(
        +            0 => ''
        +            ),
        +        'STRINGS' => array(
        +            0 => ''
        +            ),
        +        'NUMBERS' => array(
        +            0 => ''
        +            ),
        +        'METHODS' => array(
        +            0 => ''
        +            ),
        +        'SYMBOLS' => array(
        +            0 => ''
        +            ),
        +        'SCRIPT' => array(
        +            0 => ''
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #440088;',
        +            1 => 'color: #991111;',
        +            2 => 'color: #00b000;',
        +            3 => 'color: #888822;',
        +            4 => 'color: #888822;',
        +            5 => 'color: #0011dd;',
        +            6 => 'color: #440088;',
        +            7 => 'color: #991111;',
        +            8 => 'color: #00b000;',
        +            9 => 'color: #888822;',
        +            ),
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +//        2 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(
        +        0 => "[0-9,]+[acd][0-9,]+",
        +        //Removed lines
        +        1 => array(
        +            GESHI_SEARCH => '(^|(?<=\A\s))\\<.*$',
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        //Inserted lines
        +        2 => array(
        +            GESHI_SEARCH => '(^|(?<=\A\s))\\>.*$',
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        //Location line
        +        3 => array(
        +            GESHI_SEARCH => '(^|(?<=\A\s))-{3}\\s.*$',
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        //Inserted line
        +        4 => array(
        +            GESHI_SEARCH => '(^|(?<=\A\s))(\\+){3}\\s.*$',
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        //Modified line
        +        5 => array(
        +            GESHI_SEARCH => '(^|(?<=\A\s))\\!.*$',
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        //File specification
        +        6 => array(
        +            GESHI_SEARCH => '(^|(?<=\A\s))[\\@]{2}.*$',
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        //Removed line
        +        7 => array(
        +            GESHI_SEARCH => '(^|(?<=\A\s))\\-.*$',
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        //Inserted line
        +        8 => array(
        +            GESHI_SEARCH => '(^|(?<=\A\s))\\+.*$',
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        //File specification
        +        9 => array(
        +            GESHI_SEARCH => '(^|(?<=\A\s))(\\*){3}\\s.*$',
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/div.php b/Sources/geshi/div.php
        new file mode 100644
        index 0000000..aa11795
        --- /dev/null
        +++ b/Sources/geshi/div.php
        @@ -0,0 +1,126 @@
        + 'DIV',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'while','until','to','switch','step','return','repeat','loop','if','from','frame','for','end','elseif',
        +            'else','default','debug','continue','clone','case','break','begin'
        +            ),
        +        2 => array(
        +            'xor','whoami','type','sizeof','pointer','or','offset','not','neg','mod','id','dup','and','_ne','_lt',
        +            '_le','_gt','_ge','_eq'
        +            ),
        +        3 => array(
        +            'setup_program','program','process','private','local','import','global','function','const',
        +            'compiler_options'
        +            ),
        +        4 => array(
        +            'word','struct','string','int','byte'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '(',')','[',']','=','+','-','*','/','!','%','^','&',':',';',',','<','>'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0040b1;',
        +            2 => 'color: #000000;',
        +            3 => 'color: #000066; font-weight: bold;',
        +            4 => 'color: #993333;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => ''
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #44aa44;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #202020;',
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #44aa44;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/dos.php b/Sources/geshi/dos.php
        new file mode 100644
        index 0000000..36d9983
        --- /dev/null
        +++ b/Sources/geshi/dos.php
        @@ -0,0 +1,227 @@
        + 'DOS',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    //DOS comment lines
        +    'COMMENT_REGEXP' => array(
        +        1 => "/^\s*@?REM\b.*$/mi",
        +        2 => "/^\s*::.*$/m",
        +        3 => "/\^./"
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        /* Flow control keywords */
        +        1 => array(
        +            'if', 'else', 'goto', 'shift',
        +            'for', 'in', 'do',
        +            'call', 'exit'
        +            ),
        +        /* IF statement keywords */
        +        2 => array(
        +            'not', 'exist', 'errorlevel',
        +            'defined',
        +            'equ', 'neq', 'lss', 'leq', 'gtr', 'geq'
        +            ),
        +        /* Internal commands */
        +        3 => array(
        +            'cd', 'md', 'rd', 'chdir', 'mkdir', 'rmdir', 'dir',
        +            'del', 'copy', 'move', 'ren', 'rename',
        +            'echo',
        +            'setlocal', 'endlocal', 'set',
        +            'pause',
        +            'pushd', 'popd', 'title', 'verify'
        +            ),
        +        /* Special files */
        +        4 => array(
        +            'prn', 'nul', 'lpt3', 'lpt2', 'lpt1', 'con',
        +            'com4', 'com3', 'com2', 'com1', 'aux'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '@', '%', '!', '|', '<', '>', '&'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #00b100; font-weight: bold;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #b1b100; font-weight: bold;',
        +            4 => 'color: #0000ff; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            2 => 'color: #b100b1; font-style: italic;',
        +            3 => 'color: #33cc33;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #ff0000; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #33cc33;',
        +            1 => 'color: #33cc33;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #b100b1; font-weight: bold;',
        +            1 => 'color: #448844;',
        +            2 => 'color: #448888;',
        +            3 => 'color: #448888;'
        +            )
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'URLS' => array(
        +        1 => 'http://www.ss64.com/nt/{FNAMEL}.html',
        +        2 => 'http://www.ss64.com/nt/{FNAMEL}.html',
        +        3 => 'http://www.ss64.com/nt/{FNAMEL}.html',
        +        4 => 'http://www.ss64.com/nt/{FNAMEL}.html'
        +        ),
        +    'REGEXPS' => array(
        +        /* Label */
        +        0 => array(
        +/*            GESHI_SEARCH => '((?si:[@\s]+GOTO\s+|\s+:)[\s]*)((? '((?si:[@\s]+GOTO\s+|\s+:)[\s]*)((? '\\2',
        +            GESHI_MODIFIERS => 'si',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +        ),
        +        /* Variable assignement */
        +        1 => array(
        +/*            GESHI_SEARCH => '(SET[\s]+(?si:\/A[\s]+|\/P[\s]+|))([^=\s\n]+)([\s]*=)',*/
        +            GESHI_SEARCH => '(SET\s+(?si:\\/A\s+|\\/P\s+)?)([^=\n]+)(\s*=)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'si',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3'
        +            ),
        +        /* Arguments or variable evaluation */
        +        2 => array(
        +/*            GESHI_SEARCH => '(%)([\d*]|[^%\s]*(?=%))((? '(!(?:!(?=[a-z0-9]))?)([\d*]|(?:~[adfnpstxz]*(?:$\w+:)?)?[a-z0-9](?!\w)|[^!>\n]*(?=!))((?)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'si',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3'
        +            ),
        +        /* Arguments or variable evaluation */
        +        3 => array(
        +/*            GESHI_SEARCH => '(%)([\d*]|[^%\s]*(?=%))((? '(%(?:%(?=[a-z0-9]))?)([\d*]|(?:~[adfnpstxz]*(?:$\w+:)?)?[a-z0-9](?!\w)|[^%\n]*(?=%))((? '\\2',
        +            GESHI_MODIFIERS => 'si',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3'
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'BRACKETS' => GESHI_NEVER,
        +            'NUMBERS' => GESHI_NEVER
        +            ),
        +        'KEYWORDS' => array(
        +            1 => array(
        +                'DISALLOWED_BEFORE' => '(? array(
        +                'DISALLOWED_BEFORE' => '(? array(
        +                'DISALLOWED_BEFORE' => '(? array(
        +                'DISALLOWED_BEFORE' => '(?
        \ No newline at end of file
        diff --git a/Sources/geshi/dot.php b/Sources/geshi/dot.php
        new file mode 100644
        index 0000000..bdf240a
        --- /dev/null
        +++ b/Sources/geshi/dot.php
        @@ -0,0 +1,164 @@
        + 'dot',
        +    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'URL', 'arrowhead', 'arrowsize', 'arrowtail', 'bb', 'bgcolor', 'bottomlabel',
        +            'center', 'clusterrank', 'color', 'comment', 'constraint', 'decorate',
        +            'dir', 'distortion', 'fillcolor', 'fixedsize', 'fontcolor',
        +            'fontname', 'fontsize', 'group', 'headclip', 'headlabel', 'headport',
        +            'height', 'id', 'label', 'labelangle', 'labeldistance', 'labelfontcolor',
        +            'labelfontname', 'labelfontsize', 'layer', 'layers', 'margin', 'mclimit',
        +            'minlen', 'nodesep', 'nslimit', 'ordering', 'orientation', 'page',
        +            'pagedir', 'peripheries', 'port_label_distance', 'quantum', 'rank', 'rankdir',
        +            'ranksep', 'ratio', 'regular', 'rotate', 'samehead', 'sametail', 'searchsize',
        +            'shape', 'shapefile', 'showboxes', 'sides', 'size', 'skew', 'style',
        +            'tailclip', 'taillabel', 'tailport', 'toplabel', 'weight', 'width'
        +            ),
        +        2 => array(
        +            'node', 'graph', 'digraph', 'strict', 'edge', 'subgraph'
        +            ),
        +        3 => array(
        +            'Mcircle', 'Mdiamond', 'Mrecord', 'Msquare', 'auto', 'back', 'bold',
        +            'both', 'box', 'circle', 'compress', 'dashed', 'diamond', 'dot',
        +            'dotted', 'doublecircle', 'doubleoctagon', 'egg', 'ellipse', 'epsf',
        +            'false', 'fill', 'filled', 'forward', 'global', 'hexagon', 'house',
        +            'inv', 'invdot', 'invhouse', 'invis', 'invodot', 'invtrapezium',
        +            'invtriangle', 'local', 'max', 'min', 'none', 'normal', 'octagon',
        +            'odot', 'out', 'parallelogram', 'plaintext', 'polygon', 'record',
        +            'same', 'solid', 'trapezium', 'triangle', 'tripleoctagon', 'true'
        +            ),
        +        4 => array(
        +            'aliceblue', 'antiquewhite', 'aquamarine', 'azure', 'beige', 'bisque', 'black',
        +            'blanchedalmond', 'blue', 'blueviolet', 'brown', 'burlywood', 'cadetblue',
        +            'chartreuse', 'chocolate', 'coral', 'cornflowerblue', 'cornsilk', 'crimson',
        +            'cyan', 'darkgoldenrod', 'darkgreen', 'darkkhaki', 'darkolivegreen',
        +            'darkorange', 'darkorchid', 'darksalmon', 'darkseagreen', 'darkslateblue',
        +            'darkslategray', 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue',
        +            'dimgray', 'dodgerblue', 'firebrick', 'forestgreen', 'gainsboro', 'ghostwhite',
        +            'gold', 'goldenrod', 'gray', 'green', 'greenyellow', 'honeydew', 'hotpink',
        +            'indianred', 'indigo', 'ivory', 'khaki', 'lavender', 'lavenderblush',
        +            'lawngreen', 'lemonchiffon', 'lightblue', 'lightcyan', 'lightgoldenrod',
        +            'lightgoldenrodyellow', 'lightgray', 'lightpink', 'lightsalmon',
        +            'lightseagreen', 'lightskyblue', 'lightslateblue', 'lightslategray',
        +            'lightyellow', 'limegreen', 'linen', 'magenta', 'maroon', 'mediumaquamarine',
        +            'mediumblue', 'mediumorchid', 'mediumpurple', 'mediumseagreen',
        +            'mediumslateblue', 'mediumspringgreen', 'mediumturquoise', 'mediumvioletred',
        +            'midnightblue', 'mintcream', 'mistyrose', 'moccasin', 'navajowhite', 'navy',
        +            'navyblue', 'oldlace', 'olivedrab', 'oralwhite', 'orange', 'orangered',
        +            'orchid', 'palegoldenrod', 'palegreen', 'paleturquoise', 'palevioletred',
        +            'papayawhip', 'peachpuff', 'peru', 'pink', 'plum', 'powderblue', 'purple',
        +            'red', 'rosybrown', 'royalblue', 'saddlebrown', 'salmon', 'salmon2', 'sandybrown',
        +            'seagreen', 'seashell', 'sienna', 'skyblue', 'slateblue', 'slategray', 'snow',
        +            'springgreen', 'steelblue', 'tan', 'thistle', 'tomato', 'turquoise', 'violet',
        +            'violetred', 'wheat', 'white', 'whitesmoke', 'yellow', 'yellowgreen'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '[', ']', '{', '}', '-', '+', '*', '/', '<', '>', '!', '~', '%', '&', '|', '='
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000066;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #993333;',
        +            4 => 'color: #b1b100;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            2 => 'color: #339933;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #af624d; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true,
        +        1 => true,
        +        2 => true,
        +        3 => true
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/e.php b/Sources/geshi/e.php
        new file mode 100644
        index 0000000..319bee0
        --- /dev/null
        +++ b/Sources/geshi/e.php
        @@ -0,0 +1,208 @@
        + 'E',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array('/**' => '*/'), // Note: This is method doc, not a general comment syntax.
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +
        +    // FIXME: The escaping inside ` is actually doubling of any interior `, $, or @ -- backslash is NOT special
        +    'QUOTEMARKS' => array('\'', '"', '`'),
        +    'ESCAPE_CHAR' => '\\',
        +
        +    'KEYWORDS' => array(
        +        // builtin control structures
        +        1 => array(
        +            'accum', 'break', 'try', 'continue', 'if', 'while', 'for', 'switch'
        +            ),
        +
        +        // control structures subsidiary keywords
        +        2 => array(
        +            'catch', 'else', 'finally', 'in', 'exit'
        +            ),
        +
        +        // named operators
        +        3 => array(
        +            'fn', 'via'
        +            ),
        +
        +        // variable/function/object definers
        +        4 => array(
        +            'def', 'bind', 'var'
        +            ),
        +
        +        // object definition subsidiary keywords
        +        5 => array(
        +            'extends', 'as', 'implements', 'guards', 'match', 'to', 'method'
        +            ),
        +
        +        // builtin nouns in safeEnv
        +        6 => array(
        +            'null', 'false', 'true', 'throw', '__loop', '__makeList',
        +            '__makeMap', '__makeProtocolDesc', '__makeMessageDesc',
        +            '__makeParamDesc', 'any', 'void', 'boolean', '__makeOrderedSpace',
        +            'ValueGuard', '__MatchContext', 'require', '__makeVerbFacet', 'NaN',
        +            'Infinity', '__identityFunc', '__makeInt', '__makeFinalSlot',
        +            '__makeVarSlot', '__makeGuardedSlot', '__makeGuard', '__makeTwine',
        +            '__makeSourceSpan', '__auditedBy', 'Guard', 'near', 'pbc',
        +            'PassByCopy', 'DeepPassByCopy', 'Data', 'Persistent', 'DeepFrozen',
        +            'int', 'float64', 'char', 'String', 'Twine', 'TextWriter', 'List',
        +            'Map', 'nullOk', 'Tuple', '__Portrayal', 'notNull', 'vow', 'rcvr',
        +            'SturdyRef', 'simple__quasiParser', 'twine__quasiParser',
        +            'rx__quasiParser', 'e__quasiParser', 'epatt__quasiParser',
        +            'sml__quasiParser', 'term__quasiParser', 'traceln', '__equalizer',
        +            '__comparer', 'Ref', 'E', 'promiseAllFulfilled', 'EIO', 'help',
        +            'safeScope', '__eval', 'resource__uriGetter', 'type__uriGetter',
        +            'import__uriGetter', 'elib__uriGetter', 'elang__uriGetter',
        +            'opaque__uriGetter'
        +            ),
        +
        +        // builtin nouns in privilegedEnv
        +        7 => array(
        +            'file__uriGetter', 'fileURL__uriGetter', 'jar__uriGetter',
        +            'http__uriGetter', 'ftp__uriGetter', 'gopher__uriGetter',
        +            'news__uriGetter', 'cap__uriGetter', 'makeCommand', 'stdout',
        +            'stderr', 'stdin', 'print', 'println', 'interp', 'entropy', 'timer',
        +            'introducer', 'identityMgr', 'makeSturdyRef', 'timeMachine',
        +            'unsafe__uriGetter', 'currentVat', 'rune', 'awt__uriGetter',
        +            'swing__uriGetter', 'JPanel__quasiParser', 'swt__uriGetter',
        +            'currentDisplay', 'swtGrid__quasiParser', 'swtGrid`',
        +            'privilegedScope'
        +            ),
        +
        +        // reserved keywords
        +        8 => array(
        +            'abstract', 'an', 'assert', 'attribute', 'be', 'begin', 'behalf',
        +            'belief', 'believe', 'believes', 'case', 'class', 'const',
        +            'constructor', 'declare', 'default', 'define', 'defmacro',
        +            'delicate', 'deprecated', 'dispatch', 'do', 'encapsulate',
        +            'encapsulated', 'encapsulates', 'end', 'ensure', 'enum', 'eventual',
        +            'eventually', 'export', 'facet', 'forall', 'function', 'given',
        +            'hidden', 'hides', 'inline', 'is', 'know', 'knows', 'lambda', 'let',
        +            'methods', 'module', 'namespace', 'native', 'obeys', 'octet',
        +            'oneway', 'operator', 'package', 'private', 'protected', 'public',
        +            'raises', 'reliance', 'reliant', 'relies', 'rely', 'reveal', 'sake',
        +            'signed', 'static', 'struct', 'suchthat', 'supports', 'suspect',
        +            'suspects', 'synchronized', 'this', 'transient', 'truncatable',
        +            'typedef', 'unsigned', 'unum', 'uses', 'using', 'utf8', 'utf16',
        +            'virtual', 'volatile', 'wstring'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array(
        +            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%', '=', '<', '>', '!', '^', '&', '|', '?', ':', ';', ','
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true,
        +        8 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #b1b100;',
        +            3 => 'color: #b1b100;',
        +            4 => 'color: #b1b100;',
        +            5 => 'color: #b1b100;',
        +            6 => 'color: #b1b100;',
        +            7 => 'color: #b1b100;',
        +            8 => 'color: #b1b100;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;',
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #004000;'
        +            ),
        +        'SYMBOLS' => array(
        +            1 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(),
        +        'SCRIPT' => array()
        +        ),
        +    'URLS' => array(
        +        1 => 'http://wiki.erights.org/wiki/{FNAME}',
        +        2 => 'http://wiki.erights.org/wiki/{FNAME}',
        +        3 => 'http://wiki.erights.org/wiki/{FNAME}',
        +        4 => 'http://wiki.erights.org/wiki/{FNAME}',
        +        5 => 'http://wiki.erights.org/wiki/{FNAME}',
        +        6 => 'http://wiki.erights.org/wiki/{FNAME}',
        +        7 => 'http://wiki.erights.org/wiki/{FNAME}',
        +        8 => 'http://wiki.erights.org/wiki/{FNAME}'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        2 => '<-',
        +        3 => '::'
        +        ),
        +    'REGEXPS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array()
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/ecmascript.php b/Sources/geshi/ecmascript.php
        new file mode 100644
        index 0000000..69a55c9
        --- /dev/null
        +++ b/Sources/geshi/ecmascript.php
        @@ -0,0 +1,210 @@
        + 'ECMAScript',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    // Regular Expression Literals
        +    'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\*\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\*\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\*\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        //Simple Single Char Escapes
        +        1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
        +        //Hexadecimal Char Specs
        +        2 => "#\\\\x[\da-fA-F]{2}#",
        +        //Hexadecimal Char Specs
        +        3 => "#\\\\u[\da-fA-F]{4}#",
        +        //Hexadecimal Char Specs
        +        4 => "#\\\\U[\da-fA-F]{8}#",
        +        //Octal Char Specs
        +        5 => "#\\\\[0-7]{1,3}#"
        +        ),
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
        +        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
        +        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        1 => array( // Reserved literals
        +            'false', 'true',
        +            'null'
        +            ),
        +        2 => array( // Main keywords
        +            'break', 'case', 'catch', 'continue', 'default', 'delete', 'do', 'else',
        +            'finally', 'for', 'function', 'if', 'in', 'instanceof', 'new', 'return',
        +            'switch', 'this', 'throw', 'try', 'typeof', 'var', 'void', 'while',
        +            'with'
        +            ),
        +        3 => array( // Extra keywords or keywords reserved for future use
        +            'abstract', 'as', 'boolean', 'byte', 'char', 'class', 'const', 'debugger',
        +            'double', 'enum', 'export', 'extends', 'final', 'float', 'goto', 'implements',
        +            'import', 'int', 'interface', 'is', 'long', 'native', 'namespace', 'package',
        +            'private', 'protected', 'public', 'short', 'static', 'super', 'synchronized', 'throws',
        +            'transient', 'use', 'volatile'
        +            ),
        +        4 => array( // Operators
        +            'get', 'set'
        +            ),
        +        5 => array( // Built-in object classes
        +            'Array', 'Boolean', 'Date', 'EvalError', 'Error', 'Function', 'Math', 'Number',
        +            'Object', 'RangeError', 'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError'
        +            ),
        +        6 => array( // Global properties
        +            'Infinity', 'NaN', 'undefined'
        +            ),
        +        7 => array( // Global methods
        +            'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent',
        +            'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt',
        +            // The escape and unescape functions do not work properly for non-ASCII characters and have been deprecated.
        +            // In JavaScript 1.5 and later, use encodeURI, decodeURI, encodeURIComponent, and decodeURIComponent.
        +            'escape', 'unescape'
        +            ),
        +        8 => array( // Function's arguments
        +            'arguments'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}',
        +        '+', '-', '*', '/', '%',
        +        '!', '.', '&', '|', '^',
        +        '<', '>', '=', '~',
        +        ',', ';', '?', ':'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true,
        +        8 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #009999;',
        +            2 => 'color: #1500C8;',
        +            3 => 'color: #1500C8;',
        +            4 => 'color: #1500C8;',
        +            5 => 'color: #1500C8;',
        +            6 => 'color: #1500C8;',
        +            7 => 'color: #1500C8;',
        +            8 => 'color: #1500C8;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #CC0000;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #3366CC;',
        +            1 => 'color: #3366CC;',
        +            2 => 'color: #3366CC;',
        +            3 => 'color: #3366CC;',
        +            4 => 'color: #3366CC;',
        +            5 => 'color: #3366CC;',
        +            'HARD' => '',
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #008800;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #9900FF;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #FF00FF;',
        +            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #FF00FF;',
        +            GESHI_NUMBER_OCT_PREFIX => 'color: #FF00FF;',
        +            GESHI_NUMBER_HEX_PREFIX => 'color: #FF00FF;',
        +            GESHI_NUMBER_FLT_SCI_SHORT => 'color: #FF00FF;',
        +            GESHI_NUMBER_FLT_SCI_ZERO => 'color: #FF00FF;',
        +            GESHI_NUMBER_FLT_NONSCI_F => 'color: #FF00FF;',
        +            GESHI_NUMBER_FLT_NONSCI => 'color: #FF00FF;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #660066;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            2 => '',
        +            3 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => '',
        +        7 => '',
        +        8 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/eiffel.php b/Sources/geshi/eiffel.php
        new file mode 100644
        index 0000000..baa13c3
        --- /dev/null
        +++ b/Sources/geshi/eiffel.php
        @@ -0,0 +1,395 @@
        + 'Eiffel',
        +    'COMMENT_SINGLE' => array(1 => '--'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '%',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'separate',
        +            'invariant',
        +            'inherit',
        +            'indexing',
        +            'feature',
        +            'expanded',
        +            'deferred',
        +            'class'
        +            ),
        +        2 => array(
        +            'xor',
        +            'when',
        +            'variant',
        +            'until',
        +            'unique',
        +            'undefine',
        +            'then',
        +            'strip',
        +            'select',
        +            'retry',
        +            'rescue',
        +            'require',
        +            'rename',
        +            'reference',
        +            'redefine',
        +            'prefix',
        +            'or',
        +            'once',
        +            'old',
        +            'obsolete',
        +            'not',
        +            'loop',
        +            'local',
        +            'like',
        +            'is',
        +            'inspect',
        +            'infix',
        +            'include',
        +            'implies',
        +            'if',
        +            'frozen',
        +            'from',
        +            'external',
        +            'export',
        +            'ensure',
        +            'end',
        +            'elseif',
        +            'else',
        +            'do',
        +            'creation',
        +            'create',
        +            'check',
        +            'as',
        +            'and',
        +            'alias',
        +            'agent'
        +            ),
        +        3 => array(
        +            'Void',
        +            'True',
        +            'Result',
        +            'Precursor',
        +            'False',
        +            'Current'
        +            ),
        +        4 => array(
        +            'UNIX_SIGNALS',
        +            'UNIX_FILE_INFO',
        +            'UNBOUNDED',
        +            'TWO_WAY_TREE_CURSOR',
        +            'TWO_WAY_TREE',
        +            'TWO_WAY_SORTED_SET',
        +            'TWO_WAY_LIST',
        +            'TWO_WAY_CURSOR_TREE',
        +            'TWO_WAY_CIRCULAR',
        +            'TWO_WAY_CHAIN_ITERATOR',
        +            'TUPLE',
        +            'TREE',
        +            'TRAVERSABLE',
        +            'TO_SPECIAL',
        +            'THREAD_CONTROL',
        +            'THREAD_ATTRIBUTES',
        +            'THREAD',
        +            'TABLE',
        +            'SUBSET',
        +            'STRING_HANDLER',
        +            'STRING',
        +            'STREAM',
        +            'STORABLE',
        +            'STD_FILES',
        +            'STACK',
        +            'SPECIAL',
        +            'SORTED_TWO_WAY_LIST',
        +            'SORTED_STRUCT',
        +            'SORTED_LIST',
        +            'SINGLE_MATH',
        +            'SET',
        +            'SEQUENCE',
        +            'SEQ_STRING',
        +            'SEMAPHORE',
        +            'ROUTINE',
        +            'RESIZABLE',
        +            'RECURSIVE_TREE_CURSOR',
        +            'RECURSIVE_CURSOR_TREE',
        +            'REAL_REF',
        +            'REAL',
        +            'RAW_FILE',
        +            'RANDOM',
        +            'QUEUE',
        +            'PROXY',
        +            'PROFILING_SETTING',
        +            'PROCEDURE',
        +            'PRIORITY_QUEUE',
        +            'PRIMES',
        +            'PRECOMP',
        +            'POINTER_REF',
        +            'POINTER',
        +            'PLATFORM',
        +            'PLAIN_TEXT_FILE',
        +            'PATH_NAME',
        +            'PART_SORTED_TWO_WAY_LIST',
        +            'PART_SORTED_SET',
        +            'PART_SORTED_LIST',
        +            'PART_COMPARABLE',
        +            'OPERATING_ENVIRONMENT',
        +            'ONCE_CONTROL',
        +            'OBJECT_OWNER',
        +            'OBJECT_CONTROL',
        +            'NUMERIC',
        +            'NONE',
        +            'MUTEX',
        +            'MULTI_ARRAY_LIST',
        +            'MULTAR_LIST_CURSOR',
        +            'MEMORY',
        +            'MEM_INFO',
        +            'MEM_CONST',
        +            'MATH_CONST',
        +            'LIST',
        +            'LINKED_TREE_CURSOR',
        +            'LINKED_TREE',
        +            'LINKED_STACK',
        +            'LINKED_SET',
        +            'LINKED_QUEUE',
        +            'LINKED_PRIORITY_QUEUE',
        +            'LINKED_LIST_CURSOR',
        +            'LINKED_LIST',
        +            'LINKED_CURSOR_TREE',
        +            'LINKED_CIRCULAR',
        +            'LINKABLE',
        +            'LINEAR_ITERATOR',
        +            'LINEAR',
        +            'ITERATOR',
        +            'IO_MEDIUM',
        +            'INTERNAL',
        +            'INTEGER_REF',
        +            'INTEGER_INTERVAL',
        +            'INTEGER',
        +            'INFINITE',
        +            'INDEXABLE',
        +            'IDENTIFIED_CONTROLLER',
        +            'IDENTIFIED',
        +            'HIERARCHICAL',
        +            'HEAP_PRIORITY_QUEUE',
        +            'HASHABLE',
        +            'HASH_TABLE_CURSOR',
        +            'HASH_TABLE',
        +            'GENERAL',
        +            'GC_INFO',
        +            'FUNCTION',
        +            'FORMAT_INTEGER',
        +            'FORMAT_DOUBLE',
        +            'FIXED_TREE',
        +            'FIXED_LIST',
        +            'FIXED',
        +            'FINITE',
        +            'FILE_NAME',
        +            'FILE',
        +            'FIBONACCI',
        +            'EXECUTION_ENVIRONMENT',
        +            'EXCEPTIONS',
        +            'EXCEP_CONST',
        +            'DYNAMIC_TREE',
        +            'DYNAMIC_LIST',
        +            'DYNAMIC_CIRCULAR',
        +            'DYNAMIC_CHAIN',
        +            'DOUBLE_REF',
        +            'DOUBLE_MATH',
        +            'DOUBLE',
        +            'DISPENSER',
        +            'DIRECTORY_NAME',
        +            'DIRECTORY',
        +            'DECLARATOR',
        +            'DEBUG_OUTPUT',
        +            'CURSOR_TREE_ITERATOR',
        +            'CURSOR_TREE',
        +            'CURSOR_STRUCTURE',
        +            'CURSOR',
        +            'COUNTABLE_SEQUENCE',
        +            'COUNTABLE',
        +            'CONTAINER',
        +            'CONSOLE',
        +            'CONDITION_VARIABLE',
        +            'COMPARABLE_STRUCT',
        +            'COMPARABLE_SET',
        +            'COMPARABLE',
        +            'COMPACT_TREE_CURSOR',
        +            'COMPACT_CURSOR_TREE',
        +            'COLLECTION',
        +            'CIRCULAR_CURSOR',
        +            'CIRCULAR',
        +            'CHARACTER_REF',
        +            'CHARACTER',
        +            'CHAIN',
        +            'CELL',
        +            'BOX',
        +            'BOUNDED_STACK',
        +            'BOUNDED_QUEUE',
        +            'BOUNDED',
        +            'BOOLEAN_REF',
        +            'BOOLEAN',
        +            'BOOL_STRING',
        +            'BIT_REF',
        +            'BINARY_TREE',
        +            'BINARY_SEARCH_TREE_SET',
        +            'BINARY_SEARCH_TREE',
        +            'BILINEAR',
        +            'BI_LINKABLE',
        +            'BASIC_ROUTINES',
        +            'BAG',
        +            'ASCII',
        +            'ARRAYED_TREE',
        +            'ARRAYED_STACK',
        +            'ARRAYED_QUEUE',
        +            'ARRAYED_LIST_CURSOR',
        +            'ARRAYED_LIST',
        +            'ARRAYED_CIRCULAR',
        +            'ARRAY2',
        +            'ARRAY',
        +            'ARGUMENTS',
        +            'ANY',
        +            'ACTIVE'
        +            ),
        +        5 => array(
        +            'yes',
        +            'visible',
        +            'trace',
        +            'system',
        +            'root',
        +            'profile',
        +            'override_cluster',
        +            'object',
        +            'no',
        +            'multithreaded',
        +            'msil_generation_type',
        +            'line_generation',
        +            'library',
        +            'inlining_size',
        +            'inlining',
        +            'include_path',
        +            'il_verifiable',
        +            'exclude',
        +            'exception_trace',
        +            'dynamic_runtime',
        +            'dotnet_naming_convention',
        +            'disabled_debug',
        +            'default',
        +            'debug',
        +            'dead_code_removal',
        +            'console_application',
        +            'cluster',
        +            'cls_compliant',
        +            'check_vape',
        +            'assertion',
        +            'array_optimization',
        +            'all',
        +            'address_expression'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', '|', ':',
        +        '(', ')', '{', '}', '[', ']', '#'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => true,
        +        5 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0600FF; font-weight: bold;',
        +            2 => 'color: #0600FF; font-weight: bold;',
        +            3 => 'color: #800080;',
        +            4 => 'color: #800000',
        +            5 => 'color: #603000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008000; font-style: italic;',
        +            'MULTI' => ''
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #005070; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #FF0000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0080A0;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #FF0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #000060;',
        +            2 => 'color: #000050;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #600000;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => 'http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+{FNAMEL}&btnI=I%27m+Feeling+Lucky',
        +        5 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/email.php b/Sources/geshi/email.php
        new file mode 100644
        index 0000000..8a313d4
        --- /dev/null
        +++ b/Sources/geshi/email.php
        @@ -0,0 +1,222 @@
        + 'eMail (mbox)',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'HTTP', 'SMTP', 'ASMTP', 'ESMTP'
        +            ),
        +        2 => array(
        +            'Authentication-Results','Comment','Content-Description','Content-Type',
        +            'Content-Disposition','Content-Transfer-Encoding','Delivered-To',
        +            'Dkim-Signature','Domainkey-Signature','In-Reply-To','Message-Id',
        +            'MIME-Version','OpenPGP','Received','Received-SPF','References',
        +            'Reply-To', 'Resend-From','Resend-To','Return-Path','User-Agent'
        +            ),
        +        3 => array(
        +            'Date','From','Sender','Subject','To','CC'
        +            ),
        +        4 => array(
        +            'by', 'for', 'from', 'id', 'with'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        ':', ';', '<', '>', '[', ']'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => false,
        +        3 => false,
        +        4 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000FF; font-weight: bold;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #800000; font-weight: bold;',
        +            4 => 'font-weight: bold;',
        +            ),
        +        'COMMENTS' => array(
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => 'color: #000040;',
        +            ),
        +        'REGEXPS' => array(
        +            1 => 'color: #000000; font-weight: bold;',
        +            2 => 'color: #0000FF;',
        +            3 => 'color: #008000;',
        +            4 => 'color: #0000FF; font-weight: bold;',
        +            5 => 'font-weight: bold;',
        +            6 => 'color: #400080;'
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        // Non-Standard-Header
        +        1 => array(
        +            GESHI_SEARCH => "(?<=\A\x20|\n)x-[a-z0-9\-]*(?=\s*:|\s*<)",
        +            GESHI_REPLACE => "\\0",
        +            GESHI_MODIFIERS => "smi",
        +            GESHI_BEFORE => "",
        +            GESHI_AFTER => ""
        +            ),
        +        //Email-Adresses or Mail-IDs
        +        2 => array(
        +            GESHI_SEARCH => "\b(?\"?)[\w\.\-]+\k@(?!-)[\w\-]+(? "\\0",
        +            GESHI_MODIFIERS => "mi",
        +            GESHI_BEFORE => "",
        +            GESHI_AFTER => ""
        +            ),
        +        //Date values in RFC format
        +        3 => array(
        +            GESHI_SEARCH => "\b(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s+\d\d?\s+" .
        +                "(?:Jan|Feb|Mar|apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+" .
        +                "\d{4}\s+\d\d?:\d\d:\d\d\s+[+\-]\d{4}(?:\s+\(\w+\))?",
        +            GESHI_REPLACE => "\\0",
        +            GESHI_MODIFIERS => "mi",
        +            GESHI_BEFORE => "",
        +            GESHI_AFTER => ""
        +            ),
        +        //IP addresses
        +        4 => array(
        +            GESHI_SEARCH => "(?<=\s)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=\s)|".
        +                "(?<=\[)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=\])|".
        +                "(?<==)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?=<)|".
        +
        +                "(?<=\s)(?:[a-f\d]{1,4}\:)+(?:[a-f\d]{0,4})?(?:\:[a-f\d]{1,4})+(?=\s)|".
        +                "(?<=\[)(?:[a-f\d]{1,4}\:)+(?:[a-f\d]{0,4})?(?:\:[a-f\d]{1,4})+(?=\])|".
        +                "(?<==)(?:[a-f\d]{1,4}\:)+(?:[a-f\d]{0,4})?(?:\:[a-f\d]{1,4})+(?=<)|".
        +
        +                "(?<=\s)\:(?:\:[a-f\d]{1,4})+(?=\s)|".
        +                "(?<=\[)\:(?:\:[a-f\d]{1,4})+(?=\])|".
        +                "(?<==)\:(?:\:[a-f\d]{1,4})+(?=<)|".
        +
        +                "(?<=\s)(?:[a-f\d]{1,4}\:)+\:(?=\s)|".
        +                "(?<=\[)(?:[a-f\d]{1,4}\:)+\:(?=\])|".
        +                "(?<==)(?:[a-f\d]{1,4}\:)+\:(?=<)",
        +            GESHI_REPLACE => "\\0",
        +            GESHI_MODIFIERS => "i",
        +            GESHI_BEFORE => "",
        +            GESHI_AFTER => ""
        +            ),
        +        //Field-Assignments
        +        5 => array(
        +            GESHI_SEARCH => "(?<=\s)[A-Z0-9\-\.]+(?==(?:$|\s$|[^\s=]))",
        +            GESHI_REPLACE => "\\0",
        +            GESHI_MODIFIERS => "mi",
        +            GESHI_BEFORE => "",
        +            GESHI_AFTER => ""
        +            ),
        +        //MIME type
        +        6 => array(
        +            GESHI_SEARCH => "(?<=\s)(?:audio|application|image|multipart|text|".
        +                "video|x-[a-z0-9\-]+)\/[a-z0-9][a-z0-9\-]*(?=\s|<|$)",
        +            GESHI_REPLACE => "\\0",
        +            GESHI_MODIFIERS => "m",
        +            GESHI_BEFORE => "",
        +            GESHI_AFTER => ""
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
        +    'SCRIPT_DELIMITERS' => array(
        +        0 => "/(?P^)[A-Za-z][a-zA-Z0-9\-]*\s*:\s*(?:.|(?=\n\s)\n)*(?P$)/m"
        +    ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true,
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            2 => array(
        +                'DISALLOWED_BEFORE' => '(?<=\A\x20|\n)',
        +                'DISALLOWED_AFTER' => '(?=\s*:)',
        +            ),
        +            3 => array(
        +                'DISALLOWED_BEFORE' => '(?<=\A\x20|\n)',
        +                'DISALLOWED_AFTER' => '(?=\s*:)',
        +            ),
        +            4 => array(
        +                'DISALLOWED_BEFORE' => '(?<=\s)',
        +                'DISALLOWED_AFTER' => '(?=\s|\b)',
        +            )
        +        ),
        +        'ENABLE_FLAGS' => array(
        +            'BRACKETS' => GESHI_NEVER,
        +            'COMMENTS' => GESHI_NEVER,
        +            'NUMBERS' => GESHI_NEVER
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/epc.php b/Sources/geshi/epc.php
        new file mode 100644
        index 0000000..c575c0c
        --- /dev/null
        +++ b/Sources/geshi/epc.php
        @@ -0,0 +1,154 @@
        + 'EPC',
        +    'COMMENT_SINGLE' => array('//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //[Sections]
        +        //1 => "/^\\[.*\\]/"
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(
        +        0 => '"',
        +        1 => '$'
        +        ),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'if', 'then', 'else', 'endif',
        +            'and', 'or', 'xor', 'hysteresis'
        +            ),
        +        2 => array(
        +            'read', 'write', 'event',
        +            'gettime', 'settime', 'getdate', 'setdate', 'gettimedate', 'settimedate',
        +            'hour', 'minute', 'second', 'changehour', 'changeminute', 'changesecond',
        +            'date', 'month', 'day', 'dayofweek', 'sun', 'azimuth', 'elevation',
        +            'sunrisehour', 'sunriseminute', 'sunsethour', 'sunsetminute',
        +            'wtime', 'htime', 'mtime', 'stime',
        +            'cwtime', 'chtime', 'cmtime', 'cstime',
        +            'delay', 'after', 'cycle',
        +            'readflash', 'writeflash',
        +            'abs', 'acos', 'asin', 'atan', 'cos', 'ceil', 'average', 'exp', 'floor',
        +            'log', 'max', 'min', 'mod', 'pow', 'sqrt', 'sin', 'tan', 'change', 'convert',
        +            'eval', 'systemstart', 'random', 'comobject', 'sleep', 'scene', 'storescene', 'callscene',
        +            'find', 'stringcast', 'stringset', 'stringformat', 'split', 'size',
        +            'readrs232'. 'sendrs232', 'address', 'readknx',
        +            'readudp', 'sendudp', 'connecttcp', 'closetcp', 'readtcp', 'sendtcp',
        +            'resolve', 'sendmail',
        +            'button', 'webbutton', 'chart', 'webchart', 'webdisplay', 'getslider', 'pshifter', 'mpshifter',
        +            'getpslider', 'mbutton', 'mbbutton', 'mchart', 'mpchart', 'mpbutton', 'pdisplay', 'pchart',
        +            'pbutton', 'setslider', 'setpslider', 'slider', 'pslider', 'page', 'line', 'header',
        +            'footer', 'none', 'plink', 'link', 'frame', 'dframe'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array(
        +            '%', 'b01',
        +            ),
        +        1 => array(
        +            '+', '-', '==', '>=', '=<',
        +            ),
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #e63ec3;',
        +            2 => 'color: #e63ec3;'
        +            ),
        +        'COMMENTS' => array(
        +            0 => 'color: #0000ff;'
        +            //1 => 'color: #ffa500;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            1 => 'color: #000099;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #8a0808;',
        +            1 => 'color: #6e6e6e;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #0b610b;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #0b610b;',
        +            1 => 'color: #e63ec3;'
        +            ),
        +        'REGEXPS' => array(
        +            1 => 'color: #0b610b;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        // Numbers, e.g. 255u08
        +        1 => "[0-9]*[subf][0136][12468]"
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'COMMENTS' => array(
        +            'DISALLOWED_BEFORE' => '$'
        +        ),
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => "(?  "(?![\.\-a-zA-Z0-9_%=\\/])"
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/erlang.php b/Sources/geshi/erlang.php
        new file mode 100644
        index 0000000..4b8d406
        --- /dev/null
        +++ b/Sources/geshi/erlang.php
        @@ -0,0 +1,441 @@
        +'
        + *
        + *************************************************************************************
        + *
        + *     This file is part of GeSHi.
        + *
        + *   GeSHi is free software; you can redistribute it and/or modify
        + *   it under the terms of the GNU General Public License as published by
        + *   the Free Software Foundation; either version 2 of the License, or
        + *   (at your option) any later version.
        + *
        + *   GeSHi is distributed in the hope that it will be useful,
        + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        + *   GNU General Public License for more details.
        + *
        + *   You should have received a copy of the GNU General Public License
        + *   along with GeSHi; if not, write to the Free Software
        + *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + ************************************************************************************/
        +
        +$language_data = array(
        +    'LANG_NAME' => 'Erlang',
        +    'COMMENT_SINGLE' => array(1 => '%'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'HARDQUOTE' => array("'", "'"),
        +    'HARDESCAPE' => array("'", "\\"),
        +    'HARDCHAR' => "\\",
        +    'ESCAPE_CHAR' => '\\',
        +    'NUMBERS' => GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        //Control flow keywrods
        +        1 => array(
        +            'after', 'andalso', 'begin', 'case', 'catch', 'end', 'fun', 'if',
        +            'of', 'orelse', 'receive', 'try', 'when', 'query'
        +            ),
        +        //Binary operators
        +        2 => array(
        +            'and', 'band', 'bnot', 'bor', 'bsl', 'bsr', 'bxor', 'div', 'not',
        +            'or', 'rem', 'xor'
        +            ),
        +        3 => array(
        +            'abs', 'alive', 'apply', 'atom_to_list', 'binary_to_list',
        +            'binary_to_term', 'concat_binary', 'date', 'disconnect_node',
        +            'element', 'erase', 'exit', 'float', 'float_to_list', 'get',
        +            'get_keys', 'group_leader', 'halt', 'hd', 'integer_to_list',
        +            'is_alive', 'length', 'link', 'list_to_atom', 'list_to_binary',
        +            'list_to_float', 'list_to_integer', 'list_to_pid', 'list_to_tuple',
        +            'load_module', 'make_ref', 'monitor_node', 'node', 'nodes', 'now',
        +            'open_port', 'pid_to_list', 'process_flag', 'process_info',
        +            'process', 'put', 'register', 'registered', 'round', 'self',
        +            'setelement', 'size', 'spawn', 'spawn_link', 'split_binary',
        +            'statistics', 'term_to_binary', 'throw', 'time', 'tl', 'trunc',
        +            'tuple_to_list', 'unlink', 'unregister', 'whereis'
        +            ),
        +        // Built-In Functions
        +        4 => array(
        +            'atom', 'binary', 'constant', 'function', 'integer', 'is_atom',
        +            'is_binary', 'is_constant', 'is_function', 'is_integer', 'is_list',
        +            'is_number', 'is_pid', 'is_reference', 'is_record', 'list',
        +            'number', 'pid', 'ports', 'port_close', 'port_info', 'reference'
        +            ),
        +        // Erlang/OTP internal modules (scary one)
        +        5 => array(
        +            'alarm_handler', 'any', 'app', 'application', 'appmon', 'appup',
        +            'array', 'asn1ct', 'asn1rt', 'auth', 'base64', 'beam_lib', 'c',
        +            'calendar', 'code', 'common_test_app', 'compile', 'config',
        +            'corba', 'corba_object', 'cosEventApp', 'CosEventChannelAdmin',
        +            'CosEventChannelAdmin_ConsumerAdmin',
        +            'CosEventChannelAdmin_EventChannel',
        +            'CosEventChannelAdmin_ProxyPullConsumer',
        +            'CosEventChannelAdmin_ProxyPullSupplier',
        +            'CosEventChannelAdmin_ProxyPushConsumer',
        +            'CosEventChannelAdmin_ProxyPushSupplier',
        +            'CosEventChannelAdmin_SupplierAdmin', 'CosEventDomainAdmin',
        +            'CosEventDomainAdmin_EventDomain',
        +            'CosEventDomainAdmin_EventDomainFactory',
        +            'cosEventDomainApp', 'CosFileTransfer_Directory',
        +            'CosFileTransfer_File', 'CosFileTransfer_FileIterator',
        +            'CosFileTransfer_FileTransferSession',
        +            'CosFileTransfer_VirtualFileSystem',
        +            'cosFileTransferApp', 'CosNaming', 'CosNaming_BindingIterator',
        +            'CosNaming_NamingContext', 'CosNaming_NamingContextExt',
        +            'CosNotification', 'CosNotification_AdminPropertiesAdmin',
        +            'CosNotification_QoSAdmin', 'cosNotificationApp',
        +            'CosNotifyChannelAdmin_ConsumerAdmin',
        +            'CosNotifyChannelAdmin_EventChannel',
        +            'CosNotifyChannelAdmin_EventChannelFactory',
        +            'CosNotifyChannelAdmin_ProxyConsumer',
        +            'CosNotifyChannelAdmin_ProxyPullConsumer',
        +            'CosNotifyChannelAdmin_ProxyPullSupplier',
        +            'CosNotifyChannelAdmin_ProxyPushConsumer',
        +            'CosNotifyChannelAdmin_ProxyPushSupplier',
        +            'CosNotifyChannelAdmin_ProxySupplier',
        +            'CosNotifyChannelAdmin_SequenceProxyPullConsumer',
        +            'CosNotifyChannelAdmin_SequenceProxyPullSupplier',
        +            'CosNotifyChannelAdmin_SequenceProxyPushConsumer',
        +            'CosNotifyChannelAdmin_SequenceProxyPushSupplier',
        +            'CosNotifyChannelAdmin_StructuredProxyPullConsumer',
        +            'CosNotifyChannelAdmin_StructuredProxyPullSupplier',
        +            'CosNotifyChannelAdmin_StructuredProxyPushConsumer',
        +            'CosNotifyChannelAdmin_StructuredProxyPushSupplier',
        +            'CosNotifyChannelAdmin_SupplierAdmin',
        +            'CosNotifyComm_NotifyPublish', 'CosNotifyComm_NotifySubscribe',
        +            'CosNotifyFilter_Filter', 'CosNotifyFilter_FilterAdmin',
        +            'CosNotifyFilter_FilterFactory', 'CosNotifyFilter_MappingFilter',
        +            'cosProperty', 'CosPropertyService_PropertiesIterator',
        +            'CosPropertyService_PropertyNamesIterator',
        +            'CosPropertyService_PropertySet',
        +            'CosPropertyService_PropertySetDef',
        +            'CosPropertyService_PropertySetDefFactory',
        +            'CosPropertyService_PropertySetFactory', 'cosTime',
        +            'CosTime_TimeService', 'CosTime_TIO', 'CosTime_UTO',
        +            'CosTimerEvent_TimerEventHandler',
        +            'CosTimerEvent_TimerEventService', 'cosTransactions',
        +            'CosTransactions_Control', 'CosTransactions_Coordinator',
        +            'CosTransactions_RecoveryCoordinator', 'CosTransactions_Resource',
        +            'CosTransactions_SubtransactionAwareResource',
        +            'CosTransactions_Terminator', 'CosTransactions_TransactionFactory',
        +            'cover', 'cprof', 'cpu_sup', 'crashdump', 'crypto', 'crypto_app',
        +            'ct', 'ct_cover', 'ct_ftp', 'ct_master', 'ct_rpc', 'ct_snmp',
        +            'ct_ssh', 'ct_telnet', 'dbg', 'debugger', 'dets', 'dialyzer',
        +            'dict', 'digraph', 'digraph_utils', 'disk_log', 'disksup',
        +            'docb_gen', 'docb_transform', 'docb_xml_check', 'docbuilder_app',
        +            'driver_entry', 'edoc', 'edoc_doclet', 'edoc_extract',
        +            'edoc_layout', 'edoc_lib', 'edoc_run', 'egd', 'ei', 'ei_connect',
        +            'epmd', 'epp', 'epp_dodger', 'eprof', 'erl', 'erl_boot_server',
        +            'erl_call', 'erl_comment_scan', 'erl_connect', 'erl_ddll',
        +            'erl_driver', 'erl_error', 'erl_eterm', 'erl_eval',
        +            'erl_expand_records', 'erl_format', 'erl_global', 'erl_id_trans',
        +            'erl_internal', 'erl_lint', 'erl_malloc', 'erl_marshal',
        +            'erl_parse', 'erl_pp', 'erl_prettypr', 'erl_prim_loader',
        +            'erl_prim_loader_stub', 'erl_recomment', 'erl_scan',
        +            'erl_set_memory_block', 'erl_syntax', 'erl_syntax_lib', 'erl_tar',
        +            'erl_tidy', 'erlang', 'erlang_mode', 'erlang_stub', 'erlc',
        +            'erlsrv', 'error_handler', 'error_logger', 'erts_alloc',
        +            'erts_alloc_config', 'escript', 'et', 'et_collector',
        +            'et_selector', 'et_viewer', 'etop', 'ets', 'eunit', 'file',
        +            'file_sorter', 'filelib', 'filename', 'fixed', 'fprof', 'ftp',
        +            'gb_sets', 'gb_trees', 'gen_event', 'gen_fsm', 'gen_sctp',
        +            'gen_server', 'gen_tcp', 'gen_udp', 'gl', 'global', 'global_group',
        +            'glu', 'gs', 'heart', 'http', 'httpd', 'httpd_conf',
        +            'httpd_socket', 'httpd_util', 'i', 'ic', 'ic_c_protocol',
        +            'ic_clib', 'igor', 'inet', 'inets', 'init', 'init_stub',
        +            'instrument', 'int', 'interceptors', 'inviso', 'inviso_as_lib',
        +            'inviso_lfm', 'inviso_lfm_tpfreader', 'inviso_rt',
        +            'inviso_rt_meta', 'io', 'io_lib', 'kernel_app', 'lib', 'lists',
        +            'lname', 'lname_component', 'log_mf_h', 'make', 'math', 'megaco',
        +            'megaco_codec_meas', 'megaco_codec_transform',
        +            'megaco_edist_compress', 'megaco_encoder', 'megaco_flex_scanner',
        +            'megaco_tcp', 'megaco_transport', 'megaco_udp', 'megaco_user',
        +            'memsup', 'mnesia', 'mnesia_frag_hash', 'mnesia_registry',
        +            'mod_alias', 'mod_auth', 'mod_esi', 'mod_security',
        +            'Module_Interface', 'ms_transform', 'net_adm', 'net_kernel',
        +            'new_ssl', 'nteventlog', 'observer_app', 'odbc', 'orber',
        +            'orber_acl', 'orber_diagnostics', 'orber_ifr', 'orber_tc',
        +            'orddict', 'ordsets', 'os', 'os_mon', 'os_mon_mib', 'os_sup',
        +            'otp_mib', 'overload', 'packages', 'percept', 'percept_profile',
        +            'pg', 'pg2', 'pman', 'pool', 'prettypr', 'proc_lib', 'proplists',
        +            'public_key', 'qlc', 'queue', 'random', 'rb', 're', 'regexp',
        +            'registry', 'rel', 'release_handler', 'reltool', 'relup', 'rpc',
        +            'run_erl', 'run_test', 'runtime_tools_app', 'sasl_app', 'script',
        +            'seq_trace', 'sets', 'shell', 'shell_default', 'slave', 'snmp',
        +            'snmp_app', 'snmp_community_mib', 'snmp_framework_mib',
        +            'snmp_generic', 'snmp_index', 'snmp_notification_mib', 'snmp_pdus',
        +            'snmp_standard_mib', 'snmp_target_mib', 'snmp_user_based_sm_mib',
        +            'snmp_view_based_acm_mib', 'snmpa', 'snmpa_conf', 'snmpa_error',
        +            'snmpa_error_io', 'snmpa_error_logger', 'snmpa_error_report',
        +            'snmpa_local_db', 'snmpa_mpd', 'snmpa_network_interface',
        +            'snmpa_network_interface_filter',
        +            'snmpa_notification_delivery_info_receiver',
        +            'snmpa_notification_filter', 'snmpa_supervisor', 'snmpc', 'snmpm',
        +            'snmpm_conf', 'snmpm_mpd', 'snmpm_network_interface', 'snmpm_user',
        +            'sofs', 'ssh', 'ssh_channel', 'ssh_connection', 'ssh_sftp',
        +            'ssh_sftpd', 'ssl', 'ssl_app', 'ssl_pkix', 'start', 'start_erl',
        +            'start_webtool', 'stdlib_app', 'string', 'supervisor',
        +            'supervisor_bridge', 'sys', 'systools', 'tags', 'test_server',
        +            'test_server_app', 'test_server_ctrl', 'tftp', 'timer', 'toolbar',
        +            'ttb', 'tv', 'unicode', 'unix_telnet', 'user', 'webtool', 'werl',
        +            'win32reg', 'wrap_log_reader', 'wx', 'wx_misc', 'wx_object',
        +            'wxAcceleratorEntry', 'wxAcceleratorTable', 'wxArtProvider',
        +            'wxAuiDockArt', 'wxAuiManager', 'wxAuiNotebook', 'wxAuiPaneInfo',
        +            'wxAuiTabArt', 'wxBitmap', 'wxBitmapButton', 'wxBitmapDataObject',
        +            'wxBoxSizer', 'wxBrush', 'wxBufferedDC', 'wxBufferedPaintDC',
        +            'wxButton', 'wxCalendarCtrl', 'wxCalendarDateAttr',
        +            'wxCalendarEvent', 'wxCaret', 'wxCheckBox', 'wxCheckListBox',
        +            'wxChildFocusEvent', 'wxChoice', 'wxClientDC', 'wxClipboard',
        +            'wxCloseEvent', 'wxColourData', 'wxColourDialog',
        +            'wxColourPickerCtrl', 'wxColourPickerEvent', 'wxComboBox',
        +            'wxCommandEvent', 'wxContextMenuEvent', 'wxControl',
        +            'wxControlWithItems', 'wxCursor', 'wxDataObject', 'wxDateEvent',
        +            'wxDatePickerCtrl', 'wxDC', 'wxDialog', 'wxDirDialog',
        +            'wxDirPickerCtrl', 'wxDisplayChangedEvent', 'wxEraseEvent',
        +            'wxEvent', 'wxEvtHandler', 'wxFileDataObject', 'wxFileDialog',
        +            'wxFileDirPickerEvent', 'wxFilePickerCtrl', 'wxFindReplaceData',
        +            'wxFindReplaceDialog', 'wxFlexGridSizer', 'wxFocusEvent', 'wxFont',
        +            'wxFontData', 'wxFontDialog', 'wxFontPickerCtrl',
        +            'wxFontPickerEvent', 'wxFrame', 'wxGauge', 'wxGBSizerItem',
        +            'wxGenericDirCtrl', 'wxGLCanvas', 'wxGraphicsBrush',
        +            'wxGraphicsContext', 'wxGraphicsFont', 'wxGraphicsMatrix',
        +            'wxGraphicsObject', 'wxGraphicsPath', 'wxGraphicsPen',
        +            'wxGraphicsRenderer', 'wxGrid', 'wxGridBagSizer', 'wxGridCellAttr',
        +            'wxGridCellEditor', 'wxGridCellRenderer', 'wxGridEvent',
        +            'wxGridSizer', 'wxHelpEvent', 'wxHtmlEasyPrinting', 'wxIcon',
        +            'wxIconBundle', 'wxIconizeEvent', 'wxIdleEvent', 'wxImage',
        +            'wxImageList', 'wxJoystickEvent', 'wxKeyEvent',
        +            'wxLayoutAlgorithm', 'wxListBox', 'wxListCtrl', 'wxListEvent',
        +            'wxListItem', 'wxListView', 'wxMask', 'wxMaximizeEvent',
        +            'wxMDIChildFrame', 'wxMDIClientWindow', 'wxMDIParentFrame',
        +            'wxMemoryDC', 'wxMenu', 'wxMenuBar', 'wxMenuEvent', 'wxMenuItem',
        +            'wxMessageDialog', 'wxMiniFrame', 'wxMirrorDC',
        +            'wxMouseCaptureChangedEvent', 'wxMouseEvent', 'wxMoveEvent',
        +            'wxMultiChoiceDialog', 'wxNavigationKeyEvent', 'wxNcPaintEvent',
        +            'wxNotebook', 'wxNotebookEvent', 'wxNotifyEvent',
        +            'wxPageSetupDialog', 'wxPageSetupDialogData', 'wxPaintDC',
        +            'wxPaintEvent', 'wxPalette', 'wxPaletteChangedEvent', 'wxPanel',
        +            'wxPasswordEntryDialog', 'wxPen', 'wxPickerBase', 'wxPostScriptDC',
        +            'wxPreviewCanvas', 'wxPreviewControlBar', 'wxPreviewFrame',
        +            'wxPrintData', 'wxPrintDialog', 'wxPrintDialogData', 'wxPrinter',
        +            'wxPrintout', 'wxPrintPreview', 'wxProgressDialog',
        +            'wxQueryNewPaletteEvent', 'wxRadioBox', 'wxRadioButton',
        +            'wxRegion', 'wxSashEvent', 'wxSashLayoutWindow', 'wxSashWindow',
        +            'wxScreenDC', 'wxScrollBar', 'wxScrolledWindow', 'wxScrollEvent',
        +            'wxScrollWinEvent', 'wxSetCursorEvent', 'wxShowEvent',
        +            'wxSingleChoiceDialog', 'wxSizeEvent', 'wxSizer', 'wxSizerFlags',
        +            'wxSizerItem', 'wxSlider', 'wxSpinButton', 'wxSpinCtrl',
        +            'wxSpinEvent', 'wxSplashScreen', 'wxSplitterEvent',
        +            'wxSplitterWindow', 'wxStaticBitmap', 'wxStaticBox',
        +            'wxStaticBoxSizer', 'wxStaticLine', 'wxStaticText', 'wxStatusBar',
        +            'wxStdDialogButtonSizer', 'wxStyledTextCtrl', 'wxStyledTextEvent',
        +            'wxSysColourChangedEvent', 'wxTextAttr', 'wxTextCtrl',
        +            'wxTextDataObject', 'wxTextEntryDialog', 'wxToggleButton',
        +            'wxToolBar', 'wxToolTip', 'wxTopLevelWindow', 'wxTreeCtrl',
        +            'wxTreeEvent', 'wxUpdateUIEvent', 'wxWindow', 'wxWindowCreateEvent',
        +            'wxWindowDC', 'wxWindowDestroyEvent', 'wxXmlResource', 'xmerl',
        +            'xmerl_eventp', 'xmerl_scan', 'xmerl_xpath', 'xmerl_xs',
        +            'xmerl_xsd', 'xref', 'yecc', 'zip', 'zlib', 'zlib_stub'
        +            ),
        +        // Binary modifiers
        +        6 => array(
        +            'big', 'binary', 'float', 'integer', 'little', 'signed', 'unit', 'unsigned'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array('(', ')', '[', ']', '{', '}'),
        +        1 => array('->', ',', ';', '.'),
        +        2 => array('<<', '>>'),
        +        3 => array('=', '||', '-', '+', '*', '/', '++', '--', '!', '<', '>', '>=',
        +                    '=<', '==', '/=', '=:=', '=/=')
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #186895;',
        +            2 => 'color: #014ea4;',
        +            3 => 'color: #fa6fff;',
        +            4 => 'color: #fa6fff;',
        +            5 => 'color: #ff4e18;',
        +            6 => 'color: #9d4f37;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            'HARD' => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #109ab8;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff7800;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #ff9600;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;',
        +            2 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #004866;',
        +            1 => 'color: #6bb810;',
        +            2 => 'color: #ee3800;',
        +            3 => 'color: #014ea4;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #6941fd;',
        +            1 => 'color: #d400ed;',
        +            2 => 'color: #5400b3;',
        +            3 => 'color: #ff3c00;',
        +            4 => 'color: #6941fd;',
        +            5 => 'color: #45b3e6;',
        +            6 => 'color: #ff9600;',
        +            7 => 'color: #d400ed;',
        +            8 => 'color: #ff9600;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => 'http://erlang.org/doc/man/{FNAME}.html',
        +        6 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '->',
        +        2 => ':'
        +        ),
        +    'REGEXPS' => array(
        +        //�Macro definitions
        +        0 => array(
        +            GESHI_SEARCH => '(-define\s*\()([a-zA-Z0-9_]+)(\(|,)',
        +            GESHI_REPLACE => '\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\1',
        +            GESHI_AFTER => '\3'
        +            ),
        +        // Record definitions
        +        1 => array(
        +            GESHI_SEARCH => '(-record\s*\()([a-zA-Z0-9_]+)(,)',
        +            GESHI_REPLACE => '\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\1',
        +            GESHI_AFTER => '\3'
        +            ),
        +        // Precompiler directives
        +        2 => array(
        +            GESHI_SEARCH => '(-)([a-z][a-zA-Z0-9_]*)(\()',
        +            GESHI_REPLACE => '\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\1',
        +            GESHI_AFTER => '\3'
        +            ),
        +        // Functions
        +        3 => array(
        +            GESHI_SEARCH => '([a-z]\w*|\'\w*\')(\s*\()',
        +            GESHI_REPLACE => '\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '\2'
        +            ),
        +        // Macros
        +        4 => array(
        +            GESHI_SEARCH => '(\?)([a-zA-Z0-9_]+)',
        +            GESHI_REPLACE => '\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\1',
        +            GESHI_AFTER => ''
        +            ),
        +        // Variables - With hack to avoid interfering wish GeSHi internals
        +        5 => array(
        +            GESHI_SEARCH => '([([{,<+*-\/=\s!]|<)(?!(?:PIPE|SEMI|DOT|NUM|REG3XP\d*)\W)([A-Z_]\w*)(?!\w)',
        +            GESHI_REPLACE => '\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\1',
        +            GESHI_AFTER => ''
        +            ),
        +        // ASCII�codes
        +        6 => '(\$[a-zA-Z0-9_])',
        +        // Records
        +        7 => array(
        +            GESHI_SEARCH => '(#)([a-z][a-zA-Z0-9_]*)(\.|\{)',
        +            GESHI_REPLACE => '\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\1',
        +            GESHI_AFTER => '\3'
        +            ),
        +        // Numbers with a different radix
        +        8 => '(?<=>)(#[a-zA-Z0-9]*)'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            3 => array(
        +                'DISALLOWED_BEFORE' => '(? ''//'(?=\s*\()'
        +            ),
        +            5 => array(
        +                'DISALLOWED_BEFORE' => '(?<=\'|)',
        +                'DISALLOWED_AFTER' => '(?=(\'|):)'
        +            ),
        +            6 => array(
        +                'DISALLOWED_BEFORE' => '(?<=\/|-)',
        +                'DISALLOWED_AFTER' => ''
        +            )
        +        )
        +    ),
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/euphoria.php b/Sources/geshi/euphoria.php
        new file mode 100644
        index 0000000..7bbf884
        --- /dev/null
        +++ b/Sources/geshi/euphoria.php
        @@ -0,0 +1,140 @@
        + (1.0.8.9)
        + *  -  First Release
        + *
        + * TODO (updated )
        + * -------------------------
        + * seperate the funtions from the procedures, and have a slight color change for each.
        + *
        + *************************************************************************************
        + *
        + *     This file is part of GeSHi.
        + *
        + *   GeSHi is free software; you can redistribute it and/or modify
        + *   it under the terms of the GNU General Public License as published by
        + *   the Free Software Foundation; either version 2 of the License, or
        + *   (at your option) any later version.
        + *
        + *   GeSHi is distributed in the hope that it will be useful,
        + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        + *   GNU General Public License for more details.
        + *
        + *   You should have received a copy of the GNU General Public License
        + *   along with GeSHi; if not, write to the Free Software
        + *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + ************************************************************************************/
        +
        +$language_data = array (
        +    'LANG_NAME' => 'Euphoria',
        +    'COMMENT_SINGLE' => array(1 => '--'),
        +    'COMMENT_MULTI' => array(), //Euphoria doesn't support multi-line comments
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array( // keywords
        +            'and', 'by', 'constant', 'do', 'else', 'elsif', 'end', 'exit',
        +            'for', 'function', 'global', 'if', 'include', 'not', 'or',
        +            'procedure', 'return', 'then', 'to', 'type', 'while', 'with',
        +            'without', 'xor'
        +            ),
        +        2 => array( // built-ins
        +            'abort', 'and_bits', 'append', 'arctan', 'atom', 'c_func', 'call',
        +            'c_proc', 'call_func', 'call_proc', 'clear_screen', 'close', 'compare',
        +            'command_line', 'cos', 'date', 'equal', 'find', 'find_from', 'floor',
        +            'getc', 'getenv', 'gets', 'get_key', 'get_pixel', 'integer', 'length',
        +            'log', 'machine_func', 'machine_proc', 'match', 'match_from',
        +            'mem_copy', 'mem_set', 'not_bits', 'object', 'open', 'or_bits', 'peek',
        +            'peek4s', 'peek4u', 'pixel', 'platform', 'poke', 'poke4', 'position',
        +            'power', 'prepend', 'print', 'printf', 'profile', 'puts', 'rand',
        +            'remainder', 'repeat', 'routine_id', 'sequence', 'sin', 'sprintf',
        +            'sqrt', 'system', 'system_exec', 'tan', 'task_clock_stop',
        +            'task_clock_start', 'task_create', 'task_list', 'task_schedule',
        +            'task_self', 'task_status', 'task_suspend', 'task_yield', 'time',
        +            'trace', 'xor_bits'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array(
        +            '(', ')', '{', '}', '[', ']'
        +            ),
        +        1 => array(
        +            '+', '-', '*', '/', '=', '&', '^'
        +            ),
        +        2 => array(
        +            '&', '?', ','
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000ff; font-weight: bold;', // keywords
        +            2 => 'color: #cc33ff; font-weight: bold;', // builtins
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #ff0000; font-style: italic;',
        +            'MULTI' => '' // doesn't exist
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #009900; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #999900; font-weight: bold;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #00cc00;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc33cc; font-style: italic'
        +            ),
        +        'METHODS' => array( // Doesn't exist in Euphoria.  Everything is a function =)
        +            0 => ''
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #999900;', // brackets
        +            1 => 'color: #333333;', // operators
        +            2 => 'color: #333333; font-style: bold' // print+concat
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array( // Never included in scripts.
        +            )
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/f1.php b/Sources/geshi/f1.php
        new file mode 100644
        index 0000000..7d76760
        --- /dev/null
        +++ b/Sources/geshi/f1.php
        @@ -0,0 +1,151 @@
        + 'Formula One',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('{' => '}'),
        +    'COMMENT_REGEXP' => array(
        +        //Nested Comments
        +        2 =>  "/(\{(?:\{.*\}|[^\{])*\})/m"
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'",'"'),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        //Simple Single Char Escapes
        +        1 => "#\\\\[\\\\nrt\'\"?\n]#i",
        +        //Hexadecimal Char Specs (Utf16 codes, Unicode versions only)
        +        2 => "#\\\\u[\da-fA-F]{4}#",
        +        ),
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE |
        +        GESHI_NUMBER_BIN_PREFIX_0B |
        +        GESHI_NUMBER_OCT_PREFIX_0O |
        +        GESHI_NUMBER_HEX_PREFIX |
        +        GESHI_NUMBER_FLT_NONSCI |
        +        GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'pred','proc','subr','else','elsif','iff','if','then','false','true',
        +            'case','of','use','local','mod','end','list','file','all','one','max','min','rel',
        +            'external','Nil','_stdcall','_cdecl','_addressof','_pred','_file','_line'
        +            ),
        +        2 => array(
        +            'Ascii','Bin','I','L','P','R','S','U'
        +            ),
        +        3 => array(
        +            'Append','in','Dupl','Len','Print','_AllDifferent','_AllAscending',
        +            '_AllDescending','_Ascending','_Descending'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array('(', ')', '[', ']'),
        +        1 => array('<', '>','='),
        +        2 => array('+', '-', '*', '/'),
        +        3 => array('&', '|'),
        +        4 => array(':', ';')
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000ff;',
        +            2 => 'color: #000080;',
        +            3 => 'color: #000080;',
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008000; font-style: italic;',
        +            2 => 'color: #008000; font-style: italic;',
        +            'MULTI' => 'color: #008000; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            1 => 'color: #000099; font-weight: bold;',
        +            2 => 'color: #009999; font-weight: bold;',
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #800000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #202020;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000;',
        +            1 => 'color: #000000;',
        +            2 => 'color: #000000;',
        +            3 => 'color: #000000;',
        +            4 => 'color: #000000;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://www.f1compiler.com/f1helponline/f1_runtime_library.html#{FNAME}'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/falcon.php b/Sources/geshi/falcon.php
        new file mode 100644
        index 0000000..2111d9e
        --- /dev/null
        +++ b/Sources/geshi/falcon.php
        @@ -0,0 +1,218 @@
        + (1.0.8.10)
        + *  -  First Release
        + *
        + *************************************************************************************
        + *
        + *     This file is part of GeSHi.
        + *
        + *   GeSHi is free software; you can redistribute it and/or modify
        + *   it under the terms of the GNU General Public License as published by
        + *   the Free Software Foundation; either version 2 of the License, or
        + *   (at your option) any later version.
        + *
        + *   GeSHi is distributed in the hope that it will be useful,
        + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        + *   GNU General Public License for more details.
        + *
        + *   You should have received a copy of the GNU General Public License
        + *   along with GeSHi; if not, write to the Free Software
        + *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + * ************************************************************************************/
        +
        +$language_data = array (
        +    'LANG_NAME' => 'Falcon',
        +    'COMMENT_SINGLE' => array( 1 => '//' ),
        +    'COMMENT_MULTI' => array( '/*' => '*/' ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array( "'", '"' ),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'break','case','catch','class','const','continue','def','default',
        +            'dropping','elif','else','end','enum','for','forfirst','forlast',
        +            'formiddle','from','function','global','if','init','innerfunc',
        +            'launch','loop','object','raise','return','select','state','static',
        +            'switch','try','while'
        +        ),
        +        2 => array(
        +            'false','nil','true',
        +        ),
        +        3 => array(
        +            'and','as','eq','fself','in','not','notin','or','provides','self','to'
        +        ),
        +        4 => array(
        +            'directive','export','import','load','macro'
        +        ),
        +        5 => array(
        +            'ArrayType','BooleanType','ClassMethodType','ClassType','DictionaryType',
        +            'FunctionType','MemBufType','MethodType','NilType','NumericType','ObjectType',
        +            'RangeType','StringType','LBindType'
        +        ),
        +        6 => array(
        +            "CurrentTime","IOStream","InputStream","MemBufFromPtr","OutputStream",
        +            "PageDict","ParseRFC2822","abs","acos","all",
        +            "allp","any","anyp","argd","argv",
        +            "arrayAdd","arrayBuffer","arrayCompact","arrayDel","arrayDelAll",
        +            "arrayFill","arrayFind","arrayHead","arrayIns","arrayMerge",
        +            "arrayNM","arrayRemove","arrayResize","arrayScan","arraySort",
        +            "arrayTail","asin","assert","atan","atan2",
        +            "attributes","baseClass","beginCritical","bless","brigade",
        +            "broadcast","cascade","ceil","choice","chr",
        +            "className","clone","combinations","compare","consume",
        +            "cos","deg2rad","deoob","derivedFrom","describe",
        +            "deserialize","dictBack","dictBest","dictClear","dictFill",
        +            "dictFind","dictFront","dictGet","dictKeys","dictMerge",
        +            "dictRemove","dictSet","dictValues","dirChange","dirCurrent",
        +            "dirMake","dirMakeLink","dirReadLink","dirRemove","dolist",
        +            "endCritical","epoch","eval","exit","exp",
        +            "factorial","fileChgroup","fileChmod","fileChown","fileCopy",
        +            "fileExt","fileMove","fileName","fileNameMerge","filePath",
        +            "fileRemove","fileType","fileUnit","filter","fint",
        +            "firstOf","floop","floor","fract","getAssert",
        +            "getEnviron","getProperty","getSlot","getSystemEncoding","getenv",
        +            "iff","include","input","inspect","int",
        +            "isBound","isCallable","isoob","lbind","len",
        +            "let","lit","log","map","max",
        +            "metaclass","min","numeric","oob","ord",
        +            "paramCount","paramIsRef","paramSet","parameter","passvp",
        +            "permutations","pow","print","printl","properties",
        +            "rad2deg","random","randomChoice","randomDice","randomGrab",
        +            "randomPick","randomSeed","randomWalk","readURI","reduce",
        +            "retract","round","seconds","serialize","set",
        +            "setProperty","setenv","sin","sleep","stdErr",
        +            "stdErrRaw","stdIn","stdInRaw","stdOut","stdOutRaw",
        +            "strBack","strBackFind","strBackTrim","strBuffer","strCmpIgnoreCase",
        +            "strEndsWith","strEscape","strEsq","strFill","strFind",
        +            "strFromMemBuf","strFront","strFrontTrim","strLower","strMerge",
        +            "strReplace","strReplicate","strSplit","strSplitTrimmed","strStartsWith",
        +            "strToMemBuf","strTrim","strUnescape","strUnesq","strUpper",
        +            "strWildcardMatch","subscribe","systemErrorDescription","tan","times",
        +            "toString","transcodeFrom","transcodeTo","typeOf","unsetenv",
        +            "unsubscribe","valof","vmFalconPath","vmIsMain","vmModuleName",
        +            "vmModuleVersionInfo","vmSearchPath","vmSystemType","vmVersionInfo","vmVersionName",
        +            "writeURI","xmap","yield","yieldOut"
        +        ),
        +        7 => array(
        +            "AccessError","Array","BOM","Base64","Class",
        +            "ClassMethod","CloneError","CmdlineParser","CodeError","Continuation",
        +            "Dictionary","Directory","Error","FileStat","Format",
        +            "Function","GarbagePointer","GenericError","Integer","InterruptedError",
        +            "IoError","Iterator","LateBinding","List","MathError",
        +            "MemoryBuffer","MessageError","Method","Numeric","Object",
        +            "ParamError","ParseError","Path","Range","Semaphore",
        +            "Sequence","Set","Stream","String","StringStream",
        +            "SyntaxError","Table","TableError","TimeStamp","TimeZone",
        +            "Tokenizer","TypeError","URI","VMSlot"
        +        ),
        +        8 => array(
        +            "args","scriptName","scriptPath"
        +        ),
        +        9 => array(
        +            "GC"
        +        ),
        +    ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => 'http://falconpl.org/project_docs/core/functions.html#typeOf',
        +        6 => 'http://falconpl.org/project_docs/core/functions.html#{FNAME}',
        +        7 => 'http://falconpl.org/project_docs/core/class_{FNAME}.html',
        +        8 => 'http://falconpl.org/project_docs/core/globals.html#{FNAME}',
        +        9 => 'http://falconpl.org/project_docs/core/object_{FNAME}.html)'
        +    ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true,
        +        8 => true,
        +        9 => true
        +    ),
        +    'SYMBOLS' => array(
        +        '(',')','$','%','&','/','{','[',']','=','}','?','+','-','#','*','@',
        +        '<','>','|',',',':',';','\\','^'
        +    ),
        +    'REGEXPS' => array(
        +        0 => array(
        +            GESHI_SEARCH => '(\[)([a-zA-Z_]|\c{C})(?:[a-zA-Z0-9_]|\p{C})*(\])',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3',
        +
        +        ),
        +    ),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(
        +        0 => array( ' '?>' )
        +    ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true
        +    ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000080;font-weight:bold;',
        +            2 => 'color: #800000;font-weight:bold;',
        +            3 => 'color: #800000;font-weight:bold;',
        +            4 => 'color: #000080;font-weight:bold;',
        +            5 => 'color: #000000;font-weight:bold;',
        +            6 => 'font-weight:bold;',
        +            7 => 'font-weight:bold;',
        +            8 => 'font-weight:bold;'
        +        ),
        +        'COMMENTS' => array(
        +            1 => 'color: #29B900;',
        +            'MULTI' => 'color: #008080'
        +        ),
        +        'STRINGS' => array(
        +            0 => 'color: #800000'
        +        ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000'
        +        ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #800000'
        +        ),
        +        'NUMBERS' => array(
        +            0 => 'color: #000000'
        +        ),
        +        'METHODS' => array(
        +            0 => 'color: #000000'
        +        ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #8B0513'
        +        ),
        +        'SCRIPT' => array(
        +            0 => ''
        +        ),
        +        'REGEXPS' => array(
        +            0 => 'color: #FF00FF'
        +        )
        +    ),
        +
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        '.'
        +    )
        +);
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/fo.php b/Sources/geshi/fo.php
        new file mode 100644
        index 0000000..ba4a592
        --- /dev/null
        +++ b/Sources/geshi/fo.php
        @@ -0,0 +1,327 @@
        + 'FO (abas-ERP)',
        +    'COMMENT_SINGLE' => array(1 => '..'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        //Control Flow
        +        1 => array(
        +            /* see http://www.abas.de/sub_de/kunden/help/hd/html/9.html */
        +
        +            /* fo keywords, part 1: control flow */
        +            '.weiter', '.continue'
        +
        +            /* this language works with goto's only*/
        +            ),
        +
        +        //FO Keywords
        +        2 => array(
        +            /* fo keywords, part 2 */
        +            '.fo', '.formel', '.formula',
        +            '.zuweisen', '.assign',
        +            '.fehler', '.error',
        +            '.ende', '.end'
        +            ),
        +
        +        //Java Keywords
        +        3 => array(
        +            /* Java keywords, part 3: primitive data types */
        +            '.art', '.type',
        +            'integer', 'real', 'bool', 'text', 'datum', 'woche', 'termin', 'zeit',
        +            'mehr', 'MEHR'
        +            ),
        +
        +        //Reserved words in fo literals
        +        4 => array(
        +            /* other reserved words in fo literals */
        +            /* should be styled to look similar to numbers and Strings */
        +            'false', 'null', 'true',
        +            'OBJEKT',
        +            'VORGANG', 'PROCESS',
        +            'OFFEN', 'OPEN',
        +            'ABORT',
        +            'AN', 'ADDEDTO',
        +            'AUF', 'NEW',
        +            'BILDSCHIRM', 'TERMINAL',
        +            'PC',
        +            'MASKE', 'SCREEN',
        +            'ZEILE', 'LINE'
        +            ),
        +
        +        // interpreter settings
        +        5 => array (
        +            '..!INTERPRETER', 'DEBUG'
        +            ),
        +
        +        // database commands
        +        6 => array (
        +            '.hole', '.hol', '.select',
        +            '.lade', '.load',
        +            '.aktion', '.action',
        +            '.belegen', '.occupy',
        +            '.bringe', '.rewrite',
        +            '.dazu', '.add',
        +            '.löschen', '.delete',
        +            '.mache', '.make',
        +            '.merke', '.reserve',
        +            '.setze', '.set',
        +            'SPERREN', 'LOCK',
        +            'TEIL', 'PART',
        +            'KEINESPERRE',
        +            'AMASKE', 'ASCREEN',
        +            'BETRIEB', 'WORK-ORDER',
        +            'NUMERISCH', 'NUMERICAL',
        +            'VORSCHLAG', 'SUGGESTION',
        +            'OBLIGO', 'OUTSTANDING',
        +            'LISTE', 'LIST',
        +            'DRUCK', 'PRINT',
        +            'ÃœBERNAHME', 'TAGEOVER',
        +            'ABLAGE', 'FILINGSYSTEM',
        +            'BDE', 'PDC',
        +            'BINDUNG', 'ALLOCATION',
        +            'BUCHUNG', 'ENTRY',
        +            'COLLI', 'SERIAL',
        +            'DATEI', 'FILE',
        +            'VERKAUF', 'SALES',
        +            'EINKAUF', 'PURCHASING',
        +            'EXEMPLAR', 'EXAMPLE',
        +            'FERTIGUNG', 'PRODUCTION',
        +            'FIFO',
        +            'GRUPPE', 'GROUP',
        +            'JAHR', 'YEAR',
        +            'JOURNAL',
        +            'KOPF', 'HEADER',
        +            'KOSTEN',
        +            'LIFO',
        +            'LMENGE', 'SQUANTITY',
        +            'LOHNFERTIGUNG', 'SUBCONTRACTING',
        +            'LPLATZ', 'LOCATION',
        +            'MBELEGUNG', 'MACHLOADING',
        +            'MONAT', 'MONTH', 'MZ',
        +            'NACHRICHT', 'MESSAGE',
        +            'PLAN', 'TARGET',
        +            'REGIONEN', 'REGIONS',
        +            'SERVICEANFRAGE', 'SERVICEREQUEST',
        +            'VERWENDUNG', 'APPLICATION',
        +            'WEITER', 'CONTINUE',
        +            'ABBRUCH', 'CANCEL',
        +            'ABLAGEKENNZEICHEN', 'FILLINGCODE',
        +            'ALLEIN', 'SINGLEUSER',
        +            'AUFZAEHLTYP', 'ENUMERATION-TYPE',
        +            'AUSGABE', 'OUTPUT',
        +            'DEZPUNKT', 'DECPOINT'
        +            ),
        +
        +        // output settings
        +        7 => array (
        +            '.absatz', '.para',
        +            '.blocksatz', '.justified',
        +            '.flattersatz', '.unjustified',
        +            '.format',
        +            '.box',
        +            '.drucken', '.print',
        +            '.gedruckt', '.printed',
        +            '.länge', '.length',
        +            '.links', '.left',
        +            '.rechts', '.right',
        +            '.oben', '.up',
        +            '.unten', '.down',
        +            '.seite', '.page',
        +            '.tabellensatz', '.tablerecord',
        +            '.trenner', '.separator',
        +            'ARCHIV'
        +            ),
        +
        +        // text commands
        +        8 => array (
        +            '.text',
        +            '.atext',
        +            '.println',
        +            '.uebersetzen', '.translate'
        +            ),
        +
        +        // I/O commands
        +        9 => array (
        +            '.aus', '.ausgabe', '.output',
        +            '.ein', '.eingabe', '.input',
        +            '.datei', '.file',
        +            '.lesen', '.read',
        +            '.sortiere', '.sort',
        +            '-ÖFFNEN', '-OPEN',
        +            '-TEST',
        +            '-LESEN', '-READ',
        +            'VON', 'FROM'
        +            ),
        +
        +        //system
        +        10 => array (
        +            '.browser',
        +            '.kommando', '.command',
        +            '.system', '.dde',
        +            '.editiere', '.edit',
        +            '.hilfe', '.help',
        +            '.kopieren', '.copy',
        +            '.pc.clip',
        +            '.pc.copy',
        +            '.pc.dll',
        +            '.pc.exec',
        +            '.pc.open',
        +            'DIAGNOSE', 'ERRORREPORT',
        +            'DOPPELPUNKT', 'COLON',
        +            'ERSETZUNG', 'REPLACEMENT',
        +            'WARTEN', 'PARALLEL'
        +            ),
        +
        +        //fibu/accounting specific commands
        +        11 => array (
        +            '.budget',
        +            '.chart',
        +            'VKZ',
        +            'KONTO', 'ACCOUNT',
        +            'AUSZUG', 'STATEMENT',
        +            'WAEHRUNG', 'CURRENCY',
        +            'WAEHRUNGSKURS', 'EXCHANGERATE',
        +            'AUSWAEHR', 'FORCURR',
        +            'BUCHUNGSKREIS', 'SET OF BOOKS'
        +            ),
        +
        +        // efop - extended flexible surface
        +        12 => array (
        +            '.cursor',
        +            '.farbe', '.colour',
        +            '.fenster', '.window',
        +            '.hinweis', '.note',
        +            '.menue', '.menu',
        +            '.schutz', '.protection',
        +            '.zeigen', '.view',
        +            '.zeile', '.line',
        +            'VORDERGRUND', 'FOREGROUND',
        +            'HINTERGRUND', 'BACKGROUND',
        +            'SOFORT', 'IMMEDIATELY',
        +            'AKTUALISIEREN', 'UPDATE',
        +            'FENSTERSCHLIESSEN', 'CLOSEWINDOWS'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array('(', ')', '[', ']', '{', '}', '*', '&', '%', ';', '<', '>'),
        +        1 => array('?', '!')
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        /* all fo keywords are case sensitive, don't have to but I like this type of coding */
        +        1 => true, 2 => true, 3 => true, 4 => true,
        +        5 => true, 6 => true, 7 => true, 8 => true, 9 => true,
        +        10 => true, 11 => true, 12 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight: bold;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #006600; font-weight: bold;',
        +            4 => 'color: #006600; font-weight: bold;',
        +            5 => 'color: #003399; font-weight: bold;',
        +            6 => 'color: #003399; font-weight: bold;',
        +            7 => 'color: #003399; font-weight: bold;',
        +            8 => 'color: #003399; font-weight: bold;',
        +            9 => 'color: #003399; font-weight: bold;',
        +            10 => 'color: #003399; font-weight: bold;',
        +            11 => 'color: #003399; font-weight: bold;',
        +            12 => 'color: #003399; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            //2 => 'color: #006699;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006633;',
        +            2 => 'color: #006633;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;',
        +            1 => 'color: #000000; font-weight: bold;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => '',
        +        7 => '',
        +        8 => '',
        +        9 => '',
        +        10 => '',
        +        11 => '',
        +        12 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/fortran.php b/Sources/geshi/fortran.php
        new file mode 100644
        index 0000000..c21ccd1
        --- /dev/null
        +++ b/Sources/geshi/fortran.php
        @@ -0,0 +1,160 @@
        +'Fortran',
        +    'COMMENT_SINGLE'=> array(1 =>'!',2=>'Cf2py'),
        +    'COMMENT_MULTI'=> array(),
        +    //Fortran Comments
        +    'COMMENT_REGEXP' => array(1 => '/^C.*?$/mi'),
        +    'CASE_KEYWORDS'=> GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS'=> array("'",'"'),
        +    'ESCAPE_CHAR'=>'\\',
        +    'KEYWORDS'=> array(
        +        1 => array(
        +            'allocate','block','call','case','contains','continue','cycle','deallocate',
        +            'default','do','else','elseif','elsewhere','end','enddo','endif','endwhere',
        +            'entry','exit','function','go','goto','if','interface','module','nullify','only',
        +            'operator','procedure','program','recursive','return','select','stop',
        +            'subroutine','then','to','where','while',
        +            'access','action','advance','blank','blocksize','carriagecontrol',
        +            'delim','direct','eor','err','exist','file','flen','fmt','form','formatted',
        +            'iostat','name','named','nextrec','nml','number','opened','pad','position',
        +            'readwrite','recl','sequential','status','unformatted','unit'
        +            ),
        +        2 => array(
        +            '.AND.','.EQ.','.EQV.','.GE.','.GT.','.LE.','.LT.','.NE.','.NEQV.','.NOT.',
        +            '.OR.','.TRUE.','.FALSE.'
        +            ),
        +        3 => array(
        +            'allocatable','character','common','complex','data','dimension','double',
        +            'equivalence','external','implicit','in','inout','integer','intent','intrinsic',
        +            'kind','logical','namelist','none','optional','out','parameter','pointer',
        +            'private','public','real','result','save','sequence','target','type','use'
        +            ),
        +        4 => array(
        +            'abs','achar','acos','adjustl','adjustr','aimag','aint','all','allocated',
        +            'anint','any','asin','atan','atan2','bit_size','break','btest','carg',
        +            'ceiling','char','cmplx','conjg','cos','cosh','cpu_time','count','cshift',
        +            'date_and_time','dble','digits','dim','dot_product','dprod dvchk',
        +            'eoshift','epsilon','error','exp','exponent','floor','flush','fraction',
        +            'getcl','huge','iachar','iand','ibclr','ibits','ibset','ichar','ieor','index',
        +            'int','intrup','invalop','ior','iostat_msg','ishft','ishftc','lbound',
        +            'len','len_trim','lge','lgt','lle','llt','log','log10','matmul','max','maxexponent',
        +            'maxloc','maxval','merge','min','minexponent','minloc','minval','mod','modulo',
        +            'mvbits','nbreak','ndperr','ndpexc','nearest','nint','not','offset','ovefl',
        +            'pack','precfill','precision','present','product','prompt','radix',
        +            'random_number','random_seed','range','repeat','reshape','rrspacing',
        +            'scale','scan','segment','selected_int_kind','selected_real_kind',
        +            'set_exponent','shape','sign','sin','sinh','size','spacing','spread','sqrt',
        +            'sum system','system_clock','tan','tanh','timer','tiny','transfer','transpose',
        +            'trim','ubound','undfl','unpack','val','verify'
        +            ),
        +        ),
        +    'SYMBOLS'=> array(
        +        '(',')','{','}','[',']','=','+','-','*','/','!','%','^','&',':'
        +        ),
        +    'CASE_SENSITIVE'=> array(
        +        GESHI_COMMENTS => true,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        ),
        +    'STYLES'=> array(
        +        'KEYWORDS'=> array(
        +            1 =>'color: #b1b100;',
        +            2 =>'color: #000000; font-weight: bold;',
        +            3 =>'color: #000066;',
        +            4 =>'color: #993333;'
        +            ),
        +        'COMMENTS'=> array(
        +            1 =>'color: #666666; font-style: italic;',
        +            2 =>'color: #339933;',
        +            'MULTI'=>'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR'=> array(
        +            0 =>'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS'=> array(
        +            0 =>'color: #009900;'
        +            ),
        +        'STRINGS'=> array(
        +            0 =>'color: #ff0000;'
        +            ),
        +        'NUMBERS'=> array(
        +            0 =>'color: #cc66cc;'
        +            ),
        +        'METHODS'=> array(
        +            1 =>'color: #202020;',
        +            2 =>'color: #202020;'
        +            ),
        +        'SYMBOLS'=> array(
        +            0 =>'color: #339933;'
        +            ),
        +        'REGEXPS'=> array(
        +            ),
        +        'SCRIPT'=> array(
        +            )
        +        ),
        +    'URLS'=> array(
        +        1 =>'',
        +        2 =>'',
        +        3 =>'',
        +        4 =>''
        +        ),
        +    'OOLANG'=> true,
        +    'OBJECT_SPLITTERS'=> array(
        +        1 =>'.',
        +        2 =>'::'
        +        ),
        +    'REGEXPS'=> array(
        +        ),
        +    'STRICT_MODE_APPLIES'=> GESHI_NEVER,
        +    'SCRIPT_DELIMITERS'=> array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK'=> array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/freebasic.php b/Sources/geshi/freebasic.php
        new file mode 100644
        index 0000000..b23f39b
        --- /dev/null
        +++ b/Sources/geshi/freebasic.php
        @@ -0,0 +1,141 @@
        + 'FreeBasic',
        +    'COMMENT_SINGLE' => array(1 => "'", 2 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            "append", "as", "asc", "asin", "asm", "atan2", "atn", "beep", "bin", "binary", "bit",
        +            "bitreset", "bitset", "bload", "bsave", "byref", "byte", "byval", "call",
        +            "callocate", "case", "cbyte", "cdbl", "cdecl", "chain", "chdir", "chr", "cint",
        +            "circle", "clear", "clng", "clngint", "close", "cls", "color", "command",
        +            "common", "cons", "const", "continue", "cos", "cshort", "csign", "csng",
        +            "csrlin", "cubyte", "cuint", "culngint", "cunsg", "curdir", "cushort", "custom",
        +            "cvd", "cvi", "cvl", "cvlongint", "cvs", "cvshort", "data", "date",
        +            "deallocate", "declare", "defbyte", "defdbl", "defined", "defint", "deflng",
        +            "deflngint", "defshort", "defsng", "defstr", "defubyte", "defuint",
        +            "defulngint", "defushort", "dim", "dir", "do", "double", "draw", "dylibload",
        +            "dylibsymbol", "else", "elseif", "end", "enum", "environ", 'environ$', "eof",
        +            "eqv", "erase", "err", "error", "exec", "exepath", "exit", "exp", "export",
        +            "extern", "field", "fix", "flip", "for", "fre", "freefile", "function", "get",
        +            "getjoystick", "getkey", "getmouse", "gosub", "goto", "hex", "hibyte", "hiword",
        +            "if", "iif", "imagecreate", "imagedestroy", "imp", "inkey", "inp", "input",
        +            "instr", "int", "integer", "is", "kill", "lbound", "lcase", "left", "len",
        +            "let", "lib", "line", "lobyte", "loc", "local", "locate", "lock", "lof", "log",
        +            "long", "longint", "loop", "loword", "lset", "ltrim", "mid", "mkd", "mkdir",
        +            "mki", "mkl", "mklongint", "mks", "mkshort", "mod", "multikey", "mutexcreate",
        +            "mutexdestroy", "mutexlock", "mutexunlock", "name", "next", "not", "oct", "on",
        +            "once", "open", "option", "or", "out", "output", "overload", "paint", "palette",
        +            "pascal", "pcopy", "peek", "peeki", "peeks", "pipe", "pmap", "point", "pointer",
        +            "poke", "pokei", "pokes", "pos", "preserve", "preset", "print", "private",
        +            "procptr", "pset", "ptr", "public", "put", "random", "randomize", "read",
        +            "reallocate", "redim", "rem", "reset", "restore", "resume",
        +            "return", "rgb", "rgba", "right", "rmdir", "rnd", "rset", "rtrim", "run",
        +            "sadd", "screen", "screencopy", "screeninfo", "screenlock", "screenptr",
        +            "screenres", "screenset", "screensync", "screenunlock", "seek", "statement",
        +            "selectcase", "setdate", "setenviron", "setmouse",
        +            "settime", "sgn", "shared", "shell", "shl", "short", "shr", "sin", "single",
        +            "sizeof", "sleep", "space", "spc", "sqr", "static", "stdcall", "step", "stop",
        +            "str", "string", "strptr", "sub", "swap", "system", "tab", "tan",
        +            "then", "threadcreate", "threadwait", "time", "timer", "to", "trans",
        +            "trim", "type", "ubound", "ubyte", "ucase", "uinteger", "ulongint", "union",
        +            "unlock", "unsigned", "until", "ushort", "using", "va_arg", "va_first",
        +            "va_next", "val", "val64", "valint", "varptr", "view", "viewprint", "wait",
        +            "wend", "while", "width", "window", "windowtitle", "with", "write", "xor",
        +            "zstring", "explicit", "escape", "true", "false"
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080;',
        +            2 => 'color: #339933;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/freeswitch.php b/Sources/geshi/freeswitch.php
        new file mode 100644
        index 0000000..c6fff27
        --- /dev/null
        +++ b/Sources/geshi/freeswitch.php
        @@ -0,0 +1,168 @@
        + 'FreeSWITCH',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(1 => "/^Comment:.*?$/m"),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +//        1 => array(
        +//            'Disallow', 'Request-rate', 'Robot-version',
        +//            'Sitemap', 'User-agent', 'Visit-time'
        +//            )
        +        ),
        +    'SYMBOLS' => array(
        +//        ':'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false
        +        ),
        +
        +//order is important. regexes will overwrite most things....
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +//            1 => 'color: #FF0000; font-weight: bold;',//red
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +//            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +//            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +//            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +//            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: firebrick; font-weight: bold;',
        +            1 => 'color: cornflowerblue; font-weight: bold;',
        +            2 => 'color: goldenrod; font-weight: bold;',
        +            3 => 'color: green; font-weight: bold;',
        +            4 => 'color: dimgrey; font-style: italic;',
        +            5 => 'color: green; font-weight: bold;',
        +            6 => 'color: firebrick; font-weight: bold;',
        +            7 => 'color: indigo; font-weight: italic;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +//        1 => 'http://www.robotstxt.org/wc/norobots.html'
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        0 => array(
        +            GESHI_SEARCH => '(^.*ERROR.*)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'im',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        1 => array(
        +            GESHI_SEARCH => '(^.*NOTICE.*)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'im',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        2 => array(
        +            GESHI_SEARCH => '(^.*DEBUG.*)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        3 => array(
        +            GESHI_SEARCH => '(^.*INFO.*|.*info\(.*|^Channel.*|^Caller.*|^variable.*)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        4 => array(
        +            GESHI_SEARCH => '(^Dialplan.*)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'im',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        5 => array(
        +            GESHI_SEARCH => '(Regex\ \(PASS\))',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        6 => array(
        +            GESHI_SEARCH => '(Regex\ \(FAIL\))',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        7 => array(
        +            GESHI_SEARCH => '(\d{7,15})',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            )
        +        ),
        +
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/fsharp.php b/Sources/geshi/fsharp.php
        new file mode 100644
        index 0000000..d85a7c7
        --- /dev/null
        +++ b/Sources/geshi/fsharp.php
        @@ -0,0 +1,213 @@
        + 'F#',
        +    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(3 => '/\(\*(?!\)).*?\*\)/s'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'HARDQUOTE' => array('@"', '"'),
        +    'HARDESCAPE' => array('"'),
        +    'HARDCHAR' => '"',
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        /* main F# keywords */
        +        /* section 3.4 */
        +        1 => array(
        +            'abstract', 'and', 'as', 'assert', 'base', 'begin', 'class', 'default', 'delegate', 'do', 'done',
        +            'downcast', 'downto', 'elif', 'else', 'end', 'exception', 'extern', 'false', 'finally', 'for',
        +            'fun', 'function', 'if', 'in', 'inherit', 'inline', 'interface', 'internal', 'lazy', 'let',
        +            'match', 'member', 'module', 'mutable', 'namespace', 'new', 'not', 'null', 'of', 'open', 'or',
        +            'override', 'private', 'public', 'rec', 'return', 'sig', 'static', 'struct', 'then', 'to',
        +            'true', 'try', 'type', 'upcast', 'use', 'val', 'void', 'when', 'while', 'with', 'yield',
        +            'asr', 'land', 'lor', 'lsl', 'lsr', 'lxor', 'mod',
        +            /* identifiers are reserved for future use by F# */
        +            'atomic', 'break', 'checked', 'component', 'const', 'constraint', 'constructor',
        +            'continue', 'eager', 'fixed', 'fori', 'functor', 'global', 'include', 'method', 'mixin',
        +            'object', 'parallel', 'params', 'process', 'protected', 'pure', 'sealed', 'tailcall',
        +            'trait', 'virtual', 'volatile',
        +            /* take monads into account */
        +            'let!', 'yield!'
        +            ),
        +        /* define names of main libraries in F# Core, so we can link to it
        +         * http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/namespaces.html
        +         */
        +        2 => array(
        +            'Array', 'Array2D', 'Array3D', 'Array4D', 'ComparisonIdentity', 'HashIdentity', 'List',
        +            'Map', 'Seq', 'SequenceExpressionHelpers', 'Set', 'CommonExtensions', 'Event',
        +            'ExtraTopLevelOperators', 'LanguagePrimitives', 'NumericLiterals', 'Operators',
        +            'OptimizedClosures', 'Option', 'String', 'NativePtr', 'Printf'
        +            ),
        +        /* 17.2 & 17.3 */
        +        3 => array(
        +            'abs', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'exp',
        +            'floor', 'log', 'log10', 'pown', 'round', 'sign', 'sin', 'sinh', 'sqrt',
        +            'tan', 'tanh',
        +            'ignore',
        +            'fst', 'snd',
        +            'stdin', 'stdout', 'stderr',
        +            'KeyValue',
        +            'max', 'min'
        +            ),
        +        /* Pervasives Types & Overloaded Conversion Functions */
        +        4 => array(
        +            'bool', 'byref', 'byte', 'char', 'decimal', 'double', 'exn', 'float', 'float32',
        +            'FuncConvert', 'ilsigptr', 'int', 'int16', 'int32', 'int64', 'int8',
        +            'nativeint', 'nativeptr', 'obj', 'option', 'ref', 'sbyte', 'single', 'string', 'uint16',
        +            'uint32', 'uint64', 'uint8', 'unativeint', 'unit',
        +            'enum',
        +            'async', 'seq', 'dict'
        +            ),
        +        /* 17.2 Exceptions */
        +        5 => array (
        +            'failwith', 'invalidArg', 'raise', 'rethrow'
        +            ),
        +        /* 3.3 Conditional compilation & 13.3 Compiler Directives + light / light off */
        +        6 => array(
        +            '(*IF-FSHARP', 'ENDIF-FSHARP*)', '(*F#', 'F#*)', '(*IF-OCAML', 'ENDIF-OCAML*)',
        +            '#light',
        +            '#if', '#else', '#endif', '#indent', '#nowarn', '#r', '#reference',
        +            '#I', '#Include', '#load', '#time', '#help', '#q', '#quit',
        +            ),
        +        /* 3.11 Pre-processor Declarations / Identifier Replacements */
        +        7 => array(
        +            '__SOURCE_DIRECTORY__', '__SOURCE_FILE__', '__LINE__'
        +            ),
        +        /* 17.2 Object Transformation Operators */
        +        8 => array(
        +            'box', 'hash', 'sizeof', 'typeof', 'typedefof', 'unbox'
        +            )
        +        ),
        +    /* 17.2 basic operators + the yield and yield! arrows */
        +    'SYMBOLS' => array(
        +        1 => array('+', '-', '/', '*', '**', '%', '~-'),
        +        2 => array('<', '<=', '>', '<=', '=', '<>'),
        +        3 => array('<<<', '>>>', '^^^', '&&&', '|||', '~~~'),
        +        4 => array('|>', '>>', '<|', '<<'),
        +        5 => array('!', '->', '->>'),
        +        6 => array('[',']','(',')','{','}', '[|', '|]', '(|', '|)'),
        +        7 => array(':=', ';', ';;')
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true, /* keywords */
        +        2 => true, /* modules */
        +        3 => true, /* pervasives functions */
        +        4 => true, /* types and overloaded conversion operators */
        +        5 => true, /* exceptions */
        +        6 => true, /* conditional compilation & compiler Directives */
        +        7 => true, /* pre-processor declarations / identifier replacements */
        +        8 => true  /* object transformation operators */
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #06c; font-weight: bold;', /* nice blue */
        +            2 => 'color: #06c; font-weight: bold;', /* nice blue */
        +            3 => 'color: #06c; font-weight: bold;', /* nice blue */
        +            4 => 'color: #06c; font-weight: bold;', /* nice blue */
        +            5 => 'color: #06c; font-weight: bold;', /* nice blue */
        +            6 => 'color: #06c; font-weight: bold;', /* nice blue */
        +            7 => 'color: #06c; font-weight: bold;', /* nice blue */
        +            8 => 'color: #06c; font-weight: bold;' /* nice blue */
        +            ),
        +        'COMMENTS' => array(
        +            'MULTI' => 'color: #5d478b; font-style: italic;', /* light purple */
        +            1 => 'color: #5d478b; font-style: italic;',
        +            2 => 'color: #5d478b; font-style: italic;', /* light purple */
        +            3 => 'color: #5d478b; font-style: italic;' /* light purple */
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #6c6;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #3cb371;' /* nice green */
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #c6c;' /* pink */
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #060;' /* dark green */
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #a52a2a;' /* maroon */
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        /* some of keywords are Pervasives functions (land, lxor, asr, ...) */
        +        1 => '',
        +        2 => 'http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/namespaces.html',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => '',
        +        7 => '',
        +        8 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => "(?|^])",
        +            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])"
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/gambas.php b/Sources/geshi/gambas.php
        new file mode 100644
        index 0000000..352830e
        --- /dev/null
        +++ b/Sources/geshi/gambas.php
        @@ -0,0 +1,214 @@
        + 'GAMBAS',
        +    'COMMENT_SINGLE' => array(1 => "'"),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX |
        +        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        //keywords
        +        1 => array(
        +            'APPEND', 'AS', 'BREAK', 'BYREF', 'CASE', 'CATCH', 'CLASS', 'CLOSE', 'CONST', 'CONTINUE', 'COPY',
        +            'CREATE', 'DEBUG', 'DEC', 'DEFAULT', 'DIM', 'DO', 'EACH', 'ELSE', 'END', 'ENDIF', 'ERROR', 'EVENT', 'EXEC',
        +            'EXPORT', 'EXTERN', 'FALSE', 'FINALLY', 'FLUSH', 'FOR', 'FUNCTION', 'GOTO', 'IF', 'IN', 'INC', 'INHERITS',
        +            'INPUT', 'FROM', 'IS', 'KILL', 'LAST', 'LIBRARY', 'LIKE', 'LINE INPUT', 'LINK', 'LOCK', 'LOOP', 'ME',
        +            'MKDIR', 'MOVE', 'NEW', 'NEXT', 'NULL', 'OPEN', 'OPTIONAL', 'OUTPUT', 'PIPE', 'PRINT', 'PRIVATE',
        +            'PROCEDURE', 'PROPERTY', 'PUBLIC', 'QUIT', 'RAISE', 'RANDOMIZE', 'READ', 'REPEAT', 'RETURN', 'RMDIR',
        +            'SEEK', 'SELECT', 'SHELL', 'SLEEP', 'STATIC', 'STEP', 'STOP', 'SUB', 'SUPER', 'SWAP', 'THEN', 'TO',
        +            'TRUE', 'TRY', 'UNLOCK', 'UNTIL', 'WAIT', 'WATCH', 'WEND', 'WHILE', 'WITH', 'WRITE'
        +            ),
        +        //functions
        +        2 => array(
        +            'Abs', 'Access', 'Acos', 'Acosh', 'Alloc', 'Ang', 'Asc', 'ASin', 'ASinh', 'Asl', 'Asr', 'Assign', 'Atan',
        +            'ATan2', 'ATanh',
        +            'BChg', 'BClr', 'Bin', 'BSet', 'BTst',
        +            'CBool', 'Cbr', 'CByte', 'CDate', 'CFloat', 'Choose', 'Chr', 'CInt', 'CLong', 'Comp', 'Conv', 'Cos',
        +            'Cosh', 'CShort', 'CSng', 'CStr',
        +            'DateAdd', 'DateDiff', 'Day', 'DConv', 'Deg', 'DFree', 'Dir',
        +            'Eof', 'Eval', 'Exist', 'Exp', 'Exp10', 'Exp2', 'Expm',
        +            'Fix', 'Format', 'Frac', 'Free',
        +            'Hex', 'Hour', 'Hyp',
        +            'Iif', 'InStr', 'Int', 'IsAscii', 'IsBlank', 'IsBoolean', 'IsByte', 'IsDate', 'IsDigit', 'IsDir',
        +            'IsFloat', 'IsHexa', 'IsInteger', 'IsLCase', 'IsLetter', 'IsLong', 'IsNull', 'IsNumber', 'IsObject',
        +            'IsPunct', 'IsShort', 'IsSingle', 'IsSpace', 'IsString', 'IsUCase', 'IsVariant',
        +            'LCase', 'Left', 'Len', 'Lof', 'Log', 'Log10', 'Log2', 'Logp', 'Lsl', 'Lsr', 'LTrim',
        +            'Mag', 'Max', 'Mid', 'Min', 'Minute', 'Month', 'Now', 'Quote',
        +            'Rad', 'RDir', 'Realloc', 'Replace', 'Right', 'RInStr', 'Rnd', 'Rol', 'Ror', 'Round', 'RTrim',
        +            'Scan', 'SConv', 'Second', 'Seek', 'Sgn', 'Shl', 'Shr', 'Sin', 'Sinh', 'Space', 'Split', 'Sqr',
        +            'Stat', 'Str', 'StrPtr', 'Subst',
        +            'Tan', 'Tanh', 'Temp$', 'Time', 'Timer', 'Tr', 'Trim', 'TypeOf',
        +            'UCase', 'Unquote', 'Val', 'VarPtr', 'Week', 'WeekDay', 'Year'
        +            ),
        +        //string functions
        +        3 => array(
        +            'Bin$', 'Chr$', 'Conv$', 'DConv$', 'Format$', 'Hex$', 'LCase$', 'Left$', 'LTrim$', 'Mid$', 'Quote$',
        +            'Replace$', 'Right$', 'SConv$', 'Space$', 'Str$', 'String$', 'Subst$', 'Tr$', 'Trim$', 'UCase$',
        +            'Unquote$'
        +            ),
        +        //datatypes
        +        4 => array(
        +            'Boolean', 'Byte', 'Short', 'Integer', 'Long', 'Single', 'Float', 'Date', 'String', 'Variant', 'Object',
        +            'Pointer', 'File'
        +            ),
        +        //operators
        +        5 => array(
        +            'AND', 'DIV', 'MOD', 'NOT', 'OR', 'XOR'
        +            ),
        +        //objects/classes
        +        6 => array(
        +            'Application', 'Array', 'Byte[]', 'Collection', 'Component', 'Enum', 'Observer', 'Param', 'Process',
        +            'Stream', 'System', 'User', 'Chart', 'Compress', 'Crypt', 'Blob', 'Connection', 'DB', 'Database',
        +            'DatabaseUser', 'Field', 'Index', 'Result', 'ResultField', 'Table', 'DataBrowser', 'DataCombo',
        +            'DataControl', 'DataSource', 'DataView', 'Desktop', 'DesktopFile', 'Balloon', 'ColorButton',
        +            'ColorChooser', 'DateChooser', 'DirChooser', 'DirView', 'Expander', 'FileChooser', 'FileView',
        +            'FontChooser', 'InputBox', 'ListContainer', 'SidePanel', 'Stock', 'TableView', 'ToolPanel', 'ValueBox',
        +            'Wizard', 'Dialog', 'ToolBar', 'WorkSpace', 'DnsClient', 'SerialPort', 'ServerSocket', 'Socket',
        +            'UdpSocket', 'FtpClient', 'HttpClient', 'SmtpClient', 'Regexp', 'Action', 'Button', 'CheckBox',
        +            'ColumnView', 'ComboBox', 'Draw', 'Container', 'Control', 'Cursor', 'DrawingArea', 'Embedder',
        +            'Font', 'Form', 'Frame', 'GridView', 'HBox', 'HPanel', 'HSplit', 'IconView', 'Image', 'Key', 'Label',
        +            'Line', 'ListBox', 'ListView', 'Menu', 'Message', 'Mouse', 'MovieBox', 'Panel', 'Picture', 'PictureBox',
        +            'ProgressBar', 'RadioButton', 'ScrollBar', 'ScrollView', 'Separator', 'Slider', 'SpinBox', 'TabStrip',
        +            'TextArea', 'TextBox', 'TextLabel', 'ToggleButton', 'TrayIcon', 'TreeView', 'VBox', 'VPanel', 'VSplit',
        +            'Watcher', 'Window', 'Dial', 'Editor', 'LCDNumber', 'Printer', 'TextEdit', 'WebBrowser', 'GLarea',
        +            'Report', 'ReportCloner', 'ReportContainer', 'ReportControl', 'ReportDrawing', 'ReportField', 'ReportHBox',
        +            'ReportImage', 'ReportLabel', 'ReportSection', 'ReportSpecialField', 'ReportTextLabel', 'ReportVBox',
        +            'CDRom', 'Channel', 'Music', 'Sound', 'Settings', 'VideoDevice', 'Vb', 'CGI', 'HTML', 'Request', 'Response',
        +            'Session', 'XmlDocument', 'XmlNode', 'XmlReader', 'XmlReaderNodeType', 'XmlWriter', 'RpcArray', 'RpcClient',
        +            'RpcFunction', 'RpcServer', 'RpcStruct', 'RpcType', 'XmlRpc', 'Xslt'
        +            ),
        +        //constants
        +        7 => array(
        +            'Pi'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '&', '&=', '&/', '*', '*=', '+', '+=', '-', '-=', '//', '/', '/=', '=', '==', '\\', '\\=',
        +        '^', '^=', '[', ']', '{', '}', '<', '>', '<>', '<=', '>='
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        6 => false,
        +        7 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0600FF; font-weight: bold;',          // Keywords
        +            2 => 'color: #8B1433;',                             // Functions
        +            3 => 'color: #8B1433;',                             // String Functions
        +            4 => 'color: #0600FF;',                             // Data Types
        +            5 => 'color: #1E90FF;',                             // Operators
        +            6 => 'color: #0600FF;',                             // Objects/Components
        +            7 => 'color: #0600FF;'                              // Constants
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #1A5B1A; font-style: italic;',
        +            'MULTI' => 'color: #1A5B1A; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #008080;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #612188;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #7E4B05;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #FF0000;',
        +            GESHI_NUMBER_INT_BASIC => 'color: #FF0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #0000FF;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #6132B2;'
        +            ),
        +        'REGEXPS' => array(
        +            //3 => 'color: #8B1433;'  //fakes '$' colour matched by REGEXP
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://gambasdoc.org/help/lang/{FNAMEL}',
        +        2 => 'http://gambasdoc.org/help/lang/{FNAMEL}',
        +        3 => 'http://www.google.com/search?hl=en&q={FNAMEL}+site:http://gambasdoc.org/help/lang/&btnI=I%27m%20Feeling%20Lucky',
        +        4 => 'http://gambasdoc.org/help/lang/type/{FNAMEL}',
        +        5 => 'http://gambasdoc.org/help/lang/{FNAMEL}',
        +        6 => 'http://www.google.com/search?hl=en&q={FNAMEL}+site:http://gambasdoc.org/&btnI=I%27m%20Feeling%20Lucky',
        +        7 => 'http://gambasdoc.org/help/lang/{FNAMEL}'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 =>'.'
        +        ),
        +    'REGEXPS' => array(
        +        //3 => "\\$(?!\\w)"   //matches '$' at the end of Keyword
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            2 => array(
        +                'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\|%\\-&;\$])"
        +                )
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/gdb.php b/Sources/geshi/gdb.php
        new file mode 100644
        index 0000000..0a5e32c
        --- /dev/null
        +++ b/Sources/geshi/gdb.php
        @@ -0,0 +1,198 @@
        + 'GDB',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        0 => array(
        +            'Application',
        +            'signal',
        +            ),
        +        1 => array(
        +            'Segmentation fault',
        +            '[KCrash Handler]',
        +            ),
        +        ),
        +    'NUMBERS' => false,
        +    'SYMBOLS' => array(
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        0 => true,
        +        1 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            0 => 'font-weight:bold;',
        +            1 => 'font-weight:bold; color: #ff0000;'
        +            ),
        +        'COMMENTS' => array(
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => ''
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'font-weight:bold;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #933;'
        +            ),
        +        'NUMBERS' => array(
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #000066; font-weight:bold;',
        +            1 => 'color: #006600;',
        +            2 => 'color: #B07E00;',
        +            3 => 'color: #0057AE; text-style:italic;',
        +            4 => 'color: #0057AE; text-style:italic;',
        +            5 => 'color: #442886;',
        +            6 => 'color: #442886; font-weight:bold;',
        +            7 => 'color: #FF0000; font-weight:bold;',
        +            8 => 'color: #006E26;',
        +            9 => 'color: #555;',
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        0 => '',
        +        1 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        //[Current Thread...], [KCrash Handler] etc.
        +        0 => array(
        +            GESHI_SEARCH => '^\[.+\]',
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        //stack number
        +        1 => array(
        +            GESHI_SEARCH => '^#\d+',
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        //Thread X (Thread...)
        +        2 => array(
        +            GESHI_SEARCH => '^Thread \d.+$',
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        //Files with linenumbers
        +        3 => array(
        +            GESHI_SEARCH => '(at\s+)(.+)(:\d+\s*)$',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3'
        +            ),
        +        //Libs without linenumbers
        +        4 => array(
        +            GESHI_SEARCH => '(from\s+)(.+)(\s*)$',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3'
        +            ),
        +        //Line numbers
        +        5 => array(
        +            GESHI_SEARCH => '(:)(\d+)(\s*)$',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3'
        +            ),
        +        //Location
        +        6 => array(
        +            GESHI_SEARCH => '(\s+)(in\s+)?([^ 0-9][^ ]*)([ \n]+\()',
        +            GESHI_REPLACE => '\\3',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1\\2',
        +            GESHI_AFTER => '\\4'
        +            ),
        +        // interesting parts: abort, qFatal, assertions, null ptrs, ...
        +        7 => array(
        +            GESHI_SEARCH => '\b((?:\*__GI_)?(?:__assert_fail|abort)|qFatal|0x0)\b([^\.]|$)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '\\2'
        +            ),
        +        // Namespace / Classes
        +        8 => array(
        +            GESHI_SEARCH => '\b(\w+)(::)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'U',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '\\2'
        +            ),
        +        // make ptr adresses and  uninteresting
        +        9 => '\b(?:0x[a-f0-9]{2,}|value\s+optimized\s+out)\b'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'NUMBERS' => false
        +            ),
        +        )
        +);
        +
        +// kate: replace-tabs on; indent-width 4;
        +
        +?>
        diff --git a/Sources/geshi/genero.php b/Sources/geshi/genero.php
        new file mode 100644
        index 0000000..e1b20b3
        --- /dev/null
        +++ b/Sources/geshi/genero.php
        @@ -0,0 +1,463 @@
        + 'genero',
        +    'COMMENT_SINGLE' => array(1 => '--', 2 => '#'),
        +    'COMMENT_MULTI' => array('{' => '}'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            "ABSOLUTE",
        +            "ACCEPT",
        +            "ACTION",
        +            "ADD",
        +            "AFTER",
        +            "ALL",
        +            "ALTER",
        +            "AND",
        +            "ANY",
        +            "APPEND",
        +            "APPLICATION",
        +            "AS",
        +            "AT",
        +            "ATTRIBUTE",
        +            "ATTRIBUTES",
        +            "AUDIT",
        +            "AVG",
        +            "BEFORE",
        +            "BEGIN",
        +            "BETWEEN",
        +            "BORDER",
        +            "BOTTOM",
        +            "BREAKPOINT",
        +            "BUFFER",
        +            "BUFFERED",
        +            "BY",
        +            "CALL",
        +            "CANCEL",
        +            "CASE",
        +            "CENTURY",
        +            "CHANGE",
        +            "CHECK",
        +            "CLEAR",
        +            "CLIPPED",
        +            "CLOSE",
        +            "CLUSTER",
        +            "COLUMN",
        +            "COLUMNS",
        +            "COMMAND",
        +            "COMMENT",
        +            "COMMIT",
        +            "COMMITTED",
        +            "CONCURRENT ",
        +            "CONNECT",
        +            "CONNECTION",
        +            "CONSTANT",
        +            "CONSTRAINED",
        +            "CONSTRAINT",
        +            "CONSTRUCT",
        +            "CONTINUE",
        +            "CONTROL",
        +            "COUNT",
        +            "CREATE",
        +            "CROSS",
        +            "CURRENT",
        +            "DATABASE",
        +            "DBA",
        +            "DEC",
        +            "DECLARE",
        +            "DEFAULT",
        +            "DEFAULTS",
        +            "DEFER",
        +            "DEFINE",
        +            "DELETE",
        +            "DELIMITER",
        +            "DESCRIBE",
        +            "DESTINATION",
        +            "DIM",
        +            "DIALOG",
        +            "DIMENSION",
        +            "DIRTY",
        +            "DISCONNECT",
        +            "DISPLAY",
        +            "DISTINCT",
        +            "DORMANT",
        +            "DOWN",
        +            "DROP",
        +            "DYNAMIC",
        +            "ELSE",
        +            "END",
        +            "ERROR",
        +            "ESCAPE",
        +            "EVERY",
        +            "EXCLUSIVE",
        +            "EXECUTE",
        +            "EXISTS",
        +            "EXIT",
        +            "EXPLAIN",
        +            "EXTEND",
        +            "EXTENT",
        +            "EXTERNAL",
        +            "FETCH",
        +            "FGL_DRAWBOX",
        +            "FIELD",
        +            "FIELD_TOUCHED",
        +            "FILE",
        +            "FILL",
        +            "FINISH",
        +            "FIRST",
        +            "FLOAT",
        +            "FLUSH",
        +            "FOR",
        +            "FOREACH",
        +            "FORM",
        +            "FORMAT",
        +            "FOUND",
        +            "FRACTION",
        +            "FREE",
        +            "FROM",
        +            "FULL",
        +            "FUNCTION",
        +            "GET_FLDBUF",
        +            "GLOBALS",
        +            "GO",
        +            "GOTO",
        +            "GRANT",
        +            "GROUP",
        +            "HAVING",
        +            "HEADER",
        +            "HELP",
        +            "HIDE",
        +            "HOLD",
        +            "HOUR",
        +            "IDLE",
        +            "IF",
        +            "IMAGE",
        +            "IMMEDIATE",
        +            "IN",
        +            "INDEX",
        +            "INFIELD",
        +            "INITIALIZE",
        +            "INNER",
        +            "INPUT",
        +            "INSERT",
        +            "INTERRUPT",
        +            "INTERVAL",
        +            "INTO",
        +            "INVISIBLE",
        +            "IS",
        +            "ISOLATION",
        +            "JOIN",
        +            "KEEP",
        +            "KEY",
        +            "LABEL",
        +            "LAST",
        +            "LEFT",
        +            "LENGTH",
        +            "LET",
        +            "LIKE",
        +            "LINE",
        +            "LINENO",
        +            "LINES",
        +            "LOAD",
        +            "LOCATE",
        +            "LOCK",
        +            "LOG",
        +            "LSTR",
        +            "MAIN",
        +            "MARGIN",
        +            "MATCHES",
        +            "MAX",
        +            "MAXCOUNT",
        +            "MDY",
        +            "MEMORY",
        +            "MENU",
        +            "MESSAGE",
        +            "MIN",
        +            "MINUTE",
        +            "MOD",
        +            "MODE",
        +            "MODIFY",
        +            "MONEY",
        +            "NAME",
        +            "NEED",
        +            "NEXT",
        +            "NO",
        +            "NORMAL",
        +            "NOT",
        +            "NOTFOUND",
        +            "NULL",
        +            "NUMERIC",
        +            "OF",
        +            "ON",
        +            "OPEN",
        +            "OPTION",
        +            "OPTIONS",
        +            "OR",
        +            "ORDER",
        +            "OTHERWISE",
        +            "OUTER",
        +            "OUTPUT",
        +            "PAGE",
        +            "PAGENO",
        +            "PAUSE",
        +            "PERCENT",
        +            "PICTURE",
        +            "PIPE",
        +            "PRECISION",
        +            "PREPARE",
        +            "PREVIOUS",
        +            "PRINT",
        +            "PRINTER",
        +            "PRINTX",
        +            "PRIOR",
        +            "PRIVILEGES",
        +            "PROCEDURE",
        +            "PROGRAM",
        +            "PROMPT",
        +            "PUBLIC",
        +            "PUT",
        +            "QUIT",
        +            "READ",
        +            "REAL",
        +            "RECORD",
        +            "RECOVER",
        +            "RED ",
        +            "RELATIVE",
        +            "RENAME",
        +            "REOPTIMIZATION",
        +            "REPEATABLE",
        +            "REPORT",
        +            "RESOURCE",
        +            "RETURN",
        +            "RETURNING",
        +            "REVERSE",
        +            "REVOKE",
        +            "RIGHT",
        +            "ROLLBACK",
        +            "ROLLFORWARD",
        +            "ROW",
        +            "ROWS",
        +            "RUN",
        +            "SCHEMA",
        +            "SCREEN",
        +            "SCROLL",
        +            "SECOND",
        +            "SELECT",
        +            "SERIAL",
        +            "SET",
        +            "SFMT",
        +            "SHARE",
        +            "SHIFT",
        +            "SHOW",
        +            "SIGNAL ",
        +            "SIZE",
        +            "SKIP",
        +            "SLEEP",
        +            "SOME",
        +            "SPACE",
        +            "SPACES",
        +            "SQL",
        +            "SQLERRMESSAGE",
        +            "SQLERROR",
        +            "SQLSTATE",
        +            "STABILITY",
        +            "START",
        +            "STATISTICS",
        +            "STEP",
        +            "STOP",
        +            "STYLE",
        +            "SUM",
        +            "SYNONYM",
        +            "TABLE",
        +            "TEMP",
        +            "TERMINATE",
        +            "TEXT",
        +            "THEN",
        +            "THROUGH",
        +            "THRU",
        +            "TO",
        +            "TODAY",
        +            "TOP",
        +            "TRAILER",
        +            "TRANSACTION ",
        +            "UNBUFFERED",
        +            "UNCONSTRAINED",
        +            "UNDERLINE",
        +            "UNION",
        +            "UNIQUE",
        +            "UNITS",
        +            "UNLOAD",
        +            "UNLOCK",
        +            "UP",
        +            "UPDATE",
        +            "USE",
        +            "USER",
        +            "USING",
        +            "VALIDATE",
        +            "VALUE",
        +            "VALUES",
        +            "VARCHAR",
        +            "VIEW",
        +            "WAIT",
        +            "WAITING",
        +            "WARNING",
        +            "WHEN",
        +            "WHENEVER",
        +            "WHERE",
        +            "WHILE",
        +            "WINDOW",
        +            "WITH",
        +            "WITHOUT",
        +            "WORDWRAP",
        +            "WORK",
        +            "WRAP"
        +            ),
        +        2 => array(
        +            '&IFDEF', '&ENDIF'
        +            ),
        +        3 => array(
        +            "ARRAY",
        +            "BYTE",
        +            "CHAR",
        +            "CHARACTER",
        +            "CURSOR",
        +            "DATE",
        +            "DATETIME",
        +            "DECIMAL",
        +            "DOUBLE",
        +            "FALSE",
        +            "INT",
        +            "INTEGER",
        +            "SMALLFLOAT",
        +            "SMALLINT",
        +            "STRING",
        +            "TIME",
        +            "TRUE"
        +            ),
        +        4 => array(
        +            "BLACK",
        +            "BLINK",
        +            "BLUE",
        +            "BOLD",
        +            "ANSI",
        +            "ASC",
        +            "ASCENDING",
        +            "ASCII",
        +            "CYAN",
        +            "DESC",
        +            "DESCENDING",
        +            "GREEN",
        +            "MAGENTA",
        +            "OFF",
        +            "WHITE",
        +            "YELLOW",
        +            "YEAR",
        +            "DAY",
        +            "MONTH",
        +            "WEEKDAY"
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '+', '-', '*', '?', '=', '/', '%', '>', '<', '^', '!', '|', ':',
        +        '(', ')', '[', ']'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0600FF;',
        +            2 => 'color: #0000FF; font-weight: bold;',
        +            3 => 'color: #008000;',
        +            4 => 'color: #FF0000;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008080; font-style: italic;',
        +            2 => 'color: #008080;',
        +            'MULTI' => 'color: #008080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #008080; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #808080;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #FF0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #0000FF;',
        +            2 => 'color: #0000FF;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #008000;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/genie.php b/Sources/geshi/genie.php
        new file mode 100644
        index 0000000..db05ec0
        --- /dev/null
        +++ b/Sources/geshi/genie.php
        @@ -0,0 +1,157 @@
        + 'Genie',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Using and Namespace directives (basic support)
        +        //Please note that the alias syntax for using is not supported
        +        3 => '/(?:(?<=using[\\n\\s])|(?<=namespace[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*[a-zA-Z0-9_]+[\n\s]*(?=[;=])/i'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'HARDQUOTE' => array('@"', '"'),
        +    'HARDESCAPE' => array('""'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'and', 'as', 'abstract', 'break', 'case', 'cast', 'catch', 'const',
        +            'construct', 'continue', 'default', 'def', 'delete', 'div',
        +            'dynamic', 'do', 'downto', 'else', 'ensures', 'except', 'extern',
        +            'false', 'final', 'finally', 'for', 'foreach', 'get', 'if', 'in',
        +            'init', 'inline', 'internal', 'implements', 'lock', 'not', 'null',
        +            'of', 'or', 'otherwise', 'out', 'override', 'pass', 'raise',
        +            'raises', 'readonly', 'ref', 'requires', 'self', 'set', 'static',
        +            'super', 'switch', 'to', 'true', 'try', 'unless', 'uses', 'var', 'virtual',
        +            'volatile', 'void', 'when', 'while'
        +            ),
        +//        2 => array(
        +//            ),
        +        3 => array(
        +            'is', 'isa', 'new', 'owned', 'sizeof', 'typeof', 'unchecked',
        +            'unowned', 'weak'
        +            ),
        +        4 => array(
        +            'bool', 'byte', 'class', 'char', 'date', 'datetime', 'decimal', 'delegate',
        +            'double', 'enum', 'event', 'exception', 'float', 'int', 'interface',
        +            'long', 'object', 'prop', 'sbyte', 'short', 'single', 'string',
        +            'struct', 'ulong', 'ushort'
        +            ),
        +//        5 => array(
        +//            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', ':', ';',
        +        '(', ')', '{', '}', '[', ']', '|'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +//        2 => false,
        +        3 => false,
        +        4 => false,
        +//        5 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0600FF;',
        +//            2 => 'color: #FF8000; font-weight: bold;',
        +            3 => 'color: #008000;',
        +            4 => 'color: #FF0000;',
        +//            5 => 'color: #000000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008080; font-style: italic;',
        +//            2 => 'color: #008080;',
        +            3 => 'color: #008080;',
        +            'MULTI' => 'color: #008080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #008080; font-weight: bold;',
        +            'HARD' => 'color: #008080; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #666666;',
        +            'HARD' => 'color: #666666;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #FF0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #0000FF;',
        +            2 => 'color: #0000FF;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #008000;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +//        2 => '',
        +        3 => '',
        +        4 => '',
        +//        5 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => "(?|^])",
        +            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])"
        +        )
        +    )
        +);
        +
        +?>
        diff --git a/Sources/geshi/gettext.php b/Sources/geshi/gettext.php
        new file mode 100644
        index 0000000..80b531c
        --- /dev/null
        +++ b/Sources/geshi/gettext.php
        @@ -0,0 +1,97 @@
        + 'GNU Gettext',
        +    'COMMENT_SINGLE' => array('#:', '#.', '#,', '#|', '#'),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array('msgctxt', 'msgid_plural', 'msgid', 'msgstr'),
        +    ),
        +    'SYMBOLS' => array(),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +    ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight: bold;'
        +        ),
        +        'COMMENTS' => array(
        +            0 => 'color: #000099;',
        +            1 => 'color: #000099;',
        +            2 => 'color: #000099;',
        +            3 => 'color: #006666;',
        +            4 => 'color: #666666; font-style: italic;',
        +        ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +        ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +        ),
        +        'REGEXPS' => array(),
        +        'SYMBOLS' => array(),
        +        'NUMBERS' => array(
        +            0 => 'color: #000099;'
        +        ),
        +        'METHODS' => array(),
        +        'SCRIPT' => array(),
        +        'BRACKETS' => array(
        +            0 => 'color: #000099;'
        +        ),
        +    ),
        +    'URLS' => array(
        +        1 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +);
        +
        +?>
        diff --git a/Sources/geshi/glsl.php b/Sources/geshi/glsl.php
        new file mode 100644
        index 0000000..3615cfe
        --- /dev/null
        +++ b/Sources/geshi/glsl.php
        @@ -0,0 +1,205 @@
        + 'glSlang',
        +    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Multiline-continued single-line comments
        +        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
        +        //Multiline-continued preprocessor define
        +        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'if', 'else', 'for', 'while', 'do', 'break', 'continue', 'asm',
        +            'switch', 'case', 'default', 'return', 'discard',
        +            'namespace', 'using', 'sizeof', 'cast'
        +            ),
        +        2 => array(
        +            'const', 'uniform', 'attribute', 'centroid', 'varying', 'invariant',
        +            'in', 'out', 'inout', 'input', 'output', 'typedef', 'volatile',
        +            'public', 'static', 'extern', 'external', 'packed',
        +            'inline', 'noinline', 'noperspective', 'flat'
        +            ),
        +        3 => array(
        +            'void', 'bool', 'int', 'long', 'short', 'float', 'half', 'fixed',
        +            'unsigned', 'lowp', 'mediump', 'highp', 'precision',
        +            'vec2', 'vec3', 'vec4', 'bvec2', 'bvec3', 'bvec4',
        +            'dvec2', 'dvec3', 'dvec4', 'fvec2', 'fvec3', 'fvec4',
        +            'hvec2', 'hvec3', 'hvec4', 'ivec2', 'ivec3', 'ivec4',
        +            'mat2', 'mat3', 'mat4', 'mat2x2', 'mat3x2', 'mat4x2',
        +            'mat2x3', 'mat3x3', 'mat4x3', 'mat2x4', 'mat3x4', 'mat4x4',
        +            'sampler1D', 'sampler2D', 'sampler3D', 'samplerCube',
        +            'sampler1DShadow', 'sampler2DShadow',
        +            'struct', 'class', 'union', 'enum', 'interface', 'template'
        +            ),
        +        4 => array(
        +            'this', 'false', 'true'
        +            ),
        +        5 => array(
        +            'radians', 'degrees', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan',
        +            'pow', 'exp2', 'log2', 'sqrt', 'inversesqrt', 'abs', 'sign', 'ceil',
        +            'floor', 'fract', 'mod', 'min', 'max', 'clamp', 'mix', 'step',
        +            'smoothstep', 'length', 'distance', 'dot', 'cross', 'normalize',
        +            'ftransform', 'faceforward', 'reflect', 'matrixCompMult', 'equal',
        +            'lessThan', 'lessThanEqual', 'greaterThan', 'greaterThanEqual',
        +            'notEqual', 'any', 'all', 'not', 'texture1D', 'texture1DProj',
        +            'texture1DLod', 'texture1DProjLod', 'texture2D', 'texture2DProj',
        +            'texture2DLod', 'texture2DProjLod', 'texture3D', 'texture3DProj',
        +            'texture3DLod', 'texture3DProjLod', 'textureCube', 'textureCubeLod',
        +            'shadow1D', 'shadow1DProj', 'shadow1DLod', 'shadow1DProjLod',
        +            'shadow2D', 'shadow2DProj', 'shadow2DLod', 'shadow2DProjLod',
        +            'noise1', 'noise2', 'noise3', 'noise4'
        +            ),
        +        6 => array(
        +            'gl_Position', 'gl_PointSize', 'gl_ClipVertex', 'gl_FragColor',
        +            'gl_FragData', 'gl_FragDepth', 'gl_FragCoord', 'gl_FrontFacing',
        +            'gl_Color', 'gl_SecondaryColor', 'gl_Normal', 'gl_Vertex',
        +            'gl_MultiTexCoord0', 'gl_MultiTexCoord1', 'gl_MultiTexCoord2',
        +            'gl_MultiTexCoord3', 'gl_MultiTexCoord4', 'gl_MultiTexCoord5',
        +            'gl_MultiTexCoord6', 'gl_MultiTexCoord7', 'gl_FogCoord',
        +            'gl_MaxLights', 'gl_MaxClipPlanes', 'gl_MaxTextureUnits',
        +            'gl_MaxTextureCoords', 'gl_MaxVertexAttribs', 'gl_MaxVaryingFloats',
        +            'gl_MaxVertexUniformComponents', 'gl_MaxVertexTextureImageUnits',
        +            'gl_MaxCombinedTextureImageUnits', 'gl_MaxTextureImageUnits',
        +            'gl_MaxFragmentUniformComponents', 'gl_MaxDrawBuffers', 'gl_Point',
        +            'gl_ModelViewMatrix', 'gl_ProjectionMatrix', 'gl_FrontMaterial',
        +            'gl_ModelViewProjectionMatrix', 'gl_TextureMatrix', 'gl_ClipPlane',
        +            'gl_NormalMatrix', 'gl_ModelViewMatrixInverse', 'gl_BackMaterial',
        +            'gl_ProjectionMatrixInverse', 'gl_ModelViewProjectionMatrixInverse',
        +            'gl_TextureMatrixInverse', 'gl_ModelViewMatrixTranspose', 'gl_Fog',
        +            'gl_ProjectionMatrixTranspose', 'gl_NormalScale', 'gl_DepthRange',
        +            'gl_odelViewProjectionMatrixTranspose', 'gl_TextureMatrixTranspose',
        +            'gl_ModelViewMatrixInverseTranspose', 'gl_LightSource',
        +            'gl_ProjectionMatrixInverseTranspose', 'gl_LightModel',
        +            'gl_ModelViewProjectionMatrixInverseTranspose', 'gl_TexCoord',
        +            'gl_TextureMatrixInverseTranspose', 'gl_TextureEnvColor',
        +            'gl_FrontLightModelProduct', 'gl_BackLightModelProduct',
        +            'gl_FrontLightProduct', 'gl_BackLightProduct', 'gl_ObjectPlaneS',
        +            'gl_ObjectPlaneT', 'gl_ObjectPlaneR', 'gl_ObjectPlaneQ',
        +            'gl_EyePlaneS', 'gl_EyePlaneT', 'gl_EyePlaneR', 'gl_EyePlaneQ',
        +            'gl_FrontColor', 'gl_BackColor', 'gl_FrontSecondaryColor',
        +            'gl_BackSecondaryColor', 'gl_FogFragCoord', 'gl_PointCoord'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^',
        +        '&', '?', ':', '.', '|', ';', ',', '<', '>'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight: bold;',
        +            2 => 'color: #333399; font-weight: bold;',
        +            3 => 'color: #000066; font-weight: bold;',
        +            4 => 'color: #333399; font-weight: bold;',
        +            5 => 'color: #993333; font-weight: bold;',
        +            6 => 'color: #551111;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #009900;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000066;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000066;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'OOLANG' => array(
        +            'MATCH_BEFORE' => '',
        +            'MATCH_AFTER' => '[a-zA-Z_][a-zA-Z0-9_]*',
        +            'MATCH_SPACES' => '[\s]*'
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/gml.php b/Sources/geshi/gml.php
        new file mode 100644
        index 0000000..999251b
        --- /dev/null
        +++ b/Sources/geshi/gml.php
        @@ -0,0 +1,506 @@
        +5 and KEYWORDS=>6 sections (actually, they were empty).
        + *     I was planning of using those for the GML functions available only in the
        + *     registered version of the program, but not anymore.
        + *
        + * 2005/06/26 (1.0.3)
        + *  -  First Release.
        + *
        + * TODO (updated 2005/11/11)
        + * -------------------------
        + *  -  Test it for a while and make the appropiate corrections.
        + *
        + *************************************************************************************
        + *
        + *     This file is part of GeSHi.
        + *
        + *   GeSHi is free software; you can redistribute it and/or modify
        + *   it under the terms of the GNU General Public License as published by
        + *   the Free Software Foundation; either version 2 of the License, or
        + *   (at your option) any later version.
        + *
        + *   GeSHi is distributed in the hope that it will be useful,
        + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        + *   GNU General Public License for more details.
        + *
        + *   You should have received a copy of the GNU General Public License
        + *   along with GeSHi; if not, write to the Free Software
        + *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + ************************************************************************************/
        +
        +$language_data = array (
        +    'LANG_NAME' => 'GML',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'"),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        // language keywords
        +        1 => array(
        +            'break', 'continue', 'do', 'until', 'if', 'else',
        +            'exit', 'for', 'repeat', 'return', 'switch',
        +            'case', 'default', 'var', 'while', 'with', 'div', 'mod',
        +            // GML Language overview
        +            'self', 'other', 'all', 'noone', 'global',
        +            ),
        +        // modifiers and built-in variables
        +        2 => array(
        +            // Game play
        +            'x','y','xprevious','yprevious','xstart','ystart','hspeed','vspeed','direction','speed',
        +            'friction','gravity','gravity_direction',
        +            'path_index','path_position','path_positionprevious','path_speed','path_orientation',
        +            'path_endaction',
        +            'object_index','id','mask_index','solid','persistent','instance_count','instance_id',
        +            'room_speed','fps','current_time','current_year','current_month','current_day','current_weekday',
        +            'current_hour','current_minute','current_second','alarm','timeline_index','timeline_position',
        +            'timeline_speed',
        +            'room','room_first','room_last','room_width','room_height','room_caption','room_persistent',
        +            'score','lives','health','show_score','show_lives','show_health','caption_score','caption_lives',
        +            'caption_health',
        +            'event_type','event_number','event_object','event_action',
        +            'error_occurred','error_last',
        +            // User interaction
        +            'keyboard_lastkey','keyboard_key','keyboard_lastchar','keyboard_string',
        +            'mouse_x','mouse_y','mouse_button','mouse_lastbutton',
        +            // Game Graphics
        +            'sprite_index','sprite_width','sprite_height','sprite_xoffset','sprite_yoffset',
        +            'image_number','image_index','image_speed','image_xscale','image_yscale','image_angle',
        +            'image_alpha','image_blend','bbox_left','bbox_right','bbox_top','bbox_bottom',
        +            'background_color','background_showcolor','background_visible','background_foreground',
        +            'background_index','background_x','background_y','background_width','background_height',
        +            'background_htiled','background_vtiled','background_xscale','background_yscale',
        +            'background_hspeed','background_vspeed','background_blend','background_alpha',
        +            'background','left, top, width, height','depth','visible','xscale','yscale','blend','alpha',
        +            'view_enabled','view_current','view_visible','view_yview','view_wview','view_hview','view_xport',
        +            'view_yport','view_wport','view_hport','view_angle','view_hborder','view_vborder','view_hspeed',
        +            'view_vspeed','view_object',
        +            'transition_kind',
        +            // Files, registry and executing programs
        +            'game_id','working_directory','temp_directory',
        +            'secure_mode',
        +            // Creating particles
        +            'xmin', 'xmax', 'ymin', 'ymax','shape','distribution','particle type','number',
        +            'force','dist','kind','additive', 'parttype1', 'parttype2'
        +            ),
        +        // functions
        +        3 => array(
        +            // Computing things
        +            'random','choose','abs','sign','round','floor','ceil','frac','sqrt','sqr','power','exp','ln',
        +            'log2','log10','logn','sin','cos','tan','arcsin','arccos','arctan','arctan2','degtorad',
        +            'radtodeg','min','max','mean','median','point_distance','point_direction','lengthdir_x',
        +            'lengthdir_y','is_real','is_string',
        +            'chr','ord','real','string','string_format','string_length','string_pos','string_copy',
        +            'string_char_at','string_delete','string_insert','string_replace','string_replace_all',
        +            'string_count','string_lower','string_upper','string_repeat','string_letters','string_digits',
        +            'string_lettersdigits','clipboard_has_text','clipboard_get_text','clipboard_set_text',
        +            'date_current_datetime','date_current_date','date_current_time','date_create_datetime',
        +            'date_create_date','date_create_time','date_valid_datetime','date_valid_date','date_valid_time',
        +            'date_inc_year','date_inc_month','date_inc_week','date_inc_day','date_inc_hour',
        +            'date_inc_minute','date_inc_second','date_get_year','date_get_month','date_get_week',
        +            'date_get_day','date_get_hour', 'date_get_minute','date_get_second','date_get_weekday',
        +            'date_get_day_of_year','date_get_hour_of_year','date_get_minute_of_year',
        +            'date_get_second_of_year','date_year_span','date_month_span','date_week_span','date_day_span',
        +            'date_hour_span','date_minute_span','date_second_span','date_compare_datetime',
        +            'date_compare_date','date_compare_time','date_date_of','date_time_of','date_datetime_string',
        +            'date_date_string','date_time_string','date_days_in_month','date_days_in_year','date_leap_year',
        +            'date_is_today',
        +            // Game play
        +            'motion_set','motion_add','place_free','place_empty','place_meeting','place_snapped',
        +            'move_random','move_snap','move_wrap','move_towards_point','move_bounce_solid','move_bounce_all',
        +            'move_contact_solid','move_contact_all','move_outside_solid','move_outside_all',
        +            'distance_to_point','distance_to_object','position_empty','position_meeting',
        +            'path_start','path_end',
        +            'mp_linear_step','mp_linear_step_object','mp_potential_step','mp_potential_step_object',
        +            'mp_potential_settings','mp_linear_path','mp_linear_path_object', 'mp_potential_path',
        +            'mp_potential_path_object','mp_grid_create','mp_grid_destroy','mp_grid_clear_all',
        +            'mp_grid_clear_cell','mp_grid_clear_rectangle','mp_grid_add_cell','mp_grid_add_rectangle',
        +            'mp_grid_add_instances','mp_grid_path','mp_grid_draw',
        +            'collision_point','collision_rectangle','collision_circle','collision_ellipse','collision_line',
        +            'instance_find','instance_exists','instance_number','instance_position','instance_nearest',
        +            'instance_furthest','instance_place','instance_create','instance_copy','instance_destroy',
        +            'instance_change','position_destroy','position_change',
        +            'instance_deactivate_all','instance_deactivate_object','instance_deactivate_region',
        +            'instance_activate_all','instance_activate_object','instance_activate_region',
        +            'sleep',
        +            'room_goto','room_goto_previous','room_goto_next','room_restart','room_previous','room_next',
        +            'game_end','game_restart','game_save','game_load',
        +            'event_perform', 'event_perform_object','event_user','event_inherited',
        +            'show_debug_message','variable_global_exists','variable_local_exists','variable_global_get',
        +            'variable_global_array_get','variable_global_array2_get','variable_local_get',
        +            'variable_local_array_get','variable_local_array2_get','variable_global_set',
        +            'variable_global_array_set','variable_global_array2_set','variable_local_set',
        +            'variable_local_array_set','variable_local_array2_set','set_program_priority',
        +            // User interaction
        +            'keyboard_set_map','keyboard_get_map','keyboard_unset_map','keyboard_check',
        +            'keyboard_check_pressed','keyboard_check_released','keyboard_check_direct',
        +            'keyboard_get_numlock','keyboard_set_numlock','keyboard_key_press','keyboard_key_release',
        +            'keyboard_clear','io_clear','io_handle','keyboard_wait',
        +            'mouse_check_button','mouse_check_button_pressed','mouse_check_button_released','mouse_clear',
        +            'mouse_wait',
        +            'joystick_exists','joystick_name','joystick_axes','joystick_buttons','joystick_has_pov',
        +            'joystick_direction','joystick_check_button','joystick_xpos','joystick_ypos','joystick_zpos',
        +            'joystick_rpos','joystick_upos','joystick_vpos','joystick_pov',
        +            // Game Graphics
        +            'draw_sprite','draw_sprite_stretched','draw_sprite_tiled','draw_sprite_part','draw_background',
        +            'draw_background_stretched','draw_background_tiled','draw_background_part','draw_sprite_ext',
        +            'draw_sprite_stretched_ext','draw_sprite_tiled_ext','draw_sprite_part_ext','draw_sprite_general',
        +            'draw_background_ext','draw_background_stretched_ext','draw_background_tiled_ext',
        +            'draw_background_part_ext','draw_background_general',
        +            'draw_clear','draw_clear_alpha','draw_point','draw_line','draw_rectangle','draw_roundrect',
        +            'draw_triangle','draw_circle','draw_ellipse','draw_arrow','draw_button','draw_path',
        +            'draw_healthbar','draw_set_color','draw_set_alpha','draw_get_color','draw_get_alpha',
        +            'make_color_rgb','make_color_hsv','color_get_red','color_get_green','color_get_blue',
        +            'color_get_hue','color_get_saturation','color_get_value','merge_color','draw_getpixel',
        +            'screen_save','screen_save_part',
        +            'draw_set_font','draw_set_halign','draw_set_valign','draw_text','draw_text_ext','string_width',
        +            'string_height','string_width_ext','string_height_ext','draw_text_transformed',
        +            'draw_text_ext_transformed','draw_text_color','draw_text_ext_color',
        +            'draw_text_transformed_color','draw_text_ext_transformed_color',
        +            'draw_point_color','draw_line_color','draw_rectangle_color','draw_roundrect_color',
        +            'draw_triangle_color','draw_circle_color','draw_ellipse_color','draw_primitive_begin',
        +            'draw_vertex','draw_vertex_color','draw_primitive_end','sprite_get_texture',
        +            'background_get_texture','texture_preload','texture_set_priority',
        +            'texture_get_width','texture_get_height','draw_primitive_begin_texture','draw_vertex_texture',
        +            'draw_vertex_texture_color','texture_set_interpolation',
        +            'texture_set_blending','texture_set_repeat','draw_set_blend_mode','draw_set_blend_mode_ext',
        +            'surface_create','surface_free','surface_exists','surface_get_width','surface_get_height',
        +            'surface_get_texture','surface_set_target','surface_reset_target','surface_getpixel',
        +            'surface_save','surface_save_part','draw_surface','draw_surface_stretched','draw_surface_tiled',
        +            'draw_surface_part','draw_surface_ext','draw_surface_stretched_ext','draw_surface_tiled_ext',
        +            'draw_surface_part_ext','draw_surface_general','surface_copy','surface_copy_part',
        +            'tile_add','tile_delete','tile_exists','tile_get_x','tile_get_y','tile_get_left','tile_get_top',
        +            'tile_get_width','tile_get_height','tile_get_depth','tile_get_visible','tile_get_xscale',
        +            'tile_get_yscale','tile_get_background','tile_get_blend','tile_get_alpha','tile_set_position',
        +            'tile_set_region','tile_set_background','tile_set_visible','tile_set_depth','tile_set_scale',
        +            'tile_set_blend','tile_set_alpha','tile_layer_hide','tile_layer_show','tile_layer_delete',
        +            'tile_layer_shift','tile_layer_find','tile_layer_delete_at','tile_layer_depth',
        +            'display_get_width','display_get_height','display_get_colordepth','display_get_frequency',
        +            'display_set_size','display_set_colordepth','display_set_frequency','display_set_all',
        +            'display_test_all','display_reset','display_mouse_get_x','display_mouse_get_y','display_mouse_set',
        +            'window_set_visible','window_get_visible','window_set_fullscreen','window_get_fullscreen',
        +            'window_set_showborder','window_get_showborder','window_set_showicons','window_get_showicons',
        +            'window_set_stayontop','window_get_stayontop','window_set_sizeable','window_get_sizeable',
        +            'window_set_caption','window_get_caption','window_set_cursor', 'window_get_cursor',
        +            'window_set_color','window_get_color','window_set_region_scale','window_get_region_scale',
        +            'window_set_position','window_set_size','window_set_rectangle','window_center','window_default',
        +            'window_get_x','window_get_y','window_get_width','window_get_height','window_mouse_get_x',
        +            'window_mouse_get_y','window_mouse_set',
        +            'window_set_region_size','window_get_region_width','window_get_region_height',
        +            'window_view_mouse_get_x','window_view_mouse_get_y','window_view_mouse_set',
        +            'window_views_mouse_get_x','window_views_mouse_get_y','window_views_mouse_set',
        +            'screen_redraw','screen_refresh','set_automatic_draw','set_synchronization','screen_wait_vsync',
        +            // Sound and music)
        +            'sound_play','sound_loop','sound_stop','sound_stop_all','sound_isplaying','sound_volume',
        +            'sound_global_volume','sound_fade','sound_pan','sound_background_tempo','sound_set_search_directory',
        +            'sound_effect_set','sound_effect_chorus','sound_effect_echo',    'sound_effect_flanger',
        +            'sound_effect_gargle','sound_effect_reverb','sound_effect_compressor','sound_effect_equalizer',
        +            'sound_3d_set_sound_position','sound_3d_set_sound_velocity','sound_3d_set_sound_distance',
        +            'sound_3d_set_sound_cone',
        +            'cd_init','cd_present','cd_number','cd_playing','cd_paused','cd_track','cd_length',
        +            'cd_track_length','cd_position','cd_track_position','cd_play','cd_stop','cd_pause','cd_resume',
        +            'cd_set_position','cd_set_track_position','cd_open_door','cd_close_door','MCI_command',
        +            // Splash screens, highscores, and other pop-ups
        +            'show_text','show_image','show_video','show_info','load_info',
        +            'show_message','show_message_ext','show_question','get_integer','get_string',
        +            'message_background','message_alpha','message_button','message_text_font','message_button_font',
        +            'message_input_font','message_mouse_color','message_input_color','message_caption',
        +            'message_position','message_size','show_menu','show_menu_pos','get_color','get_open_filename',
        +            'get_save_filename','get_directory','get_directory_alt','show_error',
        +            'highscore_show','highscore_set_background','highscore_set_border','highscore_set_font',
        +            'highscore_set_colors','highscore_set_strings','highscore_show_ext','highscore_clear',
        +            'highscore_add','highscore_add_current','highscore_value','highscore_name','draw_highscore',
        +            // Resources
        +            'sprite_exists','sprite_get_name','sprite_get_number','sprite_get_width','sprite_get_height',
        +            'sprite_get_transparent','sprite_get_smooth','sprite_get_preload','sprite_get_xoffset',
        +            'sprite_get_yoffset','sprite_get_bbox_left','sprite_get_bbox_right','sprite_get_bbox_top',
        +            'sprite_get_bbox_bottom','sprite_get_bbox_mode','sprite_get_precise',
        +            'sound_exists','sound_get_name','sound_get_kind','sound_get_preload','sound_discard',
        +            'sound_restore',
        +            'background_exists','background_get_name','background_get_width','background_get_height',
        +            'background_get_transparent','background_get_smooth','background_get_preload',
        +            'font_exists','font_get_name','font_get_fontname','font_get_bold','font_get_italic',
        +            'font_get_first','font_get_last',
        +            'path_exists','path_get_name','path_get_length','path_get_kind','path_get_closed',
        +            'path_get_precision','path_get_number','path_get_point_x','path_get_point_y',
        +            'path_get_point_speed','path_get_x','path_get_y','path_get_speed',
        +            'script_exists','script_get_name','script_get_text',
        +            'timeline_exists','timeline_get_name',
        +            'object_exists','object_get_name','object_get_sprite','object_get_solid','object_get_visible',
        +            'object_get_depth','object_get_persistent','object_get_mask','object_get_parent',
        +            'object_is_ancestor',
        +            'room_exists','room_get_name',
        +            // Changing resources
        +            'sprite_set_offset','sprite_set_bbox_mode','sprite_set_bbox','sprite_set_precise',
        +            'sprite_duplicate','sprite_assign','sprite_merge','sprite_add','sprite_replace',
        +            'sprite_create_from_screen','sprite_add_from_screen','sprite_create_from_surface',
        +            'sprite_add_from_surface','sprite_delete','sprite_set_alpha_from_sprite',
        +            'sound_add','sound_replace','sound_delete',
        +            'background_duplicate','background_assign','background_add','background_replace',
        +            'background_create_color','background_create_gradient','background_create_from_screen',
        +            'background_create_from_surface','background_delete','background_set_alpha_from_background',
        +            'font_add','font_add_sprite','font_replace_sprite','font_delete',
        +            'path_set_kind','path_set_closed','path_set_precision','path_add','path_delete','path_duplicate',
        +            'path_assign','path_append','path_add_point','path_insert_point','path_change_point',
        +            'path_delete_point','path_clear_points','path_reverse','path_mirror','path_flip','path_rotate',
        +            'path_scale','path_shift',
        +            'execute_string','execute_file','script_execute',
        +            'timeline_add','timeline_delete','timeline_moment_add','timeline_moment_clear',
        +            'object_set_sprite','object_set_solid','object_set_visible','object_set_depth',
        +            'object_set_persistent','object_set_mask','object_set_parent','object_add','object_delete',
        +            'object_event_add','object_event_clear',
        +            'room_set_width','room_set_height','room_set_caption','room_set_persistent','room_set_code',
        +            'room_set_background_color','room_set_background','room_set_view','room_set_view_enabled',
        +            'room_add','room_duplicate','room_assign','room_instance_add','room_instance_clear',
        +            'room_tile_add','room_tile_add_ext','room_tile_clear',
        +            // Files, registry and executing programs
        +            'file_text_open_read','file_text_open_write','file_text_open_append','file_text_close',
        +            'file_text_write_string','file_text_write_real','file_text_writeln','file_text_read_string',
        +            'file_text_read_real','file_text_readln','file_text_eof','file_exists','file_delete',
        +            'file_rename','file_copy','directory_exists','directory_create','file_find_first',
        +            'file_find_next','file_find_close','file_attributes', 'filename_name','filename_path',
        +            'filename_dir','filename_drive','filename_ext','filename_change_ext','file_bin_open',
        +            'file_bin_rewrite','file_bin_close','file_bin_size','file_bin_position','file_bin_seek',
        +            'file_bin_write_byte','file_bin_read_byte','parameter_count','parameter_string',
        +            'environment_get_variable',
        +            'registry_write_string','registry_write_real','registry_read_string','registry_read_real',
        +            'registry_exists','registry_write_string_ext','registry_write_real_ext',
        +            'registry_read_string_ext','registry_read_real_ext','registry_exists_ext','registry_set_root',
        +            'ini_open','ini_close','ini_read_string','ini_read_real','ini_write_string','ini_write_real',
        +            'ini_key_exists','ini_section_exists','ini_key_delete','ini_section_delete',
        +            'execute_program','execute_shell',
        +            // Data structures
        +            'ds_stack_create','ds_stack_destroy','ds_stack_clear','ds_stack_size','ds_stack_empty',
        +            'ds_stack_push','ds_stack_pop','ds_stack_top',
        +            'ds_queue_create','ds_queue_destroy','ds_queue_clear','ds_queue_size','ds_queue_empty',
        +            'ds_queue_enqueue','ds_queue_dequeue','ds_queue_head','ds_queue_tail',
        +            'ds_list_create','ds_list_destroy','ds_list_clear','ds_list_size','ds_list_empty','ds_list_add',
        +            'ds_list_insert','ds_list_replace','ds_list_delete','ds_list_find_index','ds_list_find_value',
        +            'ds_list_sort',
        +            'ds_map_create','ds_map_destroy','ds_map_clear','ds_map_size','ds_map_empty','ds_map_add',
        +            'ds_map_replace','ds_map_delete','ds_map_exists','ds_map_find_value','ds_map_find_previous',
        +            'ds_map_find_next','ds_map_find_first','ds_map_find_last',
        +            'ds_priority_create','ds_priority_destroy','ds_priority_clear','ds_priority_size',
        +            'ds_priority_empty','ds_priority_add','ds_priority_change_priority','ds_priority_find_priority',
        +            'ds_priority_delete_value','ds_priority_delete_min','ds_priority_find_min',
        +            'ds_priority_delete_max','ds_priority_find_max',
        +            'ds_grid_create','ds_grid_destroy','ds_grid_resize','ds_grid_width','ds_grid_height',
        +            'ds_grid_clear','ds_grid_set','ds_grid_add','ds_grid_multiply','ds_grid_set_region',
        +            'ds_grid_add_region','ds_grid_multiply_region','ds_grid_set_disk','ds_grid_add_disk',
        +            'ds_grid_multiply_disk','ds_grid_get','ds_grid_get_sum','ds_grid_get_max','ds_grid_get_min',
        +            'ds_grid_get_mean','ds_grid_get_disk_sum','ds_grid_get_disk_min','ds_grid_get_disk_max',
        +            'ds_grid_get_disk_mean','ds_grid_value_exists','ds_grid_value_x','ds_grid_value_y',
        +            'ds_grid_value_disk_exists','ds_grid_value_disk_x','ds_grid_value_disk_y',
        +            // Creating particles
        +            'effect_create_below','effect_create_above','effect_clear',
        +            'part_type_create','part_type_destroy','part_type_exists','part_type_clear','part_type_shape',
        +            'part_type_sprite','part_type_size','part_type_scale',
        +            'part_type_orientation','part_type_color1','part_type_color2','part_type_color3',
        +            'part_type_color_mix','part_type_color_rgb','part_type_color_hsv',
        +            'part_type_alpha1','part_type_alpha2','part_type_alpha3','part_type_blend','part_type_life',
        +            'part_type_step','part_type_death','part_type_speed','part_type_direction','part_type_gravity',
        +            'part_system_create','part_system_destroy','part_system_exists','part_system_clear',
        +            'part_system_draw_order','part_system_depth','part_system_position',
        +            'part_system_automatic_update','part_system_automatic_draw','part_system_update',
        +            'part_system_drawit','part_particles_create','part_particles_create_color',
        +            'part_particles_clear','part_particles_count',
        +            'part_emitter_create','part_emitter_destroy','part_emitter_destroy_all','part_emitter_exists',
        +            'part_emitter_clear','part_emitter_region','part_emitter_burst','part_emitter_stream',
        +            'part_attractor_create','part_attractor_destroy','part_attractor_destroy_all',
        +            'part_attractor_exists','part_attractor_clear','part_attractor_position','part_attractor_force',
        +            'part_destroyer_create','part_destroyer_destroy','part_destroyer_destroy_all',
        +            'part_destroyer_exists','part_destroyer_clear','part_destroyer_region',
        +            'part_deflector_create','part_deflector_destroy','part_deflector_destroy_all',
        +            'part_deflector_exists','part_deflector_clear','part_deflector_region','part_deflector_kind',
        +            'part_deflector_friction',
        +            'part_changer_create','part_changer_destroy','part_changer_destroy_all','part_changer_exists',
        +            'part_changer_clear','part_changer_region','part_changer_types','part_changer_kind',
        +            // Multiplayer games
        +            'mplay_init_ipx','mplay_init_tcpip','mplay_init_modem','mplay_init_serial',
        +            'mplay_connect_status','mplay_end','mplay_ipaddress',
        +            'mplay_session_create','mplay_session_find','mplay_session_name','mplay_session_join',
        +            'mplay_session_mode','mplay_session_status','mplay_session_end',
        +            'mplay_player_find','mplay_player_name','mplay_player_id',
        +            'mplay_data_write','mplay_data_read','mplay_data_mode',
        +            'mplay_message_send','mplay_message_send_guaranteed','mplay_message_receive','mplay_message_id',
        +            'mplay_message_value','mplay_message_player','mplay_message_name','mplay_message_count',
        +            'mplay_message_clear',
        +            // Using DLL's
        +            'external_define','external_call','external_free','window_handle',
        +            // 3D Graphics
        +            'd3d_start','d3d_end','d3d_set_hidden','d3d_set_perspective',
        +            'd3d_set_depth',
        +            'd3d_primitive_begin','d3d_vertex','d3d_vertex_color','d3d_primitive_end',
        +            'd3d_primitive_begin_texture','d3d_vertex_texture','d3d_vertex_texture_color','d3d_set_culling',
        +            'd3d_draw_block','d3d_draw_cylinder','d3d_draw_cone','d3d_draw_ellipsoid','d3d_draw_wall',
        +            'd3d_draw_floor',
        +            'd3d_set_projection','d3d_set_projection_ext','d3d_set_projection_ortho',
        +            'd3d_set_projection_perspective',
        +            'd3d_transform_set_identity','d3d_transform_set_translation','d3d_transform_set_scaling',
        +            'd3d_transform_set_rotation_x','d3d_transform_set_rotation_y','d3d_transform_set_rotation_z',
        +            'd3d_transform_set_rotation_axis','d3d_transform_add_translation','d3d_transform_add_scaling',
        +            'd3d_transform_add_rotation_x','d3d_transform_add_rotation_y','d3d_transform_add_rotation_z',
        +            'd3d_transform_add_rotation_axis','d3d_transform_stack_clear','d3d_transform_stack_empty',
        +            'd3d_transform_stack_push','d3d_transform_stack_pop','d3d_transform_stack_top',
        +            'd3d_transform_stack_discard',
        +            'd3d_set_fog',
        +            'd3d_set_lighting','d3d_set_shading','d3d_light_define_direction','d3d_light_define_point',
        +            'd3d_light_enable','d3d_vertex_normal','d3d_vertex_normal_color','d3d_vertex_normal_texture',
        +            'd3d_vertex_normal_texture_color',
        +            'd3d_model_create','d3d_model_destroy','d3d_model_clear','d3d_model_save','d3d_model_load',
        +            'd3d_model_draw','d3d_model_primitive_begin','d3d_model_vertex','d3d_model_vertex_color',
        +            'd3d_model_vertex_texture','d3d_model_vertex_texture_color','d3d_model_vertex_normal',
        +            'd3d_model_vertex_normal_color','d3d_model_vertex_normal_texture',
        +            'd3d_model_vertex_normal_texture_color','d3d_model_primitive_end','d3d_model_block',
        +            'd3d_model_cylinder','d3d_model_cone','d3d_model_ellipsoid','d3d_model_wall','d3d_model_floor'
        +            ),
        +        // constants
        +        4 => array(
        +            'true', 'false', 'pi',
        +            'ev_destroy','ev_step','ev_alarm','ev_keyboard','ev_mouse','ev_collision','ev_other','ev_draw',
        +            'ev_keypress','ev_keyrelease','ev_left_button','ev_right_button','ev_middle_button',
        +            'ev_no_button','ev_left_press','ev_right_press','ev_middle_press','ev_left_release',
        +            'ev_right_release','ev_middle_release','ev_mouse_enter','ev_mouse_leave','ev_mouse_wheel_up',
        +            'ev_mouse_wheel_down','ev_global_left_button','ev_global_right_button','ev_global_middle_button',
        +            'ev_global_left_press','ev_global_right_press','ev_global_middle_press','ev_global_left_release',
        +            'ev_global_right_release','ev_global_middle_release','ev_joystick1_left','ev_joystick1_right',
        +            'ev_joystick1_up','ev_joystick1_down','ev_joystick1_button1','ev_joystick1_button2',
        +            'ev_joystick1_button3','ev_joystick1_button4','ev_joystick1_button5','ev_joystick1_button6',
        +            'ev_joystick1_button7','ev_joystick1_button8','ev_joystick2_left','ev_joystick2_right',
        +            'ev_joystick2_up','ev_joystick2_down','ev_joystick2_button1','ev_joystick2_button2',
        +            'ev_joystick2_button3','ev_joystick2_button4','ev_joystick2_button5','ev_joystick2_button6',
        +            'ev_joystick2_button7','ev_joystick2_button8',
        +            'ev_outside','ev_boundary','ev_game_start','ev_game_end','ev_room_start','ev_room_end',
        +            'ev_no_more_lives','ev_no_more_health','ev_animation_end','ev_end_of_path','ev_user0','ev_user1',
        +            'ev_user2','ev_user3','ev_user4','ev_user5','ev_user6','ev_user7','ev_user8','ev_user9',
        +            'ev_user10','ev_user11','ev_user12','ev_user13','ev_user14','ev_user15','ev_step_normal',
        +            'ev_step_begin','ev_step_end',
        +            'vk_nokey','vk_anykey','vk_left','vk_right','vk_up','vk_down','vk_enter','vk_escape','vk_space',
        +            'vk_shift','vk_control','vk_alt','vk_backspace','vk_tab','vk_home','vk_end','vk_delete',
        +            'vk_insert','vk_pageup','vk_pagedown','vk_pause','vk_printscreen',
        +            'vk_f1','vk_f2','vk_f3','vk_f4','vk_f5','vk_f6','vk_f7','vk_f8','vk_f9','vk_f10','vk_f11','vk_f12',
        +            'vk_numpad0','vk_numpad1','vk_numpad2','vk_numpad3','vk_numpad4','vk_numpad5','vk_numpad6',
        +            'vk_numpad7','vk_numpad8','vk_numpad9', 'vk_multiply','vk_divide','vk_add','vk_subtract',
        +            'vk_decimal','vk_lshift','vk_lcontrol','vk_lalt','vk_rshift','vk_rcontrol','vk_ralt',
        +            'c_aqua','c_black','c_blue','c_dkgray','c_fuchsia','c_gray','c_green','c_lime','c_ltgray',
        +            'c_maroon','c_navy','c_olive','c_purple','c_red','c_silver','c_teal','c_white','c_yellow',
        +            'fa_left', 'fa_center','fa_right','fa_top','fa_middle','fa_bottom',
        +            'pr_pointlist','pr_linelist','pr_linestrip','pr_trianglelist','pr_trianglestrip',
        +            'pr_trianglefan',
        +            'cr_none','cr_arrow','cr_cross','cr_beam','cr_size_nesw','cr_size_ns','cr_size_nwse',
        +            'cr_size_we','cr_uparrow','cr_hourglass','cr_drag','cr_nodrop','cr_hsplit','cr_vsplit',
        +            'cr_multidrag','cr_sqlwait','cr_no','cr_appstart','cr_help','cr_handpoint','cr_size_all',
        +            'se_chorus','se_echo','se_flanger','se_gargle','se_reverb','se_compressor','se_equalizer',
        +            'fa_readonly','fa_hidden','fa_sysfile','fa_volumeid','fa_directory','fa_archive',
        +            'pt_shape_pixel','pt_shape_disk','pt_shape_square','pt_shape_line','pt_shape_star',
        +            'pt_shape_circle','pt_shape_ring','pt_shape_sphere','pt_shape_flare','pt_shape_spark',
        +            'pt_shape_explosion','pt_shape_cloud','pt_shape_smoke','pt_shape_snow',
        +            'ps_shape_rectangle','ps_shape_ellipse ','ps_shape_diamond','ps_shape_line',
        +            'ps_distr_linear','ps_distr_gaussian','ps_force_constant','ps_force_linear','ps_force_quadratic',
        +            'ps_deflect_horizontal', 'ps_deflect_vertical',
        +            'ps_change_motion','ps_change_shape','ps_change_all'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']',
        +        '&&', '||', '^^', '&', '|', '^',
        +        '<', '<=', '==', '!=', '>', '>=', '=',
        +        '<<', '>>',
        +        '+=', '-=', '*=', '/=',
        +        '+', '-', '*', '/',
        +        '!', '~', ',', ';'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'font-weight: bold; color: #000000;',
        +            2 => 'font-weight: bold; color: #000000;',
        +            3 => 'color: navy;',
        +            4 => 'color: #663300;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'font-style: italic; color: green;',
        +            'MULTI' => 'font-style: italic; color: green;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;' //'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #202020;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66; font-weight: bold;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/gnuplot.php b/Sources/geshi/gnuplot.php
        new file mode 100644
        index 0000000..d8445ea
        --- /dev/null
        +++ b/Sources/geshi/gnuplot.php
        @@ -0,0 +1,296 @@
        + 'Gnuplot',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('`', '"', "'"),
        +    'ESCAPE_CHAR' => '\\',
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC |
        +        GESHI_NUMBER_FLT_NONSCI |
        +        GESHI_NUMBER_FLT_SCI_SHORT |
        +        GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        // copy output of help command, indent properly and use this replace regexp:
        +        // ([a-z0-9_\-]+)(( )+|$)          =>     '\1',\3
        +
        +        // commands as found in `help commands`
        +        1 => array(
        +            'bind', 'call', 'cd', 'clear',
        +            'exit', 'fit', 'help', 'history',
        +            'if', 'load', 'lower', 'pause',
        +            'plot', 'print', 'pwd', 'quit',
        +            'raise', 'replot', 'reread', 'reset',
        +            'save', 'set', 'shell', 'show',
        +            'splot', 'system', 'test', 'unset',
        +            'update'
        +            ),
        +        2 => array(
        +            // set commands as returned by `help set`
        +            'angles', 'arrow', 'autoscale', 'bars',
        +            'bmargin', 'border', 'boxwidth', 'cbdata',
        +            'cbdtics', 'cblabel', 'cbmtics', 'cbrange',
        +            'cbtics', 'clabel', 'clip', 'cntrparam',
        +            'colorbox', 'contour', 'datafile', 'date_specifiers',
        +            'decimalsign', 'dgrid3d', 'dummy', 'encoding',
        +            'fontpath', 'format', 'grid',
        +            'hidden3d', 'historysize', 'isosamples', 'key',
        +            'label', 'lmargin', 'loadpath', 'locale',
        +            'log', 'logscale', 'macros', 'mapping',
        +            'margin', 'missing', 'mouse', 'multiplot',
        +            'mx2tics', 'mxtics', 'my2tics', 'mytics',
        +            'mztics', 'object', 'offsets', 'origin',
        +            'output', 'palette', 'parametric', 'pm3d',
        +            'pointsize', 'polar', 'rmargin',
        +            'rrange', 'samples', 'size', 'style',
        +            'surface', 'table', 'term', 'terminal',
        +            'termoption', 'tics', 'ticscale', 'ticslevel',
        +            'time_specifiers', 'timefmt', 'timestamp', 'title',
        +            'trange', 'urange', 'view',
        +            'vrange', 'x2data', 'x2dtics', 'x2label',
        +            'x2mtics', 'x2range', 'x2tics', 'x2zeroaxis',
        +            'xdata', 'xdtics', 'xlabel', 'xmtics',
        +            'xrange', 'xtics', 'xyplane', 'xzeroaxis',
        +            'y2data', 'y2dtics', 'y2label', 'y2mtics',
        +            'y2range', 'y2tics', 'y2zeroaxis', 'ydata',
        +            'ydtics', 'ylabel', 'ymtics', 'yrange',
        +            'ytics', 'yzeroaxis', 'zdata', 'zdtics',
        +            'zero', 'zeroaxis', 'zlabel', 'zmtics',
        +            'zrange', 'ztics', 'zzeroaxis',
        +            // same but with leading no
        +            'noangles', 'noarrow', 'noautoscale', 'nobars',
        +            'nobmargin', 'noborder', 'noboxwidth', 'nocbdata',
        +            'nocbdtics', 'nocblabel', 'nocbmtics', 'nocbrange',
        +            'nocbtics', 'noclabel', 'noclip', 'nocntrparam',
        +            'nocolorbox', 'nocontour', 'nodatafile', 'nodate_specifiers',
        +            'nodecimalsign', 'nodgrid3d', 'nodummy', 'noencoding',
        +            'nofit', 'nofontpath', 'noformat', 'nogrid',
        +            'nohidden3d', 'nohistorysize', 'noisosamples', 'nokey',
        +            'nolabel', 'nolmargin', 'noloadpath', 'nolocale',
        +            'nolog', 'nologscale', 'nomacros', 'nomapping',
        +            'nomargin', 'nomissing', 'nomouse', 'nomultiplot',
        +            'nomx2tics', 'nomxtics', 'nomy2tics', 'nomytics',
        +            'nomztics', 'noobject', 'nooffsets', 'noorigin',
        +            'nooutput', 'nopalette', 'noparametric', 'nopm3d',
        +            'nopointsize', 'nopolar', 'noprint', 'normargin',
        +            'norrange', 'nosamples', 'nosize', 'nostyle',
        +            'nosurface', 'notable', 'noterm', 'noterminal',
        +            'notermoption', 'notics', 'noticscale', 'noticslevel',
        +            'notime_specifiers', 'notimefmt', 'notimestamp', 'notitle',
        +            'notmargin', 'notrange', 'nourange', 'noview',
        +            'novrange', 'nox2data', 'nox2dtics', 'nox2label',
        +            'nox2mtics', 'nox2range', 'nox2tics', 'nox2zeroaxis',
        +            'noxdata', 'noxdtics', 'noxlabel', 'noxmtics',
        +            'noxrange', 'noxtics', 'noxyplane', 'noxzeroaxis',
        +            'noy2data', 'noy2dtics', 'noy2label', 'noy2mtics',
        +            'noy2range', 'noy2tics', 'noy2zeroaxis', 'noydata',
        +            'noydtics', 'noylabel', 'noymtics', 'noyrange',
        +            'noytics', 'noyzeroaxis', 'nozdata', 'nozdtics',
        +            'nozero', 'nozeroaxis', 'nozlabel', 'nozmtics',
        +            'nozrange', 'noztics', 'nozzeroaxis',
        +            ),
        +        3 => array(
        +            // predefined variables
        +            'pi', 'NaN', 'GNUTERM',
        +            'GPVAL_X_MIN', 'GPVAL_X_MAX', 'GPVAL_Y_MIN', 'GPVAL_Y_MAX',
        +            'GPVAL_TERM', 'GPVAL_TERMOPTIONS', 'GPVAL_OUTPUT',
        +            'GPVAL_VERSION', 'GPVAL_PATcHLEVEL', 'GPVAL_COMPILE_OPTIONS',
        +            'MOUSE_KEY', 'MOUSE_X', 'MOUSE_X2', 'MOUSE_Y', 'MOUSE_Y2',
        +            'MOUSE_BUTTON', 'MOUSE_SHIFT', 'MOUSE_ALT', 'MOUSE_CTRL'
        +            ),
        +        4 => array(
        +            // predefined functions `help functions`
        +            'abs', 'acos', 'acosh', 'arg',
        +            'asin', 'asinh', 'atan', 'atan2',
        +            'atanh', 'besj0', 'besj1', 'besy0',
        +            'besy1', 'ceil', 'column', 'cos',
        +            'cosh', 'defined', 'erf', 'erfc',
        +            'exists', 'exp', 'floor', 'gamma',
        +            'gprintf', 'ibeta', 'igamma', 'imag',
        +            'int', 'inverf', 'invnorm', 'lambertw',
        +            'lgamma', 'log10', 'norm',
        +            'rand', 'random', 'real', 'sgn',
        +            'sin', 'sinh', 'sprintf', 'sqrt',
        +            'stringcolumn', 'strlen', 'strstrt', 'substr',
        +            'tan', 'tanh', 'timecolumn',
        +            'tm_hour', 'tm_mday', 'tm_min', 'tm_mon',
        +            'tm_sec', 'tm_wday', 'tm_yday', 'tm_year',
        +            'valid', 'word', 'words',
        +            ),
        +        5 => array(
        +            // mixed arguments
        +            // there is no sane way to get these ones easily...
        +            'autofreq', 'x', 'y', 'z',
        +            'lt', 'linetype', 'lw', 'linewidth', 'ls', 'linestyle',
        +            'out', 'rotate by', 'screen',
        +            'enhanced', 'via',
        +            // `help set key`
        +            'on', 'off', 'default', 'inside', 'outside', 'tmargin',
        +            'at', 'left', 'right', 'center', 'top', 'bottom', 'vertical', 'horizontal', 'Left', 'Right',
        +            'noreverse', 'reverse', 'noinvert', 'invert', 'samplen', 'spacing', 'width', 'height',
        +            'noautotitle', 'autotitle', 'noenhanced', 'nobox', 'box',
        +
        +            // help set terminal postscript
        +            'landscape', 'portrait', 'eps', 'defaultplex', 'simplex', 'duplex',
        +            'fontfile', 'add', 'delete', 'nofontfiles', 'level1', 'leveldefault',
        +            'color', 'colour', 'monochrome', 'solid', 'dashed', 'dashlength', 'dl',
        +            'rounded', 'butt', 'palfuncparam', 'blacktext', 'colortext', 'colourtext',
        +            'font',
        +
        +            // help set terminal png
        +            'notransparent', 'transparent', 'nointerlace', 'interlace',
        +            'notruecolor', 'truecolor', 'tiny', 'small', 'medium', 'large', 'giant',
        +            'nocrop', 'crop',
        +
        +            // `help plot`
        +            'acsplines', 'bezier', 'binary', 'csplines',
        +            'every',
        +            'example', 'frequency', 'index', 'matrix',
        +            'ranges', 'sbezier', 'smooth',
        +            'special-filenames', 'thru',
        +            'unique', 'using', 'with',
        +
        +            // `help plotting styles`
        +            'boxerrorbars', 'boxes', 'boxxyerrorbars', 'candlesticks',
        +            'dots', 'errorbars', 'errorlines', 'filledcurves',
        +            'financebars', 'fsteps', 'histeps', 'histograms',
        +            'image', 'impulses', 'labels', 'lines',
        +            'linespoints', 'points', 'rgbimage', 'steps',
        +            'vectors', 'xerrorbars', 'xerrorlines', 'xyerrorbars',
        +            'xyerrorlines', 'yerrorbars', 'yerrorlines',
        +
        +
        +            // terminals `help terminals`
        +            'aed512', 'aed767', 'aifm', 'bitgraph',
        +            'cgm', 'corel', 'dumb', 'dxf',
        +            'eepic', 'emf', 'emtex', 'epslatex',
        +            'epson-180dpi', 'epson-60dpi', 'epson-lx800', 'fig',
        +            'gif', 'gpic', 'hp2623a', 'hp2648',
        +            'hp500c', 'hpdj', 'hpgl', 'hpljii',
        +            'hppj', 'imagen', 'jpeg', 'kc-tek40xx',
        +            'km-tek40xx', 'latex', 'mf', 'mif',
        +            'mp', 'nec-cp6', 'okidata', 'pbm',
        +            'pcl5', 'png', 'pop', 'postscript',
        +            'pslatex', 'pstex', 'pstricks', 'push',
        +            'qms', 'regis', 'selanar', 'starc',
        +            'svg', 'tandy-60dpi', 'tek40xx', 'tek410x',
        +            'texdraw', 'tgif', 'tkcanvas', 'tpic',
        +            'vttek', 'x11', 'xlib',
        +            )
        +        ),
        +    'REGEXPS' => array(
        +        //Variable assignment
        +        0 => "(?\w])([a-zA-Z_][a-zA-Z0-9_]*)\s*=",
        +        //Numbers with unit
        +        1 => "(?<=^|\s)([0-9]*\.?[0-9]+\s*cm)"
        +        ),
        +    'SYMBOLS' => array(
        +        '-', '+', '~', '!', '$',
        +        '*', '/', '%', '=', '<', '>', '&',
        +        '^', '|', '.', 'eq', 'ne', '?:', ':', '`', ','
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #990000;',
        +            3 => 'color: #550000;',
        +            4 => 'color: #7a0874;',
        +            5 => 'color: #448888;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #adadad; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight:bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000099; font-weight:bold;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;',
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000; font-weight: bold;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #007800;',
        +            1 => 'color: #cc66cc;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => 'http://www.google.com/search?q=%22set+{FNAME}%22+site%3Ahttp%3A%2F%2Fwww.gnuplot.info%2Fdocs%2F&btnI=lucky',
        +        3 => '',
        +        4 => '',
        +        5 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            4 => array(
        +                'DISALLOWED_AFTER' =>  "(?![\.\-a-zA-Z0-9_%])"
        +            )
        +        )
        +    ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/go.php b/Sources/geshi/go.php
        new file mode 100644
        index 0000000..5b7a47d
        --- /dev/null
        +++ b/Sources/geshi/go.php
        @@ -0,0 +1,375 @@
        + 'Go',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        # Raw strings (escapes and linebreaks ignored)
        +        2 => "#`[^`]*`#"
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"', "'"),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        1 => "#\\\\[abfnrtv\\\\\'\"]#",
        +        2 => "#\\\\[0-7]{3}#",
        +        3 => "#\\\\x[0-9a-fA-F]{2}#",
        +        4 => "#\\\\u[0-9a-fA-F]{4}#",
        +        5 => "#\\\\U[0-9a-fA-F]{8}#"
        +        ),
        +    'NUMBERS' => array(
        +        # integer literals (possibly imaginary)
        +        0 => '\b([1-9][0-9]*i?|0[0-7]*|0[xX][0-9a-f]+|0[0-9]*i)\b',
        +        # real floating point literals
        +        1 => '\b((?:\d+\.\d*(?:[Ee][+-]?\d+\b)?|\.\d+(?:[Ee][+-]?\d+)?|\d+[Ee][+-]?\d+)?)\b',
        +        # imaginary floating point literals
        +        2 => '\b((?:\d+\.\d*(?:[Ee][+-]?\d+)?|\.\d+(?:[Ee][+-]?\d+)?|\d+[Ee][+-]?\d+)?i)\b'
        +        ),
        +    'KEYWORDS' => array(
        +        # statements
        +        1 => array(
        +            'break', 'case', 'const', 'continue', 'default', 'defer', 'else',
        +            'fallthrough', 'for', 'go', 'goto', 'if', 'import', 'package',
        +            'range', 'return', 'select', 'switch', 'type', 'var'
        +            ),
        +        # literals
        +        2 => array(
        +            'nil', 'true', 'false'
        +            ),
        +        # built-in functions
        +        3 => array(
        +            'close', 'closed', 'len', 'cap', 'new', 'make', 'copy', 'cmplx',
        +            'real', 'imag', 'panic', 'recover', 'print', 'println'
        +            ),
        +        # built-in types
        +        4 => array(
        +            'chan', 'func', 'interface', 'map', 'struct', 'bool', 'uint8',
        +            'uint16', 'uint32', 'uint64', 'int8', 'int16', 'int32', 'int64',
        +            'float32', 'float64', 'complex64', 'complex128', 'byte', 'uint',
        +            'int', 'float', 'complex', 'uintptr', 'string'
        +            ),
        +        # library types
        +        5 => array(
        +            'aes.Cipher', 'aes.KeySizeError', 'ascii85.CorruptInputError', 'asn1.BitString',
        +            'asn1.RawValue', 'asn1.StructuralError', 'asn1.SyntaxError', 'ast.ChanDir',
        +            'ast.Comment', 'ast.CommentGroup', 'ast.Decl', 'ast.Expr', 'ast.Field',
        +            'ast.FieldList', 'ast.File', 'ast.Filter', 'ast.MergeMode', 'ast.Node',
        +            'ast.ObjKind', 'ast.Object', 'ast.Package', 'ast.Scope', 'ast.Stmt',
        +            'ast.Visitor', 'av.Color', 'av.Image', 'av.Window', 'base64.CorruptInputError',
        +            'base64.Encoding', 'big.Int', 'big.Word', 'bignum.Integer', 'bignum.Rational',
        +            'binary.ByteOrder', 'block.Cipher', 'block.EAXTagError', 'blowfish.Cipher',
        +            'blowfish.KeySizeError', 'bufio.BufSizeError', 'bufio.Error', 'bufio.ReadWriter',
        +            'bufio.Reader', 'bufio.Writer', 'bytes.Buffer', 'datafmt.Environment',
        +            'datafmt.Format', 'datafmt.Formatter', 'datafmt.FormatterMap', 'datafmt.State',
        +            'doc.Filter', 'doc.FuncDoc', 'doc.PackageDoc', 'doc.TypeDoc', 'doc.ValueDoc',
        +            'draw.Color', 'draw.Context', 'draw.Image', 'draw.Mouse', 'draw.Op',
        +            'draw.Point', 'draw.Rectangle', 'dwarf.AddrType', 'dwarf.ArrayType',
        +            'dwarf.Attr', 'dwarf.BasicType', 'dwarf.BoolType', 'dwarf.CharType',
        +            'dwarf.CommonType', 'dwarf.ComplexType', 'dwarf.Data', 'dwarf.DecodeError',
        +            'dwarf.DotDotDotType', 'dwarf.Entry', 'dwarf.EnumType', 'dwarf.EnumValue',
        +            'dwarf.Field', 'dwarf.FloatType', 'dwarf.FuncType', 'dwarf.IntType',
        +            'dwarf.Offset', 'dwarf.PtrType', 'dwarf.QualType', 'dwarf.Reader',
        +            'dwarf.StructField', 'dwarf.StructType', 'dwarf.Tag', 'dwarf.Type',
        +            'dwarf.TypedefType', 'dwarf.UcharType', 'dwarf.UintType', 'dwarf.VoidType',
        +            'elf.Class', 'elf.Data', 'elf.Dyn32', 'elf.Dyn64', 'elf.DynFlag', 'elf.DynTag',
        +            'elf.File', 'elf.FileHeader', 'elf.FormatError', 'elf.Header32', 'elf.Header64',
        +            'elf.Machine', 'elf.NType', 'elf.OSABI', 'elf.Prog', 'elf.Prog32', 'elf.Prog64',
        +            'elf.ProgFlag', 'elf.ProgHeader', 'elf.ProgType', 'elf.R_386', 'elf.R_ALPHA',
        +            'elf.R_ARM', 'elf.R_PPC', 'elf.R_SPARC', 'elf.R_X86_64', 'elf.Rel32',
        +            'elf.Rel64', 'elf.Rela32', 'elf.Rela64', 'elf.Section', 'elf.Section32',
        +            'elf.Section64', 'elf.SectionFlag', 'elf.SectionHeader', 'elf.SectionIndex',
        +            'elf.SectionType', 'elf.Sym32', 'elf.Sym64', 'elf.SymBind', 'elf.SymType',
        +            'elf.SymVis', 'elf.Symbol', 'elf.Type', 'elf.Version', 'eval.ArrayType',
        +            'eval.ArrayValue', 'eval.BoolValue', 'eval.BoundedType', 'eval.ChanType',
        +            'eval.Code', 'eval.Constant', 'eval.Def', 'eval.DivByZeroError',
        +            'eval.FloatValue', 'eval.Frame', 'eval.Func', 'eval.FuncDecl', 'eval.FuncType',
        +            'eval.FuncValue', 'eval.IMethod', 'eval.IdealFloatValue', 'eval.IdealIntValue',
        +            'eval.IndexError', 'eval.IntValue', 'eval.Interface', 'eval.InterfaceType',
        +            'eval.InterfaceValue', 'eval.KeyError', 'eval.Map', 'eval.MapType',
        +            'eval.MapValue', 'eval.Method', 'eval.MultiType', 'eval.NamedType',
        +            'eval.NegativeCapacityError', 'eval.NegativeLengthError', 'eval.NilPointerError',
        +            'eval.PtrType', 'eval.PtrValue', 'eval.RedefinitionError', 'eval.Scope',
        +            'eval.Slice', 'eval.SliceError', 'eval.SliceType', 'eval.SliceValue',
        +            'eval.StringValue', 'eval.StructField', 'eval.StructType', 'eval.StructValue',
        +            'eval.Thread', 'eval.Type', 'eval.UintValue', 'eval.Value', 'eval.Variable',
        +            'eval.World', 'exec.Cmd', 'expvar.Int', 'expvar.IntFunc', 'expvar.KeyValue',
        +            'expvar.Map', 'expvar.String', 'expvar.StringFunc', 'expvar.Var', 'flag.Flag',
        +            'flag.Value', 'flate.CorruptInputError', 'flate.InternalError',
        +            'flate.ReadError', 'flate.Reader', 'flate.WriteError', 'flate.WrongValueError',
        +            'fmt.Formatter', 'fmt.GoStringer', 'fmt.State', 'fmt.Stringer',
        +            'git85.CorruptInputError', 'gob.Decoder', 'gob.Encoder', 'gosym.DecodingError',
        +            'gosym.Func', 'gosym.LineTable', 'gosym.Obj', 'gosym.Sym', 'gosym.Table',
        +            'gosym.UnknownFileError', 'gosym.UnknownLineError', 'gzip.Deflater',
        +            'gzip.Header', 'gzip.Inflater', 'hash.Hash', 'hash.Hash32', 'hash.Hash64',
        +            'heap.Interface', 'hex.InvalidHexCharError', 'hex.OddLengthInputError',
        +            'http.ClientConn', 'http.Conn', 'http.Handler', 'http.HandlerFunc',
        +            'http.ProtocolError', 'http.Request', 'http.Response', 'http.ServeMux',
        +            'http.ServerConn', 'http.URL', 'http.URLError', 'http.URLEscapeError',
        +            'image.Alpha', 'image.AlphaColor', 'image.Color', 'image.ColorImage',
        +            'image.ColorModel', 'image.ColorModelFunc', 'image.Image', 'image.NRGBA',
        +            'image.NRGBA64', 'image.NRGBA64Color', 'image.NRGBAColor', 'image.Paletted',
        +            'image.RGBA', 'image.RGBA64', 'image.RGBA64Color', 'image.RGBAColor',
        +            'io.Closer', 'io.Error', 'io.PipeReader', 'io.PipeWriter', 'io.ReadByter',
        +            'io.ReadCloser', 'io.ReadSeeker', 'io.ReadWriteCloser', 'io.ReadWriteSeeker',
        +            'io.ReadWriter', 'io.Reader', 'io.ReaderAt', 'io.ReaderFrom', 'io.SectionReader',
        +            'io.Seeker', 'io.WriteCloser', 'io.WriteSeeker', 'io.Writer', 'io.WriterAt',
        +            'io.WriterTo', 'iterable.Func', 'iterable.Group', 'iterable.Grouper',
        +            'iterable.Injector', 'iterable.Iterable', 'jpeg.FormatError', 'jpeg.Reader',
        +            'jpeg.UnsupportedError', 'json.Decoder', 'json.Encoder',
        +            'json.InvalidUnmarshalError', 'json.Marshaler', 'json.MarshalerError',
        +            'json.SyntaxError', 'json.UnmarshalTypeError', 'json.Unmarshaler',
        +            'json.UnsupportedTypeError', 'list.Element', 'list.List', 'log.Logger',
        +            'macho.Cpu', 'macho.File', 'macho.FileHeader', 'macho.FormatError', 'macho.Load',
        +            'macho.LoadCmd', 'macho.Regs386', 'macho.RegsAMD64', 'macho.Section',
        +            'macho.Section32', 'macho.Section64', 'macho.SectionHeader', 'macho.Segment',
        +            'macho.Segment32', 'macho.Segment64', 'macho.SegmentHeader', 'macho.Thread',
        +            'macho.Type', 'net.Addr', 'net.AddrError', 'net.Conn', 'net.DNSConfigError',
        +            'net.DNSError', 'net.Error', 'net.InvalidAddrError', 'net.InvalidConnError',
        +            'net.Listener', 'net.OpError', 'net.PacketConn', 'net.TCPAddr', 'net.TCPConn',
        +            'net.TCPListener', 'net.UDPAddr', 'net.UDPConn', 'net.UnixAddr', 'net.UnixConn',
        +            'net.UnixListener', 'net.UnknownNetworkError', 'net.UnknownSocketError',
        +            'netchan.Dir', 'netchan.Exporter', 'netchan.Importer', 'nntp.Article',
        +            'nntp.Conn', 'nntp.Error', 'nntp.Group', 'nntp.ProtocolError', 'ogle.Arch',
        +            'ogle.ArchAlignedMultiple', 'ogle.ArchLSB', 'ogle.Breakpoint', 'ogle.Event',
        +            'ogle.EventAction', 'ogle.EventHandler', 'ogle.EventHook', 'ogle.FormatError',
        +            'ogle.Frame', 'ogle.Goroutine', 'ogle.GoroutineCreate', 'ogle.GoroutineExit',
        +            'ogle.NoCurrentGoroutine', 'ogle.NotOnStack', 'ogle.Process',
        +            'ogle.ProcessNotStopped', 'ogle.ReadOnlyError', 'ogle.RemoteMismatchError',
        +            'ogle.UnknownArchitecture', 'ogle.UnknownGoroutine', 'ogle.UsageError',
        +            'os.Errno', 'os.Error', 'os.ErrorString', 'os.File', 'os.FileInfo',
        +            'os.LinkError', 'os.PathError', 'os.SyscallError', 'os.Waitmsg', 'patch.Diff',
        +            'patch.File', 'patch.GitBinaryLiteral', 'patch.Op', 'patch.Set',
        +            'patch.SyntaxError', 'patch.TextChunk', 'patch.Verb', 'path.Visitor',
        +            'pdp1.HaltError', 'pdp1.LoopError', 'pdp1.Trapper', 'pdp1.UnknownInstrError',
        +            'pdp1.Word', 'pem.Block', 'png.FormatError', 'png.IDATDecodingError',
        +            'png.UnsupportedError', 'printer.Config', 'printer.HTMLTag', 'printer.Styler',
        +            'proc.Breakpoint', 'proc.Cause', 'proc.Process', 'proc.ProcessExited',
        +            'proc.Regs', 'proc.Signal', 'proc.Stopped', 'proc.Thread', 'proc.ThreadCreate',
        +            'proc.ThreadExit', 'proc.Word', 'quick.CheckEqualError', 'quick.CheckError',
        +            'quick.Config', 'quick.Generator', 'quick.SetupError', 'rand.Rand',
        +            'rand.Source', 'rand.Zipf', 'rc4.Cipher', 'rc4.KeySizeError',
        +            'reflect.ArrayOrSliceType', 'reflect.ArrayOrSliceValue', 'reflect.ArrayType',
        +            'reflect.ArrayValue', 'reflect.BoolType', 'reflect.BoolValue', 'reflect.ChanDir',
        +            'reflect.ChanType', 'reflect.ChanValue', 'reflect.Complex128Type',
        +            'reflect.Complex128Value', 'reflect.Complex64Type', 'reflect.Complex64Value',
        +            'reflect.ComplexType', 'reflect.ComplexValue', 'reflect.Float32Type',
        +            'reflect.Float32Value', 'reflect.Float64Type', 'reflect.Float64Value',
        +            'reflect.FloatType', 'reflect.FloatValue', 'reflect.FuncType',
        +            'reflect.FuncValue', 'reflect.Int16Type', 'reflect.Int16Value',
        +            'reflect.Int32Type', 'reflect.Int32Value', 'reflect.Int64Type',
        +            'reflect.Int64Value', 'reflect.Int8Type', 'reflect.Int8Value', 'reflect.IntType',
        +            'reflect.IntValue', 'reflect.InterfaceType', 'reflect.InterfaceValue',
        +            'reflect.MapType', 'reflect.MapValue', 'reflect.Method', 'reflect.PtrType',
        +            'reflect.PtrValue', 'reflect.SliceHeader', 'reflect.SliceType',
        +            'reflect.SliceValue', 'reflect.StringHeader', 'reflect.StringType',
        +            'reflect.StringValue', 'reflect.StructField', 'reflect.StructType',
        +            'reflect.StructValue', 'reflect.Type', 'reflect.Uint16Type',
        +            'reflect.Uint16Value', 'reflect.Uint32Type', 'reflect.Uint32Value',
        +            'reflect.Uint64Type', 'reflect.Uint64Value', 'reflect.Uint8Type',
        +            'reflect.Uint8Value', 'reflect.UintType', 'reflect.UintValue',
        +            'reflect.UintptrType', 'reflect.UintptrValue', 'reflect.UnsafePointerType',
        +            'reflect.UnsafePointerValue', 'reflect.Value', 'regexp.Error', 'regexp.Regexp',
        +            'ring.Ring', 'rpc.Call', 'rpc.Client', 'rpc.ClientCodec', 'rpc.InvalidRequest',
        +            'rpc.Request', 'rpc.Response', 'rpc.ServerCodec', 'rsa.DecryptionError',
        +            'rsa.MessageTooLongError', 'rsa.PKCS1v15Hash', 'rsa.PrivateKey', 'rsa.PublicKey',
        +            'rsa.VerificationError', 'runtime.ArrayType', 'runtime.BoolType',
        +            'runtime.ChanDir', 'runtime.ChanType', 'runtime.Complex128Type',
        +            'runtime.Complex64Type', 'runtime.ComplexType', 'runtime.Error',
        +            'runtime.Float32Type', 'runtime.Float64Type', 'runtime.FloatType',
        +            'runtime.Func', 'runtime.FuncType', 'runtime.Int16Type', 'runtime.Int32Type',
        +            'runtime.Int64Type', 'runtime.Int8Type', 'runtime.IntType',
        +            'runtime.InterfaceType', 'runtime.Itable', 'runtime.MapType',
        +            'runtime.MemProfileRecord', 'runtime.MemStatsType', 'runtime.PtrType',
        +            'runtime.SliceType', 'runtime.StringType', 'runtime.StructType', 'runtime.Type',
        +            'runtime.TypeAssertionError', 'runtime.Uint16Type', 'runtime.Uint32Type',
        +            'runtime.Uint64Type', 'runtime.Uint8Type', 'runtime.UintType',
        +            'runtime.UintptrType', 'runtime.UnsafePointerType', 'scanner.Error',
        +            'scanner.ErrorHandler', 'scanner.ErrorVector', 'scanner.Position',
        +            'scanner.Scanner', 'script.Close', 'script.Closed', 'script.Event',
        +            'script.ReceivedUnexpected', 'script.Recv', 'script.RecvMatch', 'script.Send',
        +            'script.SetupError', 'signal.Signal', 'signal.UnixSignal', 'sort.Interface',
        +            'srpc.Client', 'srpc.Errno', 'srpc.Handler', 'srpc.RPC', 'strconv.NumError',
        +            'strings.Reader', 'sync.Mutex', 'sync.RWMutex',
        +            'syscall.ByHandleFileInformation', 'syscall.Cmsghdr', 'syscall.Dirent',
        +            'syscall.EpollEvent', 'syscall.Fbootstraptransfer_t', 'syscall.FdSet',
        +            'syscall.Filetime', 'syscall.Flock_t', 'syscall.Fstore_t', 'syscall.Iovec',
        +            'syscall.Kevent_t', 'syscall.Linger', 'syscall.Log2phys_t', 'syscall.Msghdr',
        +            'syscall.Overlapped', 'syscall.PtraceRegs', 'syscall.Radvisory_t',
        +            'syscall.RawSockaddr', 'syscall.RawSockaddrAny', 'syscall.RawSockaddrInet4',
        +            'syscall.RawSockaddrInet6', 'syscall.RawSockaddrUnix', 'syscall.Rlimit',
        +            'syscall.Rusage', 'syscall.Sockaddr', 'syscall.SockaddrInet4',
        +            'syscall.SockaddrInet6', 'syscall.SockaddrUnix', 'syscall.Stat_t',
        +            'syscall.Statfs_t', 'syscall.Sysinfo_t', 'syscall.Time_t', 'syscall.Timespec',
        +            'syscall.Timeval', 'syscall.Timex', 'syscall.Tms', 'syscall.Ustat_t',
        +            'syscall.Utimbuf', 'syscall.Utsname', 'syscall.WaitStatus',
        +            'syscall.Win32finddata', 'syslog.Priority', 'syslog.Writer', 'tabwriter.Writer',
        +            'tar.Header', 'tar.Reader', 'tar.Writer', 'template.Error',
        +            'template.FormatterMap', 'template.Template', 'testing.Benchmark',
        +            'testing.Regexp', 'testing.Test', 'time.ParseError', 'time.Ticker', 'time.Time',
        +            'tls.CASet', 'tls.Certificate', 'tls.Config', 'tls.Conn', 'tls.ConnectionState',
        +            'tls.Listener', 'token.Position', 'token.Token', 'unicode.CaseRange',
        +            'unicode.Range', 'unsafe.ArbitraryType', 'vector.LessInterface',
        +            'websocket.Conn', 'websocket.Draft75Handler', 'websocket.Handler',
        +            'websocket.ProtocolError', 'websocket.WebSocketAddr', 'x509.Certificate',
        +            'x509.ConstraintViolationError', 'x509.KeyUsage', 'x509.Name',
        +            'x509.PublicKeyAlgorithm', 'x509.SignatureAlgorithm',
        +            'x509.UnhandledCriticalExtension', 'x509.UnsupportedAlgorithmError', 'xml.Attr',
        +            'xml.EndElement', 'xml.Name', 'xml.Parser', 'xml.ProcInst', 'xml.StartElement',
        +            'xml.SyntaxError', 'xml.Token', 'xml.UnmarshalError', 'xtea.Cipher',
        +            'xtea.KeySizeError'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        # delimiters
        +        1 => array(
        +            '(', ')', '{', '}', '[', ']', ',', ':', ';'
        +            ),
        +        # assignments
        +        2 => array(
        +            '<<=', '!=', '%=', '&=', '&^=', '*=', '+=', '-=', '/=', ':=', '>>=',
        +            '^=', '|=', '=', '++', '--'
        +            ),
        +        # operators
        +        3 => array(
        +            '<=', '<', '==', '>', '>=', '&&', '!', '||', '&', '&^', '|', '^',
        +            '>>', '<<', '*', '%', '+', '-', '.', '/', '<-'),
        +        # vararg
        +        4 => array(
        +            '...'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            # statements
        +            1 => 'color: #b1b100; font-weight: bold;',
        +            # literals
        +            2 => 'color: #000000; font-weight: bold;',
        +            # built-in functions
        +            3 => 'color: #000066;',
        +            # built-in types
        +            4 => 'color: #993333;',
        +            # library types
        +            5 => 'color: #003399;'
        +            ),
        +        'COMMENTS' => array(
        +            # single-line comments
        +            1 => 'color: #666666; font-style: italic;',
        +            # raw strings
        +            2 => 'color: #0000ff;',
        +            # multi-line comments
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            # simple escape
        +            1 => 'color: #000099; font-weight: bold;',
        +            # octal escape
        +            2 => 'color: #000099;',
        +            # hex escape
        +            3 => 'color: #000099;',
        +            # unicode escape
        +            4 => 'color: #000099;',
        +            # long unicode escape
        +            5 => 'color: #000099;'
        +            ),
        +        'BRACKETS' => array(
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;',
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #004000;'
        +            ),
        +        'SYMBOLS' => array(
        +            # delimiters
        +            1 => 'color: #339933;',
        +            # assignments
        +            2 => 'color: #339933;',
        +            # operators
        +            3 => 'color: #339933;',
        +            # vararg (highlighted as a keyword)
        +            4 => 'color: #000000; font-weight: bold;'
        +            ),
        +        'REGEXPS' => array(
        +            # If CSS classes are enabled, these would be highlighted as numbers (nu0)
        +            # integer literals (possibly imaginary)
        +            //0 => 'color: #cc66cc;',
        +            # real floating point literals
        +            //1 => 'color: #cc66cc;',
        +            # imaginary floating point literals
        +            //2 => 'color: #cc66cc;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => 'http://golang.org/search?q={FNAME}'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(1 => '.'),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(),
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'BRACKETS' => GESHI_NEVER, # handled by symbols
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/groovy.php b/Sources/geshi/groovy.php
        new file mode 100644
        index 0000000..45290d2
        --- /dev/null
        +++ b/Sources/geshi/groovy.php
        @@ -0,0 +1,1011 @@
        + 'Groovy',
        +    'COMMENT_SINGLE' => array(1 => '//', 3 => '#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Import and Package directives (Basic Support only)
        +        2 => '/(?:(?<=import[\\n\\s])|(?<=package[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*([a-zA-Z0-9_]+|\*)(?=[\n\s;])/i',
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'''", '"""', "'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'case', 'do', 'else', 'for', 'foreach', 'if', 'in', 'switch',
        +            'while',
        +            ),
        +        2 => array(
        +            'abstract', 'as', 'assert', 'break', 'catch', 'class', 'const',
        +            'continue', 'def', 'default', 'enum', 'extends',
        +            'false', 'final', 'finally', 'goto', 'implements', 'import',
        +            'instanceof', 'interface', 'native', 'new', 'null',
        +            'package', 'private', 'property', 'protected',
        +            'public', 'return', 'static', 'strictfp', 'super',
        +            'synchronized', 'this', 'throw', 'throws',
        +            'transient', 'true', 'try', 'volatile'
        +            ),
        +        3 => array(
        +            'AbstractAction', 'AbstractBorder', 'AbstractButton',
        +            'AbstractCellEditor', 'AbstractCollection',
        +            'AbstractColorChooserPanel', 'AbstractDocument',
        +            'AbstractDocument.AttributeContext',
        +            'AbstractDocument.Content',
        +            'AbstractDocument.ElementEdit',
        +            'AbstractLayoutCache',
        +            'AbstractLayoutCache.NodeDimensions', 'AbstractList',
        +            'AbstractListModel', 'AbstractMap',
        +            'AbstractMethodError', 'AbstractSequentialList',
        +            'AbstractSet', 'AbstractTableModel',
        +            'AbstractUndoableEdit', 'AbstractWriter',
        +            'AccessControlContext', 'AccessControlException',
        +            'AccessController', 'AccessException', 'Accessible',
        +            'AccessibleAction', 'AccessibleBundle',
        +            'AccessibleComponent', 'AccessibleContext',
        +            'AccessibleHyperlink', 'AccessibleHypertext',
        +            'AccessibleIcon', 'AccessibleObject',
        +            'AccessibleRelation', 'AccessibleRelationSet',
        +            'AccessibleResourceBundle', 'AccessibleRole',
        +            'AccessibleSelection', 'AccessibleState',
        +            'AccessibleStateSet', 'AccessibleTable',
        +            'AccessibleTableModelChange', 'AccessibleText',
        +            'AccessibleValue', 'Acl', 'AclEntry',
        +            'AclNotFoundException', 'Action', 'ActionEvent',
        +            'ActionListener', 'ActionMap', 'ActionMapUIResource',
        +            'Activatable', 'ActivateFailedException',
        +            'ActivationDesc', 'ActivationException',
        +            'ActivationGroup', 'ActivationGroupDesc',
        +            'ActivationGroupDesc.CommandEnvironment',
        +            'ActivationGroupID', 'ActivationID',
        +            'ActivationInstantiator', 'ActivationMonitor',
        +            'ActivationSystem', 'Activator', 'ActiveEvent',
        +            'Adjustable', 'AdjustmentEvent',
        +            'AdjustmentListener', 'Adler32', 'AffineTransform',
        +            'AffineTransformOp', 'AlgorithmParameterGenerator',
        +            'AlgorithmParameterGeneratorSpi',
        +            'AlgorithmParameters', 'AlgorithmParameterSpec',
        +            'AlgorithmParametersSpi', 'AllPermission',
        +            'AlphaComposite', 'AlreadyBound',
        +            'AlreadyBoundException', 'AlreadyBoundHelper',
        +            'AlreadyBoundHolder', 'AncestorEvent',
        +            'AncestorListener', 'Annotation', 'Any', 'AnyHolder',
        +            'AnySeqHelper', 'AnySeqHolder', 'Applet',
        +            'AppletContext', 'AppletInitializer', 'AppletStub',
        +            'ApplicationException', 'Arc2D', 'Arc2D.Double',
        +            'Arc2D.Float', 'Area', 'AreaAveragingScaleFilter',
        +            'ARG_IN', 'ARG_INOUT', 'ARG_OUT',
        +            'ArithmeticException', 'Array',
        +            'ArrayIndexOutOfBoundsException', 'ArrayList',
        +            'Arrays', 'ArrayStoreException', 'AsyncBoxView',
        +            'Attribute', 'AttributedCharacterIterator',
        +            'AttributedCharacterIterator.Attribute',
        +            'AttributedString', 'AttributeInUseException',
        +            'AttributeList', 'AttributeModificationException',
        +            'Attributes', 'Attributes.Name', 'AttributeSet',
        +            'AttributeSet.CharacterAttribute',
        +            'AttributeSet.ColorAttribute',
        +            'AttributeSet.FontAttribute',
        +            'AttributeSet.ParagraphAttribute', 'AudioClip',
        +            'AudioFileFormat', 'AudioFileFormat.Type',
        +            'AudioFileReader', 'AudioFileWriter', 'AudioFormat',
        +            'AudioFormat.Encoding', 'AudioInputStream',
        +            'AudioPermission', 'AudioSystem',
        +            'AuthenticationException',
        +            'AuthenticationNotSupportedException',
        +            'Authenticator', 'Autoscroll', 'AWTError',
        +            'AWTEvent', 'AWTEventListener',
        +            'AWTEventMulticaster', 'AWTException',
        +            'AWTPermission', 'BadKind', 'BadLocationException',
        +            'BAD_CONTEXT', 'BAD_INV_ORDER', 'BAD_OPERATION',
        +            'BAD_PARAM', 'BAD_POLICY', 'BAD_POLICY_TYPE',
        +            'BAD_POLICY_VALUE', 'BAD_TYPECODE', 'BandCombineOp',
        +            'BandedSampleModel', 'BasicArrowButton',
        +            'BasicAttribute', 'BasicAttributes', 'BasicBorders',
        +            'BasicBorders.ButtonBorder',
        +            'BasicBorders.FieldBorder',
        +            'BasicBorders.MarginBorder',
        +            'BasicBorders.MenuBarBorder',
        +            'BasicBorders.RadioButtonBorder',
        +            'BasicBorders.SplitPaneBorder',
        +            'BasicBorders.ToggleButtonBorder',
        +            'BasicButtonListener', 'BasicButtonUI',
        +            'BasicCheckBoxMenuItemUI', 'BasicCheckBoxUI',
        +            'BasicColorChooserUI', 'BasicComboBoxEditor',
        +            'BasicComboBoxEditor.UIResource',
        +            'BasicComboBoxRenderer',
        +            'BasicComboBoxRenderer.UIResource',
        +            'BasicComboBoxUI', 'BasicComboPopup',
        +            'BasicDesktopIconUI', 'BasicDesktopPaneUI',
        +            'BasicDirectoryModel', 'BasicEditorPaneUI',
        +            'BasicFileChooserUI', 'BasicGraphicsUtils',
        +            'BasicHTML', 'BasicIconFactory',
        +            'BasicInternalFrameTitlePane',
        +            'BasicInternalFrameUI', 'BasicLabelUI',
        +            'BasicListUI', 'BasicLookAndFeel', 'BasicMenuBarUI',
        +            'BasicMenuItemUI', 'BasicMenuUI',
        +            'BasicOptionPaneUI',
        +            'BasicOptionPaneUI.ButtonAreaLayout', 'BasicPanelUI',
        +            'BasicPasswordFieldUI', 'BasicPermission',
        +            'BasicPopupMenuSeparatorUI', 'BasicPopupMenuUI',
        +            'BasicProgressBarUI', 'BasicRadioButtonMenuItemUI',
        +            'BasicRadioButtonUI', 'BasicRootPaneUI',
        +            'BasicScrollBarUI', 'BasicScrollPaneUI',
        +            'BasicSeparatorUI', 'BasicSliderUI',
        +            'BasicSplitPaneDivider', 'BasicSplitPaneUI',
        +            'BasicStroke', 'BasicTabbedPaneUI',
        +            'BasicTableHeaderUI', 'BasicTableUI',
        +            'BasicTextAreaUI', 'BasicTextFieldUI',
        +            'BasicTextPaneUI', 'BasicTextUI',
        +            'BasicTextUI.BasicCaret',
        +            'BasicTextUI.BasicHighlighter',
        +            'BasicToggleButtonUI', 'BasicToolBarSeparatorUI',
        +            'BasicToolBarUI', 'BasicToolTipUI', 'BasicTreeUI',
        +            'BasicViewportUI', 'BatchUpdateException',
        +            'BeanContext', 'BeanContextChild',
        +            'BeanContextChildComponentProxy',
        +            'BeanContextChildSupport',
        +            'BeanContextContainerProxy', 'BeanContextEvent',
        +            'BeanContextMembershipEvent',
        +            'BeanContextMembershipListener', 'BeanContextProxy',
        +            'BeanContextServiceAvailableEvent',
        +            'BeanContextServiceProvider',
        +            'BeanContextServiceProviderBeanInfo',
        +            'BeanContextServiceRevokedEvent',
        +            'BeanContextServiceRevokedListener',
        +            'BeanContextServices', 'BeanContextServicesListener',
        +            'BeanContextServicesSupport',
        +            'BeanContextServicesSupport.BCSSServiceProvider',
        +            'BeanContextSupport',
        +            'BeanContextSupport.BCSIterator', 'BeanDescriptor',
        +            'BeanInfo', 'Beans', 'BevelBorder', 'BigDecimal',
        +            'BigInteger', 'BinaryRefAddr', 'BindException',
        +            'Binding', 'BindingHelper', 'BindingHolder',
        +            'BindingIterator', 'BindingIteratorHelper',
        +            'BindingIteratorHolder', 'BindingIteratorOperations',
        +            'BindingListHelper', 'BindingListHolder',
        +            'BindingType', 'BindingTypeHelper',
        +            'BindingTypeHolder', 'BitSet', 'Blob', 'BlockView',
        +            'Book', 'Boolean', 'BooleanControl',
        +            'BooleanControl.Type', 'BooleanHolder',
        +            'BooleanSeqHelper', 'BooleanSeqHolder', 'Border',
        +            'BorderFactory', 'BorderLayout', 'BorderUIResource',
        +            'BorderUIResource.BevelBorderUIResource',
        +            'BorderUIResource.CompoundBorderUIResource',
        +            'BorderUIResource.EmptyBorderUIResource',
        +            'BorderUIResource.EtchedBorderUIResource',
        +            'BorderUIResource.LineBorderUIResource',
        +            'BorderUIResource.MatteBorderUIResource',
        +            'BorderUIResource.TitledBorderUIResource',
        +            'BoundedRangeModel', 'Bounds', 'Box', 'Box.Filler',
        +            'BoxedValueHelper', 'BoxLayout', 'BoxView',
        +            'BreakIterator', 'BufferedImage',
        +            'BufferedImageFilter', 'BufferedImageOp',
        +            'BufferedInputStream', 'BufferedOutputStream',
        +            'BufferedReader', 'BufferedWriter', 'Button',
        +            'ButtonGroup', 'ButtonModel', 'ButtonUI', 'Byte',
        +            'ByteArrayInputStream', 'ByteArrayOutputStream',
        +            'ByteHolder', 'ByteLookupTable', 'Calendar',
        +            'CallableStatement', 'CannotProceed',
        +            'CannotProceedException', 'CannotProceedHelper',
        +            'CannotProceedHolder', 'CannotRedoException',
        +            'CannotUndoException', 'Canvas', 'CardLayout',
        +            'Caret', 'CaretEvent', 'CaretListener', 'CellEditor',
        +            'CellEditorListener', 'CellRendererPane',
        +            'Certificate', 'Certificate.CertificateRep',
        +            'CertificateEncodingException',
        +            'CertificateException',
        +            'CertificateExpiredException', 'CertificateFactory',
        +            'CertificateFactorySpi',
        +            'CertificateNotYetValidException',
        +            'CertificateParsingException',
        +            'ChangedCharSetException', 'ChangeEvent',
        +            'ChangeListener', 'Character', 'Character.Subset',
        +            'Character.UnicodeBlock', 'CharacterIterator',
        +            'CharArrayReader', 'CharArrayWriter',
        +            'CharConversionException', 'CharHolder',
        +            'CharSeqHelper', 'CharSeqHolder', 'Checkbox',
        +            'CheckboxGroup', 'CheckboxMenuItem',
        +            'CheckedInputStream', 'CheckedOutputStream',
        +            'Checksum', 'Choice', 'ChoiceFormat', 'Class',
        +            'ClassCastException', 'ClassCircularityError',
        +            'ClassDesc', 'ClassFormatError', 'ClassLoader',
        +            'ClassNotFoundException', 'Clip', 'Clipboard',
        +            'ClipboardOwner', 'Clob', 'Cloneable',
        +            'CloneNotSupportedException', 'CMMException',
        +            'CodeSource', 'CollationElementIterator',
        +            'CollationKey', 'Collator', 'Collection',
        +            'Collections', 'Color',
        +            'ColorChooserComponentFactory', 'ColorChooserUI',
        +            'ColorConvertOp', 'ColorModel',
        +            'ColorSelectionModel', 'ColorSpace',
        +            'ColorUIResource', 'ComboBoxEditor', 'ComboBoxModel',
        +            'ComboBoxUI', 'ComboPopup', 'CommunicationException',
        +            'COMM_FAILURE', 'Comparable', 'Comparator',
        +            'Compiler', 'CompletionStatus',
        +            'CompletionStatusHelper', 'Component',
        +            'ComponentAdapter', 'ComponentColorModel',
        +            'ComponentEvent', 'ComponentInputMap',
        +            'ComponentInputMapUIResource', 'ComponentListener',
        +            'ComponentOrientation', 'ComponentSampleModel',
        +            'ComponentUI', 'ComponentView', 'Composite',
        +            'CompositeContext', 'CompositeName', 'CompositeView',
        +            'CompoundBorder', 'CompoundControl',
        +            'CompoundControl.Type', 'CompoundEdit',
        +            'CompoundName', 'ConcurrentModificationException',
        +            'ConfigurationException', 'ConnectException',
        +            'ConnectIOException', 'Connection', 'Constructor',
        +            'Container', 'ContainerAdapter', 'ContainerEvent',
        +            'ContainerListener', 'ContentHandler',
        +            'ContentHandlerFactory', 'ContentModel', 'Context',
        +            'ContextList', 'ContextNotEmptyException',
        +            'ContextualRenderedImageFactory', 'Control',
        +            'Control.Type', 'ControlFactory',
        +            'ControllerEventListener', 'ConvolveOp', 'CRC32',
        +            'CRL', 'CRLException', 'CropImageFilter', 'CSS',
        +            'CSS.Attribute', 'CTX_RESTRICT_SCOPE',
        +            'CubicCurve2D', 'CubicCurve2D.Double',
        +            'CubicCurve2D.Float', 'Current', 'CurrentHelper',
        +            'CurrentHolder', 'CurrentOperations', 'Cursor',
        +            'Customizer', 'CustomMarshal', 'CustomValue',
        +            'DatabaseMetaData', 'DataBuffer', 'DataBufferByte',
        +            'DataBufferInt', 'DataBufferShort',
        +            'DataBufferUShort', 'DataFlavor',
        +            'DataFormatException', 'DatagramPacket',
        +            'DatagramSocket', 'DatagramSocketImpl',
        +            'DatagramSocketImplFactory', 'DataInput',
        +            'DataInputStream', 'DataLine', 'DataLine.Info',
        +            'DataOutput', 'DataOutputStream', 'DataTruncation',
        +            'DATA_CONVERSION', 'Date', 'DateFormat',
        +            'DateFormatSymbols', 'DebugGraphics',
        +            'DecimalFormat', 'DecimalFormatSymbols',
        +            'DefaultBoundedRangeModel', 'DefaultButtonModel',
        +            'DefaultCaret', 'DefaultCellEditor',
        +            'DefaultColorSelectionModel', 'DefaultComboBoxModel',
        +            'DefaultDesktopManager', 'DefaultEditorKit',
        +            'DefaultEditorKit.BeepAction',
        +            'DefaultEditorKit.CopyAction',
        +            'DefaultEditorKit.CutAction',
        +            'DefaultEditorKit.DefaultKeyTypedAction',
        +            'DefaultEditorKit.InsertBreakAction',
        +            'DefaultEditorKit.InsertContentAction',
        +            'DefaultEditorKit.InsertTabAction',
        +            'DefaultEditorKit.PasteAction,',
        +            'DefaultFocusManager', 'DefaultHighlighter',
        +            'DefaultHighlighter.DefaultHighlightPainter',
        +            'DefaultListCellRenderer',
        +            'DefaultListCellRenderer.UIResource',
        +            'DefaultListModel', 'DefaultListSelectionModel',
        +            'DefaultMenuLayout', 'DefaultMetalTheme',
        +            'DefaultMutableTreeNode',
        +            'DefaultSingleSelectionModel',
        +            'DefaultStyledDocument',
        +            'DefaultStyledDocument.AttributeUndoableEdit',
        +            'DefaultStyledDocument.ElementSpec',
        +            'DefaultTableCellRenderer',
        +            'DefaultTableCellRenderer.UIResource',
        +            'DefaultTableColumnModel', 'DefaultTableModel',
        +            'DefaultTextUI', 'DefaultTreeCellEditor',
        +            'DefaultTreeCellRenderer', 'DefaultTreeModel',
        +            'DefaultTreeSelectionModel', 'DefinitionKind',
        +            'DefinitionKindHelper', 'Deflater',
        +            'DeflaterOutputStream', 'Delegate', 'DesignMode',
        +            'DesktopIconUI', 'DesktopManager', 'DesktopPaneUI',
        +            'DGC', 'Dialog', 'Dictionary', 'DigestException',
        +            'DigestInputStream', 'DigestOutputStream',
        +            'Dimension', 'Dimension2D', 'DimensionUIResource',
        +            'DirContext', 'DirectColorModel', 'DirectoryManager',
        +            'DirObjectFactory', 'DirStateFactory',
        +            'DirStateFactory.Result', 'DnDConstants', 'Document',
        +            'DocumentEvent', 'DocumentEvent.ElementChange',
        +            'DocumentEvent.EventType', 'DocumentListener',
        +            'DocumentParser', 'DomainCombiner', 'DomainManager',
        +            'DomainManagerOperations', 'Double', 'DoubleHolder',
        +            'DoubleSeqHelper', 'DoubleSeqHolder',
        +            'DragGestureEvent', 'DragGestureListener',
        +            'DragGestureRecognizer', 'DragSource',
        +            'DragSourceContext', 'DragSourceDragEvent',
        +            'DragSourceDropEvent', 'DragSourceEvent',
        +            'DragSourceListener', 'Driver', 'DriverManager',
        +            'DriverPropertyInfo', 'DropTarget',
        +            'DropTarget.DropTargetAutoScroller',
        +            'DropTargetContext', 'DropTargetDragEvent',
        +            'DropTargetDropEvent', 'DropTargetEvent',
        +            'DropTargetListener', 'DSAKey',
        +            'DSAKeyPairGenerator', 'DSAParameterSpec',
        +            'DSAParams', 'DSAPrivateKey', 'DSAPrivateKeySpec',
        +            'DSAPublicKey', 'DSAPublicKeySpec', 'DTD',
        +            'DTDConstants', 'DynamicImplementation', 'DynAny',
        +            'DynArray', 'DynEnum', 'DynFixed', 'DynSequence',
        +            'DynStruct', 'DynUnion', 'DynValue', 'EditorKit',
        +            'Element', 'ElementIterator', 'Ellipse2D',
        +            'Ellipse2D.Double', 'Ellipse2D.Float', 'EmptyBorder',
        +            'EmptyStackException', 'EncodedKeySpec', 'Entity',
        +            'EnumControl', 'EnumControl.Type', 'Enumeration',
        +            'Environment', 'EOFException', 'Error',
        +            'EtchedBorder', 'Event', 'EventContext',
        +            'EventDirContext', 'EventListener',
        +            'EventListenerList', 'EventObject', 'EventQueue',
        +            'EventSetDescriptor', 'Exception',
        +            'ExceptionInInitializerError', 'ExceptionList',
        +            'ExpandVetoException', 'ExportException',
        +            'ExtendedRequest', 'ExtendedResponse',
        +            'Externalizable', 'FeatureDescriptor', 'Field',
        +            'FieldNameHelper', 'FieldPosition', 'FieldView',
        +            'File', 'FileChooserUI', 'FileDescriptor',
        +            'FileDialog', 'FileFilter', 'FileInputStream',
        +            'FilenameFilter', 'FileNameMap',
        +            'FileNotFoundException', 'FileOutputStream',
        +            'FilePermission', 'FileReader', 'FileSystemView',
        +            'FileView', 'FileWriter', 'FilteredImageSource',
        +            'FilterInputStream', 'FilterOutputStream',
        +            'FilterReader', 'FilterWriter',
        +            'FixedHeightLayoutCache', 'FixedHolder',
        +            'FlatteningPathIterator', 'FlavorMap', 'Float',
        +            'FloatControl', 'FloatControl.Type', 'FloatHolder',
        +            'FloatSeqHelper', 'FloatSeqHolder', 'FlowLayout',
        +            'FlowView', 'FlowView.FlowStrategy', 'FocusAdapter',
        +            'FocusEvent', 'FocusListener', 'FocusManager',
        +            'Font', 'FontFormatException', 'FontMetrics',
        +            'FontRenderContext', 'FontUIResource', 'Format',
        +            'FormatConversionProvider', 'FormView', 'Frame',
        +            'FREE_MEM', 'GapContent', 'GeneralPath',
        +            'GeneralSecurityException', 'GlyphJustificationInfo',
        +            'GlyphMetrics', 'GlyphVector', 'GlyphView',
        +            'GlyphView.GlyphPainter', 'GradientPaint',
        +            'GraphicAttribute', 'Graphics', 'Graphics2D',
        +            'GraphicsConfigTemplate', 'GraphicsConfiguration',
        +            'GraphicsDevice', 'GraphicsEnvironment',
        +            'GrayFilter', 'GregorianCalendar',
        +            'GridBagConstraints', 'GridBagLayout', 'GridLayout',
        +            'Group', 'Guard', 'GuardedObject', 'GZIPInputStream',
        +            'GZIPOutputStream', 'HasControls', 'HashMap',
        +            'HashSet', 'Hashtable', 'HierarchyBoundsAdapter',
        +            'HierarchyBoundsListener', 'HierarchyEvent',
        +            'HierarchyListener', 'Highlighter',
        +            'Highlighter.Highlight',
        +            'Highlighter.HighlightPainter', 'HTML',
        +            'HTML.Attribute', 'HTML.Tag', 'HTML.UnknownTag',
        +            'HTMLDocument', 'HTMLDocument.Iterator',
        +            'HTMLEditorKit', 'HTMLEditorKit.HTMLFactory',
        +            'HTMLEditorKit.HTMLTextAction',
        +            'HTMLEditorKit.InsertHTMLTextAction',
        +            'HTMLEditorKit.LinkController',
        +            'HTMLEditorKit.Parser',
        +            'HTMLEditorKit.ParserCallback',
        +            'HTMLFrameHyperlinkEvent', 'HTMLWriter',
        +            'HttpURLConnection', 'HyperlinkEvent',
        +            'HyperlinkEvent.EventType', 'HyperlinkListener',
        +            'ICC_ColorSpace', 'ICC_Profile', 'ICC_ProfileGray',
        +            'ICC_ProfileRGB', 'Icon', 'IconUIResource',
        +            'IconView', 'IdentifierHelper', 'Identity',
        +            'IdentityScope', 'IDLEntity', 'IDLType',
        +            'IDLTypeHelper', 'IDLTypeOperations',
        +            'IllegalAccessError', 'IllegalAccessException',
        +            'IllegalArgumentException',
        +            'IllegalComponentStateException',
        +            'IllegalMonitorStateException',
        +            'IllegalPathStateException', 'IllegalStateException',
        +            'IllegalThreadStateException', 'Image',
        +            'ImageConsumer', 'ImageFilter',
        +            'ImageGraphicAttribute', 'ImageIcon',
        +            'ImageObserver', 'ImageProducer',
        +            'ImagingOpException', 'IMP_LIMIT',
        +            'IncompatibleClassChangeError',
        +            'InconsistentTypeCode', 'IndexColorModel',
        +            'IndexedPropertyDescriptor',
        +            'IndexOutOfBoundsException', 'IndirectionException',
        +            'InetAddress', 'Inflater', 'InflaterInputStream',
        +            'InheritableThreadLocal', 'InitialContext',
        +            'InitialContextFactory',
        +            'InitialContextFactoryBuilder', 'InitialDirContext',
        +            'INITIALIZE', 'Initializer', 'InitialLdapContext',
        +            'InlineView', 'InputContext', 'InputEvent',
        +            'InputMap', 'InputMapUIResource', 'InputMethod',
        +            'InputMethodContext', 'InputMethodDescriptor',
        +            'InputMethodEvent', 'InputMethodHighlight',
        +            'InputMethodListener', 'InputMethodRequests',
        +            'InputStream', 'InputStreamReader', 'InputSubset',
        +            'InputVerifier', 'Insets', 'InsetsUIResource',
        +            'InstantiationError', 'InstantiationException',
        +            'Instrument', 'InsufficientResourcesException',
        +            'Integer', 'INTERNAL', 'InternalError',
        +            'InternalFrameAdapter', 'InternalFrameEvent',
        +            'InternalFrameListener', 'InternalFrameUI',
        +            'InterruptedException', 'InterruptedIOException',
        +            'InterruptedNamingException', 'INTF_REPOS',
        +            'IntHolder', 'IntrospectionException',
        +            'Introspector', 'Invalid',
        +            'InvalidAlgorithmParameterException',
        +            'InvalidAttributeIdentifierException',
        +            'InvalidAttributesException',
        +            'InvalidAttributeValueException',
        +            'InvalidClassException',
        +            'InvalidDnDOperationException',
        +            'InvalidKeyException', 'InvalidKeySpecException',
        +            'InvalidMidiDataException', 'InvalidName',
        +            'InvalidNameException', 'InvalidNameHelper',
        +            'InvalidNameHolder', 'InvalidObjectException',
        +            'InvalidParameterException',
        +            'InvalidParameterSpecException',
        +            'InvalidSearchControlsException',
        +            'InvalidSearchFilterException', 'InvalidSeq',
        +            'InvalidTransactionException', 'InvalidValue',
        +            'INVALID_TRANSACTION', 'InvocationEvent',
        +            'InvocationHandler', 'InvocationTargetException',
        +            'InvokeHandler', 'INV_FLAG', 'INV_IDENT',
        +            'INV_OBJREF', 'INV_POLICY', 'IOException',
        +            'IRObject', 'IRObjectOperations', 'IstringHelper',
        +            'ItemEvent', 'ItemListener', 'ItemSelectable',
        +            'Iterator', 'JApplet', 'JarEntry', 'JarException',
        +            'JarFile', 'JarInputStream', 'JarOutputStream',
        +            'JarURLConnection', 'JButton', 'JCheckBox',
        +            'JCheckBoxMenuItem', 'JColorChooser', 'JComboBox',
        +            'JComboBox.KeySelectionManager', 'JComponent',
        +            'JDesktopPane', 'JDialog', 'JEditorPane',
        +            'JFileChooser', 'JFrame', 'JInternalFrame',
        +            'JInternalFrame.JDesktopIcon', 'JLabel',
        +            'JLayeredPane', 'JList', 'JMenu', 'JMenuBar',
        +            'JMenuItem', 'JobAttributes',
        +            'JobAttributes.DefaultSelectionType',
        +            'JobAttributes.DestinationType',
        +            'JobAttributes.DialogType',
        +            'JobAttributes.MultipleDocumentHandlingType',
        +            'JobAttributes.SidesType', 'JOptionPane', 'JPanel',
        +            'JPasswordField', 'JPopupMenu',
        +            'JPopupMenu.Separator', 'JProgressBar',
        +            'JRadioButton', 'JRadioButtonMenuItem', 'JRootPane',
        +            'JScrollBar', 'JScrollPane', 'JSeparator', 'JSlider',
        +            'JSplitPane', 'JTabbedPane', 'JTable',
        +            'JTableHeader', 'JTextArea', 'JTextComponent',
        +            'JTextComponent.KeyBinding', 'JTextField',
        +            'JTextPane', 'JToggleButton',
        +            'JToggleButton.ToggleButtonModel', 'JToolBar',
        +            'JToolBar.Separator', 'JToolTip', 'JTree',
        +            'JTree.DynamicUtilTreeNode',
        +            'JTree.EmptySelectionModel', 'JViewport', 'JWindow',
        +            'Kernel', 'Key', 'KeyAdapter', 'KeyEvent',
        +            'KeyException', 'KeyFactory', 'KeyFactorySpi',
        +            'KeyListener', 'KeyManagementException', 'Keymap',
        +            'KeyPair', 'KeyPairGenerator', 'KeyPairGeneratorSpi',
        +            'KeySpec', 'KeyStore', 'KeyStoreException',
        +            'KeyStoreSpi', 'KeyStroke', 'Label', 'LabelUI',
        +            'LabelView', 'LastOwnerException',
        +            'LayeredHighlighter',
        +            'LayeredHighlighter.LayerPainter', 'LayoutManager',
        +            'LayoutManager2', 'LayoutQueue', 'LdapContext',
        +            'LdapReferralException', 'Lease',
        +            'LimitExceededException', 'Line', 'Line.Info',
        +            'Line2D', 'Line2D.Double', 'Line2D.Float',
        +            'LineBorder', 'LineBreakMeasurer', 'LineEvent',
        +            'LineEvent.Type', 'LineListener', 'LineMetrics',
        +            'LineNumberInputStream', 'LineNumberReader',
        +            'LineUnavailableException', 'LinkageError',
        +            'LinkedList', 'LinkException', 'LinkLoopException',
        +            'LinkRef', 'List', 'ListCellRenderer',
        +            'ListDataEvent', 'ListDataListener', 'ListIterator',
        +            'ListModel', 'ListResourceBundle',
        +            'ListSelectionEvent', 'ListSelectionListener',
        +            'ListSelectionModel', 'ListUI', 'ListView',
        +            'LoaderHandler', 'Locale', 'LocateRegistry',
        +            'LogStream', 'Long', 'LongHolder',
        +            'LongLongSeqHelper', 'LongLongSeqHolder',
        +            'LongSeqHelper', 'LongSeqHolder', 'LookAndFeel',
        +            'LookupOp', 'LookupTable', 'MalformedLinkException',
        +            'MalformedURLException', 'Manifest', 'Map',
        +            'Map.Entry', 'MARSHAL', 'MarshalException',
        +            'MarshalledObject', 'Math', 'MatteBorder',
        +            'MediaTracker', 'Member', 'MemoryImageSource',
        +            'Menu', 'MenuBar', 'MenuBarUI', 'MenuComponent',
        +            'MenuContainer', 'MenuDragMouseEvent',
        +            'MenuDragMouseListener', 'MenuElement', 'MenuEvent',
        +            'MenuItem', 'MenuItemUI', 'MenuKeyEvent',
        +            'MenuKeyListener', 'MenuListener',
        +            'MenuSelectionManager', 'MenuShortcut',
        +            'MessageDigest', 'MessageDigestSpi', 'MessageFormat',
        +            'MetaEventListener', 'MetalBorders',
        +            'MetalBorders.ButtonBorder',
        +            'MetalBorders.Flush3DBorder',
        +            'MetalBorders.InternalFrameBorder',
        +            'MetalBorders.MenuBarBorder',
        +            'MetalBorders.MenuItemBorder',
        +            'MetalBorders.OptionDialogBorder',
        +            'MetalBorders.PaletteBorder',
        +            'MetalBorders.PopupMenuBorder',
        +            'MetalBorders.RolloverButtonBorder',
        +            'MetalBorders.ScrollPaneBorder',
        +            'MetalBorders.TableHeaderBorder',
        +            'MetalBorders.TextFieldBorder',
        +            'MetalBorders.ToggleButtonBorder',
        +            'MetalBorders.ToolBarBorder', 'MetalButtonUI',
        +            'MetalCheckBoxIcon', 'MetalCheckBoxUI',
        +            'MetalComboBoxButton', 'MetalComboBoxEditor',
        +            'MetalComboBoxEditor.UIResource',
        +            'MetalComboBoxIcon', 'MetalComboBoxUI',
        +            'MetalDesktopIconUI', 'MetalFileChooserUI',
        +            'MetalIconFactory', 'MetalIconFactory.FileIcon16',
        +            'MetalIconFactory.FolderIcon16',
        +            'MetalIconFactory.PaletteCloseIcon',
        +            'MetalIconFactory.TreeControlIcon',
        +            'MetalIconFactory.TreeFolderIcon',
        +            'MetalIconFactory.TreeLeafIcon',
        +            'MetalInternalFrameTitlePane',
        +            'MetalInternalFrameUI', 'MetalLabelUI',
        +            'MetalLookAndFeel', 'MetalPopupMenuSeparatorUI',
        +            'MetalProgressBarUI', 'MetalRadioButtonUI',
        +            'MetalScrollBarUI', 'MetalScrollButton',
        +            'MetalScrollPaneUI', 'MetalSeparatorUI',
        +            'MetalSliderUI', 'MetalSplitPaneUI',
        +            'MetalTabbedPaneUI', 'MetalTextFieldUI',
        +            'MetalTheme', 'MetalToggleButtonUI',
        +            'MetalToolBarUI', 'MetalToolTipUI', 'MetalTreeUI',
        +            'MetaMessage', 'Method', 'MethodDescriptor',
        +            'MidiChannel', 'MidiDevice', 'MidiDevice.Info',
        +            'MidiDeviceProvider', 'MidiEvent', 'MidiFileFormat',
        +            'MidiFileReader', 'MidiFileWriter', 'MidiMessage',
        +            'MidiSystem', 'MidiUnavailableException',
        +            'MimeTypeParseException', 'MinimalHTMLWriter',
        +            'MissingResourceException', 'Mixer', 'Mixer.Info',
        +            'MixerProvider', 'ModificationItem', 'Modifier',
        +            'MouseAdapter', 'MouseDragGestureRecognizer',
        +            'MouseEvent', 'MouseInputAdapter',
        +            'MouseInputListener', 'MouseListener',
        +            'MouseMotionAdapter', 'MouseMotionListener',
        +            'MultiButtonUI', 'MulticastSocket',
        +            'MultiColorChooserUI', 'MultiComboBoxUI',
        +            'MultiDesktopIconUI', 'MultiDesktopPaneUI',
        +            'MultiFileChooserUI', 'MultiInternalFrameUI',
        +            'MultiLabelUI', 'MultiListUI', 'MultiLookAndFeel',
        +            'MultiMenuBarUI', 'MultiMenuItemUI',
        +            'MultiOptionPaneUI', 'MultiPanelUI',
        +            'MultiPixelPackedSampleModel', 'MultipleMaster',
        +            'MultiPopupMenuUI', 'MultiProgressBarUI',
        +            'MultiScrollBarUI', 'MultiScrollPaneUI',
        +            'MultiSeparatorUI', 'MultiSliderUI',
        +            'MultiSplitPaneUI', 'MultiTabbedPaneUI',
        +            'MultiTableHeaderUI', 'MultiTableUI', 'MultiTextUI',
        +            'MultiToolBarUI', 'MultiToolTipUI', 'MultiTreeUI',
        +            'MultiViewportUI', 'MutableAttributeSet',
        +            'MutableComboBoxModel', 'MutableTreeNode', 'Name',
        +            'NameAlreadyBoundException', 'NameClassPair',
        +            'NameComponent', 'NameComponentHelper',
        +            'NameComponentHolder', 'NamedValue', 'NameHelper',
        +            'NameHolder', 'NameNotFoundException', 'NameParser',
        +            'NamespaceChangeListener', 'NameValuePair',
        +            'NameValuePairHelper', 'Naming', 'NamingContext',
        +            'NamingContextHelper', 'NamingContextHolder',
        +            'NamingContextOperations', 'NamingEnumeration',
        +            'NamingEvent', 'NamingException',
        +            'NamingExceptionEvent', 'NamingListener',
        +            'NamingManager', 'NamingSecurityException',
        +            'NegativeArraySizeException', 'NetPermission',
        +            'NoClassDefFoundError', 'NoInitialContextException',
        +            'NoninvertibleTransformException',
        +            'NoPermissionException', 'NoRouteToHostException',
        +            'NoSuchAlgorithmException',
        +            'NoSuchAttributeException', 'NoSuchElementException',
        +            'NoSuchFieldError', 'NoSuchFieldException',
        +            'NoSuchMethodError', 'NoSuchMethodException',
        +            'NoSuchObjectException', 'NoSuchProviderException',
        +            'NotActiveException', 'NotBoundException',
        +            'NotContextException', 'NotEmpty', 'NotEmptyHelper',
        +            'NotEmptyHolder', 'NotFound', 'NotFoundHelper',
        +            'NotFoundHolder', 'NotFoundReason',
        +            'NotFoundReasonHelper', 'NotFoundReasonHolder',
        +            'NotOwnerException', 'NotSerializableException',
        +            'NO_IMPLEMENT', 'NO_MEMORY', 'NO_PERMISSION',
        +            'NO_RESOURCES', 'NO_RESPONSE',
        +            'NullPointerException', 'Number', 'NumberFormat',
        +            'NumberFormatException', 'NVList', 'Object',
        +            'ObjectChangeListener', 'ObjectFactory',
        +            'ObjectFactoryBuilder', 'ObjectHelper',
        +            'ObjectHolder', 'ObjectImpl', 'ObjectInput',
        +            'ObjectInputStream', 'ObjectInputStream.GetField',
        +            'ObjectInputValidation', 'ObjectOutput',
        +            'ObjectOutputStream', 'ObjectOutputStream.PutField',
        +            'ObjectStreamClass', 'ObjectStreamConstants',
        +            'ObjectStreamException', 'ObjectStreamField',
        +            'ObjectView', 'OBJECT_NOT_EXIST', 'ObjID',
        +            'OBJ_ADAPTER', 'Observable', 'Observer',
        +            'OctetSeqHelper', 'OctetSeqHolder', 'OMGVMCID',
        +            'OpenType', 'Operation',
        +            'OperationNotSupportedException', 'Option',
        +            'OptionalDataException', 'OptionPaneUI', 'ORB',
        +            'OutOfMemoryError', 'OutputStream',
        +            'OutputStreamWriter', 'OverlayLayout', 'Owner',
        +            'Package', 'PackedColorModel', 'Pageable',
        +            'PageAttributes', 'PageAttributes.ColorType',
        +            'PageAttributes.MediaType',
        +            'PageAttributes.OrientationRequestedType',
        +            'PageAttributes.OriginType',
        +            'PageAttributes.PrintQualityType', 'PageFormat',
        +            'Paint', 'PaintContext', 'PaintEvent', 'Panel',
        +            'PanelUI', 'Paper', 'ParagraphView',
        +            'ParameterBlock', 'ParameterDescriptor',
        +            'ParseException', 'ParsePosition', 'Parser',
        +            'ParserDelegator', 'PartialResultException',
        +            'PasswordAuthentication', 'PasswordView', 'Patch',
        +            'PathIterator', 'Permission', 'PermissionCollection',
        +            'Permissions', 'PERSIST_STORE', 'PhantomReference',
        +            'PipedInputStream', 'PipedOutputStream',
        +            'PipedReader', 'PipedWriter', 'PixelGrabber',
        +            'PixelInterleavedSampleModel', 'PKCS8EncodedKeySpec',
        +            'PlainDocument', 'PlainView', 'Point', 'Point2D',
        +            'Point2D.Double', 'Point2D.Float', 'Policy',
        +            'PolicyError', 'PolicyHelper', 'PolicyHolder',
        +            'PolicyListHelper', 'PolicyListHolder',
        +            'PolicyOperations', 'PolicyTypeHelper', 'Polygon',
        +            'PopupMenu', 'PopupMenuEvent', 'PopupMenuListener',
        +            'PopupMenuUI', 'Port', 'Port.Info',
        +            'PortableRemoteObject',
        +            'PortableRemoteObjectDelegate', 'Position',
        +            'Position.Bias', 'PreparedStatement', 'Principal',
        +            'PrincipalHolder', 'Printable',
        +            'PrinterAbortException', 'PrinterException',
        +            'PrinterGraphics', 'PrinterIOException',
        +            'PrinterJob', 'PrintGraphics', 'PrintJob',
        +            'PrintStream', 'PrintWriter', 'PrivateKey',
        +            'PRIVATE_MEMBER', 'PrivilegedAction',
        +            'PrivilegedActionException',
        +            'PrivilegedExceptionAction', 'Process',
        +            'ProfileDataException', 'ProgressBarUI',
        +            'ProgressMonitor', 'ProgressMonitorInputStream',
        +            'Properties', 'PropertyChangeEvent',
        +            'PropertyChangeListener', 'PropertyChangeSupport',
        +            'PropertyDescriptor', 'PropertyEditor',
        +            'PropertyEditorManager', 'PropertyEditorSupport',
        +            'PropertyPermission', 'PropertyResourceBundle',
        +            'PropertyVetoException', 'ProtectionDomain',
        +            'ProtocolException', 'Provider', 'ProviderException',
        +            'Proxy', 'PublicKey', 'PUBLIC_MEMBER',
        +            'PushbackInputStream', 'PushbackReader',
        +            'QuadCurve2D', 'QuadCurve2D.Double',
        +            'QuadCurve2D.Float', 'Random', 'RandomAccessFile',
        +            'Raster', 'RasterFormatException', 'RasterOp',
        +            'Reader', 'Receiver', 'Rectangle', 'Rectangle2D',
        +            'Rectangle2D.Double', 'Rectangle2D.Float',
        +            'RectangularShape', 'Ref', 'RefAddr', 'Reference',
        +            'Referenceable', 'ReferenceQueue',
        +            'ReferralException', 'ReflectPermission', 'Registry',
        +            'RegistryHandler', 'RemarshalException', 'Remote',
        +            'RemoteCall', 'RemoteException', 'RemoteObject',
        +            'RemoteRef', 'RemoteServer', 'RemoteStub',
        +            'RenderableImage', 'RenderableImageOp',
        +            'RenderableImageProducer', 'RenderContext',
        +            'RenderedImage', 'RenderedImageFactory', 'Renderer',
        +            'RenderingHints', 'RenderingHints.Key',
        +            'RepaintManager', 'ReplicateScaleFilter',
        +            'Repository', 'RepositoryIdHelper', 'Request',
        +            'RescaleOp', 'Resolver', 'ResolveResult',
        +            'ResourceBundle', 'ResponseHandler', 'ResultSet',
        +            'ResultSetMetaData', 'ReverbType', 'RGBImageFilter',
        +            'RMIClassLoader', 'RMIClientSocketFactory',
        +            'RMIFailureHandler', 'RMISecurityException',
        +            'RMISecurityManager', 'RMIServerSocketFactory',
        +            'RMISocketFactory', 'Robot', 'RootPaneContainer',
        +            'RootPaneUI', 'RoundRectangle2D',
        +            'RoundRectangle2D.Double', 'RoundRectangle2D.Float',
        +            'RowMapper', 'RSAKey', 'RSAKeyGenParameterSpec',
        +            'RSAPrivateCrtKey', 'RSAPrivateCrtKeySpec',
        +            'RSAPrivateKey', 'RSAPrivateKeySpec', 'RSAPublicKey',
        +            'RSAPublicKeySpec', 'RTFEditorKit',
        +            'RuleBasedCollator', 'Runnable', 'Runtime',
        +            'RunTime', 'RuntimeException', 'RunTimeOperations',
        +            'RuntimePermission', 'SampleModel',
        +            'SchemaViolationException', 'Scrollable',
        +            'Scrollbar', 'ScrollBarUI', 'ScrollPane',
        +            'ScrollPaneConstants', 'ScrollPaneLayout',
        +            'ScrollPaneLayout.UIResource', 'ScrollPaneUI',
        +            'SearchControls', 'SearchResult',
        +            'SecureClassLoader', 'SecureRandom',
        +            'SecureRandomSpi', 'Security', 'SecurityException',
        +            'SecurityManager', 'SecurityPermission', 'Segment',
        +            'SeparatorUI', 'Sequence', 'SequenceInputStream',
        +            'Sequencer', 'Sequencer.SyncMode', 'Serializable',
        +            'SerializablePermission', 'ServantObject',
        +            'ServerCloneException', 'ServerError',
        +            'ServerException', 'ServerNotActiveException',
        +            'ServerRef', 'ServerRequest',
        +            'ServerRuntimeException', 'ServerSocket',
        +            'ServiceDetail', 'ServiceDetailHelper',
        +            'ServiceInformation', 'ServiceInformationHelper',
        +            'ServiceInformationHolder',
        +            'ServiceUnavailableException', 'Set',
        +            'SetOverrideType', 'SetOverrideTypeHelper', 'Shape',
        +            'ShapeGraphicAttribute', 'Short', 'ShortHolder',
        +            'ShortLookupTable', 'ShortMessage', 'ShortSeqHelper',
        +            'ShortSeqHolder', 'Signature', 'SignatureException',
        +            'SignatureSpi', 'SignedObject', 'Signer',
        +            'SimpleAttributeSet', 'SimpleBeanInfo',
        +            'SimpleDateFormat', 'SimpleTimeZone',
        +            'SinglePixelPackedSampleModel',
        +            'SingleSelectionModel', 'SizeLimitExceededException',
        +            'SizeRequirements', 'SizeSequence', 'Skeleton',
        +            'SkeletonMismatchException',
        +            'SkeletonNotFoundException', 'SliderUI', 'Socket',
        +            'SocketException', 'SocketImpl', 'SocketImplFactory',
        +            'SocketOptions', 'SocketPermission',
        +            'SocketSecurityException', 'SoftBevelBorder',
        +            'SoftReference', 'SortedMap', 'SortedSet',
        +            'Soundbank', 'SoundbankReader', 'SoundbankResource',
        +            'SourceDataLine', 'SplitPaneUI', 'SQLData',
        +            'SQLException', 'SQLInput', 'SQLOutput',
        +            'SQLPermission', 'SQLWarning', 'Stack',
        +            'StackOverflowError', 'StateEdit', 'StateEditable',
        +            'StateFactory', 'Statement', 'Streamable',
        +            'StreamableValue', 'StreamCorruptedException',
        +            'StreamTokenizer', 'StrictMath', 'String',
        +            'StringBuffer', 'StringBufferInputStream',
        +            'StringCharacterIterator', 'StringContent',
        +            'StringHolder', 'StringIndexOutOfBoundsException',
        +            'StringReader', 'StringRefAddr', 'StringSelection',
        +            'StringTokenizer', 'StringValueHelper',
        +            'StringWriter', 'Stroke', 'Struct', 'StructMember',
        +            'StructMemberHelper', 'Stub', 'StubDelegate',
        +            'StubNotFoundException', 'Style', 'StyleConstants',
        +            'StyleConstants.CharacterConstants',
        +            'StyleConstants.ColorConstants',
        +            'StyleConstants.FontConstants',
        +            'StyleConstants.ParagraphConstants', 'StyleContext',
        +            'StyledDocument', 'StyledEditorKit',
        +            'StyledEditorKit.AlignmentAction',
        +            'StyledEditorKit.BoldAction',
        +            'StyledEditorKit.FontFamilyAction',
        +            'StyledEditorKit.FontSizeAction',
        +            'StyledEditorKit.ForegroundAction',
        +            'StyledEditorKit.ItalicAction',
        +            'StyledEditorKit.StyledTextAction',
        +            'StyledEditorKit.UnderlineAction', 'StyleSheet',
        +            'StyleSheet.BoxPainter', 'StyleSheet.ListPainter',
        +            'SwingConstants', 'SwingPropertyChangeSupport',
        +            'SwingUtilities', 'SyncFailedException',
        +            'Synthesizer', 'SysexMessage', 'System',
        +            'SystemColor', 'SystemException', 'SystemFlavorMap',
        +            'TabableView', 'TabbedPaneUI', 'TabExpander',
        +            'TableCellEditor', 'TableCellRenderer',
        +            'TableColumn', 'TableColumnModel',
        +            'TableColumnModelEvent', 'TableColumnModelListener',
        +            'TableHeaderUI', 'TableModel', 'TableModelEvent',
        +            'TableModelListener', 'TableUI', 'TableView',
        +            'TabSet', 'TabStop', 'TagElement', 'TargetDataLine',
        +            'TCKind', 'TextAction', 'TextArea', 'TextAttribute',
        +            'TextComponent', 'TextEvent', 'TextField',
        +            'TextHitInfo', 'TextLayout',
        +            'TextLayout.CaretPolicy', 'TextListener',
        +            'TextMeasurer', 'TextUI', 'TexturePaint', 'Thread',
        +            'ThreadDeath', 'ThreadGroup', 'ThreadLocal',
        +            'Throwable', 'Tie', 'TileObserver', 'Time',
        +            'TimeLimitExceededException', 'Timer', 'TimerTask',
        +            'Timestamp', 'TimeZone', 'TitledBorder', 'ToolBarUI',
        +            'Toolkit', 'ToolTipManager', 'ToolTipUI',
        +            'TooManyListenersException', 'Track',
        +            'TransactionRequiredException',
        +            'TransactionRolledbackException',
        +            'TRANSACTION_REQUIRED', 'TRANSACTION_ROLLEDBACK',
        +            'Transferable', 'TransformAttribute', 'TRANSIENT',
        +            'Transmitter', 'Transparency', 'TreeCellEditor',
        +            'TreeCellRenderer', 'TreeExpansionEvent',
        +            'TreeExpansionListener', 'TreeMap', 'TreeModel',
        +            'TreeModelEvent', 'TreeModelListener', 'TreeNode',
        +            'TreePath', 'TreeSelectionEvent',
        +            'TreeSelectionListener', 'TreeSelectionModel',
        +            'TreeSet', 'TreeUI', 'TreeWillExpandListener',
        +            'TypeCode', 'TypeCodeHolder', 'TypeMismatch',
        +            'Types', 'UID', 'UIDefaults',
        +            'UIDefaults.ActiveValue', 'UIDefaults.LazyInputMap',
        +            'UIDefaults.LazyValue', 'UIDefaults.ProxyLazyValue',
        +            'UIManager', 'UIManager.LookAndFeelInfo',
        +            'UIResource', 'ULongLongSeqHelper',
        +            'ULongLongSeqHolder', 'ULongSeqHelper',
        +            'ULongSeqHolder', 'UndeclaredThrowableException',
        +            'UndoableEdit', 'UndoableEditEvent',
        +            'UndoableEditListener', 'UndoableEditSupport',
        +            'UndoManager', 'UnexpectedException',
        +            'UnicastRemoteObject', 'UnionMember',
        +            'UnionMemberHelper', 'UNKNOWN', 'UnknownError',
        +            'UnknownException', 'UnknownGroupException',
        +            'UnknownHostException', 'UnknownObjectException',
        +            'UnknownServiceException', 'UnknownUserException',
        +            'UnmarshalException', 'UnrecoverableKeyException',
        +            'Unreferenced', 'UnresolvedPermission',
        +            'UnsatisfiedLinkError', 'UnsolicitedNotification',
        +            'UnsolicitedNotificationEvent',
        +            'UnsolicitedNotificationListener',
        +            'UnsupportedAudioFileException',
        +            'UnsupportedClassVersionError',
        +            'UnsupportedEncodingException',
        +            'UnsupportedFlavorException',
        +            'UnsupportedLookAndFeelException',
        +            'UnsupportedOperationException',
        +            'UNSUPPORTED_POLICY', 'UNSUPPORTED_POLICY_VALUE',
        +            'URL', 'URLClassLoader', 'URLConnection',
        +            'URLDecoder', 'URLEncoder', 'URLStreamHandler',
        +            'URLStreamHandlerFactory', 'UserException',
        +            'UShortSeqHelper', 'UShortSeqHolder',
        +            'UTFDataFormatException', 'Util', 'UtilDelegate',
        +            'Utilities', 'ValueBase', 'ValueBaseHelper',
        +            'ValueBaseHolder', 'ValueFactory', 'ValueHandler',
        +            'ValueMember', 'ValueMemberHelper',
        +            'VariableHeightLayoutCache', 'Vector', 'VerifyError',
        +            'VersionSpecHelper', 'VetoableChangeListener',
        +            'VetoableChangeSupport', 'View', 'ViewFactory',
        +            'ViewportLayout', 'ViewportUI',
        +            'VirtualMachineError', 'Visibility',
        +            'VisibilityHelper', 'VMID', 'VM_ABSTRACT',
        +            'VM_CUSTOM', 'VM_NONE', 'VM_TRUNCATABLE',
        +            'VoiceStatus', 'Void', 'WCharSeqHelper',
        +            'WCharSeqHolder', 'WeakHashMap', 'WeakReference',
        +            'Window', 'WindowAdapter', 'WindowConstants',
        +            'WindowEvent', 'WindowListener', 'WrappedPlainView',
        +            'WritableRaster', 'WritableRenderedImage',
        +            'WriteAbortedException', 'Writer',
        +            'WrongTransaction', 'WStringValueHelper',
        +            'X509Certificate', 'X509CRL', 'X509CRLEntry',
        +            'X509EncodedKeySpec', 'X509Extension', 'ZipEntry',
        +            'ZipException', 'ZipFile', 'ZipInputStream',
        +            'ZipOutputStream', 'ZoneView',
        +            '_BindingIteratorImplBase', '_BindingIteratorStub',
        +            '_IDLTypeStub', '_NamingContextImplBase',
        +            '_NamingContextStub', '_PolicyStub', '_Remote_Stub'
        +            ),
        +        4 => array(
        +            'boolean', 'byte', 'char', 'double', 'float', 'int', 'long',
        +            'short', 'void'
        +            ),
        +        5 => array(
        +            'allProperties', 'asImmutable', 'asSynchronized', 'collect',
        +            'count', 'each', 'eachProperty', 'eachPropertyName',
        +            'eachWithIndex', 'find', 'findAll', 'findIndexOf',
        +            'flatten', 'get', 'grep', 'inject', 'intersect',
        +            'join', 'max', 'min', 'pop', 'reverse',
        +            'reverseEach', 'size', 'sort', 'subMap', 'toList'
        +            ),
        +        6 => array(
        +            'center', 'contains', 'eachMatch', 'padLeft', 'padRight',
        +            'toCharacter', 'tokenize', 'toLong', 'toURL'
        +            ),
        +        7 => array(
        +            'append', 'eachByte', 'eachFile', 'eachFileRecurse', 'eachLine',
        +            'eachLines', 'encodeBase64', 'filterLine', 'getText',
        +            'splitEachLine', 'transformChar', 'transformLine',
        +            'withOutputStream', 'withPrintWriter', 'withReader',
        +            'withStream', 'withStreams', 'withWriter',
        +            'withWriterAppend', 'write', 'writeLine'
        +            ),
        +        8 => array(
        +            'dump', 'getLastMatcher', 'inspect', 'invokeMethod', 'print',
        +            'println', 'start', 'startDaemon', 'step', 'times',
        +            'upto', 'use'
        +            ),
        +        9 => array(
        +            'call', 'close', 'eachRow', 'execute', 'executeUpdate', 'Sql'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?', '|', '=',
        +        '=>', '||', '-', '+', '<<', '<<<', '&&'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => true,
        +        1 => false,
        +        2 => false,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true,
        +        8 => true,
        +        9 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #aaaadd; font-weight: bold;',
        +            4 => 'color: #993333;',
        +            5 => 'color: #663399;',
        +            6 => 'color: #CC0099;',
        +            7 => 'color: #FFCC33;',
        +            8 => 'color: #993399;',
        +            9 => 'color: #993399; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1=> 'color: #808080; font-style: italic;',
        +            2=> 'color: #a1a100;',
        +            3=> 'color: #808080; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;',
        +            2 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #0000ff;'
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAMEL}',
        +        2 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAMEL}',
        +        3 => 'http://www.google.de/search?as_q={FNAME}&num=100&hl=en&as_occt=url&as_sitesearch=java.sun.com%2Fj2se%2F1%2E5%2E0%2Fdocs%2Fapi%2F',
        +        4 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}',
        +        5 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}',
        +        6 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}',
        +        7 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}',
        +        8 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}',
        +        9 => 'http://www.google.de/search?q=site%3Agroovy.codehaus.org/%20{FNAME}'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        //Variables
        +        0 => '\\$\\{[a-zA-Z_][a-zA-Z0-9_]*\\}'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/gwbasic.php b/Sources/geshi/gwbasic.php
        new file mode 100644
        index 0000000..ecc1634
        --- /dev/null
        +++ b/Sources/geshi/gwbasic.php
        @@ -0,0 +1,153 @@
        + 'GwBasic',
        +    'COMMENT_SINGLE' => array(1 => "'", 2=> "REM"),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +    /* Statements */
        +        1 => array('END','FOR','NEXT','DATA','INPUT','DIM','READ','LET',
        +            'GOTO','RUN','IF','RESTORE','GOSUB','RETURN','REM',
        +            'STOP','PRINT','CLEAR','LIST','NEW','ON','WAIT','DEF',
        +            'POKE','CONT','OUT','LPRINT','LLIST','WIDTH','ELSE',
        +            'TRON','TROFF','SWAP','ERASE','EDIT','ERROR','RESUME',
        +            'DELETE','AUTO','RENUM','DEFSTR','DEFINT','DEFSNG',
        +            'DEFDBL','LINE','WHILE','WEND','CALL','WRITE','OPTION',
        +            'RANDOMIZE','OPEN','CLOSE','LOAD','MERGE','SAVE',
        +            'COLOR','CLS','MOTOR','BSAVE','BLOAD','SOUND','BEEP',
        +            'PSET','PRESET','SCREEN','KEY','LOCATE','TO','THEN',
        +            'STEP','USR','FN','SPC','NOT','ERL','ERR','STRING',
        +            'USING','INSTR','VARPTR','CSRLIN','POINT','OFF',
        +            'FILES','FIELD','SYSTEM','NAME','LSET','RSET','KILL',
        +            'PUT','GET','RESET','COMMON','CHAIN','PAINT','COM',
        +            'CIRCLE','DRAW','PLAY','TIMER','IOCTL','CHDIR','MKDIR',
        +            'RMDIR','SHELL','VIEW','WINDOW','PMAP','PALETTE','LCOPY',
        +            'CALLS','PCOPY','LOCK','UNLOCK','RANDOM','APPEND',
        +            ),
        +        2 => array(
        +            /* Functions */
        +            'CVI','CVS','CVD','MKI','MKS','MKD','ENVIRON',
        +            'LEFT','RIGHT','MID','SGN','INT','ABS',
        +            'SQR','SIN','LOG','EXP','COS','TAN','ATN',
        +            'FRE','INP','POS','LEN','STR','VAL','ASC',
        +            'CHR','PEEK','SPACE','OCT','HEX','LPOS',
        +            'CINT','CSNG','CDBL','FIX','PEN','STICK',
        +            'STRIG','EOF','LOC','LOF'
        +            ),
        +        3 => array(
        +            /* alpha Operators */
        +            'AND','OR','XOR','EQV','IMP','MOD'
        +            ),
        +        4 => array(
        +            /* parameterless functions */
        +            'INKEY','DATE','TIME','ERDEV','RND'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array(
        +            '>','=','<','+','-','*','/','^','\\'
        +            ),
        +        1 => array(
        +            '?'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +            GESHI_COMMENTS => false,
        +            1 => false,
        +            2 => false,
        +            3 => false,
        +            4 => false
        +            ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #00a1a1;font-weight: bold',
        +            2 => 'color: #000066;font-weight: bold',
        +            3 => 'color: #00a166;font-weight: bold',
        +            4 => 'color: #0066a1;font-weight: bold'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080;',
        +            2 => 'color: #808080;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +        /* Same as KEYWORDS[3] (and, or, not...) */
        +            0 => 'color: #00a166;font-weight: bold',
        +            1 => 'color: #00a1a1;font-weight: bold',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            1 => 'color: #708090'
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        1 => '^[0-9]+ '
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/haskell.php b/Sources/geshi/haskell.php
        new file mode 100644
        index 0000000..adae111
        --- /dev/null
        +++ b/Sources/geshi/haskell.php
        @@ -0,0 +1,202 @@
        + 'Haskell',
        +    'COMMENT_SINGLE' => array( 1 => '--'),
        +    'COMMENT_MULTI' => array('{-' => '-}'),
        +    'COMMENT_REGEXP' => array(
        +        2 => "/-->/",
        +        3 => "/{-(?:(?R)|.)-}/s", //Nested Comments
        +        ),
        +    'CASE_KEYWORDS' => 0,
        +    'QUOTEMARKS' => array('"',"'"),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        /* main haskell keywords */
        +        1 => array(
        +            'as',
        +            'case', 'of', 'class', 'data', 'default',
        +            'deriving', 'do', 'forall', 'hiding', 'if', 'then',
        +            'else', 'import', 'infix', 'infixl', 'infixr',
        +            'instance', 'let', 'in', 'module', 'newtype',
        +            'qualified', 'type', 'where'
        +            ),
        +        /* define names of main librarys, so we can link to it */
        +        2 => array(
        +            'Foreign', 'Numeric', 'Prelude'
        +            ),
        +        /* just link to Prelude functions, cause it's the default opened library when starting Haskell */
        +        3 => array(
        +            'not', 'otherwise', 'maybe',
        +            'either', 'fst', 'snd', 'curry', 'uncurry',
        +            'compare',
        +            'max', 'min', 'succ', 'pred', 'toEnum', 'fromEnum',
        +            'enumFrom', 'enumFromThen', 'enumFromTo',
        +            'enumFromThenTo', 'minBound', 'maxBound',
        +            'negate', 'abs', 'signum',
        +            'fromInteger', 'toRational', 'quot', 'rem',
        +            'div', 'mod', 'quotRem', 'divMod', 'toInteger',
        +            'recip', 'fromRational', 'pi', 'exp',
        +            'log', 'sqrt', 'logBase', 'sin', 'cos',
        +            'tan', 'asin', 'acos', 'atan', 'sinh', 'cosh',
        +            'tanh', 'asinh', 'acosh', 'atanh',
        +            'properFraction', 'truncate', 'round', 'ceiling',
        +            'floor', 'floatRadix', 'floatDigits', 'floatRange',
        +            'decodeFloat', 'encodeFloat', 'exponent',
        +            'significand', 'scaleFloat', 'isNaN', 'isInfinite',
        +            'isDenomalized', 'isNegativeZero', 'isIEEE',
        +            'atan2', 'subtract', 'even', 'odd', 'gcd',
        +            'lcm', 'fromIntegral', 'realToFrac',
        +            'return', 'fail', 'fmap',
        +            'mapM', 'mapM_', 'sequence', 'sequence_',
        +            'id', 'const','flip',
        +            'until', 'asTypeOf', 'error', 'undefined',
        +            'seq','map','filter', 'head',
        +            'last', 'tail', 'init', 'null', 'length',
        +            'reverse', 'foldl', 'foldl1', 'foldr',
        +            'foldr1', 'and', 'or', 'any', 'all', 'sum',
        +            'product', 'concat', 'concatMap', 'maximum',
        +            'minimum', 'scanl', 'scanl1', 'scanr', 'scanr1',
        +            'iterate', 'repeat', 'cycle', 'take', 'drop',
        +            'splitAt', 'takeWhile', 'dropWhile', 'span',
        +            'break', 'elem', 'notElem', 'lookup', 'zip',
        +            'zip3', 'zipWith', 'zipWith3', 'unzip', 'unzip3',
        +            'lines', 'words', 'unlines',
        +            'unwords', 'showPrec', 'show', 'showList',
        +            'shows', 'showChar', 'showString', 'showParen',
        +            'readsPrec', 'readList', 'reads', 'readParen',
        +            'read', 'lex', 'putChar', 'putStr', 'putStrLn',
        +            'print', 'getChar', 'getLine', 'getContents',
        +            'interact', 'readFile', 'writeFile', 'appendFile',
        +            'readIO', 'readLn', 'ioError', 'userError', 'catch'
        +            ),
        +        /* here Prelude Types */
        +        4 => array (
        +            'Bool', 'Maybe', 'Either', 'Ord', 'Ordering',
        +            'Char', 'String', 'Eq', 'Enum', 'Bounded',
        +            'Int', 'Integer', 'Float', 'Double', 'Rational',
        +            'Num', 'Real', 'Integral', 'Fractional',
        +            'Floating', 'RealFrac', 'RealFloat', 'Monad',
        +            'Functor', 'Show', 'ShowS', 'Read', 'ReadS',
        +            'IO'
        +            ),
        +        /* finally Prelude Exceptions */
        +        5 => array (
        +            'IOError', 'IOException'
        +            )
        +        ),
        +    /* highlighting symbols is really important in Haskell */
        +    'SYMBOLS' => array(
        +        '|', '->', '<-', '@', '!', '::', '_', '~', '=', '?',
        +        '&&', '||', '==', '/=', '<', '<=', '>',
        +        '>=','+', '-', '*','/', '%', '**', '^', '^^',
        +        '>>=', '>>', '=<<',  '$', '.', ',', '$!',
        +        '++', '!!'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true, /* functions name are case seinsitive */
        +        3 => true, /* types name too */
        +        4 => true, /* finally exceptions too */
        +        5 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #06c; font-weight: bold;', /* nice blue */
        +            2 => 'color: #06c; font-weight: bold;', /* blue as well */
        +            3 => 'font-weight: bold;', /* make the preduled functions bold */
        +            4 => 'color: #cccc00; font-weight: bold;', /* give types a different bg */
        +            5 => 'color: maroon;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #5d478b; font-style: italic;',
        +            2 => 'color: #339933; font-weight: bold;',
        +            3 => 'color: #5d478b; font-style: italic;', /* light purple */
        +            'MULTI' => 'color: #5d478b; font-style: italic;' /* light purple */
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'background-color: #3cb371; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: green;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'background-color: #3cb371;' /* nice green */
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: red;' /* pink */
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #060;' /* dark green */
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933; font-weight: bold;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        /* some of keywords are Prelude functions */
        +        1 => '',
        +        /* link to the wanted library */
        +        2 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/{FNAME}.html',
        +        /* link to Prelude functions */
        +        3 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#v:{FNAME}',
        +        /* link to Prelude types */
        +        4 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t:{FNAME}',
        +        /* link to Prelude exceptions */
        +        5 => 'http://haskell.org/ghc/docs/latest/html/libraries/base/Prelude.html#t:{FNAME}',
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/haxe.php b/Sources/geshi/haxe.php
        new file mode 100644
        index 0000000..778637e
        --- /dev/null
        +++ b/Sources/geshi/haxe.php
        @@ -0,0 +1,161 @@
        + 'Haxe',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Import and Package directives (Basic Support only)
        +        2 => '/(?:(?<=import[\\n\\s])|(?<=using[\\n\\s])|(?<=package[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*([a-zA-Z0-9_]+|\*)(?=[\n\s;])/i',
        +        // Haxe comments
        +        3 => '#/\*\*(?![\*\/]).*\*/#sU',
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            //http://haxe.org/ref/keywords
        +            'break', 'callback', 'case', 'cast', 'catch', 'class', 'continue', 'default', 'do', 'dynamic',
        +            'else', 'enum', 'extends', 'extern', /*'false',*/ 'for', 'function', 'here', 'if',
        +            'implements', 'import', 'in', 'inline', 'interface', 'never', 'new', /*'null',*/ 'override',
        +            'package', 'private', 'public', 'return', 'static', 'super', 'switch', 'this', 'throw',
        +            'trace', /*'true',*/ 'try', 'typedef', 'untyped', 'using', 'var', 'while',
        +            'macro', '$type',
        +            ),
        +        2 => array(
        +            //primitive values
        +            'null', 'false', 'true',
        +            ),
        +        3 => array(
        +            //global types
        +            'Array', 'ArrayAccess', /*'Bool',*/ 'Class', 'Date', 'DateTools', 'Dynamic',
        +            'EReg', 'Enum', 'EnumValue', /*'Float',*/ 'Hash', /*'Int',*/ 'IntHash', 'IntIter',
        +            'Iterable', 'Iterator', 'Lambda', 'List', 'Math', 'Null', 'Reflect', 'Std',
        +            /*'String',*/ 'StringBuf', 'StringTools', 'Sys', 'Type', /*'UInt',*/ 'ValueType',
        +            /*'Void',*/ 'Xml', 'XmlType',
        +            ),
        +        4 => array(
        +            //primitive types
        +            'Void', 'Bool', 'Int', 'Float', 'UInt', 'String',
        +            ),
        +        5 => array(
        +            //compiler switches
        +            "#if", "#elseif", "#else", "#end", "#error",
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        //http://haxe.org/manual/operators
        +        '++', '--',
        +        '%',
        +        '*', '/',
        +        '+', '-',
        +        '<<', '>>', '>>>',
        +        '|', '&', '^',
        +        '==', '!=', '>', '>=', '<', '<=',
        +        '...',
        +        '&&',
        +        '||',
        +        '?', ':',
        +        '=', '+=', '-=', '/=', '*=', '<<=', '>>=', '>>>=', '|=', '&=', '^=',
        +        '(', ')', '[', ']', '{', '}', ';',
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #6699cc; font-weight: bold;',
        +            2 => 'color: #000066; font-weight: bold;',
        +            3 => 'color: #03F; ',
        +            4 => 'color: #000033; font-weight: bold;',
        +            5 => 'color: #330000; font-weight: bold;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #006699;',
        +            3 => 'color: #008000; font-style: italic; font-weight: bold;',
        +            3 => 'color: #008000; font-style: italic; font-weight: bold;',
        +            'MULTI' => 'color: #666666; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;',
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #FF0000;',
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;',
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006633;',
        +            2 => 'color: #006633;',
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;',
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/hicest.php b/Sources/geshi/hicest.php
        new file mode 100644
        index 0000000..78a2bc2
        --- /dev/null
        +++ b/Sources/geshi/hicest.php
        @@ -0,0 +1,108 @@
        + 'HicEst',
        +    'COMMENT_SINGLE' => array(1 => '!'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"', '\''),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            '$cmd_line', 'abs', 'acos', 'alarm', 'alias', 'allocate', 'appendix', 'asin', 'atan', 'axis', 'beep',
        +            'call', 'ceiling', 'char', 'character', 'com', 'continue', 'cos', 'cosh', 'data', 'diffeq', 'dimension', 'dlg', 'dll',
        +            'do', 'edit', 'else', 'elseif', 'end', 'enddo', 'endif', 'exp', 'floor', 'function', 'fuz', 'goto', 'iand', 'ichar',
        +            'ieor', 'if', 'index', 'init', 'int', 'intpol', 'ior', 'key', 'len', 'len_trim', 'line', 'lock', 'log', 'max', 'maxloc',
        +            'min', 'minloc', 'mod', 'nint', 'not', 'open', 'pop', 'ran', 'read', 'real', 'return', 'rgb', 'roots', 'sign', 'sin',
        +            'sinh', 'solve', 'sort', 'subroutine', 'sum', 'system', 'tan', 'tanh', 'then', 'time', 'use', 'window', 'write', 'xeq'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array(
        +            '(', ')', '+', '-', '*', '/', '=', '<', '>', '!', '^', ':', ','
        +            ),
        +        2 => array(
        +            '$', '$$'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #ff0000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;',
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #004000;'
        +            ),
        +        'SYMBOLS' => array(
        +            1 => 'color: #339933;',
        +            2 => 'color: #ff0000;'
        +            ),
        +        'REGEXPS' => array(),
        +        'SCRIPT' => array()
        +        ),
        +    'URLS' => array(1 => ''),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array()
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/hq9plus.php b/Sources/geshi/hq9plus.php
        new file mode 100644
        index 0000000..7ba1a73
        --- /dev/null
        +++ b/Sources/geshi/hq9plus.php
        @@ -0,0 +1,104 @@
        + 'HQ9+',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        ),
        +    'SYMBOLS' => array(
        +        'H', 'Q', '9', '+', 'h', 'q'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            ),
        +        'COMMENTS' => array(
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #a16000;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'KEYWORDS' => GESHI_NEVER,
        +            'COMMENTS' => GESHI_NEVER,
        +            'STRINGS' => GESHI_NEVER,
        +            'REGEXPS' => GESHI_NEVER,
        +            'NUMBERS' => GESHI_NEVER
        +            )
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/html4strict.php b/Sources/geshi/html4strict.php
        new file mode 100644
        index 0000000..97392fa
        --- /dev/null
        +++ b/Sources/geshi/html4strict.php
        @@ -0,0 +1,190 @@
        + 'HTML',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        2 => array(
        +            'a', 'abbr', 'acronym', 'address', 'applet', 'area',
        +            'base', 'basefont', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'b',
        +            'caption', 'center', 'cite', 'code', 'colgroup', 'col',
        +            'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt',
        +            'em',
        +            'fieldset', 'font', 'form', 'frame', 'frameset',
        +            'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'html',
        +            'iframe', 'ilayer', 'img', 'input', 'ins', 'isindex', 'i',
        +            'kbd',
        +            'label', 'legend', 'link', 'li',
        +            'map', 'meta',
        +            'noframes', 'noscript',
        +            'object', 'ol', 'optgroup', 'option',
        +            'param', 'pre', 'p',
        +            'q',
        +            'samp', 'script', 'select', 'small', 'span', 'strike', 'strong', 'style', 'sub', 'sup', 's',
        +            'table', 'tbody', 'td', 'textarea', 'text', 'tfoot', 'thead', 'th', 'title', 'tr', 'tt',
        +            'ul', 'u',
        +            'var',
        +            ),
        +        3 => array(
        +            'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alink', 'alt', 'archive', 'axis',
        +            'background', 'bgcolor', 'border',
        +            'cellpadding', 'cellspacing', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'classid', 'clear', 'code', 'codebase', 'codetype', 'color', 'cols', 'colspan', 'compact', 'content', 'coords',
        +            'data', 'datetime', 'declare', 'defer', 'dir', 'disabled',
        +            'enctype',
        +            'face', 'for', 'frame', 'frameborder',
        +            'headers', 'height', 'href', 'hreflang', 'hspace', 'http-equiv',
        +            'id', 'ismap',
        +            'label', 'lang', 'language', 'link', 'longdesc',
        +            'marginheight', 'marginwidth', 'maxlength', 'media', 'method', 'multiple',
        +            'name', 'nohref', 'noresize', 'noshade', 'nowrap',
        +            'object', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'onselect', 'onsubmit', 'onunload',
        +            'profile', 'prompt',
        +            'readonly', 'rel', 'rev', 'rowspan', 'rows', 'rules',
        +            'scheme', 'scope', 'scrolling', 'selected', 'shape', 'size', 'span', 'src', 'standby', 'start', 'style', 'summary',
        +            'tabindex', 'target', 'text', 'title', 'type',
        +            'usemap',
        +            'valign', 'value', 'valuetype', 'version', 'vlink', 'vspace',
        +            'width'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '/', '='
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        2 => false,
        +        3 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #000066;'
        +            ),
        +        'COMMENTS' => array(
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'SCRIPT' => array(
        +            -2 => 'color: #404040;', // CDATA
        +            -1 => 'color: #808080; font-style: italic;', // comments
        +            0 => 'color: #00bbdd;',
        +            1 => 'color: #ddbb00;',
        +            2 => 'color: #009900;'
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        2 => 'http://december.com/html/4/element/{FNAMEL}.html',
        +        3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
        +    'SCRIPT_DELIMITERS' => array(
        +        -2 => array(
        +            ' ']]>'
        +            ),
        +        -1 => array(
        +            ''
        +            ),
        +        0 => array(
        +            ' '>'
        +            ),
        +        1 => array(
        +            '&' => ';'
        +            ),
        +        2 => array(
        +            '<' => '>'
        +            )
        +    ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        -2 => false,
        +        -1 => false,
        +        0 => false,
        +        1 => false,
        +        2 => true
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            2 => array(
        +                'DISALLOWED_BEFORE' => '(?<=<|<\/)',
        +                'DISALLOWED_AFTER' => '(?=\s|\/|>)',
        +            )
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/html5.php b/Sources/geshi/html5.php
        new file mode 100644
        index 0000000..0d97559
        --- /dev/null
        +++ b/Sources/geshi/html5.php
        @@ -0,0 +1,212 @@
        + 'HTML5',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        2 => array(
        +            'a', 'abbr', 'address', 'article', 'area', 'aside', 'audio',
        +
        +            'base', 'bdo', 'blockquote', 'body', 'br', 'button', 'b',
        +
        +            'caption', 'cite', 'code', 'colgroup', 'col', 'canvas', 'command', 'datalist', 'details',
        +
        +            'dd', 'del', 'dfn', 'div', 'dl', 'dt',
        +
        +            'em', 'embed',
        +
        +            'fieldset', 'form', 'figcaption', 'figure', 'footer',
        +
        +            'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'html', 'header', 'hgroup',
        +
        +            'iframe', 'ilayer', 'img', 'input', 'ins', 'isindex', 'i',
        +
        +            'kbd', 'keygen',
        +
        +            'label', 'legend', 'link', 'li',
        +
        +            'map', 'meta', 'mark', 'meter',
        +
        +            'noscript', 'nav',
        +
        +            'object', 'ol', 'optgroup', 'option', 'output',
        +
        +            'param', 'pre', 'p', 'progress',
        +
        +            'q',
        +
        +            'rp', 'rt', 'ruby',
        +
        +            'samp', 'script', 'select', 'small', 'span', 'strong', 'style', 'sub', 'sup', 's', 'section', 'source', 'summary',
        +
        +            'table', 'tbody', 'td', 'textarea', 'text', 'tfoot', 'thead', 'th', 'title', 'tr', 'time',
        +
        +            'ul',
        +
        +            'var', 'video',
        +
        +            'wbr',
        +            ),
        +        3 => array(
        +            'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alink', 'alt', 'archive', 'axis', 'autocomplete', 'autofocus',
        +            'background', 'bgcolor', 'border',
        +            'cellpadding', 'cellspacing', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'classid', 'clear', 'code', 'codebase', 'codetype', 'color', 'cols', 'colspan', 'compact', 'content', 'coords', 'contenteditable', 'contextmenu',
        +            'data', 'datetime', 'declare', 'defer', 'dir', 'disabled', 'draggable', 'dropzone',
        +            'enctype',
        +            'face', 'for', 'frame', 'frameborder', 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget',
        +            'headers', 'height', 'href', 'hreflang', 'hspace', 'http-equiv', 'hidden',
        +            'id', 'ismap',
        +            'label', 'lang', 'language', 'link', 'longdesc',
        +            'marginheight', 'marginwidth', 'maxlength', 'media', 'method', 'multiple', 'min', 'max',
        +            'name', 'nohref', 'noresize', 'noshade', 'nowrap', 'novalidate',
        +            'object', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onselect', 'onsubmit', 'onunload', 'onafterprint', 'onbeforeprint', 'onbeforeonload', 'onerror', 'onhaschange', 'onmessage', 'onoffline', 'ononline', 'onpagehide', 'onpageshow', 'onpopstate', 'onredo', 'onresize', 'onstorage', 'onundo', 'oncontextmenu', 'onformchange', 'onforminput', 'oninput', 'oninvalid', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onmousewheel', 'onscroll', 'oncanplay', 'oncanplaythrough', 'ondurationchange', 'onemptied', 'onended', 'onloadeddata', 'onloadedmetadata', 'onloadstart', 'onpause', 'onplay', 'onplaying', 'onprogress', 'onratechange', 'onreadystatechange', 'onseeked', 'onseeking', 'onstalled', 'onsuspend', 'ontimeupdate', 'onvolumechange', 'onwaiting',
        +            'profile', 'prompt', 'pattern', 'placeholder',
        +            'readonly', 'rel', 'rev', 'rowspan', 'rows', 'rules', 'required',
        +            'scheme', 'scope', 'scrolling', 'selected', 'shape', 'size', 'span', 'src', 'standby', 'start', 'style', 'summary', 'spellcheck', 'step',
        +            'tabindex', 'target', 'text', 'title', 'type',
        +            'usemap',
        +            'valign', 'value', 'valuetype', 'version', 'vlink', 'vspace',
        +            'width'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '/', '='
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        2 => false,
        +        3 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #000066;'
        +            ),
        +        'COMMENTS' => array(
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'SCRIPT' => array(
        +            -2 => 'color: #404040;', // CDATA
        +            -1 => 'color: #808080; font-style: italic;', // comments
        +            0 => 'color: #00bbdd;',
        +            1 => 'color: #ddbb00;',
        +            2 => 'color: #009900;'
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        2 => 'http://december.com/html/4/element/{FNAMEL}.html',
        +        3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
        +    'SCRIPT_DELIMITERS' => array(
        +        -2 => array(
        +            ' ']]>'
        +            ),
        +        -1 => array(
        +            ''
        +            ),
        +        0 => array(
        +            ' '>'
        +            ),
        +        1 => array(
        +            '&' => ';'
        +            ),
        +        2 => array(
        +            '<' => '>'
        +            )
        +    ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        -2 => false,
        +        -1 => false,
        +        0 => false,
        +        1 => false,
        +        2 => true
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            2 => array(
        +                'DISALLOWED_BEFORE' => '(?<=<|<\/)',
        +                'DISALLOWED_AFTER' => '(?=\s|\/|>)',
        +            )
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/icon.php b/Sources/geshi/icon.php
        new file mode 100644
        index 0000000..06383ea
        --- /dev/null
        +++ b/Sources/geshi/icon.php
        @@ -0,0 +1,212 @@
        + 'Icon',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"', '\''),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'break', 'case', 'continue', 'create', 'default', 'do', 'else',
        +            'end', 'every', 'fail', 'for', 'if', 'import', 'initial',
        +            'initially', 'invocable', 'link', 'next', 'not', 'of', 'package',
        +            'procedure', 'record', 'repeat', 'return', 'switch', 'suspend',
        +            'then', 'to', 'until', 'while'
        +            ),
        +        2 => array(
        +            'global', 'local', 'static'
        +            ),
        +        3 => array(
        +            'allocated', 'ascii', 'clock', 'collections',
        +            'column', 'cset', 'current', 'date', 'dateline', 'digits',
        +            'dump', 'e', 'error', 'errornumber', 'errortext',
        +            'errorvalue', 'errout', 'eventcode', 'eventsource', 'eventvalue',
        +            'fail', 'features', 'file', 'host', 'input', 'lcase',
        +            'letters', 'level', 'line', 'main', 'now', 'null',
        +            'output', 'phi', 'pi', 'pos', 'progname', 'random',
        +            'regions', 'source', 'storage', 'subject', 'syserr', 'time',
        +            'trace', 'ucase', 'version', 'col', 'control', 'interval',
        +            'ldrag', 'lpress', 'lrelease', 'mdrag', 'meta', 'mpress',
        +            'mrelease', 'rdrag', 'resize', 'row', 'rpress', 'rrelease',
        +            'shift', 'window', 'x', 'y'
        +            ),
        +        4 => array(
        +            'abs', 'acos', 'any', 'args', 'asin', 'atan', 'bal', 'center', 'char',
        +            'chmod', 'close', 'cofail', 'collect', 'copy', 'cos', 'cset', 'ctime', 'delay', 'delete',
        +            'detab', 'display', 'dtor', 'entab', 'errorclear', 'event', 'eventmask', 'EvGet', 'exit',
        +            'exp', 'fetch', 'fieldnames', 'find', 'flock', 'flush', 'function', 'get', 'getch',
        +            'getche', 'getenv', 'gettimeofday', 'globalnames', 'gtime', 'iand', 'icom', 'image',
        +            'insert', 'integer', 'ior', 'ishift', 'ixor', 'key', 'left', 'list', 'load', 'loadfunc',
        +            'localnames', 'log', 'many', 'map', 'match', 'member', 'mkdir', 'move', 'name', 'numeric',
        +            'open', 'opmask', 'ord', 'paramnames', 'parent', 'pipe', 'pop', 'pos', 'proc', 'pull',
        +            'push', 'put', 'read', 'reads', 'real', 'receive', 'remove', 'rename', 'repl', 'reverse',
        +            'right', 'rmdir', 'rtod', 'runerr', 'seek', 'select', 'send', 'seq', 'serial', 'set',
        +            'setenv', 'sort', 'sortf', 'sql', 'sqrt', 'stat', 'stop', 'string', 'system', 'tab',
        +            'table', 'tan', 'trap', 'trim', 'truncate', 'type', 'upto', 'utime', 'variable', 'where',
        +            'write', 'writes'
        +            ),
        +        5 => array(
        +            'Active', 'Alert', 'Bg', 'Clip', 'Clone', 'Color', 'ColorValue',
        +            'CopyArea', 'Couple', 'DrawArc', 'DrawCircle', 'DrawCurve', 'DrawCylinder', 'DrawDisk',
        +            'DrawImage', 'DrawLine', 'DrawPoint', 'DrawPolygon', 'DrawRectangle', 'DrawSegment',
        +            'DrawSphere', 'DrawString', 'DrawTorus', 'EraseArea', 'Event', 'Fg', 'FillArc',
        +            'FillCircle', 'FillPolygon', 'FillRectangle', 'Font', 'FreeColor', 'GotoRC', 'GotoXY',
        +            'IdentifyMatrix', 'Lower', 'MatrixMode', 'NewColor', 'PaletteChars', 'PaletteColor',
        +            'PaletteKey', 'Pattern', 'Pending', 'Pixel', 'PopMatrix', 'PushMatrix', 'PushRotate',
        +            'PushScale', 'PushTranslate', 'QueryPointer', 'Raise', 'ReadImage', 'Refresh', 'Rotate',
        +            'Scale', 'Texcoord', 'TextWidth', 'Texture', 'Translate', 'Uncouple', 'WAttrib',
        +            'WDefault', 'WFlush', 'WindowContents', 'WriteImage', 'WSync'
        +            ),
        +        6 => array(
        +            'define', 'include', 'ifdef', 'ifndef', 'else', 'endif', 'error',
        +            'line', 'undef'
        +            ),
        +        7 => array(
        +            '_V9', '_AMIGA', '_ACORN', '_CMS', '_MACINTOSH', '_MSDOS_386',
        +            '_MS_WINDOWS_NT', '_MSDOS', '_MVS', '_OS2', '_POR', 'T', '_UNIX', '_POSIX', '_DBM',
        +            '_VMS', '_ASCII', '_EBCDIC', '_CO_EXPRESSIONS', '_CONSOLE_WINDOW', '_DYNAMIC_LOADING',
        +            '_EVENT_MONITOR', '_EXTERNAL_FUNCTIONS', '_KEYBOARD_FUNCTIONS', '_LARGE_INTEGERS',
        +            '_MULTITASKING', '_PIPES', '_RECORD_IO', '_SYSTEM_FUNCTION', '_MESSAGING', '_GRAPHICS',
        +            '_X_WINDOW_SYSTEM', '_MS_WINDOWS', '_WIN32', '_PRESENTATION_MGR', '_ARM_FUNCTIONS',
        +            '_DOS_FUNCTIONS'
        +            ),
        +        8 => array(
        +            'line'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array(
        +            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '\\', '%', '=', '<', '>', '!', '^',
        +            '&', '|', '?', ':', ';', ',', '.', '~', '@'
        +            ),
        +        2 => array(
        +            '$(', '$)', '$<', '$>', '$'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true,
        +        8 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #b1b100;',
        +            3 => 'color: #b1b100;',
        +            4 => 'color: #b1b100;',
        +            5 => 'color: #b1b100;',
        +            6 => 'color: #b1b100;',
        +            7 => 'color: #b1b100;',
        +            8 => 'color: #b1b100;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;',
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #004000;'
        +            ),
        +        'SYMBOLS' => array(
        +            1 => 'color: #339933;',
        +            2 => 'color: #b1b100;'
        +            ),
        +        'REGEXPS' => array(),
        +        'SCRIPT' => array()
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => '',
        +        7 => '',
        +        8 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(1 => '.'),
        +    'REGEXPS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(),
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            3 => array(
        +                'DISALLOWED_BEFORE' => '(?<=&)'
        +                ),
        +            4 => array(
        +                'DISALLOWED_BEFORE' => "(? "(?![a-zA-Z0-9_\"\'])"
        +                ),
        +            6 => array(
        +                'DISALLOWED_BEFORE' => '(?<=\$)'
        +                ),
        +            8 => array(
        +                'DISALLOWED_BEFORE' => '(?<=#)'
        +                )
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/idl.php b/Sources/geshi/idl.php
        new file mode 100644
        index 0000000..69bd14f
        --- /dev/null
        +++ b/Sources/geshi/idl.php
        @@ -0,0 +1,123 @@
        + 'Uno Idl',
        +    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'published', 'get', 'set', 'service', 'singleton', 'type', 'module', 'interface', 'struct',
        +            'const', 'constants', 'exception', 'enum', 'raises', 'typedef'
        +            ),
        +        2 => array(
        +            'bound', 'maybeambiguous', 'maybedefault', 'maybevoid', 'oneway', 'optional',
        +            'readonly', 'in', 'out', 'inout', 'attribute', 'transient', 'removable'
        +            ),
        +        3 => array(
        +            'True', 'False', 'TRUE', 'FALSE'
        +            ),
        +        4 => array(
        +            'string', 'long', 'byte', 'hyper', 'boolean', 'any', 'char', 'double',
        +            'void', 'sequence', 'unsigned'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':', ';', '...'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #990078; font-weight: bold',
        +            2 => 'color: #36dd1c;',
        +            3 => 'color: #990078; font-weight: bold',
        +            4 => 'color: #0000ec;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #3f7f5f;',
        +            2 => 'color: #808080;',
        +            'MULTI' => 'color: #4080ff; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #666666; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #808080;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #0000dd;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/ini.php b/Sources/geshi/ini.php
        new file mode 100644
        index 0000000..8e6ca76
        --- /dev/null
        +++ b/Sources/geshi/ini.php
        @@ -0,0 +1,128 @@
        + 'INI',
        +    'COMMENT_SINGLE' => array(0 => ';'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        ),
        +    'SYMBOLS' => array(
        +        '[', ']', '='
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            ),
        +        'COMMENTS' => array(
        +            0 => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => ''
        +            ),
        +        'BRACKETS' => array(
        +            0 => ''
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #933;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => ''
        +            ),
        +        'METHODS' => array(
        +            0 => ''
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000066; font-weight:bold;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #000066; font-weight:bold;',
        +            1 => 'color: #000099;',
        +            2 => 'color: #660066;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        //Section names
        +        0 => '\[.+\]',
        +        //Entry names
        +        1 => array(
        +            GESHI_SEARCH => '^(\s*)([a-zA-Z0-9_\-]+)(\s*=)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3'
        +            ),
        +        //Entry values
        +        2 => array(
        +            // Evil hackery to get around GeSHi bug: <>" and ; are added so s can be matched
        +            // Explicit match on variable names because if a comment is before the first < of the span
        +            // gets chewed up...
        +            GESHI_SEARCH => '([<>";a-zA-Z0-9_]+\s*)=(.*)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1=',
        +            GESHI_AFTER => ''
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/inno.php b/Sources/geshi/inno.php
        new file mode 100644
        index 0000000..1e2ee8b
        --- /dev/null
        +++ b/Sources/geshi/inno.php
        @@ -0,0 +1,212 @@
        + 'Inno',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('(*' => '*)'),
        +    'CASE_KEYWORDS' => 0,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'Setup','Types','Components','Tasks','Dirs','Files','Icons','INI',
        +            'InstallDelete','Languages','Messages','CustomMessage',
        +            'LangOptions','Registry','RUN','UninstallDelete','UninstallRun',
        +            'app','win','sys','syswow64','src','sd','pf','pf32','pf64','cf',
        +            'cf32','cf64','tmp','fonts','dao','group','localappdata','sendto',
        +            'userappdata','commonappdata','userdesktop','commondesktop',
        +            'userdocs','commondocs','userfavorites','commonfavorites',
        +            'userprograms','commonprograms','userstartmenu','commonstartmenu',
        +            'userstartup','commonstartup','usertemplates','commontemplates'
        +            ),
        +        2 => array(
        +            'nil', 'false', 'true', 'var', 'type', 'const','And', 'Array', 'As', 'Begin', 'Case', 'Class', 'Constructor', 'Destructor', 'Div', 'Do', 'DownTo', 'Else',
        +            'End', 'Except', 'File', 'Finally', 'For', 'Function', 'Goto', 'If', 'Implementation', 'In', 'Inherited', 'Interface',
        +            'Is', 'Mod', 'Not', 'Object', 'Of', 'On', 'Or', 'Packed', 'Procedure', 'Property', 'Raise', 'Record',
        +            'Repeat', 'Set', 'Shl', 'Shr', 'Then', 'ThreadVar', 'To', 'Try', 'Unit', 'Until', 'Uses', 'While', 'With', 'Xor',
        +
        +            'HKCC','HKCR','HKCU','HKLM','HKU','alwaysoverwrite','alwaysskipifsameorolder','append',
        +            'binary','classic','closeonexit','comparetimestamp','confirmoverwrite',
        +            'createkeyifdoesntexist','createonlyiffileexists','createvalueifdoesntexist',
        +            'deleteafterinstall','deletekey','deletevalue','dirifempty','dontcloseonexit',
        +            'dontcopy','dontcreatekey','disablenouninstallwarning','dword','exclusive','expandsz',
        +            'external','files','filesandordirs','fixed','fontisnttruetype','ignoreversion','iscustom','isreadme',
        +            'modern','multisz','new','noerror','none','normal','nowait','onlyifdestfileexists',
        +            'onlyifdoesntexist','onlyifnewer','overwrite','overwritereadonly','postinstall',
        +            'preservestringtype','promptifolder','regserver','regtypelib','restart','restartreplace',
        +            'runhidden','runmaximized','runminimized','sharedfile','shellexec','showcheckbox',
        +            'skipifnotsilent','skipifsilent','silent','skipifdoesntexist',
        +            'skipifsourcedoesntexist','sortfilesbyextension','unchecked','uninsalwaysuninstall',
        +            'uninsclearvalue','uninsdeleteentry','uninsdeletekey','uninsdeletekeyifempty',
        +            'uninsdeletesection','uninsdeletesectionifempty','uninsdeletevalue',
        +            'uninsneveruninstall','useapppaths','verysilent','waituntilidle'
        +            ),
        +        3 => array(
        +            'Abs', 'Addr', 'AnsiCompareStr', 'AnsiCompareText', 'AnsiContainsStr', 'AnsiEndsStr', 'AnsiIndexStr', 'AnsiLeftStr',
        +            'AnsiLowerCase', 'AnsiMatchStr', 'AnsiMidStr', 'AnsiPos', 'AnsiReplaceStr', 'AnsiReverseString', 'AnsiRightStr',
        +            'AnsiStartsStr', 'AnsiUpperCase', 'ArcCos', 'ArcSin', 'ArcTan', 'Assigned', 'BeginThread', 'Bounds', 'CelsiusToFahrenheit',
        +            'ChangeFileExt', 'Chr', 'CompareStr', 'CompareText', 'Concat', 'Convert', 'Copy', 'Cos', 'CreateDir', 'CurrToStr',
        +            'CurrToStrF', 'Date', 'DateTimeToFileDate', 'DateTimeToStr', 'DateToStr', 'DayOfTheMonth', 'DayOfTheWeek', 'DayOfTheYear',
        +            'DayOfWeek', 'DaysBetween', 'DaysInAMonth', 'DaysInAYear', 'DaySpan', 'DegToRad', 'DeleteFile', 'DiskFree', 'DiskSize',
        +            'DupeString', 'EncodeDate', 'EncodeDateTime', 'EncodeTime', 'EndOfADay', 'EndOfAMonth', 'Eof', 'Eoln', 'Exp', 'ExtractFileDir',
        +            'ExtractFileDrive', 'ExtractFileExt', 'ExtractFileName', 'ExtractFilePath', 'FahrenheitToCelsius', 'FileAge',
        +            'FileDateToDateTime', 'FileExists', 'FilePos', 'FileSearch', 'FileSetDate', 'FileSize', 'FindClose', 'FindCmdLineSwitch',
        +            'FindFirst', 'FindNext', 'FloatToStr', 'FloatToStrF', 'Format', 'FormatCurr', 'FormatDateTime', 'FormatFloat', 'Frac',
        +            'GetCurrentDir', 'GetLastError', 'GetMem', 'High', 'IncDay', 'IncMinute', 'IncMonth', 'IncYear', 'InputBox',
        +            'InputQuery', 'Int', 'IntToHex', 'IntToStr', 'IOResult', 'IsInfinite', 'IsLeapYear', 'IsMultiThread', 'IsNaN',
        +            'LastDelimiter', 'Length', 'Ln', 'Lo', 'Log10', 'Low', 'LowerCase', 'Max', 'Mean', 'MessageDlg', 'MessageDlgPos',
        +            'MonthOfTheYear', 'Now', 'Odd', 'Ord', 'ParamCount', 'ParamStr', 'Pi', 'Point', 'PointsEqual', 'Pos', 'Pred',
        +            'Printer', 'PromptForFileName', 'PtInRect', 'RadToDeg', 'Random', 'RandomRange', 'RecodeDate', 'RecodeTime', 'Rect',
        +            'RemoveDir', 'RenameFile', 'Round', 'SeekEof', 'SeekEoln', 'SelectDirectory', 'SetCurrentDir', 'Sin', 'SizeOf',
        +            'Slice', 'Sqr', 'Sqrt', 'StringOfChar', 'StringReplace', 'StringToWideChar', 'StrToCurr', 'StrToDate', 'StrToDateTime',
        +            'StrToFloat', 'StrToInt', 'StrToInt64', 'StrToInt64Def', 'StrToIntDef', 'StrToTime', 'StuffString', 'Succ', 'Sum', 'Tan',
        +            'Time', 'TimeToStr', 'Tomorrow', 'Trunc', 'UpCase', 'UpperCase', 'VarType', 'WideCharToString', 'WrapText', 'Yesterday',
        +            'Append', 'AppendStr', 'Assign', 'AssignFile', 'AssignPrn', 'Beep', 'BlockRead', 'BlockWrite', 'Break',
        +            'ChDir', 'Close', 'CloseFile', 'Continue', 'DateTimeToString', 'Dec', 'DecodeDate', 'DecodeDateTime',
        +            'DecodeTime', 'Delete', 'Dispose', 'EndThread', 'Erase', 'Exclude', 'Exit', 'FillChar', 'Flush', 'FreeAndNil',
        +            'FreeMem', 'GetDir', 'GetLocaleFormatSettings', 'Halt', 'Inc', 'Include', 'Insert', 'MkDir', 'Move', 'New',
        +            'ProcessPath', 'Randomize', 'Read', 'ReadLn', 'ReallocMem', 'Rename', 'ReplaceDate', 'ReplaceTime',
        +            'Reset', 'ReWrite', 'RmDir', 'RunError', 'Seek', 'SetLength', 'SetString', 'ShowMessage', 'ShowMessageFmt',
        +            'ShowMessagePos', 'Str', 'Truncate', 'Val', 'Write', 'WriteLn',
        +
        +            'AdminPrivilegesRequired','AfterInstall','AllowCancelDuringInstall','AllowNoIcons','AllowRootDirectory','AllowUNCPath','AlwaysRestart','AlwaysShowComponentsList','AlwaysShowDirOnReadyPage','AlwaysShowGroupOnReadyPage ','AlwaysUsePersonalGroup','AppComments','AppContact','AppCopyright','AppendDefaultDirName',
        +            'AppendDefaultGroupName','AppId','AppModifyPath','AppMutex','AppName','AppPublisher',
        +            'AppPublisherURL','AppReadmeFile','AppSupportURL','AppUpdatesURL','AppVerName','AppVersion',
        +            'Attribs','BackColor','BackColor2','BackColorDirection','BackSolid','BeforeInstall',
        +            'ChangesAssociations','ChangesEnvironment','Check','CodeFile','Comment','Compression','CopyMode',
        +            'CreateAppDir','CreateUninstallRegKey','DefaultDirName','DefaultGroupName',
        +            'DefaultUserInfoName','DefaultUserInfoOrg','DefaultUserInfoSerial',
        +            'Description','DestDir','DestName','DirExistsWarning',
        +            'DisableDirPage','DisableFinishedPage',
        +            'DisableProgramGroupPage','DisableReadyMemo','DisableReadyPage',
        +            'DisableStartupPrompt','DiskClusterSize','DiskSliceSize','DiskSpaceMBLabel',
        +            'DiskSpanning','DontMergeDuplicateFiles','EnableDirDoesntExistWarning','Encryption',
        +            'Excludes','ExtraDiskSpaceRequired','Filename','Flags','FlatComponentsList','FontInstall',
        +            'GroupDescription','HotKey','IconFilename','IconIndex','InfoAfterFile','InfoBeforeFile',
        +            'InternalCompressLevel','Key','LanguageDetectionMethod',
        +            'LicenseFile','MergeDuplicateFiles','MessagesFile','MinVersion','Name',
        +            'OnlyBelowVersion','OutputBaseFilename','OutputManifestFile','OutputDir',
        +            'Parameters','Password','Permissions','PrivilegesRequired','ReserveBytes',
        +            'RestartIfNeededByRun','Root','RunOnceId','Section','SetupIconFile',
        +            'ShowComponentSizes','ShowLanguageDialog','ShowTasksTreeLines','SlicesPerDisk',
        +            'SolidCompression','Source','SourceDir','StatusMsg','Subkey',
        +            'TimeStampRounding','TimeStampsInUTC','TouchDate','TouchTime','Type',
        +            'UninstallDisplayIcon','UninstallDisplayName','UninstallFilesDir','UninstallIconFile',
        +            'UninstallLogMode','UninstallRestartComputer','UninstallStyle','Uninstallable',
        +            'UpdateUninstallLogAppName','UsePreviousAppDir','UsePreviousGroup',
        +            'UsePreviousTasks','UsePreviousSetupType','UsePreviousUserInfo',
        +            'UserInfoPage','UseSetupLdr','ValueData','ValueName','ValueType',
        +            'VersionInfoVersion','VersionInfoCompany','VersionInfoDescription','VersionInfoTextVersion',
        +            'WindowResizable','WindowShowCaption','WindowStartMaximized',
        +            'WindowVisible','WizardImageBackColor','WizardImageFile','WizardImageStretch','WizardSmallImageBackColor','WizardSmallImageFile','WizardStyle','WorkingDir'
        +            ),
        +        4 => array(
        +            'AnsiChar', 'AnsiString', 'Boolean', 'Byte', 'Cardinal', 'Char', 'Comp', 'Currency', 'Double', 'Extended',
        +            'Int64', 'Integer', 'LongInt', 'LongWord', 'PAnsiChar', 'PAnsiString', 'PChar', 'PCurrency', 'PDateTime',
        +            'PExtended', 'PInt64', 'Pointer', 'PShortString', 'PString', 'PVariant', 'PWideChar', 'PWideString',
        +            'Real', 'Real48', 'ShortInt', 'ShortString', 'Single', 'SmallInt', 'String', 'TBits', 'TConvType', 'TDateTime',
        +            'Text', 'TextFile', 'TFloatFormat', 'TFormatSettings', 'TList', 'TObject', 'TOpenDialog', 'TPoint',
        +            'TPrintDialog', 'TRect', 'TReplaceFlags', 'TSaveDialog', 'TSearchRec', 'TStringList', 'TSysCharSet',
        +            'TThreadFunc', 'Variant', 'WideChar', 'WideString', 'Word'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '@', '%', '&', '*', '|', '/', '<', '>'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight: bold;',/*bold Black*/
        +            2 => 'color: #000000;font-style: italic;',/*Black*/
        +            3 => 'color: #0000FF;',/*blue*/
        +            4 => 'color: #CC0000;'/*red*/
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #33FF00; font-style: italic;',
        +            'MULTI' => 'color: #33FF00; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000; font-weight: bold;',
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/intercal.php b/Sources/geshi/intercal.php
        new file mode 100644
        index 0000000..3c81b81
        --- /dev/null
        +++ b/Sources/geshi/intercal.php
        @@ -0,0 +1,122 @@
        + 'INTERCAL',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        //Politeness
        +        1 => array(
        +            'DO', 'DOES', 'DONT', 'DON\'T', 'NOT', 'PLEASE', 'PLEASENT', 'PLEASEN\'T', 'MAYBE'
        +            ),
        +        //Statements
        +        2 => array(
        +            'STASH', 'RETRIEVE', 'NEXT', 'RESUME', 'FORGET', 'ABSTAIN', 'ABSTAINING',
        +            'COME', 'FROM', 'CALCULATING', 'REINSTATE', 'IGNORE', 'REMEMBER',
        +            'WRITE', 'IN', 'READ', 'OUT', 'GIVE', 'UP'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '.', ',', ':', ';', '#',
        +        '~', '$', '&', '?',
        +        '\'', '"', '<-'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000080; font-weight: bold;',
        +            2 => 'color: #000080; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            1 => 'color: #808080; font-style: italic;'
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        1 => '^\(\d+\)'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'COMMENTS' => GESHI_NEVER,
        +            'STRINGS' => GESHI_NEVER,
        +            'NUMBERS' => GESHI_NEVER
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/io.php b/Sources/geshi/io.php
        new file mode 100644
        index 0000000..51fad43
        --- /dev/null
        +++ b/Sources/geshi/io.php
        @@ -0,0 +1,138 @@
        + 'Io',
        +    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'and', 'break', 'else', 'elseif', 'exit', 'for', 'foreach', 'if', 'ifFalse', 'ifNil',
        +            'ifTrue', 'or', 'pass', 'raise', 'return', 'then', 'try', 'wait', 'while', 'yield'
        +            ),
        +        2 => array(
        +            'activate', 'activeCoroCount', 'asString', 'block', 'catch', 'clone', 'collectGarbage',
        +            'compileString', 'continue', 'do', 'doFile', 'doMessage', 'doString', 'forward',
        +            'getSlot', 'getenv', 'hasSlot', 'isActive', 'isNil', 'isResumable', 'list', 'message',
        +            'method', 'parent', 'pause', 'perform', 'performWithArgList', 'print', 'proto',
        +            'raiseResumable', 'removeSlot', 'resend', 'resume', 'schedulerSleepSeconds', 'self',
        +            'sender', 'setSchedulerSleepSeconds', 'setSlot', 'shallowCopy', 'slotNames', 'super',
        +            'system', 'thisBlock', 'thisContext', 'thisMessage', 'type', 'uniqueId', 'updateSlot',
        +            'write'
        +            ),
        +        3 => array(
        +            'Array', 'AudioDevice', 'AudioMixer', 'Block', 'Box', 'Buffer', 'CFunction', 'CGI',
        +            'Color', 'Curses', 'DBM', 'DNSResolver', 'DOConnection', 'DOProxy', 'DOServer',
        +            'Date', 'Directory', 'Duration', 'DynLib', 'Error', 'Exception', 'FFT', 'File',
        +            'Fnmatch', 'Font', 'Future', 'GL', 'GLE', 'GLScissor', 'GLU', 'GLUCylinder',
        +            'GLUQuadric', 'GLUSphere', 'GLUT', 'Host', 'Image', 'Importer', 'LinkList', 'List',
        +            'Lobby', 'Locals', 'MD5', 'MP3Decoder', 'MP3Encoder', 'Map', 'Message', 'Movie',
        +            'NULL', 'Nil', 'Nop', 'Notifiction', 'Number', 'Object', 'OpenGL', 'Point', 'Protos',
        +            'Regex', 'SGMLTag', 'SQLite', 'Server', 'ShowMessage', 'SleepyCat', 'SleepyCatCursor',
        +            'Socket', 'SocketManager', 'Sound', 'Soup', 'Store', 'String', 'Tree', 'UDPSender',
        +            'UDPReceiver', 'URL', 'User', 'Warning', 'WeakLink'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #000066;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            2 => 'color: #808080; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;',
        +            2 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            0 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/j.php b/Sources/geshi/j.php
        new file mode 100644
        index 0000000..5565bb4
        --- /dev/null
        +++ b/Sources/geshi/j.php
        @@ -0,0 +1,190 @@
        + 'J',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(
        +        1 => '/(? '/(?<=\bNote\b).*?$\s+\)(?:(?!\n)\s)*$/sm',   //multiline comments in Note
        +        3 => "/'[^']*?$/m"                        //incomplete strings/open quotes
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'HARDQUOTE' => array("'", "'"),
        +    'HARDESCAPE' => array("'"),
        +    'HARDCHAR' => "'",
        +    'NUMBERS' => array(
        +        0 => '\b(?:_?\d+(?:\.\d+)?(?:x|[bejprx]_?[\da-z]+(?:\.[\da-z]+)?)?|__?)(?![\w\.\:])',
        +        ),
        +    'KEYWORDS' => array(
        +        //Control words
        +        1 => array(
        +            'assert.', 'break.', 'case.', 'catch.', 'catcht.', 'continue.', 'do.',
        +            'else.', 'elseif.', 'end.', 'fcase.', 'for.', 'goto.', 'if.', 'label.',
        +            'return.', 'select.', 'throw.', 'trap.', 'try.', 'while.', 'whilst.'
        +            ),
        +        //Arguments
        +        2 => array(
        +            'm', 'n', 'u', 'v', 'x', 'y'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        //Punctuation
        +        0 => array(
        +            '(', ')'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        //6 => true,
        +        //7 => true,
        +        //8 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000ff; font-weight: bold;',
        +            2 => 'color: #0000cc; font-weight: bold;',
        +            //6 => 'color: #000000; font-weight: bold;',
        +            //7 => 'color: #000000; font-weight: bold;',
        +            //8 => 'color: #000000; font-weight: bold;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #666666; font-style: italic; font-weight: bold;',
        +            3 => 'color: #ff00ff; ',                      //open quote
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            'HARD' => 'font-weight: bold;',
        +            0 => '',
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            'HARD' => 'color: #ff0000;',
        +            0 => 'color: #ff0000;',
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #009999; font-weight: bold;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #009900; font-weight: bold;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #0000ff; font-weight: bold;',   //for_xyz. - same as kw1
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '', //'http://www.jsoftware.com/help/dictionary/ctrl.htm',
        +        2 => '',
        +        //6 => '', //'http://www.jsoftware.com/jwiki/Vocabulary',
        +        //7 => '', //'http://www.jsoftware.com/jwiki/Vocabulary',
        +        //8 => '', //'http://www.jsoftware.com/jwiki/Vocabulary',
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        0 => '\b(for|goto|label)_[a-zA-Z]\w*\.',   //for_xyz. - should be kw1
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'BRACKETS' => GESHI_NEVER,
        +            ),
        +        'NUMBERS' => array(
        +            'PRECHECK_RX' => '#[\d_]#',            // underscore is valid number
        +            ),
        +        'KEYWORDS' => array(
        +            //Control words
        +            2 => array(
        +                'DISALLOWED_BEFORE' => '(? '(?![\w\.\:])',
        +                ),
        +            //Primtives starting with a symbol (except . or :)
        +            6 => array(
        +                'DISALLOWED_BEFORE' => '(?!K)',    // effect should be to allow anything
        +                'DISALLOWED_AFTER' => '(?=.*)',
        +                ),
        +            //Primtives starting with a letter
        +            7 => array(
        +                'DISALLOWED_BEFORE' => '(? '(?=.*)',
        +                ),
        +            //Primtives starting with symbol . or :
        +            8 => array(
        +                'DISALLOWED_BEFORE' => '(?<=\s)',
        +                'DISALLOWED_AFTER' => '(?=.*)',
        +                ),
        +            )
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/java.php b/Sources/geshi/java.php
        new file mode 100644
        index 0000000..652b8dd
        --- /dev/null
        +++ b/Sources/geshi/java.php
        @@ -0,0 +1,983 @@
        + 'Java',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Import and Package directives (Basic Support only)
        +        2 => '/(?:(?<=import[\\n\\s])|(?<=package[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*([a-zA-Z0-9_]+|\*)(?=[\n\s;])/i',
        +        // javadoc comments
        +        3 => '#/\*\*(?![\*\/]).*\*/#sU'
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'for', 'foreach', 'if', 'else', 'while', 'do',
        +            'switch', 'case',  'return', 'public',
        +            'private', 'protected', 'extends', 'break', 'class',
        +            'new', 'try', 'catch', 'throws', 'finally', 'implements',
        +            'interface', 'throw', 'final', 'native', 'synchronized', 'this',
        +            'abstract', 'transient', 'instanceof', 'assert', 'continue',
        +            'default', 'enum', 'package', 'static', 'strictfp', 'super',
        +            'volatile', 'const', 'goto', 'import'
        +            ),
        +        2 => array(
        +            'null', 'false', 'true'
        +            ),
        +        3 => array(
        +            'AbstractAction', 'AbstractBorder', 'AbstractButton',
        +            'AbstractCellEditor', 'AbstractCollection',
        +            'AbstractColorChooserPanel', 'AbstractDocument',
        +            'AbstractDocument.AttributeContext',
        +            'AbstractDocument.Content',
        +            'AbstractDocument.ElementEdit',
        +            'AbstractLayoutCache',
        +            'AbstractLayoutCache.NodeDimensions', 'AbstractList',
        +            'AbstractListModel', 'AbstractMap',
        +            'AbstractMethodError', 'AbstractSequentialList',
        +            'AbstractSet', 'AbstractTableModel',
        +            'AbstractUndoableEdit', 'AbstractWriter',
        +            'AccessControlContext', 'AccessControlException',
        +            'AccessController', 'AccessException', 'Accessible',
        +            'AccessibleAction', 'AccessibleBundle',
        +            'AccessibleComponent', 'AccessibleContext',
        +            'AccessibleHyperlink', 'AccessibleHypertext',
        +            'AccessibleIcon', 'AccessibleObject',
        +            'AccessibleRelation', 'AccessibleRelationSet',
        +            'AccessibleResourceBundle', 'AccessibleRole',
        +            'AccessibleSelection', 'AccessibleState',
        +            'AccessibleStateSet', 'AccessibleTable',
        +            'AccessibleTableModelChange', 'AccessibleText',
        +            'AccessibleValue', 'Acl', 'AclEntry',
        +            'AclNotFoundException', 'Action', 'ActionEvent',
        +            'ActionListener', 'ActionMap', 'ActionMapUIResource',
        +            'Activatable', 'ActivateFailedException',
        +            'ActivationDesc', 'ActivationException',
        +            'ActivationGroup', 'ActivationGroupDesc',
        +            'ActivationGroupDesc.CommandEnvironment',
        +            'ActivationGroupID', 'ActivationID',
        +            'ActivationInstantiator', 'ActivationMonitor',
        +            'ActivationSystem', 'Activator', 'ActiveEvent',
        +            'Adjustable', 'AdjustmentEvent',
        +            'AdjustmentListener', 'Adler32', 'AffineTransform',
        +            'AffineTransformOp', 'AlgorithmParameterGenerator',
        +            'AlgorithmParameterGeneratorSpi',
        +            'AlgorithmParameters', 'AlgorithmParameterSpec',
        +            'AlgorithmParametersSpi', 'AllPermission',
        +            'AlphaComposite', 'AlreadyBound',
        +            'AlreadyBoundException', 'AlreadyBoundHelper',
        +            'AlreadyBoundHolder', 'AncestorEvent',
        +            'AncestorListener', 'Annotation', 'Any', 'AnyHolder',
        +            'AnySeqHelper', 'AnySeqHolder', 'Applet',
        +            'AppletContext', 'AppletInitializer', 'AppletStub',
        +            'ApplicationException', 'Arc2D', 'Arc2D.Double',
        +            'Arc2D.Float', 'Area', 'AreaAveragingScaleFilter',
        +            'ARG_IN', 'ARG_INOUT', 'ARG_OUT',
        +            'ArithmeticException', 'Array',
        +            'ArrayIndexOutOfBoundsException', 'ArrayList',
        +            'Arrays', 'ArrayStoreException', 'AsyncBoxView',
        +            'Attribute', 'AttributedCharacterIterator',
        +            'AttributedCharacterIterator.Attribute',
        +            'AttributedString', 'AttributeInUseException',
        +            'AttributeList', 'AttributeModificationException',
        +            'Attributes', 'Attributes.Name', 'AttributeSet',
        +            'AttributeSet.CharacterAttribute',
        +            'AttributeSet.ColorAttribute',
        +            'AttributeSet.FontAttribute',
        +            'AttributeSet.ParagraphAttribute', 'AudioClip',
        +            'AudioFileFormat', 'AudioFileFormat.Type',
        +            'AudioFileReader', 'AudioFileWriter', 'AudioFormat',
        +            'AudioFormat.Encoding', 'AudioInputStream',
        +            'AudioPermission', 'AudioSystem',
        +            'AuthenticationException',
        +            'AuthenticationNotSupportedException',
        +            'Authenticator', 'Autoscroll', 'AWTError',
        +            'AWTEvent', 'AWTEventListener',
        +            'AWTEventMulticaster', 'AWTException',
        +            'AWTPermission', 'BadKind', 'BadLocationException',
        +            'BAD_CONTEXT', 'BAD_INV_ORDER', 'BAD_OPERATION',
        +            'BAD_PARAM', 'BAD_POLICY', 'BAD_POLICY_TYPE',
        +            'BAD_POLICY_VALUE', 'BAD_TYPECODE', 'BandCombineOp',
        +            'BandedSampleModel', 'BasicArrowButton',
        +            'BasicAttribute', 'BasicAttributes', 'BasicBorders',
        +            'BasicBorders.ButtonBorder',
        +            'BasicBorders.FieldBorder',
        +            'BasicBorders.MarginBorder',
        +            'BasicBorders.MenuBarBorder',
        +            'BasicBorders.RadioButtonBorder',
        +            'BasicBorders.SplitPaneBorder',
        +            'BasicBorders.ToggleButtonBorder',
        +            'BasicButtonListener', 'BasicButtonUI',
        +            'BasicCheckBoxMenuItemUI', 'BasicCheckBoxUI',
        +            'BasicColorChooserUI', 'BasicComboBoxEditor',
        +            'BasicComboBoxEditor.UIResource',
        +            'BasicComboBoxRenderer',
        +            'BasicComboBoxRenderer.UIResource',
        +            'BasicComboBoxUI', 'BasicComboPopup',
        +            'BasicDesktopIconUI', 'BasicDesktopPaneUI',
        +            'BasicDirectoryModel', 'BasicEditorPaneUI',
        +            'BasicFileChooserUI', 'BasicGraphicsUtils',
        +            'BasicHTML', 'BasicIconFactory',
        +            'BasicInternalFrameTitlePane',
        +            'BasicInternalFrameUI', 'BasicLabelUI',
        +            'BasicListUI', 'BasicLookAndFeel', 'BasicMenuBarUI',
        +            'BasicMenuItemUI', 'BasicMenuUI',
        +            'BasicOptionPaneUI',
        +            'BasicOptionPaneUI.ButtonAreaLayout', 'BasicPanelUI',
        +            'BasicPasswordFieldUI', 'BasicPermission',
        +            'BasicPopupMenuSeparatorUI', 'BasicPopupMenuUI',
        +            'BasicProgressBarUI', 'BasicRadioButtonMenuItemUI',
        +            'BasicRadioButtonUI', 'BasicRootPaneUI',
        +            'BasicScrollBarUI', 'BasicScrollPaneUI',
        +            'BasicSeparatorUI', 'BasicSliderUI',
        +            'BasicSplitPaneDivider', 'BasicSplitPaneUI',
        +            'BasicStroke', 'BasicTabbedPaneUI',
        +            'BasicTableHeaderUI', 'BasicTableUI',
        +            'BasicTextAreaUI', 'BasicTextFieldUI',
        +            'BasicTextPaneUI', 'BasicTextUI',
        +            'BasicTextUI.BasicCaret',
        +            'BasicTextUI.BasicHighlighter',
        +            'BasicToggleButtonUI', 'BasicToolBarSeparatorUI',
        +            'BasicToolBarUI', 'BasicToolTipUI', 'BasicTreeUI',
        +            'BasicViewportUI', 'BatchUpdateException',
        +            'BeanContext', 'BeanContextChild',
        +            'BeanContextChildComponentProxy',
        +            'BeanContextChildSupport',
        +            'BeanContextContainerProxy', 'BeanContextEvent',
        +            'BeanContextMembershipEvent',
        +            'BeanContextMembershipListener', 'BeanContextProxy',
        +            'BeanContextServiceAvailableEvent',
        +            'BeanContextServiceProvider',
        +            'BeanContextServiceProviderBeanInfo',
        +            'BeanContextServiceRevokedEvent',
        +            'BeanContextServiceRevokedListener',
        +            'BeanContextServices', 'BeanContextServicesListener',
        +            'BeanContextServicesSupport',
        +            'BeanContextServicesSupport.BCSSServiceProvider',
        +            'BeanContextSupport',
        +            'BeanContextSupport.BCSIterator', 'BeanDescriptor',
        +            'BeanInfo', 'Beans', 'BevelBorder', 'BigDecimal',
        +            'BigInteger', 'BinaryRefAddr', 'BindException',
        +            'Binding', 'BindingHelper', 'BindingHolder',
        +            'BindingIterator', 'BindingIteratorHelper',
        +            'BindingIteratorHolder', 'BindingIteratorOperations',
        +            'BindingListHelper', 'BindingListHolder',
        +            'BindingType', 'BindingTypeHelper',
        +            'BindingTypeHolder', 'BitSet', 'Blob', 'BlockView',
        +            'Book', 'Boolean', 'BooleanControl',
        +            'BooleanControl.Type', 'BooleanHolder',
        +            'BooleanSeqHelper', 'BooleanSeqHolder', 'Border',
        +            'BorderFactory', 'BorderLayout', 'BorderUIResource',
        +            'BorderUIResource.BevelBorderUIResource',
        +            'BorderUIResource.CompoundBorderUIResource',
        +            'BorderUIResource.EmptyBorderUIResource',
        +            'BorderUIResource.EtchedBorderUIResource',
        +            'BorderUIResource.LineBorderUIResource',
        +            'BorderUIResource.MatteBorderUIResource',
        +            'BorderUIResource.TitledBorderUIResource',
        +            'BoundedRangeModel', 'Bounds', 'Box', 'Box.Filler',
        +            'BoxedValueHelper', 'BoxLayout', 'BoxView',
        +            'BreakIterator', 'BufferedImage',
        +            'BufferedImageFilter', 'BufferedImageOp',
        +            'BufferedInputStream', 'BufferedOutputStream',
        +            'BufferedReader', 'BufferedWriter', 'Button',
        +            'ButtonGroup', 'ButtonModel', 'ButtonUI', 'Byte',
        +            'ByteArrayInputStream', 'ByteArrayOutputStream',
        +            'ByteHolder', 'ByteLookupTable', 'Calendar',
        +            'CallableStatement', 'CannotProceed',
        +            'CannotProceedException', 'CannotProceedHelper',
        +            'CannotProceedHolder', 'CannotRedoException',
        +            'CannotUndoException', 'Canvas', 'CardLayout',
        +            'Caret', 'CaretEvent', 'CaretListener', 'CellEditor',
        +            'CellEditorListener', 'CellRendererPane',
        +            'Certificate', 'Certificate.CertificateRep',
        +            'CertificateEncodingException',
        +            'CertificateException',
        +            'CertificateExpiredException', 'CertificateFactory',
        +            'CertificateFactorySpi',
        +            'CertificateNotYetValidException',
        +            'CertificateParsingException',
        +            'ChangedCharSetException', 'ChangeEvent',
        +            'ChangeListener', 'Character', 'Character.Subset',
        +            'Character.UnicodeBlock', 'CharacterIterator',
        +            'CharArrayReader', 'CharArrayWriter',
        +            'CharConversionException', 'CharHolder',
        +            'CharSeqHelper', 'CharSeqHolder', 'Checkbox',
        +            'CheckboxGroup', 'CheckboxMenuItem',
        +            'CheckedInputStream', 'CheckedOutputStream',
        +            'Checksum', 'Choice', 'ChoiceFormat', 'Class',
        +            'ClassCastException', 'ClassCircularityError',
        +            'ClassDesc', 'ClassFormatError', 'ClassLoader',
        +            'ClassNotFoundException', 'Clip', 'Clipboard',
        +            'ClipboardOwner', 'Clob', 'Cloneable',
        +            'CloneNotSupportedException', 'CMMException',
        +            'CodeSource', 'CollationElementIterator',
        +            'CollationKey', 'Collator', 'Collection',
        +            'Collections', 'Color',
        +            'ColorChooserComponentFactory', 'ColorChooserUI',
        +            'ColorConvertOp', 'ColorModel',
        +            'ColorSelectionModel', 'ColorSpace',
        +            'ColorUIResource', 'ComboBoxEditor', 'ComboBoxModel',
        +            'ComboBoxUI', 'ComboPopup', 'CommunicationException',
        +            'COMM_FAILURE', 'Comparable', 'Comparator',
        +            'Compiler', 'CompletionStatus',
        +            'CompletionStatusHelper', 'Component',
        +            'ComponentAdapter', 'ComponentColorModel',
        +            'ComponentEvent', 'ComponentInputMap',
        +            'ComponentInputMapUIResource', 'ComponentListener',
        +            'ComponentOrientation', 'ComponentSampleModel',
        +            'ComponentUI', 'ComponentView', 'Composite',
        +            'CompositeContext', 'CompositeName', 'CompositeView',
        +            'CompoundBorder', 'CompoundControl',
        +            'CompoundControl.Type', 'CompoundEdit',
        +            'CompoundName', 'ConcurrentModificationException',
        +            'ConfigurationException', 'ConnectException',
        +            'ConnectIOException', 'Connection', 'Constructor', 'Container',
        +            'ContainerAdapter', 'ContainerEvent',
        +            'ContainerListener', 'ContentHandler',
        +            'ContentHandlerFactory', 'ContentModel', 'Context',
        +            'ContextList', 'ContextNotEmptyException',
        +            'ContextualRenderedImageFactory', 'Control',
        +            'Control.Type', 'ControlFactory',
        +            'ControllerEventListener', 'ConvolveOp', 'CRC32',
        +            'CRL', 'CRLException', 'CropImageFilter', 'CSS',
        +            'CSS.Attribute', 'CTX_RESTRICT_SCOPE',
        +            'CubicCurve2D', 'CubicCurve2D.Double',
        +            'CubicCurve2D.Float', 'Current', 'CurrentHelper',
        +            'CurrentHolder', 'CurrentOperations', 'Cursor',
        +            'Customizer', 'CustomMarshal', 'CustomValue',
        +            'DatabaseMetaData', 'DataBuffer', 'DataBufferByte',
        +            'DataBufferInt', 'DataBufferShort',
        +            'DataBufferUShort', 'DataFlavor',
        +            'DataFormatException', 'DatagramPacket',
        +            'DatagramSocket', 'DatagramSocketImpl',
        +            'DatagramSocketImplFactory', 'DataInput',
        +            'DataInputStream', 'DataLine', 'DataLine.Info',
        +            'DataOutput', 'DataOutputStream',
        +            'DataTruncation', 'DATA_CONVERSION', 'Date',
        +            'DateFormat', 'DateFormatSymbols', 'DebugGraphics',
        +            'DecimalFormat', 'DecimalFormatSymbols',
        +            'DefaultBoundedRangeModel', 'DefaultButtonModel',
        +            'DefaultCaret', 'DefaultCellEditor',
        +            'DefaultColorSelectionModel', 'DefaultComboBoxModel',
        +            'DefaultDesktopManager', 'DefaultEditorKit',
        +            'DefaultEditorKit.BeepAction',
        +            'DefaultEditorKit.CopyAction',
        +            'DefaultEditorKit.CutAction',
        +            'DefaultEditorKit.DefaultKeyTypedAction',
        +            'DefaultEditorKit.InsertBreakAction',
        +            'DefaultEditorKit.InsertContentAction',
        +            'DefaultEditorKit.InsertTabAction',
        +            'DefaultEditorKit.PasteAction,',
        +            'DefaultFocusManager', 'DefaultHighlighter',
        +            'DefaultHighlighter.DefaultHighlightPainter',
        +            'DefaultListCellRenderer',
        +            'DefaultListCellRenderer.UIResource',
        +            'DefaultListModel', 'DefaultListSelectionModel',
        +            'DefaultMenuLayout', 'DefaultMetalTheme',
        +            'DefaultMutableTreeNode',
        +            'DefaultSingleSelectionModel',
        +            'DefaultStyledDocument',
        +            'DefaultStyledDocument.AttributeUndoableEdit',
        +            'DefaultStyledDocument.ElementSpec',
        +            'DefaultTableCellRenderer',
        +            'DefaultTableCellRenderer.UIResource',
        +            'DefaultTableColumnModel', 'DefaultTableModel',
        +            'DefaultTextUI', 'DefaultTreeCellEditor',
        +            'DefaultTreeCellRenderer', 'DefaultTreeModel',
        +            'DefaultTreeSelectionModel', 'DefinitionKind',
        +            'DefinitionKindHelper', 'Deflater',
        +            'DeflaterOutputStream', 'Delegate', 'DesignMode',
        +            'DesktopIconUI', 'DesktopManager', 'DesktopPaneUI',
        +            'DGC', 'Dialog', 'Dictionary', 'DigestException',
        +            'DigestInputStream', 'DigestOutputStream',
        +            'Dimension', 'Dimension2D', 'DimensionUIResource',
        +            'DirContext', 'DirectColorModel', 'DirectoryManager',
        +            'DirObjectFactory', 'DirStateFactory',
        +            'DirStateFactory.Result', 'DnDConstants', 'Document',
        +            'DocumentEvent', 'DocumentEvent.ElementChange',
        +            'DocumentEvent.EventType', 'DocumentListener',
        +            'DocumentParser', 'DomainCombiner', 'DomainManager',
        +            'DomainManagerOperations', 'Double', 'DoubleHolder',
        +            'DoubleSeqHelper', 'DoubleSeqHolder',
        +            'DragGestureEvent', 'DragGestureListener',
        +            'DragGestureRecognizer', 'DragSource',
        +            'DragSourceContext', 'DragSourceDragEvent',
        +            'DragSourceDropEvent', 'DragSourceEvent',
        +            'DragSourceListener', 'Driver', 'DriverManager',
        +            'DriverPropertyInfo', 'DropTarget',
        +            'DropTarget.DropTargetAutoScroller',
        +            'DropTargetContext', 'DropTargetDragEvent',
        +            'DropTargetDropEvent', 'DropTargetEvent',
        +            'DropTargetListener', 'DSAKey',
        +            'DSAKeyPairGenerator', 'DSAParameterSpec',
        +            'DSAParams', 'DSAPrivateKey', 'DSAPrivateKeySpec',
        +            'DSAPublicKey', 'DSAPublicKeySpec', 'DTD',
        +            'DTDConstants', 'DynamicImplementation', 'DynAny',
        +            'DynArray', 'DynEnum', 'DynFixed', 'DynSequence',
        +            'DynStruct', 'DynUnion', 'DynValue', 'EditorKit',
        +            'Element', 'ElementIterator', 'Ellipse2D',
        +            'Ellipse2D.Double', 'Ellipse2D.Float', 'EmptyBorder',
        +            'EmptyStackException', 'EncodedKeySpec', 'Entity',
        +            'EnumControl', 'EnumControl.Type', 'Enumeration',
        +            'Environment', 'EOFException', 'Error',
        +            'EtchedBorder', 'Event', 'EventContext',
        +            'EventDirContext', 'EventListener',
        +            'EventListenerList', 'EventObject', 'EventQueue',
        +            'EventSetDescriptor', 'Exception',
        +            'ExceptionInInitializerError', 'ExceptionList',
        +            'ExpandVetoException', 'ExportException',
        +            'ExtendedRequest', 'ExtendedResponse',
        +            'Externalizable', 'FeatureDescriptor', 'Field',
        +            'FieldNameHelper', 'FieldPosition', 'FieldView',
        +            'File', 'FileChooserUI', 'FileDescriptor',
        +            'FileDialog', 'FileFilter',
        +            'FileInputStream', 'FilenameFilter', 'FileNameMap',
        +            'FileNotFoundException', 'FileOutputStream',
        +            'FilePermission', 'FileReader', 'FileSystemView',
        +            'FileView', 'FileWriter', 'FilteredImageSource',
        +            'FilterInputStream', 'FilterOutputStream',
        +            'FilterReader', 'FilterWriter',
        +            'FixedHeightLayoutCache', 'FixedHolder',
        +            'FlatteningPathIterator', 'FlavorMap', 'Float',
        +            'FloatControl', 'FloatControl.Type', 'FloatHolder',
        +            'FloatSeqHelper', 'FloatSeqHolder', 'FlowLayout',
        +            'FlowView', 'FlowView.FlowStrategy', 'FocusAdapter',
        +            'FocusEvent', 'FocusListener', 'FocusManager',
        +            'Font', 'FontFormatException', 'FontMetrics',
        +            'FontRenderContext', 'FontUIResource', 'Format',
        +            'FormatConversionProvider', 'FormView', 'Frame',
        +            'FREE_MEM', 'GapContent', 'GeneralPath',
        +            'GeneralSecurityException', 'GlyphJustificationInfo',
        +            'GlyphMetrics', 'GlyphVector', 'GlyphView',
        +            'GlyphView.GlyphPainter', 'GradientPaint',
        +            'GraphicAttribute', 'Graphics', 'Graphics2D',
        +            'GraphicsConfigTemplate', 'GraphicsConfiguration',
        +            'GraphicsDevice', 'GraphicsEnvironment',
        +            'GrayFilter', 'GregorianCalendar',
        +            'GridBagConstraints', 'GridBagLayout', 'GridLayout',
        +            'Group', 'Guard', 'GuardedObject', 'GZIPInputStream',
        +            'GZIPOutputStream', 'HasControls', 'HashMap',
        +            'HashSet', 'Hashtable', 'HierarchyBoundsAdapter',
        +            'HierarchyBoundsListener', 'HierarchyEvent',
        +            'HierarchyListener', 'Highlighter',
        +            'Highlighter.Highlight',
        +            'Highlighter.HighlightPainter', 'HTML',
        +            'HTML.Attribute', 'HTML.Tag', 'HTML.UnknownTag',
        +            'HTMLDocument', 'HTMLDocument.Iterator',
        +            'HTMLEditorKit', 'HTMLEditorKit.HTMLFactory',
        +            'HTMLEditorKit.HTMLTextAction',
        +            'HTMLEditorKit.InsertHTMLTextAction',
        +            'HTMLEditorKit.LinkController',
        +            'HTMLEditorKit.Parser',
        +            'HTMLEditorKit.ParserCallback',
        +            'HTMLFrameHyperlinkEvent', 'HTMLWriter',
        +            'HttpURLConnection', 'HyperlinkEvent',
        +            'HyperlinkEvent.EventType', 'HyperlinkListener',
        +            'ICC_ColorSpace', 'ICC_Profile', 'ICC_ProfileGray',
        +            'ICC_ProfileRGB', 'Icon', 'IconUIResource',
        +            'IconView', 'IdentifierHelper', 'Identity',
        +            'IdentityScope', 'IDLEntity', 'IDLType',
        +            'IDLTypeHelper', 'IDLTypeOperations',
        +            'IllegalAccessError', 'IllegalAccessException',
        +            'IllegalArgumentException',
        +            'IllegalComponentStateException',
        +            'IllegalMonitorStateException',
        +            'IllegalPathStateException', 'IllegalStateException',
        +            'IllegalThreadStateException', 'Image',
        +            'ImageConsumer', 'ImageFilter',
        +            'ImageGraphicAttribute', 'ImageIcon',
        +            'ImageObserver', 'ImageProducer',
        +            'ImagingOpException', 'IMP_LIMIT',
        +            'IncompatibleClassChangeError',
        +            'InconsistentTypeCode', 'IndexColorModel',
        +            'IndexedPropertyDescriptor',
        +            'IndexOutOfBoundsException', 'IndirectionException',
        +            'InetAddress', 'Inflater', 'InflaterInputStream',
        +            'InheritableThreadLocal', 'InitialContext',
        +            'InitialContextFactory',
        +            'InitialContextFactoryBuilder', 'InitialDirContext',
        +            'INITIALIZE', 'Initializer', 'InitialLdapContext',
        +            'InlineView', 'InputContext', 'InputEvent',
        +            'InputMap', 'InputMapUIResource', 'InputMethod',
        +            'InputMethodContext', 'InputMethodDescriptor',
        +            'InputMethodEvent', 'InputMethodHighlight',
        +            'InputMethodListener', 'InputMethodRequests',
        +            'InputStream',
        +            'InputStreamReader', 'InputSubset', 'InputVerifier',
        +            'Insets', 'InsetsUIResource', 'InstantiationError',
        +            'InstantiationException', 'Instrument',
        +            'InsufficientResourcesException', 'Integer',
        +            'INTERNAL', 'InternalError', 'InternalFrameAdapter',
        +            'InternalFrameEvent', 'InternalFrameListener',
        +            'InternalFrameUI', 'InterruptedException',
        +            'InterruptedIOException',
        +            'InterruptedNamingException', 'INTF_REPOS',
        +            'IntHolder', 'IntrospectionException',
        +            'Introspector', 'Invalid',
        +            'InvalidAlgorithmParameterException',
        +            'InvalidAttributeIdentifierException',
        +            'InvalidAttributesException',
        +            'InvalidAttributeValueException',
        +            'InvalidClassException',
        +            'InvalidDnDOperationException',
        +            'InvalidKeyException', 'InvalidKeySpecException',
        +            'InvalidMidiDataException', 'InvalidName',
        +            'InvalidNameException',
        +            'InvalidNameHelper', 'InvalidNameHolder',
        +            'InvalidObjectException',
        +            'InvalidParameterException',
        +            'InvalidParameterSpecException',
        +            'InvalidSearchControlsException',
        +            'InvalidSearchFilterException', 'InvalidSeq',
        +            'InvalidTransactionException', 'InvalidValue',
        +            'INVALID_TRANSACTION', 'InvocationEvent',
        +            'InvocationHandler', 'InvocationTargetException',
        +            'InvokeHandler', 'INV_FLAG', 'INV_IDENT',
        +            'INV_OBJREF', 'INV_POLICY', 'IOException',
        +            'IRObject', 'IRObjectOperations', 'IstringHelper',
        +            'ItemEvent', 'ItemListener', 'ItemSelectable',
        +            'Iterator', 'JApplet', 'JarEntry', 'JarException',
        +            'JarFile', 'JarInputStream', 'JarOutputStream',
        +            'JarURLConnection', 'JButton', 'JCheckBox',
        +            'JCheckBoxMenuItem', 'JColorChooser', 'JComboBox',
        +            'JComboBox.KeySelectionManager', 'JComponent',
        +            'JDesktopPane', 'JDialog', 'JEditorPane',
        +            'JFileChooser', 'JFrame', 'JInternalFrame',
        +            'JInternalFrame.JDesktopIcon', 'JLabel',
        +            'JLayeredPane', 'JList', 'JMenu', 'JMenuBar',
        +            'JMenuItem', 'JobAttributes',
        +            'JobAttributes.DefaultSelectionType',
        +            'JobAttributes.DestinationType',
        +            'JobAttributes.DialogType',
        +            'JobAttributes.MultipleDocumentHandlingType',
        +            'JobAttributes.SidesType', 'JOptionPane', 'JPanel',
        +            'JPasswordField', 'JPopupMenu',
        +            'JPopupMenu.Separator', 'JProgressBar',
        +            'JRadioButton', 'JRadioButtonMenuItem', 'JRootPane',
        +            'JScrollBar', 'JScrollPane', 'JSeparator', 'JSlider',
        +            'JSplitPane', 'JTabbedPane', 'JTable',
        +            'JTableHeader', 'JTextArea', 'JTextComponent',
        +            'JTextComponent.KeyBinding', 'JTextField',
        +            'JTextPane', 'JToggleButton',
        +            'JToggleButton.ToggleButtonModel', 'JToolBar',
        +            'JToolBar.Separator', 'JToolTip', 'JTree',
        +            'JTree.DynamicUtilTreeNode',
        +            'JTree.EmptySelectionModel', 'JViewport', 'JWindow',
        +            'Kernel', 'Key', 'KeyAdapter', 'KeyEvent',
        +            'KeyException', 'KeyFactory', 'KeyFactorySpi',
        +            'KeyListener', 'KeyManagementException', 'Keymap',
        +            'KeyPair', 'KeyPairGenerator', 'KeyPairGeneratorSpi',
        +            'KeySpec', 'KeyStore', 'KeyStoreException',
        +            'KeyStoreSpi', 'KeyStroke', 'Label', 'LabelUI',
        +            'LabelView', 'LastOwnerException',
        +            'LayeredHighlighter',
        +            'LayeredHighlighter.LayerPainter', 'LayoutManager',
        +            'LayoutManager2', 'LayoutQueue', 'LdapContext',
        +            'LdapReferralException', 'Lease',
        +            'LimitExceededException', 'Line', 'Line.Info',
        +            'Line2D', 'Line2D.Double', 'Line2D.Float',
        +            'LineBorder', 'LineBreakMeasurer', 'LineEvent',
        +            'LineEvent.Type', 'LineListener', 'LineMetrics',
        +            'LineNumberInputStream', 'LineNumberReader',
        +            'LineUnavailableException', 'LinkageError',
        +            'LinkedList', 'LinkException', 'LinkLoopException',
        +            'LinkRef', 'List', 'ListCellRenderer',
        +            'ListDataEvent', 'ListDataListener', 'ListIterator',
        +            'ListModel', 'ListResourceBundle',
        +            'ListSelectionEvent', 'ListSelectionListener',
        +            'ListSelectionModel', 'ListUI', 'ListView',
        +            'LoaderHandler', 'Locale', 'LocateRegistry',
        +            'LogStream', 'Long', 'LongHolder',
        +            'LongLongSeqHelper', 'LongLongSeqHolder',
        +            'LongSeqHelper', 'LongSeqHolder', 'LookAndFeel',
        +            'LookupOp', 'LookupTable', 'MalformedLinkException',
        +            'MalformedURLException', 'Manifest', 'Map',
        +            'Map.Entry', 'MARSHAL', 'MarshalException',
        +            'MarshalledObject', 'Math', 'MatteBorder',
        +            'MediaTracker', 'Member', 'MemoryImageSource',
        +            'Menu', 'MenuBar', 'MenuBarUI', 'MenuComponent',
        +            'MenuContainer', 'MenuDragMouseEvent',
        +            'MenuDragMouseListener', 'MenuElement', 'MenuEvent',
        +            'MenuItem', 'MenuItemUI', 'MenuKeyEvent',
        +            'MenuKeyListener', 'MenuListener',
        +            'MenuSelectionManager', 'MenuShortcut',
        +            'MessageDigest', 'MessageDigestSpi', 'MessageFormat',
        +            'MetaEventListener', 'MetalBorders',
        +            'MetalBorders.ButtonBorder',
        +            'MetalBorders.Flush3DBorder',
        +            'MetalBorders.InternalFrameBorder',
        +            'MetalBorders.MenuBarBorder',
        +            'MetalBorders.MenuItemBorder',
        +            'MetalBorders.OptionDialogBorder',
        +            'MetalBorders.PaletteBorder',
        +            'MetalBorders.PopupMenuBorder',
        +            'MetalBorders.RolloverButtonBorder',
        +            'MetalBorders.ScrollPaneBorder',
        +            'MetalBorders.TableHeaderBorder',
        +            'MetalBorders.TextFieldBorder',
        +            'MetalBorders.ToggleButtonBorder',
        +            'MetalBorders.ToolBarBorder', 'MetalButtonUI',
        +            'MetalCheckBoxIcon', 'MetalCheckBoxUI',
        +            'MetalComboBoxButton', 'MetalComboBoxEditor',
        +            'MetalComboBoxEditor.UIResource',
        +            'MetalComboBoxIcon', 'MetalComboBoxUI',
        +            'MetalDesktopIconUI', 'MetalFileChooserUI',
        +            'MetalIconFactory', 'MetalIconFactory.FileIcon16',
        +            'MetalIconFactory.FolderIcon16',
        +            'MetalIconFactory.PaletteCloseIcon',
        +            'MetalIconFactory.TreeControlIcon',
        +            'MetalIconFactory.TreeFolderIcon',
        +            'MetalIconFactory.TreeLeafIcon',
        +            'MetalInternalFrameTitlePane',
        +            'MetalInternalFrameUI', 'MetalLabelUI',
        +            'MetalLookAndFeel', 'MetalPopupMenuSeparatorUI',
        +            'MetalProgressBarUI', 'MetalRadioButtonUI',
        +            'MetalScrollBarUI', 'MetalScrollButton',
        +            'MetalScrollPaneUI', 'MetalSeparatorUI',
        +            'MetalSliderUI', 'MetalSplitPaneUI',
        +            'MetalTabbedPaneUI', 'MetalTextFieldUI',
        +            'MetalTheme', 'MetalToggleButtonUI',
        +            'MetalToolBarUI', 'MetalToolTipUI', 'MetalTreeUI',
        +            'MetaMessage', 'Method', 'MethodDescriptor',
        +            'MidiChannel', 'MidiDevice', 'MidiDevice.Info',
        +            'MidiDeviceProvider', 'MidiEvent', 'MidiFileFormat',
        +            'MidiFileReader', 'MidiFileWriter', 'MidiMessage',
        +            'MidiSystem', 'MidiUnavailableException',
        +            'MimeTypeParseException', 'MinimalHTMLWriter',
        +            'MissingResourceException', 'Mixer', 'Mixer.Info',
        +            'MixerProvider', 'ModificationItem', 'Modifier',
        +            'MouseAdapter', 'MouseDragGestureRecognizer',
        +            'MouseEvent', 'MouseInputAdapter',
        +            'MouseInputListener', 'MouseListener',
        +            'MouseMotionAdapter', 'MouseMotionListener',
        +            'MultiButtonUI', 'MulticastSocket',
        +            'MultiColorChooserUI', 'MultiComboBoxUI',
        +            'MultiDesktopIconUI', 'MultiDesktopPaneUI',
        +            'MultiFileChooserUI', 'MultiInternalFrameUI',
        +            'MultiLabelUI', 'MultiListUI', 'MultiLookAndFeel',
        +            'MultiMenuBarUI', 'MultiMenuItemUI',
        +            'MultiOptionPaneUI', 'MultiPanelUI',
        +            'MultiPixelPackedSampleModel', 'MultipleMaster',
        +            'MultiPopupMenuUI', 'MultiProgressBarUI',
        +            'MultiScrollBarUI', 'MultiScrollPaneUI',
        +            'MultiSeparatorUI', 'MultiSliderUI',
        +            'MultiSplitPaneUI', 'MultiTabbedPaneUI',
        +            'MultiTableHeaderUI', 'MultiTableUI', 'MultiTextUI',
        +            'MultiToolBarUI', 'MultiToolTipUI', 'MultiTreeUI',
        +            'MultiViewportUI', 'MutableAttributeSet',
        +            'MutableComboBoxModel', 'MutableTreeNode', 'Name',
        +            'NameAlreadyBoundException', 'NameClassPair',
        +            'NameComponent', 'NameComponentHelper',
        +            'NameComponentHolder', 'NamedValue', 'NameHelper',
        +            'NameHolder', 'NameNotFoundException', 'NameParser',
        +            'NamespaceChangeListener', 'NameValuePair',
        +            'NameValuePairHelper', 'Naming', 'NamingContext',
        +            'NamingContextHelper', 'NamingContextHolder',
        +            'NamingContextOperations', 'NamingEnumeration',
        +            'NamingEvent', 'NamingException',
        +            'NamingExceptionEvent', 'NamingListener',
        +            'NamingManager', 'NamingSecurityException',
        +            'NegativeArraySizeException', 'NetPermission',
        +            'NoClassDefFoundError', 'NoInitialContextException',
        +            'NoninvertibleTransformException',
        +            'NoPermissionException', 'NoRouteToHostException',
        +            'NoSuchAlgorithmException',
        +            'NoSuchAttributeException', 'NoSuchElementException',
        +            'NoSuchFieldError', 'NoSuchFieldException',
        +            'NoSuchMethodError', 'NoSuchMethodException',
        +            'NoSuchObjectException', 'NoSuchProviderException',
        +            'NotActiveException', 'NotBoundException',
        +            'NotContextException', 'NotEmpty', 'NotEmptyHelper',
        +            'NotEmptyHolder', 'NotFound', 'NotFoundHelper',
        +            'NotFoundHolder', 'NotFoundReason',
        +            'NotFoundReasonHelper', 'NotFoundReasonHolder',
        +            'NotOwnerException', 'NotSerializableException',
        +            'NO_IMPLEMENT', 'NO_MEMORY', 'NO_PERMISSION',
        +            'NO_RESOURCES', 'NO_RESPONSE',
        +            'NullPointerException', 'Number', 'NumberFormat',
        +            'NumberFormatException', 'NVList', 'Object',
        +            'ObjectChangeListener', 'ObjectFactory',
        +            'ObjectFactoryBuilder', 'ObjectHelper',
        +            'ObjectHolder', 'ObjectImpl',
        +            'ObjectInput', 'ObjectInputStream',
        +            'ObjectInputStream.GetField',
        +            'ObjectInputValidation', 'ObjectOutput',
        +            'ObjectOutputStream', 'ObjectOutputStream.PutField',
        +            'ObjectStreamClass', 'ObjectStreamConstants',
        +            'ObjectStreamException', 'ObjectStreamField',
        +            'ObjectView', 'OBJECT_NOT_EXIST', 'ObjID',
        +            'OBJ_ADAPTER', 'Observable', 'Observer',
        +            'OctetSeqHelper', 'OctetSeqHolder', 'OMGVMCID',
        +            'OpenType', 'Operation',
        +            'OperationNotSupportedException', 'Option',
        +            'OptionalDataException', 'OptionPaneUI', 'ORB',
        +            'OutOfMemoryError', 'OutputStream',
        +            'OutputStreamWriter', 'OverlayLayout', 'Owner',
        +            'Package', 'PackedColorModel', 'Pageable',
        +            'PageAttributes', 'PageAttributes.ColorType',
        +            'PageAttributes.MediaType',
        +            'PageAttributes.OrientationRequestedType',
        +            'PageAttributes.OriginType',
        +            'PageAttributes.PrintQualityType', 'PageFormat',
        +            'Paint', 'PaintContext', 'PaintEvent', 'Panel',
        +            'PanelUI', 'Paper', 'ParagraphView',
        +            'ParameterBlock', 'ParameterDescriptor',
        +            'ParseException', 'ParsePosition', 'Parser',
        +            'ParserDelegator', 'PartialResultException',
        +            'PasswordAuthentication', 'PasswordView', 'Patch',
        +            'PathIterator', 'Permission',
        +            'PermissionCollection', 'Permissions',
        +            'PERSIST_STORE', 'PhantomReference',
        +            'PipedInputStream', 'PipedOutputStream',
        +            'PipedReader', 'PipedWriter', 'PixelGrabber',
        +            'PixelInterleavedSampleModel', 'PKCS8EncodedKeySpec',
        +            'PlainDocument', 'PlainView', 'Point', 'Point2D',
        +            'Point2D.Double', 'Point2D.Float', 'Policy',
        +            'PolicyError', 'PolicyHelper',
        +            'PolicyHolder', 'PolicyListHelper',
        +            'PolicyListHolder', 'PolicyOperations',
        +            'PolicyTypeHelper', 'Polygon', 'PopupMenu',
        +            'PopupMenuEvent', 'PopupMenuListener', 'PopupMenuUI',
        +            'Port', 'Port.Info', 'PortableRemoteObject',
        +            'PortableRemoteObjectDelegate', 'Position',
        +            'Position.Bias', 'PreparedStatement', 'Principal',
        +            'PrincipalHolder', 'Printable',
        +            'PrinterAbortException', 'PrinterException',
        +            'PrinterGraphics', 'PrinterIOException',
        +            'PrinterJob', 'PrintGraphics', 'PrintJob',
        +            'PrintStream', 'PrintWriter', 'PrivateKey',
        +            'PRIVATE_MEMBER', 'PrivilegedAction',
        +            'PrivilegedActionException',
        +            'PrivilegedExceptionAction', 'Process',
        +            'ProfileDataException', 'ProgressBarUI',
        +            'ProgressMonitor', 'ProgressMonitorInputStream',
        +            'Properties', 'PropertyChangeEvent',
        +            'PropertyChangeListener', 'PropertyChangeSupport',
        +            'PropertyDescriptor', 'PropertyEditor',
        +            'PropertyEditorManager', 'PropertyEditorSupport',
        +            'PropertyPermission', 'PropertyResourceBundle',
        +            'PropertyVetoException', 'ProtectionDomain',
        +            'ProtocolException', 'Provider', 'ProviderException',
        +            'Proxy', 'PublicKey', 'PUBLIC_MEMBER',
        +            'PushbackInputStream', 'PushbackReader',
        +            'QuadCurve2D', 'QuadCurve2D.Double',
        +            'QuadCurve2D.Float', 'Random', 'RandomAccessFile',
        +            'Raster', 'RasterFormatException', 'RasterOp',
        +            'Reader', 'Receiver', 'Rectangle', 'Rectangle2D',
        +            'Rectangle2D.Double', 'Rectangle2D.Float',
        +            'RectangularShape', 'Ref', 'RefAddr', 'Reference',
        +            'Referenceable', 'ReferenceQueue',
        +            'ReferralException', 'ReflectPermission', 'Registry',
        +            'RegistryHandler', 'RemarshalException', 'Remote',
        +            'RemoteCall', 'RemoteException', 'RemoteObject',
        +            'RemoteRef', 'RemoteServer', 'RemoteStub',
        +            'RenderableImage', 'RenderableImageOp',
        +            'RenderableImageProducer', 'RenderContext',
        +            'RenderedImage', 'RenderedImageFactory', 'Renderer',
        +            'RenderingHints', 'RenderingHints.Key',
        +            'RepaintManager', 'ReplicateScaleFilter',
        +            'Repository', 'RepositoryIdHelper', 'Request',
        +            'RescaleOp', 'Resolver', 'ResolveResult',
        +            'ResourceBundle', 'ResponseHandler', 'ResultSet',
        +            'ResultSetMetaData', 'ReverbType', 'RGBImageFilter',
        +            'RMIClassLoader', 'RMIClientSocketFactory',
        +            'RMIFailureHandler', 'RMISecurityException',
        +            'RMISecurityManager', 'RMIServerSocketFactory',
        +            'RMISocketFactory', 'Robot', 'RootPaneContainer',
        +            'RootPaneUI', 'RoundRectangle2D',
        +            'RoundRectangle2D.Double', 'RoundRectangle2D.Float',
        +            'RowMapper', 'RSAKey', 'RSAKeyGenParameterSpec',
        +            'RSAPrivateCrtKey', 'RSAPrivateCrtKeySpec',
        +            'RSAPrivateKey', 'RSAPrivateKeySpec', 'RSAPublicKey',
        +            'RSAPublicKeySpec', 'RTFEditorKit',
        +            'RuleBasedCollator', 'Runnable', 'RunTime',
        +            'Runtime', 'RuntimeException', 'RunTimeOperations',
        +            'RuntimePermission', 'SampleModel',
        +            'SchemaViolationException', 'Scrollable',
        +            'Scrollbar', 'ScrollBarUI', 'ScrollPane',
        +            'ScrollPaneConstants', 'ScrollPaneLayout',
        +            'ScrollPaneLayout.UIResource', 'ScrollPaneUI',
        +            'SearchControls', 'SearchResult',
        +            'SecureClassLoader', 'SecureRandom',
        +            'SecureRandomSpi', 'Security', 'SecurityException',
        +            'SecurityManager', 'SecurityPermission', 'Segment',
        +            'SeparatorUI', 'Sequence', 'SequenceInputStream',
        +            'Sequencer', 'Sequencer.SyncMode', 'Serializable',
        +            'SerializablePermission', 'ServantObject',
        +            'ServerCloneException', 'ServerError',
        +            'ServerException', 'ServerNotActiveException',
        +            'ServerRef', 'ServerRequest',
        +            'ServerRuntimeException', 'ServerSocket',
        +            'ServiceDetail', 'ServiceDetailHelper',
        +            'ServiceInformation', 'ServiceInformationHelper',
        +            'ServiceInformationHolder',
        +            'ServiceUnavailableException', 'Set',
        +            'SetOverrideType', 'SetOverrideTypeHelper', 'Shape',
        +            'ShapeGraphicAttribute', 'Short', 'ShortHolder',
        +            'ShortLookupTable', 'ShortMessage', 'ShortSeqHelper',
        +            'ShortSeqHolder', 'Signature', 'SignatureException',
        +            'SignatureSpi', 'SignedObject', 'Signer',
        +            'SimpleAttributeSet', 'SimpleBeanInfo',
        +            'SimpleDateFormat', 'SimpleTimeZone',
        +            'SinglePixelPackedSampleModel',
        +            'SingleSelectionModel', 'SizeLimitExceededException',
        +            'SizeRequirements', 'SizeSequence', 'Skeleton',
        +            'SkeletonMismatchException',
        +            'SkeletonNotFoundException', 'SliderUI', 'Socket',
        +            'SocketException', 'SocketImpl', 'SocketImplFactory',
        +            'SocketOptions', 'SocketPermission',
        +            'SocketSecurityException', 'SoftBevelBorder',
        +            'SoftReference', 'SortedMap', 'SortedSet',
        +            'Soundbank', 'SoundbankReader', 'SoundbankResource',
        +            'SourceDataLine', 'SplitPaneUI', 'SQLData',
        +            'SQLException', 'SQLInput', 'SQLOutput',
        +            'SQLPermission', 'SQLWarning', 'Stack',
        +            'StackOverflowError', 'StateEdit', 'StateEditable',
        +            'StateFactory', 'Statement', 'Streamable',
        +            'StreamableValue', 'StreamCorruptedException',
        +            'StreamTokenizer', 'StrictMath', 'String',
        +            'StringBuffer', 'StringBufferInputStream',
        +            'StringCharacterIterator', 'StringContent',
        +            'StringHolder', 'StringIndexOutOfBoundsException',
        +            'StringReader', 'StringRefAddr', 'StringSelection',
        +            'StringTokenizer', 'StringValueHelper',
        +            'StringWriter', 'Stroke', 'Struct', 'StructMember',
        +            'StructMemberHelper', 'Stub', 'StubDelegate',
        +            'StubNotFoundException', 'Style', 'StyleConstants',
        +            'StyleConstants.CharacterConstants',
        +            'StyleConstants.ColorConstants',
        +            'StyleConstants.FontConstants',
        +            'StyleConstants.ParagraphConstants', 'StyleContext',
        +            'StyledDocument', 'StyledEditorKit',
        +            'StyledEditorKit.AlignmentAction',
        +            'StyledEditorKit.BoldAction',
        +            'StyledEditorKit.FontFamilyAction',
        +            'StyledEditorKit.FontSizeAction',
        +            'StyledEditorKit.ForegroundAction',
        +            'StyledEditorKit.ItalicAction',
        +            'StyledEditorKit.StyledTextAction',
        +            'StyledEditorKit.UnderlineAction', 'StyleSheet',
        +            'StyleSheet.BoxPainter', 'StyleSheet.ListPainter',
        +            'SwingConstants', 'SwingPropertyChangeSupport',
        +            'SwingUtilities', 'SyncFailedException',
        +            'Synthesizer', 'SysexMessage', 'System',
        +            'SystemColor', 'SystemException', 'SystemFlavorMap',
        +            'TabableView', 'TabbedPaneUI', 'TabExpander',
        +            'TableCellEditor', 'TableCellRenderer',
        +            'TableColumn', 'TableColumnModel',
        +            'TableColumnModelEvent', 'TableColumnModelListener',
        +            'TableHeaderUI', 'TableModel', 'TableModelEvent',
        +            'TableModelListener', 'TableUI', 'TableView',
        +            'TabSet', 'TabStop', 'TagElement', 'TargetDataLine',
        +            'TCKind', 'TextAction', 'TextArea', 'TextAttribute',
        +            'TextComponent', 'TextEvent', 'TextField',
        +            'TextHitInfo', 'TextLayout',
        +            'TextLayout.CaretPolicy', 'TextListener',
        +            'TextMeasurer', 'TextUI', 'TexturePaint', 'Thread',
        +            'ThreadDeath', 'ThreadGroup', 'ThreadLocal',
        +            'Throwable', 'Tie', 'TileObserver', 'Time',
        +            'TimeLimitExceededException', 'Timer',
        +            'TimerTask', 'Timestamp', 'TimeZone', 'TitledBorder',
        +            'ToolBarUI', 'Toolkit', 'ToolTipManager',
        +            'ToolTipUI', 'TooManyListenersException', 'Track',
        +            'TransactionRequiredException',
        +            'TransactionRolledbackException',
        +            'TRANSACTION_REQUIRED', 'TRANSACTION_ROLLEDBACK',
        +            'Transferable', 'TransformAttribute', 'TRANSIENT',
        +            'Transmitter', 'Transparency', 'TreeCellEditor',
        +            'TreeCellRenderer', 'TreeExpansionEvent',
        +            'TreeExpansionListener', 'TreeMap', 'TreeModel',
        +            'TreeModelEvent', 'TreeModelListener', 'TreeNode',
        +            'TreePath', 'TreeSelectionEvent',
        +            'TreeSelectionListener', 'TreeSelectionModel',
        +            'TreeSet', 'TreeUI', 'TreeWillExpandListener',
        +            'TypeCode', 'TypeCodeHolder', 'TypeMismatch',
        +            'Types', 'UID', 'UIDefaults',
        +            'UIDefaults.ActiveValue', 'UIDefaults.LazyInputMap',
        +            'UIDefaults.LazyValue', 'UIDefaults.ProxyLazyValue',
        +            'UIManager', 'UIManager.LookAndFeelInfo',
        +            'UIResource', 'ULongLongSeqHelper',
        +            'ULongLongSeqHolder', 'ULongSeqHelper',
        +            'ULongSeqHolder', 'UndeclaredThrowableException',
        +            'UndoableEdit', 'UndoableEditEvent',
        +            'UndoableEditListener', 'UndoableEditSupport',
        +            'UndoManager', 'UnexpectedException',
        +            'UnicastRemoteObject', 'UnionMember',
        +            'UnionMemberHelper', 'UNKNOWN', 'UnknownError',
        +            'UnknownException', 'UnknownGroupException',
        +            'UnknownHostException',
        +            'UnknownObjectException', 'UnknownServiceException',
        +            'UnknownUserException', 'UnmarshalException',
        +            'UnrecoverableKeyException', 'Unreferenced',
        +            'UnresolvedPermission', 'UnsatisfiedLinkError',
        +            'UnsolicitedNotification',
        +            'UnsolicitedNotificationEvent',
        +            'UnsolicitedNotificationListener',
        +            'UnsupportedAudioFileException',
        +            'UnsupportedClassVersionError',
        +            'UnsupportedEncodingException',
        +            'UnsupportedFlavorException',
        +            'UnsupportedLookAndFeelException',
        +            'UnsupportedOperationException',
        +            'UNSUPPORTED_POLICY', 'UNSUPPORTED_POLICY_VALUE',
        +            'URL', 'URLClassLoader', 'URLConnection',
        +            'URLDecoder', 'URLEncoder', 'URLStreamHandler',
        +            'URLStreamHandlerFactory', 'UserException',
        +            'UShortSeqHelper', 'UShortSeqHolder',
        +            'UTFDataFormatException', 'Util', 'UtilDelegate',
        +            'Utilities', 'ValueBase', 'ValueBaseHelper',
        +            'ValueBaseHolder', 'ValueFactory', 'ValueHandler',
        +            'ValueMember', 'ValueMemberHelper',
        +            'VariableHeightLayoutCache', 'Vector', 'VerifyError',
        +            'VersionSpecHelper', 'VetoableChangeListener',
        +            'VetoableChangeSupport', 'View', 'ViewFactory',
        +            'ViewportLayout', 'ViewportUI',
        +            'VirtualMachineError', 'Visibility',
        +            'VisibilityHelper', 'VMID', 'VM_ABSTRACT',
        +            'VM_CUSTOM', 'VM_NONE', 'VM_TRUNCATABLE',
        +            'VoiceStatus', 'Void', 'WCharSeqHelper',
        +            'WCharSeqHolder', 'WeakHashMap', 'WeakReference',
        +            'Window', 'WindowAdapter', 'WindowConstants',
        +            'WindowEvent', 'WindowListener', 'WrappedPlainView',
        +            'WritableRaster', 'WritableRenderedImage',
        +            'WriteAbortedException', 'Writer',
        +            'WrongTransaction', 'WStringValueHelper',
        +            'X509Certificate', 'X509CRL', 'X509CRLEntry',
        +            'X509EncodedKeySpec', 'X509Extension', 'ZipEntry',
        +            'ZipException', 'ZipFile', 'ZipInputStream',
        +            'ZipOutputStream', 'ZoneView',
        +            '_BindingIteratorImplBase', '_BindingIteratorStub',
        +            '_IDLTypeStub', '_NamingContextImplBase',
        +            '_NamingContextStub', '_PolicyStub', '_Remote_Stub'
        +            ),
        +        4 => array(
        +            'void', 'double', 'int', 'boolean', 'byte', 'short', 'long', 'char', 'float'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}',
        +        '+', '-', '*', '/', '%',
        +        '!', '&', '|', '^',
        +        '<', '>', '=',
        +        '?', ':', ';',
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => true,
        +        4 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight: bold;',
        +            2 => 'color: #000066; font-weight: bold;',
        +            3 => 'color: #003399;',
        +            4 => 'color: #000066; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #006699;',
        +            3 => 'color: #008000; font-style: italic; font-weight: bold;',
        +            3 => 'color: #008000; font-style: italic; font-weight: bold;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006633;',
        +            2 => 'color: #006633;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+{FNAMEL}',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/java5.php b/Sources/geshi/java5.php
        new file mode 100644
        index 0000000..af16bd1
        --- /dev/null
        +++ b/Sources/geshi/java5.php
        @@ -0,0 +1,1037 @@
        + 'Java(TM) 2 Platform Standard Edition 5.0',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Import and Package directives (Basic Support only)
        +        2 => '/(?:(?<=import[\\n\\s](?!static))|(?<=import[\\n\\s]static[\\n\\s])|(?<=package[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*([a-zA-Z0-9_]+|\*)(?=[\n\s;])/i',
        +        // javadoc comments
        +        3 => '#/\*\*(?![\*\/]).*\*/#sU'
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            /* see the authoritative list of all 50 Java keywords at */
        +            /* http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#229308 */
        +
        +            /* java keywords, part 1: control flow */
        +            'case', 'default', 'do', 'else', 'for',
        +            'goto', 'if', 'switch', 'while'
        +
        +            /* IMO 'break', 'continue', 'return' and 'throw' */
        +                        /* should also be added to this group, as they   */
        +            /* also manage the control flow,                 */
        +            /* arguably 'try'/'catch'/'finally' as well      */
        +            ),
        +        2 => array(
        +            /* java keywords, part 2 */
        +
        +            'break', 'continue', 'return', 'throw',
        +            'try', 'catch', 'finally',
        +
        +            'abstract', 'assert', 'class', 'const', 'enum', 'extends',
        +            'final', 'implements', 'import', 'instanceof', 'interface',
        +            'native', 'new', 'package', 'private', 'protected',
        +            'public', 'static', 'strictfp', 'super', 'synchronized',
        +            'this', 'throws', 'transient', 'volatile'
        +            ),
        +        3 => array(
        +            /* Java keywords, part 3: primitive data types and 'void' */
        +            'boolean', 'byte', 'char', 'double',
        +            'float', 'int', 'long', 'short', 'void'
        +            ),
        +        4 => array(
        +            /* other reserved words in Java: literals */
        +            /* should be styled to look similar to numbers and Strings */
        +            'false', 'null', 'true'
        +            ),
        +        5 => array (
        +            'Applet', 'AppletContext', 'AppletStub', 'AudioClip'
        +            ),
        +        6 => array (
        +            'AWTError', 'AWTEvent', 'AWTEventMulticaster', 'AWTException', 'AWTKeyStroke', 'AWTPermission', 'ActiveEvent', 'Adjustable', 'AlphaComposite', 'BasicStroke', 'BorderLayout', 'BufferCapabilities', 'BufferCapabilities.FlipContents', 'Button', 'Canvas', 'CardLayout', 'Checkbox', 'CheckboxGroup', 'CheckboxMenuItem', 'Choice', 'Color', 'Component', 'ComponentOrientation', 'Composite', 'CompositeContext', 'Container', 'ContainerOrderFocusTraversalPolicy', 'Cursor', 'DefaultFocusTraversalPolicy', 'DefaultKeyboardFocusManager', 'Dialog', 'Dimension', 'DisplayMode', 'EventQueue', 'FileDialog', 'FlowLayout', 'FocusTraversalPolicy', 'Font', 'FontFormatException', 'FontMetrics', 'Frame', 'GradientPaint', 'Graphics', 'Graphics2D', 'GraphicsConfigTemplate', 'GraphicsConfiguration', 'GraphicsDevice', 'GraphicsEnvironment', 'GridBagConstraints', 'GridBagLayout', 'GridLayout', 'HeadlessException', 'IllegalComponentStateException', 'Image', 'ImageCapabilities', 'Insets', 'ItemSelectable', 'JobAttributes',
        +            'JobAttributes.DefaultSelectionType', 'JobAttributes.DestinationType', 'JobAttributes.DialogType', 'JobAttributes.MultipleDocumentHandlingType', 'JobAttributes.SidesType', 'KeyEventDispatcher', 'KeyEventPostProcessor', 'KeyboardFocusManager', 'Label', 'LayoutManager', 'LayoutManager2', 'MediaTracker', 'Menu', 'MenuBar', 'MenuComponent', 'MenuContainer', 'MenuItem', 'MenuShortcut', 'MouseInfo', 'PageAttributes', 'PageAttributes.ColorType', 'PageAttributes.MediaType', 'PageAttributes.OrientationRequestedType', 'PageAttributes.OriginType', 'PageAttributes.PrintQualityType', 'Paint', 'PaintContext', 'Panel', 'Point', 'PointerInfo', 'Polygon', 'PopupMenu', 'PrintGraphics', 'PrintJob', 'Rectangle', 'RenderingHints', 'RenderingHints.Key', 'Robot', 'ScrollPane', 'ScrollPaneAdjustable', 'Scrollbar', 'Shape', 'Stroke', 'SystemColor', 'TextArea', 'TextComponent', 'TextField', 'TexturePaint', 'Toolkit', 'Transparency', 'Window'
        +            ),
        +        7 => array (
        +            'CMMException', 'ColorSpace', 'ICC_ColorSpace', 'ICC_Profile', 'ICC_ProfileGray', 'ICC_ProfileRGB', 'ProfileDataException'
        +            ),
        +        8 => array (
        +            'Clipboard', 'ClipboardOwner', 'DataFlavor', 'FlavorEvent', 'FlavorListener', 'FlavorMap', 'FlavorTable', 'MimeTypeParseException', 'StringSelection', 'SystemFlavorMap', 'Transferable', 'UnsupportedFlavorException'
        +            ),
        +        9 => array (
        +            'Autoscroll', 'DnDConstants', 'DragGestureEvent', 'DragGestureListener', 'DragGestureRecognizer', 'DragSource', 'DragSourceAdapter', 'DragSourceContext', 'DragSourceDragEvent', 'DragSourceDropEvent', 'DragSourceEvent', 'DragSourceListener', 'DragSourceMotionListener', 'DropTarget', 'DropTarget.DropTargetAutoScroller', 'DropTargetAdapter', 'DropTargetContext', 'DropTargetDragEvent', 'DropTargetDropEvent', 'DropTargetEvent', 'DropTargetListener', 'InvalidDnDOperationException', 'MouseDragGestureRecognizer'
        +            ),
        +        10 => array (
        +            'AWTEventListener', 'AWTEventListenerProxy', 'ActionEvent', 'ActionListener', 'AdjustmentEvent', 'AdjustmentListener', 'ComponentAdapter', 'ComponentEvent', 'ComponentListener', 'ContainerAdapter', 'ContainerEvent', 'ContainerListener', 'FocusAdapter', 'FocusEvent', 'FocusListener', 'HierarchyBoundsAdapter', 'HierarchyBoundsListener', 'HierarchyEvent', 'HierarchyListener', 'InputEvent', 'InputMethodEvent', 'InputMethodListener', 'InvocationEvent', 'ItemEvent', 'ItemListener', 'KeyAdapter', 'KeyEvent', 'KeyListener', 'MouseAdapter', 'MouseListener', 'MouseMotionAdapter', 'MouseMotionListener', 'MouseWheelEvent', 'MouseWheelListener', 'PaintEvent', 'TextEvent', 'TextListener', 'WindowAdapter', 'WindowEvent', 'WindowFocusListener', 'WindowListener', 'WindowStateListener'
        +            ),
        +        11 => array (
        +            'FontRenderContext', 'GlyphJustificationInfo', 'GlyphMetrics', 'GlyphVector', 'GraphicAttribute', 'ImageGraphicAttribute', 'LineBreakMeasurer', 'LineMetrics', 'MultipleMaster', 'NumericShaper', 'ShapeGraphicAttribute', 'TextAttribute', 'TextHitInfo', 'TextLayout', 'TextLayout.CaretPolicy', 'TextMeasurer', 'TransformAttribute'
        +            ),
        +        12 => array (
        +            'AffineTransform', 'Arc2D', 'Arc2D.Double', 'Arc2D.Float', 'Area', 'CubicCurve2D', 'CubicCurve2D.Double', 'CubicCurve2D.Float', 'Dimension2D', 'Ellipse2D', 'Ellipse2D.Double', 'Ellipse2D.Float', 'FlatteningPathIterator', 'GeneralPath', 'IllegalPathStateException', 'Line2D', 'Line2D.Double', 'Line2D.Float', 'NoninvertibleTransformException', 'PathIterator', 'Point2D', 'Point2D.Double', 'Point2D.Float', 'QuadCurve2D', 'QuadCurve2D.Double', 'QuadCurve2D.Float', 'Rectangle2D', 'Rectangle2D.Double', 'Rectangle2D.Float', 'RectangularShape', 'RoundRectangle2D', 'RoundRectangle2D.Double', 'RoundRectangle2D.Float'
        +            ),
        +        13 => array (
        +            'InputContext', 'InputMethodHighlight', 'InputMethodRequests', 'InputSubset'
        +            ),
        +        14 => array (
        +            'InputMethod', 'InputMethodContext', 'InputMethodDescriptor'
        +            ),
        +        15 => array (
        +            'AffineTransformOp', 'AreaAveragingScaleFilter', 'BandCombineOp', 'BandedSampleModel', 'BufferStrategy', 'BufferedImage', 'BufferedImageFilter', 'BufferedImageOp', 'ByteLookupTable', 'ColorConvertOp', 'ColorModel', 'ComponentColorModel', 'ComponentSampleModel', 'ConvolveOp', 'CropImageFilter', 'DataBuffer', 'DataBufferByte', 'DataBufferDouble', 'DataBufferFloat', 'DataBufferInt', 'DataBufferShort', 'DataBufferUShort', 'DirectColorModel', 'FilteredImageSource', 'ImageConsumer', 'ImageFilter', 'ImageObserver', 'ImageProducer', 'ImagingOpException', 'IndexColorModel', 'Kernel', 'LookupOp', 'LookupTable', 'MemoryImageSource', 'MultiPixelPackedSampleModel', 'PackedColorModel', 'PixelGrabber', 'PixelInterleavedSampleModel', 'RGBImageFilter', 'Raster', 'RasterFormatException', 'RasterOp', 'RenderedImage', 'ReplicateScaleFilter', 'RescaleOp', 'SampleModel', 'ShortLookupTable', 'SinglePixelPackedSampleModel', 'TileObserver', 'VolatileImage', 'WritableRaster', 'WritableRenderedImage'
        +            ),
        +        16 => array (
        +            'ContextualRenderedImageFactory', 'ParameterBlock', 'RenderContext', 'RenderableImage', 'RenderableImageOp', 'RenderableImageProducer', 'RenderedImageFactory'
        +            ),
        +        17 => array (
        +            'Book', 'PageFormat', 'Pageable', 'Paper', 'Printable', 'PrinterAbortException', 'PrinterException', 'PrinterGraphics', 'PrinterIOException', 'PrinterJob'
        +            ),
        +        18 => array (
        +            'AppletInitializer', 'BeanDescriptor', 'BeanInfo', 'Beans', 'Customizer', 'DefaultPersistenceDelegate', 'DesignMode', 'Encoder', 'EventHandler', 'EventSetDescriptor', 'ExceptionListener', 'Expression', 'FeatureDescriptor', 'IndexedPropertyChangeEvent', 'IndexedPropertyDescriptor', 'Introspector', 'MethodDescriptor', 'ParameterDescriptor', 'PersistenceDelegate', 'PropertyChangeEvent', 'PropertyChangeListener', 'PropertyChangeListenerProxy', 'PropertyChangeSupport', 'PropertyDescriptor', 'PropertyEditor', 'PropertyEditorManager', 'PropertyEditorSupport', 'PropertyVetoException', 'SimpleBeanInfo', 'VetoableChangeListener', 'VetoableChangeListenerProxy', 'VetoableChangeSupport', 'Visibility', 'XMLDecoder', 'XMLEncoder'
        +            ),
        +        19 => array (
        +            'BeanContext', 'BeanContextChild', 'BeanContextChildComponentProxy', 'BeanContextChildSupport', 'BeanContextContainerProxy', 'BeanContextEvent', 'BeanContextMembershipEvent', 'BeanContextMembershipListener', 'BeanContextProxy', 'BeanContextServiceAvailableEvent', 'BeanContextServiceProvider', 'BeanContextServiceProviderBeanInfo', 'BeanContextServiceRevokedEvent', 'BeanContextServiceRevokedListener', 'BeanContextServices', 'BeanContextServicesListener', 'BeanContextServicesSupport', 'BeanContextServicesSupport.BCSSServiceProvider', 'BeanContextSupport', 'BeanContextSupport.BCSIterator'
        +            ),
        +        20 => array (
        +            'BufferedInputStream', 'BufferedOutputStream', 'BufferedReader', 'BufferedWriter', 'ByteArrayInputStream', 'ByteArrayOutputStream', 'CharArrayReader', 'CharArrayWriter', 'CharConversionException', 'Closeable', 'DataInput', 'DataOutput', 'EOFException', 'Externalizable', 'File', 'FileDescriptor', 'FileInputStream', 'FileNotFoundException', 'FileOutputStream', 'FilePermission', 'FileReader', 'FileWriter', 'FilenameFilter', 'FilterInputStream', 'FilterOutputStream', 'FilterReader', 'FilterWriter', 'Flushable', 'IOException', 'InputStreamReader', 'InterruptedIOException', 'InvalidClassException', 'InvalidObjectException', 'LineNumberInputStream', 'LineNumberReader', 'NotActiveException', 'NotSerializableException', 'ObjectInput', 'ObjectInputStream', 'ObjectInputStream.GetField', 'ObjectInputValidation', 'ObjectOutput', 'ObjectOutputStream', 'ObjectOutputStream.PutField', 'ObjectStreamClass', 'ObjectStreamConstants', 'ObjectStreamException', 'ObjectStreamField', 'OptionalDataException', 'OutputStreamWriter',
        +            'PipedInputStream', 'PipedOutputStream', 'PipedReader', 'PipedWriter', 'PrintStream', 'PrintWriter', 'PushbackInputStream', 'PushbackReader', 'RandomAccessFile', 'Reader', 'SequenceInputStream', 'Serializable', 'SerializablePermission', 'StreamCorruptedException', 'StreamTokenizer', 'StringBufferInputStream', 'StringReader', 'StringWriter', 'SyncFailedException', 'UTFDataFormatException', 'UnsupportedEncodingException', 'WriteAbortedException', 'Writer'
        +            ),
        +        21 => array (
        +            'AbstractMethodError', 'Appendable', 'ArithmeticException', 'ArrayIndexOutOfBoundsException', 'ArrayStoreException', 'AssertionError', 'Boolean', 'Byte', 'CharSequence', 'Character', 'Character.Subset', 'Character.UnicodeBlock', 'Class', 'ClassCastException', 'ClassCircularityError', 'ClassFormatError', 'ClassLoader', 'ClassNotFoundException', 'CloneNotSupportedException', 'Cloneable', 'Comparable', 'Compiler', 'Deprecated', 'Double', 'Enum', 'EnumConstantNotPresentException', 'Error', 'Exception', 'ExceptionInInitializerError', 'Float', 'IllegalAccessError', 'IllegalAccessException', 'IllegalArgumentException', 'IllegalMonitorStateException', 'IllegalStateException', 'IllegalThreadStateException', 'IncompatibleClassChangeError', 'IndexOutOfBoundsException', 'InheritableThreadLocal', 'InstantiationError', 'InstantiationException', 'Integer', 'InternalError', 'InterruptedException', 'Iterable', 'LinkageError', 'Long', 'Math', 'NegativeArraySizeException', 'NoClassDefFoundError', 'NoSuchFieldError',
        +            'NoSuchFieldException', 'NoSuchMethodError', 'NoSuchMethodException', 'NullPointerException', 'Number', 'NumberFormatException', 'OutOfMemoryError', 'Override', 'Package', 'Process', 'ProcessBuilder', 'Readable', 'Runnable', 'Runtime', 'RuntimeException', 'RuntimePermission', 'SecurityException', 'SecurityManager', 'Short', 'StackOverflowError', 'StackTraceElement', 'StrictMath', 'String', 'StringBuffer', 'StringBuilder', 'StringIndexOutOfBoundsException', 'SuppressWarnings', 'System', 'Thread', 'Thread.State', 'Thread.UncaughtExceptionHandler', 'ThreadDeath', 'ThreadGroup', 'ThreadLocal', 'Throwable', 'TypeNotPresentException', 'UnknownError', 'UnsatisfiedLinkError', 'UnsupportedClassVersionError', 'UnsupportedOperationException', 'VerifyError', 'VirtualMachineError', 'Void'
        +            ),
        +        22 => array (
        +            'AnnotationFormatError', 'AnnotationTypeMismatchException', 'Documented', 'ElementType', 'IncompleteAnnotationException', 'Inherited', 'Retention', 'RetentionPolicy', 'Target'
        +            ),
        +        23 => array (
        +            'ClassDefinition', 'ClassFileTransformer', 'IllegalClassFormatException', 'Instrumentation', 'UnmodifiableClassException'
        +            ),
        +        24 => array (
        +            'ClassLoadingMXBean', 'CompilationMXBean', 'GarbageCollectorMXBean', 'ManagementFactory', 'ManagementPermission', 'MemoryMXBean', 'MemoryManagerMXBean', 'MemoryNotificationInfo', 'MemoryPoolMXBean', 'MemoryType', 'MemoryUsage', 'OperatingSystemMXBean', 'RuntimeMXBean', 'ThreadInfo', 'ThreadMXBean'
        +            ),
        +        25 => array (
        +            'PhantomReference', 'ReferenceQueue', 'SoftReference', 'WeakReference'
        +            ),
        +        26 => array (
        +            'AccessibleObject', 'AnnotatedElement', 'Constructor', 'Field', 'GenericArrayType', 'GenericDeclaration', 'GenericSignatureFormatError', 'InvocationHandler', 'InvocationTargetException', 'MalformedParameterizedTypeException', 'Member', 'Method', 'Modifier', 'ParameterizedType', 'ReflectPermission', 'Type', 'TypeVariable', 'UndeclaredThrowableException', 'WildcardType'
        +            ),
        +        27 => array (
        +            'BigDecimal', 'BigInteger', 'MathContext', 'RoundingMode'
        +            ),
        +        28 => array (
        +            'Authenticator', 'Authenticator.RequestorType', 'BindException', 'CacheRequest', 'CacheResponse', 'ContentHandlerFactory', 'CookieHandler', 'DatagramPacket', 'DatagramSocket', 'DatagramSocketImpl', 'DatagramSocketImplFactory', 'FileNameMap', 'HttpRetryException', 'HttpURLConnection', 'Inet4Address', 'Inet6Address', 'InetAddress', 'InetSocketAddress', 'JarURLConnection', 'MalformedURLException', 'MulticastSocket', 'NetPermission', 'NetworkInterface', 'NoRouteToHostException', 'PasswordAuthentication', 'PortUnreachableException', 'ProtocolException', 'Proxy.Type', 'ProxySelector', 'ResponseCache', 'SecureCacheResponse', 'ServerSocket', 'Socket', 'SocketAddress', 'SocketException', 'SocketImpl', 'SocketImplFactory', 'SocketOptions', 'SocketPermission', 'SocketTimeoutException', 'URI', 'URISyntaxException', 'URL', 'URLClassLoader', 'URLConnection', 'URLDecoder', 'URLEncoder', 'URLStreamHandler', 'URLStreamHandlerFactory', 'UnknownServiceException'
        +            ),
        +        29 => array (
        +            'Buffer', 'BufferOverflowException', 'BufferUnderflowException', 'ByteBuffer', 'ByteOrder', 'CharBuffer', 'DoubleBuffer', 'FloatBuffer', 'IntBuffer', 'InvalidMarkException', 'LongBuffer', 'MappedByteBuffer', 'ReadOnlyBufferException', 'ShortBuffer'
        +            ),
        +        30 => array (
        +            'AlreadyConnectedException', 'AsynchronousCloseException', 'ByteChannel', 'CancelledKeyException', 'Channel', 'Channels', 'ClosedByInterruptException', 'ClosedChannelException', 'ClosedSelectorException', 'ConnectionPendingException', 'DatagramChannel', 'FileChannel', 'FileChannel.MapMode', 'FileLock', 'FileLockInterruptionException', 'GatheringByteChannel', 'IllegalBlockingModeException', 'IllegalSelectorException', 'InterruptibleChannel', 'NoConnectionPendingException', 'NonReadableChannelException', 'NonWritableChannelException', 'NotYetBoundException', 'NotYetConnectedException', 'OverlappingFileLockException', 'Pipe', 'Pipe.SinkChannel', 'Pipe.SourceChannel', 'ReadableByteChannel', 'ScatteringByteChannel', 'SelectableChannel', 'SelectionKey', 'Selector', 'ServerSocketChannel', 'SocketChannel', 'UnresolvedAddressException', 'UnsupportedAddressTypeException', 'WritableByteChannel'
        +            ),
        +        31 => array (
        +            'AbstractInterruptibleChannel', 'AbstractSelectableChannel', 'AbstractSelectionKey', 'AbstractSelector', 'SelectorProvider'
        +            ),
        +        32 => array (
        +            'CharacterCodingException', 'Charset', 'CharsetDecoder', 'CharsetEncoder', 'CoderMalfunctionError', 'CoderResult', 'CodingErrorAction', 'IllegalCharsetNameException', 'MalformedInputException', 'UnmappableCharacterException', 'UnsupportedCharsetException'
        +            ),
        +        33 => array (
        +            'CharsetProvider'
        +            ),
        +        34 => array (
        +            'AccessException', 'AlreadyBoundException', 'ConnectIOException', 'MarshalException', 'MarshalledObject', 'Naming', 'NoSuchObjectException', 'NotBoundException', 'RMISecurityException', 'RMISecurityManager', 'Remote', 'RemoteException', 'ServerError', 'ServerException', 'ServerRuntimeException', 'StubNotFoundException', 'UnexpectedException', 'UnmarshalException'
        +            ),
        +        35 => array (
        +            'Activatable', 'ActivateFailedException', 'ActivationDesc', 'ActivationException', 'ActivationGroup', 'ActivationGroupDesc', 'ActivationGroupDesc.CommandEnvironment', 'ActivationGroupID', 'ActivationGroup_Stub', 'ActivationID', 'ActivationInstantiator', 'ActivationMonitor', 'ActivationSystem', 'Activator', 'UnknownGroupException', 'UnknownObjectException'
        +            ),
        +        36 => array (
        +            'DGC', 'Lease', 'VMID'
        +            ),
        +        37 => array (
        +            'LocateRegistry', 'Registry', 'RegistryHandler'
        +            ),
        +        38 => array (
        +            'ExportException', 'LoaderHandler', 'LogStream', 'ObjID', 'Operation', 'RMIClassLoader', 'RMIClassLoaderSpi', 'RMIClientSocketFactory', 'RMIFailureHandler', 'RMIServerSocketFactory', 'RMISocketFactory', 'RemoteCall', 'RemoteObject', 'RemoteObjectInvocationHandler', 'RemoteRef', 'RemoteServer', 'RemoteStub', 'ServerCloneException', 'ServerNotActiveException', 'ServerRef', 'Skeleton', 'SkeletonMismatchException', 'SkeletonNotFoundException', 'SocketSecurityException', 'UID', 'UnicastRemoteObject', 'Unreferenced'
        +            ),
        +        39 => array (
        +            'AccessControlContext', 'AccessControlException', 'AccessController', 'AlgorithmParameterGenerator', 'AlgorithmParameterGeneratorSpi', 'AlgorithmParameters', 'AlgorithmParametersSpi', 'AllPermission', 'AuthProvider', 'BasicPermission', 'CodeSigner', 'CodeSource', 'DigestException', 'DigestInputStream', 'DigestOutputStream', 'DomainCombiner', 'GeneralSecurityException', 'Guard', 'GuardedObject', 'Identity', 'IdentityScope', 'InvalidAlgorithmParameterException', 'InvalidParameterException', 'Key', 'KeyException', 'KeyFactory', 'KeyFactorySpi', 'KeyManagementException', 'KeyPair', 'KeyPairGenerator', 'KeyPairGeneratorSpi', 'KeyRep', 'KeyRep.Type', 'KeyStore', 'KeyStore.Builder', 'KeyStore.CallbackHandlerProtection', 'KeyStore.Entry', 'KeyStore.LoadStoreParameter', 'KeyStore.PasswordProtection', 'KeyStore.PrivateKeyEntry', 'KeyStore.ProtectionParameter', 'KeyStore.SecretKeyEntry', 'KeyStore.TrustedCertificateEntry', 'KeyStoreException', 'KeyStoreSpi', 'MessageDigest', 'MessageDigestSpi',
        +            'NoSuchAlgorithmException', 'NoSuchProviderException', 'PermissionCollection', 'Permissions', 'PrivateKey', 'PrivilegedAction', 'PrivilegedActionException', 'PrivilegedExceptionAction', 'ProtectionDomain', 'Provider', 'Provider.Service', 'ProviderException', 'PublicKey', 'SecureClassLoader', 'SecureRandom', 'SecureRandomSpi', 'Security', 'SecurityPermission', 'Signature', 'SignatureException', 'SignatureSpi', 'SignedObject', 'Signer', 'UnrecoverableEntryException', 'UnrecoverableKeyException', 'UnresolvedPermission'
        +            ),
        +        40 => array (
        +            'Acl', 'AclEntry', 'AclNotFoundException', 'Group', 'LastOwnerException', 'NotOwnerException', 'Owner'
        +            ),
        +        41 => array (
        +            'CRL', 'CRLException', 'CRLSelector', 'CertPath', 'CertPath.CertPathRep', 'CertPathBuilder', 'CertPathBuilderException', 'CertPathBuilderResult', 'CertPathBuilderSpi', 'CertPathParameters', 'CertPathValidator', 'CertPathValidatorException', 'CertPathValidatorResult', 'CertPathValidatorSpi', 'CertSelector', 'CertStore', 'CertStoreException', 'CertStoreParameters', 'CertStoreSpi', 'Certificate.CertificateRep', 'CertificateFactory', 'CertificateFactorySpi', 'CollectionCertStoreParameters', 'LDAPCertStoreParameters', 'PKIXBuilderParameters', 'PKIXCertPathBuilderResult', 'PKIXCertPathChecker', 'PKIXCertPathValidatorResult', 'PKIXParameters', 'PolicyNode', 'PolicyQualifierInfo', 'TrustAnchor', 'X509CRL', 'X509CRLEntry', 'X509CRLSelector', 'X509CertSelector', 'X509Extension'
        +            ),
        +        42 => array (
        +            'DSAKey', 'DSAKeyPairGenerator', 'DSAParams', 'DSAPrivateKey', 'DSAPublicKey', 'ECKey', 'ECPrivateKey', 'ECPublicKey', 'RSAKey', 'RSAMultiPrimePrivateCrtKey', 'RSAPrivateCrtKey', 'RSAPrivateKey', 'RSAPublicKey'
        +            ),
        +        43 => array (
        +            'AlgorithmParameterSpec', 'DSAParameterSpec', 'DSAPrivateKeySpec', 'DSAPublicKeySpec', 'ECField', 'ECFieldF2m', 'ECFieldFp', 'ECGenParameterSpec', 'ECParameterSpec', 'ECPoint', 'ECPrivateKeySpec', 'ECPublicKeySpec', 'EllipticCurve', 'EncodedKeySpec', 'InvalidKeySpecException', 'InvalidParameterSpecException', 'KeySpec', 'MGF1ParameterSpec', 'PKCS8EncodedKeySpec', 'PSSParameterSpec', 'RSAKeyGenParameterSpec', 'RSAMultiPrimePrivateCrtKeySpec', 'RSAOtherPrimeInfo', 'RSAPrivateCrtKeySpec', 'RSAPrivateKeySpec', 'RSAPublicKeySpec', 'X509EncodedKeySpec'
        +            ),
        +        44 => array (
        +            'BatchUpdateException', 'Blob', 'CallableStatement', 'Clob', 'Connection', 'DataTruncation', 'DatabaseMetaData', 'Driver', 'DriverManager', 'DriverPropertyInfo', 'ParameterMetaData', 'PreparedStatement', 'Ref', 'ResultSet', 'ResultSetMetaData', 'SQLData', 'SQLException', 'SQLInput', 'SQLOutput', 'SQLPermission', 'SQLWarning', 'Savepoint', 'Struct', 'Time', 'Types'
        +            ),
        +        45 => array (
        +            'AttributedCharacterIterator', 'AttributedCharacterIterator.Attribute', 'AttributedString', 'Bidi', 'BreakIterator', 'CharacterIterator', 'ChoiceFormat', 'CollationElementIterator', 'CollationKey', 'Collator', 'DateFormat', 'DateFormat.Field', 'DateFormatSymbols', 'DecimalFormat', 'DecimalFormatSymbols', 'FieldPosition', 'Format', 'Format.Field', 'MessageFormat', 'MessageFormat.Field', 'NumberFormat', 'NumberFormat.Field', 'ParseException', 'ParsePosition', 'RuleBasedCollator', 'SimpleDateFormat', 'StringCharacterIterator'
        +            ),
        +        46 => array (
        +            'AbstractCollection', 'AbstractList', 'AbstractMap', 'AbstractQueue', 'AbstractSequentialList', 'AbstractSet', 'ArrayList', 'Arrays', 'BitSet', 'Calendar', 'Collection', 'Collections', 'Comparator', 'ConcurrentModificationException', 'Currency', 'Dictionary', 'DuplicateFormatFlagsException', 'EmptyStackException', 'EnumMap', 'EnumSet', 'Enumeration', 'EventListenerProxy', 'EventObject', 'FormatFlagsConversionMismatchException', 'Formattable', 'FormattableFlags', 'Formatter.BigDecimalLayoutForm', 'FormatterClosedException', 'GregorianCalendar', 'HashMap', 'HashSet', 'Hashtable', 'IdentityHashMap', 'IllegalFormatCodePointException', 'IllegalFormatConversionException', 'IllegalFormatException', 'IllegalFormatFlagsException', 'IllegalFormatPrecisionException', 'IllegalFormatWidthException', 'InputMismatchException', 'InvalidPropertiesFormatException', 'Iterator', 'LinkedHashMap', 'LinkedHashSet', 'LinkedList', 'ListIterator', 'ListResourceBundle', 'Locale', 'Map', 'Map.Entry', 'MissingFormatArgumentException',
        +            'MissingFormatWidthException', 'MissingResourceException', 'NoSuchElementException', 'Observable', 'Observer', 'PriorityQueue', 'Properties', 'PropertyPermission', 'PropertyResourceBundle', 'Queue', 'Random', 'RandomAccess', 'ResourceBundle', 'Scanner', 'Set', 'SimpleTimeZone', 'SortedMap', 'SortedSet', 'Stack', 'StringTokenizer', 'TimeZone', 'TimerTask', 'TooManyListenersException', 'TreeMap', 'TreeSet', 'UUID', 'UnknownFormatConversionException', 'UnknownFormatFlagsException', 'Vector', 'WeakHashMap'
        +            ),
        +        47 => array (
        +            'AbstractExecutorService', 'ArrayBlockingQueue', 'BlockingQueue', 'BrokenBarrierException', 'Callable', 'CancellationException', 'CompletionService', 'ConcurrentHashMap', 'ConcurrentLinkedQueue', 'ConcurrentMap', 'CopyOnWriteArrayList', 'CopyOnWriteArraySet', 'CountDownLatch', 'CyclicBarrier', 'DelayQueue', 'Delayed', 'Exchanger', 'ExecutionException', 'Executor', 'ExecutorCompletionService', 'ExecutorService', 'Executors', 'Future', 'FutureTask', 'LinkedBlockingQueue', 'PriorityBlockingQueue', 'RejectedExecutionException', 'RejectedExecutionHandler', 'ScheduledExecutorService', 'ScheduledFuture', 'ScheduledThreadPoolExecutor', 'Semaphore', 'SynchronousQueue', 'ThreadFactory', 'ThreadPoolExecutor', 'ThreadPoolExecutor.AbortPolicy', 'ThreadPoolExecutor.CallerRunsPolicy', 'ThreadPoolExecutor.DiscardOldestPolicy', 'ThreadPoolExecutor.DiscardPolicy', 'TimeUnit', 'TimeoutException'
        +            ),
        +        48 => array (
        +            'AtomicBoolean', 'AtomicInteger', 'AtomicIntegerArray', 'AtomicIntegerFieldUpdater', 'AtomicLong', 'AtomicLongArray', 'AtomicLongFieldUpdater', 'AtomicMarkableReference', 'AtomicReference', 'AtomicReferenceArray', 'AtomicReferenceFieldUpdater', 'AtomicStampedReference'
        +            ),
        +        49 => array (
        +            'AbstractQueuedSynchronizer', 'Condition', 'Lock', 'LockSupport', 'ReadWriteLock', 'ReentrantLock', 'ReentrantReadWriteLock', 'ReentrantReadWriteLock.ReadLock', 'ReentrantReadWriteLock.WriteLock'
        +            ),
        +        50 => array (
        +            'Attributes.Name', 'JarEntry', 'JarException', 'JarFile', 'JarInputStream', 'JarOutputStream', 'Manifest', 'Pack200', 'Pack200.Packer', 'Pack200.Unpacker'
        +            ),
        +        51 => array (
        +            'ConsoleHandler', 'ErrorManager', 'FileHandler', 'Filter', 'Handler', 'Level', 'LogManager', 'LogRecord', 'Logger', 'LoggingMXBean', 'LoggingPermission', 'MemoryHandler', 'SimpleFormatter', 'SocketHandler', 'StreamHandler', 'XMLFormatter'
        +            ),
        +        52 => array (
        +            'AbstractPreferences', 'BackingStoreException', 'InvalidPreferencesFormatException', 'NodeChangeEvent', 'NodeChangeListener', 'PreferenceChangeEvent', 'PreferenceChangeListener', 'Preferences', 'PreferencesFactory'
        +            ),
        +        53 => array (
        +            'MatchResult', 'Matcher', 'Pattern', 'PatternSyntaxException'
        +            ),
        +        54 => array (
        +            'Adler32', 'CRC32', 'CheckedInputStream', 'CheckedOutputStream', 'Checksum', 'DataFormatException', 'Deflater', 'DeflaterOutputStream', 'GZIPInputStream', 'GZIPOutputStream', 'Inflater', 'InflaterInputStream', 'ZipEntry', 'ZipException', 'ZipFile', 'ZipInputStream', 'ZipOutputStream'
        +            ),
        +        55 => array (
        +            'Accessible', 'AccessibleAction', 'AccessibleAttributeSequence', 'AccessibleBundle', 'AccessibleComponent', 'AccessibleContext', 'AccessibleEditableText', 'AccessibleExtendedComponent', 'AccessibleExtendedTable', 'AccessibleExtendedText', 'AccessibleHyperlink', 'AccessibleHypertext', 'AccessibleIcon', 'AccessibleKeyBinding', 'AccessibleRelation', 'AccessibleRelationSet', 'AccessibleResourceBundle', 'AccessibleRole', 'AccessibleSelection', 'AccessibleState', 'AccessibleStateSet', 'AccessibleStreamable', 'AccessibleTable', 'AccessibleTableModelChange', 'AccessibleText', 'AccessibleTextSequence', 'AccessibleValue'
        +            ),
        +        56 => array (
        +            'ActivityCompletedException', 'ActivityRequiredException', 'InvalidActivityException'
        +            ),
        +        57 => array (
        +            'BadPaddingException', 'Cipher', 'CipherInputStream', 'CipherOutputStream', 'CipherSpi', 'EncryptedPrivateKeyInfo', 'ExemptionMechanism', 'ExemptionMechanismException', 'ExemptionMechanismSpi', 'IllegalBlockSizeException', 'KeyAgreement', 'KeyAgreementSpi', 'KeyGenerator', 'KeyGeneratorSpi', 'Mac', 'MacSpi', 'NoSuchPaddingException', 'NullCipher', 'SealedObject', 'SecretKey', 'SecretKeyFactory', 'SecretKeyFactorySpi', 'ShortBufferException'
        +            ),
        +        58 => array (
        +            'DHKey', 'DHPrivateKey', 'DHPublicKey', 'PBEKey'
        +            ),
        +        59 => array (
        +            'DESKeySpec', 'DESedeKeySpec', 'DHGenParameterSpec', 'DHParameterSpec', 'DHPrivateKeySpec', 'DHPublicKeySpec', 'IvParameterSpec', 'OAEPParameterSpec', 'PBEKeySpec', 'PBEParameterSpec', 'PSource', 'PSource.PSpecified', 'RC2ParameterSpec', 'RC5ParameterSpec', 'SecretKeySpec'
        +            ),
        +        60 => array (
        +            'IIOException', 'IIOImage', 'IIOParam', 'IIOParamController', 'ImageIO', 'ImageReadParam', 'ImageReader', 'ImageTranscoder', 'ImageTypeSpecifier', 'ImageWriteParam', 'ImageWriter'
        +            ),
        +        61 => array (
        +            'IIOReadProgressListener', 'IIOReadUpdateListener', 'IIOReadWarningListener', 'IIOWriteProgressListener', 'IIOWriteWarningListener'
        +            ),
        +        62 => array (
        +            'IIOInvalidTreeException', 'IIOMetadata', 'IIOMetadataController', 'IIOMetadataFormat', 'IIOMetadataFormatImpl', 'IIOMetadataNode'
        +            ),
        +        63 => array (
        +            'BMPImageWriteParam'
        +            ),
        +        64 => array (
        +            'JPEGHuffmanTable', 'JPEGImageReadParam', 'JPEGImageWriteParam', 'JPEGQTable'
        +            ),
        +        65 => array (
        +            'IIORegistry', 'IIOServiceProvider', 'ImageInputStreamSpi', 'ImageOutputStreamSpi', 'ImageReaderSpi', 'ImageReaderWriterSpi', 'ImageTranscoderSpi', 'ImageWriterSpi', 'RegisterableService', 'ServiceRegistry', 'ServiceRegistry.Filter'
        +            ),
        +        66 => array (
        +            'FileCacheImageInputStream', 'FileCacheImageOutputStream', 'FileImageInputStream', 'FileImageOutputStream', 'IIOByteBuffer', 'ImageInputStream', 'ImageInputStreamImpl', 'ImageOutputStream', 'ImageOutputStreamImpl', 'MemoryCacheImageInputStream', 'MemoryCacheImageOutputStream'
        +            ),
        +        67 => array (
        +            'AttributeChangeNotification', 'AttributeChangeNotificationFilter', 'AttributeNotFoundException', 'AttributeValueExp', 'BadAttributeValueExpException', 'BadBinaryOpValueExpException', 'BadStringOperationException', 'Descriptor', 'DescriptorAccess', 'DynamicMBean', 'InstanceAlreadyExistsException', 'InstanceNotFoundException', 'InvalidApplicationException', 'JMException', 'JMRuntimeException', 'ListenerNotFoundException', 'MBeanAttributeInfo', 'MBeanConstructorInfo', 'MBeanException', 'MBeanFeatureInfo', 'MBeanInfo', 'MBeanNotificationInfo', 'MBeanOperationInfo', 'MBeanParameterInfo', 'MBeanPermission', 'MBeanRegistration', 'MBeanRegistrationException', 'MBeanServer', 'MBeanServerBuilder', 'MBeanServerConnection', 'MBeanServerDelegate', 'MBeanServerDelegateMBean', 'MBeanServerFactory', 'MBeanServerInvocationHandler', 'MBeanServerNotification', 'MBeanServerPermission', 'MBeanTrustPermission', 'MalformedObjectNameException', 'NotCompliantMBeanException', 'Notification', 'NotificationBroadcaster',
        +            'NotificationBroadcasterSupport', 'NotificationEmitter', 'NotificationFilter', 'NotificationFilterSupport', 'NotificationListener', 'ObjectInstance', 'ObjectName', 'OperationsException', 'PersistentMBean', 'Query', 'QueryEval', 'QueryExp', 'ReflectionException', 'RuntimeErrorException', 'RuntimeMBeanException', 'RuntimeOperationsException', 'ServiceNotFoundException', 'StandardMBean', 'StringValueExp', 'ValueExp'
        +            ),
        +        68 => array (
        +            'ClassLoaderRepository', 'MLet', 'MLetMBean', 'PrivateClassLoader', 'PrivateMLet'
        +            ),
        +        69 => array (
        +            'DescriptorSupport', 'InvalidTargetObjectTypeException', 'ModelMBean', 'ModelMBeanAttributeInfo', 'ModelMBeanConstructorInfo', 'ModelMBeanInfo', 'ModelMBeanInfoSupport', 'ModelMBeanNotificationBroadcaster', 'ModelMBeanNotificationInfo', 'ModelMBeanOperationInfo', 'RequiredModelMBean', 'XMLParseException'
        +            ),
        +        70 => array (
        +            'CounterMonitor', 'CounterMonitorMBean', 'GaugeMonitor', 'GaugeMonitorMBean', 'Monitor', 'MonitorMBean', 'MonitorNotification', 'MonitorSettingException', 'StringMonitor', 'StringMonitorMBean'
        +            ),
        +        71 => array (
        +            'ArrayType', 'CompositeData', 'CompositeDataSupport', 'CompositeType', 'InvalidOpenTypeException', 'KeyAlreadyExistsException', 'OpenDataException', 'OpenMBeanAttributeInfo', 'OpenMBeanAttributeInfoSupport', 'OpenMBeanConstructorInfo', 'OpenMBeanConstructorInfoSupport', 'OpenMBeanInfo', 'OpenMBeanInfoSupport', 'OpenMBeanOperationInfo', 'OpenMBeanOperationInfoSupport', 'OpenMBeanParameterInfo', 'OpenMBeanParameterInfoSupport', 'SimpleType', 'TabularData', 'TabularDataSupport', 'TabularType'
        +            ),
        +        72 => array (
        +            'InvalidRelationIdException', 'InvalidRelationServiceException', 'InvalidRelationTypeException', 'InvalidRoleInfoException', 'InvalidRoleValueException', 'MBeanServerNotificationFilter', 'Relation', 'RelationException', 'RelationNotFoundException', 'RelationNotification', 'RelationService', 'RelationServiceMBean', 'RelationServiceNotRegisteredException', 'RelationSupport', 'RelationSupportMBean', 'RelationType', 'RelationTypeNotFoundException', 'RelationTypeSupport', 'Role', 'RoleInfo', 'RoleInfoNotFoundException', 'RoleList', 'RoleNotFoundException', 'RoleResult', 'RoleStatus', 'RoleUnresolved', 'RoleUnresolvedList'
        +            ),
        +        73 => array (
        +            'JMXAuthenticator', 'JMXConnectionNotification', 'JMXConnector', 'JMXConnectorFactory', 'JMXConnectorProvider', 'JMXConnectorServer', 'JMXConnectorServerFactory', 'JMXConnectorServerMBean', 'JMXConnectorServerProvider', 'JMXPrincipal', 'JMXProviderException', 'JMXServerErrorException', 'JMXServiceURL', 'MBeanServerForwarder', 'NotificationResult', 'SubjectDelegationPermission', 'TargetedNotification'
        +            ),
        +        74 => array (
        +            'RMIConnection', 'RMIConnectionImpl', 'RMIConnectionImpl_Stub', 'RMIConnector', 'RMIConnectorServer', 'RMIIIOPServerImpl', 'RMIJRMPServerImpl', 'RMIServer', 'RMIServerImpl', 'RMIServerImpl_Stub'
        +            ),
        +        75 => array (
        +            'TimerAlarmClockNotification', 'TimerMBean', 'TimerNotification'
        +            ),
        +        76 => array (
        +            'AuthenticationNotSupportedException', 'BinaryRefAddr', 'CannotProceedException', 'CommunicationException', 'CompositeName', 'CompoundName', 'ConfigurationException', 'ContextNotEmptyException', 'InitialContext', 'InsufficientResourcesException', 'InterruptedNamingException', 'InvalidNameException', 'LimitExceededException', 'LinkException', 'LinkLoopException', 'LinkRef', 'MalformedLinkException', 'Name', 'NameAlreadyBoundException', 'NameClassPair', 'NameNotFoundException', 'NameParser', 'NamingEnumeration', 'NamingException', 'NamingSecurityException', 'NoInitialContextException', 'NoPermissionException', 'NotContextException', 'OperationNotSupportedException', 'PartialResultException', 'RefAddr', 'Referenceable', 'ReferralException', 'ServiceUnavailableException', 'SizeLimitExceededException', 'StringRefAddr', 'TimeLimitExceededException'
        +            ),
        +        77 => array (
        +            'AttributeInUseException', 'AttributeModificationException', 'BasicAttribute', 'BasicAttributes', 'DirContext', 'InitialDirContext', 'InvalidAttributeIdentifierException', 'InvalidAttributesException', 'InvalidSearchControlsException', 'InvalidSearchFilterException', 'ModificationItem', 'NoSuchAttributeException', 'SchemaViolationException', 'SearchControls', 'SearchResult'
        +            ),
        +        78 => array (
        +            'EventContext', 'EventDirContext', 'NamespaceChangeListener', 'NamingEvent', 'NamingExceptionEvent', 'NamingListener', 'ObjectChangeListener'
        +            ),
        +        79 => array (
        +            'BasicControl', 'ControlFactory', 'ExtendedRequest', 'ExtendedResponse', 'HasControls', 'InitialLdapContext', 'LdapContext', 'LdapName', 'LdapReferralException', 'ManageReferralControl', 'PagedResultsControl', 'PagedResultsResponseControl', 'Rdn', 'SortControl', 'SortKey', 'SortResponseControl', 'StartTlsRequest', 'StartTlsResponse', 'UnsolicitedNotification', 'UnsolicitedNotificationEvent', 'UnsolicitedNotificationListener'
        +            ),
        +        80 => array (
        +            'DirObjectFactory', 'DirStateFactory', 'DirStateFactory.Result', 'DirectoryManager', 'InitialContextFactory', 'InitialContextFactoryBuilder', 'NamingManager', 'ObjectFactory', 'ObjectFactoryBuilder', 'ResolveResult', 'Resolver', 'StateFactory'
        +            ),
        +        81 => array (
        +            'ServerSocketFactory', 'SocketFactory'
        +            ),
        +        82 => array (
        +            'CertPathTrustManagerParameters', 'HandshakeCompletedEvent', 'HandshakeCompletedListener', 'HostnameVerifier', 'HttpsURLConnection', 'KeyManager', 'KeyManagerFactory', 'KeyManagerFactorySpi', 'KeyStoreBuilderParameters', 'ManagerFactoryParameters', 'SSLContext', 'SSLContextSpi', 'SSLEngine', 'SSLEngineResult', 'SSLEngineResult.HandshakeStatus', 'SSLEngineResult.Status', 'SSLException', 'SSLHandshakeException', 'SSLKeyException', 'SSLPeerUnverifiedException', 'SSLPermission', 'SSLProtocolException', 'SSLServerSocket', 'SSLServerSocketFactory', 'SSLSession', 'SSLSessionBindingEvent', 'SSLSessionBindingListener', 'SSLSessionContext', 'SSLSocket', 'SSLSocketFactory', 'TrustManager', 'TrustManagerFactory', 'TrustManagerFactorySpi', 'X509ExtendedKeyManager', 'X509KeyManager', 'X509TrustManager'
        +            ),
        +        83 => array (
        +            'AttributeException', 'CancelablePrintJob', 'Doc', 'DocFlavor', 'DocFlavor.BYTE_ARRAY', 'DocFlavor.CHAR_ARRAY', 'DocFlavor.INPUT_STREAM', 'DocFlavor.READER', 'DocFlavor.SERVICE_FORMATTED', 'DocFlavor.STRING', 'DocFlavor.URL', 'DocPrintJob', 'FlavorException', 'MultiDoc', 'MultiDocPrintJob', 'MultiDocPrintService', 'PrintException', 'PrintService', 'PrintServiceLookup', 'ServiceUI', 'ServiceUIFactory', 'SimpleDoc', 'StreamPrintService', 'StreamPrintServiceFactory', 'URIException'
        +            ),
        +        84 => array (
        +            'AttributeSetUtilities', 'DateTimeSyntax', 'DocAttribute', 'DocAttributeSet', 'EnumSyntax', 'HashAttributeSet', 'HashDocAttributeSet', 'HashPrintJobAttributeSet', 'HashPrintRequestAttributeSet', 'HashPrintServiceAttributeSet', 'IntegerSyntax', 'PrintJobAttribute', 'PrintJobAttributeSet', 'PrintRequestAttribute', 'PrintRequestAttributeSet', 'PrintServiceAttribute', 'PrintServiceAttributeSet', 'ResolutionSyntax', 'SetOfIntegerSyntax', 'Size2DSyntax', 'SupportedValuesAttribute', 'TextSyntax', 'URISyntax', 'UnmodifiableSetException'
        +            ),
        +        85 => array (
        +            'Chromaticity', 'ColorSupported', 'Compression', 'Copies', 'CopiesSupported', 'DateTimeAtCompleted', 'DateTimeAtCreation', 'DateTimeAtProcessing', 'Destination', 'DocumentName', 'Fidelity', 'Finishings', 'JobHoldUntil', 'JobImpressions', 'JobImpressionsCompleted', 'JobImpressionsSupported', 'JobKOctets', 'JobKOctetsProcessed', 'JobKOctetsSupported', 'JobMediaSheets', 'JobMediaSheetsCompleted', 'JobMediaSheetsSupported', 'JobMessageFromOperator', 'JobName', 'JobOriginatingUserName', 'JobPriority', 'JobPrioritySupported', 'JobSheets', 'JobState', 'JobStateReason', 'JobStateReasons', 'Media', 'MediaName', 'MediaPrintableArea', 'MediaSize', 'MediaSize.Engineering', 'MediaSize.ISO', 'MediaSize.JIS', 'MediaSize.NA', 'MediaSize.Other', 'MediaSizeName', 'MediaTray', 'MultipleDocumentHandling', 'NumberOfDocuments', 'NumberOfInterveningJobs', 'NumberUp', 'NumberUpSupported', 'OrientationRequested', 'OutputDeviceAssigned', 'PDLOverrideSupported', 'PageRanges', 'PagesPerMinute', 'PagesPerMinuteColor',
        +            'PresentationDirection', 'PrintQuality', 'PrinterInfo', 'PrinterIsAcceptingJobs', 'PrinterLocation', 'PrinterMakeAndModel', 'PrinterMessageFromOperator', 'PrinterMoreInfo', 'PrinterMoreInfoManufacturer', 'PrinterName', 'PrinterResolution', 'PrinterState', 'PrinterStateReason', 'PrinterStateReasons', 'PrinterURI', 'QueuedJobCount', 'ReferenceUriSchemesSupported', 'RequestingUserName', 'Severity', 'SheetCollate', 'Sides'
        +            ),
        +        86 => array (
        +            'PrintEvent', 'PrintJobAdapter', 'PrintJobAttributeEvent', 'PrintJobAttributeListener', 'PrintJobEvent', 'PrintJobListener', 'PrintServiceAttributeEvent', 'PrintServiceAttributeListener'
        +            ),
        +        87 => array (
        +            'PortableRemoteObject'
        +            ),
        +        88 => array (
        +            'ClassDesc', 'PortableRemoteObjectDelegate', 'Stub', 'StubDelegate', 'Tie', 'Util', 'UtilDelegate', 'ValueHandler', 'ValueHandlerMultiFormat'
        +            ),
        +        89 => array (
        +            'SslRMIClientSocketFactory', 'SslRMIServerSocketFactory'
        +            ),
        +        90 => array (
        +            'AuthPermission', 'DestroyFailedException', 'Destroyable', 'PrivateCredentialPermission', 'RefreshFailedException', 'Refreshable', 'Subject', 'SubjectDomainCombiner'
        +            ),
        +        91 => array (
        +            'Callback', 'CallbackHandler', 'ChoiceCallback', 'ConfirmationCallback', 'LanguageCallback', 'NameCallback', 'PasswordCallback', 'TextInputCallback', 'TextOutputCallback', 'UnsupportedCallbackException'
        +            ),
        +        92 => array (
        +            'DelegationPermission', 'KerberosKey', 'KerberosPrincipal', 'KerberosTicket', 'ServicePermission'
        +            ),
        +        93 => array (
        +            'AccountException', 'AccountExpiredException', 'AccountLockedException', 'AccountNotFoundException', 'AppConfigurationEntry', 'AppConfigurationEntry.LoginModuleControlFlag', 'Configuration', 'CredentialException', 'CredentialExpiredException', 'CredentialNotFoundException', 'FailedLoginException', 'LoginContext', 'LoginException'
        +            ),
        +        94 => array (
        +            'LoginModule'
        +            ),
        +        95 => array (
        +            'X500Principal', 'X500PrivateCredential'
        +            ),
        +        96 => array (
        +            'AuthorizeCallback', 'RealmCallback', 'RealmChoiceCallback', 'Sasl', 'SaslClient', 'SaslClientFactory', 'SaslException', 'SaslServer', 'SaslServerFactory'
        +            ),
        +        97 => array (
        +            'ControllerEventListener', 'Instrument', 'InvalidMidiDataException', 'MetaEventListener', 'MetaMessage', 'MidiChannel', 'MidiDevice', 'MidiDevice.Info', 'MidiEvent', 'MidiFileFormat', 'MidiMessage', 'MidiSystem', 'MidiUnavailableException', 'Patch', 'Receiver', 'Sequence', 'Sequencer', 'Sequencer.SyncMode', 'ShortMessage', 'Soundbank', 'SoundbankResource', 'Synthesizer', 'SysexMessage', 'Track', 'Transmitter', 'VoiceStatus'
        +            ),
        +        98 => array (
        +            'MidiDeviceProvider', 'MidiFileReader', 'MidiFileWriter', 'SoundbankReader'
        +            ),
        +        99 => array (
        +            'AudioFileFormat', 'AudioFileFormat.Type', 'AudioFormat', 'AudioFormat.Encoding', 'AudioInputStream', 'AudioPermission', 'AudioSystem', 'BooleanControl', 'BooleanControl.Type', 'Clip', 'CompoundControl', 'CompoundControl.Type', 'Control.Type', 'DataLine', 'DataLine.Info', 'EnumControl', 'EnumControl.Type', 'FloatControl', 'FloatControl.Type', 'Line', 'Line.Info', 'LineEvent', 'LineEvent.Type', 'LineListener', 'LineUnavailableException', 'Mixer', 'Mixer.Info', 'Port', 'Port.Info', 'ReverbType', 'SourceDataLine', 'TargetDataLine', 'UnsupportedAudioFileException'
        +            ),
        +        100 => array (
        +            'AudioFileReader', 'AudioFileWriter', 'FormatConversionProvider', 'MixerProvider'
        +            ),
        +        101 => array (
        +            'ConnectionEvent', 'ConnectionEventListener', 'ConnectionPoolDataSource', 'DataSource', 'PooledConnection', 'RowSet', 'RowSetEvent', 'RowSetInternal', 'RowSetListener', 'RowSetMetaData', 'RowSetReader', 'RowSetWriter', 'XAConnection', 'XADataSource'
        +            ),
        +        102 => array (
        +            'BaseRowSet', 'CachedRowSet', 'FilteredRowSet', 'JdbcRowSet', 'JoinRowSet', 'Joinable', 'Predicate', 'RowSetMetaDataImpl', 'RowSetWarning', 'WebRowSet'
        +            ),
        +        103 => array (
        +            'SQLInputImpl', 'SQLOutputImpl', 'SerialArray', 'SerialBlob', 'SerialClob', 'SerialDatalink', 'SerialException', 'SerialJavaObject', 'SerialRef', 'SerialStruct'
        +            ),
        +        104 => array (
        +            'SyncFactory', 'SyncFactoryException', 'SyncProvider', 'SyncProviderException', 'SyncResolver', 'TransactionalWriter', 'XmlReader', 'XmlWriter'
        +            ),
        +        105 => array (
        +            'AbstractAction', 'AbstractButton', 'AbstractCellEditor', 'AbstractListModel', 'AbstractSpinnerModel', 'Action', 'ActionMap', 'BorderFactory', 'BoundedRangeModel', 'Box', 'Box.Filler', 'BoxLayout', 'ButtonGroup', 'ButtonModel', 'CellEditor', 'CellRendererPane', 'ComboBoxEditor', 'ComboBoxModel', 'ComponentInputMap', 'DebugGraphics', 'DefaultBoundedRangeModel', 'DefaultButtonModel', 'DefaultCellEditor', 'DefaultComboBoxModel', 'DefaultDesktopManager', 'DefaultFocusManager', 'DefaultListCellRenderer', 'DefaultListCellRenderer.UIResource', 'DefaultListModel', 'DefaultListSelectionModel', 'DefaultSingleSelectionModel', 'DesktopManager', 'FocusManager', 'GrayFilter', 'Icon', 'ImageIcon', 'InputMap', 'InputVerifier', 'InternalFrameFocusTraversalPolicy', 'JApplet', 'JButton', 'JCheckBox', 'JCheckBoxMenuItem', 'JColorChooser', 'JComboBox', 'JComboBox.KeySelectionManager', 'JComponent', 'JDesktopPane', 'JDialog', 'JEditorPane', 'JFileChooser', 'JFormattedTextField', 'JFormattedTextField.AbstractFormatter',
        +            'JFormattedTextField.AbstractFormatterFactory', 'JFrame', 'JInternalFrame', 'JInternalFrame.JDesktopIcon', 'JLabel', 'JLayeredPane', 'JList', 'JMenu', 'JMenuBar', 'JMenuItem', 'JOptionPane', 'JPanel', 'JPasswordField', 'JPopupMenu', 'JPopupMenu.Separator', 'JProgressBar', 'JRadioButton', 'JRadioButtonMenuItem', 'JRootPane', 'JScrollBar', 'JScrollPane', 'JSeparator', 'JSlider', 'JSpinner', 'JSpinner.DateEditor', 'JSpinner.DefaultEditor', 'JSpinner.ListEditor', 'JSpinner.NumberEditor', 'JSplitPane', 'JTabbedPane', 'JTable', 'JTable.PrintMode', 'JTextArea', 'JTextField', 'JTextPane', 'JToggleButton', 'JToggleButton.ToggleButtonModel', 'JToolBar', 'JToolBar.Separator', 'JToolTip', 'JTree', 'JTree.DynamicUtilTreeNode', 'JTree.EmptySelectionModel', 'JViewport', 'JWindow', 'KeyStroke', 'LayoutFocusTraversalPolicy', 'ListCellRenderer', 'ListModel', 'ListSelectionModel', 'LookAndFeel', 'MenuElement', 'MenuSelectionManager', 'MutableComboBoxModel', 'OverlayLayout', 'Popup', 'PopupFactory', 'ProgressMonitor',
        +            'ProgressMonitorInputStream', 'Renderer', 'RepaintManager', 'RootPaneContainer', 'ScrollPaneConstants', 'ScrollPaneLayout', 'ScrollPaneLayout.UIResource', 'Scrollable', 'SingleSelectionModel', 'SizeRequirements', 'SizeSequence', 'SortingFocusTraversalPolicy', 'SpinnerDateModel', 'SpinnerListModel', 'SpinnerModel', 'SpinnerNumberModel', 'Spring', 'SpringLayout', 'SpringLayout.Constraints', 'SwingConstants', 'SwingUtilities', 'ToolTipManager', 'TransferHandler', 'UIDefaults', 'UIDefaults.ActiveValue', 'UIDefaults.LazyInputMap', 'UIDefaults.LazyValue', 'UIDefaults.ProxyLazyValue', 'UIManager', 'UIManager.LookAndFeelInfo', 'UnsupportedLookAndFeelException', 'ViewportLayout', 'WindowConstants'
        +            ),
        +        106 => array (
        +            'AbstractBorder', 'BevelBorder', 'Border', 'CompoundBorder', 'EmptyBorder', 'EtchedBorder', 'LineBorder', 'MatteBorder', 'SoftBevelBorder', 'TitledBorder'
        +            ),
        +        107 => array (
        +            'AbstractColorChooserPanel', 'ColorChooserComponentFactory', 'ColorSelectionModel', 'DefaultColorSelectionModel'
        +            ),
        +        108 => array (
        +            'AncestorEvent', 'AncestorListener', 'CaretEvent', 'CaretListener', 'CellEditorListener', 'ChangeEvent', 'ChangeListener', 'DocumentEvent.ElementChange', 'DocumentEvent.EventType', 'DocumentListener', 'EventListenerList', 'HyperlinkEvent', 'HyperlinkEvent.EventType', 'HyperlinkListener', 'InternalFrameAdapter', 'InternalFrameEvent', 'InternalFrameListener', 'ListDataEvent', 'ListDataListener', 'ListSelectionEvent', 'ListSelectionListener', 'MenuDragMouseEvent', 'MenuDragMouseListener', 'MenuEvent', 'MenuKeyEvent', 'MenuKeyListener', 'MenuListener', 'MouseInputAdapter', 'MouseInputListener', 'PopupMenuEvent', 'PopupMenuListener', 'SwingPropertyChangeSupport', 'TableColumnModelEvent', 'TableColumnModelListener', 'TableModelEvent', 'TableModelListener', 'TreeExpansionEvent', 'TreeExpansionListener', 'TreeModelEvent', 'TreeModelListener', 'TreeSelectionEvent', 'TreeSelectionListener', 'TreeWillExpandListener', 'UndoableEditEvent', 'UndoableEditListener'
        +            ),
        +        109 => array (
        +            'FileSystemView', 'FileView'
        +            ),
        +        110 => array (
        +            'ActionMapUIResource', 'BorderUIResource', 'BorderUIResource.BevelBorderUIResource', 'BorderUIResource.CompoundBorderUIResource', 'BorderUIResource.EmptyBorderUIResource', 'BorderUIResource.EtchedBorderUIResource', 'BorderUIResource.LineBorderUIResource', 'BorderUIResource.MatteBorderUIResource', 'BorderUIResource.TitledBorderUIResource', 'ButtonUI', 'ColorChooserUI', 'ColorUIResource', 'ComboBoxUI', 'ComponentInputMapUIResource', 'ComponentUI', 'DesktopIconUI', 'DesktopPaneUI', 'DimensionUIResource', 'FileChooserUI', 'FontUIResource', 'IconUIResource', 'InputMapUIResource', 'InsetsUIResource', 'InternalFrameUI', 'LabelUI', 'ListUI', 'MenuBarUI', 'MenuItemUI', 'OptionPaneUI', 'PanelUI', 'PopupMenuUI', 'ProgressBarUI', 'RootPaneUI', 'ScrollBarUI', 'ScrollPaneUI', 'SeparatorUI', 'SliderUI', 'SpinnerUI', 'SplitPaneUI', 'TabbedPaneUI', 'TableHeaderUI', 'TableUI', 'TextUI', 'ToolBarUI', 'ToolTipUI', 'TreeUI', 'UIResource', 'ViewportUI'
        +            ),
        +        111 => array (
        +            'BasicArrowButton', 'BasicBorders', 'BasicBorders.ButtonBorder', 'BasicBorders.FieldBorder', 'BasicBorders.MarginBorder', 'BasicBorders.MenuBarBorder', 'BasicBorders.RadioButtonBorder', 'BasicBorders.RolloverButtonBorder', 'BasicBorders.SplitPaneBorder', 'BasicBorders.ToggleButtonBorder', 'BasicButtonListener', 'BasicButtonUI', 'BasicCheckBoxMenuItemUI', 'BasicCheckBoxUI', 'BasicColorChooserUI', 'BasicComboBoxEditor', 'BasicComboBoxEditor.UIResource', 'BasicComboBoxRenderer', 'BasicComboBoxRenderer.UIResource', 'BasicComboBoxUI', 'BasicComboPopup', 'BasicDesktopIconUI', 'BasicDesktopPaneUI', 'BasicDirectoryModel', 'BasicEditorPaneUI', 'BasicFileChooserUI', 'BasicFormattedTextFieldUI', 'BasicGraphicsUtils', 'BasicHTML', 'BasicIconFactory', 'BasicInternalFrameTitlePane', 'BasicInternalFrameUI', 'BasicLabelUI', 'BasicListUI', 'BasicLookAndFeel', 'BasicMenuBarUI', 'BasicMenuItemUI', 'BasicMenuUI', 'BasicOptionPaneUI', 'BasicOptionPaneUI.ButtonAreaLayout', 'BasicPanelUI', 'BasicPasswordFieldUI',
        +            'BasicPopupMenuSeparatorUI', 'BasicPopupMenuUI', 'BasicProgressBarUI', 'BasicRadioButtonMenuItemUI', 'BasicRadioButtonUI', 'BasicRootPaneUI', 'BasicScrollBarUI', 'BasicScrollPaneUI', 'BasicSeparatorUI', 'BasicSliderUI', 'BasicSpinnerUI', 'BasicSplitPaneDivider', 'BasicSplitPaneUI', 'BasicTabbedPaneUI', 'BasicTableHeaderUI', 'BasicTableUI', 'BasicTextAreaUI', 'BasicTextFieldUI', 'BasicTextPaneUI', 'BasicTextUI', 'BasicTextUI.BasicCaret', 'BasicTextUI.BasicHighlighter', 'BasicToggleButtonUI', 'BasicToolBarSeparatorUI', 'BasicToolBarUI', 'BasicToolTipUI', 'BasicTreeUI', 'BasicViewportUI', 'ComboPopup', 'DefaultMenuLayout'
        +            ),
        +        112 => array (
        +            'DefaultMetalTheme', 'MetalBorders', 'MetalBorders.ButtonBorder', 'MetalBorders.Flush3DBorder', 'MetalBorders.InternalFrameBorder', 'MetalBorders.MenuBarBorder', 'MetalBorders.MenuItemBorder', 'MetalBorders.OptionDialogBorder', 'MetalBorders.PaletteBorder', 'MetalBorders.PopupMenuBorder', 'MetalBorders.RolloverButtonBorder', 'MetalBorders.ScrollPaneBorder', 'MetalBorders.TableHeaderBorder', 'MetalBorders.TextFieldBorder', 'MetalBorders.ToggleButtonBorder', 'MetalBorders.ToolBarBorder', 'MetalButtonUI', 'MetalCheckBoxIcon', 'MetalCheckBoxUI', 'MetalComboBoxButton', 'MetalComboBoxEditor', 'MetalComboBoxEditor.UIResource', 'MetalComboBoxIcon', 'MetalComboBoxUI', 'MetalDesktopIconUI', 'MetalFileChooserUI', 'MetalIconFactory', 'MetalIconFactory.FileIcon16', 'MetalIconFactory.FolderIcon16', 'MetalIconFactory.PaletteCloseIcon', 'MetalIconFactory.TreeControlIcon', 'MetalIconFactory.TreeFolderIcon', 'MetalIconFactory.TreeLeafIcon', 'MetalInternalFrameTitlePane', 'MetalInternalFrameUI', 'MetalLabelUI',
        +            'MetalLookAndFeel', 'MetalMenuBarUI', 'MetalPopupMenuSeparatorUI', 'MetalProgressBarUI', 'MetalRadioButtonUI', 'MetalRootPaneUI', 'MetalScrollBarUI', 'MetalScrollButton', 'MetalScrollPaneUI', 'MetalSeparatorUI', 'MetalSliderUI', 'MetalSplitPaneUI', 'MetalTabbedPaneUI', 'MetalTextFieldUI', 'MetalTheme', 'MetalToggleButtonUI', 'MetalToolBarUI', 'MetalToolTipUI', 'MetalTreeUI', 'OceanTheme'
        +            ),
        +        113 => array (
        +            'MultiButtonUI', 'MultiColorChooserUI', 'MultiComboBoxUI', 'MultiDesktopIconUI', 'MultiDesktopPaneUI', 'MultiFileChooserUI', 'MultiInternalFrameUI', 'MultiLabelUI', 'MultiListUI', 'MultiLookAndFeel', 'MultiMenuBarUI', 'MultiMenuItemUI', 'MultiOptionPaneUI', 'MultiPanelUI', 'MultiPopupMenuUI', 'MultiProgressBarUI', 'MultiRootPaneUI', 'MultiScrollBarUI', 'MultiScrollPaneUI', 'MultiSeparatorUI', 'MultiSliderUI', 'MultiSpinnerUI', 'MultiSplitPaneUI', 'MultiTabbedPaneUI', 'MultiTableHeaderUI', 'MultiTableUI', 'MultiTextUI', 'MultiToolBarUI', 'MultiToolTipUI', 'MultiTreeUI', 'MultiViewportUI'
        +            ),
        +        114 => array (
        +            'ColorType', 'Region', 'SynthConstants', 'SynthContext', 'SynthGraphicsUtils', 'SynthLookAndFeel', 'SynthPainter', 'SynthStyle', 'SynthStyleFactory'
        +            ),
        +        115 => array (
        +            'AbstractTableModel', 'DefaultTableCellRenderer', 'DefaultTableCellRenderer.UIResource', 'DefaultTableColumnModel', 'DefaultTableModel', 'JTableHeader', 'TableCellEditor', 'TableCellRenderer', 'TableColumn', 'TableColumnModel', 'TableModel'
        +            ),
        +        116 => array (
        +            'AbstractDocument', 'AbstractDocument.AttributeContext', 'AbstractDocument.Content', 'AbstractDocument.ElementEdit', 'AbstractWriter', 'AsyncBoxView', 'AttributeSet.CharacterAttribute', 'AttributeSet.ColorAttribute', 'AttributeSet.FontAttribute', 'AttributeSet.ParagraphAttribute', 'BadLocationException', 'BoxView', 'Caret', 'ChangedCharSetException', 'ComponentView', 'CompositeView', 'DateFormatter', 'DefaultCaret', 'DefaultEditorKit', 'DefaultEditorKit.BeepAction', 'DefaultEditorKit.CopyAction', 'DefaultEditorKit.CutAction', 'DefaultEditorKit.DefaultKeyTypedAction', 'DefaultEditorKit.InsertBreakAction', 'DefaultEditorKit.InsertContentAction', 'DefaultEditorKit.InsertTabAction', 'DefaultEditorKit.PasteAction', 'DefaultFormatter', 'DefaultFormatterFactory', 'DefaultHighlighter', 'DefaultHighlighter.DefaultHighlightPainter', 'DefaultStyledDocument', 'DefaultStyledDocument.AttributeUndoableEdit', 'DefaultStyledDocument.ElementSpec', 'DefaultTextUI', 'DocumentFilter', 'DocumentFilter.FilterBypass',
        +            'EditorKit', 'ElementIterator', 'FieldView', 'FlowView', 'FlowView.FlowStrategy', 'GapContent', 'GlyphView', 'GlyphView.GlyphPainter', 'Highlighter', 'Highlighter.Highlight', 'Highlighter.HighlightPainter', 'IconView', 'InternationalFormatter', 'JTextComponent', 'JTextComponent.KeyBinding', 'Keymap', 'LabelView', 'LayeredHighlighter', 'LayeredHighlighter.LayerPainter', 'LayoutQueue', 'MaskFormatter', 'MutableAttributeSet', 'NavigationFilter', 'NavigationFilter.FilterBypass', 'NumberFormatter', 'PasswordView', 'PlainDocument', 'PlainView', 'Position', 'Position.Bias', 'Segment', 'SimpleAttributeSet', 'StringContent', 'Style', 'StyleConstants', 'StyleConstants.CharacterConstants', 'StyleConstants.ColorConstants', 'StyleConstants.FontConstants', 'StyleConstants.ParagraphConstants', 'StyleContext', 'StyledDocument', 'StyledEditorKit', 'StyledEditorKit.AlignmentAction', 'StyledEditorKit.BoldAction', 'StyledEditorKit.FontFamilyAction', 'StyledEditorKit.FontSizeAction', 'StyledEditorKit.ForegroundAction',
        +            'StyledEditorKit.ItalicAction', 'StyledEditorKit.StyledTextAction', 'StyledEditorKit.UnderlineAction', 'TabExpander', 'TabSet', 'TabStop', 'TabableView', 'TableView', 'TextAction', 'Utilities', 'View', 'ViewFactory', 'WrappedPlainView', 'ZoneView'
        +            ),
        +        117 => array (
        +            'BlockView', 'CSS', 'CSS.Attribute', 'FormSubmitEvent', 'FormSubmitEvent.MethodType', 'FormView', 'HTML', 'HTML.Attribute', 'HTML.Tag', 'HTML.UnknownTag', 'HTMLDocument', 'HTMLDocument.Iterator', 'HTMLEditorKit', 'HTMLEditorKit.HTMLFactory', 'HTMLEditorKit.HTMLTextAction', 'HTMLEditorKit.InsertHTMLTextAction', 'HTMLEditorKit.LinkController', 'HTMLEditorKit.Parser', 'HTMLEditorKit.ParserCallback', 'HTMLFrameHyperlinkEvent', 'HTMLWriter', 'ImageView', 'InlineView', 'ListView', 'MinimalHTMLWriter', 'ObjectView', 'Option', 'StyleSheet', 'StyleSheet.BoxPainter', 'StyleSheet.ListPainter'
        +            ),
        +        118 => array (
        +            'ContentModel', 'DTD', 'DTDConstants', 'DocumentParser', 'ParserDelegator', 'TagElement'
        +            ),
        +        119 => array (
        +            'RTFEditorKit'
        +            ),
        +        120 => array (
        +            'AbstractLayoutCache', 'AbstractLayoutCache.NodeDimensions', 'DefaultMutableTreeNode', 'DefaultTreeCellEditor', 'DefaultTreeCellRenderer', 'DefaultTreeModel', 'DefaultTreeSelectionModel', 'ExpandVetoException', 'FixedHeightLayoutCache', 'MutableTreeNode', 'RowMapper', 'TreeCellEditor', 'TreeCellRenderer', 'TreeModel', 'TreeNode', 'TreePath', 'TreeSelectionModel', 'VariableHeightLayoutCache'
        +            ),
        +        121 => array (
        +            'AbstractUndoableEdit', 'CannotRedoException', 'CannotUndoException', 'CompoundEdit', 'StateEdit', 'StateEditable', 'UndoManager', 'UndoableEdit', 'UndoableEditSupport'
        +            ),
        +        122 => array (
        +            'InvalidTransactionException', 'TransactionRequiredException', 'TransactionRolledbackException'
        +            ),
        +        123 => array (
        +            'XAException', 'XAResource', 'Xid'
        +            ),
        +        124 => array (
        +            'XMLConstants'
        +            ),
        +        125 => array (
        +            'DatatypeConfigurationException', 'DatatypeConstants', 'DatatypeConstants.Field', 'DatatypeFactory', 'Duration', 'XMLGregorianCalendar'
        +            ),
        +        126 => array (
        +            'NamespaceContext', 'QName'
        +            ),
        +        127 => array (
        +            'DocumentBuilder', 'DocumentBuilderFactory', 'FactoryConfigurationError', 'ParserConfigurationException', 'SAXParser', 'SAXParserFactory'
        +            ),
        +        128 => array (
        +            'ErrorListener', 'OutputKeys', 'Result', 'Source', 'SourceLocator', 'Templates', 'Transformer', 'TransformerConfigurationException', 'TransformerException', 'TransformerFactory', 'TransformerFactoryConfigurationError', 'URIResolver'
        +            ),
        +        129 => array (
        +            'DOMResult', 'DOMSource'
        +            ),
        +        130 => array (
        +            'SAXResult', 'SAXSource', 'SAXTransformerFactory', 'TemplatesHandler', 'TransformerHandler'
        +            ),
        +        131 => array (
        +            'StreamResult', 'StreamSource'
        +            ),
        +        132 => array (
        +            'Schema', 'SchemaFactory', 'SchemaFactoryLoader', 'TypeInfoProvider', 'Validator', 'ValidatorHandler'
        +            ),
        +        133 => array (
        +            'XPath', 'XPathConstants', 'XPathException', 'XPathExpression', 'XPathExpressionException', 'XPathFactory', 'XPathFactoryConfigurationException', 'XPathFunction', 'XPathFunctionException', 'XPathFunctionResolver', 'XPathVariableResolver'
        +            ),
        +        134 => array (
        +            'ChannelBinding', 'GSSContext', 'GSSCredential', 'GSSException', 'GSSManager', 'GSSName', 'MessageProp', 'Oid'
        +            ),
        +        135 => array (
        +            'ACTIVITY_COMPLETED', 'ACTIVITY_REQUIRED', 'ARG_IN', 'ARG_INOUT', 'ARG_OUT', 'Any', 'AnyHolder', 'AnySeqHolder', 'BAD_CONTEXT', 'BAD_INV_ORDER', 'BAD_OPERATION', 'BAD_PARAM', 'BAD_POLICY', 'BAD_POLICY_TYPE', 'BAD_POLICY_VALUE', 'BAD_QOS', 'BAD_TYPECODE', 'BooleanHolder', 'BooleanSeqHelper', 'BooleanSeqHolder', 'ByteHolder', 'CODESET_INCOMPATIBLE', 'COMM_FAILURE', 'CTX_RESTRICT_SCOPE', 'CharHolder', 'CharSeqHelper', 'CharSeqHolder', 'CompletionStatus', 'CompletionStatusHelper', 'ContextList', 'CurrentHolder', 'CustomMarshal', 'DATA_CONVERSION', 'DefinitionKind', 'DefinitionKindHelper', 'DomainManager', 'DomainManagerOperations', 'DoubleHolder', 'DoubleSeqHelper', 'DoubleSeqHolder', 'Environment', 'ExceptionList', 'FREE_MEM', 'FixedHolder', 'FloatHolder', 'FloatSeqHelper', 'FloatSeqHolder', 'IDLType', 'IDLTypeHelper', 'IDLTypeOperations', 'IMP_LIMIT', 'INITIALIZE', 'INTERNAL', 'INTF_REPOS', 'INVALID_ACTIVITY', 'INVALID_TRANSACTION', 'INV_FLAG', 'INV_IDENT', 'INV_OBJREF', 'INV_POLICY', 'IRObject',
        +            'IRObjectOperations', 'IdentifierHelper', 'IntHolder', 'LocalObject', 'LongHolder', 'LongLongSeqHelper', 'LongLongSeqHolder', 'LongSeqHelper', 'LongSeqHolder', 'MARSHAL', 'NO_IMPLEMENT', 'NO_MEMORY', 'NO_PERMISSION', 'NO_RESOURCES', 'NO_RESPONSE', 'NVList', 'NamedValue', 'OBJECT_NOT_EXIST', 'OBJ_ADAPTER', 'OMGVMCID', 'ObjectHelper', 'ObjectHolder', 'OctetSeqHelper', 'OctetSeqHolder', 'PERSIST_STORE', 'PRIVATE_MEMBER', 'PUBLIC_MEMBER', 'ParameterMode', 'ParameterModeHelper', 'ParameterModeHolder', 'PolicyError', 'PolicyErrorCodeHelper', 'PolicyErrorHelper', 'PolicyErrorHolder', 'PolicyHelper', 'PolicyHolder', 'PolicyListHelper', 'PolicyListHolder', 'PolicyOperations', 'PolicyTypeHelper', 'PrincipalHolder', 'REBIND', 'RepositoryIdHelper', 'Request', 'ServerRequest', 'ServiceDetail', 'ServiceDetailHelper', 'ServiceInformation', 'ServiceInformationHelper', 'ServiceInformationHolder', 'SetOverrideType', 'SetOverrideTypeHelper', 'ShortHolder', 'ShortSeqHelper', 'ShortSeqHolder', 'StringHolder',
        +            'StringSeqHelper', 'StringSeqHolder', 'StringValueHelper', 'StructMember', 'StructMemberHelper', 'SystemException', 'TCKind', 'TIMEOUT', 'TRANSACTION_MODE', 'TRANSACTION_REQUIRED', 'TRANSACTION_ROLLEDBACK', 'TRANSACTION_UNAVAILABLE', 'TRANSIENT', 'TypeCode', 'TypeCodeHolder', 'ULongLongSeqHelper', 'ULongLongSeqHolder', 'ULongSeqHelper', 'ULongSeqHolder', 'UNSUPPORTED_POLICY', 'UNSUPPORTED_POLICY_VALUE', 'UShortSeqHelper', 'UShortSeqHolder', 'UnionMember', 'UnionMemberHelper', 'UnknownUserException', 'UnknownUserExceptionHelper', 'UnknownUserExceptionHolder', 'UserException', 'VM_ABSTRACT', 'VM_CUSTOM', 'VM_NONE', 'VM_TRUNCATABLE', 'ValueBaseHelper', 'ValueBaseHolder', 'ValueMember', 'ValueMemberHelper', 'VersionSpecHelper', 'VisibilityHelper', 'WCharSeqHelper', 'WCharSeqHolder', 'WStringSeqHelper', 'WStringSeqHolder', 'WStringValueHelper', 'WrongTransaction', 'WrongTransactionHelper', 'WrongTransactionHolder', '_IDLTypeStub', '_PolicyStub'
        +            ),
        +        136 => array (
        +            'Invalid', 'InvalidSeq'
        +            ),
        +        137 => array (
        +            'BadKind'
        +            ),
        +        138 => array (
        +            'ApplicationException', 'BoxedValueHelper', 'CustomValue', 'IDLEntity', 'IndirectionException', 'InvokeHandler', 'RemarshalException', 'ResponseHandler', 'ServantObject', 'Streamable', 'StreamableValue', 'UnknownException', 'ValueBase', 'ValueFactory', 'ValueInputStream', 'ValueOutputStream'
        +            ),
        +        139 => array (
        +            'BindingHelper', 'BindingHolder', 'BindingIterator', 'BindingIteratorHelper', 'BindingIteratorHolder', 'BindingIteratorOperations', 'BindingIteratorPOA', 'BindingListHelper', 'BindingListHolder', 'BindingType', 'BindingTypeHelper', 'BindingTypeHolder', 'IstringHelper', 'NameComponent', 'NameComponentHelper', 'NameComponentHolder', 'NameHelper', 'NameHolder', 'NamingContext', 'NamingContextExt', 'NamingContextExtHelper', 'NamingContextExtHolder', 'NamingContextExtOperations', 'NamingContextExtPOA', 'NamingContextHelper', 'NamingContextHolder', 'NamingContextOperations', 'NamingContextPOA', '_BindingIteratorImplBase', '_BindingIteratorStub', '_NamingContextExtStub', '_NamingContextImplBase', '_NamingContextStub'
        +            ),
        +        140 => array (
        +            'AddressHelper', 'InvalidAddress', 'InvalidAddressHelper', 'InvalidAddressHolder', 'StringNameHelper', 'URLStringHelper'
        +            ),
        +        141 => array (
        +            'AlreadyBound', 'AlreadyBoundHelper', 'AlreadyBoundHolder', 'CannotProceed', 'CannotProceedHelper', 'CannotProceedHolder', 'InvalidNameHolder', 'NotEmpty', 'NotEmptyHelper', 'NotEmptyHolder', 'NotFound', 'NotFoundHelper', 'NotFoundHolder', 'NotFoundReason', 'NotFoundReasonHelper', 'NotFoundReasonHolder'
        +            ),
        +        142 => array (
        +            'Parameter'
        +            ),
        +        143 => array (
        +            'DynAnyFactory', 'DynAnyFactoryHelper', 'DynAnyFactoryOperations', 'DynAnyHelper', 'DynAnyOperations', 'DynAnySeqHelper', 'DynArrayHelper', 'DynArrayOperations', 'DynEnumHelper', 'DynEnumOperations', 'DynFixedHelper', 'DynFixedOperations', 'DynSequenceHelper', 'DynSequenceOperations', 'DynStructHelper', 'DynStructOperations', 'DynUnionHelper', 'DynUnionOperations', 'DynValueBox', 'DynValueBoxOperations', 'DynValueCommon', 'DynValueCommonOperations', 'DynValueHelper', 'DynValueOperations', 'NameDynAnyPair', 'NameDynAnyPairHelper', 'NameDynAnyPairSeqHelper', 'NameValuePairSeqHelper', '_DynAnyFactoryStub', '_DynAnyStub', '_DynArrayStub', '_DynEnumStub', '_DynFixedStub', '_DynSequenceStub', '_DynStructStub', '_DynUnionStub', '_DynValueStub'
        +            ),
        +        144 => array (
        +            'InconsistentTypeCodeHelper'
        +            ),
        +        145 => array (
        +            'InvalidValueHelper'
        +            ),
        +        146 => array (
        +            'CodeSets', 'Codec', 'CodecFactory', 'CodecFactoryHelper', 'CodecFactoryOperations', 'CodecOperations', 'ComponentIdHelper', 'ENCODING_CDR_ENCAPS', 'Encoding', 'ExceptionDetailMessage', 'IOR', 'IORHelper', 'IORHolder', 'MultipleComponentProfileHelper', 'MultipleComponentProfileHolder', 'ProfileIdHelper', 'RMICustomMaxStreamFormat', 'ServiceContext', 'ServiceContextHelper', 'ServiceContextHolder', 'ServiceContextListHelper', 'ServiceContextListHolder', 'ServiceIdHelper', 'TAG_ALTERNATE_IIOP_ADDRESS', 'TAG_CODE_SETS', 'TAG_INTERNET_IOP', 'TAG_JAVA_CODEBASE', 'TAG_MULTIPLE_COMPONENTS', 'TAG_ORB_TYPE', 'TAG_POLICIES', 'TAG_RMI_CUSTOM_MAX_STREAM_FORMAT', 'TaggedComponent', 'TaggedComponentHelper', 'TaggedComponentHolder', 'TaggedProfile', 'TaggedProfileHelper', 'TaggedProfileHolder', 'TransactionService'
        +            ),
        +        147 => array (
        +            'UnknownEncoding', 'UnknownEncodingHelper'
        +            ),
        +        148 => array (
        +            'FormatMismatch', 'FormatMismatchHelper', 'InvalidTypeForEncoding', 'InvalidTypeForEncodingHelper'
        +            ),
        +        149 => array (
        +            'SYNC_WITH_TRANSPORT', 'SyncScopeHelper'
        +            ),
        +        150 => array (
        +            'ACTIVE', 'AdapterManagerIdHelper', 'AdapterNameHelper', 'AdapterStateHelper', 'ClientRequestInfo', 'ClientRequestInfoOperations', 'ClientRequestInterceptor', 'ClientRequestInterceptorOperations', 'DISCARDING', 'HOLDING', 'INACTIVE', 'IORInfo', 'IORInfoOperations', 'IORInterceptor', 'IORInterceptorOperations', 'IORInterceptor_3_0', 'IORInterceptor_3_0Helper', 'IORInterceptor_3_0Holder', 'IORInterceptor_3_0Operations', 'Interceptor', 'InterceptorOperations', 'InvalidSlot', 'InvalidSlotHelper', 'LOCATION_FORWARD', 'NON_EXISTENT', 'ORBIdHelper', 'ORBInitInfo', 'ORBInitInfoOperations', 'ORBInitializer', 'ORBInitializerOperations', 'ObjectReferenceFactory', 'ObjectReferenceFactoryHelper', 'ObjectReferenceFactoryHolder', 'ObjectReferenceTemplate', 'ObjectReferenceTemplateHelper', 'ObjectReferenceTemplateHolder', 'ObjectReferenceTemplateSeqHelper', 'ObjectReferenceTemplateSeqHolder', 'PolicyFactory', 'PolicyFactoryOperations', 'RequestInfo', 'RequestInfoOperations', 'SUCCESSFUL', 'SYSTEM_EXCEPTION',
        +            'ServerIdHelper', 'ServerRequestInfo', 'ServerRequestInfoOperations', 'ServerRequestInterceptor', 'ServerRequestInterceptorOperations', 'TRANSPORT_RETRY', 'USER_EXCEPTION'
        +            ),
        +        151 => array (
        +            'DuplicateName', 'DuplicateNameHelper'
        +            ),
        +        152 => array (
        +            'AdapterActivator', 'AdapterActivatorOperations', 'ID_ASSIGNMENT_POLICY_ID', 'ID_UNIQUENESS_POLICY_ID', 'IMPLICIT_ACTIVATION_POLICY_ID', 'IdAssignmentPolicy', 'IdAssignmentPolicyOperations', 'IdAssignmentPolicyValue', 'IdUniquenessPolicy', 'IdUniquenessPolicyOperations', 'IdUniquenessPolicyValue', 'ImplicitActivationPolicy', 'ImplicitActivationPolicyOperations', 'ImplicitActivationPolicyValue', 'LIFESPAN_POLICY_ID', 'LifespanPolicy', 'LifespanPolicyOperations', 'LifespanPolicyValue', 'POA', 'POAHelper', 'POAManager', 'POAManagerOperations', 'POAOperations', 'REQUEST_PROCESSING_POLICY_ID', 'RequestProcessingPolicy', 'RequestProcessingPolicyOperations', 'RequestProcessingPolicyValue', 'SERVANT_RETENTION_POLICY_ID', 'Servant', 'ServantActivator', 'ServantActivatorHelper', 'ServantActivatorOperations', 'ServantActivatorPOA', 'ServantLocator', 'ServantLocatorHelper', 'ServantLocatorOperations', 'ServantLocatorPOA', 'ServantManager', 'ServantManagerOperations', 'ServantRetentionPolicy',
        +            'ServantRetentionPolicyOperations', 'ServantRetentionPolicyValue', 'THREAD_POLICY_ID', 'ThreadPolicy', 'ThreadPolicyOperations', 'ThreadPolicyValue', '_ServantActivatorStub', '_ServantLocatorStub'
        +            ),
        +        153 => array (
        +            'NoContext', 'NoContextHelper'
        +            ),
        +        154 => array (
        +            'AdapterInactive', 'AdapterInactiveHelper', 'State'
        +            ),
        +        155 => array (
        +            'AdapterAlreadyExists', 'AdapterAlreadyExistsHelper', 'AdapterNonExistent', 'AdapterNonExistentHelper', 'InvalidPolicy', 'InvalidPolicyHelper', 'NoServant', 'NoServantHelper', 'ObjectAlreadyActive', 'ObjectAlreadyActiveHelper', 'ObjectNotActive', 'ObjectNotActiveHelper', 'ServantAlreadyActive', 'ServantAlreadyActiveHelper', 'ServantNotActive', 'ServantNotActiveHelper', 'WrongAdapter', 'WrongAdapterHelper', 'WrongPolicy', 'WrongPolicyHelper'
        +            ),
        +        156 => array (
        +            'CookieHolder'
        +            ),
        +        157 => array (
        +            'RunTime', 'RunTimeOperations'
        +            ),
        +        158 => array (
        +            '_Remote_Stub'
        +            ),
        +        159 => array (
        +            'Attr', 'CDATASection', 'CharacterData', 'Comment', 'DOMConfiguration', 'DOMError', 'DOMErrorHandler', 'DOMException', 'DOMImplementation', 'DOMImplementationList', 'DOMImplementationSource', 'DOMStringList', 'DocumentFragment', 'DocumentType', 'EntityReference', 'NameList', 'NamedNodeMap', 'Node', 'NodeList', 'Notation', 'ProcessingInstruction', 'Text', 'TypeInfo', 'UserDataHandler'
        +            ),
        +        160 => array (
        +            'DOMImplementationRegistry'
        +            ),
        +        161 => array (
        +            'EventException', 'EventTarget', 'MutationEvent', 'UIEvent'
        +            ),
        +        162 => array (
        +            'DOMImplementationLS', 'LSException', 'LSInput', 'LSLoadEvent', 'LSOutput', 'LSParser', 'LSParserFilter', 'LSProgressEvent', 'LSResourceResolver', 'LSSerializer', 'LSSerializerFilter'
        +            ),
        +        163 => array (
        +            'DTDHandler', 'DocumentHandler', 'EntityResolver', 'ErrorHandler', 'HandlerBase', 'InputSource', 'Locator', 'SAXException', 'SAXNotRecognizedException', 'SAXNotSupportedException', 'SAXParseException', 'XMLFilter', 'XMLReader'
        +            ),
        +        164 => array (
        +            'Attributes2', 'Attributes2Impl', 'DeclHandler', 'DefaultHandler2', 'EntityResolver2', 'LexicalHandler', 'Locator2', 'Locator2Impl'
        +            ),
        +        165 => array (
        +            'AttributeListImpl', 'AttributesImpl', 'DefaultHandler', 'LocatorImpl', 'NamespaceSupport', 'ParserAdapter', 'ParserFactory', 'XMLFilterImpl', 'XMLReaderAdapter', 'XMLReaderFactory'
        +            ),
        +        /* ambiguous class names (appear in more than one package) */
        +        166 => array (
        +            'Annotation', 'AnySeqHelper', 'Array', 'Attribute', 'AttributeList', 'AttributeSet', 'Attributes', 'AuthenticationException', 'Binding', 'Bounds', 'Certificate', 'CertificateEncodingException', 'CertificateException', 'CertificateExpiredException', 'CertificateNotYetValidException', 'CertificateParsingException', 'ConnectException', 'ContentHandler', 'Context', 'Control', 'Current', 'CurrentHelper', 'CurrentOperations', 'DOMLocator', 'DataInputStream', 'DataOutputStream', 'Date', 'DefaultLoaderRepository', 'Delegate', 'Document', 'DocumentEvent', 'DynAny', 'DynArray', 'DynEnum', 'DynFixed', 'DynSequence', 'DynStruct', 'DynUnion', 'DynValue', 'DynamicImplementation', 'Element', 'Entity', 'Event', 'EventListener', 'FieldNameHelper', 'FileFilter', 'Formatter', 'ForwardRequest', 'ForwardRequestHelper', 'InconsistentTypeCode', 'InputStream', 'IntrospectionException', 'InvalidAttributeValueException', 'InvalidKeyException', 'InvalidName', 'InvalidNameHelper', 'InvalidValue', 'List', 'MouseEvent',
        +            'NameValuePair', 'NameValuePairHelper', 'ORB', 'Object', 'ObjectIdHelper', 'ObjectImpl', 'OpenType', 'OutputStream', 'ParagraphView', 'Parser', 'Permission', 'Policy', 'Principal', 'Proxy', 'Reference', 'Statement', 'Timer', 'Timestamp', 'TypeMismatch', 'TypeMismatchHelper', 'UNKNOWN', 'UnknownHostException', 'X509Certificate'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        /* all Java keywords are case sensitive */
        +        1 => true, 2 => true, 3 => true, 4 => true,
        +        5 => true, 6 => true, 7 => true, 8 => true, 9 => true,
        +        10 => true, 11 => true, 12 => true, 13 => true, 14 => true,
        +        15 => true, 16 => true, 17 => true, 18 => true, 19 => true,
        +        20 => true, 21 => true, 22 => true, 23 => true, 24 => true,
        +        25 => true, 26 => true, 27 => true, 28 => true, 29 => true,
        +        30 => true, 31 => true, 32 => true, 33 => true, 34 => true,
        +        35 => true, 36 => true, 37 => true, 38 => true, 39 => true,
        +        40 => true, 41 => true, 42 => true, 43 => true, 44 => true,
        +        45 => true, 46 => true, 47 => true, 48 => true, 49 => true,
        +        50 => true, 51 => true, 52 => true, 53 => true, 54 => true,
        +        55 => true, 56 => true, 57 => true, 58 => true, 59 => true,
        +        60 => true, 61 => true, 62 => true, 63 => true, 64 => true,
        +        65 => true, 66 => true, 67 => true, 68 => true, 69 => true,
        +        70 => true, 71 => true, 72 => true, 73 => true, 74 => true,
        +        75 => true, 76 => true, 77 => true, 78 => true, 79 => true,
        +        80 => true, 81 => true, 82 => true, 83 => true, 84 => true,
        +        85 => true, 86 => true, 87 => true, 88 => true, 89 => true,
        +        90 => true, 91 => true, 92 => true, 93 => true, 94 => true,
        +        95 => true, 96 => true, 97 => true, 98 => true, 99 => true,
        +        100 => true, 101 => true, 102 => true, 103 => true, 104 => true,
        +        105 => true, 106 => true, 107 => true, 108 => true, 109 => true,
        +        110 => true, 111 => true, 112 => true, 113 => true, 114 => true,
        +        115 => true, 116 => true, 117 => true, 118 => true, 119 => true,
        +        120 => true, 121 => true, 122 => true, 123 => true, 124 => true,
        +        125 => true, 126 => true, 127 => true, 128 => true, 129 => true,
        +        130 => true, 131 => true, 132 => true, 133 => true, 134 => true,
        +        135 => true, 136 => true, 137 => true, 138 => true, 139 => true,
        +        140 => true, 141 => true, 142 => true, 143 => true, 144 => true,
        +        145 => true, 146 => true, 147 => true, 148 => true, 149 => true,
        +        150 => true, 151 => true, 152 => true, 153 => true, 154 => true,
        +        155 => true, 156 => true, 157 => true, 158 => true, 159 => true,
        +        160 => true, 161 => true, 162 => true, 163 => true, 164 => true,
        +        165 => true, 166 => true
        +    ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000;  font-weight: bold;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #006600; font-weight: bold;',
        +            4 => 'color: #006600; font-weight: bold;',
        +            5 => 'color: #003399; font-weight: bold;',
        +            6 => 'color: #003399; font-weight: bold;',
        +            7 => 'color: #003399; font-weight: bold;',
        +            8 => 'color: #003399; font-weight: bold;',
        +            9 => 'color: #003399; font-weight: bold;',
        +            10 => 'color: #003399; font-weight: bold;',
        +            11 => 'color: #003399; font-weight: bold;',
        +            12 => 'color: #003399; font-weight: bold;',
        +            13 => 'color: #003399; font-weight: bold;',
        +            14 => 'color: #003399; font-weight: bold;',
        +            15 => 'color: #003399; font-weight: bold;',
        +            16 => 'color: #003399; font-weight: bold;',
        +            17 => 'color: #003399; font-weight: bold;',
        +            18 => 'color: #003399; font-weight: bold;',
        +            19 => 'color: #003399; font-weight: bold;',
        +            20 => 'color: #003399; font-weight: bold;',
        +            21 => 'color: #003399; font-weight: bold;',
        +            22 => 'color: #003399; font-weight: bold;',
        +            23 => 'color: #003399; font-weight: bold;',
        +            24 => 'color: #003399; font-weight: bold;',
        +            25 => 'color: #003399; font-weight: bold;',
        +            26 => 'color: #003399; font-weight: bold;',
        +            27 => 'color: #003399; font-weight: bold;',
        +            28 => 'color: #003399; font-weight: bold;',
        +            29 => 'color: #003399; font-weight: bold;',
        +            30 => 'color: #003399; font-weight: bold;',
        +            31 => 'color: #003399; font-weight: bold;',
        +            32 => 'color: #003399; font-weight: bold;',
        +            33 => 'color: #003399; font-weight: bold;',
        +            34 => 'color: #003399; font-weight: bold;',
        +            35 => 'color: #003399; font-weight: bold;',
        +            36 => 'color: #003399; font-weight: bold;',
        +            37 => 'color: #003399; font-weight: bold;',
        +            38 => 'color: #003399; font-weight: bold;',
        +            39 => 'color: #003399; font-weight: bold;',
        +            40 => 'color: #003399; font-weight: bold;',
        +            41 => 'color: #003399; font-weight: bold;',
        +            42 => 'color: #003399; font-weight: bold;',
        +            43 => 'color: #003399; font-weight: bold;',
        +            44 => 'color: #003399; font-weight: bold;',
        +            45 => 'color: #003399; font-weight: bold;',
        +            46 => 'color: #003399; font-weight: bold;',
        +            47 => 'color: #003399; font-weight: bold;',
        +            48 => 'color: #003399; font-weight: bold;',
        +            49 => 'color: #003399; font-weight: bold;',
        +            50 => 'color: #003399; font-weight: bold;',
        +            51 => 'color: #003399; font-weight: bold;',
        +            52 => 'color: #003399; font-weight: bold;',
        +            53 => 'color: #003399; font-weight: bold;',
        +            54 => 'color: #003399; font-weight: bold;',
        +            55 => 'color: #003399; font-weight: bold;',
        +            56 => 'color: #003399; font-weight: bold;',
        +            57 => 'color: #003399; font-weight: bold;',
        +            58 => 'color: #003399; font-weight: bold;',
        +            59 => 'color: #003399; font-weight: bold;',
        +            60 => 'color: #003399; font-weight: bold;',
        +            61 => 'color: #003399; font-weight: bold;',
        +            62 => 'color: #003399; font-weight: bold;',
        +            63 => 'color: #003399; font-weight: bold;',
        +            64 => 'color: #003399; font-weight: bold;',
        +            65 => 'color: #003399; font-weight: bold;',
        +            66 => 'color: #003399; font-weight: bold;',
        +            67 => 'color: #003399; font-weight: bold;',
        +            68 => 'color: #003399; font-weight: bold;',
        +            69 => 'color: #003399; font-weight: bold;',
        +            70 => 'color: #003399; font-weight: bold;',
        +            71 => 'color: #003399; font-weight: bold;',
        +            72 => 'color: #003399; font-weight: bold;',
        +            73 => 'color: #003399; font-weight: bold;',
        +            74 => 'color: #003399; font-weight: bold;',
        +            75 => 'color: #003399; font-weight: bold;',
        +            76 => 'color: #003399; font-weight: bold;',
        +            77 => 'color: #003399; font-weight: bold;',
        +            78 => 'color: #003399; font-weight: bold;',
        +            79 => 'color: #003399; font-weight: bold;',
        +            80 => 'color: #003399; font-weight: bold;',
        +            81 => 'color: #003399; font-weight: bold;',
        +            82 => 'color: #003399; font-weight: bold;',
        +            83 => 'color: #003399; font-weight: bold;',
        +            84 => 'color: #003399; font-weight: bold;',
        +            85 => 'color: #003399; font-weight: bold;',
        +            86 => 'color: #003399; font-weight: bold;',
        +            87 => 'color: #003399; font-weight: bold;',
        +            88 => 'color: #003399; font-weight: bold;',
        +            89 => 'color: #003399; font-weight: bold;',
        +            90 => 'color: #003399; font-weight: bold;',
        +            91 => 'color: #003399; font-weight: bold;',
        +            92 => 'color: #003399; font-weight: bold;',
        +            93 => 'color: #003399; font-weight: bold;',
        +            94 => 'color: #003399; font-weight: bold;',
        +            95 => 'color: #003399; font-weight: bold;',
        +            96 => 'color: #003399; font-weight: bold;',
        +            97 => 'color: #003399; font-weight: bold;',
        +            98 => 'color: #003399; font-weight: bold;',
        +            99 => 'color: #003399; font-weight: bold;',
        +            100 => 'color: #003399; font-weight: bold;',
        +            101 => 'color: #003399; font-weight: bold;',
        +            102 => 'color: #003399; font-weight: bold;',
        +            103 => 'color: #003399; font-weight: bold;',
        +            104 => 'color: #003399; font-weight: bold;',
        +            105 => 'color: #003399; font-weight: bold;',
        +            106 => 'color: #003399; font-weight: bold;',
        +            107 => 'color: #003399; font-weight: bold;',
        +            108 => 'color: #003399; font-weight: bold;',
        +            109 => 'color: #003399; font-weight: bold;',
        +            110 => 'color: #003399; font-weight: bold;',
        +            111 => 'color: #003399; font-weight: bold;',
        +            112 => 'color: #003399; font-weight: bold;',
        +            113 => 'color: #003399; font-weight: bold;',
        +            114 => 'color: #003399; font-weight: bold;',
        +            115 => 'color: #003399; font-weight: bold;',
        +            116 => 'color: #003399; font-weight: bold;',
        +            117 => 'color: #003399; font-weight: bold;',
        +            118 => 'color: #003399; font-weight: bold;',
        +            119 => 'color: #003399; font-weight: bold;',
        +            120 => 'color: #003399; font-weight: bold;',
        +            121 => 'color: #003399; font-weight: bold;',
        +            122 => 'color: #003399; font-weight: bold;',
        +            123 => 'color: #003399; font-weight: bold;',
        +            124 => 'color: #003399; font-weight: bold;',
        +            125 => 'color: #003399; font-weight: bold;',
        +            126 => 'color: #003399; font-weight: bold;',
        +            127 => 'color: #003399; font-weight: bold;',
        +            128 => 'color: #003399; font-weight: bold;',
        +            129 => 'color: #003399; font-weight: bold;',
        +            130 => 'color: #003399; font-weight: bold;',
        +            131 => 'color: #003399; font-weight: bold;',
        +            132 => 'color: #003399; font-weight: bold;',
        +            133 => 'color: #003399; font-weight: bold;',
        +            134 => 'color: #003399; font-weight: bold;',
        +            135 => 'color: #003399; font-weight: bold;',
        +            136 => 'color: #003399; font-weight: bold;',
        +            137 => 'color: #003399; font-weight: bold;',
        +            138 => 'color: #003399; font-weight: bold;',
        +            139 => 'color: #003399; font-weight: bold;',
        +            140 => 'color: #003399; font-weight: bold;',
        +            141 => 'color: #003399; font-weight: bold;',
        +            142 => 'color: #003399; font-weight: bold;',
        +            143 => 'color: #003399; font-weight: bold;',
        +            144 => 'color: #003399; font-weight: bold;',
        +            145 => 'color: #003399; font-weight: bold;',
        +            146 => 'color: #003399; font-weight: bold;',
        +            147 => 'color: #003399; font-weight: bold;',
        +            148 => 'color: #003399; font-weight: bold;',
        +            149 => 'color: #003399; font-weight: bold;',
        +            150 => 'color: #003399; font-weight: bold;',
        +            151 => 'color: #003399; font-weight: bold;',
        +            152 => 'color: #003399; font-weight: bold;',
        +            153 => 'color: #003399; font-weight: bold;',
        +            154 => 'color: #003399; font-weight: bold;',
        +            155 => 'color: #003399; font-weight: bold;',
        +            156 => 'color: #003399; font-weight: bold;',
        +            157 => 'color: #003399; font-weight: bold;',
        +            158 => 'color: #003399; font-weight: bold;',
        +            159 => 'color: #003399; font-weight: bold;',
        +            160 => 'color: #003399; font-weight: bold;',
        +            161 => 'color: #003399; font-weight: bold;',
        +            162 => 'color: #003399; font-weight: bold;',
        +            163 => 'color: #003399; font-weight: bold;',
        +            164 => 'color: #003399; font-weight: bold;',
        +            165 => 'color: #003399; font-weight: bold;',
        +            166 => 'color: #003399; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #006699;',
        +            3 => 'color: #008000; font-style: italic; font-weight: bold;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006633;',
        +            2 => 'color: #006633;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => 'http://docs.oracle.com/javase/7/docs/api/java/applet/{FNAME}.html',
        +        6 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/{FNAME}.html',
        +        7 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/color/{FNAME}.html',
        +        8 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/datatransfer/{FNAME}.html',
        +        9 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/dnd/{FNAME}.html',
        +        10 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/event/{FNAME}.html',
        +        11 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/font/{FNAME}.html',
        +        12 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/geom/{FNAME}.html',
        +        13 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/im/{FNAME}.html',
        +        14 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/im/spi/{FNAME}.html',
        +        15 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/image/{FNAME}.html',
        +        16 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/image/renderable/{FNAME}.html',
        +        17 => 'http://docs.oracle.com/javase/7/docs/api/java/awt/print/{FNAME}.html',
        +        18 => 'http://docs.oracle.com/javase/7/docs/api/java/beans/{FNAME}.html',
        +        19 => 'http://docs.oracle.com/javase/7/docs/api/java/beans/beancontext/{FNAME}.html',
        +        20 => 'http://docs.oracle.com/javase/7/docs/api/java/io/{FNAME}.html',
        +        21 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/{FNAME}.html',
        +        22 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/{FNAME}.html',
        +        23 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/instrument/{FNAME}.html',
        +        24 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/management/{FNAME}.html',
        +        25 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/ref/{FNAME}.html',
        +        26 => 'http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/{FNAME}.html',
        +        27 => 'http://docs.oracle.com/javase/7/docs/api/java/math/{FNAME}.html',
        +        28 => 'http://docs.oracle.com/javase/7/docs/api/java/net/{FNAME}.html',
        +        29 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/{FNAME}.html',
        +        30 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/channels/{FNAME}.html',
        +        31 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/channels/spi/{FNAME}.html',
        +        32 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/charset/{FNAME}.html',
        +        33 => 'http://docs.oracle.com/javase/7/docs/api/java/nio/charset/spi/{FNAME}.html',
        +        34 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/{FNAME}.html',
        +        35 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/activation/{FNAME}.html',
        +        36 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/dgc/{FNAME}.html',
        +        37 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/registry/{FNAME}.html',
        +        38 => 'http://docs.oracle.com/javase/7/docs/api/java/rmi/server/{FNAME}.html',
        +        39 => 'http://docs.oracle.com/javase/7/docs/api/java/security/{FNAME}.html',
        +        40 => 'http://docs.oracle.com/javase/7/docs/api/java/security/acl/{FNAME}.html',
        +        41 => 'http://docs.oracle.com/javase/7/docs/api/java/security/cert/{FNAME}.html',
        +        42 => 'http://docs.oracle.com/javase/7/docs/api/java/security/interfaces/{FNAME}.html',
        +        43 => 'http://docs.oracle.com/javase/7/docs/api/java/security/spec/{FNAME}.html',
        +        44 => 'http://docs.oracle.com/javase/7/docs/api/java/sql/{FNAME}.html',
        +        45 => 'http://docs.oracle.com/javase/7/docs/api/java/text/{FNAME}.html',
        +        46 => 'http://docs.oracle.com/javase/7/docs/api/java/util/{FNAME}.html',
        +        47 => 'http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/{FNAME}.html',
        +        48 => 'http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/atomic/{FNAME}.html',
        +        49 => 'http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/{FNAME}.html',
        +        50 => 'http://docs.oracle.com/javase/7/docs/api/java/util/jar/{FNAME}.html',
        +        51 => 'http://docs.oracle.com/javase/7/docs/api/java/util/logging/{FNAME}.html',
        +        52 => 'http://docs.oracle.com/javase/7/docs/api/java/util/prefs/{FNAME}.html',
        +        53 => 'http://docs.oracle.com/javase/7/docs/api/java/util/regex/{FNAME}.html',
        +        54 => 'http://docs.oracle.com/javase/7/docs/api/java/util/zip/{FNAME}.html',
        +        55 => 'http://docs.oracle.com/javase/7/docs/api/javax/accessibility/{FNAME}.html',
        +        56 => 'http://docs.oracle.com/javase/7/docs/api/javax/activity/{FNAME}.html',
        +        57 => 'http://docs.oracle.com/javase/7/docs/api/javax/crypto/{FNAME}.html',
        +        58 => 'http://docs.oracle.com/javase/7/docs/api/javax/crypto/interfaces/{FNAME}.html',
        +        59 => 'http://docs.oracle.com/javase/7/docs/api/javax/crypto/spec/{FNAME}.html',
        +        60 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/{FNAME}.html',
        +        61 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/event/{FNAME}.html',
        +        62 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/metadata/{FNAME}.html',
        +        63 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/plugins/bmp/{FNAME}.html',
        +        64 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/plugins/jpeg/{FNAME}.html',
        +        65 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/spi/{FNAME}.html',
        +        66 => 'http://docs.oracle.com/javase/7/docs/api/javax/imageio/stream/{FNAME}.html',
        +        67 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/{FNAME}.html',
        +        68 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/loading/{FNAME}.html',
        +        69 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/modelmbean/{FNAME}.html',
        +        70 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/monitor/{FNAME}.html',
        +        71 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/openmbean/{FNAME}.html',
        +        72 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/relation/{FNAME}.html',
        +        73 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/remote/{FNAME}.html',
        +        74 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/remote/rmi/{FNAME}.html',
        +        75 => 'http://docs.oracle.com/javase/7/docs/api/javax/management/timer/{FNAME}.html',
        +        76 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/{FNAME}.html',
        +        77 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/directory/{FNAME}.html',
        +        78 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/event/{FNAME}.html',
        +        79 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/ldap/{FNAME}.html',
        +        80 => 'http://docs.oracle.com/javase/7/docs/api/javax/naming/spi/{FNAME}.html',
        +        81 => 'http://docs.oracle.com/javase/7/docs/api/javax/net/{FNAME}.html',
        +        82 => 'http://docs.oracle.com/javase/7/docs/api/javax/net/ssl/{FNAME}.html',
        +        83 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/{FNAME}.html',
        +        84 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/attribute/{FNAME}.html',
        +        85 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/attribute/standard/{FNAME}.html',
        +        86 => 'http://docs.oracle.com/javase/7/docs/api/javax/print/event/{FNAME}.html',
        +        87 => 'http://docs.oracle.com/javase/7/docs/api/javax/rmi/{FNAME}.html',
        +        88 => 'http://docs.oracle.com/javase/7/docs/api/javax/rmi/CORBA/{FNAME}.html',
        +        89 => 'http://docs.oracle.com/javase/7/docs/api/javax/rmi/ssl/{FNAME}.html',
        +        90 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/{FNAME}.html',
        +        91 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/callback/{FNAME}.html',
        +        92 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/kerberos/{FNAME}.html',
        +        93 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/login/{FNAME}.html',
        +        94 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/spi/{FNAME}.html',
        +        95 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/auth/x500/{FNAME}.html',
        +        96 => 'http://docs.oracle.com/javase/7/docs/api/javax/security/sasl/{FNAME}.html',
        +        97 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/midi/{FNAME}.html',
        +        98 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/midi/spi/{FNAME}.html',
        +        99 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/sampled/{FNAME}.html',
        +        100 => 'http://docs.oracle.com/javase/7/docs/api/javax/sound/sampled/spi/{FNAME}.html',
        +        101 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/{FNAME}.html',
        +        102 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/rowset/{FNAME}.html',
        +        103 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/rowset/serial/{FNAME}.html',
        +        104 => 'http://docs.oracle.com/javase/7/docs/api/javax/sql/rowset/spi/{FNAME}.html',
        +        105 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/{FNAME}.html',
        +        106 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/border/{FNAME}.html',
        +        107 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/colorchooser/{FNAME}.html',
        +        108 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/event/{FNAME}.html',
        +        109 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/filechooser/{FNAME}.html',
        +        110 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/{FNAME}.html',
        +        111 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/basic/{FNAME}.html',
        +        112 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/metal/{FNAME}.html',
        +        113 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/multi/{FNAME}.html',
        +        114 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/synth/{FNAME}.html',
        +        115 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/table/{FNAME}.html',
        +        116 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/{FNAME}.html',
        +        117 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/html/{FNAME}.html',
        +        118 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/html/parser/{FNAME}.html',
        +        119 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/text/rtf/{FNAME}.html',
        +        120 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/tree/{FNAME}.html',
        +        121 => 'http://docs.oracle.com/javase/7/docs/api/javax/swing/undo/{FNAME}.html',
        +        122 => 'http://docs.oracle.com/javase/7/docs/api/javax/transaction/{FNAME}.html',
        +        123 => 'http://docs.oracle.com/javase/7/docs/api/javax/transaction/xa/{FNAME}.html',
        +        124 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/{FNAME}.html',
        +        125 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/datatype/{FNAME}.html',
        +        126 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/namespace/{FNAME}.html',
        +        127 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/parsers/{FNAME}.html',
        +        128 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/{FNAME}.html',
        +        129 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/dom/{FNAME}.html',
        +        130 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/sax/{FNAME}.html',
        +        131 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/stream/{FNAME}.html',
        +        132 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/validation/{FNAME}.html',
        +        133 => 'http://docs.oracle.com/javase/7/docs/api/javax/xml/xpath/{FNAME}.html',
        +        134 => 'http://docs.oracle.com/javase/7/docs/api/org/ietf/jgss/{FNAME}.html',
        +        135 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/{FNAME}.html',
        +        136 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/DynAnyPackage/{FNAME}.html',
        +        137 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/TypeCodePackage/{FNAME}.html',
        +        138 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CORBA/portable/{FNAME}.html',
        +        139 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CosNaming/{FNAME}.html',
        +        140 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CosNaming/NamingContextExtPackage/{FNAME}.html',
        +        141 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/CosNaming/NamingContextPackage/{FNAME}.html',
        +        142 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/Dynamic/{FNAME}.html',
        +        143 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/DynamicAny/{FNAME}.html',
        +        144 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/DynamicAny/DynAnyFactoryPackage/{FNAME}.html',
        +        145 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/DynamicAny/DynAnyPackage/{FNAME}.html',
        +        146 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/IOP/{FNAME}.html',
        +        147 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/IOP/CodecFactoryPackage/{FNAME}.html',
        +        148 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/IOP/CodecPackage/{FNAME}.html',
        +        149 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/Messaging/{FNAME}.html',
        +        150 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableInterceptor/{FNAME}.html',
        +        151 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableInterceptor/ORBInitInfoPackage/{FNAME}.html',
        +        152 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/{FNAME}.html',
        +        153 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/CurrentPackage/{FNAME}.html',
        +        154 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/POAManagerPackage/{FNAME}.html',
        +        155 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/POAPackage/{FNAME}.html',
        +        156 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/PortableServer/ServantLocatorPackage/{FNAME}.html',
        +        157 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/SendingContext/{FNAME}.html',
        +        158 => 'http://docs.oracle.com/javase/7/docs/api/org/omg/stub/java/rmi/{FNAME}.html',
        +        159 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/{FNAME}.html',
        +        160 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/bootstrap/{FNAME}.html',
        +        161 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/events/{FNAME}.html',
        +        162 => 'http://docs.oracle.com/javase/7/docs/api/org/w3c/dom/ls/{FNAME}.html',
        +        163 => 'http://docs.oracle.com/javase/7/docs/api/org/xml/sax/{FNAME}.html',
        +        164 => 'http://docs.oracle.com/javase/7/docs/api/org/xml/sax/ext/{FNAME}.html',
        +        165 => 'http://docs.oracle.com/javase/7/docs/api/org/xml/sax/helpers/{FNAME}.html',
        +        /* ambiguous class names (appear in more than one package) */
        +        166 => 'http://www.google.com/search?sitesearch=docs.oracle.com&q=allinurl%3Ajavase+docs+api+{FNAME}'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        /* Java does not use '::' */
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => '(?|^&"\'])',
        +            'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-;"\'])'
        +            )
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/javascript.php b/Sources/geshi/javascript.php
        new file mode 100644
        index 0000000..b96d1b5
        --- /dev/null
        +++ b/Sources/geshi/javascript.php
        @@ -0,0 +1,174 @@
        + 'Javascript',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Regular Expressions
        +        2 => "/(?<=[\\s^])(s|tr|y)\\/(?!\*)(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])+(? GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            //reserved/keywords; also some non-reserved keywords
        +            'break','case','catch','const','continue',
        +            'default','delete','do',
        +            'else',
        +            'finally','for','function',
        +            'get','goto',
        +            'if','in','instanceof',
        +            'new',
        +            'prototype',
        +            'return',
        +            'set','static','switch',
        +            'this','throw','try','typeof',
        +            'var','void'
        +            ),
        +        2 => array(
        +            //reserved/non-keywords; metaconstants
        +            'false','null','true','undefined','NaN','Infinity'
        +            ),
        +        3 => array(
        +            //magic properties/functions
        +            '__proto__','__defineGetter__','__defineSetter__','hasOwnProperty','hasProperty'
        +            ),
        +        4 => array(
        +            //type constructors
        +            'Object', 'Function', 'Date', 'Math', 'String', 'Number', 'Boolean', 'Array'
        +            ),
        +        5 => array(
        +            //reserved, but invalid in language
        +            'abstract','boolean','byte','char','class','debugger','double','enum','export','extends',
        +            'final','float','implements','import','int','interface','long','native',
        +            'short','super','synchronized','throws','transient','volatile'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}',
        +        '+', '-', '*', '/', '%',
        +        '!', '@', '&', '|', '^',
        +        '<', '>', '=',
        +        ',', ';', '?', ':'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000066; font-weight: bold;',
        +            2 => 'color: #003366; font-weight: bold;',
        +            3 => 'color: #000066;',
        +            5 => 'color: #FF0000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #006600; font-style: italic;',
        +            2 => 'color: #009966; font-style: italic;',
        +            'MULTI' => 'color: #006600; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #3366CC;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #CC0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #660066;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            2 => '',
        +            3 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => ''
        +    ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(
        +        0 => array(
        +            ''
        +            ),
        +        1 => array(
        +            ''
        +            )
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true,
        +        1 => true
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/jquery.php b/Sources/geshi/jquery.php
        new file mode 100644
        index 0000000..a75320d
        --- /dev/null
        +++ b/Sources/geshi/jquery.php
        @@ -0,0 +1,238 @@
        + 'jQuery',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    //Regular Expressions
        +    'COMMENT_REGEXP' => array(2 => "/(?<=[\\s^])s\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])m?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[gimsu]*(?=[\\s$\\.\\,\\;\\)])/iU"),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'as', 'break', 'case', 'catch', 'continue', 'decodeURI', 'delete', 'do',
        +            'else', 'encodeURI', 'eval', 'finally', 'for', 'if', 'in', 'is', 'item',
        +            'instanceof', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'void',
        +            'while', 'write', 'with'
        +            ),
        +        2 => array(
        +            'class', 'const', 'default', 'debugger', 'export', 'extends', 'false',
        +            'function', 'import', 'namespace', 'new', 'null', 'package', 'private',
        +            'protected', 'public', 'super', 'true', 'use', 'var'
        +            ),
        +        3 => array(
        +            // common functions for Window object
        +            'alert', 'back', 'close', 'confirm', 'forward', 'home',
        +            'name', 'navigate', 'onblur', 'onerror', 'onfocus', 'onload', 'onmove',
        +            'onresize', 'onunload', 'open', 'print', 'prompt', 'status',
        +            //'blur', 'focus', 'scroll', // Duplicate with kw9
        +            //'stop', //Duplicate with kw10
        +            ),
        +        4 => array(
        +            // jQuery Core Functions
        +            'jQuery', 'each', 'size', 'length', 'selector', 'context', 'eq',
        +            'index', 'data', 'removeData', 'queue', 'dequeue', 'noConflict'
        +            //'get', //Duplicate with kw11
        +            ),
        +        5 => array(
        +            // jQuery Attribute Functions
        +            'attr', 'removeAttr', 'addClass', 'hasClass', 'removeClass', 'toggleClass',
        +            'html', 'text', 'val',
        +            ),
        +        6 => array(
        +            // jQuery Traversing Functions
        +            'filter', 'not', 'slice', 'add', 'children', 'closest',
        +            'contents', 'find', 'next', 'nextAll', 'parent', 'parents',
        +            'prev', 'prevAll', 'siblings', 'andSelf', 'end',
        +            //'is',  //Dup with kw1
        +            //'offsetParent', //Duplicate with kw8
        +            //'map', //Duplicate with kw12
        +            ),
        +        7 => array(
        +            // jQuery Manipulation Functions
        +            'append', 'appendTo', 'prepend', 'prependTo', 'after', 'before', 'insertAfter',
        +            'insertBefore', 'wrap', 'wrapAll', 'wrapInner', 'replaceWith', 'replaceAll',
        +            'empty', 'remove', 'clone',
        +            ),
        +        8 => array(
        +            // jQuery CSS Functions
        +            'css', 'offset', 'offsetParent', 'position', 'scrollTop', 'scrollLeft',
        +            'height', 'width', 'innerHeight', 'innerWidth', 'outerHeight', 'outerWidth',
        +            ),
        +        9 => array(
        +            // jQuery Events Functions
        +            'ready', 'bind', 'one', 'trigger', 'triggerHandler', 'unbind', 'live',
        +            'die', 'hover', 'blur', 'change', 'click', 'dblclick', 'error',
        +            'focus', 'keydown', 'keypress', 'keyup', 'mousedown', 'mouseenter',
        +            'mouseleave', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'resize',
        +            'scroll', 'select', 'submit', 'unload',
        +            //'toggle', //Duplicate with kw10
        +            //'load', //Duplicate with kw11
        +            ),
        +        10 => array(
        +            // jQuery Effects Functions
        +            'show', 'hide', 'toggle', 'slideDown', 'slideUp', 'slideToggle', 'fadeIn',
        +            'fadeOut', 'fadeTo', 'animate', 'stop',
        +            ),
        +        11 => array(
        +            // jQuery Ajax Functions
        +            'ajax', 'load', 'get', 'getJSON', 'getScript', 'post', 'ajaxComplete',
        +            'ajaxError', 'ajaxSend', 'ajaxStart', 'ajaxStop', 'ajaxSuccess', 'ajaxSetup',
        +            'serialize', 'serializeArray',
        +            ),
        +        12 => array(
        +            // jQuery Utility Functions
        +            'support', 'browser', 'version', 'boxModal', 'extend', 'grep', 'makeArray',
        +            'map', 'inArray', 'merge', 'unique', 'isArray', 'isFunction', 'trim',
        +            'param',
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array(
        +            '(', ')', '[', ']', '{', '}',
        +            '+', '-', '*', '/', '%',
        +            '!', '@', '&', '|', '^',
        +            '<', '>', '=',
        +            ',', ';', '?', ':'
        +            ),
        +        1 => 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,
        +        10 => false,
        +        11 => false,
        +        12 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000066; font-weight: bold;',
        +            2 => 'color: #003366; font-weight: bold;',
        +            3 => 'color: #000066;',
        +            4 => 'color: #000066;',
        +            5 => 'color: #000066;',
        +            6 => 'color: #000066;',
        +            7 => 'color: #000066;',
        +            8 => 'color: #000066;',
        +            9 => 'color: #000066;',
        +            10 => 'color: #000066;',
        +            11 => 'color: #000066;',
        +            12 => 'color: #000066;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #006600; font-style: italic;',
        +            2 => 'color: #009966; font-style: italic;',
        +            'MULTI' => 'color: #006600; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #3366CC;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #CC0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #660066;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;',
        +            1 => 'color: #000066;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            2 => '',
        +            3 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => 'http://docs.jquery.com/Core/{FNAME}',
        +        5 => 'http://docs.jquery.com/Attributes/{FNAME}',
        +        6 => 'http://docs.jquery.com/Traversing/{FNAME}',
        +        7 => 'http://docs.jquery.com/Manipulation/{FNAME}',
        +        8 => 'http://docs.jquery.com/CSS/{FNAME}',
        +        9 => 'http://docs.jquery.com/Events/{FNAME}',
        +        10 => 'http://docs.jquery.com/Effects/{FNAME}',
        +        11 => 'http://docs.jquery.com/Ajax/{FNAME}',
        +        12 => 'http://docs.jquery.com/Utilities/{FNAME}'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(
        +        0 => array(
        +            ''
        +            ),
        +        1 => array(
        +            ''
        +            )
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true,
        +        1 => true
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/kixtart.php b/Sources/geshi/kixtart.php
        new file mode 100644
        index 0000000..5b90919
        --- /dev/null
        +++ b/Sources/geshi/kixtart.php
        @@ -0,0 +1,329 @@
        + 'KiXtart',
        +    'COMMENT_SINGLE' => array(1 => ';'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'While', 'Loop',
        +            'Use',
        +            'Small',
        +            'Sleep',
        +            'Shell',
        +            'SetTime',
        +            'SetM',
        +            'SetL',
        +            'Set',
        +            'Select', 'Case',
        +            'Run',
        +            'Return',
        +            'Redim',
        +            'RD',
        +            'Quit',
        +            'Play',
        +            'Move',
        +            'MD',
        +            'Include',
        +            'If', 'Else', 'Endif',
        +            'GoTo',
        +            'GoSub',
        +            'Go',
        +            'Global',
        +            'GetS',
        +            'Get',
        +            'Function', 'Endfunction',
        +            'For', 'Next',
        +            'Each',
        +            'FlushKb',
        +            'Exit',
        +            'Do', 'Until',
        +            'Display',
        +            'Dim',
        +            'Del',
        +            'Debug',
        +            'Copy',
        +            'Cookie1',
        +            'Color',
        +            'CLS',
        +            'CD',
        +            'Call',
        +            'Break',
        +            'Big',
        +            'Beep',
        +            ),
        +        2 => array(
        +            '@Address',
        +            '@Build',
        +            '@Color',
        +            '@Comment',
        +            '@CPU',
        +            '@CRLF',
        +            '@CSD',
        +            '@CurDir',
        +            '@Date',
        +            '@Day',
        +            '@Domain',
        +            '@DOS',
        +            '@Error',
        +            '@FullName',
        +            '@HomeDir',
        +            '@HomeDrive',
        +            '@HomeShr',
        +            '@HostName',
        +            '@InWin',
        +            '@IPaddressX',
        +            '@KiX',
        +            '@LanRoot',
        +            '@LDomain',
        +            '@LDrive',
        +            '@LM',
        +            '@LogonMode',
        +            '@LongHomeDir',
        +            '@LServer',
        +            '@MaxPWAge',
        +            '@MDayNo',
        +            '@MHz',
        +            '@MonthNo',
        +            '@Month',
        +            '@MSecs',
        +            '@OnWoW64',
        +            '@PID',
        +            '@PrimaryGroup',
        +            '@Priv',
        +            '@ProductSuite',
        +            '@ProductType',
        +            '@PWAge',
        +            '@RAS',
        +            '@Result',
        +            '@RServer',
        +            '@ScriptDir',
        +            '@ScriptExe',
        +            '@ScriptName',
        +            '@SError',
        +            '@SID',
        +            '@Site',
        +            '@StartDir',
        +            '@SysLang',
        +            '@Ticks',
        +            '@Time',
        +            '@TsSession',
        +            '@UserID',
        +            '@UserLang',
        +            '@WDayNo',
        +            '@Wksta',
        +            '@WUserID',
        +            '@YDayNo',
        +            '@Year',
        +            ),
        +        3 => array(
        +            'WriteValue',
        +            'WriteProfileString',
        +            'WriteLine',
        +            'VarTypeName',
        +            'VarType',
        +            'Val',
        +            'UnloadHive',
        +            'UCase',
        +            'Ubound',
        +            'Trim',
        +            'Substr',
        +            'SRnd',
        +            'Split',
        +            'SidToName',
        +            'ShutDown',
        +            'ShowProgramGroup',
        +            'SetWallpaper',
        +            'SetTitle',
        +            'SetSystemState',
        +            'SetOption',
        +            'SetFocus',
        +            'SetFileAttr',
        +            'SetDefaultPrinter',
        +            'SetConsole',
        +            'SetAscii',
        +            'SendMessage',
        +            'SendKeys',
        +            'SaveKey',
        +            'RTrim',
        +            'Round',
        +            'Rnd',
        +            'Right',
        +            'RedirectOutput',
        +            'ReadValue',
        +            'ReadType',
        +            'ReadProfileString',
        +            'ReadLine',
        +            'Open',
        +            'MessageBox',
        +            'MemorySize',
        +            'LTrim',
        +            'Logoff',
        +            'LogEvent',
        +            'LoadKey',
        +            'LoadHive',
        +            'Len',
        +            'Left',
        +            'LCase',
        +            'KeyExist',
        +            'KbHit',
        +            'Join',
        +            'IsDeclared',
        +            'Int',
        +            'InStrRev',
        +            'InStr',
        +            'InGroup',
        +            'IIF',
        +            'GetObject',
        +            'GetFileVersion',
        +            'GetFileTime',
        +            'GetFileSize',
        +            'GetFileAttr',
        +            'GetDiskSpace',
        +            'FreeFileHandle',
        +            'FormatNumber',
        +            'Fix',
        +            'ExpandEnvironmentVars',
        +            'Exist',
        +            'Execute',
        +            'EnumValue',
        +            'EnumLocalGroup',
        +            'EnumKey',
        +            'EnumIpInfo',
        +            'EnumGroup',
        +            'Dir',
        +            'DelValue',
        +            'DelTree',
        +            'DelProgramItem',
        +            'DelProgramGroup',
        +            'DelPrinterConnection',
        +            'DelKey',
        +            'DecToHex',
        +            'CStr',
        +            'CreateObject',
        +            'CompareFileTimes',
        +            'Close',
        +            'ClearEventLog',
        +            'CInt',
        +            'Chr',
        +            'CDbl',
        +            'Box',
        +            'BackupEventLog',
        +            'At',
        +            'AScan',
        +            'Asc',
        +            'AddProgramItem',
        +            'AddProgramGroup',
        +            'AddPrinterConnection',
        +            'AddKey',
        +            'Abs'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '?', ':', '+', '-', '*', '/', '&', '|', '^', '~', '<', '>', '='
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #000066;'
        +            ),
        +        '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: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;',
        +            2 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://www.kixtart.org/manual/Commands/{FNAMEL}.htm',
        +        2 => '',
        +        3 => 'http://www.kixtart.org/manual/Functions/{FNAMEL}.htm'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true,
        +        1 => true,
        +        2 => true,
        +        3 => true
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        diff --git a/Sources/geshi/klonec.php b/Sources/geshi/klonec.php
        new file mode 100644
        index 0000000..5f86e78
        --- /dev/null
        +++ b/Sources/geshi/klonec.php
        @@ -0,0 +1,282 @@
        + 'KLone C',
        +    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),//#pour precede les include de C
        +    'COMMENT_MULTI' => array('/*' => '*/', '' ),//comentaires C et KLone suivi de ceux pour HTML
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(//mots-cles C
        +            'if', 'return', 'while', 'case', 'class', 'continue', 'default',
        +            'do', 'else', 'for', 'switch', 'goto',
        +            'null', 'break', 'true', 'enum', 'extern', 'inline', 'false'
        +            ),
        +        2 => array(//mots-cles KLone
        +            'out', 'request', 'response',
        +            ),
        +        3 => array(//fonctions C usuelles
        +            'printf', 'malloc', 'fopen', 'fclose', 'free', 'fputs', 'fgets', 'feof', 'fwrite',
        +            'perror', 'ferror', 'qsort', 'stats', 'sscanf', 'scanf',
        +            'strdup', 'strcpy', 'strcmp', 'strncpy', 'strcasecmp', 'cat', 'strcat', 'strstr',
        +            'strlen', 'strtof', 'strtod', 'strtok', 'towlower', 'towupper',
        +            'cd', 'system', 'exit', 'exec', 'fork', 'vfork', 'kill', 'signal', 'syslog',
        +            'usleep', 'utime', 'wait', 'waitpid', 'waitid',
        +            'ceil', 'eval', 'round', 'floor',
        +            'atoi', 'atol', 'abs', 'cos', 'sin', 'tan', 'acos', 'asin', 'atan', 'exp',
        +            'time', 'ctime', 'localtime', 'asctime', 'gmtime', 'difftime', 'date'
        +            ),
        +        4 => array(//fonctions KLone usuelles
        +            'request_get_cookies', 'request_get_cookie', 'request_get_args', 'request_get_arg',
        +            'request_io', 'request_get_uri', 'request_get_filename', 'request_get_query_string', 'request_get_path_info',
        +            'request_get_if_modified_since', 'request_get_http', 'request_get_client_request',
        +            'request_get_content_length', 'request_get_uploads', 'request_get_uploaded_file',
        +            'request_get_method', 'request_get_protocol', 'request_get_resolved_filename',
        +            'request_get_resolved_path_info', 'request_get_addr', 'request_get_peer_addr',
        +            'request_get_header', 'request_get_field', 'request_get_field_value',
        +            'response_set_content_encoding', 'response_disable_caching', 'response_enable_caching',
        +            'response_set_cookie', 'response_set_method', 'response_get_method',
        +            'response_print_header', 'response_set_field', 'response_del_field',
        +            'response_set_content_type', 'response_set_date', 'response_set_last_modified',
        +            'response_set_content_length', 'response_get_status', 'response_get_header',
        +            'response_io', 'response_redirect', 'response_set_status',
        +            'session_get_vars', 'session_get', 'session_set', 'session_age', 'session_clean', 'session_del',
        +            'io_type', 'io_pipe', 'io_dup', 'io_copy', 'io_seek', 'io_tell', 'io_close',
        +            'io_free', 'io_read', 'io_printf', 'io_flush', 'io_write', 'io_putc', 'io_getc',
        +            'io_get_until', 'io_gets', 'io_codec_add_head', 'io_codec_add_tail',
        +            'io_codecs_remove', 'io_name_set', 'io_name_get'
        +            ),
        +        5 => array(//types C
        +            'auto', 'char', 'const', 'double',  'float', 'int', 'long',
        +            'register', 'short', 'signed', 'sizeof', 'static', 'string', 'struct',
        +            'typedef', 'union', 'unsigned', 'void', 'volatile',
        +            'wchar_t', 'time_t', 'FILE'
        +            ),
        +        6 => array(//mots-cles HTML
        +            'a', 'abbr', 'acronym', 'address', 'applet',
        +
        +            'base', 'basefont', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'b',
        +
        +            'caption', 'center', 'cite', 'code', 'colgroup', 'col',
        +
        +            'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt',
        +
        +            'em',
        +
        +            'fieldset', 'font', 'form', 'frame', 'frameset',
        +
        +            'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'html',
        +
        +            'iframe', 'ilayer', 'img', 'input', 'ins', 'isindex', 'i',
        +
        +            'kbd',
        +
        +            'label', 'legend', 'link', 'li',
        +
        +            'map', 'meta',
        +
        +            'noframes', 'noscript',
        +
        +            'object', 'ol', 'optgroup', 'option',
        +
        +            'param', 'pre', 'p',
        +
        +            'q',
        +
        +            'samp', 'script', 'select', 'small', 'span', 'strike', 'strong', 'style', 'sub', 'sup', 's',
        +
        +            'table', 'tbody', 'td', 'textarea', 'text', 'tfoot', 'thead', 'th', 'title', 'tr', 'tt',
        +
        +            'ul', 'u',
        +
        +            'var',
        +            ),
        +        7 => array(//autres mots-cles HTML
        +            'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alink', 'alt', 'archive', 'axis',
        +            'background', 'bgcolor', 'border',
        +            'cellpadding', 'cellspacing', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'classid', 'clear', 'code', 'codebase', 'codetype', 'color', 'cols', 'colspan', 'compact', 'content', 'coords',
        +            'data', 'datetime', 'declare', 'defer', 'dir', 'disabled',
        +            'enctype',
        +            'face', 'for', 'frame', 'frameborder',
        +            'headers', 'height', 'href', 'hreflang', 'hspace', 'http-equiv',
        +            'id', 'ismap',
        +            'label', 'lang', 'language', 'link', 'longdesc',
        +            'marginheight', 'marginwidth', 'maxlength', 'media', 'method', 'multiple',
        +            'name', 'nohref', 'noresize', 'noshade', 'nowrap',
        +            'object', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'onselect', 'onsubmit', 'onunload',
        +            'profile', 'prompt',
        +            'readonly', 'rel', 'rev', 'rowspan', 'rows', 'rules',
        +            'scheme', 'scope', 'scrolling', 'selected', 'shape', 'size', 'span', 'src', 'standby', 'start', 'style', 'summary',
        +            'tabindex', 'target', 'text', 'title', 'type',
        +            'usemap',
        +            'valign', 'value', 'valuetype', 'version', 'vlink', 'vspace',
        +            'width'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array(
        +            '<%=', '<%!', '<%', '%>'
        +            ),
        +        0 => array(
        +            '(', ')', '[', ']', '{', '}',
        +            '!', '%', '&', '|', '/',
        +            '<', '>',
        +            '=', '-', '+', '*',
        +            '.', ':', ',', ';', '^'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        6 => false,
        +        7 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100; font-weight: bold;',//pour les mots-cles C
        +            2 => 'color: #000000; font-weight: bold;',//pour les mots-cles KLone
        +            3 => 'color: #6600FF;',//pour les fonctions C
        +            4 => 'color: #6600FF;',//pour les fonctions Klone
        +            5 => 'color: #0099FF; font-weight: bold;',//pour les types C
        +            6 => 'color: #990099; font-weight: bold;',//pour les mots-cles HTML
        +            7 => 'color: #000066;'//pour les autres mots-cles HTML
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',//commentaire sur une ligne C et KLone
        +            2 => 'color: #339933;',//pour les #... en C
        +            'MULTI' => 'color: #808080; font-style: italic;'//commentaire sur plusieurs lignes C et KLone
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;',
        +            2 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000;',
        +            1 => 'color: #000000; font-weight: bold;'
        +            ),
        +        'REGEXPS' => array(),
        +        'SCRIPT' => array(
        +            0 => 'background-color:#ffccff; font-weight: bold; color:#000000;',
        +            1 => '',
        +            2 => '',
        +            3 => 'color: #00bbdd; font-weight: bold;',
        +            4 => 'color: #ddbb00;',
        +            5 => 'color: #009900;'
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAMEL}.html',
        +        4 => 'http://www.koanlogic.com/klone/api/html/globals.html',
        +        5 => '',
        +        6 => 'http://december.com/html/4/element/{FNAMEL}.html',
        +        7 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        2 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
        +    'SCRIPT_DELIMITERS' => array(
        +        //delimiteurs pour KLone
        +        0 => array(
        +            '<%=' => '%>'
        +            ),
        +        1 => array(
        +            '<%!' => '%>'
        +            ),
        +        2 => array(
        +            '<%' => '%>'
        +            ),
        +        //delimiteur pour HTML
        +        3 => array(
        +            ' '>'
        +            ),
        +        4 => array(
        +            '&' => ';'
        +            ),
        +        5 => array(
        +            '<' => '>'
        +            )
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => false,
        +        1 => true,
        +        2 => true,
        +        3 => false,
        +        4 => false,
        +        5 => true
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            6 => array(
        +                'DISALLOWED_BEFORE' => '(?<=<|<\/)',
        +                'DISALLOWED_AFTER' => '(?=\s|\/|>)',
        +            ),
        +            7 => array(
        +                'DISALLOWED_AFTER' => '(?=\s*=)',
        +            )
        +        )
        +    )
        +);
        +
        +?>
        diff --git a/Sources/geshi/klonecpp.php b/Sources/geshi/klonecpp.php
        new file mode 100644
        index 0000000..6564c6b
        --- /dev/null
        +++ b/Sources/geshi/klonecpp.php
        @@ -0,0 +1,310 @@
        + 'KLone C++',
        +    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),//#pour precede les include de C
        +    'COMMENT_MULTI' => array('/*' => '*/', '' ),//comentaires C et KLone suivi de ceux pour HTML
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(//mots-cles C++
        +            'if', 'return', 'while', 'case', 'continue', 'default',
        +            'do', 'else', 'for', 'switch', 'goto',
        +            'break', 'true', 'enum', 'extern', 'inline', 'false',
        +            'errno', 'stdin', 'stdout', 'stderr',
        +            'virtual', 'public', 'private', 'protected', 'template', 'using', 'namespace',
        +            'try', 'catch', 'dynamic_cast', 'const_cast', 'reinterpret_cast',
        +            'static_cast', 'explicit', 'friend', 'typename', 'typeid', 'class',
        +            'EDOM', 'ERANGE', 'FLT_RADIX', 'FLT_ROUNDS', 'FLT_DIG', 'DBL_DIG', 'LDBL_DIG',
        +            'FLT_EPSILON', 'DBL_EPSILON', 'LDBL_EPSILON', 'FLT_MANT_DIG', 'DBL_MANT_DIG',
        +            'LDBL_MANT_DIG', 'FLT_MAX', 'DBL_MAX', 'LDBL_MAX', 'FLT_MAX_EXP', 'DBL_MAX_EXP',
        +            'LDBL_MAX_EXP', 'FLT_MIN', 'DBL_MIN', 'LDBL_MIN', 'FLT_MIN_EXP', 'DBL_MIN_EXP',
        +            'LDBL_MIN_EXP', 'CHAR_BIT', 'CHAR_MAX', 'CHAR_MIN', 'SCHAR_MAX', 'SCHAR_MIN',
        +            'UCHAR_MAX', 'SHRT_MAX', 'SHRT_MIN', 'USHRT_MAX', 'INT_MAX', 'INT_MIN',
        +            'UINT_MAX', 'LONG_MAX', 'LONG_MIN', 'ULONG_MAX', 'HUGE_VAL', 'SIGABRT',
        +            'SIGFPE', 'SIGILL', 'SIGINT', 'SIGSEGV', 'SIGTERM', 'SIG_DFL', 'SIG_ERR',
        +            'SIG_IGN', 'BUFSIZ', 'EOF', 'FILENAME_MAX', 'FOPEN_MAX', 'L_tmpnam', 'NULL',
        +            'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX',
        +            'EXIT_FAILURE', 'EXIT_SUCCESS', 'RAND_MAX', 'CLOCKS_PER_SEC'
        +            ),
        +        2 => array(//mots-cles KLone
        +            'out', 'request', 'response',
        +            ),
        +        3 => array(//fonctions C++ usuelles
        +            'cin', 'cerr', 'clog', 'cout', 'delete', 'new', 'this',
        +            'printf', 'fprintf', 'snprintf', 'sprintf', 'assert',
        +            'isalnum', 'isalpha', 'isdigit', 'iscntrl', 'isgraph', 'islower', 'isprint',
        +            'ispunct', 'isspace', 'isupper', 'isxdigit', 'tolower', 'toupper',
        +            'exp', 'log', 'log10', 'pow', 'sqrt', 'ceil', 'floor', 'fabs', 'ldexp',
        +            'frexp', 'modf', 'fmod', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'atan2',
        +            'sinh', 'cosh', 'tanh', 'setjmp', 'longjmp',
        +            'va_start', 'va_arg', 'va_end', 'offsetof', 'sizeof', 'fopen', 'freopen',
        +            'fflush', 'fclose', 'remove', 'rename', 'tmpfile', 'tmpname', 'setvbuf',
        +            'setbuf', 'vfprintf', 'vprintf', 'vsprintf', 'fscanf', 'scanf', 'sscanf',
        +            'fgetc', 'fgets', 'fputc', 'fputs', 'getc', 'getchar', 'gets', 'putc',
        +            'putchar', 'puts', 'ungetc', 'fread', 'fwrite', 'fseek', 'ftell', 'rewind',
        +            'fgetpos', 'fsetpos', 'clearerr', 'feof', 'ferror', 'perror', 'abs', 'labs',
        +            'div', 'ldiv', 'atof', 'atoi', 'atol', 'strtod', 'strtol', 'strtoul', 'calloc',
        +            'malloc', 'realloc', 'free', 'abort', 'exit', 'atexit', 'system', 'getenv',
        +            'bsearch', 'qsort', 'rand', 'srand', 'strcpy', 'strncpy', 'strcat', 'strncat',
        +            'strcmp', 'strncmp', 'strcoll', 'strchr', 'strrchr', 'strspn', 'strcspn',
        +            'strpbrk', 'strstr', 'strlen', 'strerror', 'strtok', 'strxfrm', 'memcpy',
        +            'memmove', 'memcmp', 'memchr', 'memset', 'clock', 'time', 'difftime', 'mktime',
        +            'asctime', 'ctime', 'gmtime', 'localtime', 'strftime'
        +            ),
        +        4 => array(//fonctions KLone usuelles
        +            'request_get_cookies', 'request_get_cookie', 'request_get_args', 'request_get_arg',
        +            'request_io', 'request_get_uri', 'request_get_filename', 'request_get_query_string', 'request_get_path_info',
        +            'request_get_if_modified_since', 'request_get_http', 'request_get_client_request',
        +            'request_get_content_length', 'request_get_uploads', 'request_get_uploaded_file',
        +            'request_get_method', 'request_get_protocol', 'request_get_resolved_filename',
        +            'request_get_resolved_path_info', 'request_get_addr', 'request_get_peer_addr',
        +            'request_get_header', 'request_get_field', 'request_get_field_value',
        +            'response_set_content_encoding', 'response_disable_caching', 'response_enable_caching',
        +            'response_set_cookie', 'response_set_method', 'response_get_method',
        +            'response_print_header', 'response_set_field', 'response_del_field',
        +            'response_set_content_type', 'response_set_date', 'response_set_last_modified',
        +            'response_set_content_length', 'response_get_status', 'response_get_header',
        +            'response_io', 'response_redirect', 'response_set_status',
        +            'session_get_vars', 'session_get', 'session_set', 'session_age', 'session_clean', 'session_del',
        +            'io_type', 'io_pipe', 'io_dup', 'io_copy', 'io_seek', 'io_tell', 'io_close',
        +            'io_free', 'io_read', 'io_printf', 'io_flush', 'io_write', 'io_putc', 'io_getc',
        +            'io_get_until', 'io_gets', 'io_codec_add_head', 'io_codec_add_tail',
        +            'io_codecs_remove', 'io_name_set', 'io_name_get'
        +            ),
        +        5 => array(//types C++
        +            'auto', 'bool', 'char', 'const', 'double', 'float', 'int', 'long', 'longint',
        +            'register', 'short', 'shortint', 'signed', 'static', 'struct',
        +            'typedef', 'union', 'unsigned', 'void', 'volatile', 'jmp_buf',
        +            'signal', 'raise', 'va_list', 'ptrdiff_t', 'size_t', 'FILE', 'fpos_t',
        +            'div_t', 'ldiv_t', 'clock_t', 'time_t', 'tm',
        +            'string', 'wchar_t'
        +            ),
        +        6 => array(//mots-cles HTML
        +            'a', 'abbr', 'acronym', 'address', 'applet',
        +
        +            'base', 'basefont', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'b',
        +
        +            'caption', 'center', 'cite', 'code', 'colgroup', 'col',
        +
        +            'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt',
        +
        +            'em',
        +
        +            'fieldset', 'font', 'form', 'frame', 'frameset',
        +
        +            'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'html',
        +
        +            'iframe', 'ilayer', 'img', 'input', 'ins', 'isindex', 'i',
        +
        +            'kbd',
        +
        +            'label', 'legend', 'link', 'li',
        +
        +            'map', 'meta',
        +
        +            'noframes', 'noscript',
        +
        +            'object', 'ol', 'optgroup', 'option',
        +
        +            'param', 'pre', 'p',
        +
        +            'q',
        +
        +            'samp', 'script', 'select', 'small', 'span', 'strike', 'strong', 'style', 'sub', 'sup', 's',
        +
        +            'table', 'tbody', 'td', 'textarea', 'text', 'tfoot', 'thead', 'th', 'title', 'tr', 'tt',
        +
        +            'ul', 'u',
        +
        +            'var',
        +            ),
        +        7 => array(//autres mots-cles HTML
        +            'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alink', 'alt', 'archive', 'axis',
        +            'background', 'bgcolor', 'border',
        +            'cellpadding', 'cellspacing', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'classid', 'clear', 'code', 'codebase', 'codetype', 'color', 'cols', 'colspan', 'compact', 'content', 'coords',
        +            'data', 'datetime', 'declare', 'defer', 'dir', 'disabled',
        +            'enctype',
        +            'face', 'for', 'frame', 'frameborder',
        +            'headers', 'height', 'href', 'hreflang', 'hspace', 'http-equiv',
        +            'id', 'ismap',
        +            'label', 'lang', 'language', 'link', 'longdesc',
        +            'marginheight', 'marginwidth', 'maxlength', 'media', 'method', 'multiple',
        +            'name', 'nohref', 'noresize', 'noshade', 'nowrap',
        +            'object', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'onselect', 'onsubmit', 'onunload',
        +            'profile', 'prompt',
        +            'readonly', 'rel', 'rev', 'rowspan', 'rows', 'rules',
        +            'scheme', 'scope', 'scrolling', 'selected', 'shape', 'size', 'span', 'src', 'standby', 'start', 'style', 'summary',
        +            'tabindex', 'target', 'text', 'title', 'type',
        +            'usemap',
        +            'valign', 'value', 'valuetype', 'version', 'vlink', 'vspace',
        +            'width'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array(
        +            '<%=', '<%!', '<%', '%>'
        +            ),
        +        0 => array(
        +            '(', ')', '[', ']', '{', '}',
        +            '!', '%', '&', '|', '/',
        +            '<', '>',
        +            '=', '-', '+', '*',
        +            '.', ':', ',', ';', '^'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        6 => false,
        +        7 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100; font-weight: bold;',//pour les mots-cles C++
        +            2 => 'color: #000000; font-weight: bold;',//pour les mots-cles KLone
        +            3 => 'color: #6600FF;',//pour les fonctions C++
        +            4 => 'color: #6600FF;',//pour les fonctions Klone
        +            5 => 'color: #0099FF; font-weight: bold;',//pour les types C++
        +            6 => 'color: #990099; font-weight: bold;',//pour les mots-cles HTML
        +            7 => 'color: #000066;'//pour les autres mots-cles HTML
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',//commentaire sur une ligne C++ et KLone
        +            2 => 'color: #339933;',//pour les #... en C++
        +            'MULTI' => 'color: #808080; font-style: italic;'//commentaire sur plusieurs lignes C++ et KLone
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;',
        +            2 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000;',
        +            1 => 'color: #000000; font-weight: bold;'
        +            ),
        +        'REGEXPS' => array(),
        +        'SCRIPT' => array(
        +            0 => 'background-color:#ffccff; font-weight: bold; color:#000000;',
        +            1 => '',
        +            2 => '',
        +            3 => 'color: #00bbdd; font-weight: bold;',
        +            4 => 'color: #ddbb00;',
        +            5 => 'color: #009900;'
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAMEL}.html',
        +        4 => 'http://www.koanlogic.com/klone/api/html/globals.html',
        +        5 => '',
        +        6 => 'http://december.com/html/4/element/{FNAMEL}.html',
        +        7 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        2 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
        +    'SCRIPT_DELIMITERS' => array(
        +        //delimiteurs pour KLone
        +        0 => array(
        +            '<%=' => '%>'
        +            ),
        +        1 => array(
        +            '<%!' => '%>'
        +            ),
        +        2 => array(
        +            '<%' => '%>'
        +            ),
        +        //delimiteur pour HTML
        +        3 => array(
        +            ' '>'
        +            ),
        +        4 => array(
        +            '&' => ';'
        +            ),
        +        5 => array(
        +            '<' => '>'
        +            )
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => false,
        +        1 => true,
        +        2 => true,
        +        3 => false,
        +        4 => false,
        +        5 => true
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            6 => array(
        +                'DISALLOWED_BEFORE' => '(?<=<|<\/)',
        +                'DISALLOWED_AFTER' => '(?=\s|\/|>)',
        +            ),
        +            7 => array(
        +                'DISALLOWED_AFTER' => '(?=\s*=)',
        +            )
        +        )
        +    )
        +);
        +
        +?>
        diff --git a/Sources/geshi/latex.php b/Sources/geshi/latex.php
        new file mode 100644
        index 0000000..386a0b9
        --- /dev/null
        +++ b/Sources/geshi/latex.php
        @@ -0,0 +1,223 @@
        + 'LaTeX',
        +    'COMMENT_SINGLE' => array(
        +        1 => '%'
        +        ),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'addlinespace','and','address','appendix','author','backmatter',
        +            'bfseries','bibitem','bigskip','blindtext','caption','captionabove',
        +            'captionbelow','cdot','centering','chapter','cite','color',
        +            'colorbox','date','dedication','def','definecolor','documentclass',
        +            'edef','else','email','emph','eqref','extratitle','fbox','fi',
        +            'flushleft','flushright','footnote','frac','frontmatter',
        +            'graphicspath','hfil','hfill','hfilll','hline','hspace','huge','ifx','include',
        +            'includegraphics','infty','input','int','item','itemsep',
        +            'KOMAoption','KOMAoptions','label','LaTeX','left','let','limits',
        +            'listfiles','listoffigures','listoftables','lowertitleback',
        +            'mainmatter','makeatletter','makeatother','makebox','makeindex',
        +            'maketitle','mbox','mediumskip','newcommand','newenvironment',
        +            'newpage','nocite','nonumber','pagestyle','par','paragraph',
        +            'parbox','parident','parskip','partial','publishers','raggedleft',
        +            'raggedright','raisebox','ref','renewcommand','renewenvironment',
        +            'right','rule','section','setlength','sffamily','subject',
        +            'subparagraph','subsection','subsubsection','subtitle','sum',
        +            'table','tableofcontents','textbf','textcolor','textit',
        +            'textnormal','textsuperscript','texttt','textwidth','thanks','title',
        +            'titlehead','today','ttfamily','uppertitleback','urlstyle',
        +            'usepackage','vfil','vfill','vfilll','vspace'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        "&", "\\", "{", "}", "[", "]"
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        1 => true,
        +        GESHI_COMMENTS => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #800000;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #2C922C; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 =>  'color: #000000; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            ),
        +        'STRINGS' => array(
        +            0 =>  'color: #000000;'
        +            ),
        +        'NUMBERS' => array(
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 =>  'color: #E02020; '
        +            ),
        +        'REGEXPS' => array(
        +            1 => 'color: #8020E0; font-weight: normal;',  // Math inner
        +            2 => 'color: #C08020; font-weight: normal;', // [Option]
        +            3 => 'color: #8020E0; font-weight: normal;', // Maths
        +            4 => 'color: #800000; font-weight: normal;', // Structure: Labels
        +            5 => 'color: #00008B; font-weight: bold;',  // Structure (\section{->x<-})
        +            6 => 'color: #800000; font-weight: normal;', // Structure (\section)
        +            7 => 'color: #0000D0; font-weight: normal;', // Environment \end or \begin{->x<-} (brighter blue)
        +            8 => 'color: #C00000; font-weight: normal;', // Structure \end or \begin
        +            9 => 'color: #2020C0; font-weight: normal;', // {...}
        +            10 => 'color: #800000; font-weight: normal;', // \%, \& etc.
        +            11 => 'color: #E00000; font-weight: normal;', // \@keyword
        +            12 => 'color: #800000; font-weight: normal;', // \keyword
        +        ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://www.golatex.de/wiki/index.php?title=%5C{FNAME}',
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        // Math inner
        +        1 => array(
        +            GESHI_SEARCH => "(\\\\begin\\{(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|alignat|flalign)\\})(.*)(\\\\end\\{\\2\\})",
        +            GESHI_REPLACE => '\3',
        +            GESHI_MODIFIERS => 'Us',
        +            GESHI_BEFORE => '\1',
        +            GESHI_AFTER => '\4'
        +            ),
        +        // [options]
        +        2 => array(
        +            GESHI_SEARCH => "(?<=\[).*(?=\])",
        +            GESHI_REPLACE => '\0',
        +            GESHI_MODIFIERS => 'Us',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        // Math mode with $ ... $
        +        3 => array(
        +            GESHI_SEARCH => "\\$.+\\$",
        +            GESHI_REPLACE => '\0',
        +            GESHI_MODIFIERS => 'Us',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        // Structure: Label
        +        4 => "\\\\(?:label|pageref|ref|cite)(?=[^a-zA-Z])",
        +        // Structure: sections
        +        5 => array(
        +            GESHI_SEARCH => "(\\\\(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph|addpart|addchap|addsec)\*?\\{)(.*)(?=\\})",
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'U',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            ),
        +        // Structure: sections
        +        6 => "\\\\(?:part|chapter|(?:sub){0,2}section|(?:sub)?paragraph|addpart|addchap|addsec)\*?(?=[^a-zA-Z])",
        +        // environment \begin{} and \end{} (i.e. the things inside the {})
        +        7 => array(
        +            GESHI_SEARCH => "(\\\\(?:begin|end)\\{)(.*)(?=\\})",
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'U',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            ),
        +        // Structure \begin and \end
        +        8 => "\\\\(?:end|begin)(?=[^a-zA-Z])",
        +        // {parameters}
        +        9 => array(
        +            GESHI_SEARCH => "(?<=\\{)(?!<\|!REG3XP5!>).*?(?=\\})",
        +            GESHI_REPLACE => '\0',
        +            GESHI_MODIFIERS => 'Us',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        // \%, \& usw.
        +        10 => "\\\\(?:[_$%]|&)",
        +        //  \@keywords
        +        11 => "(?)\\\\@[a-zA-Z]+\*?",
        +        // \keywords
        +        12 => "(?)\\\\[a-zA-Z]+\*?",
        +
        +// ---------------------------------------------
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'COMMENTS' => array(
        +            'DISALLOWED_BEFORE' => '\\'
        +        ),
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => "(?<=\\\\)",
        +            'DISALLOWED_AFTER' => "(?![A-Za-z0-9])"
        +        ),
        +        'ENABLE_FLAGS' => array(
        +            'NUMBERS' => GESHI_NEVER,
        +            'BRACKETS' => GESHI_NEVER
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/lb.php b/Sources/geshi/lb.php
        new file mode 100644
        index 0000000..6c28828
        --- /dev/null
        +++ b/Sources/geshi/lb.php
        @@ -0,0 +1,162 @@
        + 'Liberty BASIC',
        +    'COMMENT_SINGLE' => array(1 => '\''),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'and', 'append', 'as', 'beep', 'bmpbutton', 'bmpsave', 'boolean',
        +            'button', 'byref', 'call', 'callback', 'calldll', 'callfn', 'case',
        +            'checkbox', 'close', 'cls', 'colordialog', 'combobox', 'confirm',
        +            'cursor', 'data', 'dialog', 'dim', 'dll', 'do', 'double', 'dump',
        +            'dword', 'else', 'end', 'error', 'exit', 'field', 'filedialog',
        +            'files', 'fontdialog', 'for', 'function', 'get', 'gettrim',
        +            'global', 'gosub', 'goto', 'graphicbox', 'graphics', 'groupbox',
        +            'if', 'input', 'kill', 'let', 'line', 'listbox', 'loadbmp',
        +            'locate', 'long', 'loop', 'lprint', 'mainwin', 'maphandle', 'menu',
        +            'mod', 'name', 'next', 'nomainwin', 'none', 'notice', 'on',
        +            'oncomerror', 'or', 'open', 'out', 'output', 'password', 'playmidi',
        +            'playwave', 'popupmenu', 'print', 'printerdialog', 'prompt', 'ptr',
        +            'put', 'radiobutton', 'random', 'randomize', 'read', 'readjoystick',
        +            'redim', 'rem', 'restore', 'resume', 'return', 'run', 'scan',
        +            'seek', 'select', 'short', 'sort', 'statictext', 'stop', 'stopmidi',
        +            'struct', 'stylebits', 'sub', 'text', 'textbox', 'texteditor',
        +            'then', 'timer', 'titlebar', 'to', 'trace', 'ulong', 'unloadbmp',
        +            'until', 'ushort', 'void', 'wait', 'window', 'wend', 'while',
        +            'word', 'xor'
        +            ),
        +        2 => array(
        +            'abs', 'acs', 'asc', 'asn', 'atn', 'chr$', 'cos', 'date$',
        +            'dechex$', 'eof', 'eval', 'eval$', 'exp', 'hbmp', 'hexdec', 'hwnd',
        +            'inp', 'input$', 'inputto$', 'instr', 'int', 'left$', 'len', 'lof',
        +            'log', 'lower$', 'max', 'midipos', 'mid$', 'min', 'mkdir', 'not',
        +            'right$', 'rmdir', 'rnd', 'sin', 'space$', 'sqr', 'str$', 'tab',
        +            'tan', 'time$', 'trim$', 'txcount', 'upper$', 'using', 'val',
        +            'winstring', 'word$'
        +            ),
        +        3 => array(
        +            'BackgroundColor$', 'Com', 'ComboboxColor$', 'ComError', 'ComErrorNumber',
        +            'CommandLine$', 'ComPortNumber', 'DefaultDir$',
        +            'DisplayHeight', 'DisplayWidth', 'Drives$', 'Err', 'Err$',
        +            'ForegroundColor$', 'Inkey$', 'Joy1x', 'Joy1y', 'Joy1z',
        +            'Joy1button1', 'Joy1button2', 'Joy2x', 'Joy2y', 'Joy2z',
        +            'Joy2button1', 'Joy2button2', 'ListboxColor$', 'MouseX', 'MouseY', 'Platform$',
        +            'PrintCollate', 'PrintCopies', 'PrinterFont$', 'PrinterName$', 'StartupDir$',
        +            'TextboxColor$', 'TexteditorColor$', 'Version$', 'WindowHeight',
        +            'WindowWidth', 'UpperLeftX', 'UpperLeftY'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array(
        +            '(', ')', '[', ']', '+', '-', '*', '/', '%', '=', '<', '>', ':', ',', '#'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000FF;',
        +            2 => 'color: #AD0080;',
        +            3 => 'color: #008080;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #008000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #FF0000;',
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #004000;'
        +            ),
        +        'SYMBOLS' => array(
        +            1 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(),
        +        'SCRIPT' => array()
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(),
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            2 => array(
        +                //In LB, the second keyword list is a list of built-in functions,
        +                //and their names should not be highlighted unless being used
        +                //as a function name.
        +                'DISALLOWED_AFTER' => '(?=\s*\()'
        +                )
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/ldif.php b/Sources/geshi/ldif.php
        new file mode 100644
        index 0000000..4248183
        --- /dev/null
        +++ b/Sources/geshi/ldif.php
        @@ -0,0 +1,116 @@
        + 'LDIF',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        ),
        +    'SYMBOLS' => array(
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => ''
        +            ),
        +        'BRACKETS' => array(
        +            0 => ''
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #933;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => ''
        +            ),
        +        'METHODS' => array(
        +            0 => ''
        +            ),
        +        'SYMBOLS' => array(
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #000066; font-weight: bold;',
        +            1 => 'color: #FF0000;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        0 => array(
        +            GESHI_SEARCH => '([a-zA-Z0-9_]+):(.+)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ':\\2'
        +            ),
        +        1 => array(
        +            // Evil hackery to get around GeSHi bug: <>" and ; are added so s can be matched
        +            // Explicit match on variable names because if a comment is before the first < of the span
        +            // gets chewed up...
        +            GESHI_SEARCH => '([<>";a-zA-Z0-9_]+):(.+)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1:',
        +            GESHI_AFTER => ''
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/lisp.php b/Sources/geshi/lisp.php
        new file mode 100644
        index 0000000..be823a4
        --- /dev/null
        +++ b/Sources/geshi/lisp.php
        @@ -0,0 +1,144 @@
        + 'Lisp',
        +    'COMMENT_SINGLE' => array(1 => ';'),
        +    'COMMENT_MULTI' => array(';|' => '|;'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'not','defun','princ','when',
        +            'eval','apply','funcall','quote','identity','function',
        +            'complement','backquote','lambda','set','setq','setf',
        +            'defmacro','gensym','make','symbol','intern',
        +            'name','value','plist','get',
        +            'getf','putprop','remprop','hash','array','aref',
        +            'car','cdr','caar','cadr','cdar','cddr','caaar','caadr','cadar',
        +            'caddr','cdaar','cdadr','cddar','cdddr','caaaar','caaadr',
        +            'caadar','caaddr','cadaar','cadadr','caddar','cadddr',
        +            'cdaaar','cdaadr','cdadar','cdaddr','cddaar','cddadr',
        +            'cdddar','cddddr','cons','list','append','reverse','last','nth',
        +            'nthcdr','member','assoc','subst','sublis','nsubst',
        +            'nsublis','remove','length',
        +            'mapc','mapcar','mapl','maplist','mapcan','mapcon','rplaca',
        +            'rplacd','nconc','delete','atom','symbolp','numberp',
        +            'boundp','null','listp','consp','minusp','zerop','plusp',
        +            'evenp','oddp','eq','eql','equal','cond','case','and','or',
        +            'let','l','if','prog','prog1','prog2','progn','go','return',
        +            'do','dolist','dotimes','catch','throw','error','cerror','break',
        +            'continue','errset','baktrace','evalhook','truncate','float',
        +            'rem','min','max','abs','sin','cos','tan','expt','exp','sqrt',
        +            'random','logand','logior','logxor','lognot','bignums','logeqv',
        +            'lognand','lognor','logorc2','logtest','logbitp','logcount',
        +            'integer','nil','parse-integer','make-list','print','write'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']',
        +        '!', '%', '^', '&',
        +        ' + ',' - ',' * ',' / ',
        +        '=','<','>',
        +        '.',':',',',';',
        +        '|'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;'
        +            ),
        +        '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: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #555;',
        +            1 => 'color: #555;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        '::', ':'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'OOLANG' => array(
        +            'MATCH_AFTER' => '[a-zA-Z][a-zA-Z0-9_\-]*'
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/llvm.php b/Sources/geshi/llvm.php
        new file mode 100644
        index 0000000..580099b
        --- /dev/null
        +++ b/Sources/geshi/llvm.php
        @@ -0,0 +1,385 @@
        + 'LLVM Intermediate Representation',
        +    'COMMENT_SINGLE' => array(1 => ';'),
        +    'COMMENT_MULTI' => array(),
        +    'HARDQUOTE' => array("\"", "\""),
        +    'HARDESCAPE' => array("\"", "\\"),
        +    'HARDCHAR' => "\\",
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        //Simple Single Char Escapes
        +        // 1 => "#\\\\[nfrtv\$\"\n\\\\]#i",
        +        //Hexadecimal Char Specs
        +        // 2 => "#\\\\x[\da-fA-F]{1,2}#i",
        +        //Octal Char Specs
        +        // 3 => "#\\\\[0-7]{1,3}#",
        +        //String Parsing of Variable Names
        +        // 4 => "#\\$[a-z0-9_]+(?:\\[[a-z0-9_]+\\]|->[a-z0-9_]+)?|(?:\\{\\$|\\$\\{)[a-z0-9_]+(?:\\[('?)[a-z0-9_]*\\1\\]|->[a-z0-9_]+)*\\}#i",
        +        //Experimental extension supporting cascaded {${$var}} syntax
        +        // 5 => "#\$[a-z0-9_]+(?:\[[a-z0-9_]+\]|->[a-z0-9_]+)?|(?:\{\$|\$\{)[a-z0-9_]+(?:\[('?)[a-z0-9_]*\\1\]|->[a-z0-9_]+)*\}|\{\$(?R)\}#i",
        +        //Format String support in ""-Strings
        +        // 6 => "#%(?:%|(?:\d+\\\\\\\$)?\\+?(?:\x20|0|'.)?-?(?:\d+|\\*)?(?:\.\d+)?[bcdefFosuxX])#"
        +        ),
        +    'NUMBERS' =>
        +    GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        0 => array(
        +            'to', 'nuw', 'nsw', 'align', 'inbounds', 'entry', 'return'
        +            ),
        +        //Terminator Instructions
        +        1 => array(
        +            'ret', 'br', 'switch', 'indirectbr', 'invoke', 'unwind', 'unreachable'
        +            ),
        +        //Binary Operations
        +        2 => array(
        +            'add', 'fadd', 'sub', 'fsub', 'mul', 'fmul', 'udiv', 'sdiv', 'fdiv', 'urem', 'frem', 'srem'
        +            ),
        +        //Bitwise Binary Operations
        +        3 => array(
        +            'shl', 'lshr', 'ashr', 'and', 'or', 'xor'
        +            ),
        +        //Vector Operations
        +        4 => array(
        +            'extractelement', 'insertelement', 'shufflevector'
        +            ),
        +        //Aggregate Operations
        +        5 => array(
        +            'extractvalue', 'insertvalue'
        +            ),
        +        //Memory Access and Addressing Operations
        +        6 => array(
        +            'alloca', 'load', 'store', 'getelementptr'
        +            ),
        +        //Conversion Operations
        +        7 => array(
        +            'trunc', 'zext', 'sext', 'fptrunc', 'fpext', 'fptoui', 'fptosi',
        +            'uitofp', 'sitofp', 'ptrtoint', 'inttoptr', 'bitcast'
        +            ),
        +        //Other Operations
        +        8 => array(
        +            'icmp', 'fcmp', 'phi', 'select', 'call', 'va_arg'
        +            ),
        +        //Linkage Types
        +        9 => array(
        +            'private', 'linker_private', 'linker_private_weak', 'linker_private_weak_def_auto',
        +            'internal', 'available_externally', 'linkonce', 'common', 'weak', 'appending',
        +            'extern_weak', 'linkonce_odr', 'weak_odr', 'externally visible', 'dllimport', 'dllexport',
        +            ),
        +        //Calling Conventions
        +        10 => array(
        +            'ccc', 'fastcc', 'coldcc', 'cc 10'
        +            ),
        +        //Named Types
        +        11 => array(
        +            'type'
        +            ),
        +        //Parameter Attributes
        +        12 => array(
        +            'zeroext', 'signext', 'inreg', 'byval', 'sret', 'noalias', 'nocapture', 'nest'
        +            ),
        +        //Function Attributes
        +        13 => array(
        +            'alignstack', 'alwaysinline', 'inlinehint', 'naked', 'noimplicitfloat', 'noinline', 'noredzone', 'noreturn',
        +            'nounwind', 'optsize', 'readnone', 'readonly', 'ssp', 'sspreq',
        +            ),
        +        //Module-Level Inline Assembly
        +        14 => array(
        +            'module asm'
        +            ),
        +        //Data Layout
        +        15 => array(
        +            'target datalayout'
        +            ),
        +        //Primitive Types
        +        16 => array(
        +            'x86mmx',
        +            'void',
        +            'label',
        +            'metadata',
        +            'opaque'
        +            ),
        +        //Floating Point Types
        +        17 => array(
        +            'float', 'double', 'fp128', 'x86_fp80', 'ppc_fp128',
        +            ),
        +        //Simple Constants
        +        18 => array(
        +            'false', 'true', 'null'
        +            ),
        +        //Global Variable and Function Addresses
        +        19 => array(
        +            'global', 'addrspace', 'constant', 'section'
        +            ),
        +        //Functions
        +        20 => array(
        +            'declare', 'define'
        +            ),
        +        //Complex Constants
        +        21 => array(
        +            'zeroinitializer'
        +            ),
        +        //Undefined Values
        +        22 => array(
        +            'undef'
        +            ),
        +        //Addresses of Basic Blocks
        +        23 => array(
        +            'blockaddress'
        +            ),
        +        //Visibility Styles
        +        24 => array(
        +            'default', 'hidden', 'protected'
        +            ),
        +        25 => array(
        +            'volatile'
        +            ),
        +        26 => array(
        +            'tail'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array(
        +            '(', ')', '[', ']', '{', '}',
        +            '!', '@', '%', '&', '|', '/',
        +            '<', '>',
        +            '=', '-', '+', '*',
        +            '.', ':', ',', ';'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true,
        +        8 => true,
        +        9 => true,
        +        10 => true,
        +        11 => true,
        +        12 => true,
        +        13 => true,
        +        14 => true,
        +        15 => true,
        +        16 => true,
        +        17 => true,
        +        18 => true,
        +        19 => true,
        +        20 => true,
        +        21 => true,
        +        22 => true,
        +        23 => true,
        +        24 => true,
        +        25 => true,
        +        26 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            0 => 'color: #209090;',
        +            1 => 'color: #0000F0;',
        +            2 => 'color: #00F000; font-weight: bold;',
        +            3 => 'color: #F00000;',
        +            4 => 'color: #00F0F0; font-weight: bold;',
        +            5 => 'color: #F000F0; font-weight: bold;',
        +            6 => 'color: #403020; font-weight: bold;',
        +            7 => 'color: #909090; font-weight: bold;',
        +            8 => 'color: #009090; font-weight: bold;',
        +            9 => 'color: #900090; font-weight: bold;',
        +            10 => 'color: #909000; font-weight: bold;',
        +            11 => 'color: #000090; font-weight: bold;',
        +            12 => 'color: #900000; font-weight: bold;',
        +            13 => 'color: #009000; font-weight: bold;',
        +            14 => 'color: #F0F090; font-weight: bold;',
        +            15 => 'color: #F090F0; font-weight: bold;',
        +            16 => 'color: #90F0F0; font-weight: bold;',
        +            17 => 'color: #9090F0; font-weight: bold;',
        +            18 => 'color: #90F090; font-weight: bold;',
        +            19 => 'color: #F09090; font-weight: bold;',
        +            20 => 'color: #4040F0; font-weight: bold;',
        +            21 => 'color: #40F040; font-weight: bold;',
        +            22 => 'color: #F04040; font-weight: bold;',
        +            23 => 'color: #F0F040; font-weight: bold;',
        +            24 => 'color: #F040F0; font-weight: bold;',
        +            25 => 'color: #40F0F0; font-weight: bold;',
        +            26 => 'color: #904040; font-weight: bold;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            1 => 'color: #000099; font-weight: bold;',
        +            2 => 'color: #660099; font-weight: bold;',
        +            3 => 'color: #660099; font-weight: bold;',
        +            4 => 'color: #006699; font-weight: bold;',
        +            5 => 'color: #006699; font-weight: bold; font-style: italic;',
        +            6 => 'color: #009933; font-weight: bold;',
        +            'HARD' => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;',
        +            'HARD' => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;',
        +            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #004000;',
        +            2 => 'color: #004000;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;',
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #007088;',
        +            1 => 'color: #007088;',
        +            // 2 => 'color: #000088;',
        +            3 => 'color: #700088;',
        +            4 => 'color: #010088;',
        +            // 5 => 'color: #610088;',
        +            // 6 => 'color: #616088;',
        +            // 7 => 'color: #616988;',
        +            // 8 => 'color: #616908;',
        +            9 => 'color: #6109F8;',
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            2 => '',
        +            3 => '',
        +            4 => '',
        +            5 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        0 => '',
        +        1 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
        +        2 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
        +        3 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
        +        4 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
        +        5 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
        +        6 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
        +        7 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
        +        8 => 'http://llvm.org/docs/LangRef.html#i_{FNAME}',
        +        9 => 'http://llvm.org/docs/LangRef.html#linkage_{FNAME}',
        +        10 => 'http://llvm.org/docs/LangRef.html#callingconv',
        +        11 => 'http://llvm.org/docs/LangRef.html#namedtypes',
        +        12 => 'http://llvm.org/docs/LangRef.html#paramattrs',
        +        13 => 'http://llvm.org/docs/LangRef.html#fnattrs',
        +        14 => 'http://llvm.org/docs/LangRef.html#moduleasm',
        +        15 => 'http://llvm.org/docs/LangRef.html#datalayout',
        +        16 => 'http://llvm.org/docs/LangRef.html#t_{FNAME}',
        +        17 => 'http://llvm.org/docs/LangRef.html#t_floating',
        +        18 => 'http://llvm.org/docs/LangRef.html#simpleconstants',
        +        19 => 'http://llvm.org/docs/LangRef.html#globalvars',
        +        20 => 'http://llvm.org/docs/LangRef.html#functionstructure',
        +        21 => 'http://llvm.org/docs/LangRef.html#complexconstants',
        +        22 => 'http://llvm.org/docs/LangRef.html#undefvalues',
        +        23 => 'http://llvm.org/docs/LangRef.html#blockaddress',
        +        24 => 'http://llvm.org/docs/LangRef.html#visibility',
        +        25 => 'http://llvm.org/docs/LangRef.html#volatile',
        +        26 => 'http://llvm.org/docs/LangRef.html#i_call',
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        //Variables
        +        0 => '%[-a-zA-Z$\._][-a-zA-Z$\._0-9]*',
        +        //Labels
        +        // 1 => '[-a-zA-Z$\._0-9]+:',
        +        1 => '(?]*<)',
        +        //Strings
        +        // 2 => '"[^"]+"',
        +        //Unnamed variable slots
        +        3 => '%[-]?[0-9]+',
        +        //Integer Types
        +        4 => array(
        +            GESHI_SEARCH => '(? '\\0',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        //Comments
        +        // 5 => ';.*',
        +        //Integer literals
        +        // 6 => '\\b[-]?[0-9]+\\b',
        +        //Floating point constants
        +        // 7 => '\\b[-+]?[0-9]+\.[0-9]*\([eE][-+]?[0-9]+\)?\\b',
        +        //Hex constants
        +        // 8 => '\\b0x[0-9A-Fa-f]+\\b',
        +        //Global variables
        +        9 => array(
        +            GESHI_SEARCH => '@[-a-zA-Z$\._][-a-zA-Z$\._0-9]*',
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true
        +        ),
        +    'SCRIPT_DELIMITERS' => array(),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/locobasic.php b/Sources/geshi/locobasic.php
        new file mode 100644
        index 0000000..61c8a3c
        --- /dev/null
        +++ b/Sources/geshi/locobasic.php
        @@ -0,0 +1,130 @@
        + 'Locomotive Basic',
        +    'COMMENT_SINGLE' => array(1 => "'", 2 => 'REM'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            "AFTER", "AND", "AUTO", "BORDER", "BREAK", "CALL", "CAT", "CHAIN",
        +            "CLEAR", "CLG", "CLS", "CLOSEIN", "CLOSEOUT", "CONT", "CURSOR",
        +            "DATA", "DEF", "DEFINT", "DEFREAL", "DEFSTR", "DEG", "DELETE",
        +            "DERR", "DI", "DIM", "DRAW", "DRAWR", "EDIT", "EI", "ELSE", "END",
        +            "ENV", "ENT", "EOF", "ERASE", "ERL", "ERR", "ERROR", "EVERY",
        +            "FILL", "FN", "FOR", "FRAME", "GOSUB", "GOTO", "GRAPHICS", "HIMEM",
        +            "IF", "INK", "INPUT", "KEY", "LET", "LINE", "LIST", "LOAD",
        +            "LOCATE", "MASK", "MEMORY", "MERGE", "MODE", "MOVE", "MOVER", "NEW",
        +            "NEXT", "NOT", "ON", "OPENIN", "OPENOUT", "OR", "ORIGIN", "PAPER",
        +            "PEEK", "PEN", "PLOT", "PLOTR", "POKE", "PRINT", "RAD", "RANDOMIZE",
        +            "READ", "RELEASE", "REMAIN", "RENUM", "RESTORE", "RESUME", "RETURN",
        +            "RUN", "SAVE", "SPEED", "SOUND", "SPC", "SQ", "STEP", "STOP", "SWAP",
        +            "SYMBOL", "TAB", "TAG", "TAGOFF", "TEST", "TESTR", "TIME", "TO",
        +            "THEN", "TRON", "TROFF", "USING", "WAIT", "WEND", "WHILE", "WIDTH",
        +            "WINDOW", "WRITE", "XOR", "ZONE"
        +            ),
        +        2 => array(
        +            "ABS", "ASC", "ATN", "BIN", "CHR", "CINT", "COPYCHR", "COS",
        +            "CREAL", "DEC", "FIX", "FRE", "EXP", "HEX", "INKEY", "INP", "INSTR",
        +            "INT", "JOY", "LEFT", "LEN", "LOG", "LOG10", "LOWER", "MAX", "MID",
        +            "MIN", "MOD", "OUT", "PI", "POS", "RIGHT", "RND", "ROUND", "SGN",
        +            "SIN", "SPACE", "SQR", "STR", "STRING", "TAN", "UNT", "UPPER",
        +            "VAL", "VPOS", "XPOS", "YPOS"
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000088; font-weight: bold;',
        +            2 => 'color: #AA00AA; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080;',
        +            2 => 'color: #808080;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #008800;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #0044ff;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/logtalk.php b/Sources/geshi/logtalk.php
        new file mode 100644
        index 0000000..0573466
        --- /dev/null
        +++ b/Sources/geshi/logtalk.php
        @@ -0,0 +1,345 @@
        + 'Logtalk',
        +    'COMMENT_SINGLE' => array(1 => '%'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(2 => "/0'./sim"),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'"),
        +    'HARDQUOTE' => array('"', '"'),
        +    'HARDESCAPE' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        //Simple Single Char Escapes
        +        1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
        +        //Hexadecimal Char Specs
        +        2 => "#\\\\x[\da-fA-F]+\\\\#",
        +        //Octal Char Specs
        +        3 => "#\\\\[0-7]+\\\\#"
        +        ),
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC |
        +        GESHI_NUMBER_BIN_PREFIX_0B |
        +        GESHI_NUMBER_OCT_PREFIX_0O |
        +        GESHI_NUMBER_HEX_PREFIX |
        +        GESHI_NUMBER_FLT_NONSCI |
        +        GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        // Directives (with arguments)
        +        1 => array(
        +            // file directives
        +            'encoding', 'ensure_loaded',
        +            // flag directives
        +            'set_logtalk_flag', 'set_prolog_flag',
        +            // entity opening directives
        +            'category', 'object', 'protocol',
        +            // predicate scope directives
        +            'private', 'protected', 'public',
        +            // conditional compilation directives
        +            'elif', 'if',
        +            // entity directives
        +            'calls', 'initialization', 'op', 'uses',
        +            // predicate directives
        +            'alias', 'coinductive', 'discontiguous', 'dynamic', 'mode', 'info', 'meta_predicate', 'multifile', 'synchronized',
        +            // module directives
        +            'export', 'module', 'reexport', 'use_module'
        +            ),
        +        // Directives (no arguments)
        +        2 => array(
        +            // entity directives
        +            'dynamic',
        +            // multi-threading directives
        +            'synchronized', 'threaded',
        +            // entity closing directives
        +            'end_category', 'end_object', 'end_protocol',
        +            // conditional compilation directives
        +            'else', 'endif'
        +            ),
        +        // Entity relations
        +        3 => array(
        +            'complements', 'extends', 'imports', 'implements','instantiates', 'specializes'
        +            ),
        +        // Built-in predicates (with arguments)
        +        4 => array(
        +            // event handlers
        +            'after', 'before',
        +            // execution-context methods
        +            'parameter', 'self', 'sender', 'this',
        +            // predicate reflection
        +            'current_predicate', 'predicate_property',
        +            // DCGs and term expansion
        +            'expand_goal', 'expand_term', 'goal_expansion', 'phrase', 'term_expansion',
        +            // entity
        +            'abolish_category', 'abolish_object', 'abolish_protocol',
        +            'create_category', 'create_object', 'create_protocol',
        +            'current_category', 'current_object', 'current_protocol',
        +            'category_property', 'object_property', 'protocol_property',
        +            // entity relations
        +            'complements_object', 'conforms_to_protocol',
        +            'extends_category', 'extends_object', 'extends_protocol',
        +            'implements_protocol', 'imports_category',
        +            'instantiates_class', 'specializes_class',
        +            // events
        +            'abolish_events', 'current_event', 'define_events',
        +            // flags
        +            'current_logtalk_flag', 'set_logtalk_flag',
        +            'current_prolog_flag', 'set_prolog_flag',
        +            // compiling, loading, and library path
        +            'logtalk_compile', 'logtalk_library_path', 'logtalk_load',
        +            // database
        +            'abolish', 'asserta', 'assertz', 'clause', 'retract', 'retractall',
        +            // control
        +            'call', 'catch', 'ignore', 'once', 'throw',
        +            // all solutions predicates
        +            'bagof', 'findall', 'forall', 'setof',
        +            // multi-threading meta-predicates
        +            'threaded',
        +            'threaded_call', 'threaded_once', 'threaded_ignore', 'threaded_exit', 'threaded_peek',
        +            'threaded_wait', 'threaded_notify',
        +            // term unification
        +            'unify_with_occurs_check',
        +            // atomic term processing
        +            'atom_chars', 'atom_codes', 'atom_concat', 'atom_length',
        +            'number_chars', 'number_codes',
        +            'char_code',
        +            // term creation and decomposition
        +            'arg', 'copy_term', 'functor', 'numbervars',
        +            // term testing
        +            'atom', 'atomic', 'callable', 'compound', 'float', 'ground', 'integer', 'nonvar', 'number', 'sub_atom', 'var',
        +            // term comparison
        +            'compare',
        +            // stream selection and control
        +            'current_input', 'current_output', 'set_input', 'set_output',
        +            'open', 'close', 'flush_output', 'stream_property',
        +            'at_end_of_stream', 'set_stream_position',
        +            // character and byte input/output predicates
        +            'get_byte', 'get_char', 'get_code',
        +            'peek_byte', 'peek_char', 'peek_code',
        +            'put_byte', 'put_char', 'put_code',
        +            'nl',
        +            // term input/output predicates
        +            'current_op', 'op',
        +            'write', 'writeq', 'write_canonical', 'write_term',
        +            'read', 'read_term',
        +            'char_conversion', 'current_char_conversion',
        +            // hooks
        +            'halt',
        +            // sorting
        +            'keysort', 'sort'
        +            ),
        +        // Built-in predicates (no arguments)
        +        5 => array(
        +            // control
        +            'fail', 'repeat', 'true',
        +            // character and byte input/output predicates
        +            'nl',
        +            // implementation defined hooks functions
        +            'halt',
        +            // arithemtic evaluation
        +            'is',
        +            // stream selection and control
        +            'at_end_of_stream', 'flush_output'
        +            ),
        +        // Evaluable functors (with arguments)
        +        6 => array(
        +            'float_integer_part', 'float_fractional_part',
        +            'rem', 'mod', 'abs', 'sign', 'floor', 'truncate', 'round', 'ceiling',
        +            'cos', 'atan', 'exp', 'log', 'sin', 'sqrt'
        +            ),
        +        // Evaluable functors (no arguments)
        +        7 => array(
        +            'e', 'pi', 'mod', 'rem'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array(
        +            // external call
        +            '{', '}'
        +            ),
        +        1 => array(
        +            // arithemtic comparison
        +            '=:=', '=\=', '<', '=<', '>=', '>',
        +            // term comparison
        +            '<<', '>>', '/\\', '\\/', '\\',
        +            // bitwise functors
        +            '==', '\==', '@<', '@=<', '@>=', '@>',
        +            // evaluable functors
        +            '+', '-', '*', '/', '**',
        +            // logic and control
        +            '!', '\\+', ';',
        +            // message sending operators
        +            '::', '^^', ':',
        +            // grammar rule and conditional functors
        +            '-->', '->',
        +            // mode operators
        +            '@', '?',
        +            // term to list predicate
        +            '=..',
        +            // unification
        +            '=', '\\='
        +            ),
        +        2 => array(
        +            // clause and directive functors
        +            ':-'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #2e4dc9;',
        +            2 => 'color: #2e4dc9;',
        +            3 => 'color: #2e4dc9;',
        +            4 => 'color: #9d4f37;',
        +            5 => 'color: #9d4f37;',
        +            6 => 'color: #9d4f37;',
        +            7 => 'color: #9d4f37;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #430000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #60a0b0; font-style: italic;',
        +            2 => 'color: #430000;',
        +            'MULTI' => 'color: #60a0b0; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #9f0000; font-weight: bold;',
        +            1 => 'color: #9f0000; font-weight: bold;',
        +            2 => 'color: #9f0000; font-weight: bold;',
        +            3 => 'color: #9f0000; font-weight: bold;',
        +            'HARD' => '',
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #666666;font-weight: bold;',
        +            1 => 'color: #666666;font-weight: bold;',
        +            2 => 'color: #000000;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #9f0000;',
        +            'HARD' => 'color: #9f0000;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #848484;'
        +            ),
        +        'SCRIPT' => array()
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => '',
        +        7 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        // variables
        +        0 => '\b(?!(?:PIPE|SEMI|REG3XP\d*)[^a-zA-Z0-9_])[A-Z_][a-zA-Z0-9_]*(?![a-zA-Z0-9_])'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'BRACKETS' => GESHI_NEVER
        +        ),
        +        'KEYWORDS' => array(
        +            1 => array(
        +                'DISALLOWED_BEFORE' => '(?<=:-\s)',
        +                'DISALLOWED_AFTER' => '(?=\()'
        +            ),
        +            2 => array(
        +                'DISALLOWED_BEFORE' => '(?<=:-\s)',
        +                'DISALLOWED_AFTER' => '(?=\.)'
        +            ),
        +            3 => array(
        +                'DISALLOWED_BEFORE' => '(?|^&\'"])',
        +                'DISALLOWED_AFTER' => '(?=\()'
        +            ),
        +            4 => array(
        +                'DISALLOWED_BEFORE' => '(?|^&\'"])',
        +                'DISALLOWED_AFTER' => '(?=\()'
        +            ),
        +            5 => array(
        +                'DISALLOWED_BEFORE' => '(?|^&\'"])',
        +                'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\'"])'
        +            ),
        +            6 => array(
        +                'DISALLOWED_BEFORE' => '(?|^&\'"])',
        +                'DISALLOWED_AFTER' => '(?=\()'
        +            ),
        +            7 => array(
        +                'DISALLOWED_BEFORE' => '(?|^&\'"])',
        +                'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\'"])'
        +            )
        +        )
        +    ),
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/lolcode.php b/Sources/geshi/lolcode.php
        new file mode 100644
        index 0000000..ab6088b
        --- /dev/null
        +++ b/Sources/geshi/lolcode.php
        @@ -0,0 +1,152 @@
        + 'LOLcode',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(
        +        1 => "/\bBTW\b.*$/im",
        +        2 => "/(^|\b)(?:OBTW\b.+?\bTLDR|LOL\b.+?\/LOL)(\b|$)/si"
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        1 => '/:[)>o":]/',
        +        2 => '/:\([\da-f]+\)/i',
        +        3 => '/:\{\w+\}/i',
        +        4 => '/:\[\w+\]/i',
        +        ),
        +    'KEYWORDS' => array(
        +        //Statements
        +        1 => array(
        +            'VISIBLE', 'HAI', 'KTHX', 'KTHXBYE', 'SMOOSH', 'GIMMEH', 'PLZ',
        +            'ON', 'INVISIBLE', 'R', 'ITZ', 'GTFO', 'COMPLAIN', 'GIMME',
        +
        +            'OPEN', 'FILE', 'I HAS A', 'AWSUM THX', 'O NOES', 'CAN', 'HAS', 'HAZ',
        +            'HOW DOES I', 'IF U SAY SO', 'FOUND YR', 'BORROW', 'OWN', 'ALONG',
        +            'WITH', 'WIT', 'LOOK', 'AT', 'AWSUM', 'THX'
        +            ),
        +        //Conditionals
        +        2 => array(
        +            'IZ', 'YARLY', 'NOWAI', 'WTF?', 'MEBBE', 'OMG', 'OMGWTF',
        +            'ORLY?', 'OF', 'NOPE', 'SO', 'IM', 'MAI',
        +
        +            'O RLY?', 'SUM', 'BOTH SAEM', 'DIFFRINT', 'BOTH', 'EITHER', 'WON',
        +            'DIFF', 'PRODUKT', 'QUOSHUNT', 'MOD', 'MKAY', 'OK', 'THING',
        +            'BIGNESS'
        +            ),
        +        //Repetition
        +        3 => array(
        +            'IN', 'OUTTA', 'LOOP', 'WHILE'
        +            ),
        +        //Operators \Math
        +        4 => array(
        +            'AN', 'AND', 'NOT', 'UP', 'YR', 'UPPIN', 'NERF', 'NERFIN', 'NERFZ',
        +            'SMASHING', 'UR', 'KINDA', 'LIKE', 'SAEM', 'BIG', 'SMALL',
        +            'BIGGR', 'SMALLR', 'BIGGER', 'SMALLER', 'GOOD', 'CUTE', 'THAN'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '.', ',', '?',
        +        '!!'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #008000;',
        +            2 => 'color: #000080;',
        +            3 => 'color: #000080;',
        +            4 => 'color: #800000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; style: italic;',
        +            2 => 'color: #666666; style: italic;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'SPACE_AS_WHITESPACE' => true
        +            )
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/lotusformulas.php b/Sources/geshi/lotusformulas.php
        new file mode 100644
        index 0000000..12257d7
        --- /dev/null
        +++ b/Sources/geshi/lotusformulas.php
        @@ -0,0 +1,318 @@
        + 'Lotus Notes @Formulas',
        +    'COMMENT_SINGLE' => array(1 => "'"),
        +    'COMMENT_MULTI' => array('REM' => ';'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array (
        +            '[ZoomPreview]', '[WorkspaceStackReplicaIcons]',
        +            '[WorkspaceProperties]', '[WindowWorkspace]',
        +            '[WindowTile]', '[WindowRestore]', '[WindowNext]',
        +            '[WindowMinimizeAll]', '[WindowMinimize]', '[WindowMaximizeAll]',
        +            '[WindowMaximize]', '[WindowCascade]', '[ViewSwitchForm]',
        +            '[ViewShowUnread]', '[ViewShowServerNames]', '[ViewShowSearchBar]',
        +            '[ViewShowRuler]', '[ViewShowPageBreaks]', '[ViewShowOnlyUnread]',
        +            '[ViewShowOnlySelected]', '[ViewShowOnlySearchResults]',
        +            '[ViewShowOnlyCategories]', '[ViewShowObject]',
        +            '[ViewShowFieldHelp]', '[ViewRenamePerson]', '[ViewRefreshUnread]',
        +            '[ViewRefreshFields]', '[ViewNavigatorsNone]',
        +            '[ViewNavigatorsFolders]', '[ViewMoveName]', '[ViewHorizScrollbar]',
        +            '[ViewExpandWithChildren]', '[ViewExpandAll]', '[ViewExpand]',
        +            '[ViewCollapseAll]', '[ViewCollapse]', '[ViewChange]',
        +            '[ViewCertify]', '[ViewBesideFolders]', '[ViewBelowFolders]',
        +            '[ViewArrangeIcons]', '[V3EditPrevField]', '[V3EditNextField]',
        +            '[UserIDSwitch]', '[UserIDSetPassword]', '[UserIDMergeCopy]',
        +            '[UserIDInfo]', '[UserIDEncryptionKeys]', '[UserIDCreateSafeCopy]',
        +            '[UserIDClearPassword]', '[UserIDCertificates]',
        +            '[ToolsUserLogoff]', '[ToolsSpellCheck]', '[ToolsSmartIcons]',
        +            '[ToolsSetupUserSetup]', '[ToolsSetupPorts]', '[ToolsSetupMail]',
        +            '[ToolsSetupLocation]', '[ToolsScanUnreadSelected]',
        +            '[ToolsScanUnreadPreferred]', '[ToolsScanUnreadChoose]',
        +            '[ToolsRunMacro]', '[ToolsRunBackgroundMacros]', '[ToolsReplicate]',
        +            '[ToolsRefreshSelectedDocs]', '[ToolsRefreshAllDocs]',
        +            '[ToolsMarkSelectedUnread]', '[ToolsMarkSelectedRead]',
        +            '[ToolsMarkAllUnread]', '[ToolsMarkAllRead]', '[ToolsHangUp]',
        +            '[ToolsCategorize]', '[ToolsCall]', '[TextUnderline]',
        +            '[TextSpacingSingle]', '[TextSpacingOneAndaHalf]',
        +            '[TextSpacingDouble]', '[TextSetFontSize]', '[TextSetFontFace]',
        +            '[TextSetFontColor]', '[TextReduceFont]', '[TextPermanentPen]',
        +            '[TextParagraphStyles]', '[TextParagraph]', '[TextOutdent]',
        +            '[TextNumbers]', '[TextNormal]', '[TextItalic]', '[TextFont]',
        +            '[TextEnlargeFont]', '[TextCycleSpacing]', '[TextBullet]',
        +            '[TextBold]', '[TextAlignRight]', '[TextAlignNone]',
        +            '[TextAlignLeft]', '[TextAlignFull]', '[TextAlignCenter]',
        +            '[SwitchView]', '[SwitchForm]', '[StyleCycleKey]',
        +            '[SmartIconsNextSet]', '[SmartIconsFloating]', '[ShowProperties]',
        +            '[ShowHidePreviewPane]', '[ShowHideParentPreview]',
        +            '[ShowHideLinkPreview]', '[ShowHideIMContactList]',
        +            '[SetCurrentLocation]', '[SendInstantMessage]',
        +            '[SectionRemoveHeader]', '[SectionProperties]',
        +            '[SectionExpandAll]', '[SectionExpand]', '[SectionDefineEditors]',
        +            '[SectionCollapseAll]', '[SectionCollapse]', '[RunScheduledAgents]',
        +            '[RunAgent]', '[ReplicatorStop]', '[ReplicatorStart]',
        +            '[ReplicatorSendReceiveMail]', '[ReplicatorSendMail]',
        +            '[ReplicatorReplicateWithServer]', '[ReplicatorReplicateSelected]',
        +            '[ReplicatorReplicateNext]', '[ReplicatorReplicateHigh]',
        +            '[Replicator]', '[RenameDatabase]', '[RemoveFromFolder]',
        +            '[RemoteDebugLotusScript]', '[ReloadWindow]', '[RefreshWindow]',
        +            '[RefreshParentNote]', '[RefreshHideFormulas]', '[RefreshFrame]',
        +            '[PublishDatabase]', '[PictureProperties]', '[PasteBitmapAsObject]',
        +            '[PasteBitmapAsBackground]', '[OpenView]', '[OpenPage]',
        +            '[OpenNavigator]', '[OpenInNewWindow]', '[OpenHelpDocument]',
        +            '[OpenFrameset]', '[OpenDocument]', '[OpenCalendar]',
        +            '[ObjectProperties]', '[ObjectOpen]', '[ObjectDisplayAs]',
        +            '[NavPrevUnread]', '[NavPrevSelected]', '[NavPrevMain]',
        +            '[NavPrev]', '[NavNextUnread]', '[NavNextSelected]',
        +            '[NavNextMain]', '[NavNext]', '[NavigatorTest]',
        +            '[NavigatorProperties]', '[NavigateToBacklink]',
        +            '[NavigatePrevUnread]', '[NavigatePrevSelected]',
        +            '[NavigatePrevMain]', '[NavigatePrevHighlight]', '[NavigatePrev]',
        +            '[NavigateNextUnread]', '[NavigateNextSelected]',
        +            '[NavigateNextMain]', '[NavigateNextHighlight]', '[NavigateNext]',
        +            '[MoveToTrash]', '[MailSendPublicKey]', '[MailSendEncryptionKey]',
        +            '[MailSendCertificateRequest]', '[MailSend]', '[MailScanUnread]',
        +            '[MailRequestNewPublicKey]', '[MailRequestNewName]',
        +            '[MailRequestCrossCert]', '[MailOpen]', '[MailForwardAsAttachment]',
        +            '[MailForward]', '[MailComposeMemo]', '[MailAddress]',
        +            '[LayoutProperties]', '[LayoutElementSendToBack]',
        +            '[LayoutElementProperties]', '[LayoutElementBringToFront]',
        +            '[LayoutAddText]', '[LayoutAddGraphic]', '[InsertSubform]',
        +            '[HotspotProperties]', '[HotspotClear]', '[HelpUsingDatabase]',
        +            '[HelpAboutNotes]', '[HelpAboutDatabase]', '[GoUpLevel]',
        +            '[FormTestDocument]', '[FormActions]', '[FolderRename]',
        +            '[FolderProperties]', '[FolderMove]', '[FolderExpandWithChildren]',
        +            '[FolderExpandAll]', '[FolderExpand]', '[FolderDocuments]',
        +            '[FolderCustomize]', '[FolderCollapse]', '[Folder]',
        +            '[FindFreeTimeDialog]', '[FileSaveNewVersion]', '[FileSave]',
        +            '[FilePrintSetup]', '[FilePrint]', '[FilePageSetup]',
        +            '[FileOpenDBRepID]', '[FileOpenDatabase]', '[FileNewReplica]',
        +            '[FileNewDatabase]', '[FileImport]', '[FileFullTextUpdate]',
        +            '[FileFullTextInfo]', '[FileFullTextDelete]',
        +            '[FileFullTextCreate]', '[FileExport]', '[FileExit]',
        +            '[FileDatabaseUseServer]', '[FileDatabaseRemove]',
        +            '[FileDatabaseInfo]', '[FileDatabaseDelete]', '[FileDatabaseCopy]',
        +            '[FileDatabaseCompact]', '[FileDatabaseACL]', '[FileCloseWindow]',
        +            '[ExitNotes]', '[Execute]', '[ExchangeUnreadMarks]', '[EmptyTrash]',
        +            '[EditUp]', '[EditUntruncate]', '[EditUndo]', '[EditTop]',
        +            '[EditTableInsertRowColumn]', '[EditTableFormat]',
        +            '[EditTableDeleteRowColumn]', '[EditShowHideHiddenChars]',
        +            '[EditSelectByDate]', '[EditSelectAll]', '[EditRight]',
        +            '[EditRestoreDocument]', '[EditResizePicture]',
        +            '[EditQuoteSelection]', '[EditProfileDocument]', '[EditProfile]',
        +            '[EditPrevField]', '[EditPhoneNumbers]', '[EditPasteSpecial]',
        +            '[EditPaste]', '[EditOpenLink]', '[EditNextField]',
        +            '[EditMakeDocLink]', '[EditLocations]', '[EditLinks]', '[EditLeft]',
        +            '[EditInsertText]', '[EditInsertTable]', '[EditInsertPopup]',
        +            '[EditInsertPageBreak]', '[EditInsertObject]',
        +            '[EditInsertFileAttachment]', '[EditInsertButton]',
        +            '[EditIndentFirstLine]', '[EditIndent]', '[EditHorizScrollbar]',
        +            '[EditHeaderFooter]', '[EditGotoField]', '[EditFindNext]',
        +            '[EditFindInPreview]', '[EditFind]', '[EditEncryptionKeys]',
        +            '[EditDown]', '[EditDocument]', '[EditDetach]', '[EditDeselectAll]',
        +            '[EditCut]', '[EditCopy]', '[EditClear]', '[EditButton]',
        +            '[EditBottom]', '[DiscoverFolders]', '[Directories]',
        +            '[DialingRules]', '[DesignViewSelectFormula]', '[DesignViews]',
        +            '[DesignViewNewColumn]', '[DesignViewFormFormula]',
        +            '[DesignViewEditActions]', '[DesignViewColumnDef]',
        +            '[DesignViewAttributes]', '[DesignViewAppendColumn]',
        +            '[DesignSynopsis]', '[DesignSharedFields]', '[DesignReplace]',
        +            '[DesignRefresh]', '[DesignMacros]', '[DesignIcon]',
        +            '[DesignHelpUsingDocument]', '[DesignHelpAboutDocument]',
        +            '[DesignFormWindowTitle]', '[DesignFormUseField]',
        +            '[DesignFormShareField]', '[DesignForms]', '[DesignFormNewField]',
        +            '[DesignFormFieldDef]', '[DesignFormAttributes]',
        +            '[DesignDocumentInfo]', '[DebugLotusScript]',
        +            '[DatabaseReplSettings]', '[DatabaseDelete]', '[CreateView]',
        +            '[CreateTextbox]', '[CreateSubForm]', '[CreateSection]',
        +            '[CreateRectangularHotspot]', '[CreateRectangle]',
        +            '[CreatePolyline]', '[CreatePolygon]', '[CreateNavigator]',
        +            '[CreateLayoutRegion]', '[CreateForm]', '[CreateFolder]',
        +            '[CreateEllipse]', '[CreateControlledAccessSection]',
        +            '[CreateAgent]', '[CreateAction]', '[CopySelectedAsTable]',
        +            '[ComposeWithReference]', '[Compose]', '[CloseWindow]', '[Clear]',
        +            '[ChooseFolders]', '[CalendarGoTo]', '[CalendarFormat]',
        +            '[AttachmentView]', '[AttachmentProperties]', '[AttachmentLaunch]',
        +            '[AttachmentDetachAll]', '[AgentTestRun]', '[AgentSetServerName]',
        +            '[AgentRun]', '[AgentLog]', '[AgentEnableDisable]', '[AgentEdit]',
        +            '[AdminTraceConnection]', '[AdminStatisticsConfig]',
        +            '[AdminSendMailTrace]', '[AdminRemoteConsole]',
        +            '[AdminRegisterUser]', '[AdminRegisterServer]',
        +            '[AdminRegisterFromFile]', '[AdminOutgoingMail]',
        +            '[AdminOpenUsersView]', '[AdminOpenStatistics]',
        +            '[AdminOpenServersView]', '[AdminOpenServerLog]',
        +            '[AdminOpenGroupsView]', '[AdminOpenCertLog]', '[AdminOpenCatalog]',
        +            '[AdminOpenAddressBook]', '[AdminNewOrgUnit]',
        +            '[AdminNewOrganization]', '[Administration]',
        +            '[AdminIDFileSetPassword]', '[AdminIDFileExamine]',
        +            '[AdminIDFileClearPassword]', '[AdminDatabaseQuotas]',
        +            '[AdminDatabaseAnalysis]', '[AdminCrossCertifyKey]',
        +            '[AdminCrossCertifyIDFile]', '[AdminCreateGroup]', '[AdminCertify]',
        +            '[AddToIMContactList]', '[AddDatabaseRepID]', '[AddDatabase]',
        +            '[AddBookmark]'
        +            ),
        +        2 => array(
        +            'SELECT', 'FIELD', 'ENVIRONMENT', 'DEFAULT', '@Zone ', '@Yesterday',
        +            '@Yes', '@Year', '@Word', '@Wide', '@While', '@Weekday',
        +            '@WebDbName', '@ViewTitle', '@ViewShowThisUnread', '@Version',
        +            '@VerifyPassword', '@ValidateInternetAddress', '@V4UserAccess',
        +            '@V3UserName', '@V2If', '@UserRoles', '@UserPrivileges',
        +            '@UserNamesList', '@UserNameLanguage', '@UserName', '@UserAccess',
        +            '@UrlQueryString', '@URLOpen', '@URLHistory', '@URLGetHeader',
        +            '@URLEncode', '@URLDecode', '@UpperCase', '@UpdateFormulaContext',
        +            '@Unique', '@UndeleteDocument', '@Unavailable', '@True', '@Trim',
        +            '@Transform', '@ToTime', '@ToNumber', '@Tomorrow', '@Today',
        +            '@TimeZoneToText', '@TimeToTextInZone', '@TimeMerge', '@Time',
        +            '@ThisValue', '@ThisName', '@TextToTime', '@TextToNumber', '@Text',
        +            '@TemplateVersion', '@Tan', '@Sum', '@Success', '@Subset',
        +            '@StatusBar', '@Sqrt', '@Soundex', '@Sort', '@Sin', '@Sign',
        +            '@SetViewInfo', '@SetTargetFrame', '@SetProfileField',
        +            '@SetHTTPHeader', '@SetField', '@SetEnvironment', '@SetDocField',
        +            '@Set', '@ServerName', '@ServerAccess', '@Select', '@Second',
        +            '@Round', '@RightBack', '@Right', '@Return', '@Responses',
        +            '@ReplicaID', '@ReplaceSubstring', '@Replace', '@Repeat',
        +            '@RegQueryValue', '@RefreshECL', '@Random', '@ProperCase',
        +            '@Prompt', '@Power', '@PostedCommand', '@PolicyIsFieldLocked',
        +            '@Platform', '@PickList', '@Pi', '@PasswordQuality', '@Password',
        +            '@OrgDir', '@OptimizeMailAddress', '@OpenInNewWindow', '@Now',
        +            '@Nothing', '@NoteID', '@No', '@NewLine', '@Narrow', '@NameLookup',
        +            '@Name', '@Month', '@Modulo', '@Modified', '@Minute', '@Min',
        +            '@MiddleBack', '@Middle', '@Member', '@Max', '@Matches',
        +            '@MailSignPreference', '@MailSend', '@MailSavePreference',
        +            '@MailEncryptSentPreference', '@MailEncryptSavedPreference',
        +            '@MailDbName', '@LowerCase', '@Log', '@Locale', '@Ln', '@Like',
        +            '@Length', '@LeftBack', '@Left', '@LDAPServer', '@LaunchApp',
        +            '@LanguagePreference', '@Keywords', '@IsVirtualizedDirectory',
        +            '@IsValid', '@IsUsingJavaElement', '@IsUnavailable', '@IsTime',
        +            '@IsText', '@IsResponseDoc', '@IsNumber', '@IsNull', '@IsNotMember',
        +            '@IsNewDoc', '@IsModalHelp', '@IsMember', '@IsExpandable',
        +            '@IsError', '@IsEmbeddedInsideWCT', '@IsDocTruncated',
        +            '@IsDocBeingSaved', '@IsDocBeingRecalculated', '@IsDocBeingMailed',
        +            '@IsDocBeingLoaded', '@IsDocBeingEdited', '@IsDB2', '@IsCategory',
        +            '@IsAvailable', '@IsAppInstalled', '@IsAgentEnabled', '@Integer',
        +            '@InheritedDocumentUniqueID', '@Implode', '@IfError', '@If',
        +            '@Hour', '@HashPassword', '@HardDeleteDocument', '@GetViewInfo',
        +            '@GetProfileField', '@GetPortsList', '@GetIMContactListGroupNames',
        +            '@GetHTTPHeader', '@GetFocusTable', '@GetField', '@GetDocField',
        +            '@GetCurrentTimeZone', '@GetAddressBooks', '@FormLanguage', '@For',
        +            '@FontList', '@FloatEq', '@FileDir', '@False', '@Failure',
        +            '@Explode', '@Exp', '@Eval', '@Error', '@Environment', '@Ends',
        +            '@EnableAlarms', '@Elements', '@EditUserECL', '@EditECL',
        +            '@DoWhile', '@Domain', '@DocumentUniqueID', '@DocSiblings',
        +            '@DocParentNumber', '@DocOmmittedLength', '@DocNumber', '@DocMark',
        +            '@DocLock', '@DocLevel', '@DocLength', '@DocFields',
        +            '@DocDescendants', '@DocChildren', '@Do', '@DialogBox',
        +            '@DeleteField', '@DeleteDocument', '@DDETerminate', '@DDEPoke',
        +            '@DDEInitiate', '@DDEExecute', '@DbTitle', '@DbName', '@DbManager',
        +            '@DbLookup', '@DbExists', '@DbCommand', '@DbColumn', '@DB2Schema',
        +            '@Day', '@Date', '@Created', '@Count', '@Cos', '@Contains',
        +            '@ConfigFile', '@Compare', '@Command', '@ClientType',
        +            '@CheckFormulaSyntax', '@CheckAlarms', '@Char', '@Certificate',
        +            '@BusinessDays', '@BrowserInfo', '@Begins', '@Author',
        +            '@Attachments', '@AttachmentNames', '@AttachmentModifiedTimes',
        +            '@AttachmentLengths', '@ATan2', '@ATan', '@ASin', '@Ascii',
        +            '@AllDescendants', '@AllChildren', '@All', '@AdminECLIsLocked',
        +            '@Adjust', '@AddToFolder', '@ACos', '@Accessed', '@AbstractSimple',
        +            '@Abstract', '@Abs'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #800000;',
        +            2 => 'color: #0000FF;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008000;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #FF00FF;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #FF00FF;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #0000AA;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 2
        +    );
        +
        +?>
        diff --git a/Sources/geshi/lotusscript.php b/Sources/geshi/lotusscript.php
        new file mode 100644
        index 0000000..b8b65f2
        --- /dev/null
        +++ b/Sources/geshi/lotusscript.php
        @@ -0,0 +1,191 @@
        + 'LotusScript',
        +    'COMMENT_SINGLE' => array(1 => "'"),
        +    'COMMENT_MULTI' => array('%REM' => '%END REM'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"' , "|"),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array (
        +            'Yield', 'Year', 'Xor', 'Write', 'With', 'Width', 'While', 'Wend',
        +            'Weekday', 'VarType', 'Variant', 'Val', 'UString', 'UString$',
        +            'UseLSX', 'Use', 'Until', 'Unlock', 'Unicode', 'Uni', 'UChr',
        +            'UChr$', 'UCase', 'UCase$', 'UBound', 'TypeName', 'Type', 'TRUE',
        +            'Trim', 'Trim$', 'Today', 'To', 'TimeValue', 'TimeSerial', 'Timer',
        +            'TimeNumber', 'Time', 'Time$', 'Then', 'Text', 'Tan', 'Tab', 'Sub',
        +            'StrToken', 'StrToken$', 'StrRightBack', 'StrRightBack$',
        +            'StrRight', 'StrRight$', 'StrLeftBack', 'StrLeftBack$', 'StrLeft',
        +            'StrLeft$', 'String', 'String$', 'StrConv', 'StrCompare', 'StrComp',
        +            'Str', 'Str$', 'Stop', 'Step', 'Static', 'Sqr', 'Split', 'Spc',
        +            'Space', 'Space$', 'Sleep', 'Single', 'Sin', 'Shell', 'Shared',
        +            'Sgn', 'SetFileAttr', 'SetAttr', 'Set', 'SendKeys', 'Select',
        +            'Seek', 'Second', 'RTrim', 'RTrim$', 'RSet', 'Round', 'Rnd',
        +            'RmDir', 'RightC', 'RightC$', 'RightBP', 'RightBP$', 'RightB',
        +            'RightB$', 'Right', 'Right$', 'Return', 'Resume', 'Reset',
        +            'Replace', 'Remove', 'Rem', 'ReDim', 'Read', 'Randomize',
        +            'Random', 'Put', 'Public', 'Property', 'Private', 'Print',
        +            'Preserve', 'Pitch', 'PI', 'Output', 'Or', 'Option', 'Open', 'On',
        +            'Oct', 'Oct$', 'NULL', 'Now', 'NOTHING', 'Not', 'NoPitch', 'NoCase',
        +            'Next', 'New', 'Name', 'MsgBox', 'Month', 'Mod', 'MkDir', 'Minute',
        +            'MidC', 'MidC$', 'MidBP', 'MidBP$', 'MidB', 'MidB$', 'Mid', 'Mid$',
        +            'MessageBox', 'Me', 'LTrim', 'LTrim$', 'LSServer', 'LSI_Info',
        +            'LSet', 'Loop', 'Long', 'Log', 'LOF', 'Lock', 'LOC', 'LMBCS',
        +            'ListTag', 'List', 'Line', 'Like', 'Lib', 'Let', 'LenC', 'LenBP',
        +            'LenB', 'Len', 'LeftC', 'LeftC$', 'LeftBP', 'LeftBP$', 'LeftB',
        +            'LeftB$', 'Left', 'Left$', 'LCase', 'LCase$', 'LBound', 'Kill',
        +            'Join', 'IsUnknown', 'IsScalar', 'IsObject', 'IsNumeric', 'IsNull',
        +            'IsList', 'IsEmpty', 'IsElement', 'IsDate', 'IsArray', 'IsA', 'Is',
        +            'Integer', 'Int', 'InStrC', 'InStrBP', 'InStrB', 'InStr', 'InputBP',
        +            'InputBP$', 'InputBox', 'InputBox$', 'InputB', 'InputB$', 'Input',
        +            'Input$', 'In', 'IMSetMode', 'Implode', 'Implode$', 'Imp',
        +            'IMEStatus', 'If', 'Hour', 'Hex', 'Hex$', 'Goto', 'GoSub',
        +            'GetThreadInfo', 'GetFileAttr', 'GetAttr', 'Get', 'Function',
        +            'FullTrim', 'From', 'FreeFile', 'Fraction', 'Format', 'Format$',
        +            'ForAll', 'For', 'Fix', 'FileLen', 'FileDateTime', 'FileCopy',
        +            'FileAttr', 'FALSE', 'Explicit', 'Exp', 'Exit', 'Execute', 'Event',
        +            'Evaluate', 'Error', 'Error$', 'Err', 'Erl', 'Erase', 'Eqv', 'EOF',
        +            'Environ', 'Environ$', 'End', 'ElseIf', 'Else', 'Double', 'DoEvents',
        +            'Do', 'Dir', 'Dir$', 'Dim', 'DestroyLock', 'Delete', 'DefVar',
        +            'DefStr', 'DefSng', 'DefLng', 'DefInt', 'DefDbl', 'DefCur',
        +            'DefByte', 'DefBool', 'Declare', 'Day', 'DateValue', 'DateSerial',
        +            'DateNumber', 'Date', 'Date$', 'DataType', 'CVDate', 'CVar',
        +            'Currency', 'CurDrive', 'CurDrive$', 'CurDir', 'CurDir$', 'CStr',
        +            'CSng', 'CreateLock', 'Cos', 'Const', 'Compare', 'Command',
        +            'Command$', 'CodeUnlock', 'CodeLockCheck', 'CodeLock', 'Close',
        +            'CLng', 'Class', 'CInt', 'Chr', 'Chr$', 'ChDrive', 'ChDir', 'CDbl',
        +            'CDat', 'CCur', 'CByte', 'CBool', 'Case', 'Call', 'ByVal', 'Byte',
        +            'Boolean', 'Bind', 'Binary', 'Bin', 'Bin$', 'Beep', 'Base', 'Atn2',
        +            'Atn', 'ASin', 'Asc', 'As', 'ArrayUnique', 'ArrayReplace',
        +            'ArrayGetIndex', 'ArrayAppend', 'Append', 'AppActivate', 'Any',
        +            'And', 'Alias', 'ActivateApp', 'ACos', 'Access', 'Abs', '%Include',
        +            '%If', '%END', '%ElseIf', '%Else'
        +            ),
        +        2 => array (
        +            'NotesXSLTransformer', 'NotesXMLProcessor', 'NotesViewNavigator',
        +            'NotesViewEntryCollection', 'NotesViewEntry', 'NotesViewColumn',
        +            'NotesView', 'NotesUIWorkspace', 'NotesUIView', 'NotesUIScheduler',
        +            'NotesUIDocument', 'NotesUIDatabase', 'NotesTimer', 'NotesStream',
        +            'NotesSession', 'NotesSAXParser', 'NotesSAXException',
        +            'NotesSAXAttributeList', 'NotesRichTextTable', 'NotesRichTextTab',
        +            'NotesRichTextStyle', 'NotesRichTextSection', 'NotesRichTextRange',
        +            'NotesRichTextParagraphStyle', 'NotesRichTextNavigator',
        +            'NotesRichTextItem', 'NotesRichTextDocLink',
        +            'NotesReplicationEntry', 'NotesReplication', 'NotesRegistration',
        +            'NotesOutlineEntry', 'NotesOutline', 'NotesNoteCollection',
        +            'NotesNewsLetter', 'NotesName', 'NotesMIMEHeader',
        +            'NotesMIMEEntity', 'NotesLog', 'NotesItem', 'NotesInternational',
        +            'NotesForm', 'NotesEmbeddedObject', 'NotesDXLImporter',
        +            'NotesDXLExporter', 'NotesDOMXMLDeclNode', 'NotesDOMTextNode',
        +            'NotesDOMProcessingInstructionNode', 'NotesDOMParser',
        +            'NotesDOMNotationNode', 'NotesDOMNodeList', 'NotesDOMNode',
        +            'NotesDOMNamedNodeMap', 'NotesDOMEntityReferenceNode',
        +            'NotesDOMEntityNode', 'NotesDOMElementNode',
        +            'NotesDOMDocumentTypeNode', 'NotesDOMDocumentNode',
        +            'NotesDOMDocumentFragmentNode', 'NotesDOMCommentNode',
        +            'NotesDOMCharacterDataNote', 'NotesDOMCDATASectionNode',
        +            'NotesDOMAttributeNode', 'NotesDocumentCollection', 'NotesDocument',
        +            'NotesDbDirectory', 'NotesDateTime', 'NotesDateRange',
        +            'NotesDatabase', 'NotesColorObject', 'NotesAgent',
        +            'NotesAdministrationProcess', 'NotesACLEntry', 'NotesACL',
        +            'Navigator', 'Field', 'Button'
        +            )
        +        ) ,
        +    'SYMBOLS' => array(
        +        '(', ')'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000FF;',
        +            2 => 'color: #0000EE;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008000;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #FF00FF;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #0000AA;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #006600;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 2
        +);
        +
        +?>
        diff --git a/Sources/geshi/lscript.php b/Sources/geshi/lscript.php
        new file mode 100644
        index 0000000..298af61
        --- /dev/null
        +++ b/Sources/geshi/lscript.php
        @@ -0,0 +1,387 @@
        + 'LScript',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +    //Yes, I'm aware these are out of order,
        +    //I had to rearrange and couldn't be bothered changing the numbers...
        +        7 => array(
        +            '@data', '@define', '@else', '@end', '@fpdepth', '@if', '@include',
        +            '@insert', '@library', '@localipc', '@name', '@save', '@script',
        +            '@sequence', '@version', '@warnings'
        +            ),
        +        1 => array(
        +            'break', 'case', 'continue', 'else', 'end', 'false', 'for',
        +            'foreach', 'if', 'return', 'switch', 'true', 'while',
        +            ),
        +        3 => array(
        +            'active', 'alertlevel', 'alpha', 'alphaprefix', 'animfilename', 'autokeycreate',
        +            'backdroptype', 'blue', 'boxthreshold', 'button',
        +            'channelsvisible', 'childrenvisible', 'compfg', 'compbg', 'compfgalpha',
        +            'coneangles', 'cosine', 'count', 'ctl', 'curFilename', 'curFrame',
        +            'currenttime', 'curTime', 'curType',
        +            'depth', 'diffshade', 'diffuse', 'dimensions', 'displayopts', 'dynamicupdate',
        +            'end', 'eta',
        +            'filename', 'flags', 'fogtype', 'fps', 'frame', 'frameend', 'frameheight',
        +            'framestart', 'framestep', 'framewidth',
        +            'generalopts', 'genus', 'geometry', 'gNorm', 'goal', 'green',
        +            'h', 'hasAlpha', 'height',
        +            'id', 'innerlimit', 'isColor',
        +            'keyCount', 'keys',
        +            'limiteregion', 'locked', 'luminous',
        +            'maxsamplesperpixel', 'minsamplesperpixel', 'mirror', 'motionx', 'motiony',
        +            'name', 'newFilename', 'newFrame', 'newTime', 'newType', 'null', 'numthreads',
        +            'objID', 'oPos', 'outerlimit', 'oXfrm',
        +            'parent', 'pixel', 'pixelaspect', 'point', 'points', 'pointcount', 'polNum',
        +            'polycount', 'polygon', 'polygons', 'postBehavior', 'preBehavior', 'previewend',
        +            'previewstart', 'previewstep',
        +            'range', 'rawblue', 'rawgreen', 'rawred', 'rayLength', 'raySource', 'red',
        +            'reflectblue', 'reflectgreen', 'reflectred', 'recursiondepth', 'renderend',
        +            'renderopts', 'renderstart', 'renderstep', 'rendertype', 'restlength',
        +            'rgbprefix', 'roughness',
        +            'selected', 'setColor', 'setPattern', 'shading', 'shadow', 'shadows',
        +            'shadowtype', 'size', 'source', 'special', 'specshade', 'specular',
        +            'spotsize', 'start', 'sx', 'sy', 'sz',
        +            'target', 'totallayers', 'totalpoints', 'totalpolygons', 'trans', 'transparency',
        +            'type',
        +            'value', 'view', 'visible', 'visibility',
        +            'w', 'width', 'wNorm', 'wPos', 'wXfrm',
        +            'x', 'xoffset',
        +            'y', 'yoffset',
        +            'z'
        +            ),
        +        4 => array(
        +            'addLayer', 'addParticle', 'alphaspot', 'ambient', 'asAsc', 'asBin',
        +            'asInt', 'asNum', 'asStr', 'asVec', 'attach', 'axislocks',
        +            'backdropColor', 'backdropRay', 'backdropSqueeze', 'bone', 'blurLength',
        +            'close', 'color', 'contains', 'copy', 'createKey',
        +            'deleteKey', 'detach', 'drawCircle', 'drawLine', 'drawPoint', 'drawText',
        +            'drawTriangle',
        +            'edit', 'eof', 'event',
        +            'firstChannel', 'firstLayer', 'firstSelect', 'focalLength', 'fogColor',
        +            'fogMaxAmount', 'fogMaxDist', 'fogMinAmount', 'fogMinDist',
        +            'fovAngles', 'fStop', 'firstChild', 'focalDistance',
        +            'get', 'getChannelGroup', 'getEnvelope', 'getForward', 'getKeyBias',
        +            'getKeyContinuity', 'getKeyCurve', 'getKeyHermite', 'getKeyTension',
        +            'getKeyTime', 'getKeyValue', 'getParticle', 'getPivot', 'getPosition',
        +            'getRight', 'getRotation', 'getSelect', 'getScaling', 'getTag', 'getTexture',
        +            'getUp', 'getValue', 'getWorldPosition', 'getWorldForward', 'getWorldRight',
        +            'getWorldRotation', 'getWorldUp', 'globalBlur', 'globalMask', 'globalResolution',
        +            'hasCCEnd', 'hasCCStart',
        +            'illuminate', 'indexOf', 'isAscii', 'isAlnum', 'isAlpha', 'isBone',
        +            'isCamera', 'isChannel', 'isChannelGroup', 'isCntrl', 'isCurve', 'isDigit',
        +            'isEnvelope', 'isImage', 'isInt', 'isLight', 'isLower', 'isMapped', 'isMesh',
        +            'isNil', 'isNum', 'IsOpen', 'isOriginal', 'isPrint', 'isPunct', 'isScene',
        +            'isSpace', 'isStr', 'isUpper', 'isValid', 'isVMap', 'isVec', 'isXDigit',
        +            'keyExists',
        +            'layer', 'layerName', 'layerVisible', 'limits', 'line', 'linecount', 'load', 'luma',
        +            'next', 'nextLayer', 'nextSelect', 'nextChannel', 'nextChild', 'nl',
        +            'offset', 'open',
        +            'pack', 'param', 'parse', 'paste', 'persist', 'polygonCount', 'position',
        +            'rayCast', 'rayTrace', 'read', 'readByte', 'readInt', 'readNumber',
        +            'readDouble', 'readShort', 'readString', 'readVector', 'reduce',
        +            'remParticle', 'renderCamera', 'reopen', 'replace', 'reset', 'restParam',
        +            'rewind', 'rgb', 'rgbambient', 'rgbcolor', 'rgbspot',
        +            'save', 'schemaPosition', 'select', 'set', 'setChannelGroup', 'setKeyBias',
        +            'setKeyContinuity', 'setKeyCurve',
        +            'setKeyHermite', 'setKeyTension', 'setKeyValue', 'setParticle', 'setPoints',
        +            'setTag', 'setValue', 'server', 'serverFlags', 'sortA', 'sortD', 'surface',
        +            'trunc',
        +            'write', 'writeln', 'writeByte', 'writeData', 'writeNumber', 'writeDouble',
        +            'writeShort', 'writeString', 'writeVector',
        +            'vertex', 'vertexCount',
        +            'zoomFactor'
        +            ),
        +        2 => array(
        +            'abs', 'acos', 'angle', 'append', 'ascii', 'asin', 'atan',
        +            'binary',
        +            'ceil', 'center', 'chdir', 'clearimage', 'cloned', 'comringattach',
        +            'comringdecode', 'comringdetach', 'comringencode', 'comringmsg', 'cos',
        +            'cosh', 'cot', 'cross2d', 'cross3d', 'csc', 'ctlstring', 'ctlinteger',
        +            'ctlnumber', 'ctlvector', 'ctldistance', 'ctlchoice', 'ctltext',
        +            'ctlcolor', 'ctlsurface', 'ctlfont', 'ctlpopup', 'ctledit', 'ctlpercent',
        +            'ctlangle', 'ctlrgb', 'ctlhsv', 'ctlcheckbox', 'ctlstate', 'ctlfilename',
        +            'ctlbutton', 'ctllistbox', 'ctlslider', 'ctlminislider', 'ctlsep', 'ctlimage',
        +            'ctltab', 'ctlallitems', 'ctlmeshitems', 'ctlcameraitems', 'ctllightitems',
        +            'ctlboneitems', 'ctlimageitems', 'ctlchannel', 'ctlviewport', 'Control_Management',
        +            'ctlpage', 'ctlgroup', 'ctlposition', 'ctlactive', 'ctlvisible', 'ctlalign',
        +            'ctlrefresh', 'ctlmenu', 'ctlinfo',
        +            'date', 'debug', 'deg', 'dot2d', 'dot3d', 'drawborder', 'drawbox', 'drawcircle',
        +            'drawelipse', 'drawerase', 'drawfillcircle', 'drawfillelipse', 'drawline',
        +            'drawpixel', 'drawtext', 'drawtextwidth', 'drawtextheight', 'dump',
        +            'error', 'exp', 'expose', 'extent',
        +            'fac', 'filecrc', 'filedelete', 'fileexists', 'filefind', 'filerename',
        +            'filestat', 'floor', 'format', 'frac', 'fullpath',
        +            'gamma', 'getdir', 'getenv', 'getfile', 'getfirstitem', 'getsep', 'getvalue',
        +            'globalrecall', 'globalstore',
        +            'hash', 'hex', 'hostBuild', 'hostVersion', 'hypot',
        +            'info', 'integer',
        +            'library', 'licenseId', 'lscriptVersion', 'load', 'loadimage', 'log', 'log10',
        +            'matchdirs', 'matchfiles', 'max', 'min', 'mkdir', 'mod', 'monend', 'moninit', 'monstep',
        +            'nil', 'normalize', 'number',
        +            'octal', 'overlayglyph',
        +            'parse', 'platform', 'pow',
        +            'rad', 'random', 'randu', 'range', 'read', 'readdouble', 'readInt', 'readNumber',
        +            'readShort', 'recall', 'regexp', 'reqabort', 'reqbegin', 'reqend', 'reqisopen',
        +            'reqkeyboard', 'reqopen', 'reqposition', 'reqpost', 'reqredraw',
        +            'reqsize', 'reqresize', 'requpdate', 'rmdir', 'round', 'runningUnder',
        +            'save', 'sec', 'select', 'selector', 'setdesc', 'setvalue', 'sin', 'sinh', 'size',
        +            'sizeof', 'sleep', 'spawn', 'split', 'sqrt', 'step', 'store', 'string', 'strleft',
        +            'strlower', 'strright', 'strsub', 'strupper',
        +            'tan', 'tanh', 'targetobject', 'terminate', 'text', 'time',
        +            'wait', 'warn', 'when', 'write', 'writeDouble', 'writeInt', 'writeNumber', 'writeShort',
        +            'var', 'vector', 'visitnodes', 'vmag',
        +            ),
        +        5 => array(
        +            'addcurve', 'addpoint', 'addpolygon', 'addquad', 'addtriangle', 'alignpols',
        +            'autoflex', 'axisdrill',
        +            'bend', 'bevel', 'boolean', 'boundingbox',
        +            'changepart', 'changesurface', 'close', 'closeall', 'cmdseq', 'copy', 'copysurface',
        +            'createsurface', 'cut',
        +            'deformregion', 'delete',
        +            'editbegin', 'editend', 'exit', 'extrude',
        +            'fixedflex', 'flip', 'fontclear', 'fontcount', 'fontindex', 'fontload',
        +            'fontname', 'fracsubdivide', 'freezecurves',
        +            'getdefaultsurface',
        +            'jitter',
        +            'lathe', 'layerName', 'layerVisible', 'lyrbg', 'lyrdata', 'lyrempty', 'lyremptybg',
        +            'lyremptyfg', 'lyrfg', 'lyrsetbg', 'lyrsetfg', 'lyrswap',
        +            'magnet', 'make4patch', 'makeball', 'makebox', 'makecone', 'makedisc',
        +            'maketesball', 'maketext', 'mergepoints', 'mergepols', 'meshedit', 'mirror',
        +            'morphpols', 'move',
        +            'new', 'nextsurface',
        +            'paste', 'pathclone', 'pathextrude', 'pixel', 'pointcount', 'pointinfo',
        +            'pointmove', 'pole', 'polycount', 'polyinfo', 'polynormal', 'polypointcount',
        +            'polypoints', 'polysurface',
        +            'quantize',
        +            'railclone', 'railextrude', 'redo', 'removepols', 'rempoint', 'rempoly',
        +            'renamesurface', 'revert', 'rotate',
        +            'scale', 'selhide', 'selinvert', 'selmode', 'selpoint', 'selpolygon', 'selunhide',
        +            'selectvmap', 'setlayername', 'setobject', 'setpivot', 'setsurface', 'shapebevel',
        +            'shear', 'skinpols', 'smooth', 'smoothcurves', 'smoothscale', 'smoothshift',
        +            'soliddrill', 'splitpols', 'subdivide', 'swaphidden',
        +            'taper', 'triple', 'toggleCCend', 'toggleCCstart', 'togglepatches', 'twist',
        +            'undo', 'undogroupend', 'undogroupbegin', 'unifypols', 'unweld',
        +            'vortex',
        +            'weldaverage', 'weldpoints'
        +            ),
        +        6 => array(
        +            'About', 'AboutOpenGL', 'AdaptiveSampling', 'AdaptiveThreshold',
        +            'AddAreaLight', 'AddBone', 'AddButton', 'AddCamera', 'AddChildBone',
        +            'AddDistantLight', 'AddEnvelope', 'AddLinearLight', 'AddNull',
        +            'AddPartigon', 'AddPlugins', 'AddPointLight', 'AddPosition',
        +            'AddRotation', 'AddScale', 'AddSpotlight', 'AddToSelection',
        +            'AdjustRegionTool', 'AffectCaustics', 'AffectDiffuse', 'AffectOpenGL',
        +            'AffectSpecular', 'AlertLevel', 'AmbientColor', 'AmbientIntensity',
        +            'Antialiasing', 'ApertureHeight', 'ApplyServer', 'AreaLight',
        +            'AutoConfirm', 'AutoFrameAdvance', 'AutoKey',
        +            'BackdropColor', 'BackView', 'BController', 'BLimits', 'BLurLength', 'BoneActive',
        +            'BoneFalloffType', 'BoneJointComp', 'BoneJointCompAmounts', 'BoneJointCompParent',
        +            'BoneLimitedRange', 'BoneMaxRange', 'BoneMinRange', 'BoneMuscleFlex',
        +            'BoneMuscleFlexAmounts', 'BoneMuscleFlexParent', 'BoneNormalization',
        +            'BoneRestLength', 'BoneRestPosition', 'BoneRestRotation', 'BoneSource',
        +            'BoneStrength', 'BoneStrengthMultiply', 'BoneWeightMapName', 'BoneWeightMapOnly',
        +            'BoneWeightShade', 'BoneXRay', 'BottomView', 'BoundingBoxThreshold',
        +            'BStiffness',
        +            'CacheCaustics', 'CacheRadiosity', 'CacheShadowMap',
        +            'CameraMask', 'CameraView', 'CameraZoomTool', 'CastShadow', 'CausticIntensity',
        +            'CenterItem', 'CenterMouse', 'ChangeTool', 'ClearAllBones', 'ClearAllCameras',
        +            'ClearAllLights', 'ClearAllObjects', 'ClearAudio', 'ClearScene', 'ClearSelected',
        +            'Clone', 'CommandHistory', 'CommandInput', 'Compositing', 'ConeAngleTool',
        +            'ContentDirectory', 'CreateKey',
        +            'DecreaseGrid', 'DeleteKey', 'DepthBufferAA', 'DepthOfField', 'DisplayOptions',
        +            'DistantLight', 'DrawAntialiasing', 'DrawBones', 'DrawChildBones', 'DynamicUpdate',
        +            'EditBones', 'EditCameras', 'EditKeys', 'EditLights',
        +            'EditMenus', 'EditObjects', 'EditPlugins', 'EditServer', 'EnableCaustics',
        +            'EnableDeformations', 'EnableIK', 'EnableLensFlares', 'EnableRadiosity', 'EnableServer',
        +            'EnableShadowMaps', 'EnableVIPER', 'EnableVolumetricLights', 'EnableXH',
        +            'EnableYP', 'EnableZB', 'EnahancedAA', 'ExcludeLight', 'ExcludeObject',
        +            'EyeSeparation',
        +            'FasterBones', 'FirstFrame', 'FirstItem', 'FitAll', 'FitSelected',
        +            'FlareIntensity', 'FlareOptions', 'FocalDistance', 'FogColor', 'FogMaxAmount',
        +            'FogMaxDistance', 'FogMinAmount', 'FogMinDistance', 'FogType', 'FractionalFrames',
        +            'FrameSize', 'FramesPerSecond', 'FrameStep', 'FreePreview', 'FrontView', 'FullTimeIK',
        +            'GeneralOptions', 'Generics', 'GlobalApertureHeight', 'GlobalBlurLength',
        +            'GlobalFrameSize', 'GlobalIllumination', 'GlobalMaskPosition', 'GlobalMotionBlur',
        +            'GlobalParticleBlur', 'GlobalPixelAspect', 'GlobalResolutionMulitplier', 'GoalItem',
        +            'GoalStrength', 'GoToFrame', 'GradientBackdrop', 'GraphEditor', 'GridSize', 'GroundColor',
        +            'HController', 'HideToolbar', 'HideWindows', 'HLimits', 'HStiffness',
        +            'ImageEditor', 'ImageProcessing', 'IncludeLight', 'IncludeObject', 'IncreaseGrid',
        +            'IndirectBounces', 'Item_SetWindowPos', 'ItemActive', 'ItemColor', 'ItemLock',
        +            'ItemProperties', 'ItemVisibilty',
        +            'KeepGoalWithinReach',
        +            'LastFrame', 'LastItem', 'LastPluginInterface', 'Layout_SetWindowPos',
        +            'Layout_SetWindowSize', 'LeftView', 'LensFlare', 'LensFStop', 'LightColor',
        +            'LightConeAngle', 'LightEdgeAngle', 'LightFalloffType', 'LightIntensity',
        +            'LightIntensityTool', 'LightQuality', 'LightRange', 'LightView', 'LimitB',
        +            'LimitDynamicRange', 'LimitedRegion', 'LimitH', 'LimitP', 'LinearLight',
        +            'LoadAudio', 'LoadFromScene', 'LoadMotion', 'LoadObject', 'LoadObjectLayer',
        +            'LoadPreview', 'LoadScene', 'LocalCoordinateSystem',
        +            'MakePreview', 'MaskColor', 'MaskPosition', 'MasterPlugins', 'MatchGoalOrientation',
        +            'MatteColor', 'MatteObject', 'MetaballResolution', 'Model', 'MorphAmount',
        +            'MorphAmountTool', 'MorphMTSE', 'MorphSurfaces', 'MorphTarget', 'MotionBlur',
        +            'MotionBlurDOFPreview', 'MotionOptions', 'MovePathTool', 'MovePivotTool', 'MoveTool',
        +            'NadirColor', 'NetRender', 'NextFrame', 'NextItem', 'NextKey', 'NextSibling',
        +            'NextViewLayout', 'NoiseReduction', 'Numeric',
        +            'ObjectDissolve',
        +            'ParentCoordinateSystem', 'ParentInPlace', 'ParentItem',
        +            'ParticleBlur', 'PathAlignLookAhead', 'PathAlignMaxLookSteps', 'PathAlignReliableDist',
        +            'Pause', 'PController', 'PerspectiveView',
        +            'PivotPosition', 'PivotRotation', 'PixelAspect', 'PlayAudio', 'PlayBackward',
        +            'PlayForward', 'PlayPreview', 'PLimits', 'PointLight', 'PolygonEdgeColor',
        +            'PolygonEdgeFlags', 'PolygonEdgeThickness', 'PolygonEdgeZScale', 'PolygonSize',
        +            'Position', 'Presets', 'PreviewFirstFrame', 'PreviewFrameStep', 'PreviewLastFrame',
        +            'PreviewOptions', 'PreviousFrame', 'PreviousItem', 'PreviousKey', 'PreviousSibling',
        +            'PreviousViewLayout', 'PStiffness',
        +            'Quit',
        +            'RadiosityIntensity', 'RadiosityTolerance', 'RadiosityType', 'RayRecursionLimit',
        +            'RayTraceReflection', 'RayTraceShadows',
        +            'RayTraceTransparency', 'ReceiveShadow', 'RecentContentDirs', 'RecentScenes',
        +            'ReconstructionFilter', 'RecordMaxAngles', 'RecordMinAngles', 'RecordPivotRotation',
        +            'RecordRestPosition', 'Redraw', 'RedrawNow', 'Refresh', 'RefreshNow', 'RegionPosition',
        +            'RemoveEnvelope', 'RemoveFromSelection', 'RemoveServer', 'Rename', 'RenderFrame',
        +            'RenderOptions', 'RenderScene', 'RenderSelected', 'RenderThreads',
        +            'ReplaceObjectLayer', 'ReplaceWithNull', 'ReplaceWithObject', 'Reset',
        +            'ResolutionMultiplier', 'RestLengthTool', 'RightView', 'RotatePivotTool',
        +            'RotateTool', 'Rotation',
        +            'SaveAllObjects', 'SaveCommandList', 'SaveCommandMessages',
        +            'SaveEndomorph', 'SaveLight', 'SaveLWSC1', 'SaveMotion', 'SaveObject', 'SaveObjectCopy',
        +            'SavePreview', 'SaveScene', 'SaveSceneAs', 'SaveSceneCopy', 'SaveTransformed',
        +            'SaveViewLayout', 'Scale', 'Scene_SetWindowPos', 'Scene_SetWindowSize',
        +            'SceneEditor', 'SchematicPosition', 'SchematicView', 'SelectAllBones',
        +            'SelectAllCameras', 'SelectAllLights', 'SelectAllObjects', 'SelectByName',
        +            'SelectChild', 'SelectItem', 'SelectParent', 'SelfShadow', 'ShadowColor',
        +            'ShadowExclusion', 'ShadowMapAngle', 'ShadowMapFitCone', 'ShadowMapFuzziness',
        +            'ShadowMapSize', 'ShadowType', 'ShowCages', 'ShowFieldChart', 'ShowHandles',
        +            'ShowIKChains', 'ShowMotionPaths', 'ShowSafeAreas', 'ShowTargetLines',
        +            'ShrinkEdgesWithDistance', 'SingleView', 'SizeTool', 'SkelegonsToBones', 'SkyColor',
        +            'Spotlight', 'SquashTool', 'Statistics', 'StatusMsg', 'Stereoscopic', 'StretchTool',
        +            'SubdivisionOrder', 'SubPatchLevel', 'SurfaceEditor', 'Synchronize',
        +            'TargetItem', 'TopView',
        +            'UnaffectedByFog', 'UnaffectedByIK', 'Undo', 'UnseenByAlphaChannel', 'UnseenByCamera',
        +            'UnseenByRays', 'UseGlobalResolution', 'UseGlobalBlur', 'UseGlobalMask',
        +            'UseMorphedPositions',
        +            'ViewLayout', 'VIPER', 'VolumetricLighting',
        +            'VolumetricLightingOptions', 'VolumetricRadiosity', 'Volumetrics',
        +            'WorldCoordinateSystem',
        +            'XYView', 'XZView',
        +            'ZenithColor', 'ZoomFactor', 'ZoomIn', 'ZoomInX2', 'ZoomOut', 'ZoomOutX2', 'ZYView',
        +            'Camera', 'Channel', 'ChannelGroup', 'Envelope', 'File', 'Glyph', 'Icon', 'Image',
        +            'Light', 'Mesh', 'Scene', 'Surface', 'VMap'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']', '=', '<', '>', '+', '-', '*', '/', '!', '%', '&', '@'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => true,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        6 => false,
        +        7 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight: bold;',
        +            2 => 'color: #FF6820; font-weight: bold;', //LS_COMMANDS
        +            3 => 'color: #007F7F; font-weight: bold;', //LS_MEMBERS
        +            4 => 'color: #800080; font-weight: bold;', //LS_METHODS
        +            5 => 'color: #51BD95; font-weight: bold;', //LS_MODELER
        +            6 => 'color: #416F85; font-weight: bold;', //LS_GENERAL
        +            7 => 'color: #C92929; font-weight: bold;'  //LS_COMMANDS (cont)
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #7F7F7F;',
        +            'MULTI' => 'color: #7F7F7F;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #0040A0;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #00C800;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #6953AC;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #0040A0;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => '',
        +        7 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            3 => array(
        +                'DISALLOWED_BEFORE' => '(?<=\.)'
        +                ),
        +            4 => array(
        +                'DISALLOWED_BEFORE' => '(?<=\.)'
        +                )
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/lsl2.php b/Sources/geshi/lsl2.php
        new file mode 100644
        index 0000000..f80cf4f
        --- /dev/null
        +++ b/Sources/geshi/lsl2.php
        @@ -0,0 +1,898 @@
        + 'LSL2',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array( // flow control
        +            'do',
        +            'else',
        +            'for',
        +            'if',
        +            'jump',
        +            'return',
        +            'state',
        +            'while',
        +            ),
        +        2 => array( // manifest constants
        +            'ACTIVE',
        +            'AGENT',
        +            'AGENT_ALWAYS_RUN',
        +            'AGENT_ATTACHMENTS',
        +            'AGENT_AWAY',
        +            'AGENT_BUSY',
        +            'AGENT_CROUCHING',
        +            'AGENT_FLYING',
        +            'AGENT_IN_AIR',
        +            'AGENT_MOUSELOOK',
        +            'AGENT_ON_OBJECT',
        +            'AGENT_SCRIPTED',
        +            'AGENT_SITTING',
        +            'AGENT_TYPING',
        +            'AGENT_WALKING',
        +            'ALL_SIDES',
        +            'ANIM_ON',
        +            'ATTACH_BACK',
        +            'ATTACH_BELLY',
        +            'ATTACH_CHEST',
        +            'ATTACH_CHIN',
        +            'ATTACH_HEAD',
        +            'ATTACH_HUD_BOTTOM',
        +            'ATTACH_HUD_BOTTOM_LEFT',
        +            'ATTACH_HUD_BOTTOM_RIGHT',
        +            'ATTACH_HUD_CENTER_1',
        +            'ATTACH_HUD_CENTER_2',
        +            'ATTACH_HUD_TOP_CENTER',
        +            'ATTACH_HUD_TOP_LEFT',
        +            'ATTACH_HUD_TOP_RIGHT',
        +            'ATTACH_LEAR',
        +            'ATTACH_LEYE',
        +            'ATTACH_LFOOT',
        +            'ATTACH_LHAND',
        +            'ATTACH_LHIP',
        +            'ATTACH_LLARM',
        +            'ATTACH_LLLEG',
        +            'ATTACH_LPEC',
        +            'ATTACH_LSHOULDER',
        +            'ATTACH_LUARM',
        +            'ATTACH_LULEG',
        +            'ATTACH_MOUTH',
        +            'ATTACH_NOSE',
        +            'ATTACH_PELVIS',
        +            'ATTACH_REAR',
        +            'ATTACH_REYE',
        +            'ATTACH_RFOOT',
        +            'ATTACH_RHAND',
        +            'ATTACH_RHIP',
        +            'ATTACH_RLARM',
        +            'ATTACH_RLLEG',
        +            'ATTACH_RPEC',
        +            'ATTACH_RSHOULDER',
        +            'ATTACH_RUARM',
        +            'ATTACH_RULEG',
        +            'CAMERA_ACTIVE',
        +            'CAMERA_BEHINDNESS_ANGLE',
        +            'CAMERA_BEHINDNESS_LAG',
        +            'CAMERA_DISTANCE',
        +            'CAMERA_FOCUS',
        +            'CAMERA_FOCUS_LAG',
        +            'CAMERA_FOCUS_LOCKED',
        +            'CAMERA_FOCUS_OFFSET',
        +            'CAMERA_FOCUS_THRESHOLD',
        +            'CAMERA_PITCH',
        +            'CAMERA_POSITION',
        +            'CAMERA_POSITION_LAG',
        +            'CAMERA_POSITION_LOCKED',
        +            'CAMERA_POSITION_THRESHOLD',
        +            'CHANGED_ALLOWED_DROP',
        +            'CHANGED_COLOR',
        +            'CHANGED_INVENTORY',
        +            'CHANGED_LINK',
        +            'CHANGED_OWNER',
        +            'CHANGED_REGION',
        +            'CHANGED_SCALE',
        +            'CHANGED_SHAPE',
        +            'CHANGED_TELEPORT',
        +            'CHANGED_TEXTURE',
        +            'CLICK_ACTION_NONE',
        +            'CLICK_ACTION_OPEN',
        +            'CLICK_ACTION_OPEN_MEDIA',
        +            'CLICK_ACTION_PAY',
        +            'CLICK_ACTION_SIT',
        +            'CLICK_ACTION_TOUCH',
        +            'CONTROL_BACK',
        +            'CONTROL_DOWN',
        +            'CONTROL_FWD',
        +            'CONTROL_LBUTTON',
        +            'CONTROL_LEFT',
        +            'CONTROL_ML_LBUTTON',
        +            'CONTROL_RIGHT',
        +            'CONTROL_ROT_LEFT',
        +            'CONTROL_ROT_RIGHT',
        +            'CONTROL_UP',
        +            'DATA_BORN',
        +            'DATA_NAME',
        +            'DATA_ONLINE',
        +            'DATA_PAYINFO',
        +            'DATA_RATING',
        +            'DATA_SIM_POS',
        +            'DATA_SIM_RATING',
        +            'DATA_SIM_STATUS',
        +            'DEBUG_CHANNEL',
        +            'DEG_TO_RAD',
        +            'EOF',
        +            'FALSE',
        +            'HTTP_BODY_MAXLENGTH',
        +            'HTTP_BODY_TRUNCATED',
        +            'HTTP_METHOD',
        +            'HTTP_MIMETYPE',
        +            'HTTP_VERIFY_CERT',
        +            'INVENTORY_ALL',
        +            'INVENTORY_ANIMATION',
        +            'INVENTORY_BODYPART',
        +            'INVENTORY_CLOTHING',
        +            'INVENTORY_GESTURE',
        +            'INVENTORY_LANDMARK',
        +            'INVENTORY_NONE',
        +            'INVENTORY_NOTECARD',
        +            'INVENTORY_OBJECT',
        +            'INVENTORY_SCRIPT',
        +            'INVENTORY_SOUND',
        +            'INVENTORY_TEXTURE',
        +            'LAND_LEVEL',
        +            'LAND_LOWER',
        +            'LAND_NOISE',
        +            'LAND_RAISE',
        +            'LAND_REVERT',
        +            'LAND_SMOOTH',
        +            'LINK_ALL_CHILDREN',
        +            'LINK_ALL_OTHERS',
        +            'LINK_ROOT',
        +            'LINK_SET',
        +            'LINK_THIS',
        +            'LIST_STAT_GEOMETRIC_MEAN',
        +            'LIST_STAT_MAX',
        +            'LIST_STAT_MEAN',
        +            'LIST_STAT_MEDIAN',
        +            'LIST_STAT_MIN',
        +            'LIST_STAT_NUM_COUNT',
        +            'LIST_STAT_RANGE',
        +            'LIST_STAT_STD_DEV',
        +            'LIST_STAT_SUM',
        +            'LIST_STAT_SUM_SQUARES',
        +            'LOOP',
        +            'MASK_BASE',
        +            'MASK_EVERYONE',
        +            'MASK_GROUP',
        +            'MASK_NEXT',
        +            'MASK_OWNER',
        +            'NULL_KEY',
        +            'OBJECT_CREATOR',
        +            'OBJECT_DESC',
        +            'OBJECT_GROUP',
        +            'OBJECT_NAME',
        +            'OBJECT_OWNER',
        +            'OBJECT_POS',
        +            'OBJECT_ROT',
        +            'OBJECT_UNKNOWN_DETAIL',
        +            'OBJECT_VELOCITY',
        +            'PARCEL_DETAILS_AREA',
        +            'PARCEL_DETAILS_DESC',
        +            'PARCEL_DETAILS_GROUP',
        +            'PARCEL_DETAILS_NAME',
        +            'PARCEL_DETAILS_OWNER',
        +            'PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY',
        +            'PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS',
        +            'PARCEL_FLAG_ALLOW_CREATE_OBJECTS',
        +            'PARCEL_FLAG_ALLOW_DAMAGE',
        +            'PARCEL_FLAG_ALLOW_FLY',
        +            'PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY',
        +            'PARCEL_FLAG_ALLOW_GROUP_SCRIPTS',
        +            'PARCEL_FLAG_ALLOW_LANDMARK',
        +            'PARCEL_FLAG_ALLOW_SCRIPTS',
        +            'PARCEL_FLAG_ALLOW_TERRAFORM',
        +            'PARCEL_FLAG_LOCAL_SOUND_ONLY',
        +            'PARCEL_FLAG_RESTRICT_PUSHOBJECT',
        +            'PARCEL_FLAG_USE_ACCESS_GROUP',
        +            'PARCEL_FLAG_USE_ACCESS_LIST',
        +            'PARCEL_FLAG_USE_BAN_LIST',
        +            'PARCEL_FLAG_USE_LAND_PASS_LIST',
        +            'PARCEL_MEDIA_COMMAND_AGENT',
        +            'PARCEL_MEDIA_COMMAND_AUTO_ALIGN',
        +            'PARCEL_MEDIA_COMMAND_DESC',
        +            'PARCEL_MEDIA_COMMAND_LOOP_SET',
        +            'PARCEL_MEDIA_COMMAND_PAUSE',
        +            'PARCEL_MEDIA_COMMAND_PLAY',
        +            'PARCEL_MEDIA_COMMAND_SIZE',
        +            'PARCEL_MEDIA_COMMAND_STOP',
        +            'PARCEL_MEDIA_COMMAND_TEXTURE',
        +            'PARCEL_MEDIA_COMMAND_TIME',
        +            'PARCEL_MEDIA_COMMAND_TYPE',
        +            'PARCEL_MEDIA_COMMAND_URL',
        +            'PASSIVE',
        +            'PAYMENT_INFO_ON_FILE',
        +            'PAYMENT_INFO_USED',
        +            'PAY_DEFAULT',
        +            'PAY_HIDE',
        +            'PERMISSION_ATTACH',
        +            'PERMISSION_CHANGE_LINKS',
        +            'PERMISSION_CONTROL_CAMERA',
        +            'PERMISSION_DEBIT',
        +            'PERMISSION_TAKE_CONTROLS',
        +            'PERMISSION_TRACK_CAMERA',
        +            'PERMISSION_TRIGGER_ANIMATION',
        +            'PERM_ALL',
        +            'PERM_COPY',
        +            'PERM_MODIFY',
        +            'PERM_MOVE',
        +            'PERM_TRANSFER',
        +            'PI',
        +            'PI_BY_TWO',
        +            'PRIM_BUMP_BARK',
        +            'PRIM_BUMP_BLOBS',
        +            'PRIM_BUMP_BRICKS',
        +            'PRIM_BUMP_BRIGHT',
        +            'PRIM_BUMP_CHECKER',
        +            'PRIM_BUMP_CONCRETE',
        +            'PRIM_BUMP_DARK',
        +            'PRIM_BUMP_DISKS',
        +            'PRIM_BUMP_GRAVEL',
        +            'PRIM_BUMP_LARGETILE',
        +            'PRIM_BUMP_NONE',
        +            'PRIM_BUMP_SHINY',
        +            'PRIM_BUMP_SIDING',
        +            'PRIM_BUMP_STONE',
        +            'PRIM_BUMP_STUCCO',
        +            'PRIM_BUMP_SUCTION',
        +            'PRIM_BUMP_TILE',
        +            'PRIM_BUMP_WEAVE',
        +            'PRIM_BUMP_WOOD',
        +            'PRIM_COLOR',
        +            'PRIM_FULLBRIGHT',
        +            'PRIM_HOLE_CIRCLE',
        +            'PRIM_HOLE_DEFAULT',
        +            'PRIM_HOLE_SQUARE',
        +            'PRIM_HOLE_TRIANGLE',
        +            'PRIM_MATERIAL',
        +            'PRIM_MATERIAL_FLESH',
        +            'PRIM_MATERIAL_GLASS',
        +            'PRIM_MATERIAL_LIGHT',
        +            'PRIM_MATERIAL_METAL',
        +            'PRIM_MATERIAL_PLASTIC',
        +            'PRIM_MATERIAL_RUBBER',
        +            'PRIM_MATERIAL_STONE',
        +            'PRIM_MATERIAL_WOOD',
        +            'PRIM_PHANTOM',
        +            'PRIM_PHYSICS',
        +            'PRIM_POSITION',
        +            'PRIM_ROTATION',
        +            'PRIM_SHINY_HIGH',
        +            'PRIM_SHINY_LOW',
        +            'PRIM_SHINY_MEDIUM',
        +            'PRIM_SHINY_NONE',
        +            'PRIM_SIZE',
        +            'PRIM_TEMP_ON_REZ',
        +            'PRIM_TEXTURE',
        +            'PRIM_TYPE',
        +            'PRIM_TYPE_BOX',
        +            'PRIM_TYPE_CYLINDER',
        +            'PRIM_TYPE_PRISM',
        +            'PRIM_TYPE_RING',
        +            'PRIM_TYPE_SPHERE',
        +            'PRIM_TYPE_TORUS',
        +            'PRIM_TYPE_TUBE',
        +            'PSYS_PART_BOUNCE_MASK',
        +            'PSYS_PART_EMISSIVE_MASK',
        +            'PSYS_PART_END_ALPHA',
        +            'PSYS_PART_END_COLOR',
        +            'PSYS_PART_END_SCALE',
        +            'PSYS_PART_FLAGS',
        +            'PSYS_PART_FOLLOW_SRC_MASK',
        +            'PSYS_PART_FOLLOW_VELOCITY_MASK',
        +            'PSYS_PART_INTERP_COLOR_MASK',
        +            'PSYS_PART_INTERP_SCALE_MASK',
        +            'PSYS_PART_MAX_AGE',
        +            'PSYS_PART_START_ALPHA',
        +            'PSYS_PART_START_COLOR',
        +            'PSYS_PART_START_SCALE',
        +            'PSYS_PART_TARGET_LINEAR_MASK',
        +            'PSYS_PART_TARGET_POS_MASK',
        +            'PSYS_PART_WIND_MASK',
        +            'PSYS_SRC_ACCEL',
        +            'PSYS_SRC_ANGLE_BEGIN',
        +            'PSYS_SRC_ANGLE_END',
        +            'PSYS_SRC_BURST_PART_COUNT',
        +            'PSYS_SRC_BURST_RADIUS',
        +            'PSYS_SRC_BURST_RATE',
        +            'PSYS_SRC_BURST_SPEED_MAX',
        +            'PSYS_SRC_BURST_SPEED_MIN',
        +            'PSYS_SRC_INNERANGLE',
        +            'PSYS_SRC_MAX_AGE',
        +            'PSYS_SRC_OMEGA',
        +            'PSYS_SRC_OUTERANGLE',
        +            'PSYS_SRC_PATTERN',
        +            'PSYS_SRC_PATTERN_ANGLE',
        +            'PSYS_SRC_PATTERN_ANGLE_CONE',
        +            'PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY',
        +            'PSYS_SRC_PATTERN_DROP',
        +            'PSYS_SRC_PATTERN_EXPLODE',
        +            'PSYS_SRC_TARGET_KEY',
        +            'PSYS_SRC_TEXTURE',
        +            'RAD_TO_DEG',
        +            'REMOTE_DATA_CHANNEL',
        +            'REMOTE_DATA_REQUEST',
        +            'SCRIPTED',
        +            'SQRT2',
        +            'STATUS_BLOCK_GRAB',
        +            'STATUS_DIE_AT_EDGE',
        +            'STATUS_PHANTOM',
        +            'STATUS_PHYSICS',
        +            'STATUS_RETURN_AT_EDGE',
        +            'STATUS_ROTATE_X',
        +            'STATUS_ROTATE_Y',
        +            'STATUS_ROTATE_Z',
        +            'STATUS_SANDBOX',
        +            'TRUE',
        +            'TWO_PI',
        +            'VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY',
        +            'VEHICLE_ANGULAR_DEFLECTION_TIMESCALE',
        +            'VEHICLE_ANGULAR_FRICTION_TIMESCALE',
        +            'VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE',
        +            'VEHICLE_ANGULAR_MOTOR_DIRECTION',
        +            'VEHICLE_ANGULAR_MOTOR_TIMESCALE',
        +            'VEHICLE_BANKING_EFFICIENCY',
        +            'VEHICLE_BANKING_MIX',
        +            'VEHICLE_BANKING_TIMESCALE',
        +            'VEHICLE_BUOYANCY',
        +            'VEHICLE_FLAG_CAMERA_DECOUPLED',
        +            'VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT',
        +            'VEHICLE_FLAG_HOVER_TERRAIN_ONLY',
        +            'VEHICLE_FLAG_HOVER_UP_ONLY',
        +            'VEHICLE_FLAG_HOVER_WATER_ONLY',
        +            'VEHICLE_FLAG_LIMIT_MOTOR_UP',
        +            'VEHICLE_FLAG_LIMIT_ROLL_ONLY',
        +            'VEHICLE_FLAG_MOUSELOOK_BANK',
        +            'VEHICLE_FLAG_MOUSELOOK_STEER',
        +            'VEHICLE_FLAG_NO_DEFLECTION_UP',
        +            'VEHICLE_HOVER_EFFICIENCY',
        +            'VEHICLE_HOVER_HEIGHT',
        +            'VEHICLE_HOVER_TIMESCALE',
        +            'VEHICLE_LINEAR_DEFLECTION_EFFICIENCY',
        +            'VEHICLE_LINEAR_DEFLECTION_TIMESCALE',
        +            'VEHICLE_LINEAR_FRICTION_TIMESCALE',
        +            'VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE',
        +            'VEHICLE_LINEAR_MOTOR_DIRECTION',
        +            'VEHICLE_LINEAR_MOTOR_OFFSET',
        +            'VEHICLE_LINEAR_MOTOR_TIMESCALE',
        +            'VEHICLE_REFERENCE_FRAME',
        +            'VEHICLE_TYPE_AIRPLANE',
        +            'VEHICLE_TYPE_BALLOON',
        +            'VEHICLE_TYPE_BOAT',
        +            'VEHICLE_TYPE_CAR',
        +            'VEHICLE_TYPE_NONE',
        +            'VEHICLE_TYPE_SLED',
        +            'VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY',
        +            'VEHICLE_VERTICAL_ATTRACTION_TIMESCALE',
        +            'ZERO_ROTATION',
        +            'ZERO_VECTOR',
        +            ),
        +        3 => array( // handlers
        +            'at_rot_target',
        +            'at_target',
        +            'attached',
        +            'changed',
        +            'collision',
        +            'collision_end',
        +            'collision_start',
        +            'control',
        +            'dataserver',
        +            'email',
        +            'http_response',
        +            'land_collision',
        +            'land_collision_end',
        +            'land_collision_start',
        +            'link_message',
        +            'listen',
        +            'money',
        +            'moving_end',
        +            'moving_start',
        +            'no_sensor',
        +            'not_at_rot_target',
        +            'not_at_target',
        +            'object_rez',
        +            'on_rez',
        +            'remote_data',
        +            'run_time_permissions',
        +            'sensor',
        +            'state_entry',
        +            'state_exit',
        +            'timer',
        +            'touch',
        +            'touch_end',
        +            'touch_start',
        +            ),
        +        4 => array( // data types
        +            'float',
        +            'integer',
        +            'key',
        +            'list',
        +            'rotation',
        +            'string',
        +            'vector',
        +            ),
        +        5 => array( // library
        +            'default',
        +            'llAbs',
        +            'llAcos',
        +            'llAddToLandBanList',
        +            'llAddToLandPassList',
        +            'llAdjustSoundVolume',
        +            'llAllowInventoryDrop',
        +            'llAngleBetween',
        +            'llApplyImpulse',
        +            'llApplyRotationalImpulse',
        +            'llAsin',
        +            'llAtan2',
        +            'llAttachToAvatar',
        +            'llAvatarOnSitTarget',
        +            'llAxes2Rot',
        +            'llAxisAngle2Rot',
        +            'llBase64ToInteger',
        +            'llBase64ToString',
        +            'llBreakAllLinks',
        +            'llBreakLink',
        +            'llCeil',
        +            'llClearCameraParams',
        +            'llCloseRemoteDataChannel',
        +            'llCloud',
        +            'llCollisionFilter',
        +            'llCollisionSound',
        +            'llCollisionSprite',
        +            'llCos',
        +            'llCreateLink',
        +            'llCSV2List',
        +            'llDeleteSubList',
        +            'llDeleteSubString',
        +            'llDetachFromAvatar',
        +            'llDetectedGrab',
        +            'llDetectedGroup',
        +            'llDetectedKey',
        +            'llDetectedLinkNumber',
        +            'llDetectedName',
        +            'llDetectedOwner',
        +            'llDetectedPos',
        +            'llDetectedRot',
        +            'llDetectedTouchBinormal',
        +            'llDetectedTouchFace',
        +            'llDetectedTouchNormal',
        +            'llDetectedTouchPos',
        +            'llDetectedTouchST',
        +            'llDetectedTouchUV',
        +            'llDetectedType',
        +            'llDetectedVel',
        +            'llDialog',
        +            'llDie',
        +            'llDumpList2String',
        +            'llEdgeOfWorld',
        +            'llEjectFromLand',
        +            'llEmail',
        +            'llEscapeURL',
        +            'llEuler2Rot',
        +            'llFabs',
        +            'llFloor',
        +            'llForceMouselook',
        +            'llFrand',
        +            'llGetAccel',
        +            'llGetAgentInfo',
        +            'llGetAgentLanguage',
        +            'llGetAgentSize',
        +            'llGetAlpha',
        +            'llGetAndResetTime',
        +            'llGetAnimation',
        +            'llGetAnimationList',
        +            'llGetAttached',
        +            'llGetBoundingBox',
        +            'llGetCameraPos',
        +            'llGetCameraRot',
        +            'llGetCenterOfMass',
        +            'llGetColor',
        +            'llGetCreator',
        +            'llGetDate',
        +            'llGetEnergy',
        +            'llGetForce',
        +            'llGetFreeMemory',
        +            'llGetGeometricCenter',
        +            'llGetGMTclock',
        +            'llGetInventoryCreator',
        +            'llGetInventoryKey',
        +            'llGetInventoryName',
        +            'llGetInventoryNumber',
        +            'llGetInventoryPermMask',
        +            'llGetInventoryType',
        +            'llGetKey',
        +            'llGetLandOwnerAt',
        +            'llGetLinkKey',
        +            'llGetLinkName',
        +            'llGetLinkNumber',
        +            'llGetListEntryType',
        +            'llGetListLength',
        +            'llGetLocalPos',
        +            'llGetLocalRot',
        +            'llGetMass',
        +            'llGetNextEmail',
        +            'llGetNotecardLine',
        +            'llGetNumberOfNotecardLines',
        +            'llGetNumberOfPrims',
        +            'llGetNumberOfSides',
        +            'llGetObjectDesc',
        +            'llGetObjectDetails',
        +            'llGetObjectMass',
        +            'llGetObjectName',
        +            'llGetObjectPermMask',
        +            'llGetObjectPrimCount',
        +            'llGetOmega',
        +            'llGetOwner',
        +            'llGetOwnerKey',
        +            'llGetParcelDetails',
        +            'llGetParcelFlags',
        +            'llGetParcelMaxPrims',
        +            'llGetParcelPrimCount',
        +            'llGetParcelPrimOwners',
        +            'llGetPermissions',
        +            'llGetPermissionsKey',
        +            'llGetPos',
        +            'llGetPrimitiveParams',
        +            'llGetRegionAgentCount',
        +            'llGetRegionCorner',
        +            'llGetRegionFlags',
        +            'llGetRegionFPS',
        +            'llGetRegionName',
        +            'llGetRegionTimeDilation',
        +            'llGetRootPosition',
        +            'llGetRootRotation',
        +            'llGetRot',
        +            'llGetScale',
        +            'llGetScriptName',
        +            'llGetScriptState',
        +            'llGetSimulatorHostname',
        +            'llGetStartParameter',
        +            'llGetStatus',
        +            'llGetSubString',
        +            'llGetSunDirection',
        +            'llGetTexture',
        +            'llGetTextureOffset',
        +            'llGetTextureRot',
        +            'llGetTextureScale',
        +            'llGetTime',
        +            'llGetTimeOfDay',
        +            'llGetTimestamp',
        +            'llGetTorque',
        +            'llGetUnixTime',
        +            'llGetVel',
        +            'llGetWallclock',
        +            'llGiveInventory',
        +            'llGiveInventoryList',
        +            'llGiveMoney',
        +            'llGround',
        +            'llGroundContour',
        +            'llGroundNormal',
        +            'llGroundRepel',
        +            'llGroundSlope',
        +            'llHTTPRequest',
        +            'llInsertString',
        +            'llInstantMessage',
        +            'llIntegerToBase64',
        +            'llKey2Name',
        +            'llList2CSV',
        +            'llList2Float',
        +            'llList2Integer',
        +            'llList2Key',
        +            'llList2List',
        +            'llList2ListStrided',
        +            'llList2Rot',
        +            'llList2String',
        +            'llList2Vector',
        +            'llListen',
        +            'llListenControl',
        +            'llListenRemove',
        +            'llListFindList',
        +            'llListInsertList',
        +            'llListRandomize',
        +            'llListReplaceList',
        +            'llListSort',
        +            'llListStatistics',
        +            'llLoadURL',
        +            'llLog',
        +            'llLog10',
        +            'llLookAt',
        +            'llLoopSound',
        +            'llLoopSoundMaster',
        +            'llLoopSoundSlave',
        +            'llMapDestination',
        +            'llMD5String',
        +            'llMessageLinked',
        +            'llMinEventDelay',
        +            'llModifyLand',
        +            'llModPow',
        +            'llMoveToTarget',
        +            'llOffsetTexture',
        +            'llOpenRemoteDataChannel',
        +            'llOverMyLand',
        +            'llOwnerSay',
        +            'llParcelMediaCommandList',
        +            'llParcelMediaQuery',
        +            'llParseString2List',
        +            'llParseStringKeepNulls',
        +            'llParticleSystem',
        +            'llPassCollisions',
        +            'llPassTouches',
        +            'llPlaySound',
        +            'llPlaySoundSlave',
        +            'llPow',
        +            'llPreloadSound',
        +            'llPushObject',
        +            'llRegionSay',
        +            'llReleaseControls',
        +            'llRemoteDataReply',
        +            'llRemoteDataSetRegion',
        +            'llRemoteLoadScriptPin',
        +            'llRemoveFromLandBanList',
        +            'llRemoveFromLandPassList',
        +            'llRemoveInventory',
        +            'llRemoveVehicleFlags',
        +            'llRequestAgentData',
        +            'llRequestInventoryData',
        +            'llRequestPermissions',
        +            'llRequestSimulatorData',
        +            'llResetLandBanList',
        +            'llResetLandPassList',
        +            'llResetOtherScript',
        +            'llResetScript',
        +            'llResetTime',
        +            'llRezAtRoot',
        +            'llRezObject',
        +            'llRot2Angle',
        +            'llRot2Axis',
        +            'llRot2Euler',
        +            'llRot2Fwd',
        +            'llRot2Left',
        +            'llRot2Up',
        +            'llRotateTexture',
        +            'llRotBetween',
        +            'llRotLookAt',
        +            'llRotTarget',
        +            'llRotTargetRemove',
        +            'llRound',
        +            'llSameGroup',
        +            'llSay',
        +            'llScaleTexture',
        +            'llScriptDanger',
        +            'llSendRemoteData',
        +            'llSensor',
        +            'llSensorRemove',
        +            'llSensorRepeat',
        +            'llSetAlpha',
        +            'llSetBuoyancy',
        +            'llSetCameraAtOffset',
        +            'llSetCameraEyeOffset',
        +            'llSetCameraParams',
        +            'llSetClickAction',
        +            'llSetColor',
        +            'llSetDamage',
        +            'llSetForce',
        +            'llSetForceAndTorque',
        +            'llSetHoverHeight',
        +            'llSetLinkAlpha',
        +            'llSetLinkColor',
        +            'llSetLinkPrimitiveParams',
        +            'llSetLinkTexture',
        +            'llSetLocalRot',
        +            'llSetObjectDesc',
        +            'llSetObjectName',
        +            'llSetParcelMusicURL',
        +            'llSetPayPrice',
        +            'llSetPos',
        +            'llSetPrimitiveParams',
        +            'llSetRemoteScriptAccessPin',
        +            'llSetRot',
        +            'llSetScale',
        +            'llSetScriptState',
        +            'llSetSitText',
        +            'llSetSoundQueueing',
        +            'llSetSoundRadius',
        +            'llSetStatus',
        +            'llSetText',
        +            'llSetTexture',
        +            'llSetTextureAnim',
        +            'llSetTimerEvent',
        +            'llSetTorque',
        +            'llSetTouchText',
        +            'llSetVehicleFlags',
        +            'llSetVehicleFloatParam',
        +            'llSetVehicleRotationParam',
        +            'llSetVehicleType',
        +            'llSetVehicleVectorParam',
        +            'llSHA1String',
        +            'llShout',
        +            'llSin',
        +            'llSitTarget',
        +            'llSleep',
        +            'llSqrt',
        +            'llStartAnimation',
        +            'llStopAnimation',
        +            'llStopHover',
        +            'llStopLookAt',
        +            'llStopMoveToTarget',
        +            'llStopSound',
        +            'llStringLength',
        +            'llStringToBase64',
        +            'llStringTrim',
        +            'llSubStringIndex',
        +            'llTakeControls',
        +            'llTan',
        +            'llTarget',
        +            'llTargetOmega',
        +            'llTargetRemove',
        +            'llTeleportAgentHome',
        +            'llToLower',
        +            'llToUpper',
        +            'llTriggerSound',
        +            'llTriggerSoundLimited',
        +            'llUnescapeURL',
        +            'llUnSit',
        +            'llVecDist',
        +            'llVecMag',
        +            'llVecNorm',
        +            'llVolumeDetect',
        +            'llWater',
        +            'llWhisper',
        +            'llWind',
        +            'llXorBase64StringsCorrect',
        +            ),
        +        6 => array( // deprecated
        +            'llMakeExplosion',
        +            'llMakeFire',
        +            'llMakeFountain',
        +            'llMakeSmoke',
        +            'llSound',
        +            'llSoundPreload',
        +            'llXorBase64Strings',
        +            ),
        +        7 => array( // unimplemented
        +            'llPointAt',
        +            'llRefreshPrimURL',
        +            'llReleaseCamera',
        +            'llRemoteLoadScript',
        +            'llSetPrimURL',
        +            'llStopPointAt',
        +            'llTakeCamera',
        +            'llTextBox',
        +            ),
        +        8 => array( // God mode
        +            'llGodLikeRezObject',
        +            'llSetInventoryPermMask',
        +            'llSetObjectPermMask',
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '{', '}', '(', ')', '[', ']',
        +        '=', '+', '-', '*', '/',
        +        '+=', '-=', '*=', '/=', '++', '--',
        +        '!', '%', '&', '|', '&&', '||',
        +        '==', '!=', '<', '>', '<=', '>=',
        +        '~', '<<', '>>', '^', ':',
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => true,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true,
        +        8 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000ff;',
        +            2 => 'color: #000080;',
        +            3 => 'color: #008080;',
        +            4 => 'color: #228b22;',
        +            5 => 'color: #b22222;',
        +            6 => 'color: #8b0000; background-color: #ffff00;',
        +            7 => 'color: #8b0000; background-color: #fa8072;',
        +            8 => 'color: #000000; background-color: #ba55d3;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #ff7f50; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #006400;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
        +        4 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
        +        5 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
        +        6 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
        +        7 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
        +        8 => 'http://www.lslwiki.net/lslwiki/wakka.php?wakka={FNAME}', // http://wiki.secondlife.com/wiki/{FNAME}
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/lua.php b/Sources/geshi/lua.php
        new file mode 100644
        index 0000000..8a09ba2
        --- /dev/null
        +++ b/Sources/geshi/lua.php
        @@ -0,0 +1,177 @@
        + 'Lua',
        +    'COMMENT_SINGLE' => array(1 => "--"),
        +    'COMMENT_MULTI' => array('--[[' => ']]'),
        +    'COMMENT_REGEXP' => array(2 => '/\[(=*)\[.*?\]\1\]/s'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        //Simple Single Char Escapes
        +        1 => "#\\\\[\\\\abfnrtv\'\"]#i",
        +        //Octal Char Specs
        +        2 => "#\\\\\\d{1,3}#"
        +        ),
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_HEX_PREFIX |
        +        GESHI_NUMBER_FLT_NONSCI | GESHI_NUMBER_FLT_NONSCI_F |
        +        GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'break','do','else','elseif','end','for','function','if',
        +            'local','repeat','return','then','until','while'
        +            ),
        +        2 => array(
        +            'and','in','not','or'
        +            ),
        +        3 => array(
        +            '_VERSION','assert','collectgarbage','dofile','error','gcinfo','loadfile','loadstring',
        +            'print','tonumber','tostring','type','unpack',
        +            '_ALERT','_ERRORMESSAGE','_INPUT','_PROMPT','_OUTPUT',
        +            '_STDERR','_STDIN','_STDOUT','call','dostring','foreach','foreachi','getn','globals','newtype',
        +            'rawget','rawset','require','sort','tinsert','tremove',
        +            'abs','acos','asin','atan','atan2','ceil','cos','deg','exp',
        +            'floor','format','frexp','gsub','ldexp','log','log10','max','min','mod','rad','random','randomseed',
        +            'sin','sqrt','strbyte','strchar','strfind','strlen','strlower','strrep','strsub','strupper','tan',
        +            'openfile','closefile','readfrom','writeto','appendto',
        +            'remove','rename','flush','seek','tmpfile','tmpname','read','write',
        +            'clock','date','difftime','execute','exit','getenv','setlocale','time',
        +            '_G','getfenv','getmetatable','ipairs','loadlib','next','pairs','pcall',
        +            'rawegal','setfenv','setmetatable','xpcall',
        +            'string.byte','string.char','string.dump','string.find','string.len',
        +            'string.lower','string.rep','string.sub','string.upper','string.format','string.gfind','string.gsub',
        +            'table.concat','table.foreach','table.foreachi','table.getn','table.sort','table.insert','table.remove','table.setn',
        +            'math.abs','math.acos','math.asin','math.atan','math.atan2','math.ceil','math.cos','math.deg','math.exp',
        +            'math.floor','math.frexp','math.ldexp','math.log','math.log10','math.max','math.min','math.mod',
        +            'math.pi','math.rad','math.random','math.randomseed','math.sin','math.sqrt','math.tan',
        +            'coroutine.create','coroutine.resume','coroutine.status',
        +            'coroutine.wrap','coroutine.yield',
        +            'io.close','io.flush','io.input','io.lines','io.open','io.output','io.read','io.tmpfile','io.type','io.write',
        +            'io.stdin','io.stdout','io.stderr',
        +            'os.clock','os.date','os.difftime','os.execute','os.exit','os.getenv','os.remove','os.rename',
        +            'os.setlocale','os.time','os.tmpname',
        +            'string','table','math','coroutine','io','os','debug'
        +            ),
        +        4 => array(
        +            'nil', 'false', 'true'
        +            ),
        +        5 => array(
        +            'Nil', 'Boolean', 'Number', 'String', 'Userdata', 'Thread', 'Table'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '+', '-', '*', '/', '%', '^', '#',
        +        '==', '~=', '<=', '>=', '<', '>', '=',
        +        '(', ')', '{', '}', '[', ']',
        +        ';', ':', ',', '.', '..', '...'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #aa9900; font-weight: bold;',
        +            2 => 'color: #aa9900; font-weight: bold;',
        +            3 => 'color: #0000aa;',
        +            4 => 'color: #aa9900;',
        +            5 => 'color: #aa9900;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            2 => 'color: #ff0000;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            1 => 'color: #000099; font-weight: bold;',
        +            2 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff6666;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #aa9900;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/m68k.php b/Sources/geshi/m68k.php
        new file mode 100644
        index 0000000..9832157
        --- /dev/null
        +++ b/Sources/geshi/m68k.php
        @@ -0,0 +1,143 @@
        + 'Motorola 68000 Assembler',
        +    'COMMENT_SINGLE' => array(1 => ';'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        /*CPU*/
        +        1 => array(
        +            'adc','add','ais','aix','and','asl','asr','bcc','bclr','bcs','beq',
        +            'bge','bgt','bhcc','bhcs','bhi','bhs','bih','bil','bit','ble','blo',
        +            'bls','blt','bmc','bmi','bms','bne','bpl','bra','brclr','brn',
        +            'brset','bset','bsr','cbeq','clc','cli','clr','cmp','com','cphx',
        +            'cpx','daa','dbnz','dec','div','eor','inc','jmp','jsr','lda','ldhx',
        +            'ldx','lsl','lsr','mov','mul','neg','nop','nsa','ora','psha','pshh',
        +            'pshx','pula','pulh','pulx','rol','ror','rsp','rti','rts','sbc',
        +            'sec','sei','sta','sthx','stop','stx','sub','swi','tap','tax','tpa',
        +            'tst','tsx','txa','txs','wait'
        +        ),
        +        /*registers*/
        +        2 => array(
        +            'a','h','x',
        +            'hx','sp'
        +            ),
        +        /*Directive*/
        +        3 => array(
        +            '#define','#endif','#else','#ifdef','#ifndef','#include','#undef',
        +            '.db','.dd','.df','.dq','.dt','.dw','.end','.org','equ'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        ','
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000ff; font-weight:bold;',
        +            2 => 'color: #0000ff;',
        +            3 => 'color: #46aa03; font-weight:bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #adadad; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #7f007f;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #dd22dd;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #008000;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #22bbff;',
        +            1 => 'color: #22bbff;',
        +            2 => 'color: #993333;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        //Hex numbers
        +        0 => '#?0[0-9a-fA-F]{1,32}[hH]',
        +        //Binary numbers
        +        1 => '\%[01]{1,64}[bB]',
        +        //Labels
        +        2 => '^[_a-zA-Z][_a-zA-Z0-9]*?\:'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 8
        +);
        +
        +?>
        diff --git a/Sources/geshi/magiksf.php b/Sources/geshi/magiksf.php
        new file mode 100644
        index 0000000..612e160
        --- /dev/null
        +++ b/Sources/geshi/magiksf.php
        @@ -0,0 +1,193 @@
        + null,
        +    'LANG_NAME' => 'MagikSF',
        +    'COMMENT_SINGLE' => array(1 => '##', 2 => '#%', 3 => '#'),
        +    'COMMENT_MULTI' => array("_pragma(" => ")"),
        +    //Multiline-continued single-line comments
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            '_block', '_endblock', '_proc', '_endproc', '_loop', '_endloop',
        +            '_method', '_endmethod',
        +            '_protect', '_endprotect', '_protection', '_locking',
        +            '_continue',
        +            ),
        +        2 => array(
        +            '_self', '_thisthread', '_pragma', '_private', '_abstract',
        +            '_local', '_global', '_dynamic', '_package', '_constant',
        +            '_import', '_iter', '_lock', '_optional', '_recursive', '_super'
        +            ),
        +        3 => array(
        +            '_if', '_endif', '_then', '_else', '_elif', '_orif', '_andif', '_for', '_over',
        +            '_try', '_endtry', '_when', '_throw', '_catch', '_endcatch', '_handling',
        +            '_finally', '_loopbody', '_return', '_leave', '_with'
        +            ),
        +        4 => array(
        +            '_false', '_true', '_maybe', '_unset', '_no_way'
        +            ),
        +        5 => array(
        +            '_mod', '_div', '_or', '_and', '_cf', '_is', '_isnt', '_not', '_gather', '_scatter',
        +            '_allresults', '_clone', '_xor'
        +            ),
        +        6 => array(
        +            'def_slotted_exemplar', 'write_string', 'write', 'condition',
        +            'record_transaction', 'gis_program_manager', 'perform', 'define_shared_constant',
        +            'property_list', 'rope', 'def_property', 'def_mixin'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']',
        +        '+', '-', '*', '/', '**',
        +        '=', '<', '>', '<<', '>>',
        +        ',', '$',
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        6 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight: bold;',
        +            2 => 'color: #ff3f3f;',
        +            3 => 'color: #3f7f3f; font-weight: bold;',
        +            4 => 'color: #cc66cc;',
        +            5 => 'color: #ff3fff; font-weight: bold;',
        +            6 => 'font-weight: bold;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #339933; font-weight: bold;',
        +            2 => 'color: #993333;',
        +            3 => 'color: #339933;',
        +            'MULTI' => 'color: #7f7f7f; font-style: italic',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #ff3f3f;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #202020;',
        +            2 => 'color: #202020;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #ff3f3f;'
        +            ),
        +        'REGEXPS' => array(
        +            1 => 'color: #3f3fff;',
        +            2 => 'color: #3f3fff;',
        +            3 => 'color: #cc66cc;',
        +            4 => 'color: #7f3f7f; font-style: italic;',
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        1 => array(
        +            GESHI_SEARCH => '\b[a-zA-Z0-9_]+:', // package identifiers
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        2 => array(
        +            GESHI_SEARCH => ':(?:[a-zA-Z0-9!?_]+|(?:[].*?[]))*', //symbols
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        3 => array(
        +            GESHI_SEARCH => '%space|%tab|%newline|%.', //characters
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        4 => array(
        +            GESHI_SEARCH => '@(?:[a-zA-Z0-9!?_]+|(?:[].*?[]))*', //symbols
        +            GESHI_REPLACE => '\\0',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/make.php b/Sources/geshi/make.php
        new file mode 100644
        index 0000000..885fa17
        --- /dev/null
        +++ b/Sources/geshi/make.php
        @@ -0,0 +1,151 @@
        +
        + * Copyright: (c) 2008 Neil Bird
        + * Release Version: 1.0.8.11
        + * Date Started: 2008/08/26
        + *
        + * make language file for GeSHi.
        + *
        + * (GNU make specific)
        + *
        + * CHANGES
        + * -------
        + * 2008/09/05 (1.0.0)
        + *  -  First Release
        + *
        + *************************************************************************************
        + *
        + *     This file is part of GeSHi.
        + *
        + *   GeSHi is free software; you can redistribute it and/or modify
        + *   it under the terms of the GNU General Public License as published by
        + *   the Free Software Foundation; either version 2 of the License, or
        + *   (at your option) any later version.
        + *
        + *   GeSHi is distributed in the hope that it will be useful,
        + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        + *   GNU General Public License for more details.
        + *
        + *   You should have received a copy of the GNU General Public License
        + *   along with GeSHi; if not, write to the Free Software
        + *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + ************************************************************************************/
        +
        +$language_data = array (
        +    'LANG_NAME' => 'GNU make',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_REGEXP' => array(
        +        //Escaped String Starters
        +        2 => "/\\\\['\"]/siU"
        +        ),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            // core
        +            'ifeq', 'else', 'endif', 'ifneq', 'ifdef', 'ifndef',
        +            'include', 'vpath', 'export', 'unexport', 'override',
        +            'info', 'warning', 'error'
        +            ),
        +        2 => array(
        +            // macros, literals
        +            '.SUFFIXES', '.PHONY', '.DEFAULT', '.PRECIOUS', '.IGNORE', '.SILENT', '.EXPORT_ALL_VARIABLES', '.KEEP_STATE',
        +            '.LIBPATTERNS', '.NOTPARALLEL', '.DELETE_ON_ERROR', '.INTERMEDIATE', '.POSIX', '.SECONDARY'
        +            ),
        +        /*
        +        3 => array(
        +            // funcs - see regex
        +            //'subst', 'addprefix', 'addsuffix', 'basename', 'call', 'dir', 'error', 'eval', 'filter-out', 'filter',
        +            //'findstring', 'firstword', 'foreach', 'if', 'join', 'notdir', 'origin', 'patsubst', 'shell', 'sort', 'strip',
        +            //'suffix', 'warning', 'wildcard', 'word', 'wordlist', 'words'
        +            )*/
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}',
        +        '!', '@', '%', '&', '|', '/',
        +        '<', '>',
        +        '=', '-', '+', '*',
        +        '.', ':', ',', ';',
        +        '$'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        //3 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #666622; font-weight: bold;',
        +            2 => 'color: #990000;',
        +            //3 => 'color: #000000; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #339900; font-style: italic;',
        +            2 => 'color: #000099; font-weight: bold;',
        +            'MULTI' => ''
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(  # keep same as symbols so as to make ${} and $() equiv.
        +            0 => 'color: #004400;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #CC2200;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #CC2200;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #004400;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #000088; font-weight: bold;',
        +            1 => 'color: #0000CC; font-weight: bold;',
        +            2 => 'color: #000088;'
        +            ),
        +        'SCRIPT' => array(),
        +        'METHODS' => array()
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        //3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(
        +        //Simple variables
        +        0 => "\\$(?:[^{(&]|&(?:amp|lt|gt);)",
        +        //Complex variables/functions [built-ins]
        +        1 => array(
        +            GESHI_SEARCH => '(\\$[({])(subst|addprefix|addsuffix|basename|call|dir|error|eval|filter-out|filter,|findstring|firstword|foreach|if|join|notdir|origin|patsubst|shell|sort|strip,|suffix|warning|wildcard|word|wordlist|words)([ })])',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3'
        +            ),
        +            //Complex variables/functions [others]
        +        2 => array(
        +            GESHI_SEARCH => '(\\$[({])([A-Za-z_][A-Za-z_0-9]*)([ })])',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3'
        +            ),
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(),
        +    'TAB_WIDTH' => 8
        +// vim: set sw=4 sts=4 :
        +);
        +?>
        diff --git a/Sources/geshi/mapbasic.php b/Sources/geshi/mapbasic.php
        new file mode 100644
        index 0000000..8859c48
        --- /dev/null
        +++ b/Sources/geshi/mapbasic.php
        @@ -0,0 +1,908 @@
        + 'MapBasic',
        +    'COMMENT_SINGLE' => array(1 => "'"),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +/*
        +        1 - Statements + Clauses + Data Types + Logical Operators, Geographical Operators + SQL
        +        2 - Special Procedures
        +        3 - Functions
        +        4 - Constants
        +        5 - Extended keywords (case sensitive)
        +*/
        +        1 => array(
        +            'Add', 'Alias', 'All', 'Alter', 'And', 'Any', 'Application', 'Arc',
        +            'Area', 'As', 'AutoLabel', 'Bar', 'Beep', 'Begin', 'Bind',
        +            'Browse', 'Brush', 'BrushPicker', 'Button', 'ButtonPad',
        +            'ButtonPads', 'BY', 'Call', 'CancelButton', 'Cartographic', 'Case',
        +            'CharSet', 'Check', 'CheckBox', 'Clean', 'Close', 'Collection',
        +            'Column', 'Combine', 'Command', 'Commit', 'Connection',
        +            'ConnectionNumber', 'Contains', 'Continue', 'Control', 'CoordSys',
        +            'Create', 'Cutter', 'Date', 'Datum', 'DDEExecute', 'DDEPoke',
        +            'DDETerminate', 'DDETerminateAll', 'Declare', 'Default', 'Define',
        +            'Delete', 'Dialog', 'Digitizer', 'Dim', 'Disaggregate',
        +            'Disconnect', 'Distance', 'Do', 'Document', 'DocumentWindow',
        +            'Drag', 'Drop', 'EditText', 'Ellipse', 'Enclose', 'End', 'Entire',
        +            'Entirely', 'Erase', 'Error', 'Event', 'Exit', 'Export',
        +            'Farthest', 'Fetch', 'File', 'Find', 'Float', 'FME', 'Font',
        +            'FontPicker', 'For', 'Format', 'Frame', 'From', 'Function',
        +            'Geocode', 'Get', 'Global', 'Goto', 'Graph', 'Grid', 'GROUP',
        +            'GroupBox', 'Handler', 'If', 'Import', 'In', 'Include', 'Index',
        +            'Info', 'Input', 'Insert', 'Integer', 'Intersect', 'Intersects',
        +            'INTO', 'Isogram', 'Item', 'Kill', 'Layout', 'Legend', 'Line',
        +            'Link', 'ListBox', 'Logical', 'Loop', 'Map', 'Map3D', 'MapInfo',
        +            'MapInfoDialog', 'Menu', 'Merge', 'Metadata', 'Method', 'Mod',
        +            'Move', 'MultiListBox', 'MultiPoint', 'MWS', 'Nearest', 'Next',
        +            'NOSELECT', 'Not', 'Note', 'Object', 'Objects', 'Offset',
        +            'OKButton', 'OnError', 'Open', 'Or', 'ORDER', 'Overlay', 'Pack',
        +            'Paper', 'Part', 'Partly', 'Pen', 'PenPicker', 'Pline', 'Point',
        +            'PopupMenu', 'Preserve', 'Print', 'PrintWin', 'PrismMap',
        +            'Processing', 'Program', 'ProgressBar', 'ProgressBars', 'Put',
        +            'RadioGroup', 'Randomize', 'Ranges', 'Rect', 'ReDim',
        +            'Redistricter', 'Refresh', 'Region', 'Register', 'Relief',
        +            'Reload', 'Remove', 'Rename', 'Report', 'Reproject', 'Resolution',
        +            'Resume', 'Rollback', 'RoundRect', 'RowID', 'Run', 'Save', 'Seek',
        +            'Select', 'Selection', 'Server', 'Set', 'Shade', 'SmallInt',
        +            'Snap', 'Split', 'StaticText', 'StatusBar', 'Stop', 'String',
        +            'Style', 'Styles', 'Sub', 'Symbol', 'SymbolPicker', 'Symbols',
        +            'Table', 'Target', 'Terminate', 'Text', 'Then', 'Threshold',
        +            'Timeout', 'To', 'Transaction', 'Transform', 'Type', 'UnDim',
        +            'Units', 'Unlink', 'Update', 'Using', 'VALUES', 'Version',
        +            'Versioning', 'Wend', 'WFS', 'WHERE', 'While', 'Window', 'Within',
        +            'Workspace', 'Write'
        +            ),
        +        2 => array(
        +            'EndHandler', 'ForegroundTaskSwitchHandler', 'Main',
        +            'RemoteMapGenHandler', 'RemoteMsgHandler', 'SelChangedHandler',
        +            'ToolHandler', 'WinChangedHandler', 'WinClosedHandler',
        +            'WinFocusChangedHandler'
        +            ),
        +        3 => array(
        +            'Abs', 'Acos', 'ApplicationDirectory$', 'AreaOverlap', 'Asc',
        +            'Asin', 'Ask', 'Atn', 'Avg', 'Buffer', 'ButtonPadInfo',
        +            'CartesianArea', 'CartesianBuffer', 'CartesianConnectObjects',
        +            'CartesianDistance', 'CartesianObjectDistance',
        +            'CartesianObjectLen', 'CartesianOffset', 'CartesianOffsetXY',
        +            'CartesianPerimeter', 'Centroid', 'CentroidX', 'CentroidY',
        +            'ChooseProjection$', 'Chr$', 'ColumnInfo', 'CommandInfo',
        +            'ConnectObjects', 'ControlPointInfo', 'ConvertToPline',
        +            'ConvertToRegion', 'ConvexHull', 'CoordSysName$', 'Cos', 'Count',
        +            'CreateCircle', 'CreateLine', 'CreatePoint', 'CreateText',
        +            'CurDate', 'CurrentBorderPen', 'CurrentBrush', 'CurrentFont',
        +            'CurrentLinePen', 'CurrentPen', 'CurrentSymbol', 'DateWindow',
        +            'Day', 'DDEInitiate', 'DDERequest$', 'DeformatNumber$', 'EOF',
        +            'EOT', 'EPSGToCoordSysString$', 'Err', 'Error$', 'Exp',
        +            'ExtractNodes', 'FileAttr', 'FileExists', 'FileOpenDlg',
        +            'FileSaveAsDlg', 'Fix', 'Format$', 'FormatDate$', 'FormatNumber$',
        +            'FrontWindow', 'GeocodeInfo', 'GetFolderPath$', 'GetGridCellValue',
        +            'GetMetadata$', 'GetSeamlessSheet', 'GridTableInfo',
        +            'HomeDirectory$', 'InStr', 'Int', 'IntersectNodes',
        +            'IsGridCellNull', 'IsogramInfo', 'IsPenWidthPixels',
        +            'LabelFindByID', 'LabelFindFirst', 'LabelFindNext', 'LabelInfo',
        +            'LayerInfo', 'LCase$', 'Left$', 'LegendFrameInfo', 'LegendInfo',
        +            'LegendStyleInfo', 'Len', 'Like', 'LocateFile$', 'LOF', 'Log',
        +            'LTrim$', 'MakeBrush', 'MakeCustomSymbol', 'MakeFont',
        +            'MakeFontSymbol', 'MakePen', 'MakeSymbol', 'Map3DInfo',
        +            'MapperInfo', 'Max', 'Maximum', 'MBR', 'MenuItemInfoByHandler',
        +            'MenuItemInfoByID', 'MGRSToPoint', 'MICloseContent',
        +            'MICloseFtpConnection', 'MICloseFtpFileFind',
        +            'MICloseHttpConnection', 'MICloseHttpFile', 'MICloseSession',
        +            'MICreateSession', 'MICreateSessionFull', 'Mid$', 'MidByte$',
        +            'MIErrorDlg', 'MIFindFtpFile', 'MIFindNextFtpFile', 'MIGetContent',
        +            'MIGetContentBuffer', 'MIGetContentLen', 'MIGetContentString',
        +            'MIGetContentToFile', 'MIGetContentType',
        +            'MIGetCurrentFtpDirectory', 'MIGetErrorCode', 'MIGetErrorMessage',
        +            'MIGetFileURL', 'MIGetFtpConnection', 'MIGetFtpFile',
        +            'MIGetFtpFileFind', 'MIGetFtpFileName', 'MIGetHttpConnection',
        +            'MIIsFtpDirectory', 'MIIsFtpDots', 'Min', 'Minimum',
        +            'MIOpenRequest', 'MIOpenRequestFull', 'MIParseURL', 'MIPutFtpFile',
        +            'MIQueryInfo', 'MIQueryInfoStatusCode', 'MISaveContent',
        +            'MISendRequest', 'MISendSimpleRequest', 'MISetCurrentFtpDirectory',
        +            'MISetSessionTimeout', 'MIXmlAttributeListDestroy',
        +            'MIXmlDocumentCreate', 'MIXmlDocumentDestroy',
        +            'MIXmlDocumentGetNamespaces', 'MIXmlDocumentGetRootNode',
        +            'MIXmlDocumentLoad', 'MIXmlDocumentLoadXML',
        +            'MIXmlDocumentLoadXMLString', 'MIXmlDocumentSetProperty',
        +            'MIXmlGetAttributeList', 'MIXmlGetChildList',
        +            'MIXmlGetNextAttribute', 'MIXmlGetNextNode', 'MIXmlNodeDestroy',
        +            'MIXmlNodeGetAttributeValue', 'MIXmlNodeGetFirstChild',
        +            'MIXmlNodeGetName', 'MIXmlNodeGetParent', 'MIXmlNodeGetText',
        +            'MIXmlNodeGetValue', 'MIXmlNodeListDestroy', 'MIXmlSCDestroy',
        +            'MIXmlSCGetLength', 'MIXmlSCGetNamespace', 'MIXmlSelectNodes',
        +            'MIXmlSelectSingleNode', 'Month', 'NumAllWindows', 'NumberToDate',
        +            'NumCols', 'NumTables', 'NumWindows', 'ObjectDistance',
        +            'ObjectGeography', 'ObjectInfo', 'ObjectLen', 'ObjectNodeHasM',
        +            'ObjectNodeHasZ', 'ObjectNodeM', 'ObjectNodeX', 'ObjectNodeY',
        +            'ObjectNodeZ', 'OffsetXY', 'Overlap', 'OverlayNodes',
        +            'PathToDirectory$', 'PathToFileName$', 'PathToTableName$',
        +            'PenWidthToPoints', 'Perimeter', 'PointsToPenWidth',
        +            'PointToMGRS$', 'PrismMapInfo', 'ProgramDirectory$', 'Proper$',
        +            'ProportionOverlap', 'RasterTableInfo', 'ReadControlValue',
        +            'RegionInfo', 'RemoteQueryHandler', 'RGB', 'Right$', 'Rnd',
        +            'Rotate', 'RotateAtPoint', 'Round', 'RTrim$', 'SearchInfo',
        +            'SearchPoint', 'SearchRect', 'SelectionInfo', 'Server_ColumnInfo',
        +            'Server_Connect', 'Server_ConnectInfo', 'Server_DriverInfo',
        +            'Server_EOT', 'Server_Execute', 'Server_GetODBCHConn',
        +            'Server_GetODBCHStmt', 'Server_NumCols', 'Server_NumDrivers',
        +            'SessionInfo', 'Sgn', 'Sin', 'Space$', 'SphericalArea',
        +            'SphericalConnectObjects', 'SphericalDistance',
        +            'SphericalObjectDistance', 'SphericalObjectLen', 'SphericalOffset',
        +            'SphericalOffsetXY', 'SphericalPerimeter', 'Sqr', 'Str$',
        +            'String$', 'StringCompare', 'StringCompareIntl', 'StringToDate',
        +            'StyleAttr', 'Sum', 'SystemInfo', 'TableInfo', 'Tan',
        +            'TempFileName$', 'TextSize', 'Time', 'Timer', 'TriggerControl',
        +            'TrueFileName$', 'UBound', 'UCase$', 'UnitAbbr$', 'UnitName$',
        +            'Val', 'Weekday', 'WindowID', 'WindowInfo', 'WtAvg', 'Year'
        +            ),
        +        4 => array(
        +            'BLACK', 'BLUE', 'BRUSH_BACKCOLOR', 'BRUSH_FORECOLOR',
        +            'BRUSH_PATTERN', 'BTNPAD_INFO_FLOATING', 'BTNPAD_INFO_NBTNS',
        +            'BTNPAD_INFO_WIDTH', 'BTNPAD_INFO_WINID', 'BTNPAD_INFO_X',
        +            'BTNPAD_INFO_Y', 'CLS', 'CMD_INFO_CTRL', 'CMD_INFO_CUSTOM_OBJ',
        +            'CMD_INFO_DLG_DBL', 'CMD_INFO_DLG_OK', 'CMD_INFO_EDIT_ASK',
        +            'CMD_INFO_EDIT_DISCARD', 'CMD_INFO_EDIT_SAVE',
        +            'CMD_INFO_EDIT_STATUS', 'CMD_INFO_EDIT_TABLE', 'CMD_INFO_FIND_RC',
        +            'CMD_INFO_FIND_ROWID', 'CMD_INFO_HL_FILE_NAME',
        +            'CMD_INFO_HL_LAYER_ID', 'CMD_INFO_HL_ROWID',
        +            'CMD_INFO_HL_TABLE_NAME', 'CMD_INFO_HL_WINDOW_ID',
        +            'CMD_INFO_INTERRUPT', 'CMD_INFO_MENUITEM', 'CMD_INFO_MSG',
        +            'CMD_INFO_ROWID', 'CMD_INFO_SELTYPE', 'CMD_INFO_SHIFT',
        +            'CMD_INFO_STATUS', 'CMD_INFO_TASK_SWITCH', 'CMD_INFO_TOOLBTN',
        +            'CMD_INFO_WIN', 'CMD_INFO_X', 'CMD_INFO_X2', 'CMD_INFO_XCMD',
        +            'CMD_INFO_Y', 'CMD_INFO_Y2', 'COL_INFO_DECPLACES',
        +            'COL_INFO_EDITABLE', 'COL_INFO_INDEXED', 'COL_INFO_NAME',
        +            'COL_INFO_NUM', 'COL_INFO_TYPE', 'COL_INFO_WIDTH', 'COL_TYPE_CHAR',
        +            'COL_TYPE_DATE', 'COL_TYPE_DATETIME', 'COL_TYPE_DECIMAL',
        +            'COL_TYPE_FLOAT', 'COL_TYPE_GRAPHIC', 'COL_TYPE_INTEGER',
        +            'COL_TYPE_LOGICAL', 'COL_TYPE_SMALLINT', 'COL_TYPE_TIME', 'CYAN',
        +            'DATE_WIN_CURPROG', 'DATE_WIN_SESSION', 'DEG_2_RAD',
        +            'DICTIONARY_ADDRESS_ONLY', 'DICTIONARY_ALL',
        +            'DICTIONARY_PREFER_ADDRESS', 'DICTIONARY_PREFER_USER',
        +            'DICTIONARY_USER_ONLY', 'DM_CUSTOM_CIRCLE', 'DM_CUSTOM_ELLIPSE',
        +            'DM_CUSTOM_LINE', 'DM_CUSTOM_POINT', 'DM_CUSTOM_POLYGON',
        +            'DM_CUSTOM_POLYLINE', 'DM_CUSTOM_RECT', 'DMPAPER_10X11',
        +            'DMPAPER_10X14', 'DMPAPER_11X17', 'DMPAPER_12X11', 'DMPAPER_15X11',
        +            'DMPAPER_9X11', 'DMPAPER_A_PLUS', 'DMPAPER_A2', 'DMPAPER_A3',
        +            'DMPAPER_A3_EXTRA', 'DMPAPER_A3_EXTRA_TRANSVERSE',
        +            'DMPAPER_A3_ROTATED', 'DMPAPER_A3_TRANSVERSE', 'DMPAPER_A4',
        +            'DMPAPER_A4_EXTRA', 'DMPAPER_A4_PLUS', 'DMPAPER_A4_ROTATED',
        +            'DMPAPER_A4_TRANSVERSE', 'DMPAPER_A4SMALL', 'DMPAPER_A5',
        +            'DMPAPER_A5_EXTRA', 'DMPAPER_A5_ROTATED', 'DMPAPER_A5_TRANSVERSE',
        +            'DMPAPER_A6', 'DMPAPER_A6_ROTATED', 'DMPAPER_B_PLUS', 'DMPAPER_B4',
        +            'DMPAPER_B4_JIS_ROTATED', 'DMPAPER_B5', 'DMPAPER_B5_EXTRA',
        +            'DMPAPER_B5_JIS_ROTATED', 'DMPAPER_B5_TRANSVERSE',
        +            'DMPAPER_B6_JIS', 'DMPAPER_B6_JIS_ROTATED', 'DMPAPER_CSHEET',
        +            'DMPAPER_DBL_JAPANESE_POSTCARD',
        +            'DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED', 'DMPAPER_DSHEET',
        +            'DMPAPER_ENV_10', 'DMPAPER_ENV_11', 'DMPAPER_ENV_12',
        +            'DMPAPER_ENV_14', 'DMPAPER_ENV_9', 'DMPAPER_ENV_B4',
        +            'DMPAPER_ENV_B5', 'DMPAPER_ENV_B6', 'DMPAPER_ENV_C3',
        +            'DMPAPER_ENV_C4', 'DMPAPER_ENV_C5', 'DMPAPER_ENV_C6',
        +            'DMPAPER_ENV_C65', 'DMPAPER_ENV_DL', 'DMPAPER_ENV_INVITE',
        +            'DMPAPER_ENV_ITALY', 'DMPAPER_ENV_MONARCH', 'DMPAPER_ENV_PERSONAL',
        +            'DMPAPER_ESHEET', 'DMPAPER_EXECUTIVE',
        +            'DMPAPER_FANFOLD_LGL_GERMAN', 'DMPAPER_FANFOLD_STD_GERMAN',
        +            'DMPAPER_FANFOLD_US', 'DMPAPER_FIRST', 'DMPAPER_FOLIO',
        +            'DMPAPER_ISO_B4', 'DMPAPER_JAPANESE_POSTCARD',
        +            'DMPAPER_JAPANESE_POSTCARD_ROTATED', 'DMPAPER_JENV_CHOU3',
        +            'DMPAPER_JENV_CHOU3_ROTATED', 'DMPAPER_JENV_CHOU4',
        +            'DMPAPER_JENV_CHOU4_ROTATED', 'DMPAPER_JENV_KAKU2',
        +            'DMPAPER_JENV_KAKU2_ROTATED', 'DMPAPER_JENV_KAKU3',
        +            'DMPAPER_JENV_KAKU3_ROTATED', 'DMPAPER_JENV_YOU4',
        +            'DMPAPER_JENV_YOU4_ROTATED', 'DMPAPER_LEDGER', 'DMPAPER_LEGAL',
        +            'DMPAPER_LEGAL_EXTRA', 'DMPAPER_LETTER', 'DMPAPER_LETTER_EXTRA',
        +            'DMPAPER_LETTER_EXTRA_TRANSVERSE', 'DMPAPER_LETTER_PLUS',
        +            'DMPAPER_LETTER_ROTATED', 'DMPAPER_LETTER_TRANSVERSE',
        +            'DMPAPER_LETTERSMALL', 'DMPAPER_NOTE', 'DMPAPER_P16K',
        +            'DMPAPER_P16K_ROTATED', 'DMPAPER_P32K', 'DMPAPER_P32K_ROTATED',
        +            'DMPAPER_P32KBIG', 'DMPAPER_P32KBIG_ROTATED', 'DMPAPER_PENV_1',
        +            'DMPAPER_PENV_1_ROTATED', 'DMPAPER_PENV_10',
        +            'DMPAPER_PENV_10_ROTATED', 'DMPAPER_PENV_2',
        +            'DMPAPER_PENV_2_ROTATED', 'DMPAPER_PENV_3',
        +            'DMPAPER_PENV_3_ROTATED', 'DMPAPER_PENV_4',
        +            'DMPAPER_PENV_4_ROTATED', 'DMPAPER_PENV_5',
        +            'DMPAPER_PENV_5_ROTATED', 'DMPAPER_PENV_6',
        +            'DMPAPER_PENV_6_ROTATED', 'DMPAPER_PENV_7',
        +            'DMPAPER_PENV_7_ROTATED', 'DMPAPER_PENV_8',
        +            'DMPAPER_PENV_8_ROTATED', 'DMPAPER_PENV_9',
        +            'DMPAPER_PENV_9_ROTATED', 'DMPAPER_QUARTO', 'DMPAPER_RESERVED_48',
        +            'DMPAPER_RESERVED_49', 'DMPAPER_STATEMENT', 'DMPAPER_TABLOID',
        +            'DMPAPER_TABLOID_EXTRA', 'DMPAPER_USER', 'ERR_BAD_WINDOW',
        +            'ERR_BAD_WINDOW_NUM', 'ERR_CANT_ACCESS_FILE',
        +            'ERR_CANT_INITIATE_LINK', 'ERR_CMD_NOT_SUPPORTED',
        +            'ERR_FCN_ARG_RANGE', 'ERR_FCN_INVALID_FMT',
        +            'ERR_FCN_OBJ_FETCH_FAILED', 'ERR_FILEMGR_NOTOPEN',
        +            'ERR_FP_MATH_LIB_DOMAIN', 'ERR_FP_MATH_LIB_RANGE',
        +            'ERR_INVALID_CHANNEL', 'ERR_INVALID_READ_CONTROL',
        +            'ERR_INVALID_TRIG_CONTROL', 'ERR_NO_FIELD',
        +            'ERR_NO_RESPONSE_FROM_APP', 'ERR_NULL_SELECTION',
        +            'ERR_PROCESS_FAILED_IN_APP', 'ERR_TABLE_NOT_FOUND',
        +            'ERR_WANT_MAPPER_WIN', 'FALSE', 'FILE_ATTR_FILESIZE',
        +            'FILE_ATTR_MODE', 'FILTER_ALL_DIRECTIONS_1',
        +            'FILTER_ALL_DIRECTIONS_2', 'FILTER_DIAGONALLY',
        +            'FILTER_HORIZONTALLY', 'FILTER_VERTICALLY',
        +            'FILTER_VERTICALLY_AND_HORIZONTALLY', 'FOLDER_APPDATA',
        +            'FOLDER_COMMON_APPDATA', 'FOLDER_COMMON_DOCS',
        +            'FOLDER_LOCAL_APPDATA', 'FOLDER_MI_APPDATA',
        +            'FOLDER_MI_COMMON_APPDATA', 'FOLDER_MI_LOCAL_APPDATA',
        +            'FOLDER_MI_PREFERENCE', 'FOLDER_MYDOCS', 'FOLDER_MYPICS',
        +            'FONT_BACKCOLOR', 'FONT_FORECOLOR', 'FONT_NAME', 'FONT_POINTSIZE',
        +            'FONT_STYLE', 'FRAME_INFO_BORDER_PEN', 'FRAME_INFO_COLUMN',
        +            'FRAME_INFO_HEIGHT', 'FRAME_INFO_LABEL', 'FRAME_INFO_MAP_LAYER_ID',
        +            'FRAME_INFO_NUM_STYLES', 'FRAME_INFO_POS_X', 'FRAME_INFO_POS_Y',
        +            'FRAME_INFO_REFRESHABLE', 'FRAME_INFO_SUBTITLE',
        +            'FRAME_INFO_SUBTITLE_FONT', 'FRAME_INFO_TITLE',
        +            'FRAME_INFO_TITLE_FONT', 'FRAME_INFO_TYPE', 'FRAME_INFO_VISIBLE',
        +            'FRAME_INFO_WIDTH', 'FRAME_TYPE_STYLE', 'FRAME_TYPE_THEME',
        +            'GEO_CONTROL_POINT_X', 'GEO_CONTROL_POINT_Y', 'GEOCODE_BATCH_SIZE',
        +            'GEOCODE_COUNT_GEOCODED', 'GEOCODE_COUNT_NOTGEOCODED',
        +            'GEOCODE_COUNTRY_SUBDIVISION', 'GEOCODE_COUNTRY_SUBDIVISION2',
        +            'GEOCODE_DICTIONARY', 'GEOCODE_FALLBACK_GEOGRAPHIC',
        +            'GEOCODE_FALLBACK_POSTAL', 'GEOCODE_MAX_BATCH_SIZE',
        +            'GEOCODE_MIXED_CASE', 'GEOCODE_MUNICIPALITY',
        +            'GEOCODE_MUNICIPALITY2', 'GEOCODE_OFFSET_CENTER',
        +            'GEOCODE_OFFSET_CENTER_UNITS', 'GEOCODE_OFFSET_END',
        +            'GEOCODE_OFFSET_END_UNITS', 'GEOCODE_PASSTHROUGH',
        +            'GEOCODE_POSTAL_CODE', 'GEOCODE_RESULT_MARK_MULTIPLE',
        +            'GEOCODE_STREET_NAME', 'GEOCODE_STREET_NUMBER',
        +            'GEOCODE_UNABLE_TO_CONVERT_DATA', 'GREEN',
        +            'GRID_TAB_INFO_HAS_HILLSHADE', 'GRID_TAB_INFO_MAX_VALUE',
        +            'GRID_TAB_INFO_MIN_VALUE', 'HOTLINK_INFO_ENABLED',
        +            'HOTLINK_INFO_EXPR', 'HOTLINK_INFO_MODE', 'HOTLINK_INFO_RELATIVE',
        +            'HOTLINK_MODE_BOTH', 'HOTLINK_MODE_LABEL', 'HOTLINK_MODE_OBJ',
        +            'IMAGE_CLASS_BILEVEL', 'IMAGE_CLASS_GREYSCALE',
        +            'IMAGE_CLASS_PALETTE', 'IMAGE_CLASS_RGB', 'IMAGE_TYPE_GRID',
        +            'IMAGE_TYPE_RASTER', 'INCL_ALL', 'INCL_COMMON', 'INCL_CROSSINGS',
        +            'ISOGRAM_AMBIENT_SPEED_DIST_UNIT',
        +            'ISOGRAM_AMBIENT_SPEED_TIME_UNIT', 'ISOGRAM_BANDING',
        +            'ISOGRAM_BATCH_SIZE', 'ISOGRAM_DEFAULT_AMBIENT_SPEED',
        +            'ISOGRAM_MAJOR_POLYGON_ONLY', 'ISOGRAM_MAJOR_ROADS_ONLY',
        +            'ISOGRAM_MAX_BANDS', 'ISOGRAM_MAX_BATCH_SIZE',
        +            'ISOGRAM_MAX_DISTANCE', 'ISOGRAM_MAX_DISTANCE_UNITS',
        +            'ISOGRAM_MAX_OFFROAD_DIST', 'ISOGRAM_MAX_OFFROAD_DIST_UNITS',
        +            'ISOGRAM_MAX_TIME', 'ISOGRAM_MAX_TIME_UNITS',
        +            'ISOGRAM_POINTS_ONLY', 'ISOGRAM_PROPAGATION_FACTOR',
        +            'ISOGRAM_RECORDS_INSERTED', 'ISOGRAM_RECORDS_NOTINSERTED',
        +            'ISOGRAM_RETURN_HOLES', 'ISOGRAM_SIMPLIFICATION_FACTOR',
        +            'LABEL_INFO_ANCHORX', 'LABEL_INFO_ANCHORY', 'LABEL_INFO_DRAWN',
        +            'LABEL_INFO_EDIT', 'LABEL_INFO_EDIT_ANCHOR',
        +            'LABEL_INFO_EDIT_ANGLE', 'LABEL_INFO_EDIT_FONT',
        +            'LABEL_INFO_EDIT_OFFSET', 'LABEL_INFO_EDIT_PEN',
        +            'LABEL_INFO_EDIT_POSITION', 'LABEL_INFO_EDIT_TEXT',
        +            'LABEL_INFO_EDIT_TEXTARROW', 'LABEL_INFO_EDIT_TEXTLINE',
        +            'LABEL_INFO_EDIT_VISIBILITY', 'LABEL_INFO_OBJECT',
        +            'LABEL_INFO_OFFSET', 'LABEL_INFO_ORIENTATION',
        +            'LABEL_INFO_POSITION', 'LABEL_INFO_ROWID', 'LABEL_INFO_SELECT',
        +            'LABEL_INFO_TABLE', 'LAYER_INFO_ARROWS', 'LAYER_INFO_CENTROIDS',
        +            'LAYER_INFO_COSMETIC', 'LAYER_INFO_DISPLAY',
        +            'LAYER_INFO_DISPLAY_GLOBAL', 'LAYER_INFO_DISPLAY_GRAPHIC',
        +            'LAYER_INFO_DISPLAY_OFF', 'LAYER_INFO_DISPLAY_VALUE',
        +            'LAYER_INFO_EDITABLE', 'LAYER_INFO_HOTLINK_COUNT',
        +            'LAYER_INFO_HOTLINK_EXPR', 'LAYER_INFO_HOTLINK_MODE',
        +            'LAYER_INFO_HOTLINK_RELATIVE', 'LAYER_INFO_LABEL_ALPHA',
        +            'LAYER_INFO_LABEL_ORIENT_CURVED',
        +            'LAYER_INFO_LABEL_ORIENT_HORIZONTAL',
        +            'LAYER_INFO_LABEL_ORIENT_PARALLEL', 'LAYER_INFO_LAYER_ALPHA',
        +            'LAYER_INFO_LAYER_TRANSLUCENCY', 'LAYER_INFO_LBL_AUTODISPLAY',
        +            'LAYER_INFO_LBL_CURFONT', 'LAYER_INFO_LBL_DUPLICATES',
        +            'LAYER_INFO_LBL_EXPR', 'LAYER_INFO_LBL_FONT', 'LAYER_INFO_LBL_LT',
        +            'LAYER_INFO_LBL_LT_ARROW', 'LAYER_INFO_LBL_LT_NONE',
        +            'LAYER_INFO_LBL_LT_SIMPLE', 'LAYER_INFO_LBL_MAX',
        +            'LAYER_INFO_LBL_OFFSET', 'LAYER_INFO_LBL_ORIENTATION',
        +            'LAYER_INFO_LBL_OVERLAP', 'LAYER_INFO_LBL_PARALLEL',
        +            'LAYER_INFO_LBL_PARTIALSEGS', 'LAYER_INFO_LBL_POS',
        +            'LAYER_INFO_LBL_POS_BC', 'LAYER_INFO_LBL_POS_BL',
        +            'LAYER_INFO_LBL_POS_BR', 'LAYER_INFO_LBL_POS_CC',
        +            'LAYER_INFO_LBL_POS_CL', 'LAYER_INFO_LBL_POS_CR',
        +            'LAYER_INFO_LBL_POS_TC', 'LAYER_INFO_LBL_POS_TL',
        +            'LAYER_INFO_LBL_POS_TR', 'LAYER_INFO_LBL_VIS_OFF',
        +            'LAYER_INFO_LBL_VIS_ON', 'LAYER_INFO_LBL_VIS_ZOOM',
        +            'LAYER_INFO_LBL_VISIBILITY', 'LAYER_INFO_LBL_ZOOM_MAX',
        +            'LAYER_INFO_LBL_ZOOM_MIN', 'LAYER_INFO_NAME', 'LAYER_INFO_NODES',
        +            'LAYER_INFO_OVR_BRUSH', 'LAYER_INFO_OVR_FONT',
        +            'LAYER_INFO_OVR_LINE', 'LAYER_INFO_OVR_PEN',
        +            'LAYER_INFO_OVR_SYMBOL', 'LAYER_INFO_PATH',
        +            'LAYER_INFO_SELECTABLE', 'LAYER_INFO_TYPE',
        +            'LAYER_INFO_TYPE_COSMETIC', 'LAYER_INFO_TYPE_GRID',
        +            'LAYER_INFO_TYPE_IMAGE', 'LAYER_INFO_TYPE_NORMAL',
        +            'LAYER_INFO_TYPE_THEMATIC', 'LAYER_INFO_TYPE_WMS',
        +            'LAYER_INFO_ZOOM_LAYERED', 'LAYER_INFO_ZOOM_MAX',
        +            'LAYER_INFO_ZOOM_MIN', 'LEGEND_INFO_MAP_ID',
        +            'LEGEND_INFO_NUM_FRAMES', 'LEGEND_INFO_ORIENTATION',
        +            'LEGEND_INFO_STYLE_SAMPLE_SIZE', 'LEGEND_STYLE_INFO_FONT',
        +            'LEGEND_STYLE_INFO_OBJ', 'LEGEND_STYLE_INFO_TEXT',
        +            'LOCATE_ABB_FILE', 'LOCATE_CLR_FILE', 'LOCATE_CUSTSYMB_DIR',
        +            'LOCATE_DEF_WOR', 'LOCATE_FNT_FILE', 'LOCATE_GEOCODE_SERVERLIST',
        +            'LOCATE_GRAPH_DIR', 'LOCATE_LAYOUT_TEMPLATE_DIR',
        +            'LOCATE_MNU_FILE', 'LOCATE_PEN_FILE', 'LOCATE_PREF_FILE',
        +            'LOCATE_PRJ_FILE', 'LOCATE_ROUTING_SERVERLIST',
        +            'LOCATE_THMTMPLT_DIR', 'LOCATE_WFS_SERVERLIST',
        +            'LOCATE_WMS_SERVERLIST', 'M_3DMAP_CLONE_VIEW',
        +            'M_3DMAP_PREVIOUS_VIEW', 'M_3DMAP_PROPERTIES',
        +            'M_3DMAP_REFRESH_GRID_TEXTURE', 'M_3DMAP_VIEW_ENTIRE_GRID',
        +            'M_3DMAP_VIEWPOINT_CONTROL', 'M_3DMAP_WIREFRAME',
        +            'M_ANALYZE_CALC_STATISTICS', 'M_ANALYZE_CUSTOMIZE_LEGEND',
        +            'M_ANALYZE_FIND', 'M_ANALYZE_FIND_SELECTION',
        +            'M_ANALYZE_INVERTSELECT', 'M_ANALYZE_SELECT',
        +            'M_ANALYZE_SELECTALL', 'M_ANALYZE_SHADE', 'M_ANALYZE_SQLQUERY',
        +            'M_ANALYZE_UNSELECT', 'M_BROWSE_EDIT', 'M_BROWSE_GRID',
        +            'M_BROWSE_NEW_RECORD', 'M_BROWSE_OPTIONS', 'M_BROWSE_PICK_FIELDS',
        +            'M_DBMS_OPEN_ODBC', 'M_EDIT_CLEAR', 'M_EDIT_CLEAROBJ',
        +            'M_EDIT_COPY', 'M_EDIT_CUT', 'M_EDIT_GETINFO', 'M_EDIT_NEW_ROW',
        +            'M_EDIT_PASTE', 'M_EDIT_PREFERENCES', 'M_EDIT_PREFERENCES_COUNTRY',
        +            'M_EDIT_PREFERENCES_FILE', 'M_EDIT_PREFERENCES_IMAGE_PROC',
        +            'M_EDIT_PREFERENCES_LAYOUT', 'M_EDIT_PREFERENCES_LEGEND',
        +            'M_EDIT_PREFERENCES_MAP', 'M_EDIT_PREFERENCES_OUTPUT',
        +            'M_EDIT_PREFERENCES_PATH', 'M_EDIT_PREFERENCES_PRINTER',
        +            'M_EDIT_PREFERENCES_STYLES', 'M_EDIT_PREFERENCES_SYSTEM',
        +            'M_EDIT_PREFERENCES_WEBSERVICES', 'M_EDIT_RESHAPE', 'M_EDIT_UNDO',
        +            'M_FILE_ABOUT', 'M_FILE_ADD_WORKSPACE', 'M_FILE_CLOSE',
        +            'M_FILE_CLOSE_ALL', 'M_FILE_CLOSE_ODBC', 'M_FILE_EXIT',
        +            'M_FILE_HELP', 'M_FILE_NEW', 'M_FILE_OPEN', 'M_FILE_OPEN_ODBC',
        +            'M_FILE_OPEN_ODBC_CONN', 'M_FILE_OPEN_UNIVERSAL_DATA',
        +            'M_FILE_OPEN_WFS', 'M_FILE_OPEN_WMS', 'M_FILE_PAGE_SETUP',
        +            'M_FILE_PRINT', 'M_FILE_PRINT_SETUP', 'M_FILE_REVERT',
        +            'M_FILE_RUN', 'M_FILE_SAVE', 'M_FILE_SAVE_COPY_AS',
        +            'M_FILE_SAVE_QUERY', 'M_FILE_SAVE_WINDOW_AS',
        +            'M_FILE_SAVE_WORKSPACE', 'M_FORMAT_CUSTOM_COLORS',
        +            'M_FORMAT_PICK_FILL', 'M_FORMAT_PICK_FONT', 'M_FORMAT_PICK_LINE',
        +            'M_FORMAT_PICK_SYMBOL', 'M_GRAPH_3D_VIEWING_ANGLE',
        +            'M_GRAPH_FORMATING', 'M_GRAPH_GENERAL_OPTIONS',
        +            'M_GRAPH_GRID_SCALES', 'M_GRAPH_LABEL_AXIS',
        +            'M_GRAPH_SAVE_AS_TEMPLATE', 'M_GRAPH_SERIES',
        +            'M_GRAPH_SERIES_OPTIONS', 'M_GRAPH_TITLES', 'M_GRAPH_TYPE',
        +            'M_GRAPH_VALUE_AXIS', 'M_HELP_ABOUT', 'M_HELP_CHECK_FOR_UPDATE',
        +            'M_HELP_CONNECT_MIFORUM', 'M_HELP_CONTENTS',
        +            'M_HELP_CONTEXTSENSITIVE', 'M_HELP_HELPMODE',
        +            'M_HELP_MAPINFO_3DGRAPH_HELP', 'M_HELP_MAPINFO_CONNECT_SERVICES',
        +            'M_HELP_MAPINFO_WWW', 'M_HELP_MAPINFO_WWW_STORE',
        +            'M_HELP_MAPINFO_WWW_TUTORIAL', 'M_HELP_SEARCH',
        +            'M_HELP_TECHSUPPORT', 'M_HELP_USE_HELP', 'M_LAYOUT_ACTUAL',
        +            'M_LAYOUT_ALIGN', 'M_LAYOUT_AUTOSCROLL_ONOFF',
        +            'M_LAYOUT_BRING2FRONT', 'M_LAYOUT_CHANGE_VIEW',
        +            'M_LAYOUT_DISPLAYOPTIONS', 'M_LAYOUT_DROPSHADOWS',
        +            'M_LAYOUT_ENTIRE', 'M_LAYOUT_LAYOUT_SIZE', 'M_LAYOUT_PREVIOUS',
        +            'M_LAYOUT_SEND2BACK', 'M_LEGEND_ADD_FRAMES', 'M_LEGEND_DELETE',
        +            'M_LEGEND_PROPERTIES', 'M_LEGEND_REFRESH', 'M_MAP_AUTOLABEL',
        +            'M_MAP_AUTOSCROLL_ONOFF', 'M_MAP_CHANGE_VIEW',
        +            'M_MAP_CLEAR_COSMETIC', 'M_MAP_CLEAR_CUSTOM_LABELS',
        +            'M_MAP_CLIP_REGION_ONOFF', 'M_MAP_CLONE_MAPPER',
        +            'M_MAP_CREATE_3DMAP', 'M_MAP_CREATE_LEGEND',
        +            'M_MAP_CREATE_PRISMMAP', 'M_MAP_ENTIRE_LAYER',
        +            'M_MAP_LAYER_CONTROL', 'M_MAP_MODIFY_THEMATIC', 'M_MAP_OPTIONS',
        +            'M_MAP_PREVIOUS', 'M_MAP_PROJECTION', 'M_MAP_SAVE_COSMETIC',
        +            'M_MAP_SET_CLIP_REGION', 'M_MAP_SETUNITS', 'M_MAP_SETUPDIGITIZER',
        +            'M_MAP_THEMATIC', 'M_MAPBASIC_CLEAR', 'M_MAPBASIC_SAVECONTENTS',
        +            'M_OBJECTS_BREAKPOLY', 'M_OBJECTS_BUFFER',
        +            'M_OBJECTS_CHECK_REGIONS', 'M_OBJECTS_CLEAN',
        +            'M_OBJECTS_CLEAR_TARGET', 'M_OBJECTS_COMBINE',
        +            'M_OBJECTS_CONVEX_HULL', 'M_OBJECTS_CVT_PGON',
        +            'M_OBJECTS_CVT_PLINE', 'M_OBJECTS_DISAGG',
        +            'M_OBJECTS_DRIVE_REGION', 'M_OBJECTS_ENCLOSE', 'M_OBJECTS_ERASE',
        +            'M_OBJECTS_ERASE_OUT', 'M_OBJECTS_MERGE', 'M_OBJECTS_OFFSET',
        +            'M_OBJECTS_OVERLAY', 'M_OBJECTS_POLYLINE_SPLIT',
        +            'M_OBJECTS_POLYLINE_SPLIT_AT_NODE', 'M_OBJECTS_RESHAPE',
        +            'M_OBJECTS_ROTATE', 'M_OBJECTS_SET_TARGET', 'M_OBJECTS_SMOOTH',
        +            'M_OBJECTS_SNAP', 'M_OBJECTS_SPLIT', 'M_OBJECTS_UNSMOOTH',
        +            'M_OBJECTS_VORONOI', 'M_ORACLE_CREATE_WORKSPACE',
        +            'M_ORACLE_DELETE_WORKSPACE', 'M_ORACLE_MERGE_PARENT',
        +            'M_ORACLE_REFRESH_FROM_PARENT', 'M_ORACLE_VERSION_ENABLE_OFF',
        +            'M_ORACLE_VERSION_ENABLE_ON', 'M_QUERY_CALC_STATISTICS',
        +            'M_QUERY_FIND', 'M_QUERY_FIND_ADDRESS', 'M_QUERY_FIND_SELECTION',
        +            'M_QUERY_FIND_SELECTION_CURRENT_MAP', 'M_QUERY_INVERTSELECT',
        +            'M_QUERY_SELECT', 'M_QUERY_SELECTALL', 'M_QUERY_SQLQUERY',
        +            'M_QUERY_UNSELECT', 'M_REDISTRICT_ADD', 'M_REDISTRICT_ASSIGN',
        +            'M_REDISTRICT_DELETE', 'M_REDISTRICT_OPTIONS',
        +            'M_REDISTRICT_TARGET', 'M_SENDMAIL_CURRENTWINDOW',
        +            'M_SENDMAIL_WORKSPACE', 'M_TABLE_APPEND', 'M_TABLE_BUFFER',
        +            'M_TABLE_CHANGESYMBOL', 'M_TABLE_CREATE_POINTS', 'M_TABLE_DELETE',
        +            'M_TABLE_DRIVE_REGION', 'M_TABLE_EXPORT', 'M_TABLE_GEOCODE',
        +            'M_TABLE_IMPORT', 'M_TABLE_MAKEMAPPABLE',
        +            'M_TABLE_MERGE_USING_COLUMN', 'M_TABLE_MODIFY_STRUCTURE',
        +            'M_TABLE_PACK', 'M_TABLE_RASTER_REG', 'M_TABLE_RASTER_STYLE',
        +            'M_TABLE_REFRESH', 'M_TABLE_RENAME',
        +            'M_TABLE_UNIVERSAL_DATA_REFRESH', 'M_TABLE_UNLINK',
        +            'M_TABLE_UPDATE_COLUMN', 'M_TABLE_VORONOI', 'M_TABLE_WEB_GEOCODE',
        +            'M_TABLE_WFS_PROPS', 'M_TABLE_WFS_REFRESH', 'M_TABLE_WMS_PROPS',
        +            'M_TOOLS_ADD_NODE', 'M_TOOLS_ARC', 'M_TOOLS_CRYSTAL_REPORTS_NEW',
        +            'M_TOOLS_CRYSTAL_REPORTS_OPEN', 'M_TOOLS_DRAGWINDOW',
        +            'M_TOOLS_ELLIPSE', 'M_TOOLS_EXPAND', 'M_TOOLS_FRAME',
        +            'M_TOOLS_HOTLINK', 'M_TOOLS_LABELER', 'M_TOOLS_LINE',
        +            'M_TOOLS_MAPBASIC', 'M_TOOLS_PNT_QUERY', 'M_TOOLS_POINT',
        +            'M_TOOLS_POLYGON', 'M_TOOLS_POLYLINE', 'M_TOOLS_RASTER_REG',
        +            'M_TOOLS_RECENTER', 'M_TOOLS_RECTANGLE', 'M_TOOLS_ROUNDEDRECT',
        +            'M_TOOLS_RULER', 'M_TOOLS_RUN', 'M_TOOLS_SEARCH_BOUNDARY',
        +            'M_TOOLS_SEARCH_POLYGON', 'M_TOOLS_SEARCH_RADIUS',
        +            'M_TOOLS_SEARCH_RECT', 'M_TOOLS_SELECTOR', 'M_TOOLS_SHRINK',
        +            'M_TOOLS_TEXT', 'M_TOOLS_TOOL_MANAGER', 'M_WINDOW_ARRANGEICONS',
        +            'M_WINDOW_BROWSE', 'M_WINDOW_BUTTONPAD', 'M_WINDOW_CASCADE',
        +            'M_WINDOW_EXPORT_WINDOW', 'M_WINDOW_FIRST', 'M_WINDOW_GRAPH',
        +            'M_WINDOW_LAYOUT', 'M_WINDOW_LEGEND', 'M_WINDOW_MAP',
        +            'M_WINDOW_MAPBASIC', 'M_WINDOW_MORE', 'M_WINDOW_REDISTRICT',
        +            'M_WINDOW_REDRAW', 'M_WINDOW_STATISTICS', 'M_WINDOW_STATUSBAR',
        +            'M_WINDOW_TILE', 'M_WINDOW_TOOL_PALETTE', 'MAGENTA',
        +            'MAP3D_INFO_BACKGROUND', 'MAP3D_INFO_CAMERA_CLIP_FAR',
        +            'MAP3D_INFO_CAMERA_CLIP_NEAR', 'MAP3D_INFO_CAMERA_FOCAL_X',
        +            'MAP3D_INFO_CAMERA_FOCAL_Y', 'MAP3D_INFO_CAMERA_FOCAL_Z',
        +            'MAP3D_INFO_CAMERA_VPN_1', 'MAP3D_INFO_CAMERA_VPN_2',
        +            'MAP3D_INFO_CAMERA_VPN_3', 'MAP3D_INFO_CAMERA_VU_1',
        +            'MAP3D_INFO_CAMERA_VU_2', 'MAP3D_INFO_CAMERA_VU_3',
        +            'MAP3D_INFO_CAMERA_X', 'MAP3D_INFO_CAMERA_Y',
        +            'MAP3D_INFO_CAMERA_Z', 'MAP3D_INFO_LIGHT_COLOR',
        +            'MAP3D_INFO_LIGHT_X', 'MAP3D_INFO_LIGHT_Y', 'MAP3D_INFO_LIGHT_Z',
        +            'MAP3D_INFO_RESOLUTION_X', 'MAP3D_INFO_RESOLUTION_Y',
        +            'MAP3D_INFO_SCALE', 'MAP3D_INFO_UNITS', 'MAPPER_INFO_AREAUNITS',
        +            'MAPPER_INFO_CENTERX', 'MAPPER_INFO_CENTERY',
        +            'MAPPER_INFO_CLIP_DISPLAY_ALL', 'MAPPER_INFO_CLIP_DISPLAY_POLYOBJ',
        +            'MAPPER_INFO_CLIP_OVERLAY', 'MAPPER_INFO_CLIP_REGION',
        +            'MAPPER_INFO_CLIP_TYPE', 'MAPPER_INFO_COORDSYS_CLAUSE',
        +            'MAPPER_INFO_COORDSYS_CLAUSE_WITH_BOUNDS',
        +            'MAPPER_INFO_COORDSYS_NAME', 'MAPPER_INFO_DISPLAY',
        +            'MAPPER_INFO_DISPLAY_DECIMAL', 'MAPPER_INFO_DISPLAY_DEGMINSEC',
        +            'MAPPER_INFO_DISPLAY_DMS', 'MAPPER_INFO_DISPLAY_MGRS',
        +            'MAPPER_INFO_DISPLAY_POSITION', 'MAPPER_INFO_DISPLAY_SCALE',
        +            'MAPPER_INFO_DISPLAY_ZOOM', 'MAPPER_INFO_DIST_CALC_TYPE',
        +            'MAPPER_INFO_DIST_CARTESIAN', 'MAPPER_INFO_DIST_SPHERICAL',
        +            'MAPPER_INFO_DISTUNITS', 'MAPPER_INFO_EDIT_LAYER',
        +            'MAPPER_INFO_LAYERS', 'MAPPER_INFO_MAXX', 'MAPPER_INFO_MAXY',
        +            'MAPPER_INFO_MERGE_MAP', 'MAPPER_INFO_MINX', 'MAPPER_INFO_MINY',
        +            'MAPPER_INFO_MOVE_DUPLICATE_NODES', 'MAPPER_INFO_NUM_THEMATIC',
        +            'MAPPER_INFO_REPROJECTION', 'MAPPER_INFO_RESAMPLING',
        +            'MAPPER_INFO_SCALE', 'MAPPER_INFO_SCROLLBARS',
        +            'MAPPER_INFO_XYUNITS', 'MAPPER_INFO_ZOOM', 'MAX_STRING_LENGTH',
        +            'MENUITEM_INFO_ACCELERATOR', 'MENUITEM_INFO_CHECKABLE',
        +            'MENUITEM_INFO_CHECKED', 'MENUITEM_INFO_ENABLED',
        +            'MENUITEM_INFO_HANDLER', 'MENUITEM_INFO_HELPMSG',
        +            'MENUITEM_INFO_ID', 'MENUITEM_INFO_SHOWHIDEABLE',
        +            'MENUITEM_INFO_TEXT', 'MI_CURSOR_ARROW', 'MI_CURSOR_CHANGE_WIDTH',
        +            'MI_CURSOR_CROSSHAIR', 'MI_CURSOR_DRAG_OBJ',
        +            'MI_CURSOR_FINGER_LEFT', 'MI_CURSOR_FINGER_UP',
        +            'MI_CURSOR_GRABBER', 'MI_CURSOR_IBEAM', 'MI_CURSOR_IBEAM_CROSS',
        +            'MI_CURSOR_ZOOM_IN', 'MI_CURSOR_ZOOM_OUT', 'MI_ICON_ADD_NODE',
        +            'MI_ICON_ARC', 'MI_ICON_ARROW', 'MI_ICON_ARROW_1',
        +            'MI_ICON_ARROW_10', 'MI_ICON_ARROW_11', 'MI_ICON_ARROW_12',
        +            'MI_ICON_ARROW_13', 'MI_ICON_ARROW_14', 'MI_ICON_ARROW_15',
        +            'MI_ICON_ARROW_16', 'MI_ICON_ARROW_17', 'MI_ICON_ARROW_18',
        +            'MI_ICON_ARROW_19', 'MI_ICON_ARROW_2', 'MI_ICON_ARROW_20',
        +            'MI_ICON_ARROW_21', 'MI_ICON_ARROW_3', 'MI_ICON_ARROW_4',
        +            'MI_ICON_ARROW_5', 'MI_ICON_ARROW_6', 'MI_ICON_ARROW_7',
        +            'MI_ICON_ARROW_8', 'MI_ICON_ARROW_9', 'MI_ICON_CLIP_MODE',
        +            'MI_ICON_CLIP_REGION', 'MI_ICON_CLOSE_ALL',
        +            'MI_ICON_COMMUNICATION_1', 'MI_ICON_COMMUNICATION_10',
        +            'MI_ICON_COMMUNICATION_11', 'MI_ICON_COMMUNICATION_12',
        +            'MI_ICON_COMMUNICATION_2', 'MI_ICON_COMMUNICATION_3',
        +            'MI_ICON_COMMUNICATION_4', 'MI_ICON_COMMUNICATION_5',
        +            'MI_ICON_COMMUNICATION_6', 'MI_ICON_COMMUNICATION_7',
        +            'MI_ICON_COMMUNICATION_8', 'MI_ICON_COMMUNICATION_9',
        +            'MI_ICON_COMPASS_CIRCLE_TA', 'MI_ICON_COMPASS_CONTRACT',
        +            'MI_ICON_COMPASS_EXPAND', 'MI_ICON_COMPASS_POLY_TA',
        +            'MI_ICON_COMPASS_TAG', 'MI_ICON_COMPASS_UNTAG', 'MI_ICON_COPY',
        +            'MI_ICON_CROSSHAIR', 'MI_ICON_CUT', 'MI_ICON_DISTRICT_MANY',
        +            'MI_ICON_DISTRICT_SAME', 'MI_ICON_DRAG_HANDLE', 'MI_ICON_ELLIPSE',
        +            'MI_ICON_EMERGENCY_1', 'MI_ICON_EMERGENCY_10',
        +            'MI_ICON_EMERGENCY_11', 'MI_ICON_EMERGENCY_12',
        +            'MI_ICON_EMERGENCY_13', 'MI_ICON_EMERGENCY_14',
        +            'MI_ICON_EMERGENCY_15', 'MI_ICON_EMERGENCY_16',
        +            'MI_ICON_EMERGENCY_17', 'MI_ICON_EMERGENCY_18',
        +            'MI_ICON_EMERGENCY_2', 'MI_ICON_EMERGENCY_3',
        +            'MI_ICON_EMERGENCY_4', 'MI_ICON_EMERGENCY_5',
        +            'MI_ICON_EMERGENCY_6', 'MI_ICON_EMERGENCY_7',
        +            'MI_ICON_EMERGENCY_8', 'MI_ICON_EMERGENCY_9', 'MI_ICON_GRABBER',
        +            'MI_ICON_GRAPH_SELECT', 'MI_ICON_HELP', 'MI_ICON_HOT_LINK',
        +            'MI_ICON_INFO', 'MI_ICON_INVERTSELECT', 'MI_ICON_LABEL',
        +            'MI_ICON_LAYERS', 'MI_ICON_LEGEND', 'MI_ICON_LETTERS_A',
        +            'MI_ICON_LETTERS_B', 'MI_ICON_LETTERS_C', 'MI_ICON_LETTERS_D',
        +            'MI_ICON_LETTERS_E', 'MI_ICON_LETTERS_F', 'MI_ICON_LETTERS_G',
        +            'MI_ICON_LETTERS_H', 'MI_ICON_LETTERS_I', 'MI_ICON_LETTERS_J',
        +            'MI_ICON_LETTERS_K', 'MI_ICON_LETTERS_L', 'MI_ICON_LETTERS_M',
        +            'MI_ICON_LETTERS_N', 'MI_ICON_LETTERS_O', 'MI_ICON_LETTERS_P',
        +            'MI_ICON_LETTERS_Q', 'MI_ICON_LETTERS_R', 'MI_ICON_LETTERS_S',
        +            'MI_ICON_LETTERS_T', 'MI_ICON_LETTERS_U', 'MI_ICON_LETTERS_V',
        +            'MI_ICON_LETTERS_W', 'MI_ICON_LETTERS_X', 'MI_ICON_LETTERS_Y',
        +            'MI_ICON_LETTERS_Z', 'MI_ICON_LINE', 'MI_ICON_LINE_STYLE',
        +            'MI_ICON_MAPSYMB_1', 'MI_ICON_MAPSYMB_10', 'MI_ICON_MAPSYMB_11',
        +            'MI_ICON_MAPSYMB_12', 'MI_ICON_MAPSYMB_13', 'MI_ICON_MAPSYMB_14',
        +            'MI_ICON_MAPSYMB_15', 'MI_ICON_MAPSYMB_16', 'MI_ICON_MAPSYMB_17',
        +            'MI_ICON_MAPSYMB_18', 'MI_ICON_MAPSYMB_19', 'MI_ICON_MAPSYMB_2',
        +            'MI_ICON_MAPSYMB_20', 'MI_ICON_MAPSYMB_21', 'MI_ICON_MAPSYMB_22',
        +            'MI_ICON_MAPSYMB_23', 'MI_ICON_MAPSYMB_24', 'MI_ICON_MAPSYMB_25',
        +            'MI_ICON_MAPSYMB_26', 'MI_ICON_MAPSYMB_3', 'MI_ICON_MAPSYMB_4',
        +            'MI_ICON_MAPSYMB_5', 'MI_ICON_MAPSYMB_6', 'MI_ICON_MAPSYMB_7',
        +            'MI_ICON_MAPSYMB_8', 'MI_ICON_MAPSYMB_9', 'MI_ICON_MARITIME_1',
        +            'MI_ICON_MARITIME_10', 'MI_ICON_MARITIME_2', 'MI_ICON_MARITIME_3',
        +            'MI_ICON_MARITIME_4', 'MI_ICON_MARITIME_5', 'MI_ICON_MARITIME_6',
        +            'MI_ICON_MARITIME_7', 'MI_ICON_MARITIME_8', 'MI_ICON_MARITIME_9',
        +            'MI_ICON_MB_1', 'MI_ICON_MB_10', 'MI_ICON_MB_11', 'MI_ICON_MB_12',
        +            'MI_ICON_MB_13', 'MI_ICON_MB_14', 'MI_ICON_MB_2', 'MI_ICON_MB_3',
        +            'MI_ICON_MB_4', 'MI_ICON_MB_5', 'MI_ICON_MB_6', 'MI_ICON_MB_7',
        +            'MI_ICON_MB_8', 'MI_ICON_MB_9', 'MI_ICON_MISC_1',
        +            'MI_ICON_MISC_10', 'MI_ICON_MISC_11', 'MI_ICON_MISC_12',
        +            'MI_ICON_MISC_13', 'MI_ICON_MISC_14', 'MI_ICON_MISC_15',
        +            'MI_ICON_MISC_16', 'MI_ICON_MISC_17', 'MI_ICON_MISC_18',
        +            'MI_ICON_MISC_19', 'MI_ICON_MISC_2', 'MI_ICON_MISC_20',
        +            'MI_ICON_MISC_21', 'MI_ICON_MISC_22', 'MI_ICON_MISC_23',
        +            'MI_ICON_MISC_24', 'MI_ICON_MISC_25', 'MI_ICON_MISC_26',
        +            'MI_ICON_MISC_27', 'MI_ICON_MISC_28', 'MI_ICON_MISC_29',
        +            'MI_ICON_MISC_3', 'MI_ICON_MISC_30', 'MI_ICON_MISC_31',
        +            'MI_ICON_MISC_4', 'MI_ICON_MISC_5', 'MI_ICON_MISC_6',
        +            'MI_ICON_MISC_7', 'MI_ICON_MISC_8', 'MI_ICON_MISC_9',
        +            'MI_ICON_NEW_DOC', 'MI_ICON_NUMBERS_1', 'MI_ICON_NUMBERS_10',
        +            'MI_ICON_NUMBERS_11', 'MI_ICON_NUMBERS_12', 'MI_ICON_NUMBERS_13',
        +            'MI_ICON_NUMBERS_14', 'MI_ICON_NUMBERS_15', 'MI_ICON_NUMBERS_16',
        +            'MI_ICON_NUMBERS_17', 'MI_ICON_NUMBERS_18', 'MI_ICON_NUMBERS_19',
        +            'MI_ICON_NUMBERS_2', 'MI_ICON_NUMBERS_20', 'MI_ICON_NUMBERS_21',
        +            'MI_ICON_NUMBERS_22', 'MI_ICON_NUMBERS_23', 'MI_ICON_NUMBERS_24',
        +            'MI_ICON_NUMBERS_25', 'MI_ICON_NUMBERS_26', 'MI_ICON_NUMBERS_27',
        +            'MI_ICON_NUMBERS_28', 'MI_ICON_NUMBERS_29', 'MI_ICON_NUMBERS_3',
        +            'MI_ICON_NUMBERS_30', 'MI_ICON_NUMBERS_31', 'MI_ICON_NUMBERS_32',
        +            'MI_ICON_NUMBERS_4', 'MI_ICON_NUMBERS_5', 'MI_ICON_NUMBERS_6',
        +            'MI_ICON_NUMBERS_7', 'MI_ICON_NUMBERS_8', 'MI_ICON_NUMBERS_9',
        +            'MI_ICON_ODBC_DISCONNECT', 'MI_ICON_ODBC_MAPPABLE',
        +            'MI_ICON_ODBC_OPEN', 'MI_ICON_ODBC_REFRESH', 'MI_ICON_ODBC_SYMBOL',
        +            'MI_ICON_ODBC_UNLINK', 'MI_ICON_OPEN_FILE', 'MI_ICON_OPEN_WOR',
        +            'MI_ICON_OPENWFS', 'MI_ICON_OPENWMS', 'MI_ICON_PASTE',
        +            'MI_ICON_POLYGON', 'MI_ICON_POLYLINE', 'MI_ICON_PRINT',
        +            'MI_ICON_REALESTATE_1', 'MI_ICON_REALESTATE_10',
        +            'MI_ICON_REALESTATE_11', 'MI_ICON_REALESTATE_12',
        +            'MI_ICON_REALESTATE_13', 'MI_ICON_REALESTATE_14',
        +            'MI_ICON_REALESTATE_15', 'MI_ICON_REALESTATE_16',
        +            'MI_ICON_REALESTATE_17', 'MI_ICON_REALESTATE_18',
        +            'MI_ICON_REALESTATE_19', 'MI_ICON_REALESTATE_2',
        +            'MI_ICON_REALESTATE_20', 'MI_ICON_REALESTATE_21',
        +            'MI_ICON_REALESTATE_22', 'MI_ICON_REALESTATE_23',
        +            'MI_ICON_REALESTATE_3', 'MI_ICON_REALESTATE_4',
        +            'MI_ICON_REALESTATE_5', 'MI_ICON_REALESTATE_6',
        +            'MI_ICON_REALESTATE_7', 'MI_ICON_REALESTATE_8',
        +            'MI_ICON_REALESTATE_9', 'MI_ICON_RECT', 'MI_ICON_REGION_STYLE',
        +            'MI_ICON_RESHAPE', 'MI_ICON_ROUND_RECT', 'MI_ICON_RULER',
        +            'MI_ICON_RUN', 'MI_ICON_SAVE_FILE', 'MI_ICON_SAVE_WIN',
        +            'MI_ICON_SAVE_WOR', 'MI_ICON_SEARCH_BDY', 'MI_ICON_SEARCH_POLYGON',
        +            'MI_ICON_SEARCH_RADIUS', 'MI_ICON_SEARCH_RECT', 'MI_ICON_SIGNS_1',
        +            'MI_ICON_SIGNS_10', 'MI_ICON_SIGNS_11', 'MI_ICON_SIGNS_12',
        +            'MI_ICON_SIGNS_13', 'MI_ICON_SIGNS_14', 'MI_ICON_SIGNS_15',
        +            'MI_ICON_SIGNS_16', 'MI_ICON_SIGNS_17', 'MI_ICON_SIGNS_18',
        +            'MI_ICON_SIGNS_19', 'MI_ICON_SIGNS_2', 'MI_ICON_SIGNS_3',
        +            'MI_ICON_SIGNS_4', 'MI_ICON_SIGNS_5', 'MI_ICON_SIGNS_6',
        +            'MI_ICON_SIGNS_7', 'MI_ICON_SIGNS_8', 'MI_ICON_SIGNS_9',
        +            'MI_ICON_STATISTICS', 'MI_ICON_SYMBOL', 'MI_ICON_SYMBOL_STYLE',
        +            'MI_ICON_TEXT', 'MI_ICON_TEXT_STYLE', 'MI_ICON_TRANSPORT_1',
        +            'MI_ICON_TRANSPORT_10', 'MI_ICON_TRANSPORT_11',
        +            'MI_ICON_TRANSPORT_12', 'MI_ICON_TRANSPORT_13',
        +            'MI_ICON_TRANSPORT_14', 'MI_ICON_TRANSPORT_15',
        +            'MI_ICON_TRANSPORT_16', 'MI_ICON_TRANSPORT_17',
        +            'MI_ICON_TRANSPORT_18', 'MI_ICON_TRANSPORT_19',
        +            'MI_ICON_TRANSPORT_2', 'MI_ICON_TRANSPORT_20',
        +            'MI_ICON_TRANSPORT_21', 'MI_ICON_TRANSPORT_22',
        +            'MI_ICON_TRANSPORT_23', 'MI_ICON_TRANSPORT_24',
        +            'MI_ICON_TRANSPORT_25', 'MI_ICON_TRANSPORT_26',
        +            'MI_ICON_TRANSPORT_27', 'MI_ICON_TRANSPORT_3',
        +            'MI_ICON_TRANSPORT_4', 'MI_ICON_TRANSPORT_5',
        +            'MI_ICON_TRANSPORT_6', 'MI_ICON_TRANSPORT_7',
        +            'MI_ICON_TRANSPORT_8', 'MI_ICON_TRANSPORT_9', 'MI_ICON_UNDO',
        +            'MI_ICON_UNSELECT_ALL', 'MI_ICON_WINDOW_FRAME', 'MI_ICON_WRENCH',
        +            'MI_ICON_ZOOM_IN', 'MI_ICON_ZOOM_OUT', 'MI_ICON_ZOOM_QUESTION',
        +            'MI_ICONS_MAPS_1', 'MI_ICONS_MAPS_10', 'MI_ICONS_MAPS_11',
        +            'MI_ICONS_MAPS_12', 'MI_ICONS_MAPS_13', 'MI_ICONS_MAPS_14',
        +            'MI_ICONS_MAPS_15', 'MI_ICONS_MAPS_2', 'MI_ICONS_MAPS_3',
        +            'MI_ICONS_MAPS_4', 'MI_ICONS_MAPS_5', 'MI_ICONS_MAPS_6',
        +            'MI_ICONS_MAPS_7', 'MI_ICONS_MAPS_8', 'MI_ICONS_MAPS_9',
        +            'MIPLATFORM_HP', 'MIPLATFORM_MAC68K', 'MIPLATFORM_POWERMAC',
        +            'MIPLATFORM_SPECIAL', 'MIPLATFORM_SUN', 'MIPLATFORM_WIN16',
        +            'MIPLATFORM_WIN32', 'MODE_APPEND', 'MODE_BINARY', 'MODE_INPUT',
        +            'MODE_OUTPUT', 'MODE_RANDOM', 'OBJ_ARC', 'OBJ_ELLIPSE',
        +            'OBJ_FRAME', 'OBJ_GEO_ARCBEGANGLE', 'OBJ_GEO_ARCENDANGLE',
        +            'OBJ_GEO_CENTROID', 'OBJ_GEO_LINEBEGX', 'OBJ_GEO_LINEBEGY',
        +            'OBJ_GEO_LINEENDX', 'OBJ_GEO_LINEENDY', 'OBJ_GEO_MAXX',
        +            'OBJ_GEO_MAXY', 'OBJ_GEO_MINX', 'OBJ_GEO_MINY', 'OBJ_GEO_POINTM',
        +            'OBJ_GEO_POINTX', 'OBJ_GEO_POINTY', 'OBJ_GEO_POINTZ',
        +            'OBJ_GEO_ROUNDRADIUS', 'OBJ_GEO_TEXTANGLE', 'OBJ_GEO_TEXTLINEX',
        +            'OBJ_GEO_TEXTLINEY', 'OBJ_INFO_BRUSH', 'OBJ_INFO_FILLFRAME',
        +            'OBJ_INFO_FRAMETITLE', 'OBJ_INFO_FRAMEWIN', 'OBJ_INFO_HAS_M',
        +            'OBJ_INFO_HAS_Z', 'OBJ_INFO_MPOINT', 'OBJ_INFO_NONEMPTY',
        +            'OBJ_INFO_NPNTS', 'OBJ_INFO_NPOLYGONS', 'OBJ_INFO_PEN',
        +            'OBJ_INFO_PLINE', 'OBJ_INFO_REGION', 'OBJ_INFO_SMOOTH',
        +            'OBJ_INFO_SYMBOL', 'OBJ_INFO_TEXTARROW', 'OBJ_INFO_TEXTFONT',
        +            'OBJ_INFO_TEXTJUSTIFY', 'OBJ_INFO_TEXTSPACING',
        +            'OBJ_INFO_TEXTSTRING', 'OBJ_INFO_TYPE', 'OBJ_INFO_Z_UNIT',
        +            'OBJ_INFO_Z_UNIT_SET', 'OBJ_LINE', 'OBJ_PLINE', 'OBJ_POINT',
        +            'OBJ_RECT', 'OBJ_REGION', 'OBJ_ROUNDRECT', 'OBJ_TEXT',
        +            'OBJ_TYPE_ARC', 'OBJ_TYPE_COLLECTION', 'OBJ_TYPE_ELLIPSE',
        +            'OBJ_TYPE_FRAME', 'OBJ_TYPE_LINE', 'OBJ_TYPE_MPOINT',
        +            'OBJ_TYPE_PLINE', 'OBJ_TYPE_POINT', 'OBJ_TYPE_RECT',
        +            'OBJ_TYPE_REGION', 'OBJ_TYPE_ROUNDRECT', 'OBJ_TYPE_TEXT',
        +            'ORIENTATION_CUSTOM', 'ORIENTATION_LANDSCAPE',
        +            'ORIENTATION_PORTRAIT', 'PEN_COLOR', 'PEN_INDEX',
        +            'PEN_INTERLEAVED', 'PEN_PATTERN', 'PEN_WIDTH', 'PLATFORM_MAC',
        +            'PLATFORM_MOTIF', 'PLATFORM_SPECIAL', 'PLATFORM_WIN',
        +            'PLATFORM_X11', 'PLATFORM_XOL', 'PRISMMAP_INFO_BACKGROUND',
        +            'PRISMMAP_INFO_CAMERA_CLIP_FAR', 'PRISMMAP_INFO_CAMERA_CLIP_NEAR',
        +            'PRISMMAP_INFO_CAMERA_FOCAL_X', 'PRISMMAP_INFO_CAMERA_FOCAL_Y',
        +            'PRISMMAP_INFO_CAMERA_FOCAL_Z', 'PRISMMAP_INFO_CAMERA_VPN_1',
        +            'PRISMMAP_INFO_CAMERA_VPN_2', 'PRISMMAP_INFO_CAMERA_VPN_3',
        +            'PRISMMAP_INFO_CAMERA_VU_1', 'PRISMMAP_INFO_CAMERA_VU_2',
        +            'PRISMMAP_INFO_CAMERA_VU_3', 'PRISMMAP_INFO_CAMERA_X',
        +            'PRISMMAP_INFO_CAMERA_Y', 'PRISMMAP_INFO_CAMERA_Z',
        +            'PRISMMAP_INFO_INFOTIP_EXPR', 'PRISMMAP_INFO_LIGHT_COLOR',
        +            'PRISMMAP_INFO_LIGHT_X', 'PRISMMAP_INFO_LIGHT_Y',
        +            'PRISMMAP_INFO_LIGHT_Z', 'PRISMMAP_INFO_SCALE', 'RAD_2_DEG',
        +            'RASTER_CONTROL_POINT_X', 'RASTER_CONTROL_POINT_Y',
        +            'RASTER_TAB_INFO_ALPHA', 'RASTER_TAB_INFO_BITS_PER_PIXEL',
        +            'RASTER_TAB_INFO_BRIGHTNESS', 'RASTER_TAB_INFO_CONTRAST',
        +            'RASTER_TAB_INFO_DISPLAY_TRANSPARENT', 'RASTER_TAB_INFO_GREYSCALE',
        +            'RASTER_TAB_INFO_HEIGHT', 'RASTER_TAB_INFO_IMAGE_CLASS',
        +            'RASTER_TAB_INFO_IMAGE_NAME', 'RASTER_TAB_INFO_IMAGE_TYPE',
        +            'RASTER_TAB_INFO_NUM_CONTROL_POINTS',
        +            'RASTER_TAB_INFO_TRANSPARENT_COLOR', 'RASTER_TAB_INFO_WIDTH',
        +            'RED', 'REGION_INFO_IS_CLOCKWISE', 'SEARCH_INFO_ROW',
        +            'SEARCH_INFO_TABLE', 'SECONDS_PER_DAY', 'SEL_INFO_NROWS',
        +            'SEL_INFO_SELNAME', 'SEL_INFO_TABLENAME',
        +            'SESSION_INFO_AREA_UNITS', 'SESSION_INFO_COORDSYS_CLAUSE',
        +            'SESSION_INFO_DISTANCE_UNITS', 'SESSION_INFO_PAPER_UNITS',
        +            'SRV_COL_INFO_ALIAS', 'SRV_COL_INFO_NAME',
        +            'SRV_COL_INFO_PRECISION', 'SRV_COL_INFO_SCALE',
        +            'SRV_COL_INFO_STATUS', 'SRV_COL_INFO_TYPE', 'SRV_COL_INFO_VALUE',
        +            'SRV_COL_INFO_WIDTH', 'SRV_COL_TYPE_BIN_STRING',
        +            'SRV_COL_TYPE_CHAR', 'SRV_COL_TYPE_DATE', 'SRV_COL_TYPE_DECIMAL',
        +            'SRV_COL_TYPE_FIXED_LEN_STRING', 'SRV_COL_TYPE_FLOAT',
        +            'SRV_COL_TYPE_INTEGER', 'SRV_COL_TYPE_LOGICAL',
        +            'SRV_COL_TYPE_NONE', 'SRV_COL_TYPE_SMALLINT',
        +            'SRV_CONNECT_INFO_DB_NAME', 'SRV_CONNECT_INFO_DRIVER_NAME',
        +            'SRV_CONNECT_INFO_DS_NAME', 'SRV_CONNECT_INFO_QUOTE_CHAR',
        +            'SRV_CONNECT_INFO_SQL_USER_ID', 'SRV_DRV_DATA_SOURCE',
        +            'SRV_DRV_INFO_NAME', 'SRV_DRV_INFO_NAME_LIST', 'SRV_ERROR',
        +            'SRV_FETCH_FIRST', 'SRV_FETCH_LAST', 'SRV_FETCH_NEXT',
        +            'SRV_FETCH_PREV', 'SRV_INVALID_HANDLE', 'SRV_NEED_DATA',
        +            'SRV_NO_MORE_DATA', 'SRV_NULL_DATA', 'SRV_SUCCESS',
        +            'SRV_SUCCESS_WITH_INFO', 'SRV_TRUNCATED_DATA',
        +            'SRV_WM_HIST_NO_OVERWRITE', 'SRV_WM_HIST_NONE',
        +            'SRV_WM_HIST_OVERWRITE', 'STR_EQ', 'STR_GT', 'STR_LT',
        +            'STYLE_SAMPLE_SIZE_LARGE', 'STYLE_SAMPLE_SIZE_SMALL',
        +            'SWITCHING_INTO_MAPINFO', 'SWITCHING_OUT_OF_MAPINFO',
        +            'SYMBOL_ANGLE', 'SYMBOL_CODE', 'SYMBOL_COLOR',
        +            'SYMBOL_CUSTOM_NAME', 'SYMBOL_CUSTOM_STYLE', 'SYMBOL_FONT_NAME',
        +            'SYMBOL_FONT_STYLE', 'SYMBOL_KIND', 'SYMBOL_KIND_CUSTOM',
        +            'SYMBOL_KIND_FONT', 'SYMBOL_KIND_VECTOR', 'SYMBOL_POINTSIZE',
        +            'SYS_INFO_APPIDISPATCH', 'SYS_INFO_APPLICATIONWND',
        +            'SYS_INFO_APPVERSION', 'SYS_INFO_CHARSET',
        +            'SYS_INFO_COPYPROTECTED', 'SYS_INFO_DATE_FORMAT',
        +            'SYS_INFO_DDESTATUS', 'SYS_INFO_DIG_INSTALLED',
        +            'SYS_INFO_DIG_MODE', 'SYS_INFO_MAPINFOWND',
        +            'SYS_INFO_MDICLIENTWND', 'SYS_INFO_MIBUILD_NUMBER',
        +            'SYS_INFO_MIPLATFORM', 'SYS_INFO_MIVERSION',
        +            'SYS_INFO_NUMBER_FORMAT', 'SYS_INFO_PLATFORM',
        +            'SYS_INFO_PRODUCTLEVEL', 'SYS_INFO_RUNTIME',
        +            'TAB_GEO_CONTROL_POINT_X', 'TAB_GEO_CONTROL_POINT_Y',
        +            'TAB_INFO_BROWSER_LIST', 'TAB_INFO_COORDSYS_CLAUSE',
        +            'TAB_INFO_COORDSYS_CLAUSE_WITHOUT_BOUNDS',
        +            'TAB_INFO_COORDSYS_MAXX', 'TAB_INFO_COORDSYS_MAXY',
        +            'TAB_INFO_COORDSYS_MINX', 'TAB_INFO_COORDSYS_MINY',
        +            'TAB_INFO_COORDSYS_NAME', 'TAB_INFO_EDITED', 'TAB_INFO_FASTEDIT',
        +            'TAB_INFO_MAPPABLE', 'TAB_INFO_MAPPABLE_TABLE', 'TAB_INFO_MAXX',
        +            'TAB_INFO_MAXY', 'TAB_INFO_MINX', 'TAB_INFO_MINY', 'TAB_INFO_NAME',
        +            'TAB_INFO_NCOLS', 'TAB_INFO_NREFS', 'TAB_INFO_NROWS',
        +            'TAB_INFO_NUM', 'TAB_INFO_READONLY', 'TAB_INFO_SEAMLESS',
        +            'TAB_INFO_SUPPORT_MZ', 'TAB_INFO_TABFILE', 'TAB_INFO_TEMP',
        +            'TAB_INFO_THEME_METADATA', 'TAB_INFO_TYPE', 'TAB_INFO_UNDO',
        +            'TAB_INFO_USERBROWSE', 'TAB_INFO_USERCLOSE',
        +            'TAB_INFO_USERDISPLAYMAP', 'TAB_INFO_USEREDITABLE',
        +            'TAB_INFO_USERMAP', 'TAB_INFO_USERREMOVEMAP', 'TAB_INFO_Z_UNIT',
        +            'TAB_INFO_Z_UNIT_SET', 'TAB_TYPE_BASE', 'TAB_TYPE_FME',
        +            'TAB_TYPE_IMAGE', 'TAB_TYPE_LINKED', 'TAB_TYPE_RESULT',
        +            'TAB_TYPE_VIEW', 'TAB_TYPE_WFS', 'TAB_TYPE_WMS', 'TRUE', 'WHITE',
        +            'WIN_3DMAP', 'WIN_BROWSER', 'WIN_BUTTONPAD', 'WIN_CART_LEGEND',
        +            'WIN_GRAPH', 'WIN_HELP', 'WIN_INFO', 'WIN_INFO_AUTOSCROLL',
        +            'WIN_INFO_CLONEWINDOW', 'WIN_INFO_ENHANCED_RENDERING',
        +            'WIN_INFO_EXPORT_ANTIALIASING', 'WIN_INFO_EXPORT_BORDER',
        +            'WIN_INFO_EXPORT_DITHER', 'WIN_INFO_EXPORT_FILTER',
        +            'WIN_INFO_EXPORT_MASKSIZE', 'WIN_INFO_EXPORT_THRESHOLD',
        +            'WIN_INFO_EXPORT_TRANSPRASTER', 'WIN_INFO_EXPORT_TRANSPVECTOR',
        +            'WIN_INFO_EXPORT_TRUECOLOR', 'WIN_INFO_HEIGHT',
        +            'WIN_INFO_LEGENDS_MAP', 'WIN_INFO_NAME', 'WIN_INFO_OPEN',
        +            'WIN_INFO_PRINTER_BORDER', 'WIN_INFO_PRINTER_BOTTOMMARGIN',
        +            'WIN_INFO_PRINTER_COPIES', 'WIN_INFO_PRINTER_DITHER',
        +            'WIN_INFO_PRINTER_LEFTMARGIN', 'WIN_INFO_PRINTER_METHOD',
        +            'WIN_INFO_PRINTER_NAME', 'WIN_INFO_PRINTER_ORIENT',
        +            'WIN_INFO_PRINTER_PAPERSIZE', 'WIN_INFO_PRINTER_RIGHTMARGIN',
        +            'WIN_INFO_PRINTER_SCALE_PATTERNS', 'WIN_INFO_PRINTER_TOPMARGIN',
        +            'WIN_INFO_PRINTER_TRANSPRASTER', 'WIN_INFO_PRINTER_TRANSPVECTOR',
        +            'WIN_INFO_PRINTER_TRUECOLOR', 'WIN_INFO_SMARTPAN',
        +            'WIN_INFO_SMOOTH_IMAGE', 'WIN_INFO_SMOOTH_TEXT',
        +            'WIN_INFO_SMOOTH_VECTOR', 'WIN_INFO_SNAPMODE',
        +            'WIN_INFO_SNAPTHRESHOLD', 'WIN_INFO_STATE',
        +            'WIN_INFO_SYSMENUCLOSE', 'WIN_INFO_TABLE', 'WIN_INFO_TOPMOST',
        +            'WIN_INFO_TYPE', 'WIN_INFO_WIDTH', 'WIN_INFO_WINDOWID',
        +            'WIN_INFO_WND', 'WIN_INFO_WORKSPACE', 'WIN_INFO_X', 'WIN_INFO_Y',
        +            'WIN_LAYOUT', 'WIN_LEGEND', 'WIN_MAPBASIC', 'WIN_MAPINFO',
        +            'WIN_MAPPER', 'WIN_MESSAGE', 'WIN_PENPICKER',
        +            'WIN_PRINTER_LANDSCAPE', 'WIN_PRINTER_PORTRAIT', 'WIN_RULER',
        +            'WIN_STATE_MAXIMIZED', 'WIN_STATE_MINIMIZED', 'WIN_STATE_NORMAL',
        +            'WIN_STATISTICS', 'WIN_STYLE_CHILD', 'WIN_STYLE_POPUP',
        +            'WIN_STYLE_POPUP_FULLCAPTION', 'WIN_STYLE_STANDARD',
        +            'WIN_SYMBOLPICKER', 'WIN_TOOLBAR', 'WIN_TOOLPICKER', 'YELLOW'
        +            ),
        +        5 => array(
        +            'Abbrs', 'Above', 'Access', 'Active', 'Address', 'Advanced',
        +            'Affine', 'Align', 'Alpha', 'alpha_value', 'Always', 'Angle',
        +            'Animate', 'Antialiasing', 'Append', 'Apply', 'ApplyUpdates',
        +            'Arrow', 'Ascending', 'ASCII', 'At', 'AttributeData', 'Auto',
        +            'Autoflip', 'Autokey', 'Automatic', 'Autoscroll', 'Axis',
        +            'Background', 'Banding', 'Batch', 'Behind', 'Below', 'Bend',
        +            'Binary', 'Blocks', 'Border', 'BorderPen', 'Bottom', 'Bounds',
        +            'ByteOrder', 'ByVal', 'Calling', 'Camera', 'Candidates',
        +            'Cartesian', 'Cell', 'Center', 'Change', 'Char', 'Circle',
        +            'Clipping', 'CloseMatchesOnly', 'ClosestAddr', 'Color', 'Columns',
        +            'Contents', 'ControlPoints', 'Copies', 'Copyright', 'Counter',
        +            'Country', 'CountrySecondarySubdivision', 'CountrySubdivision',
        +            'Cross', 'CubicConvolution', 'Cull', 'Cursor', 'Custom', 'Data',
        +            'DBF', 'DDE', 'Decimal', 'DecimalPlaces', 'DefaultAmbientSpeed',
        +            'DefaultPropagationFactor', 'DeformatNumber', 'Delimiter',
        +            'Density', 'DenyWrite', 'Descending', 'Destroy', 'Device',
        +            'Dictionary', 'DInfo', 'Disable', 'DiscardUpdates', 'Display',
        +            'Dither', 'DrawMode', 'DropKey', 'Droplines', 'Duplicates',
        +            'Dynamic', 'Earth', 'East', 'EditLayerPopup', 'Elevation', 'Else',
        +            'ElseIf', 'Emf', 'Enable', 'Envinsa', 'ErrorDiffusion', 'Extents',
        +            'Fallback', 'FastEdit', 'FillFrame', 'Filter', 'First', 'Fit',
        +            'Fixed', 'FocalPoint', 'Footnote', 'Force', 'FromMapCatalog',
        +            'Front', 'Gap', 'Geographic', 'Geography', 'Graduated', 'Graphic',
        +            'Gutter', 'Half', 'Halftone', 'Handles', 'Height', 'Help',
        +            'HelpMsg', 'Hide', 'Hierarchical', 'HIGHLOW', 'History', 'Icon',
        +            'ID', 'Ignore', 'Image', 'Inflect', 'Inset', 'Inside',
        +            'Interactive', 'Internal', 'Interpolate', 'IntersectingStreet',
        +            'Justify', 'Key', 'Label', 'Labels', 'Landscape', 'Large', 'Last',
        +            'Layer', 'Left', 'Lib', 'Light', 'LinePen', 'Lines', 'Linestyle',
        +            'Longitude', 'LOWHIGH', 'Major', 'MajorPolygonOnly',
        +            'MajorRoadsOnly', 'MapBounds', 'MapMarker', 'MapString', 'Margins',
        +            'MarkMultiple', 'MaskSize', 'Match', 'MaxOffRoadDistance',
        +            'Message', 'MICODE', 'Minor', 'MixedCase', 'Mode', 'ModifierKeys',
        +            'Modify', 'Multiple', 'MultiPolygonRgns', 'Municipality',
        +            'MunicipalitySubdivision', 'Name', 'NATIVE', 'NearestNeighbor',
        +            'NoCollision', 'Node', 'Nodes', 'NoIndex', 'None', 'Nonearth',
        +            'NoRefresh', 'Normalized', 'North', 'Number', 'ObjectType', 'ODBC',
        +            'Off', 'OK', 'OLE', 'On', 'Options', 'Orientation', 'OtherBdy',
        +            'Output', 'Outside', 'Overlapped', 'Overwrite', 'Pagebreaks',
        +            'Pan', 'Papersize', 'Parent', 'PassThrough', 'Password',
        +            'Patterns', 'Per', 'Percent', 'Percentage', 'Permanent',
        +            'PersistentCache', 'Pie', 'Pitch', 'Placename', 'PointsOnly',
        +            'PolyObj', 'Portrait', 'Position', 'PostalCode', 'Prefer',
        +            'Preferences', 'Prev', 'Printer', 'Projection', 'PushButton',
        +            'Quantile', 'Query', 'Random', 'Range', 'Raster', 'Read',
        +            'ReadOnly', 'Rec', 'Redraw', 'Refine', 'Regionstyle', 'RemoveData',
        +            'Replace', 'Reprojection', 'Resampling', 'Restore', 'ResultCode',
        +            'ReturnHoles', 'Right', 'Roll', 'ROP', 'Rotated', 'Row', 'Ruler',
        +            'Scale', 'ScrollBars', 'Seamless', 'SecondaryPostalCode',
        +            'SelfInt', 'Separator', 'Series', 'Service', 'SetKey',
        +            'SetTraverse', 'Shades', 'Show', 'Simple', 'SimplificationFactor',
        +            'Size', 'Small', 'Smart', 'Smooth', 'South', 'Spacing',
        +            'SPATIALWARE', 'Spherical', 'Square', 'Stacked', 'Step', 'Store',
        +            'Street', 'StreetName', 'StreetNumber', 'StyleType', 'Subtitle',
        +            'SysMenuClose', 'Thin', 'Tick', 'Title', 'TitleAxisY',
        +            'TitleGroup', 'Titles', 'TitleSeries', 'ToggleButton', 'Tolerance',
        +            'ToolbarPosition', 'ToolButton', 'Toolkit', 'Top', 'Translucency',
        +            'translucency_percent', 'Transparency', 'Transparent', 'Traverse',
        +            'TrueColor', 'Uncheck', 'Undo', 'Union', 'Unit', 'Until', 'URL',
        +            'Use', 'User', 'UserBrowse', 'UserClose', 'UserDisplayMap',
        +            'UserEdit', 'UserMap', 'UserRemoveMap', 'Value', 'Variable',
        +            'Vary', 'Vector', 'Versioned', 'View', 'ViewDisplayPopup',
        +            'VisibleOnly', 'VMDefault', 'VMGrid', 'VMRaster', 'Voronoi',
        +            'Warnings', 'Wedge', 'West', 'Width', 'With', 'XY', 'XYINDEX',
        +            'Yaw', 'Zoom'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +            //Numeric/String Operators + Comparison Operators
        +            '(', ')', '[', ']', '+', '-', '*', '/', '\\', '^', '&',
        +            '=', '<', '>'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000ff;',        //Statements + Clauses + Data Types + Logical Operators, Geographical Operators + SQL
        +            2 => 'color: #2391af;',        //Special Procedures
        +            3 => 'color: #2391af;',        //Functions
        +            4 => 'color: #c635cb;',        //Constants
        +            5 => 'color: #0000ff;'         //Extended keywords (case sensitive)
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008000;',
        +            'MULTI' => 'color: #008000;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #a31515;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #12198b;',            //Table Attributes
        +            1 => 'color: #2391af;'             //Data Types
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +            //Table Attribute
        +            0 => "[\\.]{1}[a-zA-Z0-9_]+",
        +            //Data Type
        +            1 => "(?xi) \\s+ as \\s+ (Alias|Brush|Date|Float|Font|Integer|Logical|Object|Pen|SmallInt|String|Symbol)"
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/matlab.php b/Sources/geshi/matlab.php
        new file mode 100644
        index 0000000..7cdd50e
        --- /dev/null
        +++ b/Sources/geshi/matlab.php
        @@ -0,0 +1,227 @@
        + 'Matlab M',
        +    'COMMENT_SINGLE' => array(1 => '%'),
        +    'COMMENT_MULTI' => array(),
        +    //Matlab Strings
        +    'COMMENT_REGEXP' => array(
        +        2 => "/(? GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'break', 'case', 'catch', 'continue', 'elseif', 'else', 'end', 'for',
        +            'function', 'global', 'if', 'otherwise', 'persistent', 'return',
        +            'switch', 'try', 'while'
        +            ),
        +        2 => array(
        +            'all','any','exist','is','logical','mislocked',
        +
        +            'abs','acos','acosh','acot','acoth','acsc','acsch','airy','angle',
        +            'ans','area','asec','asech','asin','asinh','atan','atan2','atanh',
        +            'auread','autumn','auwrite','axes','axis','balance','bar','bar3',
        +            'bar3h','barh','besselh','besseli','besselj','besselk','Bessely',
        +            'beta','betainc','betaln','bicg','bicgstab','bin2dec','bitand',
        +            'bitcmp','bitget','bitmax','bitor','bitset','bitshift','bitxor',
        +            'blkdiag','bone','box','brighten','builtin','bwcontr','calendar',
        +            'camdolly','camlight','camlookat','camorbit','campan','campos',
        +            'camproj','camroll','camtarget','camup','camva','camzoom','capture',
        +            'cart2pol','cart2sph','cat','caxis','cdf2rdf','ceil','cell',
        +            'cell2struct','celldisp','cellfun','cellplot','cellstr','cgs',
        +            'char','chol','cholinc','cholupdate','cla','clabel','class','clc',
        +            'clf','clg','clock','close','colmmd','colorbar','colorcube',
        +            'colordef','colormap','colperm','comet','comet3','compan','compass',
        +            'complex','computer','cond','condeig','condest','coneplot','conj',
        +            'contour','contourc','contourf','contourslice','contrast','conv',
        +            'conv2','convhull','cool','copper','copyobj','corrcoef','cos',
        +            'cosh','cot','coth','cov','cplxpair','cputime','cross','csc','csch',
        +            'cumprod','cumsum','cumtrapz','cylinder','daspect','date','datenum',
        +            'datestr','datetick','datevec','dbclear','dbcont','dbdown',
        +            'dblquad','dbmex','dbquit','dbstack','dbstatus','dbstep','dbstop',
        +            'dbtype','dbup','deblank','dec2bin','dec2hex','deconv','del2',
        +            'delaunay','det','diag','dialog','diff','diffuse','dlmread',
        +            'dlmwrite','dmperm','double','dragrect','drawnow','dsearch','eig',
        +            'eigs','ellipj','ellipke','eomday','eps','erf','erfc','erfcx',
        +            'erfiny','error','errorbar','errordlg','etime','eval','evalc',
        +            'evalin','exp','expint','expm','eye','ezcontour','ezcontourf',
        +            'ezmesh','ezmeshc','ezplot','ezplot3','ezpolar','ezsurf','ezsurfc',
        +            'factor','factorial','fclose','feather','feof','ferror','feval',
        +            'fft','fft2','fftshift','fgetl','fgets','fieldnames','figure',
        +            'fill','fill3','filter','filter2','find','findfigs','findobj',
        +            'findstr','fix','flag','flipdim','fliplr','flipud','floor','flops',
        +            'fmin','fmins','fopen','fplot','fprintf','fread','frewind','fscanf',
        +            'fseek','ftell','full','funm','fwrite','fzero','gallery','gamma',
        +            'gammainc','gammaln','gca','gcbo','gcd','gcf','gco','get',
        +            'getfield','ginput','gmres','gradient','gray','graymon','grid',
        +            'griddata','gsvd','gtext','hadamard','hankel','hdf','helpdlg',
        +            'hess','hex2dec','hex2num','hidden','hilb','hist','hold','hot',
        +            'hsv','hsv2rgb','i','ifft','ifft2','ifftn','ifftshift','imag',
        +            'image','imfinfo','imread','imwrite','ind2sub','Inf','inferiorto',
        +            'inline','inpolygon','input','inputdlg','inputname','int16',
        +            'int2str','int32','int8','interp1','interp2','interp3','interpft',
        +            'interpn','intersect','inv','invhilb','ipermute','isa','ishandle',
        +            'ismember','isocaps','isonormals','isosurface','j','jet','keyboard',
        +            'lcm','legend','legendre','light','lighting','lightingangle',
        +            'lin2mu','line','lines','linspace','listdlg','loadobj','log',
        +            'log10','log2','loglog','logm','logspace','lower','lscov','lu',
        +            'luinc','magic','mat2str','material','max','mean','median','menu',
        +            'menuedit','mesh','meshc','meshgrid','min','mod','msgbox','mu2lin',
        +            'NaN','nargchk','nargin','nargout','nchoosek','ndgrid','ndims',
        +            'newplot','nextpow2','nnls','nnz','nonzeros','norm','normest','now',
        +            'null','num2cell','num2str','nzmax','ode113,','ode15s,','ode23s,',
        +            'ode23t,','ode23tb','ode45,','odefile','odeget','odeset','ones',
        +            'orient','orth','pagedlg','pareto','pascal','patch','pause',
        +            'pbaspect','pcg','pcolor','peaks','perms','permute','pi','pie',
        +            'pie3','pinv','plot','plot3','plotmatrix','plotyy','pol2cart',
        +            'polar','poly','polyarea','polyder','polyeig','polyfit','polyval',
        +            'polyvalm','pow2','primes','print','printdlg','printopt','prism',
        +            'prod','propedit','qmr','qr','qrdelete','qrinsert','qrupdate',
        +            'quad','questdlg','quiver','quiver3','qz','rand','randn','randperm',
        +            'rank','rat','rats','rbbox','rcond','real','realmax','realmin',
        +            'rectangle','reducepatch','reducevolume','refresh','rem','repmat',
        +            'reset','reshape','residue','rgb2hsv','rgbplot','ribbon','rmfield',
        +            'roots','rose','rot90','rotate','rotate3d','round','rref',
        +            'rrefmovie','rsf2csf','saveobj','scatter','scatter3','schur',
        +            'script','sec','sech','selectmoveresize','semilogx','semilogy',
        +            'set','setdiff','setfield','setxor','shading','shg','shiftdim',
        +            'shrinkfaces','sign','sin','single','sinh','slice','smooth3','sort',
        +            'sortrows','sound','soundsc','spalloc','sparse','spconvert',
        +            'spdiags','specular','speye','spfun','sph2cart','sphere','spinmap',
        +            'spline','spones','spparms','sprand','sprandn','sprandsym','spring',
        +            'sprintf','sqrt','sqrtm','squeeze','sscanf','stairs','std','stem',
        +            'stem3','str2double','str2num','strcat','strcmp','strcmpi',
        +            'stream2','stream3','streamline','strings','strjust','strmatch',
        +            'strncmp','strrep','strtok','struct','struct2cell','strvcat',
        +            'sub2ind','subplot','subspace','subvolume','sum','summer',
        +            'superiorto','surf','surf2patch','surface','surfc','surfl',
        +            'surfnorm','svd','svds','symmmd','symrcm','symvar','tan','tanh',
        +            'texlabel','text Create','textread','textwrap','tic','title','toc',
        +            'toeplitz','trace','trapz','tril','trimesh','trisurf','triu',
        +            'tsearch','uicontext Create','uicontextmenu','uicontrol',
        +            'uigetfile','uimenu','uint32','uint8','uiputfile','uiresume',
        +            'uisetcolor','uisetfont','uiwait Used','union','unique','unwrap',
        +            'upper','var','varargin','varargout','vectorize','view','viewmtx',
        +            'voronoi','waitbar','waitforbuttonpress','warndlg','warning',
        +            'waterfall','wavread','wavwrite','weekday','whitebg','wilkinson',
        +            'winter','wk1read','wk1write','xlabel','xlim','ylabel','ylim',
        +            'zeros','zlabel','zlim','zoom',
        +            //'[Keywords 6]',
        +            'addpath','cd','clear','copyfile','delete','diary','dir','disp',
        +            'doc','docopt','echo','edit','fileparts','format','fullfile','help',
        +            'helpdesk','helpwin','home','inmem','lasterr','lastwarn','length',
        +            'load','lookfor','ls','matlabrc','matlabroot','mkdir','mlock',
        +            'more','munlock','open','openvar','pack','partialpath','path',
        +            'pathtool','profile','profreport','pwd','quit','rmpath','save',
        +            'saveas','size','tempdir','tempname','type','ver','version','web',
        +            'what','whatsnew','which','who','whos','workspace'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '...'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        //3 => false,
        +        //4 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000FF;',
        +            2 => 'color: #0000FF;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #228B22;',
        +            2 => 'color:#A020F0;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => ''
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #080;'
        +            ),
        +        'STRINGS' => array(
        +            //0 => 'color: #A020F0;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #33f;'
        +            ),
        +        'METHODS' => array(
        +            1 => '',
        +            2 => ''
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #080;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #33f;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => 'http://www.mathworks.com/access/helpdesk/help/techdoc/ref/{FNAMEL}.html'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        2 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        //Complex numbers
        +        0 => '(?html)'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/mirc.php b/Sources/geshi/mirc.php
        new file mode 100644
        index 0000000..fa2f307
        --- /dev/null
        +++ b/Sources/geshi/mirc.php
        @@ -0,0 +1,171 @@
        + 'mIRC Scripting',
        +    'COMMENT_SINGLE' => array(1 => ';'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'alias', 'menu', 'dialog',
        +            ),
        +        2 => array(
        +            'if', 'elseif', 'else', 'while', 'return', 'goto', 'var'
        +            ),
        +        3 => array(
        +            'action','ajinvite','amsg','ame','anick','aop','auser',
        +            'avoice','auto','autojoin','away','background','ban','beep',
        +            'channel','clear','clearall','clipboard','close','closemsg','color',
        +            'copy','creq','ctcp','ctcpreply','ctcps','dcc','dde','ddeserver',
        +            'debug','describe','disable','disconnect','dlevel','dll','dns',
        +            'dqwindow','ebeeps','echo','editbox','emailaddr','enable','events',
        +            'exit','filter','findtext','finger','flash','flood','flush',
        +            'flushini','font','fsend','fserve','fullname','ghide','gload',
        +            'gmove','gopts','gplay','gpoint','gqreq','groups','gshow','gsize',
        +            'gstop','gtalk','gunload','guser','help','hop','ignore','invite',
        +            'join','kick','linesep','links','list','load','loadbuf','localinfo',
        +            'log','me','mdi','mkdir','mnick','mode','msg','names','nick','noop',
        +            'notice','notify','omsg','onotice','part','partall','pdcc',
        +            'perform','ping','play','pop','protect','pvoice','qmsg','qme',
        +            'query','queryrn','quit','raw','remini','remote','remove','rename',
        +            'enwin','resetidle','rlevel','rmdir','run','ruser','save','savebuf',
        +            'saveini','say','server','showmirc','sline','sound','speak','splay',
        +            'sreq','strip','time',
        +            //'timer[N/name]', //Handled as a regular expression below ...
        +            'timers','timestamp','titlebar','tnick','tokenize','topic','ulist',
        +            'unload','updatenl','url','uwho','window','winhelp','write',
        +            'writeini','who','whois','whowas'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']', '/'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #994444;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #990000; font-weight: bold;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #FF0000;',
        +            ),
        +        'STRINGS' => array(
        +            ),
        +        'NUMBERS' => array(
        +            0 => '',
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #008000;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #FF0000;',
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #000099;',
        +            1 => 'color: #990000;',
        +            2 => 'color: #000099;',
        +            3 => 'color: #888800;',
        +            4 => 'color: #888800;',
        +            5 => 'color: #000099;',
        +            6 => 'color: #990000; font-weight: bold;',
        +            7 => 'color: #990000; font-weight: bold;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://www.mirc.com/{FNAMEL}'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array('.'),
        +    'REGEXPS' => array(
        +        //Variable names
        +        0 => '\$[a-zA-Z0-9]+',
        +        //Variable names
        +        1 => '(%|&)[\w\x80-\xFE]+',
        +        //Client to Client Protocol handling
        +        2 => '(on|ctcp) (!|@|&)?(\d|\*):[a-zA-Z]+:',
        +        /*4 => array(
        +            GESHI_SEARCH => '((on|ctcp) (!|@|&)?(\d|\*):(Action|Active|Agent|AppActive|Ban|Chat|Close|Connect|Ctcp|CtcpReply|DccServer|DeHelp|DeOp|DeVoice|Dialog|Dns|Error|Exit|FileRcvd|FileSent|GetFail|Help|Hotlink|Input|Invite|Join|KeyDown|KeyUp|Kick|Load|Logon|MidiEnd|Mode|Mp3End|Nick|NoSound|Notice|Notify|Op|Open|Part|Ping|Pong|PlayEnd|Quit|Raw|RawMode|SendFail|Serv|ServerMode|ServerOp|Signal|Snotice|Start|Text|Topic|UnBan|Unload|Unotify|User|Mode|Voice|Wallops|WaveEnd):)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'i',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),*/
        +        //Channel names
        +        3 => '(#|@)[a-zA-Z0-9]+',
        +        4 => '-[a-z\d]+',
        +        //Raw protocol handling
        +        5 => 'raw (\d|\*):',
        +        //Timer handling
        +        6 => '(?|:|\/)\/timer(?!s\b)[0-9a-zA-Z_]+',
        +        // /...
        +        7 => '(?|:|\/|\w)\/[a-zA-Z][a-zA-Z0-9]*(?!>)'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'NUMBERS' => GESHI_NEVER
        +            ),
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => '(?
        \ No newline at end of file
        diff --git a/Sources/geshi/mmix.php b/Sources/geshi/mmix.php
        new file mode 100644
        index 0000000..60b6e28
        --- /dev/null
        +++ b/Sources/geshi/mmix.php
        @@ -0,0 +1,193 @@
        + 'MMIX',
        +    'COMMENT_SINGLE' => array(1 => ';', 2 => '%'),
        +    'COMMENT_MULTI' => array(),
        +    //Line address prefix suppression
        +    'COMMENT_REGEXP' => array(
        +        3 => "/^\s*(?!\s)[^\w].*$/m",
        +        4 => "/^\s*[0-9a-f]{12,16}+(?:\s+[0-9a-f]+(?:\.{3}[0-9a-f]{2,})?)?:/mi"
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'NUMBERS' => array(
        +        1 => '(? '#[\da-fA-F]+',
        +        3 => '\$\d+'
        +        ),
        +    'KEYWORDS' => array(
        +        /*CPU*/
        +        1 => array(
        +            '16ADDU','2ADDU','4ADDU','8ADDU','ADD','ADDU','AND','ANDN','ANDNH',
        +            'ANDNL','ANDNMH','ANDNML','BDIF','BEV','BN','BNN','BNP','BNZ','BOD',
        +            'BP','BZ','CMP','CMPU','CSEV','CSN','CSNN','CSNP','CSNZ','CSOD',
        +            'CSP','CSWAP','CSZ','DIV','DIVU','FADD','FCMP','FCMPE','FDIV',
        +            'FEQL','FEQLE','FINT','FIX','FIXU','FLOT','FLOTU','FMUL','FREM',
        +            'FSQRT','FSUB','FUN','FUNE','GET','GETA','GO','INCH','INCL','INCMH',
        +            'INCML','JMP','LDA','LDB','LDBU','LDHT','LDO','LDOU','LDSF','LDT',
        +            'LDTU','LDUNC','LDVTS','LDW','LDWU','MOR','MUL','MULU','MUX','MXOR',
        +            'NAND','NEG','NEGU','NOR','NXOR','ODIF','OR','ORH','ORL','ORMH',
        +            'ORML','ORN','PBEV','PBN','PBNN','PBNP','PBNZ','PBOD','PBP','PBZ',
        +            'POP','PREGO','PRELD','PREST','PUSHGO','PUSHJ','PUT','RESUME','SADD',
        +            'SAVE','SETH','SETL','SETMH','SETML','SFLOT','SFLOTU','SL','SLU',
        +            'SR','SRU','STB','STBU','STCO','STHT','STO','STOU','STSF','STT',
        +            'STTU','STUNC','STW','STWU','SUB','SUBU','SWYM','SYNC','SYNCD',
        +            'SYNCID','TDIF','TRAP','TRIP','UNSAVE','WDIF','XOR','ZSEV','ZSN',
        +            'ZSNN','ZSNP','ZSNZ','ZSOD','ZSP','ZSZ'
        +            ),
        +        2 => array(
        +            'BSPEC','BYTE','ESPEC','GREG','IS','LOC','LOCAL','OCTA',
        +            'PREFIX','SET','TETRA','WYDE'
        +            ),
        +        /*registers*/
        +        3 => array(
        +            'rA','rB','rC','rD','rE','rF','rG','rH','rI','rJ','rK','rL','rM',
        +            'rN','rO','rP','rQ','rR','rS','rT','rU','rV','rW','rX','rY','rZ',
        +            'rBB','rTT','rWW','rXX','rYY','rZZ'
        +            ),
        +//        /*Directive*/
        +//        4 => array(
        +//            ),
        +//        /*Operands*/
        +//        5 => array(
        +//            )
        +        ),
        +    'SYMBOLS' => array(
        +        '[', ']', '(', ')',
        +        '+', '-', '*', '/', '%',
        +        '.', ',', ';', ':',
        +        '<<','>>'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => false,
        +        3 => true,
        +//        4 => false,
        +//        5 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #00007f; font-weight: bold;',
        +            2 => 'color: #0000ff; font-weight: bold;',
        +            3 => 'color: #00007f;',
        +//            4 => 'color: #000000; font-weight: bold;',
        +//            5 => 'color: #000000; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #666666; font-style: italic;',
        +            3 => 'color: #666666; font-style: italic;',
        +            4 => 'color: #adadad; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900; font-weight: bold;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #7f007f;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #0000ff;',
        +            1 => 'color: #0000ff;',
        +            2 => 'color: #0000ff;',
        +            3 => 'color: #00007f;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(
        +//            0 => 'color: #0000ff;',
        +//            1 => 'color: #0000ff;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +//        4 => '',
        +//        5 => ''
        +        ),
        +/*
        +    'NUMBERS' =>
        +        GESHI_NUMBER_BIN_PREFIX_PERCENT |
        +        GESHI_NUMBER_BIN_SUFFIX |
        +        GESHI_NUMBER_HEX_PREFIX |
        +        GESHI_NUMBER_HEX_SUFFIX |
        +        GESHI_NUMBER_OCT_SUFFIX |
        +        GESHI_NUMBER_INT_BASIC |
        +        GESHI_NUMBER_FLT_NONSCI |
        +        GESHI_NUMBER_FLT_NONSCI_F |
        +        GESHI_NUMBER_FLT_SCI_ZERO,
        +*/
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        //Hex numbers
        +//        0 => /*  */ "(?<=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))(?:[0-9][0-9a-fA-F]{0,31}[hH]|0x[0-9a-fA-F]{1,32})(?=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))",
        +        //Binary numbers
        +//        1 => "(?<=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))[01]{1,64}[bB](?=([\\s\\(\\)\\[\\],;.:+\\-\\/*]))"
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 8,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => "(?|^])",
        +            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%])"
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/modula2.php b/Sources/geshi/modula2.php
        new file mode 100644
        index 0000000..1850834
        --- /dev/null
        +++ b/Sources/geshi/modula2.php
        @@ -0,0 +1,136 @@
        + 'Modula-2',
        +    'COMMENT_MULTI' => array('(*' => '*)'),
        +    'COMMENT_SINGLE' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'HARDQUOTE' => array("'", "'"),
        +    'HARDESCAPE' => array("''"),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array( /* reserved words */
        +            'AND', 'ARRAY', 'BEGIN', 'BY', 'CASE', 'CONST', 'DEFINITION',
        +            'DIV', 'DO', 'ELSE', 'ELSIF', 'END', 'EXIT', 'EXPORT', 'FOR',
        +            'FROM', 'IF', 'IMPLEMENTATION', 'IMPORT', 'IN', 'LOOP', 'MOD',
        +            'MODULE', 'NOT', 'OF', 'OR', 'POINTER', 'PROCEDURE', 'QUALIFIED',
        +            'RECORD', 'REPEAT', 'RETURN', 'SET', 'THEN', 'TO', 'TYPE',
        +            'UNTIL', 'VAR', 'WHILE', 'WITH'
        +            ),
        +        2 => array( /* pervasive constants */
        +            'NIL', 'FALSE', 'TRUE',
        +            ),
        +        3 => array( /* pervasive types */
        +            'BITSET', 'CAP', 'CHR', 'DEC', 'DISPOSE', 'EXCL', 'FLOAT',
        +            'HALT', 'HIGH', 'INC', 'INCL', 'MAX', 'MIN', 'NEW', 'ODD', 'ORD',
        +            'SIZE', 'TRUNC', 'VAL'
        +            ),
        +        4 => array( /* pervasive functions and macros */
        +            'ABS', 'BOOLEAN', 'CARDINAL', 'CHAR', 'INTEGER',
        +            'LONGCARD', 'LONGINT', 'LONGREAL', 'PROC', 'REAL'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        ',', ':', '=', '+', '-', '*', '/', '#', '~'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight: bold;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #000066;',
        +            4 => 'color: #000066; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            'HARD' => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;',
        +            'HARD' => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #0066ee;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => ''
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/modula3.php b/Sources/geshi/modula3.php
        new file mode 100644
        index 0000000..ae08dcf
        --- /dev/null
        +++ b/Sources/geshi/modula3.php
        @@ -0,0 +1,135 @@
        + 'Modula-3',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array('(*' => '*)'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'HARDQUOTE' => array("'", "'"),
        +    'HARDESCAPE' => array("''"),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'AND', 'ANY', 'ARRAY', 'AS', 'BEGIN', 'BITS', 'BRANDED', 'BY', 'CASE',
        +            'CONST', 'DIV', 'DO', 'ELSE', 'ELSIF', 'END', 'EVAL', 'EXCEPT', 'EXCEPTION',
        +            'EXIT', 'EXPORTS', 'FINALLY', 'FOR', 'FROM', 'GENERIC', 'IF', 'IMPORT', 'IN',
        +            'INTERFACE', 'LOCK', 'LOOP', 'METHODS', 'MOD', 'MODULE', 'NOT', 'OBJECT', 'OF',
        +            'OR', 'OVERRIDES', 'PROCEDURE', 'RAISE', 'RAISES', 'READONLY', 'RECORD', 'REF',
        +            'REPEAT', 'RETURN', 'REVEAL', 'ROOT', 'SET', 'THEN', 'TO', 'TRY', 'TYPE', 'TYPECASE',
        +            'UNSAFE', 'UNTIL', 'UNTRACED', 'VALUE', 'VAR', 'WHILE', 'WITH'
        +            ),
        +        2 => array(
        +            'NIL', 'NULL', 'FALSE', 'TRUE',
        +            ),
        +        3 => array(
        +            'ABS','ADR','ADRSIZE','BITSIZE','BYTESIZE','CEILING','DEC','DISPOSE',
        +            'EXTENDED','FIRST','FLOAT','FLOOR','INC','ISTYPE','LAST','LOOPHOLE','MAX','MIN',
        +            'NARROW','NEW','NUMBER','ORD','ROUND','SUBARRAY','TRUNC','TYPECODE', 'VAL'
        +            ),
        +        4 => array(
        +            'ADDRESS', 'BOOLEAN', 'CARDINAL', 'CHAR', 'INTEGER',
        +            'LONGREAL', 'MUTEX', 'REAL', 'REFANY', 'TEXT'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        ',', ':', '=', '+', '-', '*', '/', '#'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight: bold;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #000066;',
        +            4 => 'color: #000066; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            'HARD' => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;',
        +            'HARD' => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #0066ee;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/mpasm.php b/Sources/geshi/mpasm.php
        new file mode 100644
        index 0000000..f724a94
        --- /dev/null
        +++ b/Sources/geshi/mpasm.php
        @@ -0,0 +1,164 @@
        + 'Microchip Assembler',
        +    'COMMENT_SINGLE' => array(1 => ';'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        /*Directive Language*/
        +        4 => array(
        +            'CONSTANT', '#DEFINE', 'END', 'EQU', 'ERROR', 'ERROR-LEVEL', '#INCLUDE', 'LIST',
        +            'MESSG', 'NOLIST', 'ORG', 'PAGE', 'PROCESSOR', 'RADIX', 'SET', 'SPACE', 'SUBTITLE',
        +            'TITLE', '#UNDEFINE', 'VARIABLE', 'ELSE', 'ENDIF', 'ENDW', 'IF', 'IFDEF', 'IFNDEF',
        +            'WHILE', '__BADRAM', 'CBLOCK', '__CONFIG', 'DA', 'DATA', 'DB', 'DE', 'DT', 'DW',
        +            'ENDC', 'FILL', '__IDLOCS', '__MAXRAM', 'RES', 'ENDM', 'EXITM', 'EXPAND', 'LOCAL',
        +            'MACRO', 'NOEXPAND', 'BANKISEL', 'BANKSEL', 'CODE', 'EXTERN', 'GLOBAL', 'IDATA',
        +            'PAGESEL', 'UDATA', 'UDATA_ACS', 'UDATA_OVR', 'UDATA_SHR'
        +            ),
        +        /* 12&14-bit Specific Instruction Set*/
        +        1 => array(
        +            'andlw', 'call', 'clrwdt', 'goto', 'iorlw', 'movlw', 'option', 'retlw', 'sleep',
        +            'tris', 'xorlw', 'addwf', 'andwf', 'clrf', 'clrw', 'comf', 'decf', 'decfsz', 'incf',
        +            'incfsz', 'iorwf', 'movf', 'nop', 'rlf', 'rrf', 'subwf', 'swapf', 'xorwf',
        +            'bcf', 'bsf', 'btfsc', 'btfss',
        +            'addlw', 'retfie', 'return', 'sublw', 'addcf', 'adddcf', 'b', 'bc', 'bdc',
        +            'bnc', 'bndc', 'bnz', 'bz', 'clrc', 'clrdc', 'clrz', 'lcall', 'lgoto', 'movfw',
        +            'negf', 'setc', 'setdc', 'setz', 'skpc', 'skpdc', 'skpnc', 'skpndc', 'skpnz', 'skpz',
        +            'subcf', 'subdcf', 'tstf'
        +            ),
        +        /* 16-bit Specific Instructiob Set */
        +        2 => array (
        +            'movfp', 'movlb', 'movlp', 'movpf', 'movwf', 'tablrd', 'tablwt', 'tlrd', 'tlwt',
        +            'addwfc', 'daw', 'mullw', 'negw', 'rlcf', 'rlncf', 'rrcf', 'rrncf', 'setf', 'subwfb',
        +            'btg', 'cpfseq', 'cpfsgt', 'cpfslt', 'dcfsnz', 'infsnz', 'tstfsz', 'lfsr', 'bnn',
        +            'bnov', 'bra', 'pop', 'push', 'rcall', 'reset'
        +            ),
        +        /* Registers */
        +        3 => array(
        +            'INDF', 'TMR0', 'PCL', 'STATUS', 'FSR', 'PORTA', 'PORTB', 'PORTC', 'PORTD', 'PORTE',
        +            'PCLATH', 'INTCON', 'PIR1', 'PIR2', 'TMR1L', 'TMR1H', 'T1CON', 'TMR2', 'T2CON', 'TMR2L',
        +            'TMR2H', 'TMR0H', 'TMR0L', 'SSPBUF', 'SSPCON', 'CCPR1L', 'CCPR1H', 'CCP1CON', 'RCSTA',
        +            'TXREG', 'RCREG', 'CCPR2L', 'CCPR2H', 'CCP2CON', 'OPTION', 'TRISA', 'TRISB', 'TRISC',
        +            'TRISD', 'TRISE', 'PIE2', 'PIE1', 'PR2', 'SSPADD', 'SSPSTAT', 'TXSTA', 'SPBRG'
        +            ),
        +        /*Operands*/
        +        5 => array(
        +            'high','low'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '[', ']', '(', ')'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #00007f;',
        +            2 => 'color: #0000ff;',
        +            3 => 'color: #007f00;',
        +            4 => 'color: #46aa03; font-weight:bold;',
        +            5 => 'color: #7f0000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #adadad; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #7f007f;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #ff0000;',
        +            1 => 'color: #ff0000;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        //Hex numbers
        +        0 => '[0-9a-fA-F]{1,32}[hH]',
        +        //Binary numbers
        +        1 => '[01]{1,64}[bB]'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/mxml.php b/Sources/geshi/mxml.php
        new file mode 100644
        index 0000000..0cc8287
        --- /dev/null
        +++ b/Sources/geshi/mxml.php
        @@ -0,0 +1,145 @@
        + 'MXML',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(''),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        ),
        +    'SYMBOLS' => array(
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            ),
        +        'COMMENTS' => array(
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => 'color: #00bbdd;',
        +            1 => 'color: #ddbb00;',
        +            2 => 'color: #339933;',
        +            3 => 'color: #000000;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'font-weight: bold; color: black;',
        +            1 => 'color: #7400FF;',
        +            2 => 'color: #7400FF;'
        +            )
        +        ),
        +    'URLS' => array(
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        // xml declaration
        +        0 => array(
        +            GESHI_SEARCH => '(<[\/?|(\?xml)]?[a-z0-9_\-:]*(\?>))',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'i',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        // opening tags
        +        1 => array(
        +            GESHI_SEARCH => '(<\/?[a-z]+:[a-z]+)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'i',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        // closing tags
        +        2 => array(
        +            GESHI_SEARCH => '(\/?>)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'i',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
        +    'SCRIPT_DELIMITERS' => array(
        +        0 => array(
        +            ' '>'
        +            ),
        +        1 => array(
        +            '&' => ';'
        +            ),
        +        2 => array(
        +            //' ']]>'
        +            '' => ''
        +            ),
        +        3 => array(
        +            '<' => '>'
        +            )
        +    ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => false,
        +        1 => false,
        +        2 => false,
        +        3 => true
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        diff --git a/Sources/geshi/mysql.php b/Sources/geshi/mysql.php
        new file mode 100644
        index 0000000..507da2d
        --- /dev/null
        +++ b/Sources/geshi/mysql.php
        @@ -0,0 +1,475 @@
        + 'MySQL',
        +    //'COMMENT_SINGLE' => array(1 =>'--', 2 => '#'),    // '--' MUST be folowed by whitespace,not necessarily a space
        +    'COMMENT_SINGLE' => array(
        +        1 =>'-- ',
        +        2 => '#'
        +        ),
        +    'COMMENT_REGEXP' => array(
        +        1 => "/(?:--\s).*?$/",                          // double dash followed by any whitespace
        +        ),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,            // @@@ would be nice if this could be defined per group!
        +    'QUOTEMARKS' => array("'", '"', '`'),
        +    'ESCAPE_CHAR' => '\\',                              // by default only, can be specified
        +    'ESCAPE_REGEXP' => array(
        +        1 => "/[_%]/",                                  // search wildcards
        +        ),
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC |
        +        GESHI_NUMBER_OCT_PREFIX |
        +        GESHI_NUMBER_HEX_PREFIX |
        +        GESHI_NUMBER_FLT_NONSCI |
        +        GESHI_NUMBER_FLT_SCI_SHORT |
        +        GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        1 => array(
        +            // Mix: statement keywords and keywords that don't fit in any other
        +            // category, or have multiple usage/meanings
        +            'ACTION','ADD','AFTER','ALGORITHM','ALL','ALTER','ANALYZE','ANY',
        +            'ASC','AS','BDB','BEGIN','BERKELEYDB','BINARY','BTREE','CALL',
        +            'CASCADED','CASCADE','CHAIN','CHANGE','CHECK','COLUMNS','COLUMN',
        +            'COMMENT','COMMIT','COMMITTED','CONSTRAINT','CONTAINS SQL',
        +            'CONSISTENT','CONVERT','CREATE','CROSS','DATA','DATABASES',
        +            'DECLARE','DEFINER','DELAYED','DELETE','DESCRIBE','DESC',
        +            'DETERMINISTIC','DISABLE','DISCARD','DISTINCTROW','DISTINCT','DO',
        +            'DROP','DUMPFILE','DUPLICATE KEY','ENABLE','ENCLOSED BY','ENGINE',
        +            'ERRORS','ESCAPED BY','EXISTS','EXPLAIN','EXTENDED','FIELDS',
        +            'FIRST','FOR EACH ROW','FORCE','FOREIGN KEY','FROM','FULL',
        +            'FUNCTION','GLOBAL','GRANT','GROUP BY','HANDLER','HASH','HAVING',
        +            'HELP','HIGH_PRIORITY','IF NOT EXISTS','IGNORE','IMPORT','INDEX',
        +            'INFILE','INNER','INNODB','INOUT','INTO','INVOKER',
        +            'ISOLATION LEVEL','JOIN','KEYS','KEY','KILL','LANGUAGE SQL','LAST',
        +            'LIMIT','LINES','LOAD','LOCAL','LOCK','LOW_PRIORITY',
        +            'MASTER_SERVER_ID','MATCH','MERGE','MIDDLEINT','MODIFIES SQL DATA',
        +            'MODIFY','MRG_MYISAM','NATURAL','NEXT','NO SQL','NO','ON',
        +            'OPTIMIZE','OPTIONALLY','OPTION','ORDER BY','OUTER','OUTFILE','OUT',
        +            'PARTIAL','PARTITION','PREV','PRIMARY KEY','PRIVILEGES','PROCEDURE',
        +            'PURGE','QUICK','READS SQL DATA','READ','REFERENCES','RELEASE',
        +            'RENAME','REORGANIZE','REPEATABLE','REQUIRE','RESTRICT','RETURNS',
        +            'REVOKE','ROLLBACK','ROUTINE','RTREE','SAVEPOINT','SELECT',
        +            'SERIALIZABLE','SESSION','SET','SHARE MODE','SHOW','SIMPLE',
        +            'SNAPSHOT','SOME','SONAME','SQL SECURITY','SQL_BIG_RESULT',
        +            'SQL_BUFFER_RESULT','SQL_CACHE','SQL_CALC_FOUND_ROWS',
        +            'SQL_NO_CACHE','SQL_SMALL_RESULT','SSL','START','STARTING BY',
        +            'STATUS','STRAIGHT_JOIN','STRIPED','TABLESPACE','TABLES','TABLE',
        +            'TEMPORARY','TEMPTABLE','TERMINATED BY','TO','TRANSACTIONS',
        +            'TRANSACTION','TRIGGER','TYPES','TYPE','UNCOMMITTED','UNDEFINED',
        +            'UNION','UNLOCK_TABLES','UPDATE','USAGE','USE','USER_RESOURCES',
        +            'USING','VALUES','VALUE','VIEW','WARNINGS','WHERE','WITH ROLLUP',
        +            'WITH','WORK','WRITE',
        +            ),
        +        2 => array(     //No ( must follow
        +            // Mix: statement keywords distinguished from functions by the same name
        +            "CURRENT_USER", "DATABASE", "IN", "INSERT", "DEFAULT", "REPLACE", "SCHEMA", "TRUNCATE"
        +            ),
        +        3 => array(
        +            // Values (Constants)
        +            'FALSE','NULL','TRUE',
        +            ),
        +        4 => array(
        +            // Column Data Types
        +            'BIGINT','BIT','BLOB','BOOLEAN','BOOL','CHARACTER VARYING',
        +            'CHAR VARYING','DATETIME','DECIMAL','DEC','DOUBLE PRECISION',
        +            'DOUBLE','ENUM','FIXED','FLOAT','GEOMETRYCOLLECTION','GEOMETRY',
        +            'INTEGER','INT','LINESTRING','LONGBLOB','LONGTEXT','MEDIUMBLOB',
        +            'MEDIUMINT','MEDIUMTEXT','MULTIPOINT','MULTILINESTRING',
        +            'MULTIPOLYGON','NATIONAL CHARACTER','NATIONAL CHARACTER VARYING',
        +            'NATIONAL CHAR VARYING','NATIONAL VARCHAR','NCHAR VARCHAR','NCHAR',
        +            'NUMERIC','POINT','POLYGON','REAL','SERIAL',
        +            'SMALLINT','TEXT','TIMESTAMP','TINYBLOB','TINYINT',
        +            'TINYTEXT','VARBINARY','VARCHARACTER','VARCHAR',
        +            ),
        +        5 => array(     //No ( must follow
        +            // Column data types distinguished from functions by the same name
        +            "CHAR", "DATE", "TIME"
        +            ),
        +        6 => array(
        +            // Table, Column & Index Attributes
        +            'AUTO_INCREMENT','AVG_ROW_LENGTH','BOTH','CHECKSUM','CONNECTION',
        +            'DATA DIRECTORY','DEFAULT NULL','DELAY_KEY_WRITE','FULLTEXT',
        +            'INDEX DIRECTORY','INSERT_METHOD','LEADING','MAX_ROWS','MIN_ROWS',
        +            'NOT NULL','PACK_KEYS','ROW_FORMAT','SERIAL DEFAULT VALUE','SIGNED',
        +            'SPATIAL','TRAILING','UNIQUE','UNSIGNED','ZEROFILL'
        +            ),
        +        7 => array(     //No ( must follow
        +            // Column attribute distinguished from function by the same name
        +            "CHARSET"
        +            ),
        +        8 => array(
        +            // Date and Time Unit Specifiers
        +            'DAY_HOUR','DAY_MICROSECOND','DAY_MINUTE','DAY_SECOND',
        +            'HOUR_MICROSECOND','HOUR_MINUTE','HOUR_SECOND',
        +            'MINUTE_MICROSECOND','MINUTE_SECOND',
        +            'SECOND_MICROSECOND','YEAR_MONTH'
        +            ),
        +        9 => array(     //No ( must follow
        +            // Date-time unit specifiers distinguished from functions by the same name
        +            "DAY", "HOUR", "MICROSECOND", "MINUTE", "MONTH", "QUARTER", "SECOND", "WEEK", "YEAR"
        +            ),
        +        10 => array(
        +            // Operators (see also Symbols)
        +            'AND','BETWEEN','CHARACTER SET','COLLATE','DIV','IS NOT NULL',
        +            'IS NOT','IS NULL','IS','LIKE','NOT','OFFSET','OR','REGEXP','RLIKE',
        +            'SOUNDS LIKE','XOR'
        +            ),
        +        11 => array(     //No ( must follow
        +            // Operator distinghuished from function by the same name
        +            "INTERVAL"
        +            ),
        +        12 => array(
        +            // Control Flow (functions)
        +            'CASE','ELSE','END','IFNULL','IF','NULLIF','THEN','WHEN',
        +            ),
        +        13 => array(
        +            // String Functions
        +            'ASCII','BIN','BIT_LENGTH','CHAR_LENGTH','CHARACTER_LENGTH',
        +            'CONCAT_WS','CONCAT','ELT','EXPORT_SET','FIELD',
        +            'FIND_IN_SET','FORMAT','HEX','INSTR','LCASE','LEFT','LENGTH',
        +            'LOAD_FILE','LOCATE','LOWER','LPAD','LTRIM','MAKE_SET','MID',
        +            'OCTET_LENGTH','ORD','POSITION','QUOTE','REPEAT','REVERSE',
        +            'RIGHT','RPAD','RTRIM','SOUNDEX','SPACE','STRCMP','SUBSTRING_INDEX',
        +            'SUBSTRING','TRIM','UCASE','UNHEX','UPPER',
        +            ),
        +        14 => array(     //A ( must follow
        +            // String functions distinguished from other keywords by the same name
        +            "INSERT", "REPLACE", "CHAR"
        +            ),
        +        15 => array(
        +            // Numeric Functions
        +            'ABS','ACOS','ASIN','ATAN2','ATAN','CEILING','CEIL',
        +            'CONV','COS','COT','CRC32','DEGREES','EXP','FLOOR','LN','LOG10',
        +            'LOG2','LOG','MOD','OCT','PI','POWER','POW','RADIANS','RAND',
        +            'ROUND','SIGN','SIN','SQRT','TAN',
        +            ),
        +        16 => array(     //A ( must follow
        +            // Numeric function distinguished from other keyword by the same name
        +            "TRUNCATE"
        +            ),
        +        17 => array(
        +            // Date and Time Functions
        +            'ADDDATE','ADDTIME','CONVERT_TZ','CURDATE','CURRENT_DATE',
        +            'CURRENT_TIME','CURRENT_TIMESTAMP','CURTIME','DATE_ADD',
        +            'DATE_FORMAT','DATE_SUB','DATEDIFF','DAYNAME','DAYOFMONTH',
        +            'DAYOFWEEK','DAYOFYEAR','EXTRACT','FROM_DAYS','FROM_UNIXTIME',
        +            'GET_FORMAT','LAST_DAY','LOCALTIME','LOCALTIMESTAMP','MAKEDATE',
        +            'MAKETIME','MONTHNAME','NOW','PERIOD_ADD',
        +            'PERIOD_DIFF','SEC_TO_TIME','STR_TO_DATE','SUBDATE','SUBTIME',
        +            'SYSDATE','TIME_FORMAT','TIME_TO_SEC',
        +            'TIMESTAMPADD','TIMESTAMPDIFF','TO_DAYS',
        +            'UNIX_TIMESTAMP','UTC_DATE','UTC_TIME','UTC_TIMESTAMP','WEEKDAY',
        +            'WEEKOFYEAR','YEARWEEK',
        +            ),
        +        18 => array(     //A ( must follow
        +            // Date-time functions distinguished from other keywords by the same name
        +            "DATE", "DAY", "HOUR", "MICROSECOND", "MINUTE", "MONTH", "QUARTER",
        +            "SECOND", "TIME", "WEEK", "YEAR"
        +            ),
        +        19 => array(
        +            // Comparison Functions
        +            'COALESCE','GREATEST','ISNULL','LEAST',
        +            ),
        +        20 => array(     //A ( must follow
        +            // Comparison functions distinguished from other keywords by the same name
        +            "IN", "INTERVAL"
        +            ),
        +        21 => array(
        +            // Encryption and Compression Functions
        +            'AES_DECRYPT','AES_ENCRYPT','COMPRESS','DECODE','DES_DECRYPT',
        +            'DES_ENCRYPT','ENCODE','ENCRYPT','MD5','OLD_PASSWORD','PASSWORD',
        +            'SHA1','SHA','UNCOMPRESS','UNCOMPRESSED_LENGTH',
        +            ),
        +        22 => array(
        +            // GROUP BY (aggregate) Functions
        +            'AVG','BIT_AND','BIT_OR','BIT_XOR','COUNT','GROUP_CONCAT',
        +            'MAX','MIN','STDDEV_POP','STDDEV_SAMP','STDDEV','STD','SUM',
        +            'VAR_POP','VAR_SAMP','VARIANCE',
        +            ),
        +        23 => array(
        +            // Information Functions
        +            'BENCHMARK','COERCIBILITY','COLLATION','CONNECTION_ID',
        +            'FOUND_ROWS','LAST_INSERT_ID','ROW_COUNT',
        +            'SESSION_USER','SYSTEM_USER','USER','VERSION',
        +            ),
        +        24 => array(     //A ( must follow
        +            // Information functions distinguished from other keywords by the same name
        +            "CURRENT_USER", "DATABASE", "SCHEMA", "CHARSET"
        +            ),
        +        25 => array(
        +            // Miscellaneous Functions
        +            'ExtractValue','BIT_COUNT','GET_LOCK','INET_ATON','INET_NTOA',
        +            'IS_FREE_LOCK','IS_USED_LOCK','MASTER_POS_WAIT','NAME_CONST',
        +            'RELEASE_LOCK','SLEEP','UpdateXML','UUID',
        +            ),
        +        26 => array(     //A ( must follow
        +            // Miscellaneous function distinguished from other keyword by the same name
        +            "DEFAULT"
        +            ),
        +        27 => array(
        +            // Geometry Functions
        +            'Area','AsBinary','AsText','AsWKB','AsWKT','Boundary','Buffer',
        +            'Centroid','Contains','ConvexHull','Crosses',
        +            'Difference','Dimension','Disjoint','Distance',
        +            'EndPoint','Envelope','Equals','ExteriorRing',
        +            'GLength','GeomCollFromText','GeomCollFromWKB','GeomFromText',
        +            'GeomFromWKB','GeometryCollectionFromText',
        +            'GeometryCollectionFromWKB','GeometryFromText','GeometryFromWKB',
        +            'GeometryN','GeometryType',
        +            'InteriorRingN','Intersection','Intersects','IsClosed','IsEmpty',
        +            'IsRing','IsSimple',
        +            'LineFromText','LineFromWKB','LineStringFromText',
        +            'LineStringFromWKB',
        +            'MBRContains','MBRDisjoint','MBREqual','MBRIntersects',
        +            'MBROverlaps','MBRTouches','MBRWithin','MLineFromText',
        +            'MLineFromWKB','MPointFromText','MPointFromWKB','MPolyFromText',
        +            'MPolyFromWKB','MultiLineStringFromText','MultiLineStringFromWKB',
        +            'MultiPointFromText','MultiPointFromWKB','MultiPolygonFromText',
        +            'MultiPolygonFromWKB',
        +            'NumGeometries','NumInteriorRings','NumPoints',
        +            'Overlaps',
        +            'PointFromText','PointFromWKB','PointN','PointOnSurface',
        +            'PolyFromText','PolyFromWKB','PolygonFromText','PolygonFromWKB',
        +            'Related','SRID','StartPoint','SymDifference',
        +            'Touches',
        +            'Union',
        +            'Within',
        +            'X',
        +            'Y',
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array(
        +            /* Operators */
        +            '=', ':=',                                      // assignment operators
        +            '||', '&&', '!',                                // locical operators
        +            '=', '<=>', '>=', '>', '<=', '<', '<>', '!=',   // comparison operators
        +            '|', '&', '^', '~', '<<', '>>',                 // bitwise operators
        +            '-', '+', '*', '/', '%',                        // numerical operators
        +            ),
        +        2 => array(
        +            /* Other syntactical symbols */
        +            '(', ')',
        +            ',', ';',
        +            ),
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        6 => false,
        +        7 => false,
        +        8 => false,
        +        9 => false,
        +        10 => false,
        +        11 => false,
        +        12 => false,
        +        13 => false,
        +        13 => false,
        +        14 => false,
        +        15 => false,
        +        16 => false,
        +        17 => false,
        +        18 => false,
        +        19 => false,
        +        20 => false,
        +        21 => false,
        +        22 => false,
        +        23 => false,
        +        24 => false,
        +        25 => false,
        +        26 => false,
        +        27 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #990099; font-weight: bold;',      // mix
        +            2 => 'color: #990099; font-weight: bold;',      // mix
        +            3 => 'color: #9900FF; font-weight: bold;',      // constants
        +            4 => 'color: #999900; font-weight: bold;',      // column data types
        +            5 => 'color: #999900; font-weight: bold;',      // column data types
        +            6 => 'color: #FF9900; font-weight: bold;',      // attributes
        +            7 => 'color: #FF9900; font-weight: bold;',      // attributes
        +            8 => 'color: #9900FF; font-weight: bold;',      // date-time units
        +            9 => 'color: #9900FF; font-weight: bold;',      // date-time units
        +
        +            10 => 'color: #CC0099; font-weight: bold;',      // operators
        +            11 => 'color: #CC0099; font-weight: bold;',      // operators
        +
        +            12 => 'color: #009900;',     // control flow (functions)
        +            13 => 'color: #000099;',     // string functions
        +            14 => 'color: #000099;',     // string functions
        +            15 => 'color: #000099;',     // numeric functions
        +            16 => 'color: #000099;',     // numeric functions
        +            17 => 'color: #000099;',     // date-time functions
        +            18 => 'color: #000099;',     // date-time functions
        +            19 => 'color: #000099;',     // comparison functions
        +            20 => 'color: #000099;',     // comparison functions
        +            21 => 'color: #000099;',     // encryption functions
        +            22 => 'color: #000099;',     // aggregate functions
        +            23 => 'color: #000099;',     // information functions
        +            24 => 'color: #000099;',     // information functions
        +            25 => 'color: #000099;',     // miscellaneous functions
        +            26 => 'color: #000099;',     // miscellaneous functions
        +            27 => 'color: #00CC00;',     // geometry functions
        +            ),
        +        'COMMENTS' => array(
        +            'MULTI' => 'color: #808000; font-style: italic;',
        +            1 => 'color: #808080; font-style: italic;',
        +            2 => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #004000; font-weight: bold;',
        +            1 => 'color: #008080; font-weight: bold;'       // search wildcards
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #FF00FF;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #008000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #008080;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            1 => 'color: #CC0099;',         // operators
        +            2 => 'color: #000033;',         // syntax
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://search.oracle.com/search/search?group=MySQL&q={FNAME}',
        +        2 => 'http://search.oracle.com/search/search?group=MySQL&q={FNAME}',
        +        3 => 'http://search.oracle.com/search/search?group=MySQL&q={FNAME}',
        +        4 => 'http://search.oracle.com/search/search?group=MySQL&q={FNAME}',
        +        5 => 'http://search.oracle.com/search/search?group=MySQL&q={FNAME}',
        +        6 => 'http://search.oracle.com/search/search?group=MySQL&q={FNAME}',
        +        7 => 'http://search.oracle.com/search/search?group=MySQL&q={FNAME}',
        +        8 => 'http://search.oracle.com/search/search?group=MySQL&q={FNAME}',
        +        9 => 'http://search.oracle.com/search/search?group=MySQL&q={FNAME}',
        +
        +        10 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html',
        +        11 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html',
        +
        +        12 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/control-flow-functions.html',
        +        13 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/string-functions.html',
        +        14 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/string-functions.html',
        +        15 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/numeric-functions.html',
        +        16 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/numeric-functions.html',
        +        17 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/date-and-time-functions.html',
        +        18 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/date-and-time-functions.html',
        +        19 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/comparison-operators.html',
        +        20 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/comparison-operators.html',
        +        21 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/encryption-functions.html',
        +        22 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/group-by-functions-and-modifiers.html',
        +        23 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html',
        +        24 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html',
        +        25 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/func-op-summary-ref.html',
        +        26 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/func-op-summary-ref.html',
        +        27 => 'http://dev.mysql.com/doc/refman/%35%2E%31/en/analysing-spatial-information.html',
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            2 => array(
        +                'DISALLOWED_AFTER' => '(?![\(\w])'
        +                ),
        +            5 => array(
        +                'DISALLOWED_AFTER' => '(?![\(\w])'
        +                ),
        +            7 => array(
        +                'DISALLOWED_AFTER' => '(?![\(\w])'
        +                ),
        +            9 => array(
        +                'DISALLOWED_AFTER' => '(?![\(\w])'
        +                ),
        +            11 => array(
        +                'DISALLOWED_AFTER' => '(?![\(\w])'
        +                ),
        +
        +            14 => array(
        +                'DISALLOWED_AFTER' => '(?=\()'
        +                ),
        +            16 => array(
        +                'DISALLOWED_AFTER' => '(?=\()'
        +                ),
        +            18 => array(
        +                'DISALLOWED_AFTER' => '(?=\()'
        +                ),
        +            20 => array(
        +                'DISALLOWED_AFTER' => '(?=\()'
        +                ),
        +            24 => array(
        +                'DISALLOWED_AFTER' => '(?=\()'
        +                ),
        +            26 => array(
        +                'DISALLOWED_AFTER' => '(?=\()'
        +                )
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/nagios.php b/Sources/geshi/nagios.php
        new file mode 100644
        index 0000000..32cbaef
        --- /dev/null
        +++ b/Sources/geshi/nagios.php
        @@ -0,0 +1,225 @@
        +
        + * Copyright: (c) 2012 Albéric de Pertat (https://github.com/adepertat/geshi-nagios)
        + * Release Version: 1.0.8.11
        + * Date Started: 2012/01/19
        + *
        + * Nagios language file for GeSHi.
        + *
        + * CHANGES
        + * -------
        + * 2012/01/19 (1.0.0)
        + *  -  First Release
        + *
        + * TODO (updated 2012/01/19)
        + * -------------------------
        + *
        + *************************************************************************************
        + *
        + *     This file is part of GeSHi.
        + *
        + *   GeSHi is free software; you can redistribute it and/or modify
        + *   it under the terms of the GNU General Public License as published by
        + *   the Free Software Foundation; either version 2 of the License, or
        + *   (at your option) any later version.
        + *
        + *   GeSHi is distributed in the hope that it will be useful,
        + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        + *   GNU General Public License for more details.
        + *
        + *   You should have received a copy of the GNU General Public License
        + *   along with GeSHi; if not, write to the Free Software
        + *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + ************************************************************************************/
        +
        +$language_data = array(
        +    'LANG_NAME' => 'Nagios',
        +    'COMMENT_SINGLE' => array(1 => ';', 2 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'HARDQUOTE' => array("'", "'"),
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\'',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'define'
        +            ),
        +        2 => array(
        +            'command', 'contact', 'contactgroup', 'host', 'hostdependency',
        +            'hostescalation', 'hostextinfo', 'hostgroup', 'service',
        +            'servicedependency', 'serviceescalation',
        +            'serviceextinfo', 'servicegroup', 'timeperiod'
        +            ),
        +        3 => array(
        +            'active_checks_enabled', 'passive_checks_enabled', 'alias',
        +            'display_name', 'host_name', 'address', 'hostgroups', 'parents',
        +            'hostgroup_members', 'members', 'service_description',
        +            'servicegroups', 'is_volatile', 'servicegroup_name',
        +            'servicegroup_members', 'contact_name', 'contactgroups', 'email',
        +            'pager', 'can_submit_commands', 'contactgroup_name',
        +            'contactgroup_members', 'host_notifications_enabled',
        +            'service_notifications_enabled', 'host_notification_period',
        +            'service_notification_period', 'host_notification_options',
        +            'service_notification_options', 'host_notification_commands',
        +            'service_notification_commands', 'check_command',
        +            'check_freshness', 'check_interval', 'check_period', 'contacts',
        +            'contact_groups', 'event_handler', 'event_handler_enabled',
        +            'flap_detection_enabled', 'flap_detection_options',
        +            'freshness_threshold', 'initial_state', 'low_flap_threshold',
        +            'high_flap_threshold', 'max_check_attempts',
        +            'notification_interval', 'first_notification_delay',
        +            'notification_period', 'notification_options',
        +            'notifications_enabled', 'stalking_options', 'notes', 'notes_url',
        +            'action_url', 'icon_image', 'icon_image_alt', 'vrml_image',
        +            'statusmap_image', '2d_coords', '3d_coords', 'obsess_over_host',
        +            'obsess_over_hostver_service', 'process_perf_data',
        +            'retain_status_information', 'retain_nonstatus_information',
        +            'retry_interval', 'register', 'use', 'name', 'timeperiod_name',
        +            'exclude', 'command_name', 'command_line', 'dependent_host_name',
        +            'dependent_hostgroup_name', 'dependent_service_description',
        +            'inherits_parent', 'execution_failure_criteria',
        +            'notification_failure_criteria', 'dependency_period',
        +            'first_notification', 'last_notification', 'escalation_period',
        +            'escalation_options'
        +            ),
        +        4 => array(
        +            'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday',
        +            'sunday', 'january', 'february', 'march', 'april', 'may', 'june',
        +            'july', 'august', 'september', 'october', 'november', 'december',
        +            'day'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array(
        +            '{', '}', ',', '+'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'font-weight:bold;color:#FFDCA8;',
        +            2 => 'font-weight:bold;color #FFA858;',
        +            3 => 'font-weight:bold;color:#00C0C0;',
        +            4 => 'font-weight:bold;color:#C0C0FF;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'font-weight:bold;color:#000000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => ''
        +            ),
        +        'COMMENTS' => array(
        +            0 => 'color: #AAAAAA; font-style: italic;',
        +            1 => 'color: #AAAAAA; font-style: italic;',
        +            2 => 'color: #AAAAAA; font-style: italic;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #660066;',
        +            'HARD' => 'color: #660066;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'font-weight:bold;color:#808080;',
        +            1 => 'font-weight:bold;color:#000080;',
        +            2 => 'font-weight:bold;color:red;',
        +            3 => 'font-weight:bold;color:#808000;',
        +            4 => 'font-weight:bold;color:blue;',
        +            5 => 'font-weight:bold;color:#C0FFC0;',
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            )
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '\\'
        +        ),
        +    'REGEXPS' => array(
        +        // Custom macros
        +        0 => array(
        +            GESHI_SEARCH => '(\$[a-zA-Z_]+\$)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '',
        +            ),
        +        // Custom macro definitions
        +        1 => array(
        +            GESHI_SEARCH => '(\A|\s)(_[a-zA-Z_]+)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '',
        +            ),
        +        // $USERxx$
        +        2 => array(
        +            GESHI_SEARCH => '(\$USER[0-9]+\$)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '',
        +            ),
        +        // $ARGxx$
        +        3 => array(
        +            GESHI_SEARCH => '(\$ARG[1-9]\$)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '',
        +            ),
        +        // register 0
        +        4 => array(
        +            GESHI_SEARCH => '(\bregister[\\x20\\t]+[01])',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '',
        +            ),
        +        // use
        +        5 => array(
        +            GESHI_SEARCH => '(use[\\x20\\t]+[^\\x20\\t]+)([\\x20\\t]*[$;#])',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '',
        +            ),
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => false
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'NUMBERS' => GESHI_NEVER
        +            )
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/netrexx.php b/Sources/geshi/netrexx.php
        new file mode 100644
        index 0000000..14a2d23
        --- /dev/null
        +++ b/Sources/geshi/netrexx.php
        @@ -0,0 +1,163 @@
        + 'NetRexx',
        +    'COMMENT_SINGLE' => array(1 => '--'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'class', 'do', 'exit', 'if', 'import', 'iterate', 'leave',
        +            'loop', 'nop', 'numeric', 'package', 'parse', 'properties',
        +            'return', 'say', 'select', 'signal', 'trace'
        +            ),
        +        2 => array(
        +            'abstract', 'adapter', 'all', 'ask', 'binary', 'case',
        +            'constant', 'dependent', 'deprecated', 'extends', 'final',
        +            'implements', 'inheritable', 'interface', 'label', 'methods',
        +            'native', 'off', 'private', 'protect', 'public', 'results',
        +            'returns', 'shared', 'signals', 'source', 'static',
        +            'transient', 'unused', 'uses', 'version', 'volatile'
        +            ),
        +        3 => array(
        +            'catch', 'else', 'end', 'finally', 'otherwise', 'then', 'when'
        +            ),
        +        4 => array(
        +            'rc', 'result', 'self', 'sigl', 'super'
        +            ),
        +        5 => array(
        +            'placeholderforoorexxdirectives'
        +            ),
        +        6 => array(
        +            'abbrev', 'abs', 'b2x', 'c2d', 'c2x', 'center', 'centre',
        +            'changestr', 'compare', 'copies', 'copyindexed', 'countstr',
        +            'd2c', 'd2x', 'datatype', 'delstr', 'delword', 'exists',
        +            'formword', 'hashcode', 'insert', 'lastpos', 'left', 'lower',
        +            'max', 'min', 'noteq', 'noteqs', 'opadd', 'opand', 'opcc',
        +            'opccblank', 'opdiv', 'opdivi', 'opeq', 'opeqs', 'opgt',
        +            'opgteq', 'opgteqs', 'opgts', 'oplt', 'oplteq', 'oplteqs',
        +            'oplts', 'opminus', 'opmult', 'opnot', 'opor', 'opplus',
        +            'oppow', 'oprem', 'opsub', 'opxor', 'overlay', 'pos position',
        +            'reverse', 'right', 'sequence', 'setdigits', 'setform',
        +            'sign', 'space', 'strip', 'substr', 'subword', 'toboolean',
        +            'tobyte', 'tochar', 'todouble', 'tofloat', 'toint', 'tolong',
        +            'toshort', 'tostring', 'translate', 'trunc', 'upper',
        +            'verify', 'word', 'wordindex', 'wordlength', 'wordpos',
        +            'words', 'x2b', 'x2c', 'x2d'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '<', '>', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':',
        +        '<', '>'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => true,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        6 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #ff0000; font-weight: bold;',
        +            3 => 'color: #00ff00; font-weight: bold;',
        +            4 => 'color: #0000ff; font-weight: bold;',
        +            5 => 'color: #880088; font-weight: bold;',
        +            6 => 'color: #888800; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666;',
        +            'MULTI' => 'color: #808080;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #202020;',
        +            2 => 'color: #202020;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        diff --git a/Sources/geshi/newlisp.php b/Sources/geshi/newlisp.php
        new file mode 100644
        index 0000000..0dc6c16
        --- /dev/null
        +++ b/Sources/geshi/newlisp.php
        @@ -0,0 +1,191 @@
        + 'newlisp',
        +    'COMMENT_SINGLE' => array(1 => ';', 2 => '#'),
        +    'COMMENT_MULTI' => array('[text]' => '[/text]', '{' => '}'), // also used for strings
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'NUMBERS' => GESHI_NUMBER_INT_BASIC |  GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'TAB_WIDTH' => 2,
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'NaN?','abort','abs','acos','acosh','add','address','amb','and',
        +            'append','append-file','apply','args','array','array-list','array?',
        +            'asin','asinh','assoc','atan','atan2','atanh','atom?','base64-dec',
        +            'base64-enc','bayes-query','bayes-train','begin','beta','betai',
        +            'bind','binomial','bits','callback','case','catch','ceil',
        +            'change-dir','char','chop','clean','close','command-event','cond',
        +            'cons','constant','context','context?','copy','copy-file','cos',
        +            'cosh','count','cpymem','crc32','crit-chi2','crit-z','current-line',
        +            'curry','date','date-value','debug','dec','def-new','default',
        +            'define','define-macro','delete','delete-file','delete-url',
        +            'destroy','det','device','difference','directory','directory?',
        +            'div','do-until','do-while','doargs','dolist','dostring','dotimes',
        +            'dotree','dump','dup','empty?','encrypt','ends-with','env','erf',
        +            'error-event','estack','eval','eval-string','exec','exists','exit',
        +            'exp','expand','explode','factor','fft','file-info','file?',
        +            'filter','find','find-all','first','flat','float','float?','floor',
        +            'flt','for','for-all','fork','format','fv','gammai','gammaln','gcd',
        +            'get-char','get-float','get-int','get-long','get-string','get-url',
        +            'global','global?','if','if-not','ifft','import','inc','index',
        +            'inf?','int','integer','integer?','intersect','invert','irr','join',
        +            'lambda','lambda?','last','last-error','legal?','length','let',
        +            'letex','letn','list','list?','load','local','log','lookup',
        +            'lower-case','macro?','main-args','make-dir','map','mat','match',
        +            'max','member','min','mod','mul','multiply','name','net-accept',
        +            'net-close','net-connect','net-error','net-eval','net-interface',
        +            'net-listen','net-local','net-lookup','net-peek','net-peer',
        +            'net-ping','net-receive','net-receive-from','net-receive-udp',
        +            'net-select','net-send','net-send-to','net-send-udp','net-service',
        +            'net-sessions','new','nil','nil?','normal','not','now','nper','npv',
        +            'nth','null?','number?','open','or','pack','parse','parse-date',
        +            'peek','pipe','pmt','pop','pop-assoc','post-url','pow',
        +            'pretty-print','primitive?','print','println','prob-chi2','prob-z',
        +            'process','prompt-event','protected?','push','put-url','pv','quote',
        +            'quote?','rand','random','randomize','read-buffer','read-char',
        +            'read-expr','read-file','read-key','read-line','read-utf8',
        +            'real-path','receive','ref','ref-all','regex','regex-comp',
        +            'remove-dir','rename-file','replace','reset','rest','reverse',
        +            'rotate','round','save','search','seed','seek','select','semaphore',
        +            'send','sequence','series','set','set-locale','set-ref',
        +            'set-ref-all','setf','setq','sgn','share','signal','silent','sin',
        +            'sinh','sleep','slice','sort','source','spawn','sqrt','starts-with',
        +            'string','string?','sub','swap','sym','symbol?','symbols','sync',
        +            'sys-error','sys-info','tan','tanh','throw','throw-error','time',
        +            'time-of-day','timer','title-case','trace','trace-highlight',
        +            'transpose','trim','true','true?','unicode','unify','unique',
        +            'unless','unpack','until','upper-case','utf8','utf8len','uuid',
        +            'wait-pid','when','while','write-buffer','write-char','write-file',
        +            'write-line','xfer-event','xml-error','xml-parse','xml-type-tags',
        +            'zero?'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array(
        +            '(', ')','\''
        +            ),
        +        1 => array(
        +            '!','!=','$','%','&','*','+','-','/',':',
        +            '<','<<','<=','=','>','>=','>>','^','|'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000AA;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            2 => 'color: #808080; font-style: italic;',
        +            'MULTI' => 'color: #00aa00; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #777700;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #000099;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #AA0000;',
        +            1 => 'color: #0000AA;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #00aa00;',
        +            1 => 'color: #00aa00;',
        +            2 => 'color: #00aa00;',
        +            3 => 'color: #00aa00;',
        +            4 => 'color: #00aa00;',
        +            5 => 'color: #AA0000;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://www.newlisp.org/downloads/newlisp_manual.html#{FNAME}'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(':'),
        +    'REGEXPS' => array(
        +        // tags in newlispdoc
        +        0 => "\s+@\S*?\s+",
        +        // dollar sign symbols
        +        1 => "[\\$]\w*",
        +        // curly-braced string literals
        +        2 => "{[^{}]*?}",
        +        // [text] multi-line strings
        +        3 => "(?s)\[text\].*\[\/text\](?-s)",
        +        // [code] multi-line blocks
        +        4 => "(?s)\[code\].*\[\/code\](?-s)",
        +        // variable references
        +        5 => "'[\w\-]+"
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'OOLANG' => array(
        +            'MATCH_AFTER' => '[a-zA-Z][a-zA-Z0-9_\-]*'
        +            ),
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => '(?<=[^\w\-])',
        +            )
        +        ),
        +
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/nsis.php b/Sources/geshi/nsis.php
        new file mode 100644
        index 0000000..35df9b4
        --- /dev/null
        +++ b/Sources/geshi/nsis.php
        @@ -0,0 +1,351 @@
        + 'NSIS',
        +    'COMMENT_SINGLE' => array(1 => ';', 2 => '#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'",'"','`'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            '!appendfile', '!addIncludeDir', '!addplugindir', '!cd', '!define', '!delfile', '!echo', '!else',
        +            '!endif', '!error', '!execute', '!ifdef', '!ifmacrodef', '!ifmacrondef', '!ifndef', '!include',
        +            '!insertmacro', '!macro', '!macroend', '!packhdr', '!tempfile', '!system', '!undef', '!verbose',
        +            '!warning'
        +            ),
        +        2 => array(
        +            'AddBrandingImage', 'AllowRootDirInstall', 'AutoCloseWindow', 'BGFont',
        +            'BGGradient', 'BrandingText', 'Caption', 'ChangeUI', 'CheckBitmap', 'CompletedText', 'ComponentText',
        +            'CRCCheck', 'DetailsButtonText', 'DirShow', 'DirText', 'DirVar', 'DirVerify', 'FileErrorText',
        +            'Function', 'FunctionEnd', 'Icon', 'InstallButtonText', 'InstallColors', 'InstallDir',
        +            'InstallDirRegKey', 'InstProgressFlags', 'InstType', 'LangString', 'LangStringUP', 'LicenseBkColor',
        +            'LicenseData', 'LicenseForceSelection', 'LicenseLangString', 'LicenseText', 'LoadLanguageFile',
        +            'MiscButtonText', 'Name', 'OutFile', 'Page', 'PageEx', 'PageExEnd', 'Section',
        +            'SectionEnd', 'SectionGroup', 'SectionGroupEnd', 'SetCompressor', 'SetFont', 'ShowInstDetails',
        +            'ShowUninstDetails', 'SilentInstall', 'SilentUnInstall', 'SpaceTexts', 'SubCaption', 'SubSection',
        +            'SubSectionEnd', 'UninstallButtonText', 'UninstallCaption', 'UninstallIcon', 'UninstallSubCaption',
        +            'UninstallText', 'UninstPage', 'Var', 'VIAddVersionKey', 'VIProductVersion', 'WindowIcon', 'XPStyle'
        +            ),
        +        3 => array(
        +            'AddSize', 'AllowSkipFiles', 'FileBufSize', 'GetInstDirError', 'PageCallbacks',
        +            'SectionIn', 'SetCompress', 'SetCompressionLevel', 'SetCompressorDictSize',
        +            'SetDatablockOptimize', 'SetDateSave', 'SetOverwrite', 'SetPluginUnload'
        +            ),
        +        4 => array(
        +            'Abort', 'BringToFront', 'Call', 'CallInstDLL', 'ClearErrors', 'CopyFiles','CreateDirectory',
        +            'CreateFont', 'CreateShortCut', 'Delete', 'DeleteINISec', 'DeleteINIStr', 'DeleteRegKey',
        +            'DeleteRegValue', 'DetailPrint', 'EnableWindow', 'EnumRegKey', 'EnumRegValue', 'Exch', 'Exec',
        +            'ExecShell', 'ExecWait', 'ExpandEnvStrings', 'File', 'FileClose', 'FileOpen', 'FileRead',
        +            'FileReadByte', 'FileSeek', 'FileWrite', 'FileWriteByte', 'FindClose', 'FindFirst', 'FindNext',
        +            'FindWindow', 'FlushINI', 'GetCurInstType', 'GetCurrentAddress', 'GetDlgItem', 'GetDLLVersion',
        +            'GetDLLVersionLocal', 'GetErrorLevel', 'GetFileTime', 'GetFileTimeLocal', 'GetFullPathName',
        +            'GetFunctionAddress', 'GetLabelAddress', 'GetTempFileName', 'GetWindowText', 'Goto', 'HideWindow',
        +            'IfAbort', 'IfErrors', 'IfFileExists', 'IfRebootFlag', 'IfSilent', 'InitPluginsDir', 'InstTypeGetText',
        +            'InstTypeSetText', 'IntCmp', 'IntCmpU', 'IntFmt', 'IntOp', 'IsWindow', 'LockWindow', 'LogSet', 'LogText',
        +            'MessageBox', 'Nop', 'Pop', 'Push', 'Quit', 'ReadEnvStr', 'ReadIniStr', 'ReadRegDWORD', 'ReadRegStr',
        +            'Reboot', 'RegDLL', 'Rename', 'ReserveFile', 'Return', 'RMDir', 'SearchPath', 'SectionGetFlags',
        +            'SectionGetInstTypes', 'SectionGetSize', 'SectionGetText', 'SectionSetFlags', 'SectionSetInstTypes',
        +            'SectionSetSize', 'SectionSetText', 'SendMessage', 'SetAutoClose', 'SetBrandingImage', 'SetCtlColors',
        +            'SetCurInstType', 'SetDetailsPrint', 'SetDetailsView', 'SetErrorLevel', 'SetErrors', 'SetFileAttributes',
        +            'SetOutPath', 'SetRebootFlag', 'SetShellVarContext', 'SetSilent', 'ShowWindow', 'Sleep', 'StrCmp',
        +            'StrCpy', 'StrLen', 'UnRegDLL', 'WriteINIStr', 'WriteRegBin', 'WriteRegDWORD', 'WriteRegExpandStr',
        +            'WriteRegStr', 'WriteUninstaller'
        +            ),
        +        5 => array(
        +            'all', 'alwaysoff', 'ARCHIVE', 'auto', 'both', 'bzip2', 'checkbox', 'components', 'current',
        +            'custom', 'directory', 'false', 'FILE_ATTRIBUTE_ARCHIVE', 'FILE_ATTRIBUTE_HIDDEN', 'FILE_ATTRIBUTE_NORMAL',
        +            'FILE_ATTRIBUTE_OFFLINE', 'FILE_ATTRIBUTE_READONLY', 'FILE_ATTRIBUTE_SYSTEM,TEMPORARY',
        +            'FILE_ATTRIBUTE_TEMPORARY', 'force', 'HIDDEN', 'hide', 'HKCC', 'HKCR', 'HKCU', 'HKDD', 'HKEY_CLASSES_ROOT',
        +            'HKEY_CURRENT_CONFIG', 'HKEY_CURRENT_USER', 'HKEY_DYN_DATA', 'HKEY_LOCAL_MACHINE', 'HKEY_PERFORMANCE_DATA',
        +            'HKEY_USERS', 'HKLM', 'HKPD', 'HKU', 'IDABORT', 'IDCANCEL', 'IDIGNORE', 'IDNO', 'IDOK', 'IDRETRY', 'IDYES',
        +            'ifdiff', 'ifnewer', 'instfiles', 'lastused', 'leave', 'license', 'listonly', 'lzma', 'manual',
        +            'MB_ABORTRETRYIGNORE', 'MB_DEFBUTTON1', 'MB_DEFBUTTON2', 'MB_DEFBUTTON3', 'MB_DEFBUTTON4',
        +            'MB_ICONEXCLAMATION', 'MB_ICONINFORMATION', 'MB_ICONQUESTION', 'MB_ICONSTOP', 'MB_OK', 'MB_OKCANCEL',
        +            'MB_RETRYCANCEL', 'MB_RIGHT', 'MB_SETFOREGROUND', 'MB_TOPMOST', 'MB_YESNO', 'MB_YESNOCANCEL', 'nevershow',
        +            'none', 'normal', 'off', 'OFFLINE', 'on', 'radiobuttons', 'READONLY', 'RO', 'SHCTX', 'SHELL_CONTEXT', 'show',
        +            'silent', 'silentlog', 'SW_HIDE', 'SW_SHOWMAXIMIZED', 'SW_SHOWMINIMIZED', 'SW_SHOWNORMAL', 'SYSTEM',
        +            'textonly', 'true', 'try', 'uninstConfirm', 'zlib'
        +            ),
        +        6 => array(
        +            '/a', '/components', '/COMPONENTSONLYONCUSTOM', '/CUSTOMSTRING', '/e', '/FILESONLY', '/FINAL', '/gray', '/GLOBAL',
        +            '/ifempty', '/IMGID', '/ITALIC', '/lang', '/NOCUSTOM', '/nonfatal', '/NOUNLOAD', '/oname', '/r', '/REBOOTOK',
        +            '/RESIZETOFIT', '/SOLID', '/SD', '/SHORT', '/silent', '/STRIKE', '/TIMEOUT', '/TRIMCENTER', '/TRIMLEFT',
        +            '/TRIMRIGHT', '/UNDERLINE', '/windows', '/x'
        +            ),
        +        7 => array(
        +            '.onGUIEnd', '.onGUIInit', '.onInit', '.onInstFailed', '.onInstSuccess', '.onMouseOverSection',
        +            '.onRebootFailed', '.onSelChange', '.onUserAbort', '.onVerifyInstDir', 'un.onGUIEnd', 'un.onGUIInit',
        +            'un.onInit', 'un.onRebootFailed', 'un.onUninstFailed', 'un.onUninstSuccess', 'un.onUserAbort'
        +            ),
        +        8 => array(
        +            'MUI.nsh', '"${NSISDIR}\Contrib\Modern UI\System.nsh"', 'MUI_SYSVERSION', 'MUI_ICON', 'MUI_UNICON',
        +            'MUI_HEADERIMAGE', 'MUI_HEADERIMAGE_BITMAP', 'MUI_HEADERIMAGE_BITMAP_NOSTRETCH', 'MUI_HEADERIMAGE_BITMAP_RTL',
        +            'MUI_HEADERIMAGE_BITMAP_RTL_NOSTRETCH', 'MUI_HEADERIMAGE_UNBITMAP', 'MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH',
        +            'MUI_HEADERIMAGE_UNBITMAP_RTL', 'MUI_HEADERIMAGE_UNBITMAP_RTL_NOSTRETCH', 'MUI_HEADERIMAGE_RIGHT', 'MUI_BGCOLOR',
        +            'MUI_UI', 'MUI_UI_HEADERIMAGE', 'MUI_UI_HEADERIMAGE_RIGHT', 'MUI_UI_COMPONENTSPAGE_SMALLDESC',
        +            'MUI_UI_COMPONENTSPAGE_NODESC', 'MUI_WELCOMEFINISHPAGE_BITMAP', 'MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH',
        +            'MUI_WELCOMEFINISHPAGE_INI', 'MUI_UNWELCOMEFINISHPAGE_BITMAP', 'MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH',
        +            'MUI_UNWELCOMEFINISHPAGE_INI', 'MUI_LICENSEPAGE_BGCOLOR', 'MUI_COMPONENTSPAGE_CHECKBITMAP',
        +            'MUI_COMPONENTSPAGE_SMALLDESC', 'MUI_COMPONENTSPAGE_NODESC', 'MUI_INSTFILESPAGE_COLORS',
        +            'MUI_INSTFILESPAGE_PROGRESSBAR', 'MUI_FINISHPAGE_NOAUTOCLOSE', 'MUI_UNFINISHPAGE_NOAUTOCLOSE',
        +            'MUI_ABORTWARNING', 'MUI_ABORTWARNING_TEXT', 'MUI_UNABORTWARNING', 'MUI_UNABORTWARNING_TEXT',
        +            'MUI_PAGE_WELCOME', 'MUI_PAGE_LICENSE', 'MUI_PAGE_COMPONENTS', 'MUI_PAGE_DIRECTORY',
        +            'MUI_PAGE_STARTMENU', 'MUI_PAGE_INSTFILES', 'MUI_PAGE_FINISH', 'MUI_UNPAGE_WELCOME',
        +            'MUI_UNPAGE_CONFIRM', 'MUI_UNPAGE_LICENSE', 'MUI_UNPAGE_COMPONENTS', 'MUI_UNPAGE_DIRECTORY',
        +            'MUI_UNPAGE_INSTFILES', 'MUI_UNPAGE_FINISH', 'MUI_PAGE_HEADER_TEXT', 'MUI_PAGE_HEADER_SUBTEXT',
        +            'MUI_WELCOMEPAGE_TITLE', 'MUI_WELCOMEPAGE_TITLE_3LINES', 'MUI_WELCOMEPAGE_TEXT',
        +            'MUI_LICENSEPAGE_TEXT_TOP', 'MUI_LICENSEPAGE_TEXT_BOTTOM', 'MUI_LICENSEPAGE_BUTTON',
        +            'MUI_LICENSEPAGE_CHECKBOX', 'MUI_LICENSEPAGE_CHECKBOX_TEXT', 'MUI_LICENSEPAGE_RADIOBUTTONS',
        +            'MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT', 'MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE',
        +            'MUI_COMPONENTSPAGE_TEXT_TOP', 'MUI_COMPONENTSPAGE_TEXT_COMPLIST', 'MUI_COMPONENTSPAGE_TEXT_INSTTYPE',
        +            'MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_TITLE', 'MUI_COMPONENTSPAGE_TEXT_DESCRIPTION_INFO',
        +            'MUI_DIRECTORYPAGE_TEXT_TOP', 'MUI_DIRECTORYPAGE_TEXT_DESTINATION', 'MUI_DIRECTORYPAGE_VARIABLE',
        +            'MUI_DIRECTORYPAGE_VERIFYONLEAVE', 'MUI_STARTMENU_WRITE_BEGIN', 'MUI_STARTMENU_WRITE_END',
        +            'MUI_STARTMENUPAGE_TEXT_TOP', 'MUI_STARTMENUPAGE_TEXT_CHECKBOX', 'MUI_STARTMENUPAGE_DEFAULTFOLDER',
        +            'MUI_STARTMENUPAGE_NODISABLE', 'MUI_STARTMENUPAGE_REGISTRY_ROOT', 'MUI_STARTMENUPAGE_REGISTRY_KEY',
        +            'MUI_STARTMENUPAGE_REGISTRY_VALUENAME', 'MUI_INSTFILESPAGE_FINISHHEADER_TEXT',
        +            'MUI_INSTFILESPAGE_FINISHHEADER_SUBTEXT', 'MUI_INSTFILESPAGE_ABORTHEADER_TEXT',
        +            'MUI_INSTFILESPAGE_ABORTHEADER_SUBTEXT', 'MUI_FINISHPAGE_TITLE', 'MUI_FINISHPAGE_TITLE_3LINES',
        +            'MUI_FINISHPAGE_TEXT', 'MUI_FINISHPAGE_TEXT_LARGE', 'MUI_FINISHPAGE_BUTTON',
        +            'MUI_FINISHPAGE_TEXT_REBOOT', 'MUI_FINISHPAGE_TEXT_REBOOTNOW', 'MUI_FINISHPAGE_TEXT_REBOOTLATER',
        +            'MUI_FINISHPAGE_RUN', 'MUI_FINISHPAGE_RUN_TEXT', 'MUI_FINISHPAGE_RUN_PARAMETERS',
        +            'MUI_FINISHPAGE_RUN_NOTCHECKED', 'MUI_FINISHPAGE_RUN_FUNCTION', 'MUI_FINISHPAGE_SHOWREADME',
        +            'MUI_FINISHPAGE_SHOWREADME_TEXT', 'MUI_FINISHPAGE_SHOWREADME_NOTCHECKED',
        +            'MUI_FINISHPAGE_SHOWREADME_FUNCTION', 'MUI_FINISHPAGE_LINK', 'MUI_FINISHPAGE_LINK_LOCATION',
        +            'MUI_FINISHPAGE_LINK_COLOR', 'MUI_FINISHPAGE_NOREBOOTSUPPORT', 'MUI_UNCONFIRMPAGE_TEXT_TOP',
        +            'MUI_UNCONFIRMPAGE_TEXT_LOCATION', 'MUI_LANGUAGE', 'MUI_LANGDLL_DISPLAY',
        +            'MUI_LANGDLL_REGISTRY_ROOT', 'MUI_LANGDLL_REGISTRY_KEY', 'MUI_LANGDLL_REGISTRY_VALUENAME',
        +            'MUI_LANGDLL_WINDOWTITLE', 'MUI_LANGDLL_INFO', 'MUI_LANGDLL_ALWAYSSHOW',
        +            'MUI_RESERVEFILE_INSTALLOPTIONS', 'MUI_RESERVEFILE_LANGDLL', 'MUI_FUNCTION_DESCRIPTION_BEGIN',
        +            'MUI_DESCRIPTION_TEXT', 'MUI_FUNCTION_DESCRIPTION_END', 'MUI_INSTALLOPTIONS_EXTRACT',
        +            'MUI_INSTALLOPTIONS_EXTRACT_AS', 'MUI_HEADER_TEXT', 'MUI_INSTALLOPTIONS_DISPLAY',
        +            'MUI_INSTALLOPTIONS_INITDIALOG', 'MUI_INSTALLOPTIONS_SHOW',
        +            'MUI_INSTALLOPTIONS_DISPLAY_RETURN', 'MUI_INSTALLOPTIONS_SHOW_RETURN',
        +            'MUI_INSTALLOPTIONS_READ', 'MUI_INSTALLOPTIONS_WRITE',
        +            'MUI_CUSTOMFUNCTION_GUIINIT', 'MUI_CUSTOMFUNCTION_UNGUIINIT',
        +            'MUI_CUSTOMFUNCTION_ABORT', 'MUI_CUSTOMFUNCTION_UNABORT',
        +            'MUI_PAGE_CUSTOMFUNCTION_PRE', 'MUI_PAGE_CUSTOMFUNCTION_SHOW', 'MUI_PAGE_CUSTOMFUNCTION_LEAVE',
        +            'MUI_WELCOMEFINISHPAGE_CUSTOMFUNCTION_INIT'
        +            ),
        +        9 => array(
        +            'LogicLib.nsh', '${LOGICLIB}', 'LOGICLIB_STRCMP', 'LOGICLIB_INT64CMP', 'LOGICLIB_SECTIONCMP', '${If}', '${Unless}',
        +            '${ElseIf}', '${ElseUnless}', '${Else}', '${EndIf}', '${EndUnless}', '${AndIf}', '${AndUnless}',
        +            '${OrIf}', '${OrUnless}', '${IfThen}', '${IfCmd}', '${Select}', '${Case2}', '${Case3}',
        +            '${Case4}', '${Case5}', '${CaseElse}', '${Default}', '${EndSelect}', '${Switch}',
        +            '${Case}', '${EndSwitch}', '${Do}', '${DoWhile}', '${UntilWhile}', '${Continue}', '${Break}',
        +            '${Loop}', '${LoopWhile}', '${LoopUntil}', '${While}', '${ExitWhile}', '${EndWhile}', '${For}',
        +            '${ForEach}', '${ExitFor}', '${Next}', '${Abort}', '${Errors}', '${RebootFlag}', '${Silent}',
        +            '${FileExists}', '${Cmd}', '${SectionIsSelected}', '${SectionIsSectionGroup}',
        +            '${SectionIsSectionGroupEnd}', '${SectionIsBold}', '${SectionIsReadOnly}',
        +            '${SectionIsExpanded}', '${SectionIsPartiallySelected}'
        +            ),
        +        10 => array(
        +            'StrFunc.nsh', '${STRFUNC}', '${StrCase}', '${StrClb}', '${StrIOToNSIS}', '${StrLoc}', '${StrNSISToIO}', '${StrRep}',
        +            '${StrSort}', '${StrStr}', '${StrStrAdv}', '${StrTok}', '${StrTrimNewLines}'
        +            ),
        +        11 => array(
        +            'UpgradeDLL.nsh', 'UPGRADEDLL_INCLUDED', 'UpgradeDLL'
        +            ),
        +        12 => array(
        +            'Sections.nsh', 'SECTIONS_INCLUDED', '${SF_SELECTED}', '${SF_SECGRP}', '${SF_SUBSEC}', '${SF_SECGRPEND}',
        +            '${SF_SUBSECEND}', '${SF_BOLD}', '${SF_RO}', '${SF_EXPAND}', '${SF_PSELECTED}', '${SF_TOGGLED}',
        +            '${SF_NAMECHG}', '${SECTION_OFF}', 'SelectSection', 'UnselectSection', 'ReverseSection',
        +            'StartRadioButtons', 'RadioButton', 'EndRadioButtons', '${INSTTYPE_0}', '${INSTTYPE_1}', '${INSTTYPE_2}',
        +            '${INSTTYPE_3}', '${INSTTYPE_4}', '${INSTTYPE_5}', '${INSTTYPE_6}', '${INSTTYPE_7}', '${INSTTYPE_8}',
        +            '${INSTTYPE_9}', '${INSTTYPE_10}', '${INSTTYPE_11}', '${INSTTYPE_12}', '${INSTTYPE_13}', '${INSTTYPE_14}',
        +            '${INSTTYPE_15}', '${INSTTYPE_16}', '${INSTTYPE_17}', '${INSTTYPE_18}', '${INSTTYPE_19}', '${INSTTYPE_20}',
        +            '${INSTTYPE_21}', '${INSTTYPE_22}', '${INSTTYPE_23}', '${INSTTYPE_24}', '${INSTTYPE_25}', '${INSTTYPE_26}',
        +            '${INSTTYPE_27}', '${INSTTYPE_28}', '${INSTTYPE_29}', '${INSTTYPE_30}', '${INSTTYPE_31}', '${INSTTYPE_32}',
        +            'SetSectionInInstType', 'ClearSectionInInstType', 'SetSectionFlag', 'ClearSectionFlag', 'SectionFlagIsSet'
        +            ),
        +        13 => array(
        +            'Colors.nsh', 'WHITE', 'BLACK', 'YELLOW', 'RED', 'GREEN', 'BLUE', 'MAGENTA', 'CYAN', 'rgb2hex'
        +            ),
        +        14 => array(
        +            'FileFunc.nsh', '${Locate}', '${GetSize}', '${DriveSpace}', '${GetDrives}', '${GetTime}', '${GetFileAttributes}', '${GetFileVersion}', '${GetExeName}', '${GetExePath}', '${GetParameters}', '${GetOptions}', '${GetRoot}', '${GetParent}', '${GetFileName}', '${GetBaseName}', '${GetFileExt}', '${BannerTrimPath}', '${DirState}', '${RefreshShellIcons}'
        +            ),
        +        15 => array(
        +            'TextFunc.nsh', '${LineFind}', '${LineRead}', '${FileReadFromEnd}', '${LineSum}', '${FileJoin}', '${TextCompare}', '${ConfigRead}', '${ConfigWrite}', '${FileRecode}', '${TrimNewLines}'
        +            ),
        +        16 => array(
        +            'WordFunc.nsh', '${WordFind}', '${WordFind2X}', '${WordFind3X}', '${WordReplace}', '${WordAdd}', '${WordInsert}', '${StrFilter}', '${VersionCompare}', '${VersionConvert}'
        +            )
        +        ),
        +    '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,
        +        10 => false,
        +        11 => false,
        +        12 => false,
        +        13 => false,
        +        14 => false,
        +        15 => false,
        +        16 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000066; font-weight:bold;',
        +            2 => 'color: #000066;',
        +            3 => 'color: #003366;',
        +            4 => 'color: #000099;',
        +            5 => 'color: #ff6600;',
        +            6 => 'color: #ff6600;',
        +            7 => 'color: #006600;',
        +            8 => 'color: #006600;',
        +            9 => 'color: #006600;',
        +            10 => 'color: #006600;',
        +            11 => 'color: #006600;',
        +            12 => 'color: #006600;',
        +            13 => 'color: #006600;',
        +            14 => 'color: #006600;',
        +            15 => 'color: #006600;',
        +            16 => 'color: #006600;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #666666; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #660066; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => ''
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #660066;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => ''
        +            ),
        +        'METHODS' => array(
        +            0 => ''
        +            ),
        +        'SYMBOLS' => array(
        +            0 => ''
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #660000;',
        +            1 => 'color: #660000;',
        +            2 => 'color: #660000;',
        +            3 => 'color: #660000;',
        +            4 => 'color: #660000;',
        +            5 => 'color: #660000;',
        +            6 => 'color: #660000;',
        +            7 => 'color: #000099;',
        +            8 => 'color: #003399;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => '',
        +        7 => '',
        +        8 => '',
        +        9 => '',
        +        10 => '',
        +        11 => '',
        +        12 => '',
        +        13 => '',
        +        14 => '',
        +        15 => '',
        +        16 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        0 => '\$\$',
        +        1 => '\$\\r',
        +        2 => '\$\\n',
        +        3 => '\$\\t',
        +        4 => '\$[a-zA-Z0-9_]+',
        +        5 => '\$\{.{1,256}\}',
        +        6 => '\$\\\(.{1,256}\\\)',
        +        7 => array(
        +            GESHI_SEARCH => '([^:\/\\\*\?\"\<\>(?:)\s]*?)(::)([^:\/\\\*\?\"\<\>(?:)\s]*?)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '\\2\\3'
        +            ),
        +        8 => array(
        +            GESHI_SEARCH => '([^:\/\\\*\?\"\<\>(?:)\s]*?)(::)([^:\/\\\*\?\"\<\>(?:)]*?\s)',
        +            GESHI_REPLACE => '\\3',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1\\2',
        +            GESHI_AFTER => ''
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/oberon2.php b/Sources/geshi/oberon2.php
        new file mode 100644
        index 0000000..b43f814
        --- /dev/null
        +++ b/Sources/geshi/oberon2.php
        @@ -0,0 +1,135 @@
        + 'Oberon-2',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array('(*' => '*)'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'HARDQUOTE' => array("'", "'"),
        +    'HARDESCAPE' => array("''"),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'ARRAY', 'BEGIN', 'BY', 'CASE',
        +            'CONST', 'DIV', 'DO', 'ELSE', 'ELSIF', 'END',
        +            'EXIT', 'FOR', 'IF', 'IMPORT', 'IN', 'IS',
        +            'LOOP', 'MOD', 'MODULE', 'OF',
        +            'OR', 'POINTER', 'PROCEDURE', 'RECORD',
        +            'REPEAT', 'RETURN', 'THEN', 'TO',
        +            'TYPE', 'UNTIL', 'VAR', 'WHILE', 'WITH'
        +            ),
        +        2 => array(
        +            'NIL', 'FALSE', 'TRUE',
        +            ),
        +        3 => array(
        +            'ABS', 'ASH', 'ASSERT', 'CAP', 'CHR', 'COPY', 'DEC',
        +            'ENTIER', 'EXCL', 'HALT', 'INC', 'INCL', 'LEN',
        +            'LONG', 'MAX', 'MIN', 'NEW', 'ODD', 'ORD', 'SHORT', 'SIZE'
        +            ),
        +        4 => array(
        +            'BOOLEAN', 'CHAR', 'SHORTINT', 'LONGINT',
        +            'INTEGER', 'LONGREAL', 'REAL', 'SET', 'PTR'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        ',', ':', '=', '+', '-', '*', '/', '#', '~'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight: bold;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #000066;',
        +            4 => 'color: #000066; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            'HARD' => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;',
        +            'HARD' => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #0066ee;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/objc.php b/Sources/geshi/objc.php
        new file mode 100644
        index 0000000..2f5162d
        --- /dev/null
        +++ b/Sources/geshi/objc.php
        @@ -0,0 +1,358 @@
        + 'Objective-C',
        +    'COMMENT_SINGLE' => array(
        +        //Compiler directives
        +        1 => '#',
        +        //Single line C-Comments
        +        2 => '//'
        +        ),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Multiline Continuation for single-line comment
        +        2 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
        +        //Pseudo-Highlighting of the @-sign before strings
        +        3 => "/@(?=\")/"
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"', "'"),
        +    'ESCAPE_CHAR' => '\\',
        +
        +    'KEYWORDS' => array(
        +        // Objective-C keywords
        +        1 => array(
        +            'while', 'switch', 'return', 'in', 'if', 'goto', 'foreach', 'for',
        +            'else', 'do', 'default', 'continue', 'case', '@try', '@throw',
        +            '@synthesize', '@synchronized', '@selector', '@public', '@protocol',
        +            '@protected', '@property', '@private', '@interface',
        +            '@implementation', '@finally', '@end', '@encode', '@defs', '@class',
        +            '@catch'
        +            ),
        +        // Macros and constants
        +        2 => array(
        +            'YES', 'USHRT_MAX', 'ULONG_MAX', 'UINT_MAX', 'UCHAR_MAX', 'true',
        +            'TMP_MAX', 'stdout', 'stdin', 'stderr', 'SIGTERM', 'SIGSEGV',
        +            'SIGINT', 'SIGILL', 'SIG_IGN', 'SIGFPE', 'SIG_ERR', 'SIG_DFL',
        +            'SIGABRT', 'SHRT_MIN', 'SHRT_MAX', 'SEEK_SET', 'SEEK_END',
        +            'SEEK_CUR', 'SCHAR_MIN', 'SCHAR_MAX', 'RAND_MAX', 'NULL',
        +            'NO', 'nil', 'Nil', 'L_tmpnam', 'LONG_MIN', 'LONG_MAX',
        +            'LDBL_MIN_EXP', 'LDBL_MIN', 'LDBL_MAX_EXP', 'LDBL_MAX',
        +            'LDBL_MANT_DIG', 'LDBL_EPSILON', 'LDBL_DIG', 'INT_MIN', 'INT_MAX',
        +            'HUGE_VAL', 'FOPEN_MAX', 'FLT_ROUNDS', 'FLT_RADIX', 'FLT_MIN_EXP',
        +            'FLT_MIN', 'FLT_MAX_EXP', 'FLT_MAX', 'FLT_MANT_DIG', 'FLT_EPSILON',
        +            'FLT_DIG', 'FILENAME_MAX', 'false', 'EXIT_SUCCESS', 'EXIT_FAILURE',
        +            'errno', 'ERANGE', 'EOF', 'enum', 'EDOM', 'DBL_MIN_EXP', 'DBL_MIN',
        +            'DBL_MAX_EXP', 'DBL_MAX', 'DBL_MANT_DIG', 'DBL_EPSILON', 'DBL_DIG',
        +            'CLOCKS_PER_SEC', 'CHAR_MIN', 'CHAR_MAX', 'CHAR_BIT', 'BUFSIZ',
        +            'break'
        +            ),
        +        // C standard library functions
        +        3 => array(
        +            'vsprintf', 'vprintf', 'vfprintf', 'va_start', 'va_end', 'va_arg',
        +            'ungetc', 'toupper', 'tolower', 'tmpname', 'tmpfile', 'time',
        +            'tanh', 'tan', 'system', 'strxfrm', 'strtoul', 'strtol', 'strtok',
        +            'strtod', 'strstr', 'strspn', 'strrchr', 'strpbrk', 'strncpy',
        +            'strncmp', 'strncat', 'strlen', 'strftime', 'strerror', 'strcspn',
        +            'strcpy', 'strcoll', 'strcmp', 'strchr', 'strcat', 'sscanf',
        +            'srand', 'sqrt', 'sprintf', 'snprintf', 'sizeof', 'sinh', 'sin',
        +            'setvbuf', 'setjmp', 'setbuf', 'scanf', 'rewind', 'rename',
        +            'remove', 'realloc', 'rand', 'qsort', 'puts', 'putchar', 'putc',
        +            'printf', 'pow', 'perror', 'offsetof', 'modf', 'mktime', 'memset',
        +            'memmove', 'memcpy', 'memcmp', 'memchr', 'malloc', 'longjmp',
        +            'log10', 'log', 'localtime', 'ldiv', 'ldexp', 'labs', 'isxdigit',
        +            'isupper', 'isspace', 'ispunct', 'isprint', 'islower',
        +            'isgraph', 'isdigit', 'iscntrl', 'isalpha', 'isalnum', 'gmtime',
        +            'gets', 'getenv', 'getchar', 'getc', 'fwrite', 'ftell', 'fsetpos',
        +            'fseek', 'fscanf', 'frexp', 'freopen', 'free', 'fread', 'fputs',
        +            'fputc', 'fprintf', 'fopen', 'fmod', 'floor', 'fgets', 'fgetpos',
        +            'fgetc', 'fflush', 'ferror', 'feof', 'fclose', 'fabs', 'exp',
        +            'exit', 'div', 'difftime', 'ctime', 'cosh', 'cos', 'clock',
        +            'clearerr', 'ceil', 'calloc', 'bsearch', 'atol', 'atoi', 'atof',
        +            'atexit', 'atan2', 'atan', 'assert', 'asin', 'asctime', 'acos',
        +            'abs', 'abort'
        +            ),
        +        // Data types (C, Objective-C, Cocoa)
        +        4 => array(
        +            'volatile', 'void', 'va_list', 'unsigned', 'union', 'typedef', 'tm',
        +            'time_t', 'struct', 'string', 'static', 'size_t',
        +            'signed', 'signal', 'short', 'SEL', 'register', 'raise',
        +            'ptrdiff_t', 'NSZone', 'NSRect', 'NSRange', 'NSPoint', 'long',
        +            'ldiv_t', 'jmp_buf', 'int', 'IMP', 'id', 'fpos_t', 'float', 'FILE',
        +            'extern', 'double', 'div_t', 'const', 'clock_t', 'Class', 'char',
        +            'BOOL', 'auto'
        +            ),
        +        // Foundation classes
        +        5 => array(
        +            'NSXMLParser', 'NSXMLNode', 'NSXMLElement', 'NSXMLDTDNode',
        +            'NSXMLDTD', 'NSXMLDocument', 'NSWhoseSpecifier',
        +            'NSValueTransformer', 'NSValue', 'NSUserDefaults', 'NSURLResponse',
        +            'NSURLRequest', 'NSURLProtocol', 'NSURLProtectionSpace',
        +            'NSURLHandle', 'NSURLDownload', 'NSURLCredentialStorage',
        +            'NSURLCredential', 'NSURLConnection', 'NSURLCache',
        +            'NSURLAuthenticationChallenge', 'NSURL', 'NSUniqueIDSpecifier',
        +            'NSUndoManager', 'NSUnarchiver', 'NSTimeZone', 'NSTimer',
        +            'NSThread', 'NSTask', 'NSString', 'NSStream', 'NSSpellServer',
        +            'NSSpecifierTest', 'NSSortDescriptor', 'NSSocketPortNameServer',
        +            'NSSocketPort', 'NSSetCommand', 'NSSet', 'NSSerializer',
        +            'NSScriptWhoseTest', 'NSScriptSuiteRegistry',
        +            'NSScriptObjectSpecifier', 'NSScriptExecutionContext',
        +            'NSScriptCommandDescription', 'NSScriptCommand',
        +            'NSScriptCoercionHandler', 'NSScriptClassDescription', 'NSScanner',
        +            'NSRunLoop', 'NSRelativeSpecifier', 'NSRecursiveLock',
        +            'NSRangeSpecifier', 'NSRandomSpecifier', 'NSQuitCommand', 'NSProxy',
        +            'NSProtocolChecker', 'NSPropertySpecifier',
        +            'NSPropertyListSerialization', 'NSProcessInfo', 'NSPredicate',
        +            'NSPositionalSpecifier', 'NSPortNameServer', 'NSPortMessage',
        +            'NSPortCoder', 'NSPort', 'NSPointerFunctions', 'NSPointerArray',
        +            'NSPipe', 'NSOutputStream', 'NSOperationQueue', 'NSOperation',
        +            'NSObject', 'NSNumberFormatter', 'NSNumber', 'NSNull',
        +            'NSNotificationQueue', 'NSNotificationCenter', 'NSNotification',
        +            'NSNetServiceBrowser', 'NSNetService', 'NSNameSpecifier',
        +            'NSMutableURLRequest', 'NSMutableString', 'NSMutableSet',
        +            'NSMutableIndexSet', 'NSMutableDictionary', 'NSMutableData',
        +            'NSMutableCharacterSet', 'NSMutableAttributedString',
        +            'NSMutableArray', 'NSMoveCommand', 'NSMiddleSpecifier',
        +            'NSMethodSignature', 'NSMetadataQueryResultGroup',
        +            'NSMetadataQueryAttributeValueTuple', 'NSMetadataQuery',
        +            'NSMetadataItem', 'NSMessagePortNameServer', 'NSMessagePort',
        +            'NSMapTable', 'NSMachPort', 'NSMachBootstrapServer',
        +            'NSLogicalTest', 'NSLock', 'NSLocale', 'NSKeyedUnarchiver',
        +            'NSKeyedArchiver', 'NSInvocationOperation', 'NSInvocation',
        +            'NSInputStream', 'NSIndexSpecifier', 'NSIndexSet', 'NSIndexPath',
        +            'NSHTTPURLResponse', 'NSHTTPCookieStorage', 'NSHTTPCookie',
        +            'NSHost', 'NSHashTable', 'NSGetCommand', 'NSGarbageCollector',
        +            'NSFormatter', 'NSFileManager', 'NSFileHandle', 'NSExpression',
        +            'NSExistsCommand', 'NSException', 'NSError', 'NSEnumerator',
        +            'NSDistributedNotificationCenter', 'NSDistributedLock',
        +            'NSDistantObjectRequest', 'NSDistantObject',
        +            'NSDirectoryEnumerator', 'NSDictionary', 'NSDeserializer',
        +            'NSDeleteCommand', 'NSDecimalNumberHandler', 'NSDecimalNumber',
        +            'NSDateFormatter', 'NSDateComponents', 'NSDate', 'NSData',
        +            'NSCreateCommand', 'NSCountedSet', 'NSCountCommand', 'NSConnection',
        +            'NSConditionLock', 'NSCondition', 'NSCompoundPredicate',
        +            'NSComparisonPredicate', 'NSCoder', 'NSCloseCommand',
        +            'NSCloneCommand', 'NSClassDescription', 'NSCharacterSet',
        +            'NSCalendarDate', 'NSCalendar', 'NSCachedURLResponse', 'NSBundle',
        +            'NSAutoreleasePool', 'NSAttributedString', 'NSAssertionHandler',
        +            'NSArray', 'NSArchiver', 'NSAppleScript', 'NSAppleEventManager',
        +            'NSAppleEventDescriptor', 'NSAffineTransform'
        +            ),
        +        // Foundation protocols
        +        6 => array(
        +            'NSURLProtocolClient', 'NSURLHandleClient', 'NSURLClient',
        +            'NSURLAuthenticationChallengeSender', 'NSScriptObjectSpecifiers',
        +            'NSScriptKeyValueCoding', 'NSScriptingComparisonMethods',
        +            'NSObjCTypeSerializationCallBack', 'NSMutableCopying',
        +            'NSLocking', 'NSKeyValueObserving', 'NSKeyValueCoding',
        +            'NSFastEnumeration', 'NSErrorRecoveryAttempting',
        +            'NSDecimalNumberBehaviors', 'NSCopying', 'NSComparisonMethods',
        +            'NSCoding'
        +            ),
        +        // AppKit classes
        +        7 => array(
        +            'NSWorkspace', 'NSWindowController', 'NSWindow', 'NSViewController',
        +            'NSViewAnimation', 'NSView', 'NSUserDefaultsController',
        +            'NSTypesetter', 'NSTreeNode', 'NSTreeController', 'NSTrackingArea',
        +            'NSToolbarItemGroup', 'NSToolbarItem', 'NSToolbar',
        +            'NSTokenFieldCell', 'NSTokenField', 'NSTextView',
        +            'NSTextTableBlock', 'NSTextTable', 'NSTextTab', 'NSTextStorage',
        +            'NSTextList', 'NSTextFieldCell', 'NSTextField', 'NSTextContainer',
        +            'NSTextBlock', 'NSTextAttachmentCell', 'NSTextAttachment', 'NSText',
        +            'NSTabViewItem', 'NSTabView', 'NSTableView', 'NSTableHeaderView',
        +            'NSTableHeaderCell', 'NSTableColumn', 'NSStepperCell', 'NSStepper',
        +            'NSStatusItem', 'NSStatusBar', 'NSSplitView', 'NSSpellChecker',
        +            'NSSpeechSynthesizer', 'NSSpeechRecognizer', 'NSSound',
        +            'NSSliderCell', 'NSSlider', 'NSSimpleHorizontalTypesetter',
        +            'NSShadow', 'NSSegmentedControl', 'NSSegmentedCell',
        +            'NSSecureTextFieldCell', 'NSSecureTextField', 'NSSearchFieldCell',
        +            'NSSearchField', 'NSScrollView', 'NSScroller', 'NSScreen',
        +            'NSSavePanel', 'NSRulerView', 'NSRulerMarker', 'NSRuleEditor',
        +            'NSResponder', 'NSQuickDrawView', 'NSProgressIndicator',
        +            'NSPrintPanel', 'NSPrintOperation', 'NSPrintInfo', 'NSPrinter',
        +            'NSPredicateEditorRowTemplate', 'NSPredicateEditor',
        +            'NSPopUpButtonCell', 'NSPopUpButton', 'NSPICTImageRep',
        +            'NSPersistentDocument', 'NSPDFImageRep', 'NSPathControl',
        +            'NSPathComponentCell', 'NSPathCell', 'NSPasteboard',
        +            'NSParagraphStyle', 'NSPanel', 'NSPageLayout', 'NSOutlineView',
        +            'NSOpenPanel', 'NSOpenGLView', 'NSOpenGLPixelFormat',
        +            'NSOpenGLPixelBuffer', 'NSOpenGLContext', 'NSObjectController',
        +            'NSNibOutletConnector', 'NSNibControlConnector', 'NSNibConnector',
        +            'NSNib', 'NSMutableParagraphStyle', 'NSMovieView', 'NSMovie',
        +            'NSMenuView', 'NSMenuItemCell', 'NSMenuItem', 'NSMenu', 'NSMatrix',
        +            'NSLevelIndicatorCell', 'NSLevelIndicator', 'NSLayoutManager',
        +            'NSInputServer', 'NSInputManager', 'NSImageView', 'NSImageRep',
        +            'NSImageCell', 'NSImage', 'NSHelpManager', 'NSGraphicsContext',
        +            'NSGradient', 'NSGlyphInfo', 'NSGlyphGenerator', 'NSFormCell',
        +            'NSForm', 'NSFontPanel', 'NSFontManager', 'NSFontDescriptor',
        +            'NSFont', 'NSFileWrapper', 'NSEvent', 'NSEPSImageRep', 'NSDrawer',
        +            'NSDocumentController', 'NSDocument', 'NSDockTile',
        +            'NSDictionaryController', 'NSDatePickerCell', 'NSDatePicker',
        +            'NSCustomImageRep', 'NSCursor', 'NSController', 'NSControl',
        +            'NSComboBoxCell', 'NSComboBox', 'NSColorWell', 'NSColorSpace',
        +            'NSColorPicker', 'NSColorPanel', 'NSColorList', 'NSColor',
        +            'NSCollectionViewItem', 'NSCollectionView', 'NSClipView',
        +            'NSCIImageRep', 'NSCell', 'NSCachedImageRep', 'NSButtonCell',
        +            'NSButton', 'NSBrowserCell', 'NSBrowser', 'NSBox',
        +            'NSBitmapImageRep', 'NSBezierPath', 'NSATSTypesetter',
        +            'NSArrayController', 'NSApplication', 'NSAnimationContext',
        +            'NSAnimation', 'NSAlert', 'NSActionCell'
        +            ),
        +        // AppKit protocols
        +        8 => array(
        +            'NSWindowScripting', 'NSValidatedUserInterfaceItem',
        +            'NSUserInterfaceValidations', 'NSToolTipOwner',
        +            'NSToolbarItemValidation', 'NSTextInput',
        +            'NSTableDataSource', 'NSServicesRequests',
        +            'NSPrintPanelAccessorizing', 'NSPlaceholders',
        +            'NSPathControlDelegate', 'NSPathCellDelegate',
        +            'NSOutlineViewDataSource', 'NSNibAwaking', 'NSMenuValidation',
        +            'NSKeyValueBindingCreation', 'NSInputServiceProvider',
        +            'NSInputServerMouseTracker', 'NSIgnoreMisspelledWords',
        +            'NSGlyphStorage', 'NSFontPanelValidation', 'NSEditorRegistration',
        +            'NSEditor', 'NSDraggingSource', 'NSDraggingInfo',
        +            'NSDraggingDestination', 'NSDictionaryControllerKeyValuePair',
        +            'NSComboBoxDataSource', 'NSComboBoxCellDataSource',
        +            'NSColorPickingDefault', 'NSColorPickingCustom', 'NSChangeSpelling',
        +            'NSAnimatablePropertyContainer', 'NSAccessibility'
        +            ),
        +        // CoreData classes
        +        9 => array(
        +            'NSRelationshipDescription', 'NSPropertyMapping',
        +            'NSPropertyDescription', 'NSPersistentStoreCoordinator',
        +            'NSPersistentStore', 'NSMigrationManager', 'NSMappingModel',
        +            'NSManagedObjectModel', 'NSManagedObjectID',
        +            'NSManagedObjectContext', 'NSManagedObject',
        +            'NSFetchRequestExpression', 'NSFetchRequest',
        +            'NSFetchedPropertyDescription', 'NSEntityMigrationPolicy',
        +            'NSEntityMapping', 'NSEntityDescription', 'NSAttributeDescription',
        +            'NSAtomicStoreCacheNode', 'NSAtomicStore'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => true,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true,
        +        8 => true,
        +        9 => true
        +        ),
        +    // Define the colors for the groups listed above
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #a61390;', // Objective-C keywords
        +            2 => 'color: #a61390;', // Macros and constants
        +            3 => 'color: #a61390;', // C standard library functions
        +            4 => 'color: #a61390;', // data types
        +            5 => 'color: #400080;', // Foundation classes
        +            6 => 'color: #2a6f76;', // Foundation protocols
        +            7 => 'color: #400080;', // AppKit classes
        +            8 => 'color: #2a6f76;', // AppKit protocols
        +            9 => 'color: #400080;' // CoreData classes
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #6e371a;', // Preprocessor directives
        +            2 => 'color: #11740a; font-style: italic;', // Normal C single-line comments
        +            3 => 'color: #bf1d1a;', // Q-sign in front of Strings
        +            'MULTI' => 'color: #11740a; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #2400d9;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #002200;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #bf1d1a;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #2400d9;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #002200;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAME}.html',
        +        4 => '',
        +        5 => 'http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/{FNAME}_Class/',
        +        6 => 'http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Protocols/{FNAME}_Protocol/',
        +        7 => 'http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/{FNAME}_Class/',
        +        8 => 'http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Protocols/{FNAME}_Protocol/',
        +        9 => 'http://developer.apple.com/documentation/Cocoa/Reference/CoreDataFramework/Classes/{FNAME}_Class/'
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/objeck.php b/Sources/geshi/objeck.php
        new file mode 100644
        index 0000000..bf9dab5
        --- /dev/null
        +++ b/Sources/geshi/objeck.php
        @@ -0,0 +1,116 @@
        + 'Objeck Programming Language',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array('#~' => '~#'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'virtual', 'if', 'else', 'do', 'while', 'use', 'bundle', 'native',
        +            'static', 'public', 'private', 'class', 'function', 'method',
        +            'select', 'other', 'enum', 'for', 'each', 'label', 'return', 'from'
        +            ),
        +        2 => array(
        +            'Byte', 'Int', 'Nil', 'Float', 'Char', 'Bool', 'String'
        +            ),
        +        3 => array(
        +            'true', 'false'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array(
        +            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%', '=', '<', '>', '&', '|', ':', ';', ',', '+=', '-=', '*=', '/=',
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #b1b100;',
        +            3 => 'color: #b1b100;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;',
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #004000;'
        +            ),
        +        'SYMBOLS' => array(
        +            1 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(),
        +        'SCRIPT' => array()
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '->'
        +        ),
        +    'REGEXPS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array()
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/ocaml-brief.php b/Sources/geshi/ocaml-brief.php
        new file mode 100644
        index 0000000..b518adf
        --- /dev/null
        +++ b/Sources/geshi/ocaml-brief.php
        @@ -0,0 +1,112 @@
        + 'OCaml (brief)',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array('(*' => '*)'),
        +    'CASE_KEYWORDS' => 0,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => "",
        +    'KEYWORDS' => array(
        +        /* main OCaml keywords */
        +        1 => array(
        +            'and', 'as', 'asr', 'begin', 'class', 'closed', 'constraint', 'do', 'done', 'downto', 'else',
        +            'end', 'exception', 'external', 'failwith', 'false', 'flush', 'for', 'fun', 'function', 'functor',
        +            'if', 'in', 'include', 'inherit',  'incr', 'land', 'let', 'load', 'los', 'lsl', 'lsr', 'lxor',
        +            'match', 'method', 'mod', 'module', 'mutable', 'new', 'not', 'of', 'open', 'option', 'or', 'parser',
        +            'private', 'ref', 'rec', 'raise', 'regexp', 'sig', 'struct', 'stdout', 'stdin', 'stderr', 'then',
        +            'to', 'true', 'try', 'type', 'val', 'virtual', 'when', 'while', 'with'
        +            )
        +        ),
        +    /* highlighting symbols is really important in OCaml */
        +    'SYMBOLS' => array(
        +        ';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+',
        +        '>', '<', '(', ')', '[', ']', '&', '|', '#', "'"
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #06c; font-weight: bold;' /* nice blue */
        +            ),
        +        'COMMENTS' => array(
        +            'MULTI' => 'color: #5d478b; font-style: italic;' /* light purple */
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #6c6;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #3cb371;' /* nice green */
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #c6c;' /* pink */
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #060;' /* dark green */
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #a52a2a;' /* maroon */
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/ocaml.php b/Sources/geshi/ocaml.php
        new file mode 100644
        index 0000000..ac6c29b
        --- /dev/null
        +++ b/Sources/geshi/ocaml.php
        @@ -0,0 +1,187 @@
        + 'OCaml',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array('(*' => '*)'),
        +    'COMMENT_REGEXP' => array(1 => '/\(\*(?:(?R)|.)+?\*\)/s'),
        +    'CASE_KEYWORDS' => 0,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => "",
        +    'KEYWORDS' => array(
        +        /* main OCaml keywords */
        +        1 => array(
        +            'and', 'as', 'asr', 'begin', 'class', 'closed', 'constraint', 'do', 'done', 'downto', 'else',
        +            'end', 'exception', 'external', 'failwith', 'false', 'for', 'fun', 'function', 'functor',
        +            'if', 'in', 'include', 'inherit',  'incr', 'land', 'let', 'load', 'los', 'lsl', 'lsr', 'lxor',
        +            'match', 'method', 'mod', 'module', 'mutable', 'new', 'not', 'of', 'open', 'option', 'or', 'parser',
        +            'private', 'ref', 'rec', 'raise', 'regexp', 'sig', 'struct', 'stdout', 'stdin', 'stderr', 'then',
        +            'to', 'true', 'try', 'type', 'val', 'virtual', 'when', 'while', 'with'
        +            ),
        +        /* define names of main librarys, so we can link to it */
        +        2 => array(
        +            'Arg', 'Arith_status', 'Array', //'Array1', 'Array2', 'Array3',
        +            'ArrayLabels', 'Big_int', 'Bigarray', 'Buffer', 'Callback',
        +            'CamlinternalLazy', 'CamlinternalMod', 'CamlinternalOO', 'Char',
        +            'Complex', 'Condition', 'Dbm', 'Digest', 'Dynlink', 'Event',
        +            'Filename', 'Format', 'Gc', 'Genlex', 'Graphics', 'GraphicsX11',
        +            'Hashtbl', 'Int32', 'Int64', 'Lazy', 'Lexing', 'List', 'ListLabels',
        +            'Map', 'Marshal', 'MoreLabels', 'Mutex', 'Nativeint', 'Num', 'Obj',
        +            'Oo', 'Parsing', 'Pervasives', 'Printexc', 'Printf', 'Queue',
        +            'Random', 'Scanf', 'Set', 'Sort', 'Stack', 'StdLabels', 'Str',
        +            'Stream', 'String', 'StringLabels', 'Sys', 'Thread', 'ThreadUnix',
        +            'Tk', 'Unix', 'UnixLabels', 'Weak'
        +            ),
        +        /* just link to the Pervasives functions library, cause it's the default opened library when starting OCaml */
        +        3 => array(
        +            'abs', 'abs_float', 'acos', 'asin', 'at_exit', 'atan', 'atan2',
        +            'bool_of_string', 'ceil', 'char_of_int', 'classify_float',
        +            'close_in', 'close_in_noerr', 'close_out', 'close_out_noerr',
        +            'compare', 'cos', 'cosh', 'decr', 'epsilon_float', 'exit', 'exp',
        +            'float', 'float_of_int', 'float_of_string', 'floor', 'flush',
        +            'flush_all', 'format_of_string', 'frexp', 'fst', 'ignore',
        +            'in_channel_length', 'infinity', 'input', 'input_binary_int',
        +            'input_byte', 'input_char', 'input_line', 'input_value',
        +            'int_of_char', 'int_of_float', 'int_of_string', 'invalid_arg',
        +            'ldexp', 'log', 'log10', 'max', 'max_float', 'max_int', 'min',
        +            'min_float', 'min_int', 'mod_float', 'modf', 'nan', 'open_in',
        +            'open_in_bin', 'open_in_gen', 'open_out', 'open_out_bin',
        +            'open_out_gen', 'out_channel_length', 'output', 'output_binary_int',
        +            'output_byte', 'output_char', 'output_string', 'output_value',
        +            'pos_in', 'pos_out',  'pred', 'prerr_char', 'prerr_endline',
        +            'prerr_float', 'prerr_int', 'prerr_newline', 'prerr_string',
        +            'print_char', 'print_endline', 'print_float', 'print_int',
        +            'print_newline', 'print_string', 'read_float', 'read_int',
        +            'read_line', 'really_input', 'seek_in', 'seek_out',
        +            'set_binary_mode_in', 'set_binary_mode_out', 'sin', 'sinh', 'snd',
        +            'sqrt', 'string_of_bool', 'string_of_float', 'string_of_format',
        +            'string_of_int', 'succ', 'tan', 'tanh', 'truncate'
        +            ),
        +        /* here Pervasives Types */
        +        4 => array (
        +            'array','bool','char','exn','file_descr','format','fpclass',
        +            'in_channel','int','int32','int64','list','nativeint','open_flag',
        +            'out_channel','string','Sys_error','unit'
        +            ),
        +        /* finally Pervasives Exceptions */
        +        5 => array (
        +            'Exit', 'Invalid_Argument', 'Failure', 'Division_by_zero'
        +            )
        +        ),
        +    /* highlighting symbols is really important in OCaml */
        +    'SYMBOLS' => array(
        +        '+.', '-.', '*.', '/.', '[<', '>]',
        +        ';', '!', ':', '.', '=', '%', '^', '*', '-', '/', '+',
        +        '>', '<', '(', ')', '[', ']', '&', '|', '#', "'",
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => true, /* functions name are case sensitive */
        +        3 => true, /* types name too */
        +        4 => true, /* pervasives types */
        +        5 => true  /* pervasives exceptions */
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #06c; font-weight: bold;', /* nice blue */
        +            2 => 'color: #06c; font-weight: bold;', /* nice blue */
        +            3 => 'color: #06c; font-weight: bold;', /* nice blue */
        +            4 => 'color: #06c; font-weight: bold;', /* nice blue */
        +            5 => 'color: #06c; font-weight: bold;' /* nice blue */
        +            ),
        +        'COMMENTS' => array(
        +            'MULTI' => 'color: #5d478b; font-style: italic;', /* light purple */
        +            1 => 'color: #5d478b; font-style: italic;' /* light purple */
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #a52a2a;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #3cb371;' /* nice green */
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #c6c;' /* pink */
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #060;' /* dark green */
        +            ),
        +        'REGEXPS' => array(
        +            1 => 'font-weight:bold; color:#339933;',
        +            2 => 'font-weight:bold; color:#993399;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #a52a2a;' /* maroon */
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        /* some of keywords are Pervasives functions (land, lxor, asr, ...) */
        +        1 => '',
        +        /* link to the wanted library */
        +        2 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/{FNAME}.html',
        +        /* link to Pervasives functions */
        +        3 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#VAL{FNAME}',
        +        /* link to Pervasives type */
        +        4 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#TYPE{FNAME}',
        +        /* link to Pervasives exceptions */
        +        5 => 'http://caml.inria.fr/pub/docs/manual-ocaml/libref/Pervasives.html#EXCEPTION{FNAME}'
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        1 => '~\w+',
        +        2 => '`(?=(?-i:[a-z]))\w*',
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/octave.php b/Sources/geshi/octave.php
        new file mode 100644
        index 0000000..ccffcd9
        --- /dev/null
        +++ b/Sources/geshi/octave.php
        @@ -0,0 +1,515 @@
        + 'GNU Octave',
        +    'COMMENT_SINGLE' => array(1 => '#', 2 => '%'),
        +    // we can't use COMMENT_MULTI since start and end of block comments need to
        +    // be alone on the line (optionally, with whitespace). See COMMENT_REGEXP
        +    'COMMENT_MULTI' => array(),
        +    // we can't use QUOTEMARKS, not even HARDQUOTE, see COMMENT_REGEXP
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'COMMENT_REGEXP' => array(
        +        // Single quote strings: we can't use QUOTEMARKS here since new
        +        // lines will break the string. Plus, single quote strings do not even
        +        // allow for continuation markers, only double quote strings allow it.
        +        // Also, to do not misdetect the transpose operator ' as the start of a
        +        // string we assert to not follow a variable name (letters, digits and
        +        // underscores) or a closing bracket (round, square or curly) or a dot
        +        // (to form the array transpose operator ".'" ).
        +        3 => "/(? '/"(.|(\.\.\.|\\\)(\s)*?\n)*?(? "/^\s*?[%#]{\s*?$.*?^\s*?[%#]}\s*?$/ms",
        +        // Packaging system: comes here so that pkg can also be used in the
        +        // function form. The list of pkg commands is optional to the match so
        +        // that at least pkg is highlighted if new commands are implemented
        +        6 => "/\bpkg(?!\s*\()\s+((un)?install|update|(un)?load|list|(global|local)_list|describe|prefix|(re)?build)?\b/",
        +        // Function handles
        +        7 => "/@([a-z_][a-z1-9_]*)?/i",
        +        ),
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC |
        +        GESHI_NUMBER_OCT_PREFIX |
        +        GESHI_NUMBER_HEX_PREFIX |
        +        GESHI_NUMBER_FLT_SCI_ZERO,
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'KEYWORDS' => array(
        +        // Data types
        +        1 => array(
        +            'cell', 'char', 'double', 'uint8', 'uint16', 'uint32', 'uint64',
        +            'int8','int16', 'int32', 'int64', 'logical', 'single', 'struct'
        +            ),
        +        // Storage type
        +        2 => array(
        +            'global', 'persistent', 'static'
        +            ),
        +        // Internal variable
        +        3 => array(
        +            'ans'
        +            ),
        +        // Reserved words
        +        4 => array(
        +            'break', 'case', 'catch', 'continue', 'do', 'else', 'elseif', 'end',
        +            'end_try_catch', 'end_unwind_protect', 'endfor', 'endfunction',
        +            'endif', 'endparfor', 'endswitch', 'endwhile', 'for', 'function',
        +            'if', 'otherwise', 'parfor', 'return',
        +            'switch', 'try', 'until', 'unwind_protect',
        +            'unwind_protect_cleanup', 'varargin', 'varargout', 'while'
        +            ),
        +        // Built in
        +        5 => array(
        +            'P_tmpdir', 'abs', 'acos', 'acosh',
        +            'add_input_event_hook', 'addlistener', 'addpath', 'addproperty',
        +            'all', 'allow_noninteger_range_as_index', 'and', 'angle', 'any',
        +            'arg', 'argnames', 'argv', 'asin', 'asinh', 'assignin', 'atan',
        +            'atan2', 'atanh', 'atexit', 'autoload', 'available_graphics_toolkits',
        +            'beep_on_error', 'bitand', 'bitmax', 'bitor', 'bitshift', 'bitxor',
        +            'builtin', 'canonicalize_file_name', 'cat', 'cbrt', 'cd', 'ceil',
        +            'cell2struct', 'cellstr', 'chdir', 'class', 'clc',
        +            'clear', 'columns', 'command_line_path', 'completion_append_char',
        +            'completion_matches', 'complex', 'confirm_recursive_rmdir', 'conj',
        +            'cos', 'cosh', 'cputime', 'crash_dumps_octave_core', 'ctranspose',
        +            'cumprod', 'cumsum', 'dbclear', 'dbcont', 'dbdown', 'dbnext',
        +            'dbquit', 'dbstack', 'dbstatus', 'dbstep', 'dbstop', 'dbtype', 'dbup',
        +            'dbwhere', 'debug_on_error', 'debug_on_interrupt', 'debug_on_warning',
        +            'default_save_options', 'dellistener', 'diag', 'diary', 'diff',
        +            'disp', 'do_braindead_shortcircuit_evaluation', 'do_string_escapes',
        +            'doc_cache_file', 'drawnow', 'dup2', 'echo',
        +            'echo_executing_commands', 'edit_history','eq', 'erf', 'erfc',
        +            'erfcx', 'erfinv', 'errno', 'errno_list', 'error', 'eval', 'evalin',
        +            'exec', 'exist', 'exit', 'exp', 'expm1', 'eye', 'fclear',
        +            'fclose', 'fcntl', 'fdisp', 'feof', 'ferror', 'feval', 'fflush',
        +            'fgetl', 'fgets', 'fieldnames', 'file_in_loadpath', 'file_in_path',
        +            'filemarker', 'filesep', 'find_dir_in_path', 'finite', 'fix',
        +            'fixed_point_format', 'floor', 'fmod', 'fnmatch', 'fopen', 'fork',
        +            'format', 'formula', 'fprintf', 'fputs', 'fread', 'freport',
        +            'frewind', 'fscanf', 'fseek', 'fskipl', 'ftell', 'full', 'func2str',
        +            'functions', 'fwrite', 'gamma', 'gammaln', 'ge', 'genpath', 'get',
        +            'get_help_text', 'get_help_text_from_file', 'getegid', 'getenv',
        +            'geteuid', 'getgid', 'gethostname', 'getpgrp', 'getpid', 'getppid',
        +            'getuid', 'glob', 'gt', 'history', 'history_control', 'history_file',
        +            'history_size', 'history_timestamp_format_string', 'home', 'horzcat',
        +            'hypot', 'ifelse', 'ignore_function_time_stamp', 'imag',
        +            'inferiorto', 'info_file', 'info_program', 'inline', 'input',
        +            'intmax', 'intmin', 'ipermute',
        +            'is_absolute_filename', 'is_dq_string', 'is_function_handle',
        +            'is_rooted_relative_filename', 'is_sq_string', 'isalnum', 'isalpha',
        +            'isargout', 'isascii', 'isbool', 'iscell', 'iscellstr', 'ischar',
        +            'iscntrl', 'iscomplex', 'isdebugmode', 'isdigit', 'isempty',
        +            'isfield', 'isfinite', 'isfloat', 'isglobal', 'isgraph', 'ishandle',
        +            'isieee', 'isindex', 'isinf', 'isinteger', 'iskeyword', 'islogical',
        +            'islower', 'ismatrix', 'ismethod', 'isna', 'isnan', 'isnull',
        +            'isnumeric', 'isobject', 'isprint', 'ispunct', 'isreal', 'issorted',
        +            'isspace', 'issparse', 'isstruct', 'isupper', 'isvarname', 'isxdigit',
        +            'kbhit', 'keyboard', 'kill', 'lasterr', 'lasterror', 'lastwarn',
        +            'ldivide', 'le', 'length', 'lgamma', 'link', 'linspace',
        +            'list_in_columns', 'load', 'loaded_graphics_toolkits', 'log', 'log10',
        +            'log1p', 'log2', 'lower', 'lstat', 'lt',
        +            'make_absolute_filename', 'makeinfo_program', 'max_recursion_depth',
        +            'merge', 'methods', 'mfilename', 'minus', 'mislocked',
        +            'missing_function_hook', 'mkdir', 'mkfifo', 'mkstemp', 'mldivide',
        +            'mlock', 'mod', 'more', 'mpower', 'mrdivide', 'mtimes', 'munlock',
        +            'nargin', 'nargout', 'native_float_format', 'ndims', 'ne',
        +            'nfields', 'nnz', 'norm', 'not', 'nth_element', 'numel', 'nzmax',
        +            'octave_config_info', 'octave_core_file_limit',
        +            'octave_core_file_name', 'octave_core_file_options',
        +            'octave_tmp_file_name', 'onCleanup', 'ones',
        +            'optimize_subsasgn_calls', 'or', 'output_max_field_width',
        +            'output_precision', 'page_output_immediately', 'page_screen_output',
        +            'path', 'pathsep', 'pause', 'pclose', 'permute', 'pipe', 'plus',
        +            'popen', 'popen2', 'power', 'print_empty_dimensions',
        +            'print_struct_array_contents', 'printf', 'prod',
        +            'program_invocation_name', 'program_name', 'putenv', 'puts', 'pwd',
        +            'quit', 'rats', 'rdivide', 're_read_readline_init_file',
        +            'read_readline_init_file', 'readdir', 'readlink', 'real', 'realmax',
        +            'realmin', 'register_graphics_toolkit', 'rehash', 'rem',
        +            'remove_input_event_hook', 'rename', 'repelems', 'reset', 'reshape',
        +            'resize', 'restoredefaultpath', 'rethrow', 'rmdir', 'rmfield',
        +            'rmpath', 'round', 'roundb', 'rows', 'run_history', 'save',
        +            'save_header_format_string', 'save_precision', 'saving_history',
        +            'scanf', 'set', 'setenv', 'sighup_dumps_octave_core', 'sign',
        +            'sigterm_dumps_octave_core', 'silent_functions', 'sin',
        +            'sinh', 'size', 'size_equal', 'sizemax', 'sizeof', 'sleep', 'sort',
        +            'source', 'spalloc', 'sparse', 'sparse_auto_mutate',
        +            'split_long_rows', 'sprintf', 'sqrt', 'squeeze', 'sscanf', 'stat',
        +            'stderr', 'stdin', 'stdout', 'str2func', 'strcmp', 'strcmpi',
        +            'string_fill_char', 'strncmp', 'strncmpi', 'struct2cell',
        +            'struct_levels_to_print', 'strvcat', 'subsasgn', 'subsref', 'sum',
        +            'sumsq', 'superiorto', 'suppress_verbose_help_message', 'symlink',
        +            'system', 'tan', 'tanh', 'terminal_size', 'tic', 'tilde_expand',
        +            'times', 'tmpfile', 'tmpnam', 'toascii', 'toc', 'tolower', 'toupper',
        +            'transpose', 'typeinfo',
        +            'umask', 'uminus', 'uname', 'undo_string_escapes', 'unlink',
        +            'uplus', 'upper', 'usage', 'usleep', 'vec', 'vectorize', 'vertcat',
        +            'waitfor', 'waitpid', 'warning', 'warranty', 'who', 'whos',
        +            'whos_line_format', 'yes_or_no', 'zeros'
        +            ),
        +        // Octave functions
        +        6 => array(
        +            'accumarray', 'accumdim', 'acosd', 'acot', 'acotd', 'acoth', 'acsc',
        +            'acscd', 'acsch', 'addpref', 'addtodate', 'allchild', 'amd',
        +            'ancestor', 'anova', 'arch_fit', 'arch_rnd', 'arch_test',
        +            'area', 'arma_rnd', 'asctime', 'asec', 'asecd', 'asech', 'asind',
        +            'assert', 'atand', 'autoreg_matrix', 'autumn',
        +            'axes', 'axis', 'balance', 'bar', 'barh', 'bartlett', 'bartlett_test',
        +            'base2dec', 'beep', 'bessel', 'besselj', 'beta', 'betacdf',
        +            'betainc', 'betainv', 'betaln', 'betapdf', 'betarnd', 'bicg',
        +            'bicgstab', 'bicubic', 'bin2dec', 'bincoeff', 'binocdf', 'binoinv',
        +            'binopdf', 'binornd', 'bitcmp', 'bitget', 'bitset', 'blackman',
        +            'blanks', 'blkdiag', 'bone', 'box', 'brighten', 'bsxfun',
        +            'bug_report', 'bunzip2', 'bzip2', 'calendar', 'cart2pol', 'cart2sph',
        +            'cast', 'cauchy_cdf', 'cauchy_inv', 'cauchy_pdf', 'cauchy_rnd',
        +            'caxis', 'ccolamd', 'cell2mat', 'celldisp', 'cellfun',
        +            'center', 'cgs', 'chi2cdf', 'chi2inv', 'chi2pdf', 'chi2rnd',
        +            'chisquare_test_homogeneity', 'chisquare_test_independence', 'chol',
        +            'chop', 'circshift', 'cla', 'clabel', 'clf', 'clock',
        +            'cloglog', 'close', 'closereq', 'colamd', 'colloc', 'colon',
        +            'colorbar', 'colormap', 'colperm', 'colstyle', 'comet', 'comet3',
        +            'comma', 'common_size', 'commutation_matrix', 'compan',
        +            'compare_versions', 'compass', 'computer', 'cond', 'condest',
        +            'contour', 'contour3', 'contourc', 'contourf', 'contrast', 'conv',
        +            'conv2', 'convhull', 'convhulln', 'cool', 'copper', 'copyfile',
        +            'cor_test', 'corr', 'cosd', 'cot', 'cotd', 'coth', 'cov',
        +            'cplxpair', 'cross', 'csc', 'cscd', 'csch', 'cstrcat',
        +            'csvread', 'csvwrite', 'ctime', 'cumtrapz', 'curl', 'cylinder',
        +            'daspect', 'daspk', 'dasrt', 'dassl', 'date', 'datenum', 'datestr',
        +            'datetick', 'datevec', 'dblquad', 'deal', 'deblank', 'debug',
        +            'dec2base', 'dec2bin', 'dec2hex', 'deconv', 'del2', 'delaunay',
        +            'delaunay3', 'delaunayn', 'delete', 'demo', 'det', 'detrend',
        +            'diffpara', 'diffuse', 'dir', 'discrete_cdf', 'discrete_inv',
        +            'discrete_pdf', 'discrete_rnd', 'display', 'divergence',
        +            'dlmread', 'dlmwrite', 'dmperm', 'doc', 'dos', 'dot', 'dsearch',
        +            'dsearchn', 'dump_prefs', 'duplication_matrix', 'durbinlevinson',
        +            'edit', 'eig', 'eigs', 'ellipsoid', 'empirical_cdf', 'empirical_inv',
        +            'empirical_pdf', 'empirical_rnd', 'eomday', 'errorbar',
        +            'etime', 'etreeplot', 'example', 'expcdf', 'expinv', 'expm', 'exppdf',
        +            'exprnd', 'ezcontour', 'ezcontourf', 'ezmesh', 'ezmeshc', 'ezplot',
        +            'ezplot3', 'ezpolar', 'ezsurf', 'ezsurfc', 'f_test_regression',
        +            'fact', 'factor', 'factorial', 'fail', 'fcdf', 'feather', 'fft',
        +            'fft2', 'fftconv', 'fftfilt', 'fftn', 'fftshift', 'fftw', 'figure',
        +            'fileattrib', 'fileparts', 'fileread', 'fill', 'filter', 'filter2',
        +            'find', 'findall', 'findobj', 'findstr', 'finv', 'flag', 'flipdim',
        +            'fliplr', 'flipud', 'fminbnd', 'fminunc', 'fpdf', 'fplot',
        +            'fractdiff', 'freqz', 'freqz_plot', 'frnd', 'fsolve',
        +            'fullfile', 'fzero', 'gamcdf', 'gaminv', 'gammainc',
        +            'gampdf', 'gamrnd', 'gca', 'gcbf', 'gcbo', 'gcd', 'gcf',
        +            'gen_doc_cache', 'genvarname', 'geocdf', 'geoinv', 'geopdf', 'geornd',
        +            'get_first_help_sentence', 'getappdata', 'getfield', 'getgrent',
        +            'getpref', 'getpwent', 'getrusage', 'ginput', 'givens', 'glpk',
        +            'gls', 'gmap40', 'gmres', 'gnuplot_binary', 'gplot',
        +            'gradient', 'graphics_toolkit', 'gray', 'gray2ind', 'grid',
        +            'griddata', 'griddata3', 'griddatan', 'gtext', 'guidata',
        +            'guihandles', 'gunzip', 'gzip', 'hadamard', 'hamming', 'hankel',
        +            'hanning', 'help', 'hess', 'hex2dec', 'hex2num', 'hggroup', 'hidden',
        +            'hilb', 'hist', 'histc', 'hold', 'hot', 'hotelling_test',
        +            'hotelling_test_2', 'housh', 'hsv', 'hsv2rgb', 'hurst', 'hygecdf',
        +            'hygeinv', 'hygepdf', 'hygernd', 'idivide', 'ifftshift', 'image',
        +            'imagesc', 'imfinfo', 'imread', 'imshow', 'imwrite', 'ind2gray',
        +            'ind2rgb', 'index', 'info', 'inpolygon', 'inputname', 'int2str',
        +            'interp1', 'interp1q', 'interp2', 'interp3', 'interpft', 'interpn',
        +            'intersect', 'inv', 'invhilb', 'iqr',
        +            'is_leap_year', 'is_valid_file_id',
        +            'isa', 'isappdata', 'iscolumn', 'isdefinite', 'isdeployed', 'isdir',
        +            'isequal', 'isequalwithequalnans', 'isfigure', 'ishermitian',
        +            'ishghandle', 'ishold', 'isletter', 'ismac', 'ismember', 'isocolors',
        +            'isonormals', 'isosurface', 'ispc', 'ispref', 'isprime', 'isprop',
        +            'isrow', 'isscalar', 'issquare', 'isstrprop', 'issymmetric',
        +            'isunix', 'isvector', 'jet', 'kendall', 'kolmogorov_smirnov_cdf',
        +            'kolmogorov_smirnov_test', 'kolmogorov_smirnov_test_2', 'kron',
        +            'kruskal_wallis_test', 'krylov', 'kurtosis', 'laplace_cdf',
        +            'laplace_inv', 'laplace_pdf', 'laplace_rnd', 'lcm', 'legend',
        +            'legendre', 'license', 'lin2mu', 'line', 'linkprop', 'list_primes',
        +            'loadaudio', 'loadobj', 'logistic_cdf', 'logistic_inv',
        +            'logistic_pdf', 'logistic_regression', 'logistic_rnd', 'logit',
        +            'loglog', 'loglogerr', 'logm', 'logncdf', 'logninv', 'lognpdf',
        +            'lognrnd', 'logspace', 'lookfor', 'lookup', 'ls', 'ls_command',
        +            'lsode', 'lsqnonneg', 'lu', 'luinc', 'magic', 'mahalanobis', 'manova',
        +            'mat2str', 'matlabroot', 'matrix_type', 'max', 'mcnemar_test',
        +            'md5sum', 'mean', 'meansq', 'median', 'menu', 'mesh', 'meshc',
        +            'meshgrid', 'meshz', 'mex', 'mexext', 'mgorth', 'mkoctfile', 'mkpp',
        +            'mode', 'moment', 'movefile', 'mpoles', 'mu2lin', 'namelengthmax',
        +            'nargchk', 'narginchk', 'nargoutchk', 'nbincdf', 'nbininv', 'nbinpdf',
        +            'nbinrnd', 'nchoosek', 'ndgrid', 'newplot', 'news', 'nextpow2',
        +            'nonzeros', 'normcdf', 'normest', 'norminv', 'normpdf', 'normrnd',
        +            'now', 'nproc', 'nthargout', 'nthroot', 'ntsc2rgb', 'null', 'num2str',
        +            'ocean', 'ols', 'onenormest', 'optimget', 'optimset', 'orderfields',
        +            'orient', 'orth', 'pack', 'paren', 'pareto', 'parseparams', 'pascal',
        +            'patch', 'pathdef', 'pbaspect', 'pcg', 'pchip', 'pcolor', 'pcr',
        +            'peaks', 'periodogram', 'perl', 'perms', 'pie', 'pie3',
        +            'pink', 'pinv', 'pkg', 'planerot', 'playaudio', 'plot', 'plot3',
        +            'plotmatrix', 'plotyy', 'poisscdf', 'poissinv', 'poisspdf',
        +            'poissrnd', 'pol2cart', 'polar', 'poly', 'polyaffine', 'polyarea',
        +            'polyder', 'polyfit', 'polygcd', 'polyint', 'polyout',
        +            'polyreduce', 'polyval', 'polyvalm', 'postpad', 'pow2', 'powerset',
        +            'ppder', 'ppint', 'ppjumps', 'ppplot', 'ppval', 'pqpnonneg',
        +            'prctile', 'prepad', 'primes', 'print', 'printAllBuiltins',
        +            'print_usage', 'prism', 'probit', 'profexplore', 'profile',
        +            'profshow', 'prop_test_2', 'python', 'qp', 'qqplot', 'qr', 'quad',
        +            'quadcc', 'quadgk', 'quadl', 'quadv', 'quantile', 'quiver', 'quiver3',
        +            'qz', 'qzhess', 'rainbow', 'rand', 'randi', 'range', 'rank', 'ranks',
        +            'rat', 'rcond', 'reallog', 'realpow', 'realsqrt', 'record',
        +            'rectangle', 'rectint', 'recycle', 'refresh', 'refreshdata', 'regexp',
        +            'regexptranslate', 'repmat', 'residue', 'rgb2hsv',
        +            'rgb2ind', 'rgb2ntsc', 'ribbon', 'rindex', 'rmappdata', 'rmpref',
        +            'roots', 'rose', 'rosser', 'rot90', 'rotdim', 'rref', 'run',
        +            'run_count', 'run_test', 'rundemos', 'runlength', 'runtests',
        +            'saveas', 'saveaudio', 'saveobj', 'savepath', 'scatter',
        +            'scatter3', 'schur', 'sec', 'secd', 'sech', 'semicolon', 'semilogx',
        +            'semilogxerr', 'semilogy', 'semilogyerr', 'setappdata', 'setaudio',
        +            'setdiff', 'setfield', 'setpref', 'setxor', 'shading',
        +            'shg', 'shift', 'shiftdim', 'sign_test', 'sinc', 'sind',
        +            'sinetone', 'sinewave', 'skewness', 'slice', 'sombrero', 'sortrows',
        +            'spaugment', 'spconvert', 'spdiags', 'spearman', 'spectral_adf',
        +            'spectral_xdf', 'specular', 'speed', 'spencer', 'speye', 'spfun',
        +            'sph2cart', 'sphere', 'spinmap', 'spline', 'spones', 'spparms',
        +            'sprand', 'sprandn', 'sprandsym', 'spring', 'spstats', 'spy', 'sqp',
        +            'sqrtm', 'stairs', 'statistics', 'std', 'stdnormal_cdf',
        +            'stdnormal_inv', 'stdnormal_pdf', 'stdnormal_rnd', 'stem', 'stem3',
        +            'stft', 'str2double', 'str2num', 'strcat', 'strchr',
        +            'strfind', 'strjust', 'strmatch', 'strread', 'strsplit', 'strtok',
        +            'strtrim', 'strtrunc', 'structfun', 'sub2ind',
        +            'subplot', 'subsindex', 'subspace', 'substr', 'substruct', 'summer',
        +            'surf', 'surface', 'surfc', 'surfl', 'surfnorm', 'svd', 'svds',
        +            'swapbytes', 'syl', 'symbfact', 'symrcm',
        +            'symvar', 'synthesis', 't_test', 't_test_2', 't_test_regression',
        +            'table', 'tand', 'tar', 'tcdf', 'tempdir', 'tempname', 'test', 'text',
        +            'textread', 'textscan', 'time', 'tinv', 'title', 'toeplitz', 'tpdf',
        +            'trace', 'trapz', 'treelayout', 'treeplot', 'tril', 'trimesh',
        +            'triplequad', 'triplot', 'trisurf', 'trnd', 'tsearch', 'tsearchn',
        +            'type', 'typecast', 'u_test', 'uicontextmenu', 'uicontrol',
        +            'uigetdir', 'uigetfile', 'uimenu', 'uipanel', 'uipushtool',
        +            'uiputfile', 'uiresume', 'uitoggletool', 'uitoolbar', 'uiwait',
        +            'unidcdf', 'unidinv', 'unidpdf', 'unidrnd', 'unifcdf', 'unifinv',
        +            'unifpdf', 'unifrnd', 'unimplemented', 'union', 'unique', 'unix',
        +            'unmkpp', 'unpack', 'untabify', 'untar', 'unwrap', 'unzip',
        +            'urlwrite', 'usejava', 'validatestring', 'vander', 'var',
        +            'var_test', 'vech', 'ver', 'version', 'view', 'voronoi', 'voronoin',
        +            'waitbar', 'waitforbuttonpress', 'warning_ids', 'wavread', 'wavwrite',
        +            'wblcdf', 'wblinv', 'wblpdf', 'wblrnd', 'weekday',
        +            'welch_test', 'what', 'which',
        +            'white', 'whitebg', 'wienrnd', 'wilcoxon_test', 'wilkinson', 'winter',
        +            'xlabel', 'xlim', 'xor', 'ylabel', 'ylim', 'yulewalker', 'z_test',
        +            'z_test_2', 'zip', 'zlabel', 'zlim', 'zscore', 'airy', 'arrayfun',
        +            'besselh', 'besseli', 'besselk', 'bessely', 'bitpack', 'bitunpack',
        +            'blkmm', 'cellindexmat', 'cellslices', 'chol2inv', 'choldelete',
        +            'cholinsert', 'cholinv', 'cholshift', 'cholupdate', 'convn',
        +            'csymamd', 'cummax', 'cummin', 'daspk_options', 'dasrt_options',
        +            'dassl_options', 'endgrent', 'endpwent', 'etree', 'getgrgid',
        +            'getgrnam', 'getpwnam', 'getpwuid', 'gmtime', 'gui_mode', 'ifft',
        +            'ifft2', 'ifftn', 'ind2sub', 'inverse', 'localtime', 'lsode_options',
        +            'luupdate', 'mat2cell', 'min', 'mktime', 'mouse_wheel_zoom',
        +            'num2cell', 'num2hex', 'qrdelete', 'qrinsert', 'qrshift', 'qrupdate',
        +            'quad_options', 'rande', 'randg', 'randn', 'randp', 'randperm',
        +            'regexpi', 'regexprep', 'rsf2csf', 'setgrent', 'setpwent', 'sprank',
        +            'strftime', 'strptime', 'strrep', 'svd_driver', 'symamd', 'triu',
        +            'urlread'
        +            ),
        +        // Private builtin
        +        7 => array(
        +            '__accumarray_max__', '__accumarray_min__', '__accumarray_sum__',
        +            '__accumdim_sum__', '__builtins__', '__calc_dimensions__',
        +            '__current_scope__', '__display_tokens__', '__dump_symtab_info__',
        +            '__end__', '__get__', '__go_axes__', '__go_axes_init__',
        +            '__go_delete__', '__go_execute_callback__', '__go_figure__',
        +            '__go_figure_handles__', '__go_handles__', '__go_hggroup__',
        +            '__go_image__', '__go_line__', '__go_patch__', '__go_surface__',
        +            '__go_text__', '__go_uicontextmenu__', '__go_uicontrol__',
        +            '__go_uimenu__', '__go_uipanel__', '__go_uipushtool__',
        +            '__go_uitoggletool__', '__go_uitoolbar__', '__gud_mode__',
        +            '__image_pixel_size__', '__is_handle_visible__', '__isa_parent__',
        +            '__keywords__', '__lexer_debug_flag__', '__list_functions__',
        +            '__operators__', '__parent_classes__', '__parser_debug_flag__',
        +            '__pathorig__', '__profiler_data__', '__profiler_enable__',
        +            '__profiler_reset__', '__request_drawnow__', '__sort_rows_idx__',
        +            '__token_count__', '__varval__', '__version_info__', '__which__'
        +        ),
        +        // Private Octave functions
        +        8 => array(
        +            '__all_opts__', '__contourc__', '__delaunayn__', '__dispatch__',
        +            '__dsearchn__', '__finish__', '__fltk_uigetfile__',
        +            '__glpk__', '__gnuplot_drawnow__', '__init_fltk__',
        +            '__init_gnuplot__', '__lin_interpn__', '__magick_read__',
        +            '__makeinfo__', '__pchip_deriv__', '__plt_get_axis_arg__', '__qp__',
        +            '__voronoi__', '__fltk_maxtime__', '__fltk_redraw__', '__ftp__',
        +            '__ftp_ascii__', '__ftp_binary__', '__ftp_close__', '__ftp_cwd__',
        +            '__ftp_delete__', '__ftp_dir__', '__ftp_mget__', '__ftp_mkdir__',
        +            '__ftp_mode__', '__ftp_mput__', '__ftp_pwd__', '__ftp_rename__',
        +            '__ftp_rmdir__', '__magick_finfo__', '__magick_format_list__',
        +            '__magick_write__'
        +            ),
        +        // Builtin Global Variables
        +        9 => array(
        +            'EDITOR', 'EXEC_PATH', 'F_DUPFD', 'F_GETFD', 'F_GETFL', 'F_SETFD',
        +            'F_SETFL', 'IMAGE_PATH', 'OCTAVE_HOME',
        +            'OCTAVE_VERSION', 'O_APPEND', 'O_ASYNC', 'O_CREAT', 'O_EXCL',
        +            'O_NONBLOCK', 'O_RDONLY', 'O_RDWR', 'O_SYNC', 'O_TRUNC', 'O_WRONLY',
        +            'PAGER', 'PAGER_FLAGS', 'PS1', 'PS2', 'PS4', 'SEEK_CUR', 'SEEK_END',
        +            'SEEK_SET', 'SIG', 'S_ISBLK', 'S_ISCHR', 'S_ISDIR', 'S_ISFIFO',
        +            'S_ISLNK', 'S_ISREG', 'S_ISSOCK', 'WCONTINUE', 'WCOREDUMP',
        +            'WEXITSTATUS', 'WIFCONTINUED', 'WIFEXITED', 'WIFSIGNALED',
        +            'WIFSTOPPED', 'WNOHANG', 'WSTOPSIG', 'WTERMSIG', 'WUNTRACED'
        +            ),
        +        // Constant functions
        +        10 => array (
        +            'e', 'eps', 'inf', 'Inf', 'nan', 'NaN', 'NA', 'pi', 'i', 'I', 'j',
        +            'J', 'true', 'false'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        // Comparison & logical
        +        0 => array(
        +            '!', '!=', '&', '&&','|', '||', '~', '~=',
        +            '<', '<=', '==', '>', '>='
        +            ),
        +        // Aritmethical
        +        1 => array(
        +            '*', '**', '+', '++', '-', '--', '/', "\\","'"
        +            ),
        +        // Elementwise arithmetical
        +        2 => array(
        +            '.*', '.**','./', '.^', '^',".\\",".'"
        +            ),
        +        // Arithmetical & assignation
        +        3 => array(
        +            '*=','+=','-=','/=','\=','**=','^=',
        +            '.*=','.+=','.-=','./=','.\=','.**=','.^=','='
        +            ),
        +        // Indexer
        +        4 => array(
        +            ':'
        +            ),
        +        // Delimiters
        +        5 => array(
        +            ',', '...', ';'
        +            ),
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => true,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true,
        +        8 => true,
        +        9 => true,
        +        10 => true,
        +        ),
        +    'URLS' => array(
        +        1 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
        +        6 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
        +        7 => '',
        +        8 => '',
        +        9 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
        +        10 => 'http://octave.sourceforge.net/octave/function/{FNAME}.html',
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        ),
        +    'REGEXPS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(),
        +    'STYLES' => array(
        +        'COMMENTS' => array(
        +            1 => 'color: #0000FF; font-style: italic;', // single quote strings
        +            2 => 'color: #0000FF; font-style: italic;', // double quote strings
        +            3 => 'color: #FF00FF; font-style: italic;', // single quote strings
        +            4 => 'color: #FF00FF; font-style: italic;', // double quote strings
        +            5 => 'color: #0000FF; font-style: italic;', // block comments
        +            6 => 'color: #996600; font-weight:bold;',   // packaging system
        +            7 => 'color: #006600; font-weight:bold;',   // function handles
        +            'MULTI' => 'color: #0000FF; font-style: italic;',
        +            ),
        +        'KEYWORDS' => array(
        +            1 => 'color: #2E8B57; font-weight:bold;',   // Data types
        +            2 => 'color: #2E8B57;',                     // Storage type
        +            3 => 'color: #0000FF; font-weight:bold;',   // Internal variable
        +            4 => 'color: #990000; font-weight:bold;',   // Reserved words
        +            5 => 'color: #008A8C; font-weight:bold;',   // Built-in
        +            6 => 'color: #008A8C;',                     // Octave functions
        +            9 => 'color: #000000; font-weight:bold;',   // Builtin Global Variables
        +            10 => 'color: #008A8C; font-weight:bold;',  // Constant functions
        +            ),
        +        'ESCAPE_CHAR' => array(),
        +        'BRACKETS' => array(
        +            0 => 'color: #080;',
        +            ),
        +        'STRINGS' => array(
        +            // strings were specified on the COMMENT_REGEXP section
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;',
        +            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
        +            ),
        +        'METHODS' => array(),
        +        'SYMBOLS' => array(
        +            0 => 'color: #FF9696; font-weight:bold;',   // Comparison & logical
        +            1 => 'color: #CC0000; font-weight:bold;',   // Aritmethical
        +            2 => 'color: #993333; font-weight:bold;',   // Elementwise arithmetical
        +            3 => 'color: #FF0000; font-weight:bold;',   // Arithmetical & assignation
        +            4 => 'color: #33F;',                        // Indexer
        +            5 => 'color: #33F;',                        // Delimiters
        +            ),
        +        'REGEXPS' => array(),
        +        'SCRIPT' => array(),
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/oobas.php b/Sources/geshi/oobas.php
        new file mode 100644
        index 0000000..ff75af6
        --- /dev/null
        +++ b/Sources/geshi/oobas.php
        @@ -0,0 +1,135 @@
        + 'OpenOffice.org Basic',
        +    'COMMENT_SINGLE' => array(1 => "'"),
        +    'COMMENT_MULTI' => array(),
        +    //Single-Line comments using REM keyword
        +    'COMMENT_REGEXP' => array(2 => '/\bREM.*?$/i'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'dim','private','public','global','as','if','redim','true','set','byval',
        +            'false','bool','double','integer','long','object','single','variant',
        +            'msgbox','print','inputbox','green','blue','red','qbcolor',
        +            'rgb','open','close','reset','freefile','get','input','line',
        +            'put','write','loc','seek','eof','lof','chdir','chdrive',
        +            'curdir','dir','fileattr','filecopy','filedatetime','fileexists',
        +            'filelen','getattr','kill','mkdir','name','rmdir','setattr',
        +            'dateserial','datevalue','day','month','weekday','year','cdatetoiso',
        +            'cdatefromiso','hour','minute','second','timeserial','timevalue',
        +            'date','now','time','timer','erl','err','error','on','goto','resume',
        +            'and','eqv','imp','not','or','xor','mod','atn','cos','sin','tan','log',
        +            'exp','rnd','randomize','sqr','fix','int','abs','sgn','hex','oct',
        +            'it','then','else','select','case','iif','do','loop','for','next','to',
        +            'while','wend','gosub','return','call','choose','declare',
        +            'end','exit','freelibrary','function','rem','stop','sub','switch','with',
        +            'cbool','cdate','cdbl','cint','clng','const','csng','cstr','defbool',
        +            'defdate','defdbl','defint','deflng','asc','chr','str','val','cbyte',
        +            'space','string','format','lcase','left','lset','ltrim','mid','right',
        +            'rset','rtrim','trim','ucase','split','join','converttourl','convertfromurl',
        +            'instr','len','strcomp','beep','shell','wait','getsystemticks','environ',
        +            'getsolarversion','getguitype','twipsperpixelx','twipsperpixely',
        +            'createunostruct','createunoservice','getprocessservicemanager',
        +            'createunodialog','createunolistener','createunovalue','thiscomponent',
        +            'globalscope'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '='
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080;',
        +            2 => 'color: #808080;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/oorexx.php b/Sources/geshi/oorexx.php
        new file mode 100644
        index 0000000..62c6cc4
        --- /dev/null
        +++ b/Sources/geshi/oorexx.php
        @@ -0,0 +1,171 @@
        + 'ooRexx',
        +    'COMMENT_SINGLE' => array(1 => '--'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'address', 'arg', 'attribute', 'call', 'constant', 'do',
        +            'drop', 'exit', 'if',
        +            'interpret', 'iterate', 'leave', 'loop', 'nop', 'numeric',
        +            'parse', 'procedure', 'pull', 'push', 'queue',
        +            'raise', 'reply', 'return', 'say', 'select', 'signal',
        +            'use'
        +            ),
        +        2 => array(
        +            'abstract', 'any', 'arguments', 'array', 'by',
        +            'continue', 'digits', 'engineering', 'error',
        +            'expose', 'external', 'failure', 'for', 'forever',
        +            'forward', 'get', 'guard', 'guarded', 'halt',
        +            'inherit', 'library', 'lostdigits', 'message',
        +            'metaclass', 'mixinclass', 'name', 'nomethod', 'nostring',
        +            'notready', 'novalue', 'off', 'on', 'options', 'over',
        +            'private', 'protected', 'public', 'scientific', 'set',
        +            'source', 'subclass', 'syntax', 'to', 'unguarded',
        +            'unprotected', 'until', 'user',
        +            'version', 'while', 'with'
        +            ),
        +        3 => array(
        +            'else', 'end', 'otherwise', 'then', 'when'
        +            ),
        +        4 => array(
        +            'rc', 'result', 'self', 'sigl', 'super'
        +            ),
        +        5 => array(
        +            '::attribute', '::class', '::constant', '::method',
        +            '::optins', '::requires', '::routine'
        +            ),
        +        6 => array(
        +            'abbrev', 'abs', 'beep', 'bitand', 'bitor',
        +            'bitxor', 'b2x', 'center', 'centre', 'changestr', 'charin',
        +            'charout', 'chars', 'compare', 'condition', 'copies',
        +            'countstr', 'c2d', 'c2x', 'datatype', 'date', 'delstr',
        +            'delword', 'directory', 'd2c', 'd2x', 'endlocal',
        +            'errortext', 'filespec', 'form', 'format', 'fuzz', 'insert',
        +            'lastpos', 'left', 'length', 'linein', 'lineout', 'lines',
        +            'lower', 'max', 'min', 'overlay', 'pos', 'qualify', 'queued',
        +            'random', 'reverse', 'right', 'rxfuncadd', 'rxfuncdrop',
        +            'rxfuncquery', 'rxqueue', 'setlocal', 'sign', 'sourceline',
        +            'space', 'stream', 'strip', 'substr', 'subword', 'symbol',
        +            'time', 'trace', 'translate', 'trunc', 'upper', 'userid',
        +            'value', 'var', 'verify', 'word', 'wordindex', 'wordlength',
        +            'wordpos', 'words', 'xrange', 'x2b', 'x2c', 'x2d'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '<', '>', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':',
        +        '<', '>'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => true,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        6 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #ff0000; font-weight: bold;',
        +            3 => 'color: #00ff00; font-weight: bold;',
        +            4 => 'color: #0000ff; font-weight: bold;',
        +            5 => 'color: #880088; font-weight: bold;',
        +            6 => 'color: #888800; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666;',
        +            'MULTI' => 'color: #808080;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #202020;',
        +            2 => 'color: #202020;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        diff --git a/Sources/geshi/oracle11.php b/Sources/geshi/oracle11.php
        new file mode 100644
        index 0000000..16259e6
        --- /dev/null
        +++ b/Sources/geshi/oracle11.php
        @@ -0,0 +1,614 @@
        + 'Oracle 11 SQL',
        +    'COMMENT_SINGLE' => array(1 => '--'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
        +    'QUOTEMARKS' => array("'", '"', '`'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +//Put your package names here - e.g. select distinct ''''|| lower(name) || ''',' from user_source;
        +//        6 => array(
        +//            ),
        +
        +//Put your table names here - e.g. select distinct ''''|| lower(table_name) || ''',' from user_tables;
        +//        5 => array(
        +//            ),
        +
        +//Put your view names here - e.g. select distinct ''''|| lower(view_name) || ''',' from user_views;
        +//        4 => array(
        +//            ),
        +
        +//Put your table field names here - e.g. select distinct ''''|| lower(column_name) || ''',' from user_tab_columns;
        +//        3 => array(
        +//            ),
        +
        +        //Put ORACLE reserved keywords here (11i).  I like mine uppercase.
        +        1 => array(
        +            'ABS',
        +            'ACCESS',
        +            'ACOS',
        +            'ADD',
        +            'ADD_MONTHS',
        +            'ALL',
        +            'ALTER',
        +            'ANALYZE',
        +            'AND',
        +            'ANY',
        +            'APPENDCHILDXML',
        +            'ARRAY',
        +            'AS',
        +            'ASC',
        +            'ASCII',
        +            'ASCIISTR',
        +            'ASIN',
        +            'ASSOCIATE',
        +            'AT',
        +            'ATAN',
        +            'ATAN2',
        +            'AUDIT',
        +            'AUTHID',
        +            'AVG',
        +            'BEGIN',
        +            'BETWEEN',
        +            'BFILENAME',
        +            'BIN_TO_NUM',
        +            'BINARY_INTEGER',
        +            'BITAND',
        +            'BODY',
        +            'BOOLEAN',
        +            'BULK',
        +            'BY',
        +            'CALL',
        +            'CARDINALITY',
        +            'CASCADE',
        +            'CASE',
        +            'CAST',
        +            'CEIL',
        +            'CHAR',
        +            'CHAR_BASE',
        +            'CHARTOROWID',
        +            'CHECK',
        +            'CHR',
        +            'CLOSE',
        +            'CLUSTER',
        +            'CLUSTER_ID',
        +            'CLUSTER_PROBABILITY',
        +            'CLUSTER_SET',
        +            'COALESCE',
        +            'COLLECT',
        +            'COLUMN',
        +            'COMMENT',
        +            'COMMIT',
        +            'COMPOSE',
        +            'COMPRESS',
        +            'CONCAT',
        +            'CONNECT',
        +            'CONSTANT',
        +            'CONSTRAINT',
        +            'CONSTRAINTS',
        +            'CONTEXT',
        +            'CONTROLFILE',
        +            'CONVERT',
        +            'CORR',
        +            'CORR_K',
        +            'CORR_S',
        +            'COS',
        +            'COSH',
        +            'COST',
        +            'COUNT',
        +            'COVAR_POP',
        +            'COVAR_SAMP',
        +            'CREATE',
        +            'CUBE_TABLE',
        +            'CUME_DIST',
        +            'CURRENT',
        +            'CURRENT_DATE',
        +            'CURRENT_TIMESTAMP',
        +            'CURRVAL',
        +            'CURSOR',
        +            'CV',
        +            'DATABASE',
        +            'DATAOBJ_TO_PARTITION',
        +            'DATE',
        +            'DAY',
        +            'DBTIMEZONE',
        +            'DECIMAL',
        +            'DECLARE',
        +            'DECODE',
        +            'DECOMPOSE',
        +            'DEFAULT',
        +            'DELETE',
        +            'DELETEXML',
        +            'DENSE_RANK',
        +            'DEPTH',
        +            'DEREF',
        +            'DESC',
        +            'DIMENSION',
        +            'DIRECTORY',
        +            'DISASSOCIATE',
        +            'DISTINCT',
        +            'DO',
        +            'DROP',
        +            'DUMP',
        +            'ELSE',
        +            'ELSIF',
        +            'EMPTY_BLOB',
        +            'EMPTY_CLOB',
        +            'END',
        +            'EXCEPTION',
        +            'EXCLUSIVE',
        +            'EXEC',
        +            'EXECUTE',
        +            'EXISTS',
        +            'EXISTSNODE',
        +            'EXIT',
        +            'EXP',
        +            'EXPLAIN',
        +            'EXTENDS',
        +            'EXTRACT',
        +            'EXTRACTVALUE',
        +            'FALSE',
        +            'FEATURE_ID',
        +            'FEATURE_SET',
        +            'FEATURE_VALUE',
        +            'FETCH',
        +            'FILE',
        +            'FIRST',
        +            'FIRST_VALUE',
        +            'FLOAT',
        +            'FLOOR',
        +            'FOR',
        +            'FORALL',
        +            'FROM',
        +            'FROM_TZ',
        +            'FUNCTION',
        +            'GOTO',
        +            'GRANT',
        +            'GREATEST',
        +            'GROUP',
        +            'GROUP_ID',
        +            'GROUPING',
        +            'GROUPING_ID',
        +            'HAVING',
        +            'HEAP',
        +            'HEXTORAW',
        +            'HOUR',
        +            'IDENTIFIED',
        +            'IF',
        +            'IMMEDIATE',
        +            'IN',
        +            'INCREMENT',
        +            'INDEX',
        +            'INDEXTYPE',
        +            'INDICATOR',
        +            'INITCAP',
        +            'INITIAL',
        +            'INSERT',
        +            'INSERTCHILDXML',
        +            'INSERTXMLBEFORE',
        +            'INSTR',
        +            'INSTRB',
        +            'INTEGER',
        +            'INTERFACE',
        +            'INTERSECT',
        +            'INTERVAL',
        +            'INTO',
        +            'IS',
        +            'ISOLATION',
        +            'ITERATION_NUMBER',
        +            'JAVA',
        +            'KEY',
        +            'LAG',
        +            'LAST',
        +            'LAST_DAY',
        +            'LAST_VALUE',
        +            'LEAD',
        +            'LEAST',
        +            'LENGTH',
        +            'LENGTHB',
        +            'LEVEL',
        +            'LIBRARY',
        +            'LIKE',
        +            'LIMITED',
        +            'LINK',
        +            'LN',
        +            'LNNVL',
        +            'LOCALTIMESTAMP',
        +            'LOCK',
        +            'LOG',
        +            'LONG',
        +            'LOOP',
        +            'LOWER',
        +            'LPAD',
        +            'LTRIM',
        +            'MAKE_REF',
        +            'MATERIALIZED',
        +            'MAX',
        +            'MAXEXTENTS',
        +            'MEDIAN',
        +            'MIN',
        +            'MINUS',
        +            'MINUTE',
        +            'MLSLABEL',
        +            'MOD',
        +            'MODE',
        +            'MODIFY',
        +            'MONTH',
        +            'MONTHS_BETWEEN',
        +            'NANVL',
        +            'NATURAL',
        +            'NATURALN',
        +            'NCHR',
        +            'NEW',
        +            'NEW_TIME',
        +            'NEXT_DAY',
        +            'NEXTVAL',
        +            'NLS_CHARSET_DECL_LEN',
        +            'NLS_CHARSET_ID',
        +            'NLS_CHARSET_NAME',
        +            'NLS_INITCAP',
        +            'NLS_LOWER',
        +            'NLS_UPPER',
        +            'NLSSORT',
        +            'NOAUDIT',
        +            'NOCOMPRESS',
        +            'NOCOPY',
        +            'NOT',
        +            'NOWAIT',
        +            'NTILE',
        +            'NULL',
        +            'NULLIF',
        +            'NUMBER',
        +            'NUMBER_BASE',
        +            'NUMTODSINTERVAL',
        +            'NUMTOYMINTERVAL',
        +            'NVL',
        +            'NVL2',
        +            'OCIROWID',
        +            'OF',
        +            'OFFLINE',
        +            'ON',
        +            'ONLINE',
        +            'OPAQUE',
        +            'OPEN',
        +            'OPERATOR',
        +            'OPTION',
        +            'OR',
        +            'ORA_HASH',
        +            'ORDER',
        +            'ORGANIZATION',
        +            'OTHERS',
        +            'OUT',
        +            'OUTLINE',
        +            'PACKAGE',
        +            'PARTITION',
        +            'PATH',
        +            'PCTFREE',
        +            'PERCENT_RANK',
        +            'PERCENTILE_CONT',
        +            'PERCENTILE_DISC',
        +            'PLAN',
        +            'PLS_INTEGER',
        +            'POSITIVE',
        +            'POSITIVEN',
        +            'POWER',
        +            'POWERMULTISET',
        +            'POWERMULTISET_BY_CARDINALITY',
        +            'PRAGMA',
        +            'PREDICTION',
        +            'PREDICTION_BOUNDS',
        +            'PREDICTION_COST',
        +            'PREDICTION_DETAILS',
        +            'PREDICTION_PROBABILITY',
        +            'PREDICTION_SET',
        +            'PRESENTNNV',
        +            'PRESENTV',
        +            'PREVIOUS',
        +            'PRIMARY',
        +            'PRIOR',
        +            'PRIVATE',
        +            'PRIVILEGES',
        +            'PROCEDURE',
        +            'PROFILE',
        +            'PUBLIC',
        +            'RAISE',
        +            'RANGE',
        +            'RANK',
        +            'RATIO_TO_REPORT',
        +            'RAW',
        +            'RAWTOHEX',
        +            'RAWTONHEX',
        +            'REAL',
        +            'RECORD',
        +            'REF',
        +            'REFTOHEX',
        +            'REGEXP_COUNT',
        +            'REGEXP_INSTR',
        +            'REGEXP_REPLACE',
        +            'REGEXP_SUBSTR',
        +            'REGR_AVGX',
        +            'REGR_AVGY',
        +            'REGR_COUNT',
        +            'REGR_INTERCEPT',
        +            'REGR_R2',
        +            'REGR_SLOPE',
        +            'REGR_SXX',
        +            'REGR_SXY',
        +            'REGR_SYY',
        +            'RELEASE',
        +            'REMAINDER',
        +            'RENAME',
        +            'REPLACE',
        +            'RESOURCE',
        +            'RETURN',
        +            'RETURNING',
        +            'REVERSE',
        +            'REVOKE',
        +            'ROLE',
        +            'ROLLBACK',
        +            'ROUND',
        +            'ROW',
        +            'ROW_NUMBER',
        +            'ROWID',
        +            'ROWIDTOCHAR',
        +            'ROWIDTONCHAR',
        +            'ROWNUM',
        +            'ROWS',
        +            'ROWTYPE',
        +            'RPAD',
        +            'RTRIM',
        +            'SAVEPOINT',
        +            'SCHEMA',
        +            'SCN_TO_TIMESTAMP',
        +            'SECOND',
        +            'SEGMENT',
        +            'SELECT',
        +            'SEPERATE',
        +            'SEQUENCE',
        +            'SESSION',
        +            'SESSIONTIMEZONE',
        +            'SET',
        +            'SHARE',
        +            'SIGN',
        +            'SIN',
        +            'SINH',
        +            'SIZE',
        +            'SMALLINT',
        +            'SOUNDEX',
        +            'SPACE',
        +            'SQL',
        +            'SQLCODE',
        +            'SQLERRM',
        +            'SQRT',
        +            'START',
        +            'STATISTICS',
        +            'STATS_BINOMIAL_TEST',
        +            'STATS_CROSSTAB',
        +            'STATS_F_TEST',
        +            'STATS_KS_TEST',
        +            'STATS_MODE',
        +            'STATS_MW_TEST',
        +            'STATS_ONE_WAY_ANOVA',
        +            'STATS_T_TEST_INDEP',
        +            'STATS_T_TEST_INDEPU',
        +            'STATS_T_TEST_ONE',
        +            'STATS_T_TEST_PAIRED',
        +            'STATS_WSR_TEST',
        +            'STDDEV',
        +            'STDDEV_POP',
        +            'STDDEV_SAMP',
        +            'STOP',
        +            'SUBSTR',
        +            'SUBSTRB',
        +            'SUBTYPE',
        +            'SUCCESSFUL',
        +            'SUM',
        +            'SYNONYM',
        +            'SYS_CONNECT_BY_PATH',
        +            'SYS_CONTEXT',
        +            'SYS_DBURIGEN',
        +            'SYS_EXTRACT_UTC',
        +            'SYS_GUID',
        +            'SYS_TYPEID',
        +            'SYS_XMLAGG',
        +            'SYS_XMLGEN',
        +            'SYSDATE',
        +            'SYSTEM',
        +            'SYSTIMESTAMP',
        +            'TABLE',
        +            'TABLESPACE',
        +            'TAN',
        +            'TANH',
        +            'TEMPORARY',
        +            'THEN',
        +            'TIME',
        +            'TIMESTAMP',
        +            'TIMESTAMP_TO_SCN',
        +            'TIMEZONE_ABBR',
        +            'TIMEZONE_HOUR',
        +            'TIMEZONE_MINUTE',
        +            'TIMEZONE_REGION',
        +            'TIMING',
        +            'TO',
        +            'TO_BINARY_DOUBLE',
        +            'TO_BINARY_FLOAT',
        +            'TO_CHAR',
        +            'TO_CLOB',
        +            'TO_DATE',
        +            'TO_DSINTERVAL',
        +            'TO_LOB',
        +            'TO_MULTI_BYTE',
        +            'TO_NCHAR',
        +            'TO_NCLOB',
        +            'TO_NUMBER',
        +            'TO_SINGLE_BYTE',
        +            'TO_TIMESTAMP',
        +            'TO_TIMESTAMP_TZ',
        +            'TO_YMINTERVAL',
        +            'TRANSACTION',
        +            'TRANSLATE',
        +            'TREAT',
        +            'TRIGGER',
        +            'TRIM',
        +            'TRUE',
        +            'TRUNC',
        +            'TRUNCATE',
        +            'TYPE',
        +            'TZ_OFFSET',
        +            'UI',
        +            'UID',
        +            'UNION',
        +            'UNIQUE',
        +            'UNISTR',
        +            'UPDATE',
        +            'UPDATEXML',
        +            'UPPER',
        +            'USE',
        +            'USER',
        +            'USERENV',
        +            'USING',
        +            'VALIDATE',
        +            'VALUE',
        +            'VALUES',
        +            'VAR_POP',
        +            'VAR_SAMP',
        +            'VARCHAR',
        +            'VARCHAR2',
        +            'VARIANCE',
        +            'VIEW',
        +            'VSIZE',
        +            'WHEN',
        +            'WHENEVER',
        +            'WHERE',
        +            'WHILE',
        +            'WIDTH_BUCKET',
        +            'WITH',
        +            'WORK',
        +            'WRITE',
        +            'XMLAGG',
        +            'XMLCAST',
        +            'XMLCDATA',
        +            'XMLCOLATTVAL',
        +            'XMLCOMMENT',
        +            'XMLCONCAT',
        +            'XMLDIFF',
        +            'XMLELEMENT',
        +            'XMLEXISTS',
        +            'XMLFOREST',
        +            'XMLPARSE',
        +            'XMLPATCH',
        +            'XMLPI',
        +            'XMLQUERY',
        +            'XMLROOT',
        +            'XMLSEQUENCE',
        +            'XMLSERIALIZE',
        +            'XMLTABLE',
        +            'XMLTRANSFORM',
        +            'YEAR',
        +            'ZONE'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '=', '<', '>', '|', '+', '-', '*', '/', ','
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +//        3 => false,
        +//        4 => false,
        +//        5 => false,
        +//        6 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #993333; font-weight: bold; text-transform: uppercase;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #ff0000;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +//        3 => '',
        +//        4 => '',
        +//        5 => '',
        +//        6 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/oracle8.php b/Sources/geshi/oracle8.php
        new file mode 100644
        index 0000000..145bda4
        --- /dev/null
        +++ b/Sources/geshi/oracle8.php
        @@ -0,0 +1,496 @@
        + 'Oracle 8 SQL',
        +    'COMMENT_SINGLE' => array(1 => '--'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
        +    'QUOTEMARKS' => array("'", '"', '`'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +//Put your package names here - e.g. select distinct ''''|| lower(name) || ''',' from user_source;
        +//        6 => array(
        +//            ),
        +
        +//Put your table names here - e.g. select distinct ''''|| lower(table_name) || ''',' from user_tables;
        +//        5 => array(
        +//            ),
        +
        +//Put your view names here - e.g. select distinct ''''|| lower(view_name) || ''',' from user_views;
        +//        4 => array(
        +//            ),
        +
        +//Put your table field names here - e.g. select distinct ''''|| lower(column_name) || ''',' from user_tab_columns;
        +//        3 => array(
        +//            ),
        +
        +//Put ORACLE reserved keywords here (8.1.7).  I like mine uppercase.
        +        1 => array(
        +            'ABS',
        +            'ACCESS',
        +            'ACOS',
        +            'ADD',
        +            'ADD_MONTHS',
        +            'ALL',
        +            'ALTER',
        +            'ANALYZE',
        +            'AND',
        +            'ANY',
        +            'ARRAY',
        +            'AS',
        +            'ASC',
        +            'ASCII',
        +            'ASIN',
        +            'ASSOCIATE',
        +            'AT',
        +            'ATAN',
        +            'ATAN2',
        +            'AUDIT',
        +            'AUTHID',
        +            'AVG',
        +            'BEGIN',
        +            'BETWEEN',
        +            'BFILENAME',
        +            'BINARY_INTEGER',
        +            'BITAND',
        +            'BODY',
        +            'BOOLEAN',
        +            'BULK',
        +            'BY',
        +            'CALL',
        +            'CASCADE',
        +            'CASE',
        +            'CEIL',
        +            'CHAR',
        +            'CHAR_BASE',
        +            'CHARTOROWID',
        +            'CHECK',
        +            'CHR',
        +            'CLOSE',
        +            'CLUSTER',
        +            'COALESCE',
        +            'COLLECT',
        +            'COLUMN',
        +            'COMMENT',
        +            'COMMIT',
        +            'COMPRESS',
        +            'CONCAT',
        +            'CONNECT',
        +            'CONSTANT',
        +            'CONSTRAINT',
        +            'CONSTRAINTS',
        +            'CONTEXT',
        +            'CONTROLFILE',
        +            'CONVERT',
        +            'CORR',
        +            'COS',
        +            'COSH',
        +            'COST',
        +            'COUNT',
        +            'COVAR_POP',
        +            'COVAR_SAMP',
        +            'CREATE',
        +            'CUME_DIST',
        +            'CURRENT',
        +            'CURRVAL',
        +            'CURSOR',
        +            'DATABASE',
        +            'DATE',
        +            'DAY',
        +            'DECIMAL',
        +            'DECLARE',
        +            'DECODE',
        +            'DEFAULT',
        +            'DELETE',
        +            'DENSE_RANK',
        +            'DEREF',
        +            'DESC',
        +            'DIMENSION',
        +            'DIRECTORY',
        +            'DISASSOCIATE',
        +            'DISTINCT',
        +            'DO',
        +            'DROP',
        +            'DUMP',
        +            'ELSE',
        +            'ELSIF',
        +            'EMPTY_BLOB',
        +            'EMPTY_CLOB',
        +            'END',
        +            'EXCEPTION',
        +            'EXCLUSIVE',
        +            'EXEC',
        +            'EXECUTE',
        +            'EXISTS',
        +            'EXIT',
        +            'EXP',
        +            'EXPLAIN',
        +            'EXTENDS',
        +            'EXTRACT',
        +            'FALSE',
        +            'FETCH',
        +            'FILE',
        +            'FIRST_VALUE',
        +            'FLOAT',
        +            'FLOOR',
        +            'FOR',
        +            'FORALL',
        +            'FROM',
        +            'FUNCTION',
        +            'GOTO',
        +            'GRANT',
        +            'GREATEST',
        +            'GROUP',
        +            'GROUPING',
        +            'HAVING',
        +            'HEAP',
        +            'HEXTORAW',
        +            'HOUR',
        +            'IDENTIFIED',
        +            'IF',
        +            'IMMEDIATE',
        +            'IN',
        +            'INCREMENT',
        +            'INDEX',
        +            'INDEXTYPE',
        +            'INDICATOR',
        +            'INITCAP',
        +            'INITIAL',
        +            'INSERT',
        +            'INSTR',
        +            'INSTRB',
        +            'INTEGER',
        +            'INTERFACE',
        +            'INTERSECT',
        +            'INTERVAL',
        +            'INTO',
        +            'IS',
        +            'ISOLATION',
        +            'JAVA',
        +            'KEY',
        +            'LAG',
        +            'LAST_DAY',
        +            'LAST_VALUE',
        +            'LEAD',
        +            'LEAST',
        +            'LENGTH',
        +            'LENGTHB',
        +            'LEVEL',
        +            'LIBRARY',
        +            'LIKE',
        +            'LIMITED',
        +            'LINK',
        +            'LN',
        +            'LOCK',
        +            'LOG',
        +            'LONG',
        +            'LOOP',
        +            'LOWER',
        +            'LPAD',
        +            'LTRIM',
        +            'MAKE_REF',
        +            'MATERIALIZED',
        +            'MAX',
        +            'MAXEXTENTS',
        +            'MIN',
        +            'MINUS',
        +            'MINUTE',
        +            'MLSLABEL',
        +            'MOD',
        +            'MODE',
        +            'MODIFY',
        +            'MONTH',
        +            'MONTHS_BETWEEN',
        +            'NATURAL',
        +            'NATURALN',
        +            'NEW',
        +            'NEW_TIME',
        +            'NEXT_DAY',
        +            'NEXTVAL',
        +            'NLS_CHARSET_DECL_LEN',
        +            'NLS_CHARSET_ID',
        +            'NLS_CHARSET_NAME',
        +            'NLS_INITCAP',
        +            'NLS_LOWER',
        +            'NLS_UPPER',
        +            'NLSSORT',
        +            'NOAUDIT',
        +            'NOCOMPRESS',
        +            'NOCOPY',
        +            'NOT',
        +            'NOWAIT',
        +            'NTILE',
        +            'NULL',
        +            'NULLIF',
        +            'NUMBER',
        +            'NUMBER_BASE',
        +            'NUMTODSINTERVAL',
        +            'NUMTOYMINTERVAL',
        +            'NVL',
        +            'NVL2',
        +            'OCIROWID',
        +            'OF',
        +            'OFFLINE',
        +            'ON',
        +            'ONLINE',
        +            'OPAQUE',
        +            'OPEN',
        +            'OPERATOR',
        +            'OPTION',
        +            'OR',
        +            'ORDER',
        +            'ORGANIZATION',
        +            'OTHERS',
        +            'OUT',
        +            'OUTLINE',
        +            'PACKAGE',
        +            'PARTITION',
        +            'PCTFREE',
        +            'PERCENT_RANK',
        +            'PLAN',
        +            'PLS_INTEGER',
        +            'POSITIVE',
        +            'POSITIVEN',
        +            'POWER',
        +            'PRAGMA',
        +            'PRIMARY',
        +            'PRIOR',
        +            'PRIVATE',
        +            'PRIVILEGES',
        +            'PROCEDURE',
        +            'PROFILE',
        +            'PUBLIC',
        +            'RAISE',
        +            'RANGE',
        +            'RANK',
        +            'RATIO_TO_REPORT',
        +            'RAW',
        +            'RAWTOHEX',
        +            'REAL',
        +            'RECORD',
        +            'REF',
        +            'REFTOHEX',
        +            'REGR_AVGX',
        +            'REGR_AVGY',
        +            'REGR_COUNT',
        +            'REGR_INTERCEPT',
        +            'REGR_R2',
        +            'REGR_SLOPE',
        +            'REGR_SXX',
        +            'REGR_SXY',
        +            'REGR_SYY',
        +            'RELEASE',
        +            'RENAME',
        +            'REPLACE',
        +            'RESOURCE',
        +            'RETURN',
        +            'RETURNING',
        +            'REVERSE',
        +            'REVOKE',
        +            'ROLE',
        +            'ROLLBACK',
        +            'ROUND',
        +            'ROW',
        +            'ROW_NUMBER',
        +            'ROWID',
        +            'ROWIDTOCHAR',
        +            'ROWNUM',
        +            'ROWS',
        +            'ROWTYPE',
        +            'RPAD',
        +            'RTRIM',
        +            'SAVEPOINT',
        +            'SCHEMA',
        +            'SECOND',
        +            'SEGMENT',
        +            'SELECT',
        +            'SEPERATE',
        +            'SEQUENCE',
        +            'SESSION',
        +            'SET',
        +            'SHARE',
        +            'SIGN',
        +            'SIN',
        +            'SINH',
        +            'SIZE',
        +            'SMALLINT',
        +            'SOUNDEX',
        +            'SPACE',
        +            'SQL',
        +            'SQLCODE',
        +            'SQLERRM',
        +            'SQRT',
        +            'START',
        +            'STATISTICS',
        +            'STDDEV',
        +            'STDDEV_POP',
        +            'STDDEV_SAMP',
        +            'STOP',
        +            'SUBSTR',
        +            'SUBSTRB',
        +            'SUBTYPE',
        +            'SUCCESSFUL',
        +            'SUM',
        +            'SYNONYM',
        +            'SYS_CONTEXT',
        +            'SYS_GUID',
        +            'SYSDATE',
        +            'SYSTEM',
        +            'TABLE',
        +            'TABLESPACE',
        +            'TAN',
        +            'TANH',
        +            'TEMPORARY',
        +            'THEN',
        +            'TIME',
        +            'TIMESTAMP',
        +            'TIMEZONE_ABBR',
        +            'TIMEZONE_HOUR',
        +            'TIMEZONE_MINUTE',
        +            'TIMEZONE_REGION',
        +            'TIMING',
        +            'TO',
        +            'TO_CHAR',
        +            'TO_DATE',
        +            'TO_LOB',
        +            'TO_MULTI_BYTE',
        +            'TO_NUMBER',
        +            'TO_SINGLE_BYTE',
        +            'TRANSACTION',
        +            'TRANSLATE',
        +            'TRIGGER',
        +            'TRIM',
        +            'TRUE',
        +            'TRUNC',
        +            'TRUNCATE',
        +            'TYPE',
        +            'UI',
        +            'UID',
        +            'UNION',
        +            'UNIQUE',
        +            'UPDATE',
        +            'UPPER',
        +            'USE',
        +            'USER',
        +            'USERENV',
        +            'USING',
        +            'VALIDATE',
        +            'VALUE',
        +            'VALUES',
        +            'VAR_POP',
        +            'VAR_SAMP',
        +            'VARCHAR',
        +            'VARCHAR2',
        +            'VARIANCE',
        +            'VIEW',
        +            'VSIZE',
        +            'WHEN',
        +            'WHENEVER',
        +            'WHERE',
        +            'WHILE',
        +            'WITH',
        +            'WORK',
        +            'WRITE',
        +            'YEAR',
        +            'ZONE'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '=', '<', '>', '|', '+', '-', '*', '/', ','
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +//        3 => false,
        +//        4 => false,
        +//        5 => false,
        +//        6 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #993333; font-weight: bold; text-transform: uppercase;'
        +//Add the styles for groups 3-6 here when used
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #ff0000;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +//        3 => '',
        +//        4 => '',
        +//        5 => '',
        +//        6 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/oxygene.php b/Sources/geshi/oxygene.php
        new file mode 100644
        index 0000000..bc2ee65
        --- /dev/null
        +++ b/Sources/geshi/oxygene.php
        @@ -0,0 +1,154 @@
        + 'Oxygene (Delphi Prism)',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('(*' => '*)', '{' => '}'),
        +    //Compiler directives
        +    'COMMENT_REGEXP' => array(2 => '/{\\$.*?}|\\(\\*\\$.*?\\*\\)/U'),
        +    'CASE_KEYWORDS' => 0,
        +    'QUOTEMARKS' => array("'"),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'and',   'begin', 'case', 'const',  'div', 'do', 'downto', 'else',
        +            'end',  'for',  'function', 'if', 'in', 'mod', 'not', 'of', 'or',
        +            'procedure', 'repeat', 'record', 'set', 'shl', 'shr', 'then', 'to',
        +            'type', 'until', 'uses', 'var','while', 'with', 'xor', 'exit', 'break',
        +            'class', 'constructor', 'inherited', 'private', 'public', 'protected',
        +            'property', 'As', 'Is', 'Unit', 'Continue', 'Try', 'Except', 'Forward',
        +            'Interface','Implementation', 'nil', 'out', 'loop', 'namespace', 'true',
        +            'false', 'new', 'ensure', 'require', 'on', 'event', 'delegate', 'method',
        +            'raise', 'assembly', 'module', 'using','locking', 'old', 'invariants', 'operator',
        +            'self', 'async', 'finalizer', 'where', 'yield', 'nullable', 'Future',
        +            'From',  'Finally', 'dynamic'
        +            ),
        +        2 => array(
        +            'override', 'virtual', 'External', 'read', 'add', 'remove','final', 'abstract',
        +            'empty', 'global', 'locked', 'sealed', 'reintroduce', 'implements', 'each',
        +            'default', 'partial', 'finalize', 'enum', 'flags', 'result', 'readonly', 'unsafe',
        +            'pinned', 'matching', 'static', 'has', 'step', 'iterator', 'inline', 'nested',
        +            'Implies', 'Select', 'Order', 'By', 'Desc', 'Asc', 'Group', 'Join', 'Take',
        +            'Skip', 'Concat', 'Union', 'Reverse', 'Distinct', 'Into', 'Equals', 'params',
        +            'sequence', 'index', 'notify', 'Parallel', 'create', 'array', 'Queryable', 'Aspect',
        +            'volatile', 'write'
        +            ),
        +        3 => array(
        +            'chr', 'ord', 'inc', 'dec', 'assert', 'iff', 'assigned','futureAssigned', 'length', 'low', 'high', 'typeOf', 'sizeOf', 'disposeAndNil', 'Coalesce', 'unquote'
        +            ),
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +//        4 => false,
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array('(', ')', '[', ']'),
        +        1 => array('.', ',', ':', ';'),
        +        2 => array('@', '^'),
        +        3 => array('=', '+', '-', '*', '/')
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight: bold;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #000066;',
        +//            4 => 'color: #000066; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            2 => 'color: #008000; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #ff0000; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000066;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #000000;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #9ac;',
        +            1 => 'color: #ff0000;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000066;',
        +            1 => 'color: #000066;',
        +            2 => 'color: #000066;',
        +            3 => 'color: #000066;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +//        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        //Hex numbers
        +        0 => '\$[0-9a-fA-F]+',
        +        //Characters
        +        1 => '\#\$?[0-9]{1,3}'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 2
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/oz.php b/Sources/geshi/oz.php
        new file mode 100644
        index 0000000..d24561b
        --- /dev/null
        +++ b/Sources/geshi/oz.php
        @@ -0,0 +1,144 @@
        + 'OZ',
        +    'COMMENT_SINGLE' => array(1 => '%'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"','\''),
        +    'ESCAPE_CHAR' => '\\',
        +    'NUMBERS' => array(),
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'declare','local','in','end','proc','fun','functor','require','prepare',
        +            'import','export','define','at','case','then','else','of','elseof',
        +            'elsecase','if','elseif','class','from','prop','attr','feat','meth',
        +            'self','true','false','unit','div','mod','andthen','orelse','cond','or',
        +            'dis','choice','not','thread','try','catch','finally','raise','lock',
        +            'skip','fail','for','do'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true
        +        ),
        +    'SYMBOLS' => array(
        +        '@', '!', '|', '<-', ':=', '<', '>', '=<', '>=', '<=', '#', '~', '.',
        +        '*', '-', '+', '/', '<:', '>:', '=:', '=<:', '>=:', '\\=', '\\=:', ',',
        +        '!!', '...', '==', '::', ':::'
        +        ),
        +    'STYLES' => array(
        +        'REGEXPS' => array(
        +            1 => 'color: #0000ff;',
        +            2 => 'color: #00a030;',
        +            3 => 'color: #bc8f8f;',
        +            4 => 'color: #0000ff;',
        +            5 => 'color: #a020f0;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #bc8f8f;'
        +            ),
        +        'KEYWORDS' => array(
        +            1 => 'color: #a020f0;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #B22222;',
        +            'MULTI' => 'color: #B22222;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #bc8f8f;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #a020f0;'
        +            ),
        +        'BRACKETS' => array(),
        +        'NUMBERS' => array(),
        +        'METHODS' => array(),
        +        'SCRIPT' => array()
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(),
        +    'URLS' => array(
        +        1 => ''
        +        ),
        +    'REGEXPS' => array(
        +        // function and procedure definition
        +        1 => array(
        +            GESHI_SEARCH => "(proc|fun)([^{}\n\)]*)(\\{)([\$A-Z\300-\326\330-\336][A-Z\300-\326\330-\336a-z\337-\366\370-\3770-9_.]*)",
        +            GESHI_REPLACE => '\4',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\1\2\3',
        +            GESHI_AFTER => ''
        +            ),
        +        // class definition
        +        2 => array(
        +            GESHI_SEARCH => "(class)([^A-Z\$]*)([\$A-Z\300-\326\330-\336][A-Z\300-\326\330-\336a-z\337-\366\370-\3770-9_.]*)",
        +            GESHI_REPLACE => '\3\4',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\1\2',
        +            GESHI_AFTER => ''
        +            ),
        +        // single character
        +        3 => array(
        +            GESHI_SEARCH => "&.",
        +            GESHI_REPLACE => '\0',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        // method definition
        +        4 => array(
        +            GESHI_SEARCH => "(meth)([^a-zA-Z]+)([a-zA-Z\300-\326\330-\336][A-Z\300-\326\330-\336a-z\337-\366\370-\3770-9]*)",
        +            GESHI_REPLACE => '\3',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\1\2',
        +            GESHI_AFTER => ''
        +            ),
        +        // highlight "[]"
        +        // ([] is actually a keyword, but that causes problems in validation; putting it into symbols doesn't work.)
        +        5 => array(
        +            GESHI_SEARCH => "\[\]",
        +            GESHI_REPLACE => '\0',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/parasail.php b/Sources/geshi/parasail.php
        new file mode 100644
        index 0000000..864eba1
        --- /dev/null
        +++ b/Sources/geshi/parasail.php
        @@ -0,0 +1,133 @@
        + 'ParaSail',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('{' => '}'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'all', 'block', 'case', 'continue', 'each',
        +            'else', 'elsif', 'exit', 'for',
        +            'forward', 'if', 'loop', 'return', 'reverse', 'some',
        +            'then', 'until', 'while', 'with'
        +            ),
        +        2 => array(
        +            'abs', 'and','in', 'mod', 'not', 'null', 'or', 'rem', 'xor'
        +            ),
        +        3 => array(
        +            'abstract', 'class',
        +            'concurrent', 'const', 
        +            'end', 'extends', 'exports', 
        +            'func', 'global', 'implements', 'import',
        +            'interface', 'is', 'lambda', 'locked', 
        +            'new', 'of', 'op', 'optional',
        +            'private', 'queued', 'ref',
        +            'separate', 'type', 'var',
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '<', '>'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #00007f;',
        +            2 => 'color: #0000ff;',
        +            3 => 'color: #46aa03; font-weight:bold;',
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #adadad; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #7f007f;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #202020;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/parigp.php b/Sources/geshi/parigp.php
        new file mode 100644
        index 0000000..c9c7309
        --- /dev/null
        +++ b/Sources/geshi/parigp.php
        @@ -0,0 +1,277 @@
        + 'PARI/GP',
        +    'COMMENT_SINGLE' => array(1 => '\\\\'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'NUMBERS' => array(
        +        # Integers
        +        1 => GESHI_NUMBER_INT_BASIC,
        +        # Reals
        +        2 => GESHI_NUMBER_FLT_SCI_ZERO
        +        ),
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'addprimes','bestappr','bezout','bezoutres','bigomega','binomial',
        +            'chinese','content','contfrac','contfracpnqn','core','coredisc',
        +            'dirdiv','direuler','dirmul','divisors','eulerphi','factor',
        +            'factorback','factorcantor','factorff','factorial','factorint',
        +            'factormod','ffgen','ffinit','fflog','fforder','ffprimroot',
        +            'fibonacci','gcd','hilbert','isfundamental','ispower','isprime',
        +            'ispseudoprime','issquare','issquarefree','kronecker','lcm',
        +            'moebius','nextprime','numbpart','numdiv','omega','partitions',
        +            'polrootsff','precprime','prime','primepi','primes','qfbclassno',
        +            'qfbcompraw','qfbhclassno','qfbnucomp','qfbnupow','qfbpowraw',
        +            'qfbprimeform','qfbred','qfbsolve','quadclassunit','quaddisc',
        +            'quadgen','quadhilbert','quadpoly','quadray','quadregulator',
        +            'quadunit','removeprimes','sigma','sqrtint','stirling',
        +            'sumdedekind','zncoppersmith','znlog','znorder','znprimroot',
        +            'znstar','Col','List','Mat','Mod','Pol','Polrev','Qfb','Ser','Set',
        +            'Str','Strchr','Strexpand','Strtex','Vec','Vecrev','Vecsmall',
        +            'binary','bitand','bitneg','bitnegimply','bitor','bittest','bitxor',
        +            'ceil','centerlift','component','conj','conjvec','denominator',
        +            'floor','frac','imag','length','lift','norm','norml2','numerator',
        +            'numtoperm','padicprec','permtonum','precision','random','real',
        +            'round','simplify','sizebyte','sizedigit','truncate','valuation',
        +            'variable','ellL1','elladd','ellak','ellan','ellanalyticrank',
        +            'ellap','ellbil','ellchangecurve','ellchangepoint','ellconvertname',
        +            'elldivpol','elleisnum','elleta','ellgenerators','ellglobalred',
        +            'ellgroup','ellheight','ellheightmatrix','ellidentify','ellinit',
        +            'ellisoncurve','ellj','elllocalred','elllog','elllseries',
        +            'ellminimalmodel','ellmodulareqn','ellorder','ellordinate',
        +            'ellpointtoz','ellpow','ellrootno','ellsearch','ellsigma','ellsub',
        +            'elltaniyama','elltatepairing','elltors','ellweilpairing','ellwp',
        +            'ellzeta','ellztopoint','bnfcertify','bnfcompress',
        +            'bnfdecodemodule','bnfinit','bnfisintnorm','bnfisnorm',
        +            'bnfisprincipal','bnfissunit','bnfisunit','bnfnarrow','bnfsignunit',
        +            'bnfsunit','bnrL1','bnrclassno','bnrclassnolist','bnrconductor',
        +            'bnrconductorofchar','bnrdisc','bnrdisclist','bnrinit',
        +            'bnrisconductor','bnrisprincipal','bnrrootnumber','bnrstark',
        +            'dirzetak','factornf','galoisexport','galoisfixedfield',
        +            'galoisgetpol','galoisidentify','galoisinit','galoisisabelian',
        +            'galoisisnormal','galoispermtopol','galoissubcyclo',
        +            'galoissubfields','galoissubgroups','idealadd','idealaddtoone',
        +            'idealappr','idealchinese','idealcoprime','idealdiv','idealfactor',
        +            'idealfactorback','idealfrobenius','idealhnf','idealintersect',
        +            'idealinv','ideallist','ideallistarch','ideallog','idealmin',
        +            'idealmul','idealnorm','idealpow','idealprimedec','idealramgroups',
        +            'idealred','idealstar','idealtwoelt','idealval','matalgtobasis',
        +            'matbasistoalg','modreverse','newtonpoly','nfalgtobasis','nfbasis',
        +            'nfbasistoalg','nfdetint','nfdisc','nfeltadd','nfeltdiv',
        +            'nfeltdiveuc','nfeltdivmodpr','nfeltdivrem','nfeltmod','nfeltmul',
        +            'nfeltmulmodpr','nfeltnorm','nfeltpow','nfeltpowmodpr',
        +            'nfeltreduce','nfeltreducemodpr','nfelttrace','nfeltval','nffactor',
        +            'nffactorback','nffactormod','nfgaloisapply','nfgaloisconj',
        +            'nfhilbert','nfhnf','nfhnfmod','nfinit','nfisideal','nfisincl',
        +            'nfisisom','nfkermodpr','nfmodprinit','nfnewprec','nfroots',
        +            'nfrootsof1','nfsnf','nfsolvemodpr','nfsubfields','polcompositum',
        +            'polgalois','polred','polredabs','polredord','poltschirnhaus',
        +            'rnfalgtobasis','rnfbasis','rnfbasistoalg','rnfcharpoly',
        +            'rnfconductor','rnfdedekind','rnfdet','rnfdisc','rnfeltabstorel',
        +            'rnfeltdown','rnfeltreltoabs','rnfeltup','rnfequation',
        +            'rnfhnfbasis','rnfidealabstorel','rnfidealdown','rnfidealhnf',
        +            'rnfidealmul','rnfidealnormabs','rnfidealnormrel',
        +            'rnfidealreltoabs','rnfidealtwoelt','rnfidealup','rnfinit',
        +            'rnfisabelian','rnfisfree','rnfisnorm','rnfisnorminit','rnfkummer',
        +            'rnflllgram','rnfnormgroup','rnfpolred','rnfpolredabs',
        +            'rnfpseudobasis','rnfsteinitz','subgrouplist','zetak','zetakinit',
        +            'plot','plotbox','plotclip','plotcolor','plotcopy','plotcursor',
        +            'plotdraw','ploth','plothraw','plothsizes','plotinit','plotkill',
        +            'plotlines','plotlinetype','plotmove','plotpoints','plotpointsize',
        +            'plotpointtype','plotrbox','plotrecth','plotrecthraw','plotrline',
        +            'plotrmove','plotrpoint','plotscale','plotstring','psdraw',
        +            'psploth','psplothraw','O','deriv','diffop','eval','factorpadic',
        +            'intformal','padicappr','padicfields','polchebyshev','polcoeff',
        +            'polcyclo','poldegree','poldisc','poldiscreduced','polhensellift',
        +            'polhermite','polinterpolate','polisirreducible','pollead',
        +            'pollegendre','polrecip','polresultant','polroots','polrootsmod',
        +            'polrootspadic','polsturm','polsubcyclo','polsylvestermatrix',
        +            'polsym','poltchebi','polzagier','serconvol','serlaplace',
        +            'serreverse','subst','substpol','substvec','taylor','thue',
        +            'thueinit','break','for','fordiv','forell','forprime','forstep',
        +            'forsubgroup','forvec','if','next','return','until','while',
        +            'Strprintf','addhelp','alarm','alias','allocatemem','apply',
        +            'default','error','extern','externstr','getheap','getrand',
        +            'getstack','gettime','global','input','install','kill','print1',
        +            'print','printf','printtex','quit','read','readvec','select',
        +            'setrand','system','trap','type','version','warning','whatnow',
        +            'write1','write','writebin','writetex','divrem','lex','max','min',
        +            'shift','shiftmul','sign','vecmax','vecmin','derivnum','intcirc',
        +            'intfouriercos','intfourierexp','intfouriersin','intfuncinit',
        +            'intlaplaceinv','intmellininv','intmellininvshort','intnum',
        +            'intnuminit','intnuminitgen','intnumromb','intnumstep','prod',
        +            'prodeuler','prodinf','solve','sum','sumalt','sumdiv','suminf',
        +            'sumnum','sumnumalt','sumnuminit','sumpos','Euler','I','Pi','abs',
        +            'acos','acosh','agm','arg','asin','asinh','atan','atanh','bernfrac',
        +            'bernreal','bernvec','besselh1','besselh2','besseli','besselj',
        +            'besseljh','besselk','besseln','cos','cosh','cotan','dilog','eint1',
        +            'erfc','eta','exp','gamma','gammah','hyperu','incgam','incgamc',
        +            'lngamma','log','polylog','psi','sin','sinh','sqr','sqrt','sqrtn',
        +            'tan','tanh','teichmuller','theta','thetanullk','weber','zeta',
        +            'algdep','charpoly','concat','lindep','listcreate','listinsert',
        +            'listkill','listpop','listput','listsort','matadjoint',
        +            'matcompanion','matdet','matdetint','matdiagonal','mateigen',
        +            'matfrobenius','mathess','mathilbert','mathnf','mathnfmod',
        +            'mathnfmodid','matid','matimage','matimagecompl','matindexrank',
        +            'matintersect','matinverseimage','matisdiagonal','matker',
        +            'matkerint','matmuldiagonal','matmultodiagonal','matpascal',
        +            'matrank','matrix','matrixqz','matsize','matsnf','matsolve',
        +            'matsolvemod','matsupplement','mattranspose','minpoly','qfgaussred',
        +            'qfjacobi','qflll','qflllgram','qfminim','qfperfection','qfrep',
        +            'qfsign','setintersect','setisset','setminus','setsearch','cmp',
        +            'setunion','trace','vecextract','vecsort','vector','vectorsmall',
        +            'vectorv','ellheegner'
        +            ),
        +
        +        2 => array(
        +            'void','bool','negbool','small','int',/*'real',*/'mp','var','lg','pol',
        +            'vecsmall','vec','list','str','genstr','gen','typ'
        +            ),
        +
        +        3 => array(
        +            'TeXstyle','breakloop','colors','compatible','datadir','debug',
        +            'debugfiles','debugmem','echo','factor_add_primes','factor_proven',
        +            'format','graphcolormap','graphcolors','help','histfile','histsize',
        +            'lines','linewrap',/*'log',*/'logfile','new_galois_format','output',
        +            'parisize','path','prettyprinter','primelimit','prompt_cont',
        +            'prompt','psfile','readline','realprecision','recover','secure',
        +            'seriesprecision',/*'simplify',*/'strictmatch','timer'
        +            ),
        +
        +        4 => array(
        +            'alarmer','archer','errpile','gdiver','impl','syntaxer','invmoder',
        +            'overflower','talker','typeer','user'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array(
        +            '(',')','{','}','[',']','+','-','*','/','%','=','<','>','!','^','&','|','?',';',':',',','\\','\''
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000ff;',
        +            2 => 'color: #e07022;',
        +            3 => 'color: #00d2d2;',
        +            4 => 'color: #00d2d2;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008000;',
        +            'MULTI' => 'color: #008000;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #111111; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #002222;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #800080;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #666666;',
        +            1 => 'color: #666666;',
        +            2 => 'color: #666666;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #004000;'
        +            ),
        +        'SYMBOLS' => array(
        +            1 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #e07022',    # Should be the same as keyword group 2
        +            1 => 'color: #555555'
        +            ),
        +        'SCRIPT' => array()
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        0 => array( # types marked on variables
        +            GESHI_SEARCH => '(? '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '"',
        +            GESHI_AFTER => '"'
        +            ),
        +        1 => array( # literal variables
        +            GESHI_SEARCH => '(? '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        2 => array(
        +            '[a-zA-Z][a-zA-Z0-9_]*:' => ''
        +            ),
        +        3 => array(
        +            'default(' => ''
        +            ),
        +        4 => array(
        +            'trap(' => ''
        +            ),
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array()
        +);
        +
        +?>
        diff --git a/Sources/geshi/pascal.php b/Sources/geshi/pascal.php
        new file mode 100644
        index 0000000..de5ca87
        --- /dev/null
        +++ b/Sources/geshi/pascal.php
        @@ -0,0 +1,165 @@
        + 'Pascal',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('(*' => '*)', '{' => '}'),
        +    //Compiler directives
        +    'COMMENT_REGEXP' => array(2 => '/\\{\\$.*?}|\\(\\*\\$.*?\\*\\)/U'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'"),
        +    'ESCAPE_CHAR' => '',
        +
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'absolute','asm','assembler','begin','break','case','catch','cdecl',
        +            'const','constructor','default','destructor','div','do','downto',
        +            'else','end','except','export','exports','external','far',
        +            'finalization','finally','for','forward','function','goto','if',
        +            'implementation','in','index','inherited','initialization','inline',
        +            'interface','interrupt','label','library','mod','name','not','of',
        +            'or','overload','override','private','procedure','program',
        +            'property','protected','public','published','raise','repeat',
        +            'resourcestring','shl','shr','stdcall','stored','switch','then',
        +            'to','try','type','unit','until','uses','var','while','with','xor'
        +            ),
        +        2 => array(
        +            'nil', 'false', 'true',
        +            ),
        +        3 => array(
        +            'abs','and','arc','arctan','blockread','blockwrite','chr','dispose',
        +            'cos','eof','eoln','exp','get','ln','new','odd','ord','ordinal',
        +            'pred','read','readln','sin','sqrt','succ','write','writeln'
        +            ),
        +        4 => array(
        +            'ansistring','array','boolean','byte','bytebool','char','file',
        +            'integer','longbool','longint','object','packed','pointer','real',
        +            'record','set','shortint','smallint','string','union','word'
        +            ),
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array('(', ')', '[', ']'),
        +        1 => array('.', ',', ':', ';'),
        +        2 => array('@', '^'),
        +        3 => array('=', '+', '-', '*', '/')
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000000; font-weight: bold;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #000066;',
        +            4 => 'color: #000066; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            2 => 'color: #008000; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #ff0000; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;',
        +            //'HARD' => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #0000cc;',
        +            1 => 'color: #ff0000;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000066;',
        +            1 => 'color: #000066;',
        +            2 => 'color: #000066;',
        +            3 => 'color: #000066;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        //Hex numbers
        +        0 => '\$[0-9a-fA-F]+',
        +        //Characters
        +        1 => '\#(?:\$[0-9a-fA-F]{1,2}|\d{1,3})'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/pcre.php b/Sources/geshi/pcre.php
        new file mode 100644
        index 0000000..13a2e02
        --- /dev/null
        +++ b/Sources/geshi/pcre.php
        @@ -0,0 +1,188 @@
        + 'PCRE',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(
        +        ),
        +    'COMMENT_REGEXP' => array(
        +        // Non-matching groups
        +        1 => "/(?<=\()\?(?::|(?=\())/",
        +
        +        // Modifier groups
        +        2 => "/(?<=\()\?[cdegimopsuxUX\-]+(?::|(?=\)))/",
        +
        +        // Look-Aheads
        +        3 => "/(?<=\()\?[!=]/",
        +
        +        // Look-Behinds
        +        4 => "/(?<=\()\?<[!=]/",
        +
        +        // Forward Matching
        +        5 => "/(?<=\()\?>/",
        +
        +        // Recursive Matching
        +        6 => "/(?<=\()\?R(?=\))/",
        +
        +        // Named Subpattern
        +        7 => "/(?<=\()\?(?:P?<\w+>|\d+(?=\))|P[=>]\w+(?=\)))/",
        +
        +        // Back Reference
        +        8 => "/\\\\(?:[1-9]\d?|g\d+|g\{(?:-?\d+|\w+)\}|k<\w+>|k'\w+'|k\{\w+\})/",
        +
        +        // Byte sequence: Octal
        +        9 => "/\\\\[0-7]{2,3}/",
        +
        +        // Byte sequence: Hex
        +        10 => "/\\\\x[0-9a-fA-F]{2}/",
        +
        +        // Byte sequence: Hex
        +        11 => "/\\\\u[0-9a-fA-F]{4}/",
        +
        +        // Byte sequence: Hex
        +        12 => "/\\\\U[0-9a-fA-F]{8}/",
        +
        +        // Byte sequence: Unicode
        +        13 => "/\\\\[pP]\{[^}\n]+\}/",
        +
        +        // One-Char Escapes
        +        14 => "/\\\\[abdefnrstvwzABCDGSWXZ\\\\\\.\[\]\(\)\{\}\^\\\$\?\+\*]/",
        +
        +        // Byte sequence: Control-X sequence
        +        15 => "/\\\\c./",
        +
        +        // Quantifier
        +        16 => "/\{(?:\d+,?|\d*,\d+)\}/",
        +
        +        // Comment Subpattern
        +        17 => "/(?<=\()\?#[^\)]*/",
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array('.'),
        +        1 => array('(', ')'),
        +        2 => array('[', ']', '|'),
        +        3 => array('^', '$'),
        +        4 => array('?', '+', '*'),
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #993333; font-weight: bold;',
        +            2 => 'color: #cc3300; font-weight: bold;',
        +            3 => 'color: #cc0066; font-weight: bold;',
        +            4 => 'color: #cc0066; font-weight: bold;',
        +            5 => 'color: #cc6600; font-weight: bold;',
        +            6 => 'color: #cc00cc; font-weight: bold;',
        +            7 => 'color: #cc9900; font-weight: bold; font-style: italic;',
        +            8 => 'color: #cc9900; font-style: italic;',
        +            9 => 'color: #669933; font-style: italic;',
        +            10 => 'color: #339933; font-style: italic;',
        +            11 => 'color: #339966; font-style: italic;',
        +            12 => 'color: #339999; font-style: italic;',
        +            13 => 'color: #663399; font-style: italic;',
        +            14 => 'color: #999933; font-style: italic;',
        +            15 => 'color: #993399; font-style: italic;',
        +            16 => 'color: #333399; font-style: italic;',
        +            17 => 'color: #666666; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            'HARD' => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;',
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;',
        +            2 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #333399; font-weight: bold;',
        +            1 => 'color: #993333; font-weight: bold;',
        +            2 => 'color: #339933; font-weight: bold;',
        +            3 => 'color: #333399; font-weight: bold;',
        +            4 => 'color: #333399; font-style: italic;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'BRACKETS' => GESHI_NEVER,
        +            'NUMBERS' => GESHI_NEVER
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/per.php b/Sources/geshi/per.php
        new file mode 100644
        index 0000000..c42ddb5
        --- /dev/null
        +++ b/Sources/geshi/per.php
        @@ -0,0 +1,302 @@
        + 'per',
        +    'COMMENT_SINGLE' => array(1 => '--', 2 => '#'),
        +    'COMMENT_MULTI' => array('{' => '}'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            "ACCELERATOR",
        +            "ACCELERATOR2",
        +            "ACTION",
        +            "ALT",
        +            "AND",
        +            "AUTO",
        +            "AUTONEXT",
        +            "AUTOSCALE",
        +            "BETWEEN",
        +            "BOTH",
        +            "BUTTON",
        +            "BUTTONEDIT",
        +            "BUTTONTEXTHIDDEN",
        +            "BY",
        +            "BYTE",
        +            "CANVAS",
        +            "CENTER",
        +            "CHECKBOX",
        +            "CLASS",
        +            "COLOR",
        +            "COLUMNS",
        +            "COMBOBOX",
        +            "COMMAND",
        +            "COMMENT",
        +            "COMMENTS",
        +            "COMPACT",
        +            "COMPRESS",
        +            "CONFIG",
        +            "CONTROL",
        +            "CURRENT",
        +            "DATABASE",
        +            "DATEEDIT",
        +            "DEC",
        +            "DEFAULT",
        +            "DEFAULTS",
        +            "DELIMITERS",
        +            "DISPLAY",
        +            "DISPLAYONLY",
        +            "DOWNSHIFT",
        +            "DYNAMIC",
        +            "EDIT",
        +            "FIXED",
        +            "FOLDER",
        +            "FONTPITCH",
        +            "FORMAT",
        +            "FORMONLY",
        +            "GRID",
        +            "GRIDCHILDRENINPARENT",
        +            "GROUP",
        +            "HBOX",
        +            "HEIGHT",
        +            "HIDDEN",
        +            "HORIZONTAL",
        +            "INCLUDE",
        +            "INITIAL",
        +            "INITIALIZER",
        +            "INPUT",
        +            "INSTRUCTIONS",
        +            "INTERVAL",
        +            "INVISIBLE",
        +            "IS",
        +            "ITEM",
        +            "ITEMS",
        +            "JUSTIFY",
        +            "KEY",
        +            "KEYS",
        +            "LABEL",
        +            "LEFT",
        +            "LIKE",
        +            "LINES",
        +            "MATCHES",
        +            "NAME",
        +            "NOENTRY",
        +            "NONCOMPRESS",
        +            "NORMAL",
        +            "NOT",
        +            "NOUPDATE",
        +            "OPTIONS",
        +            "OR",
        +            "ORIENTATION",
        +            "PACKED",
        +            "PAGE",
        +            "PICTURE",
        +            "PIXELHEIGHT",
        +            "PIXELS",
        +            "PIXELWIDTH",
        +            "POINTS",
        +            "PROGRAM",
        +            "PROGRESSBAR",
        +            "QUERYCLEAR",
        +            "QUERYEDITABLE",
        +            "RADIOGROUP",
        +            "RECORD",
        +            "REQUIRED",
        +            "REVERSE",
        +            "RIGHT",
        +            "SAMPLE",
        +            "SCREEN",
        +            "SCROLL",
        +            "SCROLLBARS",
        +            "SCROLLGRID",
        +            "SECOND",
        +            "SEPARATOR",
        +            "SHIFT",
        +            "SIZE",
        +            "SIZEPOLICY",
        +            "SMALLFLOAT",
        +            "SMALLINT",
        +            "SPACING",
        +            "STRETCH",
        +            "STYLE",
        +            "TABINDEX",
        +            "TABLE",
        +            "TAG",
        +            "TEXT",
        +            "TEXTEDIT",
        +            "THROUGH",
        +            "THRU",
        +            "TITLE",
        +            "TO",
        +            "TOOLBAR",
        +            "TOPMENU",
        +            "TYPE",
        +            "UNHIDABLE",
        +            "UNHIDABLECOLUMNS",
        +            "UNMOVABLE",
        +            "UNMOVABLECOLUMNS",
        +            "UNSIZABLE",
        +            "UNSIZABLECOLUMNS",
        +            "UNSORTABLE",
        +            "UNSORTABLECOLUMNS",
        +            "UPSHIFT",
        +            "USER",
        +            "VALIDATE",
        +            "VALUECHECKED",
        +            "VALUEMAX",
        +            "VALUEMIN",
        +            "VALUEUNCHECKED",
        +            "VARCHAR",
        +            "VARIABLE",
        +            "VBOX",
        +            "VERIFY",
        +            "VERSION",
        +            "VERTICAL",
        +            "TIMESTAMP",
        +            "WANTCOLUMNSANCHORED", /* to be removed! */
        +            "WANTFIXEDPAGESIZE",
        +            "WANTNORETURNS",
        +            "WANTTABS",
        +            "WHERE",
        +            "WIDGET",
        +            "WIDTH",
        +            "WINDOWSTYLE",
        +            "WITHOUT",
        +            "WORDWRAP",
        +            "X",
        +            "Y",
        +            "ZEROFILL",
        +            "SCHEMA",
        +            "ATTRIBUTES",
        +            "TABLES",
        +            "LAYOUT",
        +            "END"
        +            ),
        +        2 => array(
        +            "YEAR",
        +            "BLACK",
        +            "BLINK",
        +            "BLUE",
        +            "YELLOW",
        +            "WHITE",
        +            "UNDERLINE",
        +            "CENTURY",
        +            "FRACTION",
        +            "CHAR",
        +            "CHARACTER",
        +            "CHARACTERS",
        +            "CYAN",
        +            "DATE",
        +            "DATETIME",
        +            "DAY",
        +            "DECIMAL",
        +            "FALSE",
        +            "FLOAT",
        +            "GREEN",
        +            "HOUR",
        +            "INT",
        +            "INTEGER",
        +            "MAGENTA",
        +            "MINUTE",
        +            "MONEY",
        +            "NONE",
        +            "NULL",
        +            "REAL",
        +            "RED",
        +            "TRUE",
        +            "TODAY",
        +            "MONTH",
        +            "IMAGE"
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '+', '-', '*', '?', '=', '/', '%', '>', '<', '^', '!', '|', ':',
        +        '(', ')', '[', ']'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0600FF;',
        +            2 => 'color: #0000FF; font-weight: bold;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008080; font-style: italic;',
        +            2 => 'color: #008080;',
        +            'MULTI' => 'color: green'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #008080; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #808080;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #FF0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #0000FF;',
        +            2 => 'color: #0000FF;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #008000;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/perl.php b/Sources/geshi/perl.php
        new file mode 100644
        index 0000000..309ebd8
        --- /dev/null
        +++ b/Sources/geshi/perl.php
        @@ -0,0 +1,213 @@
        + 'Perl',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array(
        +        '=back' => '=cut',
        +        '=head' => '=cut',
        +        '=item' => '=cut',
        +        '=over' => '=cut',
        +        '=begin' => '=cut',
        +        '=end' => '=cut',
        +        '=for' => '=cut',
        +        '=encoding' => '=cut',
        +        '=pod' => '=cut'
        +        ),
        +    'COMMENT_REGEXP' => array(
        +        //Regular expressions
        +        2 => "/(?<=[\\s^])(s|tr|y)\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])*\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU",
        +        //Regular expression match variables
        +        3 => '/\$\d+/',
        +        //Heredoc
        +        4 => '/<<\s*?([\'"]?)([a-zA-Z0-9]+)\1;[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU',
        +        //Predefined variables
        +        5 => '/\$(\^[a-zA-Z]?|[\*\$`\'&_\.,+\-~:;\\\\\/"\|%=\?!@#<>\(\)\[\]])(?!\w)|@[_+\-]|%[!]|\$(?=\{)/',
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"','`'),
        +    'HARDQUOTE' => array("'", "'"),            // An optional 2-element array defining the beginning and end of a hard-quoted string
        +    'HARDESCAPE' => array('\\\'',),
        +        // Things that must still be escaped inside a hard-quoted string
        +        // If HARDQUOTE is defined, HARDESCAPE must be defined
        +        // This will not work unless the first character of each element is either in the
        +        // QUOTEMARKS array or is the ESCAPE_CHAR
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'case', 'do', 'else', 'elsif', 'for', 'if', 'then', 'until', 'while', 'foreach', 'my',
        +            'xor', 'or', 'and', 'unless', 'next', 'last', 'redo', 'not', 'our',
        +            'reset', 'continue', 'cmp', 'ne', 'eq', 'lt', 'gt', 'le', 'ge',
        +            ),
        +        2 => array(
        +            'use', 'sub', 'new', '__END__', '__DATA__', '__DIE__', '__WARN__', 'BEGIN',
        +            'STDIN', 'STDOUT', 'STDERR', 'ARGV', 'ARGVOUT'
        +            ),
        +        3 => array(
        +            'abs', 'accept', 'alarm', 'atan2', 'bind', 'binmode', 'bless',
        +            'caller', 'chdir', 'chmod', 'chomp', 'chop', 'chown', 'chr',
        +            'chroot', 'close', 'closedir', 'connect', 'cos',
        +            'crypt', 'dbmclose', 'dbmopen', 'defined', 'delete', 'die',
        +            'dump', 'each', 'endgrent', 'endhostent', 'endnetent', 'endprotoent',
        +            'endpwent', 'endservent', 'eof', 'eval', 'exec', 'exists', 'exit',
        +            'exp', 'fcntl', 'fileno', 'flock', 'fork', 'format', 'formline',
        +            'getc', 'getgrent', 'getgrgid', 'getgrnam', 'gethostbyaddr',
        +            'gethostbyname', 'gethostent', 'getlogin', 'getnetbyaddr', 'getnetbyname',
        +            'getnetent', 'getpeername', 'getpgrp', 'getppid', 'getpriority',
        +            'getprotobyname', 'getprotobynumber', 'getprotoent', 'getpwent',
        +            'getpwnam', 'getpwuid', 'getservbyname', 'getservbyport', 'getservent',
        +            'getsockname', 'getsockopt', 'glob', 'gmtime', 'goto', 'grep',
        +            'hex', 'import', 'index', 'int', 'ioctl', 'join', 'keys', 'kill',
        +            'lc', 'lcfirst', 'length', 'link', 'listen', 'local',
        +            'localtime', 'log', 'lstat', 'm', 'map', 'mkdir', 'msgctl', 'msgget',
        +            'msgrcv', 'msgsnd', 'no', 'oct', 'open', 'opendir',
        +            'ord', 'pack', 'package', 'pipe', 'pop', 'pos', 'print',
        +            'printf', 'prototype', 'push', 'qq', 'qr', 'quotemeta', 'qw',
        +            'qx', 'q', 'rand', 'read', 'readdir', 'readline', 'readlink', 'readpipe',
        +            'recv', 'ref', 'rename', 'require', 'return',
        +            'reverse', 'rewinddir', 'rindex', 'rmdir', 's', 'scalar', 'seek',
        +            'seekdir', 'select', 'semctl', 'semget', 'semop', 'send', 'setgrent',
        +            'sethostent', 'setnetent', 'setpgrp', 'setpriority', 'setprotoent',
        +            'setpwent', 'setservent', 'setsockopt', 'shift', 'shmctl', 'shmget',
        +            'shmread', 'shmwrite', 'shutdown', 'sin', 'sleep', 'socket', 'socketpair',
        +            'sort', 'splice', 'split', 'sprintf', 'sqrt', 'srand', 'stat',
        +            'study', 'substr', 'symlink', 'syscall', 'sysopen', 'sysread',
        +            'sysseek', 'system', 'syswrite', 'tell', 'telldir', 'tie', 'tied',
        +            'time', 'times', 'tr', 'truncate', 'uc', 'ucfirst', 'umask', 'undef',
        +            'unlink', 'unpack', 'unshift', 'untie', 'utime', 'values',
        +            'vec', 'wait', 'waitpid', 'wantarray', 'warn', 'write', 'y'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '<', '>', '=',
        +        '!', '@', '~', '&', '|', '^',
        +        '+','-', '*', '/', '%',
        +        ',', ';', '?', '.', ':'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #000066;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #009966; font-style: italic;',
        +            3 => 'color: #0000ff;',
        +            4 => 'color: #cc0000; font-style: italic;',
        +            5 => 'color: #0000ff;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            'HARD' => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;',
        +            'HARD' => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;',
        +            2 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #0000ff;',
        +            4 => 'color: #009999;',
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://perldoc.perl.org/functions/{FNAMEL}.html'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '->',
        +        2 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        //Variable
        +        0 => '(?:\$[\$#]?|\\\\(?:[@%*]?|\\\\*\$|&)|%[$]?|@[$]?|\*[$]?|&[$]?)[a-zA-Z_][a-zA-Z0-9_]*',
        +        //File Descriptor
        +        4 => '<[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' => '$'
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/perl6.php b/Sources/geshi/perl6.php
        new file mode 100644
        index 0000000..706eabc
        --- /dev/null
        +++ b/Sources/geshi/perl6.php
        @@ -0,0 +1,197 @@
        + 'Perl 6',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array('=begin' => '=end'),
        +    'COMMENT_REGEXP' => array(
        +        //Regular expressions
        +        2 => "/(?<=[\\s^])(s|tr|y)\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])*\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU",
        +        //Regular expression match variables
        +        3 => '/\$\d+/',
        +        //Heredoc
        +        4 => '/<<\s*?([\'"]?)([a-zA-Z0-9]+)\1;[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU',
        +        //Beastly hack to finish highlighting each POD block
        +        5 => '((?<==end) .+)'
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'HARDQUOTE' => array("'", "'"),            // An optional 2-element array defining the beginning and end of a hard-quoted string
        +    'HARDESCAPE' => array('\\\''),
        +        // Things that must still be escaped inside a hard-quoted string
        +        // If HARDQUOTE is defined, HARDESCAPE must be defined
        +        // This will not work unless the first character of each element is either in the
        +        // QUOTEMARKS array or is the ESCAPE_CHAR
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'do', 'else', 'elsif', 'for', 'if', 'then', 'until',
        +            'while', 'loop', 'repeat', 'my', 'xor', 'or', 'and',
        +            'unless', 'next', 'last', 'redo', 'not', 'our', 'let',
        +            'temp', 'state', 'enum', 'constant', 'continue', 'cmp',
        +            'ne', 'eq', 'lt', 'gt', 'le', 'ge', 'leg', 'div', 'X',
        +            'Z', 'x', 'xx', 'given', 'when', 'default', 'has',
        +            'returns', 'of', 'is', 'does', 'where', 'subset', 'but',
        +            'True', 'False', 'return', 'die', 'fail'
        +            ),
        +        2 => array(
        +            'use', 'sub', 'multi', 'method', 'submethod', 'proto',
        +            'class', 'role', 'grammar', 'regex', 'token', 'rule',
        +            'new', 'BEGIN', 'END', 'CHECK', 'INIT', 'START', 'FIRST',
        +            'ENTER', 'LEAVE', 'KEEP', 'UNDO', 'NEXT', 'LAST', 'PRE',
        +            'POST', 'CATCH', 'CONTROL', 'BUILD'
        +            ),
        +        3 => array(
        +            'all', 'any', 'cat', 'classify', 'defined', 'grep', 'first',
        +            'keys', 'kv', 'join', 'map', 'max', 'min', 'none', 'one', 'pairs',
        +            'print', 'printf', 'roundrobin', 'pick', 'reduce', 'reverse', 'say',
        +            'shape', 'sort', 'srand', 'undefine', 'uri', 'values', 'warn', 'zip',
        +
        +            # Container
        +            'rotate', 'comb', 'end', 'elems', 'delete',
        +            'exists', 'pop', 'push', 'shift', 'splice',
        +            'unshift', 'invert', 'decode',
        +
        +            # Numeric
        +            'succ', 'pred', 'abs', 'exp', 'log',
        +            'log10', 'rand', 'roots', 'cis', 'unpolar', 'i', 'floor',
        +            'ceiling', 'round', 'truncate', 'sign', 'sqrt',
        +            'polar', 're', 'im', 'I', 'atan2', 'nude',
        +            'denominator', 'numerator',
        +
        +            # Str
        +            'p5chop', 'chop', 'p5chomp', 'chomp', 'lc', 'lcfirst',
        +            'uc', 'ucfirst', 'normalize', 'samecase', 'sameaccent',
        +            'capitalize', 'length', 'chars', 'graphs', 'codes',
        +            'bytes', 'encode', 'index', 'pack', 'quotemeta', 'rindex',
        +            'split', 'words', 'flip', 'sprintf', 'fmt',
        +            'substr', 'trim', 'unpack', 'match', 'subst', 'trans'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '<', '>', '=',
        +        '!', '@', '~', '&', '|', '^',
        +        '+','-', '*', '/', '%',
        +        ',', ';', '?', '.', ':',
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #000066;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #009966; font-style: italic;',
        +            3 => 'color: #0000ff;',
        +            4 => 'color: #cc0000; font-style: italic;',
        +            5 => 'color: #666666; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            'HARD' => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;',
        +            'HARD' => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;',
        +            2 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #0000ff;',
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        2 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        //Variable
        +        0 => '(?:[$@%]|&)(?:(?:[\^:*?!~]|<)?[a-zA-Z_][a-zA-Z0-9_]*|(?=\.))'
        +        # We treat the . twigil specially so the name can be highlighted as an
        +        # object field (via OBJECT_SPLITTERS).
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'COMMENTS' => array(
        +            'DISALLOWED_BEFORE' => '$'
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/pf.php b/Sources/geshi/pf.php
        new file mode 100644
        index 0000000..818e11b
        --- /dev/null
        +++ b/Sources/geshi/pf.php
        @@ -0,0 +1,178 @@
        + 'OpenBSD Packet Filter',
        +    'COMMENT_SINGLE' => array('#'),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(
        +        1 => "/\\$\\{[^\\n\\}]*?\\}/i",
        +        2 => '/<<-?\s*?(\'?)([a-zA-Z0-9]+)\1\\n.*\\n\\2(?![a-zA-Z0-9])/siU',
        +        3 => "/\\\\['\"]/siU"
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'HARDQUOTE' => array("'", "'"),
        +    'HARDESCAPE' => array("\'"),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        1 => "#\\\\[nfrtv\\$\\\"\n]#i",
        +        2 => "#\\$[a-z_][a-z0-9_]*#i",
        +        3 => "/\\$\\{[^\\n\\}]*?\\}/i",
        +        4 => "/\\$\\([^\\n\\)]*?\\)/i",
        +        5 => "/`[^`]*`/"
        +        ),
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'pass'
        +        ),
        +        2 => array(
        +            'block'
        +            ),
        +        3 => array(
        +            'quick','keep','state','antispoof','table','persist','file','scrub',
        +            'set','skip','flags','on'
        +            ),
        +        4 => array(
        +            'in','out','proto'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>', ';;', '`','='
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #009900; font-weight: bold;',
        +            2 => 'color: #990000; font-weight: bold;',
        +            3 => 'color: #7a0874;',
        +            4 => 'color: #336699;'
        +            ),
        +        'COMMENTS' => array(
        +            0 => 'color: #666666; font-style: italic;',
        +            1 => 'color: #800000;',
        +            2 => 'color: #cc0000; font-style: italic;',
        +            3 => 'color: #000000; font-weight: bold;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            1 => 'color: #000099; font-weight: bold;',
        +            2 => 'color: #007800;',
        +            3 => 'color: #007800;',
        +            4 => 'color: #007800;',
        +            5 => 'color: #780078;',
        +            'HARD' => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #7a0874; font-weight: bold;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #CC0000;',
        +            'HARD' => 'color: #CC0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #ff00cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000; font-weight: bold;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #007800;',
        +            1 => 'color: #007800;',
        +            2 => 'color: #007800;',
        +            4 => 'color: #007800;',
        +            5 => 'color: #660033;',
        +            6 => 'color: #000099; font-weight: bold;',
        +            7 => 'color: #0000ff;',
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        //Variables (will be handled by comment_regexps)
        +        0 => "\\$\\{[a-zA-Z_][a-zA-Z0-9_]*?\\}",
        +        //Variables without braces
        +        1 => "\\$[a-zA-Z_][a-zA-Z0-9_]*",
        +        //Variable assignment
        +        2 => "(? "\\$[*#\$\\-\\?!]",
        +        //Parameters of commands
        +        5 => "(?<=\s)--?[0-9a-zA-Z\-]+(?=[\s=]|$)",
        +        //IPs
        +        6 => "([0-9]{1,3}\.){3}[0-9]{1,3}",
        +        //Tables
        +        7 => "(<(.*)>)"
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +    ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'COMMENTS' => array(
        +            'DISALLOWED_BEFORE' => '$'
        +        ),
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => "(?  "(?![\.\-a-zA-Z0-9_%\\/])"
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/php-brief.php b/Sources/geshi/php-brief.php
        new file mode 100644
        index 0000000..a4804b4
        --- /dev/null
        +++ b/Sources/geshi/php-brief.php
        @@ -0,0 +1,222 @@
        + 'PHP (brief)',
        +    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    //Heredoc and Nowdoc syntax
        +    'COMMENT_REGEXP' => array(3 => '/<<<\s*?(\'?)([a-zA-Z0-9]+)\1[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'HARDQUOTE' => array("'", "'"),
        +    'HARDESCAPE' => array("\'"),
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC |  GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX |
        +        GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'include', 'require', 'include_once', 'require_once',
        +            'for', 'as', 'foreach', 'if', 'elseif', 'else', 'while', 'do', 'endwhile', 'endif', 'switch', 'case', 'endswitch',
        +            'return', 'break'
        +            ),
        +        2 => array(
        +            'null', '__LINE__', '__FILE__',
        +            'false', '<?php',
        +            'true', 'var', 'default',
        +            'function', 'class', 'new', '&new', 'public', 'private', 'interface', 'extends',
        +            'const', 'self'
        +            ),
        +        3 => array(
        +            'func_num_args', 'func_get_arg', 'func_get_args', 'strlen', 'strcmp', 'strncmp', 'strcasecmp', 'strncasecmp', 'each', 'error_reporting', 'define', 'defined',
        +            'trigger_error', 'user_error', 'set_error_handler', 'restore_error_handler', 'get_declared_classes', 'get_loaded_extensions',
        +            'extension_loaded', 'get_extension_funcs', 'debug_backtrace',
        +            'constant', 'bin2hex', 'sleep', 'usleep', 'time', 'mktime', 'gmmktime', 'strftime', 'gmstrftime', 'strtotime', 'date', 'gmdate', 'getdate', 'localtime', 'checkdate', 'flush', 'wordwrap', 'htmlspecialchars', 'htmlentities', 'html_entity_decode', 'md5', 'md5_file', 'crc32', 'getimagesize', 'image_type_to_mime_type', 'phpinfo', 'phpversion', 'phpcredits', 'strnatcmp', 'strnatcasecmp', 'substr_count', 'strspn', 'strcspn', 'strtok', 'strtoupper', 'strtolower', 'strpos', 'strrpos', 'strrev', 'hebrev', 'hebrevc', 'nl2br', 'basename', 'dirname', 'pathinfo', 'stripslashes', 'stripcslashes', 'strstr', 'stristr', 'strrchr', 'str_shuffle', 'str_word_count', 'strcoll', 'substr', 'substr_replace', 'quotemeta', 'ucfirst', 'ucwords', 'strtr', 'addslashes', 'addcslashes', 'rtrim', 'str_replace', 'str_repeat', 'count_chars', 'chunk_split', 'trim', 'ltrim', 'strip_tags', 'similar_text', 'explode', 'implode', 'setlocale', 'localeconv',
        +            'parse_str', 'str_pad', 'chop', 'strchr', 'sprintf', 'printf', 'vprintf', 'vsprintf', 'sscanf', 'fscanf', 'parse_url', 'urlencode', 'urldecode', 'rawurlencode', 'rawurldecode', 'readlink', 'linkinfo', 'link', 'unlink', 'exec', 'system', 'escapeshellcmd', 'escapeshellarg', 'passthru', 'shell_exec', 'proc_open', 'proc_close', 'rand', 'srand', 'getrandmax', 'mt_rand', 'mt_srand', 'mt_getrandmax', 'base64_decode', 'base64_encode', 'abs', 'ceil', 'floor', 'round', 'is_finite', 'is_nan', 'is_infinite', 'bindec', 'hexdec', 'octdec', 'decbin', 'decoct', 'dechex', 'base_convert', 'number_format', 'fmod', 'ip2long', 'long2ip', 'getenv', 'putenv', 'getopt', 'microtime', 'gettimeofday', 'getrusage', 'uniqid', 'quoted_printable_decode', 'set_time_limit', 'get_cfg_var', 'magic_quotes_runtime', 'set_magic_quotes_runtime', 'get_magic_quotes_gpc', 'get_magic_quotes_runtime',
        +            'import_request_variables', 'error_log', 'serialize', 'unserialize', 'memory_get_usage', 'var_dump', 'var_export', 'debug_zval_dump', 'print_r','highlight_file', 'show_source', 'highlight_string', 'ini_get', 'ini_get_all', 'ini_set', 'ini_alter', 'ini_restore', 'get_include_path', 'set_include_path', 'restore_include_path', 'setcookie', 'header', 'headers_sent', 'connection_aborted', 'connection_status', 'ignore_user_abort', 'parse_ini_file', 'is_uploaded_file', 'move_uploaded_file', 'intval', 'floatval', 'doubleval', 'strval', 'gettype', 'settype', 'is_null', 'is_resource', 'is_bool', 'is_long', 'is_float', 'is_int', 'is_integer', 'is_double', 'is_real', 'is_numeric', 'is_string', 'is_array', 'is_object', 'is_scalar',
        +            'ereg', 'ereg_replace', 'eregi', 'eregi_replace', 'split', 'spliti', 'join', 'sql_regcase', 'dl', 'pclose', 'popen', 'readfile', 'rewind', 'rmdir', 'umask', 'fclose', 'feof', 'fgetc', 'fgets', 'fgetss', 'fread', 'fopen', 'fpassthru', 'ftruncate', 'fstat', 'fseek', 'ftell', 'fflush', 'fwrite', 'fputs', 'mkdir', 'rename', 'copy', 'tempnam', 'tmpfile', 'file', 'file_get_contents', 'stream_select', 'stream_context_create', 'stream_context_set_params', 'stream_context_set_option', 'stream_context_get_options', 'stream_filter_prepend', 'stream_filter_append', 'fgetcsv', 'flock', 'get_meta_tags', 'stream_set_write_buffer', 'set_file_buffer', 'set_socket_blocking', 'stream_set_blocking', 'socket_set_blocking', 'stream_get_meta_data', 'stream_register_wrapper', 'stream_wrapper_register', 'stream_set_timeout', 'socket_set_timeout', 'socket_get_status', 'realpath', 'fnmatch', 'fsockopen', 'pfsockopen', 'pack', 'unpack', 'get_browser', 'crypt', 'opendir', 'closedir', 'chdir', 'getcwd', 'rewinddir', 'readdir', 'dir', 'glob', 'fileatime', 'filectime', 'filegroup', 'fileinode', 'filemtime', 'fileowner', 'fileperms', 'filesize', 'filetype', 'file_exists', 'is_writable', 'is_writeable', 'is_readable', 'is_executable', 'is_file', 'is_dir', 'is_link', 'stat', 'lstat', 'chown',
        +            'touch', 'clearstatcache', 'mail', 'ob_start', 'ob_flush', 'ob_clean', 'ob_end_flush', 'ob_end_clean', 'ob_get_flush', 'ob_get_clean', 'ob_get_length', 'ob_get_level', 'ob_get_status', 'ob_get_contents', 'ob_implicit_flush', 'ob_list_handlers', 'ksort', 'krsort', 'natsort', 'natcasesort', 'asort', 'arsort', 'sort', 'rsort', 'usort', 'uasort', 'uksort', 'shuffle', 'array_walk', 'count', 'end', 'prev', 'next', 'reset', 'current', 'key', 'min', 'max', 'in_array', 'array_search', 'extract', 'compact', 'array_fill', 'range', 'array_multisort', 'array_push', 'array_pop', 'array_shift', 'array_unshift', 'array_splice', 'array_slice', 'array_merge', 'array_merge_recursive', 'array_keys', 'array_values', 'array_count_values', 'array_reverse', 'array_reduce', 'array_pad', 'array_flip', 'array_change_key_case', 'array_rand', 'array_unique', 'array_intersect', 'array_intersect_assoc', 'array_diff', 'array_diff_assoc', 'array_sum', 'array_filter', 'array_map', 'array_chunk', 'array_key_exists', 'pos', 'sizeof', 'key_exists', 'assert', 'assert_options', 'version_compare', 'ftok', 'str_rot13', 'aggregate',
        +            'session_name', 'session_module_name', 'session_save_path', 'session_id', 'session_regenerate_id', 'session_decode', 'session_register', 'session_unregister', 'session_is_registered', 'session_encode',
        +            'session_start', 'session_destroy', 'session_unset', 'session_set_save_handler', 'session_cache_limiter', 'session_cache_expire', 'session_set_cookie_params', 'session_get_cookie_params', 'session_write_close', 'preg_match', 'preg_match_all', 'preg_replace', 'preg_replace_callback', 'preg_split', 'preg_quote', 'preg_grep', 'overload', 'ctype_alnum', 'ctype_alpha', 'ctype_cntrl', 'ctype_digit', 'ctype_lower', 'ctype_graph', 'ctype_print', 'ctype_punct', 'ctype_space', 'ctype_upper', 'ctype_xdigit', 'virtual', 'apache_request_headers', 'apache_note', 'apache_lookup_uri', 'apache_child_terminate', 'apache_setenv', 'apache_response_headers', 'apache_get_version', 'getallheaders', 'mysql_connect', 'mysql_pconnect', 'mysql_close', 'mysql_select_db', 'mysql_create_db', 'mysql_drop_db', 'mysql_query', 'mysql_unbuffered_query', 'mysql_db_query', 'mysql_list_dbs', 'mysql_list_tables', 'mysql_list_fields', 'mysql_list_processes', 'mysql_error', 'mysql_errno', 'mysql_affected_rows', 'mysql_insert_id', 'mysql_result', 'mysql_num_rows', 'mysql_num_fields', 'mysql_fetch_row', 'mysql_fetch_array', 'mysql_fetch_assoc', 'mysql_fetch_object', 'mysql_data_seek', 'mysql_fetch_lengths', 'mysql_fetch_field', 'mysql_field_seek', 'mysql_free_result', 'mysql_field_name', 'mysql_field_table', 'mysql_field_len', 'mysql_field_type', 'mysql_field_flags', 'mysql_escape_string', 'mysql_real_escape_string', 'mysql_stat',
        +            'mysql_thread_id', 'mysql_client_encoding', 'mysql_get_client_info', 'mysql_get_host_info', 'mysql_get_proto_info', 'mysql_get_server_info', 'mysql_info', 'mysql', 'mysql_fieldname', 'mysql_fieldtable', 'mysql_fieldlen', 'mysql_fieldtype', 'mysql_fieldflags', 'mysql_selectdb', 'mysql_createdb', 'mysql_dropdb', 'mysql_freeresult', 'mysql_numfields', 'mysql_numrows', 'mysql_listdbs', 'mysql_listtables', 'mysql_listfields', 'mysql_db_name', 'mysql_dbname', 'mysql_tablename', 'mysql_table_name', 'pg_connect', 'pg_pconnect', 'pg_close', 'pg_connection_status', 'pg_connection_busy', 'pg_connection_reset', 'pg_host', 'pg_dbname', 'pg_port', 'pg_tty', 'pg_options', 'pg_ping', 'pg_query', 'pg_send_query', 'pg_cancel_query', 'pg_fetch_result', 'pg_fetch_row', 'pg_fetch_assoc', 'pg_fetch_array', 'pg_fetch_object', 'pg_fetch_all', 'pg_affected_rows', 'pg_get_result', 'pg_result_seek', 'pg_result_status', 'pg_free_result', 'pg_last_oid', 'pg_num_rows', 'pg_num_fields', 'pg_field_name', 'pg_field_num', 'pg_field_size', 'pg_field_type', 'pg_field_prtlen', 'pg_field_is_null', 'pg_get_notify', 'pg_get_pid', 'pg_result_error', 'pg_last_error', 'pg_last_notice', 'pg_put_line', 'pg_end_copy', 'pg_copy_to', 'pg_copy_from',
        +            'pg_trace', 'pg_untrace', 'pg_lo_create', 'pg_lo_unlink', 'pg_lo_open', 'pg_lo_close', 'pg_lo_read', 'pg_lo_write', 'pg_lo_read_all', 'pg_lo_import', 'pg_lo_export', 'pg_lo_seek', 'pg_lo_tell', 'pg_escape_string', 'pg_escape_bytea', 'pg_unescape_bytea', 'pg_client_encoding', 'pg_set_client_encoding', 'pg_meta_data', 'pg_convert', 'pg_insert', 'pg_update', 'pg_delete', 'pg_select', 'pg_exec', 'pg_getlastoid', 'pg_cmdtuples', 'pg_errormessage', 'pg_numrows', 'pg_numfields', 'pg_fieldname', 'pg_fieldsize', 'pg_fieldtype', 'pg_fieldnum', 'pg_fieldprtlen', 'pg_fieldisnull', 'pg_freeresult', 'pg_result', 'pg_loreadall', 'pg_locreate', 'pg_lounlink', 'pg_loopen', 'pg_loclose', 'pg_loread', 'pg_lowrite', 'pg_loimport', 'pg_loexport',
        +            'echo', 'print', 'global', 'static', 'exit', 'array', 'empty', 'eval', 'isset', 'unset', 'die'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array(
        +            '<%', '<%=', '%>', ''
        +            ),
        +        0 => array(
        +            '(', ')', '[', ']', '{', '}',
        +            '!', '@', '%', '&', '|', '/',
        +            '<', '>',
        +            '=', '-', '+', '*',
        +            '.', ':', ',', ';'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #990000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #666666; font-style: italic;',
        +            3 => 'color: #0000cc; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            'HARD' => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;',
        +            'HARD' => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;',
        +            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #004000;',
        +            2 => 'color: #004000;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;',
        +            1 => 'color: #000000; font-weight: bold;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            2 => '',
        +            3 => '',
        +            4 => '',
        +            5 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://www.php.net/{FNAMEL}'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '->',
        +        2 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        //Variables
        +        0 => "[\\$]+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(
        +        0 => array(
        +            ' '?>'
        +            ),
        +        1 => array(
        +            ' '?>'
        +            ),
        +        2 => array(
        +            '<%' => '%>'
        +            ),
        +        3 => array(
        +            ''
        +            ),
        +        4 => "/(?P<\\?(?>php\b)?)(?:".
        +            "(?>[^\"'?\\/<]+)|".
        +            "\\?(?!>)|".
        +            "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|".
        +            "(?>\"(?>[^\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
        +            "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
        +            "\\/\\/(?>.*?$)|".
        +            "\\/(?=[^*\\/])|".
        +            "<(?!<<)|".
        +            "<<<(?P\w+)\s.*?\s\k".
        +            ")*(?P\\?>|\Z)/sm",
        +        5 => "/(?P<%)(?:".
        +            "(?>[^\"'%\\/<]+)|".
        +            "%(?!>)|".
        +            "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|".
        +            "(?>\"(?>[^\\\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
        +            "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
        +            "\\/\\/(?>.*?$)|".
        +            "\\/(?=[^*\\/])|".
        +            "<(?!<<)|".
        +            "<<<(?P\w+)\s.*?\s\k".
        +            ")*(?P%>)/sm"
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/php.php b/Sources/geshi/php.php
        new file mode 100644
        index 0000000..2827457
        --- /dev/null
        +++ b/Sources/geshi/php.php
        @@ -0,0 +1,1117 @@
        + 'PHP',
        +    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Heredoc and Nowdoc syntax
        +        3 => '/<<<\s*?(\'?)([a-zA-Z0-9]+?)\1[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU',
        +        // phpdoc comments
        +        4 => '#/\*\*(?![\*\/]).*\*/#sU',
        +        // Advanced # handling
        +        2 => "/#.*?(?:(?=\?\>)|^)/smi"
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        //Simple Single Char Escapes
        +        1 => "#\\\\[nfrtv\$\"\n\\\\]#i",
        +        //Hexadecimal Char Specs
        +        2 => "#\\\\x[\da-fA-F]{1,2}#i",
        +        //Octal Char Specs
        +        3 => "#\\\\[0-7]{1,3}#",
        +        //String Parsing of Variable Names
        +        4 => "#\\$[a-z0-9_]+(?:\\[[a-z0-9_]+\\]|->[a-z0-9_]+)?|(?:\\{\\$|\\$\\{)[a-z0-9_]+(?:\\[('?)[a-z0-9_]*\\1\\]|->[a-z0-9_]+)*\\}#i",
        +        //Experimental extension supporting cascaded {${$var}} syntax
        +        5 => "#\$[a-z0-9_]+(?:\[[a-z0-9_]+\]|->[a-z0-9_]+)?|(?:\{\$|\$\{)[a-z0-9_]+(?:\[('?)[a-z0-9_]*\\1\]|->[a-z0-9_]+)*\}|\{\$(?R)\}#i",
        +        //Format String support in ""-Strings
        +        6 => "#%(?:%|(?:\d+\\\\\\\$)?\\+?(?:\x20|0|'.)?-?(?:\d+|\\*)?(?:\.\d+)?[bcdefFosuxX])#"
        +        ),
        +    'HARDQUOTE' => array("'", "'"),
        +    'HARDESCAPE' => array("'", "\\"),
        +    'HARDCHAR' => "\\",
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX |
        +        GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'as','break','case','continue','default','do','else','elseif',
        +            'endfor','endforeach','endif','endswitch','endwhile','for',
        +            'foreach','if','include','include_once','require','require_once',
        +            'return','switch','throw','while',
        +
        +            'echo','print'
        +            ),
        +        2 => array(
        +            '&new','</script>','<?php','<script language',
        +            'abstract','class','const','declare','extends','function','global',
        +            'interface','namespace','new','private','protected','public','self',
        +            'use','var'
        +            ),
        +        3 => array(
        +            'abs','acos','acosh','addcslashes','addslashes','aggregate',
        +            'aggregate_methods','aggregate_methods_by_list',
        +            'aggregate_methods_by_regexp','aggregate_properties',
        +            'aggregate_properties_by_list','aggregate_properties_by_regexp',
        +            'aggregation_info','apache_child_terminate','apache_get_modules',
        +            'apache_get_version','apache_getenv','apache_lookup_uri',
        +            'apache_note','apache_request_headers','apache_response_headers',
        +            'apache_setenv','array','array_change_key_case','array_chunk',
        +            'array_combine','array_count_values','array_diff',
        +            'array_diff_assoc','array_diff_key','array_diff_uassoc',
        +            'array_diff_ukey','array_fill','array_fill_keys','array_filter',
        +            'array_flip','array_intersect','array_intersect_assoc',
        +            'array_intersect_key','array_intersect_uassoc',
        +            'array_intersect_ukey','array_key_exists','array_keys','array_map',
        +            'array_merge','array_merge_recursive','array_multisort','array_pad',
        +            'array_pop','array_product','array_push','array_rand',
        +            'array_reduce','array_reverse','array_search','array_shift',
        +            'array_slice','array_splice','array_sum','array_udiff',
        +            'array_udiff_assoc','array_udiff_uassoc','array_uintersect',
        +            'array_uintersect_assoc','array_uintersect_uassoc','array_unique',
        +            'array_unshift','array_values','array_walk','array_walk_recursive',
        +            'arsort','asin','asinh','asort','assert','assert_options','atan',
        +            'atan2','atanh','base_convert','base64_decode','base64_encode',
        +            'basename','bcadd','bccomp','bcdiv','bcmod','bcmul',
        +            'bcompiler_load','bcompiler_load_exe','bcompiler_parse_class',
        +            'bcompiler_read','bcompiler_write_class','bcompiler_write_constant',
        +            'bcompiler_write_exe_footer','bcompiler_write_file',
        +            'bcompiler_write_footer','bcompiler_write_function',
        +            'bcompiler_write_functions_from_file','bcompiler_write_header',
        +            'bcompiler_write_included_filename','bcpow','bcpowmod','bcscale',
        +            'bcsqrt','bcsub','bin2hex','bindec','bindtextdomain',
        +            'bind_textdomain_codeset','bitset_empty','bitset_equal',
        +            'bitset_excl','bitset_fill','bitset_from_array','bitset_from_hash',
        +            'bitset_from_string','bitset_in','bitset_incl',
        +            'bitset_intersection','bitset_invert','bitset_is_empty',
        +            'bitset_subset','bitset_to_array','bitset_to_hash',
        +            'bitset_to_string','bitset_union','blenc_encrypt','bzclose',
        +            'bzcompress','bzdecompress','bzerrno','bzerror','bzerrstr',
        +            'bzflush','bzopen','bzread','bzwrite','cal_days_in_month',
        +            'cal_from_jd','cal_info','cal_to_jd','call_user_func',
        +            'call_user_func_array','call_user_method','call_user_method_array',
        +            'ceil','chdir','checkdate','checkdnsrr','chgrp','chmod','chop',
        +            'chown','chr','chunk_split','class_exists','class_implements',
        +            'class_parents','classkit_aggregate_methods',
        +            'classkit_doc_comments','classkit_import','classkit_method_add',
        +            'classkit_method_copy','classkit_method_redefine',
        +            'classkit_method_remove','classkit_method_rename','clearstatcache',
        +            'closedir','closelog','com_create_guid','com_event_sink',
        +            'com_get_active_object','com_load_typelib','com_message_pump',
        +            'com_print_typeinfo','compact','confirm_phpdoc_compiled',
        +            'connection_aborted','connection_status','constant',
        +            'convert_cyr_string','convert_uudecode','convert_uuencode','copy',
        +            'cos','cosh','count','count_chars','cpdf_add_annotation',
        +            'cpdf_add_outline','cpdf_arc','cpdf_begin_text','cpdf_circle',
        +            'cpdf_clip','cpdf_close','cpdf_closepath',
        +            'cpdf_closepath_fill_stroke','cpdf_closepath_stroke',
        +            'cpdf_continue_text','cpdf_curveto','cpdf_end_text','cpdf_fill',
        +            'cpdf_fill_stroke','cpdf_finalize','cpdf_finalize_page',
        +            'cpdf_global_set_document_limits','cpdf_import_jpeg','cpdf_lineto',
        +            'cpdf_moveto','cpdf_newpath','cpdf_open','cpdf_output_buffer',
        +            'cpdf_page_init','cpdf_rect','cpdf_restore','cpdf_rlineto',
        +            'cpdf_rmoveto','cpdf_rotate','cpdf_rotate_text','cpdf_save',
        +            'cpdf_save_to_file','cpdf_scale','cpdf_set_action_url',
        +            'cpdf_set_char_spacing','cpdf_set_creator','cpdf_set_current_page',
        +            'cpdf_set_font','cpdf_set_font_directories',
        +            'cpdf_set_font_map_file','cpdf_set_horiz_scaling',
        +            'cpdf_set_keywords','cpdf_set_leading','cpdf_set_page_animation',
        +            'cpdf_set_subject','cpdf_set_text_matrix','cpdf_set_text_pos',
        +            'cpdf_set_text_rendering','cpdf_set_text_rise','cpdf_set_title',
        +            'cpdf_set_viewer_preferences','cpdf_set_word_spacing',
        +            'cpdf_setdash','cpdf_setflat','cpdf_setgray','cpdf_setgray_fill',
        +            'cpdf_setgray_stroke','cpdf_setlinecap','cpdf_setlinejoin',
        +            'cpdf_setlinewidth','cpdf_setmiterlimit','cpdf_setrgbcolor',
        +            'cpdf_setrgbcolor_fill','cpdf_setrgbcolor_stroke','cpdf_show',
        +            'cpdf_show_xy','cpdf_stringwidth','cpdf_stroke','cpdf_text',
        +            'cpdf_translate','crack_check','crack_closedict',
        +            'crack_getlastmessage','crack_opendict','crc32','create_function',
        +            'crypt','ctype_alnum','ctype_alpha','ctype_cntrl','ctype_digit',
        +            'ctype_graph','ctype_lower','ctype_print','ctype_punct',
        +            'ctype_space','ctype_upper','ctype_xdigit','curl_close',
        +            'curl_copy_handle','curl_errno','curl_error','curl_exec',
        +            'curl_getinfo','curl_init','curl_multi_add_handle',
        +            'curl_multi_close','curl_multi_exec','curl_multi_getcontent',
        +            'curl_multi_info_read','curl_multi_init','curl_multi_remove_handle',
        +            'curl_multi_select','curl_setopt','curl_setopt_array',
        +            'curl_version','current','cvsclient_connect','cvsclient_log',
        +            'cvsclient_login','cvsclient_retrieve','date','date_create',
        +            'date_date_set','date_default_timezone_get',
        +            'date_default_timezone_set','date_format','date_isodate_set',
        +            'date_modify','date_offset_get','date_parse','date_sun_info',
        +            'date_sunrise','date_sunset','date_time_set','date_timezone_get',
        +            'date_timezone_set','db_id_list','dba_close','dba_delete',
        +            'dba_exists','dba_fetch','dba_firstkey','dba_handlers','dba_insert',
        +            'dba_key_split','dba_list','dba_nextkey','dba_open','dba_optimize',
        +            'dba_popen','dba_replace','dba_sync','dbase_add_record',
        +            'dbase_close','dbase_create','dbase_delete_record',
        +            'dbase_get_header_info','dbase_get_record',
        +            'dbase_get_record_with_names','dbase_numfields','dbase_numrecords',
        +            'dbase_open','dbase_pack','dbase_replace_record',
        +            'dbg_get_all_contexts','dbg_get_all_module_names',
        +            'dbg_get_all_source_lines','dbg_get_context_name',
        +            'dbg_get_module_name','dbg_get_profiler_results',
        +            'dbg_get_source_context','dblist','dbmclose','dbmdelete',
        +            'dbmexists','dbmfetch','dbmfirstkey','dbminsert','dbmnextkey',
        +            'dbmopen','dbmreplace','dbx_close','dbx_compare','dbx_connect',
        +            'dbx_error','dbx_escape_string','dbx_fetch_row','dbx_query',
        +            'dbx_sort','dcgettext','dcngettext','deaggregate','debug_backtrace',
        +            'debug_zval_dump','debugbreak','decbin','dechex','decoct','define',
        +            'defined','define_syslog_variables','deg2rad','dgettext','die',
        +            'dio_close','dio_open','dio_read','dio_seek','dio_stat','dio_write',
        +            'dir','dirname','disk_free_space','disk_total_space',
        +            'diskfreespace','dl','dngettext','docblock_token_name',
        +            'docblock_tokenize','dom_import_simplexml','domxml_add_root',
        +            'domxml_attributes','domxml_children','domxml_doc_add_root',
        +            'domxml_doc_document_element','domxml_doc_get_element_by_id',
        +            'domxml_doc_get_elements_by_tagname','domxml_doc_get_root',
        +            'domxml_doc_set_root','domxml_doc_validate','domxml_doc_xinclude',
        +            'domxml_dump_mem','domxml_dump_mem_file','domxml_dump_node',
        +            'domxml_dumpmem','domxml_elem_get_attribute',
        +            'domxml_elem_set_attribute','domxml_get_attribute','domxml_getattr',
        +            'domxml_html_dump_mem','domxml_new_child','domxml_new_doc',
        +            'domxml_new_xmldoc','domxml_node','domxml_node_add_namespace',
        +            'domxml_node_attributes','domxml_node_children',
        +            'domxml_node_get_content','domxml_node_has_attributes',
        +            'domxml_node_new_child','domxml_node_set_content',
        +            'domxml_node_set_namespace','domxml_node_unlink_node',
        +            'domxml_open_file','domxml_open_mem','domxml_parser',
        +            'domxml_parser_add_chunk','domxml_parser_cdata_section',
        +            'domxml_parser_characters','domxml_parser_comment',
        +            'domxml_parser_end','domxml_parser_end_document',
        +            'domxml_parser_end_element','domxml_parser_entity_reference',
        +            'domxml_parser_get_document','domxml_parser_namespace_decl',
        +            'domxml_parser_processing_instruction',
        +            'domxml_parser_start_document','domxml_parser_start_element',
        +            'domxml_root','domxml_set_attribute','domxml_setattr',
        +            'domxml_substitute_entities_default','domxml_unlink_node',
        +            'domxml_version','domxml_xmltree','doubleval','each','easter_date',
        +            'easter_days','empty','end','ereg','ereg_replace','eregi',
        +            'eregi_replace','error_get_last','error_log','error_reporting',
        +            'escapeshellarg','escapeshellcmd','eval','event_deschedule',
        +            'event_dispatch','event_free','event_handle_signal',
        +            'event_have_events','event_init','event_new','event_pending',
        +            'event_priority_set','event_schedule','event_set','event_timeout',
        +            'exec','exif_imagetype','exif_read_data','exif_tagname',
        +            'exif_thumbnail','exit','exp','explode','expm1','extension_loaded',
        +            'extract','ezmlm_hash','fbird_add_user','fbird_affected_rows',
        +            'fbird_backup','fbird_blob_add','fbird_blob_cancel',
        +            'fbird_blob_close','fbird_blob_create','fbird_blob_echo',
        +            'fbird_blob_get','fbird_blob_import','fbird_blob_info',
        +            'fbird_blob_open','fbird_close','fbird_commit','fbird_commit_ret',
        +            'fbird_connect','fbird_db_info','fbird_delete_user','fbird_drop_db',
        +            'fbird_errcode','fbird_errmsg','fbird_execute','fbird_fetch_assoc',
        +            'fbird_fetch_object','fbird_fetch_row','fbird_field_info',
        +            'fbird_free_event_handler','fbird_free_query','fbird_free_result',
        +            'fbird_gen_id','fbird_maintain_db','fbird_modify_user',
        +            'fbird_name_result','fbird_num_fields','fbird_num_params',
        +            'fbird_param_info','fbird_pconnect','fbird_prepare','fbird_query',
        +            'fbird_restore','fbird_rollback','fbird_rollback_ret',
        +            'fbird_server_info','fbird_service_attach','fbird_service_detach',
        +            'fbird_set_event_handler','fbird_trans','fbird_wait_event','fclose',
        +            'fdf_add_doc_javascript','fdf_add_template','fdf_close',
        +            'fdf_create','fdf_enum_values','fdf_errno','fdf_error','fdf_get_ap',
        +            'fdf_get_attachment','fdf_get_encoding','fdf_get_file',
        +            'fdf_get_flags','fdf_get_opt','fdf_get_status','fdf_get_value',
        +            'fdf_get_version','fdf_header','fdf_next_field_name','fdf_open',
        +            'fdf_open_string','fdf_remove_item','fdf_save','fdf_save_string',
        +            'fdf_set_ap','fdf_set_encoding','fdf_set_file','fdf_set_flags',
        +            'fdf_set_javascript_action','fdf_set_on_import_javascript',
        +            'fdf_set_opt','fdf_set_status','fdf_set_submit_form_action',
        +            'fdf_set_target_frame','fdf_set_value','fdf_set_version','feof',
        +            'fflush','fgetc','fgetcsv','fgets','fgetss','file','file_exists',
        +            'file_get_contents','file_put_contents','fileatime','filectime',
        +            'filegroup','fileinode','filemtime','fileowner','fileperms',
        +            'filepro','filepro_fieldcount','filepro_fieldname',
        +            'filepro_fieldtype','filepro_fieldwidth','filepro_retrieve',
        +            'filepro_rowcount','filesize','filetype','filter_has_var',
        +            'filter_id','filter_input','filter_input_array','filter_list',
        +            'filter_var','filter_var_array','finfo_buffer','finfo_close',
        +            'finfo_file','finfo_open','finfo_set_flags','floatval','flock',
        +            'floor','flush','fmod','fnmatch','fopen','fpassthru','fprintf',
        +            'fputcsv','fputs','fread','frenchtojd','fribidi_charset_info',
        +            'fribidi_get_charsets','fribidi_log2vis','fscanf','fseek',
        +            'fsockopen','fstat','ftell','ftok','ftp_alloc','ftp_cdup',
        +            'ftp_chdir','ftp_chmod','ftp_close','ftp_connect','ftp_delete',
        +            'ftp_exec','ftp_fget','ftp_fput','ftp_get','ftp_get_option',
        +            'ftp_login','ftp_mdtm','ftp_mkdir','ftp_nb_continue','ftp_nb_fget',
        +            'ftp_nb_fput','ftp_nb_get','ftp_nb_put','ftp_nlist','ftp_pasv',
        +            'ftp_put','ftp_pwd','ftp_quit','ftp_raw','ftp_rawlist','ftp_rename',
        +            'ftp_rmdir','ftp_set_option','ftp_site','ftp_size',
        +            'ftp_ssl_connect','ftp_systype','ftruncate','function_exists',
        +            'func_get_arg','func_get_args','func_num_args','fwrite','gd_info',
        +            'getallheaders','getcwd','getdate','getenv','gethostbyaddr',
        +            'gethostbyname','gethostbynamel','getimagesize','getlastmod',
        +            'getmxrr','getmygid','getmyinode','getmypid','getmyuid','getopt',
        +            'getprotobyname','getprotobynumber','getrandmax','getrusage',
        +            'getservbyname','getservbyport','gettext','gettimeofday','gettype',
        +            'get_browser','get_cfg_var','get_class','get_class_methods',
        +            'get_class_vars','get_current_user','get_declared_classes',
        +            'get_defined_constants','get_defined_functions','get_defined_vars',
        +            'get_extension_funcs','get_headers','get_html_translation_table',
        +            'get_included_files','get_include_path','get_loaded_extensions',
        +            'get_magic_quotes_gpc','get_magic_quotes_runtime','get_meta_tags',
        +            'get_object_vars','get_parent_class','get_required_files',
        +            'get_resource_type','glob','gmdate','gmmktime','gmp_abs','gmp_add',
        +            'gmp_and','gmp_clrbit','gmp_cmp','gmp_com','gmp_div','gmp_div_q',
        +            'gmp_div_qr','gmp_div_r','gmp_divexact','gmp_fact','gmp_gcd',
        +            'gmp_gcdext','gmp_hamdist','gmp_init','gmp_intval','gmp_invert',
        +            'gmp_jacobi','gmp_legendre','gmp_mod','gmp_mul','gmp_neg',
        +            'gmp_nextprime','gmp_or','gmp_perfect_square','gmp_popcount',
        +            'gmp_pow','gmp_powm','gmp_prob_prime','gmp_random','gmp_scan0',
        +            'gmp_scan1','gmp_setbit','gmp_sign','gmp_sqrt','gmp_sqrtrem',
        +            'gmp_strval','gmp_sub','gmp_xor','gmstrftime','gopher_parsedir',
        +            'gregoriantojd','gzclose','gzcompress','gzdeflate','gzencode',
        +            'gzeof','gzfile','gzgetc','gzgets','gzgetss','gzinflate','gzopen',
        +            'gzpassthru','gzputs','gzread','gzrewind','gzseek','gztell',
        +            'gzuncompress','gzwrite','hash','hash_algos','hash_file',
        +            'hash_final','hash_hmac','hash_hmac_file','hash_init','hash_update',
        +            'hash_update_file','hash_update_stream','header','headers_list',
        +            'headers_sent','hebrev','hebrevc','hexdec','highlight_file',
        +            'highlight_string','html_doc','html_doc_file','html_entity_decode',
        +            'htmlentities','htmlspecialchars','htmlspecialchars_decode',
        +            'http_build_cookie','http_build_query','http_build_str',
        +            'http_build_url','http_cache_etag','http_cache_last_modified',
        +            'http_chunked_decode','http_date','http_deflate','http_get',
        +            'http_get_request_body','http_get_request_body_stream',
        +            'http_get_request_headers','http_head','http_inflate',
        +            'http_match_etag','http_match_modified','http_match_request_header',
        +            'http_negotiate_charset','http_negotiate_content_type',
        +            'http_negotiate_language','http_parse_cookie','http_parse_headers',
        +            'http_parse_message','http_parse_params',
        +            'http_persistent_handles_clean','http_persistent_handles_count',
        +            'http_persistent_handles_ident','http_post_data','http_post_fields',
        +            'http_put_data','http_put_file','http_put_stream','http_redirect',
        +            'http_request','http_request_body_encode',
        +            'http_request_method_exists','http_request_method_name',
        +            'http_request_method_register','http_request_method_unregister',
        +            'http_send_content_disposition','http_send_content_type',
        +            'http_send_data','http_send_file','http_send_last_modified',
        +            'http_send_status','http_send_stream','http_support',
        +            'http_throttle','hypot','i18n_convert','i18n_discover_encoding',
        +            'i18n_http_input','i18n_http_output','i18n_internal_encoding',
        +            'i18n_ja_jp_hantozen','i18n_mime_header_decode',
        +            'i18n_mime_header_encode','ibase_add_user','ibase_affected_rows',
        +            'ibase_backup','ibase_blob_add','ibase_blob_cancel',
        +            'ibase_blob_close','ibase_blob_create','ibase_blob_echo',
        +            'ibase_blob_get','ibase_blob_import','ibase_blob_info',
        +            'ibase_blob_open','ibase_close','ibase_commit','ibase_commit_ret',
        +            'ibase_connect','ibase_db_info','ibase_delete_user','ibase_drop_db',
        +            'ibase_errcode','ibase_errmsg','ibase_execute','ibase_fetch_assoc',
        +            'ibase_fetch_object','ibase_fetch_row','ibase_field_info',
        +            'ibase_free_event_handler','ibase_free_query','ibase_free_result',
        +            'ibase_gen_id','ibase_maintain_db','ibase_modify_user',
        +            'ibase_name_result','ibase_num_fields','ibase_num_params',
        +            'ibase_param_info','ibase_pconnect','ibase_prepare','ibase_query',
        +            'ibase_restore','ibase_rollback','ibase_rollback_ret',
        +            'ibase_server_info','ibase_service_attach','ibase_service_detach',
        +            'ibase_set_event_handler','ibase_trans','ibase_wait_event','iconv',
        +            'iconv_get_encoding','iconv_mime_decode',
        +            'iconv_mime_decode_headers','iconv_mime_encode',
        +            'iconv_set_encoding','iconv_strlen','iconv_strpos','iconv_strrpos',
        +            'iconv_substr','id3_get_frame_long_name','id3_get_frame_short_name',
        +            'id3_get_genre_id','id3_get_genre_list','id3_get_genre_name',
        +            'id3_get_tag','id3_get_version','id3_remove_tag','id3_set_tag',
        +            'idate','ignore_user_abort','image_type_to_extension',
        +            'image_type_to_mime_type','image2wbmp','imagealphablending',
        +            'imageantialias','imagearc','imagechar','imagecharup',
        +            'imagecolorallocate','imagecolorallocatealpha','imagecolorat',
        +            'imagecolorclosest','imagecolorclosestalpha','imagecolordeallocate',
        +            'imagecolorexact','imagecolorexactalpha','imagecolormatch',
        +            'imagecolorresolve','imagecolorresolvealpha','imagecolorset',
        +            'imagecolorsforindex','imagecolorstotal','imagecolortransparent',
        +            'imageconvolution','imagecopy','imagecopymerge',
        +            'imagecopymergegray','imagecopyresampled','imagecopyresized',
        +            'imagecreate','imagecreatefromgd','imagecreatefromgd2',
        +            'imagecreatefromgd2part','imagecreatefromgif','imagecreatefromjpeg',
        +            'imagecreatefrompng','imagecreatefromstring','imagecreatefromwbmp',
        +            'imagecreatefromxbm','imagecreatetruecolor','imagedashedline',
        +            'imagedestroy','imageellipse','imagefill','imagefilledarc',
        +            'imagefilledellipse','imagefilledpolygon','imagefilledrectangle',
        +            'imagefilltoborder','imagefilter','imagefontheight',
        +            'imagefontwidth','imageftbbox','imagefttext','imagegammacorrect',
        +            'imagegd','imagegd2','imagegif','imagegrabscreen','imagegrabwindow',
        +            'imageinterlace','imageistruecolor','imagejpeg','imagelayereffect',
        +            'imageline','imageloadfont','imagepalettecopy','imagepng',
        +            'imagepolygon','imagepsbbox','imagepsencodefont',
        +            'imagepsextendfont','imagepsfreefont','imagepsloadfont',
        +            'imagepsslantfont','imagepstext','imagerectangle','imagerotate',
        +            'imagesavealpha','imagesetbrush','imagesetpixel','imagesetstyle',
        +            'imagesetthickness','imagesettile','imagestring','imagestringup',
        +            'imagesx','imagesy','imagetruecolortopalette','imagettfbbox',
        +            'imagettftext','imagetypes','imagewbmp','imagexbm','imap_8bit',
        +            'imap_alerts','imap_append','imap_base64','imap_binary','imap_body',
        +            'imap_bodystruct','imap_check','imap_clearflag_full','imap_close',
        +            'imap_create','imap_createmailbox','imap_delete',
        +            'imap_deletemailbox','imap_errors','imap_expunge',
        +            'imap_fetch_overview','imap_fetchbody','imap_fetchheader',
        +            'imap_fetchstructure','imap_fetchtext','imap_get_quota',
        +            'imap_get_quotaroot','imap_getacl','imap_getmailboxes',
        +            'imap_getsubscribed','imap_header','imap_headerinfo','imap_headers',
        +            'imap_last_error','imap_list','imap_listmailbox',
        +            'imap_listsubscribed','imap_lsub','imap_mail','imap_mail_compose',
        +            'imap_mail_copy','imap_mail_move','imap_mailboxmsginfo',
        +            'imap_mime_header_decode','imap_msgno','imap_num_msg',
        +            'imap_num_recent','imap_open','imap_ping','imap_qprint',
        +            'imap_rename','imap_renamemailbox','imap_reopen',
        +            'imap_rfc822_parse_adrlist','imap_rfc822_parse_headers',
        +            'imap_rfc822_write_address','imap_savebody','imap_scan',
        +            'imap_scanmailbox','imap_search','imap_set_quota','imap_setacl',
        +            'imap_setflag_full','imap_sort','imap_status','imap_subscribe',
        +            'imap_thread','imap_timeout','imap_uid','imap_undelete',
        +            'imap_unsubscribe','imap_utf7_decode','imap_utf7_encode',
        +            'imap_utf8','implode','import_request_variables','in_array',
        +            'ini_alter','ini_get','ini_get_all','ini_restore','ini_set',
        +            'intval','ip2long','iptcembed','iptcparse','isset','is_a',
        +            'is_array','is_bool','is_callable','is_dir','is_double',
        +            'is_executable','is_file','is_finite','is_float','is_infinite',
        +            'is_int','is_integer','is_link','is_long','is_nan','is_null',
        +            'is_numeric','is_object','is_readable','is_real','is_resource',
        +            'is_scalar','is_soap_fault','is_string','is_subclass_of',
        +            'is_uploaded_file','is_writable','is_writeable','iterator_apply',
        +            'iterator_count','iterator_to_array','java_last_exception_clear',
        +            'java_last_exception_get','jddayofweek','jdmonthname','jdtofrench',
        +            'jdtogregorian','jdtojewish','jdtojulian','jdtounix','jewishtojd',
        +            'join','jpeg2wbmp','json_decode','json_encode','juliantojd','key',
        +            'key_exists','krsort','ksort','lcg_value','ldap_add','ldap_bind',
        +            'ldap_close','ldap_compare','ldap_connect','ldap_count_entries',
        +            'ldap_delete','ldap_dn2ufn','ldap_err2str','ldap_errno',
        +            'ldap_error','ldap_explode_dn','ldap_first_attribute',
        +            'ldap_first_entry','ldap_first_reference','ldap_free_result',
        +            'ldap_get_attributes','ldap_get_dn','ldap_get_entries',
        +            'ldap_get_option','ldap_get_values','ldap_get_values_len',
        +            'ldap_list','ldap_mod_add','ldap_mod_del','ldap_mod_replace',
        +            'ldap_modify','ldap_next_attribute','ldap_next_entry',
        +            'ldap_next_reference','ldap_parse_reference','ldap_parse_result',
        +            'ldap_read','ldap_rename','ldap_search','ldap_set_option',
        +            'ldap_sort','ldap_start_tls','ldap_unbind','levenshtein',
        +            'libxml_clear_errors','libxml_get_errors','libxml_get_last_error',
        +            'libxml_set_streams_context','libxml_use_internal_errors','link',
        +            'linkinfo','list','localeconv','localtime','log','log1p','log10',
        +            'long2ip','lstat','ltrim','lzf_compress','lzf_decompress',
        +            'lzf_optimized_for','magic_quotes_runtime','mail','max','mbereg',
        +            'mberegi','mberegi_replace','mbereg_match','mbereg_replace',
        +            'mbereg_search','mbereg_search_getpos','mbereg_search_getregs',
        +            'mbereg_search_init','mbereg_search_pos','mbereg_search_regs',
        +            'mbereg_search_setpos','mbregex_encoding','mbsplit','mbstrcut',
        +            'mbstrlen','mbstrpos','mbstrrpos','mbsubstr','mb_check_encoding',
        +            'mb_convert_case','mb_convert_encoding','mb_convert_kana',
        +            'mb_convert_variables','mb_decode_mimeheader',
        +            'mb_decode_numericentity','mb_detect_encoding','mb_detect_order',
        +            'mb_encode_mimeheader','mb_encode_numericentity','mb_ereg',
        +            'mb_eregi','mb_eregi_replace','mb_ereg_match','mb_ereg_replace',
        +            'mb_ereg_search','mb_ereg_search_getpos','mb_ereg_search_getregs',
        +            'mb_ereg_search_init','mb_ereg_search_pos','mb_ereg_search_regs',
        +            'mb_ereg_search_setpos','mb_get_info','mb_http_input',
        +            'mb_http_output','mb_internal_encoding','mb_language',
        +            'mb_list_encodings','mb_output_handler','mb_parse_str',
        +            'mb_preferred_mime_name','mb_regex_encoding','mb_regex_set_options',
        +            'mb_send_mail','mb_split','mb_strcut','mb_strimwidth','mb_stripos',
        +            'mb_stristr','mb_strlen','mb_strpos','mb_strrchr','mb_strrichr',
        +            'mb_strripos','mb_strrpos','mb_strstr','mb_strtolower',
        +            'mb_strtoupper','mb_strwidth','mb_substitute_character','mb_substr',
        +            'mb_substr_count','mcrypt_cbc','mcrypt_cfb','mcrypt_create_iv',
        +            'mcrypt_decrypt','mcrypt_ecb','mcrypt_enc_get_algorithms_name',
        +            'mcrypt_enc_get_block_size','mcrypt_enc_get_iv_size',
        +            'mcrypt_enc_get_key_size','mcrypt_enc_get_modes_name',
        +            'mcrypt_enc_get_supported_key_sizes',
        +            'mcrypt_enc_is_block_algorithm',
        +            'mcrypt_enc_is_block_algorithm_mode','mcrypt_enc_is_block_mode',
        +            'mcrypt_enc_self_test','mcrypt_encrypt','mcrypt_generic',
        +            'mcrypt_generic_deinit','mcrypt_generic_end','mcrypt_generic_init',
        +            'mcrypt_get_block_size','mcrypt_get_cipher_name',
        +            'mcrypt_get_iv_size','mcrypt_get_key_size','mcrypt_list_algorithms',
        +            'mcrypt_list_modes','mcrypt_module_close',
        +            'mcrypt_module_get_algo_block_size',
        +            'mcrypt_module_get_algo_key_size',
        +            'mcrypt_module_get_supported_key_sizes',
        +            'mcrypt_module_is_block_algorithm',
        +            'mcrypt_module_is_block_algorithm_mode',
        +            'mcrypt_module_is_block_mode','mcrypt_module_open',
        +            'mcrypt_module_self_test','mcrypt_ofb','md5','md5_file',
        +            'mdecrypt_generic','memcache_add','memcache_add_server',
        +            'memcache_close','memcache_connect','memcache_debug',
        +            'memcache_decrement','memcache_delete','memcache_flush',
        +            'memcache_get','memcache_get_extended_stats',
        +            'memcache_get_server_status','memcache_get_stats',
        +            'memcache_get_version','memcache_increment','memcache_pconnect',
        +            'memcache_replace','memcache_set','memcache_set_compress_threshold',
        +            'memcache_set_server_params','memory_get_peak_usage',
        +            'memory_get_usage','metaphone','mhash','mhash_count',
        +            'mhash_get_block_size','mhash_get_hash_name','mhash_keygen_s2k',
        +            'method_exists','microtime','mime_content_type','min',
        +            'ming_keypress','ming_setcubicthreshold','ming_setscale',
        +            'ming_useconstants','ming_useswfversion','mkdir','mktime',
        +            'money_format','move_uploaded_file','msql','msql_affected_rows',
        +            'msql_close','msql_connect','msql_create_db','msql_createdb',
        +            'msql_data_seek','msql_db_query','msql_dbname','msql_drop_db',
        +            'msql_dropdb','msql_error','msql_fetch_array','msql_fetch_field',
        +            'msql_fetch_object','msql_fetch_row','msql_field_flags',
        +            'msql_field_len','msql_field_name','msql_field_seek',
        +            'msql_field_table','msql_field_type','msql_fieldflags',
        +            'msql_fieldlen','msql_fieldname','msql_fieldtable','msql_fieldtype',
        +            'msql_free_result','msql_freeresult','msql_list_dbs',
        +            'msql_list_fields','msql_list_tables','msql_listdbs',
        +            'msql_listfields','msql_listtables','msql_num_fields',
        +            'msql_num_rows','msql_numfields','msql_numrows','msql_pconnect',
        +            'msql_query','msql_regcase','msql_result','msql_select_db',
        +            'msql_selectdb','msql_tablename','mssql_bind','mssql_close',
        +            'mssql_connect','mssql_data_seek','mssql_execute',
        +            'mssql_fetch_array','mssql_fetch_assoc','mssql_fetch_batch',
        +            'mssql_fetch_field','mssql_fetch_object','mssql_fetch_row',
        +            'mssql_field_length','mssql_field_name','mssql_field_seek',
        +            'mssql_field_type','mssql_free_result','mssql_free_statement',
        +            'mssql_get_last_message','mssql_guid_string','mssql_init',
        +            'mssql_min_error_severity','mssql_min_message_severity',
        +            'mssql_next_result','mssql_num_fields','mssql_num_rows',
        +            'mssql_pconnect','mssql_query','mssql_result','mssql_rows_affected',
        +            'mssql_select_db','mt_getrandmax','mt_rand','mt_srand','mysql',
        +            'mysql_affected_rows','mysql_client_encoding','mysql_close',
        +            'mysql_connect','mysql_createdb','mysql_create_db',
        +            'mysql_data_seek','mysql_dbname','mysql_db_name','mysql_db_query',
        +            'mysql_dropdb','mysql_drop_db','mysql_errno','mysql_error',
        +            'mysql_escape_string','mysql_fetch_array','mysql_fetch_assoc',
        +            'mysql_fetch_field','mysql_fetch_lengths','mysql_fetch_object',
        +            'mysql_fetch_row','mysql_fieldflags','mysql_fieldlen',
        +            'mysql_fieldname','mysql_fieldtable','mysql_fieldtype',
        +            'mysql_field_flags','mysql_field_len','mysql_field_name',
        +            'mysql_field_seek','mysql_field_table','mysql_field_type',
        +            'mysql_freeresult','mysql_free_result','mysql_get_client_info',
        +            'mysql_get_host_info','mysql_get_proto_info',
        +            'mysql_get_server_info','mysql_info','mysql_insert_id',
        +            'mysql_listdbs','mysql_listfields','mysql_listtables',
        +            'mysql_list_dbs','mysql_list_fields','mysql_list_processes',
        +            'mysql_list_tables','mysql_numfields','mysql_numrows',
        +            'mysql_num_fields','mysql_num_rows','mysql_pconnect','mysql_ping',
        +            'mysql_query','mysql_real_escape_string','mysql_result',
        +            'mysql_selectdb','mysql_select_db','mysql_set_charset','mysql_stat',
        +            'mysql_tablename','mysql_table_name','mysql_thread_id',
        +            'mysql_unbuffered_query','mysqli_affected_rows','mysqli_autocommit',
        +            'mysqli_bind_param','mysqli_bind_result','mysqli_change_user',
        +            'mysqli_character_set_name','mysqli_client_encoding','mysqli_close',
        +            'mysqli_commit','mysqli_connect','mysqli_connect_errno',
        +            'mysqli_connect_error','mysqli_data_seek','mysqli_debug',
        +            'mysqli_disable_reads_from_master','mysqli_disable_rpl_parse',
        +            'mysqli_dump_debug_info','mysqli_embedded_server_end',
        +            'mysqli_embedded_server_start','mysqli_enable_reads_from_master',
        +            'mysqli_enable_rpl_parse','mysqli_errno','mysqli_error',
        +            'mysqli_escape_string','mysqli_execute','mysqli_fetch',
        +            'mysqli_fetch_array','mysqli_fetch_assoc','mysqli_fetch_field',
        +            'mysqli_fetch_field_direct','mysqli_fetch_fields',
        +            'mysqli_fetch_lengths','mysqli_fetch_object','mysqli_fetch_row',
        +            'mysqli_field_count','mysqli_field_seek','mysqli_field_tell',
        +            'mysqli_free_result','mysqli_get_charset','mysqli_get_client_info',
        +            'mysqli_get_client_version','mysqli_get_host_info',
        +            'mysqli_get_metadata','mysqli_get_proto_info',
        +            'mysqli_get_server_info','mysqli_get_server_version',
        +            'mysqli_get_warnings','mysqli_info','mysqli_init',
        +            'mysqli_insert_id','mysqli_kill','mysqli_master_query',
        +            'mysqli_more_results','mysqli_multi_query','mysqli_next_result',
        +            'mysqli_num_fields','mysqli_num_rows','mysqli_options',
        +            'mysqli_param_count','mysqli_ping','mysqli_prepare','mysqli_query',
        +            'mysqli_real_connect','mysqli_real_escape_string',
        +            'mysqli_real_query','mysqli_report','mysqli_rollback',
        +            'mysqli_rpl_parse_enabled','mysqli_rpl_probe',
        +            'mysqli_rpl_query_type','mysqli_select_db','mysqli_send_long_data',
        +            'mysqli_send_query','mysqli_set_charset',
        +            'mysqli_set_local_infile_default','mysqli_set_local_infile_handler',
        +            'mysqli_set_opt','mysqli_slave_query','mysqli_sqlstate',
        +            'mysqli_ssl_set','mysqli_stat','mysqli_stmt_affected_rows',
        +            'mysqli_stmt_attr_get','mysqli_stmt_attr_set',
        +            'mysqli_stmt_bind_param','mysqli_stmt_bind_result',
        +            'mysqli_stmt_close','mysqli_stmt_data_seek','mysqli_stmt_errno',
        +            'mysqli_stmt_error','mysqli_stmt_execute','mysqli_stmt_fetch',
        +            'mysqli_stmt_field_count','mysqli_stmt_free_result',
        +            'mysqli_stmt_get_warnings','mysqli_stmt_init',
        +            'mysqli_stmt_insert_id','mysqli_stmt_num_rows',
        +            'mysqli_stmt_param_count','mysqli_stmt_prepare','mysqli_stmt_reset',
        +            'mysqli_stmt_result_metadata','mysqli_stmt_send_long_data',
        +            'mysqli_stmt_sqlstate','mysqli_stmt_store_result',
        +            'mysqli_store_result','mysqli_thread_id','mysqli_thread_safe',
        +            'mysqli_use_result','mysqli_warning_count','natcasesort','natsort',
        +            'new_xmldoc','next','ngettext','nl2br','nl_langinfo',
        +            'ntuser_getdomaincontroller','ntuser_getusergroups',
        +            'ntuser_getuserinfo','ntuser_getuserlist','number_format',
        +            'ob_clean','ob_deflatehandler','ob_end_clean','ob_end_flush',
        +            'ob_etaghandler','ob_flush','ob_get_clean','ob_get_contents',
        +            'ob_get_flush','ob_get_length','ob_get_level','ob_get_status',
        +            'ob_gzhandler','ob_iconv_handler','ob_implicit_flush',
        +            'ob_inflatehandler','ob_list_handlers','ob_start','ob_tidyhandler',
        +            'octdec','odbc_autocommit','odbc_binmode','odbc_close',
        +            'odbc_close_all','odbc_columnprivileges','odbc_columns',
        +            'odbc_commit','odbc_connect','odbc_cursor','odbc_data_source',
        +            'odbc_do','odbc_error','odbc_errormsg','odbc_exec','odbc_execute',
        +            'odbc_fetch_array','odbc_fetch_into','odbc_fetch_object',
        +            'odbc_fetch_row','odbc_field_len','odbc_field_name',
        +            'odbc_field_num','odbc_field_precision','odbc_field_scale',
        +            'odbc_field_type','odbc_foreignkeys','odbc_free_result',
        +            'odbc_gettypeinfo','odbc_longreadlen','odbc_next_result',
        +            'odbc_num_fields','odbc_num_rows','odbc_pconnect','odbc_prepare',
        +            'odbc_primarykeys','odbc_procedurecolumns','odbc_procedures',
        +            'odbc_result','odbc_result_all','odbc_rollback','odbc_setoption',
        +            'odbc_specialcolumns','odbc_statistics','odbc_tableprivileges',
        +            'odbc_tables','opendir','openlog','openssl_csr_export',
        +            'openssl_csr_export_to_file','openssl_csr_get_public_key',
        +            'openssl_csr_get_subject','openssl_csr_new','openssl_csr_sign',
        +            'openssl_error_string','openssl_free_key','openssl_get_privatekey',
        +            'openssl_get_publickey','openssl_open','openssl_pkcs12_export',
        +            'openssl_pkcs12_export_to_file','openssl_pkcs12_read',
        +            'openssl_pkcs7_decrypt','openssl_pkcs7_encrypt',
        +            'openssl_pkcs7_sign','openssl_pkcs7_verify','openssl_pkey_export',
        +            'openssl_pkey_export_to_file','openssl_pkey_free',
        +            'openssl_pkey_get_details','openssl_pkey_get_private',
        +            'openssl_pkey_get_public','openssl_pkey_new',
        +            'openssl_private_decrypt','openssl_private_encrypt',
        +            'openssl_public_decrypt','openssl_public_encrypt','openssl_seal',
        +            'openssl_sign','openssl_verify','openssl_x509_checkpurpose',
        +            'openssl_x509_check_private_key','openssl_x509_export',
        +            'openssl_x509_export_to_file','openssl_x509_free',
        +            'openssl_x509_parse','openssl_x509_read','ord',
        +            'output_add_rewrite_var','output_reset_rewrite_vars','overload',
        +            'outputdebugstring','pack','parse_ini_file','parse_str','parse_url',
        +            'parsekit_compile_file','parsekit_compile_string',
        +            'parsekit_func_arginfo','parsekit_opcode_flags',
        +            'parsekit_opcode_name','passthru','pathinfo','pclose',
        +            'pdf_add_bookmark','pdf_add_launchlink','pdf_add_locallink',
        +            'pdf_add_nameddest','pdf_add_note','pdf_add_pdflink',
        +            'pdf_add_thumbnail','pdf_add_weblink','pdf_arc','pdf_arcn',
        +            'pdf_attach_file','pdf_begin_font','pdf_begin_glyph',
        +            'pdf_begin_page','pdf_begin_pattern','pdf_begin_template',
        +            'pdf_circle','pdf_clip','pdf_close','pdf_close_image',
        +            'pdf_close_pdi','pdf_close_pdi_page','pdf_closepath',
        +            'pdf_closepath_fill_stroke','pdf_closepath_stroke','pdf_concat',
        +            'pdf_continue_text','pdf_create_gstate','pdf_create_pvf',
        +            'pdf_curveto','pdf_delete','pdf_delete_pvf','pdf_encoding_set_char',
        +            'pdf_end_font','pdf_end_glyph','pdf_end_page','pdf_end_pattern',
        +            'pdf_end_template','pdf_endpath','pdf_fill','pdf_fill_imageblock',
        +            'pdf_fill_pdfblock','pdf_fill_stroke','pdf_fill_textblock',
        +            'pdf_findfont','pdf_fit_image','pdf_fit_pdi_page',
        +            'pdf_fit_textline','pdf_get_apiname','pdf_get_buffer',
        +            'pdf_get_errmsg','pdf_get_errnum','pdf_get_parameter',
        +            'pdf_get_pdi_parameter','pdf_get_pdi_value','pdf_get_value',
        +            'pdf_initgraphics','pdf_lineto','pdf_load_font',
        +            'pdf_load_iccprofile','pdf_load_image','pdf_makespotcolor',
        +            'pdf_moveto','pdf_new','pdf_open_ccitt','pdf_open_file',
        +            'pdf_open_image','pdf_open_image_file','pdf_open_pdi',
        +            'pdf_open_pdi_page','pdf_place_image','pdf_place_pdi_page',
        +            'pdf_process_pdi','pdf_rect','pdf_restore','pdf_rotate','pdf_save',
        +            'pdf_scale','pdf_set_border_color','pdf_set_border_dash',
        +            'pdf_set_border_style','pdf_set_gstate','pdf_set_info',
        +            'pdf_set_parameter','pdf_set_text_pos','pdf_set_value',
        +            'pdf_setcolor','pdf_setdash','pdf_setdashpattern','pdf_setflat',
        +            'pdf_setfont','pdf_setlinecap','pdf_setlinejoin','pdf_setlinewidth',
        +            'pdf_setmatrix','pdf_setmiterlimit','pdf_setpolydash','pdf_shading',
        +            'pdf_shading_pattern','pdf_shfill','pdf_show','pdf_show_boxed',
        +            'pdf_show_xy','pdf_skew','pdf_stringwidth','pdf_stroke',
        +            'pdf_translate','pdo_drivers','pfsockopen','pg_affected_rows',
        +            'pg_cancel_query','pg_clientencoding','pg_client_encoding',
        +            'pg_close','pg_cmdtuples','pg_connect','pg_connection_busy',
        +            'pg_connection_reset','pg_connection_status','pg_convert',
        +            'pg_copy_from','pg_copy_to','pg_dbname','pg_delete','pg_end_copy',
        +            'pg_errormessage','pg_escape_bytea','pg_escape_string','pg_exec',
        +            'pg_execute','pg_fetch_all','pg_fetch_all_columns','pg_fetch_array',
        +            'pg_fetch_assoc','pg_fetch_object','pg_fetch_result','pg_fetch_row',
        +            'pg_fieldisnull','pg_fieldname','pg_fieldnum','pg_fieldprtlen',
        +            'pg_fieldsize','pg_fieldtype','pg_field_is_null','pg_field_name',
        +            'pg_field_num','pg_field_prtlen','pg_field_size','pg_field_table',
        +            'pg_field_type','pg_field_type_oid','pg_free_result',
        +            'pg_freeresult','pg_get_notify','pg_get_pid','pg_get_result',
        +            'pg_getlastoid','pg_host','pg_insert','pg_last_error',
        +            'pg_last_notice','pg_last_oid','pg_loclose','pg_locreate',
        +            'pg_loexport','pg_loimport','pg_loopen','pg_loread','pg_loreadall',
        +            'pg_lounlink','pg_lowrite','pg_lo_close','pg_lo_create',
        +            'pg_lo_export','pg_lo_import','pg_lo_open','pg_lo_read',
        +            'pg_lo_read_all','pg_lo_seek','pg_lo_tell','pg_lo_unlink',
        +            'pg_lo_write','pg_meta_data','pg_numfields','pg_numrows',
        +            'pg_num_fields','pg_num_rows','pg_options','pg_parameter_status',
        +            'pg_pconnect','pg_ping','pg_port','pg_prepare','pg_put_line',
        +            'pg_query','pg_query_params','pg_result','pg_result_error',
        +            'pg_result_error_field','pg_result_seek','pg_result_status',
        +            'pg_select','pg_send_execute','pg_send_prepare','pg_send_query',
        +            'pg_send_query_params','pg_set_client_encoding',
        +            'pg_set_error_verbosity','pg_setclientencoding','pg_trace',
        +            'pg_transaction_status','pg_tty','pg_unescape_bytea','pg_untrace',
        +            'pg_update','pg_version','php_egg_logo_guid','php_ini_loaded_file',
        +            'php_ini_scanned_files','php_logo_guid','php_real_logo_guid',
        +            'php_sapi_name','php_strip_whitespace','php_uname','phpcredits',
        +            'phpdoc_xml_from_string','phpinfo','phpversion','pi','png2wbmp',
        +            'pop3_close','pop3_delete_message','pop3_get_account_size',
        +            'pop3_get_message','pop3_get_message_count',
        +            'pop3_get_message_header','pop3_get_message_ids',
        +            'pop3_get_message_size','pop3_get_message_sizes','pop3_open',
        +            'pop3_undelete','popen','pos','posix_ctermid','posix_errno',
        +            'posix_getcwd','posix_getegid','posix_geteuid','posix_getgid',
        +            'posix_getgrgid','posix_getgrnam','posix_getgroups',
        +            'posix_getlogin','posix_getpgid','posix_getpgrp','posix_getpid',
        +            'posix_getppid','posix_getpwnam','posix_getpwuid','posix_getrlimit',
        +            'posix_getsid','posix_getuid','posix_get_last_error','posix_isatty',
        +            'posix_kill','posix_mkfifo','posix_setegid','posix_seteuid',
        +            'posix_setgid','posix_setpgid','posix_setsid','posix_setuid',
        +            'posix_strerror','posix_times','posix_ttyname','posix_uname','pow',
        +            'preg_grep','preg_last_error','preg_match','preg_match_all',
        +            'preg_quote','preg_replace','preg_replace_callback','preg_split',
        +            'prev','print_r','printf','proc_close','proc_get_status',
        +            'proc_open','proc_terminate','putenv','quoted_printable_decode',
        +            'quotemeta','rad2deg','radius_acct_open','radius_add_server',
        +            'radius_auth_open','radius_close','radius_config',
        +            'radius_create_request','radius_cvt_addr','radius_cvt_int',
        +            'radius_cvt_string','radius_demangle','radius_demangle_mppe_key',
        +            'radius_get_attr','radius_get_vendor_attr','radius_put_addr',
        +            'radius_put_attr','radius_put_int','radius_put_string',
        +            'radius_put_vendor_addr','radius_put_vendor_attr',
        +            'radius_put_vendor_int','radius_put_vendor_string',
        +            'radius_request_authenticator','radius_send_request',
        +            'radius_server_secret','radius_strerror','rand','range',
        +            'rawurldecode','rawurlencode','read_exif_data','readdir','readfile',
        +            'readgzfile','readlink','realpath','reg_close_key','reg_create_key',
        +            'reg_enum_key','reg_enum_value','reg_get_value','reg_open_key',
        +            'reg_set_value','register_shutdown_function',
        +            'register_tick_function','rename','res_close','res_get','res_list',
        +            'res_list_type','res_open','res_set','reset',
        +            'restore_error_handler','restore_include_path','rewind','rewinddir',
        +            'rmdir','round','rsort','rtrim','runkit_class_adopt',
        +            'runkit_class_emancipate','runkit_constant_add',
        +            'runkit_constant_redefine','runkit_constant_remove',
        +            'runkit_default_property_add','runkit_function_add',
        +            'runkit_function_copy','runkit_function_redefine',
        +            'runkit_function_remove','runkit_function_rename','runkit_import',
        +            'runkit_lint','runkit_lint_file','runkit_method_add',
        +            'runkit_method_copy','runkit_method_redefine',
        +            'runkit_method_remove','runkit_method_rename','runkit_object_id',
        +            'runkit_return_value_used','runkit_sandbox_output_handler',
        +            'runkit_superglobals','runkit_zval_inspect','scandir','sem_acquire',
        +            'sem_get','sem_release','sem_remove','serialize',
        +            'session_cache_expire','session_cache_limiter','session_commit',
        +            'session_decode','session_destroy','session_encode',
        +            'session_get_cookie_params','session_id','session_is_registered',
        +            'session_module_name','session_name','session_regenerate_id',
        +            'session_register','session_save_path','session_set_cookie_params',
        +            'session_set_save_handler','session_start','session_unregister',
        +            'session_unset','session_write_close','set_content',
        +            'set_error_handler','set_file_buffer','set_include_path',
        +            'set_magic_quotes_runtime','set_socket_blocking','set_time_limit',
        +            'setcookie','setlocale','setrawcookie','settype','sha1','sha1_file',
        +            'shell_exec','shmop_close','shmop_delete','shmop_open','shmop_read',
        +            'shmop_size','shmop_write','shm_attach','shm_detach','shm_get_var',
        +            'shm_put_var','shm_remove','shm_remove_var','show_source','shuffle',
        +            'similar_text','simplexml_import_dom','simplexml_load_file',
        +            'simplexml_load_string','sin','sinh','sizeof','sleep','smtp_close',
        +            'smtp_cmd_data','smtp_cmd_mail','smtp_cmd_rcpt','smtp_connect',
        +            'snmp_get_quick_print','snmp_get_valueretrieval','snmp_read_mib',
        +            'snmp_set_quick_print','snmp_set_valueretrieval','snmp2_get',
        +            'snmp2_getnext','snmp2_real_walk','snmp2_set','snmp2_walk',
        +            'snmp3_get','snmp3_getnext','snmp3_real_walk','snmp3_set',
        +            'snmp3_walk','snmpget','snmpgetnext','snmprealwalk','snmpset',
        +            'snmpwalk','snmpwalkoid','socket_accept','socket_bind',
        +            'socket_clear_error','socket_close','socket_connect',
        +            'socket_create','socket_create_listen','socket_create_pair',
        +            'socket_getopt','socket_getpeername','socket_getsockname',
        +            'socket_get_option','socket_get_status','socket_iovec_add',
        +            'socket_iovec_alloc','socket_iovec_delete','socket_iovec_fetch',
        +            'socket_iovec_free','socket_iovec_set','socket_last_error',
        +            'socket_listen','socket_read','socket_readv','socket_recv',
        +            'socket_recvfrom','socket_recvmsg','socket_select','socket_send',
        +            'socket_sendmsg','socket_sendto','socket_setopt','socket_set_block',
        +            'socket_set_blocking','socket_set_nonblock','socket_set_option',
        +            'socket_set_timeout','socket_shutdown','socket_strerror',
        +            'socket_write','socket_writev','sort','soundex','spl_autoload',
        +            'spl_autoload_call','spl_autoload_extensions',
        +            'spl_autoload_functions','spl_autoload_register',
        +            'spl_autoload_unregister','spl_classes','spl_object_hash','split',
        +            'spliti','sprintf','sql_regcase','sqlite_array_query',
        +            'sqlite_busy_timeout','sqlite_changes','sqlite_close',
        +            'sqlite_column','sqlite_create_aggregate','sqlite_create_function',
        +            'sqlite_current','sqlite_error_string','sqlite_escape_string',
        +            'sqlite_exec','sqlite_factory','sqlite_fetch_all',
        +            'sqlite_fetch_array','sqlite_fetch_column_types',
        +            'sqlite_fetch_object','sqlite_fetch_single','sqlite_fetch_string',
        +            'sqlite_field_name','sqlite_has_more','sqlite_has_prev',
        +            'sqlite_last_error','sqlite_last_insert_rowid','sqlite_libencoding',
        +            'sqlite_libversion','sqlite_next','sqlite_num_fields',
        +            'sqlite_num_rows','sqlite_open','sqlite_popen','sqlite_prev',
        +            'sqlite_query','sqlite_rewind','sqlite_seek','sqlite_single_query',
        +            'sqlite_udf_decode_binary','sqlite_udf_encode_binary',
        +            'sqlite_unbuffered_query','sqlite_valid','sqrt','srand','sscanf',
        +            'ssh2_auth_hostbased_file','ssh2_auth_none','ssh2_auth_password',
        +            'ssh2_auth_pubkey_file','ssh2_connect','ssh2_exec',
        +            'ssh2_fetch_stream','ssh2_fingerprint','ssh2_forward_accept',
        +            'ssh2_forward_listen','ssh2_methods_negotiated','ssh2_poll',
        +            'ssh2_publickey_add','ssh2_publickey_init','ssh2_publickey_list',
        +            'ssh2_publickey_remove','ssh2_scp_recv','ssh2_scp_send','ssh2_sftp',
        +            'ssh2_sftp_lstat','ssh2_sftp_mkdir','ssh2_sftp_readlink',
        +            'ssh2_sftp_realpath','ssh2_sftp_rename','ssh2_sftp_rmdir',
        +            'ssh2_sftp_stat','ssh2_sftp_symlink','ssh2_sftp_unlink',
        +            'ssh2_shell','ssh2_tunnel','stat','stats_absolute_deviation',
        +            'stats_cdf_beta','stats_cdf_binomial','stats_cdf_cauchy',
        +            'stats_cdf_chisquare','stats_cdf_exponential','stats_cdf_f',
        +            'stats_cdf_gamma','stats_cdf_laplace','stats_cdf_logistic',
        +            'stats_cdf_negative_binomial','stats_cdf_noncentral_chisquare',
        +            'stats_cdf_noncentral_f','stats_cdf_noncentral_t',
        +            'stats_cdf_normal','stats_cdf_poisson','stats_cdf_t',
        +            'stats_cdf_uniform','stats_cdf_weibull','stats_covariance',
        +            'stats_dens_beta','stats_dens_cauchy','stats_dens_chisquare',
        +            'stats_dens_exponential','stats_dens_f','stats_dens_gamma',
        +            'stats_dens_laplace','stats_dens_logistic','stats_dens_normal',
        +            'stats_dens_pmf_binomial','stats_dens_pmf_hypergeometric',
        +            'stats_dens_pmf_negative_binomial','stats_dens_pmf_poisson',
        +            'stats_dens_t','stats_dens_uniform','stats_dens_weibull',
        +            'stats_harmonic_mean','stats_kurtosis','stats_rand_gen_beta',
        +            'stats_rand_gen_chisquare','stats_rand_gen_exponential',
        +            'stats_rand_gen_f','stats_rand_gen_funiform','stats_rand_gen_gamma',
        +            'stats_rand_gen_ipoisson','stats_rand_gen_iuniform',
        +            'stats_rand_gen_noncenral_f','stats_rand_gen_noncentral_chisquare',
        +            'stats_rand_gen_noncentral_t','stats_rand_gen_normal',
        +            'stats_rand_gen_t','stats_rand_getsd','stats_rand_ibinomial',
        +            'stats_rand_ibinomial_negative','stats_rand_ignlgi',
        +            'stats_rand_phrase_to_seeds','stats_rand_ranf','stats_rand_setall',
        +            'stats_skew','stats_standard_deviation','stats_stat_binomial_coef',
        +            'stats_stat_correlation','stats_stat_factorial',
        +            'stats_stat_independent_t','stats_stat_innerproduct',
        +            'stats_stat_paired_t','stats_stat_percentile','stats_stat_powersum',
        +            'stats_variance','strcasecmp','strchr','strcmp','strcoll','strcspn',
        +            'stream_bucket_append','stream_bucket_make_writeable',
        +            'stream_bucket_new','stream_bucket_prepend','stream_context_create',
        +            'stream_context_get_default','stream_context_get_options',
        +            'stream_context_set_default','stream_context_set_option',
        +            'stream_context_set_params','stream_copy_to_stream',
        +            'stream_encoding','stream_filter_append','stream_filter_prepend',
        +            'stream_filter_register','stream_filter_remove',
        +            'stream_get_contents','stream_get_filters','stream_get_line',
        +            'stream_get_meta_data','stream_get_transports',
        +            'stream_get_wrappers','stream_is_local',
        +            'stream_notification_callback','stream_register_wrapper',
        +            'stream_resolve_include_path','stream_select','stream_set_blocking',
        +            'stream_set_timeout','stream_set_write_buffer',
        +            'stream_socket_accept','stream_socket_client',
        +            'stream_socket_enable_crypto','stream_socket_get_name',
        +            'stream_socket_pair','stream_socket_recvfrom',
        +            'stream_socket_sendto','stream_socket_server',
        +            'stream_socket_shutdown','stream_supports_lock',
        +            'stream_wrapper_register','stream_wrapper_restore',
        +            'stream_wrapper_unregister','strftime','stripcslashes','stripos',
        +            'stripslashes','strip_tags','stristr','strlen','strnatcasecmp',
        +            'strnatcmp','strpbrk','strncasecmp','strncmp','strpos','strrchr',
        +            'strrev','strripos','strrpos','strspn','strstr','strtok',
        +            'strtolower','strtotime','strtoupper','strtr','strval',
        +            'str_ireplace','str_pad','str_repeat','str_replace','str_rot13',
        +            'str_split','str_shuffle','str_word_count','substr',
        +            'substr_compare','substr_count','substr_replace','svn_add',
        +            'svn_auth_get_parameter','svn_auth_set_parameter','svn_cat',
        +            'svn_checkout','svn_cleanup','svn_client_version','svn_commit',
        +            'svn_diff','svn_export','svn_fs_abort_txn','svn_fs_apply_text',
        +            'svn_fs_begin_txn2','svn_fs_change_node_prop','svn_fs_check_path',
        +            'svn_fs_contents_changed','svn_fs_copy','svn_fs_delete',
        +            'svn_fs_dir_entries','svn_fs_file_contents','svn_fs_file_length',
        +            'svn_fs_is_dir','svn_fs_is_file','svn_fs_make_dir',
        +            'svn_fs_make_file','svn_fs_node_created_rev','svn_fs_node_prop',
        +            'svn_fs_props_changed','svn_fs_revision_prop',
        +            'svn_fs_revision_root','svn_fs_txn_root','svn_fs_youngest_rev',
        +            'svn_import','svn_info','svn_log','svn_ls','svn_repos_create',
        +            'svn_repos_fs','svn_repos_fs_begin_txn_for_commit',
        +            'svn_repos_fs_commit_txn','svn_repos_hotcopy','svn_repos_open',
        +            'svn_repos_recover','svn_status','svn_update','symlink',
        +            'sys_get_temp_dir','syslog','system','tan','tanh','tempnam',
        +            'textdomain','thread_get','thread_include','thread_lock',
        +            'thread_lock_try','thread_mutex_destroy','thread_mutex_init',
        +            'thread_set','thread_start','thread_unlock','tidy_access_count',
        +            'tidy_clean_repair','tidy_config_count','tidy_diagnose',
        +            'tidy_error_count','tidy_get_body','tidy_get_config',
        +            'tidy_get_error_buffer','tidy_get_head','tidy_get_html',
        +            'tidy_get_html_ver','tidy_get_output','tidy_get_release',
        +            'tidy_get_root','tidy_get_status','tidy_getopt','tidy_is_xhtml',
        +            'tidy_is_xml','tidy_parse_file','tidy_parse_string',
        +            'tidy_repair_file','tidy_repair_string','tidy_warning_count','time',
        +            'timezone_abbreviations_list','timezone_identifiers_list',
        +            'timezone_name_from_abbr','timezone_name_get','timezone_offset_get',
        +            'timezone_open','timezone_transitions_get','tmpfile',
        +            'token_get_all','token_name','touch','trigger_error',
        +            'transliterate','transliterate_filters_get','trim','uasort',
        +            'ucfirst','ucwords','uksort','umask','uniqid','unixtojd','unlink',
        +            'unpack','unregister_tick_function','unserialize','unset',
        +            'urldecode','urlencode','user_error','use_soap_error_handler',
        +            'usleep','usort','utf8_decode','utf8_encode','var_dump',
        +            'var_export','variant_abs','variant_add','variant_and',
        +            'variant_cast','variant_cat','variant_cmp',
        +            'variant_date_from_timestamp','variant_date_to_timestamp',
        +            'variant_div','variant_eqv','variant_fix','variant_get_type',
        +            'variant_idiv','variant_imp','variant_int','variant_mod',
        +            'variant_mul','variant_neg','variant_not','variant_or',
        +            'variant_pow','variant_round','variant_set','variant_set_type',
        +            'variant_sub','variant_xor','version_compare','virtual','vfprintf',
        +            'vprintf','vsprintf','wddx_add_vars','wddx_deserialize',
        +            'wddx_packet_end','wddx_packet_start','wddx_serialize_value',
        +            'wddx_serialize_vars','win_beep','win_browse_file',
        +            'win_browse_folder','win_create_link','win_message_box',
        +            'win_play_wav','win_shell_execute','win32_create_service',
        +            'win32_delete_service','win32_get_last_control_message',
        +            'win32_ps_list_procs','win32_ps_stat_mem','win32_ps_stat_proc',
        +            'win32_query_service_status','win32_scheduler_delete_task',
        +            'win32_scheduler_enum_tasks','win32_scheduler_get_task_info',
        +            'win32_scheduler_run','win32_scheduler_set_task_info',
        +            'win32_set_service_status','win32_start_service',
        +            'win32_start_service_ctrl_dispatcher','win32_stop_service',
        +            'wordwrap','xml_error_string','xml_get_current_byte_index',
        +            'xml_get_current_column_number','xml_get_current_line_number',
        +            'xml_get_error_code','xml_parse','xml_parser_create',
        +            'xml_parser_create_ns','xml_parser_free','xml_parser_get_option',
        +            'xml_parser_set_option','xml_parse_into_struct',
        +            'xml_set_character_data_handler','xml_set_default_handler',
        +            'xml_set_element_handler','xml_set_end_namespace_decl_handler',
        +            'xml_set_external_entity_ref_handler',
        +            'xml_set_notation_decl_handler','xml_set_object',
        +            'xml_set_processing_instruction_handler',
        +            'xml_set_start_namespace_decl_handler',
        +            'xml_set_unparsed_entity_decl_handler','xmldoc','xmldocfile',
        +            'xmlrpc_decode','xmlrpc_decode_request','xmlrpc_encode',
        +            'xmlrpc_encode_request','xmlrpc_get_type','xmlrpc_is_fault',
        +            'xmlrpc_parse_method_descriptions',
        +            'xmlrpc_server_add_introspection_data','xmlrpc_server_call_method',
        +            'xmlrpc_server_create','xmlrpc_server_destroy',
        +            'xmlrpc_server_register_introspection_callback',
        +            'xmlrpc_server_register_method','xmlrpc_set_type','xmltree',
        +            'xmlwriter_end_attribute','xmlwriter_end_cdata',
        +            'xmlwriter_end_comment','xmlwriter_end_document',
        +            'xmlwriter_end_dtd','xmlwriter_end_dtd_attlist',
        +            'xmlwriter_end_dtd_element','xmlwriter_end_dtd_entity',
        +            'xmlwriter_end_element','xmlwriter_end_pi','xmlwriter_flush',
        +            'xmlwriter_full_end_element','xmlwriter_open_memory',
        +            'xmlwriter_open_uri','xmlwriter_output_memory',
        +            'xmlwriter_set_indent','xmlwriter_set_indent_string',
        +            'xmlwriter_start_attribute','xmlwriter_start_attribute_ns',
        +            'xmlwriter_start_cdata','xmlwriter_start_comment',
        +            'xmlwriter_start_document','xmlwriter_start_dtd',
        +            'xmlwriter_start_dtd_attlist','xmlwriter_start_dtd_element',
        +            'xmlwriter_start_dtd_entity','xmlwriter_start_element',
        +            'xmlwriter_start_element_ns','xmlwriter_start_pi','xmlwriter_text',
        +            'xmlwriter_write_attribute','xmlwriter_write_attribute_ns',
        +            'xmlwriter_write_cdata','xmlwriter_write_comment',
        +            'xmlwriter_write_dtd','xmlwriter_write_dtd_attlist',
        +            'xmlwriter_write_dtd_element','xmlwriter_write_dtd_entity',
        +            'xmlwriter_write_element','xmlwriter_write_element_ns',
        +            'xmlwriter_write_pi','xmlwriter_write_raw','xpath_eval',
        +            'xpath_eval_expression','xpath_new_context','xpath_register_ns',
        +            'xpath_register_ns_auto','xptr_eval','xptr_new_context','yp_all',
        +            'yp_cat','yp_errno','yp_err_string','yp_first',
        +            'yp_get_default_domain','yp_master','yp_match','yp_next','yp_order',
        +            'zend_current_obfuscation_level','zend_get_cfg_var','zend_get_id',
        +            'zend_loader_current_file','zend_loader_enabled',
        +            'zend_loader_file_encoded','zend_loader_file_licensed',
        +            'zend_loader_install_license','zend_loader_version',
        +            'zend_logo_guid','zend_match_hostmasks','zend_obfuscate_class_name',
        +            'zend_obfuscate_function_name','zend_optimizer_version',
        +            'zend_runtime_obfuscate','zend_version','zip_close',
        +            'zip_entry_close','zip_entry_compressedsize',
        +            'zip_entry_compressionmethod','zip_entry_filesize','zip_entry_name',
        +            'zip_entry_open','zip_entry_read','zip_open','zip_read',
        +            'zlib_get_coding_type'
        +            ),
        +        4 => array(
        +            'DEFAULT_INCLUDE_PATH', 'DIRECTORY_SEPARATOR', 'E_ALL',
        +            'E_COMPILE_ERROR', 'E_COMPILE_WARNING', 'E_CORE_ERROR',
        +            'E_CORE_WARNING', 'E_ERROR', 'E_NOTICE', 'E_PARSE', 'E_STRICT',
        +            'E_USER_ERROR', 'E_USER_NOTICE', 'E_USER_WARNING', 'E_WARNING',
        +            'ENT_COMPAT','ENT_QUOTES','ENT_NOQUOTES',
        +            'false', 'null', 'PEAR_EXTENSION_DIR', 'PEAR_INSTALL_DIR',
        +            'PHP_BINDIR', 'PHP_CONFIG_FILE_PATH', 'PHP_DATADIR',
        +            'PHP_EXTENSION_DIR', 'PHP_LIBDIR',
        +            'PHP_LOCALSTATEDIR', 'PHP_OS',
        +            'PHP_OUTPUT_HANDLER_CONT', 'PHP_OUTPUT_HANDLER_END',
        +            'PHP_OUTPUT_HANDLER_START', 'PHP_SYSCONFDIR',
        +            'PHP_VERSION', 'true', '__CLASS__', '__FILE__', '__FUNCTION__',
        +            '__LINE__', '__METHOD__'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array(
        +            '<'.'%', '<'.'%=', '%'.'>', '<'.'?', '<'.'?=', '?'.'>'
        +            ),
        +        0 => array(
        +            '(', ')', '[', ']', '{', '}',
        +            '!', '@', '%', '&', '|', '/',
        +            '<', '>',
        +            '=', '-', '+', '*',
        +            '.', ':', ',', ';'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #990000;',
        +            4 => 'color: #009900; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #666666; font-style: italic;',
        +            3 => 'color: #0000cc; font-style: italic;',
        +            4 => 'color: #009933; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            1 => 'color: #000099; font-weight: bold;',
        +            2 => 'color: #660099; font-weight: bold;',
        +            3 => 'color: #660099; font-weight: bold;',
        +            4 => 'color: #006699; font-weight: bold;',
        +            5 => 'color: #006699; font-weight: bold; font-style: italic;',
        +            6 => 'color: #009933; font-weight: bold;',
        +            'HARD' => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;',
        +            'HARD' => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;',
        +            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #004000;',
        +            2 => 'color: #004000;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;',
        +            1 => 'color: #000000; font-weight: bold;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #000088;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            2 => '',
        +            3 => '',
        +            4 => '',
        +            5 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://www.php.net/{FNAMEL}',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '->',
        +        2 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        //Variables
        +        0 => "[\\$]+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(
        +        0 => array(
        +            '<'.'?php' => '?'.'>'
        +            ),
        +        1 => array(
        +            '<'.'?' => '?'.'>'
        +            ),
        +        2 => array(
        +            '<'.'%' => '%'.'>'
        +            ),
        +        3 => array(
        +            ''
        +            ),
        +        4 => "/(?P<\\?(?>php\b)?)(?:".
        +            "(?>[^\"'?\\/<]+)|".
        +            "\\?(?!>)|".
        +            "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|".
        +            "(?>\"(?>[^\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
        +            "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
        +            "\\/\\/(?>.*?(?:\\?>|$))|".
        +            "#(?>.*?(?:\\?>|$))|".
        +            "\\/(?=[^*\\/])|".
        +            "<(?!<<)|".
        +            "<<<(?P\w+)\s.*?\s\k".
        +            ")*?(?P\\?>|\Z)/sm",
        +        5 => "/(?P<%)(?:".
        +            "(?>[^\"'%\\/<]+)|".
        +            "%(?!>)|".
        +            "(?>'(?>[^'\\\\]|\\\\'|\\\\\\\|\\\\)*')|".
        +            "(?>\"(?>[^\\\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
        +            "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
        +            "\\/\\/(?>.*?(?:%>|$))|".
        +            "#(?>.*?(?:%>|$))|".
        +            "\\/(?=[^*\\/])|".
        +            "<(?!<<)|".
        +            "<<<(?P\w+)\s.*?\s\k".
        +            ")*?(?P%>|\Z)/sm",
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        diff --git a/Sources/geshi/pic16.php b/Sources/geshi/pic16.php
        new file mode 100644
        index 0000000..46d7ac9
        --- /dev/null
        +++ b/Sources/geshi/pic16.php
        @@ -0,0 +1,141 @@
        + 'PIC16',
        +    'COMMENT_SINGLE' => array(1 => ';'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        /*Instructions*/
        +        1 => array(
        +            'addcf','adddcf','addlw','addwf','andlw','andwf','bc','bcf','bdc',
        +            'bnc','bndc','bnz','bsf','btfsc','btfss','bz','call','clrc','clrdc',
        +            'clrf','clrw','clrwdt','clrz','comf','decf','goto','incf','incfsz',
        +            'iorlw','iorwf','lcall','lgoto','movf','movfw','movlw','movwf',
        +            'option','negf','nop','retfie','retlw','return','rlf','rrf','setc',
        +            'setdc','setz','skpc','skpdc','skpnc','skpndc','skpnz','skpz',
        +            'sleep','subcf','subdcf','sublw','subwf','swapf','tris','tstf',
        +            'xorlw','xorwf'
        +            ),
        +        /*Registers*/
        +        2 => array(
        +            'INDF','TMR0','OPTION','PCL','STATUS','FSR','PORTA','PORTB','PORTC',
        +            'PORTD','PORTE','PORTF','TRISA','TRISB','TRISC','TRISD','TRISE',
        +            'TRISF','PCLATH','INTCON','PIR1','PIE1','PCON','CMCON','VRCON',
        +            'F','W'
        +            ),
        +        /*Directives*/
        +        3 => array(
        +            '_BADRAM','BANKISEL','BANKSEL','CBLOCK','CODE','_CONFIG','CONSTANT',
        +            'DA','DATA','DB','DE','#DEFINE','DT','DW','ELSE','END','ENDC',
        +            'ENDIF','ENDM','ENDW','EQU','ERROR','ERRORLEVEL','EXITM','EXPAND',
        +            'EXTERN','FILL','GLOBAL','IDATA','_IDLOCS','IF','IFDEF','IFNDEF',
        +            'INCLUDE','#INCLUDE','LIST','LOCAL','MACRO','_MAXRAM','MESSG',
        +            'NOEXPAND','NOLIST','ORG','PAGE','PAGESEL','PROCESSOR','RADIX',
        +            'RES','SET','SPACE','SUBTITLE','TITLE','UDATA','UDATA_ACS',
        +            'UDATA_OVR','UDATA_SHR','#UNDEFINE','VARIABLE','WHILE',
        +            'D','H','O','B','A'
        +            ),
        +        ),
        +    'SYMBOLS' => array('=','.',',',':'),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000a0; font-weight: bold;',
        +            2 => 'color: #aa3300; font-weight: bold;',
        +            3 => 'color: #0000ff;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #00a000;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff7700;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #ff7700;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #7777ff;'
        +            ),
        +        'REGEXPS' => array(),
        +        'SCRIPT' => array()
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC |
        +        GESHI_NUMBER_BIN_SUFFIX |
        +        GESHI_NUMBER_HEX_PREFIX |
        +        GESHI_NUMBER_HEX_SUFFIX,
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => "a-zA-Z0-9\$_\|\#>|^",
        +            'DISALLOWED_AFTER' => "a-zA-Z0-9_<\|%"
        +            )
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/pike.php b/Sources/geshi/pike.php
        new file mode 100644
        index 0000000..743f711
        --- /dev/null
        +++ b/Sources/geshi/pike.php
        @@ -0,0 +1,103 @@
        + 'Pike',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'goto', 'break', 'continue', 'return', 'case', 'default', 'if',
        +            'else', 'switch', 'while', 'foreach', 'do', 'for', 'gauge',
        +            'destruct', 'lambda', 'inherit', 'import', 'typeof', 'catch',
        +            'inline', 'nomask', 'private', 'protected', 'public', 'static'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array(
        +            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%', '=', '!', '&', '|', '?', ';'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;',
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #004000;'
        +            ),
        +        'SYMBOLS' => array(
        +            1 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(),
        +        'SCRIPT' => array()
        +        ),
        +    'URLS' => array(1 => ''),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(1 => '.'),
        +    'REGEXPS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array()
        +);
        +
        +?>
        diff --git a/Sources/geshi/pixelbender.php b/Sources/geshi/pixelbender.php
        new file mode 100644
        index 0000000..7b29ee6
        --- /dev/null
        +++ b/Sources/geshi/pixelbender.php
        @@ -0,0 +1,176 @@
        + 'Pixel Bender 1.0',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'languageVersion', 'kernel'
        +            ),
        +        2 => array(
        +            'import', 'parameter', 'dependent', 'const', 'input', 'output',
        +            'evaluatePixel', 'evaluateDependents', 'needed', 'changed', 'generated'
        +            ),
        +        3 => array(
        +            'bool', 'bool2', 'bool3', 'bool4', 'int', 'int2', 'int3', 'int4',
        +            'float', 'float2', 'float3', 'float4', 'float2x2', 'float3x3', 'float4x4',
        +            'pixel2', 'pixel3', 'pixel4', 'region', 'image1', 'image2', 'image3', 'image4',
        +            'imageRef', 'void'
        +            ),
        +        4 => array(
        +            'in', 'out', 'inout', 'if', 'else', 'for', 'while', 'do', 'break',
        +            'continue', 'return'
        +            ),
        +        5 => array(
        +            'radians', 'degrees', 'sin', 'cos', 'tan', 'asin', 'acos', 'atan', 'pow',
        +            'exp', 'exp2', 'log', 'log2', 'sqrt', 'inverseSqrt', 'abs', 'sign', 'floor',
        +            'ceil', 'fract', 'mod', 'min', 'max', 'step', 'clamp', 'mix', 'smoothStep',
        +            'length', 'distance', 'dot', 'cross', 'normalize', 'matrixCompMult', 'lessThan',
        +            'lessThanEqual', 'greaterThan', 'greaterThanEqual', 'equal', 'notEqual', 'any',
        +            'all', 'not', 'nowhere', 'everywhere', 'transform', 'union', 'intersect',
        +            'outset', 'inset', 'bounds', 'isEmpty', 'sample', 'sampleLinear', 'sampleNearest',
        +            'outCoord', 'dod', 'pixelSize', 'pixelAspectRatio'
        +            ),
        +        6 => array(
        +            'namespace', 'vendor', 'version', 'minValue', 'maxValue', 'defaultValue', 'description'
        +            ),
        +        7 => array(
        +            '#if', '#endif', '#ifdef', '#elif', 'defined', '#define',
        +            'AIF_ATI', 'AIF_NVIDIA', 'AIF_FLASH_TARGET'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '!', '%', '&', '|', '+', '-', '*', '/', '=', '<', '>', '?', ':'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0033ff;',
        +            2 => 'color: #0033ff; font-weight: bold;',
        +            3 => 'color: #0033ff;',
        +            4 => 'color: #9900cc; font-weight: bold;',
        +            5 => 'color: #333333;',
        +            6 => 'color: #666666;',
        +            7 => 'color: #990000;',
        +        ),
        +        'COMMENTS' => array(
        +            1 => 'color: #009900;',
        +            'MULTI' => 'color: #3f5fbf;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => ''
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #990000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #000000; font-weight:bold;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #000000;',
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000; font-weight: bold;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => '',
        +        7 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array('.'),
        +    'REGEXPS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array()
        +);
        +
        +
        +?>
        diff --git a/Sources/geshi/pli.php b/Sources/geshi/pli.php
        new file mode 100644
        index 0000000..c299851
        --- /dev/null
        +++ b/Sources/geshi/pli.php
        @@ -0,0 +1,200 @@
        + 'PL/I',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"', '\''),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'abnormal', 'abs', 'acos', 'acosf', 'add', 'addbuff', 'addr',
        +            'addrdata', 'alias', 'aligned', 'all', 'alloc', 'allocate',
        +            'allocation', 'allocn', 'allocsize', 'any', 'anycondition', 'area',
        +            'ascii', 'asin', 'asinf', 'asm', 'asmtdli', 'assembler',
        +            'assignable', 'atan', 'atand', 'atanf', 'atanh', 'attach',
        +            'attention', 'attn', 'auto', 'automatic', 'availablearea',
        +            'backwards', 'based', 'begin', 'bigendian', 'bin', 'binary',
        +            'binaryvalue', 'bind', 'binvalue', 'bit', 'bitloc', 'bitlocation',
        +            'bkwd', 'blksize', 'bool', 'buf', 'buffered', 'buffers', 'bufnd',
        +            'bufni', 'bufoff', 'bufsp', 'builtin', 'bx', 'by', 'byaddr', 'byte',
        +            'byvalue', 'b4', 'call', 'cast', 'cds', 'ceil', 'center',
        +            'centerleft', 'centerright', 'centre', 'centreleft', 'centreright',
        +            'char', 'character', 'charg', 'chargraphic', 'charval', 'check',
        +            'checkstg', 'close', 'cmpat', 'cobol', 'col', 'collate', 'column',
        +            'comment', 'compare', 'compiledate', 'compiletime', 'completion',
        +            'complex', 'cond', 'condition', 'conjg', 'conn', 'connected',
        +            'consecutive', 'controlled', 'conv', 'conversion', 'copy', 'cos',
        +            'cosd', 'cosf', 'cosh', 'count', 'counter', 'cpln', 'cplx', 'cs',
        +            'cstg', 'ctl', 'ctlasa', 'ctl360', 'currentsize', 'currentstorage',
        +            'data', 'datafield', 'date', 'datetime', 'days', 'daystodate',
        +            'daystosecs', 'db', 'dcl', 'dec', 'decimal', 'declare', 'def',
        +            'default', 'define', 'defined', 'delay', 'delete', 'descriptor',
        +            'descriptors', 'detach', 'dft', 'dim', 'dimacross', 'dimension',
        +            'direct', 'display', 'divide', 'do', 'downthru', 'edit', 'else',
        +            'empty', 'end', 'endfile', 'endpage', 'entry', 'entryaddr', 'env',
        +            'environment', 'epsilon', 'erf', 'erfc', 'error', 'event', 'excl',
        +            'exclusive', 'exit', 'exp', 'expf', 'exponent', 'exports', 'ext',
        +            'external', 'fb', 'fbs', 'fetch', 'file', 'fileddint', 'fileddtest',
        +            'fileddword', 'fileid', 'fileopen', 'fileread', 'fileseek',
        +            'filetell', 'filewrite', 'finish', 'first', 'fixed', 'fixedbin',
        +            'fixeddec', 'fixedoverflow', 'float', 'floatbin', 'floatdec',
        +            'floor', 'flush', 'fofl', 'format', 'fortran', 'free', 'from',
        +            'fromalien', 'fs', 'gamma', 'generic', 'genkey', 'get', 'getenv',
        +            'go', 'goto', 'graphic', 'gx', 'handle', 'hbound', 'hex', 'hexadec',
        +            'heximage', 'high', 'huge', 'iand', 'ieee', 'ieor', 'if', 'ignore',
        +            'imag', 'in', 'index', 'indexarea', 'indexed', 'init', 'initial',
        +            'inline', 'inonly', 'inot', 'inout', 'input', 'int', 'inter',
        +            'internal', 'into', 'invalidop', 'ior', 'irred', 'irreducible',
        +            'isfinite', 'isigned', 'isinf', 'isll', 'ismain', 'isnan',
        +            'isnormal', 'isrl', 'iszero', 'iunsigned', 'key', 'keyed',
        +            'keyfrom', 'keylength', 'keyloc', 'keyto', 'label', 'last',
        +            'lbound', 'leave', 'left', 'length', 'like', 'limited', 'line',
        +            'lineno', 'linesize', 'linkage', 'list', 'littleendian', 'loc',
        +            'locate', 'location', 'log', 'logf', 'loggamma', 'log10', 'log10f',
        +            'log2', 'low', 'lowercase', 'lower2', 'maccol', 'maclmar',
        +            'macname', 'macrmar', 'main', 'max', 'maxexp', 'maxlength',
        +            'memconvert', 'memcu12', 'memcu14', 'memcu21', 'memcu24', 'memcu41',
        +            'memcu42', 'memindex', 'memsearch', 'memsearchr', 'memverify',
        +            'memverifyr', 'min', 'minexp', 'mod', 'mpstr', 'multiply', 'name',
        +            'native', 'ncp', 'new', 'nocharg', 'nochargraphic', 'nocheck',
        +            'nocmpat', 'noconv', 'noconversion', 'nodescriptor', 'noexecops',
        +            'nofixedoverflow', 'nofofl', 'noinline', 'nolock', 'nomap',
        +            'nomapin', 'nomapout', 'nonasgn', 'nonassignable', 'nonconnected',
        +            'nonnative', 'noofl', 'nooverflow', 'norescan', 'normal', 'nosize',
        +            'nostrg', 'nostringrange', 'nostringsize', 'nostrz', 'nosubrg',
        +            'nosubscriptrange', 'noufl', 'nounderflow', 'nowrite', 'nozdiv',
        +            'nozerodivide', 'null', 'offset', 'offsetadd', 'offsetdiff',
        +            'offsetsubtract', 'offsetvalue', 'ofl', 'omitted', 'on', 'onarea',
        +            'onchar', 'oncode', 'oncondcond', 'oncondid', 'oncount', 'onfile',
        +            'ongsource', 'onkey', 'online', 'onloc', 'onoffset', 'onsource',
        +            'onsubcode', 'onwchar', 'onwsource', 'open', 'optional', 'options',
        +            'order', 'ordinal', 'ordinalname', 'ordinalpred', 'ordinalsucc',
        +            'other', 'otherwise', 'outonly', 'output', 'overflow', 'package',
        +            'packagename', 'page', 'pageno', 'pagesize', 'parameter', 'parmset',
        +            'password', 'pending', 'pic', 'picspec', 'picture', 'places',
        +            'pliascii', 'plicanc', 'plickpt', 'plidelete', 'plidump',
        +            'pliebcdic', 'plifill', 'plifree', 'plimove', 'pliover', 'plirest',
        +            'pliretc', 'pliretv', 'plisaxa', 'plisaxb', 'plisaxc', 'plisaxd',
        +            'plisrta', 'plisrtb', 'plisrtc', 'plisrtd', 'plitdli', 'plitran11',
        +            'plitran12', 'plitran21', 'plitran22', 'pointer', 'pointeradd',
        +            'pointerdiff', 'pointersubtract', 'pointervalue', 'poly', 'pos',
        +            'position', 'prec', 'precision', 'pred', 'present', 'print',
        +            'priority', 'proc', 'procedure', 'procedurename', 'procname',
        +            'prod', 'ptr', 'ptradd', 'ptrdiff', 'ptrsubtract', 'ptrvalue',
        +            'put', 'putenv', 'quote', 'radix', 'raise2', 'random', 'range',
        +            'rank', 'read', 'real', 'record', 'recsize', 'recursive', 'red',
        +            'reducible', 'reentrant', 'refer', 'regional', 'reg12', 'release',
        +            'rem', 'reorder', 'repattern', 'repeat', 'replaceby2', 'reply',
        +            'reread', 'rescan', 'reserved', 'reserves', 'resignal', 'respec',
        +            'retcode', 'return', 'returns', 'reuse', 'reverse', 'revert',
        +            'rewrite', 'right', 'round', 'rounddec', 'samekey', 'scalarvarying',
        +            'scale', 'search', 'searchr', 'secs', 'secstodate', 'secstodays',
        +            'select', 'seql', 'sequential', 'serialize4', 'set', 'sign',
        +            'signal', 'signed', 'sin', 'sind', 'sinf', 'sinh', 'sis', 'size',
        +            'skip', 'snap', 'sourcefile', 'sourceline', 'sqrt', 'sqrtf',
        +            'stackaddr', 'statement', 'static', 'status', 'stg', 'stmt', 'stop',
        +            'storage', 'stream', 'strg', 'string', 'stringrange', 'stringsize',
        +            'structure', 'strz', 'subrg', 'subscriptrange', 'substr',
        +            'subtract', 'succ', 'sum', 'suppress', 'sysin', 'sysnull',
        +            'sysparm', 'sysprint', 'system', 'sysversion', 'tally', 'tan',
        +            'tand', 'tanf', 'tanh', 'task', 'then', 'thread', 'threadid',
        +            'time', 'tiny', 'title', 'to', 'total', 'tpk', 'tpm', 'transient',
        +            'translate', 'transmit', 'trim', 'trkofl', 'trunc', 'type', 'ufl',
        +            'ulength', 'ulength16', 'ulength8', 'unal', 'unaligned',
        +            'unallocated', 'unbuf', 'unbuffered', 'undefinedfile', 'underflow',
        +            'undf', 'unlock', 'unsigned', 'unspec', 'until', 'update', 'upos',
        +            'uppercase', 'upthru', 'usubstr', 'usurrogate', 'uvalid', 'uwidth',
        +            'valid', 'validdate', 'value', 'var', 'varglist', 'vargsize',
        +            'variable', 'varying', 'varyingz', 'vb', 'vbs', 'verify', 'verifyr',
        +            'vs', 'vsam', 'wait', 'wchar', 'wcharval', 'weekday', 'when',
        +            'whigh', 'while', 'widechar', 'wlow', 'write', 'xmlchar', 'y4date',
        +            'y4julian', 'y4year', 'zdiv', 'zerodivide'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array(
        +            '+', '-', '*', '/', '=', '<', '>', '&', '^', '|', ':', '(', ')', ';', ','
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;'
        +            ),
        +        'COMMENTS' => array(
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;',
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #004000;'
        +            ),
        +        'SYMBOLS' => array(
        +            1 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(),
        +        'SCRIPT' => array()
        +        ),
        +    'URLS' => array(1 => ''),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(1 => '.'),
        +    'REGEXPS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array()
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/plsql.php b/Sources/geshi/plsql.php
        new file mode 100644
        index 0000000..09f90a2
        --- /dev/null
        +++ b/Sources/geshi/plsql.php
        @@ -0,0 +1,256 @@
        +
        + * Copyright: (c) 2006 Victor Engmark (http://l0b0.net/)
        + * Release Version: 1.0.8.11
        + * Date Started: 2006/10/26
        + *
        + * Oracle 9.2 PL/SQL language file for GeSHi.
        + * Formatting is based on the default setup of TOAD 8.6.
        + *
        + * CHANGES
        + * -------
        + * 2006/10/27 (1.0.0)
        + *    -    First Release
        + *
        + * TODO (updated 2006/10/27)
        + * -------------------------
        + * * Add < and > to brackets
        + * * Remove symbols which are also comment delimiters / quote marks?
        + *
        + *************************************************************************************
        + *
        + *         This file is part of GeSHi.
        + *
        + *     GeSHi is free software; you can redistribute it and/or modify
        + *     it under the terms of the GNU General Public License as published by
        + *     the Free Software Foundation; either version 2 of the License, or
        + *     (at your option) any later version.
        + *
        + *     GeSHi is distributed in the hope that it will be useful,
        + *     but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.    See the
        + *     GNU General Public License for more details.
        + *
        + *     You should have received a copy of the GNU General Public License
        + *     along with GeSHi; if not, write to the Free Software
        + *     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA    02111-1307    USA
        + *
        + ************************************************************************************/
        +
        +$language_data = array (
        +    'LANG_NAME' => 'PL/SQL',
        +    'COMMENT_SINGLE' => array(1 =>'--'), //http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm#2930
        +    'COMMENT_MULTI' => array('/*' => '*/'), //http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm#2950
        +    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
        +    'QUOTEMARKS' => array("'", '"'), //http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        //PL/SQL reserved keywords (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/f_words.htm#LNPLS019)
        +        1 => array('ZONE', 'YEAR', 'WRITE', 'WORK', 'WITH', 'WHILE', 'WHERE',
        +        'WHENEVER', 'WHEN', 'VIEW', 'VARCHAR2', 'VARCHAR', 'VALUES',
        +        'VALIDATE', 'USE', 'UPDATE', 'UNIQUE', 'UNION', 'TYPE', 'TRUE',
        +        'TRIGGER', 'TO', 'TIMEZONE_REGION', 'TIMEZONE_MINUTE', 'TIMEZONE_HOUR',
        +        'TIMEZONE_ABBR', 'TIMESTAMP', 'TIME', 'THEN', 'TABLE', 'SYNONYM',
        +        'SUCCESSFUL', 'SUBTYPE', 'START', 'SQLERRM', 'SQLCODE', 'SQL', 'SPACE',
        +        'SMALLINT', 'SHARE', 'SET', 'SEPARATE', 'SELECT', 'SECOND',
        +        'SAVEPOINT', 'ROWTYPE', 'ROWNUM', 'ROWID', 'ROW', 'ROLLBACK',
        +        'REVERSE', 'RETURN', 'RELEASE', 'RECORD', 'REAL', 'RAW', 'RANGE',
        +        'RAISE', 'PUBLIC', 'PROCEDURE', 'PRIVATE', 'PRIOR', 'PRAGMA',
        +        'POSITIVEN', 'POSITIVE', 'PLS_INTEGER', 'PCTFREE', 'PARTITION',
        +        'PACKAGE', 'OUT', 'OTHERS', 'ORGANIZATION', 'ORDER', 'OR', 'OPTION',
        +        'OPERATOR', 'OPEN', 'OPAQUE', 'ON', 'OF', 'OCIROWID', 'NUMBER_BASE',
        +        'NUMBER', 'NULL', 'NOWAIT', 'NOT', 'NOCOPY', 'NEXTVAL', 'NEW',
        +        'NATURALN', 'NATURAL', 'MONTH', 'MODE', 'MLSLABEL', 'MINUTE', 'MINUS',
        +        'LOOP', 'LONG', 'LOCK', 'LIMITED', 'LIKE', 'LEVEL', 'JAVA',
        +        'ISOLATION', 'IS', 'INTO', 'INTERVAL', 'INTERSECT', 'INTERFACE',
        +        'INTEGER', 'INSERT', 'INDICATOR', 'INDEX', 'IN', 'IMMEDIATE', 'IF',
        +        'HOUR', 'HEAP', 'HAVING', 'GROUP', 'GOTO', 'FUNCTION', 'FROM',
        +        'FORALL', 'FOR', 'FLOAT', 'FETCH', 'FALSE', 'EXTENDS', 'EXIT',
        +        'EXISTS', 'EXECUTE', 'EXCLUSIVE', 'EXCEPTION', 'END', 'ELSIF', 'ELSE',
        +        'DROP', 'DO', 'DISTINCT', 'DESC', 'DELETE', 'DEFAULT', 'DECLARE',
        +        'DECIMAL', 'DAY', 'DATE', 'CURSOR', 'CURRVAL', 'CURRENT', 'CREATE',
        +        'CONSTANT', 'CONNECT', 'COMPRESS', 'COMMIT', 'COMMENT', 'COLLECT',
        +        'CLUSTER', 'CLOSE', 'CHECK', 'CHAR_BASE', 'CHAR', 'CASE', 'BY', 'BULK',
        +        'BOOLEAN', 'BODY', 'BINARY_INTEGER', 'BETWEEN', 'BEGIN', 'AUTHID',
        +        'AT', 'ASC', 'AS', 'ARRAY', 'ANY', 'AND', 'ALTER', 'ALL'),
        +        //SQL functions (http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96540/toc.htm & http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96540/functions101a.htm#85925)
        +        2 => array('XMLTRANSFORM', 'XMLSEQUENCE', 'XMLFOREST', 'XMLELEMENT',
        +        'XMLCONCAT', 'XMLCOLATTVAL', 'XMLAGG', 'WIDTH_BUCKET', 'VSIZE',
        +        'VARIANCE', 'VAR_SAMP', 'VAR_POP', 'VALUE', 'USERENV', 'USER', 'UPPER',
        +        'UPDATEXML', 'UNISTR', 'UID', 'TZ_OFFSET', 'TRUNC', 'TRIM', 'TREAT',
        +        'TRANSLATE', 'TO_YMINTERVAL', 'TO_TIMESTAMP_TZ', 'TO_TIMESTAMP',
        +        'TO_SINGLE_BYTE', 'TO_NUMBER', 'TO_NCLOB', 'TO_NCHAR', 'TO_MULTI_BYTE',
        +        'TO_LOB', 'TO_DSINTERVAL', 'TO_DATE', 'TO_CLOB', 'TO_CHAR', 'TANH',
        +        'TAN', 'SYSTIMESTAMP', 'SYSDATE', 'SYS_XMLGEN', 'SYS_XMLAGG',
        +        'SYS_TYPEID', 'SYS_GUID', 'SYS_EXTRACT_UTC', 'SYS_DBURIGEN',
        +        'SYS_CONTEXT', 'SYS_CONNECT_BY_PATH', 'SUM', 'SUBSTR', 'STDDEV_SAMP',
        +        'STDDEV_POP', 'STDDEV', 'SQRT', 'SOUNDEX', 'SINH', 'SIN', 'SIGN',
        +        'SESSIONTIMEZONE', 'RTRIM', 'RPAD', 'ROWIDTONCHAR', 'ROWIDTOCHAR',
        +        'ROW_NUMBER', 'ROUND', 'REPLACE', 'REGR_SYY', 'REGR_SXY', 'REGR_SXX',
        +        'REGR_SLOPE', 'REGR_R2', 'REGR_INTERCEPT', 'REGR_COUNT', 'REGR_AVGY',
        +        'REGR_AVGX', 'REFTOHEX', 'REF', 'RAWTONHEX', 'RAWTOHEX',
        +        'RATIO_TO_REPORT', 'RANK', 'POWER', 'PERCENTILE_DISC',
        +        'PERCENTILE_CONT', 'PERCENT_RANK', 'PATH', 'NVL2', 'NVL',
        +        'NUMTOYMINTERVAL', 'NUMTODSINTERVAL', 'NULLIF', 'NTILE', 'NLSSORT',
        +        'NLS_UPPER', 'NLS_LOWER', 'NLS_INITCAP', 'NLS_CHARSET_NAME',
        +        'NLS_CHARSET_ID', 'NLS_CHARSET_DECL_LEN', 'NEXT_DAY', 'NEW_TIME',
        +        'NCHR', 'MONTHS_BETWEEN', 'MOD', 'MIN', 'MAX', 'MAKE_REF', 'LTRIM',
        +        'LPAD', 'LOWER', 'LOG', 'LOCALTIMESTAMP', 'LN', 'LENGTH', 'LEAST',
        +        'LEAD', 'LAST_VALUE', 'LAST_DAY', 'LAST', 'LAG', 'INSTR', 'INITCAP',
        +        'HEXTORAW', 'GROUPING_ID', 'GROUPING', 'GROUP_ID', 'GREATEST',
        +        'FROM_TZ', 'FLOOR', 'FIRST_VALUE', 'FIRST', 'EXTRACTVALUE', 'EXTRACT',
        +        'EXP', 'EXISTSNODE', 'EMPTY_CLOB', 'EMPTY_BLOB', 'DUMP', 'DEREF',
        +        'DEPTH', 'DENSE_RANK', 'DECOMPOSE', 'DECODE', 'DBTIMEZONE',
        +        'CURRENT_TIMESTAMP', 'CURRENT_DATE', 'CUME_DIST', 'COVAR_SAMP',
        +        'COVAR_POP', 'COUNT', 'COSH', 'COS', 'CORR', 'CONVERT', 'CONCAT',
        +        'COMPOSE', 'COALESCE', 'CHR', 'CHARTOROWID', 'CEIL', 'CAST', 'BITAND',
        +        'BIN_TO_NUM', 'BFILENAME', 'AVG', 'ATAN2', 'ATAN', 'ASIN', 'ASCIISTR',
        +        'ASCII', 'ADD_MONTHS', 'ACOS', 'ABS'),
        +        //PL/SQL packages (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96612/intro2.htm#1025672)
        +        3 => array('UTL_URL', 'UTL_TCP', 'UTL_SMTP', 'UTL_REF', 'UTL_RAW',
        +        'UTL_PG', 'UTL_INADDR', 'UTL_HTTP', 'UTL_FILE', 'UTL_ENCODE',
        +        'UTL_COLL', 'SDO_UTIL', 'SDO_TUNE', 'SDO_MIGRATE', 'SDO_LRS',
        +        'SDO_GEOM', 'SDO_CS', 'DMBS_XMLQUERY', 'DMBS_FLASHBACK',
        +        'DMBS_DEFER_SYS', 'DEBUG_EXTPROC', 'DBMS_XSLPROCESSOR', 'DBMS_XPLAN',
        +        'DBMS_XMLSCHEMA', 'DBMS_XMLSAVE', 'DBMS_XMLPARSER', 'DBMS_XMLGEN',
        +        'DBMS_XMLDOM', 'DBMS_XDBT', 'DBMS_XDB_VERSION', 'DBMS_XDB', 'DBMS_WM',
        +        'DBMS_UTILITY', 'DBMS_TYPES', 'DBMS_TTS', 'DBMS_TRANSFORM',
        +        'DBMS_TRANSACTION', 'DBMS_TRACE', 'DBMS_STRM_A', 'DBMS_STRM',
        +        'DBMS_STORAGE_MAP', 'DBMS_STATS', 'DBMS_SQL', 'DBMS_SPACE_ADMIN',
        +        'DBMS_SPACE', 'DBMS_SHARED_POOL', 'DBMS_SESSION', 'DBMS_RULE_ADM',
        +        'DBMS_RULE', 'DBMS_ROWID', 'DBMS_RLS', 'DBMS_RESUMABLE',
        +        'DBMS_RESOURCE_MANAGER_PRIVS', 'DBMS_RESOURCE_MANAGER', 'DBMS_REPUTIL',
        +        'DBMS_REPCAT_RGT', 'DBMS_REPCAT_INSTATIATE', 'DBMS_REPCAT_ADMIN',
        +        'DBMS_REPCAT', 'DBMS_REPAIR', 'DBMS_REFRESH', 'DBMS_REDEFINITION',
        +        'DBMS_RECTIFIER_DIFF', 'DBMS_RANDOM', 'DBMS_PROPAGATION_ADM',
        +        'DBMS_PROFILER', 'DBMS_PIPE', 'DBMS_PCLXUTIL', 'DBMS_OUTPUT',
        +        'DBMS_OUTLN_EDIT', 'DBMS_OUTLN', 'DBMS_ORACLE_TRACE_USER',
        +        'DBMS_ORACLE_TRACE_AGENT', 'DBMS_OLAP', 'DBMS_OFFLINE_SNAPSHOT',
        +        'DBMS_OFFLINE_OG', 'DBMS_ODCI', 'DBMS_OBFUSCATION_TOOLKIT',
        +        'DBMS_MVIEW', 'DBMS_MGWMSG', 'DBMS_MGWADM', 'DBMS_METADATA',
        +        'DBMS_LOGSTDBY', 'DBMS_LOGMNR_D', 'DBMS_LOGMNR_CDC_SUBSCRIBE',
        +        'DBMS_LOGMNR_CDC_PUBLISH', 'DBMS_LOGMNR', 'DBMS_LOCK', 'DBMS_LOB',
        +        'DBMS_LIBCACHE', 'DBMS_LDAP', 'DBMS_JOB', 'DBMS_IOT',
        +        'DBMS_HS_PASSTHROUGH', 'DBMS_FGA', 'DBMS_DISTRIBUTED_TRUST_ADMIN',
        +        'DBMS_DESCRIBE', 'DBMS_DEFER_QUERY', 'DBMS_DEFER', 'DBMS_DEBUG',
        +        'DBMS_DDL', 'DBMS_CAPTURE_ADM', 'DBMS_AW', 'DBMS_AQELM', 'DBMS_AQADM',
        +        'DBMS_AQ', 'DBMS_APPLY_ADM', 'DBMS_APPLICATION_INFO', 'DBMS_ALERT',
        +        'CWM2_OLAP_AW_ACCESS'),
        +        //PL/SQL predefined exceptions (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/07_errs.htm#784)
        +        4 => array('ZERO_DIVIDE', 'VALUE_ERROR', 'TOO_MANY_ROWS',
        +        'TIMEOUT_ON_RESOURCE', 'SYS_INVALID_ROWID', 'SUBSCRIPT_OUTSIDE_LIMIT',
        +        'SUBSCRIPT_BEYOND_COUNT', 'STORAGE_ERROR', 'SELF_IS_NULL',
        +        'ROWTYPE_MISMATCH', 'PROGRAM_ERROR', 'NOT_LOGGED_ON', 'NO_DATA_FOUND',
        +        'LOGIN_DENIED', 'INVALID_NUMBER', 'INVALID_CURSOR', 'DUP_VAL_ON_INDEX',
        +        'CURSOR_ALREADY_OPEN', 'COLLECTION_IS_NULL', 'CASE_NOT_FOUND',
        +        'ACCESS_INTO_NULL'),
        +        //Static data dictionary views (http://download-uk.oracle.com/docs/cd/B10501_01/server.920/a96536/ch2.htm)
        +        5 => array('USER_REPSITES', 'USER_REPSCHEMA',
        +        'USER_REPRESOLUTION_STATISTICS', 'USER_REPRESOLUTION_METHOD',
        +        'USER_REPRESOLUTION', 'USER_REPRESOL_STATS_CONTROL', 'USER_REPPROP',
        +        'USER_REPPRIORITY_GROUP', 'USER_REPPRIORITY',
        +        'USER_REPPARAMETER_COLUMN', 'USER_REPOBJECT', 'USER_REPKEY_COLUMNS',
        +        'USER_REPGROUPED_COLUMN', 'USER_REPGROUP_PRIVILEGES', 'USER_REPGROUP',
        +        'USER_REPGENOBJECTS', 'USER_REPGENERATED', 'USER_REPFLAVORS',
        +        'USER_REPFLAVOR_OBJECTS', 'USER_REPFLAVOR_COLUMNS', 'USER_REPDDL',
        +        'USER_REPCONFLICT', 'USER_REPCOLUMN_GROUP', 'USER_REPCOLUMN',
        +        'USER_REPCATLOG', 'USER_REPCAT_USER_PARM_VALUES',
        +        'USER_REPCAT_USER_AUTHORIZATIONS', 'USER_REPCAT_TEMPLATE_SITES',
        +        'USER_REPCAT_TEMPLATE_PARMS', 'USER_REPCAT_TEMPLATE_OBJECTS',
        +        'USER_REPCAT_REFRESH_TEMPLATES', 'USER_REPCAT', 'USER_REPAUDIT_COLUMN',
        +        'USER_REPAUDIT_ATTRIBUTE', 'DBA_REPSITES_NEW', 'DBA_REPSITES',
        +        'DBA_REPSCHEMA', 'DBA_REPRESOLUTION_STATISTICS',
        +        'DBA_REPRESOLUTION_METHOD', 'DBA_REPRESOLUTION',
        +        'DBA_REPRESOL_STATS_CONTROL', 'DBA_REPPROP', 'DBA_REPPRIORITY_GROUP',
        +        'DBA_REPPRIORITY', 'DBA_REPPARAMETER_COLUMN', 'DBA_REPOBJECT',
        +        'DBA_REPKEY_COLUMNS', 'DBA_REPGROUPED_COLUMN',
        +        'DBA_REPGROUP_PRIVILEGES', 'DBA_REPGROUP', 'DBA_REPGENOBJECTS',
        +        'DBA_REPGENERATED', 'DBA_REPFLAVORS', 'DBA_REPFLAVOR_OBJECTS',
        +        'DBA_REPFLAVOR_COLUMNS', 'DBA_REPEXTENSIONS', 'DBA_REPDDL',
        +        'DBA_REPCONFLICT', 'DBA_REPCOLUMN_GROUP', 'DBA_REPCOLUMN',
        +        'DBA_REPCATLOG', 'DBA_REPCAT_USER_PARM_VALUES',
        +        'DBA_REPCAT_USER_AUTHORIZATIONS', 'DBA_REPCAT_TEMPLATE_SITES',
        +        'DBA_REPCAT_TEMPLATE_PARMS', 'DBA_REPCAT_TEMPLATE_OBJECTS',
        +        'DBA_REPCAT_REFRESH_TEMPLATES', 'DBA_REPCAT_EXCEPTIONS', 'DBA_REPCAT',
        +        'DBA_REPAUDIT_COLUMN', 'DBA_REPAUDIT_ATTRIBUTE', 'ALL_REPSITES',
        +        'ALL_REPSCHEMA', 'ALL_REPRESOLUTION_STATISTICS',
        +        'ALL_REPRESOLUTION_METHOD', 'ALL_REPRESOLUTION',
        +        'ALL_REPRESOL_STATS_CONTROL', 'ALL_REPPROP', 'ALL_REPPRIORITY_GROUP',
        +        'ALL_REPPRIORITY', 'ALL_REPPARAMETER_COLUMN', 'ALL_REPOBJECT',
        +        'ALL_REPKEY_COLUMNS', 'ALL_REPGROUPED_COLUMN',
        +        'ALL_REPGROUP_PRIVILEGES', 'ALL_REPGROUP', 'ALL_REPGENOBJECTS',
        +        'ALL_REPGENERATED', 'ALL_REPFLAVORS', 'ALL_REPFLAVOR_OBJECTS',
        +        'ALL_REPFLAVOR_COLUMNS', 'ALL_REPDDL', 'ALL_REPCONFLICT',
        +        'ALL_REPCOLUMN_GROUP', 'ALL_REPCOLUMN', 'ALL_REPCATLOG',
        +        'ALL_REPCAT_USER_PARM_VALUES', 'ALL_REPCAT_USER_AUTHORIZATIONS',
        +        'ALL_REPCAT_TEMPLATE_SITES', 'ALL_REPCAT_TEMPLATE_PARMS',
        +        'ALL_REPCAT_TEMPLATE_OBJECTS', 'ALL_REPCAT_REFRESH_TEMPLATES',
        +        'ALL_REPCAT', 'ALL_REPAUDIT_COLUMN', 'ALL_REPAUDIT_ATTRIBUTE')
        +        ),
        +    'SYMBOLS' => array(
        +        //PL/SQL delimiters (http://download-uk.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm#2732)
        +        '+', '%', "'", '.', '/', '(', ')', ':', ',', '*', '"', '=', '<', '>', '@', ';', '-', ':=', '=>', '||', '**', '<<', '>>', '/*', '*/', '..', '<>', '!=', '~=', '^=', '<=', '>='
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #00F;',
        +            2 => 'color: #000;',
        +            3 => 'color: #00F;',
        +            4 => 'color: #F00;',
        +            5 => 'color: #800;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #080; font-style: italic;',
        +            'MULTI' => 'color: #080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #00F;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #F00;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #800;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #0F0;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #00F;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            0 => 'color: #0F0;'
        +            )
        +        ),
        +        'URLS' => array(
        +            1 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAMEU}',
        +            2 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAMEU}',
        +            3 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAMEU}',
        +            4 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAMEU}',
        +            5 => 'http://www.oracle.com/pls/db92/db92.drilldown?word={FNAMEU}'
        +            ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array()
        +);
        +
        +?>
        diff --git a/Sources/geshi/postgresql.php b/Sources/geshi/postgresql.php
        new file mode 100644
        index 0000000..662fdd7
        --- /dev/null
        +++ b/Sources/geshi/postgresql.php
        @@ -0,0 +1,288 @@
        + 2010-05-03
        + * Copyright: (c) 2007 Christophe Chauvet (http://kryskool.org/), Nigel McNie (http://qbnz.com/highlighter)
        + * Release Version: 1.0.8.11
        + * Date Started: 2007/07/20
        + *
        + * PostgreSQL language file for GeSHi.
        + *
        + * CHANGES
        + * -------
        + * 2007/07/20 (1.0.0)
        + *  -  First Release
        + *
        + * TODO (updated 2007/07/20)
        + * -------------------------
        + *
        + *************************************************************************************
        + *
        + *     This file is part of GeSHi.
        + *
        + *   GeSHi is free software; you can redistribute it and/or modify
        + *   it under the terms of the GNU General Public License as published by
        + *   the Free Software Foundation; either version 2 of the License, or
        + *   (at your option) any later version.
        + *
        + *   GeSHi is distributed in the hope that it will be useful,
        + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        + *   GNU General Public License for more details.
        + *
        + *   You should have received a copy of the GNU General Public License
        + *   along with GeSHi; if not, write to the Free Software
        + *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + ************************************************************************************/
        +
        +$language_data = array (
        +    'LANG_NAME' => 'PostgreSQL',
        +    'COMMENT_SINGLE' => array(1 => '--'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"', '`'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        //Put PostgreSQL reserved keywords here.  I like mine uppercase.
        +        1 => array(
        +            'ABORT','ABSOLUTE','ACCESS','ACTION','ADD','ADMIN','AFTER',
        +            'AGGREGATE','ALL','ALSO','ALTER','ALWAYS','ANALYSE','ANALYZE','AND',
        +            'ANY','AS','ASC,','ASSERTION','ASSIGNMENT','ASYMMETRIC','AT',
        +            'AUTHORIZATION','BACKWARD','BEFORE','BEGIN','BETWEEN','BOTH','BY',
        +            'CACHE','CALLED','CASCADE','CASCADED','CASE','CAST','CATALOG',
        +            'CHAIN','CHARACTERISTICS','CHECK','CHECKPOINT','CLASS','CLOSE',
        +            'CLUSTER','COALESCE','COLLATE','COLUMN','COMMENT','COMMIT',
        +            'COMMITTED','CONCURRENTLY','CONFIGURATION','CONNECTION',
        +            'CONSTRAINT','CONSTRAINTS','CONTENT','CONTINUE','CONVERSION','COPY',
        +            'COST','CREATE','CREATEDB','CREATEROLE','CREATEUSER','CROSS','CSV',
        +            'CURRENT','CURRENT_CATALOG','CURRENT_DATE','CURRENT_ROLE',
        +            'CURRENT_SCHEMA','CURRENT_TIME','CURRENT_TIMESTAMP','CURRENT_USER',
        +            'CURSOR','CYCLE','DATA','DATABASE','DAY','DEALLOCATE','DEC',
        +            'DECLARE','DEFAULT','DEFAULTS','DEFERRABLE','DEFERRED','DEFINER',
        +            'DELETE','DELIMITER','DELIMITERS','DESC','DICTIONARY','DISABLE',
        +            'DISCARD','DISTINCT','DO','DOCUMENT','DOMAIN','DOUBLE','DROP',
        +            'EACH','ELSE','ENABLE','ENCODING','ENCRYPTED','END','ESCAPE',
        +            'EXCEPT','EXCLUDING','EXCLUSIVE','EXECUTE','EXISTS','EXPLAIN',
        +            'EXTERNAL','EXTRACT','FALSE','FAMILY','FETCH','FIRST','FOLLOWING',
        +            'FOR','FORCE','FOREIGN','FORWARD','FREEZE','FROM','FULL','FUNCTION',
        +            'GLOBAL','GRANT','GRANTED','GREATEST','GROUP','HANDLER','HAVING',
        +            'HEADER','HOLD','HOUR','IDENTITY','IF','ILIKE','IMMEDIATE',
        +            'IMMUTABLE','IMPLICIT','IN','INCLUDING','INCREMENT','INDEX',
        +            'INDEXES','INHERIT','INHERITS','INITIALLY','INNER','INOUT','INPUT',
        +            'INSENSITIVE','INSERT','INSTEAD','INTERSECT','INTO','INVOKER','IS',
        +            'ISNULL','ISOLATION','JOIN','KEY','LANCOMPILER','LANGUAGE','LARGE',
        +            'LAST','LC_COLLATE','LC_CTYPE','LEADING','LEAST','LEFT','LEVEL',
        +            'LIKE','LIMIT','LISTEN','LOAD','LOCAL','LOCALTIME','LOCALTIMESTAMP',
        +            'LOCATION','LOCK','LOGIN','LOOP','MAPPING','MATCH','MAXVALUE',
        +            'MINUTE','MINVALUE','MODE','MONTH','MOVE','NAME','NAMES','NATIONAL',
        +            'NATURAL','NEW','NEXT','NO','NOCREATEDB','NOCREATEROLE',
        +            'NOCREATEUSER','NOINHERIT','NOLOGIN','NONE','NOSUPERUSER','NOT',
        +            'NOTHING','NOTIFY','NOTNULL','NOWAIT','NULL','NULLIF','NULLS',
        +            'NUMERIC','OBJECT','OF','OFF','OFFSET','OIDS','OLD','ON','ONLY',
        +            'OPERATOR','OPTION','OPTIONS','OR','ORDER','OUT','OUTER','OVER',
        +            'OVERLAPS','OVERLAY','OWNED','OWNER','PARSER','PARTIAL','PARTITION',
        +            'PASSWORD','PLACING','PLANS','POSITION','PRECEDING','PRECISION',
        +            'PREPARE','PREPARED','PRESERVE','PRIMARY','PRIOR','PRIVILEGES',
        +            'PROCEDURAL','PROCEDURE','QUOTE','RANGE','READ','REASSIGN',
        +            'RECHECK','RECURSIVE','REFERENCES','REINDEX','RELATIVE','RELEASE',
        +            'RENAME','REPEATABLE','REPLACE','REPLICA','RESET','RESTART',
        +            'RESTRICT','RETURN','RETURNING','RETURNS','REVOKE','RIGHT','ROLE',
        +            'ROLLBACK','ROW','ROWS','RULE','SAVEPOINT','SCHEMA','SCROLL',
        +            'SEARCH','SECOND',
        +            'SECURITY','SELECT','SEQUENCE','SERIALIZABLE','SERVER','SESSION',
        +            'SESSION_USER','SET','SETOF','SHARE','SHOW','SIMILAR','SIMPLE',
        +            'SOME','STABLE','STANDALONE','START','STATEMENT','STATISTICS',
        +            'STDIN','STDOUT','STORAGE','STRICT','STRIP','SUPERUSER',
        +            'SYMMETRIC','SYSID','SYSTEM','TABLE','TABLESPACE','TEMP','TEMPLATE',
        +            'TEMPORARY','THEN','TO','TRAILING','TRANSACTION','TREAT','TRIGGER',
        +            'TRUE','TRUNCATE','TRUSTED','TYPE','UNBOUNDED','UNCOMMITTED',
        +            'UNENCRYPTED','UNION','UNIQUE','UNKNOWN','UNLISTEN','UNTIL',
        +            'UPDATE','USER','USING','VACUUM','VALID','VALIDATOR','VALUE',
        +            'VALUES','VARIADIC','VERBOSE','VERSION','VIEW','VOLATILE','WHEN',
        +            'WHERE','WHILE','WHITESPACE','WINDOW','WITH','WITHOUT','WORK','WRAPPER',
        +            'WRITE','XMLATTRIBUTES','XMLCONCAT','XMLELEMENT','XMLFOREST',
        +            'XMLPARSE','XMLPI','XMLROOT','XMLSERIALIZE','YEAR','YES','ZONE'
        +            ),
        +
        +        //Put functions here
        +        3 => array(
        +            // mathematical functions
        +            'ABS','CBRT','CEIL','CEILING','DEGREES','DIV','EXP','FLOOR','LN',
        +            'LOG','MOD','PI','POWER','RADIANS','RANDOM','ROUND','SETSEED',
        +            'SIGN','SQRT','TRUNC','WIDTH_BUCKET',
        +            // trigonometric functions
        +            'ACOS','ASIN','ATAN','ATAN2','COS','COT','SIN','TAN',
        +            // string functions
        +            'BIT_LENGTH','CHAR_LENGTH','CHARACTER_LENGTH','LOWER',
        +            'OCTET_LENGTH','POSITION','SUBSTRING','TRIM','UPPER',
        +            // other string functions
        +            'ASCII','BTRIM','CHR','CONVERT','CONVERT_FROM','CONVERT_TO',
        +            'DECODE','ENCODE','INITCAP','LENGTH','LPAD','LTRIM','MD5',
        +            'PG_CLIENT_ENCODING','QUOTE_IDENT','QUOTE_LITERAL','QUOTE_NULLABLE',
        +            'REGEXP_MATCHES','REGEXP_REPLACE','REGEXP_SPLIT_TO_ARRAY',
        +            'REGEXP_SPLIT_TO_TABLE','REPEAT','RPAD','RTRIM','SPLIT_PART',
        +            'STRPOS','SUBSTR','TO_ASCII','TO_HEX','TRANSLATE',
        +            // binary string functions
        +            'GET_BIT','GET_BYTE','SET_BIT','SET_BYTE',
        +            // data type formatting functions
        +            'TO_CHAR','TO_DATE','TO_NUMBER','TO_TIMESTAMP',
        +            // date/time functions
        +            'AGE','CLOCK_TIMESTAMP','DATE_PART','DATE_TRUNC','EXTRACT',
        +            'ISFINITE','JUSTIFY_DAYS','JUSTIFY_HOURS','JUSTIFY_INTERVAL','NOW',
        +            'STATEMENT_TIMESTAMP','TIMEOFDAY','TRANSACTION_TIMESTAMP',
        +            // enum support functions
        +            'ENUM_FIRST','ENUM_LAST','ENUM_RANGE',
        +            // geometric functions
        +            'AREA','CENTER','DIAMETER','HEIGHT','ISCLOSED','ISOPEN','NPOINTS',
        +            'PCLOSE','POPEN','RADIUS','WIDTH',
        +            'BOX','CIRCLE','LSEG','PATH','POINT','POLYGON',
        +            // cidr and inet functions
        +            'ABBREV','BROADCAST','FAMILY','HOST','HOSTMASK','MASKLEN','NETMASK',
        +            'NETWORK','SET_MASKLEN',
        +            // text search functions
        +            'TO_TSVECTOR','SETWEIGHT','STRIP','TO_TSQUERY','PLAINTO_TSQUERY',
        +            'NUMNODE','QUERYTREE','TS_RANK','TS_RANK_CD','TS_HEADLINE',
        +            'TS_REWRITE','GET_CURRENT_TS_CONFIG','TSVECTOR_UPDATE_TRIGGER',
        +            'TSVECTOR_UPDATE_TRIGGER_COLUMN',
        +            'TS_DEBUG','TS_LEXISE','TS_PARSE','TS_TOKEN_TYPE','TS_STAT',
        +            // XML functions
        +            'XMLCOMMENT','XMLCONCAT','XMLELEMENT','XMLFOREST','XMLPI','XMLROOT',
        +            'XMLAGG','XPATH','TABLE_TO_XMLSCHEMA','QUERY_TO_XMLSCHEMA',
        +            'CURSOR_TO_XMLSCHEMA','TABLE_TO_XML_AND_XMLSCHEMA',
        +            'QUERY_TO_XML_AND_XMLSCHEMA','SCHEMA_TO_XML','SCHEMA_TO_XMLSCHEMA',
        +            'SCHEMA_TO_XML_AND_XMLSCHEMA','DATABASE_TO_XML',
        +            'DATABASE_TO_XMLSCHEMA','DATABASE_TO_XML_AND_XMLSCHEMA',
        +            // sequence manipulating functions
        +            'CURRVAL','LASTVAL','NEXTVAL','SETVAL',
        +            // conditional expressions
        +            'COALESCE','NULLIF','GREATEST','LEAST',
        +            // array functions
        +            'ARRAY_APPEND','ARRAY_CAT','ARRAY_NDIMS','ARRAY_DIMS','ARRAY_FILL',
        +            'ARRAY_LENGTH','ARRAY_LOWER','ARRAY_PREPEND','ARRAY_TO_STRING',
        +            'ARRAY_UPPER','STRING_TO_ARRAY','UNNEST',
        +            // aggregate functions
        +            'ARRAY_AGG','AVG','BIT_AND','BIT_OR','BOOL_AND','BOOL_OR','COUNT',
        +            'EVERY','MAX','MIN','STRING_AGG','SUM',
        +            // statistic aggregate functions
        +            'CORR','COVAR_POP','COVAR_SAMP','REGR_AVGX','REGR_AVGY',
        +            'REGR_COUNT','REGR_INTERCEPT','REGR_R2','REGR_SLOPE','REGR_SXX',
        +            'REGR_SXY','REGR_SYY','STDDEV','STDDEV_POP','STDDEV_SAMP',
        +            'VARIANCE','VAR_POP','VAR_SAMP',
        +            // window functions
        +            'ROW_NUMBER','RANK','DENSE_RANK','PERCENT_RANK','CUME_DIST','NTILE',
        +            'LAG','LEAD','FIRST_VALUE','LAST_VALUE','NTH_VALUE',
        +            // set returning functions
        +            'GENERATE_SERIES','GENERATE_SUBSCRIPTS'
        +            // system information functions not currently included
        +            ),
        +
        +        //Put your postgresql var
        +        4 => array(
        +            'client_encoding',
        +            'standard_conforming_strings'
        +            ),
        +
        +        //Put your data types here
        +        5 => array(
        +            'ARRAY','ABSTIME','BIGINT','BIGSERIAL','BINARY','BIT','BIT VARYING',
        +            'BOOLEAN','BOX','BYTEA','CHAR','CHARACTER','CHARACTER VARYING',
        +            'CIDR','CIRCLE','DATE','DECIMAL','DOUBLE PRECISION','ENUM','FLOAT',
        +            'INET','INT','INTEGER','INTERVAL','NCHAR','REAL','SMALLINT','TEXT',
        +            'TIME','TIMESTAMP','VARCHAR','XML',
        +            ),
        +
        +        //        //Put your package names here
        +        //        6 => array(
        +        //            ),
        +
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '=', '<', '>', '|'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            // regular keywords
        +            1 => 'color: #000000; font-weight: bold; text-transform: uppercase;',
        +            // inbuilt functions
        +            3 => 'color: #333399; font-weight: bold; text-transform: uppercase;',
        +            // postgresql var(?)
        +            4 => 'color: #993333; font-weight: bold; text-transform: uppercase;',
        +            // data types
        +            5 => 'color: #993333; font-weight: bold; text-transform: uppercase;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #ff0000;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        3 => '',
        +        4 => 'http://paste.postgresql.fr/wiki/desc.php?def={FNAME}',
        +        5 => '',
        +        ),
        +
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            1 => array(
        +                'DISALLOWED_AFTER' => '(?![\(\w])'
        +                ),
        +
        +            3 => array(
        +                'DISALLOWED_AFTER' => '(?=\()'
        +                ),
        +
        +            4 => array(
        +                'DISALLOWED_AFTER' => '(?![\(\w])'
        +                ),
        +
        +            5 => array(
        +                'DISALLOWED_AFTER' => '(?![\(\w])'
        +                ),
        +            )
        +        )
        +
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/povray.php b/Sources/geshi/povray.php
        new file mode 100644
        index 0000000..c0ce35c
        --- /dev/null
        +++ b/Sources/geshi/povray.php
        @@ -0,0 +1,199 @@
        + 'POVRAY',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'yes', 'wrinkles', 'wood', 'width', 'waves', 'water_level', 'warp', 'vturbulence',
        +            'vstr', 'vrotate', 'vnormalize', 'vlength', 'vcross', 'vaxis_rotate', 'variance', 'v_steps',
        +            'uv_mapping', 'utf8', 'use_index', 'use_colour', 'use_color', 'use_alpha', 'up', 'undef',
        +            'ultra_wide_angle', 'u_steps', 'type', 'turbulence', 'turb_depth', 'ttf', 'true', 'triangle_wave',
        +            'translate', 'transform', 'trace', 'toroidal', 'tolerance', 'tiles', 'tile2', 'tightness',
        +            'tiff', 'threshold', 'thickness', 'tga', 'texture_map', 'target', 'sys', 'sum',
        +            'substr', 'sturm', 'strupr', 'strlwr', 'strength', 'str', 'statistics', 'sqr',
        +            'spotted', 'spotlight', 'split_union', 'spline', 'spiral2', 'spiral1', 'spherical', 'specular',
        +            'spacing', 'solid', 'smooth', 'slope', 'slice', 'sky', 'size', 'sine_wave',
        +            'shadowless', 'scattering', 'scallop_wave', 'scale', 'save_file', 'samples', 'roughness', 'rotate',
        +            'ripples', 'right', 'rgbt', 'rgbft', 'rgbf', 'rgb', 'repeat', 'render',
        +            'refraction', 'reflection_exponent', 'recursion_limit', 'reciprocal', 'ratio', 'ramp_wave', 'radius', 'radial',
        +            'quilted', 'quick_colour', 'quick_color', 'quaternion', 'quadratic_spline', 'pwr', 'projected_through', 'prod',
        +            'pretrace_start', 'pretrace_end', 'precompute', 'precision', 'ppm', 'pow', 'pot', 'poly_wave',
        +            'point_at', 'png', 'planar', 'pigment_pattern', 'pi', 'phong_size', 'phong', 'phase',
        +            'pgm', 'perspective', 'pattern', 'pass_through', 'parallel', 'panoramic', 'orthographic', 'orientation',
        +            'orient', 'open', 'onion', 'once', 'on', 'omnimax', 'omega', 'offset',
        +            'off', 'octaves', 'number_of_waves', 'noise_generator', 'no_shadow', 'no_reflection', 'no_image', 'no_bump_scale',
        +            'no', 'nearest_count', 'natural_spline', 'mortar', 'minimum_reuse', 'min_extent', 'metric', 'method',
        +            'metallic', 'media_interaction', 'media_attenuation', 'media', 'max_trace_level', 'max_trace', 'max_sample', 'max_iteration',
        +            'max_intersections', 'max_gradient', 'max_extent', 'matrix', 'material_map', 'marble', 'map_type', 'mandel',
        +            'major_radius', 'magnet', 'low_error_factor', 'look_at', 'location', 'load_file', 'linear_sweep', 'linear_spline',
        +            'leopard', 'lambda', 'julia', 'jpeg', 'jitter', 'irid_wavelength', 'ior', 'inverse',
        +            'intervals', 'interpolate', 'internal', 'inside_vector', 'inside', 'initial_frame', 'initial_clock', 'image_width',
        +            'image_pattern', 'image_height', 'iff', 'hypercomplex', 'hollow', 'hierarchy', 'hf_gray_16', 'hexagon',
        +            'gray_threshold', 'granite', 'gradient', 'global_lights', 'gif', 'gather', 'fresnel', 'frequency',
        +            'frame_number', 'form', 'fog_type', 'fog_offset', 'fog_alt', 'focal_point', 'flip', 'flatness',
        +            'fisheye', 'final_frame', 'final_clock', 'false', 'falloff_angle', 'falloff', 'fade_power', 'fade_distance',
        +            'fade_colour', 'fade_color', 'facets', 'extinction', 'exterior', 'exponent', 'expand_thresholds', 'evaluate',
        +            'error_bound', 'emission', 'eccentricity', 'double_illuminate', 'distance', 'dist_exp', 'dispersion_samples', 'dispersion',
        +            'direction', 'diffuse', 'df3', 'dents', 'density_map', 'density_file', 'density', 'cylindrical',
        +            'cutaway_textures', 'cubic_wave', 'cubic_spline', 'cube', 'crand', 'crackle', 'count', 'coords',
        +            'control1', 'control0', 'conserve_energy', 'conic_sweep', 'confidence', 'concat', 'composite', 'component',
        +            'colour_map', 'colour', 'color', 'collect', 'clock_on', 'clock_delta', 'clock', 'circular',
        +            'chr', 'checker', 'charset', 'cells', 'caustics', 'bumps', 'bump_size', 'brilliance',
        +            'brightness', 'brick_size', 'brick', 'bozo', 'boxed', 'blur_samples', 'black_hole', 'bezier_spline',
        +            'b_spline', 'average', 'autostop', 'assumed_gamma', 'ascii', 'array', 'area_light', 'arc_angle',
        +            'append', 'aperture', 'angle', 'ambient_light', 'ambient', 'always_sample', 'altitude', 'alpha',
        +            'all_intersections', 'all', 'agate_turb', 'agate', 'adc_bailout', 'adaptive', 'accuracy', 'absorption',
        +            'aa_threshold', 'aa_level', 'reflection'
        +            ),
        +        2 => array(
        +            'abs', 'acos', 'acosh', 'asc', 'asin', 'asinh', 'atan', 'atanh',
        +            'atan2', 'ceil', 'cos', 'cosh', 'defined', 'degrees', 'dimensions', 'dimension_size',
        +            'div', 'exp', 'file_exists', 'floor', 'int', 'ln', 'log', 'max',
        +            'min', 'mod', 'pov', 'radians', 'rand', 'seed', 'select', 'sin',
        +            'sinh', 'sqrt', 'strcmp', 'strlen', 'tan', 'tanh', 'val', 'vdot',
        +            'vlenght',
        +            ),
        +        3 => array (
        +            'x', 'y', 'z', 't', 'u', 'v', 'red', 'blue',
        +            'green', 'filter', 'transmit', 'gray', 'e',
        +            ),
        +        4 => array (
        +            'camera', 'background', 'fog', 'sky_sphere', 'rainbow', 'global_settings', 'radiosity', 'photon',
        +            'object', 'blob', 'sphere', 'cylinder', 'box', 'cone', 'height_field', 'julia_fractal',
        +            'lathe', 'prism', 'sphere_sweep', 'superellipsoid', 'sor', 'text', 'torus', 'bicubic_patch',
        +            'disc', 'mesh', 'triangle', 'smooth_triangle', 'mesh2', 'vertex_vectors', 'normal_vectors', 'uv_vectors',
        +            'texture_list', 'face_indices', 'normal_indices', 'uv_indices', 'texture', 'polygon', 'plane', 'poly',
        +            'cubic', 'quartic', 'quadric', 'isosurface', 'function', 'contained_by', 'parametric', 'pigment',
        +            'union', 'intersection', 'difference', 'merge', 'light_source', 'looks_like', 'light_group', 'clipped_by',
        +            'bounded_by', 'interior', 'material', 'interior_texture', 'normal', 'finish', 'color_map', 'pigment_map',
        +            'image_map', 'bump_map', 'slope_map', 'normal_map', 'irid', 'photons',
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '!',
        +        '@', '%', '&', '*', '|', '/', '<',
        +        '>', '+', '-', '.', '=', '<=', '>=',
        +        '!=',
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #a63123;',
        +            2 => 'color: #2312bc;',
        +            3 => 'color: #cc1122; font-weight: bold;',
        +            4 => 'color: #116688; font-weight: bold;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +//            2 => 'color: #808080; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66aa;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;',
        +            2 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #6666cc; font-weight: bold;',
        +            1 => 'color: #66cc66; font-weight: bold;',
        +            2 => 'color: #66cc66; font-weight: bold;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            2 => '',
        +            3 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        # normal hash lines
        +        0 => '\#(?!(include|declare|local|fopen|fclose|read|write|default|version|if|else|end|ifdef|ifndef|switch|case|range|break|while|debug|error|warning|macro) )[[:word:]]*',
        +        # syntax functions hash thingis
        +        1 => "\#(include|declare|local|fopen|fclose|read|write|default|version|if|else|end|ifdef|ifndef|switch|case|range|break|while|debug|error|warning|macro)",
        +        2 => array(
        +            GESHI_SEARCH  => "([a-zA-Z]+)(\n)(.*)(\n)(\\1;?)",
        +            GESHI_REPLACE => '\3',
        +            GESHI_BEFORE => '\1\2',
        +            GESHI_AFTER => '\4\5',
        +            GESHI_MODIFIERS => 'siU'
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true,
        +        1 => true,
        +        2 => true,
        +        3 => true
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +?>
        diff --git a/Sources/geshi/powerbuilder.php b/Sources/geshi/powerbuilder.php
        new file mode 100644
        index 0000000..d3fcf61
        --- /dev/null
        +++ b/Sources/geshi/powerbuilder.php
        @@ -0,0 +1,418 @@
        + 'PowerBuilder',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '~',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'alias', 'and', 'autoinstantiate', 'call',
        +            'case', 'catch', 'choose', 'close', 'commit', 'connect',
        +            'constant', 'continue', 'create', 'cursor', 'declare',
        +            'delete', 'describe', 'descriptor', 'destroy', 'disconnect',
        +            'do', 'dynamic', 'else', 'elseif', 'end', 'enumerated',
        +            'event', 'execute', 'exit', 'external', 'false', 'fetch',
        +            'first', 'for', 'forward', 'from', 'function', 'global',
        +            'goto', 'halt', 'if', 'immediate', 'indirect', 'insert',
        +            'into', 'intrinsic', 'is', 'last', 'library', 'loop', 'next',
        +            'not', 'of', 'on', 'open', 'or', 'parent', 'post', 'prepare',
        +            'prior', 'private', 'privateread', 'privatewrite', 'procedure',
        +            'protected', 'protectedread', 'protectedwrite', 'prototypes',
        +            'public', 'readonly', 'ref', 'return', 'rollback', 'rpcfunc',
        +            'select', 'selectblob', 'shared', 'static', 'step', 'subroutine',
        +            'super', 'system', 'systemread', 'systemwrite', 'then', 'this',
        +            'to', 'trigger', 'true', 'try', 'type', 'until', 'update', 'updateblob',
        +            'using', 'variables', 'where', 'while', 'with', 'within'
        +            ),
        +        2 => array (
        +            'blob', 'boolean', 'char', 'character', 'date', 'datetime',
        +            'dec', 'decimal',
        +            'double', 'int', 'integer', 'long', 'real', 'string', 'time',
        +            'uint', 'ulong', 'unsignedint', 'unsignedinteger', 'unsignedlong'
        +            ),
        +        3 => array (
        +            'abortretryignore!', 'actbegin!', 'acterror!', 'actesql!',
        +            'actgarbagecollect!', 'activate!', 'activatemanually!',
        +            'activateondoubleclick!',
        +            'activateongetfocus!', 'actline!', 'actobjectcreate!', 'actobjectdestroy!',
        +            'actprofile!', 'actroutine!', 'acttrace!', 'actual!',
        +            'actuser!', 'adoresultset!', 'adtdate!', 'adtdatetime!',
        +            'adtdefault!', 'adtdouble!', 'adttext!', 'adttime!',
        +            'aix!', 'alignatbottom!', 'alignatleft!', 'alignatright!',
        +            'alignattop!', 'all!', 'allowpartialchanges!', 'alpha!',
        +            'ansi!', 'any!', 'anycase!', 'anyfont!',
        +            'append!', 'application!', 'arabiccharset!', 'area3d!',
        +            'areagraph!', 'arraybounds!', 'arrow!', 'ascending!',
        +            'asstatement!', 'atbottom!', 'atleft!', 'atright!',
        +            'attop!', 'autosize!', 'background!', 'balticcharset!',
        +            'bar3dgraph!', 'bar3dobjgraph!', 'bargraph!', 'barstack3dobjgraph!',
        +            'barstackgraph!', 'bdiagonal!', 'beam!', 'begin!',
        +            'begindrag!', 'beginlabeledit!', 'beginrightdrag!', 'behind!',
        +            'blob!', 'bold!', 'boolean!', 'bottom!',
        +            'boundedarray!', 'box!', 'byreferenceargument!', 'byvalueargument!',
        +            'cancel!', 'cascade!', 'cascaded!', 'category!',
        +            'center!', 'character!', 'charsetansi!', 'charsetansiarabic!',
        +            'charsetansihebrew!', 'charsetdbcsjapanese!', 'charsetunicode!', 'checkbox!',
        +            'child!', 'childtreeitem!', 'chinesebig5!', 'classdefinition!',
        +            'classdefinitionobject!', 'classorstructuretype!', 'clicked!', 'clip!',
        +            'clipboard!', 'clipformatbitmap!', 'clipformatdib!', 'clipformatdif!',
        +            'clipformatenhmetafile!', 'clipformathdrop!', 'clipformatlocale!',
        +            'clipformatmetafilepict!',
        +            'clipformatoemtext!', 'clipformatpalette!', 'clipformatpendata!', 'clipformatriff!',
        +            'clipformatsylk!', 'clipformattext!', 'clipformattiff!', 'clipformatunicodetext!',
        +            'clipformatwave!', 'clock!', 'close!', 'closequery!',
        +            'col3dgraph!', 'col3dobjgraph!', 'colgraph!',
        +            'colstack3dobjgraph!', 'colstackgraph!', 'columnclick!', 'commandbutton!',
        +            'connection!', 'connectioninfo!', 'connectobject!', 'connectprivilege!',
        +            'connectwithadminprivilege!', 'constructor!', 'containsany!', 'containsembeddedonly!',
        +            'containslinkedonly!', 'contextinformation!', 'contextkeyword!', 'continuous!',
        +            'corbaobject!', 'corbaunion!', 'cplusplus!', 'cross!',
        +            'csv!', 'cumulative!', 'cumulativepercent!', 'currenttreeitem!',
        +            'customvisual!', 'dash!', 'dashdot!', 'dashdotdot!',
        +            'data!', 'datachange!', 'datamodified!', 'datastore!',
        +            'datawindow!', 'datawindowchild!', 'date!', 'datemask!',
        +            'datetime!', 'datetimemask!', 'dbase2!', 'dbase3!',
        +            'dberror!', 'deactivate!', 'decimal!', 'decimalmask!',
        +            'decorative!', 'default!', 'defaultcharset!', 'delete!',
        +            'deleteallitems!', 'deleteitem!', 'descending!', 'desktop!',
        +            'destructor!', 'detail!', 'diamond!', 'dif!',
        +            'dirall!', 'dirapplication!', 'dirdatawindow!', 'directionall!',
        +            'directiondown!', 'directionleft!', 'directionright!', 'directionup!',
        +            'dirfunction!', 'dirmenu!', 'dirpipeline!', 'dirproject!',
        +            'dirquery!', 'dirstructure!', 'diruserobject!', 'dirwindow!',
        +            'displayasactivexdocument!', 'displayascontent!', 'displayasicon!', 'dot!',
        +            'double!', 'doubleclicked!', 'dragdrop!', 'dragenter!',
        +            'dragleave!', 'dragobject!', 'dragwithin!', 'drawobject!',
        +            'dropdownlistbox!', 'dropdownpicturelistbox!', 'drophighlighttreeitem!', 'dwobject!',
        +            'dynamicdescriptionarea!', 'dynamicstagingarea!', 'easteuropecharset!', 'editchanged!',
        +            'editmask!', 'editmenu!', 'end!', 'endlabeledit!',
        +            'enterprise!', 'enterpriseonlyfeature!', 'enumeratedtype!', 'enumerationdefinition!',
        +            'enumerationitemdefinition!', 'environment!', 'error!', 'errorlogging!',
        +            'eventnotexisterror!', 'eventwrongprototypeerror!', 'excel!', 'excel5!',
        +            'exceptionfail!', 'exceptionignore!', 'exceptionretry!',
        +            'exceptionsubstitutereturnvalue!',
        +            'exclamation!', 'exclude!', 'exportapplication!', 'exportdatawindow!',
        +            'exportfunction!', 'exportmenu!', 'exportpipeline!', 'exportproject!',
        +            'exportquery!', 'exportstructure!', 'exportuserobject!', 'exportwindow!',
        +            'externalvisual!', 'extobject!', 'failonanyconflict!', 'fdiagonal!',
        +            'featurenotsupportederror!', 'filealreadyopenerror!', 'filecloseerror!',
        +            'fileexists!',
        +            'fileinvalidformaterror!', 'filemenu!', 'filenotopenerror!', 'filenotseterror!',
        +            'filereaderror!', 'filetyperichtext!', 'filetypetext!', 'filewriteerror!',
        +            'filter!', 'first!', 'firstvisibletreeitem!', 'fixed!',
        +            'floating!', 'focusrect!', 'footer!', 'foreground!',
        +            'frombeginning!', 'fromcurrent!', 'fromend!', 'functionobject!',
        +            'gb231charset!', 'getfocus!', 'graph!', 'graphicobject!',
        +            'graxis!', 'grdispattr!', 'greekcharset!', 'groupbox!',
        +            'hand!', 'hangeul!', 'header!', 'hebrewcharset!',
        +            'helpmenu!', 'hide!', 'horizontal!', 'hotlinkalarm!',
        +            'hourglass!', 'hppa!', 'hprogressbar!', 'hpux!',
        +            'hscrollbar!', 'hticksonboth!', 'hticksonbottom!', 'hticksonneither!',
        +            'hticksontop!', 'htmltable!', 'htrackbar!', 'i286!',
        +            'i386!', 'i486!', 'icon!', 'icons!',
        +            'idle!', 'importdatawindow!', 'indent!', 'index!',
        +            'inet!', 'information!', 'inplace!', 'inputfieldselected!',
        +            'insertitem!', 'inside!', 'integer!', 'internetresult!',
        +            'italic!', 'itemchanged!', 'itemchanging!', 'itemcollapsed!',
        +            'itemcollapsing!', 'itemerror!', 'itemexpanded!', 'itemexpanding!',
        +            'itemfocuschanged!', 'itempopulate!', 'jaguarorb!', 'johabcharset!',
        +            'justify!', 'key!', 'key0!', 'key1!',
        +            'key2!', 'key3!', 'key4!', 'key5!',
        +            'key6!', 'key7!', 'key8!', 'key9!',
        +            'keya!', 'keyadd!', 'keyalt!', 'keyapps!',
        +            'keyb!', 'keyback!', 'keybackquote!', 'keybackslash!',
        +            'keyc!', 'keycapslock!', 'keycomma!', 'keycontrol!',
        +            'keyd!', 'keydash!', 'keydecimal!', 'keydelete!',
        +            'keydivide!', 'keydownarrow!', 'keye!', 'keyend!',
        +            'keyenter!', 'keyequal!', 'keyescape!', 'keyf!',
        +            'keyf1!', 'keyf10!', 'keyf11!', 'keyf12!',
        +            'keyf2!', 'keyf3!', 'keyf4!', 'keyf5!',
        +            'keyf6!', 'keyf7!', 'keyf8!', 'keyf9!',
        +            'keyg!', 'keyh!', 'keyhome!', 'keyi!',
        +            'keyinsert!', 'keyj!', 'keyk!', 'keyl!',
        +            'keyleftarrow!', 'keyleftbracket!', 'keyleftbutton!', 'keyleftwindows!',
        +            'keym!', 'keymiddlebutton!', 'keymultiply!', 'keyn!',
        +            'keynull!', 'keynumlock!', 'keynumpad0!', 'keynumpad1!',
        +            'keynumpad2!', 'keynumpad3!', 'keynumpad4!', 'keynumpad5!',
        +            'keynumpad6!', 'keynumpad7!', 'keynumpad8!', 'keynumpad9!',
        +            'keyo!', 'keyp!', 'keypagedown!', 'keypageup!',
        +            'keypause!', 'keyperiod!', 'keyprintscreen!', 'keyq!',
        +            'keyquote!', 'keyr!', 'keyrightarrow!', 'keyrightbracket!',
        +            'keyrightbutton!', 'keyrightwindows!', 'keys!', 'keyscrolllock!',
        +            'keysemicolon!', 'keyshift!', 'keyslash!', 'keyspacebar!',
        +            'keysubtract!', 'keyt!', 'keytab!', 'keyu!',
        +            'keyuparrow!', 'keyv!', 'keyw!', 'keyword!',
        +            'keyx!', 'keyy!', 'keyz!', 'languageafrikaans!',
        +            'languagealbanian!', 'languagearabicalgeria!', 'languagearabicbahrain!',
        +            'languagearabicegypt!',
        +            'languagearabiciraq!', 'languagearabicjordan!', 'languagearabickuwait!',
        +            'languagearabiclebanon!',
        +            'languagearabiclibya!', 'languagearabicmorocco!', 'languagearabicoman!',
        +            'languagearabicqatar!',
        +            'languagearabicsaudiarabia!', 'languagearabicsyria!', 'languagearabictunisia!',
        +            'languagearabicuae!',
        +            'languagearabicyemen!', 'languagebasque!', 'languagebulgarian!', 'languagebyelorussian!',
        +            'languagecatalan!', 'languagechinese!', 'languagechinesehongkong!', 'languagechinesesimplified!',
        +            'languagechinesesingapore!', 'languagechinesetraditional!', 'languagecroatian!', 'languageczech!',
        +            'languagedanish!', 'languagedutch!', 'languagedutchbelgian!', 'languagedutchneutral!',
        +            'languageenglish!', 'languageenglishaustralian!', 'languageenglishcanadian!',
        +            'languageenglishirish!',
        +            'languageenglishnewzealand!', 'languageenglishsouthafrica!', 'languageenglishuk!',
        +            'languageenglishus!',
        +            'languageestonian!', 'languagefaeroese!', 'languagefarsi!', 'languagefinnish!',
        +            'languagefrench!', 'languagefrenchbelgian!', 'languagefrenchcanadian!', 'languagefrenchluxembourg!',
        +            'languagefrenchneutral!', 'languagefrenchswiss!', 'languagegerman!', 'languagegermanaustrian!',
        +            'languagegermanliechtenstein!', 'languagegermanluxembourg!', 'languagegermanneutral!',
        +            'languagegermanswiss!',
        +            'languagegreek!', 'languagehebrew!', 'languagehindi!', 'languagehungarian!',
        +            'languageicelandic!', 'languageindonesian!', 'languageitalian!', 'languageitalianneutral!',
        +            'languageitalianswiss!', 'languagejapanese!', 'languagekorean!', 'languagekoreanjohab!',
        +            'languagelatvian!', 'languagelithuanian!', 'languagemacedonian!', 'languagemaltese!',
        +            'languageneutral!', 'languagenorwegian!', 'languagenorwegianbokmal!', 'languagenorwegiannynorsk!',
        +            'languagepolish!', 'languageportuguese!', 'languageportuguese_brazilian!',
        +            'languageportugueseneutral!',
        +            'languagerhaetoromanic!', 'languageromanian!', 'languageromanianmoldavia!', 'languagerussian!',
        +            'languagerussianmoldavia!', 'languagesami!', 'languageserbian!', 'languageslovak!',
        +            'languageslovenian!', 'languagesorbian!', 'languagesortnative!', 'languagesortunicode!',
        +            'languagespanish!', 'languagespanishcastilian!', 'languagespanishmexican!', 'languagespanishmodern!',
        +            'languagesutu!', 'languageswedish!', 'languagesystemdefault!', 'languagethai!',
        +            'languagetsonga!', 'languagetswana!', 'languageturkish!', 'languageukrainian!',
        +            'languageurdu!', 'languageuserdefault!', 'languagevenda!', 'languagexhosa!',
        +            'languagezulu!', 'last!', 'layer!', 'layered!',
        +            'Left!', 'leftmargin!', 'line!', 'line3d!',
        +            'linear!', 'linecolor!', 'linedown!', 'linegraph!',
        +            'lineleft!', 'linemode!', 'lineright!', 'lineup!',
        +            'linkupdateautomatic!', 'linkupdatemanual!', 'listbox!', 'listview!',
        +            'listviewitem!', 'listviewlargeicon!', 'listviewlist!', 'listviewreport!',
        +            'listviewsmallicon!', 'lockread!', 'lockreadwrite!', 'lockwrite!',
        +            'log10!', 'loge!', 'long!', 'losefocus!',
        +            'lower!', 'lowered!', 'm68000!', 'm68020!',
        +            'm68030!', 'm68040!', 'maccharset!', 'macintosh!',
        +            'mailattach!', 'mailbcc!', 'mailbodyasfile!', 'mailcc!',
        +            'maildownload!', 'mailentiremessage!', 'mailenvelopeonly!', 'mailfiledescription!',
        +            'mailmessage!', 'mailnewsession!', 'mailnewsessionwithdownload!', 'mailole!',
        +            'mailolestatic!', 'mailoriginator!', 'mailrecipient!', 'mailreturnaccessdenied!',
        +            'mailreturnattachmentnotfound!', 'mailreturnattachmentopenfailure!',
        +            'mailreturnattachmentwritefailure!', 'mailreturndiskfull!',
        +            'mailreturnfailure!', 'mailreturninsufficientmemory!', 'mailreturninvalidmessage!',
        +            'mailreturnloginfailure!',
        +            'mailreturnmessageinuse!', 'mailreturnnomessages!', 'mailreturnsuccess!', 'mailreturntexttoolarge!',
        +            'mailreturntoomanyfiles!', 'mailreturntoomanyrecipients!', 'mailreturntoomanysessions!',
        +            'mailreturnunknownrecipient!',
        +            'mailreturnuserabort!', 'mailsession!', 'mailsuppressattachments!', 'mailto!',
        +            'main!', 'maximized!', 'mdi!', 'mdiclient!',
        +            'mdihelp!', 'menu!', 'menucascade!', 'menuitemtypeabout!',
        +            'menuitemtypeexit!', 'menuitemtypehelp!', 'menuitemtypenormal!', 'merge!',
        +            'message!', 'minimized!', 'mips!', 'modelexistserror!',
        +            'modelnotexistserror!', 'modern!', 'modified!', 'mousedown!',
        +            'mousemove!', 'mouseup!', 'moved!', 'multiline!',
        +            'multilineedit!', 'mutexcreateerror!', 'new!', 'newmodified!',
        +            'next!', 'nexttreeitem!', 'nextvisibletreeitem!', 'noborder!',
        +            'noconnectprivilege!', 'nolegend!', 'none!', 'nonvisualobject!',
        +            'normal!', 'nosymbol!', 'notic!', 'notmodified!',
        +            'notopmost!', 'notype!', 'numericmask!', 'objhandle!',
        +            'oem!', 'off!', 'offsite!', 'ok!',
        +            'okcancel!', 'olecontrol!', 'olecustomcontrol!', 'oleobject!',
        +            'olestorage!', 'olestream!', 'oletxnobject!', 'omcontrol!',
        +            'omcustomcontrol!', 'omembeddedcontrol!', 'omobject!', 'omstorage!',
        +            'omstream!', 'open!', 'orb!', 'original!',
        +            'osf1!', 'other!', 'outside!', 'oval!',
        +            'pagedown!', 'pageleft!', 'pageright!', 'pageup!',
        +            'parenttreeitem!', 'pbtocppobject!', 'pentium!', 'percentage!',
        +            'picture!', 'picturebutton!', 'picturehyperlink!', 'picturelistbox!',
        +            'pictureselected!', 'pie3d!', 'piegraph!', 'pipeend!',
        +            'pipeline!', 'pipemeter!', 'pipestart!', 'popup!',
        +            'powerobject!', 'powerpc!', 'powerrs!', 'ppc601!',
        +            'ppc603!', 'ppc604!', 'previewdelete!', 'previewfunctionreselectrow!',
        +            'previewfunctionretrieve!', 'previewfunctionupdate!', 'previewinsert!', 'previewselect!',
        +            'previewupdate!', 'previoustreeitem!', 'previousvisibletreeitem!', 'primary!',
        +            'printend!', 'printfooter!', 'printheader!', 'printpage!',
        +            'printstart!', 'prior!', 'private!', 'process!',
        +            'profilecall!', 'profileclass!', 'profileline!', 'profileroutine!',
        +            'profiling!', 'protected!', 'psreport!', 'public!',
        +            'question!', 'radiobutton!', 'raised!', 'rbuttondown!',
        +            'rbuttonup!', 'read!', 'readonlyargument!', 'real!',
        +            'rectangle!', 'regbinary!', 'regexpandstring!', 'reglink!',
        +            'regmultistring!', 'regstring!', 'regulong!', 'regulongbigendian!',
        +            'remoteexec!', 'remotehotlinkstart!', 'remotehotlinkstop!', 'remoteobject!',
        +            'remoterequest!', 'remotesend!', 'rename!', 'replace!',
        +            'resize!', 'resizeborder!', 'response!', 'resultset!',
        +            'resultsets!', 'retrieveend!', 'retrieverow!', 'retrievestart!',
        +            'retrycancel!', 'richtextedit!', 'Right!', 'rightclicked!',
        +            'rightdoubleclicked!', 'rightmargin!', 'rnddays!', 'rnddefault!',
        +            'rndhours!', 'rndmicroseconds!', 'rndminutes!', 'rndmonths!',
        +            'rndnumber!', 'rndseconds!', 'rndyears!', 'roman!',
        +            'roottreeitem!', 'roundrectangle!', 'routineesql!', 'routineevent!',
        +            'routinefunction!', 'routinegarbagecollection!', 'routineobjectcreation!',
        +            'routineobjectdestruction!',
        +            'routineroot!', 'rowfocuschanged!', 'russiancharset!', 'save!',
        +            'scalartype!', 'scattergraph!', 'script!', 'scriptdefinition!',
        +            'scriptevent!', 'scriptfunction!', 'scrollhorizontal!', 'scrollvertical!',
        +            'selected!', 'selectionchanged!', 'selectionchanging!', 'series!',
        +            'service!', 'shade!', 'shadowbox!', 'shared!',
        +            'sharedobjectcreateinstanceerror!', 'sharedobjectcreatepbsessionerror!',
        +            'sharedobjectexistserror!', 'sharedobjectnotexistserror!',
        +            'shiftjis!', 'show!', 'simpletype!', 'simpletypedefinition!',
        +            'singlelineedit!', 'size!', 'sizenesw!', 'sizens!',
        +            'sizenwse!', 'sizewe!', 'sol2!', 'solid!',
        +            'sort!', 'sourcepblerror!', 'spacing1!', 'spacing15!',
        +            'spacing2!', 'sparc!', 'sqlinsert!', 'sqlpreview!',
        +            'square!', 'sslcallback!', 'sslserviceprovider!', 'statichyperlink!',
        +            'statictext!', 'stgdenynone!', 'stgdenyread!', 'stgdenywrite!',
        +            'stgexclusive!', 'stgread!', 'stgreadwrite!', 'stgwrite!',
        +            'stopsign!', 'straddle!', 'streammode!', 'stretch!',
        +            'strikeout!', 'string!', 'stringmask!', 'structure!',
        +            'stylebox!', 'stylelowered!', 'styleraised!', 'styleshadowbox!',
        +            'subscript!', 'success!', 'superscript!', 'swiss!',
        +            'sylk!', 'symbol!', 'symbolhollowbox!', 'symbolhollowcircle!',
        +            'symbolhollowdiamond!', 'symbolhollowdownarrow!', 'symbolhollowuparrow!', 'symbolplus!',
        +            'symbolsolidbox!', 'symbolsolidcircle!', 'symbolsoliddiamond!', 'symbolsoliddownarrow!',
        +            'symbolsoliduparrow!', 'symbolstar!', 'symbolx!', 'system!',
        +            'systemerror!', 'systemfunctions!', 'systemkey!', 'tab!',
        +            'tabsonbottom!', 'tabsonbottomandtop!', 'tabsonleft!', 'tabsonleftandright!',
        +            'tabsonright!', 'tabsonrightandleft!', 'tabsontop!', 'tabsontopandbottom!',
        +            'text!', 'thaicharset!', 'thread!', 'tile!',
        +            'tilehorizontal!', 'time!', 'timemask!', 'timer!',
        +            'timernone!', 'timing!', 'tobottom!', 'toolbarmoved!',
        +            'top!', 'topic!', 'topmost!', 'totop!',
        +            'traceactivitynode!', 'traceatomic!', 'tracebeginend!', 'traceerror!',
        +            'traceesql!', 'tracefile!', 'tracegarbagecollect!', 'tracegeneralerror!',
        +            'tracein!', 'traceline!', 'tracenomorenodes!', 'tracenotstartederror!',
        +            'traceobject!', 'traceout!', 'traceroutine!', 'tracestartederror!',
        +            'tracetree!', 'tracetreeerror!', 'tracetreeesql!', 'tracetreegarbagecollect!',
        +            'tracetreeline!', 'tracetreenode!', 'tracetreeobject!', 'tracetreeroutine!',
        +            'tracetreeuser!', 'traceuser!', 'transaction!', 'transactionserver!',
        +            'transparent!', 'transport!', 'treeview!', 'treeviewitem!',
        +            'turkishcharset!', 'typeboolean!', 'typecategory!', 'typecategoryaxis!',
        +            'typecategorylabel!', 'typedata!', 'typedate!', 'typedatetime!',
        +            'typedecimal!', 'typedefinition!', 'typedouble!', 'typegraph!',
        +            'typeinteger!', 'typelegend!', 'typelong!', 'typereal!',
        +            'typeseries!', 'typeseriesaxis!', 'typeserieslabel!', 'typestring!',
        +            'typetime!', 'typetitle!', 'typeuint!', 'typeulong!',
        +            'typeunknown!', 'typevalueaxis!', 'typevaluelabel!', 'ultrasparc!',
        +            'unboundedarray!', 'underline!', 'underlined!', 'unsignedinteger!',
        +            'unsignedlong!', 'unsorted!', 'uparrow!', 'updateend!',
        +            'updatestart!', 'upper!', 'userdefinedsort!', 'userobject!',
        +            'variable!', 'variableargument!', 'variablecardinalitydefinition!', 'variabledefinition!',
        +            'variableglobal!', 'variableinstance!', 'variablelocal!', 'variableshared!',
        +            'varlistargument!', 'vbxvisual!', 'vcenter!', 'vertical!',
        +            'vietnamesecharset!', 'viewchange!', 'vprogressbar!', 'vscrollbar!',
        +            'vticksonboth!', 'vticksonleft!', 'vticksonneither!', 'vticksonright!',
        +            'vtrackbar!', 'window!', 'windowmenu!', 'windowobject!',
        +            'windows!', 'windowsnt!', 'wk1!', 'wks!',
        +            'wmf!', 'write!', 'xpixelstounits!', 'xunitstopixels!',
        +            'xvalue!', 'yesno!', 'yesnocancel!', 'ypixelstounits!',
        +            'yunitstopixels!',
        +            'yvalue!',
        +            'zoom!'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +            0 => array('(', ')', '[', ']', '{', '}'),
        +            1 => array('|'),
        +            2 => array('+', '-', '*', '/'),
        +            3 => array('=', '<', '>', '^')
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #008000; font-weight: bold;',
        +            2 => 'color: #990099; font-weight: bold;',
        +            3 => 'color: #330099; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #0000ff; font-weight: bold;',
        +            'MULTI' => 'color: #0000ff; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #800000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #330099; font-weight: bold;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000;',
        +            1 => 'color: #ffff00; background-color:#993300; font-weight: bold',
        +            2 => 'color: #000000;',
        +            3 => 'color: #000000;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #800000; font-weight: bold;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/powershell.php b/Sources/geshi/powershell.php
        new file mode 100644
        index 0000000..bd78d73
        --- /dev/null
        +++ b/Sources/geshi/powershell.php
        @@ -0,0 +1,277 @@
        + 'PowerShell',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array('<#' => '#>'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '`',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            // Cmdlets
        +            'Add-Content', 'Add-History', 'Add-Member', 'Add-PSSnapin', 'Clear-Content', 'Clear-Item',
        +            'Clear-ItemProperty', 'Clear-Variable', 'Compare-Object', 'ConvertFrom-SecureString',
        +            'Convert-Path', 'ConvertTo-Html', 'ConvertTo-SecureString', 'Copy-Item', 'Copy-ItemProperty',
        +            'Export-Alias', 'Export-Clixml', 'Export-Console', 'Export-Csv', 'ForEach-Object',
        +            'Format-Custom', 'Format-List', 'Format-Table', 'Format-Wide', 'Get-Acl', 'Get-Alias',
        +            'Get-AuthenticodeSignature', 'Get-ChildItem', 'Get-Command', 'Get-Content', 'Get-Credential',
        +            'Get-Culture', 'Get-Date', 'Get-EventLog', 'Get-ExecutionPolicy', 'Get-Help', 'Get-History',
        +            'Get-Host', 'Get-Item', 'Get-ItemProperty', 'Get-Location', 'Get-Member',
        +            'Get-PfxCertificate', 'Get-Process', 'Get-PSDrive', 'Get-PSProvider', 'Get-PSSnapin',
        +            'Get-Service', 'Get-TraceSource', 'Get-UICulture', 'Get-Unique', 'Get-Variable',
        +            'Get-WmiObject', 'Group-Object', 'Import-Alias', 'Import-Clixml', 'Import-Csv',
        +            'Invoke-Expression', 'Invoke-History', 'Invoke-Item', 'Join-Path', 'Measure-Command',
        +            'Measure-Object', 'Move-Item', 'Move-ItemProperty', 'New-Alias', 'New-Item',
        +            'New-ItemProperty', 'New-Object', 'New-PSDrive', 'New-Service', 'New-TimeSpan',
        +            'New-Variable', 'Out-Default', 'Out-File', 'Out-Host', 'Out-Null', 'Out-Printer',
        +            'Out-String', 'Pop-Location', 'Push-Location', 'Read-Host', 'Remove-Item',
        +            'Remove-ItemProperty', 'Remove-PSDrive', 'Remove-PSSnapin', 'Remove-Variable', 'Rename-Item',
        +            'Rename-ItemProperty', 'Resolve-Path', 'Restart-Service', 'Resume-Service', 'Select-Object',
        +            'Select-String', 'Set-Acl', 'Set-Alias', 'Set-AuthenticodeSignature', 'Set-Content',
        +            'Set-Date', 'Set-ExecutionPolicy', 'Set-Item', 'Set-ItemProperty', 'Set-Location',
        +            'Set-PSDebug', 'Set-Service', 'Set-TraceSource', 'Set-Variable', 'Sort-Object', 'Split-Path',
        +            'Start-Service', 'Start-Sleep', 'Start-Transcript', 'Stop-Process', 'Stop-Service',
        +            'Stop-Transcript', 'Suspend-Service', 'Tee-Object', 'Test-Path', 'Trace-Command',
        +            'Update-FormatData', 'Update-TypeData', 'Where-Object', 'Write-Debug', 'Write-Error',
        +            'Write-Host', 'Write-Output', 'Write-Progress', 'Write-Verbose', 'Write-Warning'
        +            ),
        +        2 => array(
        +            // Aliases
        +            'ac', 'asnp', 'clc', 'cli', 'clp', 'clv', 'cpi', 'cpp', 'cvpa', 'diff', 'epal', 'epcsv', 'fc',
        +            'fl', 'ft', 'fw', 'gal', 'gc', 'gci', 'gcm', 'gdr', 'ghy', 'gi', 'gl', 'gm',
        +            'gp', 'gps', 'group', 'gsv', 'gsnp', 'gu', 'gv', 'gwmi', 'iex', 'ihy', 'ii', 'ipal', 'ipcsv',
        +            'mi', 'mp', 'nal', 'ndr', 'ni', 'nv', 'oh', 'rdr', 'ri', 'rni', 'rnp', 'rp', 'rsnp', 'rv',
        +            'rvpa', 'sal', 'sasv', 'sc', 'select', 'si', 'sl', 'sleep', 'sort', 'sp', 'spps', 'spsv', 'sv',
        +            'tee', 'write', 'cat', 'cd', 'clear', 'cp', 'h', 'history', 'kill', 'lp', 'ls',
        +            'mount', 'mv', 'popd', 'ps', 'pushd', 'pwd', 'r', 'rm', 'rmdir', 'echo', 'cls', 'chdir',
        +            'copy', 'del', 'dir', 'erase', 'move', 'rd', 'ren', 'set', 'type'
        +            ),
        +        3 => array(
        +            // Reserved words
        +            'break', 'continue', 'do', 'for', 'foreach', 'while', 'if', 'switch', 'until', 'where',
        +            'function', 'filter', 'else', 'elseif', 'in', 'return', 'param', 'throw', 'trap'
        +            ),
        +        4 => array(
        +            // Operators
        +            '-eq', '-ne', '-gt', '-ge', '-lt', '-le', '-ieq', '-ine', '-igt', '-ige', '-ilt', '-ile',
        +            '-ceq', '-cne', '-cgt', '-cge', '-clt', '-cle', '-like', '-notlike', '-match', '-notmatch',
        +            '-ilike', '-inotlike', '-imatch', '-inotmatch', '-clike', '-cnotlike', '-cmatch', '-cnotmatch',
        +            '-contains', '-notcontains', '-icontains', '-inotcontains', '-ccontains', '-cnotcontains',
        +            '-isnot', '-is', '-as', '-replace', '-ireplace', '-creplace', '-and', '-or', '-band', '-bor',
        +            '-not', '-bnot', '-f', '-casesensitive', '-exact', '-file', '-regex', '-wildcard'
        +            ),
        +        5 => array(
        +            // Options
        +            '-Year', '-Wrap', '-Word', '-Width', '-WhatIf', '-Wait', '-View', '-Verbose', '-Verb',
        +            '-Variable', '-ValueOnly', '-Value', '-Unique', '-UFormat', '-TypeName', '-Trace', '-TotalCount',
        +            '-Title', '-TimestampServer', '-TargetObject', '-Syntax', '-SyncWindow', '-Sum', '-String',
        +            '-Strict', '-Stream', '-Step', '-Status', '-Static', '-StartupType', '-Start', '-StackName',
        +            '-Stack', '-SourceId', '-SimpleMatch', '-ShowError', '-Separator', '-SecureString', '-SecureKey',
        +            '-SecondValue', '-SecondsRemaining', '-Seconds', '-Second', '-Scope', '-Root', '-Role',
        +            '-Resolve', '-RemoveListener', '-RemoveFileListener', '-Registered', '-ReferenceObject',
        +            '-Recurse', '-RecommendedAction', '-ReadCount', '-Quiet', '-Query', '-Qualifier', '-PSSnapin',
        +            '-PSProvider', '-PSHost', '-PSDrive', '-PropertyType', '-Property', '-Prompt', '-Process',
        +            '-PrependPath', '-PercentComplete', '-Pattern', '-PathType', '-Path', '-PassThru', '-ParentId',
        +            '-Parent', '-Parameter', '-Paging', '-OutVariable', '-OutBuffer', '-Option', '-OnType', '-Off',
        +            '-Object', '-Noun', '-NoTypeInformation', '-NoQualifier', '-NoNewline', '-NoElement',
        +            '-NoClobber', '-NewName', '-Newest', '-Namespace', '-Name', '-Month', '-Minutes', '-Minute',
        +            '-Minimum', '-Milliseconds', '-Message', '-MemberType', '-Maximum', '-LogName', '-LiteralPath',
        +            '-LiteralName', '-ListenerOption', '-List', '-Line', '-Leaf', '-Last', '-Key', '-ItemType',
        +            '-IsValid', '-IsAbsolute', '-InputObject', '-IncludeEqual', '-IncludeChain', '-Include',
        +            '-IgnoreWhiteSpace', '-Id', '-Hours', '-Hour', '-HideTableHeaders', '-Head', '-GroupBy',
        +            '-Functionality', '-Full', '-Format', '-ForegroundColor', '-Force', '-First', '-FilterScript',
        +            '-Filter', '-FilePath', '-Expression', '-ExpandProperty', '-Expand', '-ExecutionPolicy',
        +            '-ExcludeProperty', '-ExcludeDifferent', '-Exclude', '-Exception', '-Examples', '-ErrorVariable',
        +            '-ErrorRecord', '-ErrorId', '-ErrorAction', '-End', '-Encoding', '-DisplayName', '-DisplayHint',
        +            '-DisplayError', '-DifferenceObject', '-Detailed', '-Destination', '-Description', '-Descending',
        +            '-Depth', '-DependsOn', '-Delimiter', '-Debugger', '-Debug', '-Days', '-Day', '-Date',
        +            '-CurrentOperation', '-Culture', '-Credential', '-Count', '-Container', '-Confirm',
        +            '-ComputerName', '-Component', '-Completed', '-ComObject', '-CommandType', '-Command',
        +            '-Column', '-Class', '-ChildPath', '-Character', '-Certificate', '-CategoryTargetType',
        +            '-CategoryTargetName', '-CategoryReason', '-CategoryActivity', '-Category', '-CaseSensitive',
        +            '-Body', '-BinaryPathName', '-Begin', '-BackgroundColor', '-Average', '-AutoSize', '-Audit',
        +            '-AsString', '-AsSecureString', '-AsPlainText', '-As', '-ArgumentList', '-AppendPath', '-Append',
        +            '-Adjust', '-Activity', '-AclObject'
        +            ),
        +        6 => array(
        +            '_','args','DebugPreference','Error','ErrorActionPreference',
        +            'foreach','Home','Host','Input','LASTEXITCODE','MaximumAliasCount',
        +            'MaximumDriveCount','MaximumFunctionCount','MaximumHistoryCount',
        +            'MaximumVariableCount','OFS','PsHome',
        +            'ReportErrorShowExceptionClass','ReportErrorShowInnerException',
        +            'ReportErrorShowSource','ReportErrorShowStackTrace',
        +            'ShouldProcessPreference','ShouldProcessReturnPreference',
        +            'StackTrace','VerbosePreference','WarningPreference','PWD'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '=', '<', '>', '@', '|', '&', ',', '?',
        +        '+=', '-=', '*=', '/=', '%=', '*', '/', '%', '!', '+', '-', '++', '--'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        6 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #008080; font-weight: bold;',
        +            2 => 'color: #008080; font-weight: bold;',
        +            3 => 'color: #0000FF;',
        +            4 => 'color: #FF0000;',
        +            5 => 'color: #008080; font-style: italic;',
        +            6 => 'color: #000080;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008000;',
        +            'MULTI' => 'color: #008000;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #008080; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #800000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #804000;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: pink;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: pink;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #800080;',
        +            3 => 'color: #008080;',
        +            4 => 'color: #008080;',
        +            5 => 'color: #800000;',
        +            6 => 'color: #000080;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => 'about:blank',
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        // special after pipe
        +        3 => array(
        +            GESHI_SEARCH => '(\[)(int|long|string|char|bool|byte|double|decimal|float|single|regex|array|xml|scriptblock|switch|hashtable|type|ref|psobject|wmi|wmisearcher|wmiclass|object)((\[.*\])?\])',
        +            GESHI_REPLACE => '\2',
        +            GESHI_MODIFIERS => 'si',
        +            GESHI_BEFORE => '\1',
        +            GESHI_AFTER => '\3'
        +            ),
        +        // Classes
        +        4 => array(
        +            GESHI_SEARCH => '(\[)(System\.Reflection\.Assembly|System\.Net\.CredentialCache|Microsoft\.SharePoint\.SPFileLevel|Microsoft\.SharePoint\.Publishing\.PublishingWeb|Microsoft\.SharePoint\.Publishing|Microsoft\.SharePoint\.SPWeb)(\])',
        +            GESHI_REPLACE => '\2',
        +            GESHI_MODIFIERS => 'i',
        +            GESHI_BEFORE => '\1',
        +            GESHI_AFTER => '\3'
        +            ),
        +        // Members
        +        // There's about a hundred million of these, add the ones you need as you need them
        +        5 => array (
        +            GESHI_SEARCH => '(::)(ReflectionOnlyLoadFrom|ReflectionOnlyLoad|ReferenceEquals|LoadWithPartialName|LoadFrom|LoadFile|Load|GetExecutingAssembly|GetEntryAssembly|GetCallingAssembly|GetAssembly|Equals|DefaultNetworkCredentials|DefaultCredentials|CreateQualifiedName|Checkout|Draft|Published|IsPublishingWeb)',
        +            GESHI_REPLACE => '\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\1',
        +            GESHI_AFTER => ''
        +            ),
        +        // Special variables
        +        6 => array(
        +            GESHI_SEARCH => '(\$)(\$[_\^]?|\?)(?!\w)',
        +            GESHI_REPLACE => '\1\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        // variables
        +        //BenBE: Please note that changes here and in Keyword group 6 have to be synchronized in order to work properly.
        +        //This Regexp must only match, if keyword group 6 doesn't. If this assumption fails
        +        //Highlighting of the keywords will be incomplete or incorrect!
        +        0 => "(?)[\\\$](\w+)(?=[^|\w])",
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            4 => array(
        +                'DISALLOWED_AFTER' => '(?![a-zA-Z])',
        +                'DISALLOWED_BEFORE' => ''
        +                ),
        +            6 => array(
        +                'DISALLOWED_BEFORE' => '(?)\$'
        +                )
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/proftpd.php b/Sources/geshi/proftpd.php
        new file mode 100644
        index 0000000..330db4b
        --- /dev/null
        +++ b/Sources/geshi/proftpd.php
        @@ -0,0 +1,374 @@
        + 'ProFTPd configuration',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        /*keywords*/
        +        1 => array(
        +            //mod_auth
        +            'AccessDenyMsg', 'AccessGrantMsg', 'AnonRejectePasswords',
        +            'AnonRequirePassword', 'AuthAliasOnly', 'AuthUsingAlias',
        +            'CreateHome', 'DefaultChdir', 'DefaultRoot', 'GroupPassword',
        +            'LoginPasswordPrompt', 'MaxClients', 'MaxClientsPerClass',
        +            'MaxClientsPerHost', 'MaxClientsPerUser', 'MaxConnectionsPerHost',
        +            'MaxHostsPerUser', 'MaxLoginAttempts', 'RequireValidShell',
        +            'RootLogin', 'RootRevoke', 'TimeoutLogin', 'TimeoutSession',
        +            'UseFtpUsers', 'UserAlias', 'UserDirRoot', 'UserPassword',
        +
        +            //mod_auth_file
        +            'AuthGroupFile', 'AuthUserFile',
        +
        +            //mod_auth_pam
        +            'AuthPAM', 'AuthPAMConfig',
        +
        +            //mod_auth_unix
        +            'PersistentPasswd',
        +
        +            //mod_ban
        +            'BanControlsACLs', 'BanEngine', 'BanLog', 'BanMessage', 'BanOnEvent',
        +            'BanTable',
        +
        +            //mod_cap
        +            'CapabilitiesEngine', 'CapabilitiesSet',
        +
        +            //mod_core
        +            'Allow', 'AllowAll', 'AllowClass', 'AllowFilter',
        +            'AllowForeignAddress', 'AllowGroup', 'AllowOverride',
        +            'AllowRetrieveRestart', 'AllowStoreRestart', 'AllowUser',
        +            'AnonymousGroup', 'AuthOrder', 'Bind', 'CDPath', 'Class', 'Classes',
        +            'CommandBufferSize', 'DebugLevel', 'DefaultAddress',
        +            'DefaultServer', 'DefaultTransferMode', 'DeferWelcome', 'Define',
        +            'Deny', 'DenyAll', 'DenyClass', 'DenyFilter', 'DenyGroup',
        +            'DenyUser', 'DisplayChdir', 'DisplayConnect', 'DisplayFirstChdir',
        +            'DisplayGoAway', 'DisplayLogin', 'DisplayQuit', 'From', 'Group',
        +            'GroupOwner', 'HideFiles', 'HideGroup', 'HideNoAccess', 'HideUser',
        +            'IdentLookups', 'IgnoreHidden', 'Include', 'MasqueradeAddress',
        +            'MaxConnectionRate', 'MaxInstances', 'MultilineRFC2228', 'Order',
        +            'PassivePorts', 'PathAllowFilter', 'PathDenyFilter', 'PidFile',
        +            'Port', 'RLimitCPU', 'RLimitMemory', 'RLimitOpenFiles', 'Satisfy',
        +            'ScoreboardFile', 'ServerAdmin', 'ServerIdent', 'ServerName',
        +            'ServerType', 'SetEnv', 'SocketBindTight', 'SocketOptions',
        +            'SyslogFacility', 'SyslogLevel', 'tcpBackLog', 'tcpNoDelay',
        +            'TimeoutIdle', 'TimeoutLinger', 'TimesGMT', 'TransferLog', 'Umask',
        +            'UnsetEnv', 'UseIPv6', 'User', 'UseReverseDNS', 'UserOwner',
        +            'UseUTF8', 'WtmpLog',
        +
        +            //mod_ctrls_admin
        +            'AdminControlsACLs', 'AdminControlsEngine',
        +
        +            //mod_delay
        +            'DelayEngine', 'DelayTable',
        +
        +            //mod_dynmasq
        +            'DynMasqRefresh',
        +
        +            //mod_exec
        +            'ExecBeforeCommand', 'ExecEngine', 'ExecEnviron', 'ExecLog',
        +            'ExecOnCommand', 'ExecOnConnect', 'ExecOnError', 'ExecOnEvent',
        +            'ExecOnExit', 'ExecOnRestart', 'ExecOptions', 'ExecTimeout',
        +
        +            //mod_ldap
        +            'LDAPAliasDereference', 'LDAPAttr', 'LDAPAuthBinds',
        +            'LDAPDefaultAuthScheme', 'LDAPDefaultGID', 'LDAPDefaultUID',
        +            'LDAPDNInfo', 'LDAPDoAuth', 'LDAPDoGIDLookups',
        +            'LDAPDoQuotaLookups', 'LDAPDoUIDLookups',
        +            'LDAPForceGeneratedHomedir', 'LDAPForceHomedirOnDemand',
        +            'LDAPGenerateHomedir', 'LDAPGenerateHomedirPrefix',
        +            'LDAPGenerateHomedirPrefixNoUsername', 'LDAPHomedirOnDemand',
        +            'LDAPHomedirOnDemandPrefix', 'LDAPHomedirOnDemandPrefixNoUsername',
        +            'LDAPHomedirOnDemandSuffix', 'LDAPNegativeCache',
        +            'LDAPProtocolVersion', 'LDAPQueryTimeout', 'LDAPSearchScope',
        +            'LDAPServer',
        +
        +            //mod_load
        +            'MaxLoad',
        +
        +            //mod_log
        +            'AllowLogSymlinks', 'ExtendedLog', 'LogFormat', 'ServerLog',
        +            'SystemLog',
        +
        +            //mod_ls'
        +            'DirFakeGroup', 'DirFakeMode', 'DirFakeUser', 'ListOptions',
        +            'ShowSymlinks', 'UseGlobbing',
        +
        +            //mod_quotatab
        +            'QuotaDirectoryTally', 'QuotaDisplayUnits', 'QuotaEngine',
        +            'QuotaExcludeFilter', 'QuotaLimitTable', 'QuotaLock', 'QuotaLog',
        +            'QuotaOptions', 'QuotaShowQuotas', 'QuotaTallyTable',
        +
        +            //mod_quotatab_file
        +
        +            //mod_quotatab_ldap
        +
        +            //mod_quotatab_sql
        +
        +            //mod_radius
        +            'RadiusAcctServer', 'RadiusAuthServer', 'RadiusEngine',
        +            'RadiusGroupInfo', 'RadiusLog', 'RadiusNASIdentifier',
        +            'RadiusQuotaInfo', 'RadiusRealm', 'RadiusUserInfo', 'RadiusVendor',
        +
        +            //mod_ratio
        +            'AnonRatio', 'ByteRatioErrMsg', 'CwdRatioMsg', 'FileRatioErrMsg',
        +            'GroupRatio', 'HostRatio', 'LeechRatioMsg', 'RatioFile', 'Ratios',
        +            'RatioTempFile', 'SaveRatios', 'UserRatio',
        +
        +            //mod_readme
        +            'DisplayReadme',
        +
        +            //mod_rewrite
        +            'RewriteCondition', 'RewriteEngine', 'RewriteLock', 'RewriteLog',
        +            'RewriteMap', 'RewriteRule',
        +
        +            //mod_sftp
        +            'SFTPAcceptEnv', 'SFTPAuthMethods', 'SFTPAuthorizedHostKeys',
        +            'SFTPAuthorizedUserKeys', 'SFTPCiphers', 'SFTPClientMatch',
        +            'SFTPCompression', 'SFTPCryptoDevice', 'SFTPDHParamFile',
        +            'SFTPDigests', 'SFTPDisplayBanner', 'SFTPEngine', 'SFTPExtensions',
        +            'SFTPHostKey', 'SFTPKeyBlacklist', 'SFTPKeyExchanges', 'SFTPLog',
        +            'SFTPMaxChannels', 'SFTPOptions', 'SFTPPassPhraseProvider',
        +            'SFTPRekey', 'SFTPTrafficPolicy',
        +
        +            //mod_sftp_pam
        +            'SFTPPAMEngine', 'SFTPPAMOptions', 'SFTPPAMServiceName',
        +
        +            //mod_sftp_sql
        +
        +            //mod_shaper
        +            'ShaperAll', 'ShaperControlsACLs', 'ShaperEngine', 'ShaperLog',
        +            'ShaperSession', 'ShaperTable',
        +
        +            //mod_sql
        +            'SQLAuthenticate', 'SQLAuthTypes', 'SQLBackend', 'SQLConnectInfo',
        +            'SQLDefaultGID', 'SQLDefaultHomedir', 'SQLDefaultUID', 'SQLEngine',
        +            'SQLGroupInfo', 'SQLGroupWhereClause', 'SQLHomedirOnDemand',
        +            'SQLLog', 'SQLLogFile', 'SQLMinID', 'SQLMinUserGID',
        +            'SQLMinUserUID', 'SQLNamedQuery', 'SQLNegativeCache', 'SQLOptions',
        +            'SQLRatios', 'SQLRatioStats', 'SQLShowInfo', 'SQLUserInfo',
        +            'SQLUserWhereClause',
        +
        +            //mod_sql_passwd
        +            'SQLPasswordEncoding', 'SQLPasswordEngine', 'SQLPasswordSaltFile',
        +            'SQLPasswordUserSalt',
        +
        +            //mod_tls
        +            'TLSCACertificateFile', 'TLSCACertificatePath',
        +            'TLSCARevocationFile', 'TLSCARevocationPath',
        +            'TLSCertificateChainFile', 'TLSCipherSuite', 'TLSControlsACLs',
        +            'TLSCryptoDevice', 'TLSDHParamFile', 'TLSDSACertificateFile',
        +            'TLSDSACertificateKeyFile', 'TLSEngine', 'TLSLog', 'TLSOptions',
        +            'TLSPKCS12File', 'TLSPassPhraseProvider', 'TLSProtocol',
        +            'TLSRandomSeed', 'TLSRenegotiate', 'TLSRequired',
        +            'TLSRSACertificateFile', 'TLSRSACertificateKeyFile',
        +            'TLSSessionCache', 'TLSTimeoutHandshake', 'TLSVerifyClient',
        +            'TLSVerifyDepth', 'TLSVerifyOrder',
        +
        +            //mod_tls_shmcache
        +
        +            //mod_unique_id
        +            'UniqueIDEngine',
        +
        +            //mod_wrap
        +            'TCPAccessFiles', 'TCPAccessSyslogLevels', 'TCPGroupAccessFiles',
        +            'TCPServiceName', 'TCPUserAccessFiles',
        +
        +            //mod_wrap2
        +            'WrapAllowMsg', 'WrapDenyMsg', 'WrapEngine', 'WrapGroupTables',
        +            'WrapLog', 'WrapServiceName', 'WrapTables', 'WrapUserTables',
        +
        +            //mod_wrap2_file
        +
        +            //mod_wrap2_sql
        +
        +            //mod_xfer
        +            'AllowOverwrite', 'DeleteAbortedStores', 'DisplayFileTransfer',
        +            'HiddenStor', 'HiddenStores', 'MaxRetrieveFileSize',
        +            'MaxStoreFileSize', 'StoreUniquePrefix', 'TimeoutNoTransfer',
        +            'TimeoutStalled', 'TransferRate', 'UseSendfile',
        +
        +            //unknown
        +            'ScoreboardPath', 'ScoreboardScrub'
        +            ),
        +        /*keywords 3*/
        +        3 => array(
        +            //mod_core
        +            'Anonymous',
        +            'Class',
        +            'Directory',
        +            'IfDefine',
        +            'IfModule',
        +            'Limit',
        +            'VirtualHost',
        +
        +            //mod_ifsession
        +            'IfClass', 'IfGroup', 'IfUser',
        +
        +            //mod_version
        +            'IfVersion'
        +            ),
        +        /*permissions*/
        +        4 => array(
        +            //mod_core
        +            'ALL',
        +            'CDUP',
        +            'CMD',
        +            'CWD',
        +            'DELE',
        +            'DIRS',
        +            'LOGIN',
        +            'MKD',
        +            'READ',
        +            'RETR',
        +            'RMD',
        +            'RNFR',
        +            'RNTO',
        +            'STOR',
        +            'WRITE',
        +            'XCWD',
        +            'XMKD',
        +            'XRMD',
        +
        +            //mod_copy
        +            'SITE_CPFR', 'SITE_CPTO',
        +
        +            //mod_quotatab
        +            'SITE_QUOTA',
        +
        +            //mod_site
        +            'SITE_HELP', 'SITE_CHMOD', 'SITE_CHGRP',
        +
        +            //mod_site_misc
        +            'SITE_MKDIR', 'SITE_RMDIR', 'SITE_SYMLINK', 'SITE_UTIME',
        +            ),
        +        /*keywords 2*/
        +        2 => array(
        +            'all','on','off','yes','no',
        +            'standalone', 'inetd',
        +            'default', 'auth', 'write',
        +            'internet', 'local', 'limit', 'ip',
        +            'from'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '+', '-'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #00007f;',
        +            2 => 'color: #0000ff;',
        +            3 => 'color: #000000; font-weight:bold;',
        +            4 => 'color: #000080; font-weight:bold;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #adadad; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #7f007f;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #008000;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://www.google.com/search?hl=en&q={FNAMEL}+site:www.proftpd.org+inurl:docs&btnI=I%27m%20Feeling%20Lucky',
        +        2 => '',
        +        3 => 'http://www.google.com/search?hl=en&q={FNAMEL}+site:www.proftpd.org+inurl:docs&btnI=I%27m%20Feeling%20Lucky',
        +        4 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'BRACKETS' => GESHI_NEVER,
        +            'SYMBOLS' => GESHI_NEVER
        +        ),
        +        'KEYWORDS' => array(
        +            2 => array(
        +                'DISALLOWED_BEFORE' => '(?<=\s)(? '(?!\+)(?!\w)',
        +            ),
        +            3 => array(
        +                'DISALLOWED_BEFORE' => '(?<=<|<\/)',
        +                'DISALLOWED_AFTER' => '(?=\s|\/|>)',
        +            ),
        +            4 => array(
        +                'DISALLOWED_BEFORE' => '(?<=\s)(? '(?!\+)(?=\/|(?:\s+\w+)*\s*>)',
        +            )
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/progress.php b/Sources/geshi/progress.php
        new file mode 100644
        index 0000000..7990026
        --- /dev/null
        +++ b/Sources/geshi/progress.php
        @@ -0,0 +1,485 @@
        + 'Progress',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array (
        +        1 => array(
        +            'ACCUMULATE','APPLY','ASSIGN','BELL','QUERY',
        +            'BUFFER-COMPARE','BUFFER-COPY','CALL','CASE',
        +            'CHOOSE','CLASS','CLOSE QUERY','each','WHERE',
        +            'CLOSE STORED-PROCEDURE','COLOR','COMPILE','CONNECT',
        +            'CONSTRUCTOR','COPY-LOB','CREATE','CREATE ALIAS',
        +            'CREATE BROWSE','CREATE BUFFER','CREATE CALL','CREATE CLIENT-PRINCIPAL',
        +            'CREATE DATABASE','CREATE DATASET','CREATE DATA-SOURCE','CREATE QUERY',
        +            'CREATE SAX-attributeS','CREATE SAX-READER','CREATE SAX-WRITER','CREATE SERVER',
        +            'CREATE SERVER-SOCKET','CREATE SOAP-HEADER','CREATE SOAP-HEADER-ENTRYREF','CREATE SOCKET',
        +            'CREATE TEMP-TABLE','CREATE WIDGET','CREATE widget-POOL','CREATE X-DOCUMENT',
        +            'CREATE X-NODEREF','CURRENT-LANGUAGE','CURRENT-VALUE','DDE ADVISE',
        +            'DDE EXECUTE','DDE GET','DDE INITIATE','DDE REQUEST',
        +            'DDE SEND','DDE TERMINATE','DEFINE BROWSE','DEFINE BUFFER','DEFINE',
        +            'DEFINE BUTTON','DEFINE DATASET','DEFINE DATA-SOURCE','DEFINE FRAME','DEF','VAR',
        +            'DEFINE IMAGE','DEFINE MENU','DEFINE PARAMETER','DEFINE property','PARAM',
        +            'DEFINE QUERY','DEFINE RECTANGLE','DEFINE STREAM','DEFINE SUB-MENU',
        +            'DEFINE TEMP-TABLE','DEFINE WORKFILE','DEFINE WORK-TABLE',
        +            'DELETE','DELETE ALIAS','DELETE object','DELETE PROCEDURE',
        +            'DELETE widget','DELETE widget-POOL','DESTRUCTOR','DICTIONARY',
        +            'DISABLE','DISABLE TRIGGERS','DISCONNECT','DISPLAY',
        +            'DO','DOS','DOWN','DYNAMIC-CURRENT-VALUE',
        +            'ELSE','EMPTY TEMP-TABLE','ENABLE','END',
        +            'ENTRY','FIND','AND',
        +            'FIX-CODEPAGE','FOR','FORM','FRAME-VALUE',
        +            'GET','GET-KEY-VALUE','HIDE','IF',
        +            'IMPORT','INPUT CLEAR','INPUT CLOSE','INPUT FROM','input',
        +            'INPUT THROUGH','INPUT-OUTPUT CLOSE','INPUT-OUTPUT THROUGH',
        +            'INTERFACE','LEAVE','BREAK',
        +            'LOAD-PICTURE','MESSAGE','method','NEXT','prev',
        +            'NEXT-PROMPT','ON','OPEN QUERY','OS-APPEND',
        +            'OS-COMMAND','OS-COPY','OS-CREATE-DIR','OS-DELETE',
        +            'OS-RENAME','OUTPUT CLOSE','OUTPUT THROUGH','OUTPUT TO',
        +            'OVERLAY','PAGE','PAUSE','PROCEDURE',
        +            'PROCESS EVENTS','PROMPT-FOR','PROMSGS','PROPATH',
        +            'PUBLISH','PUT','PUT CURSOR','PUT SCREEN',
        +            'PUT-BITS','PUT-BYTE','PUT-BYTES','PUT-DOUBLE',
        +            'PUT-FLOAT','PUT-INT64','PUT-KEY-VALUE','PUT-LONG',
        +            'PUT-SHORT','PUT-STRING','PUT-UNSIGNED-LONG','PUT-UNSIGNED-SHORT',
        +            'QUIT','RAW-TRANSFER','READKEY','RELEASE',
        +            'RELEASE EXTERNAL','RELEASE object','REPEAT','REPOSITION',
        +            'RUN','RUN STORED-PROCEDURE','RUN SUPER',
        +            'SAVE CACHE','SCROLL','SEEK','SET',
        +            'SET-BYTE-ORDER','SET-POINTER-VALUE','SET-SIZE','SHOW-STATS',
        +            'STATUS','STOP','SUBSCRIBE','SUBSTRING',
        +            'system-DIALOG COLOR','system-DIALOG FONT','system-DIALOG GET-DIR','system-DIALOG GET-FILE',
        +            'system-DIALOG PRINTER-SETUP','system-HELP','THEN','THIS-object',
        +            'TRANSACTION-MODE AUTOMATIC','TRIGGER PROCEDURE','UNDERLINE','UNDO',
        +            'UNIX','UNLOAD','UNSUBSCRIBE','UP','STRING',
        +            'UPDATE','USE','USING','substr','SKIP','CLOSE',
        +            'VIEW','WAIT-FOR','MODULO','NE','AVAIL',
        +            'NOT','OR','&GLOBAL-DEFINE','&IF','UNFORMATTED','NO-PAUSE',
        +            '&THEN','&ELSEIF','&ELSE','&ENDIF','OPEN','NO-WAIT',
        +            '&MESSAGE','&SCOPED-DEFINE','&UNDEFINE','DEFINED',
        +            'BROWSE','BUTTON','COMBO-BOX','CONTROL-FRAME',
        +            'DIALOG-BOX','EDITOR','FIELD-GROUP','FILL-IN',
        +            'FRAME','IMAGE','LITERAL','MENU',
        +            'MENU-ITEM','RADIO-SET','RECTANGLE','SELECTION-LIST',
        +            'SLIDER','SUB-MENU','TEXT','TOGGLE-BOX',
        +            'WINDOW','WITH','AT','OF','EDITING','ON ENDKEY','output',
        +            'ON ERROR','ON QUIT','ON STOP','PRESELECT',
        +            'QUERY-TUNING','SIZE','Trigger','VIEW-AS','ALERT-BOX',
        +            'Buffer','Data-relation','ProDataSet','SAX-attributes',
        +            'SAX-reader','SAX-writer','Server socket','SOAP-fault',
        +            'SOAP-header','SOAP-header-entryref','Socket','Temp-table',
        +            'X-noderef','Height','Left','Top','TO',
        +            'Width','ACTIVE-WINDOW','AUDIT-CONTROL','FIRST','LAST',
        +            'AUDIT-POLICY','CLIPBOARD','CODEBASE-LOCATOR','COLOR-TABLE',
        +            'COMPILER','COM-SELF','DEBUGGER','DEFAULT-WINDOW',
        +            'ERROR-STATUS','FILE-INFO','FOCUS','FONT-TABLE',
        +            'LAST-EVENT','LOG-MANAGER','RCODE-INFO','SECURITY-POLICY',
        +            'SELF','SESSION','SOURCE-PROCEDURE','TARGET-PROCEDURE','NO-LOCK','NO-error',
        +            'THIS-PROCEDURE','WEB-CONTEXT','FUNCTION','RETURNS','NO-UNDO'
        +            ),
        +        2 => array(
        +            'ACCEPT-CHANGES','ACCEPT-ROW-CHANGES','ADD-BUFFER','ADD-CALC-COLUMN',
        +            'ADD-COLUMNS-FROM','ADD-EVENTS-PROCEDURE','ADD-FIELDS-FROM','ADD-FIRST',
        +            'ADD-HEADER-ENTRY','ADD-INDEX-FIELD','ADD-LAST','ADD-LIKE-COLUMN',
        +            'ADD-LIKE-FIELD','ADD-LIKE-INDEX','ADD-NEW-FIELD','ADD-NEW-INDEX',
        +            'ADD-RELATION','ADD-SCHEMA-LOCATION','ADD-SOURCE-BUFFER','ADD-SUPER-PROCEDURE',
        +            'APPEND-CHILD','APPLY-CALLBACK','ATTACH-DATA-SOURCE','AUTHENTICATION-FAILED',
        +            'BEGIN-EVENT-GROUP','BUFFER-CREATE',
        +            'BUFFER-DELETE','BUFFER-RELEASE','BUFFER-VALIDATE',
        +            'CANCEL-BREAK','CANCEL-REQUESTS','CLEAR','CLEAR-APPL-CONTEXT',
        +            'CLEAR-LOG','CLEAR-SELECTION','CLEAR-SORT-ARROWS','CLONE-NODE',
        +            'CLOSE-LOG','CONNECTED','CONVERT-TO-OFFSET',
        +            'COPY-DATASET','COPY-SAX-attributeS','COPY-TEMP-TABLE','CREATE-LIKE',
        +            'CREATE-NODE','CREATE-NODE-NAMESPACE','CREATE-RESULT-LIST-ENTRY','DEBUG',
        +            'DECLARE-NAMESPACE','DELETE-CHAR','DELETE-CURRENT-ROW',
        +            'DELETE-HEADER-ENTRY','DELETE-LINE','DELETE-NODE','DELETE-RESULT-LIST-ENTRY',
        +            'DELETE-SELECTED-ROW','DELETE-SELECTED-ROWS','DESELECT-FOCUSED-ROW','DESELECT-ROWS',
        +            'DESELECT-SELECTED-ROW','DETACH-DATA-SOURCE','DISABLE-CONNECTIONS',
        +            'DISABLE-DUMP-TRIGGERS','DISABLE-LOAD-TRIGGERS','DISPLAY-MESSAGE',
        +            'DUMP-LOGGING-NOW','EDIT-CLEAR','EDIT-COPY','EDIT-CUT',
        +            'EDIT-PASTE','EDIT-UNDO','EMPTY-DATASET','EMPTY-TEMP-TABLE',
        +            'ENABLE-CONNECTIONS','ENABLE-EVENTS','ENCRYPT-AUDIT-MAC-KEY',
        +            'END-DOCUMENT','END-ELEMENT','END-EVENT-GROUP','END-FILE-DROP',
        +            'EXPORT','EXPORT-PRINCIPAL','FETCH-SELECTED-ROW',
        +            'FILL','FIND-BY-ROWID','FIND-CURRENT','FIND-FIRST',
        +            'FIND-LAST','FIND-UNIQUE','GET-attribute','GET-attribute-NODE',
        +            'GET-BINARY-DATA','GET-BLUE-VALUE','GET-BROWSE-COLUMN','GET-BUFFER-HANDLE',
        +            'GET-BYTES-AVAILABLE','GET-CALLBACK-PROC-CONTEXT','GET-CALLBACK-PROC-NAME','GET-CGI-LIST',
        +            'GET-CGI-LONG-VALUE','GET-CGI-VALUE','GET-CHANGES','GET-CHILD',
        +            'GET-CHILD-RELATION','GET-CONFIG-VALUE','GET-CURRENT','GET-DATASET-BUFFER',
        +            'GET-DOCUMENT-ELEMENT','GET-DROPPED-FILE','GET-DYNAMIC','GET-ERROR-COLUMN ',
        +            'GET-ERROR-ROW ','GET-FILE-NAME ','GET-FILE-OFFSET ','GET-FIRST',
        +            'GET-GREEN-VALUE','GET-HEADER-ENTRY','GET-INDEX-BY-NAMESPACE-NAME','GET-INDEX-BY-QNAME',
        +            'GET-ITERATION','GET-LAST','GET-LOCALNAME-BY-INDEX','GET-MESSAGE',
        +            'GET-NEXT','GET-NODE','GET-NUMBER','GET-PARENT',
        +            'GET-PREV','GET-PRINTERS','GET-property','GET-QNAME-BY-INDEX',
        +            'GET-RED-VALUE','GET-RELATION','GET-REPOSITIONED-ROW','GET-RGB-VALUE',
        +            'GET-SELECTED-widget','GET-SERIALIZED','GET-SIGNATURE','GET-SOCKET-OPTION',
        +            'GET-SOURCE-BUFFER','GET-TAB-ITEM','GET-TEXT-HEIGHT-CHARS','GET-TEXT-HEIGHT-PIXELS',
        +            'GET-TEXT-WIDTH-CHARS','GET-TEXT-WIDTH-PIXELS','GET-TOP-BUFFER','GET-TYPE-BY-INDEX',
        +            'GET-TYPE-BY-NAMESPACE-NAME','GET-TYPE-BY-QNAME','GET-URI-BY-INDEX','GET-VALUE-BY-INDEX',
        +            'GET-VALUE-BY-NAMESPACE-NAME','GET-VALUE-BY-QNAME','GET-WAIT-STATE','IMPORT-NODE',
        +            'IMPORT-PRINCIPAL','INCREMENT-EXCLUSIVE-ID','INITIALIZE-DOCUMENT-TYPE',
        +            'INITIATE','INSERT','INSERT-attribute','INSERT-BACKTAB',
        +            'INSERT-BEFORE','INSERT-FILE','INSERT-ROW','INSERT-STRING',
        +            'INSERT-TAB','INVOKE','IS-ROW-SELECTED','IS-SELECTED',
        +            'LIST-property-NAMES','LOAD','LoadControls','LOAD-DOMAINS',
        +            'LOAD-ICON','LOAD-IMAGE','LOAD-IMAGE-DOWN','LOAD-IMAGE-INSENSITIVE',
        +            'LOAD-IMAGE-UP','LOAD-MOUSE-POINTER','LOAD-SMALL-ICON','LOCK-REGISTRATION',
        +            'LOG-AUDIT-EVENT','LOGOUT','LONGCHAR-TO-NODE-VALUE','LOOKUP',
        +            'MEMPTR-TO-NODE-VALUE','MERGE-CHANGES','MERGE-ROW-CHANGES','MOVE-AFTER-TAB-ITEM',
        +            'MOVE-BEFORE-TAB-ITEM','MOVE-COLUMN','MOVE-TO-BOTTOM','MOVE-TO-EOF',
        +            'MOVE-TO-TOP','NODE-VALUE-TO-LONGCHAR','NODE-VALUE-TO-MEMPTR','NORMALIZE',
        +            'QUERY-CLOSE','QUERY-OPEN','QUERY-PREPARE',
        +            'READ','READ-FILE','READ-XML','READ-XMLSCHEMA',
        +            'REFRESH','REFRESH-AUDIT-POLICY','REGISTER-DOMAIN','REJECT-CHANGES',
        +            'REJECT-ROW-CHANGES','REMOVE-attribute','REMOVE-CHILD','REMOVE-EVENTS-PROCEDURE',
        +            'REMOVE-SUPER-PROCEDURE','REPLACE','REPLACE-CHILD','REPLACE-SELECTION-TEXT',
        +            'REPOSITION-BACKWARD','REPOSITION-FORWARD','REPOSITION-TO-ROW','REPOSITION-TO-ROWID',
        +            'RESET','SAVE','SAVE-FILE','SAVE-ROW-CHANGES',
        +            'SAX-PARSE','SAX-PARSE-FIRST','SAX-PARSE-NEXT','SCROLL-TO-CURRENT-ROW',
        +            'SCROLL-TO-ITEM','SCROLL-TO-SELECTED-ROW','SEAL','SEARCH',
        +            'SELECT-ALL','SELECT-FOCUSED-ROW','SELECT-NEXT-ROW','SELECT-PREV-ROW',
        +            'SELECT-ROW','SET-ACTOR','SET-APPL-CONTEXT','SET-attribute',
        +            'SET-attribute-NODE','SET-BLUE-VALUE','SET-BREAK','SET-BUFFERS',
        +            'SET-CALLBACK','SET-CALLBACK-PROCEDURE','SET-CLIENT','SET-COMMIT',
        +            'SET-CONNECT-PROCEDURE','SET-DYNAMIC','SET-GREEN-VALUE','SET-INPUT-SOURCE',
        +            'SET-MUST-UNDERSTAND','SET-NODE','SET-NUMERIC-FORMAT','SET-OUTPUT-DESTINATION',
        +            'SET-PARAMETER','SET-property','SET-READ-RESPONSE-PROCEDURE','SET-RED-VALUE',
        +            'SET-REPOSITIONED-ROW','SET-RGB-VALUE','SET-ROLLBACK','SET-SELECTION',
        +            'SET-SERIALIZED','SET-SOCKET-OPTION','SET-SORT-ARROW','SET-WAIT-STATE',
        +            'START-DOCUMENT','START-ELEMENT','STOP-PARSING','SYNCHRONIZE',
        +            'TEMP-TABLE-PREPARE','UPDATE-attribute','URL-DECODE','URL-ENCODE',
        +            'VALIDATE','VALIDATE-SEAL','WRITE','WRITE-CDATA','USE-INDEX',
        +            'WRITE-CHARACTERS','WRITE-COMMENT','WRITE-DATA-ELEMENT','WRITE-EMPTY-ELEMENT',
        +            'WRITE-ENTITY-REF','WRITE-EXTERNAL-DTD','WRITE-FRAGMENT','WRITE-MESSAGE',
        +            'WRITE-PROCESSING-INSTRUCTION','WRITE-XML','WRITE-XMLSCHEMA','FALSE','true'
        +            ),
        +        3 => array(
        +            'ABSOLUTE','ACCUM','ADD-INTERVAL','ALIAS','mod',
        +            'AMBIGUOUS','ASC','AUDIT-ENABLED','AVAILABLE',
        +            'BASE64-DECODE','BASE64-ENCODE','CAN-DO','CAN-FIND',
        +            'CAN-QUERY','CAN-SET','CAPS','CAST','OS-DIR',
        +            'CHR','CODEPAGE-CONVERT','COMPARE',
        +            'COUNT-OF','CURRENT-CHANGED','CURRENT-RESULT-ROW','DATASERVERS',
        +            'DATA-SOURCE-MODIFIED','DATETIME','DATETIME-TZ',
        +            'DAY','DBCODEPAGE','DBCOLLATION','DBNAME',
        +            'DBPARAM','DBRESTRICTIONS','DBTASKID','DBTYPE',
        +            'DBVERSION','DECIMAL','DECRYPT','DYNAMIC-function',
        +            'DYNAMIC-NEXT-VALUE','ENCODE','ENCRYPT','ENTERED',
        +            'ERROR','ETIME','EXP','ENDKEY','END-error',
        +            'FIRST-OF','FRAME-DB','FRAME-DOWN',
        +            'FRAME-FIELD','FRAME-FILE','FRAME-INDEX','FRAME-LINE',
        +            'GATEWAYS','GENERATE-PBE-KEY','GENERATE-PBE-SALT','GENERATE-RANDOM-KEY',
        +            'GENERATE-UUID','GET-BITS','GET-BYTE','GET-BYTE-ORDER',
        +            'GET-BYTES','GET-CODEPAGE','GET-CODEPAGES','GET-COLLATION',
        +            'GET-COLLATIONS','GET-DOUBLE','GET-FLOAT','GET-INT64',
        +            'GET-LONG','GET-POINTER-VALUE','GET-SHORT','GET-SIZE',
        +            'GET-STRING','GET-UNSIGNED-LONG','GET-UNSIGNED-SHORT','GO-PENDING',
        +            'GUID','HEX-DECODE','INDEX',
        +            'INT64','INTEGER','INTERVAL','IS-ATTR-SPACE',
        +            'IS-CODEPAGE-FIXED','IS-COLUMN-CODEPAGE','IS-LEAD-BYTE','ISO-DATE',
        +            'KBLABEL','KEYCODE','KEYFUNCTION','KEYLABEL',
        +            'KEYWORD','KEYWORD-ALL','LASTKEY',
        +            'LAST-OF','LC','LDBNAME','LEFT-TRIM',
        +            'LIBRARY','LINE-COUNTER','LIST-EVENTS','LIST-QUERY-ATTRS',
        +            'LIST-SET-ATTRS','LIST-widgetS','LOCKED',
        +            'LOGICAL','MAXIMUM','MD5-DIGEST',
        +            'MEMBER','MESSAGE-LINES','MINIMUM','MONTH',
        +            'MTIME','NEW','NEXT-VALUE','SHARED',
        +            'NOT ENTERED','NOW','NUM-ALIASES','NUM-DBS',
        +            'NUM-ENTRIES','NUM-RESULTS','OPSYS','OS-DRIVES',
        +            'OS-ERROR','OS-GETENV','PAGE-NUMBER','PAGE-SIZE',
        +            'PDBNAME','PROC-HANDLE','PROC-STATUS','PROGRAM-NAME',
        +            'PROGRESS','PROVERSION','QUERY-OFF-END','QUOTER',
        +            'RANDOM','RAW','RECID','REJECTED',
        +            'RETRY','RETURN-VALUE','RGB-VALUE',
        +            'RIGHT-TRIM','R-INDEX','ROUND','ROWID','LENGTH',
        +            'SDBNAME','SET-DB-CLIENT','SETUSERID',
        +            'SHA1-DIGEST','SQRT','SUBSTITUTE','VARIABLE',
        +            'SUPER','TERMINAL','TIME','TIMEZONE','external',
        +            'TODAY','TO-ROWID','TRIM','TRUNCATE','return',
        +            'TYPE-OF','USERID','VALID-EVENT','VALID-HANDLE',
        +            'VALID-object','WEEKDAY','YEAR','BEGINS','VALUE',
        +            'EQ','GE','GT','LE','LT','MATCHES','AS','BY','LIKE'
        +            ),
        +        4 => array(
        +            'ACCELERATOR','ACTIVE','ACTOR','ADM-DATA',
        +            'AFTER-BUFFER','AFTER-ROWID','AFTER-TABLE','ALLOW-COLUMN-SEARCHING',
        +            'ALWAYS-ON-TOP','APPL-ALERT-BOXES','APPL-CONTEXT-ID','APPSERVER-INFO',
        +            'APPSERVER-PASSWORD','APPSERVER-USERID','ASYNCHRONOUS','ASYNC-REQUEST-COUNT',
        +            'ASYNC-REQUEST-HANDLE','ATTACHED-PAIRLIST','attribute-NAMES','ATTR-SPACE',
        +            'AUDIT-EVENT-CONTEXT','AUTO-COMPLETION','AUTO-DELETE','AUTO-DELETE-XML',
        +            'AUTO-END-KEY','AUTO-GO','AUTO-INDENT','AUTO-RESIZE',
        +            'AUTO-RETURN','AUTO-SYNCHRONIZE','AUTO-VALIDATE','AUTO-ZAP',
        +            'AVAILABLE-FORMATS','BACKGROUND','BASE-ADE','BASIC-LOGGING',
        +            'BATCH-MODE','BATCH-SIZE','BEFORE-BUFFER','BEFORE-ROWID',
        +            'BEFORE-TABLE','BGCOLOR','BLANK','BLOCK-ITERATION-DISPLAY',
        +            'BORDER-BOTTOM-CHARS','BORDER-BOTTOM-PIXELS','BORDER-LEFT-CHARS','BORDER-LEFT-PIXELS',
        +            'BORDER-RIGHT-CHARS','BORDER-RIGHT-PIXELS','BORDER-TOP-CHARS','BORDER-TOP-PIXELS',
        +            'BOX','BOX-SELECTABLE','BUFFER-CHARS','BUFFER-FIELD',
        +            'BUFFER-HANDLE','BUFFER-LINES','BUFFER-NAME','BUFFER-VALUE',
        +            'BYTES-READ','BYTES-WRITTEN','CACHE','CALL-NAME',
        +            'CALL-TYPE','CANCEL-BUTTON','CANCELLED','CAN-CREATE',
        +            'CAN-DELETE','CAN-READ','CAN-WRITE','CAREFUL-PAINT',
        +            'CASE-SENSITIVE','CENTERED','CHARSET','CHECKED',
        +            'CHILD-BUFFER','CHILD-NUM','CLASS-TYPE','CLIENT-CONNECTION-ID',
        +            'CLIENT-TTY','CLIENT-TYPE','CLIENT-WORKSTATION','CODE',
        +            'CODEPAGE','COLUMN','COLUMN-BGCOLOR','COLUMN-DCOLOR',
        +            'COLUMN-FGCOLOR','COLUMN-FONT','COLUMN-LABEL','COLUMN-MOVABLE',
        +            'COLUMN-PFCOLOR','COLUMN-READ-ONLY','COLUMN-RESIZABLE','COLUMN-SCROLLING',
        +            'COM-HANDLE','COMPLETE','CONFIG-NAME','CONTEXT-HELP',
        +            'CONTEXT-HELP-FILE','CONTEXT-HELP-ID','CONTROL-BOX','CONVERT-3D-COLORS',
        +            'CPCASE','CPCOLL','CPINTERNAL','CPLOG',
        +            'CPPRINT','CPRCODEIN','CPRCODEOUT','CPSTREAM',
        +            'CPTERM','CRC-VALUE','CURRENT-COLUMN','CURRENT-ENVIRONMENT',
        +            'CURRENT-ITERATION','CURRENT-ROW-MODIFIED','CURRENT-WINDOW','CURSOR-CHAR',
        +            'CURSOR-LINE','CURSOR-OFFSET','DATA-ENTRY-RETURN','DATASET',
        +            'DATA-SOURCE','DATA-SOURCE-COMPLETE-MAP','DATA-TYPE','DATE-FORMAT',
        +            'DB-REFERENCES','DCOLOR','DDE-ERROR','DDE-ID',
        +            'DDE-ITEM','DDE-NAME','DDE-TOPIC','DEBLANK',
        +            'DEBUG-ALERT','DECIMALS','DEFAULT','DEFAULT-BUFFER-HANDLE',
        +            'DEFAULT-BUTTON','DEFAULT-COMMIT','DELIMITER','DISABLE-AUTO-ZAP',
        +            'DISPLAY-TIMEZONE','DISPLAY-TYPE','DOMAIN-DESCRIPTION','DOMAIN-NAME',
        +            'DOMAIN-TYPE','DRAG-ENABLED','DROP-TARGET','DYNAMIC',
        +            'EDGE-CHARS','EDGE-PIXELS','EDIT-CAN-PASTE','EDIT-CAN-UNDO',
        +            'EMPTY','ENCODING','ENCRYPTION-SALT','END-USER-PROMPT',
        +            'ENTRY-TYPES-LIST','ERROR-COLUMN','ERROR-object-DETAIL','ERROR-ROW',
        +            'ERROR-STRING','EVENT-GROUP-ID','EVENT-PROCEDURE','EVENT-PROCEDURE-CONTEXT',
        +            'EVENT-TYPE','EXCLUSIVE-ID','EXECUTION-LOG','EXPAND',
        +            'EXPANDABLE','FGCOLOR','FILE-CREATE-DATE','FILE-CREATE-TIME',
        +            'FILE-MOD-DATE','FILE-MOD-TIME','FILE-NAME','FILE-OFFSET',
        +            'FILE-SIZE','FILE-TYPE','FILLED','FILL-MODE',
        +            'FILL-WHERE-STRING','FIRST-ASYNC-REQUEST','FIRST-BUFFER','FIRST-CHILD',
        +            'FIRST-COLUMN','FIRST-DATASET','FIRST-DATA-SOURCE','FIRST-object',
        +            'FIRST-PROCEDURE','FIRST-QUERY','FIRST-SERVER','FIRST-SERVER-SOCKET',
        +            'FIRST-SOCKET','FIRST-TAB-ITEM','FIT-LAST-COLUMN','FLAT-BUTTON',
        +            'FOCUSED-ROW','FOCUSED-ROW-SELECTED','FONT','FOREGROUND',
        +            'FORMAT','FORMATTED','FORM-INPUT','FORM-LONG-INPUT',
        +            'FORWARD-ONLY','FRAGMENT','FRAME-COL','FRAME-NAME',
        +            'FRAME-ROW','FRAME-SPACING','FRAME-X','FRAME-Y',
        +            'FREQUENCY','FULL-HEIGHT-CHARS','FULL-HEIGHT-PIXELS','FULL-PATHNAME',
        +            'FULL-WIDTH-CHARS','FULL-WIDTH-PIXELS','GRAPHIC-EDGE',
        +            'GRID-FACTOR-HORIZONTAL','GRID-FACTOR-VERTICAL','GRID-SNAP','GRID-UNIT-HEIGHT-CHARS',
        +            'GRID-UNIT-HEIGHT-PIXELS','GRID-UNIT-WIDTH-CHARS','GRID-UNIT-WIDTH-PIXELS','GRID-VISIBLE',
        +            'GROUP-BOX','HANDLE','HANDLER','HAS-LOBS',
        +            'HAS-RECORDS','HEIGHT-CHARS','HEIGHT-PIXELS','HELP',
        +            'HIDDEN','HORIZONTAL','HTML-CHARSET','HTML-END-OF-LINE',
        +            'HTML-END-OF-PAGE','HTML-FRAME-BEGIN','HTML-FRAME-END','HTML-HEADER-BEGIN',
        +            'HTML-HEADER-END','HTML-TITLE-BEGIN','HTML-TITLE-END','HWND',
        +            'ICFPARAMETER','ICON','IGNORE-CURRENT-MODIFIED','IMAGE-DOWN',
        +            'IMAGE-INSENSITIVE','IMAGE-UP','IMMEDIATE-DISPLAY','INDEX-INFORMATION',
        +            'IN-HANDLE','INHERIT-BGCOLOR','INHERIT-FGCOLOR','INITIAL','INIT',
        +            'INNER-CHARS','INNER-LINES','INPUT-VALUE','INSTANTIATING-PROCEDURE',
        +            'INTERNAL-ENTRIES','IS-CLASS','IS-OPEN','IS-PARAMETER-SET',
        +            'IS-XML','ITEMS-PER-ROW','KEEP-CONNECTION-OPEN','KEEP-FRAME-Z-ORDER',
        +            'KEEP-SECURITY-CACHE','KEY','KEYS','LABEL',
        +            'LABEL-BGCOLOR','LABEL-DCOLOR','LABEL-FGCOLOR','LABEL-FONT',
        +            'LABELS','LANGUAGES','LARGE','LARGE-TO-SMALL',
        +            'LAST-ASYNC-REQUEST','LAST-BATCH','LAST-CHILD','LAST-object',
        +            'LAST-PROCEDURE','LAST-SERVER','LAST-SERVER-SOCKET','LAST-SOCKET',
        +            'LAST-TAB-ITEM','LINE','LIST-ITEM-PAIRS','LIST-ITEMS',
        +            'LITERAL-QUESTION','LOCAL-HOST','LOCAL-NAME','LOCAL-PORT',
        +            'LOCATOR-COLUMN-NUMBER','LOCATOR-LINE-NUMBER','LOCATOR-PUBLIC-ID','LOCATOR-system-ID',
        +            'LOCATOR-TYPE','LOG-ENTRY-TYPES','LOGFILE-NAME','LOGGING-LEVEL',
        +            'LOGIN-EXPIRATION-TIMESTAMP','LOGIN-HOST','LOGIN-STATE','LOG-THRESHOLD',
        +            'MANDATORY','MANUAL-HIGHLIGHT','MAX-BUTTON','MAX-CHARS',
        +            'MAX-DATA-GUESS','MAX-HEIGHT-CHARS','MAX-HEIGHT-PIXELS','MAX-VALUE',
        +            'MAX-WIDTH-CHARS','MAX-WIDTH-PIXELS','MD5-VALUE','MENU-BAR',
        +            'MENU-KEY','MENU-MOUSE','MERGE-BY-FIELD','MESSAGE-AREA',
        +            'MESSAGE-AREA-FONT','MIN-BUTTON','MIN-COLUMN-WIDTH-CHARS','MIN-COLUMN-WIDTH-PIXELS',
        +            'MIN-HEIGHT-CHARS','MIN-HEIGHT-PIXELS','MIN-SCHEMA-MARSHAL','MIN-VALUE',
        +            'MIN-WIDTH-CHARS','MIN-WIDTH-PIXELS','MODIFIED','MOUSE-POINTER',
        +            'MOVABLE','MULTI-COMPILE','MULTIPLE','MULTITASKING-INTERVAL',
        +            'MUST-UNDERSTAND','NAME','NAMESPACE-PREFIX','NAMESPACE-URI',
        +            'NEEDS-APPSERVER-PROMPT','NEEDS-PROMPT','NESTED','NEW-ROW',
        +            'NEXT-COLUMN','NEXT-ROWID','NEXT-SIBLING','NEXT-TAB-ITEM', 'NO-BOX',
        +            'NO-CURRENT-VALUE','NODE-VALUE','NO-EMPTY-SPACE','NO-FOCUS',
        +            'NONAMESPACE-SCHEMA-LOCATION','NO-SCHEMA-MARSHAL','NO-VALIDATE','NUM-BUFFERS',
        +            'NUM-BUTTONS','NUM-CHILD-RELATIONS','NUM-CHILDREN','NUM-COLUMNS',
        +            'NUM-DROPPED-FILES','NUMERIC-DECIMAL-POINT','NUMERIC-FORMAT','NUMERIC-SEPARATOR',
        +            'NUM-FIELDS','NUM-FORMATS','NUM-HEADER-ENTRIES','NUM-ITEMS',
        +            'NUM-ITERATIONS','NUM-LINES','NUM-LOCKED-COLUMNS','NUM-LOG-FILES',
        +            'NUM-MESSAGES','NUM-PARAMETERS','NUM-REFERENCES','NUM-RELATIONS',
        +            'NUM-REPLACED','NUM-SELECTED-ROWS','NUM-SELECTED-WIDGETS','NUM-SOURCE-BUFFERS',
        +            'NUM-TABS','NUM-TOP-BUFFERS','NUM-TO-RETAIN','NUM-VISIBLE-COLUMNS',
        +            'ON-FRAME-BORDER','ORIGIN-HANDLE','ORIGIN-ROWID','OWNER',
        +            'OWNER-DOCUMENT','PAGE-BOTTOM','PAGE-TOP','PARAMETER',
        +            'PARENT','PARENT-BUFFER','PARENT-RELATION','PARSE-STATUS',
        +            'PASSWORD-FIELD','PATHNAME','PBE-HASH-ALGORITHM','PBE-KEY-ROUNDS',
        +            'PERSISTENT','PERSISTENT-CACHE-DISABLED','PERSISTENT-PROCEDURE','PFCOLOR',
        +            'PIXELS-PER-COLUMN','PIXELS-PER-ROW','POPUP-MENU','POPUP-ONLY',
        +            'POSITION','PREFER-DATASET','PREPARED','PREPARE-STRING',
        +            'PREV-COLUMN','PREV-SIBLING','PREV-TAB-ITEM','PRIMARY',
        +            'PRINTER-CONTROL-HANDLE','PRINTER-HDC','PRINTER-NAME','PRINTER-PORT',
        +            'PRIVATE-DATA','PROCEDURE-NAME','PROGRESS-SOURCE','PROXY',
        +            'PROXY-PASSWORD','PROXY-USERID','PUBLIC-ID','PUBLISHED-EVENTS',
        +            'RADIO-BUTTONS','READ-ONLY','RECORD-LENGTH',
        +            'REFRESHABLE','RELATION-FIELDS','RELATIONS-ACTIVE','REMOTE',
        +            'REMOTE-HOST','REMOTE-PORT','RESIZABLE','RESIZE',
        +            'RESTART-ROWID','RETAIN-SHAPE','RETURN-INSERTED','RETURN-VALUE-DATA-TYPE',
        +            'ROLES','ROUNDED','COL','ROW','ROW-HEIGHT-CHARS',
        +            'ROW-HEIGHT-PIXELS','ROW-MARKERS','ROW-RESIZABLE','ROW-STATE',
        +            'SAVE-WHERE-STRING','SCHEMA-CHANGE','SCHEMA-LOCATION','SCHEMA-MARSHAL',
        +            'SCHEMA-PATH','SCREEN-LINES','SCREEN-VALUE','SCROLLABLE',
        +            'SCROLLBAR-HORIZONTAL','SCROLL-BARS','SCROLLBAR-VERTICAL','SEAL-TIMESTAMP',
        +            'SELECTABLE','SELECTED','SELECTION-END','SELECTION-START',
        +            'SELECTION-TEXT','SENSITIVE','SEPARATOR-FGCOLOR','SEPARATORS',
        +            'SERVER','SERVER-CONNECTION-BOUND','SERVER-CONNECTION-BOUND-REQUEST','SERVER-CONNECTION-CONTEXT',
        +            'SERVER-CONNECTION-ID','SERVER-OPERATING-MODE','SESSION-END','SESSION-ID',
        +            'SHOW-IN-TASKBAR','SIDE-LABEL-HANDLE','SIDE-LABELS','SKIP-DELETED-RECORD',
        +            'SMALL-ICON','SMALL-TITLE','SOAP-FAULT-ACTOR','SOAP-FAULT-CODE',
        +            'SOAP-FAULT-DETAIL','SOAP-FAULT-STRING','SORT','SORT-ASCENDING',
        +            'SORT-NUMBER','SSL-SERVER-NAME','STANDALONE','STARTUP-PARAMETERS',
        +            'STATE-DETAIL','STATUS-AREA','STATUS-AREA-FONT','STOPPED',
        +            'STREAM','STRETCH-TO-FIT','STRICT','STRING-VALUE',
        +            'SUBTYPE','SUPER-PROCEDURES','SUPPRESS-NAMESPACE-PROCESSING','SUPPRESS-WARNINGS',
        +            'SYMMETRIC-ENCRYPTION-ALGORITHM','SYMMETRIC-ENCRYPTION-IV','SYMMETRIC-ENCRYPTION-KEY','SYMMETRIC-SUPPORT',
        +            'system-ALERT-BOXES','system-ID','TABLE','TABLE-CRC-LIST',
        +            'TABLE-HANDLE','TABLE-LIST','TABLE-NUMBER','TAB-POSITION',
        +            'TAB-STOP','TEMP-DIRECTORY','TEXT-SELECTED','THREE-D',
        +            'TIC-MARKS','TIME-SOURCE','TITLE','TITLE-BGCOLOR','FIELD',
        +            'TITLE-DCOLOR','TITLE-FGCOLOR','TITLE-FONT','TOOLTIP',
        +            'TOOLTIPS','TOP-ONLY','TRACKING-CHANGES','TRANSACTION',
        +            'TRANS-INIT-PROCEDURE','TRANSPARENT','TYPE','UNIQUE-ID',
        +            'UNIQUE-MATCH','URL','URL-PASSWORD','URL-USERID','EXTENT',
        +            'USER-ID','V6DISPLAY','VALIDATE-EXPRESSION','VALIDATE-MESSAGE',
        +            'VALIDATE-XML','VALIDATION-ENABLED','VIEW-FIRST-COLUMN-ON-REOPEN',
        +            'VIRTUAL-HEIGHT-CHARS','VIRTUAL-HEIGHT-PIXELS','VIRTUAL-WIDTH-CHARS','VIRTUAL-WIDTH-PIXELS',
        +            'VISIBLE','WARNING','WHERE-STRING','widget-ENTER','DATE',
        +            'widget-LEAVE','WIDTH-CHARS','WIDTH-PIXELS','WINDOW-STATE',
        +            'WINDOW-system','WORD-WRAP','WORK-AREA-HEIGHT-PIXELS','WORK-AREA-WIDTH-PIXELS',
        +            'WORK-AREA-X','WORK-AREA-Y','WRITE-STATUS','X','widget-Handle',
        +            'X-DOCUMENT','XML-DATA-TYPE','XML-NODE-TYPE','XML-SCHEMA-PATH',
        +            'XML-SUPPRESS-NAMESPACE-PROCESSING','Y','YEAR-OFFSET','CHARACTER',
        +            'LONGCHAR','MEMPTR','CHAR','DEC','INT','LOG','DECI','INTE','LOGI','long'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}',
        +        '<', '>', '=',
        +        '+', '-', '*', '/',
        +        '!', '@', '%', '|', '$',
        +        ':', '.', ';', ',',
        +        '?', '<=','<>','>=', '\\'
        +        ),
        +    'CASE_SENSITIVE' => array (
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false
        +        ),
        +    'STYLES' => array (
        +        'KEYWORDS' => array (
        +            1 => 'color: #0000ff; font-weight: bold;',
        +            2 => 'color: #1D16B2;',
        +            3 => 'color: #993333;',
        +            4 => 'color: #0000ff;'
        +            ),
        +        'COMMENTS' => array (
        +//            1 => 'color: #808080; font-style: italic;',
        +//            2 => 'color: #808080; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array (
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array (
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array (
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array (
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array (
        +            0 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array (
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array (
        +            ),
        +        'SCRIPT' => array (
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        0 => ':'
        +        ),
        +    'REGEXPS' => array (
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array (
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array (
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => "(?  "(?![\-a-zA-Z0-9_%])",
        +            1 => array(
        +                'SPACE_AS_WHITESPACE' => true
        +                ),
        +            2 => array(
        +                'SPACE_AS_WHITESPACE' => true
        +                )
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/prolog.php b/Sources/geshi/prolog.php
        new file mode 100644
        index 0000000..a106a4e
        --- /dev/null
        +++ b/Sources/geshi/prolog.php
        @@ -0,0 +1,143 @@
        + 'Prolog',
        +    'COMMENT_SINGLE' => array(1 => '%'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'HARDQUOTE' => array("'", "'"),
        +    'HARDESCAPE' => array("\'"),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'abolish','abs','arg','asserta','assertz','at_end_of_stream','atan',
        +            'atom','atom_chars','atom_codes','atom_concat','atom_length',
        +            'atomic','bagof','call','catch','ceiling','char_code',
        +            'char_conversion','clause','close','compound','consult','copy_term',
        +            'cos','current_char_conversion','current_input','current_op',
        +            'current_output','current_predicate','current_prolog_flag',
        +            'discontiguous','dynamic','ensure_loaded','exp','fail','findall',
        +            'float','float_fractional_part','float_integer_part','floor',
        +            'flush_output','functor','get_byte','get_char','get_code','halt',
        +            'include','initialization','integer','is','listing','log','mod',
        +            'multifile','nl','nonvar','notrace','number','number_chars',
        +            'number_codes','once','op','open','peek_byte','peek_char',
        +            'peek_code','put_byte','put_char','put_code','read','read_term',
        +            'rem','repeat','retract','round','set_input','set_output',
        +            'set_prolog_flag','set_stream_position','setof','sign','sin','sqrt',
        +            'stream_property','sub_atom','throw','trace','true','truncate',
        +            'unify_with_occurs_check','univ','var','write','write_canonical',
        +            'write_term','writeq'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array('(', ')', '[', ']', '{', '}',),
        +        1 => array('?-', ':-', '=:='),
        +        2 => array('\-', '\+', '\*', '\/'),
        +        3 => array('-', '+', '*', '/'),
        +        4 => array('.', ':', ',', ';'),
        +        5 => array('!', '@', '&', '|'),
        +        6 => array('<', '>', '=')
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #990000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            'HARD' => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;',
        +            'HARD' => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #800080;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;',
        +            1 => 'color: #339933;',
        +            2 => 'color: #339933;',
        +            3 => 'color: #339933;',
        +            4 => 'color: #339933;',
        +            5 => 'color: #339933;',
        +            6 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #008080;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://pauillac.inria.fr/~deransar/prolog/bips.html'
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        //Variables
        +        0 => "(? GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/properties.php b/Sources/geshi/properties.php
        new file mode 100644
        index 0000000..e1317b2
        --- /dev/null
        +++ b/Sources/geshi/properties.php
        @@ -0,0 +1,127 @@
        + 'PROPERTIES',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        /* Common used variables */
        +        1 => array(
        +            '${user.home}'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '[', ']', '='
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'font-weight: bold;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => ''
        +            ),
        +        'BRACKETS' => array(
        +            0 => ''
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #933;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => ''
        +            ),
        +        'METHODS' => array(
        +            0 => ''
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #000080; font-weight:bold;',
        +            1 => 'color: #008000; font-weight:bold;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        //Entry names
        +        0 => array(
        +            GESHI_SEARCH => '^(\s*)([.a-zA-Z0-9_\-]+)(\s*=)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3'
        +            ),
        +        //Entry values
        +        1 => array(
        +            // Evil hackery to get around GeSHi bug: <>" and ; are added so s can be matched
        +            // Explicit match on variable names because if a comment is before the first < of the span
        +            // gets chewed up...
        +            GESHI_SEARCH => '([<>";a-zA-Z0-9_]+\s*)=(.*)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1=',
        +            GESHI_AFTER => ''
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/providex.php b/Sources/geshi/providex.php
        new file mode 100644
        index 0000000..1e735bd
        --- /dev/null
        +++ b/Sources/geshi/providex.php
        @@ -0,0 +1,299 @@
        + 'ProvideX',
        +    'COMMENT_SINGLE' => array(1 => '!'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        // Single-Line Comments using REM command
        +        2 => "/\bREM\b.*?$/i"
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            // Directives
        +            '*break', '*continue', '*end', '*escape', '*next', '*proceed',
        +            '*retry', '*return', '*same', 'accept', 'add index', 'addr',
        +            'auto', 'begin', 'break', 'button', 'bye', 'call', 'case',
        +            'chart', 'check_box', 'class', 'clear', 'clip_board', 'close',
        +            'continue', 'control', 'create required', 'create table',
        +            'cwdir', 'data', 'day_format', 'def', 'default', 'defctl',
        +            'defprt', 'deftty', 'delete required', 'dictionary', 'dim', 'direct',
        +            'directory', 'disable', 'drop', 'drop_box', 'dump', 'edit',
        +            'else', 'enable', 'end switch', 'end', 'end_if', 'endtrace',
        +            'enter', 'erase', 'error_handler', 'escape', 'event', 'execute',
        +            'exit', 'exitto', 'extract', 'file', 'find', 'floating point',
        +            'for', 'function', 'get_file_box', 'gosub', 'goto', 'grid',
        +            'h_scrollbar', 'hide', 'if', 'index', 'indexed', 'input',
        +            'insert', 'invoke', 'iolist', 'keyed', 'let', 'like',
        +            'line_switch', 'list', 'list_box', 'load', 'local', 'lock',
        +            'long_form', 'menu_bar', 'merge', 'message_lib', 'mnemonic',
        +            'msgbox', 'multi_line', 'multi_media', 'next', 'object', 'obtain',
        +            'on', 'open', 'password', 'perform', 'pop', 'popup_menu',
        +            'precision', 'prefix', 'preinput', 'print', 'process', 'program',
        +            'property', 'purge', 'quit', 'radio_button', 'randomize',
        +            'read', 'record', 'redim', 'refile', 'release', 'rem', 'remove',
        +            'rename', 'renumber', 'repeat', 'reset', 'restore', 'retry',
        +            'return', 'round', 'run', 'save', 'select', 'serial', 'server',
        +            'set_focus', 'set_nbf', 'set_param', 'setctl', 'setday', 'setdev',
        +            'setdrive', 'seterr', 'setesc', 'setfid', 'setmouse', 'settime',
        +            'settrace', 'short_form', 'show', 'sort', 'start', 'static',
        +            'step', 'stop', 'switch', 'system_help', 'system_jrnl', 'table',
        +            'then', 'to', 'translate', 'tristate_box', 'unlock', 'until',
        +            'update', 'user_lex', 'v_scrollbar', 'vardrop_box', 'varlist_box',
        +            'via', 'video_palette', 'wait', 'wend', 'while', 'winprt_setup',
        +            'with', 'write'
        +            ),
        +        2 => array(
        +            // System Functions
        +            '@x', '@y', 'abs', 'acs', 'and', 'arg', 'asc', 'asn', 'ath',
        +            'atn', 'bin', 'bsz', 'chg', 'chr', 'cmp', 'cos', 'cpl',
        +            'crc', 'cse', 'ctl', 'cvs', 'dec', 'dir', 'dll', 'dsk',
        +            'dte', 'env', 'ept', 'err', 'evn', 'evs', 'exp', 'ffn',
        +            'fib', 'fid', 'fin', 'fpt', 'gap', 'gbl', 'gep', 'hsa',
        +            'hsh', 'hta', 'hwn', 'i3e', 'ind', 'int', 'iol', 'ior',
        +            'jul', 'jst', 'kec', 'kef', 'kel', 'ken', 'kep', 'key',
        +            'kgn', 'lcs', 'len', 'lno', 'log', 'lrc', 'lst', 'max',
        +            'mem', 'mid', 'min', 'mnm', 'mod', 'msg', 'msk', 'mxc',
        +            'mxl', 'new', 'not', 'nul', 'num', 'obj', 'opt', 'pad',
        +            'pck', 'pfx', 'pgm', 'pos', 'prc', 'prm', 'pth', 'pub',
        +            'rcd', 'rdx', 'rec', 'ref', 'rnd', 'rno', 'sep', 'sgn',
        +            'sin', 'sqr', 'srt', 'ssz', 'stk', 'stp', 'str', 'sub',
        +            'swp', 'sys', 'tan', 'tbl', 'tcb', 'tmr', 'trx', 'tsk',
        +            'txh', 'txw', 'ucp', 'ucs', 'upk', 'vin', 'vis', 'xeq',
        +            'xfa', 'xor', '_obj'
        +            ),
        +        3 => array(
        +            // System Variables
        +            // Vars that are duplicates of functions
        +            // 'ctl', 'err', 'pfx', 'prm', 'rnd', 'sep', 'sys',
        +            'bkg', 'chn', 'day', 'dlm', 'dsz', 'eom', 'ers', 'esc',
        +            'gfn', 'gid', 'hfn', 'hlp', 'hwd', 'lfa', 'lfo', 'lip',
        +            'lpg', 'lwd', 'mse', 'msl', 'nar', 'nid', 'pgn', 'psz',
        +            'quo', 'ret', 'sid', 'ssn', 'tim', 'tme', 'tms', 'tsm',
        +            'uid', 'unt', 'who'
        +
        +            ),
        +        4 => array(
        +            // Nomads Variables
        +            '%Flmaint_Lib$', '%Flmaint_Msg$', '%Nomads_Activation_Ok',
        +            '%Nomads_Auto_Qry', '%Nomads_Disable_Debug',
        +            '%Nomads_Disable_Trace', '%Nomads_Fkey_Handler$',
        +            '%Nomads_Fkey_Tbl$', '%Nomads_Notest', '%Nomads_Onexit$',
        +            '%Nomads_Post_Display', '%Nomads_Pre_Display$',
        +            '%Nomads_Process$', '%Nomads_Trace_File$',
        +            '%Nomad_Actv_Folder_Colors$', '%Nomad_Automation_Enabled',
        +            '%Nomad_Auto_Close', '%Nomad_Center_Wdw', '%Nomad_Concurrent_Wdw',
        +            '%Nomad_Custom_Define', '%Nomad_Custom_Dir$',
        +            '%Nomad_Custom_Genmtc', '%Nomad_Custom_Skip_Definition',
        +            '%Nomad_Def_Sfx$', '%Nomad_Enter_Tab', '%Nomad_Esc_Sel',
        +            '%Nomad_Isjavx', '%Nomad_Iswindx', '%Nomad_Iswindx$',
        +            '%Nomad_Menu$', '%Nomad_Menu_Leftedge_Clr$',
        +            '%Nomad_Menu_Textbackground_Clr$', '%Nomad_Mln_Sep$',
        +            '%Nomad_Msgmnt$', '%Nomad_Noplusw', '%Nomad_No_Customize',
        +            '%Nomad_Object_Persistence', '%Nomad_Object_Resize',
        +            '%Nomad_Open_Load', '%Nomad_Override_Font$',
        +            '%Nomad_Palette_Loaded', '%Nomad_Panel_Info_Force',
        +            '%Nomad_Panel_Info_Prog$', '%Nomad_Pnl_Def_Colour$',
        +            '%Nomad_Pnl_Def_Font$', '%Nomad_Prg_Cache', '%Nomad_Qry_Attr$',
        +            '%Nomad_Qry_Btn$', '%Nomad_Qry_Clear_Start', '%Nomad_Qry_Tip$',
        +            '%Nomad_Qry_Wide', '%Nomad_Query_Clear_Status', '%Nomad_Query_Kno',
        +            '%Nomad_Query_No_Gray', '%Nomad_Query_Odb_Ignore',
        +            '%Nomad_Query_Retkno', '%Nomad_Query_Sbar_Max',
        +            '%Nomad_Relative_Wdw', '%Nomad_Save_Qry_Path', '%Nomad_Script_Fn',
        +            '%Nomad_Script_Log', '%Nomad_Script_Wdw',
        +            '%Nomad_Skip_Change_Logic', '%Nomad_Skip_Onselect_Logic',
        +            '%Nomad_Stk$', '%Nomad_Tab_Dir', '%Nomad_Timeout',
        +            '%Nomad_Turbo_Off', '%Nomad_Visual_Effect',
        +            '%Nomad_Visual_Override', '%Nomad_Win_Ver', '%Nomad_Xchar',
        +            '%Nomad_Xmax', '%Nomad_Ychar', '%Nomad_Ymax', '%Scr_Def_Attr$',
        +            '%Scr_Def_H_Fl$', '%Scr_Def_H_Id$', '%Scr_Lib', '%Scr_Lib$',
        +            '%Z__Usr_Sec$', 'Alternate_Panel$', 'Alternate_Panel_Type$',
        +            'Arg_1$', 'Arg_10$', 'Arg_11$', 'Arg_12$', 'Arg_13$', 'Arg_14$',
        +            'Arg_15$', 'Arg_16$', 'Arg_17$', 'Arg_18$', 'Arg_19$', 'Arg_2$',
        +            'Arg_20$', 'Arg_3$', 'Arg_4$', 'Arg_5$', 'Arg_6$', 'Arg_7$',
        +            'Arg_8$', 'Arg_9$', 'Change_Flg', 'Cmd_Str$', 'Default_Prog$',
        +            'Disp_Cmd$', 'Entire_Record$', 'Exit_Cmd$', 'Fldr_Default_Prog$',
        +            'Folder_Id$', 'Id', 'Id$', 'Ignore_Exit', 'Initialize_Flg',
        +            'Init_Text$', 'Init_Val$', 'Main_Scrn_K$', 'Mnu_Ln$',
        +            'Next_Folder', 'Next_Id', 'Next_Id$', 'No_Flush', 'Prime_Key$',
        +            'Prior_Val', 'Prior_Val$', 'Qry_Val$', 'Refresh_Flg',
        +            'Replacement_Folder$', 'Replacement_Lib$', 'Replacement_Scrn$',
        +            'Scrn_Id$', 'Scrn_K$', 'Scrn_Lib$', 'Tab_Table$', '_Eom$'
        +            ),
        +        5 => array(
        +            // Mnemonics
        +            "'!w'", "'*c'", "'*h'", "'*i'", "'*o'", "'*r'", "'*x'",
        +            "'+b'", "'+d'", "'+e'", "'+f'", "'+i'", "'+n'",
        +            "'+p'", "'+s'", "'+t'", "'+u'", "'+v'", "'+w'", "'+x'",
        +            "'+z'", "'-b'", "'-d'", "'-e'", "'-f'", "'-i'",
        +            "'-n'", "'-p'", "'-s'", "'-t'", "'-u'", "'-v'", "'-w'",
        +            "'-x'", "'-z'", "'2d'", "'3d'", "'4d'", "'@@'", "'ab'",
        +            "'arc'", "'at'", "'backgr'", "'bb'", "'be'", "'beep'",
        +            "'bg'", "'bi'", "'bj'", "'bk'", "'black'", "'blue'",
        +            "'bm'", "'bo'", "'box'", "'br'", "'bs'", "'bt'", "'bu'",
        +            "'bw'", "'bx'", "'caption'", "'ce'", "'cf'", "'ch'",
        +            "'ci'", "'circle'", "'cl'", "'colour'", "'cp'", "'cpi'",
        +            "'cr'", "'cs'", "'cursor'", "'cyan''_cyan'", "'dc'",
        +            "'default'", "'df'", "'dialogue'", "'dn'", "'do'",
        +            "'drop'", "'eb'", "'ee'", "'ef'", "'eg'", "'ei'", "'ej'",
        +            "'el'", "'em'", "'eo'", "'ep'", "'er'", "'es'", "'et'",
        +            "'eu'", "'ew'", "'ff'", "'fill'", "'fl'", "'font'",
        +            "'frame'", "'gd'", "'ge'", "'gf'", "'goto'", "'green'",
        +            "'gs'", "'hide'", "'ic'", "'image'", "'jc'",
        +            "'jd'", "'jl'", "'jn'", "'jr'", "'js'", "'l6'", "'l8'",
        +            "'lc'", "'ld'", "'lf'", "'li'", "'line'", "'lm'",
        +            "'lpi'", "'lt'", "'magenta'", "'maxsize'", "'me'",
        +            "'message'", "'minsize'", "'mn'", "'mode'",
        +            "'move'", "'mp'", "'ms'", "'ni'", "'offset'", "'option'",
        +            "'pe'", "'pen'", "'picture'", "'pie'", "'pm'", "'polygon'",
        +            "'pop'", "'ps'", "'push'", "'rb'", "'rc'", "'rectangle'",
        +            "'red'", "'rl'", "'rm'", "'rp'", "'rs'", "'rt'", "'sb'",
        +            "'scroll'", "'sd'", "'se'", "'sf'", "'show'", "'size'",
        +            "'sl'", "'sn'", "'sp'", "'sr'", "'swap'", "'sx'", "'text'",
        +            "'textwdw'", "'tr'", "'tw'", "'uc'", "'up'", "'vt'", "'wa'",
        +            "'wc'", "'wd'", "'wg'", "'white'", "'window'", "'wm'",
        +            "'wp'", "'wr'", "'wrap'", "'ws'", "'wx'", "'xp'", "'yellow'",
        +            "'zx'", "'_black'", "'_blue'", "'_colour'", "'_green'",
        +            "'_magenta'", "'_red'", "'_white'", "'_yellow'"
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array('+', '-', '*', '/', '^', '|'),
        +        1 => array('++', '--', '+=', '-=', '*=', '/=', '^=', '|='),
        +        2 => array('<', '>', '='),
        +        3 => array('(', ')', '[', ']', '{', '}'),
        +        4 => array(',', '@', ';', '\\')
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: navy;', // Directives
        +            2 => 'color: blue;', // System Functions
        +            3 => 'color: blue;', // System Variables
        +            4 => 'color: #6A5ACD; font-style: italic;', // Nomads Global Variables
        +            5 => 'color: #BDB76B;', // Mnemonics
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008080; font-style: italic;',
        +            2 => 'color: #008080;',
        +            'MULTI' => 'color: #008080; font-style: italic;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000066;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: green;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #00008B;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #008000;',
        +            1 => 'color: #000099;',
        +            2 => 'color: #000099;',
        +            3 => 'color: #0000C9;',
        +            4 => 'color: #000099;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            1 => 'color: #006400; font-weight: bold',
        +            2 => 'color: #6A5ACD;'
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://www.allbasic.info./wiki/index.php/PX:Directive_{FNAME}',
        +        2 => 'http://www.allbasic.info./wiki/index.php/PX:System_function_{FNAME}',
        +        3 => 'http://www.allbasic.info./wiki/index.php/PX:System_variable_{FNAME}',
        +        4 => 'http://www.allbasic.info./wiki/index.php/PX:Nomads_{FNAME}',
        +        5 => 'http://www.allbasic.info./wiki/index.php/PX:Mnemonic_{FNAMEU}'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => "'"
        +        ),
        +    'REGEXPS' => array(
        +        1 => array(
        +            // Line Labels
        +            GESHI_SEARCH => '([[:space:]])([a-zA-Z_][a-zA-Z0-9_]+)(:)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3'
        +            ),
        +        2 => array(
        +            // Global String Variables
        +            GESHI_SEARCH => '(\%)([a-zA-Z_][a-zA-Z0-9_]+)(\$)',
        +            GESHI_REPLACE => '\\1\\2\\3',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'NUMBERS' => GESHI_NEVER
        +            )
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        diff --git a/Sources/geshi/purebasic.php b/Sources/geshi/purebasic.php
        new file mode 100644
        index 0000000..d78ffe9
        --- /dev/null
        +++ b/Sources/geshi/purebasic.php
        @@ -0,0 +1,303 @@
        + 'PureBasic',
        +    'COMMENT_SINGLE' => array( 1 => ";"  ),
        +    'COMMENT_MULTI' => array( ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            // Keywords
        +            'And', 'As', 'Break', 'CallDebugger', 'Case', 'CompilerCase', 'CompilerDefault', 'CompilerElse', 'CompilerEndIf', 'CompilerEndSelect',
        +            'CompilerError', 'CompilerIf', 'CompilerSelect', 'Continue', 'Data', 'DataSection', 'EndDataSection', 'Debug', 'DebugLevel', 'Declare',
        +            'DeclareCDLL', 'DeclareDLL', 'Default', 'Define', 'Dim', 'DisableASM', 'DisableDebugger', 'DisableExplicit', 'Else', 'ElseIf', 'EnableASM',
        +            'EnableDebugger', 'EnableExplicit', 'End', 'EndEnumeration', 'EndIf', 'EndImport', 'EndInterface', 'EndMacro', 'EndProcedure',
        +            'EndSelect', 'EndStructure', 'EndStructureUnion', 'EndWith', 'Enumeration', 'Extends', 'FakeReturn', 'For', 'Next', 'ForEach',
        +            'ForEver', 'Global', 'Gosub', 'Goto', 'If', 'Import', 'ImportC', 'IncludeBinary', 'IncludeFile', 'IncludePath', 'Interface', 'Macro',
        +            'NewList', 'Not', 'Or', 'Procedure', 'ProcedureC', 'ProcedureCDLL', 'ProcedureDLL', 'ProcedureReturn', 'Protected', 'Prototype',
        +            'PrototypeC', 'Read', 'ReDim', 'Repeat', 'Until', 'Restore', 'Return', 'Select', 'Shared', 'Static', 'Step', 'Structure', 'StructureUnion',
        +            'Swap', 'To', 'Wend', 'While', 'With', 'XIncludeFile', 'XOr'
        +            ),
        +        2 => array(
        +            // All Functions
        +            'Abs', 'ACos', 'Add3DArchive', 'AddBillboard', 'AddDate', 'AddElement', 'AddGadgetColumn', 'AddGadgetItem',
        +            'AddKeyboardShortcut', 'AddMaterialLayer', 'AddPackFile', 'AddPackMemory', 'AddStatusBarField', 'AddSysTrayIcon',
        +            'AllocateMemory', 'AmbientColor', 'AnimateEntity', 'Asc', 'ASin', 'ATan', 'AudioCDLength', 'AudioCDName', 'AudioCDStatus',
        +            'AudioCDTrackLength', 'AudioCDTracks', 'AudioCDTrackSeconds', 'AvailableProgramOutput', 'AvailableScreenMemory',
        +            'BackColor', 'Base64Decoder', 'Base64Encoder', 'BillboardGroupLocate', 'BillboardGroupMaterial', 'BillboardGroupX',
        +            'BillboardGroupY', 'BillboardGroupZ', 'BillboardHeight', 'BillboardLocate', 'BillboardWidth', 'BillboardX', 'BillboardY', 'BillboardZ',
        +            'Bin', 'BinQ', 'Blue', 'Box', 'ButtonGadget', 'ButtonImageGadget', 'CalendarGadget', 'CallCFunction', 'CallCFunctionFast',
        +            'CallFunction', 'CallFunctionFast', 'CameraBackColor', 'CameraFOV', 'CameraLocate', 'CameraLookAt', 'CameraProjection',
        +            'CameraRange', 'CameraRenderMode', 'CameraX', 'CameraY', 'CameraZ', 'CatchImage', 'CatchSound', 'CatchSprite',
        +            'CatchXML', 'ChangeAlphaIntensity', 'ChangeCurrentElement', 'ChangeGamma', 'ChangeListIconGadgetDisplay',
        +            'ChangeSysTrayIcon', 'CheckBoxGadget', 'CheckEntityCollision', 'CheckFilename', 'ChildXMLNode', 'Chr', 'Circle',
        +            'ClearBillboards', 'ClearClipboard', 'ClearConsole', 'ClearError', 'ClearGadgetItemList', 'ClearList', 'ClearScreen', 'ClipSprite',
        +            'CloseConsole', 'CloseDatabase', 'CloseFile', 'CloseGadgetList', 'CloseHelp', 'CloseLibrary', 'CloseNetworkConnection',
        +            'CloseNetworkServer', 'ClosePack', 'ClosePreferences', 'CloseProgram', 'CloseScreen', 'CloseSubMenu', 'CloseWindow',
        +            'ColorRequester', 'ComboBoxGadget', 'CompareMemory', 'CompareMemoryString', 'ConnectionID', 'ConsoleColor',
        +            'ConsoleCursor', 'ConsoleError', 'ConsoleLocate', 'ConsoleTitle', 'ContainerGadget', 'CopyDirectory', 'CopyEntity',
        +            'CopyFile', 'CopyImage', 'CopyLight', 'CopyMaterial', 'CopyMemory', 'CopyMemoryString', 'CopyMesh', 'CopySprite',
        +            'CopyTexture', 'CopyXMLNode', 'Cos', 'CountBillboards', 'CountGadgetItems', 'CountLibraryFunctions', 'CountList',
        +            'CountMaterialLayers', 'CountProgramParameters', 'CountRenderedTriangles', 'CountString', 'CRC32Fingerprint',
        +            'CreateBillboardGroup', 'CreateCamera', 'CreateDirectory', 'CreateEntity', 'CreateFile', 'CreateGadgetList',
        +            'CreateImage', 'CreateLight', 'CreateMaterial', 'CreateMenu', 'CreateMesh', 'CreateMutex', 'CreateNetworkServer',
        +            'CreatePack', 'CreatePalette', 'CreateParticleEmitter', 'CreatePopupMenu', 'CreatePreferences', 'CreateSprite',
        +            'CreateSprite3D', 'CreateStatusBar', 'CreateTerrain', 'CreateTexture', 'CreateThread', 'CreateToolBar', 'CreateXML',
        +            'CreateXMLNode', 'DatabaseColumnName', 'DatabaseColumns', 'DatabaseColumnType', 'DatabaseDriverDescription',
        +            'DatabaseDriverName', 'DatabaseError', 'DatabaseQuery', 'DatabaseUpdate', 'Date', 'DateGadget', 'Day', 'DayOfWeek',
        +            'DayOfYear', 'DefaultPrinter', 'Defined', 'Delay', 'DeleteDirectory', 'DeleteElement', 'DeleteFile', 'DeleteXMLNode',
        +            'DESFingerprint', 'DesktopDepth', 'DesktopFrequency', 'DesktopHeight', 'DesktopMouseX', 'DesktopMouseY', 'DesktopName',
        +            'DesktopWidth', 'DirectoryEntryAttributes', 'DirectoryEntryDate', 'DirectoryEntryName', 'DirectoryEntrySize',
        +            'DirectoryEntryType', 'DisableGadget', 'DisableMaterialLighting', 'DisableMenuItem', 'DisableToolBarButton', 'DisableWindow',
        +            'DisASMCommand', 'DisplayAlphaSprite', 'DisplayPalette', 'DisplayPopupMenu', 'DisplayRGBFilter', 'DisplayShadowSprite',
        +            'DisplaySolidSprite', 'DisplaySprite', 'DisplaySprite3D', 'DisplayTranslucentSprite', 'DisplayTransparentSprite', 'DragFiles',
        +            'DragImage', 'DragOSFormats', 'DragPrivate', 'DragText', 'DrawAlphaImage', 'DrawImage', 'DrawingBuffer',
        +            'DrawingBufferPitch', 'DrawingBufferPixelFormat', 'DrawingFont', 'DrawingMode', 'DrawText', 'EditorGadget',
        +            'egrid_AddColumn', 'egrid_AddRows', 'egrid_AppendCells', 'egrid_ClearRows', 'egrid_CopyCells',
        +            'egrid_CreateCellCallback', 'egrid_CreateGrid', 'egrid_DeleteCells', 'egrid_FastDeleteCells', 'egrid_FreeGrid',
        +            'egrid_GetCellSelection', 'egrid_GetCellText', 'egrid_GetColumnOrderArray', 'egrid_HasSelectedCellChanged', 'egrid_Height',
        +            'egrid_HideEdit', 'egrid_HideGrid', 'egrid_MakeCellVisible', 'egrid_NumberOfColumns', 'egrid_NumberOfRows',
        +            'egrid_PasteCells', 'egrid_Register', 'egrid_RemoveCellCallback', 'egrid_RemoveColumn', 'egrid_RemoveRow', 'egrid_Resize',
        +            'egrid_SelectCell', 'egrid_SelectedColumn', 'egrid_SelectedRow', 'egrid_SetCellSelection', 'egrid_SetCellText',
        +            'egrid_SetColumnOrderArray', 'egrid_SetHeaderFont', 'egrid_SetHeaderHeight', 'egrid_SetOption', 'egrid_Width', 'egrid_x',
        +            'egrid_y', 'EjectAudioCD', 'ElapsedMilliseconds', 'Ellipse', 'EnableGadgetDrop', 'EnableGraphicalConsole',
        +            'EnableWindowDrop', 'EnableWorldCollisions', 'EnableWorldPhysics', 'Engine3DFrameRate', 'EntityAngleX',
        +            'EntityAnimationLength', 'EntityLocate', 'EntityMaterial', 'EntityMesh', 'EntityPhysicBody', 'EntityRenderMode',
        +            'EntityX', 'EntityY', 'EntityZ', 'EnvironmentVariableName', 'EnvironmentVariableValue', 'Eof', 'EventClient',
        +            'EventDropAction', 'EventDropBuffer', 'EventDropFiles', 'EventDropImage', 'EventDropPrivate', 'EventDropSize',
        +            'EventDropText', 'EventDropType', 'EventDropX', 'EventDropY', 'EventGadget', 'EventlParam', 'EventMenu', 'EventServer',
        +            'EventType', 'EventWindow', 'EventwParam', 'ExamineDatabaseDrivers', 'ExamineDesktops', 'ExamineDirectory',
        +            'ExamineEnvironmentVariables', 'ExamineIPAddresses', 'ExamineJoystick', 'ExamineKeyboard', 'ExamineLibraryFunctions',
        +            'ExamineMouse', 'ExaminePreferenceGroups', 'ExaminePreferenceKeys', 'ExamineScreenModes', 'ExamineWorldCollisions',
        +            'ExamineXMLAttributes', 'ExplorerComboGadget', 'ExplorerListGadget', 'ExplorerTreeGadget', 'ExportXML',
        +            'ExportXMLSize', 'FileBuffersSize', 'FileID', 'FileSeek', 'FileSize', 'FillArea', 'FindString', 'FinishDirectory',
        +            'FirstDatabaseRow', 'FirstElement', 'FirstWorldCollisionEntity', 'FlipBuffers', 'FlushFileBuffers', 'Fog', 'FontID',
        +            'FontRequester', 'FormatDate', 'FormatXML', 'Frame3DGadget', 'FreeBillboardGroup', 'FreeCamera', 'FreeEntity',
        +            'FreeFont', 'FreeGadget', 'FreeImage', 'FreeLight', 'FreeMaterial', 'FreeMemory', 'FreeMenu', 'FreeMesh',
        +            'FreeModule', 'FreeMovie', 'FreeMutex', 'FreePalette', 'FreeParticleEmitter', 'FreeSound', 'FreeSprite',
        +            'FreeSprite3D', 'FreeStatusBar', 'FreeTexture', 'FreeToolBar', 'FreeXML', 'FrontColor', 'GadgetHeight', 'GadgetID',
        +            'GadgetItemID', 'GadgetToolTip', 'GadgetType', 'GadgetWidth', 'GadgetX', 'GadgetY', 'GetActiveGadget',
        +            'GetActiveWindow', 'GetClientIP', 'GetClientPort', 'GetClipboardImage', 'GetClipboardText', 'GetCurrentDirectory',
        +            'GetCurrentEIP', 'GetDatabaseDouble', 'GetDatabaseFloat', 'GetDatabaseLong', 'GetDatabaseQuad', 'GetDatabaseString',
        +            'GetDisASMString', 'GetEntityAnimationTime', 'GetEntityFriction', 'GetEntityMass', 'GetEnvironmentVariable',
        +            'GetErrorAddress', 'GetErrorCounter', 'GetErrorDescription', 'GetErrorDLL', 'GetErrorLineNR', 'GetErrorModuleName',
        +            'GetErrorNumber', 'GetErrorRegister', 'GetExtensionPart', 'GetFileAttributes', 'GetFileDate', 'GetFilePart', 'GetFunction',
        +            'GetFunctionEntry', 'GetGadgetAttribute', 'GetGadgetColor', 'GetGadgetData', 'GetGadgetFont',
        +            'GetGadgetItemAttribute', 'GetGadgetItemColor', 'GetGadgetItemData', 'GetGadgetItemState', 'GetGadgetItemText',
        +            'GetGadgetState', 'GetGadgetText', 'GetHomeDirectory', 'GetMenuItemState', 'GetMenuItemText', 'GetMenuTitleText',
        +            'GetModulePosition', 'GetModuleRow', 'GetPaletteColor', 'GetPathPart', 'GetTemporaryDirectory',
        +            'GetToolBarButtonState', 'GetWindowColor', 'GetWindowState', 'GetWindowTitle', 'GetXMLAttribute', 'GetXMLEncoding',
        +            'GetXMLNodeName', 'GetXMLNodeOffset', 'GetXMLNodeText', 'GetXMLStandalone', 'GoToEIP', 'GrabImage', 'GrabSprite',
        +            'Green', 'Hex', 'HexQ', 'HideBillboardGroup', 'HideEntity', 'HideGadget', 'HideLight', 'HideMenu', 'HideParticleEmitter',
        +            'HideWindow', 'Hostname', 'Hour', 'HyperLinkGadget', 'ImageDepth', 'ImageGadget', 'ImageHeight', 'ImageID',
        +            'ImageOutput', 'ImageWidth', 'InitAudioCD', 'InitEngine3D', 'InitJoystick', 'InitKeyboard', 'InitMouse', 'InitMovie',
        +            'InitNetwork', 'InitPalette', 'InitScintilla', 'InitSound', 'InitSprite', 'InitSprite3D', 'Inkey', 'Input', 'InputRequester',
        +            'InsertElement', 'Int', 'IntQ', 'IPAddressField', 'IPAddressGadget', 'IPString', 'IsBillboardGroup', 'IsCamera', 'IsDatabase',
        +            'IsDirectory', 'IsEntity', 'IsFile', 'IsFont', 'IsGadget', 'IsImage', 'IsLibrary', 'IsLight', 'IsMaterial', 'IsMenu', 'IsMesh',
        +            'IsModule', 'IsMovie', 'IsPalette', 'IsParticleEmitter', 'IsProgram', 'IsScreenActive', 'IsSound', 'IsSprite', 'IsSprite3D',
        +            'IsStatusBar', 'IsSysTrayIcon', 'IsTexture', 'IsThread', 'IsToolBar', 'IsWindow', 'IsXML', 'JoystickAxisX', 'JoystickAxisY',
        +            'JoystickButton', 'KeyboardInkey', 'KeyboardMode', 'KeyboardPushed', 'KeyboardReleased', 'KillProgram', 'KillThread',
        +            'LastElement', 'LCase', 'Left', 'Len', 'LibraryFunctionAddress', 'LibraryFunctionName', 'LibraryID', 'LightColor',
        +            'LightLocate', 'LightSpecularColor', 'Line', 'LineXY', 'ListIconGadget', 'ListIndex', 'ListViewGadget', 'LoadFont',
        +            'LoadImage', 'LoadMesh', 'LoadModule', 'LoadMovie', 'LoadPalette', 'LoadSound', 'LoadSprite', 'LoadTexture',
        +            'LoadWorld', 'LoadXML', 'Loc', 'LockMutex', 'Lof', 'Log', 'Log10', 'LSet', 'LTrim', 'MainXMLNode', 'MakeIPAddress',
        +            'MaterialAmbientColor', 'MaterialBlendingMode', 'MaterialDiffuseColor', 'MaterialFilteringMode', 'MaterialID',
        +            'MaterialShadingMode', 'MaterialSpecularColor', 'MD5FileFingerprint', 'MD5Fingerprint', 'MDIGadget', 'MemorySize',
        +            'MemoryStringLength', 'MenuBar', 'MenuHeight', 'MenuID', 'MenuItem', 'MenuTitle', 'MeshID', 'MessageRequester',
        +            'Mid', 'Minute', 'ModuleVolume', 'Month', 'MouseButton', 'MouseDeltaX', 'MouseDeltaY', 'MouseLocate', 'MouseWheel',
        +            'MouseX', 'MouseY', 'MoveBillboard', 'MoveBillboardGroup', 'MoveCamera', 'MoveEntity', 'MoveLight', 'MoveMemory',
        +            'MoveParticleEmitter', 'MoveXMLNode', 'MovieAudio', 'MovieHeight', 'MovieInfo', 'MovieLength', 'MovieSeek',
        +            'MovieStatus', 'MovieWidth', 'NetworkClientEvent', 'NetworkServerEvent', 'NewPrinterPage', 'NextDatabaseDriver',
        +            'NextDatabaseRow', 'NextDirectoryEntry', 'NextElement', 'NextEnvironmentVariable', 'NextIPAddress',
        +            'NextLibraryFunction', 'NextPackFile', 'NextPreferenceGroup', 'NextPreferenceKey', 'NextScreenMode',
        +            'NextSelectedFileName', 'NextWorldCollision', 'NextXMLAttribute', 'NextXMLNode', 'OffsetOf', 'OnErrorExit',
        +            'OnErrorGosub', 'OnErrorGoto', 'OnErrorResume', 'OpenComPort', 'OpenConsole', 'OpenDatabase',
        +            'OpenDatabaseRequester', 'OpenFile', 'OpenFileRequester', 'OpenGadgetList', 'OpenHelp', 'OpenLibrary',
        +            'OpenNetworkConnection', 'OpenPack', 'OpenPreferences', 'OpenScreen', 'OpenSubMenu', 'OpenWindow',
        +            'OpenWindowedScreen', 'OptionGadget', 'OSVersion', 'PackerCallback', 'PackFileSize', 'PackMemory', 'PanelGadget',
        +            'ParentXMLNode', 'Parse3DScripts', 'ParseDate', 'ParticleColorFader', 'ParticleColorRange', 'ParticleEmissionRate',
        +            'ParticleEmitterDirection', 'ParticleEmitterLocate', 'ParticleEmitterX', 'ParticleEmitterY', 'ParticleEmitterZ',
        +            'ParticleMaterial', 'ParticleSize', 'ParticleTimeToLive', 'ParticleVelocity', 'PathRequester', 'PauseAudioCD',
        +            'PauseMovie', 'PauseThread', 'PeekB', 'PeekC', 'PeekD', 'PeekF', 'PeekL', 'PeekQ', 'PeekS', 'PeekW', 'PlayAudioCD',
        +            'PlayModule', 'PlayMovie', 'PlaySound', 'Plot', 'Point', 'PokeB', 'PokeC', 'PokeD', 'PokeF', 'PokeL', 'PokeQ', 'PokeS',
        +            'PokeW', 'Pow', 'PreferenceComment', 'PreferenceGroup', 'PreferenceGroupName', 'PreferenceKeyName',
        +            'PreferenceKeyValue', 'PreviousDatabaseRow', 'PreviousElement', 'PreviousXMLNode', 'Print', 'PrinterOutput',
        +            'PrinterPageHeight', 'PrinterPageWidth', 'PrintN', 'PrintRequester', 'ProgramExitCode', 'ProgramFilename',
        +            'ProgramID', 'ProgramParameter', 'ProgramRunning', 'ProgressBarGadget', 'Random', 'RandomSeed', 'RawKey',
        +            'ReadByte', 'ReadCharacter', 'ReadConsoleData', 'ReadData', 'ReadDouble', 'ReadFile', 'ReadFloat', 'ReadLong',
        +            'ReadPreferenceDouble', 'ReadPreferenceFloat', 'ReadPreferenceLong', 'ReadPreferenceQuad',
        +            'ReadPreferenceString', 'ReadProgramData', 'ReadProgramError', 'ReadProgramString', 'ReadQuad', 'ReadString',
        +            'ReadStringFormat', 'ReadWord', 'ReAllocateMemory', 'ReceiveNetworkData', 'ReceiveNetworkFile', 'Red',
        +            'Reg_DeleteEmptyKey', 'Reg_DeleteKey', 'Reg_DeleteValue', 'Reg_GetErrorMsg', 'Reg_GetErrorNr',
        +            'Reg_GetValueTyp', 'Reg_ListSubKey', 'Reg_ListSubValue', 'Reg_ReadBinary', 'Reg_ReadExpandString',
        +            'Reg_ReadLong', 'Reg_ReadMultiLineString', 'Reg_ReadQuad', 'Reg_ReadString', 'Reg_WriteBinary',
        +            'Reg_WriteExpandString', 'Reg_WriteLong', 'Reg_WriteMultiLineString', 'Reg_WriteQuad', 'Reg_WriteString',
        +            'ReleaseMouse', 'RemoveBillboard', 'RemoveEnvironmentVariable', 'RemoveGadgetColumn', 'RemoveGadgetItem',
        +            'RemoveKeyboardShortcut', 'RemoveMaterialLayer', 'RemovePreferenceGroup', 'RemovePreferenceKey',
        +            'RemoveString', 'RemoveSysTrayIcon', 'RemoveXMLAttribute', 'RenameFile', 'RenderMovieFrame', 'RenderWorld',
        +            'ReplaceString', 'ResetList', 'ResizeBillboard', 'ResizeEntity', 'ResizeGadget', 'ResizeImage', 'ResizeMovie',
        +            'ResizeParticleEmitter', 'ResizeWindow', 'ResolveXMLAttributeName', 'ResolveXMLNodeName', 'ResumeAudioCD',
        +            'ResumeMovie', 'ResumeThread', 'RGB', 'Right', 'RootXMLNode', 'RotateBillboardGroup', 'RotateCamera',
        +            'RotateEntity', 'RotateMaterial', 'RotateSprite3D', 'Round', 'RSet', 'RTrim', 'RunProgram', 'SaveFileRequester',
        +            'SaveImage', 'SaveSprite', 'SaveXML', 'ScaleEntity', 'ScaleMaterial', 'ScintillaGadget', 'ScintillaSendMessage',
        +            'ScreenID', 'ScreenModeDepth', 'ScreenModeHeight', 'ScreenModeRefreshRate', 'ScreenModeWidth',
        +            'ScreenOutput', 'ScrollAreaGadget', 'ScrollBarGadget', 'ScrollMaterial', 'Second', 'SecondWorldCollisionEntity',
        +            'SelectedFilePattern', 'SelectedFontColor', 'SelectedFontName', 'SelectedFontSize', 'SelectedFontStyle',
        +            'SelectElement', 'SendNetworkData', 'SendNetworkFile', 'SendNetworkString', 'SetActiveGadget',
        +            'SetActiveWindow', 'SetClipboardImage', 'SetClipboardText', 'SetCurrentDirectory', 'SetDragCallback',
        +            'SetDropCallback', 'SetEntityAnimationTime', 'SetEntityFriction', 'SetEntityMass', 'SetEnvironmentVariable',
        +            'SetErrorNumber', 'SetFileAttributes', 'SetFileDate', 'SetFrameRate', 'SetGadgetAttribute', 'SetGadgetColor',
        +            'SetGadgetData', 'SetGadgetFont', 'SetGadgetItemAttribute', 'SetGadgetItemColor', 'SetGadgetItemData',
        +            'SetGadgetItemState', 'SetGadgetItemText', 'SetGadgetState', 'SetGadgetText', 'SetMenuItemState',
        +            'SetMenuItemText', 'SetMenuTitleText', 'SetMeshData', 'SetModulePosition', 'SetPaletteColor', 'SetRefreshRate',
        +            'SetToolBarButtonState', 'SetWindowCallback', 'SetWindowColor', 'SetWindowState', 'SetWindowTitle',
        +            'SetXMLAttribute', 'SetXMLEncoding', 'SetXMLNodeName', 'SetXMLNodeOffset', 'SetXMLNodeText',
        +            'SetXMLStandalone', 'Sin', 'SizeOf', 'SkyBox', 'SkyDome', 'SmartWindowRefresh', 'SortArray', 'SortList',
        +            'SortStructuredArray', 'SortStructuredList', 'SoundFrequency', 'SoundPan', 'SoundVolume', 'Space',
        +            'SpinGadget', 'SplitterGadget', 'Sprite3DBlendingMode', 'Sprite3DQuality', 'SpriteCollision', 'SpriteDepth',
        +            'SpriteHeight', 'SpriteID', 'SpriteOutput', 'SpritePixelCollision', 'SpriteWidth', 'Sqr', 'Start3D', 'StartDrawing',
        +            'StartPrinting', 'StartSpecialFX', 'StatusBarHeight', 'StatusBarIcon', 'StatusBarID', 'StatusBarText',
        +            'StickyWindow', 'Stop3D', 'StopAudioCD', 'StopDrawing', 'StopModule', 'StopMovie', 'StopPrinting',
        +            'StopSound', 'StopSpecialFX', 'Str', 'StrD', 'StrF', 'StringByteLength', 'StringField', 'StringGadget', 'StrQ',
        +            'StrU', 'Subsystem', 'SwapElements', 'SysTrayIconToolTip', 'Tan', 'TerrainHeight', 'TextGadget', 'TextHeight',
        +            'TextureHeight', 'TextureID', 'TextureOutput', 'TextureWidth', 'TextWidth', 'ThreadID', 'ThreadPriority',
        +            'ToolBarHeight', 'ToolBarID', 'ToolBarImageButton', 'ToolBarSeparator', 'ToolBarStandardButton',
        +            'ToolBarToolTip', 'TrackBarGadget', 'TransformSprite3D', 'TransparentSpriteColor', 'TreeGadget', 'Trim',
        +            'TruncateFile', 'TryLockMutex', 'UCase', 'UnlockMutex', 'UnpackMemory', 'UseAudioCD', 'UseBuffer',
        +            'UseGadgetList', 'UseJPEGImageDecoder', 'UseJPEGImageEncoder', 'UseODBCDatabase', 'UseOGGSoundDecoder',
        +            'UsePNGImageDecoder', 'UsePNGImageEncoder', 'UseTGAImageDecoder', 'UseTIFFImageDecoder', 'Val', 'ValD',
        +            'ValF', 'ValQ', 'WaitProgram', 'WaitThread', 'WaitWindowEvent', 'WebGadget', 'WebGadgetPath', 'WindowEvent',
        +            'WindowHeight', 'WindowID', 'WindowMouseX', 'WindowMouseY', 'WindowOutput', 'WindowWidth', 'WindowX',
        +            'WindowY', 'WorldGravity', 'WorldShadows', 'WriteByte', 'WriteCharacter', 'WriteConsoleData', 'WriteData',
        +            'WriteDouble', 'WriteFloat', 'WriteLong', 'WritePreferenceDouble', 'WritePreferenceFloat', 'WritePreferenceLong',
        +            'WritePreferenceQuad', 'WritePreferenceString', 'WriteProgramData', 'WriteProgramString', 'WriteProgramStringN',
        +            'WriteQuad', 'WriteString', 'WriteStringFormat', 'WriteStringN', 'WriteWord', 'XMLAttributeName', 'XMLAttributeValue',
        +            'XMLChildCount', 'XMLError', 'XMLErrorLine', 'XMLErrorPosition', 'XMLNodeFromID', 'XMLNodeFromPath', 'XMLNodePath',
        +            'XMLNodeType', 'XMLStatus', 'Year', 'ZoomSprite3D'
        +            ),
        +        3 => array(
        +            // some ASM instructions
        +            'AAA', 'AAD', 'AAM', 'AAS', 'ADC', 'ADD', 'AND', 'ARPL', 'BOUND', 'BSF', 'BSR', 'BSWAP', 'BT', 'BTC', 'BTR',
        +            'BTS', 'CALL', 'CBW', 'CDQ', 'CLC', 'CLD', 'CLI', 'CLTS', 'CMC', 'CMP', 'CMPS', 'CMPXCHG', 'CWD', 'CWDE',
        +            'DAA', 'DAS', 'DB', 'DD', 'DEC', 'DIV', 'DW', 'ENTER', 'ESC', 'F2XM1', 'FABS', 'FADD', 'FCHS', 'FCLEX',
        +            'FCOM', 'FDIV', 'FDIVR', 'FFREE', 'FINCSTP', 'FINIT', 'FLD', 'FLD1', 'FLDCW', 'FMUL', 'FNOP', 'FPATAN',
        +            'FPREM', 'FRNDINT', 'FSAVE', 'FSCALE', 'FSETPM', 'FSIN', 'FSQRT', 'FST', 'FSTENV', 'FSTSW', 'FSUB',
        +            'FSUBR', 'FTST', 'FUCOM', 'FWAIT', 'FXAM', 'FXCH', 'FXTRACT', 'FYL2X', 'FYL2XP1', 'HLT', 'IDIV', 'IMUL',
        +            'IN', 'INC', 'INS', 'INT', 'INTO', 'INVLPG', 'IRET', 'IRETD', 'JA', 'JAE', 'JB', 'JBE', 'JC', 'JCXZ', 'JE', 'JECXZ',
        +            'JG', 'JGE', 'JL', 'JLE', 'JMP', 'JNA', 'JNAE', 'JNB', 'JNBE', 'JNC', 'JNE', 'JNG', 'JNGE', 'JNL', 'JNLE', 'JNO', 'JNP',
        +            'JNS', 'JNZ', 'JO', 'JP', 'JPE', 'JPO', 'JS', 'JZ', 'LAHF', 'LAR', 'LDS', 'LEA', 'LEAVE', 'LES', 'LFS', 'LGDT', 'LGS',
        +            'LIDT', 'LLDT', 'LMSW', 'LOCK', 'LODS', 'LOOP', 'LOOPE', 'LOOPNE', 'LOOPNZ', 'LOOPZ', 'LSL', 'LSS', 'LTR',
        +            'MOV', 'MOVS', 'MOVSX', 'MOVZX', 'MUL', 'NEG', 'NOP', 'NOT', 'OR', 'OUT', 'OUTS', 'POP', 'POPA', 'POPAD',
        +            'POPF', 'POPFD', 'PUSH', 'PUSHA', 'PUSHAD', 'PUSHF', 'PUSHFD', 'RCL', 'RCR', 'REP', 'REPE', 'REPNE',
        +            'REPNZ', 'REPZ', 'RET', 'RETF', 'ROL', 'ROR', 'SAHF', 'SAL', 'SAR', 'SBB', 'SCAS', 'SETAE', 'SETB', 'SETBE',
        +            'SETC', 'SETE', 'SETG', 'SETGE', 'SETL', 'SETLE', 'SETNA', 'SETNAE', 'SETNB', 'SETNC', 'SETNE', 'SETNG',
        +            'SETNGE', 'SETNL', 'SETNLE', 'SETNO', 'SETNP', 'SETNS', 'SETNZ', 'SETO', 'SETP', 'SETPE', 'SETPO',
        +            'SETS', 'SETZ', 'SGDT', 'SHL', 'SHLD', 'SHR', 'SHRD', 'SIDT', 'SLDT', 'SMSW', 'STC', 'STD', 'STI',
        +            'STOS', 'STR', 'SUB', 'TEST', 'VERR', 'VERW', 'WAIT', 'WBINVD', 'XCHG', 'XLAT', 'XLATB', 'XOR'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '+', '-', '*', '/', '\\', '>', '<', '=', '<=', '>=', '&', '|', '!', '~', '<>', '>>', '<<', '%'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000066; font-weight: bold;',
        +            2 => 'color: #0000ff;',
        +            3 => 'color: #000fff;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #ff0000; font-style: italic;',
        +            'MULTI' => 'color: #ff0000; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000066;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #CC0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000066;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '\\'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => false,
        +        1 => false
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/pycon.php b/Sources/geshi/pycon.php
        new file mode 100644
        index 0000000..ac2b34d
        --- /dev/null
        +++ b/Sources/geshi/pycon.php
        @@ -0,0 +1,64 @@
        +>>).*?$(?:\n\.\.\..*?$)*($)/m';
        +$language_data['HIGHLIGHT_STRICT_BLOCK'][-1] = true;
        +
        +$language_data['STYLES']['SCRIPT'][-1] = 'color: #222222;';
        +
        +if(!isset($language_data['COMMENT_REGEXP'])) {
        +    $language_data['COMMENT_REGEXP'] = array();
        +}
        +
        +$language_data['COMMENT_REGEXP'][-1] = '/(?:^|\A\s)(?:>>>|\.\.\.)/m';
        +$language_data['STYLES']['COMMENTS'][-1] = 'color: #444444;';
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/pys60.php b/Sources/geshi/pys60.php
        new file mode 100644
        index 0000000..59c67fa
        --- /dev/null
        +++ b/Sources/geshi/pys60.php
        @@ -0,0 +1,273 @@
        + 'Python for S60',
        +    '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(
        +            'and', 'del', 'for', 'is', 'raise', 'assert', 'elif', 'from', 'lambda', 'return', 'break',
        +            'else', 'global', 'not', 'try', 'class', 'except', 'if', 'or', 'while', 'continue', 'exec',
        +            'import', 'pass', 'yield', 'def', 'finally', 'in', 'print', "<<", ">>", "as"
        +            ),
        +
        +        /*
        +         ** Set 2: builtins
        +         ** http://python.org/doc/current/lib/built-in-funcs.html
        +         */
        +        2 => array(
        +            '__import__', 'abs', 'basestring', 'bool', 'callable', 'chr', 'classmethod', 'cmp',
        +            'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile',
        +            'file', 'filter', 'float', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help',
        +            'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'list', 'locals',
        +            'long', 'map', 'max', 'min', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'range',
        +            'raw_input', 'reduce', 'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice',
        +            'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode',
        +            'vars', 'xrange', 'zip',
        +            // Built-in constants: http://python.org/doc/current/lib/node35.html
        +            'False', 'True', 'None', 'NotImplemented', 'Ellipsis',
        +            // Built-in Exceptions: http://python.org/doc/current/lib/module-exceptions.html
        +            'Exception', 'StandardError', 'ArithmeticError', 'LookupError', 'EnvironmentError',
        +            'AssertionError', 'AttributeError', 'EOFError', 'FloatingPointError', 'IOError',
        +            'ImportError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'MemoryError', 'NameError',
        +            'NotImplementedError', 'OSError', 'OverflowError', 'ReferenceError', 'RuntimeError',
        +            'StopIteration', 'SyntaxError', 'SystemError', 'SystemExit', 'TypeError',
        +            'UnboundlocalError', 'UnicodeError', 'UnicodeEncodeError', 'UnicodeDecodeError',
        +            'UnicodeTranslateError', 'ValueError', 'WindowsError', 'ZeroDivisionError', 'Warning',
        +            'UserWarning', 'DeprecationWarning', 'PendingDeprecationWarning', 'SyntaxWarning',
        +            'RuntimeWarning', 'FutureWarning',
        +            //Symbian Errors
        +            "SymbianError", "KernelError",
        +            // self: this is a common python convention (but not a reserved word)
        +            'self'
        +            ),
        +
        +        /*
        +         ** Set 3: standard library
        +         ** http://python.org/doc/current/lib/modindex.html
        +         */
        +        3 => array(
        +            '__builtin__', '__future__', '__main__', '_winreg', 'aifc', 'AL', 'al', 'anydbm',
        +            'array', 'asynchat', 'asyncore', 'atexit', 'audioop', 'base64', 'BaseHTTPServer',
        +            'Bastion', 'binascii', 'binhex', 'bisect', 'bsddb', 'bz2', 'calendar', 'cd', 'cgi',
        +            'CGIHTTPServer', 'cgitb', 'chunk', 'cmath', 'cmd', 'code', 'codecs', 'codeop',
        +            'collections', 'colorsys', 'commands', 'compileall', 'compiler',
        +            'ConfigParser', 'Cookie', 'cookielib', 'copy', 'copy_reg', 'cPickle', 'crypt',
        +            'cStringIO', 'csv', 'curses', 'datetime', 'dbhash', 'dbm', 'decimal', 'DEVICE',
        +            'difflib', 'dircache', 'dis', 'distutils', 'dl', 'doctest', 'DocXMLRPCServer', 'dumbdbm',
        +            'dummy_thread', 'dummy_threading', 'email', 'encodings', 'errno', 'exceptions', 'fcntl',
        +            'filecmp', 'fileinput', 'FL', 'fl', 'flp', 'fm', 'fnmatch', 'formatter', 'fpectl',
        +            'fpformat', 'ftplib', 'gc', 'gdbm', 'getopt', 'getpass', 'gettext', 'GL', 'gl', 'glob',
        +            'gopherlib', 'grp', 'gzip', 'heapq', 'hmac', 'hotshot', 'htmlentitydefs', 'htmllib',
        +            'HTMLParser', 'httplib', 'imageop', 'imaplib', 'imgfile', 'imghdr', 'imp', 'inspect',
        +            'itertools', 'jpeg', 'keyword', 'linecache', 'locale', 'logging', 'mailbox', 'mailcap',
        +            'marshal', 'math', 'md5', 'mhlib', 'mimetools', 'mimetypes', 'MimeWriter', 'mimify',
        +            'mmap', 'msvcrt', 'multifile', 'mutex', 'netrc', 'new', 'nis', 'nntplib', 'operator',
        +            'optparse', 'os', 'ossaudiodev', 'parser', 'pdb', 'pickle', 'pickletools', 'pipes',
        +            'pkgutil', 'platform', 'popen2', 'poplib', 'posix', 'posixfile', 'pprint', 'profile',
        +            'pstats', 'pty', 'pwd', 'py_compile', 'pyclbr', 'pydoc', 'Queue', 'quopri', 'random',
        +            're', 'readline', 'resource', 'rexec', 'rgbimg', 'rlcompleter',
        +            'robotparser', 'sched', 'ScrolledText', 'select', 'sets', 'sgmllib', 'sha', 'shelve',
        +            'shlex', 'shutil', 'signal', 'SimpleHTTPServer', 'SimpleXMLRPCServer', 'site', 'smtpd',
        +            'smtplib', 'sndhdr', 'socket', 'SocketServer', 'stat', 'statcache', 'statvfs', 'string',
        +            'StringIO', 'stringprep', 'struct', 'subprocess', 'sunau', 'SUNAUDIODEV', 'sunaudiodev',
        +            'symbol', 'sys', 'syslog', 'tabnanny', 'tarfile', 'telnetlib', 'tempfile', 'termios',
        +            'test', 'textwrap', 'thread', 'threading', 'time', 'timeit', 'Tix', 'Tkinter', 'token',
        +            'tokenize', 'traceback', 'tty', 'turtle', 'types', 'unicodedata', 'unittest', 'urllib2',
        +            'urllib', 'urlparse', 'user', 'UserDict', 'UserList', 'UserString', 'uu', 'warnings',
        +            'wave', 'weakref', 'webbrowser', 'whichdb', 'whrandom', 'winsound', 'xdrlib', 'xml',
        +            'xmllib', 'xmlrpclib', 'zipfile', 'zipimport', 'zlib', "os.path", "sys.path",
        +
        +            //PythonS60 Standard Library
        +            //http://pys60.garage.maemo.org/doc/s60/
        +            //These are the standard modules in the archive
        +
        +            "appuifw", "globalui","e32", "telephone", "aosocket", "btsocket",
        +            "sysinfo","camera","graphics","keycapture","key_codes","topwindow", "gles",
        +            "glcanvas","sensor", "audio","messaging", "inbox","location","positioning",
        +            "contacts", "e32calendar", "e32db","e32dbm","logs","scriptext",
        +            "series60_console",
        +
        +            //These are external but very often usable modules
        +
        +            "appuifw2","ArchetypeUI","elementtree","lightblue",
        +            "activaprofile","Adjustor","akntextutils","aosocketnativenew",
        +            "appreciation","applicationmanager","appswitch","atextit","bt_teror","btconsole",
        +            "btswitch","cElementTree","cenrep","cerealizer","cl_gui","clipboard",
        +            "clipboard_CHN","debugger","decompile2",
        +            "dir_iter","download","easydb","ECenrep","Edit_find","efeature","elocation","envy",
        +            "EProfile","erestart","error","esyagent","Execwap","exprofile","fastcamera",
        +            "feature","fgimage","filebrowser","firmware","fold","fonts","fraction","FTP",
        +            "ftplibnew","fy_manager","fy_menu","gles_utils","gps_location","hack",
        +            "HTML2TXT","iapconnect","icon_image","image_decoder",
        +            "ini","interactive_console","inting","key_modifiers","key_tricks","keypress",
        +            "landmarks","lite_fm","locationacq","locationrequestor",
        +            "logo","markupbase","mbm","mbm2","minidb","miniinfo","MISC",
        +            "misty","Msg","ntpath","odict","Paintbox","pathinfo","pexif","pickcolor",
        +            "powlite_fm","powlite_fm2","powlite_fm3","powlite_fme","prgbar","prodb",
        +            "profileengine","progressbar","progressbartw","progressnotes",
        +            "ProgressBarTW2","proshivka","py_upload","pyConnection","PyFileMan",
        +            "pykeylock","PyPyc","pyqq","pys60crypto","pys60usb","rfc822",
        +            "RUSOS","scmk","scrollpage","SISFIELDS","SISFIELD","sisfile",
        +            "SISINFO","sisreader","Sistools","smidi","smsreject","speechy","sre_compile",
        +            "sre_constants","sre_parse","sre","sysagent","syslang","TextMan",
        +            "textrenderer","TextWrap","topwind","tsocket","uikludge","uikludges","uitricks",
        +            "walkfile","wallpaper","wfm_lite",
        +            "wif_keys","wif","window","wlanmgmt","wlantools","wt_color","wt_requesters",
        +            "zhkey",
        +
        +            //These are recent additions
        +            "miffile"
        +            ),
        +
        +        /*
        +         ** Set 4: special methods
        +         ** http://python.org/doc/current/ref/specialnames.html
        +         */
        +        4 => array(
        +            ///*
        +            //// Iterator types: http://python.org/doc/current/lib/typeiter.html
        +            //'__iter__', 'next',
        +            //// String types: http://python.org/doc/current/lib/string-methods.html
        +            //'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs',
        +            //'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle',
        +            //'isupper', 'join', 'ljust', 'lower', 'lstrip', 'replace', 'rfind', 'rindex', 'rjust',
        +            //'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title',
        +            //'translate', 'upper', 'zfill',
        +            // */
        +
        +            // Basic customization: http://python.org/doc/current/ref/customization.html
        +            '__new__', '__init__', '__del__', '__repr__', '__str__',
        +            '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__cmp__', '__rcmp__',
        +            '__hash__', '__nonzero__', '__unicode__', '__dict__',
        +            // Attribute access: http://python.org/doc/current/ref/attribute-access.html
        +            '__setattr__', '__delattr__', '__getattr__', '__getattribute__', '__get__', '__set__',
        +            '__delete__', '__slots__',
        +            // Class creation, callable objects
        +            '__metaclass__', '__call__',
        +            // Container types: http://python.org/doc/current/ref/sequence-types.html
        +            '__len__', '__getitem__', '__setitem__', '__delitem__', '__iter__', '__contains__',
        +            '__getslice__', '__setslice__', '__delslice__',
        +            // Numeric types: http://python.org/doc/current/ref/numeric-types.html
        +            '__abs__','__add__','__and__','__coerce__','__div__','__divmod__','__float__',
        +            '__hex__','__iadd__','__isub__','__imod__','__idiv__','__ipow__','__iand__',
        +            '__ior__','__ixor__', '__ilshift__','__irshift__','__invert__','__int__',
        +            '__long__','__lshift__',
        +            '__mod__','__mul__','__neg__','__oct__','__or__','__pos__','__pow__',
        +            '__radd__','__rdiv__','__rdivmod__','__rmod__','__rpow__','__rlshift__','__rrshift__',
        +            '__rshift__','__rsub__','__rmul__','__rand__','__rxor__','__ror__',
        +            '__sub__','__xor__'
        +            )
        +
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?', '`'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => true,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #006000;font-weight:bold;',   // Reserved
        +            2 => 'color: #800950;font-size:105%',                  // Built-ins + self
        +            3 => 'color: #003399;font-size:106%',                  // Standard lib
        +            4 => 'color: #0000cd;'                  // Special methods
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style:italic;font-size:92%',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #930; font-weight: bold;font-size:105%'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: maroon;font-size:102%;padding:2px'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #666;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #2356F8;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: navy;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66ccFF;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/python.php b/Sources/geshi/python.php
        new file mode 100644
        index 0000000..ec9b17e
        --- /dev/null
        +++ b/Sources/geshi/python.php
        @@ -0,0 +1,244 @@
        + 'Python',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    //Longest quotemarks ALWAYS first
        +    'QUOTEMARKS' => array('"""', "'''", '"', "'"),
        +    'ESCAPE_CHAR' => '\\',
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_BIN_PREFIX_0B |
        +        GESHI_NUMBER_OCT_PREFIX_0O | GESHI_NUMBER_HEX_PREFIX |
        +        GESHI_NUMBER_FLT_NONSCI | GESHI_NUMBER_FLT_NONSCI_F |
        +        GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +
        +        /*
        +        ** Set 1: reserved words
        +        ** http://python.org/doc/current/ref/keywords.html
        +        */
        +        1 => array(
        +            'and', 'del', 'for', 'is', 'raise', 'assert', 'elif', 'from', 'lambda', 'return', 'break',
        +            'else', 'global', 'not', 'try', 'class', 'except', 'if', 'or', 'while', 'continue', 'exec',
        +            'import', 'pass', 'yield', 'def', 'finally', 'in', 'print', 'with', 'as', 'nonlocal'
        +            ),
        +
        +        /*
        +        ** Set 2: builtins
        +        ** http://python.org/doc/current/lib/built-in-funcs.html
        +        */
        +        2 => array(
        +            '__import__', 'abs', 'basestring', 'bool', 'callable', 'chr', 'classmethod', 'cmp',
        +            'compile', 'complex', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile',
        +            'file', 'filter', 'float', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help',
        +            'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'list', 'locals',
        +            'long', 'map', 'max', 'min', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'range',
        +            'raw_input', 'reduce', 'reload', 'reversed', 'round', 'set', 'setattr', 'slice',
        +            'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode',
        +            'vars', 'xrange', 'zip',
        +            // Built-in constants: http://python.org/doc/current/lib/node35.html
        +            'False', 'True', 'None', 'NotImplemented', 'Ellipsis',
        +            // Built-in Exceptions: http://python.org/doc/current/lib/module-exceptions.html
        +            'Exception', 'StandardError', 'ArithmeticError', 'LookupError', 'EnvironmentError',
        +            'AssertionError', 'AttributeError', 'EOFError', 'FloatingPointError', 'IOError',
        +            'ImportError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'MemoryError', 'NameError',
        +            'NotImplementedError', 'OSError', 'OverflowError', 'ReferenceError', 'RuntimeError',
        +            'StopIteration', 'SyntaxError', 'SystemError', 'SystemExit', 'TypeError',
        +            'UnboundlocalError', 'UnicodeError', 'UnicodeEncodeError', 'UnicodeDecodeError',
        +            'UnicodeTranslateError', 'ValueError', 'WindowsError', 'ZeroDivisionError', 'Warning',
        +            'UserWarning', 'DeprecationWarning', 'PendingDeprecationWarning', 'SyntaxWarning',
        +            'RuntimeWarning', 'FutureWarning',
        +            // self: this is a common python convention (but not a reserved word)
        +            'self',
        +            // other
        +            'any', 'all'
        +            ),
        +
        +        /*
        +        ** Set 3: standard library
        +        ** http://python.org/doc/current/lib/modindex.html
        +        */
        +        3 => array(
        +            '__builtin__', '__future__', '__main__', '_winreg', 'aifc', 'AL', 'al', 'anydbm',
        +            'array', 'asynchat', 'asyncore', 'atexit', 'audioop', 'base64', 'BaseHTTPServer',
        +            'Bastion', 'binascii', 'binhex', 'bisect', 'bsddb', 'bz2', 'calendar', 'cd', 'cgi',
        +            'CGIHTTPServer', 'cgitb', 'chunk', 'cmath', 'cmd', 'code', 'codecs', 'codeop',
        +            'collections', 'colorsys', 'commands', 'compileall', 'compiler',
        +            'ConfigParser', 'Cookie', 'cookielib', 'copy', 'copy_reg', 'cPickle', 'crypt',
        +            'cStringIO', 'csv', 'curses', 'datetime', 'dbhash', 'dbm', 'decimal', 'DEVICE',
        +            'difflib', 'dircache', 'dis', 'distutils', 'dl', 'doctest', 'DocXMLRPCServer', 'dumbdbm',
        +            'dummy_thread', 'dummy_threading', 'email', 'encodings', 'errno', 'exceptions', 'fcntl',
        +            'filecmp', 'fileinput', 'FL', 'fl', 'flp', 'fm', 'fnmatch', 'formatter', 'fpectl',
        +            'fpformat', 'ftplib', 'gc', 'gdbm', 'getopt', 'getpass', 'gettext', 'GL', 'gl', 'glob',
        +            'gopherlib', 'grp', 'gzip', 'heapq', 'hmac', 'hotshot', 'htmlentitydefs', 'htmllib',
        +            'HTMLParser', 'httplib', 'imageop', 'imaplib', 'imgfile', 'imghdr', 'imp', 'inspect',
        +            'itertools', 'jpeg', 'keyword', 'linecache', 'locale', 'logging', 'mailbox', 'mailcap',
        +            'marshal', 'math', 'md5', 'mhlib', 'mimetools', 'mimetypes', 'MimeWriter', 'mimify',
        +            'mmap', 'msvcrt', 'multifile', 'mutex', 'netrc', 'new', 'nis', 'nntplib', 'operator',
        +            'optparse', 'os', 'ossaudiodev', 'parser', 'pdb', 'pickle', 'pickletools', 'pipes',
        +            'pkgutil', 'platform', 'popen2', 'poplib', 'posix', 'posixfile', 'pprint', 'profile',
        +            'pstats', 'pty', 'pwd', 'py_compile', 'pyclbr', 'pydoc', 'Queue', 'quopri', 'random',
        +            're', 'readline', 'repr', 'resource', 'rexec', 'rfc822', 'rgbimg', 'rlcompleter',
        +            'robotparser', 'sched', 'ScrolledText', 'select', 'sets', 'sgmllib', 'sha', 'shelve',
        +            'shlex', 'shutil', 'signal', 'SimpleHTTPServer', 'SimpleXMLRPCServer', 'site', 'smtpd',
        +            'smtplib', 'sndhdr', 'socket', 'SocketServer', 'stat', 'statcache', 'statvfs', 'string',
        +            'StringIO', 'stringprep', 'struct', 'subprocess', 'sunau', 'SUNAUDIODEV', 'sunaudiodev',
        +            'symbol', 'sys', 'syslog', 'tabnanny', 'tarfile', 'telnetlib', 'tempfile', 'termios',
        +            'test', 'textwrap', 'thread', 'threading', 'time', 'timeit', 'Tix', 'Tkinter', 'token',
        +            'tokenize', 'traceback', 'tty', 'turtle', 'types', 'unicodedata', 'unittest', 'urllib2',
        +            'urllib', 'urlparse', 'user', 'UserDict', 'UserList', 'UserString', 'uu', 'warnings',
        +            'wave', 'weakref', 'webbrowser', 'whichdb', 'whrandom', 'winsound', 'xdrlib', 'xml',
        +            'xmllib', 'xmlrpclib', 'zipfile', 'zipimport', 'zlib',
        +            // Python 3.0
        +            'bytes', 'bytearray'
        +            ),
        +
        +        /*
        +        ** Set 4: special methods
        +        ** http://python.org/doc/current/ref/specialnames.html
        +        */
        +        4 => array(
        +            /*
        +            // Iterator types: http://python.org/doc/current/lib/typeiter.html
        +            '__iter__', 'next',
        +            // String types: http://python.org/doc/current/lib/string-methods.html
        +            'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs',
        +            'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle',
        +            'isupper', 'join', 'ljust', 'lower', 'lstrip', 'replace', 'rfind', 'rindex', 'rjust',
        +            'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title',
        +            'translate', 'upper', 'zfill',
        +            */
        +            // Basic customization: http://python.org/doc/current/ref/customization.html
        +            '__new__', '__init__', '__del__', '__repr__', '__str__',
        +            '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__cmp__', '__rcmp__',
        +            '__hash__', '__nonzero__', '__unicode__', '__dict__',
        +            // Attribute access: http://python.org/doc/current/ref/attribute-access.html
        +            '__setattr__', '__delattr__', '__getattr__', '__getattribute__', '__get__', '__set__',
        +            '__delete__', '__slots__',
        +            // Class creation, callable objects
        +            '__metaclass__', '__call__',
        +            // Container types: http://python.org/doc/current/ref/sequence-types.html
        +            '__len__', '__getitem__', '__setitem__', '__delitem__', '__iter__', '__contains__',
        +            '__getslice__', '__setslice__', '__delslice__',
        +            // Numeric types: http://python.org/doc/current/ref/numeric-types.html
        +            '__abs__','__add__','__and__','__coerce__','__div__','__divmod__','__float__',
        +            '__hex__','__iadd__','__isub__','__imod__','__idiv__','__ipow__','__iand__',
        +            '__ior__','__ixor__', '__ilshift__','__irshift__','__invert__','__int__',
        +            '__long__','__lshift__',
        +            '__mod__','__mul__','__neg__','__oct__','__or__','__pos__','__pow__',
        +            '__radd__','__rdiv__','__rdivmod__','__rmod__','__rpow__','__rlshift__','__rrshift__',
        +            '__rshift__','__rsub__','__rmul__','__rand__','__rxor__','__ror__',
        +            '__sub__','__xor__'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '<', '>', '=', '!', '<=', '>=',             //·comparison·operators
        +        '~', '@',                                   //·unary·operators
        +        ';', ','                                    //·statement·separator
        +        ),
        +    '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(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/q.php b/Sources/geshi/q.php
        new file mode 100644
        index 0000000..ade9928
        --- /dev/null
        +++ b/Sources/geshi/q.php
        @@ -0,0 +1,149 @@
        +)
        + * -------------------------
        + *  - Fix the handling of single line comments
        + *
        + *************************************************************************************
        + *
        + *     This file is part of GeSHi.
        + *
        + *   GeSHi is free software; you can redistribute it and/or modify
        + *   it under the terms of the GNU General Public License as published by
        + *   the Free Software Foundation; either version 2 of the License, or
        + *   (at your option) any later version.
        + *
        + *   GeSHi is distributed in the hope that it will be useful,
        + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        + *   GNU General Public License for more details.
        + *
        + *   You should have received a copy of the GNU General Public License
        + *   along with GeSHi; if not, write to the Free Software
        + *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + ************************************************************************************/
        +
        +$language_data = array (
        +    'LANG_NAME'                 => 'q/kdb+',
        +    'COMMENT_SINGLE'            => array(1 => '//'),
        +    'COMMENT_MULTI'             => array(),
        +    'COMMENT_REGEXP'            => array(
        +        2 => '/ \s\/.*/',         # This needs to get fixed up, since it won't catch some instances
        +        # Multi line comments (Moved from REGEXPS)
        +        3 => '/^\/\s*?\n.*?\n\\\s*?\n/smi'
        +        ),
        +    'CASE_KEYWORDS'             => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS'                => array('"'),
        +    'ESCAPE_CHAR'               => '\\',
        +    'OOLANG'                    => false,
        +    'OBJECT_SPLITTERS'          => array(),
        +    'STRICT_MODE_APPLIES'       => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS'         => array(),
        +    'HIGHLIGHT_STRICT_BLOCK'    => array(),
        +    'TAB_WIDTH'                 => 4,
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'abs', 'acos', 'all', 'and', 'any', 'asc', 'asin', 'asof', 'atan', 'attr', 'avg', 'avgs', 'bin', 'ceiling',
        +            'cols', 'cor', 'cos', 'count', 'cov', 'cross', 'cut', 'deltas', 'desc', 'dev', 'differ', 'distinct',
        +            'div', 'each', 'enlist', 'eval', 'except', 'exec', 'exit', 'exp', 'fills', 'first', 'flip', 'floor',
        +            'fkeys', 'get', 'getenv', 'group', 'gtime', 'hclose', 'hcount', 'hdel', 'hopen', 'hsym', 'iasc', 'idesc',
        +            'in', 'insert', 'inter', 'inv', 'joins', 'key', 'keys', 'last', 'like', 'load', 'log', 'lower',
        +            'lsq', 'ltime', 'ltrim', 'mavg', 'max', 'maxs', 'mcount', 'md5', 'mdev', 'med', 'meta', 'min', 'mins',
        +            'mmax', 'mmin', 'mmu', 'mod', 'msum', 'neg', 'next', 'not', 'null', 'or', 'over', 'parse', 'peach',
        +            'plist', 'prd', 'prds', 'prev', 'rand', 'rank', 'ratios', 'raze', 'read0', 'read1', 'reciprocal',
        +            'reverse', 'rload', 'rotate', 'rsave', 'rtrim', 'save', 'scan', 'set', 'setenv', 'show', 'signum',
        +            'sin', 'sqrt', 'ss', 'ssr', 'string', 'sublist', 'sum', 'sums', 'sv', 'system', 'tables', 'tan', 'til', 'trim',
        +            'txf', 'type', 'ungroup', 'union', 'upper', 'upsert', 'value', 'var', 'view', 'views', 'vs',
        +            'wavg', 'within', 'wsum', 'xasc', 'xbar', 'xcol', 'xcols', 'xdesc', 'xexp', 'xgroup', 'xkey',
        +            'xlog', 'xprev', 'xrank'
        +            ),
        +        # kdb database template keywords
        +        2 => array(
        +            'aj', 'by', 'delete', 'fby', 'from', 'ij', 'lj', 'pj', 'select', 'uj', 'update', 'where', 'wj',
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '?', '#', ',', '_', '@', '.', '^', '~', '$', '!', '\\', '\\', '/:', '\:', "'", "':", '::', '+', '-', '%', '*'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000099; font-weight: bold;',
        +            2 => 'color: #009900; font-weight: bold;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #666666; font-style: italic;',
        +            3 => 'color: #808080; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            1 => 'color: #000099; font-weight: bold;',
        +            2 => 'color: #660099; font-weight: bold;',
        +            3 => 'color: #660099; font-weight: bold;',
        +            4 => 'color: #660099; font-weight: bold;',
        +            5 => 'color: #006699; font-weight: bold;',
        +            'HARD' => '',
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #990000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #0000dd;',
        +            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
        +            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
        +            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
        +            GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
        +            GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #202020;',
        +            2 => 'color: #202020;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(
        +            2   => 'color: #999900;',
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'REGEXPS' => array(
        +        # Symbols
        +        2 => '`[^\s"]*',
        +        ),
        +    'URLS'  => array(
        +        1   => '',
        +        2   => '',
        +        ),
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/qbasic.php b/Sources/geshi/qbasic.php
        new file mode 100644
        index 0000000..3345e3c
        --- /dev/null
        +++ b/Sources/geshi/qbasic.php
        @@ -0,0 +1,162 @@
        + 'QBasic/QuickBASIC',
        +    'COMMENT_SINGLE' => array(1 => "'"),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(
        +        //Single-Line Comments using REM command
        +        2 => "/\bREM.*?$/i",
        +        //Line numbers
        +        3 => "/^\s*\d+/im"
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_FLT_NONSCI |
        +        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT |
        +        GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'DO', 'LOOP', 'WHILE', 'WEND', 'THEN', 'ELSE', 'ELSEIF', 'IF',
        +            'FOR', 'TO', 'NEXT', 'STEP', 'GOTO', 'GOSUB', 'CALL', 'CALLS',
        +            'SUB', 'FUNCTION', 'RETURN', 'RESUME', 'SELECT', 'CASE', 'UNTIL'
        +            ),
        +        3 => array(
        +            'ABS', 'ABSOLUTE', 'ACCESS', 'ALIAS', 'AND', 'ANY', 'APPEND', 'AS', 'ASC', 'ATN',
        +            'BASE', 'BEEP', 'BINARY', 'BLOAD', 'BSAVE', 'BYVAL',
        +            'CDBL', 'CDECL', 'CHAIN', 'CHDIR', 'CHR$', 'CINT', 'CIRCLE', 'CLEAR',
        +            'CLNG', 'CLOSE', 'CLS', 'COM', 'COMMAND$', 'COMMON', 'CONST', 'COS', 'CSNG',
        +            'CSRLIN', 'CVD', 'CVDMBF', 'CVI', 'CVL', 'CVS', 'CVSMDF', 'DATA', 'DATE$',
        +            'DECLARE', 'DEF', 'FN', 'SEG', 'DEFDBL', 'DEFINT', 'DEFLNG', 'DEFSNG', 'DEFSTR',
        +            'DIM', 'DOUBLE', 'DRAW', 'END', 'ENVIRON', 'ENVIRON$', 'EOF', 'EQV', 'ERASE',
        +            'ERDEV', 'ERDEV$', 'ERL', 'ERR', 'ERROR', 'EXIT', 'EXP', 'FIELD', 'FILEATTR',
        +            'FILES', 'FIX', 'FRE', 'FREEFILE', 'GET', 'HEX$', 'IMP', 'INKEY$',
        +            'INP', 'INPUT', 'INPUT$', 'INSTR', 'INT', 'INTEGER', 'IOCTL', 'IOCTL$', 'IS',
        +            'KEY', 'KILL', 'LBOUND', 'LCASE$', 'LEFT$', 'LEN', 'LET', 'LINE', 'LIST', 'LOC',
        +            'LOCAL', 'LOCATE', 'LOCK', 'LOF', 'LOG', 'LONG', 'LPOS', 'LPRINT',
        +            'LSET', 'LTRIM$', 'MID$', 'MKD$', 'MKDIR', 'MKDMBF$', 'MKI$', 'MKL$',
        +            'MKS$', 'MKSMBF$', 'MOD', 'NAME', 'NOT', 'OCT$', 'OFF', 'ON', 'PEN', 'PLAY',
        +            'OPEN', 'OPTION', 'OR', 'OUT', 'OUTPUT',
        +            'PAINT', 'PALETTE', 'PCOPY', 'PEEK', 'PMAP', 'POINT', 'POKE', 'POS', 'PRESET',
        +            'PRINT', 'PSET', 'PUT', 'RANDOM', 'RANDOMIZE', 'READ', 'REDIM', 'RESET',
        +            'RESTORE', 'RIGHT$', 'RMDIR', 'RND', 'RSET', 'RTRIM$', 'RUN', 'SADD', 'SCREEN',
        +            'SEEK', 'SETMEM', 'SGN', 'SHARED', 'SHELL', 'SIGNAL', 'SIN', 'SINGLE', 'SLEEP',
        +            'SOUND', 'SPACE$', 'SPC', 'SQR', 'STATIC', 'STICK', 'STOP', 'STR$', 'STRIG',
        +            'STRING', 'STRING$', 'SWAP', 'SYSTEM', 'TAB', 'TAN', 'TIME$', 'TIMER',
        +            'TROFF', 'TRON', 'TYPE', 'UBOUND', 'UCASE$', 'UEVENT', 'UNLOCK', 'USING', 'VAL',
        +            'VARPTR', 'VARPTR$', 'VARSEG', 'VIEW', 'WAIT', 'WIDTH', 'WINDOW', 'WRITE', 'XOR'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', ',', '+', '-', '*', '/', '=', '<', '>', '^'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        3 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #a1a100;',
        +            3 => 'color: #000066;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080;',
        +            2 => 'color: #808080;',
        +            3 => 'color: #8080C0;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            1 => 'color: #cc66cc;',
        +            2 => 'color: #339933;'
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        3 => 'http://www.qbasicnews.com/qboho/qck{FNAMEL}.shtml'
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        1 => '&(?:H[0-9a-fA-F]+|O[0-7]+)(?!\w)',
        +        2 => '#[0-9]+(?!\w)'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 8
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/rails.php b/Sources/geshi/rails.php
        new file mode 100644
        index 0000000..65ddee8
        --- /dev/null
        +++ b/Sources/geshi/rails.php
        @@ -0,0 +1,406 @@
        + 'Rails',
        +    'COMMENT_SINGLE' => array(1 => "#"),
        +    'COMMENT_MULTI' => array("=begin" => "=end"),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"', '`','\''),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'alias', 'and', 'begin', 'break', 'case', 'class',
        +            'def', 'defined', 'do', 'else', 'elsif', 'end',
        +            'ensure', 'for', 'if', 'in', 'module', 'while',
        +            'next', 'not', 'or', 'redo', 'rescue', 'yield',
        +            'retry', 'super', 'then', 'undef', 'unless',
        +            'until', 'when', 'BEGIN', 'END', 'include'
        +            ),
        +        2 => array(
        +            '__FILE__', '__LINE__', 'false', 'nil', 'self', 'true',
        +            'return'
        +            ),
        +        3 => array(
        +            'Array', 'Float', 'Integer', 'String', 'at_exit',
        +            'autoload', 'binding', 'caller', 'catch', 'chop', 'chop!',
        +            'chomp', 'chomp!', 'eval', 'exec', 'exit', 'exit!', 'fail',
        +            'fork', 'format', 'gets', 'global_variables', 'gsub', 'gsub!',
        +            'iterator?', 'lambda', 'load', 'local_variables', 'loop',
        +            'open', 'p', 'print', 'printf', 'proc', 'putc', 'puts',
        +            'raise', 'rand', 'readline', 'readlines', 'require', 'select',
        +            'sleep', 'split', 'sprintf', 'srand', 'sub', 'sub!', 'syscall',
        +            'system', 'trace_var', 'trap', 'untrace_var'
        +            ),
        +        4 => array(
        +            'Abbrev', 'ArgumentError', 'Base64', 'Benchmark',
        +            'Benchmark::Tms', 'Bignum', 'Binding', 'CGI', 'CGI::Cookie',
        +            'CGI::HtmlExtension', 'CGI::QueryExtension',
        +            'CGI::Session', 'CGI::Session::FileStore',
        +            'CGI::Session::MemoryStore', 'Class', 'Comparable', 'Complex',
        +            'ConditionVariable', 'Continuation', 'Data',
        +            'Date', 'DateTime', 'Delegator', 'Dir', 'EOFError', 'ERB',
        +            'ERB::Util', 'Enumerable', 'Enumerable::Enumerator', 'Errno',
        +            'Exception', 'FalseClass', 'File',
        +            'File::Constants', 'File::Stat', 'FileTest', 'FileUtils',
        +            'FileUtils::DryRun', 'FileUtils::NoWrite',
        +            'FileUtils::StreamUtils_', 'FileUtils::Verbose', 'Find',
        +            'Fixnum', 'FloatDomainError', 'Forwardable', 'GC', 'Generator',
        +            'Hash', 'IO', 'IOError', 'Iconv', 'Iconv::BrokenLibrary',
        +            'Iconv::Failure', 'Iconv::IllegalSequence',
        +            'Iconv::InvalidCharacter', 'Iconv::InvalidEncoding',
        +            'Iconv::OutOfRange', 'IndexError', 'Interrupt', 'Kernel',
        +            'LoadError', 'LocalJumpError', 'Logger', 'Logger::Application',
        +            'Logger::Error', 'Logger::Formatter', 'Logger::LogDevice',
        +            'Logger::LogDevice::LogDeviceMutex', 'Logger::Severity',
        +            'Logger::ShiftingError', 'Marshal', 'MatchData',
        +            'Math', 'Matrix', 'Method', 'Module', 'Mutex', 'NameError',
        +            'NameError::message', 'NilClass', 'NoMemoryError',
        +            'NoMethodError', 'NotImplementedError', 'Numeric', 'Object',
        +            'ObjectSpace', 'Observable', 'PStore', 'PStore::Error',
        +            'Pathname', 'Precision', 'Proc', 'Process', 'Process::GID',
        +            'Process::Status', 'Process::Sys', 'Process::UID', 'Queue',
        +            'Range', 'RangeError', 'Rational', 'Regexp', 'RegexpError',
        +            'RuntimeError', 'ScriptError', 'SecurityError', 'Set',
        +            'Shellwords', 'Signal', 'SignalException', 'SimpleDelegator',
        +            'SingleForwardable', 'Singleton', 'SingletonClassMethods',
        +            'SizedQueue', 'SortedSet', 'StandardError', 'StringIO',
        +            'StringScanner', 'StringScanner::Error', 'Struct', 'Symbol',
        +            'SyncEnumerator', 'SyntaxError', 'SystemCallError',
        +            'SystemExit', 'SystemStackError', 'Tempfile',
        +            'Test::Unit::TestCase', 'Test::Unit', 'Test', 'Thread',
        +            'ThreadError', 'ThreadGroup',
        +            'ThreadsWait', 'Time', 'TrueClass', 'TypeError', 'URI',
        +            'URI::BadURIError', 'URI::Error', 'URI::Escape', 'URI::FTP',
        +            'URI::Generic', 'URI::HTTP', 'URI::HTTPS',
        +            'URI::InvalidComponentError', 'URI::InvalidURIError',
        +            'URI::LDAP', 'URI::MailTo', 'URI::REGEXP',
        +            'URI::REGEXP::PATTERN', 'UnboundMethod', 'Vector', 'YAML',
        +            'ZeroDivisionError', 'Zlib',
        +            'Zlib::BufError', 'Zlib::DataError', 'Zlib::Deflate',
        +            'Zlib::Error', 'Zlib::GzipFile', 'Zlib::GzipFile::CRCError',
        +            'Zlib::GzipFile::Error', 'Zlib::GzipFile::LengthError',
        +            'Zlib::GzipFile::NoFooter', 'Zlib::GzipReader',
        +            'Zlib::GzipWriter', 'Zlib::Inflate', 'Zlib::MemError',
        +            'Zlib::NeedDict', 'Zlib::StreamEnd', 'Zlib::StreamError',
        +            'Zlib::VersionError',
        +            'Zlib::ZStream',
        +            'ActionController::AbstractRequest',
        +            'ActionController::Assertions::DomAssertions',
        +            'ActionController::Assertions::ModelAssertions',
        +            'ActionController::Assertions::ResponseAssertions',
        +            'ActionController::Assertions::RoutingAssertions',
        +            'ActionController::Assertions::SelectorAssertions',
        +            'ActionController::Assertions::TagAssertions',
        +            'ActionController::Base',
        +            'ActionController::Benchmarking::ClassMethods',
        +            'ActionController::Caching',
        +            'ActionController::Caching::Actions',
        +            'ActionController::Caching::Actions::ActionCachePath',
        +            'ActionController::Caching::Fragments',
        +            'ActionController::Caching::Pages',
        +            'ActionController::Caching::Pages::ClassMethods',
        +            'ActionController::Caching::Sweeping',
        +            'ActionController::Components',
        +            'ActionController::Components::ClassMethods',
        +            'ActionController::Components::InstanceMethods',
        +            'ActionController::Cookies',
        +            'ActionController::Filters::ClassMethods',
        +            'ActionController::Flash',
        +            'ActionController::Flash::FlashHash',
        +            'ActionController::Helpers::ClassMethods',
        +            'ActionController::Integration::Session',
        +            'ActionController::IntegrationTest',
        +            'ActionController::Layout::ClassMethods',
        +            'ActionController::Macros',
        +            'ActionController::Macros::AutoComplete::ClassMethods',
        +            'ActionController::Macros::InPlaceEditing::ClassMethods',
        +            'ActionController::MimeResponds::InstanceMethods',
        +            'ActionController::Pagination',
        +            'ActionController::Pagination::ClassMethods',
        +            'ActionController::Pagination::Paginator',
        +            'ActionController::Pagination::Paginator::Page',
        +            'ActionController::Pagination::Paginator::Window',
        +            'ActionController::Rescue', 'ActionController::Resources',
        +            'ActionController::Routing',
        +            'ActionController::Scaffolding::ClassMethods',
        +            'ActionController::SessionManagement::ClassMethods',
        +            'ActionController::Streaming', 'ActionController::TestProcess',
        +            'ActionController::TestUploadedFile',
        +            'ActionController::UrlWriter',
        +            'ActionController::Verification::ClassMethods',
        +            'ActionMailer::Base', 'ActionView::Base',
        +            'ActionView::Helpers::ActiveRecordHelper',
        +            'ActionView::Helpers::AssetTagHelper',
        +            'ActionView::Helpers::BenchmarkHelper',
        +            'ActionView::Helpers::CacheHelper',
        +            'ActionView::Helpers::CaptureHelper',
        +            'ActionView::Helpers::DateHelper',
        +            'ActionView::Helpers::DebugHelper',
        +            'ActionView::Helpers::FormHelper',
        +            'ActionView::Helpers::FormOptionsHelper',
        +            'ActionView::Helpers::FormTagHelper',
        +            'ActionView::Helpers::JavaScriptHelper',
        +            'ActionView::Helpers::JavaScriptMacrosHelper',
        +            'ActionView::Helpers::NumberHelper',
        +            'ActionView::Helpers::PaginationHelper',
        +            'ActionView::Helpers::PrototypeHelper',
        +            'ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods',
        +            'ActionView::Helpers::ScriptaculousHelper',
        +            'ActionView::Helpers::TagHelper',
        +            'ActionView::Helpers::TextHelper',
        +            'ActionView::Helpers::UrlHelper', 'ActionView::Partials',
        +            'ActionWebService::API::Method', 'ActionWebService::Base',
        +            'ActionWebService::Client::Soap',
        +            'ActionWebService::Client::XmlRpc',
        +            'ActionWebService::Container::ActionController::ClassMethods',
        +            'ActionWebService::Container::Delegated::ClassMethods',
        +            'ActionWebService::Container::Direct::ClassMethods',
        +            'ActionWebService::Invocation::ClassMethods',
        +            'ActionWebService::Scaffolding::ClassMethods',
        +            'ActionWebService::SignatureTypes', 'ActionWebService::Struct',
        +            'ActiveRecord::Acts::List::ClassMethods',
        +            'ActiveRecord::Acts::List::InstanceMethods',
        +            'ActiveRecord::Acts::NestedSet::ClassMethods',
        +            'ActiveRecord::Acts::NestedSet::InstanceMethods',
        +            'ActiveRecord::Acts::Tree::ClassMethods',
        +            'ActiveRecord::Acts::Tree::InstanceMethods',
        +            'ActiveRecord::Aggregations::ClassMethods',
        +            'ActiveRecord::Associations::ClassMethods',
        +            'ActiveRecord::AttributeMethods::ClassMethods',
        +            'ActiveRecord::Base',
        +            'ActiveRecord::Calculations::ClassMethods',
        +            'ActiveRecord::Callbacks',
        +            'ActiveRecord::ConnectionAdapters::AbstractAdapter',
        +            'ActiveRecord::ConnectionAdapters::Column',
        +            'ActiveRecord::ConnectionAdapters::DB2Adapter',
        +            'ActiveRecord::ConnectionAdapters::DatabaseStatements',
        +            'ActiveRecord::ConnectionAdapters::FirebirdAdapter',
        +            'ActiveRecord::ConnectionAdapters::FrontBaseAdapter',
        +            'ActiveRecord::ConnectionAdapters::MysqlAdapter',
        +            'ActiveRecord::ConnectionAdapters::OpenBaseAdapter',
        +            'ActiveRecord::ConnectionAdapters::OracleAdapter',
        +            'ActiveRecord::ConnectionAdapters::PostgreSQLAdapter',
        +            'ActiveRecord::ConnectionAdapters::Quoting',
        +            'ActiveRecord::ConnectionAdapters::SQLServerAdapter',
        +            'ActiveRecord::ConnectionAdapters::SQLiteAdapter',
        +            'ActiveRecord::ConnectionAdapters::SchemaStatements',
        +            'ActiveRecord::ConnectionAdapters::SybaseAdapter::ColumnWithIdentity',
        +            'ActiveRecord::ConnectionAdapters::SybaseAdapterContext',
        +            'ActiveRecord::ConnectionAdapters::TableDefinition',
        +            'ActiveRecord::Errors', 'ActiveRecord::Locking',
        +            'ActiveRecord::Locking::Optimistic',
        +            'ActiveRecord::Locking::Optimistic::ClassMethods',
        +            'ActiveRecord::Locking::Pessimistic',
        +            'ActiveRecord::Migration', 'ActiveRecord::Observer',
        +            'ActiveRecord::Observing::ClassMethods',
        +            'ActiveRecord::Reflection::ClassMethods',
        +            'ActiveRecord::Reflection::MacroReflection',
        +            'ActiveRecord::Schema', 'ActiveRecord::Timestamp',
        +            'ActiveRecord::Transactions::ClassMethods',
        +            'ActiveRecord::Validations',
        +            'ActiveRecord::Validations::ClassMethods',
        +            'ActiveRecord::XmlSerialization',
        +            'ActiveSupport::CachingTools::HashCaching',
        +            'ActiveSupport::CoreExtensions::Array::Conversions',
        +            'ActiveSupport::CoreExtensions::Array::Grouping',
        +            'ActiveSupport::CoreExtensions::Date::Conversions',
        +            'ActiveSupport::CoreExtensions::Hash::Conversions',
        +            'ActiveSupport::CoreExtensions::Hash::Conversions::ClassMethods',
        +            'ActiveSupport::CoreExtensions::Hash::Diff',
        +            'ActiveSupport::CoreExtensions::Hash::Keys',
        +            'ActiveSupport::CoreExtensions::Hash::ReverseMerge',
        +            'ActiveSupport::CoreExtensions::Integer::EvenOdd',
        +            'ActiveSupport::CoreExtensions::Integer::Inflections',
        +            'ActiveSupport::CoreExtensions::Numeric::Bytes',
        +            'ActiveSupport::CoreExtensions::Numeric::Time',
        +            'ActiveSupport::CoreExtensions::Pathname::CleanWithin',
        +            'ActiveSupport::CoreExtensions::Range::Conversions',
        +            'ActiveSupport::CoreExtensions::String::Access',
        +            'ActiveSupport::CoreExtensions::String::Conversions',
        +            'ActiveSupport::CoreExtensions::String::Inflections',
        +            'ActiveSupport::CoreExtensions::String::Iterators',
        +            'ActiveSupport::CoreExtensions::String::StartsEndsWith',
        +            'ActiveSupport::CoreExtensions::String::Unicode',
        +            'ActiveSupport::CoreExtensions::Time::Calculations',
        +            'ActiveSupport::CoreExtensions::Time::Calculations::ClassMethods',
        +            'ActiveSupport::CoreExtensions::Time::Conversions',
        +            'ActiveSupport::Multibyte::Chars',
        +            'ActiveSupport::Multibyte::Handlers::UTF8Handler',
        +            'Breakpoint', 'Builder::BlankSlate', 'Builder::XmlMarkup',
        +            'Fixtures',
        +            'HTML::Selector', 'HashWithIndifferentAccess', 'Inflector',
        +            'Inflector::Inflections', 'Mime', 'Mime::Type',
        +            'OCI8AutoRecover', 'TimeZone', 'XmlSimple'
        +            ),
        +        5 => array(
        +            'image_tag', 'link_to', 'link_to_remote', 'javascript_include_tag',
        +            'assert_equal', 'assert_not_equal', 'before_filter',
        +            'after_filter', 'render', 'redirect_to', 'hide_action',
        +            'render_to_string', 'url_for', 'controller_name',
        +            'controller_class_name', 'controller_path', 'session',
        +            'render_component', 'render_component_as_string', 'cookie',
        +            'layout', 'flash', 'auto_complete_for', 'in_place_editor_for',
        +            'respond_to', 'paginate', 'current_page', 'each', 'first',
        +            'first_page', 'last_page', 'last', 'length', 'new', 'page_count',
        +            'previous', 'scaffold', 'send_data',
        +            'send_file', 'deliver', 'receive', 'error_messages_for',
        +            'error_message_on', 'form', 'input', 'stylesheet_link_tag',
        +            'stylesheet_path', 'content_for', 'select_date', 'ago',
        +            'month', 'day', 'check_box', 'fields_for', 'file_field',
        +            'form_for', 'hidden_field', 'text_area', 'password_field',
        +            'collection_select', 'options_for_select',
        +            'options_from_collection_for_select', 'file_field_tag',
        +            'form_for_tag', 'hidden_field_tag', 'text_area_tag',
        +            'password_field_tag', 'link_to_function', 'javascript_tag',
        +            'human_size', 'number_to_currency', 'pagination_links',
        +            'form_remote_tag', 'form_remote_for',
        +            'submit_to_remote', 'remote_function', 'observe_form',
        +            'observe_field', 'remote_form_for', 'options_for_ajax', 'alert',
        +            'call', 'assign', 'show', 'hide', 'insert_html', 'sortable',
        +            'toggle', 'visual_effect', 'replace', 'replace_html', 'remove',
        +            'save', 'save!', 'draggable', 'drop_receiving', 'literal',
        +            'draggable_element', 'drop_receiving_element', 'sortable_element',
        +            'content_tag', 'tag', 'link_to_image', 'link_to_if',
        +            'link_to_unless', 'mail_to', 'link_image_to', 'button_to',
        +            'current_page?', 'act_as_list', 'act_as_nested', 'act_as_tree',
        +            'has_many', 'has_one', 'belongs_to', 'has_many_and_belogns_to',
        +            'delete', 'destroy', 'destroy_all', 'clone', 'deep_clone', 'copy',
        +            'update', 'table_name', 'primary_key', 'sum', 'maximun', 'minimum',
        +            'count', 'size', 'after_save', 'after_create', 'before_save',
        +            'before_create', 'add_to_base', 'errors', 'add', 'validate',
        +            'validates_presence_of', 'validates_numericality_of',
        +            'validates_uniqueness_of', 'validates_length_of',
        +            'validates_format_of', 'validates_size_of', 'to_a', 'to_s',
        +            'to_xml', 'to_i'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '%', '&', '*', '|', '/', '<', '>',
        +        '+', '-', '=>', '<<'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color:#9966CC; font-weight:bold;',
        +            2 => 'color:#0000FF; font-weight:bold;',
        +            3 => 'color:#CC0066; font-weight:bold;',
        +            4 => 'color:#CC00FF; font-weight:bold;',
        +            5 => 'color:#5A0A0A; font-weight:bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color:#008000; font-style:italic;',
        +                    'MULTI' => 'color:#000080; font-style:italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color:#000099;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color:#006600; font-weight:bold;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color:#996600;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color:#006666;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color:#9900CC;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color:#006600; font-weight:bold;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color:#ff6633; font-weight:bold;',
        +            1 => 'color:#0066ff; font-weight:bold;',
        +            2 => 'color:#6666ff; font-weight:bold;',
        +            3 => 'color:#ff3333; font-weight:bold;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            2 => '',
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        0 => array(
        +            GESHI_SEARCH => "([[:space:]])(\\$[a-zA-Z_][a-zA-Z0-9_]*)",
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            ),
        +        1 => array(
        +            GESHI_SEARCH => "([[:space:]])(@[a-zA-Z_][a-zA-Z0-9_]*)",
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            ),
        +        2 => "([A-Z][a-zA-Z0-9_]*::)+[A-Z][a-zA-Z0-9_]*", //Static OOP References
        +        3 => array(
        +            GESHI_SEARCH => "([[:space:]]|\[|\()(:[a-zA-Z_][a-zA-Z0-9_]*)",
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(
        +        0 => array(
        +            '<%' => '%>'
        +            )
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true,
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/rebol.php b/Sources/geshi/rebol.php
        new file mode 100644
        index 0000000..ea86c21
        --- /dev/null
        +++ b/Sources/geshi/rebol.php
        @@ -0,0 +1,196 @@
        + 'REBOL',
        +    'COMMENT_SINGLE' => array(1 => ';'),
        +    'COMMENT_MULTI' => array('rebol [' => ']', 'comment [' => ']'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'binary!','block!','char!','date!','decimal!','email!','file!',
        +            'hash!','integer!','issue!','list!','logic!','money!','none!',
        +            'object!','paren!','pair!','path!','string!','tag!','time!',
        +            'tuple!','url!',
        +            ),
        +        2 => array(
        +            'all','any','attempt','break','catch','compose','disarm','dispatch',
        +            'do','do-events','does','either','else','exit','for','forall',
        +            'foreach','forever','forskip','func','function','halt','has','if',
        +            'launch','loop','next','quit','reduce','remove-each','repeat',
        +            'return','secure','switch','throw','try','until','wait','while',
        +            ),
        +        3 => array(
        +            'about','abs','absolute','add','alert','alias','alter','and',
        +            'any-block?','any-function?','any-string?','any-type?','any-word?',
        +            'append','arccosine','arcsine','arctangent','array','as-pair',
        +            'ask','at','back','binary?','bind','bitset?','block?','brightness?',
        +            'browse','build-tag','caret-to-offset','center-face','change',
        +            'change-dir','char?','charset','checksum','choose','clean-path',
        +            'clear','clear-fields','close','comment','complement','component?',
        +            'compress','confirm','connected?','construct','context','copy',
        +            'cosine','datatype?','date?','debase','decimal?','decode-cgi',
        +            'decompress','dehex','delete','detab','difference','dir?','dirize',
        +            'divide','dump-face','dump-obj','echo','email?','empty?','enbase',
        +            'entab','equal?','error?','even?','event?','exclude','exists?',
        +            'exp','extract','fifth','file?','find','first','flash','focus',
        +            'form','found?','fourth','free','function?','get','get-modes',
        +            'get-word?','greater-or-equal?','greater?','hash?','head','head?',
        +            'help','hide','hide-popup','image?','import-email','in',
        +            'in-window?','index?','info?','inform','input','input?','insert',
        +            'integer?','intersect','issue?','join','last','layout','length?',
        +            'lesser-or-equal?','lesser?','library?','license','link?',
        +            'list-dir','list?','lit-path?','lit-word?','load','load-image',
        +            'log-10','log-2','log-e','logic?','lowercase','make','make-dir',
        +            'make-face','max','maximum','maximum-of','min','minimum',
        +            'minimum-of','modified?','mold','money?','multiply','native?',
        +            'negate','negative?','none?','not','not-equal?','now','number?',
        +            'object?','odd?','offset-to-caret','offset?','op?','open','or',
        +            'pair?','paren?','parse','parse-xml','path?','pick','poke','port?',
        +            'positive?','power','prin','print','probe','protect',
        +            'protect-system','query','random','read','read-io','recycle',
        +            'refinement?','reform','rejoin','remainder','remold','remove',
        +            'rename',
        +            //'repeat',
        +            'repend','replace','request','request-color','request-date',
        +            'request-download','request-file','request-list','request-pass',
        +            'request-text','resend','reverse','routine?','same?','save',
        +            'script?','second','select','send','series?','set','set-modes',
        +            'set-net','set-path?','set-word?','show','show-popup','sign?',
        +            'sine','size-text','size?','skip','sort','source','span?',
        +            'split-path','square-root','strict-equal?','strict-not-equal?',
        +            'string?','struct?','stylize','subtract','suffix?','tag?','tail',
        +            'tail?','tangent','third','time?','to','to-binary','to-bitset',
        +            'to-block','to-char','to-date','to-decimal','to-email','to-file',
        +            'to-get-word','to-hash','to-hex','to-idate','to-image','to-integer',
        +            'to-issue','to-list','to-lit-path','to-lit-word','to-local-file',
        +            'to-logic','to-money','to-pair','to-paren','to-path',
        +            'to-rebol-file','to-refinement','to-set-path','to-set-word',
        +            'to-string','to-tag','to-time','to-tuple','to-url','to-word',
        +            'trace','trim','tuple?','type?','unfocus','union','unique',
        +            'unprotect','unset','unset?','unview','update','upgrade',
        +            'uppercase','url?','usage','use','value?','view','viewed?','what',
        +            'what-dir','within?','word?','write','write-io','xor','zero?',
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #000066;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +//            2 => 'color: #808080; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;',
        +            2 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            2 => '',
        +            3 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +//        2 => 'includes/dico_rebol.php?word={FNAME}',
        +//        3 => 'includes/dico_rebol.php?word={FNAME}'
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*",
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/reg.php b/Sources/geshi/reg.php
        new file mode 100644
        index 0000000..157b2bd
        --- /dev/null
        +++ b/Sources/geshi/reg.php
        @@ -0,0 +1,233 @@
        + 'Microsoft Registry',
        +    'COMMENT_SINGLE' => array(1 =>';'),
        +    'COMMENT_MULTI' => array( ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +//        1 => array(),
        +//        2 => array(),
        +        /* Registry Key Constants Not Used */
        +        3 => array(
        +            'HKEY_LOCAL_MACHINE',
        +            'HKEY_CLASSES_ROOT',
        +            'HKEY_CURRENT_USER',
        +            'HKEY_USERS',
        +            'HKEY_CURRENT_CONFIG',
        +            'HKEY_DYN_DATA',
        +            'HKLM', 'HKCR', 'HKCU', 'HKU', 'HKCC', 'HKDD'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '='
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +//        1 => false,
        +//        2 => false,
        +        3 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +//            1 => 'color: #00CCFF;',
        +//            2 => 'color: #0000FF;',
        +            3 => 'color: #800000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #009900;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'NUMBERS' => array(
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #00CCFF;',
        +            1 => 'color: #0000FF;',
        +            2 => '',
        +            3 => 'color: #0000FF;',
        +            4 => 'color: #0000FF;',
        +            5 => '',
        +            6 => '',
        +            7 => '',
        +            8 => 'color: #FF6600;',
        +            )
        +        ),
        +    'URLS' => array(
        +//        1 => '',
        +//        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        // Highlight Key Delimiters
        +        0 => array(
        +            GESHI_SEARCH => '((^|\\n)\\s*)(\\\\\\[(.*)\\\\\\])(\\s*(\\n|$))',
        +            GESHI_REPLACE => '\\3',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\5'
        +//            GESHI_CLASS => 'kw1'
        +            ),
        +        // Highlight File Format Header Version 5
        +        1 => array(
        +            GESHI_SEARCH => '(^\s*)(Windows Registry Editor Version \d+\.\d+)(\s*$)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3',
        +            GESHI_CLASS => 'geshi_registry_header'
        +            ),
        +        // Highlight File Format Header Version 4
        +        2 => array(
        +            GESHI_SEARCH => '(^\\s*)(REGEDIT\s?\d+)(\s*$)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3',
        +            GESHI_CLASS => 'geshi_registry_header'
        +            ),
        +        // Highlight dword: 32 bit integer values
        +        3 => array(
        +            GESHI_SEARCH => '(=\s*)(dword:[0-9a-fA-F]{8})(\s*$)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3'
        +//            GESHI_CLASS => 'kw2'
        +            ),
        +        // Highlight variable names
        +        4 => array(
        +            GESHI_SEARCH => '(^\s*)(\".*?\")(\s*=)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3',
        +            GESHI_CLASS => 'geshi_variable'
        +            ),
        +        // Highlight String Values
        +        5 => array(
        +            GESHI_SEARCH => '(=\s*)(\".*?\")(\s*$)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3',
        +            GESHI_CLASS => 'st0'
        +            ),
        +        // Highlight Hexadecimal Values (Single-Line and Multi-Line)
        +        6 => array(
        +            GESHI_SEARCH => '(=\s*\n?\s*)(hex:[0-9a-fA-F]{2}(,(\\\s*\n\s*)?[0-9a-fA-F]{2})*)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '',
        +            GESHI_CLASS => 'kw2'
        +            ),
        +        // Highlight Default Variable
        +        7 => array(
        +            GESHI_SEARCH => '(^\s*)(@)(\s*=)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'm',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3',
        +            GESHI_CLASS => 'geshi_variable'
        +            ),
        +        // Highlight GUID's found anywhere.
        +        8 => array(
        +            GESHI_SEARCH => '(\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\})',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'i',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '',
        +            GESHI_CLASS => 'geshi_guid'
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'NUMBERS' => GESHI_NEVER,
        +        )
        +    )
        +);
        +
        +?>
        diff --git a/Sources/geshi/rexx.php b/Sources/geshi/rexx.php
        new file mode 100644
        index 0000000..b3cb932
        --- /dev/null
        +++ b/Sources/geshi/rexx.php
        @@ -0,0 +1,162 @@
        + 'rexx',
        +    'COMMENT_SINGLE' => array(1 => '--'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'address', 'arg', 'attribute', 'call', 'constant', 'do',
        +            'drop', 'exit', 'forward', 'if',
        +            'interpret', 'iterate', 'leave', 'loop', 'nop', 'numeric',
        +            'options', 'parse', 'procedure', 'pull', 'push', 'queue',
        +            'raise', 'return', 'say', 'select', 'signal', 'trace'
        +            ),
        +        2 => array(
        +            'by', 'digits', 'engineering', 'error', 'expose',
        +            'failure', 'for', 'forever', 'form', 'fuzz', 'halt',
        +            'name', 'novalue', 'off', 'on', 'over', 'scientific', 'source',
        +            'syntax', 'to', 'until', 'upper', 'version',
        +            'while', 'with'
        +            ),
        +        3 => array(
        +            'else', 'end', 'otherwise', 'then', 'when'
        +            ),
        +        4 => array(
        +            'rc', 'result', 'sigl'
        +            ),
        +        5 => array(
        +            'placeholderforoorexxdirectives'
        +            ),
        +        6 => array(
        +            'abbrev', 'abs', 'beep', 'bitand', 'bitor',
        +            'bitxor', 'b2x', 'center', 'centre', 'changestr', 'charin',
        +            'charout', 'chars', 'compare', 'condition', 'copies',
        +            'countstr', 'c2d', 'c2x', 'datatype', 'date', 'delstr',
        +            'delword', 'directory', 'd2c', 'd2x', 'endlocal',
        +            'errortext', 'filespec', 'format', 'insert',
        +            'lastpos', 'left', 'length', 'linein', 'lineout', 'lines',
        +            'lower', 'max', 'min', 'overlay', 'pos', 'queued', 'random',
        +            'reverse', 'right', 'rxfuncadd', 'rxfuncdrop', 'rxfuncquery',
        +            'rxqueue', 'setlocal', 'sign', 'sourceline', 'space',
        +            'stream', 'strip', 'substr', 'subword', 'symbol', 'time',
        +            'translate', 'trunc', 'userid', 'value',
        +            'var', 'verify', 'word', 'wordindex', 'wordlength', 'wordpos',
        +            'words', 'xrange', 'x2b', 'x2c', 'x2d'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '<', '>', '=', '+', '-', '*', '**', '/', '|', '%', '^', '&', ':'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => true,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        6 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #ff0000; font-weight: bold;',
        +            3 => 'color: #00ff00; font-weight: bold;',
        +            4 => 'color: #0000ff; font-weight: bold;',
        +            5 => 'color: #880088; font-weight: bold;',
        +            6 => 'color: #888800; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666;',
        +            'MULTI' => 'color: #808080;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #202020;',
        +            2 => 'color: #202020;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        diff --git a/Sources/geshi/robots.php b/Sources/geshi/robots.php
        new file mode 100644
        index 0000000..0b75f71
        --- /dev/null
        +++ b/Sources/geshi/robots.php
        @@ -0,0 +1,100 @@
        + 'robots.txt',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(1 => "/^Comment:.*?/m"),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'Allow', 'Crawl-delay', 'Disallow', 'Request-rate', 'Robot-version',
        +            'Sitemap', 'User-agent', 'Visit-time'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        ':'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://www.robotstxt.org/wc/norobots.html'
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/rpmspec.php b/Sources/geshi/rpmspec.php
        new file mode 100644
        index 0000000..fd6a561
        --- /dev/null
        +++ b/Sources/geshi/rpmspec.php
        @@ -0,0 +1,133 @@
        + 'RPM Specification File',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'QUOTEMARKS' => array('"','`'),
        +    'ESCAPE_CHAR' => '\\',
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        ),
        +    'KEYWORDS' => array(
        +        ),
        +    'SYMBOLS' => array(
        +        '<', '>', '=',
        +        '!', '@', '~', '&', '|', '^',
        +        '+','-', '*', '/', '%',
        +        ',', ';', '?', '.', ':'
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            'HARD' => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;',
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;',
        +            2 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(
        +            1 => 'color: #0000ff;',
        +            2 => 'color: #009999;',
        +            3 => 'color: #000000; font-weight: bold;',
        +            4 => 'color: #ff6600; font-style: italic;',
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'REGEXPS' => array(
        +        1 => array(
        +            // search for generic macros
        +            GESHI_SEARCH => '(%{?[a-zA-Z0-9_]+}?)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '',
        +            ),
        +        2 => array(
        +            // search for special macros
        +            GESHI_SEARCH => '(%(?:define|patch\d*|mklibname|mkrel|configure\S+|makeinstall\S+|make_session|make|defattr|config|doc|setup))',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'i',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '',
        +            ),
        +        3 => array (
        +            // special definitions
        +            GESHI_SEARCH => '((?:summary|license|buildroot|buildrequires|provides|version|release|source\d*|group|buildarch|autoreqprov|provides|obsoletes|vendor|distribution|suggests|autoreq|autoprov|conflicts|name|url|requires|patch\d*):)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'i',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '',
        +            ),
        +        4 => array (
        +            // section delimiting words
        +            GESHI_SEARCH => '(%(?:description|package|prep|build|install|clean|postun|preun|post|pre|files|changelog))',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'i',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '',
        +            ),
        +        ),
        +    'URLS' => array(),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/rsplus.php b/Sources/geshi/rsplus.php
        new file mode 100644
        index 0000000..e8a4e72
        --- /dev/null
        +++ b/Sources/geshi/rsplus.php
        @@ -0,0 +1,483 @@
        + 'R / S+',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"', "'"),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'else','global','in', 'otherwise','persistent',
        +            ),
        +        2 => array( // base package
        +            '$.package_version', '$<-', '$<-.data.frame', 'abbreviate', 'abs', 'acos', 'acosh', 'addNA', 'addTaskCallback',
        +            'agrep', 'alist', 'all', 'all.equal', 'all.equal.character', 'all.equal.default', 'all.equal.factor',
        +            'all.equal.formula', 'all.equal.language', 'all.equal.list', 'all.equal.numeric', 'all.equal.POSIXct',
        +            'all.equal.raw', 'all.names', 'all.vars', 'any', 'aperm', 'append', 'apply', 'Arg', 'args', 'array', 'as.array',
        +            'as.array.default', 'as.call', 'as.character', 'as.character.condition', 'as.character.Date', 'as.character.default',
        +            'as.character.error', 'as.character.factor', 'as.character.hexmode', 'as.character.numeric_version', 'as.character.octmode',
        +            'as.character.POSIXt', 'as.character.srcref', 'as.complex', 'as.data.frame', 'as.data.frame.array', 'as.data.frame.AsIs',
        +            'as.data.frame.character', 'as.data.frame.complex', 'as.data.frame.data.frame', 'as.data.frame.Date', 'as.data.frame.default',
        +            'as.data.frame.difftime', 'as.data.frame.factor', 'as.data.frame.integer', 'as.data.frame.list', 'as.data.frame.logical',
        +            'as.data.frame.matrix', 'as.data.frame.model.matrix', 'as.data.frame.numeric', 'as.data.frame.numeric_version',
        +            'as.data.frame.ordered', 'as.data.frame.POSIXct', 'as.data.frame.POSIXlt', 'as.data.frame.raw', 'as.data.frame.table',
        +            'as.data.frame.ts', 'as.data.frame.vector', 'as.Date', 'as.Date.character', 'as.Date.date', 'as.Date.dates',
        +            'as.Date.default', 'as.Date.factor', 'as.Date.numeric', 'as.Date.POSIXct', 'as.Date.POSIXlt', 'as.difftime', 'as.double',
        +            'as.double.difftime', 'as.double.POSIXlt', 'as.environment', 'as.expression', 'as.expression.default', 'as.factor',
        +            'as.function', 'as.function.default', 'as.hexmode', 'as.integer', 'as.list', 'as.list.data.frame', 'as.list.default',
        +            'as.list.environment', 'as.list.factor', 'as.list.function', 'as.list.numeric_version', 'as.logical', 'as.matrix',
        +            'as.matrix.data.frame', 'as.matrix.default', 'as.matrix.noquote', 'as.matrix.POSIXlt', 'as.name', 'as.null', 'as.null.default',
        +            'as.numeric', 'as.numeric_version', 'as.octmode', 'as.ordered', 'as.package_version', 'as.pairlist', 'as.POSIXct',
        +            'as.POSIXct.date', 'as.POSIXct.Date', 'as.POSIXct.dates', 'as.POSIXct.default', 'as.POSIXct.numeric', 'as.POSIXct.POSIXlt',
        +            'as.POSIXlt', 'as.POSIXlt.character', 'as.POSIXlt.date', 'as.POSIXlt.Date', 'as.POSIXlt.dates', 'as.POSIXlt.default',
        +            'as.POSIXlt.factor', 'as.POSIXlt.numeric', 'as.POSIXlt.POSIXct', 'as.qr', 'as.raw', 'as.real', 'as.single',
        +            'as.single.default', 'as.symbol', 'as.table', 'as.table.default', 'as.vector', 'as.vector.factor', 'asin', 'asinh',
        +            'asNamespace', 'asS4', 'assign', 'atan', 'atan2', 'atanh', 'attach', 'attachNamespace', 'attr', 'attr.all.equal',
        +            'attr<-', 'attributes', 'attributes<-', 'autoload', 'autoloader', 'backsolve', 'baseenv', 'basename', 'besselI',
        +            'besselJ', 'besselK', 'besselY', 'beta', 'bindingIsActive', 'bindingIsLocked', 'bindtextdomain', 'body', 'body<-',
        +            'bquote', 'break', 'browser', 'builtins', 'by', 'by.data.frame', 'by.default', 'bzfile', 'c', 'c.Date', 'c.noquote',
        +            'c.numeric_version', 'c.POSIXct', 'c.POSIXlt', 'call', 'callCC', 'capabilities', 'casefold', 'cat', 'category',
        +            'cbind', 'cbind.data.frame', 'ceiling', 'char.expand', 'character', 'charmatch', 'charToRaw', 'chartr', 'check_tzones',
        +            'chol', 'chol.default', 'chol2inv', 'choose', 'class', 'class<-', 'close', 'close.connection', 'close.srcfile',
        +            'closeAllConnections', 'codes', 'codes.factor', 'codes.ordered', 'codes<-', 'col', 'colMeans', 'colnames',
        +            'colnames<-', 'colSums', 'commandArgs', 'comment', 'comment<-', 'complex', 'computeRestarts', 'conditionCall',
        +            'conditionCall.condition', 'conditionMessage', 'conditionMessage.condition', 'conflicts', 'Conj', 'contributors',
        +            'cos', 'cosh', 'crossprod', 'Cstack_info', 'cummax', 'cummin', 'cumprod', 'cumsum', 'cut', 'cut.Date', 'cut.default',
        +            'cut.POSIXt', 'data.class', 'data.frame', 'data.matrix', 'date', 'debug', 'default.stringsAsFactors', 'delay',
        +            'delayedAssign', 'deparse', 'det', 'detach', 'determinant', 'determinant.matrix', 'dget', 'diag', 'diag<-', 'diff',
        +            'diff.Date', 'diff.default', 'diff.POSIXt', 'difftime', 'digamma', 'dim', 'dim.data.frame', 'dim<-', 'dimnames',
        +            'dimnames.data.frame', 'dimnames<-', 'dimnames<-.data.frame', 'dir', 'dir.create', 'dirname', 'do.call', 'double',
        +            'dput', 'dQuote', 'drop', 'dump', 'duplicated', 'duplicated.array', 'duplicated.data.frame', 'duplicated.default',
        +            'duplicated.matrix', 'duplicated.numeric_version', 'duplicated.POSIXlt', 'dyn.load', 'dyn.unload', 'eapply', 'eigen',
        +            'emptyenv', 'encodeString', 'Encoding', 'Encoding<-', 'env.profile', 'environment', 'environment<-', 'environmentIsLocked',
        +            'environmentName', 'eval', 'eval.parent', 'evalq', 'exists', 'exp', 'expand.grid', 'expm1', 'expression', 'F', 'factor',
        +            'factorial', 'fifo', 'file', 'file.access', 'file.append', 'file.choose', 'file.copy', 'file.create', 'file.exists',
        +            'file.info', 'file.path', 'file.remove', 'file.rename', 'file.show', 'file.symlink', 'Filter', 'Find', 'findInterval',
        +            'findPackageEnv', 'findRestart', 'floor', 'flush', 'flush.connection', 'for', 'force', 'formals', 'formals<-',
        +            'format', 'format.AsIs', 'format.char', 'format.data.frame', 'format.Date', 'format.default', 'format.difftime',
        +            'format.factor', 'format.hexmode', 'format.info', 'format.octmode', 'format.POSIXct', 'format.POSIXlt',
        +            'format.pval', 'formatC', 'formatDL', 'forwardsolve', 'function', 'gamma', 'gammaCody', 'gc', 'gc.time',
        +            'gcinfo', 'gctorture', 'get', 'getAllConnections', 'getCallingDLL', 'getCallingDLLe', 'getCConverterDescriptions',
        +            'getCConverterStatus', 'getConnection', 'getDLLRegisteredRoutines', 'getDLLRegisteredRoutines.character',
        +            'getDLLRegisteredRoutines.DLLInfo', 'getenv', 'geterrmessage', 'getExportedValue', 'getHook', 'getLoadedDLLs',
        +            'getNamespace', 'getNamespaceExports', 'getNamespaceImports', 'getNamespaceInfo', 'getNamespaceName',
        +            'getNamespaceUsers', 'getNamespaceVersion', 'getNativeSymbolInfo', 'getNumCConverters', 'getOption', 'getRversion',
        +            'getSrcLines', 'getTaskCallbackNames', 'gettext', 'gettextf', 'getwd', 'gl', 'globalenv', 'gregexpr', 'grep',
        +            'grepl', 'gsub', 'gzcon', 'gzfile', 'httpclient', 'I', 'iconv', 'iconvlist', 'icuSetCollate', 'identical', 'identity',
        +            'if', 'ifelse', 'Im', 'importIntoEnv', 'inherits', 'integer', 'interaction', 'interactive', 'intersect', 'intToBits',
        +            'intToUtf8', 'inverse.rle', 'invisible', 'invokeRestart', 'invokeRestartInteractively', 'is.array', 'is.atomic',
        +            'is.call', 'is.character', 'is.complex', 'is.data.frame', 'is.double', 'is.element', 'is.environment',
        +            'is.expression', 'is.factor', 'is.finite', 'is.function', 'is.infinite', 'is.integer', 'is.language',
        +            'is.list', 'is.loaded', 'is.logical', 'is.matrix', 'is.na', 'is.na.data.frame', 'is.na.POSIXlt', 'is.na<-',
        +            'is.na<-.default', 'is.na<-.factor', 'is.name', 'is.nan', 'is.null', 'is.numeric', 'is.numeric_version',
        +            'is.numeric.Date', 'is.numeric.POSIXt', 'is.object', 'is.ordered', 'is.package_version', 'is.pairlist', 'is.primitive',
        +            'is.qr', 'is.R', 'is.raw', 'is.real', 'is.recursive', 'is.single', 'is.symbol', 'is.table', 'is.unsorted', 'is.vector',
        +            'isBaseNamespace', 'isdebugged', 'isIncomplete', 'isNamespace', 'ISOdate', 'ISOdatetime', 'isOpen', 'isRestart', 'isS4',
        +            'isSeekable', 'isSymmetric', 'isSymmetric.matrix', 'isTRUE', 'jitter', 'julian', 'julian.Date', 'julian.POSIXt', 'kappa',
        +            'kappa.default', 'kappa.lm', 'kappa.qr', 'kappa.tri', 'kronecker', 'l10n_info', 'La.chol', 'La.chol2inv', 'La.eigen',
        +            'La.svd', 'labels', 'labels.default', 'lapply', 'lazyLoad', 'lazyLoadDBfetch', 'lbeta', 'lchoose', 'length', 'length<-',
        +            'length<-.factor', 'letters', 'LETTERS', 'levels', 'levels.default', 'levels<-', 'levels<-.factor', 'lfactorial', 'lgamma',
        +            'library', 'library.dynam', 'library.dynam.unload', 'licence', 'license', 'list', 'list.files', 'load', 'loadedNamespaces',
        +            'loadingNamespaceInfo', 'loadNamespace', 'loadURL', 'local', 'lockBinding', 'lockEnvironment', 'log', 'log10', 'log1p', 'log2',
        +            'logb', 'logical', 'lower.tri', 'ls', 'machine', 'Machine', 'make.names', 'make.unique', 'makeActiveBinding', 'manglePackageName',
        +            'Map', 'mapply', 'margin.table', 'mat.or.vec', 'match', 'match.arg', 'match.call', 'match.fun', 'Math.data.frame', 'Math.Date',
        +            'Math.difftime', 'Math.factor', 'Math.POSIXt', 'matrix', 'max', 'max.col', 'mean', 'mean.data.frame', 'mean.Date', 'mean.default',
        +            'mean.difftime', 'mean.POSIXct', 'mean.POSIXlt', 'mem.limits', 'memory.profile', 'merge', 'merge.data.frame', 'merge.default',
        +            'message', 'mget', 'min', 'missing', 'Mod', 'mode', 'mode<-', 'month.abb', 'month.name', 'months', 'months.Date',
        +            'months.POSIXt', 'mostattributes<-', 'names', 'names<-', 'namespaceExport', 'namespaceImport', 'namespaceImportClasses',
        +            'namespaceImportFrom', 'namespaceImportMethods', 'nargs', 'nchar', 'ncol', 'NCOL', 'Negate', 'new.env', 'next', 'NextMethod',
        +            'ngettext', 'nlevels', 'noquote', 'nrow', 'NROW', 'numeric', 'numeric_version', 'nzchar', 'objects', 'oldClass',
        +            'oldClass<-', 'on.exit', 'open', 'open.connection', 'open.srcfile', 'open.srcfilecopy', 'Ops.data.frame', 'Ops.Date',
        +            'Ops.difftime', 'Ops.factor', 'Ops.numeric_version', 'Ops.ordered', 'Ops.POSIXt', 'options', 'order', 'ordered',
        +            'outer', 'package_version', 'package.description', 'packageEvent', 'packageHasNamespace', 'packageStartupMessage',
        +            'packBits', 'pairlist', 'parent.env', 'parent.env<-', 'parent.frame', 'parse', 'parse.dcf', 'parseNamespaceFile',
        +            'paste', 'path.expand', 'pentagamma', 'pi', 'pipe', 'Platform', 'pmatch', 'pmax', 'pmax.int', 'pmin', 'pmin.int',
        +            'polyroot', 'pos.to.env', 'Position', 'pretty', 'prettyNum', 'print', 'print.AsIs', 'print.atomic', 'print.by',
        +            'print.condition', 'print.connection', 'print.data.frame', 'print.Date', 'print.default', 'print.difftime',
        +            'print.DLLInfo', 'print.DLLInfoList', 'print.DLLRegisteredRoutines', 'print.factor', 'print.hexmode', 'print.libraryIQR',
        +            'print.listof', 'print.NativeRoutineList', 'print.noquote', 'print.numeric_version', 'print.octmode', 'print.packageInfo',
        +            'print.POSIXct', 'print.POSIXlt', 'print.proc_time', 'print.restart', 'print.rle', 'print.simple.list',
        +            'print.srcfile', 'print.srcref', 'print.summary.table', 'print.table', 'print.warnings', 'printNoClass',
        +            'prmatrix', 'proc.time', 'prod', 'prop.table', 'provide', 'psigamma', 'pushBack', 'pushBackLength', 'q', 'qr',
        +            'qr.coef', 'qr.default', 'qr.fitted', 'qr.Q', 'qr.qty', 'qr.qy', 'qr.R', 'qr.resid', 'qr.solve', 'qr.X', 'quarters',
        +            'quarters.Date', 'quarters.POSIXt', 'quit', 'quote', 'R_system_version', 'R.home', 'R.version', 'R.Version',
        +            'R.version.string', 'range', 'range.default', 'rank', 'rapply', 'raw', 'rawConnection', 'rawConnectionValue',
        +            'rawShift', 'rawToBits', 'rawToChar', 'rbind', 'rbind.data.frame', 'rcond', 'Re', 'read.dcf', 'read.table.url',
        +            'readBin', 'readChar', 'readline', 'readLines', 'real', 'Recall', 'Reduce', 'reg.finalizer', 'regexpr',
        +            'registerS3method', 'registerS3methods', 'remove', 'removeCConverter', 'removeTaskCallback', 'rep', 'rep.Date',
        +            'rep.factor', 'rep.int', 'rep.numeric_version', 'rep.POSIXct', 'rep.POSIXlt', 'repeat', 'replace', 'replicate',
        +            'require', 'restart', 'restartDescription', 'restartFormals', 'retracemem', 'return', 'rev', 'rev.default', 'rle',
        +            'rm', 'RNGkind', 'RNGversion', 'round', 'round.Date', 'round.difftime', 'round.POSIXt', 'row', 'row.names',
        +            'row.names.data.frame', 'row.names.default', 'row.names<-', 'row.names<-.data.frame', 'row.names<-.default',
        +            'rowMeans', 'rownames', 'rownames<-', 'rowsum', 'rowsum.data.frame', 'rowsum.default', 'rowSums', 'sample',
        +            'sample.int', 'sapply', 'save', 'save.image', 'saveNamespaceImage', 'scale', 'scale.default', 'scan', 'scan.url',
        +            'search', 'searchpaths', 'seek', 'seek.connection', 'seq', 'seq_along', 'seq_len', 'seq.Date', 'seq.default',
        +            'seq.int', 'seq.POSIXt', 'sequence', 'serialize', 'set.seed', 'setCConverterStatus', 'setdiff', 'setequal',
        +            'setHook', 'setNamespaceInfo', 'setSessionTimeLimit', 'setTimeLimit', 'setwd', 'showConnections', 'shQuote',
        +            'sign', 'signalCondition', 'signif', 'simpleCondition', 'simpleError', 'simpleMessage', 'simpleWarning', 'sin',
        +            'single', 'sinh', 'sink', 'sink.number', 'slice.index', 'socketConnection', 'socketSelect', 'solve', 'solve.default',
        +            'solve.qr', 'sort', 'sort.default', 'sort.int', 'sort.list', 'sort.POSIXlt', 'source', 'source.url', 'split',
        +            'split.data.frame', 'split.Date', 'split.default', 'split.POSIXct', 'split<-', 'split<-.data.frame', 'split<-.default',
        +            'sprintf', 'sqrt', 'sQuote', 'srcfile', 'srcfilecopy', 'srcref', 'standardGeneric', 'stderr', 'stdin', 'stdout',
        +            'stop', 'stopifnot', 'storage.mode', 'storage.mode<-', 'strftime', 'strptime', 'strsplit', 'strtrim', 'structure',
        +            'strwrap', 'sub', 'subset', 'subset.data.frame', 'subset.default', 'subset.matrix', 'substitute', 'substr',
        +            'substr<-', 'substring', 'substring<-', 'sum', 'summary', 'summary.connection', 'summary.data.frame',
        +            'Summary.data.frame', 'summary.Date', 'Summary.Date', 'summary.default', 'Summary.difftime',
        +            'summary.factor', 'Summary.factor', 'summary.matrix', 'Summary.numeric_version', 'summary.POSIXct',
        +            'Summary.POSIXct', 'summary.POSIXlt', 'Summary.POSIXlt', 'summary.table', 'suppressMessages',
        +            'suppressPackageStartupMessages', 'suppressWarnings', 'svd', 'sweep', 'switch', 'symbol.C',
        +            'symbol.For', 'sys.call', 'sys.calls', 'Sys.chmod', 'Sys.Date', 'sys.frame', 'sys.frames',
        +            'sys.function', 'Sys.getenv', 'Sys.getlocale', 'Sys.getpid', 'Sys.glob', 'Sys.info', 'sys.load.image',
        +            'Sys.localeconv', 'sys.nframe', 'sys.on.exit', 'sys.parent', 'sys.parents', 'Sys.putenv',
        +            'sys.save.image', 'Sys.setenv', 'Sys.setlocale', 'Sys.sleep', 'sys.source', 'sys.status',
        +            'Sys.time', 'Sys.timezone', 'Sys.umask', 'Sys.unsetenv', 'Sys.which', 'system', 'system.file',
        +            'system.time', 't', 'T', 't.data.frame', 't.default', 'table', 'tabulate', 'tan', 'tanh', 'tapply',
        +            'taskCallbackManager', 'tcrossprod', 'tempdir', 'tempfile', 'testPlatformEquivalence', 'tetragamma',
        +            'textConnection', 'textConnectionValue', 'tolower', 'topenv', 'toString', 'toString.default', 'toupper',
        +            'trace', 'traceback', 'tracemem', 'tracingState', 'transform', 'transform.data.frame', 'transform.default',
        +            'trigamma', 'trunc', 'trunc.Date', 'trunc.POSIXt', 'truncate', 'truncate.connection', 'try', 'tryCatch',
        +            'typeof', 'unclass', 'undebug', 'union', 'unique', 'unique.array', 'unique.data.frame', 'unique.default',
        +            'unique.matrix', 'unique.numeric_version', 'unique.POSIXlt', 'units', 'units.difftime', 'units<-',
        +            'units<-.difftime', 'unix', 'unix.time', 'unlink', 'unlist', 'unloadNamespace', 'unlockBinding',
        +            'unname', 'unserialize', 'unsplit', 'untrace', 'untracemem', 'unz', 'upper.tri', 'url', 'UseMethod',
        +            'utf8ToInt', 'vector', 'Vectorize', 'version', 'Version', 'warning', 'warnings', 'weekdays',
        +            'weekdays.Date', 'weekdays.POSIXt', 'which', 'which.max', 'which.min', 'while', 'with',
        +            'with.default', 'withCallingHandlers', 'within', 'within.data.frame', 'within.list', 'withRestarts',
        +            'withVisible', 'write', 'write.dcf', 'write.table0', 'writeBin', 'writeChar', 'writeLines', 'xor',
        +            'xpdrows.data.frame', 'xtfrm', 'xtfrm.Date', 'xtfrm.default', 'xtfrm.factor', 'xtfrm.numeric_version',
        +            'xtfrm.POSIXct', 'xtfrm.POSIXlt', 'xtfrm.Surv', 'zapsmall',
        +            ),
        +        3 => array( // Datasets
        +            'ability.cov', 'airmiles', 'AirPassengers', 'airquality',
        +            'anscombe', 'attenu', 'attitude', 'austres', 'beaver1',
        +            'beaver2', 'BJsales', 'BJsales.lead', 'BOD', 'cars',
        +            'ChickWeight', 'chickwts', 'co2', 'crimtab',
        +            'discoveries', 'DNase', 'esoph', 'euro', 'euro.cross',
        +            'eurodist', 'EuStockMarkets', 'faithful', 'fdeaths',
        +            'Formaldehyde', 'freeny', 'freeny.x', 'freeny.y',
        +            'HairEyeColor', 'Harman23.cor', 'Harman74.cor', 'Indometh',
        +            'infert', 'InsectSprays', 'iris', 'iris3', 'islands',
        +            'JohnsonJohnson', 'LakeHuron', 'ldeaths', 'lh', 'LifeCycleSavings',
        +            'Loblolly', 'longley', 'lynx', 'mdeaths', 'morley', 'mtcars',
        +            'nhtemp', 'Nile', 'nottem', 'occupationalStatus', 'Orange',
        +            'OrchardSprays', 'PlantGrowth', 'precip', 'presidents',
        +            'pressure', 'Puromycin', 'quakes', 'randu', 'rivers', 'rock',
        +            'Seatbelts', 'sleep', 'stack.loss', 'stack.x', 'stackloss',
        +            'state.abb', 'state.area', 'state.center', 'state.division',
        +            'state.name', 'state.region', 'state.x77', 'sunspot.month',
        +            'sunspot.year', 'sunspots', 'swiss', 'Theoph', 'Titanic', 'ToothGrowth',
        +            'treering', 'trees', 'UCBAdmissions', 'UKDriverDeaths', 'UKgas',
        +            'USAccDeaths', 'USArrests', 'USJudgeRatings', 'USPersonalExpenditure',
        +            'uspop', 'VADeaths', 'volcano', 'warpbreaks', 'women', 'WorldPhones',
        +            'WWWusage',
        +            ),
        +        4 => array( // graphics package
        +            'abline', 'arrows', 'assocplot', 'axis', 'Axis', 'axis.Date', 'axis.POSIXct',
        +            'axTicks', 'barplot', 'barplot.default', 'box', 'boxplot', 'boxplot.default',
        +            'boxplot.matrix', 'bxp', 'cdplot', 'clip', 'close.screen', 'co.intervals',
        +            'contour', 'contour.default', 'coplot', 'curve', 'dotchart', 'erase.screen',
        +            'filled.contour', 'fourfoldplot', 'frame', 'grconvertX', 'grconvertY', 'grid',
        +            'hist', 'hist.default', 'identify', 'image', 'image.default', 'layout',
        +            'layout.show', 'lcm', 'legend', 'lines', 'lines.default', 'locator', 'matlines',
        +            'matplot', 'matpoints', 'mosaicplot', 'mtext', 'pairs', 'pairs.default',
        +            'panel.smooth', 'par', 'persp', 'pie', 'piechart', 'plot', 'plot.default',
        +            'plot.design', 'plot.new', 'plot.window', 'plot.xy', 'points', 'points.default',
        +            'polygon', 'rect', 'rug', 'screen', 'segments', 'smoothScatter', 'spineplot',
        +            'split.screen', 'stars', 'stem', 'strheight', 'stripchart', 'strwidth', 'sunflowerplot',
        +            'symbols', 'text', 'text.default', 'title', 'xinch', 'xspline', 'xyinch', 'yinch',
        +            ),
        +        5 => array( // grDevices pkg
        +            'as.graphicsAnnot', 'bitmap', 'blues9', 'bmp', 'boxplot.stats', 'cairo_pdf', 'cairo_ps', 'check.options',
        +            'chull', 'CIDFont', 'cm', 'cm.colors', 'col2rgb', 'colorConverter', 'colorRamp', 'colorRampPalette',
        +            'colors', 'colorspaces', 'colours', 'contourLines', 'convertColor', 'densCols', 'dev.control', 'dev.copy',
        +            'dev.copy2eps', 'dev.copy2pdf', 'dev.cur', 'dev.interactive', 'dev.list', 'dev.new', 'dev.next', 'dev.off',
        +            'dev.prev', 'dev.print', 'dev.set', 'dev.size', 'dev2bitmap', 'devAskNewPage', 'deviceIsInteractive',
        +            'embedFonts', 'extendrange', 'getGraphicsEvent', 'graphics.off', 'gray', 'gray.colors', 'grey', 'grey.colors',
        +            'hcl', 'heat.colors', 'Hershey', 'hsv', 'jpeg', 'make.rgb', 'n2mfrow', 'nclass.FD', 'nclass.scott',
        +            'nclass.Sturges', 'palette', 'pdf', 'pdf.options', 'pdfFonts', 'pictex', 'png', 'postscript', 'postscriptFont',
        +            'postscriptFonts', 'ps.options', 'quartz', 'quartz.options', 'quartzFont', 'quartzFonts', 'rainbow',
        +            'recordGraphics', 'recordPlot', 'replayPlot', 'rgb', 'rgb2hsv', 'savePlot', 'setEPS', 'setPS', 'svg',
        +            'terrain.colors', 'tiff', 'topo.colors', 'trans3d', 'Type1Font', 'x11', 'X11', 'X11.options', 'X11Font',
        +            'X11Fonts', 'xfig', 'xy.coords', 'xyTable', 'xyz.coords',
        +            ),
        +        6 => array( // methods package
        +            'addNextMethod', 'allGenerics', 'allNames', 'Arith', 'as', 'as<-',
        +            'asMethodDefinition', 'assignClassDef', 'assignMethodsMetaData', 'balanceMethodsList',
        +            'cacheGenericsMetaData', 'cacheMetaData', 'cacheMethod', 'callGeneric',
        +            'callNextMethod', 'canCoerce', 'cbind2', 'checkSlotAssignment', 'classesToAM',
        +            'classMetaName', 'coerce', 'coerce<-', 'Compare', 'completeClassDefinition',
        +            'completeExtends', 'completeSubclasses', 'Complex', 'conformMethod', 'defaultDumpName',
        +            'defaultPrototype', 'doPrimitiveMethod', 'dumpMethod', 'dumpMethods', 'el', 'el<-',
        +            'elNamed', 'elNamed<-', 'empty.dump', 'emptyMethodsList', 'existsFunction', 'existsMethod',
        +            'extends', 'finalDefaultMethod', 'findClass', 'findFunction', 'findMethod', 'findMethods',
        +            'findMethodSignatures', 'findUnique', 'fixPre1.8', 'formalArgs', 'functionBody',
        +            'functionBody<-', 'generic.skeleton', 'getAccess', 'getAllMethods', 'getAllSuperClasses',
        +            'getClass', 'getClassDef', 'getClasses', 'getClassName', 'getClassPackage', 'getDataPart',
        +            'getExtends', 'getFunction', 'getGeneric', 'getGenerics', 'getGroup', 'getGroupMembers',
        +            'getMethod', 'getMethods', 'getMethodsForDispatch', 'getMethodsMetaData', 'getPackageName',
        +            'getProperties', 'getPrototype', 'getSlots', 'getSubclasses', 'getValidity', 'getVirtual',
        +            'hasArg', 'hasMethod', 'hasMethods', 'implicitGeneric', 'initialize', 'insertMethod', 'is',
        +            'isClass', 'isClassDef', 'isClassUnion', 'isGeneric', 'isGrammarSymbol', 'isGroup',
        +            'isSealedClass', 'isSealedMethod', 'isVirtualClass', 'isXS3Class', 'languageEl', 'languageEl<-',
        +            'linearizeMlist', 'listFromMethods', 'listFromMlist', 'loadMethod', 'Logic',
        +            'makeClassRepresentation', 'makeExtends', 'makeGeneric', 'makeMethodsList',
        +            'makePrototypeFromClassDef', 'makeStandardGeneric', 'matchSignature', 'Math', 'Math2', 'mergeMethods',
        +            'metaNameUndo', 'method.skeleton', 'MethodAddCoerce', 'methodSignatureMatrix', 'MethodsList',
        +            'MethodsListSelect', 'methodsPackageMetaName', 'missingArg', 'mlistMetaName', 'new', 'newBasic',
        +            'newClassRepresentation', 'newEmptyObject', 'Ops', 'packageSlot', 'packageSlot<-', 'possibleExtends',
        +            'prohibitGeneric', 'promptClass', 'promptMethods', 'prototype', 'Quote', 'rbind2',
        +            'reconcilePropertiesAndPrototype', 'registerImplicitGenerics', 'rematchDefinition',
        +            'removeClass', 'removeGeneric', 'removeMethod', 'removeMethods', 'removeMethodsObject', 'representation',
        +            'requireMethods', 'resetClass', 'resetGeneric', 'S3Class', 'S3Class<-', 'S3Part', 'S3Part<-', 'sealClass',
        +            'seemsS4Object', 'selectMethod', 'selectSuperClasses', 'sessionData', 'setAs', 'setClass', 'setClassUnion',
        +            'setDataPart', 'setGeneric', 'setGenericImplicit', 'setGroupGeneric', 'setIs', 'setMethod', 'setOldClass',
        +            'setPackageName', 'setPrimitiveMethods', 'setReplaceMethod', 'setValidity', 'show', 'showClass', 'showDefault',
        +            'showExtends', 'showMethods', 'showMlist', 'signature', 'SignatureMethod', 'sigToEnv', 'slot', 'slot<-',
        +            'slotNames', 'slotsFromS3', 'substituteDirect', 'substituteFunctionArgs', 'Summary', 'superClassDepth',
        +            'testInheritedMethods', 'testVirtual', 'traceOff', 'traceOn', 'tryNew', 'trySilent', 'unRematchDefinition',
        +            'validObject', 'validSlotNames',
        +            ),
        +        7 => array( // stats pkg
        +            'acf', 'acf2AR', 'add.scope', 'add1', 'addmargins', 'aggregate',
        +            'aggregate.data.frame', 'aggregate.default', 'aggregate.ts', 'AIC',
        +            'alias', 'anova', 'anova.glm', 'anova.glmlist', 'anova.lm', 'anova.lmlist',
        +            'anova.mlm', 'anovalist.lm', 'ansari.test', 'aov', 'approx', 'approxfun',
        +            'ar', 'ar.burg', 'ar.mle', 'ar.ols', 'ar.yw', 'arima', 'arima.sim',
        +            'arima0', 'arima0.diag', 'ARMAacf', 'ARMAtoMA', 'as.dendrogram', 'as.dist',
        +            'as.formula', 'as.hclust', 'as.stepfun', 'as.ts', 'asOneSidedFormula', 'ave',
        +            'bandwidth.kernel', 'bartlett.test', 'binom.test', 'binomial', 'biplot',
        +            'Box.test', 'bw.bcv', 'bw.nrd', 'bw.nrd0', 'bw.SJ', 'bw.ucv', 'C', 'cancor',
        +            'case.names', 'ccf', 'chisq.test', 'clearNames', 'cmdscale', 'coef', 'coefficients',
        +            'complete.cases', 'confint', 'confint.default', 'constrOptim', 'contr.helmert',
        +            'contr.poly', 'contr.SAS', 'contr.sum', 'contr.treatment', 'contrasts', 'contrasts<-',
        +            'convolve', 'cooks.distance', 'cophenetic', 'cor', 'cor.test', 'cov', 'cov.wt',
        +            'cov2cor', 'covratio', 'cpgram', 'cutree', 'cycle', 'D', 'dbeta', 'dbinom', 'dcauchy',
        +            'dchisq', 'decompose', 'delete.response', 'deltat', 'dendrapply', 'density', 'density.default',
        +            'deriv', 'deriv.default', 'deriv.formula', 'deriv3', 'deriv3.default', 'deriv3.formula',
        +            'deviance', 'dexp', 'df', 'df.kernel', 'df.residual', 'dfbeta', 'dfbetas', 'dffits',
        +            'dgamma', 'dgeom', 'dhyper', 'diff.ts', 'diffinv', 'dist', 'dlnorm', 'dlogis',
        +            'dmultinom', 'dnbinom', 'dnorm', 'dpois', 'drop.scope', 'drop.terms', 'drop1',
        +            'dsignrank', 'dt', 'dummy.coef', 'dunif', 'dweibull', 'dwilcox', 'ecdf', 'eff.aovlist',
        +            'effects', 'embed', 'end', 'estVar', 'expand.model.frame', 'extractAIC', 'factanal',
        +            'factor.scope', 'family', 'fft', 'filter', 'fisher.test', 'fitted', 'fitted.values',
        +            'fivenum', 'fligner.test', 'formula', 'frequency', 'friedman.test', 'ftable', 'Gamma',
        +            'gaussian', 'get_all_vars', 'getInitial', 'glm', 'glm.control', 'glm.fit', 'glm.fit.null',
        +            'hasTsp', 'hat', 'hatvalues', 'hatvalues.lm', 'hclust', 'heatmap', 'HoltWinters', 'influence',
        +            'influence.measures', 'integrate', 'interaction.plot', 'inverse.gaussian', 'IQR',
        +            'is.empty.model', 'is.leaf', 'is.mts', 'is.stepfun', 'is.ts', 'is.tskernel', 'isoreg',
        +            'KalmanForecast', 'KalmanLike', 'KalmanRun', 'KalmanSmooth', 'kernapply', 'kernel', 'kmeans',
        +            'knots', 'kruskal.test', 'ks.test', 'ksmooth', 'lag', 'lag.plot', 'line', 'lines.ts', 'lm',
        +            'lm.fit', 'lm.fit.null', 'lm.influence', 'lm.wfit', 'lm.wfit.null', 'loadings', 'loess',
        +            'loess.control', 'loess.smooth', 'logLik', 'loglin', 'lowess', 'ls.diag', 'ls.print', 'lsfit',
        +            'mad', 'mahalanobis', 'make.link', 'makeARIMA', 'makepredictcall', 'manova', 'mantelhaen.test',
        +            'mauchley.test', 'mauchly.test', 'mcnemar.test', 'median', 'median.default', 'medpolish',
        +            'model.extract', 'model.frame', 'model.frame.aovlist', 'model.frame.default', 'model.frame.glm',
        +            'model.frame.lm', 'model.matrix', 'model.matrix.default', 'model.matrix.lm', 'model.offset',
        +            'model.response', 'model.tables', 'model.weights', 'monthplot', 'mood.test', 'mvfft', 'na.action',
        +            'na.contiguous', 'na.exclude', 'na.fail', 'na.omit', 'na.pass', 'napredict', 'naprint', 'naresid',
        +            'nextn', 'nlm', 'nlminb', 'nls', 'nls.control', 'NLSstAsymptotic', 'NLSstClosestX', 'NLSstLfAsymptote',
        +            'NLSstRtAsymptote', 'numericDeriv', 'offset', 'oneway.test', 'optim', 'optimise', 'optimize',
        +            'order.dendrogram', 'p.adjust', 'p.adjust.methods', 'pacf', 'pairwise.prop.test', 'pairwise.t.test',
        +            'pairwise.table', 'pairwise.wilcox.test', 'pbeta', 'pbinom', 'pbirthday', 'pcauchy', 'pchisq', 'pexp',
        +            'pf', 'pgamma', 'pgeom', 'phyper', 'plclust', 'plnorm', 'plogis', 'plot.density', 'plot.ecdf', 'plot.lm',
        +            'plot.mlm', 'plot.spec', 'plot.spec.coherency', 'plot.spec.phase', 'plot.stepfun', 'plot.ts', 'plot.TukeyHSD',
        +            'pnbinom', 'pnorm', 'poisson', 'poisson.test', 'poly', 'polym', 'power', 'power.anova.test', 'power.prop.test',
        +            'power.t.test', 'PP.test', 'ppoints', 'ppois', 'ppr', 'prcomp', 'predict', 'predict.glm', 'predict.lm',
        +            'predict.mlm', 'predict.poly', 'preplot', 'princomp', 'print.anova', 'print.coefmat', 'print.density',
        +            'print.family', 'print.formula', 'print.ftable', 'print.glm', 'print.infl', 'print.integrate', 'print.lm',
        +            'print.logLik', 'print.terms', 'print.ts', 'printCoefmat', 'profile', 'proj', 'promax', 'prop.test',
        +            'prop.trend.test', 'psignrank', 'pt', 'ptukey', 'punif', 'pweibull', 'pwilcox', 'qbeta', 'qbinom',
        +            'qbirthday', 'qcauchy', 'qchisq', 'qexp', 'qf', 'qgamma', 'qgeom', 'qhyper', 'qlnorm', 'qlogis',
        +            'qnbinom', 'qnorm', 'qpois', 'qqline', 'qqnorm', 'qqnorm.default', 'qqplot', 'qsignrank', 'qt',
        +            'qtukey', 'quade.test', 'quantile', 'quantile.default', 'quasi', 'quasibinomial', 'quasipoisson',
        +            'qunif', 'qweibull', 'qwilcox', 'r2dtable', 'rbeta', 'rbinom', 'rcauchy', 'rchisq', 'read.ftable',
        +            'rect.hclust', 'reformulate', 'relevel', 'reorder', 'replications', 'reshape', 'reshapeLong', 'reshapeWide',
        +            'resid', 'residuals', 'residuals.default', 'residuals.glm', 'residuals.lm', 'rexp', 'rf', 'rgamma', 'rgeom',
        +            'rhyper', 'rlnorm', 'rlogis', 'rmultinom', 'rnbinom', 'rnorm', 'rpois', 'rsignrank', 'rstandard', 'rstandard.glm',
        +            'rstandard.lm', 'rstudent', 'rstudent.glm', 'rstudent.lm', 'rt', 'runif', 'runmed', 'rweibull', 'rwilcox',
        +            'scatter.smooth', 'screeplot', 'sd', 'se.contrast', 'selfStart', 'setNames', 'shapiro.test', 'simulate',
        +            'smooth', 'smooth.spline', 'smoothEnds', 'sortedXyData', 'spec.ar', 'spec.pgram', 'spec.taper', 'spectrum',
        +            'spline', 'splinefun', 'splinefunH', 'SSasymp', 'SSasympOff', 'SSasympOrig', 'SSbiexp', 'SSD', 'SSfol',
        +            'SSfpl', 'SSgompertz', 'SSlogis', 'SSmicmen', 'SSweibull', 'start', 'stat.anova', 'step', 'stepfun', 'stl',
        +            'StructTS', 'summary.aov', 'summary.aovlist', 'summary.glm', 'summary.infl', 'summary.lm', 'summary.manova',
        +            'summary.mlm', 'summary.stepfun', 'supsmu', 'symnum', 't.test', 'termplot', 'terms', 'terms.aovlist',
        +            'terms.default', 'terms.formula', 'terms.terms', 'time', 'toeplitz', 'ts', 'ts.intersect', 'ts.plot',
        +            'ts.union', 'tsdiag', 'tsp', 'tsp<-', 'tsSmooth', 'TukeyHSD', 'TukeyHSD.aov', 'uniroot', 'update',
        +            'update.default', 'update.formula', 'var', 'var.test', 'variable.names', 'varimax', 'vcov', 'weighted.mean',
        +            'weighted.residuals', 'weights', 'wilcox.test', 'window', 'window<-', 'write.ftable', 'xtabs',
        +            ),
        +        8 => array( // utils pkg
        +            'alarm', 'apropos', 'argsAnywhere', 'as.person', 'as.personList', 'as.relistable', 'as.roman',
        +            'assignInNamespace', 'available.packages', 'browseEnv', 'browseURL', 'browseVignettes', 'bug.report',
        +            'capture.output', 'checkCRAN', 'chooseCRANmirror', 'citation', 'citEntry', 'citFooter', 'citHeader',
        +            'close.socket', 'combn', 'compareVersion', 'contrib.url', 'count.fields', 'CRAN.packages', 'data',
        +            'data.entry', 'dataentry', 'de', 'de.ncols', 'de.restore', 'de.setup', 'debugger', 'demo', 'download.file',
        +            'download.packages', 'dump.frames', 'edit', 'emacs', 'example', 'file_test', 'file.edit', 'find', 'fix',
        +            'fixInNamespace', 'flush.console', 'formatOL', 'formatUL', 'getAnywhere', 'getCRANmirrors', 'getFromNamespace',
        +            'getS3method', 'getTxtProgressBar', 'glob2rx', 'head', 'head.matrix', 'help', 'help.request', 'help.search',
        +            'help.start', 'history', 'index.search', 'install.packages', 'installed.packages', 'is.relistable',
        +            'limitedLabels', 'loadhistory', 'localeToCharset', 'ls.str', 'lsf.str', 'make.packages.html', 'make.socket',
        +            'makeRweaveLatexCodeRunner', 'memory.limit', 'memory.size', 'menu', 'methods', 'mirror2html', 'modifyList',
        +            'new.packages', 'normalizePath', 'nsl', 'object.size', 'old.packages', 'package.contents', 'package.skeleton',
        +            'packageDescription', 'packageStatus', 'page', 'person', 'personList', 'pico', 'prompt', 'promptData',
        +            'promptPackage', 'rc.getOption', 'rc.options', 'rc.settings', 'rc.status', 'read.csv', 'read.csv2', 'read.delim',
        +            'read.delim2', 'read.DIF', 'read.fortran', 'read.fwf', 'read.socket', 'read.table', 'readCitationFile', 'recover',
        +            'relist', 'remove.packages', 'Rprof', 'Rprofmem', 'RShowDoc', 'RSiteSearch', 'rtags', 'Rtangle', 'RtangleSetup',
        +            'RtangleWritedoc', 'RweaveChunkPrefix', 'RweaveEvalWithOpt', 'RweaveLatex', 'RweaveLatexFinish', 'RweaveLatexOptions',
        +            'RweaveLatexSetup', 'RweaveLatexWritedoc', 'RweaveTryStop', 'savehistory', 'select.list', 'sessionInfo',
        +            'setRepositories', 'setTxtProgressBar', 'stack', 'Stangle', 'str', 'strOptions', 'summaryRprof', 'Sweave',
        +            'SweaveHooks', 'SweaveSyntaxLatex', 'SweaveSyntaxNoweb', 'SweaveSyntConv', 'tail', 'tail.matrix', 'timestamp',
        +            'toBibtex', 'toLatex', 'txtProgressBar', 'type.convert', 'unstack', 'unzip', 'update.packages', 'update.packageStatus',
        +            'upgrade', 'url.show', 'URLdecode', 'URLencode', 'vi', 'View', 'vignette', 'write.csv', 'write.csv2', 'write.socket',
        +            'write.table', 'wsbrowser', 'xedit', 'xemacs', 'zip.file.extract',
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|','<-','->',
        +        '^', '-', ':', '::', ':::', '!', '!=', '*', '?',
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => true,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true,
        +        8 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000FF; font-weight: bold;',
        +            2 => 'color: #0000FF; font-weight: bold;',
        +            3 => 'color: #CC9900; font-weight: bold;',
        +            4 => 'color: #0000FF; font-weight: bold;',
        +            5 => 'color: #0000FF; font-weight: bold;',
        +            6 => 'color: #0000FF; font-weight: bold;',
        +            7 => 'color: #0000FF; font-weight: bold;',
        +            8 => 'color: #0000FF; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #228B22;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #080;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => '',
        +            2 => ''
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #080;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color:#A020F0;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => ''            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => 'http://stat.ethz.ch/R-manual/R-devel/library/base/html/{FNAME}.html', // Base Package
        +        3 => 'http://stat.ethz.ch/R-manual/R-devel/library/datasets/html/{FNAME}.html', // Datasets
        +        4 => 'http://stat.ethz.ch/R-manual/R-devel/library/graphics/html/{FNAME}.html', // Graphics Package
        +        5 => 'http://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/{FNAME}.html', // grDevices
        +        6 => 'http://stat.ethz.ch/R-manual/R-devel/library/methods/html/{FNAME}.html', // methods
        +        7 => 'http://stat.ethz.ch/R-manual/R-devel/library/stats/html/{FNAME}.html', // stats
        +        8 => 'http://stat.ethz.ch/R-manual/R-devel/library/utils/html/{FNAME}.html' // utils
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        2 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        0 => array(
        +            GESHI_SEARCH => "([^\w])'([^\\n\\r']*)'",
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => "\\1'",
        +            GESHI_AFTER => "'"
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => "(?|^&\\.])(? "(?![a-zA-Z0-9_\|%\\-&;\\.])"
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/ruby.php b/Sources/geshi/ruby.php
        new file mode 100644
        index 0000000..f6eb1b1
        --- /dev/null
        +++ b/Sources/geshi/ruby.php
        @@ -0,0 +1,231 @@
        + 'Ruby',
        +    'COMMENT_SINGLE' => array(1 => "#"),
        +    'COMMENT_MULTI' => array("=begin" => "=end"),
        +    'COMMENT_REGEXP' => array(
        +        //Heredoc
        +        4 => '/<<\s*?(\w+)\\n.*?\\n\\1(?![a-zA-Z0-9])/si',
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"', '`','\''),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +                'alias', 'and', 'begin', 'break', 'case', 'class',
        +                'def', 'defined', 'do', 'else', 'elsif', 'end',
        +                'ensure', 'for', 'if', 'in', 'module', 'while',
        +                'next', 'not', 'or', 'redo', 'rescue', 'yield',
        +                'retry', 'super', 'then', 'undef', 'unless',
        +                'until', 'when', 'include'
        +            ),
        +        2 => array(
        +                '__FILE__', '__LINE__', 'false', 'nil', 'self', 'true',
        +                'return'
        +            ),
        +        3 => array(
        +                'Array', 'Float', 'Integer', 'String', 'at_exit',
        +                'autoload', 'binding', 'caller', 'catch', 'chop', 'chop!',
        +                'chomp', 'chomp!', 'eval', 'exec', 'exit', 'exit!', 'fail',
        +                'fork', 'format', 'gets', 'global_variables', 'gsub', 'gsub!',
        +                'iterator?', 'lambda', 'load', 'local_variables', 'loop',
        +                'open', 'p', 'print', 'printf', 'proc', 'putc', 'puts',
        +                'raise', 'rand', 'readline', 'readlines', 'require', 'select',
        +                'sleep', 'split', 'sprintf', 'srand', 'sub', 'sub!', 'syscall',
        +                'system', 'trace_var', 'trap', 'untrace_var'
        +            ),
        +        4 => array(
        +                'Abbrev', 'ArgumentError', 'Base64', 'Benchmark',
        +                'Benchmark::Tms', 'Bignum', 'Binding', 'CGI', 'CGI::Cookie',
        +                'CGI::HtmlExtension', 'CGI::QueryExtension',
        +                'CGI::Session', 'CGI::Session::FileStore',
        +                'CGI::Session::MemoryStore', 'Class', 'Comparable', 'Complex',
        +                'ConditionVariable', 'Continuation', 'Data',
        +                'Date', 'DateTime', 'Delegator', 'Dir', 'EOFError', 'ERB',
        +                'ERB::Util', 'Enumerable', 'Enumerable::Enumerator', 'Errno',
        +                'Exception', 'FalseClass', 'File',
        +                'File::Constants', 'File::Stat', 'FileTest', 'FileUtils',
        +                'FileUtils::DryRun', 'FileUtils::NoWrite',
        +                'FileUtils::StreamUtils_', 'FileUtils::Verbose', 'Find',
        +                'Fixnum', 'FloatDomainError', 'Forwardable', 'GC', 'Generator',
        +                'Hash', 'IO', 'IOError', 'Iconv', 'Iconv::BrokenLibrary',
        +                'Iconv::Failure', 'Iconv::IllegalSequence',
        +                'Iconv::InvalidCharacter', 'Iconv::InvalidEncoding',
        +                'Iconv::OutOfRange', 'IndexError', 'Interrupt', 'Kernel',
        +                'LoadError', 'LocalJumpError', 'Logger', 'Logger::Application',
        +                'Logger::Error', 'Logger::Formatter', 'Logger::LogDevice',
        +                'Logger::LogDevice::LogDeviceMutex', 'Logger::Severity',
        +                'Logger::ShiftingError', 'Marshal', 'MatchData',
        +                'Math', 'Matrix', 'Method', 'Module', 'Mutex', 'NameError',
        +                'NameError::message', 'NilClass', 'NoMemoryError',
        +                'NoMethodError', 'NotImplementedError', 'Numeric', 'Object',
        +                'ObjectSpace', 'Observable', 'PStore', 'PStore::Error',
        +                'Pathname', 'Precision', 'Proc', 'Process', 'Process::GID',
        +                'Process::Status', 'Process::Sys', 'Process::UID', 'Queue',
        +                'Range', 'RangeError', 'Rational', 'Regexp', 'RegexpError',
        +                'RuntimeError', 'ScriptError', 'SecurityError', 'Set',
        +                'Shellwords', 'Signal', 'SignalException', 'SimpleDelegator',
        +                'SingleForwardable', 'Singleton', 'SingletonClassMethods',
        +                'SizedQueue', 'SortedSet', 'StandardError', 'StringIO',
        +                'StringScanner', 'StringScanner::Error', 'Struct', 'Symbol',
        +                'SyncEnumerator', 'SyntaxError', 'SystemCallError',
        +                'SystemExit', 'SystemStackError', 'Tempfile',
        +                'Test::Unit::TestCase', 'Test::Unit', 'Test', 'Thread',
        +                'ThreadError', 'ThreadGroup',
        +                'ThreadsWait', 'Time', 'TrueClass', 'TypeError', 'URI',
        +                'URI::BadURIError', 'URI::Error', 'URI::Escape', 'URI::FTP',
        +                'URI::Generic', 'URI::HTTP', 'URI::HTTPS',
        +                'URI::InvalidComponentError', 'URI::InvalidURIError',
        +                'URI::LDAP', 'URI::MailTo', 'URI::REGEXP',
        +                'URI::REGEXP::PATTERN', 'UnboundMethod', 'Vector', 'YAML',
        +                'ZeroDivisionError', 'Zlib',
        +                'Zlib::BufError', 'Zlib::DataError', 'Zlib::Deflate',
        +                'Zlib::Error', 'Zlib::GzipFile', 'Zlib::GzipFile::CRCError',
        +                'Zlib::GzipFile::Error', 'Zlib::GzipFile::LengthError',
        +                'Zlib::GzipFile::NoFooter', 'Zlib::GzipReader',
        +                'Zlib::GzipWriter', 'Zlib::Inflate', 'Zlib::MemError',
        +                'Zlib::NeedDict', 'Zlib::StreamEnd', 'Zlib::StreamError',
        +                'Zlib::VersionError',
        +                'Zlib::ZStream',
        +                'HTML::Selector', 'HashWithIndifferentAccess', 'Inflector',
        +                'Inflector::Inflections', 'Mime', 'Mime::Type',
        +                'OCI8AutoRecover', 'TimeZone', 'XmlSimple'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '%', '&', '*', '|', '/', '<', '>',
        +        '+', '-', '=>', '<<'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color:#9966CC; font-weight:bold;',
        +            2 => 'color:#0000FF; font-weight:bold;',
        +            3 => 'color:#CC0066; font-weight:bold;',
        +            4 => 'color:#CC00FF; font-weight:bold;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color:#008000; font-style:italic;',
        +            4 => 'color: #cc0000; font-style: italic;',
        +            'MULTI' => 'color:#000080; font-style:italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color:#000099;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color:#006600; font-weight:bold;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color:#996600;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color:#006666;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color:#9900CC;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color:#006600; font-weight:bold;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color:#ff6633; font-weight:bold;',
        +            1 => 'color:#0066ff; font-weight:bold;',
        +            2 => 'color:#6666ff; font-weight:bold;',
        +            3 => 'color:#ff3333; font-weight:bold;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            2 => '',
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        0 => array(//Variables
        +            GESHI_SEARCH => "([[:space:]])(\\$[a-zA-Z_][a-zA-Z0-9_]*)",
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            ),
        +        1 => array(//Arrays
        +            GESHI_SEARCH => "([[:space:]])(@[a-zA-Z_][a-zA-Z0-9_]*)",
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            ),
        +        2 => "([A-Z][a-zA-Z0-9_]*::)+[A-Z][a-zA-Z0-9_]*",//Static OOP symbols
        +        3 => array(
        +            GESHI_SEARCH => "([[:space:]]|\[|\()(:[a-zA-Z_][a-zA-Z0-9_]*)",
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(
        +        0 => array(
        +            '<%' => '%>'
        +            )
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true,
        +        ),
        +    'TAB_WIDTH' => 2
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/sas.php b/Sources/geshi/sas.php
        new file mode 100644
        index 0000000..dbf95a1
        --- /dev/null
        +++ b/Sources/geshi/sas.php
        @@ -0,0 +1,290 @@
        + 'SAS',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array('/*' => '*/', '*' => ';'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            '_ALL_','_CHARACTER_','_INFILE_','_N_','_NULL_','_NUMERIC_',
        +            '_WEBOUT_'
        +            ),
        +        2 => array(
        +            '%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',
        +            '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','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'
        +            ),
        +        6 => array(
        +            '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;',
        +            '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(//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(//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 => ''
        +            ),
        +        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(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/scala.php b/Sources/geshi/scala.php
        new file mode 100644
        index 0000000..405f59d
        --- /dev/null
        +++ b/Sources/geshi/scala.php
        @@ -0,0 +1,138 @@
        + 'Scala',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(2 => "/\\'(?!\w\\'|\\\\)\w+(?=\s)/"),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'",'"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'ESCAPE_REGEXP' => array(
        +        //Simple Single Char Escapes
        +        1 => "#\\\\[nfrtv\$\"\n\\\\]#i",
        +        //Hexadecimal Char Specs
        +        2 => "#\\\\x[\da-fA-F]{1,2}#i",
        +        //Hexadecimal Char Specs (unicode)
        +        3 => "#\\\\u[\da-fA-F]{1,4}#",
        +        //Hexadecimal Char Specs (Extended Unicode)
        +        4 => "#\\\\U[\da-fA-F]{1,8}#",
        +        ),
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'abstract', 'case', 'catch', 'class', 'def',
        +            'do', 'else', 'extends', 'false', 'final',
        +            'finally', 'for', 'forSome', 'if', 'implicit',
        +            'import', 'match', 'new', 'null', 'object',
        +            'override', 'package', 'private', 'protected', 'requires',
        +            'return', 'sealed', 'super', 'this', 'throw',
        +            'trait', 'try', 'true', 'type', 'val',
        +            'var', 'while', 'with', 'yield'
        +            ),
        +        2 => array(
        +            'void', 'double', 'int', 'boolean', 'byte', 'short', 'long', 'char', 'float'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '*', '&', '%', '!', ';', '<', '>', '?',
        +        '_', ':', '=', '=>', '<<:',
        +        '<%', '>:', '#', '@'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000ff; font-weight: bold;',
        +            2 => 'color: #9999cc; font-weight: bold;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008000; font-style: italic;',
        +            2 => 'color: #CC66FF;',
        +            'MULTI' => 'color: #00ff00; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #6666ff; font-weight: bold;',
        +            1 => 'color: #6666ff; font-weight: bold;',
        +            2 => 'color: #5555ff; font-weight: bold;',
        +            3 => 'color: #4444ff; font-weight: bold;',
        +            4 => 'color: #3333ff; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #F78811;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #6666FF;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #F78811;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #000000;',
        +            2 => 'color: #000000;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000080;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://scala-lang.org',
        +        2 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/scheme.php b/Sources/geshi/scheme.php
        new file mode 100644
        index 0000000..a84b908
        --- /dev/null
        +++ b/Sources/geshi/scheme.php
        @@ -0,0 +1,170 @@
        + 'Scheme',
        +    'COMMENT_SINGLE' => array(1 => ';'),
        +    'COMMENT_MULTI' => array('#|' => '|#'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'abs', 'acos', 'and', 'angle', 'append', 'appply', 'approximate',
        +            'asin', 'assoc', 'assq', 'assv', 'atan',
        +
        +            'begin', 'boolean?', 'bound-identifier=?',
        +
        +            'caar', 'caddr', 'cadr', 'call-with-current-continuation',
        +            'call-with-input-file', 'call-with-output-file', 'call/cc', 'car',
        +            'case', 'catch', 'cdddar', 'cddddr', 'cdr', 'ceiling', 'char->integer',
        +            'char-alphabetic?', 'char-ci<=?', 'char-ci=?',
        +            'char-ci>?', 'char-ci=?', 'char-downcase', 'char-lower-case?',
        +            'char-numeric', 'char-ready', 'char-ready?', 'char-upcase',
        +            'char-upper-case?', 'char-whitespace?', 'char<=?', 'char=?', 'char>?', 'char?', 'close-input-port', 'close-output-port',
        +            'complex?', 'cond', 'cons', 'construct-identifier', 'cos',
        +            'current-input-port', 'current-output-port',
        +
        +            'd', 'define', 'define-syntax', 'delay', 'denominator', 'display', 'do',
        +
        +            'e', 'eof-object?', 'eq?', 'equal?', 'eqv?', 'even?', 'exact->inexact',
        +            'exact?', 'exp', 'expt', 'else',
        +
        +            'f', 'floor', 'for-each', 'force', 'free-identifer=?',
        +
        +            'gcd', 'gen-counter', 'gen-loser', 'generate-identifier',
        +
        +            'identifier->symbol', 'identifier', 'if', 'imag-part', 'inexact->exact',
        +            'inexact?', 'input-port?', 'integer->char', 'integer?', 'integrate-system',
        +
        +            'l', 'lambda', 'last-pair', 'lcm', 'length', 'let', 'let*', 'letrec',
        +            'list', 'list->string', 'list->vector', 'list-ref', 'list-tail', 'list?',
        +            'load', 'log',
        +
        +            'magnitude', 'make-polar', 'make-promise', 'make-rectangular',
        +            'make-string', 'make-vector', 'map', 'map-streams', 'max', 'member',
        +            'memq', 'memv', 'min', 'modulo',
        +
        +            'negative', 'newline', 'nil', 'not', 'null?', 'number->string', 'number?',
        +            'numerator',
        +
        +            'odd?', 'open-input-file', 'open-output-file', 'or', 'output-port',
        +
        +            'pair?', 'peek-char', 'positive?', 'procedure?',
        +
        +            'quasiquote', 'quote', 'quotient',
        +
        +            'rational', 'rationalize', 'read', 'read-char', 'real-part', 'real?',
        +            'remainder', 'return', 'reverse',
        +
        +            's', 'sequence', 'set!', 'set-char!', 'set-cdr!', 'sin', 'sqrt', 'string',
        +            'string->list', 'string->number', 'string->symbol', 'string-append',
        +            'string-ci<=?', 'string-ci=?',
        +            'string-ci>?', 'string-copy', 'string-fill!', 'string-length',
        +            'string-ref', 'string-set!', 'string<=?', 'string=?', 'string>?', 'string?', 'substring', 'symbol->string',
        +            'symbol?', 'syntax', 'syntax-rules',
        +
        +            't', 'tan', 'template', 'transcript-off', 'transcript-on', 'truncate',
        +
        +            'unquote', 'unquote-splicing', 'unwrap-syntax',
        +
        +            'vector', 'vector->list', 'vector-fill!', 'vector-length', 'vector-ref',
        +            'vector-set!', 'vector?',
        +
        +            'with-input-from-file', 'with-output-to-file', 'write', 'write-char',
        +
        +            'zero?'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;'
        +            ),
        +        '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: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #202020;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/scilab.php b/Sources/geshi/scilab.php
        new file mode 100644
        index 0000000..f011497
        --- /dev/null
        +++ b/Sources/geshi/scilab.php
        @@ -0,0 +1,295 @@
        + 'SciLab',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(
        +        2 => "/(?<=\)|\]|\w)'/"
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'HARDQUOTE' => array("'", "'"),
        +    'HARDESCAPE' => array(),
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'if', 'else', 'elseif', 'end', 'select', 'case', 'for', 'while', 'break'
        +            ),
        +        2 => array(
        +            'STDIN', 'STDOUT', 'STDERR',
        +            '%i', '%pi', '%e', '%eps', '%nan', '%inf', '%s', '%t', '%f',
        +            'usual', 'polynomial', 'boolean', 'character', 'function', 'rational', 'state-space',
        +            'sparse', 'boolean sparse', 'list', 'tlist', 'library', 'endfunction'
        +            ),
        +        3 => array(
        +            '%asn', '%helps', '%k', '%sn', 'abcd', 'abinv', 'abort', 'about', 'About_M2SCI_tools',
        +            'abs', 'acos', 'acosh', 'acoshm', 'acosm', 'AdCommunications', 'add_demo', 'add_edge',
        +            'add_help_chapter', 'add_node', 'add_palette', 'addcolor', 'addf', 'addinter', 'addmenu',
        +            'adj_lists', 'adj2sp', 'aff2ab', 'alufunctions', 'amell', 'analpf', 'analyze', 'and',
        +            'ans', 'apropos', 'arc_graph', 'arc_number', 'arc_properties', 'argn', 'arhnk', 'arl2',
        +            'arma', 'arma2p', 'armac', 'armax', 'armax1', 'arsimul', 'artest', 'articul', 'ascii',
        +            'asciimat', 'asin', 'asinh', 'asinhm', 'asinm', 'assignation', 'atan', 'atanh', 'atanhm',
        +            'atanm', 'augment', 'auread', 'auwrite', 'axes_properties', 'axis_properties', 'backslash',
        +            'balanc', 'balreal', 'bandwr', 'banner','bar', 'barh', 'barhomogenize', 'basename', 'bdiag',
        +            'beep', 'besselh', 'besseli', 'besselj', 'besselk', 'bessely', 'best_match', 'beta','bezout',
        +            'bifish', 'bilin', 'binomial', 'black', 'bloc2exp', 'bloc2ss', 'bode', 'bool2s',
        +            'boucle', 'brackets', 'browsevar', 'bsplin3val', 'bstap', 'buttmag', 'buttondialog',
        +            'bvode', 'bvodeS', 'c_link', 'cainv', 'calendar', 'calerf', 'calfrq', 'call', 'canon', 'casc',
        +            'cat', 'catch', 'ccontrg', 'cd', 'cdfbet', 'cdfbin', 'cdfchi', 'cdfchn', 'cdff', 'cdffnc',
        +            'cdfgam', 'cdfnbn', 'cdfnor', 'cdfpoi', 'cdft', 'ceil', 'cell', 'cell2mat', 'cellstr', 'center',
        +            'cepstrum', 'chain_struct', 'chaintest', 'champ', 'champ_properties', 'champ1', 'char', 'chart',
        +            'chartooem', 'chdir', 'cheb1mag', 'cheb2mag', 'check_graph', 'chepol', 'chfact', 'chol', 'chsolve',
        +            'circuit', 'classmarkov', 'clc', 'clean', 'clear', 'clear_pixmap', 'clearfun', 'clearglobal','clf',
        +            'clipboard', 'close', 'cls2dls', 'cmb_lin', 'cmndred', 'cmoment', 'code2str', 'coeff', 'coff', 'coffg',
        +            'colcomp', 'colcompr', 'colinout', 'colon', 'color', 'color_list', 'colorbar', 'colordef', 'colormap',
        +            'colregul', 'comma', 'comments', 'comp', 'companion', 'comparison', 'Compound_properties', 'con_nodes',
        +            'cond', 'config', 'configure_msvc', 'conj', 'connex', 'console', 'cont_frm', 'cont_mat', 'Contents',
        +            'continue', 'contour', 'contour2d', 'contour2di', 'contourf', 'contr', 'contract_edge', 'contrss',
        +            'convex_hull', 'convol', 'convstr', 'copfac', 'copy', 'corr', 'correl', 'cos', 'cosh', 'coshm',
        +            'cosm', 'cotg', 'coth', 'cothm', 'covar', 'create_palette', 'cshep2d', 'csim', 'cspect', 'Cste',
        +            'ctr_gram', 'cumprod', 'cumsum', 'cycle_basis', 'czt', 'dasrt', 'dassl', 'datafit', 'date', 'datenum',
        +            'datevec', 'dbphi', 'dcf', 'ddp', 'debug', 'dec2hex', 'deff', 'definedfields', 'degree', 'delbpt',
        +            'delete', 'delete_arcs', 'delete_nodes', 'delip', 'delmenu', 'demoplay', 'denom', 'derivat', 'derivative',
        +            'des2ss', 'des2tf', 'det', 'determ', 'detr', 'detrend', 'dft', 'dhinf', 'dhnorm', 'diag', 'diary',
        +            'diff', 'diophant', 'dir', 'dirname', 'disp', 'dispbpt', 'dispfiles', 'dlgamma', 'dnaupd', 'do', 'dot',
        +            'double', 'dragrect', 'draw', 'drawaxis', 'drawlater', 'drawnow', 'driver', 'dsaupd', 'dscr',
        +            'dsearch', 'dsimul', 'dt_ility', 'dtsi', 'edge_number', 'edit', 'edit_curv', 'edit_error',
        +            'edit_graph', 'edit_graph_menus', 'editvar', 'eigenmarkov', 'ell1mag',
        +            'empty', 'emptystr', 'eqfir', 'eqiir', 'equal', 'Equal', 'equil', 'equil1',
        +            'ereduc', 'erf', 'erfc', 'erfcx', 'errbar', 'errcatch', 'errclear', 'error', 'error_table', 'etime',
        +            'eval', 'eval_cshep2d', 'eval3d', 'eval3dp', 'evans', 'evstr', 'excel2sci', 'exec', 'execstr', 'exists',
        +            'exit', 'exp', 'expm', 'external', 'extraction', 'eye', 'fac3d', 'factorial', 'factors', 'faurre', 'fchamp',
        +            'fcontour', 'fcontour2d', 'fec', 'fec_properties', 'feedback', 'feval', 'ffilt', 'fft', 'fft2', 'fftshift',
        +            'fgrayplot', 'figure', 'figure_properties', 'figure_style', 'file', 'fileinfo', 'fileparts', 'filter', 'find',
        +            'find_freq', 'find_path', 'findABCD', 'findAC', 'findBD', 'findBDK', 'findm', 'findmsvccompiler', 'findobj',
        +            'findR', 'findx0BD', 'firstnonsingleton', 'fit_dat', 'fix', 'floor', 'flts', 'foo', 'format',
        +            'formatman', 'fort', 'fourplan', 'fplot2d', 'fplot3d', 'fplot3d1', 'fprintf', 'fprintfMat', 'frep2tf',
        +            'freq', 'freson', 'frexp', 'frfit', 'frmag', 'fscanf', 'fscanfMat', 'fsfirlin', 'fsolve', 'fspecg',
        +            'fstabst', 'fstair', 'ftest', 'ftuneq', 'full', 'fullfile', 'fullrf', 'fullrfk', 'fun2string', 'Funcall',
        +            'funcprot', 'functions', 'funptr', 'fusee', 'G_make', 'g_margin', 'gainplot', 'gamitg',
        +            'gamma', 'gammaln', 'gca', 'gcare', 'gcd', 'gce', 'gcf', 'gda', 'gdf', 'gen_net', 'genfac3d', 'genlib',
        +            'genmarkov', 'geom3d', 'geomean', 'get', 'get_contents_infer', 'get_function_path', 'getcolor', 'getcwd',
        +            'getd', 'getdate', 'getenv', 'getf', 'getfield', 'getfont', 'gethistory', 'getio', 'getlinestyle',
        +            'getlongpathname', 'getmark', 'getmemory', 'getos', 'getpid', 'getscilabkeywords', 'getshell',
        +            'getshortpathname', 'getsymbol', 'getvalue', 'getversion', 'gfare', 'gfrancis', 'girth', 'givens',
        +            'glever', 'glist', 'global', 'GlobalProperty', 'glue', 'gmres', 'gpeche', 'gr_menu', 'graduate', 'grand',
        +            'graph_2_mat', 'graph_center', 'graph_complement', 'graph_diameter', 'graph_power', 'graph_simp', 'graph_sum',
        +            'graph_union', 'graphic', 'Graphics', 'graphics_entities', 'graph-list', 'graycolormap', 'grayplot',
        +            'grayplot_properties', 'graypolarplot', 'great', 'grep', 'group', 'gschur', 'gsort', 'gspec', 'gstacksize',
        +            'gtild', 'h_cl', 'h_inf', 'h_inf_st', 'h_norm', 'h2norm', 'halt', 'hamilton', 'hank', 'hankelsv', 'harmean',
        +            'hat', 'havewindow', 'head_comments', 'help', 'help_skeleton', 'hermit', 'hess', 'hex2dec', 'hilb', 'hinf',
        +            'hist3d', 'histplot', 'horner', 'host', 'hotcolormap', 'householder', 'hrmt', 'hsv2rgb', 'hsvcolormap',
        +            'htrianr', 'hypermat', 'hypermatrices', 'iconvert', 'ieee', 'ifft', 'iir', 'iirgroup', 'iirlp',
        +            'ilib_build', 'ilib_compile', 'ilib_for_link', 'ilib_gen_gateway', 'ilib_gen_loader', 'ilib_gen_Make',
        +            'im_inv', 'imag', 'impl', 'imrep2ss', 'imult', 'ind2sub', 'Infer', 'inistate', 'input', 'insertion', 'int',
        +            'int16', 'int2d', 'int32', 'int3d', 'int8', 'intc', 'intdec', 'integrate', 'interp', 'interp1', 'interp2d',
        +            'interp3d', 'interpln', 'intersci', 'intersect', 'intg', 'intl', 'intppty', 'intsplin', 'inttrap', 'inttype',
        +            'inv', 'inv_coeff', 'invr', 'invsyslin', 'iqr', 'is_connex', 'iscellstr', 'isdef', 'isdir', 'isempty',
        +            'isequal', 'isequalbitwise', 'iserror', 'isglobal', 'isinf', 'isnan', 'isoview', 'isreal', 'javasci',
        +            'jetcolormap', 'jmat', 'justify', 'kalm', 'karmarkar', 'kernel', 'keyboard', 'knapsack', 'kpure', 'krac2',
        +            'kron', 'kroneck', 'label_properties', 'labostat', 'LANGUAGE', 'lasterror', 'lattn', 'lattp', 'lcf', 'lcm',
        +            'lcmdiag', 'ldiv', 'ldivf', 'leastsq', 'left', 'legend', 'legend_properties', 'legendre', 'legends', 'length',
        +            'leqr', 'less', 'lev', 'levin', 'lex_sort', 'lft', 'lgfft', 'lib', 'lin', 'lin2mu', 'lindquist',
        +            'line_graph', 'linear_interpn', 'lines', 'LineSpec', 'linf', 'linfn', 'link', 'linmeq', 'linpro', 'linsolve',
        +            'linspace', 'listfiles', 'listvarinfile', 'lmisolver', 'lmitool', 'load', 'load_graph', 'loadhistory',
        +            'loadmatfile', 'loadplots', 'loadwave', 'locate', 'log', 'log10', 'log1p', 'log2', 'logm', 'logspace',
        +            'lotest', 'lqe', 'lqg', 'lqg_ltr', 'lqg2stan', 'lqr', 'ls', 'lsq', 'lsq_splin', 'lsqrsolve', 'lsslist',
        +            'lstcat', 'lstsize', 'ltitr', 'lu', 'ludel', 'lufact', 'luget', 'lusolve', 'lyap', 'm_circle', 'm2scideclare',
        +            'macglov', 'macr2lst', 'macr2tree', 'macro', 'macrovar', 'mad', 'make_graph', 'make_index', 'makecell', 'man',
        +            'manedit', 'mapsound', 'markp2ss', 'mat_2_graph', 'matfile2sci', 'Matlab-Scilab_character_strings', 'Matplot',
        +            'Matplot_properties', 'Matplot1', 'matrices', 'matrix', 'max', 'max_cap_path', 'max_clique', 'max_flow',
        +            'maxi', 'mcisendstring', 'mclearerr', 'mclose', 'mdelete', 'mean', 'meanf', 'median', 'menus', 'meof',
        +            'merror', 'mese', 'mesh', 'mesh2d', 'meshgrid', 'mfft', 'mfile2sci', 'mfprintf', 'mfscanf', 'mget', 'mgeti',
        +            'mgetl', 'mgetstr', 'milk_drop', 'min', 'min_lcost_cflow', 'min_lcost_flow1', 'min_lcost_flow2',
        +            'min_qcost_flow', 'min_weight_tree', 'mine', 'mini', 'minreal', 'minss', 'minus', 'mkdir', 'mlist', 'mode',
        +            'modulo', 'moment', 'mopen', 'move', 'mprintf', 'mps2linpro', 'mput', 'mputl', 'mputstr', 'mrfit', 'mscanf',
        +            'msd', 'mseek', 'msprintf', 'msscanf', 'mstr2sci', 'mtell', 'mtlb_0', 'mtlb_a', 'mtlb_all', 'mtlb_any',
        +            'mtlb_axis', 'mtlb_beta', 'mtlb_box', 'mtlb_close', 'mtlb_colordef', 'mtlb_conv', 'mtlb_cumprod', 'mtlb_cumsum',
        +            'mtlb_dec2hex', 'mtlb_delete', 'mtlb_diag', 'mtlb_diff', 'mtlb_dir', 'mtlb_double', 'mtlb_e', 'mtlb_echo',
        +            'mtlb_eig', 'mtlb_eval', 'mtlb_exist', 'mtlb_eye', 'mtlb_false', 'mtlb_fft', 'mtlb_fftshift', 'mtlb_find',
        +            'mtlb_findstr', 'mtlb_fliplr', 'mtlb_fopen', 'mtlb_format', 'mtlb_fprintf', 'mtlb_fread', 'mtlb_fscanf',
        +            'mtlb_full', 'mtlb_fwrite', 'mtlb_grid', 'mtlb_hold', 'mtlb_i', 'mtlb_ifft', 'mtlb_imp', 'mtlb_int16',
        +            'mtlb_int32', 'mtlb_int8', 'mtlb_is', 'mtlb_isa', 'mtlb_isfield', 'mtlb_isletter', 'mtlb_isspace', 'mtlb_l',
        +            'mtlb_legendre', 'mtlb_linspace', 'mtlb_load', 'mtlb_logic', 'mtlb_logical', 'mtlb_lower', 'mtlb_max',
        +            'mtlb_min', 'mtlb_mode', 'mtlb_more', 'mtlb_num2str', 'mtlb_ones', 'mtlb_plot', 'mtlb_prod', 'mtlb_rand',
        +            'mtlb_randn', 'mtlb_rcond', 'mtlb_realmax', 'mtlb_realmin', 'mtlb_repmat', 'mtlb_s', 'mtlb_save',
        +            'mtlb_setstr', 'mtlb_size', 'mtlb_sort', 'mtlb_sparse', 'mtlb_strcmp', 'mtlb_strcmpi', 'mtlb_strfind',
        +            'mtlb_strrep', 'mtlb_sum', 'mtlb_t', 'mtlb_toeplitz', 'mtlb_tril', 'mtlb_triu', 'mtlb_true', 'mtlb_uint16',
        +            'mtlb_uint32', 'mtlb_uint8', 'mtlb_upper', 'mtlb_zeros', 'mu2lin', 'mucomp', 'mulf', 'mvvacov', 'name2rgb',
        +            'names', 'nancumsum', 'nand2mean', 'nanmax', 'nanmean', 'nanmeanf', 'nanmedian', 'nanmin', 'nanstdev',
        +            'nansum', 'narsimul', 'NDcost', 'ndgrid', 'ndims', 'nearfloat', 'nehari', 'neighbors', 'netclose', 'netwindow',
        +            'netwindows', 'new', 'newaxes', 'newest', 'newfun', 'nextpow2', 'nf3d', 'nfreq', 'nlev', 'nnz', 'node_number',
        +            'nodes_2_path', 'nodes_degrees', 'noisegen', 'norm', 'not', 'null', 'number_properties', 'numdiff', 'numer',
        +            'nyquist', 'object_editor', 'obs_gram', 'obscont', 'obscont1', 'observer', 'obsv_mat', 'obsvss', 'ode',
        +            'ode_discrete', 'ode_optional_output', 'ode_root', 'odedc', 'odeoptions', 'oemtochar', 'old_style',
        +            'oldbesseli', 'oldbesselj', 'oldbesselk', 'oldbessely', 'oldload', 'oldplot', 'oldsave', 'ones',
        +            'Operation', 'optim', 'or', 'orth', 'overloading', 'p_margin', 'param3d', 'param3d_properties',
        +            'param3d1', 'paramfplot2d', 'parents', 'parrot', 'part', 'path_2_nodes', 'pathconvert', 'pause', 'pbig',
        +            'pca', 'pcg', 'pdiv', 'pen2ea', 'pencan', 'penlaur', 'percent', 'perctl', 'perfect_match', 'perl',
        +            'perms', 'permute', 'pertrans', 'pfss', 'phasemag', 'phc', 'pie', 'pinv', 'pipe_network', 'playsnd', 'plot',
        +            'plot_graph', 'plot2d', 'plot2d_old_version', 'plot2d1', 'plot2d2', 'plot2d3', 'plot2d4', 'plot3d',
        +            'plot3d_old_version', 'plot3d1', 'plot3d2', 'plot3d3', 'plotframe', 'plotprofile', 'plus', 'plzr',
        +            'pmodulo', 'pol2des', 'pol2str', 'pol2tex', 'polar', 'polarplot', 'polfact', 'poly', 'polyline_properties',
        +            'portr3d', 'portrait', 'power', 'ppol', 'prbs_a', 'predecessors', 'predef', 'print', 'printf',
        +            'printf_conversion', 'printing', 'printsetupbox', 'prod', 'profile', 'progressionbar', 'proj', 'projsl',
        +            'projspec', 'psmall', 'pspect', 'pvm', 'pvm_addhosts', 'pvm_barrier', 'pvm_bcast', 'pvm_bufinfo', 'pvm_config',
        +            'pvm_delhosts', 'pvm_error', 'pvm_exit', 'pvm_f772sci', 'pvm_get_timer', 'pvm_getinst', 'pvm_gettid',
        +            'pvm_gsize', 'pvm_halt', 'pvm_joingroup', 'pvm_kill', 'pvm_lvgroup', 'pvm_mytid', 'pvm_parent', 'pvm_probe',
        +            'pvm_recv', 'pvm_reduce', 'pvm_sci2f77', 'pvm_send', 'pvm_set_timer', 'pvm_spawn', 'pvm_spawn_independent',
        +            'pvm_start', 'pvm_tasks', 'pvm_tidtohost', 'pvmd3', 'pwd', 'qassign', 'qld', 'qmr', 'qr', 'quapro', 'quart',
        +            'quaskro', 'quit', 'quote', 'rand', 'randpencil', 'range', 'rank', 'rankqr', 'rat',  'rcond',
        +            'rdivf', 'read', 'read4b', 'readb', 'readc_', 'readmps', 'readxls', 'real', 'realtime', 'realtimeinit',
        +            'rectangle_properties', 'recur', 'reglin', 'regress', 'remez', 'remezb', 'repfreq', 'replot', 'resethistory',
        +            'residu', 'resume', 'return', 'rgb2name', 'ric_desc', 'ricc', 'riccati', 'rlist', 'rmdir', 'roots', 'rotate',
        +            'round', 'routh_t', 'rowcomp', 'rowcompr', 'rowinout', 'rowregul', 'rowshuff', 'rpem', 'rref', 'rtitr',
        +            'rubberbox', 'salesman', 'sample', 'samplef', 'samwr', 'save', 'save_format', 'save_graph', 'savehistory',
        +            'savematfile', 'savewave', 'sca', 'scaling', 'scanf', 'scanf_conversion', 'scf', 'schur', 'sci_files',
        +            'sci2exp', 'sci2for', 'sci2map', 'sciargs', 'SciComplex', 'SciComplexArray', 'SciDouble', 'SciDoubleArray',
        +            'scilab', 'Scilab', 'ScilabEval', 'scilink', 'scipad', 'SciString', 'SciStringArray', 'sd2sci', 'sda', 'sdf',
        +            'secto3d', 'segs_properties', 'semi', 'semicolon', 'semidef', 'sensi', 'set', 'set_posfig_dim',
        +            'setbpt', 'setdiff', 'setenv', 'seteventhandler', 'setfield', 'sethomedirectory', 'setlanguage', 'setmenu',
        +            'sfact', 'Sfgrayplot', 'Sgrayplot', 'sgrid', 'shortest_path', 'show_arcs', 'show_graph', 'show_nodes',
        +            'show_pixmap', 'showprofile', 'sident', 'sign', 'Signal', 'signm', 'simp', 'simp_mode', 'sin', 'sinc',
        +            'sincd', 'sinh', 'sinhm', 'sinm', 'size', 'slash', 'sleep', 'sm2des', 'sm2ss', 'smooth', 'solve',
        +            'sorder', 'sort', 'sound', 'soundsec', 'sp2adj', 'spaninter', 'spanplus', 'spantwo', 'spchol',
        +            'spcompack', 'spec', 'specfact', 'speye', 'spget', 'splin', 'splin2d', 'splin3d', 'split_edge', 'spones',
        +            'sprand', 'sprintf', 'spzeros', 'sqroot', 'sqrt', 'sqrtm', 'square', 'squarewave', 'srfaur', 'srkf', 'ss2des',
        +            'ss2ss', 'ss2tf', 'sscanf', 'sskf', 'ssprint', 'ssrand', 'st_deviation', 'st_ility', 'stabil', 'stacksize',
        +            'star', 'startup', 'stdev', 'stdevf', 'str2code', 'strange', 'strcat', 'strindex', 'string', 'stringbox',
        +            'strings', 'stripblanks', 'strong_con_nodes', 'strong_connex', 'strsplit', 'strsubst', 'struct', 'sub2ind',
        +            'subf', 'subgraph', 'subplot', 'successors', 'sum', 'supernode', 'surf', 'surface_properties', 'sva',
        +            'svd', 'svplot', 'sylm', 'sylv', 'symbols', 'sysconv', 'sysdiag', 'sysfact', 'syslin', 'syssize', 'system',
        +            'systems', 'systmat', 'tabul', 'tan', 'tangent', 'tanh', 'tanhm', 'tanm', 'TCL_CreateSlave', 'TCL_DeleteInterp',
        +            'TCL_EvalFile', 'TCL_EvalStr', 'TCL_ExistInterp', 'TCL_ExistVar', 'TCL_GetVar', 'TCL_GetVersion', 'TCL_SetVar',
        +            'TCL_UnsetVar', 'TCL_UpVar', 'tdinit', 'testmatrix', 'texprint', 'text_properties', 'tf2des', 'tf2ss', 'then',
        +            'thrownan', 'tic', 'tilda', 'time_id', 'timer', 'title', 'titlepage', 'TK_EvalFile', 'TK_EvalStr', 'tk_getdir',
        +            'tk_getfile', 'TK_GetVar', 'tk_savefile', 'TK_SetVar',  'toc', 'toeplitz', 'tohome', 'tokenpos',
        +            'tokens', 'toolbar', 'toprint', 'trace', 'trans', 'trans_closure', 'translatepaths', 'tree2code', 'trfmod',
        +            'trianfml', 'tril', 'trimmean', 'trisolve', 'triu', 'try', 'trzeros', 'twinkle', 'type', 'Type', 'typename',
        +            'typeof', 'ui_observer', 'uicontrol', 'uimenu', 'uint16', 'uint32', 'uint8', 'ulink', 'unglue', 'union',
        +            'unique', 'unix', 'unix_g', 'unix_s', 'unix_w', 'unix_x', 'unobs', 'unsetmenu', 'unzoom', 'user', 'varargin',
        +            'varargout', 'Variable', 'variance', 'variancef', 'varn', 'vectorfind', 'waitbar', 'warning', 'wavread',
        +            'wavwrite', 'wcenter', 'wfir', 'what', 'where', 'whereami', 'whereis', 'who', 'who_user', 'whos',
        +            'wiener', 'wigner', 'winclose', 'window', 'winlist', 'winopen', 'winqueryreg', 'winsid', 'with_atlas',
        +            'with_gtk', 'with_javasci', 'with_pvm', 'with_texmacs', 'with_tk', 'writb', 'write', 'write4b', 'x_choices',
        +            'x_choose', 'x_dialog', 'x_matrix', 'x_mdialog', 'x_message', 'x_message_modeless', 'xarc', 'xarcs', 'xarrows',
        +            'xaxis', 'xbasc', 'xbasimp', 'xbasr', 'xchange', 'xclea', 'xclear', 'xclick', 'xclip', 'xdel', 'xend',
        +            'xfarc', 'xfarcs', 'xfpoly', 'xfpolys', 'xfrect', 'xget', 'xgetech', 'xgetfile', 'xgetmouse', 'xgraduate',
        +            'xgrid', 'xinfo', 'xinit', 'xlfont', 'xload', 'xls_open', 'xls_read', 'xmltohtml', 'xname', 'xnumb', 'xpause',
        +            'xpoly', 'xpolys', 'xrect', 'xrects', 'xrpoly', 'xs2bmp', 'xs2emf', 'xs2eps', 'xs2fig', 'xs2gif', 'xs2ppm',
        +            'xs2ps', 'xsave', 'xsegs', 'xselect', 'xset', 'xsetech', 'xsetm', 'xstring', 'xstringb', 'xstringl', 'xtape',
        +            'xtitle', 'yulewalk', 'zeropen', 'zeros', 'zgrid', 'zoom_rect', 'zpbutt', 'zpch1', 'zpch2', 'zpell'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '<', '>', '=',
        +        '!', '@', '~', '&', '|',
        +        '+','-', '*', '/', '%',
        +        ',', ';', '?', ':', "'"
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => true,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #000066;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => '',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            'HARD' => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;',
        +            'HARD' => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;',
        +            2 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #0000ff;',
        +            4 => 'color: #009999;',
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://www.scilab.org/product/dic-mat-sci/M2SCI_doc.htm',
        +        2 => 'http://www.scilab.org/product/dic-mat-sci/M2SCI_doc.htm',
        +        3 => 'http://www.scilab.org/product/dic-mat-sci/M2SCI_doc.htm'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '->',
        +        2 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        //Variable
        +        0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*',
        +        //File Descriptor
        +        4 => '<[a-zA-Z_][a-zA-Z0-9_]*>',
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/sdlbasic.php b/Sources/geshi/sdlbasic.php
        new file mode 100644
        index 0000000..381161f
        --- /dev/null
        +++ b/Sources/geshi/sdlbasic.php
        @@ -0,0 +1,165 @@
        + 'sdlBasic',
        +    'COMMENT_SINGLE' => array(1 => "'", 2 => "rem", 3 => "!", 4 => "#"),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'const', 'option', 'explicit', 'qbasic', 'include', 'argc',
        +            'argv', 'command', 'command$', 'run', 'shell', 'os', 'declare',
        +            'sub', 'function', 'return', 'while', 'wend', 'exit', 'end',
        +            'continue', 'if', 'then', 'else', 'elseif',
        +            'select', 'case', 'for', 'each', 'step',
        +            'next', 'to', 'dim', 'shared', 'common', 'lbound', 'bound',
        +            'erase', 'asc', 'chr', 'chr$', 'insert', 'insert$', 'instr', 'lcase',
        +            'lcase$', 'left', 'left$', 'len', 'length', 'ltrim', 'ltrim$', 'mid',
        +            'mid$', 'replace', 'replace$', 'replacesubstr', 'replacesubstr$',
        +            'reverse', 'reverse$', 'right', 'right$', 'rinstr', 'rtrim', 'rtrim$',
        +            'space', 'space$', 'str', 'str$', 'strf', 'strf$', 'string', 'string$',
        +            'tally', 'trim', 'trim$', 'typeof', 'typeof$', 'ucase', 'ucase$', 'val',
        +            'abs', 'acos', 'andbit', 'asin', 'atan', 'bitwiseand', 'bitwiseor',
        +            'bitwisexor', 'cos', 'exp', 'fix', 'floor', 'frac', 'hex', 'hex$', 'int',
        +            'log', 'min', 'max', 'orbit', 'randomize', 'rnd', 'round', 'sgn', 'sin',
        +            'sqr', 'tan', 'xorbit', 'open', 'as', 'file', 'input', 'close', 'output',
        +            'append', 'eof', 'fileexists', 'filecopy', 'filemove', 'filerename',
        +            'freefile', 'kill', 'loc', 'lof', 'readbyte', 'rename', 'seek',
        +            'writebyte', 'chdir', 'dir', 'dir$', 'direxists', 'dirfirst', 'dirnext',
        +            'mkdir', 'rmdir', 'print', 'date', 'date$', 'time', 'time$', 'ticks',
        +            'data', 'read', 'reservebank', 'freebank', 'copybank', 'loadbank',
        +            'savebank', 'setbank', 'sizebank', 'poke', 'doke', 'loke', 'peek', 'deek',
        +            'leek', 'memcopy', 'setdisplay', 'setcaption', 'caption', 'displaywidth',
        +            'displayheight', 'displaybpp', 'screen', 'directscreen', 'screenopen',
        +            'screenclose', 'screenclone', 'screencopy', 'screenfade', 'screenfadein',
        +            'screencrossfade', 'screenalpha', 'screenlock', 'screenunlock',
        +            'screenrect', 'xscreenrect', 'yscreenrect', 'wscreenrect', 'hscreenrect',
        +            'flagscreenrect', 'screenwidth', 'screenheight', 'offset', 'xoffset',
        +            'yoffset', 'cls', 'screenswap', 'autoback', 'setautoback',
        +            'dualplayfield', 'waitvbl', 'fps', 'rgb', 'enablepalette', 'color',
        +            'palette', 'colorcycling', 'ink', 'point', 'dot', 'plot', 'line', 'box',
        +            'bar', 'circle', 'fillcircle', 'ellipse', 'fillellipse', 'paint',
        +            'loadimage', 'saveimage', 'loadsound', 'savesound', 'loadmusic',
        +            'hotspot', 'setcolorkey', 'imageexists', 'imagewidth', 'imageheight',
        +            'deleteimage', 'copyimage', 'setalpha', 'zoomimage', 'rotateimage',
        +            'rotozoomimage', 'blt', 'pastebob', 'pasteicon', 'grab', 'spriteclip',
        +            'sprite', 'deletesprite', 'xsprite', 'ysprite', 'spritewidth',
        +            'spriteheight', 'frsprite', 'livesprite', 'spritehit', 'autoupdatesprite',
        +            'updatesprite', 'setbob', 'bob', 'deletebob', 'xbob', 'ybob', 'bobwidth',
        +            'bobheight', 'frbob', 'livebob', 'bobhit', 'autoupdatebob', 'updatebob',
        +            'text', 'setfont', 'textrender', 'pen', 'paper', 'prints', 'locate',
        +            'atx', 'aty', 'curson', 'cursoff', 'inputs', 'zoneinputs',
        +            'isenabledsound', 'soundexists', 'deletesound', 'copysound',
        +            'musicexists', 'playsound', 'volumesound', 'stopsound', 'pausesound',
        +            'resumesound', 'vumetersound', 'positionsound', 'soundchannels',
        +            'playmusic', 'positionmusic', 'stopmusic', 'fademusic', 'pausemusic',
        +            'resumemusic', 'rewindmusic', 'volumemusic', 'speedmusic', 'numdrivescd',
        +            'namecd', 'getfreecd', 'opencd', 'indrivecd', 'trackscd', 'curtrackcd',
        +            'curframecd', 'playcd', 'playtrackscd',
        +            'pausecd', 'resumecd', 'stopcd', 'ejectcd', 'closecd', 'tracktypecd',
        +            'tracklengthcd', 'trackoffsetcd', 'key', 'inkey', 'waitkey', 'xmouse',
        +            'ymouse', 'xmousescreen', 'ymousescreen', 'bmouse', 'changemouse',
        +            'locatemouse', 'mouseshow', 'mousehide', 'mousezone', 'numjoysticks',
        +            'namejoystick', 'numaxesjoystick', 'numballsjoystick', 'numhatsjoystick',
        +            'numbuttonsjoystick', 'getaxisjoystick', 'gethatjoystick',
        +            'getbuttonjoystick', 'xgetballjoystick', 'ygetballjoystick', 'joy',
        +            'bjoy', 'wait', 'timer', 'isenabledsock', 'getfreesock', 'opensock',
        +            'acceptsock', 'isserverready', 'connectsock', 'connectionreadysock',
        +            'isclientready', 'losesock', 'peeksock', 'readsock', 'readbytesock',
        +            'readlinesock', 'writesock', 'writebytesock', 'writelinesock',
        +            'getremoteip', 'getremoteport', 'getlocalip'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080;',
        +            2 => 'color: #808080;',
        +            3 => 'color: #808080;',
        +            4 => 'color: #808080;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/smalltalk.php b/Sources/geshi/smalltalk.php
        new file mode 100644
        index 0000000..5b61bad
        --- /dev/null
        +++ b/Sources/geshi/smalltalk.php
        @@ -0,0 +1,154 @@
        + 'Smalltalk',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array('"' => '"'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'"),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'self','super','true','false','nil'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '[', ']', '=' , ':=', '(', ')', '#'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #7f007f;'
        +            ),
        +        'COMMENTS' => array(
        +            'MULTI' => 'color: #007f00; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => ''
        +            ),
        +        'BRACKETS' => array(
        +            0 => ''
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #7f0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #7f0000;'
        +            ),
        +        'METHODS' => array(
        +            0 => ''
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000066; font-weight:bold;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #0000ff;',
        +            1 => 'color: #7f0000;',
        +            2 => 'color: #7f0000;',
        +            3 => 'color: #00007f;',
        +            5 => 'color: #00007f;',
        +            6 => 'color: #00007f;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        0 => array(
        +            GESHI_SEARCH => '([^a-zA-Z0-9_#<])([A-Z]+[a-zA-Z0-9_]*)(?!>)', //class names
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            ),
        +        1 => array(
        +            GESHI_SEARCH => '(#+)([a-zA-Z0-9_]+)', //symbols
        +            GESHI_REPLACE => '\\1\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        2 => array(
        +            GESHI_SEARCH => '(#\s*\([^)]*\))', //array symbols
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        3 => array(
        +            GESHI_SEARCH => '([a-zA-Z0-9_\s]+)', //temporary variables
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '|',
        +            GESHI_AFTER => '|'
        +            ),
        +        5 => array(
        +            GESHI_SEARCH => '([:(,=[.*\/+-]\s*(?!\d+\/))([a-zA-Z0-9_]+)', //message parameters, message receivers
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 's',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            ),
        +        6 => array(
        +            GESHI_SEARCH => '([a-zA-Z0-9_]+)(\s*:=)', //assignment targets
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '\\2'
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/smarty.php b/Sources/geshi/smarty.php
        new file mode 100644
        index 0000000..86e9d44
        --- /dev/null
        +++ b/Sources/geshi/smarty.php
        @@ -0,0 +1,192 @@
        + 'Smarty',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array('{*' => '*}'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            '$smarty', 'now', 'const', 'capture', 'config', 'section', 'foreach', 'template', 'version', 'ldelim', 'rdelim',
        +            'foreachelse', 'include', 'include_php', 'insert', 'if', 'elseif', 'else', 'php',
        +            'sectionelse', 'is_cached',
        +            ),
        +        2 => array(
        +            'capitalize', 'count_characters', 'cat', 'count_paragraphs', 'count_sentences', 'count_words', 'date_format',
        +            'default', 'escape', 'indent', 'lower', 'nl2br', 'regex_replace', 'replace', 'spacify', 'string_format',
        +            'strip', 'strip_tags', 'truncate', 'upper', 'wordwrap',
        +            ),
        +        3 => array(
        +            'counter', 'cycle', 'debug', 'eval', 'html_checkboxes', 'html_image', 'html_options',
        +            'html_radios', 'html_select_date', 'html_select_time', 'html_table', 'math', 'mailto', 'popup_init',
        +            'popup', 'textformat'
        +            ),
        +        4 => array(
        +            '$template_dir', '$compile_dir', '$config_dir', '$plugins_dir', '$debugging', '$debug_tpl',
        +            '$debugging_ctrl', '$autoload_filters', '$compile_check', '$force_compile', '$caching', '$cache_dir',
        +            '$cache_lifetime', '$cache_handler_func', '$cache_modified_check', '$config_overwrite',
        +            '$config_booleanize', '$config_read_hidden', '$config_fix_newlines', '$default_template_handler_func',
        +            '$php_handling', '$security', '$secure_dir', '$security_settings', '$trusted_dir', '$left_delimiter',
        +            '$right_delimiter', '$compiler_class', '$request_vars_order', '$request_use_auto_globals',
        +            '$error_reporting', '$compile_id', '$use_sub_dirs', '$default_modifiers', '$default_resource_type'
        +            ),
        +        5 => array(
        +            'append', 'append_by_ref', 'assign', 'assign_by_ref', 'clear_all_assign', 'clear_all_cache',
        +            'clear_assign', 'clear_cache', 'clear_compiled_tpl', 'clear_config', 'config_load', 'display',
        +            'fetch', 'get_config_vars', 'get_registered_object', 'get_template_vars',
        +            'load_filter', 'register_block', 'register_compiler_function', 'register_function',
        +            'register_modifier', 'register_object', 'register_outputfilter', 'register_postfilter',
        +            'register_prefilter', 'register_resource', 'trigger_error', 'template_exists', 'unregister_block',
        +            'unregister_compiler_function', 'unregister_function', 'unregister_modifier', 'unregister_object',
        +            'unregister_outputfilter', 'unregister_postfilter', 'unregister_prefilter', 'unregister_resource'
        +            ),
        +        6 => array(
        +            'name', 'file', 'scope', 'global', 'key', 'once', 'script',
        +            'loop', 'start', 'step', 'max', 'show', 'values', 'value', 'from', 'item'
        +            ),
        +        7 => array(
        +            'eq', 'neq', 'ne', 'lte', 'gte', 'ge', 'le', 'not', 'mod'
        +            ),
        +        8 => array(
        +            // some common php functions
        +            'isset', 'is_array', 'empty', 'count', 'sizeof'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '/', '=', '==', '!=', '>', '<', '>=', '<=', '!', '%'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        6 => false,
        +        7 => false,
        +        8 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0600FF;',        //Functions
        +            2 => 'color: #008000;',        //Modifiers
        +            3 => 'color: #0600FF;',        //Custom Functions
        +            4 => 'color: #804040;',        //Variables
        +            5 => 'color: #008000;',        //Methods
        +            6 => 'color: #6A0A0A;',        //Attributes
        +            7 => 'color: #D36900;',        //Text-based symbols
        +            8 => 'color: #0600FF;'        //php functions
        +            ),
        +        'COMMENTS' => array(
        +            'MULTI' => 'color: #008080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #D36900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #D36900;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => 'color: #808080; font-style: italic;',
        +            2 => 'color: #009000;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #00aaff;'
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://smarty.php.net/{FNAMEL}',
        +        2 => 'http://smarty.php.net/{FNAMEL}',
        +        3 => 'http://smarty.php.net/{FNAMEL}',
        +        4 => 'http://smarty.php.net/{FNAMEL}',
        +        5 => 'http://smarty.php.net/{FNAMEL}',
        +        6 => '',
        +        7 => 'http://smarty.php.net/{FNAMEL}',
        +        8 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        // variables
        +        0 => '\$[a-zA-Z][a-zA-Z0-9_]*'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
        +    'SCRIPT_DELIMITERS' => array(
        +        0 => array(
        +            '{' => '}'
        +            ),
        +        1 => array(
        +            '',
        +        ),
        +        2 => array(
        +            '<' => '>'
        +            )
        +    ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true,
        +        1 => false,
        +        2 => false
        +    ),
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => "(?|^])",
        +            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-&])"
        +        )
        +    )
        +);
        +
        +?>
        diff --git a/Sources/geshi/spark.php b/Sources/geshi/spark.php
        new file mode 100644
        index 0000000..0284a1a
        --- /dev/null
        +++ b/Sources/geshi/spark.php
        @@ -0,0 +1,132 @@
        + 'SPARK',
        +    'COMMENT_SINGLE' => array(1 => '--', 2 => '--#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'begin', 'declare', 'do', 'else', 'elsif', 'exception', 'for', 'if',
        +            'is', 'loop', 'while', 'then', 'end', 'select', 'case', 'until',
        +            'goto', 'return'
        +            ),
        +        2 => array(
        +            'abs', 'and', 'at', 'mod', 'not', 'or', 'rem', 'xor'
        +            ),
        +        3 => array(
        +            'abort', 'abstract', 'accept', 'access', 'aliased', 'all', 'array',
        +            'body', 'constant', 'delay', 'delta', 'digits', 'entry', 'exit',
        +            'function', 'generic', 'in', 'interface', 'limited', 'new', 'null',
        +            'of', 'others', 'out', 'overriding', 'package', 'pragma', 'private',
        +            'procedure', 'protected', 'raise', 'range', 'record', 'renames',
        +            'requeue', 'reverse', 'separate', 'subtype', 'synchronized',
        +            'tagged', 'task', 'terminate', 'type', 'use', 'when', 'with'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #00007f;',
        +            2 => 'color: #0000ff;',
        +            3 => 'color: #46aa03; font-weight:bold;',
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #adadad; font-style: italic;',
        +            2 => 'color: #adadad; font-style: italic; font-weight: bold;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #7f007f;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #202020;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/sparql.php b/Sources/geshi/sparql.php
        new file mode 100644
        index 0000000..282165a
        --- /dev/null
        +++ b/Sources/geshi/sparql.php
        @@ -0,0 +1,155 @@
        + 'SPARQL',
        +    'COMMENT_SINGLE' => array('#'),
        +    'COMMENT_MULTI' => array('/*' => '*/' ),
        +    'COMMENT_REGEXP' => array(
        +        //IRI (it's not a comment ;)
        +        1 => "/<[^> ]*>/i"
        +        ),
        +    'CASE_KEYWORDS' => 1,
        +    'QUOTEMARKS' => array("'", '"', '`'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'BASE','PREFIX','SELECT','DISTINCT','REDUCED','CONSTRUCT','DESCRIBE','ASK','FROM',
        +            'NAMED','WHERE','ORDER','BY','ASC','DESC','LIMIT','OFFSET','OPTIONAL','GRAPH',
        +            'UNION','FILTER','STR','LANG','LANGMATCHES','DATATYPE','BOUND','SAMETERM',
        +            'ISIRI','ISURI','ISBLANK',
        +            'ISLITERAL','REGEX','SUBSTR','TRUE',
        +            'FALSE','LOAD','CLEAR',
        +            'DROP','ADD','MOVE','COPY',
        +            'CREATE','DELETE','INSERT',
        +            'USING','SILENT','DEFAULT','ALL',
        +            'DATA','WITH','INTO','TO',
        +            'AS','GROUP','HAVING','UNDEF',
        +            'BINDINGS','SERVICE','BIND','MINUS_KEYWORD',
        +            'IRI','URI', 'BNODE',
        +            'RAND','ABS','CEIL','FLOOR','ROUND',
        +            'CONCAT','STRLEN',
        +            'UCASE','LCASE','ENCODE_FOR_URI',
        +            'CONTAINS','STRSTARTS',
        +            'STRENDS','STRBEFORE',
        +            'STRAFTER','REPLACE',
        +            'YEAR','MONTH',
        +            'DAY','HOURS',
        +            'MINUTES','SECONDS',
        +            'TIMEZONE','TZ',
        +            'NOW','MD5',
        +            'SHA1','SHA224',
        +            'SHA256','SHA384',
        +            'SHA512','COALESCE',
        +            'IF','STRLANG','STRDT',
        +            'ISNUMERIC','COUNT',
        +            'SUM','MIN',
        +            'MAX','AVG','SAMPLE',
        +            'GROUP_CONCAT ','NOT',
        +            'IN','EXISTS','SEPARATOR'
        +            )
        +        ),
        +    'REGEXPS' => array(
        +        //Variables without braces
        +        1 => "\\?[a-zA-Z_][a-zA-Z0-9_]*",
        +        //prefix
        +        2 => "[a-zA-Z_.\\-0-9]*:",
        +        //tag lang
        +        3 => "@[^ .)}]*",
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array(
        +            '{', '}' , '.', ';'
        +            ),
        +        1 => array(
        +            '^^',
        +            '<=','>=','!=','=','<','>','|',
        +            '&&','||',
        +            '(',')','[', ']',
        +            '+','-','*','!','/'
        +            ),
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #993333; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            0 => 'color: #808080; font-style: italic;',
        +            1 => 'color: #000078;',
        +            //2 => 'color: #808080; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #FF63C3;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #0000FF;',
        +            1 => 'color: #FF8000; font-weight: bold;'
        +            ),
        +        'SCRIPT' => array(),
        +        'REGEXPS' => array(
        +            1 => 'color: #007800;',
        +            2 => 'color: #780078;',
        +            3 => 'color: #005078;'
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array()
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/sql.php b/Sources/geshi/sql.php
        new file mode 100644
        index 0000000..4d08a51
        --- /dev/null
        +++ b/Sources/geshi/sql.php
        @@ -0,0 +1,165 @@
        + 'SQL',
        +    'COMMENT_SINGLE' => array(1 =>'--'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => 1,
        +    'QUOTEMARKS' => array("'", '"', '`'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'ADD', 'ALL', 'ALTER', 'AND', 'AS', 'ASC', 'AUTO_INCREMENT',
        +            'BEFORE', 'BEGIN', 'BETWEEN', 'BIGINT', 'BINARY', 'BLOB', 'BOOLEAN', 'BOTH', 'BY',
        +            'CALL', 'CASE', 'CAST', 'CEIL', 'CEILING', 'CHANGE', 'CHAR', 'CHAR_LENGTH', 'CHARACTER',
        +            'CHARACTER_LENGTH', 'CHECK', 'CLOB', 'COALESCE', 'COLLATE', 'COLUMN', 'COLUMNS',
        +            'CONNECT', 'CONSTRAINT', 'CONVERT', 'COUNT', 'CREATE', 'CROSS', 'CURRENT',
        +            'CURRENT_DATE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER',
        +            'DATA', 'DATABASE', 'DATABASES', 'DATE', 'DAY', 'DEC', 'DECIMAL', 'DECLARE',
        +            'DEFAULT', 'DELAYED', 'DELETE', 'DESC', 'DESCRIBE', 'DISTINCT', 'DOUBLE',
        +            'DOMAIN', 'DROP',
        +            'ELSE', 'ENCLOSED', 'END', 'ESCAPED', 'EXCEPT', 'EXEC', 'EXECUTE', 'EXISTS', 'EXP',
        +            'EXPLAIN', 'EXTRACT',
        +            'FALSE', 'FIELD', 'FIELDS', 'FILTER', 'FIRST', 'FLOAT', 'FLOOR', 'FLUSH', 'FOR',
        +            'FOREIGN', 'FROM', 'FULL', 'FUNCTION',
        +            'GET', 'GROUP', 'GROUPING', 'GO', 'GOTO', 'GRANT', 'GRANTED',
        +            'HAVING', 'HOUR',
        +            'IDENTIFIED', 'IDENTITY', 'IF', 'IGNORE', 'IN', 'INCREMENT', 'INDEX', 'INFILE', 'INNER',
        +            'INOUT', 'INPUT', 'INSERT', 'INT', 'INTEGER', 'INTERSECT', 'INTERSECTION', 'INTERVAL',
        +            'INTO', 'IS',
        +            'JOIN',
        +            'KEY', 'KEYS', 'KILL',
        +            'LANGUAGE', 'LARGE', 'LAST', 'LEADING', 'LEFT', 'LENGTH', 'LIKE', 'LIMIT', 'LINES', 'LOAD',
        +            'LOCAL', 'LOCK', 'LOW_PRIORITY', 'LOWER',
        +            'MATCH', 'MAX', 'MERGE', 'MIN', 'MINUTE', 'MOD', 'MODIFIES', 'MODIFY', 'MONTH',
        +            'NATIONAL', 'NATURAL', 'NCHAR', 'NEW', 'NEXT', 'NEXTVAL', 'NONE', 'NOT',
        +            'NULL', 'NULLABLE', 'NULLIF', 'NULLS', 'NUMBER', 'NUMERIC',
        +            'OF', 'OLD', 'ON', 'ONLY', 'OPEN', 'OPTIMIZE', 'OPTION',
        +            'OPTIONALLY', 'OR', 'ORDER', 'OUT', 'OUTER', 'OUTFILE', 'OVER',
        +            'POSITION', 'POWER', 'PRECISION', 'PREPARE', 'PRIMARY', 'PROCEDURAL', 'PROCEDURE',
        +            'READ', 'REAL', 'REF', 'REFERENCES', 'REFERENCING', 'REGEXP', 'RENAME', 'REPLACE',
        +            'RESULT', 'RETURN', 'RETURNS', 'REVOKE', 'RIGHT', 'RLIKE', 'ROLLBACK', 'ROW',
        +            'ROW_NUMBER', 'ROWS', 'RESTRICT', 'ROLE', 'ROUTINE', 'ROW_COUNT',
        +            'SAVEPOINT', 'SEARCH', 'SECOND', 'SECTION', 'SELECT', 'SELF', 'SEQUENCE',
        +            'SESSION', 'SET', 'SETVAL', 'SHOW', 'SIMILAR', 'SIZE', 'SMALLINT', 'SOME',
        +            'SONAME', 'SOURCE', 'SPACE', 'SQL', 'SQRT', 'START', 'STATUS',
        +            'STRAIGHT_JOIN', 'STRUCTURE', 'STYLE', 'SUBSTRING', 'SUM',
        +            'TABLE', 'TABLE_NAME', 'TABLES', 'TERMINATED', 'TEMPORARY', 'THEN', 'TIME',
        +            'TIMESTAMP', 'TO', 'TRAILING', 'TRANSACTION', 'TRIGGER', 'TRIM', 'TRUE', 'TRUNCATE',
        +            'TRUSTED', 'TYPE',
        +            'UNDER', 'UNION', 'UNIQUE', 'UNKNOWN', 'UNLOCK', 'UNSIGNED',
        +            'UPDATE', 'UPPER', 'USE', 'USER', 'USING',
        +            'VALUE', 'VALUES', 'VARCHAR', 'VARIABLES', 'VARYING', 'VIEW',
        +            'WHEN', 'WHERE', 'WITH', 'WITHIN', 'WITHOUT', 'WORK', 'WRITE',
        +            'XOR',
        +            'YEAR',
        +            'ZEROFILL'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '=', '<', '>', '|', ',', '.', '+', '-', '*', '/'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #993333; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            //2 => 'color: #808080; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/stonescript.php b/Sources/geshi/stonescript.php
        new file mode 100644
        index 0000000..2844e88
        --- /dev/null
        +++ b/Sources/geshi/stonescript.php
        @@ -0,0 +1,307 @@
        + 'StoneScript',
        +    'COMMENT_SINGLE' => array(1 => "--"),
        +    'COMMENT_MULTI' => array("--[[" => "]]"),
        +    'COMMENT_REGEXP' => array(
        +        4 => '/<<\s*?(\w+)\\n.*?\\n\\1(?![a-zA-Z0-9])/si',
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"', '`','\''),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        // Blue - General Keywords
        +        1 => array(
        +                'and', 'begin', 'break', 'do', 'else', 'elseif', 'end',
        +                'for', 'if', 'in', 'while', 'next', 'not', 'or', 'redo',
        +                'then', 'unless', 'until', 'when', 'false', 'nil', 'self',
        +                'true', 'local', 'this', 'return',
        +            ),
        +        // Dark Blue - Main API names
        +        2 => array(
        +                'animation', 'application', 'cache', 'camera', 'debug',
        +                'dynamics', 'group', 'hashtable', 'hud', 'input', 'light',
        +                'log', 'math', 'mesh', 'microphone', 'music', 'navigation',
        +                'network', 'object', 'pixelmap', 'projector', 'scene',
        +                'sensor', 'server', 'session', 'sfx', 'shape', 'sound',
        +                'string', 'system', 'table', 'user', 'video', 'xml',
        +                // Plugin API names
        +                'plasma', 'watersim',
        +                'winDirectories',
        +                'ActionSheet', 'Alert', 'Mail', 'Picker', 'StatusBar',
        +            ),
        +        // Constants
        +        // Can be commented out if performance is crucial -> then these keywords will appear in a slightly lighter color
        +        3 => array(
        +                //Animation
        +                'kPlaybackModeLoop', 'kPlaybackModeLoopMirrored', 'kPlaybackModeLoopReversed',
        +                'kPlaybackModeOnce', 'kPlaybackModeOnceReversed',
        +                //Application - Environment
        +                'kStatusLoading', 'kStatusReady', 'kStatusSaving', // 'kStatusNone'
        +                //Application - Options
        +                'kOptionAudioMasterVolume', 'kOptionAutomaticVirtualKeyboard', 'kOptionDynamicShadowsBufferCount',
        +                'kOptionDynamicShadowsBufferSize', 'kOptionDynamicShadowsConstantSampling', 'kOptionDynamicShadowsPCFSampleCount',
        +                'kOptionDynamicShadowsQuality', 'kOptionDynamicShadowsScreenSpaceBlur', 'kOptionFullscreen',
        +                'kOptionFullscreenHeight', 'kOptionFullscreenWidth', 'kOptionHardwareOcclusion',
        +                'kOptionMaxEventBouncesPerFrame', 'kOptionNetworkStreams', 'kOptionNetworkStreamsUseBrowser',
        +                'kOptionPrioritizeEventBounces', 'kOptionRenderingEnabled', 'kOptionShadersQuality',
        +                'kOptionSwapInterval', 'kOptionTerrainsQuality', 'kOptionTexturesAnisotropyLevel',
        +                'kOptionTexturesMipmapBias', 'kOptionTexturesQuality', 'kOptionViewportRotation',
        +                //Application - Resource Types
        +                'kResourceTypeAnimBank', 'kResourceTypeFont', 'kResourceTypeHUD',
        +                'kResourceTypeMaterial', 'kResourceTypeMesh', 'kResourceTypeParticle',
        +                'kResourceTypePixelMap', 'kResourceTypeSoundBank', 'kResourceTypeTexture',
        +                'kResourceTypeTextureClip', 'kResourceTypeTrail',
        +                //Cache
        +                'kPropertyHeight', 'kPropertySize', 'kPropertyWidth',
        +                //Dynamics
        +                'kAxisX', 'kAxisY', 'kAxisZ',
        +                'kTypeBox', 'kTypeCapsule', 'kTypeSphere',
        +                //HUD
        +                'kAddressingModeClamp', 'kAddressingModeRepeat', 'kAlignCenter', 'kAlignJustify','kAlignLeft', 'kAlignRight',
        +                'kAlignTop', 'kBlendModeAdd', 'kBlendModeDefault', 'kBlendModeModulate', 'kCaseFixed', 'kCaseVariable',
        +                'kCommandTypeCallAction', 'kCommandTypeCopyCheckStateToRegister', 'kCommandTypeCopyEditTextToRegister',
        +                'kCommandTypeCopyListItemTextToRegister', 'kCommandTypeCopyListLastSelectedItemToRegister',
        +                'kCommandTypeCopyProgressValueToRegister', 'kCommandTypeCopySliderValueToRegister', 'kCommandTypeCopyTagToRegister',
        +                'kCommandTypeEnterModalMode', 'kCommandTypeInterpolateBackgroundColor', 'kCommandTypeInterpolateBorderColor',
        +                'kCommandTypeInterpolateForegroundColor', 'kCommandTypeInterpolateHeight', 'kCommandTypeInterpolateOpacity',
        +                'kCommandTypeInterpolatePosition', 'kCommandTypeInterpolateProgressValue', 'kCommandTypeInterpolateRotation',
        +                'kCommandTypeInterpolateSize', 'kCommandTypeInterpolateWidth', 'kCommandTypeLeaveModalMode',
        +                'kCommandTypeMatchScreenSpaceBottomLeftCorner', 'kCommandTypeMatchScreenSpaceBottomRightCorner',
        +                'kCommandTypeMatchScreenSpaceCenter', 'kCommandTypeMatchScreenSpaceHeight', 'kCommandTypeMatchScreenSpaceTopLeftCorner',
        +                'kCommandTypeMatchScreenSpaceTopRightCorner', 'kCommandTypeMatchScreenSpaceWidth', 'kCommandTypePauseMovie',
        +                'kCommandTypePauseSound', 'kCommandTypePauseTimer', 'kCommandTypePlayMovie', 'kCommandTypePlaySound',
        +                'kCommandTypePlaySoundLoop', 'kCommandTypeResumeSound', 'kCommandTypeSendEventToUser', 'kCommandTypeSetActive',
        +                'kCommandTypeSetBackgroundColor', 'kCommandTypeSetBackgroundImage', 'kCommandTypeSetBackgroundImageUVOffset',
        +                'kCommandTypeSetBackgroundImageUVScale', 'kCommandTypeSetBorderColor', 'kCommandTypeSetButtonText',
        +                'kCommandTypeSetCheckState', 'kCommandTypeSetCheckText', 'kCommandTypeSetCursorPosition', 'kCommandTypeSetCursorVisible',
        +                'kCommandTypeSetEditText', 'kCommandTypeSetFocus', 'kCommandTypeSetForegroundColor', 'kCommandTypeSetHeight',
        +                'kCommandTypeSetLabelText', 'kCommandTypeSetOpacity', 'kCommandTypeSetPosition', 'kCommandTypeSetRotation',
        +                'kCommandTypeSetSize', 'kCommandTypeSetVisible', 'kCommandTypeSetWidth', 'kCommandTypeSleep', 'kCommandTypeStartTimer',
        +                'kCommandTypeStopAction', 'kCommandTypeStopMovie', 'kCommandTypeStopSound', 'kCommandTypeStopTimer',
        +                'kComponentTypeButton', 'kComponentTypeCheck', 'kComponentTypeContainer', 'kComponentTypeEdit', 'kComponentTypeLabel',
        +                'kComponentTypeList', 'kComponentTypeMovie', 'kComponentTypePicture', 'kComponentTypePixelMap', 'kComponentTypeProgress',
        +                'kComponentTypeRenderMap', 'kComponentTypeSlider', 'kCursorShapeCross', 'kCursorShapeDefault', 'kCursorShapeHandPointing',
        +                'kCursorShapeIBeam', 'kCursorShapeNone', 'kCursorShapeWaiting', 'kDirectionLeftToRight', 'kDirectionRightToLeft',
        +                'kEncodingASCII', 'kEncodingUTF8', 'kEventTypeGainFocus', 'kEventTypeLooseFocus', 'kEventTypeMouseEnter',
        +                'kEventTypeMouseLeave', 'kFillModeSolid', 'kInterpolatorTypeLinear', 'kInterpolatorTypePower2', 'kInterpolatorTypePower3',
        +                'kInterpolatorTypePower4', 'kInterpolatorTypeRoot2', 'kInterpolatorTypeRoot3', 'kInterpolatorTypeRoot4',
        +                'kInterpolatorTypeSpring1', 'kInterpolatorTypeSpring2', 'kInterpolatorTypeSpring3', 'kInterpolatorTypeSpring4',
        +                'kInterpolatorTypeSpring5', 'kInterpolatorTypeSpring6',
        +                'kOriginBottom', 'kOriginBottomLeft', 'kOriginBottomRight', 'kOriginCenter', 'kOriginLeft', 'kOriginRight',
        +                'kOriginTop', 'kOriginTopLeft', 'kOriginTopRight', 'kProgressTypeBottomToTop', 'kProgressTypeLeftToRight',
        +                'kProgressTypeRightToLeft', 'kProgressTypeTopToBottom', 'kRuntimeValueCallArgument0', 'kRuntimeValueCallArgument1',
        +                'kRuntimeValueCallArgument2', 'kRuntimeValueCallArgument3', 'kRuntimeValueCurrentUser', 'kRuntimeValueCurrentUserMainCamera',
        +                'kRuntimeValueRegister0', 'kRuntimeValueRegister1', 'kRuntimeValueRegister2', 'kRuntimeValueRegister3',
        +                'kShapeTypeEllipsoid', 'kShapeTypeRectangle', 'kShapeTypeRoundRectangle', 'kSliderTypeBottomToTop',
        +                'kSliderTypeLeftToRight', 'kSliderTypeRightToLeft', 'kSliderTypeTopToBottom', 'kWaveTypeConstant',
        +                'kWaveTypeSawtooth', 'kWaveTypeSawtoothInv', 'kWaveTypeSinus', 'kWaveTypeSinusNoise', 'kWaveTypeSquare', 'kWaveTypeTriangle',
        +                //Input
        +                'kJoypadTypeIPhone', 'kJoypadTypeNone', 'kJoypadTypePhone', 'kJoypadTypeStandard', 'kJoypadTypeWiimote',
        +                'kKey0', 'kKey1', 'kKey2', 'kKey3', 'kKey4', 'kKey5', 'kKey6', 'kKey7', 'kKey8', 'kKey9', 'kKeyA', 'kKeyB',
        +                'kKeyBackspace', 'kKeyC', 'kKeyD', 'kKeyDelete', 'kKeyDown', 'kKeyE', 'kKeyEnd', 'kKeyEscape', 'kKeyF',
        +                'kKeyF1', 'kKeyF10', 'kKeyF11', 'kKeyF12', 'kKeyF2', 'kKeyF3', 'kKeyF4', 'kKeyF5', 'kKeyF6', 'kKeyF7',
        +                'kKeyF8', 'kKeyF9', 'kKeyG', 'kKeyH', 'kKeyHome', 'kKeyI', 'kKeyInsert', 'kKeyJ', 'kKeyK', 'kKeyL',
        +                'kKeyLAlt', 'kKeyLControl', 'kKeyLeft', 'kKeyLShift', 'kKeyM', 'kKeyN', 'kKeyO', 'kKeyP', 'kKeyPageDown',
        +                'kKeyPageUp', 'kKeyQ', 'kKeyR', 'kKeyRAlt', 'kKeyRControl', 'kKeyReturn', 'kKeyRight', 'kKeyRShift',
        +                'kKeyS', 'kKeySpace', 'kKeyT', 'kKeyTab', 'kKeyU', 'kKeyUp', 'kKeyV', 'kKeyW', 'kKeyX', 'kKeyY',
        +                'kKeyZ', 'kJoypadButtonPSPCircle', 'kJoypadButtonPSPCross', 'kJoypadButtonPSPDown', 'kJoypadButtonPSPL',
        +                'kJoypadButtonPSPLeft', 'kJoypadButtonPSPR', 'kJoypadButtonPSPRight', 'kJoypadButtonPSPSelect',
        +                'kJoypadButtonPSPSquare', 'kJoypadButtonPSPStart', 'kJoypadButtonPSPTriangle', 'kJoypadButtonPSPUp',
        +                'kJoypadTypePSP', 'kJoypadButtonWiimoteA', 'kJoypadButtonWiimoteB', 'kJoypadButtonWiimoteC',
        +                'kJoypadButtonWiimoteDown', 'kJoypadButtonWiimoteHome', 'kJoypadButtonWiimoteLeft',
        +                'kJoypadButtonWiimoteMinus', 'kJoypadButtonWiimoteOne', 'kJoypadButtonWiimotePlus',
        +                'kJoypadButtonWiimoteRight', 'kJoypadButtonWiimoteTwo', 'kJoypadButtonWiimoteUp', 'kJoypadButtonWiimoteZ',
        +                //Light
        +                'kTypeDirectional', 'kTypePoint',
        +                //Math
        +                'kEpsilon', 'kInfinity', 'kPi',
        +                //Mesh
        +                'kLockModeRead', 'kLockModeWrite', 'kLockReadWrite',
        +                //Network
        +                'kBluetoothServerPort', 'kDefaultServerPort', 'kStatusAuthenticated', 'kStatusSearchFinished', // 'kStatusNone', 'kStatusPending',
        +                //Object
        +                'kControllerTypeAI', 'kControllerTypeAnimation', 'kControllerTypeAny', 'kControllerTypeDynamics',
        +                'kControllerTypeNavigation', 'kControllerTypeSound', 'kGlobalSpace', 'kLocalSpace', 'kParentSpace',
        +                'kTransformOptionInheritsParentRotation', 'kTransformOptionInheritsParentScale', 'kTransformOptionInheritsParentTranslation',
        +                'kTransformOptionTranslationAffectedByParentRotation', 'kTransformOptionTranslationAffectedByParentScale', 'kTypeCamera',
        +                'kTypeCollider', 'kTypeDummy', 'kTypeGroup', 'kTypeLight', 'kTypeOccluder', 'kTypeProjector', 'kTypeReflector',
        +                'kTypeSensor', 'kTypeSfx', 'kTypeShape',
        +                //Pixelmap
        +                'kBlendModeDecal', 'kBlendModeReplace', 'kFillModeBrush', 'kFillModeNone', 'kPenModeBrush', // 'kFillModeSolid',
        +                'kPenModeNone', 'kPenModeSolid',
        +                //Projector
        +                'kMapTypeMovie', 'kMapTypePixelMap', 'kMapTypeRenderMap', 'kMapTypeTexture', 'kMapTypeTextureClip',
        +                //Scene
        +                'kFilteringModeBilinear', 'kFilteringModeNearest', 'kFilteringModeTrilinear', // 'kAddressingModeClamp', 'kAddressingModeRepeat',
        +                'kSkyBoxFaceBack', 'kSkyBoxFaceBottom', 'kSkyBoxFaceFront', 'kSkyBoxFaceLeft', 'kSkyBoxFaceRight', 'kSkyBoxFaceTop',
        +                //Sensor
        +                'kShapeTypeBox', 'kShapeTypeSphere',
        +                //Server
        +                'kStatusConnected', 'kStatusNone', 'kStatusPending',
        +                //Session - duplicate keywords
        +                //'kStatusConnected', 'kStatusNone', 'kStatusPending',
        +                //Shape
        +                'kMapTypeUnknown', 'kCurveTypeBezier', 'kCurveTypeBSpline', 'kCurveTypeCatmullRom', 'kCurveTypePolyLine',
        +                // 'kMapTypeMovie', 'kMapTypePixelMap', 'kMapTypeRenderMap', 'kMapTypeTexture',  'kMapTypeTextureClip',
        +
        +                //System
        +                'kOSType3DS', 'kOSTypeBada', 'kOSTypeBrew', 'kOSTypePalm', 'kOSTypePS3',
        +                'kClientTypeEditor', 'kClientTypeEmbedded', 'kClientTypeStandalone',
        +                'kGPUCapabilityBloomFilterSupport', 'kGPUCapabilityContrastFilterSupport', 'kGPUCapabilityDepthBlurFilterSupport',
        +                'kGPUCapabilityDistortionFilterSupport', 'kGPUCapabilityDynamicShadowsSupport', 'kGPUCapabilityHardwareOcclusionSupport',
        +                'kGPUCapabilityHardwareRenderingSupport', 'kGPUCapabilityMonochromeFilterSupport', 'kGPUCapabilityMotionBlurFilterSupport',
        +                'kGPUCapabilityPixelShaderSupport', 'kGPUCapabilityVelocityBlurFilterSupport', 'kGPUCapabilityVertexShaderSupport',
        +                'kLanguageAlbanian', 'kLanguageArabic', 'kLanguageBulgarian', 'kLanguageCatalan', 'kLanguageCzech', 'kLanguageDanish',
        +                'kLanguageDutch', 'kLanguageEnglish', 'kLanguageFinnish', 'kLanguageFrench', 'kLanguageGerman', 'kLanguageGreek',
        +                'kLanguageHebrew', 'kLanguageHungarian', 'kLanguageIcelandic', 'kLanguageItalian', 'kLanguageJapanese', 'kLanguageKorean',
        +                'kLanguageNorwegian', 'kLanguagePolish', 'kLanguagePortuguese', 'kLanguageRomanian', 'kLanguageRussian',
        +                'kLanguageSerboCroatian', 'kLanguageSlovak', 'kLanguageSpanish', 'kLanguageSwedish', 'kLanguageThai',
        +                'kLanguageTurkish', 'kLanguageUnknown', 'kLanguageUrdu', 'kOSTypeAndroid', 'kOSTypeAngstrom', 'kOSTypeIPhone',
        +                'kOSTypeLinux', 'kOSTypeMac', 'kOSTypePSP', 'kOSTypeSymbian', 'kOSTypeWii', 'kOSTypeWindows', 'kOSTypeWindowsCE',
        +            ),
        +        // Not used yet
        +        4 => array(
        +                'dummycommand',
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '%', '&', '*', '|', '/', '<', '>',
        +        '+', '-', '=>', '<<'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color:#0000FF; font-weight:bold;',
        +            2 => 'color:#000088; font-weight:bold;',
        +            3 => 'color:#C088C0; font-weight:bold;',
        +            4 => 'color:#00FEFE; font-weight:bold;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color:#008000; font-style:italic;',
        +            4 => 'color: #cc0000; font-style: italic;',
        +            'MULTI' => 'color:#008000; font-style:italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color:#000099;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color:#000000; font-weight:bold;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color:#888800;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color:#AA0000;'
        +            ),
        +        // names after "."
        +        'METHODS' => array(
        +            1 => 'color:#FF00FF; font-weight:bold;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color:#000000; font-weight:bold;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color:#ff6633; font-weight:bold;',
        +            1 => 'color:#0066ff; font-weight:bold;',
        +            2 => 'color:#6666ff; font-weight:bold;',
        +            3 => 'color:#ff3333; font-weight:bold;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            2 => '',
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        0 => array(//Variables
        +            GESHI_SEARCH => "([[:space:]])(\\$[a-zA-Z_][a-zA-Z0-9_]*)",
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            ),
        +        1 => array(//Arrays
        +            GESHI_SEARCH => "([[:space:]])(@[a-zA-Z_][a-zA-Z0-9_]*)",
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            ),
        +        2 => "([A-Z][a-zA-Z0-9_]*::)+[A-Z][a-zA-Z0-9_]*",//Static OOP symbols
        +        3 => array(
        +            GESHI_SEARCH => "([[:space:]]|\[|\()(:[a-zA-Z_][a-zA-Z0-9_]*)",
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(
        +        0 => array(
        +            '<%' => '%>'
        +            )
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true,
        +        ),
        +    'TAB_WIDTH' => 2
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/systemverilog.php b/Sources/geshi/systemverilog.php
        new file mode 100644
        index 0000000..f2ba92b
        --- /dev/null
        +++ b/Sources/geshi/systemverilog.php
        @@ -0,0 +1,317 @@
        +.
        + *
        + ************************************************************************
        + * Title:        SystemVerilog Language Keywords File for GeSHi
        + * Description:  This file contains the SV keywords defined in the
        + *               IEEE1800-2009 Draft Standard in the format expected by
        + *               GeSHi.
        + *
        + * Original Author: Sean O'Boyle
        + * Contact:         seanoboyle@intelligentdv.com
        + * Company:         Intelligent Design Verification
        + * Company URL:     http://intelligentdv.com
        + *
        + * Download the most recent version here:
        + *                  http://intelligentdv.com/downloads
        + *
        + * File Bugs Here:  http://bugs.intelligentdv.com
        + *        Project:  SyntaxFiles
        + *
        + * File: systemverilog.php
        + * $LastChangedBy: benbe $
        + * $LastChangedDate: 2012-08-18 01:56:20 +0200 (Sa, 18. Aug 2012) $
        + * $LastChangedRevision: 2542 $
        + *
        + ************************************************************************/
        +
        +$language_data = array (
        +    'LANG_NAME' => 'SystemVerilog',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        // system tasks
        +        1 => array(
        +            'acos','acosh','asin','asinh','assertfailoff','assertfailon',
        +            'assertkill','assertnonvacuouson','assertoff','asserton',
        +            'assertpassoff','assertpasson','assertvacuousoff','async$and$array',
        +            'async$and$plane','async$nand$array','async$nand$plane',
        +            'async$nor$array','async$nor$plane','async$or$array',
        +            'async$or$plane','atan','atan2','atanh','bits','bitstoreal',
        +            'bitstoshortreal','cast','ceil','changed','changed_gclk',
        +            'changing_gclk','clog2','cos','cosh','countones','coverage_control',
        +            'coverage_get','coverage_get_max','coverage_merge','coverage_save',
        +            'dimensions','display','displayb','displayh','displayo',
        +            'dist_chi_square','dist_erlang','dist_exponential','dist_normal',
        +            'dist_poisson','dist_t','dist_uniform','dumpall','dumpfile',
        +            'dumpflush','dumplimit','dumpoff','dumpon','dumpports',
        +            'dumpportsall','dumpportsflush','dumpportslimit','dumpportsoff',
        +            'dumpportson','dumpvars','error','exit','exp','falling_gclk',
        +            'fclose','fdisplay','fdisplayb','fdisplayh','fdisplayo','fell',
        +            'fell_gclk','feof','ferror','fflush','fgetc','fgets','finish',
        +            'floor','fmonitor','fmonitorb','fmonitorh','fmonitoro','fopen',
        +            'fread','fscanf','fseek','fstrobe','fstrobeb','fstrobeh','fstrobeo',
        +            'ftell','future_gclk','fwrite','fwriteb','fwriteh','fwriteo',
        +            'get_coverage','high','hypot','increment','info','isunbounded',
        +            'isunknown','itor','left','ln','load_coverage_db','log10','low',
        +            'monitor','monitorb','monitorh','monitoro','monitoroff','monitoron',
        +            'onehot','onehot0','past','past_gclk','pow','printtimescale',
        +            'q_add','q_exam','q_full','q_initialize','q_remove','random',
        +            'readmemb','readmemh','realtime','realtobits','rewind','right',
        +            'rising_gclk','rose','rose_gclk','rtoi','sampled',
        +            'set_coverage_db_name','sformat','sformatf','shortrealtobits',
        +            'signed','sin','sinh','size','sqrt','sscanf','stable','stable_gclk',
        +            'steady_gclk','stime','stop','strobe','strobeb','strobeh','strobeo',
        +            'swrite','swriteb','swriteh','swriteo','sync$and$array',
        +            'sync$and$plane','sync$nand$array','sync$nand$plane',
        +            'sync$nor$array','sync$nor$plane','sync$or$array','sync$or$plane',
        +            'system','tan','tanh','test$plusargs','time','timeformat',
        +            'typename','ungetc','unpacked_dimensions','unsigned',
        +            'value$plusargs','warning','write','writeb','writeh','writememb',
        +            'writememh','writeo',
        +            ),
        +        // compiler directives
        +        2 => array(
        +            '`__FILE__', '`__LINE__', '`begin_keywords', '`case', '`celldefine',
        +            '`endcelldefine', '`default_nettype', '`define', '`default', '`else',
        +            '`elsif', '`end_keywords', '`endfor', '`endif',
        +            '`endprotect', '`endswitch', '`endwhile', '`for', '`format',
        +            '`if', '`ifdef', '`ifndef', '`include', '`let',
        +            '`line', '`nounconnected_drive', '`pragma', '`protect', '`resetall',
        +            '`switch', '`timescale', '`unconnected_drive', '`undef', '`undefineall',
        +            '`while'
        +            ),
        +        // keywords
        +        3 => array(
        +            'assert', 'assume', 'cover', 'expect', 'disable',
        +            'iff', 'binsof', 'intersect', 'first_match', 'throughout',
        +            'within', 'coverpoint', 'cross', 'wildcard', 'bins',
        +            'ignore_bins', 'illegal_bins', 'genvar', 'if', 'else',
        +            'unique', 'priority', 'matches', 'default', 'forever',
        +            'repeat', 'while', 'for', 'do', 'foreach',
        +            'break', 'continue', 'return', 'pulsestyle_onevent', 'pulsestyle_ondetect',
        +            'noshowcancelled', 'showcancelled', 'ifnone', 'posedge', 'negedge',
        +            'edge', 'wait', 'wait_order', 'timeunit', 'timeprecision',
        +            's', 'ms', 'us', 'ns',
        +            'ps', 'fs', 'step', 'new', 'extends',
        +            'this', 'super', 'protected', 'local', 'rand',
        +            'randc', 'bind', 'constraint', 'solve', 'before',
        +            'dist', 'inside', 'with', 'virtual', 'extern',
        +            'pure', 'forkjoin', 'design', 'instance', 'cell',
        +            'liblist', 'use', 'library', 'incdir', 'include',
        +            'modport', 'sync_accept_on', 'reject_on', 'accept_on',
        +            'sync_reject_on', 'restrict', 'let', 'until', 'until_with',
        +            'unique0', 'eventually', 's_until', 's_always', 's_eventually',
        +            's_nexttime', 's_until_with', 'global', 'untyped', 'implies',
        +            'weak', 'strong', 'nexttime'
        +            ),
        +        // block keywords
        +        4 => array(
        +            'begin', 'end', 'package', 'endpackage', 'macromodule',
        +            'module', 'endmodule', 'generate', 'endgenerate', 'program',
        +            'endprogram', 'class', 'endclass', 'function', 'endfunction',
        +            'case', 'casex', 'casez', 'randcase', 'endcase',
        +            'interface', 'endinterface', 'clocking', 'endclocking', 'task',
        +            'endtask', 'primitive', 'endprimitive', 'fork', 'join',
        +            'join_any', 'join_none', 'covergroup', 'endgroup', 'checker',
        +            'endchecker', 'property', 'endproperty', 'randsequence', 'sequence',
        +            'endsequence', 'specify', 'endspecify', 'config', 'endconfig',
        +            'table', 'endtable', 'initial', 'final', 'always',
        +            'always_comb', 'always_ff', 'always_latch', 'alias', 'assign',
        +            'force', 'release'
        +            ),
        +
        +        // types
        +        5 => array(
        +            'parameter', 'localparam', 'specparam', 'input', 'output',
        +            'inout', 'ref', 'byte', 'shortint', 'int',
        +            'integer', 'longint', 'time', 'bit', 'logic',
        +            'reg', 'supply0', 'supply1', 'tri', 'triand',
        +            'trior', 'trireg', 'tri0', 'tri1', 'wire',
        +            'uwire', 'wand', 'wor', 'signed', 'unsigned',
        +            'shortreal', 'real', 'realtime', 'type', 'void',
        +            'struct', 'union', 'tagged', 'const', 'var',
        +            'automatic', 'static', 'packed', 'vectored', 'scalared',
        +            'typedef', 'enum', 'string', 'chandle', 'event',
        +            'null', 'pullup', 'pulldown', 'cmos', 'rcmos',
        +            'nmos', 'pmos', 'rnmos', 'rpmos', 'and',
        +            'nand', 'or', 'nor', 'xor', 'xnor',
        +            'not', 'buf', 'tran', 'rtran', 'tranif0',
        +            'tranif1', 'rtranif0', 'rtranif1', 'bufif0', 'bufif1',
        +            'notif0', 'notif1', 'strong0', 'strong1', 'pull0',
        +            'pull1', 'weak0', 'weak1', 'highz0', 'highz1',
        +            'small', 'medium', 'large'
        +            ),
        +
        +        // DPI
        +        6 => array(
        +            'DPI', 'DPI-C', 'import', 'export', 'context'
        +            ),
        +
        +        // stdlib
        +        7 => array(
        +            'randomize', 'mailbox', 'semaphore', 'put', 'get',
        +            'try_put', 'try_get', 'peek', 'try_peek', 'process',
        +            'state', 'self', 'status', 'kill', 'await',
        +            'suspend', 'resume', 'size', 'delete', 'insert',
        +            'num', 'first', 'last', 'next', 'prev',
        +            'pop_front', 'pop_back', 'push_front', 'push_back', 'find',
        +            'find_index', 'find_first', 'find_last', 'find_last_index', 'min',
        +            'max', 'unique_index', 'reverse', 'sort', 'rsort',
        +            'shuffle', 'sum', 'product', 'List', 'List_Iterator',
        +            'neq', 'eq', 'data', 'empty', 'front',
        +            'back', 'start', 'finish', 'insert_range', 'erase',
        +            'erase_range', 'set', 'swap', 'clear', 'purge'
        +            ),
        +
        +        // key_deprecated
        +        8 => array(
        +            'defparam', 'deassign', 'TODO'
        +        ),
        +
        +        ),
        +    'SYMBOLS' => array(
        +            '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%',
        +            '^', '&', '|', '~',
        +            '?', ':',
        +            '#', '<<', '<<<',
        +            '>', '<', '>=', '<=',
        +            '@', ';', ','
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true,
        +        8 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #996666; font-weight: bold;',
        +            2 => 'color: #336600; font-weight: bold;',
        +            3 => 'color: #996600; font-weight: bold;',
        +            4 => 'color: #000033; font-weight: bold;',
        +            5 => 'color: #330033; font-weight: bold;',
        +            6 => 'color: #996600; font-weight: bold;',
        +            7 => 'color: #CC9900; font-weight: bold;',
        +            8 => 'color: #990000; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #00008B; font-style: italic;',
        +            'MULTI' => 'color: #00008B; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #9F79EE'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #9F79EE;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #FF00FF;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #ff0055;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #202020;',
        +            2 => 'color: #202020;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #5D478B;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #ff0055;',
        +            1 => 'color: #ff0055;',
        +            2 => 'color: #ff0055;',
        +            3 => 'color: #ff0055;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            2 => '',
        +            3 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => '',
        +        7 => '',
        +        8 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => ''
        +        ),
        +    'REGEXPS' => array(
        +        // integer
        +        0 => "\d'[bdh][0-9_a-fA-FxXzZ]+",
        +        // realtime
        +        1 => "\d*\.\d+[munpf]?s",
        +        // time s, ms, us, ns, ps, of fs
        +        2 => "\d+[munpf]?s",
        +        // real
        +        3 => "\d*\.\d+"
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        0 => ''
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true
        +        ),
        +    'TAB_WIDTH' => 3,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            1 => array(
        +                'DISALLOWED_BEFORE' => '(?<=$)'
        +                )
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/tcl.php b/Sources/geshi/tcl.php
        new file mode 100644
        index 0000000..4dd7be8
        --- /dev/null
        +++ b/Sources/geshi/tcl.php
        @@ -0,0 +1,194 @@
        + 'TCL',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(
        +        1 => '/(? '/{[^}\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',
        +            // 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', 'filename', 'library', 'packagens', 'tcltest', 'tclvars',
        +            ),
        +
        +        /*
        +         * Set 4: special methods
        +         */
        +//        4 => array(
        +//            )
        +
        +        ),
        +    '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;',
        +//            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(
        +        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' => '\\'
        +        )
        +    )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/teraterm.php b/Sources/geshi/teraterm.php
        new file mode 100644
        index 0000000..f125642
        --- /dev/null
        +++ b/Sources/geshi/teraterm.php
        @@ -0,0 +1,354 @@
        + 'Tera Term Macro',
        +    'COMMENT_SINGLE' => array(1 => ';'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        /* Commands */
        +        1 => array(
        +            'Beep',
        +            'BplusRecv',
        +            'BplusSend',
        +            'Break',
        +            'Call',
        +            'CallMenu',
        +            'ChangeDir',
        +            'ClearScreen',
        +            'Clipb2Var',
        +            'ClosesBox',
        +            'CloseTT',
        +            'Code2Str',
        +            'Connect',
        +            'CRC32',
        +            'CRC32File',
        +            'CygConnect',
        +            'DelPassword',
        +            'Disconnect',
        +            'DispStr',
        +            'Do',
        +            'Else',
        +            'ElseIf',
        +            'EnableKeyb',
        +            'End',
        +            'EndIf',
        +            'EndUntil',
        +            'EndWhile',
        +            'Exec',
        +            'ExecCmnd',
        +            'Exit',
        +            'FileClose',
        +            'FileConcat',
        +            'FileCopy',
        +            'FileCreate',
        +            'FileDelete',
        +            'FileMarkPtr',
        +            'FileNameBox',
        +            'FileOpen',
        +            'FileRead',
        +            'FileReadln',
        +            'FileRename',
        +            'FileSearch',
        +            'FileSeek',
        +            'FileSeekBack',
        +            'FileStat',
        +            'FileStrSeek',
        +            'FileStrSeek2',
        +            'FileTruncate',
        +            'FileWrite',
        +            'FileWriteLn',
        +            'FindClose',
        +            'FindFirst',
        +            'FindNext',
        +            'FlushRecv',
        +            'For',
        +            'GetDate',
        +            'GetDir',
        +            'GetEnv',
        +            'GetHostname',
        +            'GetPassword',
        +            'GetTime',
        +            'GetTitle',
        +            'GetTTDir',
        +            'Getver',
        +            'GoTo',
        +            'If',
        +            'IfDefined',
        +            'Include',
        +            'InputBox',
        +            'Int2Str',
        +            'KmtFinish',
        +            'KmtGet',
        +            'KmtRecv',
        +            'KmtSend',
        +            'LoadKeymap',
        +            'LogClose',
        +            'LogOpen',
        +            'LogPause',
        +            'LogStart',
        +            'LogWrite',
        +            'Loop',
        +            'MakePath',
        +            'MessageBox',
        +            'MPause',
        +            'Next',
        +            'PasswordBox',
        +            'Pause',
        +            'QuickVANRecv',
        +            'QuickVANSend',
        +            'Random',
        +            'RecvLn',
        +            'RestoreSetup',
        +            'Return',
        +            'RotateLeft',
        +            'RotateRight',
        +            'ScpRecv',
        +            'ScpSend',
        +            'Send',
        +            'SendBreak',
        +            'SendBroadcast',
        +            'SendFile',
        +            'SendKCode',
        +            'SendLn',
        +            'SendLnBroadcast',
        +            'SendMulticast',
        +            'SetBaud',
        +            'SetDate',
        +            'SetDebug',
        +            'SetDir',
        +            'SetDlgPos',
        +            'SetDTR',
        +            'SetEcho',
        +            'SetEnv',
        +            'SetExitCode',
        +            'SetMulticastName',
        +            'SetRTS',
        +            'SetSync',
        +            'SetTime',
        +            'SetTitle',
        +            'Show',
        +            'ShowTT',
        +            'SPrintF',
        +            'SPrintF2',
        +            'StatusBox',
        +            'Str2Code',
        +            'Str2Int',
        +            'StrCompare',
        +            'StrConcat',
        +            'StrCopy',
        +            'StrInsert',
        +            'StrJoin',
        +            'StrLen',
        +            'StrMatch',
        +            'StrRemove',
        +            'StrReplace',
        +            'StrScan',
        +            'StrSpecial',
        +            'StrSplit',
        +            'StrTrim',
        +            'TestLink',
        +            'Then',
        +            'ToLower',
        +            'ToUpper',
        +            'UnLink',
        +            'Until',
        +            'Var2Clipb',
        +            'Wait',
        +            'Wait4All',
        +            'WaitEvent',
        +            'WaitLn',
        +            'WaitN',
        +            'WaitRecv',
        +            'WaitRegEx',
        +            'While',
        +            'XmodemRecv',
        +            'XmodemSend',
        +            'YesNoBox',
        +            'YmodemRecv',
        +            'YmodemSend',
        +            'ZmodemRecv',
        +            'ZmodemSend'
        +            ),
        +        /* System Variables */
        +        2 => array(
        +            'groupmatchstr1',
        +            'groupmatchstr2',
        +            'groupmatchstr3',
        +            'groupmatchstr4',
        +            'groupmatchstr5',
        +            'groupmatchstr6',
        +            'groupmatchstr7',
        +            'groupmatchstr8',
        +            'groupmatchstr9',
        +            'inputstr',
        +            'matchstr',
        +            'mtimeout',
        +            'param2',
        +            'param3',
        +            'param4',
        +            'param5',
        +            'param6',
        +            'param7',
        +            'param8',
        +            'param9',
        +            'result',
        +            'timeout'
        +            ),
        +        /* LogMeTT Key Words */
        +        3 => array(
        +            '$[1]',
        +            '$[2]',
        +            '$[3]',
        +            '$[4]',
        +            '$[5]',
        +            '$[6]',
        +            '$[7]',
        +            '$[8]',
        +            '$[9]',
        +            '$branch$',
        +            '$computername$',
        +            '$connection$',
        +            '$email$',
        +            '$logdir$',
        +            '$logfilename$',
        +            '$lttfilename$',
        +            '$mobile$',
        +            '$name$',
        +            '$pager$',
        +            '$parent$',
        +            '$phone$',
        +            '$snippet$',
        +            '$ttdir$',
        +            '$user$',
        +            '$windir$',
        +        ),
        +        /* Keyword Symbols */
        +        4 => array(
        +            'and',
        +            'not',
        +            'or',
        +            'xor'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}',
        +        '+', '-', '*', '/', '%',
        +        '!', '&', '|', '^',
        +        '<', '>', '=',
        +        '?', ':', ';',
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000080; font-weight: bold!important;',
        +            2 => 'color: #808000; font-weight: bold;',  // System Variables
        +            3 => 'color: #ff0000; font-weight: bold;',  // LogMeTT Key Words
        +            4 => 'color: #ff00ff; font-weight: bold;'   // Keyword Symbols
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008000; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(),
        +        'BRACKETS' => array(
        +            0 => 'color: #ff00ff; font-weight: bold;'
        +        ),
        +        'STRINGS' => array(
        +            0 => 'color: #800080;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #008080;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #ff00ff; font-weight: bold;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #0000ff; font-weight: bold;'
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(
        +        0 => array (
        +            GESHI_SEARCH => '(\:[_a-zA-Z][_a-zA-Z0-9]+)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/text.php b/Sources/geshi/text.php
        new file mode 100644
        index 0000000..87fb711
        --- /dev/null
        +++ b/Sources/geshi/text.php
        @@ -0,0 +1,84 @@
        + 'Text',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(),
        +    'SYMBOLS' => array(),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(),
        +        'COMMENTS' => array(),
        +        'ESCAPE_CHAR' => array(),
        +        'BRACKETS' => array(),
        +        'STRINGS' => array(),
        +        'NUMBERS' => array(),
        +        'METHODS' => array(),
        +        'SYMBOLS' => array(),
        +        'SCRIPT' => array(),
        +        'REGEXPS' => array()
        +        ),
        +    'URLS' => array(),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(),
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'ALL' => GESHI_NEVER
        +        ),
        +    )
        +);
        +
        +?>
        diff --git a/Sources/geshi/thinbasic.php b/Sources/geshi/thinbasic.php
        new file mode 100644
        index 0000000..f54959e
        --- /dev/null
        +++ b/Sources/geshi/thinbasic.php
        @@ -0,0 +1,868 @@
        + 'thinBasic',
        +    'COMMENT_SINGLE' => array(1 => "'"),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'XOR','XML_TREETOSTRING','XML_PARSEFILE','XML_PARSE','XML_PARENT','XML_NODETYPE','XML_NODETOSTRING','XML_NEXTSIBLING',
        +            'XML_LASTERROR','XML_GETTAG','XML_FREE','XML_FINDNODE','XML_DECODEPARAM','XML_CHILDDATA','XML_CHILD','XML_ATTRIBVALUE',
        +            'XML_ATTRIBNAME','XML_ATTRIBCOUNT','WORD','WITH','WIN_SHOW','WIN_SETTITLE','WIN_SETFOREGROUND','WIN_ISZOOMED',
        +            'WIN_ISVISIBLE','WIN_ISICONIC','WIN_GETTITLE','WIN_GETFOREGROUND','WIN_GETCLASS','WIN_GETACTIVE','WIN_FLASH','WIN_FINDBYTITLE',
        +            'WIN_FINDBYCLASS','WHILE','WEND','VERIFY','VARPTR','VARIANTVT$','VARIANTVT','VARIANT',
        +            'VARIABLE_GETINFO','VARIABLE_EXISTS','VARIABLE_EXIST','VALUE','VAL','USING$','USING','USES',
        +            'USER','UNTIL','UNITS','UNION','UNICODE2ASCII','UDP_SEND','UDP_RECV','UDP_OPENSERVER',
        +            'UDP_OPEN','UDP_FREEFILE','UDP_CLOSE','UCODE$','UCASE$','UBOUND','TYPE','TRIMFULL$',
        +            'TRIM$','TOOLTIP','TOKENIZER_MOVETOEOL','TOKENIZER_KEYSETUSERSTRING','TOKENIZER_KEYSETUSERNUMBER','TOKENIZER_KEYGETUSERSTRING','TOKENIZER_KEYGETUSERNUMBER','TOKENIZER_KEYGETSUBTYPE',
        +            'TOKENIZER_KEYGETNAME','TOKENIZER_KEYGETMAINTYPE','TOKENIZER_KEYFIND','TOKENIZER_KEYADD','TOKENIZER_GETNEXTTOKEN','TOKENIZER_DEFAULT_SET','TOKENIZER_DEFAULT_GET','TOKENIZER_DEFAULT_CODE',
        +            'TOKENIZER_DEFAULT_CHAR','TO','TIMER','TIME$','THEN','TEXTBOX','TEXT','TCP_SEND',
        +            'TCP_RECV','TCP_PRINT','TCP_OPEN','TCP_LINEINPUT','TCP_FREEFILE','TCP_CLOSE','TB_IMGCTX_SETIMAGEADJUSTMENT','TB_IMGCTX_LOADIMAGE',
        +            'TB_IMGCTX_GETIMAGEADJUSTMENT','TBGL_VIEWPORT','TBGL_VERTEX','TBGL_USETEXTUREFLAG','TBGL_USETEXTURE','TBGL_USELINESTIPPLEFLAG','TBGL_USELINESTIPPLE','TBGL_USELIGHTSOURCEFLAG',
        +            'TBGL_USELIGHTSOURCE','TBGL_USELIGHTINGFLAG','TBGL_USELIGHTING','TBGL_USEFOGFLAG','TBGL_USEFOG','TBGL_USEDEPTHMASK','TBGL_USEDEPTHFLAG','TBGL_USEDEPTH',
        +            'TBGL_USECLIPPLANEFLAG','TBGL_USECLIPPLANE','TBGL_USEBLENDFLAG','TBGL_USEBLEND','TBGL_USEALPHATEST','TBGL_TRANSLATE','TBGL_TORUS','TBGL_TEXCOORD2D',
        +            'TBGL_SPHERE','TBGL_SHOWWINDOW','TBGL_SHOWCURSOR','TBGL_SETWINDOWTITLE','TBGL_SETUPLIGHTSOURCE','TBGL_SETUPFOG','TBGL_SETUPCLIPPLANE','TBGL_SETPRIMITIVEQUALITY',
        +            'TBGL_SETLIGHTPARAMETER','TBGL_SETDRAWDISTANCE','TBGL_SCALE','TBGL_SAVESCREENSHOT','TBGL_ROTATEXYZ','TBGL_ROTATE','TBGL_RESETMATRIX','TBGL_RENDERTOTEXTURE',
        +            'TBGL_RENDERMATRIX3D','TBGL_RENDERMATRIX2D','TBGL_PUSHMATRIX','TBGL_PRINTFONT','TBGL_PRINTBMP','TBGL_PRINT','TBGL_POS3DTOPOS2D','TBGL_POPMATRIX',
        +            'TBGL_POLYGONLOOK','TBGL_POINTSIZE','TBGL_POINTINSIDE3D','TBGL_NORMAL','TBGL_NEWLIST','TBGL_MOUSEGETWHEELDELTA','TBGL_MOUSEGETRBUTTON','TBGL_MOUSEGETPOSY',
        +            'TBGL_MOUSEGETPOSX','TBGL_MOUSEGETMBUTTON','TBGL_MOUSEGETLBUTTON','TBGL_M15SETVERTEXZ','TBGL_M15SETVERTEXY','TBGL_M15SETVERTEXXYZ','TBGL_M15SETVERTEXX','TBGL_M15SETVERTEXTEXY',
        +            'TBGL_M15SETVERTEXTEXXY','TBGL_M15SETVERTEXTEXX','TBGL_M15SETVERTEXTEXN','TBGL_M15SETVERTEXRGB','TBGL_M15SETVERTEXR','TBGL_M15SETVERTEXPSTOP','TBGL_M15SETVERTEXPARAM','TBGL_M15SETVERTEXLAYER',
        +            'TBGL_M15SETVERTEXG','TBGL_M15SETVERTEXB','TBGL_M15SETMODELVERTEXCOUNT','TBGL_M15SETBONECHILD','TBGL_M15ROTBONEZ','TBGL_M15ROTBONEY','TBGL_M15ROTBONEX','TBGL_M15ROTBONE',
        +            'TBGL_M15RESETBONES','TBGL_M15RECALCNORMALS','TBGL_M15LOADMODEL','TBGL_M15INITMODELBUFFERS','TBGL_M15GETVERTEXZ','TBGL_M15GETVERTEXY','TBGL_M15GETVERTEXXYZ','TBGL_M15GETVERTEXX',
        +            'TBGL_M15GETVERTEXTEXY','TBGL_M15GETVERTEXTEXXY','TBGL_M15GETVERTEXTEXX','TBGL_M15GETVERTEXTEXN','TBGL_M15GETVERTEXRGB','TBGL_M15GETVERTEXR','TBGL_M15GETVERTEXPSTOP','TBGL_M15GETVERTEXPARAM',
        +            'TBGL_M15GETVERTEXLAYER','TBGL_M15GETVERTEXG','TBGL_M15GETVERTEXB','TBGL_M15GETMODELVERTEXCOUNT','TBGL_M15GETMODELPOLYCOUNT','TBGL_M15ERASECHILDBONES','TBGL_M15DRAWMODEL','TBGL_M15DEFBONERESET',
        +            'TBGL_M15DEFBONELAYER','TBGL_M15DEFBONEBOX','TBGL_M15DEFBONEANCHOR','TBGL_M15DEFBONEADDVERTEX','TBGL_M15CLEARMODEL','TBGL_M15APPLYBONES','TBGL_M15ADDBONETREEITEM','TBGL_LOADTEXTURE',
        +            'TBGL_LOADFONT','TBGL_LOADBMPFONT','TBGL_LINEWIDTH','TBGL_LINESTIPPLE','TBGL_KILLFONT','TBGL_ISWINDOW','TBGL_ISPOINTVISIBLE','TBGL_ISPOINTBEHINDVIEW',
        +            'TBGL_GETWINDOWMULTIKEYSTATE','TBGL_GETWINDOWKEYSTATE','TBGL_GETWINDOWKEYONCE','TBGL_GETWINDOWCLIENT','TBGL_GETTEXTURENAME','TBGL_GETTEXTURELIST','TBGL_GETPIXELINFO','TBGL_GETMULTIASYNCKEYSTATE',
        +            'TBGL_GETLASTGLERROR','TBGL_GETFRAMERATE','TBGL_GETDESKTOPINFO','TBGL_GETASYNCKEYSTATE','TBGL_ERRORMESSAGES','TBGL_ENDPOLY','TBGL_ENDLIST','TBGL_DRAWFRAME',
        +            'TBGL_DESTROYWINDOW','TBGL_DELETELIST','TBGL_CYLINDER','TBGL_CREATEWINDOWEX','TBGL_CREATEWINDOW','TBGL_COLORALPHA','TBGL_COLOR','TBGL_CLEARFRAME',
        +            'TBGL_CAMERA','TBGL_CALLLIST','TBGL_BUILDFONT','TBGL_BOX','TBGL_BLENDFUNC','TBGL_BINDTEXTURE','TBGL_BEGINPOLY','TBGL_BACKCOLOR',
        +            'TBGL_ALPHAFUNC','TBDI_JOYZ','TBDI_JOYY','TBDI_JOYX','TBDI_JOYSTOPEFFECT','TBDI_JOYSLIDER','TBDI_JOYSETRANGEZ','TBDI_JOYSETRANGEY',
        +            'TBDI_JOYSETRANGEXYZ','TBDI_JOYSETRANGEX','TBDI_JOYSETDEADZONEZ','TBDI_JOYSETDEADZONEY','TBDI_JOYSETDEADZONEXYZ','TBDI_JOYSETDEADZONEX','TBDI_JOYSETAUTOCENTER','TBDI_JOYRZ',
        +            'TBDI_JOYRY','TBDI_JOYRX','TBDI_JOYPOV','TBDI_JOYPLAYEFFECT','TBDI_JOYLOADEFFECT','TBDI_JOYHASFF','TBDI_JOYHASEFFECT','TBDI_JOYGETEFFECTNAME',
        +            'TBDI_JOYGETEFFECTGUID','TBDI_JOYCREATEEFFECT','TBDI_JOYCOUNTPOV','TBDI_JOYCOUNTEFFECTS','TBDI_JOYCOUNTBTN','TBDI_JOYCOUNTAXES','TBDI_JOYBUTTON','TBDI_JOYAVAIL',
        +            'TBDI_INIT','TBASS_STREAMFREE','TBASS_STREAMCREATEFILE','TBASS_SETVOLUME','TBASS_SETEAXPRESET','TBASS_SETEAXPARAMETERS','TBASS_SETCONFIG','TBASS_SET3DPOSITION',
        +            'TBASS_SET3DFACTORS','TBASS_SAMPLELOAD','TBASS_SAMPLEGETCHANNEL','TBASS_MUSICLOAD','TBASS_MUSICFREE','TBASS_INIT','TBASS_GETVOLUME','TBASS_GETVERSION',
        +            'TBASS_GETCONFIG','TBASS_FREE','TBASS_ERRORGETCODE','TBASS_CHANNELSTOP','TBASS_CHANNELSETPOSITION','TBASS_CHANNELSETATTRIBUTES','TBASS_CHANNELSET3DPOSITION','TBASS_CHANNELPLAY',
        +            'TBASS_CHANNELPAUSE','TBASS_CHANNELISACTIVE','TBASS_CHANNELGETPOSITION','TBASS_CHANNELGETLENGTH','TBASS_CHANNELGETATTRIBUTES','TBASS_APPLY3D','TANH','TANGENT',
        +            'TAN','TALLY','TABCTRL_ONNOTIFY','TABCTRL_INSERTITEM','TABCTRL_GETCURSEL','SWAP','SUB','STRZIP$',
        +            'STRUNZIP$','STRREVERSE$','STRPTRLEN','STRPTR','STRINSERT$','STRING$','STRING','STRDELETE$',
        +            'STR$','STOP','STEP','STDOUT','STDIN','STAT_SUM','STAT_STDERROR','STAT_STDDEVIATION',
        +            'STAT_RANDOM','STAT_PRODUCT','STAT_MIN','STAT_MEDIAN','STAT_MEANHARMONIC','STAT_MEANGEOMETRIC','STAT_MEANARITHMETIC','STAT_MAX',
        +            'STAT_INVERSESUM','STAT_HISTOGRAM','STAT_FILLARRAY','STAT_COUNT','STAT_COPYARRAY','STAT_CLONEARRAY','STAT_CHISQUARE','STATIC',
        +            'STATE','SQR','SPLIT','SORT','SMTP_STATISTICS','SMTP_SETOPTION','SMTP_SETLOGFILE','SMTP_SENDHTML',
        +            'SMTP_SENDEMAIL','SMTP_GETERROR','SMTP_FINISHED','SMTP_DEBUG','SMTP_CONNECT','SMTP_CLOSE','SLEEP','SIZEOF',
        +            'SIZE','SINH','SINGLE','SIN','SIGNED','SHOW','SHIFT','SHAPETOBMP',
        +            'SGN','SETAT','SET','SENDMESSAGE','SENDKEYSBULK','SENDKEYS','SEND','SELECTEXPRESSION',
        +            'SELECT','SECH','SEC','SCAN','SAPI_SPEAK','SAPI_SETVOLUME','SAPI_SETRATE','SAPI_MODULELOADED',
        +            'SAPI_GETVOLUME','SAPI_GETRATE','RTRIM$','RTF_SETTEXT','RTF_SETFONTSIZE','RTF_SETFONTNAME','RTF_SETFGCOLOR','RTF_SETEFFECT',
        +            'RTF_SETBGCOLOR','RTF_SETALIGN','RTF_SAVETOFILE','RTF_LOADFROMFILE','RTF_GETTEXT','RTF_GETFONTSIZE','RTF_GETFONTNAME','RTF_GETEFFECT',
        +            'RTF_GETCLASS','RTF_APPENDTEXT','RSET$','ROUND','RNDF','RND','RIGHT$','RIGHT',
        +            'RGB','RESOURCE','RESIZE','RESET','REPLACE$','REPEAT$','REMOVE$','REM',
        +            'REGISTRY_SETVALUE','REGISTRY_SETTXTNUM','REGISTRY_SETTXTBOOL','REGISTRY_SETDWORD','REGISTRY_GETVALUE','REGISTRY_GETTXTNUM','REGISTRY_GETTXTBOOL','REGISTRY_GETDWORD',
        +            'REGISTRY_GETALLKEYS','REGISTRY_DELVALUE','REGISTRY_DELKEY','REFERENCE','REF','REDRAW','REDIM','RAS_SETPARAMS',
        +            'RAS_OPENDIALUPDIALOG','RAS_LOADENTRIES','RAS_HANGUPALL','RAS_HANGUP','RAS_GETENTRY','RAS_BEGINDIAL','RANDOMIZE','RADTODEG',
        +            'QUERYPERFORMANCEFREQUENCY','QUERYPERFORMANCECOUNTER','QUAD','PTR','PRESERVE','POST','POPUP','POKE$',
        +            'POKE','PIXELS','PI','PERMUTATIONS','PEEKMESSAGE','PEEK$','PEEK','PC_SYSTEMUPFROM',
        +            'PC_SUSPENDSTATE','PC_SHUTDOWN','PC_SHOWCARET','PC_SETCARETBLINKTIME','PC_RESTARTDIALOG','PC_PREVENTSHUTDOWN','PC_LOCK','PC_INSERTCD',
        +            'PC_HIDECARET','PC_GETSTATEONOFF','PC_GETSCROLLLOCKKEYSTATE','PC_GETNUMLOCKKEYSTATE','PC_GETCARETBLINKTIME','PC_GETCAPSLOCKKEYSTATE','PC_EMPTYBIN','PC_EJECTCD',
        +            'PC_DECODECDERROR','PCT','PARSESET$','PARSECOUNT','PARSE$','PARSE','PARAMETERS','OUTSIDE',
        +            'OS_WINVERSIONTEXT','OS_WINGETVERSIONTIMELINE','OS_SHELLEXECUTE','OS_SHELLABOUT','OS_SHELL','OS_SETLASTCALLDLLERROR','OS_SERVICESTOP','OS_SERVICESTATUSDESCRIPTION',
        +            'OS_SERVICESTARTTYPEDESCRIPTION','OS_SERVICESTART','OS_SERVICESETSTARTTYPE','OS_SERVICEQUERY','OS_SERVICEGETSTARTTYPE','OS_SERVICEGETLIST','OS_PROCESSKILLBYNAME','OS_PROCESSKILLBYID',
        +            'OS_PROCESSISRUNNING','OS_PROCESSGETLIST','OS_PROCESSGETID','OS_PROCESSARERUNNING','OS_MESSAGEBEEP','OS_ISWOW64','OS_ISFEATUREPRESENT','OS_IEVERSION',
        +            'OS_GETWINDOWSDIR','OS_GETUSERNAME','OS_GETTEMPDIR','OS_GETSYSTEMDIR','OS_GETSPECIALFOLDER','OS_GETLASTCALLDLLSTATUS','OS_GETLASTCALLDLLERROR','OS_GETCURRENTTHREADID',
        +            'OS_GETCURRENTPROCESSID','OS_GETCOMPUTERNAME','OS_GETCOMMANDS','OS_GETCOMMAND','OS_FLASHWINDOW','OS_FATALAPPEXIT','OS_ENVIRON','OS_CALLDLL',
        +            'OR','OPTIONAL','OPTION','OPT','ONCE','ON','OFF','NUMBER',
        +            'NOT','NEXT','NEW','MSGBOX','MOUSEPTR','MODULE','MODELESS','MODAL',
        +            'MOD','MKWRD$','MKS$','MKQ$','MKL$','MKI$','MKE$','MKDWD$',
        +            'MKD$','MKCUX$','MKCUR$','MKBYT$','MIN$','MIN','MID$','MENU',
        +            'MDI_CREATE','MCASE$','MAX$','MAX','MAKWRD','MAKLNG','MAKINT','MAKDWR',
        +            'LTRIM$','LSET$','LOWRD','LOOP','LONG','LOINT','LOG_WRITE','LOGB',
        +            'LOG2','LOG10','LOG','LOCAL','LOC','LL_UPDATEBYNAME','LL_UPDATE','LL_TOSTRING',
        +            'LL_TOFILE','LL_NAME','LL_GETITEM','LL_GETBYNUMBER','LL_FROMFILE','LL_FREE','LL_FINDLAST','LL_FINDBYNAME',
        +            'LL_FINDBYDATA','LL_DELETELIKE','LL_DELETEBYNAME','LL_DELETE','LL_DATABYNAME','LL_DATA','LL_COUNT','LL_ADD',
        +            'LISTBOX','LINE','LIBRARY_EXISTS','LIB','LEN','LEFT$','LEFT','LCASE$',
        +            'LBOUND','LABEL','KILL','JOIN$','ITERATE','ISWINDOW','ISUNICODE','ISTRUE',
        +            'ISODD','ISLIKE','ISFALSE','ISEVEN','IP_TOSTRING','IP_ADDR','INTERNALINFO','INTEGER',
        +            'INT','INSTR','INSIDE','INPUTBOX$','INI_SETKEY','INI_GETSECTIONSLIST','INI_GETSECTIONKEYLIST','INI_GETKEY',
        +            'INET_URLDOWNLOAD','INET_PING','INET_OPENDIALUPDIALOG','INET_GETSTATE','INET_GETREMOTEMACADDRESS','INET_GETIP','INET_GETCONNECTIONMODE','INCR',
        +            'IN','IMAGE','IIF$','IIF','IF','ICRYPTO_TESTSHA1','ICRYPTO_TESTMD5','ICRYPTO_TESTCRC32',
        +            'ICRYPTO_TESTCRC16','ICRYPTO_STRING2ASCII','ICRYPTO_SHA1','ICRYPTO_MD5','ICRYPTO_ENCRYPTRIJNDAEL','ICRYPTO_ENCRYPTRC4','ICRYPTO_DECRYPTRIJNDAEL','ICRYPTO_DECRYPTRC4',
        +            'ICRYPTO_CRC32','ICRYPTO_CRC16','ICRYPTO_BYTEXOR','ICRYPTO_BIN2ASCII','ICRYPTO_ASCII2STRING','ICRYPTO_ASCII2BIN','HOST_ADDR','HOSTNAME_TOIP',
        +            'HOSTIP_TONAME','HIWRD','HIINT','HEX$','HASH','HANDLE','GUIDTXT$','GUID$',
        +            'GRAPHIC','GLVOID','GLUSHORT','GLUINT','GLUBYTE','GLSIZEI','GLSHORT','GLOBAL',
        +            'GLINT','GLFLOAT','GLENUM','GLDOUBLE','GLCLAMPF','GLCLAMPD','GLBYTE','GLBOOLEAN',
        +            'GLBITFIELD','GETWINDOWMULTIKEYSTATE','GETWINDOWKEYSTATE','GETTICKCOUNT','GETS','GETMULTIASYNCKEYSTATE','GETMESSAGE','GETCURRENTINSTANCE',
        +            'GETAT','GETASYNCKEYSTATE','GET','FUNCTION_NPARAMS','FUNCTION_EXISTS','FUNCTION_CPARAMS','FUNCTION','FTP_SETSTRING',
        +            'FTP_SETSERVERDIR','FTP_SETNUMBER','FTP_SETMODE','FTP_SETLOGFILE','FTP_SETLOCALDIR','FTP_QUIT','FTP_PUTFILE','FTP_GETSTRING',
        +            'FTP_GETSERVERDIR','FTP_GETNUMBER','FTP_GETLOCALDIR','FTP_GETLIST','FTP_GETFILE','FTP_GETERRORSTRING','FTP_GETERRORNUMBER','FTP_FINISHED',
        +            'FTP_EXTRACT','FTP_DELFILE','FTP_CONNECT','FTP_COMMAND','FRAME','FRAC','FORMAT$','FOR',
        +            'FONT_LIST','FONT_CREATE','FONT','FOCUS','FLUSH','FIX','FILE_SIZE','FILE_SHELLDELETE',
        +            'FILE_SHELLCOPY','FILE_SETDATETIME','FILE_SEEK','FILE_SAVE','FILE_RENAME','FILE_PUT','FILE_PATHSPLIT','FILE_OPEN',
        +            'FILE_LOF','FILE_LOAD','FILE_LINEPRINT','FILE_LINEINPUT','FILE_KILL','FILE_GETVERSIONSTRING','FILE_GETVERSION','FILE_GETTIME',
        +            'FILE_GETDATETIMESTAMP','FILE_GETDATETIME','FILE_GETDATE','FILE_GET','FILE_EXISTS','FILE_EOF','FILE_COPY','FILE_CLOSE',
        +            'FILE_CHANGED','FILE_APPEND','FACTORIAL','EXTRACT$','EXT','EXPORT','EXP2','EXP10',
        +            'EXP','EXIT','EVAL_STRING','EVAL_SETSTRING','EVAL_SETNUMBER','EVAL_MATH','EVAL_LINKEXT','EVAL_GETSTRING',
        +            'EVAL_GETNUMBER','EVAL_ERRORGETTOKEN','EVAL_ERRORDESCRIPTION','EVAL_ERRORCLEAR','EVAL','ERRCLEAR','ERR','ENGINE_GETCURRENTTOKEN',
        +            'ENDIF','END','ENABLE','ELSEIF','ELSE','ECHO','DWORD','DT_YEAR',
        +            'DT_TIMETOSEC','DT_TIMESUBSECONDS','DT_TIMEFORMAT','DT_TIMEADDSECONDS','DT_SETTIMESEPARATOR','DT_SETDATESEPARATOR','DT_SETDATECENTURY','DT_SECTOTIME',
        +            'DT_SECTODATE','DT_SECOND','DT_MONTH','DT_MINUTE','DT_LASTDAYOFMONTH','DT_ISVALIDDATE','DT_ISLEAPYEAR','DT_HOUR',
        +            'DT_GETWEEKDAYNAME','DT_GETWEEKDAY','DT_GETTIMESTAMP','DT_GETTIMESEPARATOR','DT_GETMONTHNAME','DT_GETDATESEPARATOR','DT_GETDATECENTURY','DT_DAY',
        +            'DT_DATETOSEC','DT_DATETIMESUBSECONDS','DT_DATETIMEADDSECONDS','DT_DATESUBDAYS','DT_DATEFORMAT','DT_DATEDIFF','DT_DATEADDDAYS','DT_COOKIEDATE',
        +            'DRAW','DOUBLE','DOEVENTS','DO','DISABLE','DIR_REMOVE','DIR_MAKEALL','DIR_MAKE',
        +            'DIR_LISTARRAY','DIR_LIST','DIR_ISEMPTY','DIR_ISDIR','DIR_GETCURRENT','DIR_EXISTS','DIR_CHANGEDRIVE','DIR_CHANGE',
        +            'DIM','DICTIONARY_MEMINFO','DICTIONARY_LISTKEYS','DICTIONARY_FREE','DICTIONARY_FIND','DICTIONARY_EXISTS','DICTIONARY_CREATE','DICTIONARY_COUNT',
        +            'DICTIONARY_ADD','DIALOG_STOPEVENTS','DIALOG_SAVEFILE','DIALOG_OPENFILE','DIALOG_GETCONTROL','DIALOG_CHOOSECOLOR','DIALOG_BROWSEFORFOLDER','DIALOG',
        +            'DESKTOP','DESCENDING','DESCEND','DELETEOBJECT','DELETE','DEGTORAD','DECR','DECLARE',
        +            'DATE$','CVWRD','CVS','CVQ','CVL','CVI','CVE','CVDWD',
        +            'CVD','CVCUX','CVCUR','CVBYT','CURRENCY','CUR','CSET$','CSCH',
        +            'CSC','CRYPTO_GETPROVIDERTYPESCOUNT','CRYPTO_GETPROVIDERSCOUNT','CRYPTO_GETDEFAULTPROVIDER','CRYPTO_GENRANDOMSTRING','CRYPTO_ENUMPROVIDERTYPES','CRYPTO_ENUMPROVIDERS','CRYPTO_ENCRYPT',
        +            'CRYPTO_DECRYPT','CREATEFONT','COTH','COTAN','COSH','COS','CONTROL_SETTEXT','CONTROL_GETTEXT',
        +            'CONTROL_GETNUMBER','CONTROL','CONST','CONSOLE_WRITELINE','CONSOLE_WRITE','CONSOLE_WAITKEY','CONSOLE_SHOWWINDOW','CONSOLE_SHOWCURSOR',
        +            'CONSOLE_SETTITLE','CONSOLE_SETTEXTATTRIBUTE','CONSOLE_SETSTDHANDLE','CONSOLE_SETSCREENBUFFERSIZE','CONSOLE_SETPROGRESSBARCHAR','CONSOLE_SETOUTPUTMODE','CONSOLE_SETOUTPUTCP','CONSOLE_SETINPUTMODE',
        +            'CONSOLE_SETFILEAPISTOOEM','CONSOLE_SETFILEAPISTOANSI','CONSOLE_SETCURSORSIZE','CONSOLE_SETCURSORPOSITION','CONSOLE_SETCP','CONSOLE_SETACTIVESCREENBUFFER','CONSOLE_SCROLLWINDOW','CONSOLE_SCROLLBUFFERONEROW',
        +            'CONSOLE_SCROLLBUFFER','CONSOLE_SAVESCREEN','CONSOLE_RESTORESCREEN','CONSOLE_READLINE','CONSOLE_READ','CONSOLE_PROGRESSBAR','CONSOLE_PRINTLINE','CONSOLE_PRINTAT',
        +            'CONSOLE_PRINT','CONSOLE_NORMALSCREEN','CONSOLE_LINE','CONSOLE_INKEYB','CONSOLE_INKEY','CONSOLE_HIDECURSOR','CONSOLE_GETTITLE','CONSOLE_GETTEXTATTRIBUTE',
        +            'CONSOLE_GETSTDHANDLE','CONSOLE_GETSIZEY','CONSOLE_GETSIZEX','CONSOLE_GETPROGRESSBARCHAR','CONSOLE_GETOUTPUTMODE','CONSOLE_GETOUTPUTCP','CONSOLE_GETNUMBEROFMOUSEBUTTONS','CONSOLE_GETINPUTMODE',
        +            'CONSOLE_GETCURSORY','CONSOLE_GETCURSORX','CONSOLE_GETCURSORSIZE','CONSOLE_GETCURRENTFONTINDEX','CONSOLE_GETCP','CONSOLE_GENERATECTRLEVENT','CONSOLE_FULLSCREEN','CONSOLE_FREE',
        +            'CONSOLE_FOREGROUNDRGB','CONSOLE_ENABLECTRLC','CONSOLE_DISABLECTRLC','CONSOLE_CREATESCREENBUFFER','CONSOLE_COLORAT','CONSOLE_CLS','CONSOLE_BOX','CONSOLE_BACKGROUNDRGB',
        +            'CONSOLE_ATTACH','CONSOLE_AREFILEAPISANSI','CONSOLE_ALLOC','COM_VARIANTINIT','COM_VARIANTCOPY','COM_VARIANTCLEAR','COM_SUCCEEDED','COM_STRINGFROMCLSID',
        +            'COM_RELEASE','COM_QUERYINTERFACE','COM_PROGIDFROMCLSID','COM_ISEQUALIID','COM_ISEQUALGUID','COM_ISEQUALCLSID','COM_GETOBJECT','COM_GETENGINEGUID',
        +            'COM_EXECUTE','COM_DISPLAYERROR','COM_CREATEOBJECT','COM_CLSIDFROMSTRING','COM_CLSIDFROMPROGID','COM_BUILDVARIANT','COMBOBOX','COMBINATIONS',
        +            'COLOR','CLIPBOARD_SETTEXT','CLIPBOARD_GETTEXT','CLIENT','CLEARMESSAGES','CHR$','CHOOSE$','CHOOSE',
        +            'CHECKBOX','CHECK3STATE','CHECK','CGI_WRITELOGFILE','CGI_WRITE','CGI_URLDECODESTRING','CGI_UPLOADFILESTIME','CGI_UPLOADFILESNUMBER',
        +            'CGI_UPLOADFILESIZE','CGI_STARTSESSION','CGI_SETSESSIONVARIABLE','CGI_RESETDEFAULTSETTINGS','CGI_REMOVESPECIALCHARSPREFIX','CGI_REMOVEQUOTE','CGI_READ','CGI_LOADCONFIGFILE',
        +            'CGI_HEADER','CGI_GETSESSIONVARIABLE','CGI_GETREQUESTMETHOD','CGI_GETQUERYVALUE','CGI_GETCURRENTSESSION','CGI_GETCURRENTGUID','CGI_ENVIRON','CGI_CFGSETOPTION',
        +            'CGI_CFGGETOPTION','CGI_ADDSPECIALCHARSPREFIX','CGI_ADDQUOTE','CEIL','CASE','CALL','BYVAL','BYTE',
        +            'BYREF','BYCMD','BUTTON','BUNDLE_SETSCRIPTPARAMETERS','BUNDLE_SETSCRIPTNAME','BUNDLE_SETFLAGOBFUSCATEMAINSCRIPT','BUNDLE_SETFLAGDELETEAFTERRUN','BUNDLE_SETFLAGCOMPRESSALLFILES',
        +            'BUNDLE_SETFLAGASKBEFOREEXTRACT','BUNDLE_SETEXTRACTIONFOLDER','BUNDLE_SETCREATIONFOLDER','BUNDLE_SETBUNDLENAME','BUNDLE_RESET','BUNDLE_MAKE','BUNDLE_BUILDER','BUNDLE_ADDFOLDER',
        +            'BUNDLE_ADDFILE','BOUNDCHECK','BIN$','BIFF_WRITETEXT','BIFF_WRITENUMBER','BIFF_WRITEDATE','BIFF_SETROWHEIGHT','BIFF_SETCOLWIDTH',
        +            'BIFF_SETBUFFER','BIFF_CREATEFILE','BIFF_CLOSEFILE','BETWEEN','BEEP','BAR','ATTACH','ATN',
        +            'AT','ASSIGN','ASCIZ','ASCIIZ','ASCII2UNICODE','ASCENDING','ASCEND','ASC',
        +            'AS','ARRAY','ARCTANH','ARCSINH','ARCSIN','ARCSECH','ARCSEC','ARCCSCH',
        +            'ARCCSC','ARCCOTH','ARCCOT','ARCCOSH','ARCCOS','APP_TIMER','APP_SOURCEPATH','APP_SOURCENAME',
        +            'APP_SOURCEFULLNAME','APP_PATH','APP_NAME','APP_LISTVARIABLES','APP_LISTKEYWORDS','APP_LISTFUNCTIONS','APP_LISTEQUATES','APP_INCLUDEPATH',
        +            'APP_GETMODULEFULLPATH','APP_COUNTER','APPEND','ANY','ANIMATE_STOP','ANIMATE_PLAY','ANIMATE_OPEN','AND',
        +            'ALIAS','ALERT','ADD','ACODE$','ABS','%DEF','#MINVERSION','#IF',
        +            '#ENDIF','#ELSEIF','#ELSE','#DEFAULT','#DEF','SQLWRITEPRIVATEPROFILESTRING','SQLWRITEFILEDSN','SQLWRITEDSNTOINI',
        +            'SQLVALIDDSN','SQLTRANSACT','SQLTABLES','SQLTABLEPRIVILEGES','SQLSTATISTICS','SQLSPECIALCOLUMNS','SQLSETSTMTOPTION','SQLSETSTMTATTR',
        +            'SQLSETSCROLLOPTIONS','SQLSETPOS','SQLSETPARAM','SQLSETENVATTR','SQLSETDESCREC','SQLSETDESCFIELD','SQLSETCURSORNAME','SQLSETCONNECTOPTION',
        +            'SQLSETCONNECTATTR','SQLSETCONFIGMODE','SQLROWCOUNT','SQLREMOVETRANSLATOR','SQLREMOVEDSNFROMINI','SQLREMOVEDRIVERMANAGER','SQLREMOVEDRIVER','SQLREADFILEDSN',
        +            'SQLPUTDATA','SQLPROCEDURES','SQLPROCEDURECOLUMNS','SQLPRIMARYKEYS','SQLPREPARE','SQLPOSTINSTALLERERROR','SQLPARAMOPTIONS','SQLPARAMDATA',
        +            'SQLNUMRESULTCOLS','SQLNUMPARAMS','SQLNATIVESQL','SQLMORERESULTS','SQLMANAGEDATASOURCES','SQLINSTALLTRANSLATOREX','SQLINSTALLERERROR','SQLINSTALLDRIVERMANAGER',
        +            'SQLINSTALLDRIVEREX','SQLGETTYPEINFO','SQLGETTRANSLATOR','SQLGETSTMTOPTION','SQLGETSTMTATTR','SQLGETPRIVATEPROFILESTRING','SQLGETINSTALLEDDRIVERS','SQLGETINFO',
        +            'SQLGETFUNCTIONS','SQLGETENVATTR','SQLGETDIAGREC','SQLGETDIAGFIELD','SQLGETDESCREC','SQLGETDESCFIELD','SQLGETDATA','SQLGETCURSORNAME',
        +            'SQLGETCONNECTOPTION','SQLGETCONNECTATTR','SQLGETCONFIGMODE','SQLFREESTMT','SQLFREEHANDLE','SQLFREEENV','SQLFREECONNECT','SQLFOREIGNKEYS',
        +            'SQLFETCHSCROLL','SQLFETCH','SQLEXTENDEDFETCH','SQLEXECUTE','SQLEXECDIRECT','SQLERROR','SQLENDTRAN','SQLDRIVERS',
        +            'SQLDRIVERCONNECT','SQLDISCONNECT','SQLDESCRIBEPARAM','SQLDESCRIBECOL','SQLDATASOURCES','SQLCREATEDATASOURCE','SQLCOPYDESC','SQLCONNECT',
        +            'SQLCONFIGDRIVER','SQLCONFIGDATASOURCE','SQLCOLUMNS','SQLCOLUMNPRIVILEGES','SQLCOLATTRIBUTES','SQLCOLATTRIBUTE','SQLCLOSECURSOR','SQLCANCEL',
        +            'SQLBULKOPERATIONS','SQLBROWSECONNECT','SQLBINDPARAMETER','SQLBINDPARAM','SQLBINDCOL','SQLALLOCSTMT','SQLALLOCHANDLE','SQLALLOCENV',
        +            'SQLALLOCCONNECT','ODBCWRONGDRIVER','ODBCWRITEPRIVATEPROFILESTRING','ODBCWRITEFILEDSN','ODBCWRITEDSNTOINI','ODBCVALIDDSN','ODBCUPDATERECORD','ODBCUPDATEBYBOOKMARK',
        +            'ODBCUNLOCKRECORD','ODBCUNBINDCOLUMNS','ODBCUNBINDCOL','ODBCTABLESCOUNT','ODBCTABLES','ODBCTABLEPRIVILEGESCOUNT','ODBCTABLEPRIVILEGES','ODBCSUPPORTS',
        +            'ODBCSTATTABLESCHEMANAME','ODBCSTATTABLEPAGES','ODBCSTATTABLECATALOGNAME','ODBCSTATTABLECARDINALITY','ODBCSTATISTICSCOUNT','ODBCSTATISTICS','ODBCSTATINDEXSORTSEQUENCE','ODBCSTATINDEXSCHEMANAME',
        +            'ODBCSTATINDEXQUALIFIER','ODBCSTATINDEXPAGES','ODBCSTATINDEXFILTERCONDITION','ODBCSTATINDEXCOLUMNORDINALPOSITION','ODBCSTATINDEXCOLUMNNAME','ODBCSTATINDEXCATALOGNAME','ODBCSTATINDEXCARDINALITY','ODBCSTATINDEXALLOWDUPLICATES',
        +            'ODBCSPECIALCOLUMNSCOUNT','ODBCSPECIALCOLUMNS','ODBCSETTXNISOLATION','ODBCSETTRANSLATELIB','ODBCSETTRACEFILE','ODBCSETTRACE','ODBCSETSTMTUSEBOOKMARKS','ODBCSETSTMTSIMULATECURSOR',
        +            'ODBCSETSTMTROWSTATUSPTR','ODBCSETSTMTROWSFETCHEDPTR','ODBCSETSTMTROWOPERATIONPTR','ODBCSETSTMTROWBINDTYPE','ODBCSETSTMTROWBINDOFFSETPTR','ODBCSETSTMTROWARRAYSIZE','ODBCSETSTMTRETRIEVEDATA','ODBCSETSTMTQUERYTIMEOUT',
        +            'ODBCSETSTMTPARAMSTATUSPTR','ODBCSETSTMTPARAMSPROCESSEDPTR','ODBCSETSTMTPARAMSETSIZE','ODBCSETSTMTPARAMOPERATIONPTR','ODBCSETSTMTPARAMBINDTYPE','ODBCSETSTMTPARAMBINDOFFSETPTR','ODBCSETSTMTNOSCAN','ODBCSETSTMTMETADATAID',
        +            'ODBCSETSTMTMAXROWS','ODBCSETSTMTMAXLENGTH','ODBCSETSTMTKEYSETSIZE','ODBCSETSTMTFETCHBOOKMARKPTR','ODBCSETSTMTENABLEAUTOIPD','ODBCSETSTMTCURSORTYPE','ODBCSETSTMTCURSORSENSITIVITY','ODBCSETSTMTCURSORSCROLLABLE',
        +            'ODBCSETSTMTCONCURRENCY','ODBCSETSTMTATTR','ODBCSETSTMTASYNCENABLE','ODBCSETSTMTAPPROWDESC','ODBCSETSTMTAPPPARAMDESC','ODBCSETSTATICCURSOR','ODBCSETROWVERCONCURRENCY','ODBCSETRESULT',
        +            'ODBCSETRELATIVEPOSITION','ODBCSETREADONLYCONCURRENCY','ODBCSETQUIETMODE','ODBCSETPOSITION','ODBCSETPOS','ODBCSETPACKETMODE','ODBCSETOPTIMISTICCONCURRENCY','ODBCSETODBCCURSORS',
        +            'ODBCSETMULTIUSERKEYSETCURSOR','ODBCSETMETADATAID','ODBCSETLOGINTIMEOUT','ODBCSETLOCKCONCURRENCY','ODBCSETKEYSETDRIVENCURSOR','ODBCSETFORWARDONLYCURSOR','ODBCSETENVOUTPUTNTS','ODBCSETENVODBCVERSION',
        +            'ODBCSETENVCPMATCH','ODBCSETENVCONNECTIONPOOLING','ODBCSETENVATTR','ODBCSETDYNAMICCURSOR','ODBCSETDESCREC','ODBCSETDESCFIELD','ODBCSETCURSORTYPE','ODBCSETCURSORSENSITIVITY',
        +            'ODBCSETCURSORSCROLLABILITY','ODBCSETCURSORNAME','ODBCSETCURSORLOCKTYPE','ODBCSETCURSORKEYSETSIZE','ODBCSETCURSORCONCURRENCY','ODBCSETCURRENTCATALOG','ODBCSETCONNECTIONTIMEOUT','ODBCSETCONNECTATTR',
        +            'ODBCSETCONFIGMODE','ODBCSETCONCURVALUESCONCURRENCY','ODBCSETAUTOCOMMITON','ODBCSETAUTOCOMMITOFF','ODBCSETAUTOCOMMIT','ODBCSETASYNCENABLE','ODBCSETACCESSMODE','ODBCSETABSOLUTEPOSITION',
        +            'ODBCROWCOUNT','ODBCROLLBACKTRAN','ODBCROLLBACKENVTRAN','ODBCROLLBACKDBCTRAN','ODBCRESULT','ODBCRESETPARAMS','ODBCREMOVETRANSLATOR','ODBCREMOVEDSNFROMINI',
        +            'ODBCREMOVEDRIVERMANAGER','ODBCREMOVEDRIVER','ODBCREFRESHRECORD','ODBCRECORDCOUNT','ODBCREADFILEDSN','ODBCQUOTEDIDENTIFIERCASE','ODBCPUTDATA','ODBCPROCEDURESCOUNT',
        +            'ODBCPROCEDURES','ODBCPROCEDURECOLUMNSCOUNT','ODBCPROCEDURECOLUMNS','ODBCPRIMARYKEYSCOUNT','ODBCPRIMARYKEYS','ODBCPREPARE','ODBCPOSTINSTALLERERROR','ODBCPARAMDATA',
        +            'ODBCOPENSTMT','ODBCOPENCONNECTION','ODBCNUMRESULTCOLS','ODBCNUMPARAMS','ODBCNATIVESQL','ODBCMOVEPREVIOUS','ODBCMOVENEXT','ODBCMOVELAST',
        +            'ODBCMOVEFIRST','ODBCMOVE','ODBCMORERESULTS','ODBCMANAGEDATASOURCES','ODBCLOCKRECORD','ODBCINSTALLTRANSLATOREX','ODBCINSTALLERERROR','ODBCINSTALLDRIVERMANAGER',
        +            'ODBCINSTALLDRIVEREX','ODBCGETXOPENCLIYEAR','ODBCGETUSERNAME','ODBCGETUNION','ODBCGETTYPEINFOCOUNT','ODBCGETTYPEINFO','ODBCGETTXNISOLATIONOPTION','ODBCGETTXNISOLATION',
        +            'ODBCGETTXNCAPABLE','ODBCGETTRANSLATOR','ODBCGETTRANSLATELIB','ODBCGETTRACEFILE','ODBCGETTRACE','ODBCGETTIMEDATEFUNCTIONS','ODBCGETTIMEDATEDIFFINTERVALS','ODBCGETTIMEDATEADDINTERVALS',
        +            'ODBCGETTABLETERM','ODBCGETSYSTEMFUNCTIONS','ODBCGETSUBQUERIES','ODBCGETSTRINGFUNCTIONS','ODBCGETSTMTUSEBOOKMARKS','ODBCGETSTMTSQLSTATE','ODBCGETSTMTSIMULATECURSOR','ODBCGETSTMTROWSTATUSPTR',
        +            'ODBCGETSTMTROWSFETCHEDPTR','ODBCGETSTMTROWOPERATIONPTR','ODBCGETSTMTROWNUMBER','ODBCGETSTMTROWBINDTYPE','ODBCGETSTMTROWBINDOFFSETPTR','ODBCGETSTMTROWARRAYSIZE','ODBCGETSTMTRETRIEVEDATA','ODBCGETSTMTQUERYTIMEOUT',
        +            'ODBCGETSTMTPARAMSTATUSPTR','ODBCGETSTMTPARAMSPROCESSEDPTR','ODBCGETSTMTPARAMSETSIZE','ODBCGETSTMTPARAMOPERATIONPTR','ODBCGETSTMTPARAMBINDTYPE','ODBCGETSTMTPARAMBINDOFFSETPTR','ODBCGETSTMTNOSCAN','ODBCGETSTMTMETADATAID',
        +            'ODBCGETSTMTMAXROWS','ODBCGETSTMTMAXLENGTH','ODBCGETSTMTKEYSETSIZE','ODBCGETSTMTIMPROWDESC','ODBCGETSTMTIMPPARAMDESC','ODBCGETSTMTFETCHBOOKMARKPTR','ODBCGETSTMTERRORINFO','ODBCGETSTMTENABLEAUTOIPD',
        +            'ODBCGETSTMTCURSORTYPE','ODBCGETSTMTCURSORSENSITIVITY','ODBCGETSTMTCURSORSCROLLABLE','ODBCGETSTMTCONCURRENCY','ODBCGETSTMTATTR','ODBCGETSTMTASYNCENABLE','ODBCGETSTMTAPPROWDESC','ODBCGETSTMTAPPPARAMDESC',
        +            'ODBCGETSTATICCURSORATTRIBUTES2','ODBCGETSTATICCURSORATTRIBUTES1','ODBCGETSTATEMENTSQLSTATE','ODBCGETSTATEMENTERRORINFO','ODBCGETSTANDARDCLICONFORMANCE','ODBCGETSQLSTATE','ODBCGETSQLCONFORMANCE','ODBCGETSQL92VALUEEXPRESSIONS',
        +            'ODBCGETSQL92STRINGFUNCTIONS','ODBCGETSQL92ROWVALUECONSTRUCTOR','ODBCGETSQL92REVOKE','ODBCGETSQL92RELATIONALJOINOPERATORS','ODBCGETSQL92PREDICATES','ODBCGETSQL92NUMERICVALUEFUNCTIONS','ODBCGETSQL92GRANT','ODBCGETSQL92FOREIGNKEYUPDATERULE',
        +            'ODBCGETSQL92FOREIGNKEYDELETERULE','ODBCGETSQL92DATETIMEFUNCTIONS','ODBCGETSPECIALCHARACTERS','ODBCGETSERVERNAME','ODBCGETSEARCHPATTERNESCAPE','ODBCGETSCROLLOPTIONS','ODBCGETSCHEMAUSAGE','ODBCGETSCHEMATERM',
        +            'ODBCGETROWUPDATES','ODBCGETQUIETMODE','ODBCGETPROCEDURETERM','ODBCGETPROCEDURESSUPPORT','ODBCGETPRIVATEPROFILESTRING','ODBCGETPOSOPERATIONS','ODBCGETPARAMARRAYSELECTS','ODBCGETPARAMARRAYROWCOUNTS',
        +            'ODBCGETPACKETMODE','ODBCGETOUTERJOINS','ODBCGETORDERBYCOLUMNSINSELECT','ODBCGETOJCAPABILITIES','ODBCGETODBCVER','ODBCGETODBCINTERFACECONFORMANCE','ODBCGETODBCCURSORS','ODBCGETNUMERICFUNCTIONS',
        +            'ODBCGETNULLCOLLATION','ODBCGETNONNULLABLECOLUMNS','ODBCGETNEEDLONGDATALEN','ODBCGETMULTRESULTSETS','ODBCGETMULTIPLEACTIVETXN','ODBCGETMETADATAID','ODBCGETMAXUSERNAMELEN','ODBCGETMAXTABLESINSELECT',
        +            'ODBCGETMAXTABLENAMELEN','ODBCGETMAXSTATEMENTLEN','ODBCGETMAXSCHEMANAMELEN','ODBCGETMAXROWSIZEINCLUDESLONG','ODBCGETMAXROWSIZE','ODBCGETMAXPROCEDURENAMELEN','ODBCGETMAXINDEXSIZE','ODBCGETMAXIDENTIFIERLEN',
        +            'ODBCGETMAXDRIVERCONNECTIONS','ODBCGETMAXCURSORNAMELEN','ODBCGETMAXCONCURRENTACTIVITIES','ODBCGETMAXCOLUMNSINTABLE','ODBCGETMAXCOLUMNSINSELECT','ODBCGETMAXCOLUMNSINORDERBY','ODBCGETMAXCOLUMNSININDEX','ODBCGETMAXCOLUMNSINGROUPBY',
        +            'ODBCGETMAXCOLUMNNAMELEN','ODBCGETMAXCHARLITERALLEN','ODBCGETMAXCATALOGNAMELEN','ODBCGETMAXBINARYLITERALLEN','ODBCGETMAXASYNCCONCURRENTSTATEMENTS','ODBCGETLONGVARCHARDATABYCOLNAME','ODBCGETLONGVARCHARDATA','ODBCGETLOGINTIMEOUT',
        +            'ODBCGETLIKEESCAPECLAUSE','ODBCGETKEYWORDS','ODBCGETKEYSETCURSORATTRIBUTES2','ODBCGETKEYSETCURSORATTRIBUTES1','ODBCGETINTEGRITY','ODBCGETINSTALLERERRORMESSAGE','ODBCGETINSTALLERERRORCODE','ODBCGETINSTALLEDDRIVERS',
        +            'ODBCGETINSERTSTATEMENT','ODBCGETINFOSTR','ODBCGETINFOSCHEMAVIEWS','ODBCGETINFOLONG','ODBCGETINFOINT','ODBCGETINFO','ODBCGETINDEXKEYWORDS','ODBCGETIMPROWDESCREC',
        +            'ODBCGETIMPROWDESCFIELDTYPE','ODBCGETIMPROWDESCFIELDSCALE','ODBCGETIMPROWDESCFIELDPRECISION','ODBCGETIMPROWDESCFIELDOCTETLENGTH','ODBCGETIMPROWDESCFIELDNULLABLE','ODBCGETIMPROWDESCFIELDNAME','ODBCGETIMPROWDESCFIELD','ODBCGETIMPPARAMDESCREC',
        +            'ODBCGETIMPPARAMDESCFIELDTYPE','ODBCGETIMPPARAMDESCFIELDSCALE','ODBCGETIMPPARAMDESCFIELDPRECISION','ODBCGETIMPPARAMDESCFIELDOCTETLENGTH','ODBCGETIMPPARAMDESCFIELDNULLABLE','ODBCGETIMPPARAMDESCFIELDNAME','ODBCGETIMPPARAMDESCFIELD','ODBCGETIDENTIFIERQUOTECHAR',
        +            'ODBCGETIDENTIFIERCASE','ODBCGETGROUPBY','ODBCGETFUNCTIONS','ODBCGETFORWARDONLYCURSORATTRIBUTES2','ODBCGETFORWARDONLYCURSORATTRIBUTES1','ODBCGETFILEUSAGE','ODBCGETEXPRESSIONSINORDERBY','ODBCGETERRORINFO',
        +            'ODBCGETENVSQLSTATE','ODBCGETENVOUTPUTNTS','ODBCGETENVODBCVERSION','ODBCGETENVIRONMENTSQLSTATE','ODBCGETENVIRONMENTERRORINFO','ODBCGETENVERRORINFO','ODBCGETENVCPMATCH','ODBCGETENVCONNECTIONPOOLING',
        +            'ODBCGETENVATTR','ODBCGETDYNAMICCURSORATTRIBUTES2','ODBCGETDYNAMICCURSORATTRIBUTES1','ODBCGETDROPVIEW','ODBCGETDROPTRANSLATION','ODBCGETDROPTABLE','ODBCGETDROPSCHEMA','ODBCGETDROPDOMAIN',
        +            'ODBCGETDROPCOLLATION','ODBCGETDROPCHARACTERSET','ODBCGETDROPASSERTION','ODBCGETDRIVERVER','ODBCGETDRIVERODBCVER','ODBCGETDRIVERNAME','ODBCGETDRIVERMANAGERINSTALLPATH','ODBCGETDRIVERHLIB',
        +            'ODBCGETDRIVERHENV','ODBCGETDRIVERHDBC','ODBCGETDMVERMINOR','ODBCGETDMVERMAJOR','ODBCGETDMVER','ODBCGETDIAGREC','ODBCGETDIAGFIELD','ODBCGETDESCSQLSTATE',
        +            'ODBCGETDESCRIPTORSQLSTATE','ODBCGETDESCRIPTORERRORINFO','ODBCGETDESCRIBEPARAMETER','ODBCGETDESCREC','ODBCGETDESCFIELD','ODBCGETDESCERRORINFO','ODBCGETDEFAULTTXNISOLATION','ODBCGETDDLINDEX',
        +            'ODBCGETDBMSVER','ODBCGETDBMSNAME','ODBCGETDBCSQLSTATE','ODBCGETDBCERRORINFO','ODBCGETDATETIMELITERALS','ODBCGETDATASTRINGBYCOLNAME','ODBCGETDATASTRING','ODBCGETDATASOURCEREADONLY',
        +            'ODBCGETDATASOURCENAME','ODBCGETDATAEXTENSIONS','ODBCGETDATABASENAME','ODBCGETDATA','ODBCGETCURSORTYPE','ODBCGETCURSORSENSITIVITYSUPPORT','ODBCGETCURSORSENSITIVITY','ODBCGETCURSORSCROLLABILITY',
        +            'ODBCGETCURSORROLLBACKBEHAVIOR','ODBCGETCURSORNAME','ODBCGETCURSORLOCKTYPE','ODBCGETCURSORKEYSETSIZE','ODBCGETCURSORCONCURRENCY','ODBCGETCURSORCOMMITBEHAVIOR','ODBCGETCURRENTCATALOG','ODBCGETCREATEVIEW',
        +            'ODBCGETCREATETRANSLATION','ODBCGETCREATETABLE','ODBCGETCREATESCHEMA','ODBCGETCREATEDOMAIN','ODBCGETCREATECOLLATION','ODBCGETCREATECHARACTERSET','ODBCGETCREATEASSERTION','ODBCGETCORRELATIONNAME',
        +            'ODBCGETCONVERTVARCHAR','ODBCGETCONVERTVARBINARY','ODBCGETCONVERTTINYINT','ODBCGETCONVERTTIMESTAMP','ODBCGETCONVERTTIME','ODBCGETCONVERTSMALLINT','ODBCGETCONVERTREAL','ODBCGETCONVERTNUMERIC',
        +            'ODBCGETCONVERTLONGVARCHAR','ODBCGETCONVERTLONGVARBINARY','ODBCGETCONVERTINTERVALYEARMONTH','ODBCGETCONVERTINTERVALDAYTIME','ODBCGETCONVERTINTEGER','ODBCGETCONVERTFUNCTIONS','ODBCGETCONVERTFLOAT','ODBCGETCONVERTDOUBLE',
        +            'ODBCGETCONVERTDECIMAL','ODBCGETCONVERTDATE','ODBCGETCONVERTCHAR','ODBCGETCONVERTBIT','ODBCGETCONVERTBINARY','ODBCGETCONVERTBIGINT','ODBCGETCONNECTIONTIMEOUT','ODBCGETCONNECTIONSQLSTATE',
        +            'ODBCGETCONNECTIONERRORINFO','ODBCGETCONNECTIONDEAD','ODBCGETCONNECTATTR','ODBCGETCONFIGMODE','ODBCGETCONCATNULLBEHAVIOR','ODBCGETCOLUMNALIAS','ODBCGETCOLLATIONSEQ','ODBCGETCATALOGUSAGE',
        +            'ODBCGETCATALOGTERM','ODBCGETCATALOGNAMESEPARATOR','ODBCGETCATALOGNAME','ODBCGETCATALOGLOCATION','ODBCGETBOOKMARKPERSISTENCE','ODBCGETBATCHSUPPORT','ODBCGETBATCHROWCOUNT','ODBCGETAUTOIPD',
        +            'ODBCGETAUTOCOMMIT','ODBCGETASYNCMODE','ODBCGETASYNCENABLE','ODBCGETALTERTABLE','ODBCGETALTERDOMAIN','ODBCGETAGGREGATEFUNCTIONS','ODBCGETACTIVEENVIRONMENTS','ODBCGETACCESSMODE',
        +            'ODBCGETACCESSIBLETABLES','ODBCGETACCESSIBLEPROCEDURES','ODBCFREESTMT','ODBCFREEHANDLE','ODBCFREEENV','ODBCFREEDESC','ODBCFREEDBC','ODBCFREECONNECT',
        +            'ODBCFOREIGNKEYSCOUNT','ODBCFOREIGNKEYS','ODBCFETCHSCROLL','ODBCFETCHBYBOOKMARK','ODBCFETCH','ODBCEXTENDEDFETCH','ODBCEXECUTE','ODBCEXECDIRECT',
        +            'ODBCERROR','ODBCEOF','ODBCENDTRAN','ODBCDRIVERSCOUNT','ODBCDRIVERS','ODBCDRIVERCONNECT','ODBCDISCONNECT','ODBCDESCRIBEPARAM',
        +            'ODBCDESCRIBECOL','ODBCDELETERECORD','ODBCDELETEBYBOOKMARK','ODBCDATASOURCES','ODBCCREATEDATASOURCE','ODBCCOPYDESC','ODBCCONNECTIONISDEAD','ODBCCONNECTIONISALIVE',
        +            'ODBCCONNECT','ODBCCONFIGDRIVER','ODBCCONFIGDATASOURCE','ODBCCOMMITTRAN','ODBCCOMMITENVTRAN','ODBCCOMMITDBCTRAN','ODBCCOLUPDATABLE','ODBCCOLUNSIGNED',
        +            'ODBCCOLUNNAMED','ODBCCOLUMNSCOUNT','ODBCCOLUMNS','ODBCCOLUMNPRIVILEGESCOUNT','ODBCCOLUMNPRIVILEGES','ODBCCOLUMN','ODBCCOLTYPENAME','ODBCCOLTYPE',
        +            'ODBCCOLTABLENAME','ODBCCOLSEARCHABLE','ODBCCOLSCHEMANAME','ODBCCOLSCALE','ODBCCOLPRECISION','ODBCCOLOCTETLENGTH','ODBCCOLNUMPRECRADIX','ODBCCOLNULLABLE',
        +            'ODBCCOLNAME','ODBCCOLLOCALTYPENAME','ODBCCOLLITERALSUFFIX','ODBCCOLLITERALPREFIX','ODBCCOLLENGTH','ODBCCOLLABEL','ODBCCOLISNULL','ODBCCOLFIXEDPRECSCALE',
        +            'ODBCCOLDISPLAYSIZE','ODBCCOLCOUNT','ODBCCOLCONCISETYPE','ODBCCOLCATALOGNAME','ODBCCOLCASESENSITIVE','ODBCCOLBASETABLENAME','ODBCCOLBASECOLUMNNAME','ODBCCOLAUTOUNIQUEVALUE',
        +            'ODBCCOLATTRIBUTE','ODBCCLOSESTMTCURSOR','ODBCCLOSESTMT','ODBCCLOSECURSOR','ODBCCLOSECONNECTION','ODBCCLEARRESULT','ODBCCANCEL','ODBCBULKOPERATIONS',
        +            'ODBCBROWSECONNECT','ODBCBINDPARAMETER','ODBCBINDCOLTOWORD','ODBCBINDCOLTOTIMESTAMP','ODBCBINDCOLTOTIME','ODBCBINDCOLTOSTRING','ODBCBINDCOLTOSINGLE','ODBCBINDCOLTOQUAD',
        +            'ODBCBINDCOLTONUMERIC','ODBCBINDCOLTOLONG','ODBCBINDCOLTOINTEGER','ODBCBINDCOLTODWORD','ODBCBINDCOLTODOUBLE','ODBCBINDCOLTODECIMAL','ODBCBINDCOLTODATE','ODBCBINDCOLTOCURRENCY',
        +            'ODBCBINDCOLTOBYTE','ODBCBINDCOLTOBIT','ODBCBINDCOLTOBINARY','ODBCBINDCOL','ODBCALLOCSTMT','ODBCALLOCHANDLE','ODBCALLOCENV','ODBCALLOCDESC',
        +            'ODBCALLOCDBC','ODBCALLOCCONNECT','ODBCADDRECORD','GLVIEWPORT','GLVERTEXPOINTER','GLVERTEX4SV','GLVERTEX4S','GLVERTEX4IV',
        +            'GLVERTEX4I','GLVERTEX4FV','GLVERTEX4F','GLVERTEX4DV','GLVERTEX4D','GLVERTEX3SV','GLVERTEX3S','GLVERTEX3IV',
        +            'GLVERTEX3I','GLVERTEX3FV','GLVERTEX3F','GLVERTEX3DV','GLVERTEX3D','GLVERTEX2SV','GLVERTEX2S','GLVERTEX2IV',
        +            'GLVERTEX2I','GLVERTEX2FV','GLVERTEX2F','GLVERTEX2DV','GLVERTEX2D','GLUUNPROJECT','GLUTESSVERTEX','GLUTESSPROPERTY',
        +            'GLUTESSNORMAL','GLUTESSENDPOLYGON','GLUTESSENDCONTOUR','GLUTESSCALLBACK','GLUTESSBEGINPOLYGON','GLUTESSBEGINCONTOUR','GLUSPHERE','GLUSCALEIMAGE',
        +            'GLUQUADRICTEXTURE','GLUQUADRICORIENTATION','GLUQUADRICNORMALS','GLUQUADRICDRAWSTYLE','GLUQUADRICCALLBACK','GLUPWLCURVE','GLUPROJECT','GLUPICKMATRIX',
        +            'GLUPERSPECTIVE','GLUPARTIALDISK','GLUORTHO2D','GLUNURBSSURFACE','GLUNURBSPROPERTY','GLUNURBSCURVE','GLUNURBSCALLBACK','GLUNEXTCONTOUR',
        +            'GLUNEWTESS','GLUNEWQUADRIC','GLUNEWNURBSRENDERER','GLULOOKAT','GLULOADSAMPLINGMATRICES','GLUGETTESSPROPERTY','GLUGETSTRING','GLUGETNURBSPROPERTY',
        +            'GLUERRORSTRING','GLUENDTRIM','GLUENDSURFACE','GLUENDPOLYGON','GLUENDCURVE','GLUDISK','GLUDELETETESS','GLUDELETEQUADRIC',
        +            'GLUDELETENURBSRENDERER','GLUCYLINDER','GLUBUILD2DMIPMAPS','GLUBUILD1DMIPMAPS','GLUBEGINTRIM','GLUBEGINSURFACE','GLUBEGINPOLYGON','GLUBEGINCURVE',
        +            'GLTRANSLATEF','GLTRANSLATED','GLTEXSUBIMAGE2D','GLTEXSUBIMAGE1D','GLTEXPARAMETERIV','GLTEXPARAMETERI','GLTEXPARAMETERFV','GLTEXPARAMETERF',
        +            'GLTEXIMAGE2D','GLTEXIMAGE1D','GLTEXGENIV','GLTEXGENI','GLTEXGENFV','GLTEXGENF','GLTEXGENDV','GLTEXGEND',
        +            'GLTEXENVIV','GLTEXENVI','GLTEXENVFV','GLTEXENVF','GLTEXCOORDPOINTER','GLTEXCOORD4SV','GLTEXCOORD4S','GLTEXCOORD4IV',
        +            'GLTEXCOORD4I','GLTEXCOORD4FV','GLTEXCOORD4F','GLTEXCOORD4DV','GLTEXCOORD4D','GLTEXCOORD3SV','GLTEXCOORD3S','GLTEXCOORD3IV',
        +            'GLTEXCOORD3I','GLTEXCOORD3FV','GLTEXCOORD3F','GLTEXCOORD3DV','GLTEXCOORD3D','GLTEXCOORD2SV','GLTEXCOORD2S','GLTEXCOORD2IV',
        +            'GLTEXCOORD2I','GLTEXCOORD2FV','GLTEXCOORD2F','GLTEXCOORD2DV','GLTEXCOORD2D','GLTEXCOORD1SV','GLTEXCOORD1S','GLTEXCOORD1IV',
        +            'GLTEXCOORD1I','GLTEXCOORD1FV','GLTEXCOORD1F','GLTEXCOORD1DV','GLTEXCOORD1D','GLSTENCILOP','GLSTENCILMASK','GLSTENCILFUNC',
        +            'GLSHADEMODEL','GLSELECTBUFFER','GLSCISSOR','GLSCALEF','GLSCALED','GLROTATEF','GLROTATED','GLRENDERMODE',
        +            'GLRECTSV','GLRECTS','GLRECTIV','GLRECTI','GLRECTFV','GLRECTF','GLRECTDV','GLRECTD',
        +            'GLREADPIXELS','GLREADBUFFER','GLRASTERPOS4SV','GLRASTERPOS4S','GLRASTERPOS4IV','GLRASTERPOS4I','GLRASTERPOS4FV','GLRASTERPOS4F',
        +            'GLRASTERPOS4DV','GLRASTERPOS4D','GLRASTERPOS3SV','GLRASTERPOS3S','GLRASTERPOS3IV','GLRASTERPOS3I','GLRASTERPOS3FV','GLRASTERPOS3F',
        +            'GLRASTERPOS3DV','GLRASTERPOS3D','GLRASTERPOS2SV','GLRASTERPOS2S','GLRASTERPOS2IV','GLRASTERPOS2I','GLRASTERPOS2FV','GLRASTERPOS2F',
        +            'GLRASTERPOS2DV','GLRASTERPOS2D','GLPUSHNAME','GLPUSHMATRIX','GLPUSHCLIENTATTRIB','GLPUSHATTRIB','GLPRIORITIZETEXTURES','GLPOPNAME',
        +            'GLPOPMATRIX','GLPOPCLIENTATTRIB','GLPOPATTRIB','GLPOLYGONSTIPPLE','GLPOLYGONOFFSET','GLPOLYGONMODE','GLPOINTSIZE','GLPIXELZOOM',
        +            'GLPIXELTRANSFERI','GLPIXELTRANSFERF','GLPIXELSTOREI','GLPIXELSTOREF','GLPIXELMAPUSV','GLPIXELMAPUIV','GLPIXELMAPFV','GLPASSTHROUGH',
        +            'GLORTHO','GLNORMALPOINTER','GLNORMAL3SV','GLNORMAL3S','GLNORMAL3IV','GLNORMAL3I','GLNORMAL3FV','GLNORMAL3F',
        +            'GLNORMAL3DV','GLNORMAL3D','GLNORMAL3BV','GLNORMAL3B','GLNEWLIST','GLMULTMATRIXF','GLMULTMATRIXD','GLMATRIXMODE',
        +            'GLMATERIALIV','GLMATERIALI','GLMATERIALFV','GLMATERIALF','GLMAPGRID2F','GLMAPGRID2D','GLMAPGRID1F','GLMAPGRID1D',
        +            'GLMAP2F','GLMAP2D','GLMAP1F','GLMAP1D','GLLOGICOP','GLLOADNAME','GLLOADMATRIXF','GLLOADMATRIXD',
        +            'GLLOADIDENTITY','GLLISTBASE','GLLINEWIDTH','GLLINESTIPPLE','GLLIGHTMODELIV','GLLIGHTMODELI','GLLIGHTMODELFV','GLLIGHTMODELF',
        +            'GLLIGHTIV','GLLIGHTI','GLLIGHTFV','GLLIGHTF','GLISTEXTURE','GLISLIST','GLISENABLED','GLINTERLEAVEDARRAYS',
        +            'GLINITNAMES','GLINDEXUBV','GLINDEXUB','GLINDEXSV','GLINDEXS','GLINDEXPOINTER','GLINDEXMASK','GLINDEXIV',
        +            'GLINDEXI','GLINDEXFV','GLINDEXF','GLINDEXDV','GLINDEXD','GLHINT','GLGETTEXPARAMETERIV','GLGETTEXPARAMETERFV',
        +            'GLGETTEXLEVELPARAMETERIV','GLGETTEXLEVELPARAMETERFV','GLGETTEXIMAGE','GLGETTEXGENIV','GLGETTEXGENFV','GLGETTEXGENDV','GLGETTEXENVIV','GLGETTEXENVFV',
        +            'GLGETSTRING','GLGETPOLYGONSTIPPLE','GLGETPOINTERV','GLGETPIXELMAPUSV','GLGETPIXELMAPUIV','GLGETPIXELMAPFV','GLGETMATERIALIV','GLGETMATERIALFV',
        +            'GLGETMAPIV','GLGETMAPFV','GLGETMAPDV','GLGETLIGHTIV','GLGETLIGHTFV','GLGETINTEGERV','GLGETFLOATV','GLGETERROR',
        +            'GLGETDOUBLEV','GLGETCLIPPLANE','GLGETBOOLEANV','GLGENTEXTURES','GLGENLISTS','GLFRUSTUM','GLFRONTFACE','GLFOGIV',
        +            'GLFOGI','GLFOGFV','GLFOGF','GLFLUSH','GLFINISH','GLFEEDBACKBUFFER','GLEVALPOINT2','GLEVALPOINT1',
        +            'GLEVALMESH2','GLEVALMESH1','GLEVALCOORD2FV','GLEVALCOORD2F','GLEVALCOORD2DV','GLEVALCOORD2D','GLEVALCOORD1FV','GLEVALCOORD1F',
        +            'GLEVALCOORD1DV','GLEVALCOORD1D','GLENDLIST','GLEND','GLENABLECLIENTSTATE','GLENABLE','GLEDGEFLAGV','GLEDGEFLAGPOINTER',
        +            'GLEDGEFLAG','GLDRAWPIXELS','GLDRAWELEMENTS','GLDRAWBUFFER','GLDRAWARRAYS','GLDISABLECLIENTSTATE','GLDISABLE','GLDEPTHRANGE',
        +            'GLDEPTHMASK','GLDEPTHFUNC','GLDELETETEXTURES','GLDELETELISTS','GLCULLFACE','GLCOPYTEXSUBIMAGE2D','GLCOPYTEXSUBIMAGE1D','GLCOPYTEXIMAGE2D',
        +            'GLCOPYTEXIMAGE1D','GLCOPYPIXELS','GLCOLORPOINTER','GLCOLORMATERIAL','GLCOLORMASK','GLCOLOR4USV','GLCOLOR4US','GLCOLOR4UIV',
        +            'GLCOLOR4UI','GLCOLOR4UBV','GLCOLOR4UB','GLCOLOR4SV','GLCOLOR4S','GLCOLOR4IV','GLCOLOR4I','GLCOLOR4FV',
        +            'GLCOLOR4F','GLCOLOR4DV','GLCOLOR4D','GLCOLOR4BV','GLCOLOR4B','GLCOLOR3USV','GLCOLOR3US','GLCOLOR3UIV',
        +            'GLCOLOR3UI','GLCOLOR3UBV','GLCOLOR3UB','GLCOLOR3SV','GLCOLOR3S','GLCOLOR3IV','GLCOLOR3I','GLCOLOR3FV',
        +            'GLCOLOR3F','GLCOLOR3DV','GLCOLOR3D','GLCOLOR3BV','GLCOLOR3B','GLCLIPPLANE','GLCLEARSTENCIL','GLCLEARINDEX',
        +            'GLCLEARDEPTH','GLCLEARCOLOR','GLCLEARACCUM','GLCLEAR','GLCALLLISTS','GLCALLLIST','GLBLENDFUNC','GLBITMAP',
        +            'GLBINDTEXTURE','GLBEGIN','GLARRAYELEMENT','GLARETEXTURESRESIDENT','GLALPHAFUNC','GLACCUM'),
        +        2 => array(
        +            '$BEL','$BS','$CR','$CRLF','$DQ','$DT_DATE_SEPARATOR','$DT_LANGUAGE','$DT_TIME_SEPARATOR',
        +            '$ESC','$FF','$LF','$NUL','$PC_SD_MY_PC','$SPC','$SQL_OPT_TRACE_FILE_DEFAULT','$SQL_SPEC_STRING',
        +            '$TAB','$TRACKBAR_CLASS','$VT','%ACM_OPEN','%ACM_OPENW','%ACM_PLAY','%ACM_STOP','%ACN_START',
        +            '%ACN_STOP','%ACS_AUTOPLAY','%ACS_CENTER','%ACS_TIMER','%ACS_TRANSPARENT','%APP_COUNTER_FUNLOOKUP','%APP_COUNTER_KEYLOOKUP','%APP_COUNTER_LOOKUP',
        +            '%APP_COUNTER_TESTALPHA','%APP_COUNTER_UDTLOOKUP','%APP_COUNTER_VARLOOKUP','%APP_TIMER_EXECTOTAL','%APP_TIMER_INIT','%APP_TIMER_LOAD','%APP_TIMER_PREPROCESSOR','%AW_ACTIVATE',
        +            '%AW_BLEND','%AW_CENTER','%AW_HIDE','%AW_HOR_NEGATIVE','%AW_HOR_POSITIVE','%AW_SLIDE','%AW_VER_NEGATIVE','%AW_VER_POSITIVE',
        +            '%BCM_FIRST','%BLACK','%BLUE','%BM_GETCHECK','%BM_SETCHECK','%BST_CHECKED','%BST_UNCHECKED','%BS_AUTOCHECKBOX',
        +            '%BS_BOTTOM','%BS_CENTER','%BS_DEFAULT','%BS_DEFPUSHBUTTON','%BS_FLAT','%BS_LEFT','%BS_LEFTTEXT','%BS_MULTILINE',
        +            '%BS_NOTIFY','%BS_OWNERDRAW','%BS_PUSHLIKE','%BS_RIGHT','%BS_TOP','%BS_VCENTER','%BUNDLE_BUILDER_CANCELLED','%CBM_FIRST',
        +            '%CBN_CLOSEUP','%CBN_DBLCLK','%CBN_DROPDOWN','%CBN_EDITCHANGE','%CBN_EDITUPDATE','%CBN_ERRSPACE','%CBN_KILLFOCUS','%CBN_SELCANCEL',
        +            '%CBN_SELCHANGE','%CBN_SELENDCANCEL','%CBN_SELENDOK','%CBN_SETFOCUS','%CBS_AUTOHSCROLL','%CBS_DISABLENOSCROLL','%CBS_DROPDOWN','%CBS_DROPDOWNLIST',
        +            '%CBS_HASSTRINGS','%CBS_LOWERCASE','%CBS_NOINTEGRALHEIGHT','%CBS_SIMPLE','%CBS_SORT','%CBS_UPPERCASE','%CB_SELECTSTRING','%CCM_FIRST',
        +            '%CC_ANYCOLOR','%CC_ENABLEHOOK','%CC_ENABLETEMPLATE','%CC_ENABLETEMPLATEHANDLE','%CC_FULLOPEN','%CC_PREVENTFULLOPEN','%CC_RGBINIT','%CC_SHOWHELP',
        +            '%CC_SOLIDCOLOR','%CFE_BOLD','%CFE_ITALIC','%CFE_LINK','%CFE_PROTECTED','%CFE_STRIKEOUT','%CFE_UNDERLINE','%CFM_ANIMATION',
        +            '%CFM_BACKCOLOR','%CFM_BOLD','%CFM_CHARSET','%CFM_COLOR','%CFM_FACE','%CFM_ITALIC','%CFM_KERNING','%CFM_LCID',
        +            '%CFM_LINK','%CFM_OFFSET','%CFM_PROTECTED','%CFM_REVAUTHOR','%CFM_SIZE','%CFM_SPACING','%CFM_STRIKEOUT','%CFM_STYLE',
        +            '%CFM_UNDERLINE','%CFM_UNDERLINETYPE','%CFM_WEIGHT','%CGI_ACCEPT_FILE_UPLOAD','%CGI_AUTO_ADD_SPECIAL_CHARS_PREFIX','%CGI_AUTO_CREATE_VARS','%CGI_BUFFERIZE_OUTPUT','%CGI_DOUBLE_QUOTE',
        +            '%CGI_FILE_UPLOAD_BASEPATH','%CGI_FORCE_SESSION_VALIDATION','%CGI_MAX_BYTE_FROM_STD_IN','%CGI_REQUEST_METHOD_GET','%CGI_REQUEST_METHOD_POST','%CGI_SESSION_FILE_BASEPATH','%CGI_SINGLE_QUOTE','%CGI_SPECIAL_CHARS_PREFIX',
        +            '%CGI_TEMPORARY_UPLOAD_PATH','%CGI_UPLOAD_CAN_OVERWRITE','%CGI_WRITE_LOG_FILE','%CGI_WRITE_VARS_INTO_LOG_FILE','%CONOLE_ATTACH_PARENT_PROCESS','%CONSOLE_BACKGROUND_BLUE','%CONSOLE_BACKGROUND_GREEN','%CONSOLE_BACKGROUND_INTENSITY',
        +            '%CONSOLE_BACKGROUND_RED','%CONSOLE_BOX_FLAG_3DOFF','%CONSOLE_BOX_FLAG_3DON','%CONSOLE_BOX_FLAG_SHADOW','%CONSOLE_COMMON_LVB_GRID_HORIZONTAL','%CONSOLE_COMMON_LVB_GRID_LVERTICAL','%CONSOLE_COMMON_LVB_GRID_RVERTICAL','%CONSOLE_COMMON_LVB_LEADING_BYTE',
        +            '%CONSOLE_COMMON_LVB_REVERSE_VIDEO','%CONSOLE_COMMON_LVB_TRAILING_BYTE','%CONSOLE_COMMON_LVB_UNDERSCORE','%CONSOLE_CTRL_BREAK_EVENT','%CONSOLE_CTRL_C_EVENT','%CONSOLE_DOUBLE_CLICK','%CONSOLE_ENABLE_AUTO_POSITION','%CONSOLE_ENABLE_ECHO_INPUT',
        +            '%CONSOLE_ENABLE_EXTENDED_FLAGS','%CONSOLE_ENABLE_INSERT_MODE','%CONSOLE_ENABLE_LINE_INPUT','%CONSOLE_ENABLE_MOUSE_INPUT','%CONSOLE_ENABLE_PROCESSED_INPUT','%CONSOLE_ENABLE_PROCESSED_OUTPUT','%CONSOLE_ENABLE_QUICK_EDIT_MODE','%CONSOLE_ENABLE_WINDOW_INPUT',
        +            '%CONSOLE_ENABLE_WRAP_AT_EOL_OUTPUT','%CONSOLE_FOREGROUND_BLUE','%CONSOLE_FOREGROUND_GREEN','%CONSOLE_FOREGROUND_INTENSITY','%CONSOLE_FOREGROUND_RED','%CONSOLE_LBUTTON','%CONSOLE_LINE_HORIZONTAL','%CONSOLE_LINE_VERTICAL',
        +            '%CONSOLE_MBUTTON','%CONSOLE_MOUSE_MOVED','%CONSOLE_MOUSE_WHEELED','%CONSOLE_RBUTTON','%CONSOLE_SCROLLBUF_DOWN','%CONSOLE_SCROLLBUF_UP','%CONSOLE_SCROLLWND_ABSOLUTE','%CONSOLE_SCROLLWND_RELATIVE',
        +            '%CONSOLE_STD_ERROR_HANDLE','%CONSOLE_STD_INPUT_HANDLE','%CONSOLE_STD_OUTPUT_HANDLE','%CONSOLE_SW_FORCEMINIMIZE','%CONSOLE_SW_HIDE','%CONSOLE_SW_MAXIMIZE','%CONSOLE_SW_MINIMIZE','%CONSOLE_SW_RESTORE',
        +            '%CONSOLE_SW_SHOW','%CONSOLE_SW_SHOWDEFAULT','%CONSOLE_SW_SHOWMAXIMIZED','%CONSOLE_SW_SHOWMINIMIZED','%CONSOLE_SW_SHOWMINNOACTIVE','%CONSOLE_SW_SHOWNA','%CONSOLE_SW_SHOWNOACTIVATE','%CONSOLE_SW_SHOWNORMAL',
        +            '%CONSOLE_UNAVAILABLE','%CRYPTO_CALG_DES','%CRYPTO_CALG_RC2','%CRYPTO_CALG_RC4','%CRYPTO_PROV_DH_SCHANNEL','%CRYPTO_PROV_DSS','%CRYPTO_PROV_DSS_DH','%CRYPTO_PROV_FORTEZZA',
        +            '%CRYPTO_PROV_MS_EXCHANGE','%CRYPTO_PROV_RSA_FULL','%CRYPTO_PROV_RSA_SCHANNEL','%CRYPTO_PROV_RSA_SIG','%CRYPTO_PROV_SSL','%CSIDL_ADMINTOOLS','%CSIDL_ALTSTARTUP','%CSIDL_APPDATA',
        +            '%CSIDL_BITBUCKET','%CSIDL_CDBURN_AREA','%CSIDL_COMMON_ADMINTOOLS','%CSIDL_COMMON_ALTSTARTUP','%CSIDL_COMMON_APPDATA','%CSIDL_COMMON_DESKTOPDIRECTORY','%CSIDL_COMMON_DOCUMENTS','%CSIDL_COMMON_FAVORITES',
        +            '%CSIDL_COMMON_MUSIC','%CSIDL_COMMON_PICTURES','%CSIDL_COMMON_PROGRAMS','%CSIDL_COMMON_STARTMENU','%CSIDL_COMMON_STARTUP','%CSIDL_COMMON_TEMPLATES','%CSIDL_COMMON_VIDEO','%CSIDL_CONTROLS',
        +            '%CSIDL_COOKIES','%CSIDL_DESKTOP','%CSIDL_DESKTOPDIRECTORY','%CSIDL_DRIVES','%CSIDL_FAVORITES','%CSIDL_FLAG_CREATE','%CSIDL_FONTS','%CSIDL_HISTORY',
        +            '%CSIDL_INTERNET','%CSIDL_INTERNET_CACHE','%CSIDL_LOCAL_APPDATA','%CSIDL_MYDOCUMENTS','%CSIDL_MYMUSIC','%CSIDL_MYPICTURES','%CSIDL_MYVIDEO','%CSIDL_NETHOOD',
        +            '%CSIDL_NETWORK','%CSIDL_PERSONAL','%CSIDL_PRINTERS','%CSIDL_PRINTHOOD','%CSIDL_PROFILE','%CSIDL_PROGRAMS','%CSIDL_PROGRAM_FILES','%CSIDL_PROGRAM_FILES_COMMON',
        +            '%CSIDL_RECENT','%CSIDL_SENDTO','%CSIDL_STARTMENU','%CSIDL_STARTUP','%CSIDL_SYSTEM','%CSIDL_TEMPLATES','%CSIDL_WINDOWS','%CW_USEDEFAULT',
        +            '%CYAN','%DATE_TIME_FILE_CREATION','%DATE_TIME_LAST_FILE_ACCESS','%DATE_TIME_LAST_FILE_WRITE','%DICTIONARY_MEMINFO_DATA','%DICTIONARY_MEMINFO_KEYS','%DICTIONARY_MEMINFO_TOTAL','%DICTIONARY_SORTDESCENDING',
        +            '%DICTIONARY_SORTKEYS','%DSCAPS_CERTIFIED','%DSCAPS_CONTINUOUSRATE','%DSCAPS_EMULDRIVER','%DSCAPS_SECONDARY16BIT','%DSCAPS_SECONDARY8BIT','%DSCAPS_SECONDARYMONO','%DSCAPS_SECONDARYSTEREO',
        +            '%DSCCAPS_CERTIFIED','%DSCCAPS_EMULDRIVER','%DS_3DLOOK','%DS_ABSALIGN','%DS_CENTER','%DS_CENTERMOUSE','%DS_CONTEXTHELP','%DS_CONTROL',
        +            '%DS_MODALFRAME','%DS_NOFAILCREATE','%DS_SETFONT','%DS_SETFOREGROUND','%DS_SYSMODAL','%DTM_FIRST','%DTM_GETMCCOLOR','%DTM_GETMCFONT',
        +            '%DTM_GETMONTHCAL','%DTM_GETRANGE','%DTM_GETSYSTEMTIME','%DTM_SETFORMAT','%DTM_SETFORMATW','%DTM_SETMCCOLOR','%DTM_SETMCFONT','%DTM_SETRANGE',
        +            '%DTM_SETSYSTEMTIME','%DTN_CLOSEUP','%DTN_DATETIMECHANGE','%DTN_DROPDOWN','%DTN_FORMAT','%DTN_FORMATQUERY','%DTN_FORMATQUERYW','%DTN_FORMATW',
        +            '%DTN_USERSTRING','%DTN_USERSTRINGW','%DTN_WMKEYDOWN','%DTN_WMKEYDOWNW','%DTS_APPCANPARSE','%DTS_LONGDATEFORMAT','%DTS_RIGHTALIGN','%DTS_SHORTDATECENTURYFORMAT',
        +            '%DTS_SHORTDATEFORMAT','%DTS_SHOWNONE','%DTS_TIMEFORMAT','%DTS_UPDOWN','%DT_DATE_CENTURY','%DT_DATE_OK','%DT_DAY_IN_YEAR','%DT_DIFF_IN_DAYS',
        +            '%DT_DIFF_IN_HOURS','%DT_DIFF_IN_MINUTES','%DT_DIFF_IN_SECONDS','%DT_HOURS_IN_DAY','%DT_MINUTES_IN_HOUR','%DT_SECONDS_IN_DAY','%DT_SECONDS_IN_HOUR','%DT_SECONDS_IN_MINUTE',
        +            '%DT_SECONDS_IN_YEAR','%DT_USE_LONG_FORM','%DT_USE_SHORT_FORM','%DT_WRONG_DATE','%DT_WRONG_DAY','%DT_WRONG_MONTH','%ECM_FIRST','%ECOOP_AND',
        +            '%ECOOP_OR','%ECOOP_SET','%ECOOP_XOR','%ECO_AUTOHSCROLL','%ECO_AUTOVSCROLL','%ECO_AUTOWORDSELECTION','%ECO_NOHIDESEL','%ECO_READONLY',
        +            '%ECO_SELECTIONBAR','%ECO_WANTRETURN','%EM_AUTOURLDETECT','%EM_CANPASTE','%EM_CANREDO','%EM_CANUNDO','%EM_CHARFROMPOS','%EM_DISPLAYBAND',
        +            '%EM_EMPTYUNDOBUFFER','%EM_EXGETSEL','%EM_EXLIMITTEXT','%EM_EXLINEFROMCHAR','%EM_EXSETSEL','%EM_FINDTEXT','%EM_FINDTEXTEX','%EM_FINDWORDBREAK',
        +            '%EM_FMTLINES','%EM_FORMATRANGE','%EM_GETAUTOURLDETECT','%EM_GETCHARFORMAT','%EM_GETEDITSTYLE','%EM_GETEVENTMASK','%EM_GETFIRSTVISIBLELINE','%EM_GETHANDLE',
        +            '%EM_GETIMESTATUS','%EM_GETLIMITTEXT','%EM_GETLINE','%EM_GETLINECOUNT','%EM_GETMARGINS','%EM_GETMODIFY','%EM_GETOLEINTERFACE','%EM_GETOPTIONS',
        +            '%EM_GETPARAFORMAT','%EM_GETPASSWORDCHAR','%EM_GETRECT','%EM_GETREDONAME','%EM_GETSCROLLPOS','%EM_GETSEL','%EM_GETSELTEXT','%EM_GETTEXTMODE',
        +            '%EM_GETTEXTRANGE','%EM_GETTHUMB','%EM_GETUNDONAME','%EM_GETWORDBREAKPROC','%EM_GETWORDBREAKPROCEX','%EM_HIDESELECTION','%EM_LIMITTEXT','%EM_LINEFROMCHAR',
        +            '%EM_LINEINDEX','%EM_LINELENGTH','%EM_LINESCROLL','%EM_PASTESPECIAL','%EM_POSFROMCHAR','%EM_REDO','%EM_REPLACESEL','%EM_REQUESTRESIZE',
        +            '%EM_SCROLL','%EM_SCROLLCARET','%EM_SELECTIONTYPE','%EM_SETBKGNDCOLOR','%EM_SETCHARFORMAT','%EM_SETEDITSTYLE','%EM_SETEVENTMASK','%EM_SETHANDLE',
        +            '%EM_SETIMESTATUS','%EM_SETLIMITTEXT','%EM_SETMARGINS','%EM_SETMODIFY','%EM_SETOLECALLBACK','%EM_SETOPTIONS','%EM_SETPARAFORMAT','%EM_SETPASSWORDCHAR',
        +            '%EM_SETREADONLY','%EM_SETRECT','%EM_SETRECTNP','%EM_SETSCROLLPOS','%EM_SETSEL','%EM_SETTABSTOPS','%EM_SETTARGETDEVICE','%EM_SETTEXTMODE',
        +            '%EM_SETUNDOLIMIT','%EM_SETWORDBREAKPROC','%EM_SETWORDBREAKPROCEX','%EM_SETWORDWRAPMODE','%EM_SETZOOM','%EM_STOPGROUPTYPING','%EM_STREAMIN','%EM_STREAMOUT',
        +            '%EM_UNDO','%ENM_CHANGE','%ENM_CORRECTTEXT','%ENM_DRAGDROPDONE','%ENM_DROPFILES','%ENM_KEYEVENTS','%ENM_MOUSEEVENTS','%ENM_NONE',
        +            '%ENM_PARAGRAPHEXPANDED','%ENM_PROTECTED','%ENM_REQUESTRESIZE','%ENM_SCROLL','%ENM_SCROLLEVENTS','%ENM_SELCHANGE','%ENM_UPDATE','%EN_CHANGE',
        +            '%EN_MSGFILTER','%EN_SELCHANGE','%EN_UPDATE','%ES_AUTOHSCROLL','%ES_AUTOVSCROLL','%ES_CENTER','%ES_DISABLENOSCROLL','%ES_EX_NOCALLOLEINIT',
        +            '%ES_LEFT','%ES_LOWERCASE','%ES_MULTILINE','%ES_NOHIDESEL','%ES_NOOLEDRAGDROP','%ES_NUMBER','%ES_OEMCONVERT','%ES_PASSWORD',
        +            '%ES_READONLY','%ES_RIGHT','%ES_SAVESEL','%ES_SELECTIONBAR','%ES_SUNKEN','%ES_UPPERCASE','%ES_WANTRETURN','%EVAL_EXEC_STRING',
        +            '%FALSE','%FILE_ADDPATH','%FILE_ARCHIVE','%FILE_BUILDVERSION','%FILE_HIDDEN','%FILE_MAJORVERSION','%FILE_MINORVERSION','%FILE_NORMAL',
        +            '%FILE_READONLY','%FILE_REVISIONVERSION','%FILE_SUBDIR','%FILE_SYSTEM','%FILE_VLABEL','%FTP_GET_CONNECT_STATUS','%FTP_GET_FILE_BYTES_RCVD','%FTP_GET_FILE_BYTES_SENT',
        +            '%FTP_GET_LAST_RESPONSE','%FTP_GET_LOCAL_IP','%FTP_GET_SERVER_IP','%FTP_GET_TOTAL_BYTES_RCVD','%FTP_GET_TOTAL_BYTES_SENT','%FTP_LIST_FULLLIST','%FTP_LIST_FULLLISTDIR','%FTP_LIST_FULLLISTFILE',
        +            '%FTP_SET_ASYNC','%FTP_SET_CONNECT_WAIT','%FTP_SET_MAX_LISTEN_WAIT','%FTP_SET_MAX_RESPONSE_WAIT','%FTP_SET_PASSIVE','%FTP_SET_SYNC','%FW_BLACK','%FW_BOLD',
        +            '%FW_DEMIBOLD','%FW_DONTCARE','%FW_EXTRABOLD','%FW_EXTRALIGHT','%FW_HEAVY','%FW_LIGHT','%FW_MEDIUM','%FW_NORMAL',
        +            '%FW_REGULAR','%FW_SEMIBOLD','%FW_THIN','%FW_ULTRABOLD','%FW_ULTRALIGHT','%GDTR_MAX','%GDTR_MIN','%GLU_AUTO_LOAD_MATRIX',
        +            '%GLU_BEGIN','%GLU_CCW','%GLU_CULLING','%GLU_CW','%GLU_DISPLAY_MODE','%GLU_DOMAIN_DISTANCE','%GLU_EDGE_FLAG','%GLU_END',
        +            '%GLU_ERROR','%GLU_EXTENSIONS','%GLU_EXTERIOR','%GLU_FALSE','%GLU_FILL','%GLU_FLAT','%GLU_INCOMPATIBLE_GL_VERSION','%GLU_INSIDE',
        +            '%GLU_INTERIOR','%GLU_INVALID_ENUM','%GLU_INVALID_VALUE','%GLU_LINE','%GLU_MAP1_TRIM_2','%GLU_MAP1_TRIM_3','%GLU_NONE','%GLU_NURBS_ERROR1',
        +            '%GLU_NURBS_ERROR10','%GLU_NURBS_ERROR11','%GLU_NURBS_ERROR12','%GLU_NURBS_ERROR13','%GLU_NURBS_ERROR14','%GLU_NURBS_ERROR15','%GLU_NURBS_ERROR16','%GLU_NURBS_ERROR17',
        +            '%GLU_NURBS_ERROR18','%GLU_NURBS_ERROR19','%GLU_NURBS_ERROR2','%GLU_NURBS_ERROR20','%GLU_NURBS_ERROR21','%GLU_NURBS_ERROR22','%GLU_NURBS_ERROR23','%GLU_NURBS_ERROR24',
        +            '%GLU_NURBS_ERROR25','%GLU_NURBS_ERROR26','%GLU_NURBS_ERROR27','%GLU_NURBS_ERROR28','%GLU_NURBS_ERROR29','%GLU_NURBS_ERROR3','%GLU_NURBS_ERROR30','%GLU_NURBS_ERROR31',
        +            '%GLU_NURBS_ERROR32','%GLU_NURBS_ERROR33','%GLU_NURBS_ERROR34','%GLU_NURBS_ERROR35','%GLU_NURBS_ERROR36','%GLU_NURBS_ERROR37','%GLU_NURBS_ERROR4','%GLU_NURBS_ERROR5',
        +            '%GLU_NURBS_ERROR6','%GLU_NURBS_ERROR7','%GLU_NURBS_ERROR8','%GLU_NURBS_ERROR9','%GLU_OUTLINE_PATCH','%GLU_OUTLINE_POLYGON','%GLU_OUTSIDE','%GLU_OUT_OF_MEMORY',
        +            '%GLU_PARAMETRIC_ERROR','%GLU_PARAMETRIC_TOLERANCE','%GLU_PATH_LENGTH','%GLU_POINT','%GLU_SAMPLING_METHOD','%GLU_SAMPLING_TOLERANCE','%GLU_SILHOUETTE','%GLU_SMOOTH',
        +            '%GLU_TESS_BEGIN','%GLU_TESS_BEGIN_DATA','%GLU_TESS_BOUNDARY_ONLY','%GLU_TESS_COMBINE','%GLU_TESS_COMBINE_DATA','%GLU_TESS_COORD_TOO_LARGE','%GLU_TESS_EDGE_FLAG','%GLU_TESS_EDGE_FLAG_DATA',
        +            '%GLU_TESS_END','%GLU_TESS_END_DATA','%GLU_TESS_ERROR','%GLU_TESS_ERROR1','%GLU_TESS_ERROR2','%GLU_TESS_ERROR3','%GLU_TESS_ERROR4','%GLU_TESS_ERROR5',
        +            '%GLU_TESS_ERROR6','%GLU_TESS_ERROR7','%GLU_TESS_ERROR8','%GLU_TESS_ERROR_DATA','%GLU_TESS_MISSING_BEGIN_CONTOUR','%GLU_TESS_MISSING_BEGIN_POLYGON','%GLU_TESS_MISSING_END_CONTOUR','%GLU_TESS_MISSING_END_POLYGON',
        +            '%GLU_TESS_NEED_COMBINE_CALLBACK','%GLU_TESS_TOLERANCE','%GLU_TESS_VERTEX','%GLU_TESS_VERTEX_DATA','%GLU_TESS_WINDING_ABS_GEQ_TWO','%GLU_TESS_WINDING_NEGATIVE','%GLU_TESS_WINDING_NONZERO','%GLU_TESS_WINDING_ODD',
        +            '%GLU_TESS_WINDING_POSITIVE','%GLU_TESS_WINDING_RULE','%GLU_TRUE','%GLU_UNKNOWN','%GLU_U_STEP','%GLU_VERSION','%GLU_VERSION_1_1','%GLU_VERSION_1_2',
        +            '%GLU_VERTEX','%GLU_V_STEP','%GL_2D','%GL_2_BYTES','%GL_3D','%GL_3D_COLOR','%GL_3D_COLOR_TEXTURE','%GL_3_BYTES',
        +            '%GL_4D_COLOR_TEXTURE','%GL_4_BYTES','%GL_ABGR_EXT','%GL_ACCUM','%GL_ACCUM_ALPHA_BITS','%GL_ACCUM_BLUE_BITS','%GL_ACCUM_BUFFER_BIT','%GL_ACCUM_CLEAR_VALUE',
        +            '%GL_ACCUM_GREEN_BITS','%GL_ACCUM_RED_BITS','%GL_ADD','%GL_ALL_ATTRIB_BITS','%GL_ALPHA','%GL_ALPHA12','%GL_ALPHA16','%GL_ALPHA4',
        +            '%GL_ALPHA8','%GL_ALPHA_BIAS','%GL_ALPHA_BITS','%GL_ALPHA_SCALE','%GL_ALPHA_TEST','%GL_ALPHA_TEST_FUNC','%GL_ALPHA_TEST_REF','%GL_ALWAYS',
        +            '%GL_AMBIENT','%GL_AMBIENT_AND_DIFFUSE','%GL_AND','%GL_AND_INVERTED','%GL_AND_REVERSE','%GL_ARRAY_ELEMENT_LOCK_COUNT_EXT','%GL_ARRAY_ELEMENT_LOCK_FIRST_EXT','%GL_ATTRIB_STACK_DEPTH',
        +            '%GL_AUTO_NORMAL','%GL_AUX0','%GL_AUX1','%GL_AUX2','%GL_AUX3','%GL_AUX_BUFFERS','%GL_BACK','%GL_BACK_LEFT',
        +            '%GL_BACK_RIGHT','%GL_BGRA_EXT','%GL_BGR_EXT','%GL_BITMAP','%GL_BITMAP_TOKEN','%GL_BLEND','%GL_BLEND_COLOR_EXT','%GL_BLEND_DST',
        +            '%GL_BLEND_EQUATION_EXT','%GL_BLEND_SRC','%GL_BLUE','%GL_BLUE_BIAS','%GL_BLUE_BITS','%GL_BLUE_SCALE','%GL_BYTE','%GL_C3F_V3F',
        +            '%GL_C4F_N3F_V3F','%GL_C4UB_V2F','%GL_C4UB_V3F','%GL_CCW','%GL_CLAMP','%GL_CLEAR','%GL_CLIENT_ALL_ATTRIB_BITS','%GL_CLIENT_ATTRIB_STACK_DEPTH',
        +            '%GL_CLIENT_PIXEL_STORE_BIT','%GL_CLIENT_VERTEX_ARRAY_BIT','%GL_CLIP_PLANE0','%GL_CLIP_PLANE1','%GL_CLIP_PLANE2','%GL_CLIP_PLANE3','%GL_CLIP_PLANE4','%GL_CLIP_PLANE5',
        +            '%GL_CLIP_VOLUME_CLIPPING_HINT_EXT','%GL_COEFF','%GL_COLOR','%GL_COLOR_ARRAY','%GL_COLOR_ARRAY_COUNT_EXT','%GL_COLOR_ARRAY_EXT','%GL_COLOR_ARRAY_POINTER','%GL_COLOR_ARRAY_POINTER_EXT',
        +            '%GL_COLOR_ARRAY_SIZE','%GL_COLOR_ARRAY_SIZE_EXT','%GL_COLOR_ARRAY_STRIDE','%GL_COLOR_ARRAY_STRIDE_EXT','%GL_COLOR_ARRAY_TYPE','%GL_COLOR_ARRAY_TYPE_EXT','%GL_COLOR_BUFFER_BIT','%GL_COLOR_CLEAR_VALUE',
        +            '%GL_COLOR_INDEX','%GL_COLOR_INDEX12_EXT','%GL_COLOR_INDEX16_EXT','%GL_COLOR_INDEX1_EXT','%GL_COLOR_INDEX2_EXT','%GL_COLOR_INDEX4_EXT','%GL_COLOR_INDEX8_EXT','%GL_COLOR_INDEXES',
        +            '%GL_COLOR_LOGIC_OP','%GL_COLOR_MATERIAL','%GL_COLOR_MATERIAL_FACE','%GL_COLOR_MATERIAL_PARAMETER','%GL_COLOR_SUM_EXT','%GL_COLOR_TABLE_ALPHA_SIZE_EXT','%GL_COLOR_TABLE_BIAS_EXT','%GL_COLOR_TABLE_BLUE_SIZE_EXT',
        +            '%GL_COLOR_TABLE_EXT','%GL_COLOR_TABLE_FORMAT_EXT','%GL_COLOR_TABLE_GREEN_SIZE_EXT','%GL_COLOR_TABLE_INTENSITY_SIZE_EXT','%GL_COLOR_TABLE_LUMINANCE_SIZE_EXT','%GL_COLOR_TABLE_RED_SIZE_EXT','%GL_COLOR_TABLE_SCALE_EXT','%GL_COLOR_TABLE_WIDTH_EXT',
        +            '%GL_COLOR_WRITEMASK','%GL_COMPILE','%GL_COMPILE_AND_EXECUTE','%GL_CONSTANT_ALPHA_EXT','%GL_CONSTANT_ATTENUATION','%GL_CONSTANT_COLOR_EXT','%GL_CONVOLUTION_1D_EXT','%GL_CONVOLUTION_2D_EXT',
        +            '%GL_CONVOLUTION_BORDER_MODE_EXT','%GL_CONVOLUTION_FILTER_BIAS_EXT','%GL_CONVOLUTION_FILTER_SCALE_EXT','%GL_CONVOLUTION_FORMAT_EXT','%GL_CONVOLUTION_HEIGHT_EXT','%GL_CONVOLUTION_WIDTH_EXT','%GL_COPY','%GL_COPY_INVERTED',
        +            '%GL_COPY_PIXEL_TOKEN','%GL_CULL_FACE','%GL_CULL_FACE_MODE','%GL_CULL_VERTEX_EXT','%GL_CULL_VERTEX_EYE_POSITION_EXT','%GL_CULL_VERTEX_OBJECT_POSITION_EXT','%GL_CURRENT_BIT','%GL_CURRENT_COLOR',
        +            '%GL_CURRENT_INDEX','%GL_CURRENT_NORMAL','%GL_CURRENT_RASTER_COLOR','%GL_CURRENT_RASTER_DISTANCE','%GL_CURRENT_RASTER_INDEX','%GL_CURRENT_RASTER_POSITION','%GL_CURRENT_RASTER_POSITION_VALID','%GL_CURRENT_RASTER_TEXTURE_COORDS',
        +            '%GL_CURRENT_SECONDARY_COLOR_EXT','%GL_CURRENT_TEXTURE_COORDS','%GL_CW','%GL_DECAL','%GL_DECR','%GL_DEPTH','%GL_DEPTH_BIAS','%GL_DEPTH_BITS',
        +            '%GL_DEPTH_BUFFER_BIT','%GL_DEPTH_CLEAR_VALUE','%GL_DEPTH_COMPONENT','%GL_DEPTH_FUNC','%GL_DEPTH_RANGE','%GL_DEPTH_SCALE','%GL_DEPTH_TEST','%GL_DEPTH_WRITEMASK',
        +            '%GL_DIFFUSE','%GL_DITHER','%GL_DOMAIN','%GL_DONT_CARE','%GL_DOUBLE','%GL_DOUBLEBUFFER','%GL_DOUBLE_EXT','%GL_DRAW_BUFFER',
        +            '%GL_DRAW_PIXEL_TOKEN','%GL_DST_ALPHA','%GL_DST_COLOR','%GL_EDGE_FLAG','%GL_EDGE_FLAG_ARRAY','%GL_EDGE_FLAG_ARRAY_COUNT_EXT','%GL_EDGE_FLAG_ARRAY_EXT','%GL_EDGE_FLAG_ARRAY_POINTER',
        +            '%GL_EDGE_FLAG_ARRAY_POINTER_EXT','%GL_EDGE_FLAG_ARRAY_STRIDE','%GL_EDGE_FLAG_ARRAY_STRIDE_EXT','%GL_EMISSION','%GL_ENABLE_BIT','%GL_EQUAL','%GL_EQUIV','%GL_EVAL_BIT',
        +            '%GL_EXP','%GL_EXP2','%GL_EXTENSIONS','%GL_EXT_ABGR','%GL_EXT_BGRA','%GL_EXT_BLEND_COLOR','%GL_EXT_BLEND_MINMAX','%GL_EXT_BLEND_SUBTRACT',
        +            '%GL_EXT_CLIP_VOLUME_HINT','%GL_EXT_COLOR_TABLE','%GL_EXT_COMPILED_VERTEX_ARRAY','%GL_EXT_CONVOLUTION','%GL_EXT_CULL_VERTEX','%GL_EXT_HISTOGRAM','%GL_EXT_PACKED_PIXELS','%GL_EXT_PALETTED_TEXTURE',
        +            '%GL_EXT_POLYGON_OFFSET','%GL_EXT_SECONDARY_COLOR','%GL_EXT_SEPARATE_SPECULAR_COLOR','%GL_EXT_VERTEX_ARRAY','%GL_EYE_LINEAR','%GL_EYE_PLANE','%GL_FALSE','%GL_FASTEST',
        +            '%GL_FEEDBACK','%GL_FEEDBACK_BUFFER_POINTER','%GL_FEEDBACK_BUFFER_SIZE','%GL_FEEDBACK_BUFFER_TYPE','%GL_FILL','%GL_FLAT','%GL_FLOAT','%GL_FOG',
        +            '%GL_FOG_BIT','%GL_FOG_COLOR','%GL_FOG_DENSITY','%GL_FOG_END','%GL_FOG_HINT','%GL_FOG_INDEX','%GL_FOG_MODE','%GL_FOG_START',
        +            '%GL_FRONT','%GL_FRONT_AND_BACK','%GL_FRONT_FACE','%GL_FRONT_LEFT','%GL_FRONT_RIGHT','%GL_FUNC_ADD_EXT','%GL_FUNC_REVERSE_SUBTRACT_EXT','%GL_FUNC_SUBTRACT_EXT',
        +            '%GL_GEQUAL','%GL_GREATER','%GL_GREEN','%GL_GREEN_BIAS','%GL_GREEN_BITS','%GL_GREEN_SCALE','%GL_HINT_BIT','%GL_HISTOGRAM_ALPHA_SIZE_EXT',
        +            '%GL_HISTOGRAM_BLUE_SIZE_EXT','%GL_HISTOGRAM_EXT','%GL_HISTOGRAM_FORMAT_EXT','%GL_HISTOGRAM_GREEN_SIZE_EXT','%GL_HISTOGRAM_LUMINANCE_SIZE_EXT','%GL_HISTOGRAM_RED_SIZE_EXT','%GL_HISTOGRAM_SINK_EXT','%GL_HISTOGRAM_WIDTH_EXT',
        +            '%GL_INCR','%GL_INDEX_ARRAY','%GL_INDEX_ARRAY_COUNT_EXT','%GL_INDEX_ARRAY_EXT','%GL_INDEX_ARRAY_POINTER','%GL_INDEX_ARRAY_POINTER_EXT','%GL_INDEX_ARRAY_STRIDE','%GL_INDEX_ARRAY_STRIDE_EXT',
        +            '%GL_INDEX_ARRAY_TYPE','%GL_INDEX_ARRAY_TYPE_EXT','%GL_INDEX_BITS','%GL_INDEX_CLEAR_VALUE','%GL_INDEX_LOGIC_OP','%GL_INDEX_MODE','%GL_INDEX_OFFSET','%GL_INDEX_SHIFT',
        +            '%GL_INDEX_WRITEMASK','%GL_INT','%GL_INTENSITY','%GL_INTENSITY12','%GL_INTENSITY16','%GL_INTENSITY4','%GL_INTENSITY8','%GL_INVALID_ENUM',
        +            '%GL_INVALID_OPERATION','%GL_INVALID_VALUE','%GL_INVERT','%GL_KEEP','%GL_LEFT','%GL_LEQUAL','%GL_LESS','%GL_LIGHT0',
        +            '%GL_LIGHT1','%GL_LIGHT2','%GL_LIGHT3','%GL_LIGHT4','%GL_LIGHT5','%GL_LIGHT6','%GL_LIGHT7','%GL_LIGHTING',
        +            '%GL_LIGHTING_BIT','%GL_LIGHT_MODEL_AMBIENT','%GL_LIGHT_MODEL_COLOR_CONTROL_EXT','%GL_LIGHT_MODEL_LOCAL_VIEWER','%GL_LIGHT_MODEL_TWO_SIDE','%GL_LINE','%GL_LINEAR','%GL_LINEAR_ATTENUATION',
        +            '%GL_LINEAR_MIPMAP_LINEAR','%GL_LINEAR_MIPMAP_NEAREST','%GL_LINES','%GL_LINE_BIT','%GL_LINE_LOOP','%GL_LINE_RESET_TOKEN','%GL_LINE_SMOOTH','%GL_LINE_SMOOTH_HINT',
        +            '%GL_LINE_STIPPLE','%GL_LINE_STIPPLE_PATTERN','%GL_LINE_STIPPLE_REPEAT','%GL_LINE_STRIP','%GL_LINE_TOKEN','%GL_LINE_WIDTH','%GL_LINE_WIDTH_GRANULARITY','%GL_LINE_WIDTH_RANGE',
        +            '%GL_LIST_BASE','%GL_LIST_BIT','%GL_LIST_INDEX','%GL_LIST_MODE','%GL_LOAD','%GL_LOGIC_OP','%GL_LOGIC_OP_MODE','%GL_LUMINANCE',
        +            '%GL_LUMINANCE12','%GL_LUMINANCE12_ALPHA12','%GL_LUMINANCE12_ALPHA4','%GL_LUMINANCE16','%GL_LUMINANCE16_ALPHA16','%GL_LUMINANCE4','%GL_LUMINANCE4_ALPHA4','%GL_LUMINANCE6_ALPHA2',
        +            '%GL_LUMINANCE8','%GL_LUMINANCE8_ALPHA8','%GL_LUMINANCE_ALPHA','%GL_MAP1_COLOR_4','%GL_MAP1_GRID_DOMAIN','%GL_MAP1_GRID_SEGMENTS','%GL_MAP1_INDEX','%GL_MAP1_NORMAL',
        +            '%GL_MAP1_TEXTURE_COORD_1','%GL_MAP1_TEXTURE_COORD_2','%GL_MAP1_TEXTURE_COORD_3','%GL_MAP1_TEXTURE_COORD_4','%GL_MAP1_VERTEX_3','%GL_MAP1_VERTEX_4','%GL_MAP2_COLOR_4','%GL_MAP2_GRID_DOMAIN',
        +            '%GL_MAP2_GRID_SEGMENTS','%GL_MAP2_INDEX','%GL_MAP2_NORMAL','%GL_MAP2_TEXTURE_COORD_1','%GL_MAP2_TEXTURE_COORD_2','%GL_MAP2_TEXTURE_COORD_3','%GL_MAP2_TEXTURE_COORD_4','%GL_MAP2_VERTEX_3',
        +            '%GL_MAP2_VERTEX_4','%GL_MAP_COLOR','%GL_MAP_STENCIL','%GL_MATRIX_MODE','%GL_MAX_ATTRIB_STACK_DEPTH','%GL_MAX_CLIENT_ATTRIB_STACK_DEPTH','%GL_MAX_CLIP_PLANES','%GL_MAX_CONVOLUTION_HEIGHT_EXT',
        +            '%GL_MAX_CONVOLUTION_WIDTH_EXT','%GL_MAX_EVAL_ORDER','%GL_MAX_EXT','%GL_MAX_LIGHTS','%GL_MAX_LIST_NESTING','%GL_MAX_MODELVIEW_STACK_DEPTH','%GL_MAX_NAME_STACK_DEPTH','%GL_MAX_PIXEL_MAP_TABLE',
        +            '%GL_MAX_PROJECTION_STACK_DEPTH','%GL_MAX_TEXTURE_SIZE','%GL_MAX_TEXTURE_STACK_DEPTH','%GL_MAX_VIEWPORT_DIMS','%GL_MINMAX_EXT','%GL_MINMAX_FORMAT_EXT','%GL_MINMAX_SINK_EXT','%GL_MIN_EXT',
        +            '%GL_MODELVIEW','%GL_MODELVIEW_MATRIX','%GL_MODELVIEW_STACK_DEPTH','%GL_MODULATE','%GL_MULT','%GL_N3F_V3F','%GL_NAME_STACK_DEPTH','%GL_NAND',
        +            '%GL_NEAREST','%GL_NEAREST_MIPMAP_LINEAR','%GL_NEAREST_MIPMAP_NEAREST','%GL_NEVER','%GL_NICEST','%GL_NONE','%GL_NOOP','%GL_NOR',
        +            '%GL_NORMALIZE','%GL_NORMAL_ARRAY','%GL_NORMAL_ARRAY_COUNT_EXT','%GL_NORMAL_ARRAY_EXT','%GL_NORMAL_ARRAY_POINTER','%GL_NORMAL_ARRAY_POINTER_EXT','%GL_NORMAL_ARRAY_STRIDE','%GL_NORMAL_ARRAY_STRIDE_EXT',
        +            '%GL_NORMAL_ARRAY_TYPE','%GL_NORMAL_ARRAY_TYPE_EXT','%GL_NOTEQUAL','%GL_NO_ERROR','%GL_OBJECT_LINEAR','%GL_OBJECT_PLANE','%GL_ONE','%GL_ONE_MINUS_CONSTANT_ALPHA_EXT',
        +            '%GL_ONE_MINUS_CONSTANT_COLOR_EXT','%GL_ONE_MINUS_DST_ALPHA','%GL_ONE_MINUS_DST_COLOR','%GL_ONE_MINUS_SRC_ALPHA','%GL_ONE_MINUS_SRC_COLOR','%GL_OR','%GL_ORDER','%GL_OR_INVERTED',
        +            '%GL_OR_REVERSE','%GL_OUT_OF_MEMORY','%GL_PACK_ALIGNMENT','%GL_PACK_LSB_FIRST','%GL_PACK_ROW_LENGTH','%GL_PACK_SKIP_PIXELS','%GL_PACK_SKIP_ROWS','%GL_PACK_SWAP_BYTES',
        +            '%GL_PASS_THROUGH_TOKEN','%GL_PERSPECTIVE_CORRECTION_HINT','%GL_PIXEL_MAP_A_TO_A','%GL_PIXEL_MAP_A_TO_A_SIZE','%GL_PIXEL_MAP_B_TO_B','%GL_PIXEL_MAP_B_TO_B_SIZE','%GL_PIXEL_MAP_G_TO_G','%GL_PIXEL_MAP_G_TO_G_SIZE',
        +            '%GL_PIXEL_MAP_I_TO_A','%GL_PIXEL_MAP_I_TO_A_SIZE','%GL_PIXEL_MAP_I_TO_B','%GL_PIXEL_MAP_I_TO_B_SIZE','%GL_PIXEL_MAP_I_TO_G','%GL_PIXEL_MAP_I_TO_G_SIZE','%GL_PIXEL_MAP_I_TO_I','%GL_PIXEL_MAP_I_TO_I_SIZE',
        +            '%GL_PIXEL_MAP_I_TO_R','%GL_PIXEL_MAP_I_TO_R_SIZE','%GL_PIXEL_MAP_R_TO_R','%GL_PIXEL_MAP_R_TO_R_SIZE','%GL_PIXEL_MAP_S_TO_S','%GL_PIXEL_MAP_S_TO_S_SIZE','%GL_PIXEL_MODE_BIT','%GL_POINT',
        +            '%GL_POINTS','%GL_POINT_BIT','%GL_POINT_SIZE','%GL_POINT_SIZE_GRANULARITY','%GL_POINT_SIZE_RANGE','%GL_POINT_SMOOTH','%GL_POINT_SMOOTH_HINT','%GL_POINT_TOKEN',
        +            '%GL_POLYGON','%GL_POLYGON_BIT','%GL_POLYGON_MODE','%GL_POLYGON_OFFSET_BIAS_EXT','%GL_POLYGON_OFFSET_EXT','%GL_POLYGON_OFFSET_FACTOR','%GL_POLYGON_OFFSET_FACTOR_EXT','%GL_POLYGON_OFFSET_FILL',
        +            '%GL_POLYGON_OFFSET_LINE','%GL_POLYGON_OFFSET_POINT','%GL_POLYGON_OFFSET_UNITS','%GL_POLYGON_SMOOTH','%GL_POLYGON_SMOOTH_HINT','%GL_POLYGON_STIPPLE','%GL_POLYGON_STIPPLE_BIT','%GL_POLYGON_TOKEN',
        +            '%GL_POSITION','%GL_POST_COLOR_MATRIX_COLOR_TABLE_EXT','%GL_POST_CONVOLUTION_ALPHA_BIAS_EXT','%GL_POST_CONVOLUTION_ALPHA_SCALE_EXT','%GL_POST_CONVOLUTION_BLUE_BIAS_EXT','%GL_POST_CONVOLUTION_BLUE_SCALE_EXT','%GL_POST_CONVOLUTION_COLOR_TABLE_EXT','%GL_POST_CONVOLUTION_GREEN_BIAS_EXT',
        +            '%GL_POST_CONVOLUTION_GREEN_SCALE_EXT','%GL_POST_CONVOLUTION_RED_BIAS_EXT','%GL_POST_CONVOLUTION_RED_SCALE_EXT','%GL_PROJECTION','%GL_PROJECTION_MATRIX','%GL_PROJECTION_STACK_DEPTH','%GL_PROXY_COLOR_TABLE_EXT','%GL_PROXY_HISTOGRAM_EXT',
        +            '%GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_EXT','%GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_EXT','%GL_PROXY_TEXTURE_1D','%GL_PROXY_TEXTURE_2D','%GL_Q','%GL_QUADRATIC_ATTENUATION','%GL_QUADS','%GL_QUAD_STRIP',
        +            '%GL_R','%GL_R3_G3_B2','%GL_READ_BUFFER','%GL_RED','%GL_REDUCE_EXT','%GL_RED_BIAS','%GL_RED_BITS','%GL_RED_SCALE',
        +            '%GL_RENDER','%GL_RENDERER','%GL_RENDER_MODE','%GL_REPEAT','%GL_REPLACE','%GL_RETURN','%GL_RGB','%GL_RGB10',
        +            '%GL_RGB10_A2','%GL_RGB12','%GL_RGB16','%GL_RGB4','%GL_RGB5','%GL_RGB5_A1','%GL_RGB8','%GL_RGBA',
        +            '%GL_RGBA12','%GL_RGBA16','%GL_RGBA2','%GL_RGBA4','%GL_RGBA8','%GL_RGBA_MODE','%GL_RIGHT','%GL_S',
        +            '%GL_SCISSOR_BIT','%GL_SCISSOR_BOX','%GL_SCISSOR_TEST','%GL_SECONDARY_COLOR_ARRAY_EXT','%GL_SECONDARY_COLOR_ARRAY_POINTER_EXT','%GL_SECONDARY_COLOR_ARRAY_SIZE_EXT','%GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT','%GL_SECONDARY_COLOR_ARRAY_TYPE_EXT',
        +            '%GL_SELECT','%GL_SELECTION_BUFFER_POINTER','%GL_SELECTION_BUFFER_SIZE','%GL_SEPARABLE_2D_EXT','%GL_SEPARATE_SPECULAR_COLOR_EXT','%GL_SET','%GL_SHADE_MODEL','%GL_SHININESS',
        +            '%GL_SHORT','%GL_SINGLE_COLOR_EXT','%GL_SMOOTH','%GL_SPECULAR','%GL_SPHERE_MAP','%GL_SPOT_CUTOFF','%GL_SPOT_DIRECTION','%GL_SPOT_EXPONENT',
        +            '%GL_SRC_ALPHA','%GL_SRC_ALPHA_SATURATE','%GL_SRC_COLOR','%GL_STACK_OVERFLOW','%GL_STACK_UNDERFLOW','%GL_STENCIL','%GL_STENCIL_BITS','%GL_STENCIL_BUFFER_BIT',
        +            '%GL_STENCIL_CLEAR_VALUE','%GL_STENCIL_FAIL','%GL_STENCIL_FUNC','%GL_STENCIL_INDEX','%GL_STENCIL_PASS_DEPTH_FAIL','%GL_STENCIL_PASS_DEPTH_PASS','%GL_STENCIL_REF','%GL_STENCIL_TEST',
        +            '%GL_STENCIL_VALUE_MASK','%GL_STENCIL_WRITEMASK','%GL_STEREO','%GL_SUBPIXEL_BITS','%GL_T','%GL_T2F_C3F_V3F','%GL_T2F_C4F_N3F_V3F','%GL_T2F_C4UB_V3F',
        +            '%GL_T2F_N3F_V3F','%GL_T2F_V3F','%GL_T4F_C4F_N3F_V4F','%GL_T4F_V4F','%GL_TABLE_TOO_LARGE_EXT','%GL_TEXTURE','%GL_TEXTURE_1D','%GL_TEXTURE_2D',
        +            '%GL_TEXTURE_ALPHA_SIZE','%GL_TEXTURE_BINDING_1D','%GL_TEXTURE_BINDING_2D','%GL_TEXTURE_BIT','%GL_TEXTURE_BLUE_SIZE','%GL_TEXTURE_BORDER','%GL_TEXTURE_BORDER_COLOR','%GL_TEXTURE_COMPONENTS',
        +            '%GL_TEXTURE_COORD_ARRAY','%GL_TEXTURE_COORD_ARRAY_COUNT_EXT','%GL_TEXTURE_COORD_ARRAY_EXT','%GL_TEXTURE_COORD_ARRAY_POINTER','%GL_TEXTURE_COORD_ARRAY_POINTER_EXT','%GL_TEXTURE_COORD_ARRAY_SIZE','%GL_TEXTURE_COORD_ARRAY_SIZE_EXT','%GL_TEXTURE_COORD_ARRAY_STRIDE',
        +            '%GL_TEXTURE_COORD_ARRAY_STRIDE_EXT','%GL_TEXTURE_COORD_ARRAY_TYPE','%GL_TEXTURE_COORD_ARRAY_TYPE_EXT','%GL_TEXTURE_ENV','%GL_TEXTURE_ENV_COLOR','%GL_TEXTURE_ENV_MODE','%GL_TEXTURE_GEN_MODE','%GL_TEXTURE_GEN_Q',
        +            '%GL_TEXTURE_GEN_R','%GL_TEXTURE_GEN_S','%GL_TEXTURE_GEN_T','%GL_TEXTURE_GREEN_SIZE','%GL_TEXTURE_HEIGHT','%GL_TEXTURE_INTENSITY_SIZE','%GL_TEXTURE_INTERNAL_FORMAT','%GL_TEXTURE_LUMINANCE_SIZE',
        +            '%GL_TEXTURE_MAG_FILTER','%GL_TEXTURE_MATRIX','%GL_TEXTURE_MIN_FILTER','%GL_TEXTURE_PRIORITY','%GL_TEXTURE_RED_SIZE','%GL_TEXTURE_RESIDENT','%GL_TEXTURE_STACK_DEPTH','%GL_TEXTURE_WIDTH',
        +            '%GL_TEXTURE_WRAP_S','%GL_TEXTURE_WRAP_T','%GL_TRANSFORM_BIT','%GL_TRIANGLES','%GL_TRIANGLE_FAN','%GL_TRIANGLE_STRIP','%GL_TRUE','%GL_UNPACK_ALIGNMENT',
        +            '%GL_UNPACK_LSB_FIRST','%GL_UNPACK_ROW_LENGTH','%GL_UNPACK_SKIP_PIXELS','%GL_UNPACK_SKIP_ROWS','%GL_UNPACK_SWAP_BYTES','%GL_UNSIGNED_BYTE','%GL_UNSIGNED_BYTE_3_3_2_EXT','%GL_UNSIGNED_INT',
        +            '%GL_UNSIGNED_INT_10_10_10_2_EXT','%GL_UNSIGNED_INT_8_8_8_8_EXT','%GL_UNSIGNED_SHORT','%GL_UNSIGNED_SHORT_4_4_4_4_EXT','%GL_UNSIGNED_SHORT_5_5_5_1_EXT','%GL_V2F','%GL_V3F','%GL_VENDOR',
        +            '%GL_VERSION','%GL_VERSION_1_1','%GL_VERTEX_ARRAY','%GL_VERTEX_ARRAY_COUNT_EXT','%GL_VERTEX_ARRAY_EXT','%GL_VERTEX_ARRAY_POINTER','%GL_VERTEX_ARRAY_POINTER_EXT','%GL_VERTEX_ARRAY_SIZE',
        +            '%GL_VERTEX_ARRAY_SIZE_EXT','%GL_VERTEX_ARRAY_STRIDE','%GL_VERTEX_ARRAY_STRIDE_EXT','%GL_VERTEX_ARRAY_TYPE','%GL_VERTEX_ARRAY_TYPE_EXT','%GL_VIEWPORT','%GL_VIEWPORT_BIT','%GL_WIN_SWAP_HINT',
        +            '%GL_XOR','%GL_ZERO','%GL_ZOOM_X','%GL_ZOOM_Y','%GRAY','%GREEN','%GWLP_HINSTANCE','%GWLP_HWNDPARENT',
        +            '%GWLP_ID','%GWLP_USERDATA','%GWLP_WNDPROC','%GWL_EXSTYLE','%GWL_HINSTANCE','%GWL_HWNDPARENT','%GWL_ID','%GWL_STYLE',
        +            '%GWL_USERDATA','%GWL_WNDPROC','%HDM_FIRST','%HTCAPTION','%HWND_BOTTOM','%HWND_DESKTOP','%HWND_MESSAGE','%HWND_NOTOPMOST',
        +            '%HWND_TOP','%HWND_TOPMOST','%ICRYPTO_XOR_DECREASE','%ICRYPTO_XOR_INCREASE','%ICRYPTO_XOR_NORMAL','%IDABORT','%IDCANCEL','%IDCONTINUE',
        +            '%IDIGNORE','%IDNO','%IDOK','%IDRETRY','%IDTIMEOUT','%IDTRYAGAIN','%IDYES','%INTERNET_CONNECTION_CONFIGURED',
        +            '%INTERNET_CONNECTION_LAN','%INTERNET_CONNECTION_MODEM','%INTERNET_CONNECTION_MODEM_BUSY','%INTERNET_CONNECTION_OFFLINE','%INTERNET_CONNECTION_PROXY','%INTERNET_RAS_INSTALLED','%LBN_DBLCLK','%LBN_KILLFOCUS',
        +            '%LBN_SELCANCEL','%LBN_SELCHANGE','%LBN_SETFOCUS','%LBS_DISABLENOSCROLL','%LBS_EXTENDEDSEL','%LBS_MULTICOLUMN','%LBS_MULTIPLESEL','%LBS_NOINTEGRALHEIGHT',
        +            '%LBS_NOSEL','%LBS_NOTIFY','%LBS_SORT','%LBS_STANDARD','%LBS_USETABSTOPS','%LB_ADDFILE','%LB_ADDSTRING','%LB_DELETESTRING',
        +            '%LB_DIR','%LB_FINDSTRING','%LB_FINDSTRINGEXACT','%LB_GETANCHORINDEX','%LB_GETCARETINDEX','%LB_GETCOUNT','%LB_GETCURSEL','%LB_GETHORIZONTALEXTENT',
        +            '%LB_GETITEMDATA','%LB_GETITEMHEIGHT','%LB_GETITEMRECT','%LB_GETLISTBOXINFO','%LB_GETLOCALE','%LB_GETSEL','%LB_GETSELCOUNT','%LB_GETSELITEMS',
        +            '%LB_GETTEXT','%LB_GETTEXTLEN','%LB_GETTOPINDEX','%LB_INITSTORAGE','%LB_INSERTSTRING','%LB_ITEMFROMPOINT','%LB_MULTIPLEADDSTRING','%LB_RESETCONTENT',
        +            '%LB_SELECTSTRING','%LB_SELITEMRANGE','%LB_SELITEMRANGEEX','%LB_SETANCHORINDEX','%LB_SETCARETINDEX','%LB_SETCOLUMNWIDTH','%LB_SETCOUNT','%LB_SETCURSEL',
        +            '%LB_SETHORIZONTALEXTENT','%LB_SETITEMDATA','%LB_SETITEMHEIGHT','%LB_SETLOCALE','%LB_SETSEL','%LB_SETTABSTOPS','%LB_SETTOPINDEX','%LF_FACESIZE',
        +            '%LTGRAY','%LVM_FIRST','%LWA_ALPHA','%LWA_COLORKEY','%MAGENTA','%MAXBYTE','%MAXCHAR','%MAXDWORD',
        +            '%MAXSHORT','%MAXWORD','%MAX_PATH','%MB_ABORTRETRYIGNORE','%MB_APPLMODAL','%MB_CANCELTRYCONTINUE','%MB_DEFBUTTON1','%MB_DEFBUTTON2',
        +            '%MB_DEFBUTTON3','%MB_HELP','%MB_ICONASTERISK','%MB_ICONERROR','%MB_ICONEXCLAMATION','%MB_ICONHAND','%MB_ICONINFORMATION','%MB_ICONQUESTION',
        +            '%MB_ICONSTOP','%MB_ICONWARNING','%MB_OK','%MB_OKCANCEL','%MB_RETRYCANCEL','%MB_SIMPLE','%MB_SYSTEMMODAL','%MB_TOPMOST',
        +            '%MB_YESNO','%MB_YESNOCANCEL','%MF_CHECKED','%MF_DISABLED','%MF_ENABLED','%MF_GRAYED','%MF_SEPARATOR','%MF_UNCHECKED',
        +            '%MINCHAR','%MINLONG','%MINSHORT','%NULL','%ODBC352_INC','%ODBCVER','%ODBC_ADD_DSN','%ODBC_ADD_SYS_DSN',
        +            '%ODBC_BOTH_DSN','%ODBC_CONFIG_DRIVER','%ODBC_CONFIG_DRIVER_MAX','%ODBC_CONFIG_DSN','%ODBC_CONFIG_SYS_DSN','%ODBC_DRIVER_VERSION','%ODBC_ERROR_COMPONENT_NOT_FOUND','%ODBC_ERROR_CREATE_DSN_FAILED',
        +            '%ODBC_ERROR_GENERAL_ERR','%ODBC_ERROR_INVALID_BUFF_LEN','%ODBC_ERROR_INVALID_DSN','%ODBC_ERROR_INVALID_HWND','%ODBC_ERROR_INVALID_INF','%ODBC_ERROR_INVALID_KEYWORD_VALUE','%ODBC_ERROR_INVALID_LOG_FILE','%ODBC_ERROR_INVALID_NAME',
        +            '%ODBC_ERROR_INVALID_PARAM_SEQUENCE','%ODBC_ERROR_INVALID_PATH','%ODBC_ERROR_INVALID_REQUEST_TYPE','%ODBC_ERROR_INVALID_STR','%ODBC_ERROR_LOAD_LIB_FAILED','%ODBC_ERROR_OUTPUT_STRING_TRUNCATED','%ODBC_ERROR_OUT_OF_MEM','%ODBC_ERROR_REMOVE_DSN_FAILED',
        +            '%ODBC_ERROR_REQUEST_FAILED','%ODBC_ERROR_USAGE_UPDATE_FAILED','%ODBC_ERROR_USER_CANCELED','%ODBC_ERROR_WRITING_SYSINFO_FAILED','%ODBC_INSTALL_COMPLETE','%ODBC_INSTALL_DRIVER','%ODBC_INSTALL_INQUIRY','%ODBC_REMOVE_DEFAULT_DSN',
        +            '%ODBC_REMOVE_DRIVER','%ODBC_REMOVE_DSN','%ODBC_REMOVE_SYS_DSN','%ODBC_SYSTEM_DSN','%ODBC_USER_DSN','%OFN_ALLOWMULTISELECT','%OFN_CREATEPROMPT','%OFN_ENABLEHOOK',
        +            '%OFN_ENABLEINCLUDENOTIFY','%OFN_ENABLESIZING','%OFN_ENABLETEMPLATE','%OFN_ENABLETEMPLATEHANDLE','%OFN_EXPLORER','%OFN_EXTENSIONDIFFERENT','%OFN_FILEMUSTEXIST','%OFN_HIDEREADONLY',
        +            '%OFN_LONGNAMES','%OFN_NOCHANGEDIR','%OFN_NODEREFERENCELINKS','%OFN_NOLONGNAMES','%OFN_NONETWORKBUTTON','%OFN_NOREADONLYRETURN','%OFN_NOTESTFILECREATE','%OFN_NOVALIDATE',
        +            '%OFN_OVERWRITEPROMPT','%OFN_PATHMUSTEXIST','%OFN_READONLY','%OFN_SHAREAWARE','%OFN_SHOWHELP','%OS_ERROR_CALLFUNCTION','%OS_ERROR_EMPTYSTRING','%OS_ERROR_LOADLIBRARY',
        +            '%OS_ERROR_SUCCESS','%OS_ERROR_WRONGPARAMETER','%OS_SHELL_ASYNC','%OS_SHELL_SYNC','%OS_WINDOWS_2K','%OS_WINDOWS_95','%OS_WINDOWS_95_OSR2','%OS_WINDOWS_98',
        +            '%OS_WINDOWS_98_SE','%OS_WINDOWS_ME','%OS_WINDOWS_NT','%OS_WINDOWS_SERVER_2003','%OS_WINDOWS_SERVER_LONGHORN','%OS_WINDOWS_SERVER_LONGHORN_DC','%OS_WINDOWS_VISTA','%OS_WINDOWS_XP',
        +            '%OS_WNDSTYLE_HIDE','%OS_WNDSTYLE_MAXIMIZED','%OS_WNDSTYLE_MINIMIZED','%OS_WNDSTYLE_MINIMIZEDNOFOCUS','%OS_WNDSTYLE_NORMAL','%OS_WNDSTYLE_NORMALNOFOCUS','%PATH_EXT','%PATH_FILE',
        +            '%PATH_FILEEXT','%PATH_ROOT','%PATH_ROOTPATH','%PATH_ROOTPATHPROG','%PATH_ROOTPATHPROGEXT','%PBM_DELTAPOS','%PBM_GETPOS','%PBM_GETRANGE',
        +            '%PBM_SETBARCOLOR','%PBM_SETBKCOLOR','%PBM_SETPOS','%PBM_SETRANGE','%PBM_SETRANGE32','%PBM_SETSTEP','%PBM_STEPIT','%PBS_SMOOTH',
        +            '%PBS_VERTICAL','%PC_DISABLEWAKEEVENT_OFF','%PC_DISABLEWAKEEVENT_ON','%PC_EB_NOCONFIRMATION','%PC_EB_NOPROGRESSUI','%PC_EB_NORMAL','%PC_EB_NOSOUND','%PC_FORCECRITICAL_OFF',
        +            '%PC_FORCECRITICAL_ON','%PC_HIBERNATE_OFF','%PC_HIBERNATE_ON','%PC_RD_FORCE','%PC_RD_FORCEIFHUNG','%PC_RD_LOGOFF','%PC_RD_POWEROFF','%PC_RD_REBOOT',
        +            '%PC_RD_SHUTDOWN','%PC_SD_DONOT_FORCE','%PC_SD_DONOT_REBOOT','%PC_SD_FORCE','%PC_SD_REBOOT','%PFA_CENTER','%PFA_LEFT','%PFA_RIGHT',
        +            '%PF_3DNOW_INSTRUCTIONS_AVAILABLE','%PF_CHANNELS_ENABLED','%PF_COMPARE64_EXCHANGE128','%PF_COMPARE_EXCHANGE128','%PF_COMPARE_EXCHANGE_DOUBLE','%PF_FLOATING_POINT_EMULATED','%PF_FLOATING_POINT_PRECISION_ERRATA','%PF_MMX_INSTRUCTIONS_AVAILABLE',
        +            '%PF_NX_ENABLED','%PF_PAE_ENABLED','%PF_RDTSC_INSTRUCTION_AVAILABLE','%PF_SSE3_INSTRUCTIONS_AVAILABLE','%PF_XMMI64_INSTRUCTIONS_AVAILABLE','%PF_XMMI_INSTRUCTIONS_AVAILABLE','%PGM_FIRST','%RED',
        +            '%RTF_UBB','%SAPI_SVSFDEFAULT','%SAPI_SVSFISFILENAME','%SAPI_SVSFISNOTXML','%SAPI_SVSFISXML','%SAPI_SVSFLAGSASYNC','%SAPI_SVSFNLPMASK','%SAPI_SVSFNLPSPEAKPUNC',
        +            '%SAPI_SVSFPERSISTXML','%SAPI_SVSFPURGEBEFORESPEAK','%SAPI_SVSFUNUSEDFLAGS','%SAPI_SVSFVOICEMASK','%SBS_SIZEGRIP','%SB_BOTTOM','%SB_ENDSCROLL','%SB_LEFT',
        +            '%SB_LINEDOWN','%SB_LINELEFT','%SB_LINERIGHT','%SB_LINEUP','%SB_PAGEDOWN','%SB_PAGELEFT','%SB_PAGERIGHT','%SB_PAGEUP',
        +            '%SB_RIGHT','%SB_SETPARTS','%SB_SETTEXT','%SB_THUMBPOSITION','%SB_THUMBTRACK','%SB_TOP','%SCF_ALL','%SCF_ASSOCIATEFONT',
        +            '%SCF_DEFAULT','%SCF_NOKBUPDATE','%SCF_SELECTION','%SCF_USEUIRULES','%SCF_WORD','%SC_CLOSE','%SC_CONTEXTHELP','%SC_HOTKEY',
        +            '%SC_HSCROLL','%SC_KEYMENU','%SC_MAXIMIZE','%SC_MINIMIZE','%SC_MONITORPOWER','%SC_MOUSEMENU','%SC_MOVE','%SC_NEXTWINDOW',
        +            '%SC_PREVWINDOW','%SC_RESTORE','%SC_SCREENSAVE','%SC_SIZE','%SC_TASKLIST','%SC_VSCROLL','%SERVICE_ACTIVE','%SERVICE_AUTO_START',
        +            '%SERVICE_BOOT_START','%SERVICE_CONTINUE_PENDING','%SERVICE_DEMAND_START','%SERVICE_DISABLED','%SERVICE_DRIVER','%SERVICE_INACTIVE','%SERVICE_INFO_DISPLAY_NAME','%SERVICE_INFO_NAME',
        +            '%SERVICE_PAUSED','%SERVICE_PAUSE_PENDING','%SERVICE_RUNNING','%SERVICE_START_PENDING','%SERVICE_STATE_ALL','%SERVICE_STOPPED','%SERVICE_STOP_PENDING','%SERVICE_SYSTEM_START',
        +            '%SERVICE_TYPE_ALL','%SERVICE_WIN32','%SES_ALLOWBEEPS','%SES_BEEPONMAXTEXT','%SES_BIDI','%SES_EMULATE10','%SES_EMULATESYSEDIT','%SES_EXTENDBACKCOLOR',
        +            '%SES_LOWERCASE','%SES_MAPCPS','%SES_NOIME','%SES_NOINPUTSEQUENCECHK','%SES_SCROLLONKILLFOCUS','%SES_UPPERCASE','%SES_USEAIMM','%SES_USECRLF',
        +            '%SES_XLTCRCRLFTOCR','%SF_RTF','%SF_TEXT','%SMTP_SET_ATTACH_CONTENT_TYPE','%SMTP_SET_CONTENT_TYPE_PREFIX','%SQL_AA_FALSE','%SQL_AA_TRUE','%SQL_ACCESSIBLE_PROCEDURES',
        +            '%SQL_ACCESSIBLE_TABLES','%SQL_ACCESS_MODE','%SQL_ACTIVE_CONNECTIONS','%SQL_ACTIVE_ENVIRONMENTS','%SQL_ACTIVE_STATEMENTS','%SQL_ADD','%SQL_AD_ADD_CONSTRAINT_DEFERRABLE','%SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED',
        +            '%SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE','%SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE','%SQL_AD_ADD_DOMAIN_CONSTRAINT','%SQL_AD_ADD_DOMAIN_DEFAULT','%SQL_AD_CONSTRAINT_NAME_DEFINITION','%SQL_AD_DROP_DOMAIN_CONSTRAINT','%SQL_AD_DROP_DOMAIN_DEFAULT','%SQL_AF_ALL',
        +            '%SQL_AF_AVG','%SQL_AF_COUNT','%SQL_AF_DISTINCT','%SQL_AF_MAX','%SQL_AF_MIN','%SQL_AF_SUM','%SQL_AGGREGATE_FUNCTIONS','%SQL_ALL_EXCEPT_LIKE',
        +            '%SQL_ALL_TYPES','%SQL_ALTER_DOMAIN','%SQL_ALTER_TABLE','%SQL_AM_CONNECTION','%SQL_AM_NONE','%SQL_AM_STATEMENT','%SQL_API_ALL_FUNCTIONS','%SQL_API_LOADBYORDINAL',
        +            '%SQL_API_ODBC3_ALL_FUNCTIONS','%SQL_API_ODBC3_ALL_FUNCTIONS_SIZE','%SQL_API_SQLALLOCCONNECT','%SQL_API_SQLALLOCENV','%SQL_API_SQLALLOCHANDLE','%SQL_API_SQLALLOCHANDLESTD','%SQL_API_SQLALLOCSTMT','%SQL_API_SQLBINDCOL',
        +            '%SQL_API_SQLBINDPARAM','%SQL_API_SQLBINDPARAMETER','%SQL_API_SQLBROWSECONNECT','%SQL_API_SQLBULKOPERATIONS','%SQL_API_SQLCANCEL','%SQL_API_SQLCLOSECURSOR','%SQL_API_SQLCOLATTRIBUTE','%SQL_API_SQLCOLATTRIBUTES',
        +            '%SQL_API_SQLCOLUMNPRIVILEGES','%SQL_API_SQLCOLUMNS','%SQL_API_SQLCONNECT','%SQL_API_SQLCOPYDESC','%SQL_API_SQLDATASOURCES','%SQL_API_SQLDESCRIBECOL','%SQL_API_SQLDESCRIBEPARAM','%SQL_API_SQLDISCONNECT',
        +            '%SQL_API_SQLDRIVERCONNECT','%SQL_API_SQLDRIVERS','%SQL_API_SQLENDTRAN','%SQL_API_SQLERROR','%SQL_API_SQLEXECDIRECT','%SQL_API_SQLEXECUTE','%SQL_API_SQLEXTENDEDFETCH','%SQL_API_SQLFETCH',
        +            '%SQL_API_SQLFETCHSCROLL','%SQL_API_SQLFOREIGNKEYS','%SQL_API_SQLFREECONNECT','%SQL_API_SQLFREEENV','%SQL_API_SQLFREEHANDLE','%SQL_API_SQLFREESTMT','%SQL_API_SQLGETCONNECTATTR','%SQL_API_SQLGETCONNECTOPTION',
        +            '%SQL_API_SQLGETCURSORNAME','%SQL_API_SQLGETDATA','%SQL_API_SQLGETDESCFIELD','%SQL_API_SQLGETDESCREC','%SQL_API_SQLGETDIAGFIELD','%SQL_API_SQLGETDIAGREC','%SQL_API_SQLGETENVATTR','%SQL_API_SQLGETFUNCTIONS',
        +            '%SQL_API_SQLGETINFO','%SQL_API_SQLGETSTMTATTR','%SQL_API_SQLGETSTMTOPTION','%SQL_API_SQLGETTYPEINFO','%SQL_API_SQLMORERESULTS','%SQL_API_SQLNATIVESQL','%SQL_API_SQLNUMPARAMS','%SQL_API_SQLNUMRESULTCOLS',
        +            '%SQL_API_SQLPARAMDATA','%SQL_API_SQLPARAMOPTIONS','%SQL_API_SQLPREPARE','%SQL_API_SQLPRIMARYKEYS','%SQL_API_SQLPROCEDURECOLUMNS','%SQL_API_SQLPROCEDURES','%SQL_API_SQLPUTDATA','%SQL_API_SQLROWCOUNT',
        +            '%SQL_API_SQLSETCONNECTATTR','%SQL_API_SQLSETCONNECTOPTION','%SQL_API_SQLSETCURSORNAME','%SQL_API_SQLSETDESCFIELD','%SQL_API_SQLSETDESCREC','%SQL_API_SQLSETENVATTR','%SQL_API_SQLSETPARAM','%SQL_API_SQLSETPOS',
        +            '%SQL_API_SQLSETSCROLLOPTIONS','%SQL_API_SQLSETSTMTATTR','%SQL_API_SQLSETSTMTOPTION','%SQL_API_SQLSPECIALCOLUMNS','%SQL_API_SQLSTATISTICS','%SQL_API_SQLTABLEPRIVILEGES','%SQL_API_SQLTABLES','%SQL_API_SQLTRANSACT',
        +            '%SQL_ARD_TYPE','%SQL_ASYNC_ENABLE','%SQL_ASYNC_ENABLE_DEFAULT','%SQL_ASYNC_ENABLE_OFF','%SQL_ASYNC_ENABLE_ON','%SQL_ASYNC_MODE','%SQL_ATTR_ACCESS_MODE','%SQL_ATTR_ANSI_APP',
        +            '%SQL_ATTR_APP_PARAM_DESC','%SQL_ATTR_APP_ROW_DESC','%SQL_ATTR_ASYNC_ENABLE','%SQL_ATTR_AUTOCOMMIT','%SQL_ATTR_AUTO_IPD','%SQL_ATTR_CONCURRENCY','%SQL_ATTR_CONNECTION_DEAD','%SQL_ATTR_CONNECTION_POOLING',
        +            '%SQL_ATTR_CONNECTION_TIMEOUT','%SQL_ATTR_CP_MATCH','%SQL_ATTR_CURRENT_CATALOG','%SQL_ATTR_CURSOR_SCROLLABLE','%SQL_ATTR_CURSOR_SENSITIVITY','%SQL_ATTR_CURSOR_TYPE','%SQL_ATTR_DISCONNECT_BEHAVIOR','%SQL_ATTR_ENABLE_AUTO_IPD',
        +            '%SQL_ATTR_ENLIST_IN_DTC','%SQL_ATTR_ENLIST_IN_XA','%SQL_ATTR_FETCH_BOOKMARK_PTR','%SQL_ATTR_IMP_PARAM_DESC','%SQL_ATTR_IMP_ROW_DESC','%SQL_ATTR_KEYSET_SIZE','%SQL_ATTR_LOGIN_TIMEOUT','%SQL_ATTR_MAX_LENGTH',
        +            '%SQL_ATTR_MAX_ROWS','%SQL_ATTR_METADATA_ID','%SQL_ATTR_NOSCAN','%SQL_ATTR_ODBC_CURSORS','%SQL_ATTR_ODBC_VERSION','%SQL_ATTR_OUTPUT_NTS','%SQL_ATTR_PACKET_SIZE','%SQL_ATTR_PARAMSET_SIZE',
        +            '%SQL_ATTR_PARAMS_PROCESSED_PTR','%SQL_ATTR_PARAM_BIND_OFFSET_PTR','%SQL_ATTR_PARAM_BIND_TYPE','%SQL_ATTR_PARAM_OPERATION_PTR','%SQL_ATTR_PARAM_STATUS_PTR','%SQL_ATTR_QUERY_TIMEOUT','%SQL_ATTR_QUIET_MODE','%SQL_ATTR_READONLY',
        +            '%SQL_ATTR_READWRITE_UNKNOWN','%SQL_ATTR_RETRIEVE_DATA','%SQL_ATTR_ROWS_FETCHED_PTR','%SQL_ATTR_ROW_ARRAY_SIZE','%SQL_ATTR_ROW_BIND_OFFSET_PTR','%SQL_ATTR_ROW_BIND_TYPE','%SQL_ATTR_ROW_NUMBER','%SQL_ATTR_ROW_OPERATION_PTR',
        +            '%SQL_ATTR_ROW_STATUS_PTR','%SQL_ATTR_SIMULATE_CURSOR','%SQL_ATTR_TRACE','%SQL_ATTR_TRACEFILE','%SQL_ATTR_TRANSLATE_LIB','%SQL_ATTR_TRANSLATE_OPTION','%SQL_ATTR_TXN_ISOLATION','%SQL_ATTR_USE_BOOKMARKS',
        +            '%SQL_ATTR_WRITE','%SQL_AT_ADD_COLUMN','%SQL_AT_ADD_COLUMN_COLLATION','%SQL_AT_ADD_COLUMN_DEFAULT','%SQL_AT_ADD_COLUMN_SINGLE','%SQL_AT_ADD_CONSTRAINT','%SQL_AT_ADD_TABLE_CONSTRAINT','%SQL_AT_CONSTRAINT_DEFERRABLE',
        +            '%SQL_AT_CONSTRAINT_INITIALLY_DEFERRED','%SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE','%SQL_AT_CONSTRAINT_NAME_DEFINITION','%SQL_AT_CONSTRAINT_NON_DEFERRABLE','%SQL_AT_DROP_COLUMN','%SQL_AT_DROP_COLUMN_CASCADE','%SQL_AT_DROP_COLUMN_DEFAULT','%SQL_AT_DROP_COLUMN_RESTRICT',
        +            '%SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE','%SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT','%SQL_AT_SET_COLUMN_DEFAULT','%SQL_AUTOCOMMIT','%SQL_AUTOCOMMIT_DEFAULT','%SQL_AUTOCOMMIT_OFF','%SQL_AUTOCOMMIT_ON','%SQL_BATCH_ROW_COUNT',
        +            '%SQL_BATCH_SUPPORT','%SQL_BEST_ROWID','%SQL_BIGINT','%SQL_BINARY','%SQL_BIND_BY_COLUMN','%SQL_BIND_TYPE','%SQL_BIND_TYPE_DEFAULT','%SQL_BIT',
        +            '%SQL_BOOKMARK_PERSISTENCE','%SQL_BP_CLOSE','%SQL_BP_DELETE','%SQL_BP_DROP','%SQL_BP_OTHER_HSTMT','%SQL_BP_SCROLL','%SQL_BP_TRANSACTION','%SQL_BP_UPDATE',
        +            '%SQL_BRC_EXPLICIT','%SQL_BRC_PROCEDURES','%SQL_BRC_ROLLED_UP','%SQL_BS_ROW_COUNT_EXPLICIT','%SQL_BS_ROW_COUNT_PROC','%SQL_BS_SELECT_EXPLICIT','%SQL_BS_SELECT_PROC','%SQL_CA1_ABSOLUTE',
        +            '%SQL_CA1_BOOKMARK','%SQL_CA1_BULK_ADD','%SQL_CA1_BULK_DELETE_BY_BOOKMARK','%SQL_CA1_BULK_FETCH_BY_BOOKMARK','%SQL_CA1_BULK_UPDATE_BY_BOOKMARK','%SQL_CA1_LOCK_EXCLUSIVE','%SQL_CA1_LOCK_NO_CHANGE','%SQL_CA1_LOCK_UNLOCK',
        +            '%SQL_CA1_NEXT','%SQL_CA1_POSITIONED_DELETE','%SQL_CA1_POSITIONED_UPDATE','%SQL_CA1_POS_DELETE','%SQL_CA1_POS_POSITION','%SQL_CA1_POS_REFRESH','%SQL_CA1_POS_UPDATE','%SQL_CA1_RELATIVE',
        +            '%SQL_CA1_SELECT_FOR_UPDATE','%SQL_CA2_CRC_APPROXIMATE','%SQL_CA2_CRC_EXACT','%SQL_CA2_LOCK_CONCURRENCY','%SQL_CA2_MAX_ROWS_AFFECTS_ALL','%SQL_CA2_MAX_ROWS_CATALOG','%SQL_CA2_MAX_ROWS_DELETE','%SQL_CA2_MAX_ROWS_INSERT',
        +            '%SQL_CA2_MAX_ROWS_SELECT','%SQL_CA2_MAX_ROWS_UPDATE','%SQL_CA2_OPT_ROWVER_CONCURRENCY','%SQL_CA2_OPT_VALUES_CONCURRENCY','%SQL_CA2_READ_ONLY_CONCURRENCY','%SQL_CA2_SENSITIVITY_ADDITIONS','%SQL_CA2_SENSITIVITY_DELETIONS','%SQL_CA2_SENSITIVITY_UPDATES',
        +            '%SQL_CA2_SIMULATE_NON_UNIQUE','%SQL_CA2_SIMULATE_TRY_UNIQUE','%SQL_CA2_SIMULATE_UNIQUE','%SQL_CASCADE','%SQL_CATALOG_LOCATION','%SQL_CATALOG_NAME','%SQL_CATALOG_NAME_SEPARATOR','%SQL_CATALOG_TERM',
        +            '%SQL_CATALOG_USAGE','%SQL_CA_CONSTRAINT_DEFERRABLE','%SQL_CA_CONSTRAINT_INITIALLY_DEFERRED','%SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE','%SQL_CA_CONSTRAINT_NON_DEFERRABLE','%SQL_CA_CREATE_ASSERTION','%SQL_CB_CLOSE','%SQL_CB_DELETE',
        +            '%SQL_CB_NON_NULL','%SQL_CB_NULL','%SQL_CB_PRESERVE','%SQL_CCOL_CREATE_COLLATION','%SQL_CCS_COLLATE_CLAUSE','%SQL_CCS_CREATE_CHARACTER_SET','%SQL_CCS_LIMITED_COLLATION','%SQL_CC_CLOSE',
        +            '%SQL_CC_DELETE','%SQL_CC_PRESERVE','%SQL_CDO_COLLATION','%SQL_CDO_CONSTRAINT','%SQL_CDO_CONSTRAINT_DEFERRABLE','%SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED','%SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE','%SQL_CDO_CONSTRAINT_NAME_DEFINITION',
        +            '%SQL_CDO_CONSTRAINT_NON_DEFERRABLE','%SQL_CDO_CREATE_DOMAIN','%SQL_CDO_DEFAULT','%SQL_CD_FALSE','%SQL_CD_TRUE','%SQL_CHAR','%SQL_CLOSE','%SQL_CL_END',
        +            '%SQL_CL_START','%SQL_CN_ANY','%SQL_CN_DIFFERENT','%SQL_CN_NONE','%SQL_CODE_DATE','%SQL_CODE_DAY','%SQL_CODE_DAY_TO_HOUR','%SQL_CODE_DAY_TO_MINUTE',
        +            '%SQL_CODE_DAY_TO_SECOND','%SQL_CODE_HOUR','%SQL_CODE_HOUR_TO_MINUTE','%SQL_CODE_HOUR_TO_SECOND','%SQL_CODE_MINUTE','%SQL_CODE_MINUTE_TO_SECOND','%SQL_CODE_MONTH','%SQL_CODE_SECOND',
        +            '%SQL_CODE_TIME','%SQL_CODE_TIMESTAMP','%SQL_CODE_YEAR','%SQL_CODE_YEAR_TO_MONTH','%SQL_COLATT_OPT_MAX','%SQL_COLATT_OPT_MIN','%SQL_COLLATION_SEQ','%SQL_COLUMN_ALIAS',
        +            '%SQL_COLUMN_AUTO_INCREMENT','%SQL_COLUMN_CASE_SENSITIVE','%SQL_COLUMN_COUNT','%SQL_COLUMN_DISPLAY_SIZE','%SQL_COLUMN_IGNORE','%SQL_COLUMN_LABEL','%SQL_COLUMN_LENGTH','%SQL_COLUMN_MONEY',
        +            '%SQL_COLUMN_NAME','%SQL_COLUMN_NULLABLE','%SQL_COLUMN_NUMBER_UNKNOWN','%SQL_COLUMN_OWNER_NAME','%SQL_COLUMN_PRECISION','%SQL_COLUMN_QUALIFIER_NAME','%SQL_COLUMN_SCALE','%SQL_COLUMN_SEARCHABLE',
        +            '%SQL_COLUMN_TABLE_NAME','%SQL_COLUMN_TYPE','%SQL_COLUMN_TYPE_NAME','%SQL_COLUMN_UNSIGNED','%SQL_COLUMN_UPDATABLE','%SQL_COL_PRED_BASIC','%SQL_COL_PRED_CHAR','%SQL_COMMIT',
        +            '%SQL_CONCAT_NULL_BEHAVIOR','%SQL_CONCURRENCY','%SQL_CONCUR_DEFAULT','%SQL_CONCUR_LOCK','%SQL_CONCUR_READ_ONLY','%SQL_CONCUR_ROWVER','%SQL_CONCUR_TIMESTAMP','%SQL_CONCUR_VALUES',
        +            '%SQL_CONVERT_BIGINT','%SQL_CONVERT_BINARY','%SQL_CONVERT_BIT','%SQL_CONVERT_CHAR','%SQL_CONVERT_DATE','%SQL_CONVERT_DECIMAL','%SQL_CONVERT_DOUBLE','%SQL_CONVERT_FLOAT',
        +            '%SQL_CONVERT_FUNCTIONS','%SQL_CONVERT_GUID','%SQL_CONVERT_INTEGER','%SQL_CONVERT_INTERVAL_DAY_TIME','%SQL_CONVERT_INTERVAL_YEAR_MONTH','%SQL_CONVERT_LONGVARBINARY','%SQL_CONVERT_LONGVARCHAR','%SQL_CONVERT_NUMERIC',
        +            '%SQL_CONVERT_REAL','%SQL_CONVERT_SMALLINT','%SQL_CONVERT_TIME','%SQL_CONVERT_TIMESTAMP','%SQL_CONVERT_TINYINT','%SQL_CONVERT_VARBINARY','%SQL_CONVERT_VARCHAR','%SQL_CONVERT_WCHAR',
        +            '%SQL_CONVERT_WLONGVARCHAR','%SQL_CONVERT_WVARCHAR','%SQL_CORRELATION_NAME','%SQL_CP_DEFAULT','%SQL_CP_MATCH_DEFAULT','%SQL_CP_OFF','%SQL_CP_ONE_PER_DRIVER','%SQL_CP_ONE_PER_HENV',
        +            '%SQL_CP_RELAXED_MATCH','%SQL_CP_STRICT_MATCH','%SQL_CREATE_ASSERTION','%SQL_CREATE_CHARACTER_SET','%SQL_CREATE_COLLATION','%SQL_CREATE_DOMAIN','%SQL_CREATE_SCHEMA','%SQL_CREATE_TABLE',
        +            '%SQL_CREATE_TRANSLATION','%SQL_CREATE_VIEW','%SQL_CR_CLOSE','%SQL_CR_DELETE','%SQL_CR_PRESERVE','%SQL_CS_AUTHORIZATION','%SQL_CS_CREATE_SCHEMA','%SQL_CS_DEFAULT_CHARACTER_SET',
        +            '%SQL_CTR_CREATE_TRANSLATION','%SQL_CT_COLUMN_COLLATION','%SQL_CT_COLUMN_CONSTRAINT','%SQL_CT_COLUMN_DEFAULT','%SQL_CT_COMMIT_DELETE','%SQL_CT_COMMIT_PRESERVE','%SQL_CT_CONSTRAINT_DEFERRABLE','%SQL_CT_CONSTRAINT_INITIALLY_DEFERRED',
        +            '%SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE','%SQL_CT_CONSTRAINT_NAME_DEFINITION','%SQL_CT_CONSTRAINT_NON_DEFERRABLE','%SQL_CT_CREATE_TABLE','%SQL_CT_GLOBAL_TEMPORARY','%SQL_CT_LOCAL_TEMPORARY','%SQL_CT_TABLE_CONSTRAINT','%SQL_CURRENT_QUALIFIER',
        +            '%SQL_CURSOR_COMMIT_BEHAVIOR','%SQL_CURSOR_DYNAMIC','%SQL_CURSOR_FORWARD_ONLY','%SQL_CURSOR_KEYSET_DRIVEN','%SQL_CURSOR_ROLLBACK_BEHAVIOR','%SQL_CURSOR_SENSITIVITY','%SQL_CURSOR_STATIC','%SQL_CURSOR_TYPE',
        +            '%SQL_CURSOR_TYPE_DEFAULT','%SQL_CUR_DEFAULT','%SQL_CUR_USE_DRIVER','%SQL_CUR_USE_IF_NEEDED','%SQL_CUR_USE_ODBC','%SQL_CU_DML_STATEMENTS','%SQL_CU_INDEX_DEFINITION','%SQL_CU_PRIVILEGE_DEFINITION',
        +            '%SQL_CU_PROCEDURE_INVOCATION','%SQL_CU_TABLE_DEFINITION','%SQL_CVT_BIGINT','%SQL_CVT_BINARY','%SQL_CVT_BIT','%SQL_CVT_CHAR','%SQL_CVT_DATE','%SQL_CVT_DECIMAL',
        +            '%SQL_CVT_DOUBLE','%SQL_CVT_FLOAT','%SQL_CVT_GUID','%SQL_CVT_INTEGER','%SQL_CVT_INTERVAL_DAY_TIME','%SQL_CVT_INTERVAL_YEAR_MONTH','%SQL_CVT_LONGVARBINARY','%SQL_CVT_LONGVARCHAR',
        +            '%SQL_CVT_NUMERIC','%SQL_CVT_REAL','%SQL_CVT_SMALLINT','%SQL_CVT_TIME','%SQL_CVT_TIMESTAMP','%SQL_CVT_TINYINT','%SQL_CVT_VARBINARY','%SQL_CVT_VARCHAR',
        +            '%SQL_CVT_WCHAR','%SQL_CVT_WLONGVARCHAR','%SQL_CVT_WVARCHAR','%SQL_CV_CASCADED','%SQL_CV_CHECK_OPTION','%SQL_CV_CREATE_VIEW','%SQL_CV_LOCAL','%SQL_C_BINARY',
        +            '%SQL_C_BIT','%SQL_C_BOOKMARK','%SQL_C_CHAR','%SQL_C_DATE','%SQL_C_DEFAULT','%SQL_C_DOUBLE','%SQL_C_FLOAT','%SQL_C_GUID',
        +            '%SQL_C_INTERVAL_DAY','%SQL_C_INTERVAL_DAY_TO_HOUR','%SQL_C_INTERVAL_DAY_TO_MINUTE','%SQL_C_INTERVAL_DAY_TO_SECOND','%SQL_C_INTERVAL_HOUR','%SQL_C_INTERVAL_HOUR_TO_MINUTE','%SQL_C_INTERVAL_HOUR_TO_SECOND','%SQL_C_INTERVAL_MINUTE',
        +            '%SQL_C_INTERVAL_MINUTE_TO_SECOND','%SQL_C_INTERVAL_MONTH','%SQL_C_INTERVAL_SECOND','%SQL_C_INTERVAL_YEAR','%SQL_C_INTERVAL_YEAR_TO_MONTH','%SQL_C_LONG','%SQL_C_NUMERIC','%SQL_C_SBIGINT',
        +            '%SQL_C_SHORT','%SQL_C_SLONG','%SQL_C_SSHORT','%SQL_C_STINYINT','%SQL_C_TIME','%SQL_C_TIMESTAMP','%SQL_C_TINYINT','%SQL_C_TYPE_DATE',
        +            '%SQL_C_TYPE_TIME','%SQL_C_TYPE_TIMESTAMP','%SQL_C_UBIGINT','%SQL_C_ULONG','%SQL_C_USHORT','%SQL_C_UTINYINT','%SQL_C_VARBOOKMARK','%SQL_DATABASE_NAME',
        +            '%SQL_DATA_AT_EXEC','%SQL_DATA_SOURCE_NAME','%SQL_DATA_SOURCE_READ_ONLY','%SQL_DATE','%SQL_DATETIME','%SQL_DATETIME_LITERALS','%SQL_DATE_LEN','%SQL_DAY',
        +            '%SQL_DAY_TO_HOUR','%SQL_DAY_TO_MINUTE','%SQL_DAY_TO_SECOND','%SQL_DA_DROP_ASSERTION','%SQL_DBMS_NAME','%SQL_DBMS_VER','%SQL_DB_DEFAULT','%SQL_DB_DISCONNECT',
        +            '%SQL_DB_RETURN_TO_POOL','%SQL_DCS_DROP_CHARACTER_SET','%SQL_DC_DROP_COLLATION','%SQL_DDL_INDEX','%SQL_DD_CASCADE','%SQL_DD_DROP_DOMAIN','%SQL_DD_RESTRICT','%SQL_DECIMAL',
        +            '%SQL_DEFAULT','%SQL_DEFAULT_PARAM','%SQL_DEFAULT_TXN_ISOLATION','%SQL_DELETE','%SQL_DELETE_BY_BOOKMARK','%SQL_DESCRIBE_PARAMETER','%SQL_DESC_ALLOC_AUTO','%SQL_DESC_ALLOC_TYPE',
        +            '%SQL_DESC_ALLOC_USER','%SQL_DESC_ARRAY_SIZE','%SQL_DESC_ARRAY_STATUS_PTR','%SQL_DESC_AUTO_UNIQUE_VALUE','%SQL_DESC_BASE_COLUMN_NAME','%SQL_DESC_BASE_TABLE_NAME','%SQL_DESC_BIND_OFFSET_PTR','%SQL_DESC_BIND_TYPE',
        +            '%SQL_DESC_CASE_SENSITIVE','%SQL_DESC_CATALOG_NAME','%SQL_DESC_CONCISE_TYPE','%SQL_DESC_COUNT','%SQL_DESC_DATA_PTR','%SQL_DESC_DATETIME_INTERVAL_CODE','%SQL_DESC_DATETIME_INTERVAL_PRECISION','%SQL_DESC_DISPLAY_SIZE',
        +            '%SQL_DESC_FIXED_PREC_SCALE','%SQL_DESC_INDICATOR_PTR','%SQL_DESC_LABEL','%SQL_DESC_LENGTH','%SQL_DESC_LITERAL_PREFIX','%SQL_DESC_LITERAL_SUFFIX','%SQL_DESC_LOCAL_TYPE_NAME','%SQL_DESC_MAXIMUM_SCALE',
        +            '%SQL_DESC_MINIMUM_SCALE','%SQL_DESC_NAME','%SQL_DESC_NULLABLE','%SQL_DESC_NUM_PREC_RADIX','%SQL_DESC_OCTET_LENGTH','%SQL_DESC_OCTET_LENGTH_PTR','%SQL_DESC_PARAMETER_TYPE','%SQL_DESC_PRECISION',
        +            '%SQL_DESC_ROWS_PROCESSED_PTR','%SQL_DESC_SCALE','%SQL_DESC_SCHEMA_NAME','%SQL_DESC_SEARCHABLE','%SQL_DESC_TABLE_NAME','%SQL_DESC_TYPE','%SQL_DESC_TYPE_NAME','%SQL_DESC_UNNAMED',
        +            '%SQL_DESC_UNSIGNED','%SQL_DESC_UPDATABLE','%SQL_DIAG_ALTER_TABLE','%SQL_DIAG_CALL','%SQL_DIAG_CLASS_ORIGIN','%SQL_DIAG_COLUMN_NUMBER','%SQL_DIAG_CONNECTION_NAME','%SQL_DIAG_CREATE_INDEX',
        +            '%SQL_DIAG_CREATE_TABLE','%SQL_DIAG_CREATE_VIEW','%SQL_DIAG_CURSOR_ROW_COUNT','%SQL_DIAG_DELETE_WHERE','%SQL_DIAG_DROP_INDEX','%SQL_DIAG_DROP_TABLE','%SQL_DIAG_DROP_VIEW','%SQL_DIAG_DYNAMIC_DELETE_CURSOR',
        +            '%SQL_DIAG_DYNAMIC_FUNCTION','%SQL_DIAG_DYNAMIC_FUNCTION_CODE','%SQL_DIAG_DYNAMIC_UPDATE_CURSOR','%SQL_DIAG_GRANT','%SQL_DIAG_INSERT','%SQL_DIAG_MESSAGE_TEXT','%SQL_DIAG_NATIVE','%SQL_DIAG_NUMBER',
        +            '%SQL_DIAG_RETURNCODE','%SQL_DIAG_REVOKE','%SQL_DIAG_ROW_COUNT','%SQL_DIAG_ROW_NUMBER','%SQL_DIAG_SELECT_CURSOR','%SQL_DIAG_SERVER_NAME','%SQL_DIAG_SQLSTATE','%SQL_DIAG_SUBCLASS_ORIGIN',
        +            '%SQL_DIAG_UNKNOWN_STATEMENT','%SQL_DIAG_UPDATE_WHERE','%SQL_DI_CREATE_INDEX','%SQL_DI_DROP_INDEX','%SQL_DL_SQL92_DATE','%SQL_DL_SQL92_INTERVAL_DAY','%SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR','%SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE',
        +            '%SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND','%SQL_DL_SQL92_INTERVAL_HOUR','%SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE','%SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND','%SQL_DL_SQL92_INTERVAL_MINUTE','%SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND','%SQL_DL_SQL92_INTERVAL_MONTH','%SQL_DL_SQL92_INTERVAL_SECOND',
        +            '%SQL_DL_SQL92_INTERVAL_YEAR','%SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH','%SQL_DL_SQL92_TIME','%SQL_DL_SQL92_TIMESTAMP','%SQL_DM_VER','%SQL_DOUBLE','%SQL_DRIVER_COMPLETE','%SQL_DRIVER_COMPLETE_REQUIRED',
        +            '%SQL_DRIVER_HDBC','%SQL_DRIVER_HDESC','%SQL_DRIVER_HENV','%SQL_DRIVER_HLIB','%SQL_DRIVER_HSTMT','%SQL_DRIVER_NAME','%SQL_DRIVER_NOPROMPT','%SQL_DRIVER_ODBC_VER',
        +            '%SQL_DRIVER_PROMPT','%SQL_DRIVER_VER','%SQL_DROP','%SQL_DROP_ASSERTION','%SQL_DROP_CHARACTER_SET','%SQL_DROP_COLLATION','%SQL_DROP_DOMAIN','%SQL_DROP_SCHEMA',
        +            '%SQL_DROP_TABLE','%SQL_DROP_TRANSLATION','%SQL_DROP_VIEW','%SQL_DS_CASCADE','%SQL_DS_DROP_SCHEMA','%SQL_DS_RESTRICT','%SQL_DTC_DONE','%SQL_DTC_ENLIST_EXPENSIVE',
        +            '%SQL_DTC_TRANSITION_COST','%SQL_DTC_UNENLIST_EXPENSIVE','%SQL_DTR_DROP_TRANSLATION','%SQL_DT_CASCADE','%SQL_DT_DROP_TABLE','%SQL_DT_RESTRICT','%SQL_DV_CASCADE','%SQL_DV_DROP_VIEW',
        +            '%SQL_DV_RESTRICT','%SQL_DYNAMIC_CURSOR_ATTRIBUTES1','%SQL_DYNAMIC_CURSOR_ATTRIBUTES2','%SQL_ENSURE','%SQL_ENTIRE_ROWSET','%SQL_ERROR','%SQL_EXPRESSIONS_IN_ORDERBY','%SQL_FALSE',
        +            '%SQL_FD_FETCH_ABSOLUTE','%SQL_FD_FETCH_BOOKMARK','%SQL_FD_FETCH_FIRST','%SQL_FD_FETCH_LAST','%SQL_FD_FETCH_NEXT','%SQL_FD_FETCH_PREV','%SQL_FD_FETCH_PRIOR','%SQL_FD_FETCH_RELATIVE',
        +            '%SQL_FETCH_ABSOLUTE','%SQL_FETCH_BOOKMARK','%SQL_FETCH_BY_BOOKMARK','%SQL_FETCH_DIRECTION','%SQL_FETCH_FIRST','%SQL_FETCH_FIRST_SYSTEM','%SQL_FETCH_FIRST_USER','%SQL_FETCH_LAST',
        +            '%SQL_FETCH_NEXT','%SQL_FETCH_PREV','%SQL_FETCH_PRIOR','%SQL_FETCH_RELATIVE','%SQL_FILE_CATALOG','%SQL_FILE_NOT_SUPPORTED','%SQL_FILE_QUALIFIER','%SQL_FILE_TABLE',
        +            '%SQL_FILE_USAGE','%SQL_FLOAT','%SQL_FN_CVT_CAST','%SQL_FN_CVT_CONVERT','%SQL_FN_NUM_ABS','%SQL_FN_NUM_ACOS','%SQL_FN_NUM_ASIN','%SQL_FN_NUM_ATAN',
        +            '%SQL_FN_NUM_ATAN2','%SQL_FN_NUM_CEILING','%SQL_FN_NUM_COS','%SQL_FN_NUM_COT','%SQL_FN_NUM_DEGREES','%SQL_FN_NUM_EXP','%SQL_FN_NUM_FLOOR','%SQL_FN_NUM_LOG',
        +            '%SQL_FN_NUM_LOG10','%SQL_FN_NUM_MOD','%SQL_FN_NUM_PI','%SQL_FN_NUM_POWER','%SQL_FN_NUM_RADIANS','%SQL_FN_NUM_RAND','%SQL_FN_NUM_ROUND','%SQL_FN_NUM_SIGN',
        +            '%SQL_FN_NUM_SIN','%SQL_FN_NUM_SQRT','%SQL_FN_NUM_TAN','%SQL_FN_NUM_TRUNCATE','%SQL_FN_STR_ASCII','%SQL_FN_STR_BIT_LENGTH','%SQL_FN_STR_CHAR','%SQL_FN_STR_CHARACTER_LENGTH',
        +            '%SQL_FN_STR_CHAR_LENGTH','%SQL_FN_STR_CONCAT','%SQL_FN_STR_DIFFERENCE','%SQL_FN_STR_INSERT','%SQL_FN_STR_LCASE','%SQL_FN_STR_LEFT','%SQL_FN_STR_LENGTH','%SQL_FN_STR_LOCATE',
        +            '%SQL_FN_STR_LOCATE_2','%SQL_FN_STR_LTRIM','%SQL_FN_STR_OCTET_LENGTH','%SQL_FN_STR_POSITION','%SQL_FN_STR_REPEAT','%SQL_FN_STR_REPLACE','%SQL_FN_STR_RIGHT','%SQL_FN_STR_RTRIM',
        +            '%SQL_FN_STR_SOUNDEX','%SQL_FN_STR_SPACE','%SQL_FN_STR_SUBSTRING','%SQL_FN_STR_UCASE','%SQL_FN_SYS_DBNAME','%SQL_FN_SYS_IFNULL','%SQL_FN_SYS_USERNAME','%SQL_FN_TD_CURDATE',
        +            '%SQL_FN_TD_CURRENT_DATE','%SQL_FN_TD_CURRENT_TIME','%SQL_FN_TD_CURRENT_TIMESTAMP','%SQL_FN_TD_CURTIME','%SQL_FN_TD_DAYNAME','%SQL_FN_TD_DAYOFMONTH','%SQL_FN_TD_DAYOFWEEK','%SQL_FN_TD_DAYOFYEAR',
        +            '%SQL_FN_TD_EXTRACT','%SQL_FN_TD_HOUR','%SQL_FN_TD_MINUTE','%SQL_FN_TD_MONTH','%SQL_FN_TD_MONTHNAME','%SQL_FN_TD_NOW','%SQL_FN_TD_QUARTER','%SQL_FN_TD_SECOND',
        +            '%SQL_FN_TD_TIMESTAMPADD','%SQL_FN_TD_TIMESTAMPDIFF','%SQL_FN_TD_WEEK','%SQL_FN_TD_YEAR','%SQL_FN_TSI_DAY','%SQL_FN_TSI_FRAC_SECOND','%SQL_FN_TSI_HOUR','%SQL_FN_TSI_MINUTE',
        +            '%SQL_FN_TSI_MONTH','%SQL_FN_TSI_QUARTER','%SQL_FN_TSI_SECOND','%SQL_FN_TSI_WEEK','%SQL_FN_TSI_YEAR','%SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1','%SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2','%SQL_GB_COLLATE',
        +            '%SQL_GB_GROUP_BY_CONTAINS_SELECT','%SQL_GB_GROUP_BY_EQUALS_SELECT','%SQL_GB_NOT_SUPPORTED','%SQL_GB_NO_RELATION','%SQL_GD_ANY_COLUMN','%SQL_GD_ANY_ORDER','%SQL_GD_BLOCK','%SQL_GD_BOUND',
        +            '%SQL_GETDATA_EXTENSIONS','%SQL_GET_BOOKMARK','%SQL_GROUP_BY','%SQL_GUID','%SQL_HANDLE_DBC','%SQL_HANDLE_DESC','%SQL_HANDLE_ENV','%SQL_HANDLE_SENV',
        +            '%SQL_HANDLE_STMT','%SQL_HOUR','%SQL_HOUR_TO_MINUTE','%SQL_HOUR_TO_SECOND','%SQL_IC_LOWER','%SQL_IC_MIXED','%SQL_IC_SENSITIVE','%SQL_IC_UPPER',
        +            '%SQL_IDENTIFIER_CASE','%SQL_IDENTIFIER_QUOTE_CHAR','%SQL_IGNORE','%SQL_IK_ALL','%SQL_IK_ASC','%SQL_IK_DESC','%SQL_IK_NONE','%SQL_INDEX_ALL',
        +            '%SQL_INDEX_CLUSTERED','%SQL_INDEX_HASHED','%SQL_INDEX_KEYWORDS','%SQL_INDEX_OTHER','%SQL_INDEX_UNIQUE','%SQL_INFO_FIRST','%SQL_INFO_SCHEMA_VIEWS','%SQL_INITIALLY_DEFERRED',
        +            '%SQL_INITIALLY_IMMEDIATE','%SQL_INSENSITIVE','%SQL_INSERT_STATEMENT','%SQL_INTEGER','%SQL_INTEGRITY','%SQL_INTERVAL','%SQL_INTERVAL_DAY','%SQL_INTERVAL_DAY_TO_HOUR',
        +            '%SQL_INTERVAL_DAY_TO_MINUTE','%SQL_INTERVAL_DAY_TO_SECOND','%SQL_INTERVAL_HOUR','%SQL_INTERVAL_HOUR_TO_MINUTE','%SQL_INTERVAL_HOUR_TO_SECOND','%SQL_INTERVAL_MINUTE','%SQL_INTERVAL_MINUTE_TO_SECOND','%SQL_INTERVAL_MONTH',
        +            '%SQL_INTERVAL_SECOND','%SQL_INTERVAL_YEAR','%SQL_INTERVAL_YEAR_TO_MONTH','%SQL_INVALID_HANDLE','%SQL_ISV_ASSERTIONS','%SQL_ISV_CHARACTER_SETS','%SQL_ISV_CHECK_CONSTRAINTS','%SQL_ISV_COLLATIONS',
        +            '%SQL_ISV_COLUMNS','%SQL_ISV_COLUMN_DOMAIN_USAGE','%SQL_ISV_COLUMN_PRIVILEGES','%SQL_ISV_CONSTRAINT_COLUMN_USAGE','%SQL_ISV_CONSTRAINT_TABLE_USAGE','%SQL_ISV_DOMAINS','%SQL_ISV_DOMAIN_CONSTRAINTS','%SQL_ISV_KEY_COLUMN_USAGE',
        +            '%SQL_ISV_REFERENTIAL_CONSTRAINTS','%SQL_ISV_SCHEMATA','%SQL_ISV_SQL_LANGUAGES','%SQL_ISV_TABLES','%SQL_ISV_TABLE_CONSTRAINTS','%SQL_ISV_TABLE_PRIVILEGES','%SQL_ISV_TRANSLATIONS','%SQL_ISV_USAGE_PRIVILEGES',
        +            '%SQL_ISV_VIEWS','%SQL_ISV_VIEW_COLUMN_USAGE','%SQL_ISV_VIEW_TABLE_USAGE','%SQL_IS_DAY','%SQL_IS_DAY_TO_HOUR','%SQL_IS_DAY_TO_MINUTE','%SQL_IS_DAY_TO_SECOND','%SQL_IS_HOUR',
        +            '%SQL_IS_HOUR_TO_MINUTE','%SQL_IS_HOUR_TO_SECOND','%SQL_IS_INSERT_LITERALS','%SQL_IS_INSERT_SEARCHED','%SQL_IS_INTEGER','%SQL_IS_MINUTE','%SQL_IS_MINUTE_TO_SECOND','%SQL_IS_MONTH',
        +            '%SQL_IS_POINTER','%SQL_IS_SECOND','%SQL_IS_SELECT_INTO','%SQL_IS_SMALLINT','%SQL_IS_UINTEGER','%SQL_IS_USMALLINT','%SQL_IS_YEAR','%SQL_IS_YEAR_TO_MONTH',
        +            '%SQL_KEYSET_CURSOR_ATTRIBUTES1','%SQL_KEYSET_CURSOR_ATTRIBUTES2','%SQL_KEYSET_SIZE','%SQL_KEYSET_SIZE_DEFAULT','%SQL_KEYWORDS','%SQL_LCK_EXCLUSIVE','%SQL_LCK_NO_CHANGE','%SQL_LCK_UNLOCK',
        +            '%SQL_LEN_BINARY_ATTR_OFFSET','%SQL_LEN_DATA_AT_EXEC_OFFSET','%SQL_LIKE_ESCAPE_CLAUSE','%SQL_LIKE_ONLY','%SQL_LOCK_EXCLUSIVE','%SQL_LOCK_NO_CHANGE','%SQL_LOCK_TYPES','%SQL_LOCK_UNLOCK',
        +            '%SQL_LOGIN_TIMEOUT','%SQL_LOGIN_TIMEOUT_DEFAULT','%SQL_LONGVARBINARY','%SQL_LONGVARCHAR','%SQL_MAXIMUM_CATALOG_NAME_LENGTH','%SQL_MAXIMUM_COLUMNS_IN_GROUP_BY','%SQL_MAXIMUM_COLUMNS_IN_INDEX','%SQL_MAXIMUM_COLUMNS_IN_ORDER_BY',
        +            '%SQL_MAXIMUM_COLUMNS_IN_SELECT','%SQL_MAXIMUM_COLUMN_NAME_LENGTH','%SQL_MAXIMUM_CONCURRENT_ACTIVITIES','%SQL_MAXIMUM_CURSOR_NAME_LENGTH','%SQL_MAXIMUM_DRIVER_CONNECTIONS','%SQL_MAXIMUM_IDENTIFIER_LENGTH','%SQL_MAXIMUM_INDEX_SIZE','%SQL_MAXIMUM_ROW_SIZE',
        +            '%SQL_MAXIMUM_SCHEMA_NAME_LENGTH','%SQL_MAXIMUM_STATEMENT_LENGTH','%SQL_MAXIMUM_TABLES_IN_SELECT','%SQL_MAXIMUM_USER_NAME_LENGTH','%SQL_MAX_ASYNC_CONCURRENT_STATEMENTS','%SQL_MAX_BINARY_LITERAL_LEN','%SQL_MAX_CATALOG_NAME_LEN','%SQL_MAX_CHAR_LITERAL_LEN',
        +            '%SQL_MAX_COLUMNS_IN_GROUP_BY','%SQL_MAX_COLUMNS_IN_INDEX','%SQL_MAX_COLUMNS_IN_ORDER_BY','%SQL_MAX_COLUMNS_IN_SELECT','%SQL_MAX_COLUMNS_IN_TABLE','%SQL_MAX_COLUMN_NAME_LEN','%SQL_MAX_CONCURRENT_ACTIVITIES','%SQL_MAX_CURSOR_NAME_LEN',
        +            '%SQL_MAX_DRIVER_CONNECTIONS','%SQL_MAX_DSN_LENGTH','%SQL_MAX_IDENTIFIER_LEN','%SQL_MAX_INDEX_SIZE','%SQL_MAX_LENGTH','%SQL_MAX_LENGTH_DEFAULT','%SQL_MAX_MESSAGE_LENGTH','%SQL_MAX_NUMERIC_LEN',
        +            '%SQL_MAX_OPTION_STRING_LENGTH','%SQL_MAX_OWNER_NAME_LEN','%SQL_MAX_PROCEDURE_NAME_LEN','%SQL_MAX_QUALIFIER_NAME_LEN','%SQL_MAX_ROWS','%SQL_MAX_ROWS_DEFAULT','%SQL_MAX_ROW_SIZE','%SQL_MAX_ROW_SIZE_INCLUDES_LONG',
        +            '%SQL_MAX_SCHEMA_NAME_LEN','%SQL_MAX_STATEMENT_LEN','%SQL_MAX_TABLES_IN_SELECT','%SQL_MAX_TABLE_NAME_LEN','%SQL_MAX_USER_NAME_LEN','%SQL_MINUTE','%SQL_MINUTE_TO_SECOND','%SQL_MODE_DEFAULT',
        +            '%SQL_MODE_READ_ONLY','%SQL_MODE_READ_WRITE','%SQL_MONTH','%SQL_MULTIPLE_ACTIVE_TXN','%SQL_MULT_RESULT_SETS','%SQL_NAMED','%SQL_NC_END','%SQL_NC_HIGH',
        +            '%SQL_NC_LOW','%SQL_NC_START','%SQL_NEED_DATA','%SQL_NEED_LONG_DATA_LEN','%SQL_NNC_NON_NULL','%SQL_NNC_NULL','%SQL_NONSCROLLABLE','%SQL_NON_NULLABLE_COLUMNS',
        +            '%SQL_NOSCAN','%SQL_NOSCAN_DEFAULT','%SQL_NOSCAN_OFF','%SQL_NOSCAN_ON','%SQL_NOT_DEFERRABLE','%SQL_NO_ACTION','%SQL_NO_COLUMN_NUMBER','%SQL_NO_DATA',
        +            '%SQL_NO_DATA_FOUND','%SQL_NO_NULLS','%SQL_NO_ROW_NUMBER','%SQL_NO_TOTAL','%SQL_NTS','%SQL_NTSL','%SQL_NULLABLE','%SQL_NULLABLE_UNKNOWN',
        +            '%SQL_NULL_COLLATION','%SQL_NULL_DATA','%SQL_NULL_HANDLE','%SQL_NULL_HDBC','%SQL_NULL_HDESC','%SQL_NULL_HENV','%SQL_NULL_HSTMT','%SQL_NUMERIC',
        +            '%SQL_NUMERIC_FUNCTIONS','%SQL_OAC_LEVEL1','%SQL_OAC_LEVEL2','%SQL_OAC_NONE','%SQL_ODBC_API_CONFORMANCE','%SQL_ODBC_CURSORS','%SQL_ODBC_INTERFACE_CONFORMANCE','%SQL_ODBC_SAG_CLI_CONFORMANCE',
        +            '%SQL_ODBC_SQL_CONFORMANCE','%SQL_ODBC_SQL_OPT_IEF','%SQL_ODBC_VER','%SQL_OIC_CORE','%SQL_OIC_LEVEL1','%SQL_OIC_LEVEL2','%SQL_OJ_ALL_COMPARISON_OPS','%SQL_OJ_CAPABILITIES',
        +            '%SQL_OJ_FULL','%SQL_OJ_INNER','%SQL_OJ_LEFT','%SQL_OJ_NESTED','%SQL_OJ_NOT_ORDERED','%SQL_OJ_RIGHT','%SQL_OPT_TRACE','%SQL_OPT_TRACEFILE',
        +            '%SQL_OPT_TRACE_DEFAULT','%SQL_OPT_TRACE_OFF','%SQL_OPT_TRACE_ON','%SQL_ORDER_BY_COLUMNS_IN_SELECT','%SQL_OSCC_COMPLIANT','%SQL_OSCC_NOT_COMPLIANT','%SQL_OSC_CORE','%SQL_OSC_EXTENDED',
        +            '%SQL_OSC_MINIMUM','%SQL_OUTER_JOINS','%SQL_OUTER_JOIN_CAPABILITIES','%SQL_OU_DML_STATEMENTS','%SQL_OU_INDEX_DEFINITION','%SQL_OU_PRIVILEGE_DEFINITION','%SQL_OU_PROCEDURE_INVOCATION','%SQL_OU_TABLE_DEFINITION',
        +            '%SQL_OV_ODBC2','%SQL_OV_ODBC3','%SQL_OWNER_TERM','%SQL_OWNER_USAGE','%SQL_PACKET_SIZE','%SQL_PARAM_ARRAY_ROW_COUNTS','%SQL_PARAM_ARRAY_SELECTS','%SQL_PARAM_BIND_BY_COLUMN',
        +            '%SQL_PARAM_BIND_TYPE_DEFAULT','%SQL_PARAM_DIAG_UNAVAILABLE','%SQL_PARAM_ERROR','%SQL_PARAM_IGNORE','%SQL_PARAM_INPUT','%SQL_PARAM_INPUT_OUTPUT','%SQL_PARAM_OUTPUT','%SQL_PARAM_PROCEED',
        +            '%SQL_PARAM_SUCCESS','%SQL_PARAM_SUCCESS_WITH_INFO','%SQL_PARAM_TYPE_DEFAULT','%SQL_PARAM_TYPE_UNKNOWN','%SQL_PARAM_UNUSED','%SQL_PARC_BATCH','%SQL_PARC_NO_BATCH','%SQL_PAS_BATCH',
        +            '%SQL_PAS_NO_BATCH','%SQL_PAS_NO_SELECT','%SQL_PC_NON_PSEUDO','%SQL_PC_NOT_PSEUDO','%SQL_PC_PSEUDO','%SQL_PC_UNKNOWN','%SQL_POSITION','%SQL_POSITIONED_STATEMENTS',
        +            '%SQL_POS_ADD','%SQL_POS_DELETE','%SQL_POS_OPERATIONS','%SQL_POS_POSITION','%SQL_POS_REFRESH','%SQL_POS_UPDATE','%SQL_PRED_BASIC','%SQL_PRED_CHAR',
        +            '%SQL_PRED_NONE','%SQL_PRED_SEARCHABLE','%SQL_PROCEDURES','%SQL_PROCEDURE_TERM','%SQL_PS_POSITIONED_DELETE','%SQL_PS_POSITIONED_UPDATE','%SQL_PS_SELECT_FOR_UPDATE','%SQL_PT_FUNCTION',
        +            '%SQL_PT_PROCEDURE','%SQL_PT_UNKNOWN','%SQL_QL_END','%SQL_QL_START','%SQL_QUALIFIER_LOCATION','%SQL_QUALIFIER_NAME_SEPARATOR','%SQL_QUALIFIER_TERM','%SQL_QUALIFIER_USAGE',
        +            '%SQL_QUERY_TIMEOUT','%SQL_QUERY_TIMEOUT_DEFAULT','%SQL_QUICK','%SQL_QUIET_MODE','%SQL_QUOTED_IDENTIFIER_CASE','%SQL_QU_DML_STATEMENTS','%SQL_QU_INDEX_DEFINITION','%SQL_QU_PRIVILEGE_DEFINITION',
        +            '%SQL_QU_PROCEDURE_INVOCATION','%SQL_QU_TABLE_DEFINITION','%SQL_RD_DEFAULT','%SQL_RD_OFF','%SQL_RD_ON','%SQL_REAL','%SQL_REFRESH','%SQL_RESET_PARAMS',
        +            '%SQL_RESTRICT','%SQL_RESULT_COL','%SQL_RETRIEVE_DATA','%SQL_RETURN_VALUE','%SQL_ROLLBACK','%SQL_ROWSET_SIZE','%SQL_ROWSET_SIZE_DEFAULT','%SQL_ROWVER',
        +            '%SQL_ROW_ADDED','%SQL_ROW_DELETED','%SQL_ROW_ERROR','%SQL_ROW_IDENTIFIER','%SQL_ROW_IGNORE','%SQL_ROW_NOROW','%SQL_ROW_NUMBER','%SQL_ROW_NUMBER_UNKNOWN',
        +            '%SQL_ROW_PROCEED','%SQL_ROW_SUCCESS','%SQL_ROW_SUCCESS_WITH_INFO','%SQL_ROW_UPDATED','%SQL_ROW_UPDATES','%SQL_SCCO_LOCK','%SQL_SCCO_OPT_ROWVER','%SQL_SCCO_OPT_TIMESTAMP',
        +            '%SQL_SCCO_OPT_VALUES','%SQL_SCCO_READ_ONLY','%SQL_SCC_ISO92_CLI','%SQL_SCC_XOPEN_CLI_VERSION1','%SQL_SCHEMA_TERM','%SQL_SCHEMA_USAGE','%SQL_SCOPE_CURROW','%SQL_SCOPE_SESSION',
        +            '%SQL_SCOPE_TRANSACTION','%SQL_SCROLLABLE','%SQL_SCROLL_CONCURRENCY','%SQL_SCROLL_DYNAMIC','%SQL_SCROLL_FORWARD_ONLY','%SQL_SCROLL_KEYSET_DRIVEN','%SQL_SCROLL_OPTIONS','%SQL_SCROLL_STATIC',
        +            '%SQL_SC_FIPS127_2_TRANSITIONAL','%SQL_SC_NON_UNIQUE','%SQL_SC_SQL92_ENTRY','%SQL_SC_SQL92_FULL','%SQL_SC_SQL92_INTERMEDIATE','%SQL_SC_TRY_UNIQUE','%SQL_SC_UNIQUE','%SQL_SDF_CURRENT_DATE',
        +            '%SQL_SDF_CURRENT_TIME','%SQL_SDF_CURRENT_TIMESTAMP','%SQL_SEARCHABLE','%SQL_SEARCH_PATTERN_ESCAPE','%SQL_SECOND','%SQL_SENSITIVE','%SQL_SERVER_NAME','%SQL_SETPARAM_VALUE_MAX',
        +            '%SQL_SETPOS_MAX_LOCK_VALUE','%SQL_SETPOS_MAX_OPTION_VALUE','%SQL_SET_DEFAULT','%SQL_SET_NULL','%SQL_SFKD_CASCADE','%SQL_SFKD_NO_ACTION','%SQL_SFKD_SET_DEFAULT','%SQL_SFKD_SET_NULL',
        +            '%SQL_SFKU_CASCADE','%SQL_SFKU_NO_ACTION','%SQL_SFKU_SET_DEFAULT','%SQL_SFKU_SET_NULL','%SQL_SG_DELETE_TABLE','%SQL_SG_INSERT_COLUMN','%SQL_SG_INSERT_TABLE','%SQL_SG_REFERENCES_COLUMN',
        +            '%SQL_SG_REFERENCES_TABLE','%SQL_SG_SELECT_TABLE','%SQL_SG_UPDATE_COLUMN','%SQL_SG_UPDATE_TABLE','%SQL_SG_USAGE_ON_CHARACTER_SET','%SQL_SG_USAGE_ON_COLLATION','%SQL_SG_USAGE_ON_DOMAIN','%SQL_SG_USAGE_ON_TRANSLATION',
        +            '%SQL_SG_WITH_GRANT_OPTION','%SQL_SIGNED_OFFSET','%SQL_SIMULATE_CURSOR','%SQL_SMALLINT','%SQL_SNVF_BIT_LENGTH','%SQL_SNVF_CHARACTER_LENGTH','%SQL_SNVF_CHAR_LENGTH','%SQL_SNVF_EXTRACT',
        +            '%SQL_SNVF_OCTET_LENGTH','%SQL_SNVF_POSITION','%SQL_SO_DYNAMIC','%SQL_SO_FORWARD_ONLY','%SQL_SO_KEYSET_DRIVEN','%SQL_SO_MIXED','%SQL_SO_STATIC','%SQL_SPECIAL_CHARACTERS',
        +            '%SQL_SPEC_MAJOR','%SQL_SPEC_MINOR','%SQL_SP_BETWEEN','%SQL_SP_COMPARISON','%SQL_SP_EXISTS','%SQL_SP_IN','%SQL_SP_ISNOTNULL','%SQL_SP_ISNULL',
        +            '%SQL_SP_LIKE','%SQL_SP_MATCH_FULL','%SQL_SP_MATCH_PARTIAL','%SQL_SP_MATCH_UNIQUE_FULL','%SQL_SP_MATCH_UNIQUE_PARTIAL','%SQL_SP_OVERLAPS','%SQL_SP_QUANTIFIED_COMPARISON','%SQL_SP_UNIQUE',
        +            '%SQL_SQL92_DATETIME_FUNCTIONS','%SQL_SQL92_FOREIGN_KEY_DELETE_RULE','%SQL_SQL92_FOREIGN_KEY_UPDATE_RULE','%SQL_SQL92_GRANT','%SQL_SQL92_NUMERIC_VALUE_FUNCTIONS','%SQL_SQL92_PREDICATES','%SQL_SQL92_RELATIONAL_JOIN_OPERATORS','%SQL_SQL92_REVOKE',
        +            '%SQL_SQL92_ROW_VALUE_CONSTRUCTOR','%SQL_SQL92_STRING_FUNCTIONS','%SQL_SQL92_VALUE_EXPRESSIONS','%SQL_SQLSTATE_SIZE','%SQL_SQL_CONFORMANCE','%SQL_SQ_COMPARISON','%SQL_SQ_CORRELATED_SUBQUERIES','%SQL_SQ_EXISTS',
        +            '%SQL_SQ_IN','%SQL_SQ_QUANTIFIED','%SQL_SRJO_CORRESPONDING_CLAUSE','%SQL_SRJO_CROSS_JOIN','%SQL_SRJO_EXCEPT_JOIN','%SQL_SRJO_FULL_OUTER_JOIN','%SQL_SRJO_INNER_JOIN','%SQL_SRJO_INTERSECT_JOIN',
        +            '%SQL_SRJO_LEFT_OUTER_JOIN','%SQL_SRJO_NATURAL_JOIN','%SQL_SRJO_RIGHT_OUTER_JOIN','%SQL_SRJO_UNION_JOIN','%SQL_SRVC_DEFAULT','%SQL_SRVC_NULL','%SQL_SRVC_ROW_SUBQUERY','%SQL_SRVC_VALUE_EXPRESSION',
        +            '%SQL_SR_CASCADE','%SQL_SR_DELETE_TABLE','%SQL_SR_GRANT_OPTION_FOR','%SQL_SR_INSERT_COLUMN','%SQL_SR_INSERT_TABLE','%SQL_SR_REFERENCES_COLUMN','%SQL_SR_REFERENCES_TABLE','%SQL_SR_RESTRICT',
        +            '%SQL_SR_SELECT_TABLE','%SQL_SR_UPDATE_COLUMN','%SQL_SR_UPDATE_TABLE','%SQL_SR_USAGE_ON_CHARACTER_SET','%SQL_SR_USAGE_ON_COLLATION','%SQL_SR_USAGE_ON_DOMAIN','%SQL_SR_USAGE_ON_TRANSLATION','%SQL_SSF_CONVERT',
        +            '%SQL_SSF_LOWER','%SQL_SSF_SUBSTRING','%SQL_SSF_TRANSLATE','%SQL_SSF_TRIM_BOTH','%SQL_SSF_TRIM_LEADING','%SQL_SSF_TRIM_TRAILING','%SQL_SSF_UPPER','%SQL_SS_ADDITIONS',
        +            '%SQL_SS_DELETIONS','%SQL_SS_UPDATES','%SQL_STANDARD_CLI_CONFORMANCE','%SQL_STATIC_CURSOR_ATTRIBUTES1','%SQL_STATIC_CURSOR_ATTRIBUTES2','%SQL_STATIC_SENSITIVITY','%SQL_STILL_EXECUTING','%SQL_STRING_FUNCTIONS',
        +            '%SQL_SUBQUERIES','%SQL_SUCCESS','%SQL_SUCCESS_WITH_INFO','%SQL_SU_DML_STATEMENTS','%SQL_SU_INDEX_DEFINITION','%SQL_SU_PRIVILEGE_DEFINITION','%SQL_SU_PROCEDURE_INVOCATION','%SQL_SU_TABLE_DEFINITION',
        +            '%SQL_SVE_CASE','%SQL_SVE_CAST','%SQL_SVE_COALESCE','%SQL_SVE_NULLIF','%SQL_SYSTEM_FUNCTIONS','%SQL_TABLE_STAT','%SQL_TABLE_TERM','%SQL_TC_ALL',
        +            '%SQL_TC_DDL_COMMIT','%SQL_TC_DDL_IGNORE','%SQL_TC_DML','%SQL_TC_NONE','%SQL_TIME','%SQL_TIMEDATE_ADD_INTERVALS','%SQL_TIMEDATE_DIFF_INTERVALS','%SQL_TIMEDATE_FUNCTIONS',
        +            '%SQL_TIMESTAMP','%SQL_TIMESTAMP_LEN','%SQL_TIME_LEN','%SQL_TINYINT','%SQL_TRANSACTION_CAPABLE','%SQL_TRANSACTION_ISOLATION_OPTION','%SQL_TRANSACTION_READ_COMMITTED','%SQL_TRANSACTION_READ_UNCOMMITTED',
        +            '%SQL_TRANSACTION_REPEATABLE_READ','%SQL_TRANSACTION_SERIALIZABLE','%SQL_TRANSLATE_DLL','%SQL_TRANSLATE_OPTION','%SQL_TRUE','%SQL_TXN_CAPABLE','%SQL_TXN_ISOLATION','%SQL_TXN_ISOLATION_OPTION',
        +            '%SQL_TXN_READ_COMMITTED','%SQL_TXN_READ_UNCOMMITTED','%SQL_TXN_REPEATABLE_READ','%SQL_TXN_SERIALIZABLE','%SQL_TYPE_DATE','%SQL_TYPE_NULL','%SQL_TYPE_TIME','%SQL_TYPE_TIMESTAMP',
        +            '%SQL_UB_DEFAULT','%SQL_UB_FIXED','%SQL_UB_OFF','%SQL_UB_ON','%SQL_UB_VARIABLE','%SQL_UNBIND','%SQL_UNICODE','%SQL_UNICODE_CHAR',
        +            '%SQL_UNICODE_LONGVARCHAR','%SQL_UNICODE_VARCHAR','%SQL_UNION','%SQL_UNION_STATEMENT','%SQL_UNKNOWN_TYPE','%SQL_UNNAMED','%SQL_UNSEARCHABLE','%SQL_UNSIGNED_OFFSET',
        +            '%SQL_UNSPECIFIED','%SQL_UPDATE','%SQL_UPDATE_BY_BOOKMARK','%SQL_USER_NAME','%SQL_USE_BOOKMARKS','%SQL_US_UNION','%SQL_US_UNION_ALL','%SQL_U_UNION',
        +            '%SQL_U_UNION_ALL','%SQL_VARBINARY','%SQL_VARCHAR','%SQL_XOPEN_CLI_YEAR','%SQL_YEAR','%SQL_YEAR_TO_MONTH','%SRCCOPY','%SS_BITMAP',
        +            '%SS_BLACKFRAME','%SS_BLACKRECT','%SS_CENTER','%SS_CENTERIMAGE','%SS_ENDELLIPSIS','%SS_ETCHEDFRAME','%SS_ETCHEDHORZ','%SS_ETCHEDVERT',
        +            '%SS_GRAYFRAME','%SS_GRAYRECT','%SS_LEFT','%SS_NOPREFIX','%SS_NOTIFY','%SS_NOWORDWRAP','%SS_PATHELLIPSIS','%SS_RIGHT',
        +            '%SS_RIGHTJUST','%SS_SIMPLE','%SS_SUNKEN','%SS_WHITEFRAME','%SS_WHITERECT','%SS_WORDELLIPSIS','%STAT_FILL_FROM_MEMORY','%STAT_FILL_NATURAL',
        +            '%STAT_FILL_NATURAL_ERASTONE','%STAT_FILL_NATURAL_EVEN','%STAT_FILL_NATURAL_FIBONACCI','%STAT_FILL_NATURAL_ODD','%STAT_FILL_WITH_NUMBER','%STAT_MINMAX_INDEX','%STAT_MINMAX_VALUE','%STAT_TYPE_BYTE',
        +            '%STAT_TYPE_CURRENCY','%STAT_TYPE_DOUBLE','%STAT_TYPE_DWORD','%STAT_TYPE_EXT','%STAT_TYPE_INTEGER','%STAT_TYPE_LONG','%STAT_TYPE_QUAD','%STAT_TYPE_SINGLE',
        +            '%STAT_TYPE_WORD','%SWP_ASYNCWINDOWPOS','%SWP_DEFERERASE','%SWP_DRAWFRAME','%SWP_FRAMECHANGED','%SWP_HIDEWINDOW','%SWP_NOACTIVATE','%SWP_NOCOPYBITS',
        +            '%SWP_NOMOVE','%SWP_NOOWNERZORDER','%SWP_NOREDRAW','%SWP_NOREPOSITION','%SWP_NOSENDCHANGING','%SWP_NOSIZE','%SWP_NOZORDER','%SWP_SHOWWINDOW',
        +            '%SW_FORCEMINIMIZE','%SW_HIDE','%SW_MAXIMIZE','%SW_MINIMIZE','%SW_NORMAL','%SW_RESTORE','%SW_SHOW','%SW_SHOWDEFAULT',
        +            '%SW_SHOWMAXIMIZED','%SW_SHOWMINIMIZED','%SW_SHOWMINNOACTIVE','%SW_SHOWNA','%SW_SHOWNOACTIVATE','%SW_SHOWNORMAL','%TBASS_3DALG_DEFAULT','%TBASS_3DALG_FULL',
        +            '%TBASS_3DALG_LIGHT','%TBASS_3DALG_OFF','%TBASS_3DMODE_NORMAL','%TBASS_3DMODE_OFF','%TBASS_3DMODE_RELATIVE','%TBASS_ACTIVE_PAUSED','%TBASS_ACTIVE_PLAYING','%TBASS_ACTIVE_STALLED',
        +            '%TBASS_ACTIVE_STOPPED','%TBASS_CONFIG_3DALGORITHM','%TBASS_CONFIG_BUFFER','%TBASS_CONFIG_CURVE_PAN','%TBASS_CONFIG_CURVE_VOL','%TBASS_CONFIG_FLOATDSP','%TBASS_CONFIG_GVOL_MUSIC','%TBASS_CONFIG_GVOL_SAMPLE',
        +            '%TBASS_CONFIG_GVOL_STREAM','%TBASS_CONFIG_MAXVOL','%TBASS_CONFIG_MP3_CODEC','%TBASS_CONFIG_NET_AGENT','%TBASS_CONFIG_NET_BUFFER','%TBASS_CONFIG_NET_PASSIVE','%TBASS_CONFIG_NET_PREBUF','%TBASS_CONFIG_NET_PROXY',
        +            '%TBASS_CONFIG_NET_TIMEOUT','%TBASS_CONFIG_PAUSE_NOPLAY','%TBASS_CONFIG_UPDATEPERIOD','%TBASS_CTYPE_MUSIC_IT','%TBASS_CTYPE_MUSIC_MO3','%TBASS_CTYPE_MUSIC_MOD','%TBASS_CTYPE_MUSIC_MTM','%TBASS_CTYPE_MUSIC_S3M',
        +            '%TBASS_CTYPE_MUSIC_XM','%TBASS_CTYPE_RECORD','%TBASS_CTYPE_SAMPLE','%TBASS_CTYPE_STREAM','%TBASS_CTYPE_STREAM_AIFF','%TBASS_CTYPE_STREAM_MP1','%TBASS_CTYPE_STREAM_MP2','%TBASS_CTYPE_STREAM_MP3',
        +            '%TBASS_CTYPE_STREAM_OGG','%TBASS_CTYPE_STREAM_WAV','%TBASS_CTYPE_STREAM_WAV_FLOAT','%TBASS_CTYPE_STREAM_WAV_PCM','%TBASS_DATA_AVAILABLE','%TBASS_DATA_FFT1024','%TBASS_DATA_FFT2048','%TBASS_DATA_FFT4096',
        +            '%TBASS_DATA_FFT512','%TBASS_DATA_FFT_INDIVIDUAL','%TBASS_DATA_FFT_NOWINDOW','%TBASS_DATA_FLOAT','%TBASS_DEVICE_3D','%TBASS_DEVICE_8BITS','%TBASS_DEVICE_LATENCY','%TBASS_DEVICE_MONO',
        +            '%TBASS_DEVICE_NOSPEAKER','%TBASS_DEVICE_SPEAKERS','%TBASS_EAX_ENVIRONMENT_ALLEY','%TBASS_EAX_ENVIRONMENT_ARENA','%TBASS_EAX_ENVIRONMENT_AUDITORIUM','%TBASS_EAX_ENVIRONMENT_BATHROOM','%TBASS_EAX_ENVIRONMENT_CARPETEDHALLWAY','%TBASS_EAX_ENVIRONMENT_CAVE',
        +            '%TBASS_EAX_ENVIRONMENT_CITY','%TBASS_EAX_ENVIRONMENT_CONCERTHALL','%TBASS_EAX_ENVIRONMENT_COUNT','%TBASS_EAX_ENVIRONMENT_DIZZY','%TBASS_EAX_ENVIRONMENT_DRUGGED','%TBASS_EAX_ENVIRONMENT_FOREST','%TBASS_EAX_ENVIRONMENT_GENERIC','%TBASS_EAX_ENVIRONMENT_HALLWAY',
        +            '%TBASS_EAX_ENVIRONMENT_HANGAR','%TBASS_EAX_ENVIRONMENT_LIVINGROOM','%TBASS_EAX_ENVIRONMENT_MOUNTAINS','%TBASS_EAX_ENVIRONMENT_PADDEDCELL','%TBASS_EAX_ENVIRONMENT_PARKINGLOT','%TBASS_EAX_ENVIRONMENT_PLAIN','%TBASS_EAX_ENVIRONMENT_PSYCHOTIC','%TBASS_EAX_ENVIRONMENT_QUARRY',
        +            '%TBASS_EAX_ENVIRONMENT_ROOM','%TBASS_EAX_ENVIRONMENT_SEWERPIPE','%TBASS_EAX_ENVIRONMENT_STONECORRIDOR','%TBASS_EAX_ENVIRONMENT_STONEROOM','%TBASS_EAX_ENVIRONMENT_UNDERWATER','%TBASS_ERROR_ALREADY','%TBASS_ERROR_BUFLOST','%TBASS_ERROR_CODEC',
        +            '%TBASS_ERROR_CREATE','%TBASS_ERROR_DECODE','%TBASS_ERROR_DEVICE','%TBASS_ERROR_DRIVER','%TBASS_ERROR_DX','%TBASS_ERROR_EMPTY','%TBASS_ERROR_FILEFORM','%TBASS_ERROR_FILEOPEN',
        +            '%TBASS_ERROR_FORMAT','%TBASS_ERROR_FREQ','%TBASS_ERROR_HANDLE','%TBASS_ERROR_ILLPARAM','%TBASS_ERROR_ILLTYPE','%TBASS_ERROR_INIT','%TBASS_ERROR_MEM','%TBASS_ERROR_NO3D',
        +            '%TBASS_ERROR_NOCHAN','%TBASS_ERROR_NOEAX','%TBASS_ERROR_NOFX','%TBASS_ERROR_NOHW','%TBASS_ERROR_NONET','%TBASS_ERROR_NOPAUSE','%TBASS_ERROR_NOPLAY','%TBASS_ERROR_NOTAVAIL',
        +            '%TBASS_ERROR_NOTFILE','%TBASS_ERROR_PLAYING','%TBASS_ERROR_POSITION','%TBASS_ERROR_SPEAKER','%TBASS_ERROR_START','%TBASS_ERROR_TIMEOUT','%TBASS_ERROR_UNKNOWN','%TBASS_ERROR_VERSION',
        +            '%TBASS_FALSE','%TBASS_FILEPOS_CURRENT','%TBASS_FILEPOS_DECODE','%TBASS_FILEPOS_DOWNLOAD','%TBASS_FILEPOS_END','%TBASS_FILEPOS_START','%TBASS_FILE_CLOSE','%TBASS_FILE_LEN',
        +            '%TBASS_FILE_READ','%TBASS_FILE_SEEK','%TBASS_FX_CHORUS','%TBASS_FX_COMPRESSOR','%TBASS_FX_DISTORTION','%TBASS_FX_ECHO','%TBASS_FX_FLANGER','%TBASS_FX_GARGLE',
        +            '%TBASS_FX_I3DL2REVERB','%TBASS_FX_PARAMEQ','%TBASS_FX_PHASE_180','%TBASS_FX_PHASE_90','%TBASS_FX_PHASE_NEG_180','%TBASS_FX_PHASE_NEG_90','%TBASS_FX_PHASE_ZERO','%TBASS_FX_REVERB',
        +            '%TBASS_INPUT_LEVEL','%TBASS_INPUT_OFF','%TBASS_INPUT_ON','%TBASS_INPUT_TYPE_ANALOG','%TBASS_INPUT_TYPE_AUX','%TBASS_INPUT_TYPE_CD','%TBASS_INPUT_TYPE_DIGITAL','%TBASS_INPUT_TYPE_LINE',
        +            '%TBASS_INPUT_TYPE_MASK','%TBASS_INPUT_TYPE_MIC','%TBASS_INPUT_TYPE_PHONE','%TBASS_INPUT_TYPE_SPEAKER','%TBASS_INPUT_TYPE_SYNTH','%TBASS_INPUT_TYPE_UNDEF','%TBASS_INPUT_TYPE_WAVE','%TBASS_MP3_SETPOS',
        +            '%TBASS_MUSIC_3D','%TBASS_MUSIC_ATTRIB_AMPLIFY','%TBASS_MUSIC_ATTRIB_BPM','%TBASS_MUSIC_ATTRIB_PANSEP','%TBASS_MUSIC_ATTRIB_PSCALER','%TBASS_MUSIC_ATTRIB_SPEED','%TBASS_MUSIC_ATTRIB_VOL_CHAN','%TBASS_MUSIC_ATTRIB_VOL_GLOBAL',
        +            '%TBASS_MUSIC_ATTRIB_VOL_INST','%TBASS_MUSIC_AUTOFREE','%TBASS_MUSIC_CALCLEN','%TBASS_MUSIC_DECODE','%TBASS_MUSIC_FLOAT','%TBASS_MUSIC_FT2MOD','%TBASS_MUSIC_FX','%TBASS_MUSIC_LOOP',
        +            '%TBASS_MUSIC_MONO','%TBASS_MUSIC_NONINTER','%TBASS_MUSIC_NOSAMPLE','%TBASS_MUSIC_POSRESET','%TBASS_MUSIC_POSRESETEX','%TBASS_MUSIC_PRESCAN','%TBASS_MUSIC_PT1MOD','%TBASS_MUSIC_RAMP',
        +            '%TBASS_MUSIC_RAMPS','%TBASS_MUSIC_STOPBACK','%TBASS_MUSIC_SURROUND','%TBASS_MUSIC_SURROUND2','%TBASS_OBJECT_DS','%TBASS_OBJECT_DS3DL','%TBASS_OK','%TBASS_RECORD_PAUSE',
        +            '%TBASS_SAMPLE_3D','%TBASS_SAMPLE_8BITS','%TBASS_SAMPLE_FLOAT','%TBASS_SAMPLE_FX','%TBASS_SAMPLE_LOOP','%TBASS_SAMPLE_MONO','%TBASS_SAMPLE_MUTEMAX','%TBASS_SAMPLE_OVER_DIST',
        +            '%TBASS_SAMPLE_OVER_POS','%TBASS_SAMPLE_OVER_VOL','%TBASS_SAMPLE_SOFTWARE','%TBASS_SAMPLE_VAM','%TBASS_SLIDE_FREQ','%TBASS_SLIDE_PAN','%TBASS_SLIDE_VOL','%TBASS_SPEAKER_CENLFE',
        +            '%TBASS_SPEAKER_CENTER','%TBASS_SPEAKER_FRONT','%TBASS_SPEAKER_FRONTLEFT','%TBASS_SPEAKER_FRONTRIGHT','%TBASS_SPEAKER_LEFT','%TBASS_SPEAKER_LFE','%TBASS_SPEAKER_REAR','%TBASS_SPEAKER_REAR2',
        +            '%TBASS_SPEAKER_REAR2LEFT','%TBASS_SPEAKER_REAR2RIGHT','%TBASS_SPEAKER_REARLEFT','%TBASS_SPEAKER_REARRIGHT','%TBASS_SPEAKER_RIGHT','%TBASS_STREAMPROC_END','%TBASS_STREAM_AUTOFREE','%TBASS_STREAM_BLOCK',
        +            '%TBASS_STREAM_DECODE','%TBASS_STREAM_PRESCAN','%TBASS_STREAM_RESTRATE','%TBASS_STREAM_STATUS','%TBASS_SYNC_DOWNLOAD','%TBASS_SYNC_END','%TBASS_SYNC_FREE','%TBASS_SYNC_MESSAGE',
        +            '%TBASS_SYNC_META','%TBASS_SYNC_MIXTIME','%TBASS_SYNC_MUSICFX','%TBASS_SYNC_MUSICINST','%TBASS_SYNC_MUSICPOS','%TBASS_SYNC_ONETIME','%TBASS_SYNC_POS','%TBASS_SYNC_SLIDE',
        +            '%TBASS_SYNC_STALL','%TBASS_TAG_HTTP','%TBASS_TAG_ICY','%TBASS_TAG_ID3','%TBASS_TAG_ID3V2','%TBASS_TAG_META','%TBASS_TAG_MUSIC_INST','%TBASS_TAG_MUSIC_MESSAGE',
        +            '%TBASS_TAG_MUSIC_NAME','%TBASS_TAG_MUSIC_SAMPLE','%TBASS_TAG_OGG','%TBASS_TAG_RIFF_INFO','%TBASS_TAG_VENDOR','%TBASS_TRUE','%TBASS_UNICODE','%TBASS_VAM_HARDWARE',
        +            '%TBASS_VAM_SOFTWARE','%TBASS_VAM_TERM_DIST','%TBASS_VAM_TERM_PRIO','%TBASS_VAM_TERM_TIME','%TBASS_VERSION','%TBCD_CHANNEL','%TBCD_THUMB','%TBCD_TICS',
        +            '%TBGL_ALIGN_CENTER','%TBGL_ALIGN_CENTER_CENTER','%TBGL_ALIGN_CENTER_DOWN','%TBGL_ALIGN_CENTER_UP','%TBGL_ALIGN_LEFT','%TBGL_ALIGN_LEFT_CENTER','%TBGL_ALIGN_LEFT_DOWN','%TBGL_ALIGN_LEFT_UP',
        +            '%TBGL_ALIGN_RIGHT','%TBGL_ALIGN_RIGHT_CENTER','%TBGL_ALIGN_RIGHT_DOWN','%TBGL_ALIGN_RIGHT_UP','%TBGL_ALWAYS','%TBGL_EQUAL','%TBGL_ERROR_FILE','%TBGL_ERROR_MSGBOX',
        +            '%TBGL_ERROR_NONE','%TBGL_GEQUAL','%TBGL_GREATER','%TBGL_LEQUAL','%TBGL_LESS','%TBGL_LIGHT_AMBIENT','%TBGL_LIGHT_CONSTANT_ATTENUATION','%TBGL_LIGHT_DIFFUSE',
        +            '%TBGL_LIGHT_LINEAR_ATTENUATION','%TBGL_LIGHT_POSITION','%TBGL_LIGHT_QUADRATIC_ATTENUATION','%TBGL_LIGHT_SPECULAR','%TBGL_LIGHT_SPOT_CUTOFF','%TBGL_LIGHT_SPOT_DIRECTION','%TBGL_LIGHT_SPOT_EXPONENT','%TBGL_M15B',
        +            '%TBGL_M15G','%TBGL_M15LAYER','%TBGL_M15PSTOP','%TBGL_M15R','%TBGL_M15TEXN','%TBGL_M15TEXX','%TBGL_M15TEXY','%TBGL_M15X',
        +            '%TBGL_M15Y','%TBGL_M15Z','%TBGL_NEVER','%TBGL_NORMAL_NONE','%TBGL_NORMAL_PRECISE','%TBGL_NORMAL_SMOOTH','%TBGL_NOTEQUAL','%TBGL_OBJ_CUBE',
        +            '%TBGL_OBJ_CUBE3','%TBGL_OBJ_CYLINDER','%TBGL_OBJ_SPHERE','%TBGL_PINFO_RGB','%TBGL_PINFO_XYZ','%TBGL_TEX_LINEAR','%TBGL_TEX_MIPMAP','%TBGL_TEX_NEAREST',
        +            '%TBM_CLEARSEL','%TBM_CLEARTICS','%TBM_GETBUDDY','%TBM_GETCHANNELRECT','%TBM_GETLINESIZE','%TBM_GETNUMTICS','%TBM_GETPAGESIZE','%TBM_GETPOS',
        +            '%TBM_GETPTICS','%TBM_GETRANGEMAX','%TBM_GETRANGEMIN','%TBM_GETSELEND','%TBM_GETSELSTART','%TBM_GETTHUMBLENGTH','%TBM_GETTHUMBRECT','%TBM_GETTIC',
        +            '%TBM_GETTICPOS','%TBM_GETTOOLTIPS','%TBM_GETUNICODEFORMAT','%TBM_SETBUDDY','%TBM_SETLINESIZE','%TBM_SETPAGESIZE','%TBM_SETPOS','%TBM_SETRANGE',
        +            '%TBM_SETRANGEMAX','%TBM_SETRANGEMIN','%TBM_SETSEL','%TBM_SETSELEND','%TBM_SETSELSTART','%TBM_SETTHUMBLENGTH','%TBM_SETTIC','%TBM_SETTICFREQ',
        +            '%TBM_SETTIPSIDE','%TBM_SETTOOLTIPS','%TBM_SETUNICODEFORMAT','%TBS_AUTOTICKS','%TBS_BOTH','%TBS_BOTTOM','%TBS_DOWNISLEFT','%TBS_ENABLESELRANGE',
        +            '%TBS_FIXEDLENGTH','%TBS_HORZ','%TBS_LEFT','%TBS_NOTHUMB','%TBS_NOTICKS','%TBS_REVERSED','%TBS_RIGHT','%TBS_TOOLTIPS',
        +            '%TBS_TOP','%TBS_VERT','%TBTS_BOTTOM','%TBTS_LEFT','%TBTS_RIGHT','%TBTS_TOP','%TB_%VT_BSTR','%TB_%VT_CY',
        +            '%TB_%VT_DATE','%TB_%VT_EMPTY','%TB_%VT_I2','%TB_%VT_I4','%TB_%VT_NULL','%TB_%VT_R4','%TB_%VT_R8','%TB_BOTTOM',
        +            '%TB_CLASS_E_NOAGGREGATION','%TB_CO_E_CLASSSTRING','%TB_DISPATCH_METHOD','%TB_DISPATCH_PROPERTYGET','%TB_DISPATCH_PROPERTYPUT','%TB_DISPATCH_PROPERTYPUTREF','%TB_ENDTRACK','%TB_E_INVALIDARG',
        +            '%TB_E_NOINTERFACE','%TB_E_OUTOFMEMORY','%TB_IMGCTX_ACTUALSIZE','%TB_IMGCTX_AUTOSIZE','%TB_IMGCTX_FITTOHEIGHT','%TB_IMGCTX_FITTOWIDTH','%TB_IMGCTX_STRETCH','%TB_LINEDOWN',
        +            '%TB_LINEUP','%TB_MK_E_CONNECTMANUALLY','%TB_MK_E_EXCEEDEDDEADLINE','%TB_MK_E_INTERMEDIATEINTERFACENOTSUPPORTED','%TB_MK_E_NOOBJECT','%TB_MK_E_SYNTAX','%TB_PAGEDOWN','%TB_PAGEUP',
        +            '%TB_REGDB_E_CLASSNOTREG','%TB_REGDB_E_WRITEREGDB','%TB_SIZEOF_TBVARIANT','%TB_S_FALSE','%TB_S_OK','%TB_THUMBPOSITION','%TB_THUMBTRACK','%TB_TOP',
        +            '%TCM_FIRST','%TCM_GETCURSEL','%TCN_FOCUSCHANGE','%TCN_GETOBJECT','%TCN_SELCHANGE','%TCN_SELCHANGING','%TCS_BOTTOM','%TCS_BUTTONS',
        +            '%TCS_EX_FLATSEPARATORS','%TCS_EX_REGISTERDROP','%TCS_FIXEDWIDTH','%TCS_FLATBUTTONS','%TCS_FOCUSNEVER','%TCS_FOCUSONBUTTONDOWN','%TCS_FORCEICONLEFT','%TCS_FORCELABELLEFT',
        +            '%TCS_HOTTRACK','%TCS_MULTILINE','%TCS_MULTISELECT','%TCS_OWNERDRAWFIXED','%TCS_RAGGEDRIGHT','%TCS_RIGHT','%TCS_RIGHTJUSTIFY','%TCS_SCROLLOPPOSITE',
        +            '%TCS_SINGLELINE','%TCS_TABS','%TCS_TOOLTIPS','%TCS_VERTICAL','%TM_PLAINTEXT','%TM_RICHTEXT','%TOKENIZER_DEFAULT_ALPHA','%TOKENIZER_DEFAULT_DELIM',
        +            '%TOKENIZER_DEFAULT_DQUOTE','%TOKENIZER_DEFAULT_NEWLINE','%TOKENIZER_DEFAULT_NUMERIC','%TOKENIZER_DEFAULT_SPACE','%TOKENIZER_DELIMITER','%TOKENIZER_EOL','%TOKENIZER_ERROR','%TOKENIZER_FINISHED',
        +            '%TOKENIZER_NUMBER','%TOKENIZER_QUOTE','%TOKENIZER_STRING','%TOKENIZER_UNDEFTOK','%TRUE','%TV_FIRST','%UDM_GETACCEL','%UDM_GETBASE',
        +            '%UDM_GETBUDDY','%UDM_GETPOS','%UDM_GETPOS32','%UDM_GETRANGE','%UDM_GETRANGE32','%UDM_GETUNICODEFORMAT','%UDM_SETACCEL','%UDM_SETBASE',
        +            '%UDM_SETBUDDY','%UDM_SETPOS','%UDM_SETPOS32','%UDM_SETRANGE','%UDM_SETRANGE32','%UDM_SETUNICODEFORMAT','%UDS_ALIGNLEFT','%UDS_ALIGNRIGHT',
        +            '%UDS_ARROWKEYS','%UDS_AUTOBUDDY','%UDS_HORZ','%UDS_HOTTRACK','%UDS_NOTHOUSANDS','%UDS_SETBUDDYINT','%UDS_WRAP','%UD_MAXVAL',
        +            '%UD_MINVAL','%VK_0','%VK_1','%VK_2','%VK_3','%VK_4','%VK_5','%VK_6',
        +            '%VK_7','%VK_8','%VK_9','%VK_A','%VK_ACCEPT','%VK_ADD','%VK_APPS','%VK_B',
        +            '%VK_BACK','%VK_C','%VK_CANCEL','%VK_CAPITAL','%VK_CLEAR','%VK_CONTROL','%VK_CONVERT','%VK_D',
        +            '%VK_DECIMAL','%VK_DELETE','%VK_DIVIDE','%VK_DOWN','%VK_E','%VK_END','%VK_ESCAPE','%VK_EXECUTE',
        +            '%VK_F','%VK_F1','%VK_F10','%VK_F11','%VK_F12','%VK_F13','%VK_F14','%VK_F15',
        +            '%VK_F16','%VK_F17','%VK_F18','%VK_F19','%VK_F2','%VK_F20','%VK_F21','%VK_F22',
        +            '%VK_F23','%VK_F24','%VK_F3','%VK_F4','%VK_F5','%VK_F6','%VK_F7','%VK_F8',
        +            '%VK_F9','%VK_FINAL','%VK_G','%VK_H','%VK_HANGEUL','%VK_HANGUL','%VK_HANJA','%VK_HELP',
        +            '%VK_HOME','%VK_I','%VK_INSERT','%VK_J','%VK_JUNJA','%VK_K','%VK_KANA','%VK_KANJI',
        +            '%VK_L','%VK_LBUTTON','%VK_LEFT','%VK_LINEFEED','%VK_LWIN','%VK_M','%VK_MBUTTON','%VK_MENU',
        +            '%VK_MODECHANGE','%VK_MULTIPLY','%VK_N','%VK_NEXT','%VK_NONCONVERT','%VK_NUMLOCK','%VK_NUMPAD0','%VK_NUMPAD1',
        +            '%VK_NUMPAD2','%VK_NUMPAD3','%VK_NUMPAD4','%VK_NUMPAD5','%VK_NUMPAD6','%VK_NUMPAD7','%VK_NUMPAD8','%VK_NUMPAD9',
        +            '%VK_O','%VK_P','%VK_PAUSE','%VK_PGDN','%VK_PGUP','%VK_PRINT','%VK_PRIOR','%VK_Q',
        +            '%VK_R','%VK_RBUTTON','%VK_RETURN','%VK_RIGHT','%VK_RWIN','%VK_S','%VK_SCROLL','%VK_SELECT',
        +            '%VK_SEPARATOR','%VK_SHIFT','%VK_SLEEP','%VK_SNAPSHOT','%VK_SPACE','%VK_SUBTRACT','%VK_T','%VK_TAB',
        +            '%VK_U','%VK_UP','%VK_V','%VK_W','%VK_X','%VK_XBUTTON1','%VK_XBUTTON2','%VK_Y',
        +            '%VK_Z','%VT_ARRAY','%VT_BLOB','%VT_BLOB_OBJECT','%VT_BOOL','%VT_BSTR','%VT_BYREF','%VT_CARRAY',
        +            '%VT_CF','%VT_CLSID','%VT_CY','%VT_DATE','%VT_DISPATCH','%VT_EMPTY','%VT_ERROR','%VT_FILETIME',
        +            '%VT_HRESULT','%VT_I1','%VT_I2','%VT_I4','%VT_I8','%VT_INT','%VT_LPSTR','%VT_LPWSTR',
        +            '%VT_NULL','%VT_PTR','%VT_R4','%VT_R8','%VT_RECORD','%VT_RESERVED','%VT_SAFEARRAY','%VT_STORAGE',
        +            '%VT_STORED_OBJECT','%VT_STREAM','%VT_STREAMED_OBJECT','%VT_UI1','%VT_UI2','%VT_UI4','%VT_UI8','%VT_UINT',
        +            '%VT_UNKNOWN','%VT_USERDEFINED','%VT_VARIANT','%VT_VECTOR','%VT_VOID','%WAVE_FORMAT_1M08','%WAVE_FORMAT_1M16','%WAVE_FORMAT_1S08',
        +            '%WAVE_FORMAT_1S16','%WAVE_FORMAT_2M08','%WAVE_FORMAT_2M16','%WAVE_FORMAT_2S08','%WAVE_FORMAT_2S16','%WAVE_FORMAT_4M08','%WAVE_FORMAT_4M16','%WAVE_FORMAT_4S08',
        +            '%WAVE_FORMAT_4S16','%WBF_CUSTOM','%WBF_LEVEL1','%WBF_LEVEL2','%WBF_OVERFLOW','%WBF_WORDBREAK','%WBF_WORDWRAP','%WHITE',
        +            '%WIN_FINDTITLECONTAIN','%WIN_FINDTITLEEND','%WIN_FINDTITLEEQUAL','%WIN_FINDTITLESTART','%WM_ACTIVATE','%WM_ACTIVATEAPP','%WM_CAPTURECHANGED','%WM_CHAR',
        +            '%WM_CLOSE','%WM_COMMAND','%WM_DESTROY','%WM_DROPFILES','%WM_ERASEBKGND','%WM_GETTEXTLENGTH','%WM_HOTKEY','%WM_HSCROLL',
        +            '%WM_IDLE','%WM_INITDIALOG','%WM_KEYDOWN','%WM_KEYUP','%WM_KILLFOCUS','%WM_LBUTTONDBLCLK','%WM_LBUTTONDOWN','%WM_LBUTTONUP',
        +            '%WM_MBUTTONDBLCLK','%WM_MBUTTONDOWN','%WM_MBUTTONUP','%WM_MOUSEFIRST','%WM_MOUSEMOVE','%WM_MOUSEWHEEL','%WM_MOVE','%WM_MOVING',
        +            '%WM_NCLBUTTONDOWN','%WM_NCRBUTTONDOWN','%WM_NEXTDLGCTL','%WM_NOTIFY','%WM_PAINT','%WM_QUIT','%WM_RBUTTONDBLCLK','%WM_RBUTTONDOWN',
        +            '%WM_RBUTTONUP','%WM_SETFOCUS','%WM_SETFONT','%WM_SETTEXT','%WM_SIZE','%WM_SIZING','%WM_SYSCOMMAND','%WM_TIMER',
        +            '%WM_USER','%WM_VSCROLL','%WS_BORDER','%WS_CAPTION','%WS_CHILD','%WS_CLIPCHILDREN','%WS_CLIPSIBLINGS','%WS_DISABLED',
        +            '%WS_DLGFRAME','%WS_EX_ACCEPTFILES','%WS_EX_APPWINDOW','%WS_EX_CLIENTEDGE','%WS_EX_CONTEXTHELP','%WS_EX_CONTROLPARENT','%WS_EX_LAYERED','%WS_EX_LEFT',
        +            '%WS_EX_LEFTSCROLLBAR','%WS_EX_LTRREADING','%WS_EX_MDICHILD','%WS_EX_NOPARENTNOTIFY','%WS_EX_OVERLAPPEDWINDOW','%WS_EX_PALETTEWINDOW','%WS_EX_RIGHT','%WS_EX_RIGHTSCROLLBAR',
        +            '%WS_EX_RTLREADING','%WS_EX_STATICEDGE','%WS_EX_TOOLWINDOW','%WS_EX_TOPMOST','%WS_EX_TRANSPARENT','%WS_EX_WINDOWEDGE','%WS_GROUP','%WS_HSCROLL',
        +            '%WS_ICONIC','%WS_MAXIMIZE','%WS_MAXIMIZEBOX','%WS_MINIMIZE','%WS_MINIMIZEBOX','%WS_OVERLAPPEDWINDOW','%WS_POPUP','%WS_POPUPWINDOW',
        +            '%WS_SYSMENU','%WS_TABSTOP','%WS_THICKFRAME','%WS_VISIBLE','%WS_VSCROLL','%YELLOW','%ZERO','CRLF',
        +            'FALSE','M_E','M_PI','NULL','TAB','TRUE'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000FF; font-weight: bold;',
        +            2 => 'color: #993333; font-style: italic; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008000;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #333333;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #800080;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #CC0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #66cc66;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #333333;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '_'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/tsql.php b/Sources/geshi/tsql.php
        new file mode 100644
        index 0000000..b4bf6bd
        --- /dev/null
        +++ b/Sources/geshi/tsql.php
        @@ -0,0 +1,375 @@
        + 'T-SQL',
        +    'COMMENT_SINGLE' => array(1 => '--'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            // Datatypes
        +            'bigint', 'tinyint', 'money',
        +            'smallmoney', 'datetime', 'smalldatetime',
        +            'text', 'nvarchar', 'ntext', 'varbinary', 'image',
        +            'sql_variant', 'uniqueidentifier',
        +
        +            // Keywords
        +            'ABSOLUTE', 'ACTION', 'ADD', 'ADMIN', 'AFTER', 'AGGREGATE', 'ALIAS', 'ALLOCATE', 'ALTER', 'ARE', 'ARRAY', 'AS',
        +            'ASC', 'ASSERTION', 'AT', 'AUTHORIZATION', 'BACKUP', 'BEFORE', 'BEGIN', 'BINARY', 'BIT', 'BLOB', 'BOOLEAN', 'BOTH', 'BREADTH',
        +            'BREAK', 'BROWSE', 'BULK', 'BY', 'CALL', 'CASCADE', 'CASCADED', 'CASE', 'CAST', 'CATALOG', 'CATCH', 'CHAR', 'CHARACTER', 'CHECK', 'CHECKPOINT',
        +            'CLASS', 'CLOB', 'CLOSE', 'CLUSTERED', 'COALESCE', 'COLLATE', 'COLLATION', 'COLUMN', 'COMMIT', 'COMPLETION', 'COMPUTE', 'CONNECT',
        +            'CONNECTION', 'CONSTRAINT', 'CONSTRAINTS', 'CONSTRUCTOR', 'CONTAINS', 'CONTAINSTABLE', 'CONTINUE', 'CONVERT', 'CORRESPONDING', 'CREATE',
        +            'CUBE', 'CURRENT', 'CURRENT_DATE', 'CURRENT_PATH', 'CURRENT_ROLE', 'CURRENT_TIME', 'CURRENT_TIMESTAMP', 'CURRENT_USER',
        +            'CURSOR', 'CYCLE', 'DATA', 'DATABASE', 'DATE', 'DAY', 'DBCC', 'DEALLOCATE', 'DEC', 'DECIMAL', 'DECLARE', 'DEFAULT', 'DEFERRABLE',
        +            'DEFERRED', 'DELETE', 'DENY', 'DEPTH', 'DEREF', 'DESC', 'DESCRIBE', 'DESCRIPTOR', 'DESTROY', 'DESTRUCTOR', 'DETERMINISTIC',
        +            'DIAGNOSTICS', 'DICTIONARY', 'DISCONNECT', 'DISK', 'DISTINCT', 'DISTRIBUTED', 'DOMAIN', 'DOUBLE', 'DROP', 'DUMMY', 'DUMP', 'DYNAMIC',
        +            'EACH', 'ELSE', 'END', 'END-EXEC', 'EQUALS', 'ERRLVL', 'ESCAPE', 'EVERY', 'EXCEPT', 'EXCEPTION', 'EXEC', 'EXECUTE', 'EXIT',
        +            'EXTERNAL', 'FALSE', 'FETCH', 'FILE', 'FILLFACTOR', 'FIRST', 'FLOAT', 'FOR', 'FOREIGN', 'FOUND', 'FREE', 'FREETEXT', 'FREETEXTTABLE',
        +            'FROM', 'FULL', 'FUNCTION', 'GENERAL', 'GET', 'GLOBAL', 'GOTO', 'GRANT', 'GROUP', 'GROUPING', 'HAVING', 'HOLDLOCK', 'HOST', 'HOUR',
        +            'IDENTITY', 'IDENTITY_INSERT', 'IDENTITYCOL', 'IF', 'IGNORE', 'IMMEDIATE', 'INDEX', 'INDICATOR', 'INITIALIZE', 'INITIALLY',
        +            'INNER', 'INOUT', 'INPUT', 'INSERT', 'INT', 'INTEGER', 'INTERSECT', 'INTERVAL', 'INTO', 'IS', 'ISOLATION', 'ITERATE', 'KEY',
        +            'KILL', 'LANGUAGE', 'LARGE', 'LAST', 'LATERAL', 'LEADING', 'LEFT', 'LESS', 'LEVEL', 'LIMIT', 'LINENO', 'LOAD', 'LOCAL',
        +            'LOCALTIME', 'LOCALTIMESTAMP', 'LOCATOR', 'MAP', 'MATCH', 'MINUTE', 'MODIFIES', 'MODIFY', 'MODULE', 'MONTH', 'NAMES', 'NATIONAL',
        +            'NATURAL', 'NCHAR', 'NCLOB', 'NEW', 'NEXT', 'NO', 'NOCHECK', 'NONCLUSTERED', 'NONE', 'NULLIF', 'NUMERIC', 'OBJECT', 'OF',
        +            'OFF', 'OFFSETS', 'OLD', 'ON', 'ONLY', 'OPEN', 'OPENDATASOURCE', 'OPENQUERY', 'OPENROWSET', 'OPENXML', 'OPERATION', 'OPTION',
        +            'ORDER', 'ORDINALITY', 'OUT', 'OUTPUT', 'OVER', 'PAD', 'PARAMETER', 'PARAMETERS', 'PARTIAL', 'PATH', 'PERCENT', 'PLAN',
        +            'POSTFIX', 'PRECISION', 'PREFIX', 'PREORDER', 'PREPARE', 'PRESERVE', 'PRIMARY', 'PRINT', 'PRIOR', 'PRIVILEGES', 'PROC', 'PROCEDURE',
        +            'PUBLIC', 'RAISERROR', 'READ', 'READS', 'READTEXT', 'REAL', 'RECONFIGURE', 'RECURSIVE', 'REF', 'REFERENCES', 'REFERENCING', 'RELATIVE',
        +            'REPLICATION', 'RESTORE', 'RESTRICT', 'RESULT', 'RETURN', 'RETURNS', 'REVOKE', 'RIGHT', 'ROLE', 'ROLLBACK', 'ROLLUP', 'ROUTINE', 'ROW',
        +            'ROWGUIDCOL', 'ROWS', 'RULE', 'SAVE', 'SAVEPOINT', 'SCHEMA', 'SCOPE', 'SCROLL', 'SEARCH', 'SECOND', 'SECTION', 'SELECT',
        +            'SEQUENCE', 'SESSION', 'SESSION_USER', 'SET', 'SETS', 'SETUSER', 'SHUTDOWN', 'SIZE', 'SMALLINT', 'SPACE', 'SPECIFIC',
        +            'SPECIFICTYPE', 'SQL', 'SQLEXCEPTION', 'SQLSTATE', 'SQLWARNING', 'START', 'STATE', 'STATEMENT', 'STATIC', 'STATISTICS', 'STRUCTURE',
        +            'SYSTEM_USER', 'TABLE', 'TEMPORARY', 'TERMINATE', 'TEXTSIZE', 'THAN', 'THEN', 'TIME', 'TIMESTAMP', 'TIMEZONE_HOUR', 'TIMEZONE_MINUTE',
        +            'TO', 'TOP', 'TRAILING', 'TRAN', 'TRANSACTION', 'TRANSLATION', 'TREAT', 'TRIGGER', 'TRUE', 'TRUNCATE', 'TRY', 'TSEQUAL', 'UNDER', 'UNION',
        +            'UNIQUE', 'UNKNOWN', 'UNNEST', 'UPDATE', 'UPDATETEXT', 'USAGE', 'USE', 'USER', 'USING', 'VALUE', 'VALUES', 'VARCHAR', 'VARIABLE',
        +            'VARYING', 'VIEW', 'WAITFOR', 'WHEN', 'WHENEVER', 'WHERE', 'WHILE', 'WITH', 'WITHOUT', 'WORK', 'WRITE', 'WRITETEXT', 'YEAR', 'ZONE',
        +            'UNCOMMITTED', 'NOCOUNT',
        +            ),
        +        2 => array(
        +            /*
        +                Built-in functions
        +                Highlighted in pink.
        +            */
        +
        +            //Configuration Functions
        +            '@@DATEFIRST','@@OPTIONS','@@DBTS','@@REMSERVER','@@LANGID','@@SERVERNAME',
        +            '@@LANGUAGE','@@SERVICENAME','@@LOCK_TIMEOUT','@@SPID','@@MAX_CONNECTIONS',
        +            '@@TEXTSIZE','@@MAX_PRECISION','@@VERSION','@@NESTLEVEL',
        +
        +            //Cursor Functions
        +            '@@CURSOR_ROWS','@@FETCH_STATUS',
        +
        +            //Date and Time Functions
        +            'DATEADD','DATEDIFF','DATENAME','DATEPART','GETDATE','GETUTCDATE',
        +
        +            //Mathematical Functions
        +            'ABS','DEGREES','RAND','ACOS','EXP','ROUND','ASIN','FLOOR','SIGN',
        +            'ATAN','LOG','SIN','ATN2','LOG10','SQUARE','CEILING','PI','SQRT','COS',
        +            'POWER','TAN','COT','RADIANS',
        +
        +            //Meta Data Functions
        +            'COL_LENGTH','COL_NAME','FULLTEXTCATALOGPROPERTY',
        +            'COLUMNPROPERTY','FULLTEXTSERVICEPROPERTY','DATABASEPROPERTY','INDEX_COL',
        +            'DATABASEPROPERTYEX','INDEXKEY_PROPERTY','DB_ID','INDEXPROPERTY','DB_NAME',
        +            'OBJECT_ID','FILE_ID','OBJECT_NAME','FILE_NAME','OBJECTPROPERTY','FILEGROUP_ID',
        +            '@@PROCID','FILEGROUP_NAME','SQL_VARIANT_PROPERTY','FILEGROUPPROPERTY',
        +            'TYPEPROPERTY','FILEPROPERTY',
        +
        +            //Security Functions
        +            'IS_SRVROLEMEMBER','SUSER_SID','SUSER_SNAME','USER_ID',
        +            'HAS_DBACCESS','IS_MEMBER',
        +
        +            //String Functions
        +            'ASCII','SOUNDEX','PATINDEX','CHARINDEX','REPLACE','STR',
        +            'DIFFERENCE','QUOTENAME','STUFF','REPLICATE','SUBSTRING','LEN',
        +            'REVERSE','UNICODE','LOWER','UPPER','LTRIM','RTRIM',
        +
        +            //System Functions
        +            'APP_NAME','COLLATIONPROPERTY','@@ERROR','FORMATMESSAGE',
        +            'GETANSINULL','HOST_ID','HOST_NAME','IDENT_CURRENT','IDENT_INCR',
        +            'IDENT_SEED','@@IDENTITY','ISDATE','ISNUMERIC','PARSENAME','PERMISSIONS',
        +            '@@ROWCOUNT','ROWCOUNT_BIG','SCOPE_IDENTITY','SERVERPROPERTY','SESSIONPROPERTY',
        +            'STATS_DATE','@@TRANCOUNT','USER_NAME',
        +
        +            //System Statistical Functions
        +            '@@CONNECTIONS','@@PACK_RECEIVED','@@CPU_BUSY','@@PACK_SENT',
        +            '@@TIMETICKS','@@IDLE','@@TOTAL_ERRORS','@@IO_BUSY',
        +            '@@TOTAL_READ','@@PACKET_ERRORS','@@TOTAL_WRITE',
        +
        +            //Text and Image Functions
        +            'TEXTPTR','TEXTVALID',
        +
        +            //Aggregate functions
        +            'AVG', 'MAX', 'BINARY_CHECKSUM', 'MIN', 'CHECKSUM', 'SUM', 'CHECKSUM_AGG',
        +            'STDEV', 'COUNT', 'STDEVP', 'COUNT_BIG', 'VAR', 'VARP'
        +            ),
        +        3 => array(
        +            /*
        +                System stored procedures
        +                Higlighted dark brown
        +            */
        +
        +            //Active Directory Procedures
        +            'sp_ActiveDirectory_Obj', 'sp_ActiveDirectory_SCP',
        +
        +            //Catalog Procedures
        +            'sp_column_privileges', 'sp_special_columns', 'sp_columns', 'sp_sproc_columns',
        +            'sp_databases', 'sp_statistics', 'sp_fkeys', 'sp_stored_procedures', 'sp_pkeys',
        +            'sp_table_privileges', 'sp_server_info', 'sp_tables',
        +
        +            //Cursor Procedures
        +            'sp_cursor_list', 'sp_describe_cursor_columns', 'sp_describe_cursor', 'sp_describe_cursor_tables',
        +
        +            //Database Maintenance Plan Procedures
        +            'sp_add_maintenance_plan', 'sp_delete_maintenance_plan_db', 'sp_add_maintenance_plan_db',
        +            'sp_delete_maintenance_plan_job', 'sp_add_maintenance_plan_job', 'sp_help_maintenance_plan',
        +            'sp_delete_maintenance_plan',
        +
        +            //Distributed Queries Procedures
        +            'sp_addlinkedserver', 'sp_indexes', 'sp_addlinkedsrvlogin', 'sp_linkedservers', 'sp_catalogs',
        +            'sp_primarykeys', 'sp_column_privileges_ex', 'sp_columns_ex',
        +            'sp_table_privileges_ex', 'sp_tables_ex', 'sp_foreignkeys',
        +
        +            //Full-Text Search Procedures
        +            'sp_fulltext_catalog', 'sp_help_fulltext_catalogs_cursor', 'sp_fulltext_column',
        +            'sp_help_fulltext_columns', 'sp_fulltext_database', 'sp_help_fulltext_columns_cursor',
        +            'sp_fulltext_service', 'sp_help_fulltext_tables', 'sp_fulltext_table',
        +            'sp_help_fulltext_tables_cursor', 'sp_help_fulltext_catalogs',
        +
        +            //Log Shipping Procedures
        +            'sp_add_log_shipping_database', 'sp_delete_log_shipping_database', 'sp_add_log_shipping_plan',
        +            'sp_delete_log_shipping_plan', 'sp_add_log_shipping_plan_database',
        +            'sp_delete_log_shipping_plan_database', 'sp_add_log_shipping_primary',
        +            'sp_delete_log_shipping_primary', 'sp_add_log_shipping_secondary',
        +            'sp_delete_log_shipping_secondary', 'sp_can_tlog_be_applied', 'sp_get_log_shipping_monitor_info',
        +            'sp_change_monitor_role', 'sp_remove_log_shipping_monitor', 'sp_change_primary_role',
        +            'sp_resolve_logins', 'sp_change_secondary_role', 'sp_update_log_shipping_monitor_info',
        +            'sp_create_log_shipping_monitor_account', 'sp_update_log_shipping_plan',
        +            'sp_define_log_shipping_monitor', 'sp_update_log_shipping_plan_database',
        +
        +            //OLE Automation Extended Stored Procedures
        +            'sp_OACreate', 'sp_OAMethod', 'sp_OADestroy', 'sp_OASetProperty', 'sp_OAGetErrorInfo',
        +            'sp_OAStop', 'sp_OAGetProperty',
        +
        +            //Replication Procedures
        +            'sp_add_agent_parameter', 'sp_enableagentoffload', 'sp_add_agent_profile',
        +            'sp_enumcustomresolvers', 'sp_addarticle', 'sp_enumdsn', 'sp_adddistpublisher',
        +            'sp_enumfullsubscribers', 'sp_adddistributiondb', 'sp_expired_subscription_cleanup',
        +            'sp_adddistributor', 'sp_generatefilters', 'sp_addmergealternatepublisher',
        +            'sp_getagentoffloadinfo', 'sp_addmergearticle', 'sp_getmergedeletetype', 'sp_addmergefilter',
        +            'sp_get_distributor', 'sp_addmergepublication', 'sp_getqueuedrows', 'sp_addmergepullsubscription',
        +            'sp_getsubscriptiondtspackagename', 'sp_addmergepullsubscription_agent', 'sp_grant_publication_access',
        +            'sp_addmergesubscription', 'sp_help_agent_default', 'sp_addpublication', 'sp_help_agent_parameter',
        +            'sp_addpublication_snapshot', 'sp_help_agent_profile', 'sp_addpublisher70', 'sp_helparticle',
        +            'sp_addpullsubscription', 'sp_helparticlecolumns', 'sp_addpullsubscription_agent', 'sp_helparticledts',
        +            'sp_addscriptexec', 'sp_helpdistpublisher', 'sp_addsubscriber', 'sp_helpdistributiondb',
        +            'sp_addsubscriber_schedule', 'sp_helpdistributor', 'sp_addsubscription', 'sp_helpmergealternatepublisher',
        +            'sp_addsynctriggers', 'sp_helpmergearticle', 'sp_addtabletocontents', 'sp_helpmergearticlecolumn',
        +            'sp_adjustpublisheridentityrange', 'sp_helpmergearticleconflicts', 'sp_article_validation',
        +            'sp_helpmergeconflictrows', 'sp_articlecolumn', 'sp_helpmergedeleteconflictrows', 'sp_articlefilter',
        +            'sp_helpmergefilter', 'sp_articlesynctranprocs', 'sp_helpmergepublication', 'sp_articleview',
        +            'sp_helpmergepullsubscription', 'sp_attachsubscription', 'sp_helpmergesubscription', 'sp_browsesnapshotfolder',
        +            'sp_helppublication', 'sp_browsemergesnapshotfolder', 'sp_help_publication_access', 'sp_browsereplcmds',
        +            'sp_helppullsubscription', 'sp_change_agent_parameter', 'sp_helpreplfailovermode', 'sp_change_agent_profile',
        +            'sp_helpreplicationdboption', 'sp_changearticle', 'sp_helpreplicationoption', 'sp_changedistpublisher',
        +            'sp_helpsubscriberinfo', 'sp_changedistributiondb', 'sp_helpsubscription', 'sp_changedistributor_password',
        +            'sp_ivindexhasnullcols', 'sp_changedistributor_property', 'sp_helpsubscription_properties', 'sp_changemergearticle',
        +            'sp_link_publication', 'sp_changemergefilter', 'sp_marksubscriptionvalidation', 'sp_changemergepublication',
        +            'sp_mergearticlecolumn', 'sp_changemergepullsubscription', 'sp_mergecleanupmetadata', 'sp_changemergesubscription',
        +            'sp_mergedummyupdate', 'sp_changepublication', 'sp_mergesubscription_cleanup', 'sp_changesubscriber',
        +            'sp_publication_validation', 'sp_changesubscriber_schedule', 'sp_refreshsubscriptions', 'sp_changesubscriptiondtsinfo',
        +            'sp_reinitmergepullsubscription', 'sp_changesubstatus', 'sp_reinitmergesubscription', 'sp_change_subscription_properties',
        +            'sp_reinitpullsubscription', 'sp_check_for_sync_trigger', 'sp_reinitsubscription', 'sp_copymergesnapshot',
        +            'sp_removedbreplication', 'sp_copysnapshot', 'sp_repladdcolumn', 'sp_copysubscription', 'sp_replcmds',
        +            'sp_deletemergeconflictrow', 'sp_replcounters', 'sp_disableagentoffload', 'sp_repldone', 'sp_drop_agent_parameter',
        +            'sp_repldropcolumn', 'sp_drop_agent_profile', 'sp_replflush', 'sp_droparticle', 'sp_replicationdboption',
        +            'sp_dropanonymouseagent', 'sp_replication_agent_checkup', 'sp_dropdistpublisher', 'sp_replqueuemonitor',
        +            'sp_dropdistributiondb', 'sp_replsetoriginator', 'sp_dropmergealternatepublisher', 'sp_replshowcmds',
        +            'sp_dropdistributor', 'sp_repltrans', 'sp_dropmergearticle', 'sp_restoredbreplication', 'sp_dropmergefilter',
        +            'sp_revoke_publication_access', 'sp_scriptsubconflicttable', 'sp_dropmergepublication', 'sp_script_synctran_commands',
        +            'sp_dropmergepullsubscription', 'sp_setreplfailovermode', 'sp_showrowreplicainfo', 'sp_dropmergesubscription',
        +            'sp_subscription_cleanup', 'sp_droppublication', 'sp_table_validation', 'sp_droppullsubscription',
        +            'sp_update_agent_profile', 'sp_dropsubscriber', 'sp_validatemergepublication', 'sp_dropsubscription',
        +            'sp_validatemergesubscription', 'sp_dsninfo', 'sp_vupgrade_replication', 'sp_dumpparamcmd',
        +
        +            //Security Procedures
        +            'sp_addalias', 'sp_droprolemember', 'sp_addapprole', 'sp_dropserver', 'sp_addgroup', 'sp_dropsrvrolemember',
        +            'sp_dropuser', 'sp_addlogin', 'sp_grantdbaccess', 'sp_addremotelogin',
        +            'sp_grantlogin', 'sp_addrole', 'sp_helpdbfixedrole', 'sp_addrolemember', 'sp_helpgroup',
        +            'sp_addserver', 'sp_helplinkedsrvlogin', 'sp_addsrvrolemember', 'sp_helplogins', 'sp_adduser',
        +            'sp_helpntgroup', 'sp_approlepassword', 'sp_helpremotelogin', 'sp_changedbowner', 'sp_helprole',
        +            'sp_changegroup', 'sp_helprolemember', 'sp_changeobjectowner', 'sp_helprotect', 'sp_change_users_login',
        +            'sp_helpsrvrole', 'sp_dbfixedrolepermission', 'sp_helpsrvrolemember', 'sp_defaultdb', 'sp_helpuser',
        +            'sp_defaultlanguage', 'sp_MShasdbaccess', 'sp_denylogin', 'sp_password', 'sp_dropalias', 'sp_remoteoption',
        +            'sp_dropapprole', 'sp_revokedbaccess', 'sp_dropgroup', 'sp_revokelogin', 'sp_droplinkedsrvlogin',
        +            'sp_setapprole', 'sp_droplogin', 'sp_srvrolepermission', 'sp_dropremotelogin', 'sp_validatelogins', 'sp_droprole',
        +
        +            //SQL Mail Procedures
        +            'sp_processmail', 'xp_sendmail', 'xp_deletemail', 'xp_startmail', 'xp_findnextmsg', 'xp_stopmail', 'xp_readmail',
        +
        +            //SQL Profiler Procedures
        +            'sp_trace_create', 'sp_trace_setfilter', 'sp_trace_generateevent', 'sp_trace_setstatus', 'sp_trace_setevent',
        +
        +            //SQL Server Agent Procedures
        +            'sp_add_alert', 'sp_help_jobhistory', 'sp_add_category', 'sp_help_jobschedule', 'sp_add_job',
        +            'sp_help_jobserver', 'sp_add_jobschedule', 'sp_help_jobstep', 'sp_add_jobserver', 'sp_help_notification',
        +            'sp_add_jobstep', 'sp_help_operator', 'sp_add_notification', 'sp_help_targetserver',
        +            'sp_add_operator', 'sp_help_targetservergroup', 'sp_add_targetservergroup', 'sp_helptask',
        +            'sp_add_targetsvrgrp_member', 'sp_manage_jobs_by_login', 'sp_addtask', 'sp_msx_defect',
        +            'sp_apply_job_to_targets', 'sp_msx_enlist', 'sp_delete_alert', 'sp_post_msx_operation',
        +            'sp_delete_category', 'sp_purgehistory', 'sp_delete_job', 'sp_purge_jobhistory', 'sp_delete_jobschedule',
        +            'sp_reassigntask', 'sp_delete_jobserver', 'sp_remove_job_from_targets', 'sp_delete_jobstep',
        +            'sp_resync_targetserver', 'sp_delete_notification', 'sp_start_job', 'sp_delete_operator',
        +            'sp_stop_job', 'sp_delete_targetserver', 'sp_update_alert', 'sp_delete_targetservergroup',
        +            'sp_update_category', 'sp_delete_targetsvrgrp_member', 'sp_update_job', 'sp_droptask',
        +            'sp_update_jobschedule', 'sp_help_alert', 'sp_update_jobstep', 'sp_help_category',
        +            'sp_update_notification', 'sp_help_downloadlist', 'sp_update_operator', 'sp_helphistory',
        +            'sp_update_targetservergroup', 'sp_help_job', 'sp_updatetask', 'xp_sqlagent_proxy_account',
        +
        +            //System Procedures
        +            'sp_add_data_file_recover_suspect_db', 'sp_helpconstraint', 'sp_addextendedproc',
        +            'sp_helpdb', 'sp_addextendedproperty', 'sp_helpdevice', 'sp_add_log_file_recover_suspect_db',
        +            'sp_helpextendedproc', 'sp_addmessage', 'sp_helpfile', 'sp_addtype', 'sp_helpfilegroup',
        +            'sp_addumpdevice', 'sp_helpindex', 'sp_altermessage', 'sp_helplanguage', 'sp_autostats',
        +            'sp_helpserver', 'sp_attach_db', 'sp_helpsort', 'sp_attach_single_file_db', 'sp_helpstats',
        +            'sp_bindefault', 'sp_helptext', 'sp_bindrule', 'sp_helptrigger', 'sp_bindsession',
        +            'sp_indexoption', 'sp_certify_removable', 'sp_invalidate_textptr', 'sp_configure',
        +            'sp_lock', 'sp_create_removable', 'sp_monitor', 'sp_createstats', 'sp_procoption',
        +            'sp_cycle_errorlog', 'sp_recompile', 'sp_datatype_info', 'sp_refreshview', 'sp_dbcmptlevel',
        +            'sp_releaseapplock', 'sp_dboption', 'sp_rename', 'sp_dbremove', 'sp_renamedb',
        +            'sp_delete_backuphistory', 'sp_resetstatus', 'sp_depends', 'sp_serveroption', 'sp_detach_db',
        +            'sp_setnetname', 'sp_dropdevice', 'sp_settriggerorder', 'sp_dropextendedproc', 'sp_spaceused',
        +            'sp_dropextendedproperty', 'sp_tableoption', 'sp_dropmessage', 'sp_unbindefault', 'sp_droptype',
        +            'sp_unbindrule', 'sp_executesql', 'sp_updateextendedproperty', 'sp_getapplock', 'sp_updatestats',
        +            'sp_getbindtoken', 'sp_validname', 'sp_help', 'sp_who',
        +
        +            //Web Assistant Procedures
        +            'sp_dropwebtask', 'sp_makewebtask', 'sp_enumcodepages', 'sp_runwebtask',
        +
        +            //XML Procedures
        +            'sp_xml_preparedocument', 'sp_xml_removedocument',
        +
        +            //General Extended Procedures
        +            'xp_cmdshellxp_logininfo', 'xp_enumgroups', 'xp_msver', 'xp_findnextmsgxp_revokelogin',
        +            'xp_grantlogin', 'xp_sprintf', 'xp_logevent', 'xp_sqlmaint', 'xp_loginconfig', 'xp_sscanf',
        +
        +            //API System Stored Procedures
        +            'sp_cursor', 'sp_cursorclose', 'sp_cursorexecute', 'sp_cursorfetch', 'sp_cursoropen',
        +            'sp_cursoroption', 'sp_cursorprepare', 'sp_cursorunprepare', 'sp_execute', 'sp_prepare', 'sp_unprepare',
        +
        +            //Misc
        +            'sp_createorphan', 'sp_droporphans', 'sp_reset_connection', 'sp_sdidebug'
        +            ),
        +        4 => array(
        +            //Function/sp's higlighted brown.
        +            'fn_helpcollations', 'fn_listextendedproperty ', 'fn_servershareddrives',
        +            'fn_trace_geteventinfo', 'fn_trace_getfilterinfo', 'fn_trace_getinfo',
        +            'fn_trace_gettable', 'fn_virtualfilestats','fn_listextendedproperty',
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '!', '!=', '%', '&', '&&', '(', ')', '*', '+', '-', '/', '<', '<<', '<=',
        +        '<=>', '<>', '=', '>', '>=', '>>', '^', 'ALL', 'AND', 'ANY', 'BETWEEN', 'CROSS',
        +        'EXISTS', 'IN', 'JOIN', 'LIKE', 'NOT', 'NULL', 'OR', 'OUTER', 'SOME', '|', '||', '~'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000FF;',
        +            2 => 'color: #FF00FF;',
        +            3 => 'color: #AF0000;',
        +            4 => 'color: #AF0000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008080;',
        +            'MULTI' => 'color: #008080;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #808080;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #FF0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #202020;',
        +            2 => 'color: #202020;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #808080;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/typoscript.php b/Sources/geshi/typoscript.php
        new file mode 100644
        index 0000000..6751aaa
        --- /dev/null
        +++ b/Sources/geshi/typoscript.php
        @@ -0,0 +1,300 @@
        + Complete rewrite
        + * 2005/07/29 (1.0.0)
        + *  -  First Release
        + *
        + * TODO (updated 2004/07/14)
        + * -------------------------
        + * 
        + *
        + *************************************************************************************
        + *
        + *     This file is part of GeSHi.
        + *
        + *   GeSHi is free software; you can redistribute it and/or modify
        + *   it under the terms of the GNU General Public License as published by
        + *   the Free Software Foundation; either version 2 of the License, or
        + *   (at your option) any later version.
        + *
        + *   GeSHi is distributed in the hope that it will be useful,
        + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        + *   GNU General Public License for more details.
        + *
        + *   You should have received a copy of the GNU General Public License
        + *   along with GeSHi; if not, write to the Free Software
        + *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + ************************************************************************************/
        +
        +$language_data = array (
        +    'LANG_NAME' => 'TypoScript',
        +    'COMMENT_SINGLE' => array(1  => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(2 => '/(? GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        // Conditions: http://documentation.typo3.org/documentation/tsref/conditions/
        +        1 => array(
        +            'browser', 'compatVersion', 'dayofmonth', 'dayofweek', 'device',
        +            'globalString', 'globalVars', 'hostname', 'hour',
        +            'ip', 'language', 'loginUser', 'loginuser', 'minute',
        +            'month', 'PIDinRootline', 'PIDupinRootline',
        +            'system', 'treelevel', 'useragent', 'userFunc',
        +            'usergroup', 'version'
        +            ),
        +
        +        // Functions: http://documentation.typo3.org/documentation/tsref/functions/
        +        2 => array(
        +            'addParams', 'encapsLines', 'filelink', 'HTMLparser',
        +            'HTMLparser_tags', 'if', 'imageLinkWrap',
        +            'imgResource', 'makelinks', 'numRows', 'parseFunc',
        +            'select', 'split', 'stdWrap', 'tableStyle', 'tags',
        +            'textStyle', 'typolink'
        +            ),
        +
        +        // Toplevel objects: http://documentation.typo3.org/documentation/tsref/tlo-objects/
        +        3 => array(
        +            'CARRAY', 'CONFIG', 'CONSTANTS', 'FE_DATA', 'FE_TABLE', 'FRAME',
        +            'FRAMESET', 'META', 'PAGE', 'plugin'
        +            ),
        +
        +        // Content Objects (cObject) : http://documentation.typo3.org/documentation/tsref/cobjects/
        +        4 => array(
        +            'CASE', 'CLEARGIF', 'COA', 'COA_INT', 'COBJ_ARRAY', 'COLUMNS',
        +            'CONTENT', 'CTABLE', 'EDITPANEL', 'FILE', 'FORM',
        +            'HMENU', 'HRULER', 'HTML', 'IMAGE', 'IMGTEXT',
        +            'IMG_RESOURCE', 'LOAD_REGISTER', 'MULTIMEDIA',
        +            'OTABLE', 'PHP_SCRIPT', 'PHP_SCRIPT_EXT',
        +            'PHP_SCRIPT_INT', 'RECORDS', 'RESTORE_REGISTER',
        +            'SEARCHRESULT', 'TEMPLATE', 'TEXT', 'USER',
        +            'USER_INT'
        +            ),
        +
        +        // GIFBUILDER toplevel link: http://documentation.typo3.org/documentation/tsref/gifbuilder/
        +        5 => array(
        +            'GIFBUILDER',
        +            ),
        +
        +        // GIFBUILDER: http://documentation.typo3.org/documentation/tsref/gifbuilder/
        +        // skipped fields: IMAGE, TEXT
        +        // NOTE! the IMAGE and TEXT field already are linked in group 4, they
        +        // cannot be linked twice . . . . unfortunately
        +        6 => array(
        +            'ADJUST', 'BOX', 'CROP', 'EFFECT', 'EMBOSS',
        +            'IMGMAP', 'OUTLINE', 'SCALE', 'SHADOW',
        +            'WORKAREA'
        +            ),
        +
        +        // MENU Objects: http://documentation.typo3.org/documentation/tsref/menu/
        +        7 => array(
        +            'GMENU', 'GMENU_FOLDOUT', 'GMENU_LAYERS', 'IMGMENU',
        +            'IMGMENUITEM', 'JSMENU', 'JSMENUITEM', 'TMENU',
        +            'TMENUITEM', 'TMENU_LAYERS'
        +            ),
        +
        +        // MENU common properties: http://documentation.typo3.org/documentation/tsref/menu/common-properties/
        +        8 => array(
        +            'alternativeSortingField', 'begin', 'debugItemConf',
        +            'imgNameNotRandom', 'imgNamePrefix',
        +            'itemArrayProcFunc', 'JSWindow', 'maxItems',
        +            'minItems', 'overrideId', 'sectionIndex',
        +            'showAccessRestrictedPages', 'submenuObjSuffixes'
        +            ),
        +
        +        // MENU item states: http://documentation.typo3.org/documentation/tsref/menu/item-states/
        +        9 => array(
        +            'ACT', 'ACTIFSUB', 'ACTIFSUBRO', 'ACTRO', 'CUR', 'CURIFSUB',
        +            'CURIFSUBRO', 'CURRO', 'IFSUB', 'IFSUBRO', 'NO',
        +            'SPC', 'USERDEF1', 'USERDEF1RO', 'USERDEF2',
        +            'USERDEF2RO', 'USR', 'USRRO'
        +            ),
        +        ),
        +
        +    // Does not include '-' because of stuff like htmlTag_langKey = en-GB and
        +    // lib.nav-sub
        +    'SYMBOLS' => array(
        +        0 => array(
        +            '|',
        +            '+', '*', '/', '%',
        +            '!', '&&', '^',
        +            '<', '>', '=',
        +            '?', ':',
        +            '.'
        +            ),
        +        1 => array(
        +            '(', ')', '{', '}', '[', ']'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true,
        +        8 => true,
        +        9 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #ed7d14;',
        +            2 => 'font-weight: bold;',
        +            3 => 'color: #990000; font-weight: bold;',
        +            4 => 'color: #990000; font-weight: bold;',
        +            5 => 'color: #990000; font-weight: bold;',
        +            6 => 'color: #990000; font-weight: bold;',
        +            7 => 'color: #990000; font-weight: bold;',
        +            8 => 'font-weight: bold;',
        +            9 => 'color: #990000; font-weight: bold;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #aaa; font-style: italic;',
        +            2 => 'color: #aaa; font-style: italic;',
        +            'MULTI' => 'color: #aaa; font-style: italic;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ac14aa;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #0000e0; font-weight: bold;',
        +            2 => 'color: #0000e0; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933; font-weight: bold;',
        +                // Set this to the same value as brackets above
        +            1 => 'color: #009900; font-weight: bold;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #009900;',
        +            1 => 'color: #009900; font-weight: bold;',
        +            2 => 'color: #3366CC;',
        +            3 => 'color: #000066; font-weight: bold;',
        +            4 => 'color: #ed7d14;',
        +            5 => 'color: #000066; font-weight: bold;',
        +            6 => 'color: #009900;',
        +            7 => 'color: #3366CC;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => 'http://documentation.typo3.org/documentation/tsref/conditions/{FNAME}/',
        +        2 => 'http://documentation.typo3.org/documentation/tsref/functions/{FNAME}/',
        +        3 => 'http://documentation.typo3.org/documentation/tsref/tlo-objects/{FNAME}/',
        +        4 => 'http://documentation.typo3.org/documentation/tsref/cobjects/{FNAME}/',
        +        5 => 'http://documentation.typo3.org/documentation/tsref/gifbuilder/',
        +        6 => 'http://documentation.typo3.org/documentation/tsref/gifbuilder/{FNAME}/',
        +        7 => 'http://documentation.typo3.org/documentation/tsref/menu/{FNAME}/',
        +        8 => 'http://documentation.typo3.org/documentation/tsref/menu/common-properties/',
        +        9 => 'http://documentation.typo3.org/documentation/tsref/menu/item-states/'
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +            // xhtml tag
        +        2 => array(
        +            GESHI_SEARCH => '(<)([a-zA-Z\\/][^\\/\\|]*?)(>)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 's',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3'
        +            ),
        +
        +            // Constant
        +        0 => array(
        +            GESHI_SEARCH => '(\{)(\$[a-zA-Z_\.]+[a-zA-Z0-9_\.]*)(\})',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => '\\3'
        +            ),
        +
        +            // Constant dollar sign
        +        1 => array(
        +            GESHI_SEARCH => '(\$)([a-zA-Z_\.]+[a-zA-Z0-9_\.]*)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '\\2'
        +            ),
        +
        +            // extension keys / tables: (static|user|ttx|tx|tt|fe)_something[_something]
        +        3 => array(
        +            GESHI_SEARCH => '(plugin\.|[^\.]\b)((?:static|user|ttx|tx|tt|fe)(?:_[0-9A-Za-z_]+?)\b)',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            ),
        +
        +            // conditions and controls
        +        4 => array(
        +            GESHI_SEARCH => '(\[)(globalVar|global|end)\b',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => 'i',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            ),
        +
        +            // lowlevel setup and constant objects
        +        5 => array(
        +            GESHI_SEARCH => '([^\.\$-\{]\b)(cObj|field|config|content|file|frameset|includeLibs|lib|page|plugin|register|resources|sitemap|sitetitle|styles|temp|tt_content|tt_news|types|xmlnews)\b',
        +            GESHI_REPLACE => '\\2',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '\\1',
        +            GESHI_AFTER => ''
        +            ),
        +
        +            // markers
        +        6 => array(
        +            GESHI_SEARCH => '(###[^#]+###)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +
        +            // hex color codes
        +        7 => array(
        +            GESHI_SEARCH => '(#[a-fA-F0-9]{6}\b|#[a-fA-F0-9]{3}\b)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => '',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +);
        +
        +?>
        diff --git a/Sources/geshi/unicon.php b/Sources/geshi/unicon.php
        new file mode 100644
        index 0000000..6fe62d0
        --- /dev/null
        +++ b/Sources/geshi/unicon.php
        @@ -0,0 +1,210 @@
        + 'Unicon (Unified Extended Dialect of Icon)',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"', '\''),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'break', 'case', 'class', 'continue', 'create', 'default', 'do',
        +            'else', 'end', 'every', 'fail', 'for', 'if', 'import', 'initial', 'initially',
        +            'invocable', 'link', 'method', 'next', 'not', 'of', 'package', 'procedure', 'record',
        +            'repeat', 'return', 'switch', 'suspend', 'then', 'to', 'until', 'while'
        +            ),
        +        2 => array(
        +            'global', 'local', 'static'
        +            ),
        +        3 => array(
        +            'allocated', 'ascii', 'clock', 'collections',
        +            'column', 'cset', 'current', 'date', 'dateline', 'digits',
        +            'dump', 'e', 'error', 'errornumber', 'errortext',
        +            'errorvalue', 'errout', 'eventcode', 'eventsource', 'eventvalue',
        +            'fail', 'features', 'file', 'host', 'input', 'lcase',
        +            'letters', 'level', 'line', 'main', 'now', 'null',
        +            'output', 'phi', 'pi', 'pos', 'progname', 'random',
        +            'regions', 'source', 'storage', 'subject', 'syserr', 'time',
        +            'trace', 'ucase', 'version', 'col', 'control', 'interval',
        +            'ldrag', 'lpress', 'lrelease', 'mdrag', 'meta', 'mpress',
        +            'mrelease', 'rdrag', 'resize', 'row', 'rpress', 'rrelease',
        +            'shift', 'window', 'x', 'y'
        +            ),
        +        4 => array(
        +            'abs', 'acos', 'any', 'args', 'asin', 'atan', 'bal', 'center', 'char',
        +            'chmod', 'close', 'cofail', 'collect', 'copy', 'cos', 'cset', 'ctime', 'dbcolumns',
        +            'dbdriver', 'dbkeys', 'dblimits', 'dbproduction', 'dbtables', 'delay', 'delete', 'detab',
        +            'display', 'dtor', 'entab', 'errorclear', 'event', 'eventmask', 'EvGet', 'exit', 'exp',
        +            'fetch', 'fieldnames', 'find', 'flock', 'flush', 'function', 'get', 'getch', 'getche',
        +            'getenv', 'gettimeofday', 'globalnames', 'gtime', 'iand', 'icom', 'image', 'insert',
        +            'integer', 'ior', 'ishift', 'ixor', 'key', 'left', 'list', 'load', 'loadfunc',
        +            'localnames', 'log', 'many', 'map', 'match', 'member', 'mkdir', 'move', 'name', 'numeric',
        +            'open', 'opmask', 'ord', 'paramnames', 'parent', 'pipe', 'pop', 'pos', 'proc', 'pull',
        +            'push', 'put', 'read', 'reads', 'real', 'receive', 'remove', 'rename', 'repl', 'reverse',
        +            'right', 'rmdir', 'rtod', 'runerr', 'seek', 'select', 'send', 'seq', 'serial', 'set',
        +            'setenv', 'sort', 'sortf', 'sql', 'sqrt', 'stat', 'staticnames', 'stop', 'string', 'system', 'tab',
        +            'table', 'tan', 'trap', 'trim', 'truncate', 'type', 'upto', 'utime', 'variable', 'where',
        +            'write', 'writes'
        +            ),
        +        5 => array(
        +            'Active', 'Alert', 'Bg', 'Clip', 'Clone', 'Color', 'ColorValue',
        +            'CopyArea', 'Couple', 'DrawArc', 'DrawCircle', 'DrawCurve', 'DrawCylinder', 'DrawDisk',
        +            'DrawImage', 'DrawLine', 'DrawPoint', 'DrawPolygon', 'DrawRectangle', 'DrawSegment',
        +            'DrawSphere', 'DrawString', 'DrawTorus', 'EraseArea', 'Event', 'Fg', 'FillArc',
        +            'FillCircle', 'FillPolygon', 'FillRectangle', 'Font', 'FreeColor', 'GotoRC', 'GotoXY',
        +            'IdentifyMatrix', 'Lower', 'MatrixMode', 'NewColor', 'PaletteChars', 'PaletteColor',
        +            'PaletteKey', 'Pattern', 'Pending', 'Pixel', 'PopMatrix', 'PushMatrix', 'PushRotate',
        +            'PushScale', 'PushTranslate', 'QueryPointer', 'Raise', 'ReadImage', 'Refresh', 'Rotate',
        +            'Scale', 'Texcoord', 'TextWidth', 'Texture', 'Translate', 'Uncouple', 'WAttrib',
        +            'WDefault', 'WFlush', 'WindowContents', 'WriteImage', 'WSync'
        +            ),
        +        6 => array(
        +            'define', 'include', 'ifdef', 'ifndef', 'else', 'endif', 'error',
        +            'line', 'undef'
        +            ),
        +        7 => array(
        +            '_V9', '_AMIGA', '_ACORN', '_CMS', '_MACINTOSH', '_MSDOS_386',
        +            '_MS_WINDOWS_NT', '_MSDOS', '_MVS', '_OS2', '_POR', 'T', '_UNIX', '_POSIX', '_DBM',
        +            '_VMS', '_ASCII', '_EBCDIC', '_CO_EXPRESSIONS', '_CONSOLE_WINDOW', '_DYNAMIC_LOADING',
        +            '_EVENT_MONITOR', '_EXTERNAL_FUNCTIONS', '_KEYBOARD_FUNCTIONS', '_LARGE_INTEGERS',
        +            '_MULTITASKING', '_PIPES', '_RECORD_IO', '_SYSTEM_FUNCTION', '_MESSAGING', '_GRAPHICS',
        +            '_X_WINDOW_SYSTEM', '_MS_WINDOWS', '_WIN32', '_PRESENTATION_MGR', '_ARM_FUNCTIONS',
        +            '_DOS_FUNCTIONS'
        +            ),
        +        8 => array(
        +            'line')
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array(
        +            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '\\', '%', '=', '<', '>', '!', '^',
        +            '&', '|', '?', ':', ';', ',', '.', '~', '@'
        +            ),
        +        2 => array(
        +            '$(', '$)', '$<', '$>'
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        5 => true,
        +        6 => true,
        +        7 => true,
        +        8 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #b1b100;',
        +            3 => 'color: #b1b100;',
        +            4 => 'color: #b1b100;',
        +            5 => 'color: #b1b100;',
        +            6 => 'color: #b1b100;',
        +            7 => 'color: #b1b100;',
        +            8 => 'color: #b1b100;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;',
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #004000;'
        +            ),
        +        'SYMBOLS' => array(
        +            1 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(),
        +        'SCRIPT' => array()
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => '',
        +        7 => '',
        +        8 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(1 => '.'),
        +    'REGEXPS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(),
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            3 => array(
        +                'DISALLOWED_BEFORE' => '(?<=&)'
        +                ),
        +            4 => array(
        +                'DISALLOWED_BEFORE' => "(? "(?![a-zA-Z0-9_\"\'])"
        +                ),
        +            6 => array(
        +                'DISALLOWED_BEFORE' => '(?<=\$)'
        +                ),
        +            8 => array(
        +                'DISALLOWED_BEFORE' => '(?<=#)'
        +                )
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/upc.php b/Sources/geshi/upc.php
        new file mode 100644
        index 0000000..e053032
        --- /dev/null
        +++ b/Sources/geshi/upc.php
        @@ -0,0 +1,270 @@
        + 'UPC',
        +    'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Multiline-continued single-line comments
        +        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
        +        //Multiline-continued preprocessor define
        +        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'ESCAPE_REGEXP' => array(
        +        //Simple Single Char Escapes
        +        1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
        +        //Hexadecimal Char Specs
        +        2 => "#\\\\x[\da-fA-F]{2}#",
        +        //Hexadecimal Char Specs
        +        3 => "#\\\\u[\da-fA-F]{4}#",
        +        //Hexadecimal Char Specs
        +        4 => "#\\\\U[\da-fA-F]{8}#",
        +        //Octal Char Specs
        +        5 => "#\\\\[0-7]{1,3}#"
        +        ),
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
        +        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
        +        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'if', 'return', 'while', 'case', 'continue', 'default',
        +            'do', 'else', 'for', 'switch', 'goto',
        +
        +            'upc_forall', 'upc_barrier', 'upc_notify', 'upc_wait', 'upc_fence'
        +            ),
        +        2 => array(
        +            'null', 'false', 'break', 'true', 'function', 'enum', 'extern', 'inline'
        +            ),
        +        3 => array(
        +            // assert.h
        +            'assert',
        +
        +            //complex.h
        +            'cabs', 'cacos', 'cacosh', 'carg', 'casin', 'casinh', 'catan',
        +            'catanh', 'ccos', 'ccosh', 'cexp', 'cimag', 'cis', 'clog', 'conj',
        +            'cpow', 'cproj', 'creal', 'csin', 'csinh', 'csqrt', 'ctan', 'ctanh',
        +
        +            //ctype.h
        +            'digittoint', 'isalnum', 'isalpha', 'isascii', 'isblank', 'iscntrl',
        +            'isdigit', 'isgraph', 'islower', 'isprint', 'ispunct', 'isspace',
        +            'isupper', 'isxdigit', 'toascii', 'tolower', 'toupper',
        +
        +            //inttypes.h
        +            'imaxabs', 'imaxdiv', 'strtoimax', 'strtoumax', 'wcstoimax',
        +            'wcstoumax',
        +
        +            //locale.h
        +            'localeconv', 'setlocale',
        +
        +            //math.h
        +            'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'exp',
        +            'fabs', 'floor', 'frexp', 'ldexp', 'log', 'log10', 'modf', 'pow',
        +            'sin', 'sinh', 'sqrt', 'tan', 'tanh',
        +
        +            //setjmp.h
        +            'longjmp', 'setjmp',
        +
        +            //signal.h
        +            'raise',
        +
        +            //stdarg.h
        +            'va_arg', 'va_copy', 'va_end', 'va_start',
        +
        +            //stddef.h
        +            'offsetof',
        +
        +            //stdio.h
        +            'clearerr', 'fclose', 'fdopen', 'feof', 'ferror', 'fflush', 'fgetc',
        +            'fgetpos', 'fgets', 'fopen', 'fprintf', 'fputc', 'fputchar',
        +            'fputs', 'fread', 'freopen', 'fscanf', 'fseek', 'fsetpos', 'ftell',
        +            'fwrite', 'getc', 'getch', 'getchar', 'gets', 'perror', 'printf',
        +            'putc', 'putchar', 'puts', 'remove', 'rename', 'rewind', 'scanf',
        +            'setbuf', 'setvbuf', 'snprintf', 'sprintf', 'sscanf', 'tmpfile',
        +            'tmpnam', 'ungetc', 'vfprintf', 'vfscanf', 'vprintf', 'vscanf',
        +            'vsprintf', 'vsscanf',
        +
        +            //stdlib.h
        +            'abort', 'abs', 'atexit', 'atof', 'atoi', 'atol', 'bsearch',
        +            'calloc', 'div', 'exit', 'free', 'getenv', 'itoa', 'labs', 'ldiv',
        +            'ltoa', 'malloc', 'qsort', 'rand', 'realloc', 'srand', 'strtod',
        +            'strtol', 'strtoul', 'system',
        +
        +            //string.h
        +            'memchr', 'memcmp', 'memcpy', 'memmove', 'memset', 'strcat',
        +            'strchr', 'strcmp', 'strcoll', 'strcpy', 'strcspn', 'strerror',
        +            'strlen', 'strncat', 'strncmp', 'strncpy', 'strpbrk', 'strrchr',
        +            'strspn', 'strstr', 'strtok', 'strxfrm',
        +
        +            //time.h
        +            'asctime', 'clock', 'ctime', 'difftime', 'gmtime', 'localtime',
        +            'mktime', 'strftime', 'time',
        +
        +            //wchar.h
        +            'btowc', 'fgetwc', 'fgetws', 'fputwc', 'fputws', 'fwide',
        +            'fwprintf', 'fwscanf', 'getwc', 'getwchar', 'mbrlen', 'mbrtowc',
        +            'mbsinit', 'mbsrtowcs', 'putwc', 'putwchar', 'swprintf', 'swscanf',
        +            'ungetwc', 'vfwprintf', 'vswprintf', 'vwprintf', 'wcrtomb',
        +            'wcscat', 'wcschr', 'wcscmp', 'wcscoll', 'wcscpy', 'wcscspn',
        +            'wcsftime', 'wcslen', 'wcsncat', 'wcsncmp', 'wcsncpy', 'wcspbrk',
        +            'wcsrchr', 'wcsrtombs', 'wcsspn', 'wcsstr', 'wcstod', 'wcstok',
        +            'wcstol', 'wcstoul', 'wcsxfrm', 'wctob', 'wmemchr', 'wmemcmp',
        +            'wmemcpy', 'wmemmove', 'wmemset', 'wprintf', 'wscanf',
        +
        +            //wctype.h
        +            'iswalnum', 'iswalpha', 'iswcntrl', 'iswctype', 'iswdigit',
        +            'iswgraph', 'iswlower', 'iswprint', 'iswpunct', 'iswspace',
        +            'iswupper', 'iswxdigit', 'towctrans', 'towlower', 'towupper',
        +            'wctrans', 'wctype'
        +            ),
        +        4 => array(
        +            'auto', 'char', 'const', 'double',  'float', 'int', 'long',
        +            'register', 'short', 'signed', 'sizeof', 'static', 'struct',
        +            'typedef', 'union', 'unsigned', 'void', 'volatile', 'wchar_t',
        +
        +            'int8', 'int16', 'int32', 'int64',
        +            'uint8', 'uint16', 'uint32', 'uint64',
        +
        +            'int_fast8_t', 'int_fast16_t', 'int_fast32_t', 'int_fast64_t',
        +            'uint_fast8_t', 'uint_fast16_t', 'uint_fast32_t', 'uint_fast64_t',
        +
        +            'int_least8_t', 'int_least16_t', 'int_least32_t', 'int_least64_t',
        +            'uint_least8_t', 'uint_least16_t', 'uint_least32_t', 'uint_least64_t',
        +
        +            'int8_t', 'int16_t', 'int32_t', 'int64_t',
        +            'uint8_t', 'uint16_t', 'uint32_t', 'uint64_t',
        +
        +            'intmax_t', 'uintmax_t', 'intptr_t', 'uintptr_t',
        +            'size_t', 'off_t',
        +
        +            'upc_lock_t', 'shared', 'strict', 'relaxed', 'upc_blocksizeof',
        +            'upc_localsizeof', 'upc_elemsizeof'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']',
        +        '+', '-', '*', '/', '%',
        +        '=', '<', '>',
        +        '!', '^', '&', '|',
        +        '?', ':',
        +        ';', ','
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            3 => 'color: #000066;',
        +            4 => 'color: #993333;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #339933;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            1 => 'color: #000099; font-weight: bold;',
        +            2 => 'color: #660099; font-weight: bold;',
        +            3 => 'color: #660099; font-weight: bold;',
        +            4 => 'color: #660099; font-weight: bold;',
        +            5 => 'color: #006699; font-weight: bold;',
        +            'HARD' => '',
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #0000dd;',
        +            GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
        +            GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
        +            GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
        +            GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
        +            GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
        +            GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #202020;',
        +            2 => 'color: #202020;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://www.opengroup.org/onlinepubs/009695399/functions/{FNAMEL}.html',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        2 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/urbi.php b/Sources/geshi/urbi.php
        new file mode 100644
        index 0000000..a7353ea
        --- /dev/null
        +++ b/Sources/geshi/urbi.php
        @@ -0,0 +1,200 @@
        + 'Urbi',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Multiline-continued single-line comments
        +        1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
        +        //Multiline-continued preprocessor define
        +        2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m',
        +        // Urbi warning.
        +        3 => "#\[[0-9a-f]{8}:warning\].*#",
        +        // Urbi message from echo.
        +        4 => '#\[[0-9a-f]{8}\] \*\*\*.*#',
        +        // Urbi error message.
        +        6 => '#\[[0-9a-f]{8}:error\].*#',
        +        // Urbi system message.
        +        5 => '#\[00.*\].*#',
        +        // Nested comment. Max depth 4.
        +        7 => '#\/\*(.|\n)*\/\*(.|\n)*\*\/(.|\n)*\*\/#',
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(
        +        0 => '"',
        +        1 => '\'',
        +        ),
        +    // For Urbi, disable escape char is better.
        +    'ESCAPE_CHAR' => '\\',
        +    'ESCAPE_REGEXP' => array(
        +        //Simple Single Char Escapes
        +        1 => "#\\\\[abfnrtv\\\'\"?\n]#",
        +        //Hexadecimal Char Specs
        +        2 => "#\\\\x[\da-fA-F]{2}#",
        +        //Hexadecimal Char Specs
        +        3 => "#\\\\u[\da-fA-F]{4}#",
        +        //Hexadecimal Char Specs
        +        4 => "#\\\\U[\da-fA-F]{8}#",
        +        //Octal Char Specs
        +        5 => "#\\\\[0-7]{1,3}#",
        +        ),
        +    'NUMBERS' =>
        +        GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
        +        GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
        +        GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
        +    'KEYWORDS' => array(
        +        // Condition keywords.
        +        1 => array(
        +            'at', 'at;', 'at|', 'at&', 'at,', 'break', 'call', 'case', 'catch', 'continue',
        +            'do', 'else', 'every', 'every&', 'every,', 'every;', 'every|', 'for', 'for&',
        +            'for,', 'for;', 'foreach', 'for|', 'freezeif', 'goto', 'if', 'in', 'loop',
        +            'loop&', 'loop,', 'loop;', 'loop|', 'or_eq', 'stopif', 'switch', 'try',
        +            'waituntil', 'when', 'whenever', 'while', 'while&', 'while,', 'while;',
        +            'while|', 'throw', 'onleave', 'watch', 'return', 'and_eq', 'default', 'finally',
        +            'timeout', 'xor_eq'
        +            ),
        +        // Type.
        +        2 => array(
        +            'virtual', 'using', 'namespace', 'inline', 'protected', 'private', 'public',
        +            'typename', 'typeid', 'class', 'const_cast', 'dynamic_cast', 'friend',
        +            'template', 'enum', 'static_cast', 'reinterpret_cast', 'mutable', 'explicit'
        +            ),
        +        // Standard function.
        +        3 => array(
        +            'this', 'sizeof', 'delete', 'assert', 'isdef', 'compl', 'detach',
        +            'disown', '__HERE__', 'asm'
        +            ),
        +        // Type.
        +        4 => array(
        +            'char', 'const', 'double', 'int', 'long', 'typedef', 'union',
        +            'unsigned', 'var', 'short', 'wchar_t', 'volatile', 'signed', 'bool',
        +            'float', 'struct', 'auto', 'register', 'static', 'extern', 'function',
        +            'export', 'external', 'internal', 'closure', 'BIN'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        0 => array('(', ')', '{', '}', '[', ']'),
        +        1 => array('<', '>','=', '!=', '==', '==='),
        +        2 => array('+', '-', '*', '/', '%', 'bitand', 'bitor', 'xor'),
        +        3 => array('!', '^', '&', '|'),
        +        4 => array('?', ':', ';')
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000ff;',
        +            2 => 'color: #0000ff;',
        +            3 => 'color: #0000dd;',
        +            4 => 'color: #0000ff;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666;',
        +            2 => 'color: #339900;',
        +            3 => 'color: #d46b0f;',
        +            4 => 'color: #20b537;',
        +            5 => 'color: #73776f;',
        +            6 => 'color: #a71616;',
        +            7 => 'color: #666666;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #ff0000;',
        +            1 => 'color: #ff0000;',
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #7a0874; font-weight: bold;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;',
        +            1 => 'color: #007788;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #0000dd;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #007788;',
        +            2 => 'color: #007788;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #008000;',
        +            1 => 'color: #0000f8;',
        +            2 => 'color: #000040;',
        +            3 => 'color: #000040; font-weight: bold;',
        +            4 => 'color: #008080;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #0000dd',
        +            1 => 'color: #0000dd;',
        +            2 => 'color: #0000dd;',
        +            3 => 'color: #0000dd;',
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        2 => '::',
        +        // FIXME: add -> splitter.
        +        ),
        +    'REGEXPS' => array(
        +        0 => '0x[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])*',
        +        1 => '[0-9]([0-9_]*[0-9])*(e|E)(-|\+)?[0-9]([0-9_]*[0-9])*',
        +        2 => '[0-9]([0-9_]*[0-9])*(min|s|ms|h|d)',
        +        3 => '[0-9]+_([0-9_])*[0-9]',
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +);
        +
        +?>
        diff --git a/Sources/geshi/uscript.php b/Sources/geshi/uscript.php
        new file mode 100644
        index 0000000..58cdb8d
        --- /dev/null
        +++ b/Sources/geshi/uscript.php
        @@ -0,0 +1,299 @@
        + 'Unreal Script',
        +    'COMMENT_SINGLE' => array(
        +            1 => '//',
        +            2 => '#'
        +            ),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(        //declaration keywords
        +            'simulated', 'state', 'class', 'function', 'event', 'var', 'local',
        +            'ignores', 'globalconfig', 'config', 'abstract', 'nativereplication', 'native',
        +            'auto', 'coerce', 'const', 'default',
        +            'defaultproperties',
        +            'enum', 'extends', 'expands', 'final', 'guid', 'latent', 'localized',
        +            'new', 'noexport', 'operator', 'preoperator', 'optional', 'out',
        +            'private', 'public', 'protected', 'reliable', 'replication',
        +            'singular', 'static', 'struct', 'transient', 'unreliable',
        +            'hidedropdown', 'cacheexempt', 'exec', 'delegate', 'import', 'placeable', 'exportstructs'
        +            ),
        +        2 => array(        //control flow keywords
        +            'for', 'while', 'do', 'if', 'else', 'switch', 'case', 'return', 'break', 'continue',
        +            'begin', 'loop', 'assert',
        +            'foreach', 'AllActors', 'DynamicActors', 'ChildActors', 'BasedActors', 'TouchingActors',
        +            'TraceActors', 'RadiusActors', 'VisibleActors', 'CollidingActors', 'VisibleCollidingActors'
        +            ),
        +        3 => array(        //global (object) functions
        +            'log', 'warn', 'rot', 'vect', 'Rand', 'Min', 'Max', 'Clamp', 'Abs', 'Sin', 'ASin',
        +            'Cos', 'ACos', 'Tan', 'ATan', 'Exp', 'Loge', 'Sqrt', 'Square', 'FRand', 'FMin', 'FMax', 'FClamp',
        +            'Lerp', 'Smerp', 'Ceil', 'Round', 'VSize', 'Normal', 'Invert', 'VRand', 'MirrorVectorByNormal',
        +            'GetAxes', 'GetUnAxes', 'RotRand', 'OrthoRotation', 'Normalize', 'ClockwiseFrom',
        +            'Len', 'InStr', 'Mid', 'Left', 'Right', 'Caps', 'Chr', 'Asc', 'Locs',
        +            'Divide', 'Split', 'StrCmp', 'Repl', 'Eval',
        +            'InterpCurveEval', 'InterpCurveGetOutputRange', 'InterpCurveGetInputDomain',
        +            'QuatProduct', 'QuatInvert', 'QuatRotateVector', 'QuatFindBetween', 'QuatFromAxisAndAngle',
        +            'QuatFromRotator', 'QuatToRotator', 'QuatSlerp',
        +            'Localize', 'GotoState', 'IsInState', 'GetStateName',
        +            'ClassIsChildOf', 'IsA', 'Enable', 'Disable',
        +            'GetPropertyText', 'SetPropertyText', 'GetEnum', 'DynamicLoadObject', 'FindObject',
        +            'SaveConfig', 'ClearConfig', 'StaticSaveConfig', 'ResetConfig', 'StaticClearConfig',
        +            'GetPerObjectNames', 'RandRange', 'StopWatch', 'IsOnConsole', 'IsSoaking',
        +            'PlatformIsMacOS', 'PlatformIsUnix', 'PlatformIsWindows', 'PlatformIs64Bit',
        +            'BeginState', 'EndState', 'Created', 'AllObjects', 'GetReferencers', 'GetItemName',
        +            'ReplaceText', 'EatStr'
        +            ),
        +        4 => array(        //common almost-global (actor) functions
        +            'ClientMessage', 'ConsoleCommand', 'CopyObjectToClipboard', 'TextToSpeech',
        +            'Error', 'Sleep', 'SetCollision', 'SetCollisionSize', 'SetDrawScale', 'SetDrawScale3D',
        +            'SetStaticMesh', 'SetDrawType', 'Move', 'SetLocation', 'SetRotation',
        +            'SetRelativeLocation', 'SetRelativeRotation', 'MoveSmooth', 'AutonomousPhysics',
        +            'SetBase', 'SetOwner', 'IsJoinedTo', 'GetMeshName', 'PlayAnim', 'LoopAnim', 'TweenAnim',
        +            'IsAnimating', 'FinishAnim', 'HasAnim', 'StopAnimating', 'FreezeFrameAt', 'SetAnimFrame',
        +            'IsTweening', 'AnimStopLooping', 'AnimEnd', 'LinkSkelAnim', 'LinkMesh', 'BoneRefresh',
        +            'GetBoneCoords', 'GetBoneRotation', 'GetRootLocation', 'GetRootRotation', 'AttachToBone',
        +            'DetachFromBone', 'SetBoneScale', 'UpdateURL', 'GetURLOption', 'SetPhysics', 'KAddImpulse',
        +            'KImpact', 'KApplyForce', 'Clock', 'UnClock', 'Destroyed', 'GainedChild', 'LostChild',
        +            'Tick', 'PostNetReceive', 'ClientTrigger', 'Trigger', 'UnTrigger', 'BeginEvent', 'EndEvent',
        +            'Timer', 'HitWall', 'Falling', 'Landed', 'ZoneChange', 'PhysicsVolumeChange', 'Touch',
        +            'PostTouch', 'UnTouch', 'Bump', 'BaseChange', 'Attach', 'Detach', 'SpecialHandling',
        +            'EncroachingOn', 'EncroachedBy', 'RanInto', 'FinishedInterpolation', 'EndedRotation',
        +            'UsedBy', 'FellOutOfWorld', 'KilledBy', 'TakeDamage', 'HealDamage', 'Trace', 'FastTrace',
        +            'TraceThisActor', 'spawn', 'Destroy', 'TornOff', 'SetTimer', 'PlaySound', 'PlayOwnedSound',
        +            'GetSoundDuration', 'MakeNoise', 'BeginPlay', 'GetAllInt', 'RenderOverlays', 'RenderTexture',
        +            'PreBeginPlay', 'PostBeginPlay', 'PostNetBeginPlay', 'HurtRadius', 'Reset', 'Crash'
        +            ),
        +        5 => array(        //data types
        +            'none', 'null',
        +            'float', 'int', 'bool', 'byte', 'char', 'double', 'iterator', 'name', 'string',    //primitive
        +            'plane', 'rotator', 'vector', 'spline',    'coords', 'Quat', 'Range', 'RangeVector', //structs
        +            'Scale', 'Color', 'Box', 'IntBox', 'FloatBox', 'BoundingVolume', 'Matrix', 'InterpCurvePoint',
        +            'InterpCurve', 'CompressedPosition', 'TMultiMap', 'PointRegion',
        +            'KRigidBodyState', 'KSimParams', 'AnimRep', 'FireProperties',
        +            'lodmesh', 'skeletalmesh', 'mesh', 'StaticMesh', 'MeshInstance',    //3d resources
        +            'sound',    //sound resources
        +            'material', 'texture', 'combiner', 'modifier', 'ColorModifier', 'FinalBlend',    //2d resources
        +            'MaterialSequence', 'MaterialSwitch', 'OpacityModifier', 'TexModifier', 'TexEnvMap',
        +            'TexCoordSource', 'TexMatrix', 'TexOscillator', 'TexPanner', 'TexRotator', 'TexScaler',
        +            'RenderedMaterial', 'BitmapMaterial', 'ScriptedTexture', 'ShadowBitmapMaterial', 'Cubemap',
        +            'FractalTexture', 'FireTexture', 'IceTexture', 'WaterTexture', 'FluidTexture', 'WaveTexture',
        +            'WetTexture', 'ConstantMaterial', 'ConstantColor', 'FadeColor', 'ParticleMaterial',
        +            'ProjectorMaterial', 'Shader', 'TerrainMaterial', 'VertexColor'
        +            ),
        +        6 => array(        //misc keywords
        +            'false', 'true', 'self', 'super', 'MaxInt', 'Pi'
        +            ),
        +        7 => array(        //common actor enums & variables
        +            'DT_None', 'DT_Sprite', 'DT_Mesh', 'DT_Brush', 'DT_RopeSprite',
        +            'DT_VerticalSprite', 'DT_TerraForm', 'DT_SpriteAnimOnce', 'DT_StaticMesh', 'DT_DrawType',
        +            'DT_Particle', 'DT_AntiPortal', 'DT_FluidSurface',
        +            'PHYS_None', 'PHYS_Walking', 'PHYS_Falling', 'PHYS_Swimming', 'PHYS_Flying',
        +            'PHYS_Rotating', 'PHYS_Projectile', 'PHYS_Interpolating', 'PHYS_MovingBrush', 'PHYS_Spider',
        +            'PHYS_Trailer', 'PHYS_Ladder', 'PHYS_RootMotion', 'PHYS_Karma', 'PHYS_KarmaRagDoll',
        +            'PHYS_Hovering', 'PHYS_CinMotion',
        +            'ROLE_None', 'ROLE_DumbProxy', 'ROLE_SimulatedProxy',
        +            'ROLE_AutonomousProxy', 'ROLE_Authority',
        +            'STY_None', 'STY_Normal', 'STY_Masked', 'STY_Translucent', 'STY_Modulated', 'STY_Alpha',
        +            'STY_Additive', 'STY_Subtractive', 'STY_Particle', 'STY_AlphaZ',
        +            'OCCLUSION_None', 'OCCLUSION_BSP', 'OCCLUSION_Default', 'OCCLUSION_StaticMeshes',
        +            'SLOT_None', 'SLOT_Misc', 'SLOT_Pain', 'SLOT_Interact', 'SLOT_Ambient', 'SLOT_Talk',
        +            'SLOT_Interface', 'MTRAN_None', 'MTRAN_Instant', 'MTRAN_Segue', 'MTRAN_Fade',
        +            'MTRAN_FastFade', 'MTRAN_SlowFade',
        +
        +            'DrawType', 'Physics', 'Owner', 'Base', 'Level', 'Game', 'Instigator', 'RemoteRole', 'Role',
        +            'LifeSpan', 'Tag', 'Event', 'Location', 'Rotation', 'Velocity', 'Acceleration',
        +            'RelativeLocation', 'RelativeRotation', 'DrawScale', 'DrawScale3D', 'Skins', 'Style',
        +            'SoundVolume', 'SoundPitch', 'SoundRadius', 'TransientSoundVolume', 'TransientSoundRadius',
        +            'CollisionRadius', 'CollisionHeight', 'Mass', 'Buoyancy', 'RotationRate', 'DesiredRotation'
        +            ),
        +        8 => array(        //common non-actor uscript classes
        +            'Object',
        +            'CacheManager', 'CameraEffect', 'Canvas', 'CheatManager', 'Commandlet', 'DecoText', 'GUI',
        +            'InteractionMaster', 'Interactions', 'Interaction', 'KarmaParamsCollision', 'KarmaParamsRBFull',
        +            'KarmaParamsSkel', 'KarmaParams', 'LevelSummary', 'Locale', 'Manifest', 'MaterialFactory',
        +            'MeshObject', 'ObjectPool', 'Pallete',
        +            'ParticleEmitter', 'MeshEmitter', 'BeamEmitter', 'SpriteEmitter', 'SparkEmitter', 'TrailEmitter',
        +            'Player', 'PlayerInput', 'PlayInfo', 'ReachSpec', 'Resource', 'LatentScriptedAction', 'ScriptedAction',
        +            'speciesType', 'StreamBase', 'Stream', 'EditorEngine', 'Engine', 'Time', 'WeaponFire',
        +            'WebApplication', 'WebRequest', 'WebResponse', 'WebSkin', 'xPawnGibGroup', 'xPawnSoundGroup',
        +            'xUtil'
        +            ),
        +        9 => array(        //common actor-based uscript classes
        +            'Actor',
        +            'Controller', 'AIController', 'ScriptedController', 'Bot', 'xBot',
        +            'PlayerController', 'UnrealPlayer', 'xPlayer',
        +            'DamageType', 'WeaponDamageType', 'Effects', 'Emitter', 'NetworkEmitter',
        +            'Gib', 'HUD', 'HudBase', 'Info', 'FluidSurfaceInfo', 'Combo',
        +            'GameInfo', 'UnrealMPGameInfo', 'DeathMatch', 'TeamGame', 'CTFGame',
        +            'xCTFGame', 'xBombingRun', 'xDoubleDom', 'xTeamGame',
        +            'ASGameInfo', 'Invasion', 'ONSOnslaughtGame', 'xDeathmatch',
        +            'Mutator', 'Inventory', 'Ammunition', 'KeyInventory', 'Powerups', 'Armor', 'Weapon',
        +            'InventoryAttachment', 'WeaponAttachment',
        +            'KActor', 'KConstraint', 'KBSJoint', 'KCarWheelJoint', 'KConeLimit', 'KHinge', 'KTire',
        +            'KVehicleFactory', 'Keypoint', 'AIScript', 'ScriptedSequence', 'ScriptedTrigger',
        +            'AmbientSound', 'Light', 'SpotLight', 'SunLight', 'TriggerLight',
        +            'MeshEffect', 'NavigationPoint', 'GameObjective', 'DestroyableObjective',
        +            'PathNode', 'FlyingPathNode', 'RoadPathNode', 'InventorySpot', 'PlayerStart',
        +            'Pawn', 'Vehicle', 'UnrealPawn', 'xPawn', 'Monster', 'ASVehicle', 'KVehicle', 'KCar',
        +            'ONSWeaponPawn', 'SVehicle', 'ONSVehicle', 'ONSChopperCraft', 'ONSHoverCraft',
        +            'ONSPlaneCraft', 'ONSTreadCraft', 'ONSWheeledCraft',
        +            'Pickup', 'Ammo', 'UTAmmoPickup', 'ArmorPickup', 'KeyPickup', 'TournamentPickup',
        +            'Projectile', 'Projector', 'DynamicProjector', 'ShadowProjector', 'xScorch',
        +            'xEmitter', 'xPickupBase', 'xProcMesh', 'xWeatherEffect', 'PhysicsVolume', 'Volume'
        +            ),
        +        10 => array(    //symbol-like operators
        +            'dot','cross'
        +            )
        +        ),
        +    '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,
        +        10 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000FF;',
        +            2 => 'color: #0000FF;',
        +            3 => 'color: #0066AA;',
        +            4 => 'color: #0088FF;',
        +            5 => 'color: #E000E0;',
        +            6 => 'color: #900000;',
        +            7 => 'color: #888800;',
        +            8 => 'color: #AA6600;',
        +            9 => 'color: #FF8800;',
        +            10 => 'color: #0000FF;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008080; font-style: italic;',
        +            2 => 'color: #000000; font-weight: bold;',
        +            'MULTI' => 'color: #008080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => ''
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #999999;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #FF0000;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #669966;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #E000E0;',
        +            1 => 'color: #E000E0;'
        +            ),
        +        'SCRIPT' => array(
        +            0 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => '',
        +        7 => '',
        +        8 => 'http://wiki.beyondunreal.com/wiki?search={FNAME}',
        +        9 => 'http://wiki.beyondunreal.com/wiki?search={FNAME}',
        +        10 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array('.'),
        +    'REGEXPS' => array(            //handle template-style variable definitions
        +        0 => array(
        +            GESHI_SEARCH => '(class\s*)<(\s*(\w+)\s*)>',
        +            GESHI_REPLACE => "\${1}",
        +            GESHI_MODIFIERS => 'i',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => "< \${3} >"
        +            ),
        +        1 => array(
        +            GESHI_SEARCH => '(array\s*)<(\s*(\w+)\s*)>',
        +            GESHI_REPLACE => "\${1}",
        +            GESHI_MODIFIERS => 'i',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => "< \${3} >"
        +            )
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            10 => array(
        +                'DISALLOWED_BEFORE' => '(?)'
        +                )
        +            )
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/vala.php b/Sources/geshi/vala.php
        new file mode 100644
        index 0000000..acac57e
        --- /dev/null
        +++ b/Sources/geshi/vala.php
        @@ -0,0 +1,151 @@
        + 'Vala',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        //Using and Namespace directives (basic support)
        +        //Please note that the alias syntax for using is not supported
        +        3 => '/(?:(?<=using[\\n\\s])|(?<=namespace[\\n\\s]))[\\n\\s]*([a-zA-Z0-9_]+\\.)*[a-zA-Z0-9_]+[\n\s]*(?=[;=])/i'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'HARDQUOTE' => array('"""'),
        +    'HARDESCAPE' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'as', 'abstract', 'base', 'break', 'case', 'catch', 'const',
        +            'construct', 'continue', 'default', 'delete', 'dynamic', 'do',
        +            'else', 'ensures', 'extern', 'false', 'finally', 'for', 'foreach',
        +            'get', 'if', 'in', 'inline', 'internal', 'lock', 'namespace',
        +            'null', 'out', 'override', 'private', 'protected', 'public', 'ref',
        +            'requires', 'return', 'set', 'static', 'switch', 'this', 'throw',
        +            'throws', 'true', 'try', 'using', 'value', 'var', 'virtual',
        +            'volatile', 'void', 'yield', 'yields', 'while'
        +            ),
        +        2 => array(
        +            '#elif', '#endif', '#else', '#if'
        +            ),
        +        3 => array(
        +            'is', 'new', 'owned', 'sizeof', 'typeof', 'unchecked', 'unowned', 'weak'
        +            ),
        +        4 => array(
        +            'bool', 'char', 'class', 'delegate', 'double', 'enum',
        +            'errordomain', 'float', 'int', 'int8', 'int16', 'int32', 'int64',
        +            'interface', 'long', 'short', 'signal', 'size_t', 'ssize_t',
        +            'string', 'struct', 'uchar', 'uint', 'uint8', 'uint16', 'uint32',
        +            'ulong', 'unichar', 'ushort'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!', ':', ';',
        +        '(', ')', '{', '}', '[', ']', '|'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true,
        +        4 => true,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0600FF;',
        +            2 => 'color: #FF8000; font-weight: bold;',
        +            3 => 'color: #008000;',
        +            4 => 'color: #FF0000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008080; font-style: italic;',
        +            3 => 'color: #008080;',
        +            'MULTI' => 'color: #008080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #008080; font-weight: bold;',
        +            'HARD' => 'color: #008080; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #666666;',
        +            'HARD' => 'color: #666666;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #FF0000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #0000FF;',
        +            2 => 'color: #0000FF;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #008000;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            'DISALLOWED_BEFORE' => "(?|^])",
        +            'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%\\-])"
        +        )
        +    )
        +);
        +
        +?>
        diff --git a/Sources/geshi/vb.php b/Sources/geshi/vb.php
        new file mode 100644
        index 0000000..528e7cd
        --- /dev/null
        +++ b/Sources/geshi/vb.php
        @@ -0,0 +1,157 @@
        + 'Visual Basic',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(
        +        // Comments (either single or multiline with _
        +        1 => '/\'.*(? GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'Binary', 'Boolean', 'Byte', 'Currency', 'Date', 'Decimal', 'Double',
        +            'String', 'Enum', 'Integer', 'Long', 'Object', 'Single', 'Variant'
        +            ),
        +        2 => array(
        +            'CreateObject', 'GetObject', 'New', 'Option', 'Function',
        +            'Call', 'Private', 'Public', 'Sub', 'Explicit', 'Compare', 'Exit'
        +            ),
        +        3 => array(
        +            'And', 'Case', 'Do', 'Each', 'Else', 'ElseIf', 'For',
        +            'Goto', 'If', 'Is', 'Loop', 'Next', 'Not', 'Or', 'Select', 'Step',
        +            'Then', 'To', 'Until', 'While', 'With', 'Xor', 'WithEvents',
        +            'DoEvents', 'Close', 'Like', 'In', 'End'
        +            ),
        +        4 => array(
        +            'As', 'Dim', 'Get', 'Set', 'ReDim', 'Error',
        +            'Resume', 'Declare', 'Let', 'ByRef', 'ByVal',
        +            'Optional', 'Property', 'Control', 'UBound', 'Mod',
        +            'GoSub', 'Implements', 'Input', 'LBound', 'Static', 'Stop',
        +            'Type', 'TypeOf', 'On', 'Open', 'Output', 'ParamArray',
        +            'Preserve', 'Print', 'RaiseEvent', 'Random', 'Line'
        +            ),
        +        5 => array(
        +            'Nothing', 'False', 'True', 'Null', 'Empty'
        +            ),
        +        6 => array(
        +            'ErrorHandler','ExitProc', 'PublishReport'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        6 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #F660AB; font-weight: bold;',
        +            2 => 'color: #E56717; font-weight: bold;',
        +            3 => 'color: #8D38C9; font-weight: bold;',
        +            4 => 'color: #151B8D; font-weight: bold;',
        +            5 => 'color: #00C2FF; font-weight: bold;',
        +            6 => 'color: #3EA99F; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008000;'
        +            ),
        +        'BRACKETS' => array(
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #800000;'
        +            ),
        +        'NUMBERS' => array(
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #800000; font-weight: bold;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => '',
        +        6 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'BRACKETS' => GESHI_NEVER,
        +            'SYMBOLS' => GESHI_NEVER,
        +            'NUMBERS' => GESHI_NEVER
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/vbnet.php b/Sources/geshi/vbnet.php
        new file mode 100644
        index 0000000..758df98
        --- /dev/null
        +++ b/Sources/geshi/vbnet.php
        @@ -0,0 +1,182 @@
        + 'vb.net',
        +    'COMMENT_SINGLE' => array(1 => "'"),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        //Keywords
        +        1 => array(
        +            'AddHandler', 'AddressOf', 'Alias', 'And', 'AndAlso', 'As', 'ByRef', 'ByVal',
        +            'Call', 'Case', 'Catch', 'Char', 'Class', 'Const', 'Continue',
        +            'Declare', 'Default',
        +            'Delegate', 'Dim', 'DirectCast', 'Do', 'Each', 'Else', 'ElseIf', 'End', 'EndIf',
        +            'Enum', 'Erase', 'Error', 'Event', 'Exit', 'False', 'Finally', 'For', 'Friend', 'Function',
        +            'Get', 'GetType', 'GetXMLNamespace', 'Global', 'GoSub', 'GoTo', 'Handles', 'If', 'Implements',
        +            'Imports', 'In', 'Inherits', 'Interface', 'Is', 'IsNot', 'Let', 'Lib', 'Like', 'Loop', 'Me',
        +            'Mod', 'Module', 'Module Statement', 'MustInherit', 'MustOverride', 'MyBase', 'MyClass', 'Namespace',
        +            'Narrowing', 'New', 'Next', 'Not', 'Nothing', 'NotInheritable', 'NotOverridable', 'Of', 'On',
        +            'Operator', 'Option', 'Optional', 'Or', 'OrElse', 'Out', 'Overloads', 'Overridable', 'Overrides',
        +            'ParamArray', 'Partial', 'Private', 'Property', 'Protected', 'Public', 'RaiseEvent', 'ReadOnly', 'ReDim',
        +            'REM', 'RemoveHandler', 'Resume', 'Return', 'Select','Set', 'Shadows', 'Shared', 'Static', 'Step',
        +            'Stop', 'Structure', 'Sub', 'SyncLock', 'Then', 'Throw', 'To', 'True', 'Try', 'TryCast', 'TypeOf',
        +            'Using', 'Wend', 'When', 'While', 'Widening', 'With', 'WithEvents', 'WriteOnly', 'Xor'
        +            ),
        +        //Data Types
        +        2 => array(
        +            'Boolean', 'Byte', 'Date', 'Decimal', 'Double', 'Integer', 'Long', 'Object',
        +            'SByte', 'Short', 'Single', 'String', 'UInteger', 'ULong', 'UShort'
        +            ),
        +        //Compiler Directives
        +        3 => array(
        +            '#Const', '#Else', '#ElseIf', '#End', '#If'
        +            ),
        +        //Constants
        +        4 => array(
        +            'CBool', 'CByte', 'CChar', 'CChr', 'CDate', 'CDbl', 'CDec','CInt', 'CLng', 'CLng8', 'CObj', 'CSByte', 'CShort',
        +            'CSng', 'CStr', 'CType', 'CUInt', 'CULng', 'CUShort'
        +            ),
        +        //Linq
        +        5 => array(
        +            'By','From','Group','Where'
        +            ),
        +        //Built-in functions
        +        7 => array(
        +            'ABS', 'ARRAY', 'ASC', 'ASCB', 'ASCW', 'CALLBYNAME', 'CHOOSE', 'CHR', 'CHR$', 'CHRB', 'CHRB$', 'CHRW',
        +            'CLOSE', 'COMMAND', 'COMMAND$', 'CONVERSION',
        +            'COS', 'CREATEOBJECT', 'CURDIR', 'CVDATE', 'DATEADD',
        +            'DATEDIFF', 'DATEPART', 'DATESERIAL', 'DATEVALUE', 'DAY', 'DDB', 'DIR', 'DIR$',
        +            'EOF', 'ERROR$', 'EXP', 'FILEATTR', 'FILECOPY', 'FILEDATATIME', 'FILELEN', 'FILTER',
        +            'FIX', 'FORMAT', 'FORMAT$', 'FORMATCURRENCY', 'FORMATDATETIME', 'FORMATNUMBER',
        +            'FORMATPERCENT', 'FREEFILE', 'FV', 'GETALLSETTINGS', 'GETATTRGETOBJECT', 'GETSETTING',
        +            'HEX', 'HEX$', 'HOUR', 'IIF', 'IMESTATUS', 'INPUT$', 'INPUTB', 'INPUTB$', 'INPUTBOX',
        +            'INSTR', 'INSTRB', 'INSTRREV', 'INT', 'IPMT', 'IRR', 'ISARRAY', 'ISDATE', 'ISEMPTY',
        +            'ISERROR', 'ISNULL', 'ISNUMERIC', 'ISOBJECT', 'JOIN', 'LBOUND', 'LCASE', 'LCASE$',
        +            'LEFT', 'LEFT$', 'LEFTB', 'LEFTB$', 'LENB', 'LINEINPUT', 'LOC', 'LOF', 'LOG', 'LTRIM',
        +            'LTRIM$', 'MID$', 'MIDB', 'MIDB$', 'MINUTE', 'MIRR', 'MKDIR', 'MONTH', 'MONTHNAME',
        +            'MSGBOX', 'NOW', 'NPER', 'NPV', 'OCT', 'OCT$', 'PARTITION', 'PMT', 'PPMT', 'PV',
        +            'RATE', 'REPLACE', 'RIGHT', 'RIGHT$', 'RIGHTB', 'RIGHTB$', 'RMDIR', 'RND', 'RTRIM',
        +            'RTRIM$', 'SECOND', 'SIN', 'SLN', 'SPACE', 'SPACE$', 'SPC', 'SPLIT', 'SQRT', 'STR', 'STR$',
        +            'STRCOMP', 'STRCONV', 'STRING$', 'STRREVERSE', 'SYD', 'TAB', 'TAN', 'TIMEOFDAY',
        +            'TIMER', 'TIMESERIAL', 'TIMEVALUE', 'TODAY', 'TRIM', 'TRIM$', 'TYPENAME', 'UBOUND',
        +            'UCASE', 'UCASE$', 'VAL', 'WEEKDAY', 'WEEKDAYNAME', 'YEAR'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '+', '-', '*', '?', '=', '/', '%', '&', '>', '<', '^', '!',
        +        '(', ')', '{', '}', '.'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false,
        +        7 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000FF; font-weight: bold;',  //Keywords
        +            2 => 'color: #6a5acd;',                     //primitive Data Types
        +            3 => 'color: #6a5acd; font-weight: bold;',  //preprocessor-commands
        +            4 => 'color: #cd6a5a;',                     //Constants
        +            5 => 'color: #cd6a5a; font-weight: bold;',  //LinQ
        +            7 => 'color: #000066;',                     //Built-in functions
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008000; font-style: italic;',
        +            'MULTI' => 'color: #008000; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #008080; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #a52a2a; back-color: #fffacd;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #a52a2a; back-color: #fffacd;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #000000;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://www.google.com/search?q={FNAMEU}+site:msdn.microsoft.com',
        +        4 => '',
        +        5 => '',
        +        7 => 'http://www.google.com/search?q={FNAMEU}+site:msdn.microsoft.com'
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 =>'.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            7 => array(
        +                'DISALLOWED_AFTER' => '(?!\w)(?=\s*\()'
        +                )
        +            )
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/vedit.php b/Sources/geshi/vedit.php
        new file mode 100644
        index 0000000..19b2bdb
        --- /dev/null
        +++ b/Sources/geshi/vedit.php
        @@ -0,0 +1,103 @@
        + 'Vedit macro language',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"', '\''),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'break', 'breakout', 'break_out', 'continue', 'do', 'else', 'for',
        +            'goto', 'if', 'repeat', 'return', 'while'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array(
        +            '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '%',
        +            '=', '<', '>', '!', '^', '&', '|', '?', ':', ';', ','
        +            )
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;',
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #004000;'
        +            ),
        +        'SYMBOLS' => array(
        +            1 => 'color: #339933;'
        +            ),
        +        'REGEXPS' => array(),
        +        'SCRIPT' => array()
        +        ),
        +    'URLS' => array(1 => ''),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array()
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/verilog.php b/Sources/geshi/verilog.php
        new file mode 100644
        index 0000000..2bf66d1
        --- /dev/null
        +++ b/Sources/geshi/verilog.php
        @@ -0,0 +1,173 @@
        +
        + * Copyright: (C) 2008 Guenter Dannoritzer
        + * Release Version: 1.0.8.11
        + * Date Started: 2008/05/28
        + *
        + * Verilog language file for GeSHi.
        + *
        + * CHANGES
        + * -------
        + * 2008/05/29
        + *   -  added regular expression to find numbers of the form 4'b001xz
        + *   -  added regular expression to find values for `timescale command
        + *   -  extended macro keywords
        + *
        + * TODO (updated 2008/05/29)
        + * -------------------------
        + *
        + *************************************************************************************
        + *
        + *     This file is part of GeSHi.
        + *
        + *   GeSHi is free software; you can redistribute it and/or modify
        + *   it under the terms of the GNU General Public License as published by
        + *   the Free Software Foundation; either version 2 of the License, or
        + *   (at your option) any later version.
        + *
        + *   GeSHi is distributed in the hope that it will be useful,
        + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        + *   GNU General Public License for more details.
        + *
        + *   You should have received a copy of the GNU General Public License
        + *   along with GeSHi; if not, write to the Free Software
        + *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + ************************************************************************************/
        +
        +$language_data = array (
        +    'LANG_NAME' => 'Verilog',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        // keywords
        +        1 => array('always', 'and', 'assign', 'begin', 'buf', 'bufif0', 'bufif1', 'case',
        +            'casex', 'casez', 'cmos', 'deassign', 'default', 'defparam',
        +            'disable', 'edge', 'else', 'end', 'endcase', 'endfunction',
        +            'endmodule', 'endprimitive', 'endspecify', 'endtable', 'endtask',
        +            'event', 'fork', 'for', 'force', 'forever', 'function', 'highz0',
        +            'highz1', 'if', 'ifnone', 'initial', 'inout', 'input', 'integer',
        +            'join', 'large', 'macromodule', 'medium', 'module', 'nand',
        +            'negedge', 'nmos', 'nor', 'not', 'notif0', 'notif1', 'or',
        +            'output', 'parameter', 'pmos', 'posedge', 'primitive', 'pull0',
        +            'pull1', 'pulldown', 'pullup', 'rcmos', 'real', 'realtime', 'reg',
        +            'release', 'repeat', 'rnmos', 'rpmos', 'rtran', 'rtranif0',
        +            'rtranif1', 'scalared', 'small', 'specify', 'specparam',
        +            'strong0', 'strong1', 'supply0', 'supply1', 'table', 'task',
        +            'time', 'tran', 'tranif0', 'tranif1', 'tri', 'tri0', 'tri1',
        +            'triand', 'trior', 'trireg', 'vectored', 'wait', 'wand', 'weak0',
        +            'weak1', 'while', 'wire', 'wor', 'xnor', 'xor'
        +            ),
        +        // system tasks
        +        2 => array(
        +            '$display', '$monitor',
        +            '$dumpall', '$dumpfile', '$dumpflush', '$dumplimit', '$dumpoff',
        +            '$dumpon', '$dumpvars',
        +            '$fclose', '$fdisplay', '$fopen',
        +            '$finish', '$fmonitor', '$fstrobe', '$fwrite',
        +            '$fgetc', '$ungetc', '$fgets', '$fscanf', '$fread', '$ftell',
        +            '$fseek', '$frewind', '$ferror', '$fflush', '$feof',
        +            '$random',
        +            '$readmemb', '$readmemh', '$readmemx',
        +            '$signed', '$stime', '$stop',
        +            '$strobe', '$time', '$unsigned', '$write'
        +            ),
        +        // macros
        +        3 => array(
        +            '`default-net', '`define',
        +            '`celldefine', '`default_nettype', '`else', '`elsif', '`endcelldefine',
        +            '`endif', '`ifdef', '`ifndef', '`include', '`line', '`nounconnected_drive',
        +            '`resetall', '`timescale', '`unconnected_drive', '`undef'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%',
        +        '^', '&', '|', '~',
        +        '?', ':',
        +        '#', '<<', '<<<',
        +        '>', '<', '>=', '<=',
        +        '@', ';', ','
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #A52A2A; font-weight: bold;',
        +            2 => 'color: #9932CC;',
        +            3 => 'color: #008800;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #00008B; font-style: italic;',
        +            'MULTI' => 'color: #00008B; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #9F79EE'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #9F79EE;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #FF00FF;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #ff0055;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #202020;',
        +            2 => 'color: #202020;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #5D478B;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #ff0055;',
        +            1 => 'color: #ff0055;',
        +            ),
        +        'SCRIPT' => array(
        +            0 => '',
        +            1 => '',
        +            2 => '',
        +            3 => ''
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => ''
        +        ),
        +    'REGEXPS' => array(
        +        // numbers
        +        0 => "\d'[bdh][0-9_a-fA-FxXzZ]+",
        +        // time -> 1, 10, or 100; s, ms, us, ns, ps, of fs
        +        1 => "1[0]{0,2}[munpf]?s"
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        1 => ''
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        0 => true,
        +        1 => true,
        +        2 => true,
        +        3 => true
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        diff --git a/Sources/geshi/vhdl.php b/Sources/geshi/vhdl.php
        new file mode 100644
        index 0000000..a8f37e6
        --- /dev/null
        +++ b/Sources/geshi/vhdl.php
        @@ -0,0 +1,183 @@
        + 'VHDL',
        +    'COMMENT_SINGLE' => array(1 => '--'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'COMMENT_REGEXP' => array(
        +        // PSL adds C-preprocessor support
        +        1 => '/(?<=\s)#(?:\\\\\\\\|\\\\\\n|.)*$/m',
        +        // PSL metacomments (single-line only for now)
        +        2 => '/--\s*@?psl(?:.)*?;$/m',
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        /*keywords*/
        +        1 => array(
        +            'access','after','alias','all','attribute','architecture','array','begin',
        +            'block','body','buffer','bus','case','case?','component','configuration','constant','context',
        +            'disconnect','downto','else','elsif','end','entity','exit','file','for','force',
        +            'function','generate','generic','group','guarded','if','impure','in',
        +            'inertial','inout','is','label','library','linkage','literal','loop',
        +            'map','new','next','null','of','on','open','others','out','package',
        +            'port','postponed','procedure','process','protected','pure','range','record','register',
        +            'reject','release','report','return','select','severity','shared','signal','subtype',
        +            'then','to','transport','type','unaffected','units','until','use','variable',
        +            'wait','when','while','with'
        +            ),
        +        /*types and standard libs*/
        +        2 => array(
        +            'bit','bit_vector','character','boolean','integer','real','time','delay_length','string',
        +            'severity_level','positive','natural','signed','unsigned','line','text',
        +            'std_logic','std_logic_vector','std_ulogic','std_ulogic_vector',
        +            'sfixed','ufixed','float','float32','float64','float128',
        +            'work','ieee','std_logic_1164','math_real','math_complex','textio',
        +            'numeric_std','numeric_std_signed','numeric_std_unsigned','numeric_bit'
        +            ),
        +        /*operators*/
        +        3 => array(
        +            'abs','and','mod','nor','not','or','rem','rol','ror','sla','sll','sra','srl','xnor','xor'
        +            ),
        +        /*psl*/
        +        4 => array(
        +            'assert','assume','assume_guarantee','clock','const','countones','cover','default',
        +            'endpoint','fairness','fell','forall','inf','inherit','isunknown','onehot','onehot0','property',
        +            'prev','restrict','restrict_guarantee','rose','sequence','stable','strong','union','vmode','vprop','vunit'
        +            ),
        +        /*psl operators*/
        +        5 => array(
        +            'abort','always','before','before!','before!_','before_','eventually!','never',
        +            'next!','next_a','next_a!','next_e','next_e!','next_event','next_event!','next_event_a','next_event_a!',
        +            'next_event_e','next_event_e!','until!','until!_','until_','within'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '[', ']', '(', ')',
        +        ';',':',
        +        '<','>','=','+','-','*','/','&','|','?'
        +    ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000080; font-weight: bold;',
        +            2 => 'color: #0000ff;',
        +            3 => 'color: #000066;',
        +            4 => 'color: #000080; font-weight: bold;',
        +            5 => 'color: #000066;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008000; font-style: italic;',
        +            2 => 'color: #ff0000; font-weight: bold;',
        +            'MULTI' => 'color: #008000; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000066;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #7f007f;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000066;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #ff0000;',
        +            //1 => 'color: #ff0000;',
        +            2 => 'color: #ee82ee;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        //Based literals, scientific notation, and time units
        +        0 => '(\b\d+#[[:xdigit:]_]+#)|'.
        +            '(\b[\d_]+(\.[\d_]+)?[eE][+\-]?[\d_]+)|'.
        +            '(\b(hr|min|sec|ms|us|ns|ps|fs)\b)',
        +        //Character literals
        +        /* GeSHi won't match this pattern for some reason and QUOTEMARKS
        +         * can't be used because it interferes with attribute parsing */
        +        /*1 => "\b'.'\b",*/
        +        //Attributes
        +        2 => "'\w+(?!')"
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/vim.php b/Sources/geshi/vim.php
        new file mode 100644
        index 0000000..fe7e5e0
        --- /dev/null
        +++ b/Sources/geshi/vim.php
        @@ -0,0 +1,420 @@
        +  ...   ... works event if they aren't surround by space.
        + *
        + *************************************************************************************
        + *
        + *     This file is part of GeSHi.
        + *
        + *   GeSHi is free software; you can redistribute it and/or modify
        + *   it under the terms of the GNU General Public License as published by
        + *   the Free Software Foundation; either version 2 of the License, or
        + *   (at your option) any later version.
        + *
        + *   GeSHi is distributed in the hope that it will be useful,
        + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        + *   GNU General Public License for more details.
        + *
        + *   You should have received a copy of the GNU General Public License
        + *   along with GeSHi; if not, write to the Free Software
        + *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + ************************************************************************************/
        +
        +$language_data = array(
        +    'LANG_NAME' => 'Vim Script',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_REGEXP' => array(
        +        1 => "/\s*\"[^\"]*?$/m",
        +        //Regular expressions (Ported from perl.php)
        +//        2 => "/(?<=[\\s^])(s|tr|y)\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])*\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU",
        +        ),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'au', 'augroup', 'autocmd', 'brea', 'break', 'bufadd',
        +            'bufcreate', 'bufdelete', 'bufenter', 'buffilepost',
        +            'buffilepre', 'bufleave', 'bufnew', 'bufnewfile',
        +            'bufread', 'bufreadcmd', 'bufreadpost', 'bufreadpre',
        +            'bufunload', 'bufwinenter', 'bufwinleave', 'bufwipeout',
        +            'bufwrite', 'bufwritecmd', 'bufwritepost', 'bufwritepre',
        +            'call', 'cat', 'catc', 'catch', 'cmd-event', 'cmdwinenter',
        +            'cmdwinleave', 'colorscheme', 'con', 'confirm', 'cont', 'conti',
        +            'contin', 'continu', 'continue', 'cursorhold', 'cursorholdi',
        +            'cursormoved', 'cursormovedi', 'ec', 'echo', 'echoe',
        +            'echoer', 'echoerr', 'echoh', 'echohl', 'echom', 'echoms',
        +            'echomsg', 'echon', 'el', 'els', 'else', 'elsei', 'elseif',
        +            'en', 'encodingchanged', 'end', 'endfo', 'endfor', 'endi',
        +            'endif', 'endt', 'endtr', 'endtry', 'endw', 'endwh', 'endwhi',
        +            'endwhil', 'endwhile', 'exe', 'exec', 'execu', 'execut',
        +            'execute', 'fileappendcmd', 'fileappendpost', 'fileappendpre',
        +            'filechangedro', 'filechangedshell', 'filechangedshellpost',
        +            'filereadcmd', 'filereadpost', 'filereadpre',
        +            'filetype', 'filewritecmd', 'filewritepost', 'filewritepre',
        +            'filterreadpost', 'filterreadpre', 'filterwritepost',
        +            'filterwritepre', 'fina', 'final', 'finall', 'finally',
        +            'finish', 'focusgained', 'focuslost', 'for', 'fun', 'func',
        +            'funct', 'functi', 'functio', 'function', 'funcundefined',
        +            'guienter', 'guifailed', 'hi', 'highlight', 'if', 'in',
        +            'insertchange', 'insertenter', 'insertleave', 'let', 'lockv',
        +            'lockva', 'lockvar', 'map', 'match', 'menupopup', 'nnoremap',
        +            'quickfixcmdpost', 'quickfixcmdpre', 'remotereply', 'retu',
        +            'retur', 'return', 'sessionloadpost', 'set', 'setlocal',
        +            'shellcmdpost', 'shellfilterpost', 'sourcecmd', 'sourcepre',
        +            'spellfilemissing', 'stdinreadpost', 'stdinreadpre',
        +            'swapexists', 'syntax', 'tabenter', 'tableave', 'termchanged',
        +            'termresponse', 'th', 'thr', 'thro', 'throw', 'tr', 'try', 'unl',
        +            'unle', 'unlet', 'unlo', 'unloc', 'unlock', 'unlockv',
        +            'unlockva', 'unlockvar', 'user', 'usergettingbored',
        +            'vimenter', 'vimleave', 'vimleavepre', 'vimresized', 'wh',
        +            'whi', 'whil', 'while', 'winenter', 'winleave'
        +            ),
        +        2 => array(
        +            '<CR>', '<Esc>', '<F1>', '<F10>',
        +            '<F11>', '<F12>', '<F2>', '<F3>',
        +            '<F4>', '<F5>', '<F6>', '<F7>',
        +            '<F8>', '<F9>', '<cr>', '<silent>',
        +            '-nargs', 'acd', 'ai', 'akm', 'al', 'aleph',
        +            'allowrevins', 'altkeymap', 'ambiwidth', 'ambw',
        +            'anti', 'antialias', 'ar', 'arab', 'arabic',
        +            'arabicshape', 'ari', 'arshape', 'autochdir',
        +            'autoindent', 'autoread', 'autowrite', 'autowriteall',
        +            'aw', 'awa', 'background', 'backspace', 'backup',
        +            'backupcopy', 'backupdir', 'backupext',
        +            'backupskip', 'balloondelay', 'ballooneval', 'balloonexpr',
        +            'bdir', 'bdlay', 'beval', 'bex', 'bexpr', 'bg',
        +            'bh', 'bin', 'binary', 'biosk', 'bioskey',
        +            'bk', 'bkc', 'bl', 'bomb', 'breakat', 'brk',
        +            'bs', 'bsdir', 'bsk', 'bt', 'bufhidden',
        +            'buftype', 'casemap', 'cb',
        +            'ccv', 'cd', 'cdpath', 'cedit', 'cf', 'cfu', 'ch',
        +            'charconvert', 'ci', 'cin', 'cink',
        +            'cinkeys', 'cino', 'cinoptions', 'cinw', 'cinwords',
        +            'clipboard', 'cmdheight', 'cmdwinheight',
        +            'cmp', 'cms', 'co', 'columns', 'com',
        +            'comc', 'comcl', 'comcle', 'comclea', 'comclear', 'comm',
        +            'comma', 'comman', 'command', 'comments', 'commentstring',
        +            'compatible', 'completefunc', 'completeopt',
        +            'consk', 'conskey', 'copyindent',
        +            'cot', 'cp', 'cpo', 'cpoptions', 'cpt',
        +            'cscopepathcomp', 'cscopeprg', 'cscopequickfix', 'cscopetag',
        +            'cscopetagorder', 'cscopeverbose',
        +            'cspc', 'csprg', 'csqf', 'cst', 'csto', 'csverb', 'cuc',
        +            'cul', 'cursorcolumn', 'cursorline', 'cwh', 'debug',
        +            'deco', 'def', 'define', 'delc', 'delco', 'delcom',
        +            'delcombine', 'delcomm', 'delcomman', 'delcommand', 'dex',
        +            'dg', 'dict', 'dictionary', 'diff', 'diffexpr',
        +            'diffopt', 'digraph', 'dip', 'dir', 'directory', 'display',
        +            'dlcomma', 'dy', 'ea', 'ead', 'eadirection',
        +            'eb', 'ed', 'edcompatible', 'ef', 'efm',
        +            'ei', 'ek', 'enc', 'encoding', 'endfun', 'endofline',
        +            'eol', 'ep', 'equalalways', 'equalprg', 'errorbells',
        +            'errorfile', 'errorformat', 'esckeys', 'et',
        +            'eventignore', 'ex', 'expandtab', 'exrc', 'fcl',
        +            'fcs', 'fdc', 'fde', 'fdi', 'fdl', 'fdls', 'fdm',
        +            'fdn', 'fdo', 'fdt', 'fen', 'fenc', 'fencs', 'fex',
        +            'ff', 'ffs', 'fileencoding', 'fileencodings', 'fileformat',
        +            'fileformats', /*'filetype',*/ 'fillchars', 'fk',
        +            'fkmap', 'flp', 'fml', 'fmr', 'fo', 'foldclose',
        +            'foldcolumn', 'foldenable', 'foldexpr', 'foldignore',
        +            'foldlevelstart', 'foldmarker', 'foldmethod', 'foldminlines',
        +            'foldnestmax', 'foldopen', 'formatexpr', 'formatlistpat',
        +            'formatoptions', 'formatprg', 'fp', 'fs', 'fsync', 'ft',
        +            'gcr', 'gd', 'gdefault', 'gfm', 'gfn', 'gfs', 'gfw',
        +            'ghr', 'go', 'gp', 'grepformat', 'grepprg', 'gtl',
        +            'gtt', 'guicursor', 'guifont', 'guifontset',
        +            'guifontwide', 'guiheadroom', 'guioptions', 'guipty',
        +            'guitablabel', 'guitabtooltip', 'helpfile',
        +            'helpheight', 'helplang', 'hf', 'hh', 'hid', 'hidden',
        +            'history', 'hk', 'hkmap', 'hkmapp', 'hkp', 'hl',
        +            'hlg', 'hls', 'hlsearch', 'ic', 'icon', 'iconstring',
        +            'ignorecase', 'im', 'imactivatekey', 'imak', 'imc',
        +            'imcmdline', 'imd', 'imdisable', 'imi', 'iminsert', 'ims',
        +            'imsearch', 'inc', 'include', 'includeexpr',
        +            'incsearch', 'inde', 'indentexpr', 'indentkeys',
        +            'indk', 'inex', 'inf', 'infercase', 'insertmode', 'is', 'isf',
        +            'isfname', 'isi', 'isident', 'isk', 'iskeyword',
        +            'isp', 'isprint', 'joinspaces', 'js', 'key',
        +            'keymap', 'keymodel', 'keywordprg', 'km', 'kmp', 'kp',
        +            'langmap', 'langmenu', 'laststatus', 'lazyredraw', 'lbr',
        +            'lcs', 'linebreak', 'lines', 'linespace', 'lisp',
        +            'lispwords', 'list', 'listchars', 'lm', 'lmap',
        +            'loadplugins', 'lpl', 'ls', 'lsp', 'lw', 'lz', 'ma',
        +            'macatsui', 'magic', 'makeef', 'makeprg', 'mat',
        +            'matchpairs', 'matchtime', 'maxcombine', 'maxfuncdepth',
        +            'maxmapdepth', 'maxmem', 'maxmempattern',
        +            'maxmemtot', 'mco', 'mef', 'menuitems', 'mfd', 'mh',
        +            'mis', 'mkspellmem', 'ml', 'mls', 'mm', 'mmd', 'mmp',
        +            'mmt', 'mod', 'modeline', 'modelines', 'modifiable',
        +            'modified', 'more', 'mouse', 'mousef', 'mousefocus',
        +            'mousehide', 'mousem', 'mousemodel', 'mouses',
        +            'mouseshape', 'mouset', 'mousetime', 'mp', 'mps', 'msm',
        +            'mzq', 'mzquantum', 'nf', 'noacd', 'noai', 'noakm',
        +            'noallowrevins', 'noaltkeymap', 'noanti', 'noantialias',
        +            'noar', 'noarab', 'noarabic', 'noarabicshape', 'noari',
        +            'noarshape', 'noautochdir', 'noautoindent', 'noautoread',
        +            'noautowrite', 'noautowriteall', 'noaw', 'noawa', 'nobackup',
        +            'noballooneval', 'nobeval', 'nobin', 'nobinary', 'nobiosk',
        +            'nobioskey', 'nobk', 'nobl', 'nobomb', 'nobuflisted', 'nocf',
        +            'noci', 'nocin', 'nocindent', 'nocompatible', 'noconfirm',
        +            'noconsk', 'noconskey', 'nocopyindent', 'nocp', 'nocscopetag',
        +            'nocscopeverbose', 'nocst', 'nocsverb', 'nocuc', 'nocul',
        +            'nocursorcolumn', 'nocursorline', 'nodeco', 'nodelcombine',
        +            'nodg', 'nodiff', 'nodigraph', 'nodisable', 'noea', 'noeb',
        +            'noed', 'noedcompatible', 'noek', 'noendofline', 'noeol',
        +            'noequalalways', 'noerrorbells', 'noesckeys', 'noet',
        +            'noex', 'noexpandtab', 'noexrc', 'nofen', 'nofk', 'nofkmap',
        +            'nofoldenable', 'nogd', 'nogdefault', 'noguipty', 'nohid',
        +            'nohidden', 'nohk', 'nohkmap', 'nohkmapp', 'nohkp', 'nohls',
        +            'nohlsearch', 'noic', 'noicon', 'noignorecase', 'noim',
        +            'noimc', 'noimcmdline', 'noimd', 'noincsearch', 'noinf',
        +            'noinfercase', 'noinsertmode', 'nois', 'nojoinspaces',
        +            'nojs', 'nolazyredraw', 'nolbr', 'nolinebreak', 'nolisp',
        +            'nolist', 'noloadplugins', 'nolpl', 'nolz', 'noma',
        +            'nomacatsui', 'nomagic', 'nomh', 'noml', 'nomod',
        +            'nomodeline', 'nomodifiable', 'nomodified', 'nomore',
        +            'nomousef', 'nomousefocus', 'nomousehide', 'nonu',
        +            'nonumber', 'noodev', 'noopendevice', 'nopaste', 'nopi',
        +            'nopreserveindent', 'nopreviewwindow', 'noprompt', 'nopvw',
        +            'noreadonly', 'noremap', 'norestorescreen', 'norevins',
        +            'nori', 'norightleft', 'norightleftcmd', 'norl', 'norlc',
        +            'noro', 'nors', 'noru', 'noruler', 'nosb', 'nosc', 'noscb',
        +            'noscrollbind', 'noscs', 'nosecure', 'nosft', 'noshellslash',
        +            'noshelltemp', 'noshiftround', 'noshortname', 'noshowcmd',
        +            'noshowfulltag', 'noshowmatch', 'noshowmode', 'nosi', 'nosm',
        +            'nosmartcase', 'nosmartindent', 'nosmarttab', 'nosmd',
        +            'nosn', 'nosol', 'nospell', 'nosplitbelow', 'nosplitright',
        +            'nospr', 'nosr', 'nossl', 'nosta', 'nostartofline',
        +            'nostmp', 'noswapfile', 'noswf', 'nota', 'notagbsearch',
        +            'notagrelative', 'notagstack', 'notbi', 'notbidi', 'notbs',
        +            'notermbidi', 'noterse', 'notextauto', 'notextmode',
        +            'notf', 'notgst', 'notildeop', 'notimeout', 'notitle',
        +            'noto', 'notop', 'notr', 'nottimeout', 'nottybuiltin',
        +            'nottyfast', 'notx', 'novb', 'novisualbell', 'nowa',
        +            'nowarn', 'nowb', 'noweirdinvert', 'nowfh', 'nowfw',
        +            'nowildmenu', 'nowinfixheight', 'nowinfixwidth', 'nowiv',
        +            'nowmnu', 'nowrap', 'nowrapscan', 'nowrite', 'nowriteany',
        +            'nowritebackup', 'nows', 'nrformats', 'nu', 'number',
        +            'numberwidth', 'nuw', 'odev', 'oft', 'ofu',
        +            'omnifunc', 'opendevice', 'operatorfunc', 'opfunc',
        +            'osfiletype', 'pa', 'para', 'paragraphs',
        +            'paste', 'pastetoggle', 'patchexpr',
        +            'patchmode', 'path', 'pdev', 'penc', 'pex', 'pexpr',
        +            'pfn', 'ph', 'pheader', 'pi', 'pm', 'pmbcs',
        +            'pmbfn', 'popt', 'preserveindent', 'previewheight',
        +            'previewwindow', 'printdevice', 'printencoding', 'printexpr',
        +            'printfont', 'printheader', 'printmbcharset',
        +            'printmbfont', 'printoptions', 'prompt', 'pt', 'pumheight',
        +            'pvh', 'pvw', 'qe', 'quoteescape', 'rdt',
        +            'readonly', 'redrawtime', 'remap', 'report',
        +            'restorescreen', 'revins', 'ri', 'rightleft', 'rightleftcmd',
        +            'rl', 'rlc', 'ro', 'rs', 'rtp', 'ru',
        +            'ruf', 'ruler', 'rulerformat', 'runtimepath', 'sb', 'sbo',
        +            'sbr', 'sc', 'scb', 'scr', 'scroll', 'scrollbind',
        +            'scrolljump', 'scrolloff', 'scrollopt',
        +            'scs', 'sect', 'sections', 'secure', 'sel',
        +            'selection', 'selectmode', 'sessionoptions', 'sft',
        +            'sh', 'shcf', 'shell', 'shellcmdflag', 'shellpipe',
        +            'shellquote', 'shellredir', 'shellslash',
        +            'shelltemp', 'shelltype', 'shellxquote', 'shiftround',
        +            'shiftwidth', 'shm', 'shortmess', 'shortname',
        +            'showbreak', 'showcmd', 'showfulltag', 'showmatch',
        +            'showmode', 'showtabline', 'shq', 'si', 'sidescroll',
        +            'sidescrolloff', 'siso', 'sj', 'slm', 'sm', 'smartcase',
        +            'smartindent', 'smarttab', 'smc', 'smd', 'sn',
        +            'so', 'softtabstop', 'sol', 'sp', 'spc', 'spell',
        +            'spellcapcheck', 'spellfile', 'spelllang',
        +            'spf', 'spl', 'splitbelow', 'splitright', 'spr',
        +            'sps', 'sr', 'srr', 'ss', 'ssl', 'ssop', 'st', 'sta',
        +            'stal', 'startofline', 'statusline', 'stl', 'stmp',
        +            'sts', 'su', 'sua', 'suffixes', 'suffixesadd', 'sw',
        +            'swapfile', 'swapsync', 'swb', 'swf', 'switchbuf',
        +            'sws', 'sxq', 'syn', 'synmaxcol', 'ta',
        +            'tabline', 'tabpagemax', 'tabstop', 'tag',
        +            'tagbsearch', 'taglength', 'tagrelative', 'tags', 'tagstack',
        +            'tal', 'tb', 'tbi', 'tbidi', 'tbis', 'tbs',
        +            'tenc', 'term', 'termbidi', 'termencoding', 'terse',
        +            'textauto', 'textmode', 'textwidth', 'tf', 'tgst',
        +            'thesaurus', 'tildeop', 'timeout', 'timeoutlen',
        +            'title', 'titlelen', 'titleold', 'titlestring',
        +            'tl', 'tm', 'to', 'toolbar', 'toolbariconsize', 'top',
        +            'tpm', 'ts', 'tsl', 'tsr', 'ttimeout',
        +            'ttimeoutlen', 'ttm', 'tty', 'ttybuiltin', 'ttyfast', 'ttym',
        +            'ttymouse', 'ttyscroll', 'ttytype', 'tw', 'tx', 'uc',
        +            'ul', 'undolevels', 'updatecount', 'updatetime', 'ut',
        +            'vb', 'vbs', 'vdir', 've', 'verbose', 'verbosefile',
        +            'vfile', 'vi', 'viewdir', 'viewoptions', 'viminfo',
        +            'virtualedit', 'visualbell', 'vop', 'wa', 'wak',
        +            'warn', 'wb', 'wc', 'wcm', 'wd', 'weirdinvert', 'wfh',
        +            'wfw', /*'wh',*/ 'whichwrap', 'wi', 'wig', 'wildchar',
        +            'wildcharm', 'wildignore', 'wildmenu',
        +            'wildmode', 'wildoptions', 'wim', 'winaltkeys', 'window',
        +            'winfixheight', 'winfixwidth', 'winheight',
        +            'winminheight', 'winminwidth', 'winwidth', 'wiv',
        +            'wiw', 'wm', 'wmh', 'wmnu', 'wmw', 'wop', 'wrap',
        +            'wrapmargin', 'wrapscan', 'write', 'writeany',
        +            'writebackup', 'writedelay', 'ws', 'ww'
        +            ),
        +        3 => array(
        +            'BufAdd', 'BufCreate', 'BufDelete', 'BufEnter', 'BufFilePost',
        +            'BufFilePre', 'BufHidden', 'BufLeave', 'BufNew', 'BufNewFile',
        +            'BufRead', 'BufReadCmd', 'BufReadPost', 'BufReadPre',
        +            'BufUnload', 'BufWinEnter', 'BufWinLeave', 'BufWipeout',
        +            'BufWrite', 'BufWriteCmd', 'BufWritePost', 'BufWritePre',
        +            'Cmd-event', 'CmdwinEnter', 'CmdwinLeave', 'ColorScheme',
        +            'CursorHold', 'CursorHoldI', 'CursorMoved', 'CursorMovedI',
        +            'EncodingChanged', 'FileAppendCmd', 'FileAppendPost',
        +            'FileAppendPre', 'FileChangedRO', 'FileChangedShell',
        +            'FileChangedShellPost', 'FileEncoding', 'FileReadCmd',
        +            'FileReadPost', 'FileReadPre', 'FileType',
        +            'FileWriteCmd', 'FileWritePost', 'FileWritePre',
        +            'FilterReadPost', 'FilterReadPre', 'FilterWritePost',
        +            'FilterWritePre', 'FocusGained', 'FocusLost', 'FuncUndefined',
        +            'GUIEnter', 'GUIFailed', 'InsertChange', 'InsertEnter',
        +            'InsertLeave', 'MenuPopup', 'QuickFixCmdPost',
        +            'QuickFixCmdPre', 'RemoteReply', 'SessionLoadPost',
        +            'ShellCmdPost', 'ShellFilterPost', 'SourceCmd',
        +            'SourcePre', 'SpellFileMissing', 'StdinReadPost',
        +            'StdinReadPre', 'SwapExists', 'Syntax', 'TabEnter',
        +            'TabLeave', 'TermChanged', 'TermResponse', 'User',
        +            'UserGettingBored', 'VimEnter', 'VimLeave', 'VimLeavePre',
        +            'VimResized', 'WinEnter', 'WinLeave', 'abs', 'add', 'append',
        +            'argc', 'argidx', 'argv', 'atan', 'browse', 'browsedir',
        +            'bufexists', 'buflisted', 'bufloaded', 'bufname', 'bufnr',
        +            'bufwinnr', 'byte2line', 'byteidx', 'ceil', 'changenr',
        +            'char2nr', 'cindent', 'clearmatches', 'col', 'complete',
        +            'complete_add', 'complete_check', 'copy',
        +            'cos', 'count', 'cscope_connection', 'cursor', 'deepcopy',
        +            'delete', 'did_filetype', 'diff_filler', 'diff_hlID',
        +            'empty', 'escape', 'eval', 'eventhandler', 'executable',
        +            'exists', 'expand', 'extend', 'feedkeys', 'filereadable',
        +            'filewritable', 'filter', 'finddir', 'findfile', 'float2nr',
        +            'floor', 'fnameescape', 'fnamemodify', 'foldclosed',
        +            'foldclosedend', 'foldlevel', 'foldtext', 'foldtextresult',
        +            'foreground', 'garbagecollect', 'get', 'getbufline',
        +            'getbufvar', 'getchar', 'getcharmod', 'getcmdline',
        +            'getcmdpos', 'getcmdtype', 'getcwd', 'getfontname',
        +            'getfperm', 'getfsize', 'getftime', 'getftype', 'getline',
        +            'getloclist', 'getmatches', 'getpid', 'getpos', 'getqflist',
        +            'getreg', 'getregtype', 'gettabwinvar', 'getwinposx',
        +            'getwinposy', 'getwinvar', 'glob', 'globpath', 'has',
        +            'has_key', 'haslocaldir', 'hasmapto', 'histadd', 'histdel',
        +            'histget', 'histnr', 'hlID', 'hlexists', 'hostname', 'iconv',
        +            'indent', 'index', 'input', 'inputdialog', 'inputlist',
        +            'inputrestore', 'inputsave', 'inputsecret', 'insert',
        +            'isdirectory', 'islocked', 'items', 'join', 'keys', 'len',
        +            'libcall', 'libcallnr', 'line', 'line2byte', 'lispindent',
        +            'localtime', 'log10', 'maparg', 'mapcheck', 'matchadd',
        +            'matcharg', 'matchdelete', 'matchend', 'matchlist',
        +            'matchstr', 'max', 'min', 'mkdir', 'mode', 'nextnonblank',
        +            'nr2char', 'off', 'on', 'pathshorten', 'plugin', 'pow',
        +            'prevnonblank', 'printf', 'pumvisible', 'range', 'readfile',
        +            'reltime', 'reltimestr', 'remote_expr', 'remote_foreground',
        +            'remote_peek', 'remote_read', 'remote_send', 'remove',
        +            'rename', 'repeat', 'resolve', 'reverse', 'round', 'search',
        +            'searchdecl', 'searchpair', 'searchpairpos', 'searchpos',
        +            'server2client', 'serverlist', 'setbufvar', 'setcmdpos',
        +            'setline', 'setloclist', 'setmatches', 'setpos', 'setqflist',
        +            'setreg', 'settabwinvar', 'setwinvar', 'shellescape',
        +            'simplify', 'sin', 'sort', 'soundfold', 'spellbadword',
        +            'spellsuggest', 'split', 'sqrt', 'str2float', 'str2nr',
        +            'strftime', 'stridx', 'string', 'strlen', 'strpart',
        +            'strridx', 'strtrans', 'submatch', 'substitute',
        +            'synID', 'synIDattr', 'synIDtrans', 'synstack', 'system',
        +            'tabpagebuflist', 'tabpagenr', 'tabpagewinnr', 'tagfiles',
        +            'taglist', 'tempname', 'tolower', 'toupper', 'trunc',
        +            'type', 'values', 'virtcol', 'visualmode', 'winbufnr',
        +            'wincol', 'winline', 'winnr', 'winrestcmd',
        +            'winrestview', 'winsaveview', 'writefile'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '!', '%', '&', '*', '|', '/', '<', '>',
        +        '^', '-', '+', '~', '?', ':', '$', '@', '.'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => true,
        +        2 => true,
        +        3 => true
        +        ),
        +    'STYLES' => array(
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #adadad; font-style: italic;',
        +//            2 => 'color: #009966; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => ''
        +            ),
        +        'KEYWORDS' => array(
        +            1 => 'color: #804040;',
        +            2 => 'color: #668080;',
        +            3 => 'color: #25BB4D;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #000000;',
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #000000; font-weight:bold;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #C5A22D;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000;'
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => false, //Save some time as OO identifiers aren't used
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(),
        +    'HIGHLIGHT_STRICT_BLOCK' => array()
        +);
        +
        +?>
        diff --git a/Sources/geshi/visualfoxpro.php b/Sources/geshi/visualfoxpro.php
        new file mode 100644
        index 0000000..123a3db
        --- /dev/null
        +++ b/Sources/geshi/visualfoxpro.php
        @@ -0,0 +1,456 @@
        + 'Visual Fox Pro',
        +    'COMMENT_SINGLE' => array(1 => "//", 2 => "\n*"),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'Case', 'Else', '#Else', 'Then',
        +            'Endcase', 'Enddefine', 'Enddo', 'Endfor', 'Endfunc', 'Endif', 'Endprintjob',
        +            'Endproc', 'Endscan', 'Endtext', 'Endwith', '#Endif',
        +            '#Elif','#Define','#If','#Include',
        +            '#Itsexpression','#Readclauses','#Region','#Section','#Undef','#Wname',
        +            'Define','Do',
        +            'For','Function','Hidden',
        +            'If','Local','Lparameter','Lparameters','Next','Otherwise',
        +            'Parameters','Printjob','Procedure','Protected','Public','Scan',
        +            'Text','While','With','Abs','Accept','Access','Aclass','Acopy',
        +            'Acos','Adatabases','Adbobjects','Addbs','Addrelationtoenv','Addtabletoenv',
        +            'Adel','Adir','Aelement','Aerror','Afields','Afont',
        +            'Agetclass','Agetfileversion','Ains','Ainstance','Alen','Align',
        +            'Alines','Alltrim','Alter','Amembers','Amouseobj','Anetresources',
        +            'Ansitooem','Append','Aprinters','Ascan','Aselobj','Asin',
        +            'Asort','Assert','Asserts','Assist','Asubscript','Asynchronous',
        +            'At_c','Atan','Atc','Atcc','Atcline','Atline',
        +            'Atn2','Aused','Autoform','Autoreport','Avcxclasses','Average',
        +            'BarCount','BarPrompt','BatchMode','BatchUpdateCount','Begin','BellSound',
        +            'BinToC','Bitand','Bitclear','Bitlshift','Bitnot',
        +            'Bitor','Bitrshift','Bitset','Bittest','Bitxor','Bof',
        +            'Browse','BrowseRefresh','Buffering','BuilderLock','COMArray','COMReturnError',
        +            'CToBin','Calculate','Call','Capslock','Cd','Cdow',
        +            'Ceiling','Central','Change','Char','Chdir','Chr',
        +            'Chrsaw','Chrtran','Chrtranc','Close','Cmonth','Cntbar',
        +            'Cntpad','Col','Comclassinfo','CommandTargetQuery','Compile','Completed',
        +            'Compobj','Compute','Concat','ConnectBusy','ConnectHandle','ConnectName',
        +            'ConnectString','ConnectTimeOut','ContainerReleaseType','Continue','Copy','Cos',
        +            'Cot','Count','Coverage','Cpconvert','Cpcurrent','Cpdbf',
        +            'Cpnotrans','Create','CreateBinary','Createobject','Createobjectex','Createoffline',
        +            'CrsBuffering','CrsFetchMemo','CrsFetchSize','CrsMaxRows','CrsMethodUsed','CrsNumBatch',
        +            'CrsShareConnection','CrsUseMemoSize','CrsWhereClause','Ctod','Ctot',
        +            'Curdate','Curdir','CurrLeft','CurrSymbol','CursorGetProp','CursorSetProp',
        +            'Curtime','Curval','DBGetProp','DBSetProp','DB_BufLockRow','DB_BufLockTable',
        +            'DB_BufOff','DB_BufOptRow','DB_BufOptTable','DB_Complette','DB_DeleteInsert','DB_KeyAndModified',
        +            'DB_KeyAndTimestamp','DB_KeyAndUpdatable','DB_LocalSQL','DB_NoPrompt','DB_Prompt','DB_RemoteSQL',
        +            'DB_TransAuto','DB_TransManual','DB_TransNone','DB_Update','Datetime','Day',
        +            'Dayname','Dayofmonth','Dayofweek','Dayofyear','Dbalias','Dbused',
        +            'Ddeaborttrans','Ddeadvise','Ddeenabled','Ddeexecute','Ddeinitiate','Ddelasterror',
        +            'Ddepoke','Dderequest','Ddesetoption','Ddesetservice','Ddesettopic','Ddeterminate',
        +            'Debugout','Declare','DefOLELCid','DefaultValue','Defaultext','Degrees',
        +            'DeleteTrigger','Desc','Description','Difference','Dimension','Dir',
        +            'Directory','Diskspace','DispLogin','DispWarnings','Display','Dll',
        +            'Dmy','DoDefault','DoEvents','Doc','Dow',
        +            'Drivetype','Drop','Dropoffline','Dtoc','Dtor','Dtos',
        +            'Dtot','DynamicInputMask','Each','Edit','Eject','Elif',
        +            'End','Eof','Erase','Evaluate','Event','Eventtracking',
        +            'Exclude','Exclusive','Exit','Exp','Export','External',
        +            'FDate','FTime','Fchsize','Fclose','Fcount','Fcreate',
        +            'Feof','Ferror','FetchMemo','FetchSize','Fflush','Fgets',
        +            'Filer','Filetostr','Find','Fklabel','Fkmax','Fldlist',
        +            'Flock','Floor','Flush','Fontmetric','Fopen','Forceext',
        +            'Forcepath','FormSetClass','FormSetLib','FormsClass','FormsLib','Found',
        +            'FoxPro','Foxcode','Foxdoc','Foxgen','Foxgraph','Foxview',
        +            'Fputs','Fread','French','Fseek','Fsize','Fv',
        +            'Fwrite','Gather','German','GetPem','Getbar','Getcolor',
        +            'Getcp','Getdir','Getenv','Getexpr','Getfile','Getfldstate',
        +            'Getfont','Gethost','Getnextmodified','Getobject','Getpad','Getpict',
        +            'Getprinter','Go','Gomonth','Goto','Graph','GridHorz',
        +            'GridShow','GridShowPos','GridSnap','GridVert','Help','HelpOn',
        +            'HelpTo','HighLightRow','Home','Hour','IMEStatus','IdleTimeOut',
        +            'Idxcollate','Ifdef','Ifndef','Iif','Import','Include',
        +            'Indbc','Index','Indexseek','Inkey','Inlist','Input',
        +            'Insert','InsertTrigger','Insmode','IsBlank','IsFLocked','IsLeadByte',
        +            'IsMouse','IsNull','IsRLocked','Isalpha','Iscolor','Isdigit',
        +            'IsExclusive','Ishosted','IsLower','IsReadOnly',
        +            'IsUpper','Italian','Japan','Join','Justdrive','Justext',
        +            'Justfname','Justpath','Juststem','KeyField','KeyFieldList','Keyboard'
        +            ),
        +        2 => array('Keymatch','LastProject','Lastkey','Lcase','Leftc','Len',
        +            'Lenc','Length','Likec','Lineno','LoadPicture',
        +            'Locate','Locfile','Log','Log10','Logout','Lookup',
        +            'Loop','Lower','Ltrim','Lupdate','Mail','MaxRecords',
        +            'Mcol','Md','Mdown','Mdx','Mdy','Memlines',
        +            'Menu','Messagebox','Minute','Mkdir','Mline','Modify',
        +            'Month','Monthname','Mouse','Mrkbar','Mrkpad','Mrow',
        +            'Mtdll','Mton','Mwindow','Native','Ndx','Network',
        +            'NoFilter','Nodefault','Normalize','Note','Now','Ntom',
        +            'NullString','Numlock','Nvl','ODBChdbc','ODBChstmt','OLEDropTextInsertion',
        +            'OLELCid','Objnum','Objref','Objtoclient','Objvar','Occurs',
        +            'Oemtoansi','Oldval','OlePublic','Olereturnerror','On','Open',
        +            'Oracle','Order','Os','Outer','PCount','Pack',
        +            'PacketSize','Padc','Padl','Padr','Payment','Pcol',
        +            'PemStatus','Pi','Pivot','Play','Pop','Popup',
        +            'Power','PrimaryKey','Printstatus','Private','Prmbar','Prmpad',
        +            'ProjectClick','Proper','Prow','Prtinfo','Push','Putfile',
        +            'Pv','Qpr','Quater','QueryTimeOut','Quit','Radians',
        +            'Rand','Rat','Ratc','Ratline','Rd','Rdlevel',
        +            'Read','Readkey','Recall','Reccount','RecentlyUsedFiles','Recno',
        +            'Recsize','Regional','Reindex','RelatedChild','RelatedTable','RelatedTag',
        +            'Remove','Rename','Repeat','Replace','Replicate','Report',
        +            'ResHeight','ResWidth','ResourceOn','ResourceTo','Resources','Restore',
        +            'Resume','Retry','Return','Revertoffline','Rgbscheme','Rightc',
        +            'Rlock','Rmdir','Rollback','Round','Rtod','Rtrim',
        +            'RuleExpression','RuleText','Run','Runscript','Rview','SQLAsynchronous',
        +            'SQLBatchMode','SQLCancel','SQLColumns','SQLConnect','SQLConnectTimeOut','SQLDisconnect',
        +            'SQLDispLogin','SQLDispWarnings','SQLExec','SQLGetProp','SQLIdleTimeOut','SQLMoreResults',
        +            'SQLPrepare','SQLQueryTimeOut','SQLSetProp','SQLTables','SQLTransactions','SQLWaitTime',
        +            'Save','SavePicture','ScaleUnits','Scatter','Scols',
        +            'Scroll','Sec','Second','Seek','Select','SendUpdates',
        +            'Set','SetDefault','Setfldstate','Setup','ShareConnection','ShowOLEControls',
        +            'ShowOLEInsertable','ShowVCXs','Sign','Sin','Size','SizeBox',
        +            'Skpbar','Skppad','Sort','Soundex','SourceName','Sqlcommit',
        +            'Sqll','Sqlrollback','Sqlstringconnect','Sqrt','Srows','StatusBar',
        +            'Store','Str','Strconv','Strtofile','Strtran','Stuff',
        +            'Stuffc','Substr','Substrc','Substring','Sum','Suspend',
        +            'Sys','Sysmetric','TabOrdering','Table','TableRefresh','Tablerevert',
        +            'Tableupdate','TagCount','TagNo','Tan','Target','This',
        +            'Thisform','Thisformset','Timestamp','Timestampdiff','Total','Transactions',
        +            'Transform','Trim','Truncate','Ttoc','Ttod','Txnlevel',
        +            'Txtwidth','Type','Ucase','Undefine','Unlock','Unpack',
        +            'Updatable','UpdatableFieldList','Update','UpdateName','UpdateNameList','UpdateTrigger',
        +            'UpdateType','Updated','Upper','Upsizing','Usa','Use',
        +            'UseMemoSize','Used','Val','Validate','Varread','Vartype',
        +            'Version','VersionLanguage','Wait','WaitTime','Wborder','Wchild',
        +            'Wcols','Week','Wexist','Wfont','WhereType','Windcmd',
        +            'Windhelp','Windmemo','Windmenu','Windmodify','Windquery','Windscreen',
        +            'Windsnip','Windstproc','WizardPrompt','Wlast','Wlcol','Wlrow',
        +            'Wmaximum','Wminimum','Wontop','Woutput','Wparent','Wread',
        +            'Wrows','Wtitle','Wvisible','Year','Zap','_Alignment',
        +            '_Asciicols','_Asciirows','_Assist','_Beautify','_Box','_Browser',
        +            '_Builder','_Calcmem','_Calcvalue','_Cliptext','_Converter','_Coverage',
        +            '_Curobj','_Dblclick','_Diarydate','_Dos','_Foxdoc','_Foxgraph',
        +            '_Gallery','_Gengraph','_Genhtml','_Genmenu','_Genpd','_Genscrn',
        +            '_Genxtab','_Getexpr','_Include','_Indent','_Lmargin','_Mac',
        +            '_Mbr_appnd','_Mbr_cpart','_Mbr_delet','_Mbr_font','_Mbr_goto','_Mbr_grid',
        +            '_Mbr_link','_Mbr_mode','_Mbr_mvfld','_Mbr_mvprt','_Mbr_seek','_Mbr_sp100',
        +            '_Mbr_sp200','_Mbr_szfld','_Mbrowse','_Mda_appnd','_Mda_avg','_Mda_brow',
        +            '_Mda_calc','_Mda_copy','_Mda_count','_Mda_label','_Mda_pack','_Mda_reprt',
        +            '_Mda_rindx','_Mda_setup','_Mda_sort','_Mda_sp100','_Mda_sp200','_Mda_sp300',
        +            '_Mda_sum','_Mda_total','_Mdata','_Mdiary','_Med_clear','_Med_copy',
        +            '_Med_cut','_Med_cvtst','_Med_find','_Med_finda','_Med_goto','_Med_insob',
        +            '_Med_link','_Med_obj','_Med_paste','_Med_pref','_Med_pstlk','_Med_redo',
        +            '_Med_repl','_Med_repla','_Med_slcta','_Med_sp100','_Med_sp200','_Med_sp300',
        +            '_Med_sp400','_Med_sp500','_Med_undo','_Medit','_Mfi_clall','_Mfi_close',
        +            '_Mfi_export','_Mfi_import','_Mfi_new','_Mfi_open','_Mfi_pgset','_Mfi_prevu',
        +            '_Mfi_print','_Mfi_quit','_Mfi_revrt','_Mfi_savas','_Mfi_save','_Mfi_send',
        +            '_Mfi_setup','_Mfi_sp100','_Mfi_sp200','_Mfi_sp300','_Mfi_sp400','_Mfile',
        +            '_Mfiler','_Mfirst','_Mlabel','_Mlast','_Mline','_Mmacro',
        +            '_Mmbldr','_Mpr_beaut','_Mpr_cancl','_Mpr_compl','_Mpr_do','_Mpr_docum',
        +            '_Mpr_formwz','_Mpr_gener','_Mpr_graph','_Mpr_resum','_Mpr_sp100','_Mpr_sp200',
        +            '_Mpr_sp300','_Mpr_suspend','_Mprog','_Mproj','_Mrc_appnd','_Mrc_chnge',
        +            '_Mrc_cont','_Mrc_delet','_Mrc_goto','_Mrc_locat','_Mrc_recal','_Mrc_repl',
        +            '_Mrc_seek','_Mrc_sp100','_Mrc_sp200','_Mrecord','_Mreport','_Mrqbe',
        +            '_Mscreen','_Msm_data','_Msm_edit','_Msm_file','_Msm_format','_Msm_prog',
        +            '_Msm_recrd','_Msm_systm','_Msm_text','_Msm_tools','_Msm_view','_Msm_windo',
        +            '_Mst_about','_Mst_ascii','_Mst_calcu','_Mst_captr','_Mst_dbase','_Mst_diary',
        +            '_Mst_filer','_Mst_help','_Mst_hphow','_Mst_hpsch','_Mst_macro','_Mst_office',
        +            '_Mst_puzzl','_Mst_sp100','_Mst_sp200','_Mst_sp300','_Mst_specl','_Msysmenu',
        +            '_Msystem','_Mtable','_Mtb_appnd','_Mtb_cpart','_Mtb_delet','_Mtb_delrc',
        +            '_Mtb_goto','_Mtb_link','_Mtb_mvfld','_Mtb_mvprt','_Mtb_props','_Mtb_recal',
        +            '_Mtb_sp100','_Mtb_sp200','_Mtb_sp300','_Mtb_sp400','_Mtb_szfld','_Mwi_arran',
        +            '_Mwi_clear','_Mwi_cmd','_Mwi_color','_Mwi_debug','_Mwi_hide','_Mwi_hidea',
        +            '_Mwi_min','_Mwi_move','_Mwi_rotat','_Mwi_showa','_Mwi_size','_Mwi_sp100',
        +            '_Mwi_sp200','_Mwi_toolb','_Mwi_trace','_Mwi_view','_Mwi_zoom','_Mwindow',
        +            '_Mwizards','_Mwz_all','_Mwz_form','_Mwz_foxdoc','_Mwz_import','_Mwz_label',
        +            '_Mwz_mail','_Mwz_pivot','_Mwz_query','_Mwz_reprt','_Mwz_setup','_Mwz_table',
        +            '_Mwz_upsizing','_Netware','_Oracle','_Padvance','_Pageno','_Pbpage',
        +            '_Pcolno','_Pcopies','_Pdparms','_Pdriver','_Pdsetup','_Pecode',
        +            '_Peject','_Pepage','_Pform','_Plength','_Plineno','_Ploffset',
        +            '_Ppitch','_Pquality','_Pretext','_Pscode','_Pspacing','_Pwait',
        +            '_Rmargin','_Runactivedoc','_Samples','_Screen','_Shell','_Spellchk',
        +            '_Sqlserver','_Startup','_Tabs','_Tally','_Text','_Throttle',
        +            '_Transport','_Triggerlevel','_Unix','_WebDevOnly','_WebMenu','_WebMsftHomePage',
        +            '_WebVFPHomePage','_WebVfpOnlineSupport','_Windows','_Wizard','_Wrap','_scctext',
        +            '_vfp','Additive','After','Again','Aindent','Alignright',
        +            'All','Alt','Alternate','And','Ansi','Any',
        +            'Aplabout','App','Array','As','Asc','Ascending',
        +            'Ascii','At','Attributes','Automatic','Autosave','Avg',
        +            'Bar','Before','Bell','Between','Bitmap','Blank',
        +            'Blink','Blocksize','Border','Bottom','Brstatus','Bucket',
        +            'Buffers','By','Candidate','Carry','Cascade','Catalog',
        +            'Cdx','Center','Century','Cga','Character','Check',
        +            'Classlib','Clock','Cnt','Codepage','Collate','Color',
        +            'Com1','Com2','Command','Compact','Compatible','Compress',
        +            'Confirm','Connection','Connections','Connstring','Console','Copies',
        +            'Cpcompile','Cpdialog','Csv','Currency','Cycle','Databases',
        +            'Datasource','Date','Db4','Dbc','Dbf','Dbmemo3',
        +            'Debug','Decimals','Defaultsource','Deletetables','Delimited','Delimiters',
        +            'Descending','Design','Development','Device','Dif','Disabled',
        +            'Distinct','Dlls','Dohistory','Dos','Dosmem','Double',
        +            'Driver','Duplex','Echo','Editwork','Ega25','Ega43',
        +            'Ems','Ems64','Encrypt','Encryption','Environment','Escape',
        +            'Events','Exact','Except','Exe','Exists','Expression',
        +            'Extended','F','Fdow','Fetch','Field','Fields',
        +            'File','Files','Fill','Fixed','Float','Foldconst',
        +            'Font','Footer','Force','Foreign','Fox2x','Foxplus',
        +            'Free','Freeze','From','Fullpath','Fw2','Fweek',
        +            'Get','Gets','Global','Group','Grow','Halfheight',
        +            'Having','Heading','Headings','Helpfilter','History','Hmemory',
        +            'Hours','Id','In','Indexes','Information','Instruct',
        +            'Int','Integer','Intensity','Intersect','Into','Is',
        +            'Isometric','Key','Keycolumns','Keycomp','Keyset','Last',
        +            'Ledit','Level','Library','Like','Linked','Lock',
        +            'Logerrors','Long','Lpartition','Mac','Macdesktop','Machelp',
        +            'Mackey','Macros','Mark','Master','Max','Maxmem',
        +            'Mdi','Memlimit','Memory','Memos','Memowidth','Memvar',
        +            'Menus','Messages','Middle','Min','Minimize','Minus',
        +            'Mod','Modal','Module','Mono43','Movers','Multilocks',
        +            'Mvarsiz','Mvcount','N','Near','Negotiate','Noalias',
        +            'Noappend','Noclear','Noclose','Noconsole','Nocptrans','Nodata',
        +            'Nodebug','Nodelete','Nodup','Noedit','Noeject','Noenvironment',
        +            'Nofloat','Nofollow','Nogrow','Noinit','Nolgrid','Nolink',
        +            'Nolock','Nomargin','Nomdi','Nomenu','Nominimize','Nomodify'
        +            ),
        +        3 => array('Nomouse','None','Nooptimize','Nooverwrite','Noprojecthook','Noprompt',
        +            'Noread','Norefresh','Norequery','Norgrid','Norm','Normal',
        +            'Nosave','Noshadow','Noshow','Nospace','Not','Notab',
        +            'Notify','Noupdate','Novalidate','Noverify','Nowait','Nowindow',
        +            'Nowrap','Nozoom','Npv','Null','Number','Objects',
        +            'Odometer','Of','Off','Oleobjects','Only','Optimize',
        +            'Or','Orientation','Output','Outshow','Overlay','Overwrite',
        +            'Pad','Palette','Paperlength','Papersize','Paperwidth','Password',
        +            'Path','Pattern','Pause','Pdox','Pdsetup','Pen',
        +            'Pfs','Pixels','Plain','Popups','Precision','Preference',
        +            'Preview','Primary','Printer','Printquality','Procedures','Production',
        +            'Program','Progwork','Project','Prompt','Query','Random',
        +            'Range','Readborder','Readerror','Record','Recover','Redit',
        +            'Reference','References','Relative','Remote','Reprocess','Resource',
        +            'Rest','Restrict','Rgb','Right','Row','Rowset',
        +            'Rpd','Runtime','Safety','Same','Sample','Say',
        +            'Scale','Scheme','Scoreboard','Screen','Sdf','Seconds',
        +            'Selection','Shadows','Shared','Sheet','Shell','Shift',
        +            'Shutdown','Single','Some','Sortwork','Space','Sql',
        +            'Standalone','Status','Std','Step','Sticky','String',
        +            'Structure','Subclass','Summary','Sylk','Sysformats','Sysmenus',
        +            'System','T','Tab','Tables','Talk','Tedit',
        +            'Textmerge','Time','Timeout','Titles','Tmpfiles','To',
        +            'Topic','Transaction','Trap','Trbetween','Trigger','Ttoption',
        +            'Typeahead','Udfparms','Union','Unique','Userid','Users',
        +            'Values','Var','Verb','Vga25','Vga50','Views',
        +            'Volume','Where','Windows','Wk1','Wk3','Wks',
        +            'Workarea','Wp','Wr1','Wrap','Wrk','Xcmdfile',
        +            'Xl5','Xl8','Xls','Y','Yresolution','Zoom',
        +            'Activate','ActivateCell','Add','AddColumn','AddItem','AddListItem',
        +            'AddObject','AddProperty','AddToSCC','AfterBuild','AfterCloseTables','AfterDock',
        +            'AfterRowColChange','BeforeBuild','BeforeDock','BeforeOpenTables','BeforeRowColChange','Box',
        +            'Build','CheckIn','CheckOut','Circle','Clear','ClearData',
        +            'Cleanup','Click','CloneObject','CloseEditor','CloseTables','Cls',
        +            'CommandTargetExec','CommandTargetQueryStas','ContainerRelease','DataToClip','DblClick','Deactivate',
        +            'Delete','DeleteColumn','Deleted','Destroy','DoCmd','Dock',
        +            'DoScroll','DoVerb','DownClick','Drag','DragDrop','DragOver',
        +            'DropDown','Draw','EnterFocus','Error','ErrorMessage','Eval',
        +            'ExitFocus','FormatChange','GetData','GetFormat','GetLatestVersion','GoBack',
        +            'GotFocus','GoForward','GridHitTest','Hide','HideDoc','IndexToItemId',
        +            'Init','InteractiveChange','Item','ItemIdToIndex','KeyPress','Line',
        +            'Load','LostFocus','Message','MiddleClick','MouseDown','MouseMove',
        +            'MouseUp','MouseWheel','Move','Moved','NavigateTo','Newobject',
        +            'OLECompleteDrag','OLEDrag','OLEDragDrop','OLEDragOver','OLEGiveFeedback','OLESetData',
        +            'OLEStartDrag','OpenEditor','OpenTables','Paint','Point','Print',
        +            'ProgrammaticChange','PSet','QueryAddFile','QueryModifyFile','QueryRemoveFile','QueryRunFile',
        +            'QueryUnload','RangeHigh','RangeLow','ReadActivate','ReadExpression','ReadDeactivate',
        +            'ReadMethod','ReadShow','ReadValid','ReadWhen','Refresh','Release',
        +            'RemoveFromSCC','RemoveItem','RemoveListItem','RemoveObject','Requery','RequestData',
        +            'Reset','ResetToDefault','Resize','RightClick','SaveAs','SaveAsClass',
        +            'Scrolled','SetAll','SetData','SetFocus','SetFormat','SetMain',
        +            'SetVar','SetViewPort','ShowDoc','ShowWhatsThis','TextHeight','TextWidth',
        +            'Timer','UIEnable','UnDock','UndoCheckOut','Unload','UpClick',
        +            'Valid','WhatsThisMode','When','WriteExpression','WriteMethod','ZOrder',
        +            'ATGetColors','ATListColors','Accelerate','ActiveColumn','ActiveControl','ActiveForm',
        +            'ActiveObjectId','ActivePage','ActiveProject','ActiveRow','AddLineFeeds','Alias',
        +            'Alignment','AllowAddNew','AllowHeaderSizing','AllowResize','AllowRowSizing','AllowTabs',
        +            'AlwaysOnTop','Application','AutoActivate','AutoCenter','AutoCloseTables','AutoIncrement',
        +            'AutoOpenTables','AutoRelease','AutoSize','AutoVerbMenu','AutoYield','AvailNum',
        +            'BackColor','BackStyle','BaseClass','BorderColor','BorderStyle','BorderWidth',
        +            'Bound','BoundColumn','BoundTo','BrowseAlignment','BrowseCellMarg','BrowseDestWidth',
        +            'BufferMode','BufferModeOverride','BuildDateTime','ButtonCount','ButtonIndex','Buttons',
        +            'CLSID','CanAccelerate','CanGetFocus','CanLoseFocus','Cancel','Caption',
        +            'ChildAlias','ChildOrder','Class','ClassLibrary','ClipControls','ClipRect',
        +            'Closable','ColorScheme','ColorSource','ColumnCount','ColumnHeaders','ColumnLines',
        +            'ColumnOrder','ColumnWidths','Columns','Comment','ContinuousScroll','ControlBox',
        +            'ControlCount','ControlIndex','ControlSource','Controls','CurrentControl','CurrentX',
        +            'CurrentY','CursorSource','Curvature','DataSession','DataSessionId','DataSourceObj',
        +            'DataType','Database','DateFormat','DateMark','DefButton','DefButtonOrig',
        +            'DefHeight','DefLeft','DefTop','DefWidth','Default','DefaultFilePath',
        +            'DefineWindows','DeleteMark','Desktop','Dirty','DisabledBackColor','DisabledByEOF',
        +            'DisabledForeColor','DisabledItemBackColor','DisabledItemForeColor','DisabledPicture','DispPageHeight','DispPageWidth',
        +            'DisplayCount','DisplayValue','DoCreate','DockPosition','Docked','DocumentFile',
        +            'DownPicture','DragIcon','DragMode','DragState','DrawMode','DrawStyle',
        +            'DrawWidth','DynamicAlignment','DynamicBackColor','DynamicCurrentControl','DynamicFontBold','DynamicFontItalic',
        +            'DynamicFontName','DynamicFontOutline','DynamicFontShadow','DynamicFontSize','DynamicFontStrikethru','DynamicFontUnderline',
        +            'DynamicForeColor','EditFlags','Enabled','EnabledByReadLock','Encrypted','EnvLevel',
        +            'ErasePage','FileClass','FileClassLibrary','FillColor','FillStyle','Filter',
        +            'FirstElement','FontBold','FontItalic','FontName','FontOutline','FontShadow',
        +            'FontSize','FontStrikethru','FontUnderline','ForceFocus','ForeColor','FormCount',
        +            'FormIndex','FormPageCount','FormPageIndex','Format','Forms','FoxFont',
        +            'FullName','GoFirst','GoLast','GridLineColor','GridLineWidth','GridLines'
        +            ),
        +        4 => array('HPROJ','HWnd','HalfHeightCaption','HasClip','HeaderGap','HeaderHeight',
        +            'Height','HelpContextID','HideSelection','Highlight','HomeDir','HostName',
        +            'HotKey','HscrollSmallChange','IMEMode','Icon','IgnoreInsert','InResize',
        +            'Increment','IncrementalSearch','InitialSelectedAlias','InputMask','Instancing','IntegralHeight',
        +            'Interval','ItemBackColor','ItemData','ItemForeColor','ItemIDData','ItemTips',
        +            'JustReadLocked','KeyPreview','KeyboardHighValue','KeyboardLowValue','LastModified','Left',
        +            'LeftColumn','LineSlant','LinkMaster','List','ListCount','ListIndex',
        +            'ListItem','ListItemId','LockDataSource','LockScreen','MDIForm','MainClass',
        +            'MainFile','Margin','MaxButton','MaxHeight','MaxLeft','MaxLength',
        +            'MaxTop','MaxWidth','MemoWindow','MinButton','MinHeight','MinWidth',
        +            'MouseIcon','MousePointer','Movable','MoverBars','MultiSelect','Name',
        +            'NapTime','NewIndex','NewItemId','NoDataOnLoad','NoDefine','NotifyContainer',
        +            'NullDisplay','NumberOfElements','OLEDragMode','OLEDragPicture','OLEDropEffects','OLEDropHasData',
        +            'OLEDropMode','OLERequestPendingTimeOut','OLEServerBusyRaiseError','OLEServerBusyTimeOut','OLETypeAllowed','OleClass',
        +            'OleClassId','OleControlContainer','OleIDispInValue','OleIDispOutValue','OleIDispatchIncoming','OleIDispatchOutgoing',
        +            'OnResize','OneToMany','OpenViews','OpenWindow','PageCount','PageHeight',
        +            'PageOrder','PageWidth','Pages','Panel','PanelLink','Parent',
        +            'ParentAlias','ParentClass','Partition','PasswordChar','Picture','ProcessID',
        +            'ProgID','ProjectHookClass','ProjectHookLibrary','Projects','ReadColors','ReadCycle',
        +            'ReadFiller','ReadLock','ReadMouse','ReadOnly','ReadSave','ReadSize',
        +            'ReadTimeout','RecordMark','RecordSource','RecordSourceType','Rect','RelationalExpr',
        +            'RelativeColumn','RelativeRow','ReleaseErase','ReleaseType','ReleaseWindows','Resizable',
        +            'RightToLeft','RowHeight','RowSource','RowSourceType','SCCProvider','SCCStatus',
        +            'SDIForm','ScaleMode','ScrollBars','SelLength','SelStart','SelText',
        +            'SelectOnEntry','Selected','SelectedBackColor','SelectedForeColor','SelectedID','SelectedItemBackColor',
        +            'SelectedItemForeColor','SelfEdit','ServerClass','ServerClassLibrary','ServerHelpFile','ServerName',
        +            'ServerProject','ShowTips','ShowWindow','Sizable','Size','Size',
        +            'Size','Skip','SkipForm','Sorted','SourceType','Sparse',
        +            'SpecialEffect','SpinnerHighValue','SpinnerLowValue','SplitBar','StartMode','StatusBarText',
        +            'Stretch','StrictDateEntry','Style','SystemRefCount','TabIndex','TabStop',
        +            'TabStretch','TabStyle','Tabhit','Tabs','Tag','TerminateRead',
        +            'ThreadID','TitleBar','ToolTipText','Top','TopIndex','TopItemId',
        +            'TypeLibCLSID','TypeLibDesc','TypeLibName','UnlockDataSource','Value','ValueDirty',
        +            'VersionComments','VersionCompany','VersionCopyright','VersionDescription','VersionNumber','VersionProduct',
        +            'VersionTrademarks','View','ViewPortHeight','ViewPortLeft','ViewPortTop','ViewPortWidth',
        +            'Visible','VscrollSmallChange','WasActive','WasOpen','WhatsThisButton','WhatsThisHelp',
        +            'WhatsThisHelpID','Width','WindowList','WindowNTIList','WindowState','WindowType',
        +            'WordWrap','ZOrderSet','ActiveDoc','Checkbox','Column','ComboBox',
        +            'CommandButton','CommandGroup','Container','Control','Cursor','Custom',
        +            'DataEnvironment','EditBox','Empty','FontClass','Form','Formset',
        +            'General','Grid','Header','HyperLink','Image','Label',
        +            'ListBox','Memo','OleBaseControl','OleBoundControl','OleClassIDispOut','OleControl',
        +            'OptionButton','OptionGroup','Page','PageFrame','ProjectHook','RectClass',
        +            'Relation','Session','Shape','Spinner','TextBox' ,'Toolbar'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        "!", "@", "$", "%",
        +        "(", ")", "{", "}", "[", "]",
        +        "-", "+", "*", "/",
        +        "=", "<", ">",
        +        ":", ";", ",", ".", "&",
        +        "?", "??", "???"
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: blue;',
        +            2 => 'color: blue;',
        +            3 => 'color: blue;',
        +            4 => 'color: blue;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: green; font-style: italic;',
        +            2 => 'color: green; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: blue;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: blue;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/visualprolog.php b/Sources/geshi/visualprolog.php
        new file mode 100644
        index 0000000..d36f1c6
        --- /dev/null
        +++ b/Sources/geshi/visualprolog.php
        @@ -0,0 +1,129 @@
        + 'Visual Prolog',
        +    'COMMENT_SINGLE' => array(1 => '%'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'HARDQUOTE' => array('@"', '"'),
        +    'HARDESCAPE' => array('""'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'clauses','constants','constructors','delegate','domains','facts',
        +            'goal','guards','inherits','monitor','namespace','open',
        +            'predicates','properties','resolve','supports'
        +            ),
        +        2 => array(
        +            'align','and','anyflow','as','bitsize','catch','determ','digits',
        +            'div','do','else','elseif','erroneous','externally','failure',
        +            'finally','from','language','mod','multi','nondeterm','or',
        +            'procedure','quot','rem','single','then','to'
        +            ),
        +        3 => array(
        +            '#bininclude','#else','#elseif','#endif','#error','#export',
        +            '#externally','#if','#import','#include','#message','#options',
        +            '#orrequires','#requires','#then','#warning'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '+', '-', '*', '?', '=', '/', '>', '<', '^', '!', ':', '(', ')', '{', '}', '[', ']'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => true,
        +        1 => true,
        +        2 => true,
        +        3 => true
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #808000;',
        +            2 => 'color: #333399;',
        +            3 => 'color: #800080;',
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #AA77BD',
        +            'MULTI' => 'color: #AA77BD'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #008080;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #00B7B7;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #0000FF;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #008000;',
        +            1 => 'color: #808000;',
        +            2 => 'color: #333399;',
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => ':',
        +        2 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        0 => "(?)[A-Z_]\w*(?!\w)",
        +        1 => "\\b(end\\s+)?(implement|class|interface)\\b",
        +        2 => "\\b(end\\s+)?(foreach|if|try)\\b",
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        diff --git a/Sources/geshi/whitespace.php b/Sources/geshi/whitespace.php
        new file mode 100644
        index 0000000..58f3963
        --- /dev/null
        +++ b/Sources/geshi/whitespace.php
        @@ -0,0 +1,121 @@
        + 'Whitespace',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(
        +        3 => "/[^\n\x20\x09]+/s"
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        ),
        +    'SYMBOLS' => array(
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            ),
        +        'COMMENTS' => array(
        +            3 => 'color: #666666; font-style: italic;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            2 => 'background-color: #FF9999;',
        +            3 => 'background-color: #9999FF;'
        +            )
        +        ),
        +    'URLS' => array(
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        2 => array(
        +            GESHI_SEARCH => "(? " ",
        +            GESHI_MODIFIERS => 's',
        +            GESHI_BEFORE => "",
        +            GESHI_AFTER => ""
        +            ),
        +        3 => array(
        +            GESHI_SEARCH => "\x09",
        +            GESHI_REPLACE => "	",
        +            GESHI_MODIFIERS => 's',
        +            GESHI_BEFORE => "",
        +            GESHI_AFTER => ""
        +            ),
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'KEYWORDS' => GESHI_NEVER,
        +            'SYMBOLS' => GESHI_NEVER,
        +            'STRINGS' => GESHI_NEVER,
        +//            'REGEXPS' => GESHI_NEVER,
        +            'NUMBERS' => GESHI_NEVER
        +            )
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/whois.php b/Sources/geshi/whois.php
        new file mode 100644
        index 0000000..a89e473
        --- /dev/null
        +++ b/Sources/geshi/whois.php
        @@ -0,0 +1,181 @@
        + 'Whois (RPSL format)',
        +    'COMMENT_SINGLE' => array(1 => '% ', 2 => '%ERROR:'),
        +    'COMMENT_MULTI' => array(),
        +    'COMMENT_REGEXP' => array(
        +        //Description
        +        3 => '/(?:(?<=^remarks:)|(?<=^descr:))(.|\n\s)*$/mi',
        +
        +        //Contact Details
        +        4 => '/(?<=^address:)(.|\n\s)*$/mi',
        +        5 => '/\+\d+(?:(?:\s\(\d+(\s\d+)*\))?(?:\s\d+)+|-\d+-\d+)/',
        +        6 => '/\b(?!-|\.)[\w\-\.]+(?!-|\.)@((?!-)[\w\-]+\.)+\w+\b/',
        +
        +        //IP, Networks and AS information\links
        +        7 => '/\b(? '/\bAS\d+\b/'
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array(),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array( //Object Types
        +            'as-block','as-set','aut-num','domain','filter-set','inet-rtr',
        +            'inet6num','inetnum','irt','key-cert','limerick','mntner',
        +            'organisation','peering-set','person','poem','role','route-set',
        +            'route','route6','rtr-set'
        +            ),
        +        2 => array( //Field Types
        +            'abuse-mailbox','address','admin-c','aggr-bndry','aggr-mtd','alias',
        +            'as-block','as-name','as-set','aut-num','auth','author','certif',
        +            'changed','components','country','default','descr','dom-net',
        +            'domain','ds-rdata','e-mail','encryption','export','export-comps',
        +            'fax-no','filter','filter-set','fingerpr','form','holes','ifaddr',
        +            'import','inet-rtr','inet6num','inetnum','inject','interface','irt',
        +            'irt-nfy','key-cert','limerick','local-as','mbrs-by-ref',
        +            'member-of','members','method','mnt-by','mnt-domains','mnt-irt',
        +            'mnt-lower','mnt-nfy','mnt-ref','mnt-routes','mntner','mp-default',
        +            'mp-export','mp-filter','mp-import','mp-members','mp-peer',
        +            'mp-peering','netname','nic-hdl','notify','nserver','org',
        +            'org-name','org-type','organisation','origin','owner','peer',
        +            'peering','peering-set','person','phone','poem','ref-nfy','refer',
        +            'referral-by','remarks','rev-srv','role','route','route-set',
        +            'route6','rtr-set','signature','source','status','sub-dom','tech-c',
        +            'text','upd-to','zone-c'
        +            ),
        +        3 => array( //RPSL reserved
        +            'accept','action','and','announce','any','as-any','at','atomic',
        +            'except','from','inbound','into','networks','not','or','outbound',
        +            'peeras','refine','rs-any','to'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        ':'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000FF; font-weight: bold;',
        +            2 => 'color: #000080; font-weight: bold;',
        +            3 => 'color: #990000; font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #666666; font-style: italic;',
        +            2 => 'color: #666666; font-style: italic;',
        +            3 => 'color: #404080;',
        +            4 => 'color: #408040;',
        +            5 => 'color: #408040;',
        +            6 => 'color: #408040;',
        +            7 => 'color: #804040;',
        +            8 => 'color: #804040;',
        +            'MULTI' => 'color: #666666; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;',
        +            'HARD' => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #009900;'
        +            ),
        +        'STRINGS' => array(
        +            0 => '',
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #000080;',
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #0000FF;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #000088;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://www.irr.net/docs/rpsl.html'
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        //Variables
        +        0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*"
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4,
        +    'PARSER_CONTROL' => array(
        +        'KEYWORDS' => array(
        +            1 => array(
        +                'DISALLOWED_BEFORE' => '(?<=\A |\A \n(?m:^)|\n\n(?m:^))'
        +                ),
        +            2 => array(
        +                'DISALLOWED_BEFORE' => '(?m:^)'
        +                )
        +            ),
        +        'ENABLE_FLAGS' => array(
        +            'BRACKETS' => GESHI_NEVER,
        +            'SYMBOLS' => GESHI_NEVER,
        +            'BRACKETS' => GESHI_NEVER,
        +            'STRINGS' => GESHI_NEVER,
        +            'ESCAPE_CHAR' => GESHI_NEVER,
        +            'NUMBERS' => GESHI_NEVER,
        +            'METHODS' => GESHI_NEVER,
        +            'SCRIPT' => GESHI_NEVER
        +            )
        +        ),
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/winbatch.php b/Sources/geshi/winbatch.php
        new file mode 100644
        index 0000000..3599a02
        --- /dev/null
        +++ b/Sources/geshi/winbatch.php
        @@ -0,0 +1,369 @@
        + 'Winbatch',
        +    'COMMENT_SINGLE' => array(1 => ';', 2 => ':'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"', '`'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'While', 'To', 'Then', 'Switch', 'Select', 'Return', 'Next', 'IntControl', 'Include', 'In', 'If',
        +            'Goto', 'GoSub', 'ForEach', 'For', 'Exit', 'Execute', 'ErrorMode', 'EndWhile', 'EndSwitch', '#EndSubRoutine',
        +            'EndSelect', 'EndIf', '#EEndFunction', 'EndFor', 'End', 'Else', 'DropWild', 'Drop', '#DefineSubRoutine',
        +            '#DefineFunction', 'Debug', 'Continue', 'Case', 'CallExt', 'Call', 'By', 'BreakPoint', 'Break'
        +            ),
        +        2 => array(
        +            'ZOOMED', 'YES', 'WORD4', 'WORD2', 'WORD1', 'WHOLESECTION', 'WAIT', 'UNSORTED', 'UNCHECK', 'TRUE', 'TILE',
        +            'TAB', 'STRING', 'STACK', 'SPC2NET', 'SORTED', 'SOK', 'SNET2PC', 'SINGLE', 'SHIFT', 'SERVER', 'SERRWINSOCK',
        +            'SERRVOICE', 'SERRSOCKET', 'SERRSERVICE', 'SERRSELECT', 'SERRPARAM', 'SERROUTOFMEM', 'SERRNOTFOUND', 'SERRNOCONN',
        +            'SERRNOANSWER', 'SERRMUSTWAIT', 'SERRIPADDR', 'SERRHOSTNAME', 'SERRFAILURE', 'SERRBUSY', 'SCROLLLOCK', 'SCANCEL',
        +            'SAVE', 'SALREADY', 'ROWS', 'REGUSERS', 'REGROOT', 'REGMACHINE', 'REGCURRENT', 'REGCLASSES', 'RDBLCLICK', 'RCLICK',
        +            'RBUTTON', 'RAD2DEG', 'QSUCCESSINFO', 'QSUCCESS', 'QSTILLEX', 'QROLLBACK', 'QNULL', 'QNODATA', 'QNEXT', 'QNEEDDATA',
        +            'QFIRST', 'QCOMMIT', 'QBADHANDLE', 'PRINTER', 'PLANCKJOULES', 'PLANCKERGS', 'PI', 'PARSEONLY', 'PARSEC', 'P3ERRREPLY',
        +            'OPEN', 'ON', 'OFF', 'NUMLOCK', 'NOWAIT', 'NOTIFY', 'NORMAL', 'NORESIZE', 'NONE', 'NO', 'NCSAFORMAT', 'MULTIPLE',
        +            'MSFORMAT', 'MPLAYRDBLCK', 'MPLAYRCLK', 'MPLAYRBUTTON', 'MPLAYMDBLCK', 'MPLAYMCLK', 'MPLAYMBUTTON', 'MPLAYLDBLCK',
        +            'MPLAYLCLK', 'MPLAYLBUTTON', 'MINOR', 'MDBLCLICK', 'MCLICK', 'MBYESNO', 'MBUTTON', 'MBOKCANCEL', 'MAJOR', 'MAGFIELD',
        +            'LOCALGROUP', 'LIGHTMTPS', 'LIGHTMPS', 'LF', 'LDBLCLICK', 'LCLICK', 'LBUTTON', 'LAFFDBERROR', 'ICON', 'HTTPS', 'HTTP',
        +            'HNOHEADER', 'HMETHODPOST', 'HMETHODGET', 'HIDDEN', 'HHEADERONLY', 'HHEADER', 'GRAVITATION', 'GOPHER', 'GOLDENRATIO',
        +            'GMTSEC', 'GLOBALGROUP', 'GFTSEC', 'GETPROCID', 'GETEXITCODE', 'FWDSCAN', 'FTPPASSIVE', 'FTP', 'FLOAT8', 'FARADAY',
        +            'FALSE', 'EXTENDED', 'EULERS', 'ENABLE', 'ELECTRIC', 'DRIVE', 'DISABLE', 'DESCENDING', 'DEG2RAD', 'DEFAULT', 'CTRL',
        +            'CRLF', 'CR', 'COMMONFORMAT', 'COLUMNS', 'CHECK', 'CAPSLOCK', 'CANCEL', 'BOLTZMANN', 'BACKSCAN', 'AVOGADRO', 'ATTR_X',
        +            'ATTR_T', 'ATTR_SY', 'ATTR_SH', 'ATTR_RO', 'ATTR_RI', 'ATTR_P', 'ATTR_IC', 'ATTR_H', 'ATTR_DM', 'ATTR_DI', 'ATTR_DC',
        +            'ATTR_CI', 'ATTR_A', 'ASCENDING', 'ARRANGE', 'AMC', 'ACC_WRITE', 'ACC_READ_NT', 'ACC_READ_95', 'ACC_READ', 'ACC_PRINT_NT',
        +            'ACC_PMANG_NT', 'ACC_PFULL_NT', 'ACC_LIST', 'ACC_FULL_NT', 'ACC_FULL_95', 'ACC_DELETE', 'ACC_CREATE', 'ACC_CONTROL',
        +            'ACC_CHNG_NT', 'ACC_ATTRIB', 'ABOVEICONS'
        +            ),
        +        3 => array(
        +            'Yields', 'Yield', 'WinZoom', 'WinWaitExist', 'WinWaitClose', 'WinWaitChild', 'WinVersion', 'WinTitle', 'WinSysInfo',
        +            'WinState', 'WinShow', 'WinResources', 'WinPositionChild', 'WinPosition', 'WinPlaceSet', 'WinPlaceGet', 'WinPlaceChild',
        +            'WinPlace', 'WinParmSet', 'WinParmGet', 'WinName', 'WinMetrics', 'WinItemProcId', 'WinItemNameId', 'WinItemizeEx',
        +            'WinItemize', 'WinItemChild', 'WinIsDos', 'WinIdGet', 'WinIconize', 'WinHide', 'WinHelp', 'WinGetactive', 'WinExistchild',
        +            'WinExist', 'WinExename', 'WinConfig', 'WinClosenot', 'WinClose', 'WinArrange', 'WinActivechild', 'WinActivchild',
        +            'WinActivate', 'WebVerifyCard', 'WebSetTimeout', 'WebParamSize', 'WebParamNames', 'WebParamFile', 'WebParamData',
        +            'WebParamBuf', 'WebOutFile', 'WebOutBinary', 'WebOut', 'WebDumpError', 'WebDatData', 'WebCounter', 'WebConSize', 'WebConData',
        +            'WebConBuf', 'WebCmdData', 'WebBaseConv', 'Wallpaper', 'WaitForKeyEX', 'WaitForKey', 'VersionDLL', 'Version', 'VarType',
        +            'TimeYmdHms', 'TimeWait', 'TimeSubtract', 'TimeJulToYmd', 'TimeJulianDay', 'TimeDiffSecs', 'TimeDiffDays', 'TimeDiff', 'TimeDelay',
        +            'TimeDate', 'TimeAdd', 'TextSelect', 'TextBoxSort', 'TextBox', 'Terminate', 'Tanh', 'Tan', 'SysParamInfo', 'SvcWaitForCmd',
        +            'SvcSetState', 'SvcSetAccept', 'StrUpper', 'StrTrim', 'StrSubWild', 'StrSub', 'StrScan', 'StrReplace', 'StrLower', 'StrLenWild',
        +            'StrLen', 'StrIndexWild', 'StrIndexNC', 'StrIndex', 'StriCmp', 'StrFixLeft', 'StrFixCharsL', 'StrFixChars', 'StrFix', 'StrFill',
        +            'StrCnt', 'StrCmp', 'StrClean', 'StrCharCount', 'StrCat', 'StrByteCount', 'Sqrt', 'SoundVolume', 'Sounds', 'Snapshot', 'Sinh', 'Sin',
        +            'ShortCutMake', 'ShortCutInfo', 'ShortCutExtra', 'ShortCutEdit', 'ShortCutDir', 'ShellExecute', 'SendMenusToEx', 'SendMenusTo',
        +            'SendKeysTo', 'SendKeysChild', 'SendKey', 'RunZoomWait', 'RunZoom', 'RunWithLogon', 'RunWait', 'RunShell', 'RunIconWait',
        +            'RunIcon', 'RunHideWait', 'RunHide', 'RunExit', 'RunEnviron', 'Run', 'RtStatus', 'Reload', 'RegUnloadHive', 'RegSetValue',
        +            'RegSetQword', 'RegSetMulSz', 'RegSetExpSz', 'RegSetEx', 'RegSetDword', 'RegSetBin', 'RegQueryValue', 'RegQueryStr',
        +            'RegQueryQword', 'RegQueryMulSz', 'RegQueryKeys', 'RegQueryKeyLastWriteTime', 'RegQueryKey', 'RegQueryItem', 'RegQueryExpSz',
        +            'RegQueryEx', 'RegQueryDword', 'RegQueryBin', 'RegOpenKeyEx', 'RegOpenKey', 'RegOpenFlags', 'RegLoadHive', 'RegExistValue',
        +            'RegExistKey', 'RegEntryType', 'RegDelValue', 'RegDeleteKey', 'RegCreateKey', 'RegConnect', 'RegCloseKey', 'RegApp', 'Random',
        +            'PtrPersistent', 'PtrGlobalDefine', 'PtrGlobal', 'Print', 'PlayWaveform', 'PlayMidi', 'PlayMedia', 'PipeServerWrite', 'PipeServerRead',
        +            'PipeServerCreate', 'PipeServerClose', 'PipeInfo', 'PipeClientSendRecvData', 'PipeClientOpen', 'PipeClientClose', 'Pause',
        +            'ParseData', 'ObjectTypeGet', 'ObjectType', 'ObjectOpen', 'ObjectGet', 'ObjectEventRemove', 'ObjectEventAdd',
        +            'ObjectCreate', 'ObjectConstToArray', 'ObjectConstantsGet', 'ObjectCollectionOpen', 'ObjectCollectionNext',
        +            'ObjectCollectionClose', 'ObjectClose', 'ObjectAccess', 'Num2Char', 'NetInfo', 'MsgTextGet', 'MousePlay', 'MouseMove', 'MouseInfo',
        +            'MouseDrag', 'MouseCoords', 'MouseClickBtn', 'MouseClick', 'mod', 'Min', 'Message', 'Max', 'Loge', 'LogDisk', 'Log10', 'LastError',
        +            'KeyToggleSet', 'KeyToggleGet', 'ItemSortNc', 'ItemSort', 'ItemSelect', 'ItemReplace', 'ItemRemove', 'ItemLocate', 'ItemInsert',
        +            'ItemExtractCSV', 'ItemExtract', 'ItemCountCSV', 'ItemCount', 'IsNumber', 'IsLicensed', 'IsKeyDown', 'IsInt', 'IsFloat', 'IsDefined',
        +            'Int', 'InstallFile', 'IniWritePvt', 'IniWrite', 'IniReadPvt', 'IniRead', 'IniItemizePvt', 'IniItemize', 'IniDeletePvt', 'IniDelete',
        +            'IgnoreInput', 'IconReplace', 'IconInfo', 'IconExtract', 'IconArrange', 'GetTickCount', 'GetObject', 'GetExactTime', 'Floor',
        +            'FindWindow', 'FileYmdHms', 'FileWrite', 'FileVerInfo', 'FileTimeTouch', 'FileTimeSetEx', 'FileTimeSet', 'FileTimeGetEx',
        +            'FileTimeGet', 'FileTimeCode', 'FileSizeEx', 'FileSize', 'FileRoot', 'FileRename', 'FileRead', 'FilePutW', 'FilePut', 'FilePath',
        +            'FileOpen', 'FileNameShort', 'FileNameLong', 'FileNameEval2', 'FileNameEval1', 'FileMoveAttr', 'FileMove', 'FileMapName',
        +            'FileLocate', 'FileItemPath', 'FileItemize', 'FileInfoToArray', 'FileGetW', 'FileGet', 'FileFullname', 'FileExtension', 'FileExist',
        +            'FileDelete', 'FileCreateTemp', 'FileCopyAttr', 'FileCopy', 'FileCompare', 'FileClose', 'FileBaseName', 'FileAttrSetEx',
        +            'FileAttrSet', 'FileAttrGetEx', 'FileAttrGet', 'FileAppend', 'Fabs', 'ExtractAttachedFile', 'Exp', 'ExeTypeInfo', 'Exclusive',
        +            'EnvItemize', 'EnvironSet', 'Environment', 'EndSession', 'DosVersion', 'DllLoad', 'DllLastError', 'DllHwnd', 'DllHinst',
        +            'DllFree', 'DllCallCDecl', 'DllCall', 'Display', 'DiskVolinfo', 'DiskSize', 'DiskScan', 'DiskInfo', 'DiskFree', 'DiskExist',
        +            'DirWindows', 'DirSize', 'DirScript', 'DirRename', 'DirRemove', 'DirMake', 'DirItemize', 'DirInfoToArray', 'DirHome', 'DirGet',
        +            'DirExist', 'DirChange', 'DirAttrSetEx', 'DirAttrSet', 'DirAttrGetEx', 'DirAttrGet', 'DialogProcOptions', 'DialogObject',
        +            'DialogControlState', 'DialogControlSet', 'DialogControlGet', 'DialogBox', 'Dialog', 'Delay', 'Decimals', 'DebugTrace',
        +            'DebugData', 'DDETimeout', 'DDETerminate', 'DDERequest', 'DDEPoke', 'DDEInitiate', 'DDEExecute', 'DateTime', 'CurrFilepath',
        +            'CurrentPath', 'CurrentFile', 'CreateObject', 'Cosh', 'Cos', 'ClipPut', 'ClipHasFormat', 'ClipGetEx', 'ClipGet', 'ClipAppend',
        +            'ChrUnicodeToString', 'ChrUnicodeToHex', 'ChrStringToUnicode', 'ChrSetCodepage', 'ChrHexToUnicode', 'ChrGetCodepage',
        +            'Char2Num', 'Ceiling', 'ButtonNames', 'BoxUpdates', 'BoxTitle', 'BoxTextFont', 'BoxTextColor', 'BoxText', 'BoxShut', 'BoxPen',
        +            'BoxOpen', 'BoxNew', 'BoxMapmode', 'BoxesUp', 'BoxDrawText', 'BoxDrawRect', 'BoxDrawLine', 'BoxDrawCircle', 'BoxDestroy',
        +            'BoxDataTag', 'BoxDataClear', 'BoxColor', 'BoxCaption', 'BoxButtonWait', 'BoxButtonStat', 'BoxButtonKill', 'BoxButtonDraw',
        +            'BoxBitMap', 'BinaryXor', 'BinaryXlate', 'BinaryWriteEx', 'BinaryWrite', 'BinaryTagRepl', 'BinaryTagLen', 'BinaryTagInit',
        +            'BinaryTagIndex', 'BinaryTagFind', 'BinaryTagExtr', 'BinaryStrCnt', 'BinarySort', 'BinaryReplace', 'BinaryReadEx',
        +            'BinaryRead', 'BinaryPokeStrW', 'BinaryPokeStr', 'BinaryPokeHex', 'BinaryPokeFlt', 'BinaryPoke4', 'BinaryPoke2', 'BinaryPoke',
        +            'BinaryPeekStrW', 'BinaryPeekStr', 'BinaryPeekHex', 'BinaryPeekFlt', 'BinaryPeek4', 'BinaryPeek2', 'BinaryPeek', 'BinaryOr',
        +            'BinaryOleType', 'BinaryIndexNc', 'BinaryIndexEx', 'BinaryIndexBin', 'BinaryIndex', 'BinaryIncrFlt', 'BinaryIncr4',
        +            'BinaryIncr2', 'BinaryIncr', 'BinaryHashRec', 'BinaryFree', 'BinaryEodSet', 'BinaryEodGet', 'BinaryCopy', 'BinaryConvert',
        +            'BinaryCompare', 'BinaryClipPut', 'BinaryClipGet', 'BinaryChecksum', 'BinaryBufInfo', 'BinaryAnd', 'BinaryAllocArray',
        +            'BinaryAlloc', 'Beep', 'Average', 'Atan', 'AskYesNo', 'AskTextbox', 'AskPassword', 'AskLine', 'AskItemlist', 'AskFont',
        +            'AskFiletext', 'AskFilename', 'AskDirectory', 'AskColor', 'Asin', 'ArrInitialize', 'ArrInfo', 'ArrDimension',
        +            'Arrayize', 'ArrayFilePutCSV', 'ArrayFilePut', 'ArrayFileGetCSV', 'ArrayFileGet', 'AppWaitClose', 'AppExist', 'AddExtender',
        +            'Acos', 'Abs', 'About'
        +            ),
        +        4 => array(
        +            'zZipFiles', 'zVersionInfo', 'zVersion', 'zUnZipFiles', 'zSetPortBit', 'zRPortShift', 'zPortOut', 'zPortIn', 'zNotPortBit',
        +            'zLPortShift', 'zGetPortBit', 'zClrPortBit', 'xVerifyCCard', 'xSendMessage', 'xMessageBox', 'xMemCompact', 'xHex', 'xGetElapsed',
        +            'xGetChildHwnd', 'xExtenderInfo', 'xEnumStreams', 'xEjectMedia', 'xDriveReady', 'xDiskLabelGet', 'xCursorSet', 'xBaseConvert',
        +            'wxPing', 'wxParmSet', 'wxParmGet', 'wxMsgSetHdr', 'wxMsgGetHdr', 'wxMsgGetBody', 'wxHost2Addr', 'wxGetLastErr', 'wxGetInfo',
        +            'wxGetErrDesc', 'wxAddr2Host', 'wtsWaitSystemEvent', 'wtsVersion', 'wtsTerminateProcess', 'wtsShutdownSystem', 'wtsSendMessage',
        +            'wtsQuerySessionInfo', 'wtsProcIdToSessId', 'wtsLogoffSession', 'wtsLastErrMsg', 'wtsIsTSEnabled', 'wtsIsCitrixEnabled',
        +            'wtsGetActiveConsoleSessId', 'wtsEnumSessions', 'wtsEnumProcesses', 'wtsDisconnectSession', 'wnWrkGroups', 'wnVersion', 'wntWtsUserSet',
        +            'wntWtsUserGet', 'wntVersion', 'wntUserSidChk', 'wntUserSetDat', 'wntUserRename', 'wntUserProps', 'wntUserList', 'wntUserInfo',
        +            'wntUserGetDat', 'wntUserFiles', 'wntUserExist', 'wntUserDel', 'wntUserAddDat', 'wntUserAdd', 'wntSvcStatus', 'wntSvcStart',
        +            'wntSvcList', 'wntSvcDelete', 'wntSvcCreate', 'wntSvcControl', 'wntSvcCfgSet', 'wntSvcCfgGet', 'wntShutdown', 'wntShareUsers',
        +            'wntShareSet', 'wntShareList', 'wntShareInfo', 'wntShareDel', 'wntShareAdd', 'wntServiceInf', 'wntServiceAt', 'wntServerType',
        +            'wntServerList', 'wntServerInfo', 'wntSecurityGet', 'wntRunAsUser', 'wntResources2', 'wntResources', 'wntRemoteTime', 'wntRasUserSet',
        +            'wntRasUserGet', 'wntProfileInfo', 'wntProfileDel', 'wntPrivUsers', 'wntPrivList', 'wntPrivGet', 'wntPrivDel', 'wntPrivAdd',
        +            'wntOwnerSet', 'wntOwnerGet', 'wntMemberSet', 'wntMemberLst2', 'wntMemberList', 'wntMemberGrps', 'wntMemberGet', 'wntMemberDel',
        +            'wntLsaPolSet', 'wntLsaPolGet', 'wntListGroups', 'wntLastErrMsg', 'wntGroupRen', 'wntGroupInfo', 'wntGroupEdit', 'wntGroupDel',
        +            'wntGroupAdd', 'wntGetUser', 'wntGetDrive', 'wntGetDc', 'wntGetCon', 'wntFileUsers', 'wntFilesOpen', 'wntFileClose', 'wntEventWrite',
        +            'wntEventLog', 'wntDomainSync', 'wntDirDialog', 'wntDfsList', 'wntDfsGetInfo', 'wntCurrUsers', 'wntChgPswd', 'wntCancelCon',
        +            'wntAuditMod', 'wntAuditList', 'wntAuditGet', 'wntAuditDel', 'wntAuditAdd2', 'wntAuditAdd', 'wntAddPrinter', 'wntAddDrive',
        +            'wntAcctPolSet', 'wntAcctPolGet', 'wntAcctList', 'wntAcctInfo', 'wntAccessMod', 'wntAccessList', 'wntAccessGet', 'wntAccessDel',
        +            'wntaccessadd2', 'wntAccessAdd', 'wnShares', 'wnSharePath', 'wnShareName', 'wnShareCnt', 'wnServers', 'wnRestore', 'wnNetNames',
        +            'wnGetUser', 'wnGetCon', 'wnGetCaps', 'wnDlgShare', 'wnDlgNoShare', 'wnDlgDiscon', 'wnDlgCon4', 'wnDlgCon3', 'wnDlgCon2', 'wnDlgCon',
        +            'wnDlgBrowse', 'wnDialog', 'wnCmptrInfo', 'wnCancelCon', 'wnAddCon', 'WaitSRQ', 'w9xVersion', 'w9xUserSetDat', 'w9xUserRename',
        +            'w9xUserprops', 'w9xUserList', 'w9xUserinfo', 'w9xUserGetDat', 'w9xUserExist', 'w9xUserDel', 'w9xUserAddDat', 'w9xUserAdd', 'w9xShareSet',
        +            'w9xShareInfo', 'w9xShareDel', 'w9xShareAdd', 'w9xServiceAt', 'w9xServerList', 'w9xRemoteTime', 'w9xOwnerGet', 'w9xMemberSet',
        +            'w9xMemberList', 'w9xMemberGrps', 'w9xMemberGet', 'w9xMemberDel', 'w9xListGroups', 'w9xGroupInfo', 'w9xGroupDel', 'w9xGroupAdd',
        +            'w9xGetDC', 'w9xFileUsers', 'w9xAccessList', 'w9xAccessGet', 'w9xAccessDel', 'w9xAccessAdd', 'w95Version', 'w95ShareUsers',
        +            'w95ShareSet', 'w95ShareList', 'w95ShareInfo', 'w95ShareDel', 'w95ShareAdd', 'w95ServiceInf', 'w95ServiceAt', 'w95ServerType',
        +            'w95ServerInfo', 'w95Resources', 'w95GetUser', 'w95GetDrive', 'w95GetCon', 'w95FileUsers', 'w95FileClose', 'w95DirDialog',
        +            'w95CancelCon', 'w95AddPrinter', 'w95AddDrive', 'w95AccessDel', 'w95AccessAdd', 'w3Version', 'w3PrtBrowse', 'w3NetGetUser',
        +            'w3NetDialog', 'w3GetCon', 'w3GetCaps', 'w3DirBrowse', 'w3CancelCon', 'w3AddCon', 'urlGetScheme', 'urlEncode', 'urlDecode',
        +            'tVersion', 'tSetPriority', 'TriggerList', 'Trigger', 'tRemoteConn', 'tOpenProc', 'tListProc', 'tListMod', 'tKillProc', 'tGetProcInfo',
        +            'tGetPriority', 'tGetModInfo', 'tGetLastError', 'tGetData', 'TestSys', 'TestSRQ', 'tCountProc', 'tCompatible', 'tCloseProc',
        +            'tBrowseCntrs', 'sSendString', 'sSendNum', 'sSendLine', 'sSendBinary', 'sRecvNum', 'sRecvLine', 'sRecvBinary', 'SrchVersion',
        +            'SrchNext', 'SrchInit', 'SrchFree', 'sOpen', 'sOK2Send', 'sOK2Recv', 'smtpSendText', 'smtpSendFile', 'sListen', 'SetRWLS',
        +            'SendSetup', 'SendLLO', 'SendList', 'SendIFC', 'SendDataBytes', 'SendCmds', 'Send', 'sConnect', 'sClose', 'SByteOrder32',
        +            'sByteOrder16', 'sAccept', 'rRegVersion', 'rRegSearch', 'ResetSys', 'ReceiveSetup', 'Receive', 'ReadStsByte', 'RcvRespMsg',
        +            'RasVersion', 'RasTypeSize', 'RasRename', 'RasNumCons', 'RasNameValid', 'RasListActCon', 'RasItemize', 'RasHangUp', 'RasGetLastErr',
        +            'RasGetConStat', 'RasEntrySet', 'RasEntryInfo', 'RasEntryExist', 'RasEntryDel', 'RasEntryAdd', 'RasDialInfo', 'RasDial',
        +            'RasCopy', 'RasConStatus', 'qVersionInfo', 'qTransact', 'qTables', 'qSpecial', 'qSetConnOpt', 'qNumRsltCol', 'qNativeSql', 'qLastCode',
        +            'qGetData', 'qFreeStmt', 'qFreeEnv', 'qFreeConnect', 'qFetch', 'qExecDirect', 'qError', 'qDriverList', 'qDriverCon', 'qDisconnect',
        +            'qDataSources', 'qConnect', 'qConfigError', 'qConfigData', 'qColumns', 'qBindCol', 'qAllocStmt', 'qAllocEnv', 'qAllocConnect',
        +            'pWaitFor', 'pVersionInfo', 'pTimeout', 'pSetPublish', 'pSetPrtInfo', 'pSetPrtAttrib', 'pSetDefPrtEx', 'pSetDefPrt', 'pSendFile',
        +            'pRecvFile', 'pPutString', 'pPutLine', 'pPutChar', 'pPutByte', 'pPutBinary', 'PPollUnconfig', 'PPollConfig', 'PPoll', 'pPeekChar',
        +            'pPeekByte', 'pPaperSizes', 'pPaperBins', 'pModemSReg', 'pModemParams', 'pModemInit', 'pModemHangUp', 'pModemDial', 'pModemControl',
        +            'pModemConnect', 'pModemCommand', 'pModemAnsRing', 'pModemAnsCall', 'pMediaTypes', 'pGetString', 'pGetPublish', 'pGetPrtList',
        +            'pGetPrtInfo', 'pGetPrtAttrib', 'pGetLine', 'pGetLastError', 'pGetErrorMsg', 'pGetErrorCode', 'pGetDefPrtInf', 'pGetChar',
        +            'pGetByte', 'pGetBinary', 'pDelPrtConn', 'pDelPrinter', 'pComOpen', 'pComModify', 'pComInfo', 'pComControl', 'pComClose',
        +            'pCheckSum', 'pCheckBinary', 'pCaptureOn', 'pCaptureOff', 'pCaptureLog', 'PassControl', 'pAddPrtConn', 'pAddPrinter', 'p3RecvText',
        +            'p3RecvFile', 'p3Peek', 'p3Open', 'p3GetReply', 'p3Delete', 'p3Count', 'p3Close', 'nwWhoAmI', 'nwVfyPassword', 'nwVersion',
        +            'nwSrvShutdown', 'nwSrvNLMMgr', 'nwSrvGenGUID', 'nwSrvExecNCF', 'nwSetVolLimit', 'nwSetSrvParam', 'nwSetSrvInfo', 'nwSetPrimServ',
        +            'nwSetPassword', 'nwSetOptions', 'nwSetFileInfo', 'nwSetDirLimit', 'nwSetDirInfo', 'nwSetContext', 'nwSetBcastMode', 'nwServerList',
        +            'nwSendBcastMsg', 'nwSearchObjects', 'nwSearchFilter', 'nwRenameObject', 'nwRemoveObject', 'nwReceiveBcastMsg', 'nwNameConvert',
        +            'nwMutateObject', 'nwMoveObject', 'nwModifyObject', 'nwMapDelete', 'nwMap', 'nwLogout', 'nwLogin', 'nwListUserGroups',
        +            'nwListObjects', 'nwListGroupMembers', 'nwLastErrMsg', 'nwIsUserInGroup', 'nwGetVolLimit', 'nwGetSrvStats', 'nwGetSrvParam',
        +            'nwGetSrvInfo', 'nwGetSrvCfg', 'nwGetOptions', 'nwGetObjValue', 'nwGetObjInfo', 'nwGetNLMInfo', 'nwGetMapped', 'nwGetFileInfo',
        +            'nwGetDirLimit', 'nwGetDirInfo', 'nwGetContext', 'nwGetConnInfo', 'nwGetCapture', 'nwGetBcastMode', 'nwGetAttrInfo',
        +            'nwDriveStatus', 'nwDrivePath', 'nwDetachFromServer', 'nwDelUserFromGroup', 'nwDelConnNum', 'nwCompareObject', 'nwClientInfo',
        +            'nwChgPassword', 'nwAttachToServer', 'nwAddUserToGroup', 'nwAddObject', 'netVersion', 'netResources', 'netGetUser', 'netGetCon',
        +            'netDirDialog', 'netCancelCon', 'netAddPrinter', 'netAddDrive', 'n4Version', 'n4UserGroups', 'n4UserGroupEx', 'n4SetPrimServ',
        +            'n4SetOptions', 'n4SetContextG', 'n4SetContext', 'n4ServerList', 'n4ServerInfo', 'n4ObjSearch', 'n4ObjRename', 'n4ObjOptions',
        +            'n4ObjMove', 'n4ObjGetVal', 'n4ObjectProps', 'n4ObjectList', 'n4ObjectInfo', 'n4ObjDelete', 'n4NameConvert', 'n4MsgsEndAll',
        +            'n4MsgsEnd', 'n4MemberSet', 'n4MemberGet', 'n4MemberDel', 'n4MapRoot', 'n4MapDir', 'n4MapDelete', 'n4Map', 'n4LogoutTree',
        +            'n4Logout', 'n4Login', 'n4GetUserName', 'n4GetUserId', 'n4GetUser', 'n4GetNetAddr', 'n4GetMapped', 'n4GetContext',
        +            'n4GetConnNum', 'n4FileUsers', 'n4FileTimeGet', 'n4FileAttrSet', 'n4FileAttrGet', 'n4DriveStatus', 'n4DrivePath', 'n4DirTimeGet',
        +            'n4DirAttrSet', 'n4DirAttrGet', 'n4Detach', 'n4ChgPassword', 'n4CapturePrt', 'n4CaptureGet', 'n4CaptureEnd', 'n4Attach',
        +            'n3Version', 'n3UserGroups', 'n3ServerList', 'n3ServerInfo', 'n3MsgsEndAll', 'n3MsgsEnd', 'n3MemberSet', 'n3MemberGet',
        +            'n3MemberDel', 'n3Maproot', 'n3Mapdir', 'n3Mapdelete', 'n3Map', 'n3Logout', 'n3GetUserId', 'n3GetUser', 'n3GetNetAddr',
        +            'n3GetMapped', 'n3GetConnNum', 'n3FileTimeGet', 'n3FileAttrSet', 'n3FileAttrGet', 'n3DriveStatus', 'n3DrivePath',
        +            'n3DirTimeGet', 'n3DirAttrSet', 'n3DirAttrGet', 'n3Detach', 'n3ChgPassword', 'n3CapturePrt', 'n3CaptureGet',
        +            'n3CaptureEnd', 'n3Attach', 'mVersion', 'mSyncMail', 'mSendMailEx', 'mSendMail', 'mrecvmail', 'mReadNextMsg', 'mLogOn',
        +            'mLogOff', 'mFindNext', 'mError', 'mCompatible', 'kVerInfo', 'kStatusInfo', 'kSendText', 'kSendFile', 'kManageImap4',
        +            'kInit', 'kGetMail', 'kExtra', 'kDest', 'kDeletePop3', 'iWriteDataBuf', 'iWriteData', 'iVersion', 'IUrlOpen', 'iUrlEncode',
        +            'iUrlDecode', 'iReadDataBuf', 'iReadData', 'ipVersion', 'ipPing', 'iPing', 'ipHost2Addr', 'ipGetLastErr', 'ipGetAddress',
        +            'iParseURL', 'ipAddr2Host', 'iOptionSet', 'iOptionGet', 'ImgWave', 'ImgVersion', 'ImgUnsharpMask', 'ImgThreshold', 'ImgSwirl',
        +            'ImgSpread', 'ImgSolarize', 'ImgShear', 'ImgSharpen', 'ImgShade', 'ImgScale', 'ImgSample', 'ImgRotate', 'ImgResize',
        +            'ImgReduceNoise', 'ImgRaise', 'ImgOilPaint', 'ImgNormalize', 'ImgNegate', 'ImgMotionBlur', 'ImgModulate', 'ImgMinify',
        +            'ImgMedianFilter', 'ImgMagnify', 'ImgLevel', 'ImgIsValid', 'ImgIsPalette', 'ImgIsMono', 'ImgIsGray', 'ImgInfo', 'ImgImplode',
        +            'ImgGetImageType', 'ImgGetColorCount', 'ImgGaussianBlur', 'ImgGamma', 'ImgFrame', 'ImgFlop', 'ImgFlip', 'ImgEqualize',
        +            'ImgEnhance', 'ImgEmboss', 'ImgCrop', 'ImgConvert', 'ImgContrast', 'ImgCompare', 'ImgColorize', 'ImgChop', 'ImgCharcoal',
        +            'ImgBorder', 'ImgBlur', 'ImgAddNoise', 'iLocFindNext', 'iLocFindInit', 'iHttpOpen', 'iHttpInit', 'iHttpHeaders', 'iHttpAccept',
        +            'iHostConnect', 'iHost2Addr', 'iGetResponse', 'iGetLastError', 'iGetIEVer', 'iGetConStatEx', 'iGetConState', 'iFtpRename',
        +            'iFtpPut', 'iFtpOpen', 'iFtpGet', 'iFtpFindNext', 'iFtpFindInit', 'iFtpDirRemove', 'iFtpDirMake', 'iFtpDirGet', 'iFtpDirChange',
        +            'iFtpDialog', 'iFtpDelete', 'iFtpCmd', 'iErrorDialog', 'iDialItemize', 'iDialHangUp', 'iDial', 'iCookieSet', 'iCookieGet',
        +            'iContentURL', 'iContentFile', 'iContentData', 'iClose', 'ibWrtf', 'ibWrt', 'ibWait', 'ibVersion', 'ibUnlock', 'ibTrg',
        +            'ibTmo', 'ibStop', 'ibStatus', 'ibSta', 'ibSre', 'ibSic', 'ibSad', 'ibRsv', 'ibRsp', 'ibRsc', 'ibRpp', 'ibRdf', 'ibRd',
        +            'ibPpc', 'ibPoke', 'ibPct', 'ibPad', 'ibOnl', 'ibMakeAddr', 'ibLock', 'ibLoc', 'ibLn', 'ibLines', 'ibIst', 'ibInit',
        +            'ibGts', 'ibGetSad', 'ibGetPad', 'ibFind', 'ibEvent', 'ibErr', 'ibEot', 'ibEos', 'iBegin', 'ibDma', 'ibDev', 'ibConfig',
        +            'ibCntl', 'ibCnt', 'ibCmda', 'ibCmd', 'ibClr', 'ibCac', 'ibBna', 'ibAsk', 'iAddr2Host', 'huge_Thousands', 'huge_Subtract',
        +            'huge_SetOptions', 'huge_Multiply', 'huge_GetLastError', 'huge_ExtenderInfo', 'huge_Divide', 'huge_Decimal', 'huge_Add',
        +            'httpStripHTML', 'httpRecvTextF', 'httpRecvText', 'httpRecvQuery', 'httpRecvQryF', 'httpRecvFile', 'httpGetServer',
        +            'httpGetQuery', 'httpGetPath', 'httpGetFile', 'httpGetDir', 'httpGetAnchor', 'httpFullPath', 'httpFirewall', 'httpAuth',
        +            'ftpRename', 'ftpQuote', 'ftpPut', 'ftpOpen', 'ftpList', 'ftpGet', 'ftpFirewall', 'ftpDelete', 'ftpClose', 'ftpChDir',
        +            'FindRQS', 'FindLstn', 'EnvSetVar', 'EnvPathDel', 'EnvPathChk', 'EnvPathAdd', 'EnvListVars', 'EnvGetVar', 'EnvGetInfo',
        +            'EnableRemote', 'EnableLocal', 'ehllapiWait', 'ehllapiVersion', 'ehllapiUninit', 'ehllapiStopKeyIntercept', 'ehllapiStopHostNotify',
        +            'ehllapiStopCloseIntercept', 'ehllapiStartKeyIntercept', 'ehllapiStartHostNotify', 'ehllapiStartCloseIntercept',
        +            'ehllapiSetWindowStatus', 'ehllapiSetSessionParams', 'ehllapiSetPSWindowName', 'ehllapiSetCursorLoc', 'ehllapiSendKey',
        +            'ehllapiSendFile', 'ehllapiSearchPS', 'ehllapiSearchField', 'ehllapiRunProfile', 'ehllapiResetSystem', 'ehllapiReserve',
        +            'ehllapiRelease', 'ehllapiReceiveFile', 'ehllapiQuerySystem', 'ehllapiQueryPSStatus', 'ehllapiQueryHostNotify',
        +            'ehllapiQueryFieldAttr', 'ehllapiQueryCursorLoc', 'ehllapiQueryCloseIntercept', 'ehllapiPostInterceptStatus',
        +            'ehllapiPause', 'ehllapiLastErrMsg', 'ehllapiInit', 'ehllapiGetWindowStatus', 'ehllapiGetPSHWND', 'ehllapiGetKey',
        +            'ehllapiFindFieldPos', 'ehllapiFindFieldLen', 'ehllapiDisconnectPS', 'ehllapiCvtRCToPos', 'ehllapiCvtPosToRC',
        +            'ehllapiCopyTextToPS', 'ehllapiCopyTextToField', 'ehllapiCopyTextFromPS', 'ehllapiCopyTextFromField', 'ehllapiCopyOIA',
        +            'ehllapiConnectPS', 'dunItemize', 'dunDisconnect', 'dunConnectEx', 'dunConnect', 'dsTestParam', 'dsSIDtoHexStr', 'dsSetSecProp',
        +            'dsSetProperty', 'dsSetPassword', 'dsSetObj', 'dsSetCredentX', 'dsSetCredent', 'dsRemFromGrp', 'dsRelSecObj', 'dsMoveObj',
        +            'dsIsObject', 'dsIsMemberGrp', 'dsIsContainer', 'dsGetUsersGrps', 'dsGetSecProp', 'dsGetPropName', 'dsGetProperty',
        +            'dsGetPrntPath', 'dsGetPrimGrp', 'dsGetMemGrp', 'dsGetInfo', 'dsGetClass', 'dsGetChldPath', 'dsFindPath', 'dsDeleteObj',
        +            'dsCreatSecObj', 'dsCreateObj', 'dsCopySecObj', 'dsAddToGrp', 'dsAclRemAce', 'dsAclOrderAce', 'dsAclGetAces', 'dsAclAddAce',
        +            'DevClearList', 'DevClear', 'dbTest', 'dbSwapColumns', 'dbSort', 'dbSetRecordField', 'dbSetOptions', 'dbSetErrorReporting',
        +            'dbSetEntireRecord', 'dbSetDelimiter', 'dbSave', 'dbOpen', 'dbNameColumn', 'dbMakeNewItem', 'dbInsertColumn', 'dbGetVersion',
        +            'dbGetSaveStatus', 'dbGetRecordField', 'dbGetRecordCount', 'dbGetNextItem', 'dbGetLastError', 'dbGetEntireRecord',
        +            'dbGetColumnType', 'dbGetColumnNumber', 'dbGetColumnName', 'dbGetColumnCount', 'dbFindRecord', 'dbExist', 'dbEasterEgg',
        +            'dbDeleteRecord', 'dbDeleteColumn', 'dbDebug', 'dbCookDatabases', 'dbClose', 'dbCloneRecord', 'dbBindCol', 'cWndState',
        +            'cWndinfo', 'cWndGetWndSpecName', 'cWndGetWndSpec', 'cWndexist', 'cWndByWndSpecName', 'cWndByWndSpec', 'cWndbyseq',
        +            'cWndbyname', 'cWndbyid', 'cWndbyclass', 'cWinIDConvert', 'cVersionInfo', 'cVendorId', 'cSetWndText', 'cSetUpDownPos',
        +            'cSetTvItem', 'cSetTrackPos', 'cSetTabItem', 'cSetLvItem', 'cSetLbItemEx', 'cSetLbItem', 'cSetIpAddr', 'cSetFocus',
        +            'cSetEditText', 'cSetDtpDate', 'cSetCbItem', 'cSetCalDate', 'cSendMessage', 'cRadioButton', 'cPostMessage', 'cPostButton',
        +            'cMemStat', 'cGetWndCursor', 'cGetUpDownPos', 'cGetUpDownMin', 'cGetUpDownMax', 'cGetTVItem', 'cGetTrackPos', 'cGetTrackMin',
        +            'cGetTrackMax', 'cGetTbText', 'cGetSbText', 'cGetLvText', 'cGetLvSelText', 'cGetLvFocText', 'cGetLvDdtText', 'cGetLvColText',
        +            'cGetLbText', 'cGetLbSelText', 'cGetLbCount', 'cGetIpAddr', 'cGetInfo', 'cGetHrText', 'cGetFocus', 'cGetEditText', 'cGetDtpDate',
        +            'cGetControlImageCRC', 'cGetCBText', 'cGetCbCount', 'cGetCalDate', 'cFindByName', 'cFindByClass', 'cEnablestate', 'cDblClickItem',
        +            'cCpuSupt', 'cCpuSpeed', 'cCpuIdExt', 'cCpuId', 'cCpuFeat', 'cCpuBenchmark', 'cCloneCheck', 'cClickToolbar', 'cClickButton',
        +            'cClearTvItem', 'cClearLvItem', 'cClearLbAll', 'cCheckbox', 'aVersion', 'aStatusbar', 'aShellFolder', 'aMsgTimeout', 'AllSPoll',
        +            'aGetLastError', 'aFileRename', 'aFileMove', 'aFileDelete', 'aFileCopy'
        +            ),
        +        5 => array(
        +            'wWordRight', 'wWordLeft', 'wWinTile', 'wWinRestore', 'wWinNext', 'wWinMinimize', 'wWinMaximize', 'wWinCloseAll', 'wWinClose',
        +            'wWinCascade', 'wWinArricons', 'wViewOutput', 'wViewOptions', 'wViewHtml', 'wUpperCase', 'wUpline', 'wUndo', 'wTopOfFile', 'wToggleIns',
        +            'wTab', 'wStatusMsg', 'wStartSel', 'wSpellcheck', 'wSetProject', 'wSetPrefs', 'wSetColblk', 'wSetBookmark', 'wSelWordRight',
        +            'wSelWordLeft', 'wSelUp', 'wSelTop', 'wSelRight', 'wSelPgUp', 'wSelPgDn', 'wSelLeft', 'wSelInfo', 'wSelHome', 'wSelEnd', 'wSelectAll',
        +            'wSelDown', 'wSelBottom', 'wRunRebuild', 'wRunMake', 'wRunExecute', 'wRunDebug', 'wRunConfig', 'wRunCompile', 'wRunCommand', 'wRight',
        +            'wRepeat', 'wRedo', 'wRecord', 'wProperties', 'wPrintDirect', 'wPrinSetup', 'wPrevError', 'wPaste', 'wPageUp', 'wPageDown', 'wNextError',
        +            'wNewLine', 'wLowerCase', 'wLineCount', 'wLeft', 'wInvertCase', 'wInsString', 'wInsLine', 'wHome', 'wHelpKeyword', 'wHelpKeybrd',
        +            'wHelpIndex', 'wHelpHelp', 'wHelpCmds', 'wHelpAbout', 'wGotoLine', 'wGotoCol', 'wGetWrap', 'wGetWord', 'wGetUndo', 'wGetSelstate',
        +            'wGetRedo', 'wGetOutput', 'wGetModified', 'wGetLineNo', 'wGetIns', 'wGetFilename', 'wGetColNo', 'wGetChar', 'wFtpOpen', 'wFindNext',
        +            'wFindInFiles', 'wFind', 'wFileSaveAs', 'wFileSave', 'wFileRevert', 'wFilePrint', 'wFilePgSetup', 'wFileOpen', 'wFileNew', 'wFileMerge',
        +            'wFileList', 'wFileExit', 'wEndSel', 'wEndOfFile', 'wEnd', 'wEdWrap', 'wEdWordRight', 'wEdWordLeft', 'wEdUpLine', 'wEdUndo', 'wEdTopOfFile',
        +            'wEdToggleIns', 'wEdTab', 'wEdStartSel', 'wEdSetColBlk', 'wEdSelectAll', 'wEdRight', 'wEdRedo', 'wEdPaste', 'wEdPageUp', 'wEdPageDown',
        +            'wEdNewLine', 'wEdLeft', 'wEdInsString', 'wEdHome', 'wEdGoToLine', 'wEdGoToCol', 'wEdGetWord', 'wEdEndSel', 'wEdEndOfFile', 'wEdEnd',
        +            'wEdDownLine', 'wEdDelete', 'wEdCutLine', 'wEdCut', 'wEdCopyLine', 'wEdCopy', 'wEdClearSel', 'wEdBackTab', 'wEdBackspace', 'wDownLine',
        +            'wDelete', 'wDelButton', 'wCutMarked', 'wCutLine', 'wCutAppend', 'wCut', 'wCopyMarked', 'wCopyLine', 'wCopyAppend', 'wCopy', 'wCompile',
        +            'wClearSel', 'wChange', 'wCallMacro', 'wBackTab', 'wBackspace', 'wAutoIndent', 'wAddButton', 'edWindowTile', 'edWindowRestore',
        +            'edWindowNext', 'edWindowMinimize', 'edWindowMaximize', 'edWindowCloseall', 'edWindowClose', 'edWindowCascade', 'edWindowArrangeIcons',
        +            'edStatusMsg', 'edSearchViewOutput', 'edSearchRepeat', 'edSearchPrevError', 'edSearchNextError', 'edSearchFind', 'edSearchChange',
        +            'edRunRebuild', 'edRunMake', 'edRunExecute', 'edRunDebug', 'edRunConfigure', 'edRunCompile', 'edRunCommand', 'edRecord', 'edHelpProcedures',
        +            'edHelpKeyword', 'edHelpKeyboard', 'edHelpIndex', 'edHelpHelp', 'edHelpCommands', 'edHelpAbout', 'edGetWordWrapState', 'edGetWindowName',
        +            'edGetUndoState', 'edGetSelectionState', 'edGetRedoState', 'edGetModifiedStatus', 'edGetLineNumber', 'edGetInsertState', 'edGetColumnNumber',
        +            'edGetChar', 'edFileSetPreferences', 'edFileSaveAs', 'edFileSave', 'edFilePrinterSetup', 'edFilePrint', 'edFilePageSetup', 'edFileOpen',
        +            'edFileNew', 'edFileMerge', 'edFileList', 'edFileExit', 'edEditWrap', 'edEditWordRight', 'edEditWordLeft', 'edEditUpLine', 'edEditUndo',
        +            'edEditToggleIns', 'edEditTab', 'edEditStartSelection', 'edEditSetColumnBlock', 'edEditSetBookmark', 'edEditSelectAll', 'edEditRight',
        +            'edEditRedo', 'edEditPaste', 'edEditPageUp', 'edEditPageDown', 'edEditLeft', 'edEditInsertString', 'edEditGoToLine', 'edEditGoToColumn',
        +            'edEditGoToBookmark', 'edEditGetCurrentWord', 'edEditEndSelection', 'edEditEndOfLine', 'edEditEndOfFile', 'edEditDownline', 'edEditDelete',
        +            'edEditCutline', 'edEditCut', 'edEditCopyline', 'edEditCopy', 'edEditClearSelection', 'edEditBeginningOfLine', 'edEditBeginningOfFile',
        +            'edEditBackTab', 'edEditBackspace', 'edDeleteButton', 'edAddButton'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '{', '}', '!', '+', '-', '~', '$', '^', '?', '@', '%', '#', '&', '*', '|', '/', '<', '>'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false,
        +        5 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #800080;',
        +            2 => 'color: #0080FF; font-weight: bold;',
        +            3 => 'color: #0000FF;',
        +            4 => 'color: #FF00FF;',
        +            5 => 'color: #008000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #008000; font-style: italic;',
        +            2 => 'color: #FF1010; font-weight: bold;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #006600;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => '',
        +        5 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(),
        +    'REGEXPS' => array(//Variable names
        +        0 => "[\\$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*"
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_MAYBE,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/xbasic.php b/Sources/geshi/xbasic.php
        new file mode 100644
        index 0000000..2edede3
        --- /dev/null
        +++ b/Sources/geshi/xbasic.php
        @@ -0,0 +1,143 @@
        + 'XBasic',
        +    'COMMENT_SINGLE' => array(1 => "'"),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'WHILE', 'UNTIL', 'TRUE', 'TO', 'THEN', 'SUB', 'STOP', 'STEP',
        +            'SELECT', 'RETURN', 'PROGRAM', 'NEXT', 'LOOP', 'IFZ',
        +            'IFT', 'IFF', 'IF', 'GOTO', 'GOSUB', 'FOR', 'FALSE', 'EXIT',
        +            'ENDIF', 'END', 'ELSE', 'DO', 'CASE', 'ALL'
        +            ),
        +        2 => array(
        +            'XMAKE', 'XLONGAT', 'XLONG', 'WRITE', 'VOID', 'VERSION$', 'VERSION',
        +            'USHORTAT', 'USHORT', 'UNION', 'ULONGAT', 'ULONG', 'UCASE$',
        +            'UBYTEAT', 'UBYTE', 'UBOUND', 'TYPE','TRIM$', 'TAB', 'SWAP',
        +            'SUBADDRESS', 'SUBADDR', 'STUFF$', 'STRING', 'STRING$', 'STR$',
        +            'STATIC', 'SSHORTAT', 'SSHORT', 'SPACE$', 'SMAKE', 'SLONGAT', 'SLONG',
        +            'SIZE', 'SINGLEAT', 'SINGLE', 'SIGNED$', 'SIGN', 'SHELL', 'SHARED',
        +            'SGN', 'SFUNCTION', 'SET', 'SEEK', 'SCOMPLEX', 'SBYTEAT', 'SBYTE',
        +            'RTRIM$', 'ROTATER', 'ROTATEL', 'RJUST$', 'RINSTRI', 'RINSTR',
        +            'RINCHRI', 'RINCHR', 'RIGHT$', 'REDIM', 'READ', 'RCLIP$', 'QUIT',
        +            'PROGRAM$', 'PRINT', 'POF', 'OPEN', 'OCTO$', 'OCT$', 'NULL$', 'MIN',
        +            'MID$', 'MAX', 'MAKE', 'LTRIM$', 'LOF', 'LJUST$', 'LIBRARY', 'LEN',
        +            'LEFT$', 'LCLIP$', 'LCASE$', 'INTERNAL', 'INT', 'INSTRI', 'INSTR',
        +            'INLINE$', 'INFILE$', 'INCHRI', 'INCHR', 'INC', 'IMPORT', 'HIGH1',
        +            'HIGH0', 'HEXX$', 'HEX$', 'GOADDRESS', 'GOADDR', 'GMAKE', 'GLOW',
        +            'GIANTAT', 'GIANT', 'GHIGH', 'FUNCTION', 'FUNCADDRESS', 'FUNCADDR',
        +            'FORMAT$', 'FIX', 'EXTU', 'EXTS', 'EXTERNAL', 'ERROR', 'ERROR$',
        +            'EOF', 'DOUBLEAT', 'DOUBLE', 'DMAKE', 'DLOW', 'DIM', 'DHIGH',
        +            'DECLARE', 'DEC', 'DCOMPLEX', 'CSTRING$', 'CSIZE', 'CSIZE$', 'CLR',
        +            'CLOSE', 'CLEAR', 'CJUST$', 'CHR$', 'CFUNCTION', 'BITFIELD', 'BINB$',
        +            'BIN$', 'AUTOX', 'AUTOS', 'AUTO', 'ATTACH', 'ASC', 'ABS'
        +            ),
        +        3 => array(
        +            'XOR', 'OR', 'NOT', 'MOD', 'AND'
        +            ),
        +        4 => array(
        +            'TANH', 'TAN', 'SQRT', 'SINH', 'SIN', 'SECH', 'SEC', 'POWER',
        +            'LOG10', 'LOG', 'EXP10', 'EXP', 'CSCH', 'CSC', 'COTH', 'COT', 'COSH',
        +            'COS', 'ATANH', 'ATAN', 'ASINH', 'ASIN', 'ASECH', 'ASEC', 'ACSCH',
        +            'ACSC', 'ACOSH', 'ACOS'
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>',
        +        '=','+','-'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #00a1a1;font-weight: bold',
        +            2 => 'color: #000066;font-weight: bold',
        +            3 => 'color: #00a166;font-weight: bold',
        +            4 => 'color: #0066a1;font-weight: bold'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => 'http://www.xbasic.org',
        +        4 => 'http://www.xbasic.org'
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/xml.php b/Sources/geshi/xml.php
        new file mode 100644
        index 0000000..6354e45
        --- /dev/null
        +++ b/Sources/geshi/xml.php
        @@ -0,0 +1,157 @@
        + 'XML',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        ),
        +    'SYMBOLS' => array(
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            ),
        +        'COMMENTS' => array(
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'SCRIPT' => array(
        +            -1 => 'color: #808080; font-style: italic;', // comments
        +            0 => 'color: #00bbdd;',
        +            1 => 'color: #ddbb00;',
        +            2 => 'color: #339933;',
        +            3 => 'color: #009900;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #000066;',
        +            1 => 'color: #000000; font-weight: bold;',
        +            2 => 'color: #000000; font-weight: bold;'
        +            )
        +        ),
        +    'URLS' => array(
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        0 => array(//attribute names
        +            GESHI_SEARCH => '([a-z_:][\w\-\.:]*)(=)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'i',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => '\\2'
        +            ),
        +        1 => array(//Initial header line
        +            GESHI_SEARCH => '(<[\/?|(\?xml)]?[a-z_:][\w\-\.:]*(\??>)?)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'i',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        2 => array(//Tag end markers
        +            GESHI_SEARCH => '(([\/|\?])?>)',
        +            GESHI_REPLACE => '\\1',
        +            GESHI_MODIFIERS => 'i',
        +            GESHI_BEFORE => '',
        +            GESHI_AFTER => ''
        +            ),
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
        +    'SCRIPT_DELIMITERS' => array(
        +        -1 => array(
        +            ''
        +            ),
        +        0 => array(
        +            ' '>'
        +            ),
        +        1 => array(
        +            '&' => ';'
        +            ),
        +        2 => array(
        +            ' ']]>'
        +            ),
        +        3 => array(
        +            '<' => '>'
        +            )
        +    ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        -1 => false,
        +        0 => false,
        +        1 => false,
        +        2 => false,
        +        3 => true
        +        ),
        +    'TAB_WIDTH' => 2,
        +    'PARSER_CONTROL' => array(
        +        'ENABLE_FLAGS' => array(
        +            'NUMBERS' => GESHI_NEVER
        +        )
        +    )
        +);
        +
        +?>
        diff --git a/Sources/geshi/xorg_conf.php b/Sources/geshi/xorg_conf.php
        new file mode 100644
        index 0000000..99edc66
        --- /dev/null
        +++ b/Sources/geshi/xorg_conf.php
        @@ -0,0 +1,124 @@
        + 'Xorg configuration',
        +    'COMMENT_SINGLE' => array(1 => '#'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        // sections
        +        1 => array(
        +            'Section', 'EndSection', 'SubSection', 'EndSubSection'
        +            ),
        +        2 => array(
        +            // see http://www.x.org/archive/X11R6.9.0/doc/html/xorg.conf.5.html
        +            'BiosBase', 'Black', 'Boardname', 'BusID', 'ChipID', 'ChipRev',
        +            'Chipset', 'ClockChip', 'Clocks', 'DacSpeed',
        +            'DefaultDepth', 'DefaultFbBpp', 'Depth', 'Device',
        +            'DisplaySize', 'Driver', 'FbBpp', 'Gamma',
        +            'HorizSync', 'IOBase', 'Identifier', 'InputDevice',
        +            'Load', 'MemBase', 'Mode', 'Modeline', 'Modelname',
        +            'Modes', 'Monitor', 'Option', 'Ramdac', 'RgbPath',
        +            'Screen', 'TextClockFreq', 'UseModes', 'VendorName',
        +            'VertRefresh', 'VideoAdaptor', 'VideoRam',
        +            'ViewPort', 'Virtual', 'Visual', 'Weight', 'White'
        +            ),
        +        3 => array(
        +            // some sub-keywords
        +            // screen position
        +            'Above', 'Absolute', 'Below', 'LeftOf', 'Relative', 'RightOf',
        +            // modes
        +            'DotClock', 'Flags', 'HSkew', 'HTimings', 'VScan', 'VTimings'
        +            ),
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'SYMBOLS' => array(
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #b1b100;',
        +            2 => 'color: #990000;',
        +            3 => 'color: #550000;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #adadad; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            ),
        +        'BRACKETS' => array(
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #0000ff;',
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #cc66cc;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 4
        +);
        +
        +?>
        diff --git a/Sources/geshi/xpp.php b/Sources/geshi/xpp.php
        new file mode 100644
        index 0000000..a06e277
        --- /dev/null
        +++ b/Sources/geshi/xpp.php
        @@ -0,0 +1,436 @@
        +
        + *
        + * CHANGES
        + * -------
        + * 2007/02/28 (1.0.0)
        + *  -  First Release
        + *
        + * TODO (updated 2007/02/27)
        + * -------------------------
        + *
        + *************************************************************************************
        + *
        + *     This file is part of GeSHi.
        + *
        + *   GeSHi is free software; you can redistribute it and/or modify
        + *   it under the terms of the GNU General Public License as published by
        + *   the Free Software Foundation; either version 2 of the License, or
        + *   (at your option) any later version.
        + *
        + *   GeSHi is distributed in the hope that it will be useful,
        + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        + *   GNU General Public License for more details.
        + *
        + *   You should have received a copy of the GNU General Public License
        + *   along with GeSHi; if not, write to the Free Software
        + *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + ************************************************************************************/
        +
        +$language_data = array (
        +    'LANG_NAME' => 'X++',
        +    'COMMENT_SINGLE' => array(1 => '//'),
        +    'COMMENT_MULTI' => array('/*' => '*/'),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array( // Primitive types
        +            'void',
        +            'str',
        +            'real',
        +            'int64',
        +            'int',
        +            'date',
        +            'container',
        +            'boolean',
        +            'anytype'
        +            ),
        +        2 => array( // Keywords
        +            'window',
        +            'while',
        +            'try',
        +            'true',
        +            'throw',
        +            'switch',
        +            'super',
        +            'static',
        +            'server',
        +            'right',
        +            'return',
        +            'retry',
        +            'public',
        +            'protected',
        +            'private',
        +            'print',
        +            'pause',
        +            'null',
        +            'new',
        +            'mod',
        +            'left',
        +            'interface',
        +            'implements',
        +            'if',
        +            'for',
        +            'final',
        +            'false',
        +            'extends',
        +            'else',
        +            'edit',
        +            'do',
        +            'div',
        +            'display',
        +            'default',
        +            'continue',
        +            'client',
        +            'class',
        +            'changeCompany',
        +            'case',
        +            'breakpoint',
        +            'break',
        +            'at',
        +            'abstract'
        +            ),
        +        3 => array( // Functions within the Axapta kernel
        +            'year',
        +            'wkofyr',
        +            'webwebpartstr',
        +            'webstaticfilestr',
        +            'websitetempstr',
        +            'websitedefstr',
        +            'webreportstr',
        +            'webpagedefstr',
        +            'weboutputcontentitemstr',
        +            'webmenustr',
        +            'webletitemstr',
        +            'webformstr',
        +            'webdisplaycontentitemstr',
        +            'webactionitemstr',
        +            'varstr',
        +            'utilmoyr',
        +            'uint2str',
        +            'typeof',
        +            'typeid',
        +            'trunc',
        +            'today',
        +            'timenow',
        +            'time2str',
        +            'term',
        +            'tanh',
        +            'tan',
        +            'tablestr',
        +            'tablestaticmethodstr',
        +            'tablepname',
        +            'tablenum',
        +            'tablename2id',
        +            'tablemethodstr',
        +            'tableid2pname',
        +            'tableid2name',
        +            'tablefieldgroupstr',
        +            'tablecollectionstr',
        +            'systemdateset',
        +            'systemdateget',
        +            'syd',
        +            'substr',
        +            'strupr',
        +            'strscan',
        +            'strrtrim',
        +            'strrep',
        +            'strrem',
        +            'strprompt',
        +            'strpoke',
        +            'strnfind',
        +            'strlwr',
        +            'strltrim',
        +            'strline',
        +            'strlen',
        +            'strkeep',
        +            'strins',
        +            'strfmt',
        +            'strfind',
        +            'strdel',
        +            'strcolseq',
        +            'strcmp',
        +            'stralpha',
        +            'str2time',
        +            'str2num',
        +            'str2int64',
        +            'str2int',
        +            'str2guid',
        +            'str2enum',
        +            'str2date',
        +            'staticmethodstr',
        +            'sln',
        +            'sleep',
        +            'sinh',
        +            'sin',
        +            'setprefix',
        +            'sessionid',
        +            'securitykeystr',
        +            'securitykeynum',
        +            'runbuf',
        +            'runas',
        +            'round',
        +            'resourcestr',
        +            'reportstr',
        +            'refprintall',
        +            'rate',
        +            'querystr',
        +            'pv',
        +            'pt',
        +            'prmisdefault',
        +            'primoyr',
        +            'prevyr',
        +            'prevqtr',
        +            'prevmth',
        +            'power',
        +            'pmt',
        +            'num2str',
        +            'num2date',
        +            'num2char',
        +            'nextyr',
        +            'nextqtr',
        +            'nextmth',
        +            'newguid',
        +            'mthofyr',
        +            'mthname',
        +            'mkdate',
        +            'minint',
        +            'min',
        +            'methodstr',
        +            'menustr',
        +            'menuitemoutputstr',
        +            'menuitemdisplaystr',
        +            'menuitemactionstr',
        +            'maxint',
        +            'maxdate',
        +            'max',
        +            'match',
        +            'logn',
        +            'log10',
        +            'literalstr',
        +            'licensecodestr',
        +            'licensecodenum',
        +            'intvnorm',
        +            'intvno',
        +            'intvname',
        +            'intvmax',
        +            'int64str',
        +            'indexstr',
        +            'indexnum',
        +            'indexname2id',
        +            'indexid2name',
        +            'idg',
        +            'identifierstr',
        +            'helpfilestr',
        +            'helpdevstr',
        +            'helpapplstr',
        +            'guid2str',
        +            'getprefix',
        +            'getCurrentUTCTime',
        +            'fv',
        +            'funcname',
        +            'frac',
        +            'formstr',
        +            'fieldstr',
        +            'fieldpname',
        +            'fieldnum',
        +            'fieldname2id',
        +            'fieldid2pname',
        +            'fieldid2name',
        +            'extendedTypeStr',
        +            'extendedTypeNum',
        +            'exp10',
        +            'exp',
        +            'evalbuf',
        +            'enumstr',
        +            'enumnum',
        +            'enumcnt',
        +            'enum2str',
        +            'endmth',
        +            'dimof',
        +            'dg',
        +            'decround',
        +            'ddb',
        +            'dayofyr',
        +            'dayofwk',
        +            'dayofmth',
        +            'dayname',
        +            'date2str',
        +            'date2num',
        +            'curuserid',
        +            'curext',
        +            'cterm',
        +            'cosh',
        +            'cos',
        +            'corrflagset',
        +            'corrflagget',
        +            'convertUTCTimeToLocalTime',
        +            'convertUTCDateToLocalDate',
        +            'conpoke',
        +            'conpeek',
        +            'connull',
        +            'conlen',
        +            'conins',
        +            'confind',
        +            'configurationkeystr',
        +            'configurationkeynum',
        +            'condel',
        +            'classstr',
        +            'classnum',
        +            'classidget',
        +            'char2num',
        +            'beep',
        +            'atan',
        +            'asin',
        +            'ascii2ansi',
        +            'any2str',
        +            'any2real',
        +            'any2int64',
        +            'any2int',
        +            'any2guid',
        +            'any2enum',
        +            'any2date',
        +            'ansi2ascii',
        +            'acos',
        +            'abs'
        +            ),
        +        4 => array( // X++ SQL stuff
        +            'where',
        +            'update_recordset',
        +            'ttsCommit',
        +            'ttsBegin',
        +            'ttsAbort',
        +            'sum',
        +            'setting',
        +            'select',
        +            'reverse',
        +            'pessimisticLock',
        +            'outer',
        +            'order by',
        +            'optimisticLock',
        +            'notExists',
        +            'noFetch',
        +            'next',
        +            'minof',
        +            'maxof',
        +            'like',
        +            'join',
        +            'insert_recordset',
        +            'index hint',
        +            'index',
        +            'group by',
        +            'from',
        +            'forUpdate',
        +            'forceSelectOrder',
        +            'forcePlaceholders',
        +            'forceNestedLoop',
        +            'forceLiterals',
        +            'flush',
        +            'firstOnly',
        +            'firstFast',
        +            'exists',
        +            'desc',
        +            'delete_from',
        +            'count',
        +            'avg',
        +            'asc'
        +            )
        +        ),
        +    'SYMBOLS' => array( // X++ symbols
        +        '!',
        +        '&',
        +        '(',
        +        ')',
        +        '*',
        +        '^',
        +        '|',
        +        '~',
        +        '+',
        +        ',',
        +        '-',
        +        '/',
        +        ':',
        +        '<',
        +        '=',
        +        '>',
        +        '?',
        +        '[',
        +        ']',
        +        '{',
        +        '}'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000ff;',
        +            2 => 'color: #0000ff;',
        +            3 => 'color: #0000ff;',
        +            4 => 'color: #0000ff;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #007f00;',
        +            'MULTI' => 'color: #007f00; font-style: italic;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #ff0000;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #000000;'
        +            ),
        +        'METHODS' => array(
        +            1 => 'color: #000000;',
        +            2 => 'color: #000000;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #00007f;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.',
        +        2 => '::'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        diff --git a/Sources/geshi/yaml.php b/Sources/geshi/yaml.php
        new file mode 100644
        index 0000000..a2974eb
        --- /dev/null
        +++ b/Sources/geshi/yaml.php
        @@ -0,0 +1,150 @@
        +: since PHP offers no variable-width lookbehind,
        + *      these blocks will still be highlighted even when commented out. As it happens,
        + *      any line ending with | or > could result in the unintentional highlighting of
        + *      all remaining lines in the file, just because I couldn't check for this regex
        + *      as a lookbehind:  '/:(\s+)(!!(\w+)(\s+))?/'
        + *      If there is a workaround for that, it needs implemented.
        + *   *  I may be missing some operators. I deliberately omitted inline array notation
        + *      as, in general, it's ugly and tends to conflict with plain-text. Ensuring all
        + *      highlighted list delimiters are not plain text would be as simple as checking
        + *      that they follow a colon directly. Alas, without variable-length lookbehinds,
        + *      if there is a way to do so in GeSHi I am unaware of it.
        + *   *  I kind of whored the comment regexp array. It seemed like a safe bet, so it's
        + *      where I crammed everything. Some of it may need moved elsewhere for neatness.
        + *   *  The !!typename highlight needs not to interfere with ": |" and ": >": Pairing
        + *      key: !!type | value is perfectly legal, but again due to lookbehind issues, I
        + *      can't add a case for that. Also, it is likely that multiple spaces can be put
        + *      between the colon and pipe symbol, which would also break it.
        + *
        + *************************************************************************************
        + *
        + *     This file is part of GeSHi.
        + *
        + *   GeSHi is free software; you can redistribute it and/or modify it
        + *   under the terms of the GNU General Public License as published by
        + *   the Free Software Foundation; either version 2 of the License, or
        + *   (at your option) any later version.
        + *
        + *   GeSHi is distributed in the hope that it will be useful,
        + *   but WITHOUT ANY WARRANTY; without even the implied warranty of
        + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        + *   GNU General Public License for more details.
        + *
        + *   You should have received a copy of the GNU General Public License
        + *   along with GeSHi; if not, write to the Free Software
        + *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        + *
        + ************************************************************************************/
        +
        +$language_data = array (
        +    'LANG_NAME' => 'YAML',
        +    'COMMENT_SINGLE' => array(),
        +    'COMMENT_MULTI' => array(),
        +    //Keys
        +    'COMMENT_REGEXP' => array( // ENTRY ZERO  SHOULD CHECK FOR (\n(\s*)([^#%]+?):(\s+)(!!(\w+)(\s+))?) AS A LOOKBEHIND, BUT IT CAN'T.
        +        0 => '/(?<=\s[\|>]\n)(\s+)(.*)((?=[\n$])(([\n^](\1(.*)|(?=[\n$])))*)|$)/', // Pipe blocks and > blocks.
        +        1 => '/#(.*)/', // Blue # comments
        +        2 => '/%(.*)/', // Red % comments
        +        3 => '/(^|\n)([^#%^\n]+?)(?=: )/',  // Key-value names
        +        4 => '/(^|\n)([^#%^\n]+?)(?=:\n)/',// Key-group names
        +        5 => '/(?<=^---)(\s*)!(\S+)/',    // Comments after ---
        +        6 => '/(?<=: )(\s*)\&(\S+)/',    // References
        +        7 => '/(?<=: )(\s*)\*(\S+)/',   // Dereferences
        +        8 => '/!!(\w+)/',              // Types
        +        //9 => '/(?<=\n)(\s*)-(?!-)/',       // List items: This needs to search within comments 3 and 4, but I don't know how.
        +        ),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            'all','any','none', "yes", "no"
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        1 => array('---', '...'),
        +        2 => array(': ', ">\n", "|\n", '<<:', ":\n") // It'd be nice if I could specify that the colon must
        +        //                                              follow comment 3 or 4 to be considered, and the > and |
        +        //                                              must follow such a colon.
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'font-weight: bold;'
        +            ),
        +        'COMMENTS' => array(
        +            0 => 'color: #303050;background-color: #F5F5F5',
        +            1 => 'color: blue;',
        +            2 => 'font-weight: bold; color: red;',
        +            3 => 'color: green;',
        +            4 => 'color: #007F45;',
        +            5 => 'color: #7f7fFF;',
        +            6 => 'color: #FF7000;',
        +            7 => 'color: #FF45C0;',
        +            8 => 'font-weight: bold; color: #005F5F;',
        +            //9 => 'font-weight: bold; color: #000000;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            ),
        +        'BRACKETS' => array(
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #CF00CF;'
        +            ),
        +        'NUMBERS' => array(
        +            // 0 => 'color: #33f;' // Don't highlight numbers, really...
        +            ),
        +        'METHODS' => array(
        +            1 => '',
        +            2 => ''
        +            ),
        +        'SYMBOLS' => array(
        +            1 => 'color: cyan;',
        +            2 => 'font-weight: bold; color: brown;'
        +            ),
        +        'REGEXPS' => array(
        +            ),
        +        'SCRIPT' => array(
        +            0 => ''
        +            )
        +        ),
        +    'URLS' => array(1 => ''),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array( ),
        +    'REGEXPS' => array( ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array( ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array( )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/z80.php b/Sources/geshi/z80.php
        new file mode 100644
        index 0000000..47326bb
        --- /dev/null
        +++ b/Sources/geshi/z80.php
        @@ -0,0 +1,144 @@
        + 'ZiLOG Z80 Assembler',
        +    'COMMENT_SINGLE' => array(1 => ';'),
        +    'COMMENT_MULTI' => array(),
        +    'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array("'", '"'),
        +    'ESCAPE_CHAR' => '',
        +    'KEYWORDS' => array(
        +        /*CPU*/
        +        1 => array(
        +            'adc','add','and','bit','call','ccf','cp','cpd','cpdr','cpir','cpi',
        +            'cpl','daa','dec','di','djnz','ei','ex','exx','halt','im','in',
        +            'in0','inc','ind','indr','inir','ini','jp','jr','ld','ldd','lddr',
        +            'ldir','ldi','mlt','neg','nop','or','otdm','otdmr','otdr','otim',
        +            'otimr','otir','out','out0','outd','outi','pop','push','res','ret',
        +            'reti','retn','rl','rla','rlc','rlca','rld','rr','rra','rrc','rrca',
        +            'rrd','rst','sbc','scf','set','sla','sl1','sll','slp','sra','srl',
        +            'sub','tst','tstio','xor'
        +            ),
        +        /*registers*/
        +        2 => array(
        +            'a','b','c','d','e','h','l',
        +            'af','bc','de','hl','ix','iy','sp',
        +            'af\'','ixh','ixl','iyh','iyl'
        +            ),
        +        /*Directive*/
        +        3 => array(
        +            '#define','#endif','#else','#ifdef','#ifndef','#include','#undef',
        +            '.db','.dd','.df','.dq','.dt','.dw','.end','.org','equ'
        +            ),
        +        ),
        +    'SYMBOLS' => array(
        +        '[', ']', '(', ')', '?', '+', '-', '*', '/', '%', '$'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #0000ff; font-weight:bold;',
        +            2 => 'color: #0000ff;',
        +            3 => 'color: #46aa03; font-weight:bold;'
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #adadad; font-style: italic;',
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099; font-weight: bold;'
        +            ),
        +        'BRACKETS' => array(
        +            0 => 'color: #0000ff;'
        +            ),
        +        'STRINGS' => array(
        +            0 => 'color: #7f007f;'
        +            ),
        +        'NUMBERS' => array(
        +            0 => 'color: #dd22dd;'
        +            ),
        +        'METHODS' => array(
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #008000;'
        +            ),
        +        'REGEXPS' => array(
        +            0 => 'color: #22bbff;',
        +            1 => 'color: #22bbff;',
        +            2 => 'color: #993333;'
        +            ),
        +        'SCRIPT' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => ''
        +        ),
        +    'OOLANG' => false,
        +    'OBJECT_SPLITTERS' => array(
        +        ),
        +    'REGEXPS' => array(
        +        //Hex numbers
        +        0 => '0[0-9a-fA-F]{1,32}[hH]',
        +        //Binary numbers
        +        1 => '\%[01]{1,64}|[01]{1,64}[bB]?(?![^<]*>)',
        +        //Labels
        +        2 => '^[_a-zA-Z][_a-zA-Z0-9]?\:'
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        ),
        +    'TAB_WIDTH' => 8
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Sources/geshi/zxbasic.php b/Sources/geshi/zxbasic.php
        new file mode 100644
        index 0000000..b1de472
        --- /dev/null
        +++ b/Sources/geshi/zxbasic.php
        @@ -0,0 +1,150 @@
        + 'ZXBasic',
        +    'COMMENT_SINGLE' => array(
        +        1 => "'",
        +        2 => '#',
        +        3 => 'REM'
        +        ),
        +    'COMMENT_MULTI' => array("/'" => "'/"),
        +    'CASE_KEYWORDS' => GESHI_CAPS_UPPER, //GESHI_CAPS_NO_CHANGE,
        +    'QUOTEMARKS' => array('"'),
        +    'ESCAPE_CHAR' => '\\',
        +    'KEYWORDS' => array(
        +        1 => array(
        +            "ASM", "BEEP", "BOLD", "BORDER", "BRIGHT", "ByRef", "ByVal", "CAST",
        +            "CIRCLE", "CLS", "CONST", "CONTINUE", "DECLARE", "DIM", "DO",
        +            "DRAW", "ELSE", "ELSEIF", "END", "EXIT", "FastCall", "FLASH", "FOR",
        +            "FUNCTION", "GOTO", "GOSUB", "GO", "IF", "INK", "INVERSE", "ITALIC",
        +            "LET", "LOAD", "LOOP", "NEXT", "OVER", "PAPER", "PAUSE", "PI",
        +            "PLOT", "POKE", "PRINT", "RANDOMIZE", "REM", "RETURN", "SAVE",
        +            "StdCall", "Sub", "THEN", "TO", "UNTIL", "VERIFY", "WEND", "WHILE",
        +            ),
        +
        +        // types
        +        2 => array(
        +            'byte', 'ubyte', 'integer', 'uinteger', 'long', 'ulong', 'fixed',
        +            'float', 'string'
        +            ),
        +
        +        // Functions
        +        3 => array(
        +            "ABS", "ACS", "ASN", "ATN", "CHR", "CODE", "COS", "CSRLIN", "EXP",
        +            "HEX", "HEX16", "INKEY", "INT", "LEN", "LN", "PEEK", "POS", "RND",
        +            "SCREEN$", "SGN", "SIN", "SQR", "STR", "TAN", "VAL",
        +            ),
        +
        +        // Operators and modifiers
        +        4 => array(
        +            "AT", "AS", "AND", "MOD", "NOT", "OR", "SHL", "SHR", "STEP", "XOR"
        +            )
        +        ),
        +    'SYMBOLS' => array(
        +        '(', ')'
        +        ),
        +    'CASE_SENSITIVE' => array(
        +        GESHI_COMMENTS => false,
        +        1 => false,
        +        2 => false,
        +        3 => false,
        +        4 => false
        +        ),
        +    'STYLES' => array(
        +        'KEYWORDS' => array(
        +            1 => 'color: #000080; font-weight: bold;', // Commands
        +            2 => 'color: #800080; font-weight: bold;', // Types
        +            3 => 'color: #006000; font-weight: bold;', // Functions
        +            4 => 'color: #801010; font-weight: bold;'  // Operators and Modifiers
        +            ),
        +        'COMMENTS' => array(
        +            1 => 'color: #808080; font-style: italic;',
        +            2 => 'color: #339933;',
        +            3 => 'color: #808080; font-style: italic;',
        +            'MULTI' => 'color: #808080; font-style: italic;'
        +            ),
        +        'BRACKETS' => array(
        +            //0 => 'color: #66cc66;'
        +            0 => 'color: #007676;'
        +            ),
        +        'STRINGS' => array(
        +            //0 => 'color: #ff0000;'
        +            0 => 'color: #A00000; font-style: italic;'
        +            ),
        +        'NUMBERS' => array(
        +            //0 => 'color: #cc66cc;'
        +            0 => 'color: #b05103;'// font-weight: bold;'
        +            ),
        +        'METHODS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'SYMBOLS' => array(
        +            0 => 'color: #66cc66;'
        +            ),
        +        'ESCAPE_CHAR' => array(
        +            0 => 'color: #000099;'
        +            ),
        +        'SCRIPT' => array(
        +            ),
        +        'REGEXPS' => array(
        +            )
        +        ),
        +    'URLS' => array(
        +        1 => '',
        +        2 => '',
        +        3 => '',
        +        4 => ''
        +        ),
        +    'OOLANG' => true,
        +    'OBJECT_SPLITTERS' => array(
        +        1 => '.'
        +        ),
        +    'REGEXPS' => array(
        +        ),
        +    'STRICT_MODE_APPLIES' => GESHI_NEVER,
        +    'SCRIPT_DELIMITERS' => array(
        +        ),
        +    'HIGHLIGHT_STRICT_BLOCK' => array(
        +        )
        +);
        +
        +?>
        \ No newline at end of file
        diff --git a/Themes/core/Settings.template.php b/Themes/core/Settings.template.php
        index db97f50..2097ac8 100644
        --- a/Themes/core/Settings.template.php
        +++ b/Themes/core/Settings.template.php
        @@ -266,6 +266,108 @@ function template_settings()
         			'id' => 'additional_options_collapsable',
         			'label' => $txt['additional_options_collapsable'],
         		),
        +
        +	'',
        +		array(
        +			'id' => 'geshi_code_container',
        +			'label' => $txt['geshi_code_container'],
        +			'description' => $txt['geshi_code_container_desc'],
        +			'options' => array(
        +				0 => 'GESHI_HEADER_NONE',
        +				1 => 'GESHI_HEADER_DIV',
        +				2 => 'GESHI_HEADER_PRE',
        +				3 => 'GESHI_HEADER_PRE_VALID',
        +				4 => 'GESHI_HEADER_PRE_TABLE',
        +			),
        +			'type' => 'number',
        +		),
        +		array(
        +			'id' => 'geshi_line_numbers',
        +			'label' => $txt['geshi_line_numbers'],
        +			'description' => $txt['geshi_line_numbers_desc'],
        +			'options' => array(
        +				0 => 'GESHI_NO_LINE_NUMBERS',
        +				1 => 'GESHI_NORMAL_LINE_NUMBERS',
        +				2 => 'GESHI_FANCY_LINE_NUMBERS',
        +			),
        +			'type' => 'number',
        +		),
        +		array(
        +			'id' => 'geshi_fancy_line_number',
        +			'label' => $txt['geshi_fancy_line_number'],
        +			'description' => $txt['geshi_fancy_line_number_desc'],
        +			'type' => 'number',
        +			'size' => 2,
        +		),
        +		array(
        +			'id' => 'geshi_line_style',
        +			'label' => $txt['geshi_line_style'],
        +			'description' => $txt['geshi_line_style_desc'],
        +			'type' => 'text',
        +			'size' => 50,
        +		),
        +		array(
        +			'id' => 'geshi_line_style_fancy',
        +			'label' => $txt['geshi_line_style_fancy'],
        +			'description' => $txt['geshi_line_style_fancy_desc'],
        +			'type' => 'text',
        +			'size' => 50,
        +		),
        +		array(
        +			'id' => 'geshi_highlight_lines_extra_style',
        +			'label' => $txt['geshi_highlight_lines_extra_style'],
        +			'description' => $txt['geshi_highlight_lines_extra_style_desc'],
        +			'type' => 'text',
        +			'size' => 50,
        +		),
        +		array(
        +			'id' => 'geshi_enable_pre_header',
        +			'label' => $txt['geshi_enable_pre_header'],
        +			'description' => $txt['geshi_enable_pre_header_desc'],
        +		),
        +		array(
        +			'id' => 'geshi_pre_header',
        +			'label' => $txt['geshi_pre_header'],
        +			'description' => $txt['geshi_pre_header_desc'],
        +			'type' => 'text',
        +			'size' => 50,
        +		),
        +		array(
        +			'id' => 'geshi_enable_header',
        +			'label' => $txt['geshi_enable_header'],
        +			'description' => $txt['geshi_enable_header_desc'],
        +		),
        +		array(
        +			'id' => 'geshi_header',
        +			'label' => $txt['geshi_header'],
        +			'description' => $txt['geshi_header_desc'],
        +			'type' => 'text',
        +			'size' => 50,
        +		),
        +		array(
        +			'id' => 'geshi_enable_footer',
        +			'label' => $txt['geshi_enable_footer'],
        +			'description' => $txt['geshi_enable_footer_desc'],
        +		),
        +		array(
        +			'id' => 'geshi_footer',
        +			'label' => $txt['geshi_footer'],
        +			'description' => $txt['geshi_footer_desc'],
        +			'type' => 'text',
        +			'size' => 50,
        +		),
        +		array(
        +			'id' => 'geshi_enable_language_selector',
        +			'label' => $txt['geshi_enable_language_selector'],
        +			'description' => $txt['geshi_enable_language_selector_desc'],
        +		),
        +		array(
        +			'id' => 'geshi_language_selector',
        +			'label' => $txt['geshi_language_selector'],
        +			'description' => $txt['geshi_language_selector_desc'],
        +			'type' => 'text',
        +			'size' => 50,
        +		),
         	);
         }
         
        diff --git a/Themes/core/css/index.css b/Themes/core/css/index.css
        index 4147809..d34368f 100644
        --- a/Themes/core/css/index.css
        +++ b/Themes/core/css/index.css
        @@ -3520,4 +3520,23 @@ ul.nolist li
         	{
         		border: none;
         	}
        -}
        \ No newline at end of file
        +}
        +.geshi {
        +	color: #000000;
        +	background: #ffffff;
        +	font-family: monospace;
        +	font-size: 13px;
        +	line-height: 18px;
        +	border: 1px solid #aaaaaa;
        +	margin: 1px auto 1px auto;
        +	width: 99%;
        +	white-space:normal;
        +	white-space: pre;
        +	white-space: pre-wrap;
        +	white-space: -moz-pre-wrap;
        +	white-space: -pre-wrap;
        +	white-space: -o-pre-wrap;
        +	word-wrap: break-word;
        +	overflow: auto;
        +	max-height: 306px;
        +}
        diff --git a/Themes/default/GenericControls.template.php b/Themes/default/GenericControls.template.php
        index 833ae0a..d3d1eff 100644
        --- a/Themes/default/GenericControls.template.php
        +++ b/Themes/default/GenericControls.template.php
        @@ -206,6 +206,25 @@ function template_control_richedit($editor_id, $smileyContainer = null, $bbcCont
         									\'white\': ', JavaScriptEscape($txt['white']), '
         								}
         							}';
        +
        +
        +					if ($settings['geshi_enable_language_selector']) {
        +						$arrGLanguages = explode(',', $settings['geshi_language_selector']);
        +						echo ',
        +							{
        +								sType: \'select\',
        +								sName: \'sel_code\',
        +								oOptions: {
        +									\'\': ', JavaScriptEscape($txt['code']);
        +						foreach ($arrGLanguages as $gLang) {
        +							list($glCode, $glName) = explode(':', $gLang);
        +							echo ',
        +									\''. $glCode .'\': ', JavaScriptEscape($glName);
        +						}
        +						echo '
        +								}
        +							}';
        +					}
         				}
         				echo '
         						]', $i == count($context['bbc_tags']) - 1 ? '' : ',';
        diff --git a/Themes/default/Settings.template.php b/Themes/default/Settings.template.php
        index 3126fa0..3147d0e 100644
        --- a/Themes/default/Settings.template.php
        +++ b/Themes/default/Settings.template.php
        @@ -272,6 +272,108 @@ function template_settings()
         			'id' => 'additional_options_collapsable',
         			'label' => $txt['additional_options_collapsable'],
         		),
        +
        +	'',
        +		array(
        +			'id' => 'geshi_code_container',
        +			'label' => $txt['geshi_code_container'],
        +			'description' => $txt['geshi_code_container_desc'],
        +			'options' => array(
        +				0 => 'GESHI_HEADER_NONE',
        +				1 => 'GESHI_HEADER_DIV',
        +				2 => 'GESHI_HEADER_PRE',
        +				3 => 'GESHI_HEADER_PRE_VALID',
        +				4 => 'GESHI_HEADER_PRE_TABLE',
        +			),
        +			'type' => 'number',
        +		),
        +		array(
        +			'id' => 'geshi_line_numbers',
        +			'label' => $txt['geshi_line_numbers'],
        +			'description' => $txt['geshi_line_numbers_desc'],
        +			'options' => array(
        +				0 => 'GESHI_NO_LINE_NUMBERS',
        +				1 => 'GESHI_NORMAL_LINE_NUMBERS',
        +				2 => 'GESHI_FANCY_LINE_NUMBERS',
        +			),
        +			'type' => 'number',
        +		),
        +		array(
        +			'id' => 'geshi_fancy_line_number',
        +			'label' => $txt['geshi_fancy_line_number'],
        +			'description' => $txt['geshi_fancy_line_number_desc'],
        +			'type' => 'number',
        +			'size' => 2,
        +		),
        +		array(
        +			'id' => 'geshi_line_style',
        +			'label' => $txt['geshi_line_style'],
        +			'description' => $txt['geshi_line_style_desc'],
        +			'type' => 'text',
        +			'size' => 50,
        +		),
        +		array(
        +			'id' => 'geshi_line_style_fancy',
        +			'label' => $txt['geshi_line_style_fancy'],
        +			'description' => $txt['geshi_line_style_fancy_desc'],
        +			'type' => 'text',
        +			'size' => 50,
        +		),
        +		array(
        +			'id' => 'geshi_highlight_lines_extra_style',
        +			'label' => $txt['geshi_highlight_lines_extra_style'],
        +			'description' => $txt['geshi_highlight_lines_extra_style_desc'],
        +			'type' => 'text',
        +			'size' => 50,
        +		),
        +		array(
        +			'id' => 'geshi_enable_pre_header',
        +			'label' => $txt['geshi_enable_pre_header'],
        +			'description' => $txt['geshi_enable_pre_header_desc'],
        +		),
        +		array(
        +			'id' => 'geshi_pre_header',
        +			'label' => $txt['geshi_pre_header'],
        +			'description' => $txt['geshi_pre_header_desc'],
        +			'type' => 'text',
        +			'size' => 50,
        +		),
        +		array(
        +			'id' => 'geshi_enable_header',
        +			'label' => $txt['geshi_enable_header'],
        +			'description' => $txt['geshi_enable_header_desc'],
        +		),
        +		array(
        +			'id' => 'geshi_header',
        +			'label' => $txt['geshi_header'],
        +			'description' => $txt['geshi_header_desc'],
        +			'type' => 'text',
        +			'size' => 50,
        +		),
        +		array(
        +			'id' => 'geshi_enable_footer',
        +			'label' => $txt['geshi_enable_footer'],
        +			'description' => $txt['geshi_enable_footer_desc'],
        +		),
        +		array(
        +			'id' => 'geshi_footer',
        +			'label' => $txt['geshi_footer'],
        +			'description' => $txt['geshi_footer_desc'],
        +			'type' => 'text',
        +			'size' => 50,
        +		),
        +		array(
        +			'id' => 'geshi_enable_language_selector',
        +			'label' => $txt['geshi_enable_language_selector'],
        +			'description' => $txt['geshi_enable_language_selector_desc'],
        +		),
        +		array(
        +			'id' => 'geshi_language_selector',
        +			'label' => $txt['geshi_language_selector'],
        +			'description' => $txt['geshi_language_selector_desc'],
        +			'type' => 'text',
        +			'size' => 50,
        +		),
         	);
         }
         
        diff --git a/Themes/default/css/index.css b/Themes/default/css/index.css
        index fc47ff4..9d7b71c 100644
        --- a/Themes/default/css/index.css
        +++ b/Themes/default/css/index.css
        @@ -3617,4 +3617,23 @@ span.hidelink
         	{
         		border: none;
         	}
        -}
        \ No newline at end of file
        +}
        +.geshi {
        +	color: #000000;
        +	background: #ffffff;
        +	font-family: monospace;
        +	font-size: 13px;
        +	line-height: 18px;
        +	border: 1px solid #aaaaaa;
        +	margin: 1px auto 1px auto;
        +	width: 99%;
        +	white-space:normal;
        +	white-space: pre;
        +	white-space: pre-wrap;
        +	white-space: -moz-pre-wrap;
        +	white-space: -pre-wrap;
        +	white-space: -o-pre-wrap;
        +	word-wrap: break-word;
        +	overflow: auto;
        +	max-height: 306px;
        +}
        diff --git a/Themes/default/languages/Themes.english.php b/Themes/default/languages/Themes.english.php
        index 27bb184..65eb27e 100644
        --- a/Themes/default/languages/Themes.english.php
        +++ b/Themes/default/languages/Themes.english.php
        @@ -145,4 +145,33 @@ $txt['themeadmin_edit_preview'] = 'Preview';
         $txt['themeadmin_selectable'] = 'Themes that the user is able to select';
         $txt['themeadmin_themelist_link'] = 'Show the list of themes';
         
        +$txt['geshi_code_container'] = 'GeSHi Code Container';
        +$txt['geshi_code_container_desc'] = 'For reference please see 3.1 The Code Container.';
        +$txt['geshi_line_numbers'] = 'Line numbers';
        +$txt['geshi_line_numbers_desc'] = 'For reference please see 3.2 Line Numbers.';
        +$txt['geshi_fancy_line_number'] = 'Fancy line numbers';
        +$txt['geshi_fancy_line_number_desc'] = 'For reference please see 3.2 Line Numbers.';
        +$txt['geshi_line_style'] = 'Line style';
        +$txt['geshi_line_style_desc'] = 'For reference please see 3.2.2 Styling Line Numbers.';
        +$txt['geshi_line_style_fancy'] = 'Fancy line style';
        +$txt['geshi_line_style_fancy_desc'] = 'For reference please see 3.2.2 Styling Line Numbers.';
        +$txt['geshi_highlight_lines_extra_style'] = 'Highlighted lines style';
        +$txt['geshi_highlight_lines_extra_style_desc'] = 'For reference please see 3.15.2 Styles for the Highlighted Lines.';
        +$txt['geshi_enable_pre_header'] = 'Show header above GeSHi Code Container';
        +$txt['geshi_enable_pre_header_desc'] = '';
        +$txt['geshi_pre_header'] = 'Header above GeSHi Code Container';
        +$txt['geshi_pre_header_desc'] = 'You can use {CODE}, {TAG} and {LANGUAGE} keywords. For reference please see cb|GeSHi-mod help.';
        +$txt['geshi_enable_header'] = 'Show header inside GeSHi Code Container';
        +$txt['geshi_enable_header_desc'] = '';
        +$txt['geshi_header'] = 'Header inside GeSHi Code Container';
        +$txt['geshi_header_desc'] = 'You can use these keywords. For reference please see 3.12.2 Setting Header Content.';
        +$txt['geshi_enable_footer'] = 'Show footer inside GeSHi Code Container';
        +$txt['geshi_enable_footer_desc'] = '';
        +$txt['geshi_footer'] = 'Footer inside GeSHi Code Container';
        +$txt['geshi_footer_desc'] = 'You can use these keywords. For reference please see 3.12.3 Setting Footer Content.';
        +$txt['geshi_enable_language_selector'] = 'Show language selector';
        +$txt['geshi_enable_language_selector_desc'] = 'For reference please see cb|GeSHi-mod help.';
        +$txt['geshi_language_selector'] = 'Selectable languages';
        +$txt['geshi_language_selector_desc'] = 'For reference please see cb|GeSHi-mod help.';
        +
         ?>
        \ No newline at end of file
        diff --git a/Themes/default/scripts/editor.js b/Themes/default/scripts/editor.js
        index 1aecb76..910bb6f 100644
        --- a/Themes/default/scripts/editor.js
        +++ b/Themes/default/scripts/editor.js
        @@ -780,6 +780,16 @@ smc_Editor.prototype.handleSelectChange = function (oSelectProperties)
         			this.smf_execCommand('forecolor', false, sValue);
         	}
         
        +	else if (oSelectProperties.sName == 'sel_code')
        +	{
        +		// Are we in boring mode?
        +		if (!this.bRichTextEnabled)
        +		{
        +			surroundText('[code=' + sValue + ']', '[/code]', this.oTextHandle);
        +			oSelectProperties.oSelect.selectedIndex = 0;
        +		}
        +	}
        +
         	this.updateEditorControls();
         
         	return true;