Ajout librairie geshi pour présentation des exemples de codes

This commit is contained in:
Michael RICOIS 2010-09-21 15:18:10 +00:00
parent 219278c96d
commit 7bebb91add
255 changed files with 70936 additions and 0 deletions

View File

@ -0,0 +1,124 @@
<?php
/**
* Another GeSHi example script
*
* Configure your Apache server with 'AcceptPathInfo true' and something like
* 'Alias /viewmysource /var/www/geshi/contrib/aliased.php'. Don't forget
* to protect this alias as necessary.
*
* Usage - visit /viewmysource/file.name.ext to see that file with syntax
* highlighting, where "viewmysource" is the name of the alias you set up.
* You can use this without an alias too, just by visiting
* aliased.php/file.name.ext.
*
* @author Ross Golder <ross@golder.org>
* @version $Id: aliased.php 785 2006-07-19 10:09:45Z oracleshinoda $
*/
// Your config here
define("SOURCE_ROOT", "/var/www/your/source/root/");
// Assume you've put geshi in the include_path already
require_once("geshi.php");
// Get path info
$path = SOURCE_ROOT.$_SERVER['PATH_INFO'];
// Check for dickheads trying to use '../' to get to sensitive areas
$base_path_len = strlen(SOURCE_ROOT);
$real_path = realpath($path);
if(strncmp($real_path, SOURCE_ROOT, $base_path_len)) {
exit("Stop that.");
}
// Check file exists
if(!file_exists($path)) {
exit("File not found ($path).");
}
// Gather contents
$contents = file_get_contents($path);
// Prepare GeSHi instance
$geshi =& new GeSHi($contents, "PHP");
$geshi->set_header_type(GESHI_HEADER_PRE);
$geshi->enable_classes();
$geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 10);
$geshi->set_overall_style('color: #000066; border: 1px solid #d0d0d0; background-color: #f0f0f0;', true);
$geshi->set_line_style('font: normal normal 95% \'Courier New\', Courier, monospace; color: #003030;', 'font-weight: bold; color: #006060;', true);
$geshi->set_code_style('color: #000020;', 'color: #000020;');
$geshi->set_link_styles(GESHI_LINK, 'color: #000060;');
$geshi->set_link_styles(GESHI_HOVER, 'background-color: #f0f000;');
$geshi->set_header_content('Source code viewer');
$geshi->set_header_content_style('font-family: Verdana, Arial, sans-serif; color: #808080; font-size: 70%; font-weight: bold; background-color: #f0f0ff; border-bottom: 1px solid #d0d0d0; padding: 2px;');
$geshi->set_footer_content('Parsed in <TIME> seconds, using GeSHi <VERSION>');
$geshi->set_footer_content_style('font-family: Verdana, Arial, sans-serif; color: #808080; font-size: 70%; font-weight: bold; background-color: #f0f0ff; border-top: 1px solid #d0d0d0; padding: 2px;');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Source code viewer - <?php echo $path; ?></title>
<style type="text/css">
<!--
<?php
// Output the stylesheet. Note it doesn't output the <style> tag
echo $geshi->get_stylesheet();
?>
html {
background-color: #f0f0f0;
}
body {
font-family: Verdana, Arial, sans-serif;
margin: 10px;
border: 2px solid #e0e0e0;
background-color: #fcfcfc;
padding: 5px;
}
h2 {
margin: .1em 0 .2em .5em;
border-bottom: 1px solid #b0b0b0;
color: #b0b0b0;
font-weight: normal;
font-size: 150%;
}
h3 {
margin: .1em 0 .2em .5em;
color: #b0b0b0;
font-weight: normal;
font-size: 120%;
}
#footer {
text-align: center;
font-size: 80%;
color: #a9a9a9;
}
#footer a {
color: #9999ff;
}
textarea {
border: 1px solid #b0b0b0;
font-size: 90%;
color: #333;
margin-left: 20px;
}
select, input {
margin-left: 20px;
}
p {
font-size: 90%;
margin-left: .5em;
}
-->
</style>
</head>
<body>
<?php
// The fun part :)
echo $geshi->parse_code();
?>
<hr/>
</body>
</html>

View File

@ -0,0 +1,456 @@
<?php
/*************************************************************************************
* cssgen.php
* ----------
* Author: Nigel McNie (nigel@geshi.org)
* Copyright: (c) 2004 Nigel McNie
* Release Version: 1.0.8.6
* Date Started: 2004/05/20
*
* Application to generate custom CSS files for GeSHi (based on an idea by Andreas
* Gohr)
*
*************************************************************************************
*
* 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
*
************************************************************************************/
set_magic_quotes_runtime(0);
//
// Functions
//
function make_header ( $title )
{
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>GeSHi CSS Generator :: ' . $title . ' </title>
<style type="text/css" media="screen">
<!--
html {
font-family: Verdana, Arial, sans-serif;
font-size: 80%;
background-color: #d0d0d0;
}
body {
margin: 10px;
padding: 5px;
border: 1px solid #f0f0f0;
background-color: #f6f6f6;
}
h1 {
border-bottom: 2px solid #e0e0e0;
font-weight: normal;
font-size: 150%;
color: #c0c0c0;
}
input, textarea {
border: 1px solid #d0d0d0;
}
th {
text-align: right;
font-weight: normal;
}
pre {
font-size: 110%;
color: #202020;
}
#footer {
color: #b0b0b0;
text-align: center;
font-size: 90%;
margin: 0 auto;
border-top: 1px solid #e0e0e0;
}
#footer a {
color: #c0c0c0;
}
-->
</style>
<script type="text/javascript">
function select (state)
{
var cboxes = document.getElementsByTagName(\'input\');
for (var i = 0; i < cboxes.length; i++) {
if (cboxes[i].type == "checkbox") {
if (state == "true") {
cboxes[i].checked = true;
} else if (state == "false") {
cboxes[i].checked = false;
} else if (state == "invert") {
cboxes[i].checked = !cboxes[i].checked;
}
}
}
}
</script>
</head>
<body>
<h1>' . $title . '</h1>
';
}
function make_footer ()
{
echo '<div id="footer"><a href="http://qbnz.com/highlighter/">GeSHi</a> &copy; Nigel McNie, 2004, released under the GPL</div></body>
</html>';
}
function get_var ( $var_name )
{
if ( isset($_GET[$var_name]) )
{
return str_replace("\'", "'", $_GET[$var_name]);
}
elseif ( isset($_POST[$var_name]) )
{
return str_replace("\'", "'", $_POST[$var_name]);
}
return null;
}
//
// Unset everything
//
foreach ( $_REQUEST as $var )
{
unset($$var);
}
foreach ( array(
'_POST' => 'HTTP_POST_VARS',
'_GET' => 'HTTP_GET_VARS',
'_COOKIE' => 'HTTP_COOKIE_VARS',
'_SERVER' => 'HTTP_SERVER_VARS',
'_ENV' => 'HTTP_ENV_VARS',
'_FILES' => 'HTTP_POST_FILES') as $array => $other )
{
if ( !isset($$array) )
{
$$array = $$other;
}
unset($$other);
}
// Get what step we're up to
$step = get_var('step');
if ( !$step || $step == 1 )
{
$errors = 0;
make_header('Step 1');
echo "Welcome to the GeSHi CSS generator.<br /><pre>Searching for GeSHi... ";
// Find GeSHi
$geshi_path = get_var('geshi-path');
$geshi_lang_path = get_var('geshi-lang-path');
if ( !$geshi_path )
{
$geshi_path = '../geshi.php';
}
if ( !$geshi_lang_path )
{
$geshi_lang_path = '../geshi/';
}
if ( is_file($geshi_path) && is_readable($geshi_path) )
{
// Get file contents and see if GeSHi is in here
$file = @file($geshi_path);
$contents = '';
foreach ( $file as $line )
{
$contents .= $line;
}
if ( strpos($contents, '<?php
/**
* GeSHi - Generic Syntax Highlighter') !== false )
{
echo '<span style="color: green;">Found at ' . realpath($geshi_path) . '</span>';
}
else
{
++$errors;
$no_geshi_dot_php_error = true;
echo '<span style="color: red;">Not found</span>';
}
}
else
{
++$errors;
$no_geshi_dot_php_error = true;
echo '<span style="color: red;">Not found</span>';
}
// Find language files
echo "\nSearching for language files... ";
if ( is_readable($geshi_lang_path . 'css-gen.cfg') )
{
echo '<span style="color: green;">Found at ' . realpath($geshi_lang_path) . '</span>';
}
else
{
++$errors;
$no_lang_dir_error = true;
echo '<span style="color: red;">Not found</span>';
}
echo "</pre>\n";
if ( $errors > 0 )
{
// We're gonna have to ask for the paths...
echo 'Unfortunately CSSGen could not detect the following paths. Please input them and press &quot;submit&quot; to try again.';
echo "
<form action=\"cssgen.php\" method=\"post\">";
if ( $no_geshi_dot_php_error )
{
echo "
<br />geshi.php: <input type=\"text\" name=\"geshi-path\" value=\"" . realpath('../geshi.php') . "\" size=\"50\" />";
}
else
{
echo '<input type="hidden" name="geshi-path" value="' . htmlspecialchars($geshi_path) . '" />';
}
if ( $no_lang_dir_error )
{
echo "
<br />language files directory: <input type=\"text\" name=\"geshi-lang-path\" value=\"" . realpath('../geshi/') . "/\" size=\"50\" /> (should have a trailing slash)";
}
else
{
echo '<input type="hidden" name="geshi-lang-path" value="' . $geshi_lang_path . '" />';
}
echo "
<br /><input type=\"submit\" value=\"Search\" /></form>";
}
else
{
// no errors - echo continue form
echo 'Everything seems to be detected successfully. Use the button to continue.
<br /><br /><form action="cssgen.php?step=2" method="post">
<input type="hidden" name="geshi-path" value="' . realpath($geshi_path) . '" /><input type="hidden" name="geshi-lang-path" value="' . realpath($geshi_lang_path) . '" />
<input type="submit" value="Step 2" />';
}
make_footer();
}
// Step 2
elseif ( $step == 2 )
{
make_header('Step 2');
$geshi_path = get_var('geshi-path');
$geshi_lang_path = get_var('geshi-lang-path');
$dh = opendir($geshi_lang_path);
$lang_files = array();
$file = readdir($dh);
while ( $file !== false )
{
if ( $file == '.' || $file == '..' || $file == 'CVS' || $file == 'css-gen.cfg' )
{
$file = readdir($dh);
continue;
}
$lang_files[] = $file;
$file = readdir($dh);
}
closedir($dh);
sort($lang_files);
// Now installed languages are in $lang_files
echo '<form action="cssgen.php?step=3" method="post" id="step2">
What languages are you wanting to make this stylesheet for?<br /><br />
Detected languages:<br />';
foreach ( $lang_files as $lang )
{
$lang = substr($lang, 0, strpos($lang, '.'));
if ($lang) {
echo "<input type=\"checkbox\" name=\"langs[$lang]\" checked=\"checked\" />&nbsp;$lang<br />\n";
}
}
echo "Select: <a href=\"javascript:select('true')\">All</a>, <a href=\"javascript:select('false')\">None</a>, <a href=\"javascript:select('invert')\">Invert</a><br />\n";
echo 'If you\'d like any other languages not detected here to be supported, please enter
them here, one per line:<br /><textarea rows="4" cols="20" name="extra-langs"></textarea><br />
';
echo '<br />Styles:
<table>
<tr><th>Style for the overall code block:</th><td><input type="text" name="overall" value="border: 1px dotted #a0a0a0; font-family: \'Courier New\', Courier, monospace; background-color: #f0f0f0; color: #0000bb;" /></td></tr>
<tr><th>Default Styles</th><td><input type="text" name="default-styles" value="font-weight:normal;background:transparent;color:#000; padding-left: 5px;" /></td></tr>
<tr><th>Keywords I (if, do, while etc)</th><td><input type="text" name="keywords-1" value="color: #a1a100;" /></td></tr>
<tr><th>Keywords II (null, true, false etc)</th><td><input type="text" name="keywords-2" value="color: #000; font-weight: bold;" /></td></tr>
<tr><th>Inbuilt Functions (echo, print etc)</th><td><input type="text" name="keywords-3" value="color: #000066;" /></td></tr>
<tr><th>Data Types (int, boolean etc)</th><td><input type="text" name="keywords-4" value="color: #f63333;" /></td></tr>
<tr><th>Comments (//, <!-- --> etc)</th><td><input type="text" name="comments" value="color: #808080;" /></td></tr>
<tr><th>Escaped Characters (\n, \t etc)</th><td><input type="text" name="escaped-chars" value="color: #000033; font-weight: bold;" /></td></tr>
<tr><th>Brackets ( ([{}]) etc)</th><td><input type="text" name="brackets" value="color: #66cc66;" /></td></tr>
<tr><th>Strings ("foo" etc)</th><td><input type="text" name="strings" value="color: #ff0000;" /></td></tr>
<tr><th>Numbers (1, -54, 2.5 etc)</th><td><input type="text" name="numbers" value="color: #ff33ff;" /></td></tr>
<tr><th>Methods (Foo.bar() etc)</th><td><input type="text" name="methods" value="color: #006600;" /></td></tr>
</table>';
echo '<input type="hidden" name="geshi-path" value="' . realpath($geshi_path) . '" /><input type="hidden" name="geshi-lang-path" value="' . realpath($geshi_lang_path) . '" />
<input type="submit" value="Step 3" /></form>';
make_footer();
}
// Step 3
elseif ( $step == 3 )
{
make_header('Step 3');
echo '<p>Here is your completed stylesheet. Note that it may not be perfect - no regular expression styles are included for one thing,
you\'ll have to add those yourself (php and xml are just two languages that use them), and line numbers are not included, however
it includes most of the basic information.</p>';
// Make the stylesheet
$part_selector_1 = '';
$part_selector_2 = '';
$part_selector_3 = '';
$langs = get_var('langs');
$extra_langs = trim(get_var('extra-langs'));
if ( $extra_langs != '' )
{
$l = explode("\r\n", $extra_langs);
foreach ( $l as $lng )
{
$langs[$lng] = true;
}
}
foreach ( $langs as $lang => $dummy )
{
$part_selector_1 .= ".$lang {PART}, ";
$part_selector_2 .= ".$lang {PART1}, .$lang {PART2}, ";
$part_selector_3 .= ".$lang {PART1}, .$lang {PART2}, .$lang {PART3}, ";
}
$part_selector_1 = substr($part_selector_1, 0, -2);
$part_selector_2 = substr($part_selector_2, 0, -2);
$part_selector_3 = substr($part_selector_3, 0, -2);
$default_styles = get_var('default-styles');
$ol_selector = str_replace('{PART}', 'ol', $part_selector_1);
$overall_styles = get_var('overall');
$overall_selector = str_replace('{PART}', '', $part_selector_1);
$stylesheet = "/* GeSHi (c) Nigel McNie 2004 (http://qbnz.com/highlighter) */";
if ( $overall != '' )
{
$stylesheet .= "\n$overall_selector {{$overall_styles}}";
}
if ( $default_styles != '' )
{
$default_selector = str_replace(array('{PART1}', '{PART2}'), array('.de1', '.de2'), $part_selector_2);
$stylesheet .= "\n$default_selector {{$default_styles}}";
}
// Do keywords
$keywords_1 = get_var('keywords-1');
$keyword_selector_1 = str_replace('{PART}', '.kw1', $part_selector_1);
if ( $keywords_1 != '' )
{
$stylesheet .= "\n$keyword_selector_1 {{$keywords_1}}";
}
$keywords_2 = get_var('keywords-2');
$keyword_selector_2 = str_replace('{PART}', '.kw2', $part_selector_1);
if ( $keywords_2 != '' )
{
$stylesheet .= "\n$keyword_selector_2 {{$keywords_2}}";
}
$keywords_3 = get_var('keywords-3');
$keyword_selector_3 = str_replace('{PART}', '.kw3', $part_selector_1);
if ( $keywords_3 != '' )
{
$stylesheet .= "\n$keyword_selector_3 {{$keywords_3}}";
}
$keywords_4 = get_var('keywords-4');
$keyword_selector_4 = str_replace('{PART}', '.kw4', $part_selector_1);
if ( $keywords_4 != '' )
{
$stylesheet .= "\n$keyword_selector_4 {{$keywords_4}}";
}
// Do other lexics
$comments = get_var('comments');
$comment_selector = str_replace(array('{PART1}', '{PART2}', '{PART3}'), array('.co1', '.co2', '.coMULTI'), $part_selector_3);
if ( $comments != '' )
{
$stylesheet .= "\n$comment_selector {{$comments}}";
}
$esc = get_var('escaped-chars');
$esc_selector = str_replace('{PART}', '.es0', $part_selector_1);
if ( $esc != '' )
{
$stylesheet .= "\n$esc_selector {{$esc}}";
}
$brackets = get_var('brackets');
$brk_selector = str_replace('{PART}', '.br0', $part_selector_1);
if ( $brackets != '' )
{
$stylesheet .= "\n$brk_selector {{$brackets}}";
}
$strings = get_var('strings');
$string_selector = str_replace('{PART}', '.st0', $part_selector_1);
if ( $strings != '' )
{
$stylesheet .= "\n$string_selector {{$strings}}";
}
$numbers = get_var('numbers');
$num_selector = str_replace('{PART}', '.nu0', $part_selector_1);
if ( $numbers != '' )
{
$stylesheet .= "\n$num_selector {{$numbers}}";
}
$methods = get_var('methods');
$method_selector = str_replace('{PART}', '.me0', $part_selector_1);
if ( $methods != '' )
{
$stylesheet .= "\n$method_selector {{$methods}}";
}
echo "<pre>$stylesheet</pre>";
make_footer();
}
?>

View File

@ -0,0 +1,59 @@
<?php
/**
* A simple script which outputs the CSS classes for all languages
* supported by GeSHi. You can access it directly to download
* the CSS file. On *NIX you can also do a simple `php cssgen.php > geshi.css`.
*
* 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
*
* @package geshi
* @subpackage contrib
* @author revulo <revulon@gmail.com>
* @copyright 2008 revulo
* @license http://gnu.org/copyleft/gpl.html GNU GPL
*
*/
require dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'geshi.php';
$geshi = new GeSHi;
$languages = array();
if ($handle = opendir($geshi->language_path)) {
while (($file = readdir($handle)) !== false) {
$pos = strpos($file, '.');
if ($pos > 0 && substr($file, $pos) == '.php') {
$languages[] = substr($file, 0, $pos);
}
}
closedir($handle);
}
sort($languages);
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="geshi.css"');
echo "/**\n".
" * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\n" .
" * (http://qbnz.com/highlighter/ and http://geshi.org/)\n".
" */\n";
foreach ($languages as $language) {
$geshi->set_language($language);
// note: the false argument is required for stylesheet generators, see API documentation
$css = $geshi->get_stylesheet(false);
echo preg_replace('/^\/\*\*.*?\*\//s', '', $css);
}

View File

@ -0,0 +1,217 @@
<?php
/**
* GeSHi example script
*
* Just point your browser at this script (with geshi.php in the parent directory,
* and the language files in subdirectory "../geshi/")
*
* @author Nigel McNie
* @version $Id: example.php 1512 2008-07-21 21:05:40Z benbe $
*/
header('Content-Type: text/html; charset=utf-8');
error_reporting(E_ALL);
// Rudimentary checking of where GeSHi is. In a default install it will be in ../, but
// it could be in the current directory if the include_path is set. There's nowhere else
// we can reasonably guess.
if (is_readable('../geshi.php')) {
$path = '../';
} elseif (is_readable('geshi.php')) {
$path = './';
} else {
die('Could not find geshi.php - make sure it is in your include path!');
}
require $path . 'geshi.php';
$fill_source = false;
if (isset($_POST['submit'])) {
if (get_magic_quotes_gpc()) {
$_POST['source'] = stripslashes($_POST['source']);
}
if (!strlen(trim($_POST['source']))) {
$_POST['language'] = preg_replace('#[^a-zA-Z0-9\-_]#', '', $_POST['language']);
$_POST['source'] = implode('', @file($path . 'geshi/' . $_POST['language'] . '.php'));
$_POST['language'] = 'php';
} else {
$fill_source = true;
}
// Here's a free demo of how GeSHi works.
// First the initialisation: source code to highlight and the language to use. Make sure
// you sanitise correctly if you use $_POST of course - this very script has had a security
// advisory against it in the past because of this. Please try not to use this script on a
// live site.
$geshi = new GeSHi($_POST['source'], $_POST['language']);
// Use the PRE_VALID header. This means less output source since we don't have to output &nbsp;
// everywhere. Of course it also means you can't set the tab width.
// HEADER_PRE_VALID puts the <pre> tag inside the list items (<li>) thus producing valid HTML markup.
// HEADER_PRE puts the <pre> tag around the list (<ol>) which is invalid in HTML 4 and XHTML 1
// HEADER_DIV puts a <div> tag arount the list (valid!) but needs to replace whitespaces with &nbsp
// thus producing much larger overhead. You can set the tab width though.
$geshi->set_header_type(GESHI_HEADER_PRE_VALID);
// Enable CSS classes. You can use get_stylesheet() to output a stylesheet for your code. Using
// CSS classes results in much less output source.
$geshi->enable_classes();
// Enable line numbers. We want fancy line numbers, and we want every 5th line number to be fancy
$geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 5);
// Set the style for the PRE around the code. The line numbers are contained within this box (not
// XHTML compliant btw, but if you are liberally minded about these things then you'll appreciate
// the reduced source output).
$geshi->set_overall_style('font: normal normal 90% monospace; color: #000066; border: 1px solid #d0d0d0; background-color: #f0f0f0;', false);
// Set the style for line numbers. In order to get style for line numbers working, the <li> element
// is being styled. This means that the code on the line will also be styled, and most of the time
// you don't want this. So the set_code_style reverts styles for the line (by using a <div> on the line).
// So the source output looks like this:
//
// <pre style="[set_overall_style styles]"><ol>
// <li style="[set_line_style styles]"><div style="[set_code_style styles]>...</div></li>
// ...
// </ol></pre>
$geshi->set_line_style('color: #003030;', 'font-weight: bold; color: #006060;', true);
$geshi->set_code_style('color: #000020;', true);
// Styles for hyperlinks in the code. GESHI_LINK for default styles, GESHI_HOVER for hover style etc...
// note that classes must be enabled for this to work.
$geshi->set_link_styles(GESHI_LINK, 'color: #000060;');
$geshi->set_link_styles(GESHI_HOVER, 'background-color: #f0f000;');
// Use the header/footer functionality. This puts a div with content within the PRE element, so it is
// affected by the styles set by set_overall_style. So if the PRE has a border then the header/footer will
// appear inside it.
$geshi->set_header_content('<SPEED> <TIME> GeSHi &copy; 2004-2007, Nigel McNie, 2007-2008 Benny Baumann. View source of example.php for example of using GeSHi');
$geshi->set_header_content_style('font-family: sans-serif; color: #808080; font-size: 70%; font-weight: bold; background-color: #f0f0ff; border-bottom: 1px solid #d0d0d0; padding: 2px;');
// You can use <TIME> and <VERSION> as placeholders
$geshi->set_footer_content('Parsed in <TIME> seconds at <SPEED>, using GeSHi <VERSION>');
$geshi->set_footer_content_style('font-family: sans-serif; color: #808080; font-size: 70%; font-weight: bold; background-color: #f0f0ff; border-top: 1px solid #d0d0d0; padding: 2px;');
} else {
// make sure we don't preselect any language
$_POST['language'] = null;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>GeSHi examples</title>
<style type="text/css">
<!--
<?php
if (isset($_POST['submit'])) {
// Output the stylesheet. Note it doesn't output the <style> tag
echo $geshi->get_stylesheet(true);
}
?>
html {
background-color: #f0f0f0;
}
body {
font-family: Verdana, Arial, sans-serif;
margin: 10px;
border: 2px solid #e0e0e0;
background-color: #fcfcfc;
padding: 5px;
}
h2 {
margin: .1em 0 .2em .5em;
border-bottom: 1px solid #b0b0b0;
color: #b0b0b0;
font-weight: normal;
font-size: 150%;
}
h3 {
margin: .1em 0 .2em .5em;
color: #b0b0b0;
font-weight: normal;
font-size: 120%;
}
#footer {
text-align: center;
font-size: 80%;
color: #a9a9a9;
}
#footer a {
color: #9999ff;
}
textarea {
border: 1px solid #b0b0b0;
font-size: 90%;
color: #333;
margin-left: 20px;
}
select, input {
margin-left: 20px;
}
p {
font-size: 90%;
margin-left: .5em;
}
-->
</style>
</head>
<body>
<h2>GeSHi Example Script</h2>
<p>To use this script, make sure that <strong>geshi.php</strong> is in the parent directory or in your
include_path, and that the language files are in a subdirectory of GeSHi's directory called <strong>geshi/</strong>.</p>
<p>Enter your source and a language to highlight the source in and submit, or just choose a language to
have that language file highlighted in PHP.</p>
<?php
if (isset($_POST['submit'])) {
// The fun part :)
echo $geshi->parse_code();
echo '<hr />';
}
?>
<form action="<?php echo basename($_SERVER['PHP_SELF']); ?>" method="post">
<h3>Source to highlight</h3>
<p>
<textarea rows="10" cols="60" name="source" id="source"><?php echo $fill_source ? htmlspecialchars($_POST['source']) : '' ?></textarea>
</p>
<h3>Choose a language</h3>
<p>
<select name="language" id="language">
<?php
if (!($dir = @opendir(dirname(__FILE__) . '/geshi'))) {
if (!($dir = @opendir(dirname(__FILE__) . '/../geshi'))) {
echo '<option>No languages available!</option>';
}
}
$languages = array();
while ($file = readdir($dir)) {
if ( $file[0] == '.' || strpos($file, '.', 1) === false) {
continue;
}
$lang = substr($file, 0, strpos($file, '.'));
$languages[] = $lang;
}
closedir($dir);
sort($languages);
foreach ($languages as $lang) {
if (isset($_POST['language']) && $_POST['language'] == $lang) {
$selected = 'selected="selected"';
} else {
$selected = '';
}
echo '<option value="' . $lang . '" '. $selected .'>' . $lang . "</option>\n";
}
?>
</select>
</p>
<p>
<input type="submit" name="submit" value="Highlight Source" />
<input type="submit" name="clear" onclick="document.getElementById('source').value='';document.getElementById('language').value='';return false" value="clear" />
</p>
</form>
<div id="footer">GeSHi &copy; Nigel McNie, 2004, released under the GNU GPL<br />
For a better demonstration, check out the <a href="http://qbnz.com/highlighter/demo.php">online demo</a>
</div>
</body>
</html>

View File

@ -0,0 +1,766 @@
<?php
/**
* GeSHi language file validation script
*
* Just point your browser at this script (with geshi.php in the parent directory)
* and the language files in subdirectory "../geshi/" are being validated
*
* CLI mode is supported
*
* @author Benny Baumann
* @version $Id: langcheck.php 2174 2009-09-10 09:17:40Z benbe $
*/
header('Content-Type: text/html; charset=utf-8');
set_time_limit(0);
error_reporting(E_ALL);
$time_start = explode(' ', microtime());
function colorize($level, $string) {
static $colors, $end;
if ( !isset($colors) ) {
if ( PHP_SAPI != 'cli' ) {
$end = '</span>';
$colors = array(
TYPE_NOTICE => '<span style="color:#080;font-weight:bold;">',
TYPE_WARNING => '<span style="color:#CC0; font-weight: bold;">',
TYPE_ERROR => '<span style="color:#F00; font-weight: bold;">',
TYPE_OK => '<span style="color: #080; font-weight: bold;">'
);
} else {
$end = chr(27).'[0m';
$colors = array(
TYPE_NOTICE => chr(27).'[1m',
TYPE_WARNING => chr(27).'[1;33m',
TYPE_ERROR => chr(27).'[1;31m',
TYPE_OK => chr(27).'[1;32m'
);
}
}
if ( !isset($colors[$level]) ) {
trigger_error("no colors for level $level", E_USER_ERROR);
}
return $colors[$level].$string.$end;
}
define ('TYPE_NOTICE', 0);
define ('TYPE_WARNING', 1);
define ('TYPE_ERROR', 2);
define ('TYPE_OK', 3);
$error_abort = false;
$error_cache = array();
function output_error_cache(){
global $error_cache, $error_abort;
if(count($error_cache)) {
echo colorize(TYPE_ERROR, "Failed");
if ( PHP_SAPI == 'cli' ) {
echo "\n\n";
} else {
echo "<br /><ol>\n";
}
foreach($error_cache as $error_msg) {
if ( PHP_SAPI == 'cli' ) {
echo "\n";
} else {
echo "<li>";
}
switch($error_msg['t']) {
case TYPE_NOTICE:
$msg = 'NOTICE';
break;
case TYPE_WARNING:
$msg = 'WARNING';
break;
case TYPE_ERROR:
$msg = 'ERROR';
break;
}
echo colorize($error_msg['t'], $msg);
if ( PHP_SAPI == 'cli' ) {
echo "\t" . $error_msg['m'];
} else {
echo " " . $error_msg['m'] . "</li>";
}
}
if ( PHP_SAPI == 'cli' ) {
echo "\n";
} else {
echo "</ol>\n";
}
} else {
echo colorize(TYPE_OK, "OK");
if ( PHP_SAPI == 'cli' ) {
echo "\n";
} else {
echo "\n<br />";
}
}
echo "\n";
$error_cache = array();
}
function report_error($type, $message) {
global $error_cache, $error_abort;
$error_cache[] = array('t' => $type, 'm' => $message);
if(TYPE_ERROR == $type) {
$error_abort = true;
}
}
function dupfind_strtolower(&$value){
$value = strtolower($value);
}
if ( PHP_SAPI != 'cli' ) { ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>GeSHi Language File Validation Script</title>
<style type="text/css">
<!--
html {
background-color: #f0f0f0;
}
body {
font-family: Verdana, Arial, sans-serif;
margin: 10px;
border: 2px solid #e0e0e0;
background-color: #fcfcfc;
padding: 5px;
font-size: 10pt;
}
h2 {
margin: .1em 0 .2em .5em;
border-bottom: 1px solid #b0b0b0;
color: #b0b0b0;
font-weight: normal;
font-size: 150%;
}
h3 {
margin: .1em 0 .2em .5em;
color: #b0b0b0;
font-weight: normal;
font-size: 120%;
}
#footer {
text-align: center;
font-size: 80%;
color: #a9a9a9;
}
#footer a {
color: #9999ff;
}
textarea {
border: 1px solid #b0b0b0;
font-size: 90%;
color: #333;
margin-left: 20px;
}
select, input {
margin-left: 20px;
}
p {
font-size: 90%;
margin-left: .5em;
}
-->
</style>
</head>
<body>
<h2>GeSHi Language File Validation Script</h2>
<p>To use this script, make sure that <strong>geshi.php</strong> is in the
parent directory or in your include_path, and that the language files are in a
subdirectory of GeSHi's directory called <strong>geshi/</strong>.</p>
<p>Everything else will be done by this script automatically. After the script
finished you should see messages of what could cause trouble with GeSHi or where
your language files can be improved. Please be patient, as this might take some time.</p>
<ol>
<li>Checking where to find GeSHi installation ...<?php
} else { ?>
<?php echo colorize(TYPE_NOTICE, "#### GeSHi Language File Validation Script ####") ?>
To use this script, make sure that <?php echo colorize(TYPE_NOTICE, "geshi.php"); ?> is in the
parent directory or in your include_path, and that the language files are in a
subdirectory of GeSHi's directory called <?php echo colorize(TYPE_NOTICE, "geshi/"); ?>.
Everything else will be done by this script automatically. After the script
finished you should see messages of what could cause trouble with GeSHi or where
your language files can be improved. Please be patient, as this might take some time.
Checking where to find GeSHi installation ...<?php echo "\t";
}
// Rudimentary checking of where GeSHi is. In a default install it will be in ../, but
// it could be in the current directory if the include_path is set. There's nowhere else
// we can reasonably guess.
if (is_readable('../geshi.php')) {
$path = '../';
} elseif (is_readable('geshi.php')) {
$path = './';
} else {
report_error(TYPE_ERROR, 'Could not find geshi.php - make sure it is in your include path!');
}
if(!$error_abort) {
require $path . 'geshi.php';
if(!class_exists('GeSHi')) {
report_error(TYPE_ERROR, 'The GeSHi class was not found, although it seemed we loaded the correct file!');
}
}
if(!$error_abort) {
if(!defined('GESHI_LANG_ROOT')) {
report_error(TYPE_ERROR, 'There\'s no information present on where to find the language files!');
} else if(!is_dir(GESHI_LANG_ROOT)) {
report_error(TYPE_ERROR, 'The path "'.GESHI_LANG_ROOT.'" given, does not ressemble a directory!');
} else if(!is_readable(GESHI_LANG_ROOT)) {
report_error(TYPE_ERROR, 'The path "'.GESHI_LANG_ROOT.'" is not readable to this script!');
}
}
output_error_cache();
if(!$error_abort) {
if ( PHP_SAPI == 'cli' ) {
echo "Listing available language files ...\t\t";
} else {
echo "</li>\n<li>Listing available language files ... ";
}
if (!($dir = @opendir(GESHI_LANG_ROOT))) {
report_error(TYPE_ERROR, 'Error requesting listing for available language files!');
}
$languages = array();
if(!$error_abort) {
while ($file = readdir($dir)) {
if (!$file || $file[0] == '.' || strpos($file, '.') === false) {
continue;
}
$lang = substr($file, 0, strpos($file, '.'));
$languages[] = $lang;
}
closedir($dir);
}
$languages = array_unique($languages);
sort($languages);
if(!count($languages)) {
report_error(TYPE_WARNING, 'Unable to locate any usable language files in "'.GESHI_LANG_ROOT.'"!');
}
output_error_cache();
}
if ( PHP_SAPI == 'cli' ) {
if (isset($_SERVER['argv'][1]) && in_array($_SERVER['argv'][1], $languages)) {
$languages = array($_SERVER['argv'][1]);
}
} else {
if (isset($_REQUEST['show']) && in_array($_REQUEST['show'], $languages)) {
$languages = array($_REQUEST['show']);
}
}
if(!$error_abort) {
foreach ($languages as $lang) {
if ( PHP_SAPI == 'cli' ) {
echo "Validating language file for '$lang' ...\t\t";
} else {
echo "</li>\n<li>Validating language file for '$lang' ... ";
}
$langfile = GESHI_LANG_ROOT . $lang . '.php';
$language_data = array();
if(!is_file($langfile)) {
report_error(TYPE_ERROR, 'The path "' .$langfile. '" does not ressemble a regular file!');
} else if(!is_readable($langfile)) {
report_error(TYPE_ERROR, 'Cannot read file "' .$langfile. '"!');
} else {
$langfile_content = file_get_contents($langfile);
if(preg_match("/\?>(?:\r?\n|\r(?!\n)){2,}\Z/", $langfile_content)) {
report_error(TYPE_ERROR, 'Language file contains trailing empty lines at EOF!');
}
if(!preg_match("/\?>(?:\r?\n|\r(?!\n))?\Z/", $langfile_content)) {
report_error(TYPE_ERROR, 'Language file contains no PHP end marker at EOF!');
}
if(preg_match("/\t/", $langfile_content)) {
report_error(TYPE_NOTICE, 'Language file contains unescaped tabulator chars (probably for indentation)!');
}
if(preg_match('/^(?: )*(?! )(?! \*) /m', $langfile_content)) {
report_error(TYPE_NOTICE, 'Language file contains irregular indentation (other than 4 spaces per indentation level)!');
}
if(!preg_match("/\/\*\*((?!\*\/).)*?Author:((?!\*\/).)*?\*\//s", $langfile_content)) {
report_error(TYPE_WARNING, 'Language file does not contain a specification of an author!');
}
if(!preg_match("/\/\*\*((?!\*\/).)*?Copyright:((?!\*\/).)*?\*\//s", $langfile_content)) {
report_error(TYPE_WARNING, 'Language file does not contain a specification of the copyright!');
}
if(!preg_match("/\/\*\*((?!\*\/).)*?Release Version:((?!\*\/).)*?\*\//s", $langfile_content)) {
report_error(TYPE_WARNING, 'Language file does not contain a specification of the release version!');
}
if(!preg_match("/\/\*\*((?!\*\/).)*?Date Started:((?!\*\/).)*?\*\//s", $langfile_content)) {
report_error(TYPE_WARNING, 'Language file does not contain a specification of the date it was started!');
}
if(!preg_match("/\/\*\*((?!\*\/).)*?This file is part of GeSHi\.((?!\*\/).)*?\*\//s", $langfile_content)) {
report_error(TYPE_WARNING, 'Language file does not state that it belongs to GeSHi!');
}
if(!preg_match("/\/\*\*((?!\*\/).)*?language file for GeSHi\.((?!\*\/).)*?\*\//s", $langfile_content)) {
report_error(TYPE_WARNING, 'Language file does not state that it is a language file for GeSHi!');
}
if(!preg_match("/\/\*\*((?!\*\/).)*?GNU General Public License((?!\*\/).)*?\*\//s", $langfile_content)) {
report_error(TYPE_WARNING, 'Language file does not state that it is provided under the terms of the GNU GPL!');
}
unset($langfile_content);
include $langfile;
if(!isset($language_data)) {
report_error(TYPE_ERROR, 'Language file does not contain a $language_data structure to check!');
} else if (!is_array($language_data)) {
report_error(TYPE_ERROR, 'Language file contains a $language_data structure which is not an array!');
}
}
if(!$error_abort) {
if(!isset($language_data['LANG_NAME'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'LANG_NAME\'] specification!');
} else if (!is_string($language_data['LANG_NAME'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'LANG_NAME\'] specification which is not a string!');
}
if(!isset($language_data['COMMENT_SINGLE'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'COMMENT_SIGNLE\'] structure to check!');
} else if (!is_array($language_data['COMMENT_SINGLE'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'COMMENT_SINGLE\'] structure which is not an array!');
}
if(!isset($language_data['COMMENT_MULTI'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'COMMENT_MULTI\'] structure to check!');
} else if (!is_array($language_data['COMMENT_MULTI'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'COMMENT_MULTI\'] structure which is not an array!');
}
if(isset($language_data['COMMENT_REGEXP'])) {
if (!is_array($language_data['COMMENT_REGEXP'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'COMMENT_REGEXP\'] structure which is not an array!');
}
}
if(!isset($language_data['QUOTEMARKS'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'QUOTEMARKS\'] structure to check!');
} else if (!is_array($language_data['QUOTEMARKS'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'QUOTEMARKS\'] structure which is not an array!');
}
if(isset($language_data['HARDQUOTE'])) {
if (!is_array($language_data['HARDQUOTE'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'HARDQUOTE\'] structure which is not an array!');
}
}
if(!isset($language_data['ESCAPE_CHAR'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'ESCAPE_CHAR\'] specification to check!');
} else if (!is_string($language_data['ESCAPE_CHAR'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'ESCAPE_CHAR\'] specification which is not a string!');
} else if (1 < strlen($language_data['ESCAPE_CHAR'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'ESCAPE_CHAR\'] specification is not empty or exactly one char!');
}
if(!isset($language_data['CASE_KEYWORDS'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'CASE_KEYWORDS\'] specification!');
} else if (!is_int($language_data['CASE_KEYWORDS'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'CASE_KEYWORDS\'] specification which is not an integer!');
} else if (GESHI_CAPS_NO_CHANGE != $language_data['CASE_KEYWORDS'] &&
GESHI_CAPS_LOWER != $language_data['CASE_KEYWORDS'] &&
GESHI_CAPS_UPPER != $language_data['CASE_KEYWORDS']) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'CASE_KEYWORDS\'] specification which is neither of GESHI_CAPS_NO_CHANGE, GESHI_CAPS_LOWER nor GESHI_CAPS_UPPER!');
}
if(!isset($language_data['KEYWORDS'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'KEYWORDS\'] structure to check!');
} else if (!is_array($language_data['KEYWORDS'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'KEYWORDS\'] structure which is not an array!');
} else {
foreach($language_data['KEYWORDS'] as $kw_key => $kw_value) {
if(!is_integer($kw_key)) {
report_error(TYPE_WARNING, "Language file contains an key '$kw_key' in \$language_data['KEYWORDS'] that is not integer!");
} else if (!is_array($kw_value)) {
report_error(TYPE_ERROR, "Language file contains a \$language_data['CASE_SENSITIVE']['$kw_value'] structure which is not an array!");
}
}
}
if(!isset($language_data['SYMBOLS'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'SYMBOLS\'] structure to check!');
} else if (!is_array($language_data['SYMBOLS'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'SYMBOLS\'] structure which is not an array!');
}
if(!isset($language_data['CASE_SENSITIVE'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'CASE_SENSITIVE\'] structure to check!');
} else if (!is_array($language_data['CASE_SENSITIVE'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'CASE_SENSITIVE\'] structure which is not an array!');
} else {
foreach($language_data['CASE_SENSITIVE'] as $cs_key => $cs_value) {
if(!is_integer($cs_key)) {
report_error(TYPE_WARNING, "Language file contains an key '$cs_key' in \$language_data['CASE_SENSITIVE'] that is not integer!");
} else if (!is_bool($cs_value)) {
report_error(TYPE_ERROR, "Language file contains a Case Sensitivity specification for \$language_data['CASE_SENSITIVE']['$cs_value'] which is not a boolean!");
}
}
}
if(!isset($language_data['URLS'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'URLS\'] structure to check!');
} else if (!is_array($language_data['URLS'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'URLS\'] structure which is not an array!');
} else {
foreach($language_data['URLS'] as $url_key => $url_value) {
if(!is_integer($url_key)) {
report_error(TYPE_WARNING, "Language file contains an key '$url_key' in \$language_data['URLS'] that is not integer!");
} else if (!is_string($url_value)) {
report_error(TYPE_ERROR, "Language file contains a Documentation URL specification for \$language_data['URLS']['$url_value'] which is not a string!");
} else if (preg_match('#&([^;]*(=|$))#U', $url_value)) {
report_error(TYPE_ERROR, "Language file contains unescaped ampersands (&amp;) in \$language_data['URLS']!");
}
}
}
if(!isset($language_data['OOLANG'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'OOLANG\'] specification!');
} else if (!is_int($language_data['OOLANG']) && !is_bool($language_data['OOLANG'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'OOLANG\'] specification which is neither boolean nor integer!');
} else if (false !== $language_data['OOLANG'] &&
true !== $language_data['OOLANG'] &&
2 !== $language_data['OOLANG']) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'OOLANG\'] specification which is neither of false, true or 2!');
}
if(!isset($language_data['OBJECT_SPLITTERS'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'OBJECT_SPLITTERS\'] structure to check!');
} else if (!is_array($language_data['OBJECT_SPLITTERS'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'OBJECT_SPLITTERS\'] structure which is not an array!');
}
if(!isset($language_data['REGEXPS'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'REGEXPS\'] structure to check!');
} else if (!is_array($language_data['REGEXPS'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'REGEXPS\'] structure which is not an array!');
}
if(!isset($language_data['STRICT_MODE_APPLIES'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'STRICT_MODE_APPLIES\'] specification!');
} else if (!is_int($language_data['STRICT_MODE_APPLIES'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'STRICT_MODE_APPLIES\'] specification which is not an integer!');
} else if (GESHI_MAYBE != $language_data['STRICT_MODE_APPLIES'] &&
GESHI_ALWAYS != $language_data['STRICT_MODE_APPLIES'] &&
GESHI_NEVER != $language_data['STRICT_MODE_APPLIES']) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'STRICT_MODE_APPLIES\'] specification which is neither of GESHI_MAYBE, GESHI_ALWAYS nor GESHI_NEVER!');
}
if(!isset($language_data['SCRIPT_DELIMITERS'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'SCRIPT_DELIMITERS\'] structure to check!');
} else if (!is_array($language_data['SCRIPT_DELIMITERS'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'SCRIPT_DELIMITERS\'] structure which is not an array!');
}
if(!isset($language_data['HIGHLIGHT_STRICT_BLOCK'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'HIGHLIGHT_STRICT_BLOCK\'] structure to check!');
} else if (!is_array($language_data['HIGHLIGHT_STRICT_BLOCK'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'HIGHLIGHT_STRICT_BLOCK\'] structure which is not an array!');
}
if(isset($language_data['TAB_WIDTH'])) {
if (!is_int($language_data['TAB_WIDTH'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'TAB_WIDTH\'] specification which is not an integer!');
} else if (1 > $language_data['TAB_WIDTH']) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'TAB_WIDTH\'] specification which is less than 1!');
}
}
if(isset($language_data['PARSER_CONTROL'])) {
if (!is_array($language_data['PARSER_CONTROL'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'PARSER_CONTROL\'] structure which is not an array!');
}
}
if(!isset($language_data['STYLES'])) {
report_error(TYPE_ERROR, 'Language file contains no $language_data[\'STYLES\'] structure to check!');
} else if (!is_array($language_data['STYLES'])) {
report_error(TYPE_ERROR, 'Language file contains a $language_data[\'STYLES\'] structure which is not an array!');
} else {
$style_arrays = array('KEYWORDS', 'COMMENTS', 'ESCAPE_CHAR',
'BRACKETS', 'STRINGS', 'NUMBERS', 'METHODS', 'SYMBOLS',
'REGEXPS', 'SCRIPT');
foreach($style_arrays as $style_kind) {
if(!isset($language_data['STYLES'][$style_kind])) {
report_error(TYPE_ERROR, "Language file contains no \$language_data['STYLES']['$style_kind'] structure to check!");
} else if (!is_array($language_data['STYLES'][$style_kind])) {
report_error(TYPE_ERROR, "Language file contains a \$language_data['STYLES\']['$style_kind'] structure which is not an array!");
} else {
foreach($language_data['STYLES'][$style_kind] as $sk_key => $sk_value) {
if(!is_int($sk_key) && ('COMMENTS' != $style_kind && 'MULTI' != $sk_key)
&& !(('STRINGS' == $style_kind || 'ESCAPE_CHAR' == $style_kind) && 'HARD' == $sk_key)) {
report_error(TYPE_WARNING, "Language file contains an key '$sk_key' in \$language_data['STYLES']['$style_kind'] that is not integer!");
} else if (!is_string($sk_value)) {
report_error(TYPE_WARNING, "Language file contains a CSS specification for \$language_data['STYLES']['$style_kind'][$key] which is not a string!");
}
}
}
}
unset($style_arrays);
}
}
if(!$error_abort) {
//Initial sanity checks survived? --> Let's dig deeper!
foreach($language_data['KEYWORDS'] as $key => $keywords) {
if(!isset($language_data['CASE_SENSITIVE'][$key])) {
report_error(TYPE_ERROR, "Language file contains no \$language_data['CASE_SENSITIVE'] specification for keyword group $key!");
}
if(!isset($language_data['URLS'][$key])) {
report_error(TYPE_ERROR, "Language file contains no \$language_data['URLS'] specification for keyword group $key!");
}
if(empty($keywords)) {
report_error(TYPE_WARNING, "Language file contains an empty keyword list in \$language_data['KEYWORDS'] for group $key!");
}
foreach($keywords as $id => $kw) {
if(!is_string($kw)) {
report_error(TYPE_WARNING, "Language file contains an non-string entry at \$language_data['KEYWORDS'][$key][$id]!");
} else if (!strlen($kw)) {
report_error(TYPE_ERROR, "Language file contains an empty string entry at \$language_data['KEYWORDS'][$key][$id]!");
} else if (preg_match('/^([\(\)\{\}\[\]\^=.,:;\-+\*\/%\$\"\'\?]|&[\w#]\w*;)+$/i', $kw)) {
report_error(TYPE_NOTICE, "Language file contains an keyword ('$kw') at \$language_data['KEYWORDS'][$key][$id] which seems to be better suited for the symbols section!");
}
}
if(isset($language_data['CASE_SENSITIVE'][$key]) && !$language_data['CASE_SENSITIVE'][$key]) {
array_walk($keywords, 'dupfind_strtolower');
}
if(count($keywords) != count(array_unique($keywords))) {
$kw_diffs = array_count_values($keywords);
foreach($kw_diffs as $kw => $kw_count) {
if($kw_count > 1) {
report_error(TYPE_WARNING, "Language file contains per-group duplicate keyword '$kw' in \$language_data['KEYWORDS'][$key]!");
}
}
}
}
$disallowed_before = "(?<![a-zA-Z0-9\$_\|\#;>|^&";
$disallowed_after = "(?![a-zA-Z0-9_\|%\\-&;";
foreach($language_data['KEYWORDS'] as $key => $keywords) {
foreach($language_data['KEYWORDS'] as $key2 => $keywords2) {
if($key2 <= $key) {
continue;
}
$kw_diffs = array_intersect($keywords, $keywords2);
foreach($kw_diffs as $kw) {
if(isset($language_data['PARSER_CONTROL']['KEYWORDS'])) {
//Check the precondition\post-cindition for the involved keyword groups
$g1_pre = $disallowed_before;
$g2_pre = $disallowed_before;
$g1_post = $disallowed_after;
$g2_post = $disallowed_after;
if(isset($language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'])) {
$g1_pre = $language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'];
$g2_pre = $language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'];
}
if(isset($language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'])) {
$g1_post = $language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'];
$g2_post = $language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'];
}
if(isset($language_data['PARSER_CONTROL']['KEYWORDS'][$key]['DISALLOWED_BEFORE'])) {
$g1_pre = $language_data['PARSER_CONTROL']['KEYWORDS'][$key]['DISALLOWED_BEFORE'];
}
if(isset($language_data['PARSER_CONTROL']['KEYWORDS'][$key]['DISALLOWED_AFTER'])) {
$g1_post = $language_data['PARSER_CONTROL']['KEYWORDS'][$key]['DISALLOWED_AFTER'];
}
if(isset($language_data['PARSER_CONTROL']['KEYWORDS'][$key2]['DISALLOWED_BEFORE'])) {
$g2_pre = $language_data['PARSER_CONTROL']['KEYWORDS'][$key2]['DISALLOWED_BEFORE'];
}
if(isset($language_data['PARSER_CONTROL']['KEYWORDS'][$key2]['DISALLOWED_AFTER'])) {
$g2_post = $language_data['PARSER_CONTROL']['KEYWORDS'][$key2]['DISALLOWED_AFTER'];
}
if($g1_pre != $g2_pre || $g1_post != $g2_post) {
continue;
}
}
report_error(TYPE_WARNING, "Language file contains cross-group duplicate keyword '$kw' in \$language_data['KEYWORDS'][$key] and \$language_data['KEYWORDS'][$key2]!");
}
}
}
foreach($language_data['CASE_SENSITIVE'] as $key => $keywords) {
if(!isset($language_data['KEYWORDS'][$key]) && $key != GESHI_COMMENTS) {
report_error(TYPE_WARNING, "Language file contains an superfluous \$language_data['CASE_SENSITIVE'] specification for non-existing keyword group $key!");
}
}
foreach($language_data['URLS'] as $key => $keywords) {
if(!isset($language_data['KEYWORDS'][$key])) {
report_error(TYPE_WARNING, "Language file contains an superfluous \$language_data['URLS'] specification for non-existing keyword group $key!");
}
}
foreach($language_data['STYLES']['KEYWORDS'] as $key => $keywords) {
if(!isset($language_data['KEYWORDS'][$key])) {
report_error(TYPE_WARNING, "Language file contains an superfluous \$language_data['STYLES']['KEYWORDS'] specification for non-existing keyword group $key!");
}
}
foreach($language_data['COMMENT_SINGLE'] as $ck => $cv) {
if(!is_int($ck)) {
report_error(TYPE_WARNING, "Language file contains an key '$ck' in \$language_data['COMMENT_SINGLE'] that is not integer!");
}
if(!is_string($cv)) {
report_error(TYPE_WARNING, "Language file contains an non-string entry at \$language_data['COMMENT_SINGLE'][$ck]!");
}
if(!isset($language_data['STYLES']['COMMENTS'][$ck])) {
report_error(TYPE_WARNING, "Language file contains no \$language_data['STYLES']['COMMENTS'] specification for comment group $ck!");
}
}
if(isset($language_data['COMMENT_REGEXP'])) {
foreach($language_data['COMMENT_REGEXP'] as $ck => $cv) {
if(!is_int($ck)) {
report_error(TYPE_WARNING, "Language file contains an key '$ck' in \$language_data['COMMENT_REGEXP'] that is not integer!");
}
if(!is_string($cv)) {
report_error(TYPE_WARNING, "Language file contains an non-string entry at \$language_data['COMMENT_REGEXP'][$ck]!");
}
if(!isset($language_data['STYLES']['COMMENTS'][$ck])) {
report_error(TYPE_WARNING, "Language file contains no \$language_data['STYLES']['COMMENTS'] specification for comment group $ck!");
}
}
}
foreach($language_data['STYLES']['COMMENTS'] as $ck => $cv) {
if($ck != 'MULTI' && !isset($language_data['COMMENT_SINGLE'][$ck]) &&
!isset($language_data['COMMENT_REGEXP'][$ck])) {
report_error(TYPE_NOTICE, "Language file contains an superfluous \$language_data['STYLES']['COMMENTS'] specification for Single Line or Regular-Expression Comment key $ck!");
}
}
if (isset($language_data['STYLES']['STRINGS']['HARD'])) {
if (empty($language_data['HARDQUOTE'])) {
report_error(TYPE_NOTICE, "Language file contains superfluous \$language_data['STYLES']['STRINGS'] specification for key 'HARD', but no 'HARDQUOTE's are defined!");
}
unset($language_data['STYLES']['STRINGS']['HARD']);
}
foreach($language_data['STYLES']['STRINGS'] as $sk => $sv) {
if($sk && !isset($language_data['QUOTEMARKS'][$sk])) {
report_error(TYPE_NOTICE, "Language file contains an superfluous \$language_data['STYLES']['STRINGS'] specification for non-existing quotemark key $sk!");
}
}
foreach($language_data['REGEXPS'] as $rk => $rv) {
if(!is_int($rk)) {
report_error(TYPE_WARNING, "Language file contains an key '$rk' in \$language_data['REGEXPS'] that is not integer!");
}
if(is_string($rv)) {
//Check for unmasked / in regular expressions ...
if(empty($rv)) {
report_error(TYPE_WARNING, "Language file contains an empty regular expression at \$language_data['REGEXPS'][$rk]!");
} else {
if(preg_match("/(?<!\\\\)\//s", $rv)) {
report_error(TYPE_WARNING, "Language file contains a regular expression with an unmasked / character at \$language_data['REGEXPS'][$rk]!");
} elseif (preg_match("/(?<!<)(\\\\\\\\)*\\\\\|(?!>)/s", $rv)) {
report_error(TYPE_WARNING, "Language file contains a regular expression with an unescaped match for a pipe character '|' which needs escaping as '&lt;PIPE&gt;' instead at \$language_data['REGEXPS'][$rk]!");
}
}
} elseif(is_array($rv)) {
if(!isset($rv[GESHI_SEARCH])) {
report_error(TYPE_ERROR, "Language file contains no GESHI_SEARCH entry in extended regular expression at \$language_data['REGEXPS'][$rk]!");
} elseif(!is_string($rv[GESHI_SEARCH])) {
report_error(TYPE_ERROR, "Language file contains a GESHI_SEARCH entry in extended regular expression at \$language_data['REGEXPS'][$rk] which is not a string!");
} else {
if(preg_match("/(?<!\\\\)\//s", $rv[GESHI_SEARCH])) {
report_error(TYPE_WARNING, "Language file contains a regular expression with an unmasked / character at \$language_data['REGEXPS'][$rk]!");
} elseif (preg_match("/(?<!<)(\\\\\\\\)*\\\\\|(?!>)/s", $rv[GESHI_SEARCH])) {
report_error(TYPE_WARNING, "Language file contains a regular expression with an unescaped match for a pipe character '|' which needs escaping as '&lt;PIPE&gt;' instead at \$language_data['REGEXPS'][$rk]!");
}
}
if(!isset($rv[GESHI_REPLACE])) {
report_error(TYPE_WARNING, "Language file contains no GESHI_REPLACE entry in extended regular expression at \$language_data['REGEXPS'][$rk]!");
} elseif(!is_string($rv[GESHI_REPLACE])) {
report_error(TYPE_ERROR, "Language file contains a GESHI_REPLACE entry in extended regular expression at \$language_data['REGEXPS'][$rk] which is not a string!");
}
if(!isset($rv[GESHI_MODIFIERS])) {
report_error(TYPE_WARNING, "Language file contains no GESHI_MODIFIERS entry in extended regular expression at \$language_data['REGEXPS'][$rk]!");
} elseif(!is_string($rv[GESHI_MODIFIERS])) {
report_error(TYPE_ERROR, "Language file contains a GESHI_MODIFIERS entry in extended regular expression at \$language_data['REGEXPS'][$rk] which is not a string!");
}
if(!isset($rv[GESHI_BEFORE])) {
report_error(TYPE_WARNING, "Language file contains no GESHI_BEFORE entry in extended regular expression at \$language_data['REGEXPS'][$rk]!");
} elseif(!is_string($rv[GESHI_BEFORE])) {
report_error(TYPE_ERROR, "Language file contains a GESHI_BEFORE entry in extended regular expression at \$language_data['REGEXPS'][$rk] which is not a string!");
}
if(!isset($rv[GESHI_AFTER])) {
report_error(TYPE_WARNING, "Language file contains no GESHI_AFTER entry in extended regular expression at \$language_data['REGEXPS'][$rk]!");
} elseif(!is_string($rv[GESHI_AFTER])) {
report_error(TYPE_ERROR, "Language file contains a GESHI_AFTER entry in extended regular expression at \$language_data['REGEXPS'][$rk] which is not a string!");
}
} else {
report_error(TYPE_WARNING, "Language file contains an non-string and non-array entry at \$language_data['REGEXPS'][$rk]!");
}
if(!isset($language_data['STYLES']['REGEXPS'][$rk])) {
report_error(TYPE_WARNING, "Language file contains no \$language_data['STYLES']['REGEXPS'] specification for regexp group $rk!");
}
}
foreach($language_data['STYLES']['REGEXPS'] as $rk => $rv) {
if(!isset($language_data['REGEXPS'][$rk])) {
report_error(TYPE_NOTICE, "Language file contains an superfluous \$language_data['STYLES']['REGEXPS'] specification for regexp key $rk!");
}
}
}
output_error_cache();
flush();
if($error_abort) {
break;
}
}
}
$time_end = explode(' ', microtime());
$time_diff = $time_end[0] + $time_end[1] - $time_start[0] - $time_start[1];
if ( PHP_SAPI != 'cli' ) {
?></li>
</ol>
<p>Validation process completed in <? printf("%.2f", $time_diff); ?> seconds.</p>
<div id="footer">GeSHi &copy; 2004-2007 Nigel McNie, 2007-2008 Benny Baumann, released under the GNU GPL</div>
</body>
</html>
<?php } else { ?>
Validation process completed in <? printf("%.2f", $time_diff); ?> seconds.
GeSHi &copy; 2004-2007 Nigel McNie, 2007-2008 Benny Baumann, released under the GNU GPL
<?php } ?>

29
library/geshi/docs/BUGS Normal file
View File

@ -0,0 +1,29 @@
BUGS - list of known bugs in GeSHi
Version 1.0.8
- Number highlighting is quite poor [possibly better now]
- I'm not happy with URLS - there still could be extra bugs, and it's rather unflexible
(see TODO for a possible fix)
- "Important" sections for some reason seem to have their spans added after every
newline up until the next lexic, instead of stopping at the <END GeSHi> part. In fact,
context sensitiveness is quite poor...
- Using the extra line number highlighting feature without actually using line numbers
will result in malformed XHTML (not sure about this one though...)
- Slow!!! Especially for source with lots of strings in it. GeSHi will work acceptably
for sourcecode under 5K (for simple language files like SQL, a 100K file can be
highlighted in just 6 seconds), but above about 25K things get a little slow... If
you're using this as part of some larger software, you may want to think about
making some sort of "cache" effect to speed things up and reduce server load.
- The result is built by string replacement instead of by building another string based
on the source, that would be much safer. The focus of releases beyond 1.0.7 will be on
changing this behaviour, which may well fix some of the other bugs mentioned above.
- As of 1.0.7.1, dots (.) are allowed before keywords. This may change highlighting of some
things slightly, if you notice anything odd about the highlighting then please report
it to me.
- Perl/Javascript /.../ regex syntax is only supported basically and there's no
guarantee it is working all the time.
- The <pre> header output is not XHTML compliant. Please use the <div> header instead.
Send any bug reports to BenBE@omorphia.de, or submit them via the bug tracker at
sourceforge (http://sourceforge.net/tracker/?group_id=114997&atid=670231)

806
library/geshi/docs/CHANGES Normal file
View File

@ -0,0 +1,806 @@
CHANGES - Changelog for GeSHi (geshi.php only)
Changes to the code are listed under the version they occured in, with who suggested
it by each one (if there's nobody listed as suggesting it I dreamed it up :)). Users
who suggested an idea often also provided the code that was used as a basis for the
changes - thanks to all who suggested these ideas and gave me the code to show me how!
Language files listed under each version were made by the author beside them, and then
modified by me for consistency/bug fixing.
Please send any bug reports to BenBE@omorphia.de, or use the bug report tracker
at sourceforge (http://sourceforge.net/tracker/?group_id=114997&atid=670231)
Version 1.0.8.8
- Added language files
* ChaiScript (Jason Turner & Jonathan Turner)
* Genie (Nicolas Joseph)
* GwBasic (José Gabriel Moya Yangüela)
* HicEst (Georg Petrich)
* Icon (Matt Oates)
* MagikSF (Sjoerd van Leent)
* Modula 2 (Benjamin Kowarsch)
* Oz (Wolfgang Meyer)
* PCRE (BenBE)
* PostgreSQL (Christophe Chauvet)
* q/kdb+ (Ian Roddis)
* RPM Specification Files (Paul Grinberg)
* Unicon (Matt Oates)
* Vala (Nicolas Joseph)
* XBasic (José Gabriel Moya Yangüela)
- Improvements to language files (BenBE)
* Major reworks and improvements to OCaml language file (BenBE)
* Removed duplicate entries from keyword groups of VIM language file (Segaja)
* Properly protect Regexps against GeSHi Black Magic in Matlab (BenBE)
* Added support for Block Comments in PowerShell (BenBE)
* Added some keywords for VB; split into multiple groups (leejkennedy, BenBE)
* Basic Heredoc Support for Ruby (BenBE)
Version 1.0.8.7
- Added language files
* Autoconf (Mihai Vasilian)
* ECMAScript (Michel Mariani)
* J (Ric Sherlock)
* OpenBSD Packet Filter (David Berard)
* Oxygene / Delphi Prism (Carlo Kok)
- Minor change in INT_BASIC number regexp to support '..' range operator
as to be found in most Pascal-like languages (BenBE)
- Fixed an issue with Hardquotes for empty strings (like '' in Delphi) (BenBE)
- Introduced a fix for improved performance when matching numbers (BenBE)
- Improvements to language files (BenBE)
* Fixed broken links in Prolog language file (BenBE)
* Fixed keywords in generics expressions in Java5 (BenBE)
* Added support for import static in Java5 (BenBE)
* Added Standard Integer Types for C and c++ (BenBE)
* Fixed some regexp issues in Erlang (BenBE)
* Added some missing keywords for Clojure (BenBE)
* Added some missing keywords for Lisp (BenBE)
* Fixed a problem with variable names in Prolog (BenBE)
* Some color changes for AutoIt (BenBE)
* Added support for basic include directive processing for AutoIt (BenBE)
* Added support for ::-style labels as comments (SF#2947393, BenBE)
* Removed backslash as Escape Char in T-SQL (SF#2939199, Bruno Braga)
* Added Nested Comments Support for Haskell (SF#2922317, BenBE)
* Fixed Comments for VIM, added some keywords, proposed porting of
Regular Expression markup from Perl (SF#2818047, psycojoker, BenBE)
* Fixed warnings for Language Check of Tcl (BenBE)
Version 1.0.8.6
- Added language files
* Clojure (Jess Johnson)
* Cuesheet (Benny Baumann)
* F# (Julien Ortin)
* GAMBAS (Jesus Guardon)
* Logtalk (Paulo Moura)
* MapBasic (Tomasz Berus)
* NewLisp (cormullion)
* Perl 6 (Kodi Arfer)
* Pike (Rick E.)
* SystemVerilog (Sean O'Boyle)
- Reworked parts of the number support (BenBE)
- Improvements to language files (BenBE)
* Fixed broken links in R/S+ language file (BenBE)
* Fixed an issue with if= argument for dd command (BenBE)
* T-SQL should use GESHI_CAPS_NO_CHANGE for keywords (BenBE)
* Fixed missed shorthand arg references in Bash (BenBE)
* Fixed first line not getting highlighted in diff language (BenBE)
* Added some keywords for csharp (RC)
Version 1.0.8.5
- Added language files
* AutoHotkey (Naveen Garg)
* Awk (George Pollard)
* GADV 4CS (Jason Curl)
* jQuery (Rob Loach)
* PowerBuilder (Doug Porter)
* PureBasic (Gustavo Julio Fiorenza)
* R / S+ (Ron Fredericks, Benilton Carvalho)
- Fixed legitimate numbers sometimes missing from highlighting (BenBE)
- Fixed a problem with URLs allowing to break highlighting (BenBE)
- Allowed for String and Number Styles to be set by the API (BenBE)
- Produce valid CSS when languages start with underscore (BenBE)
- Duplicate newlines with PRE_TABLE-Header but w/o linenumbers (SF#2838958, BenBE)
- Improvements to language files (BenBE)
* Fixed case-insensitively duplicate keywords (BenBE)
* DCS language file contained HARDQUOTE section but no hardquotes (BenBE)
* Some additional headers for Email\mbox highlighting (BenBE)
* Added some more Keywords for robots.txt highlighting (BenBE)
* Added Git commands for bash, ifup/ifdown (BenBE)
* Added support for C# and VB.net delegates (SF#2832253, BenBE)
* Added support for line numbers, file handles and hex\octal numbers for QBasic (BenBE)
Version 1.0.8.4
- Added language files
* BibTeX (Quinn Taylor)
* CMake (Daniel Nelson)
* Erlang (Benny Baumann, Dan Forest-Barbier, Uwe Dauernheim)
* FO (abas-ERP) (Tan-Vinh Nguyen)
* Property Files (Edy Hinzen)
* Whois (RPSL format) entries (Benny Baumann)
- Changed INT_BASIC number format to allow numbers followed . at EOL (BenBE)
- Higher prority for keywords over regexps (BenBE)
- Added missing set_script_style API function (BenBE)
- Fixed missing check for comment_regexp preference in HardQuotes (BenBE)
- Fixed a problem with Strict Block Detection if the Strict Block Regexp
requires matching groups for itself (BenBE)
- Improvements to language files (BenBE)
* Added PCRE regexp support for Action script (SF#2655644, BenBE)
* Removed some superfluous keywords from ABAP (BenBE)
* Removed duplicate keywords for Progress (BenBE)
* Removed duplicate keywords for T-SQL (BenBE)
* Linking for PowerShell special variables revised (BenBE)
* Fixed linking in ColdFusion (BenBE)
* Fixed linking in LaTeX (BenBE)
* Fixed linking in mIRC Scripting language (BenBE)
* Fixed escape char regexp for C-style languages (BenBE)
* Fixed @""-string handling for C# (SF#2789371, BenBE)
* Fixed Strict Block Detection for PHP blocks (BenBE)
* Changed allowed chars around Powershell operators (SF#2688863, BenBE)
* Minor reordering inside of PHP language file (BenBE)
* Added missing keywords for ActionScript3 language file (SF#2795005, BenBE)
* Added .xrc file extension for XML highlighting (BenBE)
Version 1.0.8.3
- Added language files
* DCS (Stelio Passaris)
* Locomotive Basic (Nacho Cabanes)
* LSL2 (Linden Scripting Language) (William Fry)
* Modula-3 (Martin Bishop)
* Oberon-2 (Mike Mol)
* Rebol (Lecanu Guillaume)
- Fixed a problem where HardEscapes weren't working when no escape char was given (BenBE)
- Added a PARSER_CONTROL setting to treat whitespace inside of keywords in
the language file as "any whitespace" in the source (i.e. "CREATE TABLE"
in SQL will match "CREATE\s+TABLE" instead of literally matching) (BenBE)
- Added a possibility to allow setting the style for escape characters (BenBE)
- Improvements to language files (BenBE)
* Added some missing Perl keywords and obscure default variables (BenBE)
* Allow for escaped colons to appear in CSS names (BenBE, simon)
* Added multiline continuation suppoert of preprocessor defines for
C, C for Mac, C++ and CC++ with Qt support (BenBE)
* keywords for C-based languages are case-sensitive (BenBE)
* Broken AutoIt highlighting (BenBE)
* Problem with escaped backslash in PHP and D (BenBE)
* Added some more functions for PHP (BenBE)
* Some changes for AppleScript (Stefan Klieme)
* Forbid highlighting keywords followed by / in bash (BenBE)
* Updated the LaTeX file to link some keywords (BenBE)
* Additional text rendered when matching special variables for PowerShell (BenBE)
* Added some more keywords for ABAP (BenBE, Sandra Rossi, Jacob Laursen)
Version 1.0.8.2
- Added language files
* Brainfuck \ Brainfork (Benny Baumann)
* HQ9+ (Benny Baumann)
* INTERCAL (Benny Baumann)
* LOLcode (Benny Baumann)
* LScript (Beau McGuigan)
* Pixel Bender (Richard Olsson)
* ProvideX (Jeff Wilder)
* VIM Script (Swaroop C H)
* Visual Prolog (Thomas Linder Puls)
* Whitespace (Benny Baumann)
- Changed priority for COMMENT_REGEXP compared to String highlighting (BenBE)
- Fixed correct escaping of spaces inside of URLs (BenBE)
- Updated the list of common file extensions (BenBE)
- Updated the language file check script in contrib/ (BenBE)
- Fixed a problem with link targets resulting in unclickable links (SF#2379120, BenBE)
- Fixed an undefined variable issue in langcheck.php (BenBE)
- Improvements to language files (BenBE)
* eMail Header highlighting now uses the correct delimiters for keywords (BenBE)
* eMail (RFC822\mbox) highlighting now highlights IPs, MIME types and
subfield assignments correctly (BenBE)
* Minor style changes in COBOL to improve loading performance (BenBE)
* Added some missing keywords for D (BenBE)
* Removed duplicate keywords from Progres, SAS and TSQL (BenBE)
* Fixed Heredoc Syntax for Bash (SF#2185319, BenBE)
* Moved symbol-lookalike sequences from keyword groups to separate symbol group
for languages asp, klonec, klonecpp, php, php-brief (BenBE)
* Fixed a lot of duplicate keyword warnings (BenBE)
* Added missing keywords to the Python language file,
introducing support for Python 3.0. (SF#2441839, milian)
* Updated documentation links for TypoScript (SF#2014276, BenBE)
* Fixed a problem with tag and attribute names in XML highlighting (SF#2276119, BenBE)
* Improved MySQL language file (BenBE, JavaWoman)
* Some commentss accidentially mistaken for DocComments (SF#2454897, BenBE)
* Added improved Escape Char handling for c, c_mac, cpp and cpp_qt (SF#2458743, BenBE)
Version 1.0.8.1
- Added language files
* AviSynth (Ryan Jones)
* eMail \ mbox (Benny Baumann)
* GNU Make (Neil Bird)
* Oracle 11i support (Simon Redhead)
* Prolog (Benny Baumann)
* SciLab (Christophe David)
* TeraTerm macro language (Boris Maisuradze)
- Added support for Escape Regular Expressions (BenBE)
* Implemented C-style Escapes in PHP (BenBE)
* Introduced support for \xAB and \007 style Char Escapes in PHP (BenBE)
* Implemented Variable Highlighting in PHP (BenBE)
* Implemented Variable Highlighting in Bash (milian)
- Fixed a problem with PCRE patterns for Keyword matching sometimes producing
very large strings, that could not be handled by some versions of PCRE lib,
causing broken highlighting an Regexp Compile errors (BenBE, milian)
- Fixed broken highlighting of bash commands like `dbus-send --dest=org.....`,
i.e. the dest was highlighted as variable declaration (milian)
- Fixed broken highlighting of some symbols in their escaped form (BenBE)
(<SEMI> and <PIPE> were accidentially filtered even though they are valid)
- Fixed a "memory leak" in the *_regexp_caches (milian)
- Fixed broken Escape chars if classes were disabled
- start_line_numbers_at() was ignored when GESHI_HEADER_PRE_TABLE was set (revulo)
- Fixed a problem allowing Remote Code Inclusion under certain circumstances (BenBE)
- Changes to default CSS in order to make the GESHI_HEADER_PRE_TABLE align properly,
even on Windows / Mac systems with strange fonts (milian, revulo, ^RT)
- Minor style changes to the following languages:
* cpp-qt (milian)
* MySQL (BenBE)
* PHP (BenBE)
- Improvements to language files (BenBE, milian)
* Added MinSpareThread\MaxSpareThreads to Apache highlighter (BenBE)
* Added new Keyword group for APT sources.list highlighter (BenBE)
* Fixed highlighting in LaTeX for \begin{} and \end{}, i.e. the stuff inside
the curly braces. (milian, thanks for the report go to Matthias Pospiech)
* Improved String support for D (BenBE)
* MySQL was seriously broken (BenBE)
* Reworked Keyword groups for MySQL to allow for more configuration (BenBE)
* Improved Mirc script language file (milian)
* Improved C++ Qt language file (milian)
* Minor bug with Transpose Operator in Matlab (BenBE, Daniele de Rigo)
* Highlighting of Batch Files for Windows (BenBE)
* Updated AutoIt to include latest changes for AutoIt v3.2.12.1 (BenBE, Thierry)
* Fixed duplicate keyword warnings for Perl, Tcl and Typoscript (BenBE)
* Fixed Doc-URL getting reparsed by highlighted keywords of other groups (BenBE, Jordi Boggiano)
Version 1.0.8
- Added language files
* APT sources.list (milian)
* Boo (Marcus Griep)
* CIL (Common Intermediate Language, .NET Assembly) (Marcus Griep)
* COBOL (Benny Baumann)
* Gnuplot (milian)
* KLoneC (Mickael Auger)
* KLoneC++ (Mickael Auger)
* PIC16xxx assembler (Phil Mattison)
* POV-Ray (Carl Fürstenberg)
* PowerShell (Frode Aarebrot)
* Progress (Marco Aurelio de Pasqual)
* TypoScript (Jan-Philipp Halle)
* Xorg configuration (milian)
- Make GeSHi's constructor arguments optional, so something like `$foo = new GeSHi;` is possible. (milian)
- Added an optimizer for lists to regular expressions. Using these cached lists results in a speedup of approx. 50%.
The slightly increased memory consumption (~150KB for PHP language file) is more than worth it! (milian)
- Some more memory & speed optimizations all over GeSHi (milian)
* Reduced memory overhead when highlighting keywords (BenBE)
* Keyword Linking now uses considerably less strtolower calls (milian)
* Cache Symbol Search Regexp and make Symbol Highlighting faster (milian)
* Use more native functions like substr_replace and strcasecmp to speed things up (milian)
* Use considerably less strlen() calls on various points by caching the results (milian)
* Properly set comments to be case insensitive where appropriate to increase performance (milian)
* Improve the performance of the strict mode tokenizer, making highlighting of languages like
HTML, ColdFusion or XML faster (milian)
* Setup caches for parsing on demand to make stylesheet generators fast (milian)
- Various improvements to Strict Block Handling (BenBE, milian)
* Added support for RegExp-based Strict Blocks (BenBE)
* Fixed highlighting incorrectly stopping at ?> in PHP (SF#1330968, BenBE)
* Languages with STRICT_MODE_APPLIES = GESHI_MAYBE default to strict mode now. When no highlightable
code is found in this mode, we fallback to the same setting as if GESHI_NEVER was set. That way it
should not be needed to call enable_strictmode() manually. (milian)
- Added new GESHI_HEADER_PRE_VALID type which uses the following markup: (milian)
* With line numbers: <div>header<ol><li><pre>...</pre></li>...</ol></div>
* Without line numbers: <pre>header...CODE...</pre>
=> valid HTML and no need for &nbsp; indentation
- Added new GESHI_HEADER_PRE_TABLE type which can be used to prevent linenumber-selection in Firefox
on copy'n'paste. (milian)
- set_language will not reset any language settings by default anymore.
* Added $force_reset param for to force full reload of a language. (milian)
* Make sure strict_mode is set properly when doing repeated set_language calls (milian)
- Fixed some problems with old PHP versions (SF#1975625, milian, BenBE)
- Fixed broken use with Suhosin Patch when /e modifier was disabled (SF#2021800, BenBE)
- Added support for external style information files to override language defaults without modifying language files (BenBE)
- The overall_class is now up to the user, and the language-code is _always_ added as a class (milian)
- Fixed Economy Mode for GeSHi::get_stylesheet() - now it just makes so much more sense! (milian)
- Fixed Economy Mode when COMMENT_REGEXP are used (BenBE)
- Changed the default encoding to use UTF-8, due to SF#2037598, BenBE)
- Improved overall string support:
* Added support for multichar string delimiters (SF#1932083, BenBE)
* Fixed problems of unfinished strings and comments producing invalid XHTML (SF#1996353, BenBE)
* Multichar Quotemarks sometimes had inconsistent behaviour (BenBE)
* Support for multiple styles of strings depending on the starter (BenBE)
* Properly handle escapes in strings, i.e. '\\' was not working properly before (milian)
* Fixed escape char support when an escape char is followed by multi-byte chars (SF#2037598, BenBE)
- Improved flexibility in language files (BenBE, milian)
* Added PARSER_CONTROL for OOLANG method highlighting (SF#1923060, BenBE)
* Added possibility to define strict blocks using an Regexp (BenBE)
* Removed explicit escaping of / in Regular Expressions (BenBE)
* Ignoring empty keyword groups when highlighting (milian)
* Make language_permissions configurable in language files via ['PARSER_CONTROL']['ENABLE_FLAGS']
this makes is_a calls unneeded and thus prevents PHP notices in PHP 5.x (milian)
* Extended support for number formats now covering the most common formats (SF#1923058, BenBE)
* Lifted a limitation that keywords had to have at least 2 subsequent letters (BenBE)
* Changed behaviour of PARSER_CONTROL now allowing to provide the full Lookahead and Lookbehind
expressions used as delimiters inside keywords instead of a simple char group (BenBE)
* Fixed improper handling of newlines in REGEXPS so this does not produce invalid html anylonger (milian)
- Some typos and mistakes in the documentation (BenBE)
- Added a script to contrib/ to verify language files are correct (BenBE)
- Fixed loads of compliancy warnings detected with that automated compliance testing script (BenBE)
- Many other improvements to various language files (BenBE, milian)
* Reduce strict errors & notices for language files (milian)
* Fixed symbol highlighting with C++ sometimes missing keywords after ; and comments (BenBE)
* Improved comment handling with TCL (Lars Hellström, BenBE)
* Fixed broken handling with XML comments (BenBE, SF#1849233)
* Fixed HTML comments spawning multiple lines producing invalid XHTML output (SF#1738173, BenBE)
* Added support for parameters beginning with dash in BASH language (BenBE)
* Support Apache's configuration sections, see http://httpd.apache.org/docs/2.2/sections.html (milian)
* Minor issue with PHP Heredoc and Nowdoc syntax sometimes not getting highlighted (BenBE)
* Updated Objective-C language file (SF#2013961, Quinn Taylor, BenBE)
* Added some keywords for VHDL (beshig, BenBE)
* Fixed severly broken ColdFusion language file (milian)
* Fixed some incorrectly highlighted things with the CSS language file (milian, BenBE)
* Improved Smarty language file (milian)
* Improved CSS language file (milian)
* Improved Pascal language file (milian)
* Improved LaTeX language file (Андрей Парамонов, BenBE)
* Fixed a regular expression in mIRC language file that caused a warning message to be issued (BenBE)
* Removed <, > and / from HTML names, now only containing the real tag names (BenBE)
* Use spaces instead of tabs for indendation in language files to have a consistent
coding standard accross geshi files (milian)
* Added some comment styles, keywords and added index highlighting (Chusslove Illich, Часлав Илић)
- Removed some private methods which were only called at exactly one place (milian)
* format_header_content
* format_footer_content
* get_attributes
- Second part of default style changes. Affected in this release:
* C++
* C++ (QT)
* CSS
* VHDL
Version 1.0.7.22
- Added language files
* glSlang (BenBE)
* KiXtart (Riley McArdle)
* Lotus Notes @Formulas (Richard Civil)
* LotusScript (Richard Civil)
* MXML (David Spurr)
* Scala (Franco Lombardo)
* ActionScript 3 (Jordi Boggiano)
* GNU Gettext .po/.pot (Milian Wolff)
* Verilog (Günter Dannoritzer)
- Fixed a problem not yet addressed in 1.0.7.21 regarding highlighting of
symbols that caused some extra characters to be added in the output or
broke highlighting and standard compliance due to missing escaping of
internally used characters (SF#192320 and SF#1926259, BenBE)
- Fixed missing style information for ocaml language file (The_PHP_Jedi)
- Fixed a bug causing masses of warnings in rendered output if language file
miss style information (The_PHP_Jedi, BenBE)
- Missing tab width information could lead to warnings (BenBE)
- Missing symbol information for ASP (SF#1952038, nfsupport, BenBE)
- Empty delimiter message with OOoBasic (BenBE, Ccornell)
- Escaping of comments in LaTeX ignored (SF#1749806, BenBE)
- Modified Math environment $$ in LaTeX to be non-greedy (BenBE)
- Added possibility to match a regexp as comment (SF#1914640, SF#1945301, SF#1934832, BenBE)
- Introduced C-Style multiline continuation comments (SF#1914640, SF#1945301, BenBE)
- Introduced Fortran Comments (SF#1914640, SF#1934832, BenBE)
- Implemented Heredoc and Nowdoc Syntax for PHP and Perl (SF#1914640, BenBE)
- Implemented Compiler Directives for Delphi (SF#1914640, BenBE)
- Implemented minimalistic support for JavaScript \ Perl Regular Expressions (SF#1786665, SF#1754333, SF#1956631, BenBE)
- Fixed Strings in Matlab to be handled as comments instead of regexps, to prevent keywords being linked (BenBE)
- Applied PARSER_CONTROL fix of CPP for CPP-QT-Derivative (BenBE)
- Fixed incorrect treatment of unequally long multiline comment separators (related to SF #1891630, BenBE)
- Added PARSER_CONTROL settings for keywords in ASM language file (SF#1835148, BenBE)
- Fixed missing CASSE_SENSITIVE entry for DOS language file (SF#1956314, BenBE)
- Fixed accidential highlighting of keywords in argument names (SF#1956456, Milian Wolff, BenBE)
- Fixed yet again some #-related bash problem (SF#1956459, Milian Wolff, BenBE)
- Added backticks as symbols (Milian Wolff)
- Example script remembers selections and source submitted (Milian Wolff)
- Example script allows remembered source and preselected language to be cleared (Milian Wolff)
- Example script now properly includes geshi and doesn't suppress error messages anylonger. (Milian Wolff)
- Code cleanup by using direct string indexing instead of substr with length 1 (Milian Wolff)
- Optimized generation of code parts in strict mode (Milian Wolff)
- Optimized COMMENT_REGEXP by using an incremental regexp cache (Milian Wolff, BenBE)
- Fixed a problem that rarely skipped highlighting of escaped chars which usually should have gotten highlighted (BenBE)
- Optimized generation of highlighted strings to use fast skip forward while highlighting them (Milian Wolff, BenBE)
- Optimization using basic rework of indent function improving tab expansion performance (BenBE)
- Lots of other minor optimizations based on coding style improvements (Milian Wolff)
- Implemented setting to force spans to be closed before newlines, see SF#1727398 (Milian Wolff)
- Added missing credits for D language file to THANKS file (SF#1720899, BenBE)
- Optimization to prevent loading the current language file twice (Milian Wolff)
- Optimization: Use file_get_contents() to load sourcecode from files.
Even if GeSHi worked with PHP 4.1 before, it doesn't now. (Milian Wolff)
- Added description of extra language features (SF#1970248, BenBE)
- Added support for highlighting the C# using and namespace directives (SF #1395677, BenBE)
- Added support for highlighting the Java import and package directives (SF #1395677, BenBE)
- Fixed minor problem in Haskell cuasing accidential start of comment (SF#1987221, BenBE)
- Fixed minor issue causing loads of warnings if a language files defines no symbols (BenBE)
- Updated some aspects of the documentation and included further hints (BenBE)
- First of series of color scheme changes. Affected languages (sofar):
* Assembler (x86)
* Bash
* C
* C#
* Delphi
* Fortran77
* glSlang
* Java & Java 5
* JavaScript
* OCaml
* OpenOffice.org Basic
* Pascal
* Perl
* PHP and PHP-Brief
Version 1.0.7.21
- Added language files
* Basic4GL (Matthew Webb)
- Fixed problem with mIRC language highlighting spaces only (BenBE)
- Language files can now specify a function to be called to decide the
colour of a regular expression match
- Added single quote to Lua (Darrin Roenfanz)
- Compare comments case insensitively (fixes AutoIT comments somewhat)
(Daniel Gordon)
- Fixed symbols not being highlighted at all (SF #1767953, BenBE)
- Fixed brackets not correctly managed (SF #1767954, BenBE)
- Changed default languages for some extensions
- Included color and character information for symbol highlighting in some languages (BenBE)
- Fixed a problem with extension detection if default was used (BenBE)
- Fixed a highlighting problem with the LaTeX language (SF #1776182, BenBE)
- Added a new parameter for enable_highlighting to reduce source duplication (SF #1786104, BenBE)
- Updated doxygen documentation to include since tags and some missing parameters
- Disabled symbol highlighting by default (doesn't affect brackets, cf. documentation) (BenBE)
- Added a check for set_case_keywords for the given param to be supported (BenBE)
- Minor rework of the HTML documentation layout \ W3C compliance (BenBE)
- Fixed highlighting error in bash language avoiding keywords in comments (SF #1786314, SF #1564839, BenBE)
- Fixed template params for C++ and C# not being highlighted (SF #1772919, BenBE)
- Fixed more reported problems about mirc highlighting
- Added some missing keywords for VB.NET
- Fixed some warnings in DOS language file (Florian Angehrn)
- Add possibility to handle more than one extra line style (SF #1698255, German Rumm, BenBE)
- Fixed handling of URLs when output case differs from URL case (SF #1815504, Tom Samstag, BenBE)
- Fixed POD (Plain Old Documentation) format problems breaking highlighting of Perl (SF #1891630, Shannon Wynter, BenBE)
- Fixed a problem with mIRC when & was used for identifiers (SF #1875552, BenBE)
Version 1.0.7.20
- Added language files
* Genero (logic) and Per (forms) (FOURJ's Genero 4GL) (Lars Gersmann)
* Haskell (Dagit)
* ABAP (Andres Picazo)
* Motorola 68k Assembler (for MC68HC908GP32 Microcontroller) (BenBE)
* Dot (Adrien Friggeri)
- Fixed java documentation search for keywords to actually go to the
documentation (spaze)
- Applied fix for bug 1688864 (bad regexes) (Tim Starling)
- Fixed comment CSS rule in visualfoxpro
- ThinBASIC language update (Eros Olmi)
- mIRC language update (BenBE)
- Fixed outdated documentation URL of Perl language file (RuralMoon by BenBE)
- Fixed tab replacement code not generating the correct number of spaces in
some cases (Guillermo Calvo)
- Fixed two typos in Z80 language file
- Applied fix for bug 1730168 (Daniel Naber)
- Applied fix for bug 1705482 (Jason Frame)
* Configurable line endings (Replace \n by custom string)
* per-language tab-widths (Adjustable for width>=1)
* Included defaults for ASM (x86, m68k, z80), C, C (Mac), C++, C++ (QT), C#,
Delphi, CSS,, HTML, PHP, PHP (Brief), QBasic, Ruby, XML
- Added a possibility to force generation of a surrounding tag around
the highlighted source
- Applied fix for additional keywords for the bash language
(cf. http://bash.thefreebizhost.com/bash_geshi.php, BenBE / Jan G)
- Fix bad colour definition in GML language (Andreas Gohr)
- Fixed phpdoc comments not being indented one space if they should be (Andy
Hassall)
Version 1.0.7.19
- Added language files
* X++ (Simon Butcher)
* Rails (Moises Deniz)
- Fixed invalid HTML being generated and doctypes not being highlighted over
multiple lines properly when line numbers are on (Validome)
- Improved the ruby syntax highlighting by basing it off the Rails file
- Changed some regular expressions to possibly help with badly performing
regex support in PHP (Tim Starling)
- Allow {TIME}, {LANGUAGE} and {VERSION} to be used in the header as well as
the normal <TIME>/<LANGUAGE>/<VERSION> (AthanD)
- Changed comment regex in bash to prevent malformed XHTML (rv1971)
Version 1.0.7.18
- Added language files
* ZiLOG Z80 Assembly (BenBE)
- Fixed incorrect highlighting when the starter of a multiline comment is
longer than the ender (Robert Anthony).
- Fixed "</span" generated if a multiline comment is the last thing in the
source (related to the above).
- Added #cs => #ce comment markers to AutoIT (Robert Anthony)
- Fixed spelling mistake for keyword in Python (wd3)
- Added a method to enable/disable keyword linking (Ian McKellar)
- Improved empty line detection for HTML output (BenBE)
- Changed code style of geshi.php, and removed tabs
Version 1.0.7.17
- Fixed up ends of files having too many newlines (binarygroop)
- Removed background colour on keyword group in eiffel (Julian Tschannen)
- Removed GESHI_DIR_SEPARATOR constant usage, it's unnecessary (Aleksey Zapparov)
- Added /* ... */ comments to coldfusion (Jeff Howden)
Version 1.0.7.16
- Added language files
* ActionScript (Steffen Krause)
* C++/QT (Iulian M)
* PL/SQL (Victor Engmark)
- Fixed up my e-mail address everywhere
- Fixed notice with "error" property (IZIU Zielona Góra)
- Added some entries to the get_language_name_from_extension table
(Stebastian Schuberth)
Version 1.0.7.15
- Added language files
* BNF (Rowan Rodrik van der Molen)
* IO (me, thanks to Johnathan Wright)
* mIRC (Alberto de Areba Sánchez)
- Fixed use of colon in XML (Grigory Rubtsov)
- Fixed notices in text.php, reg.php and latex.php when $this is not
available (Clemens Weiß)
- Made third parameter of geshi_highlight optional (Gaetano Giunta)
- Fix incorrect highlighting of the $# variable in bash (Michael Knight)
- Fixed single line comment mistake in thinbasic.php (Eros Olmi)
Version 1.0.7.14
- Added language files
* thinBasic (Eros Olmi)
* LaTeX (Matthais Pospiech)
- Removed extra newlines at the end of some files
- Fixed SF bug 1556404 - check before using $this in language files
(Clemens Weiß)
Version 1.0.7.13
- Added language files
* Uno IDL (Cedric Bosdonnat)
- Fixed add_ids causing odd XHTML (RyanJ)
- Fixed extra newline being added to end of result (Andreas Gohr)
Version 1.0.7.12
- Fixed lines being collapsed when they contain just a space (artlover)
- Allowed matching for regexes using start/end matchers at the start/end
of the code (Sheri)
- Added (dubious) fix for google "I'm feeling lucky" search for java keywords
(dubious in that it doesn't work for me)
- mysql - Made the symbols into their own keyword group as the symbol group
isn't used. Added a style for multiline comments.
- Added a couple of php5 keywords to the php language files.
- Allow XML tags to have dashes.
- Changed LANG_NAME for many languages to be more sensible/correct case
(Matthias Mohr)
- Added case-sensitivity indices to python
Version 1.0.7.11
- Added language files
* Smalltalk (Bananeweizen)
- Minor style improvements to matlab
- Moved a couple of functions to the correct group in smarty (arwan)
Version 1.0.7.10
- Added language files
* TCL (Reid van Melle)
* Winbatch (Craig Storey)
* Groovy (Ivan F. Villanueva B.)
* Text (SmokingRope)
* Reg (SmokingRope)
- Removed \ as an escape character in T-SQL (Dave Jackson)
- Reset extra lines to highlight if source is changed (Diogo Resende)
- Allow setting of lexic permissions in language files (SmokingRope)
- Allow regexes to set a CSS class name (SmokingRope)
- Added URL support to DOS language (mastrboy)
Version 1.0.7.9
- Added language files
* Fortran (Cedric Arrabie)
* SAS (Galen Johnson)
* CFDG (John Horigan)
- Fixed & in URL in java5 (Clemens Weiß)
- Added MD5 and SHA1 to mysql keywords (polarina)
- Fixes for highlight_lines_extra with line numbers (ithcy)
- Fixed backslash characters being removed (ArTourter)
Version 1.0.7.8
- Fixed blank at start of MySQL file (W. Tasin)
- Fixed smarty functions being broken (ultrabob)
- Changed keyword and regexp detection and parsing
slightly to allow more "meta characters" (like #) in
keywords
- Minor fixes for XML and GML
Version 1.0.7.7
- Added language files
* T-SQL (Duncan Lock)
* Robots.txt (Christian Lescuyer)
* AutoIT (mastrboy)
* Java 5 (Clemens Bruckmann)
* ColdFusion (Diego)
- A few keyword changes in java, removed :: object splitter (amphi)
- Now using a simpler regular expression for numbers (Brice Bernard)
- Fixed ah, bh etc. regs being highlighted as numbers (Unknown)
Version 1.0.7.6
- Fix backtick-string highlighting in ruby (Juan J. Martínez)
- Add =begin multiline comments in ruby (Juan J. Martínez)
- Added support for :keywords and ::access in lisp (Denis Mashkevich)
- Prevented number highlighting if they are just after underscores (Joce)
- Removed escape characters for strings in XML and HTML (floele)
- Added instanceof keyword to java (jgottschling)
- Fixed comments in ASP (SBD)
- Removed unnecessary keyword style index from ini
- Added support for " strings in ini
- Removed unnecessary regex style index from blitzbasic
- Keyword case of URL-ed keywords should be defined by language file (Benny Baumann)
- Added "Hardquote" feature, provides more accurate string highlighting (Cliff Stanford)
- Used hardquote support for @"..." strings in C# (Cliff Stanford)
- Used hardquote support for ' strings in perl (Cliff Stanford)
- Fixed setting of language path (Cliff Stanford)
- Display source correctly formatted with line numbers (if requested) if an error
has occured (several people)
- Having no source to highlight is not an error condition anymore
- Delphi language updated to include more keywords and types (BenBE)
- Updated NSIS to version 2.11 (deguix)
Version 1.0.7.5
- Fix for using escape characters to escape newlines breaking XHTML compliance (Yves Goergen)
- Fixed method highlighting in VB (Matt Beale)
- Fixed multiline comment highlighting in SQL (MrBaseball34)
- Fixed two ">" symbols being outputted when using a footer but not CSS classes (MrBaseball34)
- Marked important block stuff as deprecated
- Some documentation tidyup
- Updated GML language file (Jos? Jorge Enr?quez Rodr?guez)
- THANKS file tidied up
- Fixed double </a> for elements in HTML (Yves Goergen)
- Added some keywords for ASM (Dreuzzo)
Version 1.0.7.4
- Added language files
* MySQL (Carl Fürstenberg)
* BlitzBasic (Pàdraig O`Connel)
- Fixed up geshi_highlight function: it now correctly uses <code> instead of <div> (Remi Faure)
- When using GESHI_HEADER_NONE, remove the <ol> if line numbering is not enabled
- Commented example.php so people can use it as a guide better
- Fixed extra newline being generated if a comment is at the end
of the source (many people, including Yves Goergen)
- Fixed up some documentation issues
- Some minor language file fixes (C++, Lua) (Lua fixes by chromix)
- Fixed up no </span> in XML and other strict languages (regression from 1.0.7.3 fix: removed
unnecessary </span> when using strict mode) (Daniel Ecer, drskrud),
Version 1.0.7.3
- Added language files
* Scheme (Jon Raphaelson)
* Ocaml and Ocaml-brief (Flaie)
* Ruby (Amit Gupta)
- Make urls generated for java highlighting XHTML compliant (Tim Van Wassenhove)
- Removed unnecessary </span> when using strict mode (Tim Van Wassenhove)
- Fixed warning in dos.php about undefined constant (Tim Van Wassenhove)
- Fixed security hole in contrib/example.php - able to view any file if source
not set and language is set to wierd value (Maksymilian Arciemowicz)
Version 1.0.7.2
- Added language files
* Inno (Thomas Klinger)
* Ini (Deguix)
* DOS (Batchfile) (Alessandro Staltali)
* Applescript (Stephan Klimek)
* Freebasic (Roberto Rossi)
* SDLBasic (Roberto Rossi)
* ActionScript (links to French documentation) (NikO)
- NSIS language file updated (deguix)
- Lua language file updated (Roberto Rossi)
- Bugfix: Styles incorrectly overriding default styles instead of being merged
in set_*_styles methods (Stebastian Werner)
- Added GESHI_HEADER_NONE as valid header type. This still allows header content.
Version 1.0.7.1
- Added language files:
* Div (Gabriel Lorenzo)
* GML (José Jorge Enríquez Rodríguez)
* Eiffel (Zoran Simic)
- Minor change to rules regarding when keywords can appear - now dots (.) are
allowed before keywords. (NikO)
- Bugfix: the line style for non-fancy lines when fancy highlighting is enabled
is now applied (Amit Gupta)
Version 1.0.7
- Added language files:
* Diff (Conny Brunnkvist)
* VHDL (Alexander Krause)
* D (Thomas Kuehne)
* Matlab (Florian Knorn)
- Python highlighting improved (thither, Federico Quagliata)
- Changed file comments to use phpdoc syntax, and changed code style to be more
like PEAR
- Fixed bug in set_code_style: Second parameter is now optional
- The $_GESHI_ERRORS array is gone, error messages are internal to the GeSHi class
- Changed name of XML language to XML from HTML
- Removed min and max tab width checks
- Backported GeSHi 1.1.X's automatic language file path detection so you no longer
need to use the third parameter of the constructor or set_language_path except for
special circumstances.
- Source is checked to make sure it is not empty else an error occurs
- Removed excess characters after ?> in ada.php, apache.php and cpp.php that caused
http headers to be sent (psichron)
- Removed second "foreach" keyword for smarty language file that was causing
duplication (Iss)
- Added underscore to allowed characters in match for XML tags (anonymous)
- Added some missing java keywords like "abstract" and "transient"
- Added "list" and "continue" PHP keywords
- set_language resets error status and strict mode (Andrew Black)
- Removed margin:0 declaration from cssgen.php (Andrzej Kubaszek)
- Fixed multiline comment selector in cssgen.php (Andrzej Kubaszek)
Version 1.0.6
- Added support for smart tabs - tabs that behave just like normal tabs when in
GESHI_HEADER_DIV mode.
- Partial patch for UTF-8 encoding applied (doesn't quite work however...)
Version 1.0.5
- Added language files:
* MPASM (Bakalex)
* Oracle 8 (Guy Wicks)
- Fixed bug where not using an encoding type would sometime result in warnings (although
there still seems to be issues with encoding in general that I'm trying to gather more
data on) (Alexander Spennemann)
- Removed "margin: 0" from <ol> in an attempt to make line numbers visible in IE again
by default (untested, but I don't really care if it works... get firefox! ;))
- Added note on php5 support (Karim Scheik)
- Added two new methods: load_from_file and get_language_name_from_extension, that can
help automate file highlighting (though the extension array at this time is quite bare)
(David Gartner, Brian Cheesman)
Version 1.0.4
- Fixed many version-reporting bugs (Jack Lloyd)
- Fixed bug where methods were not having the correct CSS generated for them
by get_stylesheet() (Jack Lloyd)
- Added new keywords to C and C++ files (Jack Lloyd)
- Added section on case sensitivity to documentation that wasn't in the other versions
Version 1.0.3
- Added language files:
* Smarty (Alan Juden)
* C# (Alan Juden)
* VB.NET (Alan Juden)
* C for Macs (M. Uli Kusterer)
* Objective C (M. Uli Kusterer)
- Links can have a target attribute (Andreas Gohr)
- Fixed multiline string bug if not using classes
- Added method set_encoding that allows you to set the character
set used by calls to htmlentities() in GeSHi
- You can now specify an array of object splitters, and each
type of method separated by each object splitter can be highlighted
differently
- If a language uses a case sensitive keyword group and that group
has a URL associated with it, the keyword will not be lowercased
in the URL (M. Uli Kusterer)
Version 1.0.2
- Added language files:
* Actionscript (Steffen Krause)
* ASP (Amit Gupta)
* Bash (Andreas Gohr)
* CADDCL (Roberto Rossi)
* CadLisp (Roberto Rossi)
* C++ (Dennis Bayer)
* Delphi (Járja Norbert)
* Javascript (Ben Keen)
* Lisp (Roberto Rossi)
* OpenOffice.org BASIC (Roberto Rossi)
* Perl (Andreas Gohr and Ben Keen)
* Python (Roberto Rossi)
* VisualFoxPro (Roberto Armellin)
* XML (Nigel McNie, from an idea/file by Christian Weiske)
- Added contrib/ directory with script to create one external stylesheet
from many languages(base script by Andreas Gohr, modified by Nigel McNie),
and an example script (needs lotsa work...)
- Code lines can have their own unique ID (for use with javascript)
(suggested by Andreas von Oettingen)
- Certain rows can be specified to be highlighted differently (suggested by
Andreas von Oettingen)
- Getter available for human-readable language name (suggested by Simon Patterson)
- Line numbers aren't highlighted when a user selects the code
- Contextual highlighting with <BEGIN GeSHi> ... <END GeSHi> in the code (which
can be disabled)
- Functions can be made into URLs to appropriate documentation (suggested
by cybot_tm). Also thanks to Marcin Gryszkalis for the links for C, Java
and Perl.
- Code can have a header and footer
- Time taken to parse the code is recorded and made available with the get_time()
method
- error() now returns a human-readable error message
- Function geshi_highlight added to make it even easier to highlight on the fly
- Advanced regular expression handling
- Bug fixes to lexic_permission handling
Version 1.0.1
- Added methods set_symbols_style() and set_symbols_highlighting(). These should be used
instead of set_brackets_style and set_brackets_highlighting respectively.
- Added a new field - language_path - that can be set either when the constructor is
called, or by the new method set_language_path(), that specifies a path to the directory
containing the language files (bug reported by bbspliff)
- Added a new method set_case_keywords(), that allows the auto-casing feature to be
changed on the fly instead of simply being specified in the language file
- If there is an error the source that is outputted is now handled much better
- Lines are broken in the source only by \n now, not by \r\n (to save on output source)
- Indentation moved into its own method
- Method header() modified to allow the user to choose whether the code is surrounded in
a <div> or a <pre> (see documentation for benefits of both). Method footer() likewise
modified.
- Method get_stylesheet() modified so that a smaller comment is outputted in economy mode,
and bugs with when line number classes are outputted in economy mode have been fixed
- Bug where spans had two quotes at the end of the attributes fixed (ie. <span style=".."">)
- Added language files:
* Ada (Tux)
* Apache log file (Tux)
* ASM (Tux)
* NSIS (Tux)
* Pascal (Tux)
Version 1.0.0
- Initial Release

340
library/geshi/docs/COPYING Normal file
View File

@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program 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.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

33
library/geshi/docs/README Normal file
View File

@ -0,0 +1,33 @@
GeSHi - GEneric Syntax HIghlighter
----------------------------------
Version 1.0.8
Author: Nigel McNie, Benny Baumann
Email: nigel@geshi.org, BenBE@omorphia.de
GeSHi Website: http://qbnz.com/highlighter
GeSHi is a generic syntax highlighter, written in PHP. You simply
input the source code you wish to highlight with the language you
wish to use, and the output will be a file syntax highlighted to
XHTML standards.
For more information on how to use GeSHi, please consult the
documentation. If you got this readme from a GeSHi package, then
the documentation is available in the docs/ directory. Documentation
is also available at http://qbnz.com/highlighter/documentation.php
If you think you've found a bug in GeSHi, contact me with a bug
report at BenBE@omorphia.de, or submit it to the bug tracker at
http://sourceforge.net/tracker/?group_id=114997&atid=670231. Be
aware that minor highlighting errors may well just be incorrect
language files, but if you do find something major please contact me.
And if you're using GeSHi as a plugin/mod for some other software,
please tell me about it! It's worth a link to you, and I can give
you specialist help if you need it.
GeSHi is free software, released under the GNU GPL. Please see the
COPYING file for more information. If you do modify this program,
please tell me about it! Perhaps you've made a good improvement that
I can learn from :)

206
library/geshi/docs/THANKS Normal file
View File

@ -0,0 +1,206 @@
THANKS - List of credits for GeSHi
I owe these people/groups my thanks for help with GeSHi. Thanks, guys!
- Amit Gupta - Thanks for all that constructive criticism - it's
a great help for making GeSHi even better. And
thanks for the Wordpress plugin! (Anyone who is
interested in the plugin can visit:
http://blog.igeek.info/still-fresh/category/wp-plugins/igsyntax-hiliter/)
- Andreas Gohr - Thanks for language files and for using GeSHi for DokuWiki
(http://www.splitbrain.org/dokuwiki/wiki:dokuwiki). And thanks
for all your criticisms and for that stylesheet-maker code :).
Also, thanks for the UTF-8 patch.
- Andreas von Oettingen - Thanks for those great ideas! :)
- bbspliff - Thanks for pointing out that bug (pity I already
found it though ;))
- Benny Baumann - Thanks for your innumerable suggestions for improvements, and your
work on Delphi support :)
- Ben Keen - Thanks for the language files and pointing out some
ideas for future releases. Lookin' forward to seeing that
software soon! ;)
- Brian Cheesman - Thanks for using GeSHi in phpCvsView, and for the suggestion about
extension => language lookup
- Christian Weiske - Thanks for the inspiration for creating advanced regexp
highlighting :D
- Cliff Stanford - Thanks for the hardquote support for C# and Perl (can be used elsewhere
I'm sure)
- David Gartner - Thanks for using GeSHi in net2ftp, and for the idea about a load_from_file
method
- forum.qbasicnews.com - Thanks for putting up with the crappy versions
that I "forced" on you guys before ;)
- Jack Lloyd - Thanks for pointing out the versioning and method CSS bugs, and giving
me the extra C/C++ keywords
- Karim Scheik - Thanks for the php5 support report
- Marcin Gryszkalis - Thanks for those links for C, Java, Perl
- M. Uli Kusterer - Thanks for the idea about URL case conversion
- Milian Wolff - Thanks for the loads of optimizations
- Thanks for helping with implementation of various features
- Roberto Armellin - Thanks for pointing out some flaws in GeSHi (that will be solved
in 1.2 guaranteed)
- Sterling Christensen - Thanks for those links to language specs
- Tux - Thanks for making all those language files :D
- zbw - Thanks for proving a phpBB port was possible
PEOPE WHO MADE LANGUAGE FILES
- ABAP Andres Picazo
- Actionscript Steffen Krause (french translation by NikO)
- ActionScript 3 Jordi Boggiano (version for ActionScript3 and MXML)
- Ada Tux
- Apache Tux
- Applescript Stephan Klimek
- Apt sources.list Milian Wolff
- ASM Tux
- ASP Amit Gupta
- Autoconf Mihai Vasilian
- AutoHotkey Naveen Garg
- AutoIt mastrboy
- AviSynth Ryan Jones
- Awk George Pollard
- Bash Andreas Gohr
- Basic4GL Matthew Webb
- BibTeX Quinn Taylor
- BlitzBasic P<>draig O`Connel
- BNF Rowan Rodrik van der Molen
- Boo Marcus Griep
- Brainfuck \ Brainfork Benny Baumann
- C for Macs M. Uli Kusterer
- C# Alan Juden
- C++ Dennis Bayer, M. Uli Kusterer
- C++/QT Iulian M
- CADDCL Roberto Rossi
- CadLisp Roberto Rossi
- CDFG John Horigan
- ChaiScript Jason Turner, Jonathan Turner
- CIL Marcus Griep
- Clojure Jess Johnson
- CMake Daniel Nelson
- COBOL Benny Baumann
- ColdFusion Diego
- Cuesheet Benny Baumann
- D Thomas Kuehne
- DCS Stelio Passaris
- Delphi Járja Norbert, Benny Baumann
- Div Gabriel Lorenzo
- DOS Alessandro Staltari
- ECMAScript Michel Mariani
- Eiffel Zoran Simic
- eMail \ mbox Benny Baumann
- Erlang Benny Baumann, Dan Forest-Barbier, Uwe Dauernheim
- F# Julien Ortin
- FO (abas-ERP) Tan-Vinh Nguyen
- Fortran Cedric Arrabie
- FreeBasic Roberto Rossi
- GADV 4CS Jason Curl
- GAMBAS Jesus Guardon
- Genie Nicolas Joseph
- Gettext Milian Wolff
- glSlang Benny Baumann
- GML José Jorge Enríquez Rodríguez
- GNU make Neil Bird
- Gnuplot Milian Wolff
- Groovy Ivan F. Villanueva B.
- GwBasic José Gabriel Moya Yangüela
- Haskell Dagit
- HicEst Georg Petrich
- HQ9+ Benny Baumann
- Icon Matt Oates
- Ini Deguix
- Inno Thomas Klinger
- INTERCAL Benny Baumann
- J Ric Sherlock
- Java 5 Clemens Bruckmann
- Javascript Ben Keen
- jQuery Rob Loach
- KiXtart Riley McArdle
- KLone C Mickael Auger
- KLone C++ Mickael Auger
- LaTeX Matthais Pospiech
- Lisp Roberto Rossi
- Locomotive Basic Nacho Cabanes
- Logtalk Paulo Moura
- LOLcode Benny Baumann
- LScript Beau McGuigan
- LSL2 William Fry
- Lua Roberto Rossi
- m86k Benny Baumann
- MagikSF Sjoerd van Leent
- MapBasic Tomasz Berus
- mIRC Alberto de Areba Sánchez
- Modula 2 Benjamin Kowarsch
- Modula-3 Martin Bishop
- MPASM Bakalex
- MXML David Spurr
- MySQL Carl Fürstenberg, Marjolein Katsma
- NewLisp cormullion
- NSIS Tux, Deguix
- Oberon-2 Mike Mol
- Objective C M. Uli Kusterer
- Ocaml Flaie
- Ocaml-brief Flaie
- OpenBSD Packet Filter David Berard
- OpenOffice.org BASIC Roberto Rossi
- Oracle 8 Guy Wicks
- Oracle 11i Simon Redhead
- Oxygene (Delphi Prism) Carlo Kok
- Oz Wolfgang Meyer
- Pascal Tux
- PCRE Benny Baumann
- Perl Andreas Gohr, Ben Keen
- Perl6 Kodi Arfer
- PIC16xxx assembler Phil Mattison
- Pike Rick E.
- Pixel Bender Richard Olsson
- PL/SQL Victor Engmark
- PostgreSQL Christophe Chauvet
- POV-Ray Carl Fürstenberg
- PowerBuilder Doug Porter
- PowerShell Frode Aarebrot
- Progress Marco Aurelio de Pasqual
- Prolog Benny Baumann
- Property Files Edy Hinzen
- ProvideX Jeff Wilder
- PureBasic Gustavo Julio Fiorenza
- Python Roberto Rossi
- q/kdb+ Ian Roddis
- R / S+ Ron Fredericks
- Rails Moises Deniz
- Rebol Lecanu Guillaume
- Reg SmokingRope
- Robots Christian Lescuyer
- RPM Specification File Paul Grinberg
- Ruby Amit Gupta, Moises Deniz
- SAS Galen Johnson
- Scheme Jon Raphaelson
- SciLab Christophe David
- SDLBasic Roberto Rossi
- Smalltalk Bananeweizen
- Smarty Alan Juden
- SystemVerilog Sean O'Boyle
- TCL Reid van Melle
- TeraTerm Boris Maisuradze
- Text SmokingRope
- thinBasic Eros Olmi
- T-SQL Duncan Lock
- TypoScript Jan-Philipp Halle
- Unicon Matt Oates
- Uno IDL Cedric Bosdonnat
- Vala Nicolas Joseph
- VB Roberto Rossi
- VB.NET Alan Juden
- Verilog Günter Dannoritzer
- VIM Script Swaroop C H
- Visual FoxPro Roberto Armellin
- Visual Prolog Thomas Linder Puls
- Whitespace Benny Baumann
- Whois \ RPSL format Benny Baumann
- Winbatch Craig Storey
- X++ Simon Butcher
- XBasic José Gabriel Moya Yangüela
- Xorg config Milian Wolff
- Z80 Assembler Benny Baumann
Do you want your name in here? Help me out! Make a language file, or suggest a new
feature, or make a plugin for GeSHi for some other software, then tell me about it!

71
library/geshi/docs/TODO Normal file
View File

@ -0,0 +1,71 @@
TODO - List of things to do as of 2005/01/29
Suggestions for things to add are welcome, if you have a feature request you
can either post it to the forums:
http://qbnz.com/highlighter/forum.php
Or to the feature request tracker:
http://sourceforge.net/tracker/?group_id=114997&atid=670234
TODO for version 1.0.8.x
- Rework the load_from_file method and the one for getting a file extension,
as documented in the source.
- use analogous vars to $next_comment_regexp_pos for more GeSHi structures,
should reduce number of functions called and hence improve performance
- make a set of default colours which can be used in the language files.
this way we can give languages a uniform look and maybe even add "themes"
- Get better coverage in our coderepo
- README / INSTALL / ... file for phpdoc integration => take geshi-doc.*?
- rework HARDQUOTE + styles, currently this is a bit of a mess imo (milian)
- Allow per-keywordgroup AutoCaps/NoCaps
- Complete API to support latest features
set_number_style ($key missing)
set_string_style ($key missing)
set_case_keywords (support for per_keywordgroup AutoCaps)
TODO for version 1.2.0
- Rewrite engine to use remove/replace method (will hopefully almost
eliminate the need for regular expressions except for numbers/methods
etc). This will also assist for making different output formats [DONE]
- "Intelligent" output format - eg if the user doesn't want lines to
wrap and wants line numbers don't use <ol>, use the <table> method
instead. (This saves on output)
- Clear split between "public" and "private" methods [DONE]
- PHP5 version
- "Themes" for styles - basically pre-made stylesheets that can be used
to highlight code of any language in a similar manner [DONE]
- "Dialects" for languages - eg php4, php5. One master language definition
file, and a bunch of "specialised" dialect files for each language
Ability to specify a "specialised" dialect as default? [DONE]
- Look at load/memory usage and try to reduce
- Make tabs into tab-stops like a normal editor [DONE]
- Ability to add more than one multiline comment or string [DONE]
- Ability to specify that strings cannot be multiline [DONE]
- Create a "wrapper" class for ultra-easy use
- Code written in a style that conforms to a phpdoc utility [DONE, PEAR]
- Dig functions/methods out of code and where they are called make an internal
link back to their definition
TODO for version 2.0.0
- Support for multiple output formats (XHTML, XML, PDF, RTF etc) [DONE IN 1.2]
- Support for auto-indent/code "beautifing"
- Option for "Lite" highlighting - aims for speed and low server load
- "Intelligent" highlighting inside comments, and ability to highlight
source in multiple languages at once (eg PHP+HTML) [DONE IN 1.2]
- Perhaps a script on the GeSHi site that would map urls to appropriate
definitions and relocate the user? (eg, java documentation is
structured in such a way that urls are not able to be used with GeSHi.
Instead the URL could become:
http://qbnz.com/highlighter/redirect.php?lang=java&kw=KeyWord
and that script would redirect to the correct location.
[BETTER FIX IN 1.2]
$Id: TODO 1727 2008-08-08 13:36:52Z benbe $

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
<html>
<head>
<title>GeSHi 1.0.8</title>
<link rel="stylesheet" href="media/stylesheet.css" />
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
</head>
<body>
<div align="center"><h1>GeSHi 1.0.8</h1></div>
<b>Welcome to geshi!</b><br />
<br />
This documentation was generated by <a href="http://www.phpdoc.org">phpDocumentor v1.4.2</a><br />
</body>
</html>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- template designed by Marco Von Ballmoos -->
<title></title>
<link rel="stylesheet" href="media/stylesheet.css" />
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
</head>
<body>
<!-- Start of Class Data -->
<H2>
</H2>
<h2>Root class GeSHi</h2>
<ul>
<li><a href="geshi/core/GeSHi.html">GeSHi</a></li></ul>
<p class="notes" id="credit">
Documentation generated on Thu, 25 Dec 2008 14:34:34 +0100 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.2</a>
</p>
</body>
</html>

View File

@ -0,0 +1,867 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- template designed by Marco Von Ballmoos -->
<title></title>
<link rel="stylesheet" href="media/stylesheet.css" />
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
</head>
<body>
<a name="top"></a>
<h2>Full index</h2>
<h3>Package indexes</h3>
<ul>
<li><a href="elementindex_geshi.html">geshi</a></li>
</ul>
<br />
<div class="index-letter-menu">
<a class="index-letter" href="elementindex.html#a">a</a>
<a class="index-letter" href="elementindex.html#d">d</a>
<a class="index-letter" href="elementindex.html#e">e</a>
<a class="index-letter" href="elementindex.html#g">g</a>
<a class="index-letter" href="elementindex.html#h">h</a>
<a class="index-letter" href="elementindex.html#l">l</a>
<a class="index-letter" href="elementindex.html#o">o</a>
<a class="index-letter" href="elementindex.html#p">p</a>
<a class="index-letter" href="elementindex.html#r">r</a>
<a class="index-letter" href="elementindex.html#s">s</a>
</div>
<a name="a"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">a</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">add_keyword</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodadd_keyword">GeSHi::add_keyword()</a> in geshi.php</div>
<div class="index-item-description">Adds a keyword to a keyword group for highlighting</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">add_keyword_group</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodadd_keyword_group">GeSHi::add_keyword_group()</a> in geshi.php</div>
<div class="index-item-description">Creates a new keyword group</div>
</dd>
</dl>
<a name="d"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">d</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">disable_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methoddisable_highlighting">GeSHi::disable_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Disables all highlighting</div>
</dd>
</dl>
<a name="e"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">e</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_classes</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_classes">GeSHi::enable_classes()</a> in geshi.php</div>
<div class="index-item-description">Sets whether CSS classes should be used to highlight the source. Default is off, calling this method with no arguments will turn it on</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_highlighting">GeSHi::enable_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Enables all highlighting</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_ids</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_ids">GeSHi::enable_ids()</a> in geshi.php</div>
<div class="index-item-description">Whether CSS IDs should be added to each line</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_important_blocks</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_important_blocks">GeSHi::enable_important_blocks()</a> in geshi.php</div>
<div class="index-item-description">Sets whether context-important blocks are highlighted</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_inner_code_block</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_inner_code_block">GeSHi::enable_inner_code_block()</a> in geshi.php</div>
<div class="index-item-description">Sets whether to force a surrounding block around the highlighted code or not</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_keyword_links</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_keyword_links">GeSHi::enable_keyword_links()</a> in geshi.php</div>
<div class="index-item-description">Turns linking of keywords on or off.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_line_numbers</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_line_numbers">GeSHi::enable_line_numbers()</a> in geshi.php</div>
<div class="index-item-description">Sets whether line numbers should be displayed.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_multiline_span</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_multiline_span">GeSHi::enable_multiline_span()</a> in geshi.php</div>
<div class="index-item-description">Sets wether spans and other HTML markup generated by GeSHi can span over multiple lines or not. Defaults to true to reduce overhead.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_strict_mode</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_strict_mode">GeSHi::enable_strict_mode()</a> in geshi.php</div>
<div class="index-item-description">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.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">error</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methoderror">GeSHi::error()</a> in geshi.php</div>
<div class="index-item-description">Returns an error message associated with the last GeSHi operation, or false if no error has occured</div>
</dd>
</dl>
<a name="g"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">g</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Constructor.png" alt="Method" title="Method" /></title>
<span class="method-title">GeSHi</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodGeSHi">GeSHi::GeSHi()</a> in geshi.php</div>
<div class="index-item-description">Creates a new GeSHi object, with source and language</div>
</dd>
<dt class="field">
<img src="media/images/Class.png" alt="Class" title="Class" /></title>
GeSHi
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html">GeSHi</a> in geshi.php</div>
<div class="index-item-description">The GeSHi Class.</div>
</dd>
<dt class="field">
<img src="media/images/Page.png" alt="Page" title="Page" /></title>
<span class="include-title">geshi.php</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html">geshi.php</a> in geshi.php</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_ACTIVE</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_ACTIVE">GESHI_ACTIVE</a> in geshi.php</div>
<div class="index-item-description">Links in the source in the :active state</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_CAPS_LOWER</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_CAPS_LOWER">GESHI_CAPS_LOWER</a> in geshi.php</div>
<div class="index-item-description">Leave keywords found as the case that they are</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_CAPS_NO_CHANGE</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_CAPS_NO_CHANGE">GESHI_CAPS_NO_CHANGE</a> in geshi.php</div>
<div class="index-item-description">Lowercase keywords found</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_CAPS_UPPER</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_CAPS_UPPER">GESHI_CAPS_UPPER</a> in geshi.php</div>
<div class="index-item-description">Uppercase keywords found</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_END_IMPORTANT</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_END_IMPORTANT">GESHI_END_IMPORTANT</a> in geshi.php</div>
<div class="index-item-description">The ender for important parts of the source</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_FANCY_LINE_NUMBERS</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_FANCY_LINE_NUMBERS">GESHI_FANCY_LINE_NUMBERS</a> in geshi.php</div>
<div class="index-item-description">Use fancy line numbers when building the result</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_HEADER_DIV</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_HEADER_DIV">GESHI_HEADER_DIV</a> in geshi.php</div>
<div class="index-item-description">Use a &quot;div&quot; to surround the source</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_HEADER_NONE</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_HEADER_NONE">GESHI_HEADER_NONE</a> in geshi.php</div>
<div class="index-item-description">Use nothing to surround the source</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_HEADER_PRE</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_HEADER_PRE">GESHI_HEADER_PRE</a> in geshi.php</div>
<div class="index-item-description">Use a &quot;pre&quot; to surround the source</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_HEADER_PRE_TABLE</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_HEADER_PRE_TABLE">GESHI_HEADER_PRE_TABLE</a> in geshi.php</div>
<div class="index-item-description">Use a &quot;table&quot; to surround the source:</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_HEADER_PRE_VALID</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_HEADER_PRE_VALID">GESHI_HEADER_PRE_VALID</a> in geshi.php</div>
<div class="index-item-description">Use a pre to wrap lines when line numbers are enabled or to wrap the whole code.</div>
</dd>
<dt class="field">
<img src="media/images/Function.png" alt="Function" title="Function" /></title>
<span class="method-title">geshi_highlight</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#functiongeshi_highlight">geshi_highlight()</a> in geshi.php</div>
<div class="index-item-description">Easy way to highlight stuff. Behaves just like highlight_string</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_HOVER</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_HOVER">GESHI_HOVER</a> in geshi.php</div>
<div class="index-item-description">Links in the source in the :hover state</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_LANG_ROOT</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_LANG_ROOT">GESHI_LANG_ROOT</a> in geshi.php</div>
<div class="index-item-description">The language file directory for GeSHi</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_LINK</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_LINK">GESHI_LINK</a> in geshi.php</div>
<div class="index-item-description">Links in the source in the :link state</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_NORMAL_LINE_NUMBERS</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_NORMAL_LINE_NUMBERS">GESHI_NORMAL_LINE_NUMBERS</a> in geshi.php</div>
<div class="index-item-description">Use normal line numbers when building the result</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_NO_LINE_NUMBERS</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_NO_LINE_NUMBERS">GESHI_NO_LINE_NUMBERS</a> in geshi.php</div>
<div class="index-item-description">Use no line numbers when building the result</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_ROOT</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_ROOT">GESHI_ROOT</a> in geshi.php</div>
<div class="index-item-description">The root directory for GeSHi</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_SECURITY_PARANOID</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_SECURITY_PARANOID">GESHI_SECURITY_PARANOID</a> in geshi.php</div>
<div class="index-item-description">Tells GeSHi to be paranoid about security settings</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_START_IMPORTANT</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_START_IMPORTANT">GESHI_START_IMPORTANT</a> in geshi.php</div>
<div class="index-item-description">The starter for important parts of the source</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_VERSION</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_VERSION">GESHI_VERSION</a> in geshi.php</div>
<div class="index-item-description">The version of this GeSHi file</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_VISITED</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_VISITED">GESHI_VISITED</a> in geshi.php</div>
<div class="index-item-description">Links in the source in the :visited state</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">get_language_name</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodget_language_name">GeSHi::get_language_name()</a> in geshi.php</div>
<div class="index-item-description">Gets a human-readable language name (thanks to Simon Patterson for the idea :))</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">get_language_name_from_extension</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodget_language_name_from_extension">GeSHi::get_language_name_from_extension()</a> in geshi.php</div>
<div class="index-item-description">Given a file extension, this method returns either a valid geshi language name, or the empty string if it couldn't be found</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">get_multiline_span</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodget_multiline_span">GeSHi::get_multiline_span()</a> in geshi.php</div>
<div class="index-item-description">Get current setting for multiline spans, see GeSHi-&gt;enable_multiline_span().</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">get_real_tab_width</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodget_real_tab_width">GeSHi::get_real_tab_width()</a> in geshi.php</div>
<div class="index-item-description">Returns the tab width to use, based on the current language and user preference</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">get_stylesheet</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodget_stylesheet">GeSHi::get_stylesheet()</a> in geshi.php</div>
<div class="index-item-description">Returns a stylesheet for the highlighted code. If $economy mode is true, we only return the stylesheet declarations that matter for this code block instead of the whole thing</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">get_time</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodget_time">GeSHi::get_time()</a> in geshi.php</div>
<div class="index-item-description">Gets the time taken to parse the code</div>
</dd>
</dl>
<a name="h"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">h</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">highlight_lines_extra</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodhighlight_lines_extra">GeSHi::highlight_lines_extra()</a> in geshi.php</div>
<div class="index-item-description">Specifies which lines to highlight extra</div>
</dd>
</dl>
<a name="l"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">l</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">load_from_file</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodload_from_file">GeSHi::load_from_file()</a> in geshi.php</div>
<div class="index-item-description">Given a file name, this method loads its contents in, and attempts</div>
</dd>
</dl>
<a name="o"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">o</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">optimize_keyword_group</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodoptimize_keyword_group">GeSHi::optimize_keyword_group()</a> in geshi.php</div>
<div class="index-item-description">compile optimized regexp list for keyword group</div>
</dd>
</dl>
<a name="p"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">p</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">parse_code</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodparse_code">GeSHi::parse_code()</a> in geshi.php</div>
<div class="index-item-description">Returns the code in $this-&gt;source, highlighted and surrounded by the nessecary HTML.</div>
</dd>
</dl>
<a name="r"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">r</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">remove_keyword</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodremove_keyword">GeSHi::remove_keyword()</a> in geshi.php</div>
<div class="index-item-description">Removes a keyword from a keyword group</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">remove_keyword_group</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodremove_keyword_group">GeSHi::remove_keyword_group()</a> in geshi.php</div>
<div class="index-item-description">Removes a keyword group</div>
</dd>
</dl>
<a name="s"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">s</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_brackets_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_brackets_highlighting">GeSHi::set_brackets_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for brackets</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_brackets_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_brackets_style">GeSHi::set_brackets_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_case_keywords</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_case_keywords">GeSHi::set_case_keywords()</a> in geshi.php</div>
<div class="index-item-description">Sets the case that keywords should use when found. Use the constants:</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_case_sensitivity</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_case_sensitivity">GeSHi::set_case_sensitivity()</a> in geshi.php</div>
<div class="index-item-description">Sets whether a set of keywords are checked for in a case sensitive manner</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_code_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_code_style">GeSHi::set_code_style()</a> in geshi.php</div>
<div class="index-item-description">Sets the style for the actual code. This should be a string</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_comments_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_comments_highlighting">GeSHi::set_comments_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for comment groups</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_comments_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_comments_style">GeSHi::set_comments_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_encoding</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_encoding">GeSHi::set_encoding()</a> in geshi.php</div>
<div class="index-item-description">Sets the encoding used for htmlspecialchars(), for international support.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_escape_characters_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_escape_characters_highlighting">GeSHi::set_escape_characters_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for escaped characters</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_escape_characters_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_escape_characters_style">GeSHi::set_escape_characters_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_footer_content</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_footer_content">GeSHi::set_footer_content()</a> in geshi.php</div>
<div class="index-item-description">Sets the content of the footer block</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_footer_content_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_footer_content_style">GeSHi::set_footer_content_style()</a> in geshi.php</div>
<div class="index-item-description">Sets the style for the footer content</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_header_content</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_header_content">GeSHi::set_header_content()</a> in geshi.php</div>
<div class="index-item-description">Sets the content of the header block</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_header_content_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_header_content_style">GeSHi::set_header_content_style()</a> in geshi.php</div>
<div class="index-item-description">Sets the style for the header content</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_header_type</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_header_type">GeSHi::set_header_type()</a> in geshi.php</div>
<div class="index-item-description">Sets the type of header to be used.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_highlight_lines_extra_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_highlight_lines_extra_style">GeSHi::set_highlight_lines_extra_style()</a> in geshi.php</div>
<div class="index-item-description">Sets the style for extra-highlighted lines</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_important_styles</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_important_styles">GeSHi::set_important_styles()</a> in geshi.php</div>
<div class="index-item-description">Sets styles for important parts of the code</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_keyword_group_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_keyword_group_highlighting">GeSHi::set_keyword_group_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for a keyword group</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_keyword_group_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_keyword_group_style">GeSHi::set_keyword_group_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_language</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_language">GeSHi::set_language()</a> in geshi.php</div>
<div class="index-item-description">Sets the language for this object</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_language_path</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_language_path">GeSHi::set_language_path()</a> in geshi.php</div>
<div class="index-item-description">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.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_line_ending</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_line_ending">GeSHi::set_line_ending()</a> in geshi.php</div>
<div class="index-item-description">Sets the line-ending</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_line_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_line_style">GeSHi::set_line_style()</a> in geshi.php</div>
<div class="index-item-description">Sets the styles for the line numbers.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_link_styles</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_link_styles">GeSHi::set_link_styles()</a> in geshi.php</div>
<div class="index-item-description">Sets styles for links in code</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_link_target</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_link_target">GeSHi::set_link_target()</a> in geshi.php</div>
<div class="index-item-description">Sets the target for links in code</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_methods_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_methods_highlighting">GeSHi::set_methods_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for methods</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_methods_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_methods_style">GeSHi::set_methods_style()</a> in geshi.php</div>
<div class="index-item-description">Sets the styles for methods. $key is a number that references the</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_numbers_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_numbers_highlighting">GeSHi::set_numbers_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for numbers</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_numbers_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_numbers_style">GeSHi::set_numbers_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_overall_class</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_overall_class">GeSHi::set_overall_class()</a> in geshi.php</div>
<div class="index-item-description">Sets the overall classname for this block of code. This class can then be used in a stylesheet to style this object's output</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_overall_id</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_overall_id">GeSHi::set_overall_id()</a> in geshi.php</div>
<div class="index-item-description">Sets the overall id for this block of code. This id can then be used in a stylesheet to style this object's output</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_overall_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_overall_style">GeSHi::set_overall_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_regexps_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_regexps_highlighting">GeSHi::set_regexps_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for regexps</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_regexps_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_regexps_style">GeSHi::set_regexps_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_source</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_source">GeSHi::set_source()</a> in geshi.php</div>
<div class="index-item-description">Sets the source code for this object</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_strings_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_strings_highlighting">GeSHi::set_strings_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for strings</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_strings_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_strings_style">GeSHi::set_strings_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_symbols_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_symbols_highlighting">GeSHi::set_symbols_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for symbols</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_symbols_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_symbols_style">GeSHi::set_symbols_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_tab_width</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_tab_width">GeSHi::set_tab_width()</a> in geshi.php</div>
<div class="index-item-description">Sets how many spaces a tab is substituted for</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_url_for_keyword_group</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_url_for_keyword_group">GeSHi::set_url_for_keyword_group()</a> in geshi.php</div>
<div class="index-item-description">Sets the base URL to be used for keywords</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_use_language_tab_width</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_use_language_tab_width">GeSHi::set_use_language_tab_width()</a> in geshi.php</div>
<div class="index-item-description">Sets whether or not to use tab-stop width specifed by language</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">start_line_numbers_at</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodstart_line_numbers_at">GeSHi::start_line_numbers_at()</a> in geshi.php</div>
<div class="index-item-description">Sets what number line numbers should start at. Should be a positive integer, and will be converted to one.</div>
</dd>
</dl>
<div class="index-letter-menu">
<a class="index-letter" href="elementindex.html#a">a</a>
<a class="index-letter" href="elementindex.html#d">d</a>
<a class="index-letter" href="elementindex.html#e">e</a>
<a class="index-letter" href="elementindex.html#g">g</a>
<a class="index-letter" href="elementindex.html#h">h</a>
<a class="index-letter" href="elementindex.html#l">l</a>
<a class="index-letter" href="elementindex.html#o">o</a>
<a class="index-letter" href="elementindex.html#p">p</a>
<a class="index-letter" href="elementindex.html#r">r</a>
<a class="index-letter" href="elementindex.html#s">s</a>
</div> </body>
</html>

View File

@ -0,0 +1,864 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- template designed by Marco Von Ballmoos -->
<title></title>
<link rel="stylesheet" href="media/stylesheet.css" />
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
</head>
<body>
<a name="top"></a>
<h2>[geshi] element index</h2>
<a href="elementindex.html">All elements</a>
<br />
<div class="index-letter-menu">
<a class="index-letter" href="elementindex_geshi.html#a">a</a>
<a class="index-letter" href="elementindex_geshi.html#d">d</a>
<a class="index-letter" href="elementindex_geshi.html#e">e</a>
<a class="index-letter" href="elementindex_geshi.html#g">g</a>
<a class="index-letter" href="elementindex_geshi.html#h">h</a>
<a class="index-letter" href="elementindex_geshi.html#l">l</a>
<a class="index-letter" href="elementindex_geshi.html#o">o</a>
<a class="index-letter" href="elementindex_geshi.html#p">p</a>
<a class="index-letter" href="elementindex_geshi.html#r">r</a>
<a class="index-letter" href="elementindex_geshi.html#s">s</a>
</div>
<a name="a"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">a</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">add_keyword</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodadd_keyword">GeSHi::add_keyword()</a> in geshi.php</div>
<div class="index-item-description">Adds a keyword to a keyword group for highlighting</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">add_keyword_group</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodadd_keyword_group">GeSHi::add_keyword_group()</a> in geshi.php</div>
<div class="index-item-description">Creates a new keyword group</div>
</dd>
</dl>
<a name="d"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">d</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">disable_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methoddisable_highlighting">GeSHi::disable_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Disables all highlighting</div>
</dd>
</dl>
<a name="e"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">e</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_classes</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_classes">GeSHi::enable_classes()</a> in geshi.php</div>
<div class="index-item-description">Sets whether CSS classes should be used to highlight the source. Default is off, calling this method with no arguments will turn it on</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_highlighting">GeSHi::enable_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Enables all highlighting</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_ids</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_ids">GeSHi::enable_ids()</a> in geshi.php</div>
<div class="index-item-description">Whether CSS IDs should be added to each line</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_important_blocks</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_important_blocks">GeSHi::enable_important_blocks()</a> in geshi.php</div>
<div class="index-item-description">Sets whether context-important blocks are highlighted</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_inner_code_block</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_inner_code_block">GeSHi::enable_inner_code_block()</a> in geshi.php</div>
<div class="index-item-description">Sets whether to force a surrounding block around the highlighted code or not</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_keyword_links</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_keyword_links">GeSHi::enable_keyword_links()</a> in geshi.php</div>
<div class="index-item-description">Turns linking of keywords on or off.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_line_numbers</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_line_numbers">GeSHi::enable_line_numbers()</a> in geshi.php</div>
<div class="index-item-description">Sets whether line numbers should be displayed.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_multiline_span</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_multiline_span">GeSHi::enable_multiline_span()</a> in geshi.php</div>
<div class="index-item-description">Sets wether spans and other HTML markup generated by GeSHi can span over multiple lines or not. Defaults to true to reduce overhead.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">enable_strict_mode</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodenable_strict_mode">GeSHi::enable_strict_mode()</a> in geshi.php</div>
<div class="index-item-description">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.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">error</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methoderror">GeSHi::error()</a> in geshi.php</div>
<div class="index-item-description">Returns an error message associated with the last GeSHi operation, or false if no error has occured</div>
</dd>
</dl>
<a name="g"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">g</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Constructor.png" alt="Method" title="Method" /></title>
<span class="method-title">GeSHi</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodGeSHi">GeSHi::GeSHi()</a> in geshi.php</div>
<div class="index-item-description">Creates a new GeSHi object, with source and language</div>
</dd>
<dt class="field">
<img src="media/images/Class.png" alt="Class" title="Class" /></title>
GeSHi
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html">GeSHi</a> in geshi.php</div>
<div class="index-item-description">The GeSHi Class.</div>
</dd>
<dt class="field">
<img src="media/images/Page.png" alt="Page" title="Page" /></title>
<span class="include-title">geshi.php</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html">geshi.php</a> in geshi.php</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_ACTIVE</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_ACTIVE">GESHI_ACTIVE</a> in geshi.php</div>
<div class="index-item-description">Links in the source in the :active state</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_CAPS_LOWER</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_CAPS_LOWER">GESHI_CAPS_LOWER</a> in geshi.php</div>
<div class="index-item-description">Leave keywords found as the case that they are</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_CAPS_NO_CHANGE</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_CAPS_NO_CHANGE">GESHI_CAPS_NO_CHANGE</a> in geshi.php</div>
<div class="index-item-description">Lowercase keywords found</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_CAPS_UPPER</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_CAPS_UPPER">GESHI_CAPS_UPPER</a> in geshi.php</div>
<div class="index-item-description">Uppercase keywords found</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_END_IMPORTANT</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_END_IMPORTANT">GESHI_END_IMPORTANT</a> in geshi.php</div>
<div class="index-item-description">The ender for important parts of the source</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_FANCY_LINE_NUMBERS</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_FANCY_LINE_NUMBERS">GESHI_FANCY_LINE_NUMBERS</a> in geshi.php</div>
<div class="index-item-description">Use fancy line numbers when building the result</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_HEADER_DIV</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_HEADER_DIV">GESHI_HEADER_DIV</a> in geshi.php</div>
<div class="index-item-description">Use a &quot;div&quot; to surround the source</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_HEADER_NONE</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_HEADER_NONE">GESHI_HEADER_NONE</a> in geshi.php</div>
<div class="index-item-description">Use nothing to surround the source</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_HEADER_PRE</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_HEADER_PRE">GESHI_HEADER_PRE</a> in geshi.php</div>
<div class="index-item-description">Use a &quot;pre&quot; to surround the source</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_HEADER_PRE_TABLE</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_HEADER_PRE_TABLE">GESHI_HEADER_PRE_TABLE</a> in geshi.php</div>
<div class="index-item-description">Use a &quot;table&quot; to surround the source:</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_HEADER_PRE_VALID</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_HEADER_PRE_VALID">GESHI_HEADER_PRE_VALID</a> in geshi.php</div>
<div class="index-item-description">Use a pre to wrap lines when line numbers are enabled or to wrap the whole code.</div>
</dd>
<dt class="field">
<img src="media/images/Function.png" alt="Function" title="Function" /></title>
<span class="method-title">geshi_highlight</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#functiongeshi_highlight">geshi_highlight()</a> in geshi.php</div>
<div class="index-item-description">Easy way to highlight stuff. Behaves just like highlight_string</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_HOVER</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_HOVER">GESHI_HOVER</a> in geshi.php</div>
<div class="index-item-description">Links in the source in the :hover state</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_LANG_ROOT</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_LANG_ROOT">GESHI_LANG_ROOT</a> in geshi.php</div>
<div class="index-item-description">The language file directory for GeSHi</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_LINK</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_LINK">GESHI_LINK</a> in geshi.php</div>
<div class="index-item-description">Links in the source in the :link state</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_NORMAL_LINE_NUMBERS</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_NORMAL_LINE_NUMBERS">GESHI_NORMAL_LINE_NUMBERS</a> in geshi.php</div>
<div class="index-item-description">Use normal line numbers when building the result</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_NO_LINE_NUMBERS</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_NO_LINE_NUMBERS">GESHI_NO_LINE_NUMBERS</a> in geshi.php</div>
<div class="index-item-description">Use no line numbers when building the result</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_ROOT</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_ROOT">GESHI_ROOT</a> in geshi.php</div>
<div class="index-item-description">The root directory for GeSHi</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_SECURITY_PARANOID</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_SECURITY_PARANOID">GESHI_SECURITY_PARANOID</a> in geshi.php</div>
<div class="index-item-description">Tells GeSHi to be paranoid about security settings</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_START_IMPORTANT</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_START_IMPORTANT">GESHI_START_IMPORTANT</a> in geshi.php</div>
<div class="index-item-description">The starter for important parts of the source</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_VERSION</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_VERSION">GESHI_VERSION</a> in geshi.php</div>
<div class="index-item-description">The version of this GeSHi file</div>
</dd>
<dt class="field">
<img src="media/images/Constant.png" alt="Constant" title="Constant" /></title>
<span class="const-title">GESHI_VISITED</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/_geshi.php.html#defineGESHI_VISITED">GESHI_VISITED</a> in geshi.php</div>
<div class="index-item-description">Links in the source in the :visited state</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">get_language_name</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodget_language_name">GeSHi::get_language_name()</a> in geshi.php</div>
<div class="index-item-description">Gets a human-readable language name (thanks to Simon Patterson for the idea :))</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">get_language_name_from_extension</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodget_language_name_from_extension">GeSHi::get_language_name_from_extension()</a> in geshi.php</div>
<div class="index-item-description">Given a file extension, this method returns either a valid geshi language name, or the empty string if it couldn't be found</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">get_multiline_span</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodget_multiline_span">GeSHi::get_multiline_span()</a> in geshi.php</div>
<div class="index-item-description">Get current setting for multiline spans, see GeSHi-&gt;enable_multiline_span().</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">get_real_tab_width</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodget_real_tab_width">GeSHi::get_real_tab_width()</a> in geshi.php</div>
<div class="index-item-description">Returns the tab width to use, based on the current language and user preference</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">get_stylesheet</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodget_stylesheet">GeSHi::get_stylesheet()</a> in geshi.php</div>
<div class="index-item-description">Returns a stylesheet for the highlighted code. If $economy mode is true, we only return the stylesheet declarations that matter for this code block instead of the whole thing</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">get_time</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodget_time">GeSHi::get_time()</a> in geshi.php</div>
<div class="index-item-description">Gets the time taken to parse the code</div>
</dd>
</dl>
<a name="h"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">h</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">highlight_lines_extra</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodhighlight_lines_extra">GeSHi::highlight_lines_extra()</a> in geshi.php</div>
<div class="index-item-description">Specifies which lines to highlight extra</div>
</dd>
</dl>
<a name="l"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">l</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">load_from_file</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodload_from_file">GeSHi::load_from_file()</a> in geshi.php</div>
<div class="index-item-description">Given a file name, this method loads its contents in, and attempts</div>
</dd>
</dl>
<a name="o"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">o</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">optimize_keyword_group</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodoptimize_keyword_group">GeSHi::optimize_keyword_group()</a> in geshi.php</div>
<div class="index-item-description">compile optimized regexp list for keyword group</div>
</dd>
</dl>
<a name="p"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">p</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">parse_code</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodparse_code">GeSHi::parse_code()</a> in geshi.php</div>
<div class="index-item-description">Returns the code in $this-&gt;source, highlighted and surrounded by the nessecary HTML.</div>
</dd>
</dl>
<a name="r"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">r</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">remove_keyword</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodremove_keyword">GeSHi::remove_keyword()</a> in geshi.php</div>
<div class="index-item-description">Removes a keyword from a keyword group</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">remove_keyword_group</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodremove_keyword_group">GeSHi::remove_keyword_group()</a> in geshi.php</div>
<div class="index-item-description">Removes a keyword group</div>
</dd>
</dl>
<a name="s"></a>
<div class="index-letter-section">
<div style="float: left" class="index-letter-title">s</div>
<div style="float: right"><a href="#top">top</a></div>
<div style="clear: both"></div>
</div>
<dl>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_brackets_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_brackets_highlighting">GeSHi::set_brackets_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for brackets</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_brackets_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_brackets_style">GeSHi::set_brackets_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_case_keywords</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_case_keywords">GeSHi::set_case_keywords()</a> in geshi.php</div>
<div class="index-item-description">Sets the case that keywords should use when found. Use the constants:</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_case_sensitivity</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_case_sensitivity">GeSHi::set_case_sensitivity()</a> in geshi.php</div>
<div class="index-item-description">Sets whether a set of keywords are checked for in a case sensitive manner</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_code_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_code_style">GeSHi::set_code_style()</a> in geshi.php</div>
<div class="index-item-description">Sets the style for the actual code. This should be a string</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_comments_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_comments_highlighting">GeSHi::set_comments_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for comment groups</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_comments_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_comments_style">GeSHi::set_comments_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_encoding</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_encoding">GeSHi::set_encoding()</a> in geshi.php</div>
<div class="index-item-description">Sets the encoding used for htmlspecialchars(), for international support.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_escape_characters_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_escape_characters_highlighting">GeSHi::set_escape_characters_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for escaped characters</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_escape_characters_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_escape_characters_style">GeSHi::set_escape_characters_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_footer_content</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_footer_content">GeSHi::set_footer_content()</a> in geshi.php</div>
<div class="index-item-description">Sets the content of the footer block</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_footer_content_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_footer_content_style">GeSHi::set_footer_content_style()</a> in geshi.php</div>
<div class="index-item-description">Sets the style for the footer content</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_header_content</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_header_content">GeSHi::set_header_content()</a> in geshi.php</div>
<div class="index-item-description">Sets the content of the header block</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_header_content_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_header_content_style">GeSHi::set_header_content_style()</a> in geshi.php</div>
<div class="index-item-description">Sets the style for the header content</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_header_type</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_header_type">GeSHi::set_header_type()</a> in geshi.php</div>
<div class="index-item-description">Sets the type of header to be used.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_highlight_lines_extra_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_highlight_lines_extra_style">GeSHi::set_highlight_lines_extra_style()</a> in geshi.php</div>
<div class="index-item-description">Sets the style for extra-highlighted lines</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_important_styles</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_important_styles">GeSHi::set_important_styles()</a> in geshi.php</div>
<div class="index-item-description">Sets styles for important parts of the code</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_keyword_group_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_keyword_group_highlighting">GeSHi::set_keyword_group_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for a keyword group</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_keyword_group_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_keyword_group_style">GeSHi::set_keyword_group_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_language</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_language">GeSHi::set_language()</a> in geshi.php</div>
<div class="index-item-description">Sets the language for this object</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_language_path</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_language_path">GeSHi::set_language_path()</a> in geshi.php</div>
<div class="index-item-description">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.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_line_ending</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_line_ending">GeSHi::set_line_ending()</a> in geshi.php</div>
<div class="index-item-description">Sets the line-ending</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_line_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_line_style">GeSHi::set_line_style()</a> in geshi.php</div>
<div class="index-item-description">Sets the styles for the line numbers.</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_link_styles</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_link_styles">GeSHi::set_link_styles()</a> in geshi.php</div>
<div class="index-item-description">Sets styles for links in code</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_link_target</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_link_target">GeSHi::set_link_target()</a> in geshi.php</div>
<div class="index-item-description">Sets the target for links in code</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_methods_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_methods_highlighting">GeSHi::set_methods_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for methods</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_methods_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_methods_style">GeSHi::set_methods_style()</a> in geshi.php</div>
<div class="index-item-description">Sets the styles for methods. $key is a number that references the</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_numbers_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_numbers_highlighting">GeSHi::set_numbers_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for numbers</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_numbers_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_numbers_style">GeSHi::set_numbers_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_overall_class</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_overall_class">GeSHi::set_overall_class()</a> in geshi.php</div>
<div class="index-item-description">Sets the overall classname for this block of code. This class can then be used in a stylesheet to style this object's output</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_overall_id</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_overall_id">GeSHi::set_overall_id()</a> in geshi.php</div>
<div class="index-item-description">Sets the overall id for this block of code. This id can then be used in a stylesheet to style this object's output</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_overall_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_overall_style">GeSHi::set_overall_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_regexps_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_regexps_highlighting">GeSHi::set_regexps_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for regexps</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_regexps_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_regexps_style">GeSHi::set_regexps_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_source</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_source">GeSHi::set_source()</a> in geshi.php</div>
<div class="index-item-description">Sets the source code for this object</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_strings_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_strings_highlighting">GeSHi::set_strings_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for strings</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_strings_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_strings_style">GeSHi::set_strings_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_symbols_highlighting</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_symbols_highlighting">GeSHi::set_symbols_highlighting()</a> in geshi.php</div>
<div class="index-item-description">Turns highlighting on/off for symbols</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_symbols_style</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_symbols_style">GeSHi::set_symbols_style()</a> in geshi.php</div>
<div class="index-item-description">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</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_tab_width</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_tab_width">GeSHi::set_tab_width()</a> in geshi.php</div>
<div class="index-item-description">Sets how many spaces a tab is substituted for</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_url_for_keyword_group</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_url_for_keyword_group">GeSHi::set_url_for_keyword_group()</a> in geshi.php</div>
<div class="index-item-description">Sets the base URL to be used for keywords</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">set_use_language_tab_width</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodset_use_language_tab_width">GeSHi::set_use_language_tab_width()</a> in geshi.php</div>
<div class="index-item-description">Sets whether or not to use tab-stop width specifed by language</div>
</dd>
<dt class="field">
<img src="media/images/Method.png" alt="Method" title="Method" /></title>
<span class="method-title">start_line_numbers_at</span>
</dt>
<dd class="index-item-body">
<div class="index-item-details"><a href="geshi/core/GeSHi.html#methodstart_line_numbers_at">GeSHi::start_line_numbers_at()</a> in geshi.php</div>
<div class="index-item-description">Sets what number line numbers should start at. Should be a positive integer, and will be converted to one.</div>
</dd>
</dl>
<div class="index-letter-menu">
<a class="index-letter" href="elementindex_geshi.html#a">a</a>
<a class="index-letter" href="elementindex_geshi.html#d">d</a>
<a class="index-letter" href="elementindex_geshi.html#e">e</a>
<a class="index-letter" href="elementindex_geshi.html#g">g</a>
<a class="index-letter" href="elementindex_geshi.html#h">h</a>
<a class="index-letter" href="elementindex_geshi.html#l">l</a>
<a class="index-letter" href="elementindex_geshi.html#o">o</a>
<a class="index-letter" href="elementindex_geshi.html#p">p</a>
<a class="index-letter" href="elementindex_geshi.html#r">r</a>
<a class="index-letter" href="elementindex_geshi.html#s">s</a>
</div> </body>
</html>

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- template designed by Marco Von Ballmoos -->
<title>phpDocumentor Parser Errors and Warnings</title>
<link rel="stylesheet" href="media/stylesheet.css" />
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
</head>
<body>
<a href="#Post-parsing">Post-parsing</a><br>
<a name="geshi.php"></a>
<h1>geshi.php</h1>
<h2>Errors:</h2><br>
<b>Error on line 569</b> - DocBlock has multiple @access tags, illegal. ignoring additional tag "@access private"<br>
<p class="notes" id="credit">
Documentation generated on Thu, 25 Dec 2008 14:34:53 +0100 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.2</a>
</p>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,478 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- template designed by Marco Von Ballmoos -->
<title>Docs for page geshi.php</title>
<link rel="stylesheet" href="../../media/stylesheet.css" />
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
</head>
<body>
<div class="page-body">
<h2 class="file-name"><img src="../../media/images/Page_logo.png" alt="File" style="vertical-align: middle">/geshi.php</h2>
<a name="sec-description"></a>
<div class="info-box">
<div class="info-box-title">Description</div>
<div class="nav-bar">
<span class="disabled">Description</span> |
<a href="#sec-classes">Classes</a>
| <a href="#sec-constants">Constants</a>
| <a href="#sec-functions">Functions</a>
</div>
<div class="info-box-body">
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">GeSHi - Generic Syntax Highlighter</p>
<p class="description"><p>The GeSHi class for Generic Syntax Highlighting. Please refer to the documentation at http://qbnz.com/highlighter/documentation.php for more information about how to use this class.</p><p>For changes, release notes, TODOs etc, see the relevant files in the docs/ directory.</p><p>This file is part of GeSHi.</p><p>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.</p><p>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.</p><p>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</p></p>
<ul class="tags">
<li><span class="field">author:</span> Nigel McNie &lt;<a href="mailto:nigel@geshi.org">nigel@geshi.org</a>&gt;, Benny Baumann &lt;BenBE@omorphia.de&gt;</li>
<li><span class="field">copyright:</span> (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2008 Benny Baumann</li>
<li><span class="field">filesource:</span> <a href="../../__filesource/fsource_geshi_core_geshi.php.html">Source Code for this file</a></li>
<li><span class="field">license:</span> <a href="http://gnu.org/copyleft/gpl.html">GNU GPL</a></li>
</ul>
</div>
</div>
<a name="sec-classes"></a>
<div class="info-box">
<div class="info-box-title">Classes</div>
<div class="nav-bar">
<a href="#sec-description">Description</a> |
<span class="disabled">Classes</span>
| <a href="#sec-constants">Constants</a>
| <a href="#sec-functions">Functions</a>
</div>
<div class="info-box-body">
<table cellpadding="2" cellspacing="0" class="class-table">
<tr>
<th class="class-table-header">Class</th>
<th class="class-table-header">Description</th>
</tr>
<tr>
<td style="padding-right: 2em; vertical-align: top; white-space: nowrap">
<img src="../../media/images/Class.png"
alt=" class"
title=" class"/>
<a href="../../geshi/core/GeSHi.html">GeSHi</a>
</td>
<td>
The GeSHi Class.
</td>
</tr>
</table>
</div>
</div>
<a name="sec-constants"></a>
<div class="info-box">
<div class="info-box-title">Constants</div>
<div class="nav-bar">
<a href="#sec-description">Description</a> |
<a href="#sec-classes">Classes</a>
| <span class="disabled">Constants</span>
| <a href="#sec-functions">Functions</a>
</div>
<div class="info-box-body">
<a name="defineGESHI_ACTIVE"><!-- --></a>
<div class="oddrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_ACTIVE</span> = 2
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a107">107</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Links in the source in the :active state</p>
</div>
<a name="defineGESHI_CAPS_LOWER"><!-- --></a>
<div class="evenrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_CAPS_LOWER</span> = 2
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a99">99</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Leave keywords found as the case that they are</p>
</div>
<a name="defineGESHI_CAPS_NO_CHANGE"><!-- --></a>
<div class="oddrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_CAPS_NO_CHANGE</span> = 0
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a95">95</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Lowercase keywords found</p>
</div>
<a name="defineGESHI_CAPS_UPPER"><!-- --></a>
<div class="evenrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_CAPS_UPPER</span> = 1
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a97">97</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Uppercase keywords found</p>
</div>
<a name="defineGESHI_END_IMPORTANT"><!-- --></a>
<div class="oddrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_END_IMPORTANT</span> = '&lt;END GeSHi&gt;'
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a117">117</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">The ender for important parts of the source</p>
</div>
<a name="defineGESHI_FANCY_LINE_NUMBERS"><!-- --></a>
<div class="evenrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_FANCY_LINE_NUMBERS</span> = 2
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a67">67</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Use fancy line numbers when building the result</p>
</div>
<a name="defineGESHI_HEADER_DIV"><!-- --></a>
<div class="oddrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_HEADER_DIV</span> = 1
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a73">73</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Use a &quot;div&quot; to surround the source</p>
</div>
<a name="defineGESHI_HEADER_NONE"><!-- --></a>
<div class="evenrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_HEADER_NONE</span> = 0
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a71">71</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Use nothing to surround the source</p>
</div>
<a name="defineGESHI_HEADER_PRE"><!-- --></a>
<div class="oddrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_HEADER_PRE</span> = 2
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a75">75</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Use a &quot;pre&quot; to surround the source</p>
</div>
<a name="defineGESHI_HEADER_PRE_TABLE"><!-- --></a>
<div class="evenrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_HEADER_PRE_TABLE</span> = 4
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a91">91</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Use a &quot;table&quot; to surround the source:</p>
<p class="description"><p>&lt;table&gt; &lt;thead&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;$header&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt; &lt;tbody&gt;&lt;tr&gt;&lt;td&gt;<pre>$linenumbers</pre>&lt;/td&gt;&lt;td&gt;<pre>$code></pre>&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt; &lt;tfooter&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;$footer&lt;/td&gt;&lt;/tr&gt;&lt;/tfoot&gt; &lt;/table&gt;</p><p>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</p></p>
<ul class="tags">
<li><span class="field">note:</span> when linenumbers are disabled this is essentially the same as GESHI_HEADER_PRE</li>
</ul>
</div>
<a name="defineGESHI_HEADER_PRE_VALID"><!-- --></a>
<div class="oddrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_HEADER_PRE_VALID</span> = 3
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a77">77</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Use a pre to wrap lines when line numbers are enabled or to wrap the whole code.</p>
</div>
<a name="defineGESHI_HOVER"><!-- --></a>
<div class="evenrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_HOVER</span> = 1
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a105">105</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Links in the source in the :hover state</p>
</div>
<a name="defineGESHI_LANG_ROOT"><!-- --></a>
<div class="oddrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_LANG_ROOT</span> = GESHI_ROOT.'geshi'.DIRECTORY_SEPARATOR
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a53">53</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">The language file directory for GeSHi</p>
</div>
<a name="defineGESHI_LINK"><!-- --></a>
<div class="evenrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_LINK</span> = 0
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a103">103</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Links in the source in the :link state</p>
</div>
<a name="defineGESHI_NORMAL_LINE_NUMBERS"><!-- --></a>
<div class="oddrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_NORMAL_LINE_NUMBERS</span> = 1
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a65">65</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Use normal line numbers when building the result</p>
</div>
<a name="defineGESHI_NO_LINE_NUMBERS"><!-- --></a>
<div class="evenrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_NO_LINE_NUMBERS</span> = 0
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a63">63</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Use no line numbers when building the result</p>
</div>
<a name="defineGESHI_ROOT"><!-- --></a>
<div class="oddrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_ROOT</span> = dirname(__FILE__).DIRECTORY_SEPARATOR
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a49">49</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">The root directory for GeSHi</p>
</div>
<a name="defineGESHI_SECURITY_PARANOID"><!-- --></a>
<div class="evenrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_SECURITY_PARANOID</span> = false
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a58">58</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Tells GeSHi to be paranoid about security settings</p>
</div>
<a name="defineGESHI_START_IMPORTANT"><!-- --></a>
<div class="oddrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_START_IMPORTANT</span> = '&lt;BEGIN GeSHi&gt;'
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a115">115</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">The starter for important parts of the source</p>
</div>
<a name="defineGESHI_VERSION"><!-- --></a>
<div class="evenrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_VERSION</span> = '1.0.8.2',
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a44">44</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">The version of this GeSHi file</p>
</div>
<a name="defineGESHI_VISITED"><!-- --></a>
<div class="oddrow">
<div>
<img src="../../media/images/Constant.png" />
<span class="const-title">
<span class="const-name">GESHI_VISITED</span> = 3
(line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a109">109</a></span>)
</span>
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Links in the source in the :visited state</p>
</div>
</div>
</div>
<a name="sec-functions"></a>
<div class="info-box">
<div class="info-box-title">Functions</div>
<div class="nav-bar">
<a href="#sec-description">Description</a> |
<a href="#sec-classes">Classes</a>
| <a href="#sec-constants">Constants</a>
| <span class="disabled">Functions</span>
</div>
<div class="info-box-body">
<a name="functiongeshi_highlight" id="functiongeshi_highlight"><!-- --></a>
<div class="evenrow">
<div>
<img src="../../media/images/Function.png" />
<span class="method-title">geshi_highlight</span> (line <span class="line-number"><a href="../../__filesource/fsource_geshi_core_geshi.php.html#a4577">4577</a></span>)
</div>
<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Easy way to highlight stuff. Behaves just like highlight_string</p>
<ul class="tags">
<li><span class="field">return:</span> The code highlighted (if $return is true)</li>
<li><span class="field">since:</span> 1.0.2</li>
</ul>
<div class="method-signature">
<span class="method-result">string</span>
<span class="method-name">
geshi_highlight
</span>
(<span class="var-type">string</span>&nbsp;<span class="var-name">$string</span>, <span class="var-type">string</span>&nbsp;<span class="var-name">$language</span>, [<span class="var-type">string</span>&nbsp;<span class="var-name">$path</span> = <span class="var-default">null</span>], [<span class="var-type">boolean</span>&nbsp;<span class="var-name">$return</span> = <span class="var-default">false</span>])
</div>
<ul class="parameters">
<li>
<span class="var-type">string</span>
<span class="var-name">$string</span><span class="var-description">: The code to highlight</span> </li>
<li>
<span class="var-type">string</span>
<span class="var-name">$language</span><span class="var-description">: The language to highlight the code in</span> </li>
<li>
<span class="var-type">string</span>
<span class="var-name">$path</span><span class="var-description">: 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</span> </li>
<li>
<span class="var-type">boolean</span>
<span class="var-name">$return</span><span class="var-description">: Whether to return the result or to echo</span> </li>
</ul>
</div>
</div>
</div>
<p class="notes" id="credit">
Documentation generated on Thu, 25 Dec 2008 14:34:34 +0100 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.2</a>
</p>
</div></body>
</html>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- Generated by phpDocumentor on Thu, 25 Dec 2008 14:34:34 +0100 -->
<title>GeSHi 1.0.8</title>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
</head>
<FRAMESET rows='120,*'>
<FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
<FRAMESET cols='25%,*'>
<FRAME src='li_geshi.html' name='left_bottom' frameborder="1" bordercolor="#999999">
<FRAME src='blank.html' name='right' frameborder="1" bordercolor="#999999">
</FRAMESET>
<NOFRAMES>
<H2>Frame Alert</H2>
<P>This document is designed to be viewed using the frames feature.
If you see this message, you are using a non-frame-capable web client.</P>
</NOFRAMES>
</FRAMESET>
</HTML>

View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- template designed by Marco Von Ballmoos -->
<title></title>
<link rel="stylesheet" href="media/stylesheet.css" />
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
</head>
<body>
<div class="package-title">geshi</div>
<div class="package-details">
<dl class="tree">
<dt class="folder-title">Description</dt>
<dd>
<a href='classtrees_geshi.html' target='right'>Class trees</a><br />
<a href='elementindex_geshi.html' target='right'>Index of elements</a><br />
<a href="todolist.html" target="right">Todo List</a><br />
</dd>
<dt class="sub-package"><img class="tree-icon" src="media/images/package.png" alt="Sub-package">core</dt>
<dd>
<dl class="tree">
<dt class="folder-title"><img class="tree-icon" src="media/images/class_folder.png" alt=" ">Classes</dt>
<dd><img class="tree-icon" src="media/images/Class.png" alt="Class"><a href='geshi/core/GeSHi.html' target='right'>GeSHi</a></dd>
<dt class="folder-title"><img class="tree-icon" src="media/images/function_folder.png" alt=" ">Functions</dt>
<dd><img class="tree-icon" src="media/images/Function.png" alt="Function"><a href='geshi/core/_geshi.php.html#functiongeshi_highlight' target='right'>geshi_highlight</a></dd>
<dt class="folder-title"><img class="tree-icon" src="media/images/folder.png" alt=" ">Files</dt>
<dd><img class="tree-icon" src="media/images/Page.png" alt="File"><a href='geshi/core/_geshi.php.html' target='right'>geshi.php</a></dd>
</dl>
</dd>
</dl>
</div>
<p class="notes"><a href="http://www.phpdoc.org" target="_blank">phpDocumentor v <span class="field">1.4.2</span></a></p>
</BODY>
</HTML>

View File

@ -0,0 +1,33 @@
body
{
background-color: #EEEEEE;
margin: 0px;
padding: 0px;
}
/* Banner (top bar) classes */
.banner { }
.banner-menu
{
text-align: right;
clear: both;
padding: .5em;
border-top: 2px solid #AAAAAA;
}
.banner-title
{
text-align: right;
font-size: 20pt;
font-weight: bold;
margin: .2em;
}
.package-selector
{
background-color: #DDDDDD;
border: 1px solid #AAAAAA;
color: #000090;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 848 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 874 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 865 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 956 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 712 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 918 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 772 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 543 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 644 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

View File

@ -0,0 +1,146 @@
a { color: #000090; text-decoration: none; }
a:hover, a:active, a:focus { color: highlighttext; background-color: highlight; text-decoration: none; }
body { background: #FFFFFF; }
body, table { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt; }
a img { border: 0px; }
/* Page layout/boxes */
.info-box { }
.info-box-title { margin: 1em 0em 0em 0em; font-weight: normal; font-size: 14pt; color: #999999; border-bottom: 2px solid #999999; }
.info-box-body { border: 1px solid #999999; padding: .5em; }
.nav-bar { font-size: 8pt; white-space: nowrap; text-align: right; padding: .2em; margin: 0em 0em 1em 0em; }
.oddrow { background-color: #F8F8F8; border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
.evenrow { border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
.page-body { max-width: 800px; margin: auto; }
.tree { white-space: nowrap; font: icon }
.tree dd { margin-left: 19px }
.tree dl { margin: 0px }
.tree-icon { vertical-align: middle; border: 0px; margin-right: 3px }
/* Index formatting classes */
.index-item-body { margin-top: .5em; margin-bottom: .5em}
.index-item-description { margin-top: .25em }
.index-item-details { font-weight: normal; font-style: italic; font-size: 8pt }
.index-letter-section { background-color: #EEEEEE; border: 1px dotted #999999; padding: .5em; margin-bottom: 1em}
.index-letter-title { font-size: 12pt; font-weight: bold }
.index-letter-menu { text-align: center; margin: 1em }
.index-letter { font-size: 12pt }
/* Docbook classes */
.description {}
.short-description { font-weight: bold; color: #666666; }
.tags { padding-left: 0em; margin-left: 3em; color: #666666; list-style-type: square; }
.parameters { padding-left: 0em; margin-left: 3em; color: #014fbe; list-style-type: square; }
.redefinitions { font-size: 8pt; padding-left: 0em; margin-left: 2em; }
.package { font-weight: bold; }
.package-title { font-weight: bold; font-size: 14pt; border-bottom: 1px solid black }
.package-details { font-size: 85%; }
.sub-package { font-weight: bold; }
.tutorial { border-width: thin; border-color: #0066ff; }
.tutorial-nav-box { width: 100%; border: 1px solid #999999; background-color: #F8F8F8; }
.folder-title { font-style: italic; font-family: Verdana, Arial, Helvetica, sans-serif }
/* Generic formatting */
.field { font-weight: bold; }
.detail { font-size: 8pt; }
.notes { font-style: italic; font-size: 8pt; }
.separator { background-color: #999999; height: 2px; }
.warning { color: #FF6600; }
.disabled { font-style: italic; color: #999999; }
/* Code elements */
.line-number { }
.class-table { width: 100%; }
.class-table-header { border-bottom: 1px dotted #666666; text-align: left}
.class-name { color: #0000AA; font-weight: bold; }
.method-summary { color: #009000; padding-left: 1em; font-size: 8pt; }
.method-header { }
.method-definition { margin-bottom: .2em }
.method-title { color: #009000; font-weight: bold; }
.method-name { font-weight: bold; }
.method-signature { font-size: 85%; color: #666666; margin: .5em 0em }
.method-result { font-style: italic; }
.var-summary { padding-left: 1em; font-size: 8pt; }
.var-header { }
.var-title { color: #014fbe; margin-bottom: .3em }
.var-type { font-style: italic; }
.var-name { font-weight: bold; }
.var-default {}
.var-description { font-weight: normal; color: #000000; }
.include-title { color: #014fbe;}
.include-type { font-style: italic; }
.include-name { font-weight: bold; }
.const-title { color: #FF6600; }
.const-name { font-weight: bold; }
/* Syntax highlighting */
.src-code { font-family: 'Courier New', Courier, monospace; font-weight: normal; }
.src-line { font-family: 'Courier New', Courier, monospace; font-weight: normal; }
.src-code a:link { padding: 1px; text-decoration: underline; color: #0000DD; }
.src-code a:visited { text-decoration: underline; color: #0000DD; }
.src-code a:active { background-color: #FFFF66; color: #008000; }
.src-code a:hover { background-color: #FFFF66; text-decoration: overline underline; color: #008000; }
.src-comm { color: #666666; }
.src-id { color: #FF6600; font-style: italic; }
.src-inc { color: #0000AA; font-weight: bold; }
.src-key { color: #0000AA; font-weight: bold; }
.src-num { color: #CC0000; }
.src-str { color: #CC0000; }
.src-sym { }
.src-var { }
.src-php { font-weight: bold; }
.src-doc { color: #666666; }
.src-doc-close-template { color: #666666 }
.src-doc-coretag { color: #008000; }
.src-doc-inlinetag {}
.src-doc-internal {}
.src-doc-tag { color: #0080CC; }
.src-doc-template { color: #666666 }
.src-doc-type { font-style: italic; color: #444444 }
.src-doc-var { color: #444444 }
.tute-tag { color: #009999 }
.tute-attribute-name { color: #0000FF }
.tute-attribute-value { color: #0099FF }
.tute-entity { font-weight: bold; }
.tute-comment { font-style: italic }
.tute-inline-tag { color: #636311; font-weight: bold }
/* tutorial */
.authors { }
.author { font-style: italic; font-weight: bold }
.author-blurb { margin: .5em 0em .5em 2em; font-size: 85%; font-weight: normal; font-style: normal }
.example { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; }
*[class="example"] { line-height : 1.0em; }
.listing { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; white-space: nowrap; }
*[class="listing"] { line-height : 1.0em; }
.release-info { font-size: 85%; font-style: italic; margin: 1em 0em }
.ref-title-box { }
.ref-title { }
.ref-purpose { font-style: italic; color: #666666 }
.ref-synopsis { }
.title { font-weight: bold; border-bottom: 1px solid #999999; color: #999999; }
.cmd-synopsis { margin: 1em 0em }
.cmd-title { font-weight: bold }
.toc { margin-left: 2em; padding-left: 0em }

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- template designed by Marco Von Ballmoos -->
<title></title>
<link rel="stylesheet" href="media/stylesheet.css" />
<link rel="stylesheet" href="media/banner.css" />
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
</head>
<body>
<div class="banner">
<div class="banner-title">geshi</div>
<div class="banner-menu">
<form>
<table cellpadding="0" cellspacing="0" style="width: 100%">
<tr>
<td>
</td>
<td style="width: 2em">&nbsp;</td>
<td style="text-align: right">
</td>
</tr>
</table>
</form>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- template designed by Marco Von Ballmoos -->
<title>Todo List</title>
<link rel="stylesheet" href="media/stylesheet.css" />
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
</head>
<body>
<div align="center"><h1>Todo List</h1></div>
<h2>geshi</h2>
<h3><a href="geshi/core/GeSHi.html#methoddisable_highlighting">GeSHi::disable_highlighting()</a></h3>
<ul>
<li>Rewrite with array traversal</li>
</ul>
<h3><a href="geshi/core/GeSHi.html#methodenable_highlighting">GeSHi::enable_highlighting()</a></h3>
<ul>
<li>Rewrite with array traversal</li>
</ul>
<h3><a href="geshi/core/GeSHi.html#methodenable_important_blocks">GeSHi::enable_important_blocks()</a></h3>
<ul>
<li>REMOVE THIS SHIZ FROM GESHI!</li>
</ul>
<h3><a href="geshi/core/GeSHi.html#methodget_language_name_from_extension">GeSHi::get_language_name_from_extension()</a></h3>
<ul>
<li>Re-think about how this method works (maybe make it private and/or make it a extension-&gt;lang lookup?)</li>
<li>static?</li>
</ul>
<h3><a href="geshi/core/GeSHi.html#methodhighlight_lines_extra">GeSHi::highlight_lines_extra()</a></h3>
<ul>
<li>Some data replication here that could be cut down on</li>
</ul>
<h3><a href="geshi/core/GeSHi.html#methodload_from_file">GeSHi::load_from_file()</a></h3>
<ul>
<li>Complete rethink of this and above method</li>
</ul>
<p class="notes" id="credit">
Documentation generated on Thu, 25 Dec 2008 14:34:53 +0100 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.2</a>
</p>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,90 @@
;; phpDocumentor parse configuration file
;;
;; This file is designed to cut down on repetitive typing on the command-line or web interface
;; You can copy this file to create a number of configuration files that can be used with the
;; command-line switch -c, as in phpdoc -c default.ini or phpdoc -c myini.ini. The web
;; interface will automatically generate a list of .ini files that can be used.
;;
;; default.ini is used to generate the online manual at http://www.phpdoc.org/docs
;;
;; ALL .ini files must be in the user subdirectory of phpDocumentor with an extension of .ini
;;
;; Copyright 2002, Greg Beaver <cellog@users.sourceforge.net>
;;
;; WARNING: do not change the name of any command-line parameters, phpDocumentor will ignore them
[Parse Data]
;; title of all the documentation
;; legal values: any string
title = GeSHi 1.0.8
;; parse files that start with a . like .bash_profile
;; legal values: true, false
hidden = false
;; show elements marked @access private in documentation by setting this to on
;; legal values: on, off
parseprivate = off
;; parse with javadoc-like description (first sentence is always the short description)
;; legal values: on, off
javadocdesc = off
;; add any custom @tags separated by commas here
;; legal values: any legal tagname separated by commas.
customtags = note
;; This is only used by the XML:DocBook/peardoc2 converter
defaultcategoryname = Documentation
;; what is the main package?
;; legal values: alphanumeric string plus - and _
defaultpackagename = core
;; output any parsing information? set to on for cron jobs
;; legal values: on
;quiet = on
;; parse a PEAR-style repository. Do not turn this on if your project does
;; not have a parent directory named "pear"
;; legal values: on/off
;pear = on
;; where should the documentation be written?
;; legal values: a legal path
target = api
;; limit output to the specified packages, even if others are parsed
;; legal values: package names separated by commas
;packageoutput = package1,package2
;; comma-separated list of files to parse
;; legal values: paths separated by commas
filename = ../geshi.php
;; comma-separated list of directories to parse
;; legal values: directory paths separated by commas
;directory = /path1,/path2,.,..,subdirectory
;directory = /home/jeichorn/cvs/pear
;directory = geshi
;; template base directory (the equivalent directory of <installdir>/phpDocumentor)
;templatebase = /path/to/my/templates
;; comma-separated list of files, directories or wildcards ? and * (any wildcard) to ignore
;; legal values: any wildcard strings separated by commas
;ignore = /path/to/ignore*,*list.php,myfile.php,subdirectory/
ignore = /*.svn/*
;; comma-separated list of Converters to use in outputformat:Convertername:templatedirectory format
;; legal values: HTML:frames:default,HTML:frames:l0l33t,HTML:frames:phpdoc.de,HTML:frames:phphtmllib,
;; HTML:frames:earthli,
;; HTML:frames:DOM/default,HTML:frames:DOM/l0l33t,HTML:frames:DOM/phpdoc.de,
;; HTML:frames:DOM/phphtmllib,HTML:frames:DOM/earthli
;; HTML:Smarty:default,HTML:Smarty:PHP,HTML:Smarty:HandS
;; PDF:default:default,CHM:default:default,XML:DocBook/peardoc2:default
output=HTML:frames:earthli
;; turn this option on if you want highlighted source code for every file
;; legal values: on/off
sourcecode = on

4656
library/geshi/geshi.php Normal file

File diff suppressed because it is too large Load Diff

139
library/geshi/geshi/4cs.php Normal file
View File

@ -0,0 +1,139 @@
<?php
/*************************************************************************************
* 4cs.php
* ------
* Author: Jason Curl (jason.curl@continental-corporation.com)
* Copyright: (c) 2009 Jason Curl
* Release Version: 1.0.8.8
* Date Started: 2009/09/05
*
* 4CS language file for GeSHi.
*
* CHANGES
* -------
* 2009/09/05
* - First Release
*
* TODO (updated 2009/09/01)
* -------------------------
*
*************************************************************************************
*
* 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' => '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(
)
);
?>

1409
library/geshi/geshi/abap.php Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,197 @@
<?php
/*************************************************************************************
* actionscript.php
* ----------------
* Author: Steffen Krause (Steffen.krause@muse.de)
* Copyright: (c) 2004 Steffen Krause, Nigel McNie (http://qbnz.com/highlighter)
* Release Version: 1.0.8.8
* Date Started: 2004/06/20
*
* Actionscript language file for GeSHi.
*
* CHANGES
* -------
* 2004/11/27 (1.0.1)
* - Added support for multiple object splitters
* 2004/10/27 (1.0.0)
* - First Release
*
* TODO (updated 2004/11/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' => '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()
);
?>

View File

@ -0,0 +1,473 @@
<?php
/*************************************************************************************
* actionscript3.php
* ----------------
* Author: Jordi Boggiano (j.boggiano@seld.be)
* Copyright: (c) 2007 Jordi Boggiano (http://www.seld.be/), Benny Baumann (http://qbnz.com/highlighter)
* Release Version: 1.0.8.8
* Date Started: 2007/11/26
*
* ActionScript3 language file for GeSHi.
*
* All keywords scraped from the Flex 2.0.1 Documentation
*
* The default style is based on FlexBuilder2 coloring, with the addition of class, package, method and
* constant names that are highlighted to help identifying problem when used on public pastebins.
*
* For styling, keywords data from 0 to 1 (accessible through .kw1, etc.) are described here :
*
* 1 : operators
* 2 : 'var' keyword
* 3 : 'function' keyword
* 4 : 'class' and 'package' keywords
* 5 : all flash.* class names plus Top Level classes, mx are excluded
* 6 : all flash.* package names, mx are excluded
* 7 : valid flash method names and properties (there is no type checks sadly, for example String().x will be highlighted as 'x' is valid, but obviously strings don't have a x property)
* 8 : valid flash constant names (again, no type check)
*
*
* CHANGES
* -------
* 2007/12/06 (1.0.7.22)
* - Added the 'this' keyword (oops)
*
* TODO (updated 2007/11/30)
* -------------------------
*
*************************************************************************************
*
* 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' => 'ActionScript 3',
'COMMENT_SINGLE' => array(1 => '//'),
'COMMENT_MULTI' => array('/*' => '*/'),
'COMMENT_REGEXP' => array(
//Regular expressions
2 => "/(?<=[\\s^])(s|tr|y)\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/(?:\\\\.|(?!\n)[^\\/\\\\])*\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?:\\\\.|(?!\n)[^\\/\\\\])+\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU",
),
'CASE_KEYWORDS' => 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'
),
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()
);
?>

135
library/geshi/geshi/ada.php Normal file
View File

@ -0,0 +1,135 @@
<?php
/*************************************************************************************
* ada.php
* -------
* Author: Tux (tux@inmail.cz)
* Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
* Release Version: 1.0.8.8
* Date Started: 2004/07/29
*
* Ada language file for GeSHi.
* Words are from SciTe configuration file
*
* CHANGES
* -------
* 2004/11/27 (1.0.2)
* - Added support for multiple object splitters
* 2004/10/27 (1.0.1)
* - Removed apostrophe as string delimiter
* - Added URL support
* 2004/08/05 (1.0.0)
* - First Release
*
* TODO (updated 2004/11/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' => '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(
)
);
?>

View File

@ -0,0 +1,480 @@
<?php
/*************************************************************************************
* apache.php
* ----------
* Author: Tux (tux@inmail.cz)
* Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
* Release Version: 1.0.8.8
* Date Started: 2004/29/07
*
* Apache language file for GeSHi.
* Words are from SciTe configuration file
*
* CHANGES
* -------
* 2008/17/06 (1.0.8)
* - Added support for apache configuration sections (milian)
* - Added missing php keywords (milian)
* - Added some more keywords
* - Disabled highlighting of brackets by default
* 2004/11/27 (1.0.2)
* - Added support for multiple object splitters
* 2004/10/27 (1.0.1)
* - Added support for URLs
* 2004/08/05 (1.0.0)
* - First Release
*
* TODO (updated 2004/07/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' => '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_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' => '(?<=&lt;|&lt;\/)',
'DISALLOWED_AFTER' => '(?=\s|\/|&gt;)',
)
)
)
);
?>

View File

@ -0,0 +1,157 @@
<?php
/*************************************************************************************
* applescript.php
* --------
* Author: Stephan Klimek (http://www.initware.org)
* Copyright: Stephan Klimek (http://www.initware.org)
* Release Version: 1.0.8.8
* Date Started: 2005/07/20
*
* AppleScript language file for GeSHi.
*
* CHANGES
* -------
* 2008/05/23 (1.0.7.22)
* - Added description of extra language features (SF#1970248)
*
* TODO
* -------------------------
* URL settings to references
*
**************************************************************************************
*
* 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' => 'AppleScript',
'COMMENT_SINGLE' => array(1 => '--'),
'COMMENT_MULTI' => array( '(*' => '*)'),
'COMMENT_REGEXP' => array(
2 => '/(?<=[a-z])\'/i',
3 => '/(?<![a-z])\'.*?\'/i',
),
'CASE_KEYWORDS' => 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(
')','+','-','^','*','/','&','<','>=','<','<=','=','<27>'
),
'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 => ',+-=&lt;&gt;/?^&amp;*'
),
'REGEXPS' => array(
//Variables
0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*',
//File descriptors
4 => '&lt;[a-zA-Z_][a-zA-Z0-9_]*&gt;',
),
'STRICT_MODE_APPLIES' => GESHI_NEVER,
'SCRIPT_DELIMITERS' => array(
),
'HIGHLIGHT_STRICT_BLOCK' => array(
),
'PARSER_CONTROL' => array(
'KEYWORDS' => array(
'SPACE_AS_WHITESPACE' => true
)
)
);
?>

View File

@ -0,0 +1,144 @@
<?php
/*************************************************************************************
* apt_sources.php
* ----------
* Author: Milian Wolff (mail@milianw.de)
* Copyright: (c) 2008 Milian Wolff (http://milianw.de)
* Release Version: 1.0.8.8
* Date Started: 2008/06/17
*
* Apt sources.list language file for GeSHi.
*
* CHANGES
* -------
* 2008/06/17 (1.0.8)
* - Initial import
*
*************************************************************************************
*
* 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' => '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', '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'
),
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' => '(?<![a-zA-Z0-9\$_\|\#;>|^\/])',
'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\.])'
)
),
'TAB_WIDTH' => 4
);
?>

225
library/geshi/geshi/asm.php Normal file
View File

@ -0,0 +1,225 @@
<?php
/*************************************************************************************
* asm.php
* -------
* Author: Tux (tux@inmail.cz)
* Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
* Release Version: 1.0.8.8
* Date Started: 2004/07/27
*
* x86 Assembler language file for GeSHi.
* Words are from SciTe configuration file (based on NASM syntax)
*
* CHANGES
* -------
* 2008/05/23 (1.0.7.22)
* - Added description of extra language features (SF#1970248)
* 2004/11/27 (1.0.2)
* - Added support for multiple object splitters
* 2004/10/27 (1.0.1)
* - Added support for URLs
* - Added binary and hexadecimal regexps
* 2004/08/05 (1.0.0)
* - First Release
*
* TODO (updated 2004/11/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' => '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(
/*CPU*/
1 => array(
'aaa','aad','aam','aas','adc','add','and','call','cbw','clc','cld','cli','cmc','cmp',
'cmps','cmpsb','cmpsw','cwd','daa','das','dec','div','esc','hlt','idiv','imul','in','inc',
'int','into','iret','ja','jae','jb','jbe','jc','jcxz','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','lahf','lds','lea','les','lods','lodsb','lodsw','loop',
'loope','loopew','loopne','loopnew','loopnz','loopnzw','loopw','loopz','loopzw','mov',
'movs','movsb','movsw','mul','neg','nop','not','or','out','pop','popf','push','pushf',
'rcl','rcr','ret','retf','retn','rol','ror','sahf','sal','sar','sbb','scas','scasb','scasw',
'shl','shr','stc','std','sti','stos','stosb','stosw','sub','test','wait','xchg','xlat',
'xlatb','xor','bound','enter','ins','insb','insw','leave','outs','outsb','outsw','popa','pusha','pushw',
'arpl','lar','lsl','sgdt','sidt','sldt','smsw','str','verr','verw','clts','lgdt','lidt','lldt','lmsw','ltr',
'bsf','bsr','bt','btc','btr','bts','cdq','cmpsd','cwde','insd','iretd','iretdf','iretf',
'jecxz','lfs','lgs','lodsd','loopd','looped','loopned','loopnzd','loopzd','lss','movsd',
'movsx','movzx','outsd','popad','popfd','pushad','pushd','pushfd','scasd','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','shld','shrd','stosd','bswap','cmpxchg','invd','invlpg','wbinvd','xadd','lock',
'rep','repe','repne','repnz','repz'
),
/*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'
),
/*registers*/
3 => array(
'ah','al','ax','bh','bl','bp','bx','ch','cl','cr0','cr2','cr3','cs','cx','dh','di','dl',
'dr0','dr1','dr2','dr3','dr6','dr7','ds','dx','eax','ebp','ebx','ecx','edi','edx',
'es','esi','esp','fs','gs','si','sp','ss','st','tr3','tr4','tr5','tr6','tr7'
),
/*Directive*/
4 => array(
'186','286','286c','286p','287','386','386c','386p','387','486','486p',
'8086','8087','alpha','break','code','const','continue','cref','data','data?',
'dosseg','else','elseif','endif','endw','err','err1','err2','errb',
'errdef','errdif','errdifi','erre','erridn','erridni','errnb','errndef',
'errnz','exit','fardata','fardata?','if','lall','lfcond','list','listall',
'listif','listmacro','listmacroall',' model','no87','nocref','nolist',
'nolistif','nolistmacro','radix','repeat','sall','seq','sfcond','stack',
'startup','tfcond','type','until','untilcxz','while','xall','xcref',
'xlist','alias','align','assume','catstr','comm','comment','db','dd','df','dq',
'dt','dup','dw','echo','elseif1','elseif2','elseifb','elseifdef','elseifdif',
'elseifdifi','elseife','elseifidn','elseifidni','elseifnb','elseifndef','end',
'endm','endp','ends','eq',' equ','even','exitm','extern','externdef','extrn','for',
'forc','ge','goto','group','high','highword','if1','if2','ifb','ifdef','ifdif',
'ifdifi','ife',' ifidn','ifidni','ifnb','ifndef','include','includelib','instr','invoke',
'irp','irpc','label','le','length','lengthof','local','low','lowword','lroffset',
'macro','mask','mod','msfloat','name','ne','offset','opattr','option','org','%out',
'page','popcontext','private','proc','proto','ptr','public','purge','pushcontext','record',
'rept','seg','segment','short','size','sizeof','sizestr','struc','struct',
'substr','subtitle','subttl','textequ','this','title','typedef','union','width',
'.model', '.stack', '.code', '.data'
),
/*Operands*/
5 => array(
'@b','@f','addr','basic','byte','c','carry?','dword',
'far','far16','fortran','fword','near','near16','overflow?','parity?','pascal','qword',
'real4',' real8','real10','sbyte','sdword','sign?','stdcall','sword','syscall','tbyte',
'vararg','word','zero?','flat','near32','far32',
'abs','all','assumes','at','casemap','common','compact',
'cpu','dotname','emulator','epilogue','error','export','expr16','expr32','farstack',
'forceframe','huge','language','large','listing','ljmp','loadds','m510','medium','memory',
'nearstack','nodotname','noemulator','nokeyword','noljmp','nom510','none','nonunique',
'nooldmacros','nooldstructs','noreadonly','noscoped','nosignextend','nothing',
'notpublic','oldmacros','oldstructs','os_dos','para','prologue',
'readonly','req','scoped','setif2','smallstack','tiny','use16','use32','uses'
)
),
'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; 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: #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;'
),
'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' => "(?<![a-zA-Z0-9\$_\|\#>|^])",
'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%])"
)
)
);
?>

164
library/geshi/geshi/asp.php Normal file
View File

@ -0,0 +1,164 @@
<?php
/*************************************************************************************
* asp.php
* --------
* Author: Amit Gupta (http://blog.igeek.info/)
* Copyright: (c) 2004 Amit Gupta (http://blog.igeek.info/), Nigel McNie (http://qbnz.com/highlighter)
* Release Version: 1.0.8.8
* Date Started: 2004/08/13
*
* ASP language file for GeSHi.
*
* CHANGES
* -------
* 2005/12/30 (1.0.3)
* - Strings only delimited by ", comments by '
* 2004/11/27 (1.0.2)
* - Added support for multiple object splitters
* 2004/10/27 (1.0.1)
* - Added support for URLs
* 2004/08/13 (1.0.0)
* - First Release
*
* TODO (updated 2004/11/27)
* -------------------------
* * Include all the functions, keywords etc that I have missed
*
*************************************************************************************
*
* 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' => '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(
'<script language="vbscript" runat="server">' => '</script>'
),
2 => array(
'<script language="javascript" runat="server">' => '</script>'
),
3 => "/(?P<start><%=?)(?:\"[^\"]*?\"|\/\*(?!\*\/).*?\*\/|.)*?(?P<end>%>|\Z)/sm"
),
'HIGHLIGHT_STRICT_BLOCK' => array(
0 => true,
1 => true,
2 => true,
3 => true
)
);
?>

View File

@ -0,0 +1,512 @@
<?php
/*************************************************************************************
* autoconf.php
* -----
* Author: Mihai Vasilian (grayasm@gmail.com)
* Copyright: (c) 2010 Mihai Vasilian
* Release Version: 1.0.8.8
* Date Started: 2010/01/25
*
* autoconf language file for GeSHi.
*
***********************************************************************************
*
* 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' => '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 => '/(?<!\$)\bdnl\b.*$/m',
),
'CASE_KEYWORDS' => 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_\$\#])",
'DISALLOWED_AFTER' => "(?![\.\-a-zA-Z0-9_%\\/])"
)
)
);
?>

View File

@ -0,0 +1,373 @@
<?php
/*************************************************************************************
* autohotkey.php
* --------
* Author: Naveen Garg (naveen.garg@gmail.com)
* Copyright: (c) 2009 Naveen Garg and GeSHi
* Release Version: 1.0.8.8
* Date Started: 2009/06/11
*
* Autohotkey language file for GeSHi.
*
* CHANGES
* -------
* Release 1.0.8.5 (2009/06/11)
* - First Release
*
* TODO
* ----
* Reference: http://www.autohotkey.com/docs/
*
*************************************************************************************
*
* 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' => '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' => '(?<!\w)\#'
)
)
)
);
?>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,194 @@
<?php
/*************************************************************************************
* avisynth.php
* --------
* Author: Ryan Jones (sciguyryan@gmail.com)
* Copyright: (c) 2008 Ryan Jones
* Release Version: 1.0.8.8
* Date Started: 2008/10/08
*
* AviSynth language file for GeSHi.
*
* CHANGES
* -------
* 2008/10/08 (1.0.8.1)
* - First Release
*
* TODO (updated 2008/10/08)
* -------------------------
* * There are also some special words that can't currently be specified directly in GeSHi as they may
* also be used as variables which would really mess things up.
* * Also there is an issue with the escape character as this language uses a muti-character escape system. Escape char should be """ but has been left
* as empty due to this restiction.
*
*************************************************************************************
*
* 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' => '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
);
?>

158
library/geshi/geshi/awk.php Normal file
View File

@ -0,0 +1,158 @@
<?php
/************************************************
* awk.php
* -------
* Author: George Pollard (porges@porg.es)
* Copyright: (c) 2009 George Pollard
* Release Version: 1.0.8.8
* Date Started: 2009/01/28
*
* Awk language file for GeSHi.
*
* CHANGES
* -------
* 2009/01/28 (1.0.8.5)
* - First Release
*
* TODO (updated 2009/01/28)
* -------------------------
*
*************************************************************************************
*
* 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' => '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()
);
?>

View File

@ -0,0 +1,327 @@
<?php
/*************************************************************************************
* bash.php
* --------
* Author: Andreas Gohr (andi@splitbrain.org)
* Copyright: (c) 2004 Andreas Gohr, Nigel McNie (http://qbnz.com/highlighter)
* Release Version: 1.0.8.8
* Date Started: 2004/08/20
*
* BASH language file for GeSHi.
*
* CHANGES
* -------
* 2008/06/21 (1.0.8)
* - Added loads of keywords and commands of GNU/Linux
* - Added support for parameters starting with a dash
* 2008/05/23 (1.0.7.22)
* - Added description of extra language features (SF#1970248)
* 2007/09/05 (1.0.7.21)
* - PARSER_CONTROL patch using SF #1788408 (BenBE)
* 2007/06/11 (1.0.7.20)
* - Added a lot of keywords (BenBE / Jan G)
* 2004/11/27 (1.0.2)
* - Added support for multiple object splitters
* 2004/10/27 (1.0.1)
* - Added support for URLs
* 2004/08/20 (1.0.0)
* - First Release
*
* TODO (updated 2004/11/27)
* -------------------------
* * Get symbols working
* * Highlight builtin vars
*
*************************************************************************************
*
* 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' => '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"
),
'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', 'aplay', 'apm', 'apmsleep', 'apropos',
'apt-cache', 'apt-file', 'apt-get', 'apt-key', 'apt-src', 'aptitude',
'ar', 'arch', 'arecord', 'as', 'as86', 'ash', 'autoconf',
'autoheader', 'automake', 'awk',
'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',
'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', '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', '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',
'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',
'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',
'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;'
),
'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 => "(?<![\.a-zA-Z_\-])([a-zA-Z_][a-zA-Z0-9_]*?)(?==)",
//Shorthand shell variables
4 => "\\$[*#\$\\-\\?!\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_\$\#])",
'DISALLOWED_AFTER' => "(?![\.\-a-zA-Z0-9_%=\\/])"
)
)
);
?>

View File

@ -0,0 +1,341 @@
<?php
/*************************************************************************************
* basic4gl.php
* ---------------------------------
* Author: Matthew Webb (bmatthew1@blueyonder.co.uk)
* Copyright: (c) 2004 Matthew Webb (http://matthew-4gl.wikispaces.com)
* Release Version: 1.0.8.8
* Date Started: 2007/09/15
*
* Basic4GL language file for GeSHi.
*
* You can find the Basic4GL Website at (http://www.basic4gl.net/)
*
* CHANGES
* -------
* 2007/09/17 (1.0.0)
* - First Release
*
* TODO (updated 2007/09/17)
* -------------------------
* Make sure all the OpenGL and Basic4GL commands have been added and are complete.
*
*************************************************************************************
*
* 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' => '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
);
?>

114
library/geshi/geshi/bf.php Normal file
View File

@ -0,0 +1,114 @@
<?php
/*************************************************************************************
* bf.php
* ----------
* Author: Benny Baumann (BenBE@geshi.org)
* Copyright: (c) 2008 Benny Baumann (http://qbnz.com/highlighter/)
* Release Version: 1.0.8.8
* Date Started: 2009/10/31
*
* Brainfuck language file for GeSHi.
*
* CHANGES
* -------
* 2008/10/31 (1.0.8.1)
* - First Release
*
* TODO
* ----
*
*************************************************************************************
*
* 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' => '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: #66cc66;'
),
'STRINGS' => array(
0 => 'color: #ff0000;'
),
'NUMBERS' => array(
),
'METHODS' => array(
),
'SYMBOLS' => array(
0 => 'color: #006600;',
1 => 'color: #660000;',
2 => 'color: #000066;',
3 => 'color: #660066;',
4 => 'color: #666600;'
),
'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
),
'KEYWORDS' => array(
'DISALLOW_BEFORE' => '',
'DISALLOW_AFTER' => ''
)
)
);
?>

View File

@ -0,0 +1,183 @@
<?php
/********************************************************************************
* bibtex.php
* -----
* Author: Quinn Taylor (quinntaylor@mac.com)
* Copyright: (c) 2009 Quinn Taylor (quinntaylor@mac.com), Nigel McNie (http://qbnz.com/highlighter)
* Release Version: 1.0.8.8
* Date Started: 2009/04/29
*
* BibTeX language file for GeSHi.
*
* CHANGES
* -------
* 2009/04/29 (1.0.8.4)
* - First Release
*
* TODO
* -------------------------
* - Add regex for matching and replacing URLs with corresponding hyperlinks
* - Add regex for matching more LaTeX commands that may be embedded in BibTeX
* (Someone who understands regex better than I should borrow from latex.php)
********************************************************************************
*
* 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
*
*
*******************************************************************************/
// http://en.wikipedia.org/wiki/BibTeX
// http://www.fb10.uni-bremen.de/anglistik/langpro/bibliographies/jacobsen-bibtex.html
$language_data = array (
'LANG_NAME' => '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*=)'
),
)
)
);
?>

View File

@ -0,0 +1,185 @@
<?php
/*************************************************************************************
* blitzbasic.php
* --------------
* Author: P<EFBFBD>draig O`Connel (info@moonsword.info)
* Copyright: (c) 2005 P<EFBFBD>draig O`Connel (http://moonsword.info)
* Release Version: 1.0.8.8
* Date Started: 16.10.2005
*
* BlitzBasic language file for GeSHi.
*
* It is a simple Basic dialect. Released for Games and Network Connections.
* In this Language File are all functions included (2D BB and 3D BB)
*
*
* CHANGES
* -------
* 2005/12/28 (1.0.1)
* - Remove unnecessary style index for regexps
* 2005/10/22 (1.0.0)
* - First Release
*
* TODO (updated 2005/10/22)
* -------------------------
* * Sort out the Basic commands for splitting up.
* * To set up the right colors.
* (the colors are ok, but not the correct ones)
* * Split to BlitzBasic 2D and BlitzBasic 3D.
*
*************************************************************************************
*
* 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' => '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 If','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
)
);
?>

119
library/geshi/geshi/bnf.php Normal file
View File

@ -0,0 +1,119 @@
<?php
/*************************************************************************************
* bnf.php
* --------
* Author: Rowan Rodrik van der Molen (rowan@bigsmoke.us)
* Copyright: (c) 2006 Rowan Rodrik van der Molen (http://www.bigsmoke.us/)
* Release Version: 1.0.8.8
* Date Started: 2006/09/28
*
* BNF (Backus-Naur form) language file for GeSHi.
*
* See http://en.wikipedia.org/wiki/Backus-Naur_form for more info on BNF.
*
* CHANGES
* -------
* 2008/05/23 (1.0.7.22)
* - Added description of extra language features (SF#1970248)
* - Removed superflicious regexps
* 2006/09/18 (1.0.0)
* - First Release
*
* TODO (updated 2006/09/18)
* -------------------------
* * Nothing I can think of
*
*************************************************************************************
*
* 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' => '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 => '(&lt;)([^&]+?)(&gt;)',
GESHI_REPLACE => '\\2',
GESHI_MODIFIERS => '',
GESHI_BEFORE => '\\1',
GESHI_AFTER => '\\3'
),
),
'STRICT_MODE_APPLIES' => GESHI_NEVER,
'SCRIPT_DELIMITERS' => array(
),
'HIGHLIGHT_STRICT_BLOCK' => array(
)
);
?>

217
library/geshi/geshi/boo.php Normal file
View File

@ -0,0 +1,217 @@
<?php
/*************************************************************************************
* boo.php
* --------
* Author: Marcus Griep (neoeinstein+GeSHi@gmail.com)
* Copyright: (c) 2007 Marcus Griep (http://www.xpdm.us)
* Release Version: 1.0.8.8
* Date Started: 2007/09/10
*
* Boo language file for GeSHi.
*
* CHANGES
* -------
* 2004/09/10 (1.0.8)
* - First Release
*
* TODO (updated 2007/09/10)
* -------------------------
* Regular Expression Literal matching
*
*************************************************************************************
*
* 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' => '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
);
?>

Some files were not shown because too many files have changed in this diff Show More