Add Text_Highlighter to Composer

- Fixes critical mistake in boot.php regarding set_include_path
- Fixes minor mistake in text.php regarding strpos order of arguments

Note: This change significantly increases Composer running time because
Text_Highlither is a PEAR package. I'm already planning to replace it
with scrivo/highlight.php.
This commit is contained in:
Hypolite Petovan 2017-04-05 00:31:49 -04:00
commit 1ab28bbe03
176 changed files with 52674 additions and 489 deletions

View file

@ -0,0 +1,398 @@
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* Highlighter base class
*
* PHP versions 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @category Text
* @package Text_Highlighter
* @author Andrey Demenev <demenev@gmail.com>
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version CVS: $Id$
* @link http://pear.php.net/package/Text_Highlighter
*/
require_once 'PEAR.php';
// {{{ BC constants
// BC trick : define constants related to default
// renderer if needed
if (!defined('HL_NUMBERS_LI')) {
/**#@+
* Constant for use with $options['numbers']
* @see Text_Highlighter_Renderer_Html::_init()
*/
/**
* use numbered list
*/
define ('HL_NUMBERS_LI' , 1);
/**
* Use 2-column table with line numbers in left column and code in right column.
* Forces $options['tag'] = HL_TAG_PRE
*/
define ('HL_NUMBERS_TABLE' , 2);
/**#@-*/
}
// }}}
// {{{ constants
/**
* for our purpose, it is infinity
*/
define ('HL_INFINITY', 1000000000);
// }}}
/**
* Text highlighter base class
*
* @author Andrey Demenev <demenev@gmail.com>
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
// {{{ Text_Highlighter
/**
* Text highlighter base class
*
* This class implements all functions necessary for highlighting,
* but it does not contain highlighting rules. Actual highlighting is
* done using a descendent of this class.
*
* One is not supposed to manually create descendent classes.
* Instead, describe highlighting rules in XML format and
* use {@link Text_Highlighter_Generator} to create descendent class.
* Alternatively, an instance of a descendent class can be created
* directly.
*
* Use {@link Text_Highlighter::factory()} to create an
* object for particular language highlighter
*
* Usage example
* <code>
*require_once 'Text/Highlighter.php';
*$hlSQL = Text_Highlighter::factory('SQL',array('numbers'=>true));
*echo $hlSQL->highlight('SELECT * FROM table a WHERE id = 12');
* </code>
*
* @author Andrey Demenev <demenev@gmail.com>
* @package Text_Highlighter
* @access public
*/
class Text_Highlighter
{
// {{{ members
/**
* Syntax highlighting rules.
* Auto-generated classes set this var
*
* @access protected
* @see _init
* @var array
*/
var $_syntax;
/**
* Renderer object.
*
* @access private
* @var array
*/
var $_renderer;
/**
* Options. Keeped for BC
*
* @access protected
* @var array
*/
var $_options = array();
/**
* Conditionds
*
* @access protected
* @var array
*/
var $_conditions = array();
/**
* Disabled keywords
*
* @access protected
* @var array
*/
var $_disabled = array();
/**
* Language
*
* @access protected
* @var string
*/
var $_language = '';
// }}}
// {{{ _checkDefines
/**
* Called by subclssses' constructors to enable/disable
* optional highlighter rules
*
* @param array $defines Conditional defines
*
* @access protected
*/
function _checkDefines()
{
if (isset($this->_options['defines'])) {
$defines = $this->_options['defines'];
} else {
$defines = array();
}
foreach ($this->_conditions as $name => $actions) {
foreach($actions as $action) {
$present = in_array($name, $defines);
if (!$action[1]) {
$present = !$present;
}
if ($present) {
unset($this->_disabled[$action[0]]);
} else {
$this->_disabled[$action[0]] = true;
}
}
}
}
// }}}
// {{{ factory
/**
* Create a new Highlighter object for specified language
*
* @param string $lang language, for example "SQL"
* @param array $options Rendering options. This
* parameter is only keeped for BC reasons, use
* {@link Text_Highlighter::setRenderer()} instead
*
* @return mixed a newly created Highlighter object, or
* a PEAR error object on error
*
* @static
* @access public
*/
function &factory($lang, $options = array())
{
$lang = strtoupper($lang);
@include_once 'Text/Highlighter/' . $lang . '.php';
$classname = 'Text_Highlighter_' . $lang;
if (!class_exists($classname)) {
return PEAR::raiseError('Highlighter for ' . $lang . ' not found');
}
$obj = new $classname($options);
return $obj;
}
// }}}
// {{{ setRenderer
/**
* Set renderer object
*
* @param object $renderer Text_Highlighter_Renderer
*
* @access public
*/
function setRenderer(&$renderer)
{
$this->_renderer = $renderer;
}
// }}}
/**
* Helper function to find matching brackets
*
* @access private
*/
function _matchingBrackets($str)
{
return strtr($str, '()<>[]{}', ')(><][}{');
}
function _getToken()
{
if (!empty($this->_tokenStack)) {
return array_pop($this->_tokenStack);
}
if ($this->_pos >= $this->_len) {
return NULL;
}
if ($this->_state != -1 && preg_match($this->_endpattern, $this->_str, $m, PREG_OFFSET_CAPTURE, $this->_pos)) {
$endpos = $m[0][1];
$endmatch = $m[0][0];
} else {
$endpos = -1;
}
preg_match ($this->_regs[$this->_state], $this->_str, $m, PREG_OFFSET_CAPTURE, $this->_pos);
$n = 1;
foreach ($this->_counts[$this->_state] as $i=>$count) {
if (!isset($m[$n])) {
break;
}
if ($m[$n][1]>-1 && ($endpos == -1 || $m[$n][1] < $endpos)) {
if ($this->_states[$this->_state][$i] != -1) {
$this->_tokenStack[] = array($this->_delim[$this->_state][$i], $m[$n][0]);
} else {
$inner = $this->_inner[$this->_state][$i];
if (isset($this->_parts[$this->_state][$i])) {
$parts = array();
$partpos = $m[$n][1];
for ($j=1; $j<=$count; $j++) {
if ($m[$j+$n][1] < 0) {
continue;
}
if (isset($this->_parts[$this->_state][$i][$j])) {
if ($m[$j+$n][1] > $partpos) {
array_unshift($parts, array($inner, substr($this->_str, $partpos, $m[$j+$n][1]-$partpos)));
}
array_unshift($parts, array($this->_parts[$this->_state][$i][$j], $m[$j+$n][0]));
}
$partpos = $m[$j+$n][1] + strlen($m[$j+$n][0]);
}
if ($partpos < $m[$n][1] + strlen($m[$n][0])) {
array_unshift($parts, array($inner, substr($this->_str, $partpos, $m[$n][1] - $partpos + strlen($m[$n][0]))));
}
$this->_tokenStack = array_merge($this->_tokenStack, $parts);
} else {
foreach ($this->_keywords[$this->_state][$i] as $g => $re) {
if (isset($this->_disabled[$g])) {
continue;
}
if (preg_match($re, $m[$n][0])) {
$inner = $this->_kwmap[$g];
break;
}
}
$this->_tokenStack[] = array($inner, $m[$n][0]);
}
}
if ($m[$n][1] > $this->_pos) {
$this->_tokenStack[] = array($this->_lastinner, substr($this->_str, $this->_pos, $m[$n][1]-$this->_pos));
}
$this->_pos = $m[$n][1] + strlen($m[$n][0]);
if ($this->_states[$this->_state][$i] != -1) {
$this->_stack[] = array($this->_state, $this->_lastdelim, $this->_lastinner, $this->_endpattern);
$this->_lastinner = $this->_inner[$this->_state][$i];
$this->_lastdelim = $this->_delim[$this->_state][$i];
$l = $this->_state;
$this->_state = $this->_states[$this->_state][$i];
$this->_endpattern = $this->_end[$this->_state];
if ($this->_subst[$l][$i]) {
for ($k=0; $k<=$this->_counts[$l][$i]; $k++) {
if (!isset($m[$i+$k])) {
break;
}
$quoted = preg_quote($m[$n+$k][0], '/');
$this->_endpattern = str_replace('%'.$k.'%', $quoted, $this->_endpattern);
$this->_endpattern = str_replace('%b'.$k.'%', $this->_matchingBrackets($quoted), $this->_endpattern);
}
}
}
return array_pop($this->_tokenStack);
}
$n += $count + 1;
}
if ($endpos > -1) {
$this->_tokenStack[] = array($this->_lastdelim, $endmatch);
if ($endpos > $this->_pos) {
$this->_tokenStack[] = array($this->_lastinner, substr($this->_str, $this->_pos, $endpos-$this->_pos));
}
list($this->_state, $this->_lastdelim, $this->_lastinner, $this->_endpattern) = array_pop($this->_stack);
$this->_pos = $endpos + strlen($endmatch);
return array_pop($this->_tokenStack);
}
$p = $this->_pos;
$this->_pos = HL_INFINITY;
return array($this->_lastinner, substr($this->_str, $p));
}
// {{{ highlight
/**
* Highlights code
*
* @param string $str Code to highlight
* @access public
* @return string Highlighted text
*
*/
function highlight($str)
{
if (!($this->_renderer)) {
include_once('Text/Highlighter/Renderer/Html.php');
$this->_renderer = new Text_Highlighter_Renderer_Html($this->_options);
}
$this->_state = -1;
$this->_pos = 0;
$this->_stack = array();
$this->_tokenStack = array();
$this->_lastinner = $this->_defClass;
$this->_lastdelim = $this->_defClass;
$this->_endpattern = '';
$this->_renderer->reset();
$this->_renderer->setCurrentLanguage($this->_language);
$this->_str = $this->_renderer->preprocess($str);
$this->_len = strlen($this->_str);
while ($token = $this->_getToken()) {
$this->_renderer->acceptToken($token[0], $token[1]);
}
$this->_renderer->finalize();
return $this->_renderer->getOutput();
}
// }}}
}
// }}}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* c-hanging-comment-ender-p: nil
* End:
*/
?>

View file

@ -0,0 +1,519 @@
<?php
/**
* Auto-generated class. ABAP syntax highlighting
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: : abap.xml,v 1.1 2007/06/03 02:35:28 ssttoo Exp
* @author Stoyan Stefanov <ssttoo@gmail.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. ABAP syntax highlighting
*
* @author Stoyan Stefanov <ssttoo@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_ABAP extends Text_Highlighter
{
var $_language = 'abap';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_ABAP($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)^\\*|")|((?i)\')|((?i)[a-z_\\-]\\w*)/',
0 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)^\\*|")|((?i)\')|((?i)0[xX][\\da-f]+)|((?i)\\d\\d*|\\b0\\b)|((?i)0[0-7]+)|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)[a-z_\\-]\\w*)/',
1 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)^\\*|")|((?i)\')|((?i)0[xX][\\da-f]+)|((?i)\\d\\d*|\\b0\\b)|((?i)0[0-7]+)|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)[a-z_\\-]\\w*)/',
2 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)^\\*|")|((?i)\')|((?i)0[xX][\\da-f]+)|((?i)\\d\\d*|\\b0\\b)|((?i)0[0-7]+)|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)[a-z_\\-]\\w*)/',
3 => '//',
4 => '//',
);
$this->_counts = array (
-1 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
),
0 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 2,
9 => 0,
),
1 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 2,
9 => 0,
),
2 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 2,
9 => 0,
),
3 =>
array (
),
4 =>
array (
),
);
$this->_delim = array (
-1 =>
array (
0 => 'brackets',
1 => 'brackets',
2 => 'brackets',
3 => 'comment',
4 => 'quotes',
5 => '',
),
0 =>
array (
0 => 'brackets',
1 => 'brackets',
2 => 'brackets',
3 => 'comment',
4 => 'quotes',
5 => '',
6 => '',
7 => '',
8 => '',
9 => '',
),
1 =>
array (
0 => 'brackets',
1 => 'brackets',
2 => 'brackets',
3 => 'comment',
4 => 'quotes',
5 => '',
6 => '',
7 => '',
8 => '',
9 => '',
),
2 =>
array (
0 => 'brackets',
1 => 'brackets',
2 => 'brackets',
3 => 'comment',
4 => 'quotes',
5 => '',
6 => '',
7 => '',
8 => '',
9 => '',
),
3 =>
array (
),
4 =>
array (
),
);
$this->_inner = array (
-1 =>
array (
0 => 'code',
1 => 'code',
2 => 'code',
3 => 'comment',
4 => 'string',
5 => 'identifier',
),
0 =>
array (
0 => 'code',
1 => 'code',
2 => 'code',
3 => 'comment',
4 => 'string',
5 => 'number',
6 => 'number',
7 => 'number',
8 => 'number',
9 => 'identifier',
),
1 =>
array (
0 => 'code',
1 => 'code',
2 => 'code',
3 => 'comment',
4 => 'string',
5 => 'number',
6 => 'number',
7 => 'number',
8 => 'number',
9 => 'identifier',
),
2 =>
array (
0 => 'code',
1 => 'code',
2 => 'code',
3 => 'comment',
4 => 'string',
5 => 'number',
6 => 'number',
7 => 'number',
8 => 'number',
9 => 'identifier',
),
3 =>
array (
),
4 =>
array (
),
);
$this->_end = array (
0 => '/(?i)\\}/',
1 => '/(?i)\\)/',
2 => '/(?i)\\]/',
3 => '/(?mi)$/',
4 => '/(?i)\'/',
);
$this->_states = array (
-1 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => -1,
),
0 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 => -1,
),
1 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 => -1,
),
2 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 => -1,
),
3 =>
array (
),
4 =>
array (
),
);
$this->_keywords = array (
-1 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 =>
array (
'sy' => '/^((?i)screen-name|screen-group1|screen-group2|screen-group3|screen-group4|screen-required|screen-input|screen-output|screen-intensified|screen-invisible|screen-length|screen-active|sy-index|sy-pagno|sy-tabix|sy-tfill|sy-tlopc|sy-tmaxl|sy-toccu|sy-ttabc|sy-tstis|sy-ttabi|sy-dbcnt|sy-fdpos|sy-colno|sy-linct|sy-linno|sy-linsz|sy-pagct|sy-macol|sy-marow|sy-tleng|sy-sfoff|sy-willi|sy-lilli|sy-subrc|sy-fleng|sy-cucol|sy-curow|sy-lsind|sy-listi|sy-stepl|sy-tpagi|sy-winx1|sy-winy1|sy-winx2|sy-winy2|sy-winco|sy-winro|sy-windi|sy-srows|sy-scols|sy-loopc|sy-folen|sy-fodec|sy-tzone|sy-dayst|sy-ftype|sy-appli|sy-fdayw|sy-ccurs|sy-ccurt|sy-debug|sy-ctype|sy-input|sy-langu|sy-modno|sy-batch|sy-binpt|sy-calld|sy-dynnr|sy-dyngr|sy-newpa|sy-pri40|sy-rstrt|sy-wtitl|sy-cpage|sy-dbnam|sy-mandt|sy-prefx|sy-fmkey|sy-pexpi|sy-prini|sy-primm|sy-prrel|sy-playo|sy-prbig|sy-playp|sy-prnew|sy-prlog|sy-pdest|sy-plist|sy-pauth|sy-prdsn|sy-pnwpa|sy-callr|sy-repi2|sy-rtitl|sy-prrec|sy-prtxt|sy-prabt|sy-lpass|sy-nrpag|sy-paart|sy-prcop|sy-batzs|sy-bspld|sy-brep4|sy-batzo|sy-batzd|sy-batzw|sy-batzm|sy-ctabl|sy-dbsys|sy-dcsys|sy-macdb|sy-sysid|sy-opsys|sy-pfkey|sy-saprl|sy-tcode|sy-ucomm|sy-cfwae|sy-chwae|sy-spono|sy-sponr|sy-waers|sy-cdate|sy-datum|sy-slset|sy-subty|sy-subcs|sy-group|sy-ffile|sy-uzeit|sy-dsnam|sy-repid|sy-tabid|sy-tfdsn|sy-uname|sy-lstat|sy-abcde|sy-marky|sy-sfnam|sy-tname|sy-msgli|sy-title|sy-entry|sy-lisel|sy-uline|sy-xcode|sy-cprog|sy-xprog|sy-xform|sy-ldbpg|sy-tvar0|sy-tvar1|sy-tvar2|sy-tvar3|sy-tvar4|sy-tvar5|sy-tvar6|sy-tvar7|sy-tvar8|sy-tvar9|sy-msgid|sy-msgty|sy-msgno|sy-msgv1|sy-msgv2|sy-msgv3|sy-msgv4|sy-oncom|sy-vline|sy-winsl|sy-staco|sy-staro|sy-datar|sy-host|sy-locdb|sy-locop|sy-datlo|sy-timlo|sy-zonlo|syst-index|syst-pagno|syst-tabix|syst-tfill|syst-tlopc|syst-tmaxl|syst-toccu|syst-ttabc|syst-tstis|syst-ttabi|syst-dbcnt|syst-fdpos|syst-colno|syst-linct|syst-linno|syst-linsz|syst-pagct|syst-macol|syst-marow|syst-tleng|syst-sfoff|syst-willi|syst-lilli|syst-subrc|syst-fleng|syst-cucol|syst-curow|syst-lsind|syst-listi|syst-stepl|syst-tpagi|syst-winx1|syst-winy1|syst-winx2|syst-winy2|syst-winco|syst-winro|syst-windi|syst-srows|syst-scols|syst-loopc|syst-folen|syst-fodec|syst-tzone|syst-dayst|syst-ftype|syst-appli|syst-fdayw|syst-ccurs|syst-ccurt|syst-debug|syst-ctype|syst-input|syst-langu|syst-modno|syst-batch|syst-binpt|syst-calld|syst-dynnr|syst-dyngr|syst-newpa|syst-pri40|syst-rstrt|syst-wtitl|syst-cpage|syst-dbnam|syst-mandt|syst-prefx|syst-fmkey|syst-pexpi|syst-prini|syst-primm|syst-prrel|syst-playo|syst-prbig|syst-playp|syst-prnew|syst-prlog|syst-pdest|syst-plist|syst-pauth|syst-prdsn|syst-pnwpa|syst-callr|syst-repi2|syst-rtitl|syst-prrec|syst-prtxt|syst-prabt|syst-lpass|syst-nrpag|syst-paart|syst-prcop|syst-batzs|syst-bspld|syst-brep4|syst-batzo|syst-batzd|syst-batzw|syst-batzm|syst-ctabl|syst-dbsys|syst-dcsys|syst-macdb|syst-sysid|syst-opsys|syst-pfkey|syst-saprl|syst-tcode|syst-ucomm|syst-cfwae|syst-chwae|syst-spono|syst-sponr|syst-waers|syst-cdate|syst-datum|syst-slset|syst-subty|syst-subcs|syst-group|syst-ffile|syst-uzeit|syst-dsnam|syst-repid|syst-tabid|syst-tfdsn|syst-uname|syst-lstat|syst-abcde|syst-marky|syst-sfnam|syst-tname|syst-msgli|syst-title|syst-entry|syst-lisel|syst-uline|syst-xcode|syst-cprog|syst-xprog|syst-xform|syst-ldbpg|syst-tvar0|syst-tvar1|syst-tvar2|syst-tvar3|syst-tvar4|syst-tvar5|syst-tvar6|syst-tvar7|syst-tvar8|syst-tvar9|syst-msgid|syst-msgty|syst-msgno|syst-msgv1|syst-msgv2|syst-msgv3|syst-msgv4|syst-oncom|syst-vline|syst-winsl|syst-staco|syst-staro|syst-datar|syst-host|syst-locdb|syst-locop|syst-datlo|syst-timlo|syst-zonlo)$/',
'reserved' => '/^((?i)abs|acos|add|add-corresponding|adjacent|after|aliases|all|analyzer|and|any|append|as|ascending|asin|assign|assigned|assigning|at|atan|authority-check|avg|back|before|begin|binary|bit|bit-and|bit-not|bit-or|bit-xor|blank|block|break-point|buffer|by|c|call|case|catch|ceil|centered|chain|change|changing|check|checkbox|class|class-data|class-events|class-methods|class-pool|clear|client|close|cnt|code|collect|color|comment|commit|communication|compute|concatenate|condense|constants|context|contexts|continue|control|controls|convert|copy|corresponding|cos|cosh|count|country|create|currency|cursor|customer-function|data|database|dataset|delete|decimals|default|define|demand|descending|describe|dialog|distinct|div|divide|divide-corresponding|do|duplicates|dynpro|edit|editor-call|else|elseif|end|end-of-definition|end-of-page|end-of-selection|endat|endcase|endcatch|endchain|endclass|enddo|endexec|endform|endfunction|endif|endinterface|endloop|endmethod|endmodule|endon|endprovide|endselect|endwhile|entries|events|exec|exit|exit-command|exp|exponent|export|exporting|exceptions|extended|extract|fetch|field|field-groups|field-symbols|fields|floor|for|form|format|frac|frame|free|from|function|function-pool|generate|get|group|hashed|header|help-id|help-request|hide|hotspot|icon|id|if|import|importing|include|index|infotypes|initialization|inner|input|insert|intensified|interface|interface-pool|interfaces|into|inverse|join|key|language|last|leave|left|left-justified|like|line|line-count|line-selection|line-size|lines|list-processing|load|load-of-program|local|locale|log|log10|loop|m|margin|mask|matchcode|max|memory|message|message-id|messages|method|methods|min|mod|mode|modif|modify|module|move|move-corresponding|multiply|multiply-corresponding|new|new-line|new-page|next|no|no-gap|no-gaps|no-heading|no-scrolling|no-sign|no-title|no-zero|nodes|non-unique|o|object|obligatory|occurs|of|off|on|open|or|order|others|outer|output|overlay|pack|page|parameter|parameters|perform|pf-status|position|print|print-control|private|process|program|property|protected|provide|public|put|radiobutton|raise|raising|range|ranges|read|receive|refresh|reject|replace|report|requested|reserve|reset|right-justified|rollback|round|rows|rtti|run|scan|screen|search|separated|scroll|scroll-boundary|select|select-options|selection-screen|selection-table|set|shared|shift|sign|sin|single|sinh|size|skip|sort|sorted|split|sql|sqrt|stamp|standard|start-of-selection|statics|stop|string|strlen|structure|submit|subtract|subtract-corresponding|sum|supply|suppress|symbol|syntax-check|syntax-trace|system-call|system-exceptions|table|table_line|tables|tan|tanh|text|textpool|time|times|title|titlebar|to|top-of-page|transaction|transfer|translate|transporting|trunc|type|type-pool|type-pools|types|uline|under|unique|unit|unpack|up|update|user-command|using|value|value-request|values|vary|when|where|while|window|with|with-title|work|write|x|xstring|z|zone)$/',
'constants' => '/^((?i)initial|null|space|col_background|col_heading|col_normal|col_total|col_key|col_positive|col_negative|col_group)$/',
),
),
0 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 =>
array (
),
6 =>
array (
),
7 =>
array (
),
8 =>
array (
),
9 =>
array (
'sy' => '/^((?i)screen-name|screen-group1|screen-group2|screen-group3|screen-group4|screen-required|screen-input|screen-output|screen-intensified|screen-invisible|screen-length|screen-active|sy-index|sy-pagno|sy-tabix|sy-tfill|sy-tlopc|sy-tmaxl|sy-toccu|sy-ttabc|sy-tstis|sy-ttabi|sy-dbcnt|sy-fdpos|sy-colno|sy-linct|sy-linno|sy-linsz|sy-pagct|sy-macol|sy-marow|sy-tleng|sy-sfoff|sy-willi|sy-lilli|sy-subrc|sy-fleng|sy-cucol|sy-curow|sy-lsind|sy-listi|sy-stepl|sy-tpagi|sy-winx1|sy-winy1|sy-winx2|sy-winy2|sy-winco|sy-winro|sy-windi|sy-srows|sy-scols|sy-loopc|sy-folen|sy-fodec|sy-tzone|sy-dayst|sy-ftype|sy-appli|sy-fdayw|sy-ccurs|sy-ccurt|sy-debug|sy-ctype|sy-input|sy-langu|sy-modno|sy-batch|sy-binpt|sy-calld|sy-dynnr|sy-dyngr|sy-newpa|sy-pri40|sy-rstrt|sy-wtitl|sy-cpage|sy-dbnam|sy-mandt|sy-prefx|sy-fmkey|sy-pexpi|sy-prini|sy-primm|sy-prrel|sy-playo|sy-prbig|sy-playp|sy-prnew|sy-prlog|sy-pdest|sy-plist|sy-pauth|sy-prdsn|sy-pnwpa|sy-callr|sy-repi2|sy-rtitl|sy-prrec|sy-prtxt|sy-prabt|sy-lpass|sy-nrpag|sy-paart|sy-prcop|sy-batzs|sy-bspld|sy-brep4|sy-batzo|sy-batzd|sy-batzw|sy-batzm|sy-ctabl|sy-dbsys|sy-dcsys|sy-macdb|sy-sysid|sy-opsys|sy-pfkey|sy-saprl|sy-tcode|sy-ucomm|sy-cfwae|sy-chwae|sy-spono|sy-sponr|sy-waers|sy-cdate|sy-datum|sy-slset|sy-subty|sy-subcs|sy-group|sy-ffile|sy-uzeit|sy-dsnam|sy-repid|sy-tabid|sy-tfdsn|sy-uname|sy-lstat|sy-abcde|sy-marky|sy-sfnam|sy-tname|sy-msgli|sy-title|sy-entry|sy-lisel|sy-uline|sy-xcode|sy-cprog|sy-xprog|sy-xform|sy-ldbpg|sy-tvar0|sy-tvar1|sy-tvar2|sy-tvar3|sy-tvar4|sy-tvar5|sy-tvar6|sy-tvar7|sy-tvar8|sy-tvar9|sy-msgid|sy-msgty|sy-msgno|sy-msgv1|sy-msgv2|sy-msgv3|sy-msgv4|sy-oncom|sy-vline|sy-winsl|sy-staco|sy-staro|sy-datar|sy-host|sy-locdb|sy-locop|sy-datlo|sy-timlo|sy-zonlo|syst-index|syst-pagno|syst-tabix|syst-tfill|syst-tlopc|syst-tmaxl|syst-toccu|syst-ttabc|syst-tstis|syst-ttabi|syst-dbcnt|syst-fdpos|syst-colno|syst-linct|syst-linno|syst-linsz|syst-pagct|syst-macol|syst-marow|syst-tleng|syst-sfoff|syst-willi|syst-lilli|syst-subrc|syst-fleng|syst-cucol|syst-curow|syst-lsind|syst-listi|syst-stepl|syst-tpagi|syst-winx1|syst-winy1|syst-winx2|syst-winy2|syst-winco|syst-winro|syst-windi|syst-srows|syst-scols|syst-loopc|syst-folen|syst-fodec|syst-tzone|syst-dayst|syst-ftype|syst-appli|syst-fdayw|syst-ccurs|syst-ccurt|syst-debug|syst-ctype|syst-input|syst-langu|syst-modno|syst-batch|syst-binpt|syst-calld|syst-dynnr|syst-dyngr|syst-newpa|syst-pri40|syst-rstrt|syst-wtitl|syst-cpage|syst-dbnam|syst-mandt|syst-prefx|syst-fmkey|syst-pexpi|syst-prini|syst-primm|syst-prrel|syst-playo|syst-prbig|syst-playp|syst-prnew|syst-prlog|syst-pdest|syst-plist|syst-pauth|syst-prdsn|syst-pnwpa|syst-callr|syst-repi2|syst-rtitl|syst-prrec|syst-prtxt|syst-prabt|syst-lpass|syst-nrpag|syst-paart|syst-prcop|syst-batzs|syst-bspld|syst-brep4|syst-batzo|syst-batzd|syst-batzw|syst-batzm|syst-ctabl|syst-dbsys|syst-dcsys|syst-macdb|syst-sysid|syst-opsys|syst-pfkey|syst-saprl|syst-tcode|syst-ucomm|syst-cfwae|syst-chwae|syst-spono|syst-sponr|syst-waers|syst-cdate|syst-datum|syst-slset|syst-subty|syst-subcs|syst-group|syst-ffile|syst-uzeit|syst-dsnam|syst-repid|syst-tabid|syst-tfdsn|syst-uname|syst-lstat|syst-abcde|syst-marky|syst-sfnam|syst-tname|syst-msgli|syst-title|syst-entry|syst-lisel|syst-uline|syst-xcode|syst-cprog|syst-xprog|syst-xform|syst-ldbpg|syst-tvar0|syst-tvar1|syst-tvar2|syst-tvar3|syst-tvar4|syst-tvar5|syst-tvar6|syst-tvar7|syst-tvar8|syst-tvar9|syst-msgid|syst-msgty|syst-msgno|syst-msgv1|syst-msgv2|syst-msgv3|syst-msgv4|syst-oncom|syst-vline|syst-winsl|syst-staco|syst-staro|syst-datar|syst-host|syst-locdb|syst-locop|syst-datlo|syst-timlo|syst-zonlo)$/',
'reserved' => '/^((?i)abs|acos|add|add-corresponding|adjacent|after|aliases|all|analyzer|and|any|append|as|ascending|asin|assign|assigned|assigning|at|atan|authority-check|avg|back|before|begin|binary|bit|bit-and|bit-not|bit-or|bit-xor|blank|block|break-point|buffer|by|c|call|case|catch|ceil|centered|chain|change|changing|check|checkbox|class|class-data|class-events|class-methods|class-pool|clear|client|close|cnt|code|collect|color|comment|commit|communication|compute|concatenate|condense|constants|context|contexts|continue|control|controls|convert|copy|corresponding|cos|cosh|count|country|create|currency|cursor|customer-function|data|database|dataset|delete|decimals|default|define|demand|descending|describe|dialog|distinct|div|divide|divide-corresponding|do|duplicates|dynpro|edit|editor-call|else|elseif|end|end-of-definition|end-of-page|end-of-selection|endat|endcase|endcatch|endchain|endclass|enddo|endexec|endform|endfunction|endif|endinterface|endloop|endmethod|endmodule|endon|endprovide|endselect|endwhile|entries|events|exec|exit|exit-command|exp|exponent|export|exporting|exceptions|extended|extract|fetch|field|field-groups|field-symbols|fields|floor|for|form|format|frac|frame|free|from|function|function-pool|generate|get|group|hashed|header|help-id|help-request|hide|hotspot|icon|id|if|import|importing|include|index|infotypes|initialization|inner|input|insert|intensified|interface|interface-pool|interfaces|into|inverse|join|key|language|last|leave|left|left-justified|like|line|line-count|line-selection|line-size|lines|list-processing|load|load-of-program|local|locale|log|log10|loop|m|margin|mask|matchcode|max|memory|message|message-id|messages|method|methods|min|mod|mode|modif|modify|module|move|move-corresponding|multiply|multiply-corresponding|new|new-line|new-page|next|no|no-gap|no-gaps|no-heading|no-scrolling|no-sign|no-title|no-zero|nodes|non-unique|o|object|obligatory|occurs|of|off|on|open|or|order|others|outer|output|overlay|pack|page|parameter|parameters|perform|pf-status|position|print|print-control|private|process|program|property|protected|provide|public|put|radiobutton|raise|raising|range|ranges|read|receive|refresh|reject|replace|report|requested|reserve|reset|right-justified|rollback|round|rows|rtti|run|scan|screen|search|separated|scroll|scroll-boundary|select|select-options|selection-screen|selection-table|set|shared|shift|sign|sin|single|sinh|size|skip|sort|sorted|split|sql|sqrt|stamp|standard|start-of-selection|statics|stop|string|strlen|structure|submit|subtract|subtract-corresponding|sum|supply|suppress|symbol|syntax-check|syntax-trace|system-call|system-exceptions|table|table_line|tables|tan|tanh|text|textpool|time|times|title|titlebar|to|top-of-page|transaction|transfer|translate|transporting|trunc|type|type-pool|type-pools|types|uline|under|unique|unit|unpack|up|update|user-command|using|value|value-request|values|vary|when|where|while|window|with|with-title|work|write|x|xstring|z|zone)$/',
'constants' => '/^((?i)initial|null|space|col_background|col_heading|col_normal|col_total|col_key|col_positive|col_negative|col_group)$/',
),
),
1 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 =>
array (
),
6 =>
array (
),
7 =>
array (
),
8 =>
array (
),
9 =>
array (
'sy' => '/^((?i)screen-name|screen-group1|screen-group2|screen-group3|screen-group4|screen-required|screen-input|screen-output|screen-intensified|screen-invisible|screen-length|screen-active|sy-index|sy-pagno|sy-tabix|sy-tfill|sy-tlopc|sy-tmaxl|sy-toccu|sy-ttabc|sy-tstis|sy-ttabi|sy-dbcnt|sy-fdpos|sy-colno|sy-linct|sy-linno|sy-linsz|sy-pagct|sy-macol|sy-marow|sy-tleng|sy-sfoff|sy-willi|sy-lilli|sy-subrc|sy-fleng|sy-cucol|sy-curow|sy-lsind|sy-listi|sy-stepl|sy-tpagi|sy-winx1|sy-winy1|sy-winx2|sy-winy2|sy-winco|sy-winro|sy-windi|sy-srows|sy-scols|sy-loopc|sy-folen|sy-fodec|sy-tzone|sy-dayst|sy-ftype|sy-appli|sy-fdayw|sy-ccurs|sy-ccurt|sy-debug|sy-ctype|sy-input|sy-langu|sy-modno|sy-batch|sy-binpt|sy-calld|sy-dynnr|sy-dyngr|sy-newpa|sy-pri40|sy-rstrt|sy-wtitl|sy-cpage|sy-dbnam|sy-mandt|sy-prefx|sy-fmkey|sy-pexpi|sy-prini|sy-primm|sy-prrel|sy-playo|sy-prbig|sy-playp|sy-prnew|sy-prlog|sy-pdest|sy-plist|sy-pauth|sy-prdsn|sy-pnwpa|sy-callr|sy-repi2|sy-rtitl|sy-prrec|sy-prtxt|sy-prabt|sy-lpass|sy-nrpag|sy-paart|sy-prcop|sy-batzs|sy-bspld|sy-brep4|sy-batzo|sy-batzd|sy-batzw|sy-batzm|sy-ctabl|sy-dbsys|sy-dcsys|sy-macdb|sy-sysid|sy-opsys|sy-pfkey|sy-saprl|sy-tcode|sy-ucomm|sy-cfwae|sy-chwae|sy-spono|sy-sponr|sy-waers|sy-cdate|sy-datum|sy-slset|sy-subty|sy-subcs|sy-group|sy-ffile|sy-uzeit|sy-dsnam|sy-repid|sy-tabid|sy-tfdsn|sy-uname|sy-lstat|sy-abcde|sy-marky|sy-sfnam|sy-tname|sy-msgli|sy-title|sy-entry|sy-lisel|sy-uline|sy-xcode|sy-cprog|sy-xprog|sy-xform|sy-ldbpg|sy-tvar0|sy-tvar1|sy-tvar2|sy-tvar3|sy-tvar4|sy-tvar5|sy-tvar6|sy-tvar7|sy-tvar8|sy-tvar9|sy-msgid|sy-msgty|sy-msgno|sy-msgv1|sy-msgv2|sy-msgv3|sy-msgv4|sy-oncom|sy-vline|sy-winsl|sy-staco|sy-staro|sy-datar|sy-host|sy-locdb|sy-locop|sy-datlo|sy-timlo|sy-zonlo|syst-index|syst-pagno|syst-tabix|syst-tfill|syst-tlopc|syst-tmaxl|syst-toccu|syst-ttabc|syst-tstis|syst-ttabi|syst-dbcnt|syst-fdpos|syst-colno|syst-linct|syst-linno|syst-linsz|syst-pagct|syst-macol|syst-marow|syst-tleng|syst-sfoff|syst-willi|syst-lilli|syst-subrc|syst-fleng|syst-cucol|syst-curow|syst-lsind|syst-listi|syst-stepl|syst-tpagi|syst-winx1|syst-winy1|syst-winx2|syst-winy2|syst-winco|syst-winro|syst-windi|syst-srows|syst-scols|syst-loopc|syst-folen|syst-fodec|syst-tzone|syst-dayst|syst-ftype|syst-appli|syst-fdayw|syst-ccurs|syst-ccurt|syst-debug|syst-ctype|syst-input|syst-langu|syst-modno|syst-batch|syst-binpt|syst-calld|syst-dynnr|syst-dyngr|syst-newpa|syst-pri40|syst-rstrt|syst-wtitl|syst-cpage|syst-dbnam|syst-mandt|syst-prefx|syst-fmkey|syst-pexpi|syst-prini|syst-primm|syst-prrel|syst-playo|syst-prbig|syst-playp|syst-prnew|syst-prlog|syst-pdest|syst-plist|syst-pauth|syst-prdsn|syst-pnwpa|syst-callr|syst-repi2|syst-rtitl|syst-prrec|syst-prtxt|syst-prabt|syst-lpass|syst-nrpag|syst-paart|syst-prcop|syst-batzs|syst-bspld|syst-brep4|syst-batzo|syst-batzd|syst-batzw|syst-batzm|syst-ctabl|syst-dbsys|syst-dcsys|syst-macdb|syst-sysid|syst-opsys|syst-pfkey|syst-saprl|syst-tcode|syst-ucomm|syst-cfwae|syst-chwae|syst-spono|syst-sponr|syst-waers|syst-cdate|syst-datum|syst-slset|syst-subty|syst-subcs|syst-group|syst-ffile|syst-uzeit|syst-dsnam|syst-repid|syst-tabid|syst-tfdsn|syst-uname|syst-lstat|syst-abcde|syst-marky|syst-sfnam|syst-tname|syst-msgli|syst-title|syst-entry|syst-lisel|syst-uline|syst-xcode|syst-cprog|syst-xprog|syst-xform|syst-ldbpg|syst-tvar0|syst-tvar1|syst-tvar2|syst-tvar3|syst-tvar4|syst-tvar5|syst-tvar6|syst-tvar7|syst-tvar8|syst-tvar9|syst-msgid|syst-msgty|syst-msgno|syst-msgv1|syst-msgv2|syst-msgv3|syst-msgv4|syst-oncom|syst-vline|syst-winsl|syst-staco|syst-staro|syst-datar|syst-host|syst-locdb|syst-locop|syst-datlo|syst-timlo|syst-zonlo)$/',
'reserved' => '/^((?i)abs|acos|add|add-corresponding|adjacent|after|aliases|all|analyzer|and|any|append|as|ascending|asin|assign|assigned|assigning|at|atan|authority-check|avg|back|before|begin|binary|bit|bit-and|bit-not|bit-or|bit-xor|blank|block|break-point|buffer|by|c|call|case|catch|ceil|centered|chain|change|changing|check|checkbox|class|class-data|class-events|class-methods|class-pool|clear|client|close|cnt|code|collect|color|comment|commit|communication|compute|concatenate|condense|constants|context|contexts|continue|control|controls|convert|copy|corresponding|cos|cosh|count|country|create|currency|cursor|customer-function|data|database|dataset|delete|decimals|default|define|demand|descending|describe|dialog|distinct|div|divide|divide-corresponding|do|duplicates|dynpro|edit|editor-call|else|elseif|end|end-of-definition|end-of-page|end-of-selection|endat|endcase|endcatch|endchain|endclass|enddo|endexec|endform|endfunction|endif|endinterface|endloop|endmethod|endmodule|endon|endprovide|endselect|endwhile|entries|events|exec|exit|exit-command|exp|exponent|export|exporting|exceptions|extended|extract|fetch|field|field-groups|field-symbols|fields|floor|for|form|format|frac|frame|free|from|function|function-pool|generate|get|group|hashed|header|help-id|help-request|hide|hotspot|icon|id|if|import|importing|include|index|infotypes|initialization|inner|input|insert|intensified|interface|interface-pool|interfaces|into|inverse|join|key|language|last|leave|left|left-justified|like|line|line-count|line-selection|line-size|lines|list-processing|load|load-of-program|local|locale|log|log10|loop|m|margin|mask|matchcode|max|memory|message|message-id|messages|method|methods|min|mod|mode|modif|modify|module|move|move-corresponding|multiply|multiply-corresponding|new|new-line|new-page|next|no|no-gap|no-gaps|no-heading|no-scrolling|no-sign|no-title|no-zero|nodes|non-unique|o|object|obligatory|occurs|of|off|on|open|or|order|others|outer|output|overlay|pack|page|parameter|parameters|perform|pf-status|position|print|print-control|private|process|program|property|protected|provide|public|put|radiobutton|raise|raising|range|ranges|read|receive|refresh|reject|replace|report|requested|reserve|reset|right-justified|rollback|round|rows|rtti|run|scan|screen|search|separated|scroll|scroll-boundary|select|select-options|selection-screen|selection-table|set|shared|shift|sign|sin|single|sinh|size|skip|sort|sorted|split|sql|sqrt|stamp|standard|start-of-selection|statics|stop|string|strlen|structure|submit|subtract|subtract-corresponding|sum|supply|suppress|symbol|syntax-check|syntax-trace|system-call|system-exceptions|table|table_line|tables|tan|tanh|text|textpool|time|times|title|titlebar|to|top-of-page|transaction|transfer|translate|transporting|trunc|type|type-pool|type-pools|types|uline|under|unique|unit|unpack|up|update|user-command|using|value|value-request|values|vary|when|where|while|window|with|with-title|work|write|x|xstring|z|zone)$/',
'constants' => '/^((?i)initial|null|space|col_background|col_heading|col_normal|col_total|col_key|col_positive|col_negative|col_group)$/',
),
),
2 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 =>
array (
),
6 =>
array (
),
7 =>
array (
),
8 =>
array (
),
9 =>
array (
'sy' => '/^((?i)screen-name|screen-group1|screen-group2|screen-group3|screen-group4|screen-required|screen-input|screen-output|screen-intensified|screen-invisible|screen-length|screen-active|sy-index|sy-pagno|sy-tabix|sy-tfill|sy-tlopc|sy-tmaxl|sy-toccu|sy-ttabc|sy-tstis|sy-ttabi|sy-dbcnt|sy-fdpos|sy-colno|sy-linct|sy-linno|sy-linsz|sy-pagct|sy-macol|sy-marow|sy-tleng|sy-sfoff|sy-willi|sy-lilli|sy-subrc|sy-fleng|sy-cucol|sy-curow|sy-lsind|sy-listi|sy-stepl|sy-tpagi|sy-winx1|sy-winy1|sy-winx2|sy-winy2|sy-winco|sy-winro|sy-windi|sy-srows|sy-scols|sy-loopc|sy-folen|sy-fodec|sy-tzone|sy-dayst|sy-ftype|sy-appli|sy-fdayw|sy-ccurs|sy-ccurt|sy-debug|sy-ctype|sy-input|sy-langu|sy-modno|sy-batch|sy-binpt|sy-calld|sy-dynnr|sy-dyngr|sy-newpa|sy-pri40|sy-rstrt|sy-wtitl|sy-cpage|sy-dbnam|sy-mandt|sy-prefx|sy-fmkey|sy-pexpi|sy-prini|sy-primm|sy-prrel|sy-playo|sy-prbig|sy-playp|sy-prnew|sy-prlog|sy-pdest|sy-plist|sy-pauth|sy-prdsn|sy-pnwpa|sy-callr|sy-repi2|sy-rtitl|sy-prrec|sy-prtxt|sy-prabt|sy-lpass|sy-nrpag|sy-paart|sy-prcop|sy-batzs|sy-bspld|sy-brep4|sy-batzo|sy-batzd|sy-batzw|sy-batzm|sy-ctabl|sy-dbsys|sy-dcsys|sy-macdb|sy-sysid|sy-opsys|sy-pfkey|sy-saprl|sy-tcode|sy-ucomm|sy-cfwae|sy-chwae|sy-spono|sy-sponr|sy-waers|sy-cdate|sy-datum|sy-slset|sy-subty|sy-subcs|sy-group|sy-ffile|sy-uzeit|sy-dsnam|sy-repid|sy-tabid|sy-tfdsn|sy-uname|sy-lstat|sy-abcde|sy-marky|sy-sfnam|sy-tname|sy-msgli|sy-title|sy-entry|sy-lisel|sy-uline|sy-xcode|sy-cprog|sy-xprog|sy-xform|sy-ldbpg|sy-tvar0|sy-tvar1|sy-tvar2|sy-tvar3|sy-tvar4|sy-tvar5|sy-tvar6|sy-tvar7|sy-tvar8|sy-tvar9|sy-msgid|sy-msgty|sy-msgno|sy-msgv1|sy-msgv2|sy-msgv3|sy-msgv4|sy-oncom|sy-vline|sy-winsl|sy-staco|sy-staro|sy-datar|sy-host|sy-locdb|sy-locop|sy-datlo|sy-timlo|sy-zonlo|syst-index|syst-pagno|syst-tabix|syst-tfill|syst-tlopc|syst-tmaxl|syst-toccu|syst-ttabc|syst-tstis|syst-ttabi|syst-dbcnt|syst-fdpos|syst-colno|syst-linct|syst-linno|syst-linsz|syst-pagct|syst-macol|syst-marow|syst-tleng|syst-sfoff|syst-willi|syst-lilli|syst-subrc|syst-fleng|syst-cucol|syst-curow|syst-lsind|syst-listi|syst-stepl|syst-tpagi|syst-winx1|syst-winy1|syst-winx2|syst-winy2|syst-winco|syst-winro|syst-windi|syst-srows|syst-scols|syst-loopc|syst-folen|syst-fodec|syst-tzone|syst-dayst|syst-ftype|syst-appli|syst-fdayw|syst-ccurs|syst-ccurt|syst-debug|syst-ctype|syst-input|syst-langu|syst-modno|syst-batch|syst-binpt|syst-calld|syst-dynnr|syst-dyngr|syst-newpa|syst-pri40|syst-rstrt|syst-wtitl|syst-cpage|syst-dbnam|syst-mandt|syst-prefx|syst-fmkey|syst-pexpi|syst-prini|syst-primm|syst-prrel|syst-playo|syst-prbig|syst-playp|syst-prnew|syst-prlog|syst-pdest|syst-plist|syst-pauth|syst-prdsn|syst-pnwpa|syst-callr|syst-repi2|syst-rtitl|syst-prrec|syst-prtxt|syst-prabt|syst-lpass|syst-nrpag|syst-paart|syst-prcop|syst-batzs|syst-bspld|syst-brep4|syst-batzo|syst-batzd|syst-batzw|syst-batzm|syst-ctabl|syst-dbsys|syst-dcsys|syst-macdb|syst-sysid|syst-opsys|syst-pfkey|syst-saprl|syst-tcode|syst-ucomm|syst-cfwae|syst-chwae|syst-spono|syst-sponr|syst-waers|syst-cdate|syst-datum|syst-slset|syst-subty|syst-subcs|syst-group|syst-ffile|syst-uzeit|syst-dsnam|syst-repid|syst-tabid|syst-tfdsn|syst-uname|syst-lstat|syst-abcde|syst-marky|syst-sfnam|syst-tname|syst-msgli|syst-title|syst-entry|syst-lisel|syst-uline|syst-xcode|syst-cprog|syst-xprog|syst-xform|syst-ldbpg|syst-tvar0|syst-tvar1|syst-tvar2|syst-tvar3|syst-tvar4|syst-tvar5|syst-tvar6|syst-tvar7|syst-tvar8|syst-tvar9|syst-msgid|syst-msgty|syst-msgno|syst-msgv1|syst-msgv2|syst-msgv3|syst-msgv4|syst-oncom|syst-vline|syst-winsl|syst-staco|syst-staro|syst-datar|syst-host|syst-locdb|syst-locop|syst-datlo|syst-timlo|syst-zonlo)$/',
'reserved' => '/^((?i)abs|acos|add|add-corresponding|adjacent|after|aliases|all|analyzer|and|any|append|as|ascending|asin|assign|assigned|assigning|at|atan|authority-check|avg|back|before|begin|binary|bit|bit-and|bit-not|bit-or|bit-xor|blank|block|break-point|buffer|by|c|call|case|catch|ceil|centered|chain|change|changing|check|checkbox|class|class-data|class-events|class-methods|class-pool|clear|client|close|cnt|code|collect|color|comment|commit|communication|compute|concatenate|condense|constants|context|contexts|continue|control|controls|convert|copy|corresponding|cos|cosh|count|country|create|currency|cursor|customer-function|data|database|dataset|delete|decimals|default|define|demand|descending|describe|dialog|distinct|div|divide|divide-corresponding|do|duplicates|dynpro|edit|editor-call|else|elseif|end|end-of-definition|end-of-page|end-of-selection|endat|endcase|endcatch|endchain|endclass|enddo|endexec|endform|endfunction|endif|endinterface|endloop|endmethod|endmodule|endon|endprovide|endselect|endwhile|entries|events|exec|exit|exit-command|exp|exponent|export|exporting|exceptions|extended|extract|fetch|field|field-groups|field-symbols|fields|floor|for|form|format|frac|frame|free|from|function|function-pool|generate|get|group|hashed|header|help-id|help-request|hide|hotspot|icon|id|if|import|importing|include|index|infotypes|initialization|inner|input|insert|intensified|interface|interface-pool|interfaces|into|inverse|join|key|language|last|leave|left|left-justified|like|line|line-count|line-selection|line-size|lines|list-processing|load|load-of-program|local|locale|log|log10|loop|m|margin|mask|matchcode|max|memory|message|message-id|messages|method|methods|min|mod|mode|modif|modify|module|move|move-corresponding|multiply|multiply-corresponding|new|new-line|new-page|next|no|no-gap|no-gaps|no-heading|no-scrolling|no-sign|no-title|no-zero|nodes|non-unique|o|object|obligatory|occurs|of|off|on|open|or|order|others|outer|output|overlay|pack|page|parameter|parameters|perform|pf-status|position|print|print-control|private|process|program|property|protected|provide|public|put|radiobutton|raise|raising|range|ranges|read|receive|refresh|reject|replace|report|requested|reserve|reset|right-justified|rollback|round|rows|rtti|run|scan|screen|search|separated|scroll|scroll-boundary|select|select-options|selection-screen|selection-table|set|shared|shift|sign|sin|single|sinh|size|skip|sort|sorted|split|sql|sqrt|stamp|standard|start-of-selection|statics|stop|string|strlen|structure|submit|subtract|subtract-corresponding|sum|supply|suppress|symbol|syntax-check|syntax-trace|system-call|system-exceptions|table|table_line|tables|tan|tanh|text|textpool|time|times|title|titlebar|to|top-of-page|transaction|transfer|translate|transporting|trunc|type|type-pool|type-pools|types|uline|under|unique|unit|unpack|up|update|user-command|using|value|value-request|values|vary|when|where|while|window|with|with-title|work|write|x|xstring|z|zone)$/',
'constants' => '/^((?i)initial|null|space|col_background|col_heading|col_normal|col_total|col_key|col_positive|col_negative|col_group)$/',
),
),
3 =>
array (
),
4 =>
array (
),
);
$this->_parts = array (
0 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
),
1 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
),
2 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
),
3 =>
array (
),
4 =>
array (
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
),
0 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
),
1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
),
2 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
),
3 =>
array (
),
4 =>
array (
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
'sy' => 'reserved',
'reserved' => 'reserved',
'constants' => 'reserved',
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}

View file

@ -0,0 +1,894 @@
<?php
/**
* Auto-generated class. AVRC syntax highlighting
*
*
* C/C++ highlighter specific to Atmel AVR microcontrollers
*
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: avrc.xml
* @author Andrey Demenev <demenev@gmail.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. AVRC syntax highlighting
*
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: 0.7.0
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_AVRC extends Text_Highlighter
{
var $_language = 'avrc';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_AVRC($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/',
0 => '/((?i)\\\\)/',
1 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/',
2 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/',
3 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/',
4 => '//',
5 => '/((?i)")|((?i)<)/',
6 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)\\/\\*)|((?i)\\/\\/.+)/',
7 => '/((?i)\\$\\w+\\s*:.+\\$)/',
8 => '/((?i)\\$\\w+\\s*:.+\\$)/',
);
$this->_counts = array (
-1 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 2,
9 => 0,
10 => 0,
11 => 0,
12 => 0,
13 => 0,
),
0 =>
array (
0 => 0,
),
1 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 2,
9 => 0,
10 => 0,
11 => 0,
12 => 0,
13 => 0,
),
2 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 2,
9 => 0,
10 => 0,
11 => 0,
12 => 0,
13 => 0,
),
3 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 2,
9 => 0,
10 => 0,
11 => 0,
12 => 0,
13 => 0,
),
4 =>
array (
),
5 =>
array (
0 => 0,
1 => 0,
),
6 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 2,
8 => 0,
9 => 0,
),
7 =>
array (
0 => 0,
),
8 =>
array (
0 => 0,
),
);
$this->_delim = array (
-1 =>
array (
0 => 'quotes',
1 => 'brackets',
2 => 'brackets',
3 => 'brackets',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
9 => 'prepro',
10 => 'prepro',
11 => '',
12 => 'mlcomment',
13 => 'comment',
),
0 =>
array (
0 => '',
),
1 =>
array (
0 => 'quotes',
1 => 'brackets',
2 => 'brackets',
3 => 'brackets',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
9 => 'prepro',
10 => 'prepro',
11 => '',
12 => 'mlcomment',
13 => 'comment',
),
2 =>
array (
0 => 'quotes',
1 => 'brackets',
2 => 'brackets',
3 => 'brackets',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
9 => 'prepro',
10 => 'prepro',
11 => '',
12 => 'mlcomment',
13 => 'comment',
),
3 =>
array (
0 => 'quotes',
1 => 'brackets',
2 => 'brackets',
3 => 'brackets',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
9 => 'prepro',
10 => 'prepro',
11 => '',
12 => 'mlcomment',
13 => 'comment',
),
4 =>
array (
),
5 =>
array (
0 => 'quotes',
1 => 'quotes',
),
6 =>
array (
0 => 'quotes',
1 => 'brackets',
2 => 'brackets',
3 => '',
4 => '',
5 => '',
6 => '',
7 => '',
8 => 'mlcomment',
9 => 'comment',
),
7 =>
array (
0 => '',
),
8 =>
array (
0 => '',
),
);
$this->_inner = array (
-1 =>
array (
0 => 'string',
1 => 'code',
2 => 'code',
3 => 'code',
4 => 'identifier',
5 => 'number',
6 => 'number',
7 => 'number',
8 => 'number',
9 => 'prepro',
10 => 'code',
11 => 'number',
12 => 'mlcomment',
13 => 'comment',
),
0 =>
array (
0 => 'special',
),
1 =>
array (
0 => 'string',
1 => 'code',
2 => 'code',
3 => 'code',
4 => 'identifier',
5 => 'number',
6 => 'number',
7 => 'number',
8 => 'number',
9 => 'prepro',
10 => 'code',
11 => 'number',
12 => 'mlcomment',
13 => 'comment',
),
2 =>
array (
0 => 'string',
1 => 'code',
2 => 'code',
3 => 'code',
4 => 'identifier',
5 => 'number',
6 => 'number',
7 => 'number',
8 => 'number',
9 => 'prepro',
10 => 'code',
11 => 'number',
12 => 'mlcomment',
13 => 'comment',
),
3 =>
array (
0 => 'string',
1 => 'code',
2 => 'code',
3 => 'code',
4 => 'identifier',
5 => 'number',
6 => 'number',
7 => 'number',
8 => 'number',
9 => 'prepro',
10 => 'code',
11 => 'number',
12 => 'mlcomment',
13 => 'comment',
),
4 =>
array (
),
5 =>
array (
0 => 'string',
1 => 'string',
),
6 =>
array (
0 => 'string',
1 => 'code',
2 => 'code',
3 => 'identifier',
4 => 'number',
5 => 'number',
6 => 'number',
7 => 'number',
8 => 'mlcomment',
9 => 'comment',
),
7 =>
array (
0 => 'inlinedoc',
),
8 =>
array (
0 => 'inlinedoc',
),
);
$this->_end = array (
0 => '/(?i)"/',
1 => '/(?i)\\}/',
2 => '/(?i)\\)/',
3 => '/(?i)\\]/',
4 => '/(?i)>/',
5 => '/(?mi)(?<!\\\\)$/',
6 => '/(?mi)(?<!\\\\)$/',
7 => '/(?i)\\*\\//',
8 => '/(?mi)$/',
);
$this->_states = array (
-1 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 => 5,
10 => 6,
11 => -1,
12 => 7,
13 => 8,
),
0 =>
array (
0 => -1,
),
1 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 => 5,
10 => 6,
11 => -1,
12 => 7,
13 => 8,
),
2 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 => 5,
10 => 6,
11 => -1,
12 => 7,
13 => 8,
),
3 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 => 5,
10 => 6,
11 => -1,
12 => 7,
13 => 8,
),
4 =>
array (
),
5 =>
array (
0 => 0,
1 => 4,
),
6 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => -1,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => 7,
9 => 8,
),
7 =>
array (
0 => -1,
),
8 =>
array (
0 => -1,
),
);
$this->_keywords = array (
-1 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 =>
array (
'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/',
'registers' => '/^(ACSR|ADCH|ADCL|ADCSRA|ADMUX|ASSR|DDRA|DDRB|DDRC|DDRD|DDRE|DDRF|DDRG|EEARH|EEARL|EECR|EEDR|EICRA|EICRB|EIFR|EIMSK|ETIFR|ETIMSK|GICR|GIFR|ICR1H|ICR1L|ICR3H|ICR3L|MCUCR|MCUCSR|OCDR|OCR0|OCR1AH|OCR1AL|OCR1BH|OCR1BL|OCR1CH|OCR1CL|OCR2|OCR3AH|OCR3AL|OCR3BH|OCR3BL|OCR3CH|OCR3CL|OSCCAL|PINA|PINB|PINC|PIND|PINE|PINF|PING|PORTA|PORTB|PORTC|PORTD|PORTE|PORTF|PORTG|RAMPZ|SFIOR|SPCR|SPDR|SPH|SPL|SPMCR|SPMCSR|SPSR|SREG|TCCR0|TCCR1A|TCCR1B|TCCR1C|TCCR2|TCCR3A|TCCR3B|TCCR3C|TCNT0|TCNT1H|TCNT1L|TCNT2|TCNT3H|TCNT3L|TIFR|TIMSK|TWAR|TWBR|TWCR|TWDR|TWSR|UBRR0H|UBRR0L|UBRR1H|UBRR1L|UBRRH|UBRRL|UCSR0A|UCSR0B|UCSR0C|UCSR1A|UCSR1B|UCSR1C|UCSRA|UCSRB|UCSRC|UDR|UDR0|UDR1|WDTCR|XDIV|XMCRA|XMCRB)$/',
'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/',
'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/',
),
5 =>
array (
),
6 =>
array (
),
7 =>
array (
),
8 =>
array (
),
9 => -1,
10 => -1,
11 =>
array (
),
12 => -1,
13 => -1,
),
0 =>
array (
0 =>
array (
),
),
1 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 =>
array (
'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/',
'registers' => '/^(ACSR|ADCH|ADCL|ADCSRA|ADMUX|ASSR|DDRA|DDRB|DDRC|DDRD|DDRE|DDRF|DDRG|EEARH|EEARL|EECR|EEDR|EICRA|EICRB|EIFR|EIMSK|ETIFR|ETIMSK|GICR|GIFR|ICR1H|ICR1L|ICR3H|ICR3L|MCUCR|MCUCSR|OCDR|OCR0|OCR1AH|OCR1AL|OCR1BH|OCR1BL|OCR1CH|OCR1CL|OCR2|OCR3AH|OCR3AL|OCR3BH|OCR3BL|OCR3CH|OCR3CL|OSCCAL|PINA|PINB|PINC|PIND|PINE|PINF|PING|PORTA|PORTB|PORTC|PORTD|PORTE|PORTF|PORTG|RAMPZ|SFIOR|SPCR|SPDR|SPH|SPL|SPMCR|SPMCSR|SPSR|SREG|TCCR0|TCCR1A|TCCR1B|TCCR1C|TCCR2|TCCR3A|TCCR3B|TCCR3C|TCNT0|TCNT1H|TCNT1L|TCNT2|TCNT3H|TCNT3L|TIFR|TIMSK|TWAR|TWBR|TWCR|TWDR|TWSR|UBRR0H|UBRR0L|UBRR1H|UBRR1L|UBRRH|UBRRL|UCSR0A|UCSR0B|UCSR0C|UCSR1A|UCSR1B|UCSR1C|UCSRA|UCSRB|UCSRC|UDR|UDR0|UDR1|WDTCR|XDIV|XMCRA|XMCRB)$/',
'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/',
'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/',
),
5 =>
array (
),
6 =>
array (
),
7 =>
array (
),
8 =>
array (
),
9 => -1,
10 => -1,
11 =>
array (
),
12 => -1,
13 => -1,
),
2 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 =>
array (
'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/',
'registers' => '/^(ACSR|ADCH|ADCL|ADCSRA|ADMUX|ASSR|DDRA|DDRB|DDRC|DDRD|DDRE|DDRF|DDRG|EEARH|EEARL|EECR|EEDR|EICRA|EICRB|EIFR|EIMSK|ETIFR|ETIMSK|GICR|GIFR|ICR1H|ICR1L|ICR3H|ICR3L|MCUCR|MCUCSR|OCDR|OCR0|OCR1AH|OCR1AL|OCR1BH|OCR1BL|OCR1CH|OCR1CL|OCR2|OCR3AH|OCR3AL|OCR3BH|OCR3BL|OCR3CH|OCR3CL|OSCCAL|PINA|PINB|PINC|PIND|PINE|PINF|PING|PORTA|PORTB|PORTC|PORTD|PORTE|PORTF|PORTG|RAMPZ|SFIOR|SPCR|SPDR|SPH|SPL|SPMCR|SPMCSR|SPSR|SREG|TCCR0|TCCR1A|TCCR1B|TCCR1C|TCCR2|TCCR3A|TCCR3B|TCCR3C|TCNT0|TCNT1H|TCNT1L|TCNT2|TCNT3H|TCNT3L|TIFR|TIMSK|TWAR|TWBR|TWCR|TWDR|TWSR|UBRR0H|UBRR0L|UBRR1H|UBRR1L|UBRRH|UBRRL|UCSR0A|UCSR0B|UCSR0C|UCSR1A|UCSR1B|UCSR1C|UCSRA|UCSRB|UCSRC|UDR|UDR0|UDR1|WDTCR|XDIV|XMCRA|XMCRB)$/',
'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/',
'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/',
),
5 =>
array (
),
6 =>
array (
),
7 =>
array (
),
8 =>
array (
),
9 => -1,
10 => -1,
11 =>
array (
),
12 => -1,
13 => -1,
),
3 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 =>
array (
'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/',
'registers' => '/^(ACSR|ADCH|ADCL|ADCSRA|ADMUX|ASSR|DDRA|DDRB|DDRC|DDRD|DDRE|DDRF|DDRG|EEARH|EEARL|EECR|EEDR|EICRA|EICRB|EIFR|EIMSK|ETIFR|ETIMSK|GICR|GIFR|ICR1H|ICR1L|ICR3H|ICR3L|MCUCR|MCUCSR|OCDR|OCR0|OCR1AH|OCR1AL|OCR1BH|OCR1BL|OCR1CH|OCR1CL|OCR2|OCR3AH|OCR3AL|OCR3BH|OCR3BL|OCR3CH|OCR3CL|OSCCAL|PINA|PINB|PINC|PIND|PINE|PINF|PING|PORTA|PORTB|PORTC|PORTD|PORTE|PORTF|PORTG|RAMPZ|SFIOR|SPCR|SPDR|SPH|SPL|SPMCR|SPMCSR|SPSR|SREG|TCCR0|TCCR1A|TCCR1B|TCCR1C|TCCR2|TCCR3A|TCCR3B|TCCR3C|TCNT0|TCNT1H|TCNT1L|TCNT2|TCNT3H|TCNT3L|TIFR|TIMSK|TWAR|TWBR|TWCR|TWDR|TWSR|UBRR0H|UBRR0L|UBRR1H|UBRR1L|UBRRH|UBRRL|UCSR0A|UCSR0B|UCSR0C|UCSR1A|UCSR1B|UCSR1C|UCSRA|UCSRB|UCSRC|UDR|UDR0|UDR1|WDTCR|XDIV|XMCRA|XMCRB)$/',
'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/',
'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/',
),
5 =>
array (
),
6 =>
array (
),
7 =>
array (
),
8 =>
array (
),
9 => -1,
10 => -1,
11 =>
array (
),
12 => -1,
13 => -1,
),
4 =>
array (
),
5 =>
array (
0 => -1,
1 => -1,
),
6 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 =>
array (
'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/',
'registers' => '/^(ACSR|ADCH|ADCL|ADCSRA|ADMUX|ASSR|DDRA|DDRB|DDRC|DDRD|DDRE|DDRF|DDRG|EEARH|EEARL|EECR|EEDR|EICRA|EICRB|EIFR|EIMSK|ETIFR|ETIMSK|GICR|GIFR|ICR1H|ICR1L|ICR3H|ICR3L|MCUCR|MCUCSR|OCDR|OCR0|OCR1AH|OCR1AL|OCR1BH|OCR1BL|OCR1CH|OCR1CL|OCR2|OCR3AH|OCR3AL|OCR3BH|OCR3BL|OCR3CH|OCR3CL|OSCCAL|PINA|PINB|PINC|PIND|PINE|PINF|PING|PORTA|PORTB|PORTC|PORTD|PORTE|PORTF|PORTG|RAMPZ|SFIOR|SPCR|SPDR|SPH|SPL|SPMCR|SPMCSR|SPSR|SREG|TCCR0|TCCR1A|TCCR1B|TCCR1C|TCCR2|TCCR3A|TCCR3B|TCCR3C|TCNT0|TCNT1H|TCNT1L|TCNT2|TCNT3H|TCNT3L|TIFR|TIMSK|TWAR|TWBR|TWCR|TWDR|TWSR|UBRR0H|UBRR0L|UBRR1H|UBRR1L|UBRRH|UBRRL|UCSR0A|UCSR0B|UCSR0C|UCSR1A|UCSR1B|UCSR1C|UCSRA|UCSRB|UCSRC|UDR|UDR0|UDR1|WDTCR|XDIV|XMCRA|XMCRB)$/',
'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/',
'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/',
),
4 =>
array (
),
5 =>
array (
),
6 =>
array (
),
7 =>
array (
),
8 => -1,
9 => -1,
),
7 =>
array (
0 =>
array (
),
),
8 =>
array (
0 =>
array (
),
),
);
$this->_parts = array (
0 =>
array (
0 => NULL,
),
1 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
),
2 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
),
3 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
),
4 =>
array (
),
5 =>
array (
0 => NULL,
1 => NULL,
),
6 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
),
7 =>
array (
0 => NULL,
),
8 =>
array (
0 => NULL,
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
),
0 =>
array (
0 => false,
),
1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
),
2 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
),
3 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
),
4 =>
array (
),
5 =>
array (
0 => false,
1 => false,
),
6 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
),
7 =>
array (
0 => false,
),
8 =>
array (
0 => false,
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
'reserved' => 'reserved',
'registers' => 'reserved',
'types' => 'types',
'Common Macros' => 'prepro',
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}

View file

@ -0,0 +1,891 @@
<?php
/**
* Auto-generated class. CPP syntax highlighting
*
*
* Thanks to Aaron Kalin for initial
* implementation of this highlighter
*
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: cpp.xml
* @author Aaron Kalin
* @author Andrey Demenev <demenev@gmail.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. CPP syntax highlighting
*
* @author Aaron Kalin
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: 0.7.0
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_CPP extends Text_Highlighter
{
var $_language = 'cpp';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_CPP($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/',
0 => '/((?i)\\\\)/',
1 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/',
2 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/',
3 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?mi)^[ \\t]*#include)|((?mii)^[ \\t]*#[ \\t]*[a-z]+)|((?i)\\d*\\.?\\d+)|((?i)\\/\\*)|((?i)\\/\\/.+)/',
4 => '//',
5 => '/((?i)")|((?i)<)/',
6 => '/((?i)")|((?i)\\{)|((?i)\\()|((?i)[a-z_]\\w*)|((?i)\\b0[xX][\\da-f]+)|((?i)\\b\\d\\d*|\\b0\\b)|((?i)\\b0[0-7]+)|((?i)\\b(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)\\/\\*)|((?i)\\/\\/.+)/',
7 => '/((?i)\\$\\w+\\s*:.+\\$)/',
8 => '/((?i)\\$\\w+\\s*:.+\\$)/',
);
$this->_counts = array (
-1 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 2,
9 => 0,
10 => 0,
11 => 0,
12 => 0,
13 => 0,
),
0 =>
array (
0 => 0,
),
1 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 2,
9 => 0,
10 => 0,
11 => 0,
12 => 0,
13 => 0,
),
2 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 2,
9 => 0,
10 => 0,
11 => 0,
12 => 0,
13 => 0,
),
3 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 2,
9 => 0,
10 => 0,
11 => 0,
12 => 0,
13 => 0,
),
4 =>
array (
),
5 =>
array (
0 => 0,
1 => 0,
),
6 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 2,
8 => 0,
9 => 0,
),
7 =>
array (
0 => 0,
),
8 =>
array (
0 => 0,
),
);
$this->_delim = array (
-1 =>
array (
0 => 'quotes',
1 => 'brackets',
2 => 'brackets',
3 => 'brackets',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
9 => 'prepro',
10 => 'prepro',
11 => '',
12 => 'mlcomment',
13 => 'comment',
),
0 =>
array (
0 => '',
),
1 =>
array (
0 => 'quotes',
1 => 'brackets',
2 => 'brackets',
3 => 'brackets',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
9 => 'prepro',
10 => 'prepro',
11 => '',
12 => 'mlcomment',
13 => 'comment',
),
2 =>
array (
0 => 'quotes',
1 => 'brackets',
2 => 'brackets',
3 => 'brackets',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
9 => 'prepro',
10 => 'prepro',
11 => '',
12 => 'mlcomment',
13 => 'comment',
),
3 =>
array (
0 => 'quotes',
1 => 'brackets',
2 => 'brackets',
3 => 'brackets',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
9 => 'prepro',
10 => 'prepro',
11 => '',
12 => 'mlcomment',
13 => 'comment',
),
4 =>
array (
),
5 =>
array (
0 => 'quotes',
1 => 'quotes',
),
6 =>
array (
0 => 'quotes',
1 => 'brackets',
2 => 'brackets',
3 => '',
4 => '',
5 => '',
6 => '',
7 => '',
8 => 'mlcomment',
9 => 'comment',
),
7 =>
array (
0 => '',
),
8 =>
array (
0 => '',
),
);
$this->_inner = array (
-1 =>
array (
0 => 'string',
1 => 'code',
2 => 'code',
3 => 'code',
4 => 'identifier',
5 => 'number',
6 => 'number',
7 => 'number',
8 => 'number',
9 => 'prepro',
10 => 'code',
11 => 'number',
12 => 'mlcomment',
13 => 'comment',
),
0 =>
array (
0 => 'special',
),
1 =>
array (
0 => 'string',
1 => 'code',
2 => 'code',
3 => 'code',
4 => 'identifier',
5 => 'number',
6 => 'number',
7 => 'number',
8 => 'number',
9 => 'prepro',
10 => 'code',
11 => 'number',
12 => 'mlcomment',
13 => 'comment',
),
2 =>
array (
0 => 'string',
1 => 'code',
2 => 'code',
3 => 'code',
4 => 'identifier',
5 => 'number',
6 => 'number',
7 => 'number',
8 => 'number',
9 => 'prepro',
10 => 'code',
11 => 'number',
12 => 'mlcomment',
13 => 'comment',
),
3 =>
array (
0 => 'string',
1 => 'code',
2 => 'code',
3 => 'code',
4 => 'identifier',
5 => 'number',
6 => 'number',
7 => 'number',
8 => 'number',
9 => 'prepro',
10 => 'code',
11 => 'number',
12 => 'mlcomment',
13 => 'comment',
),
4 =>
array (
),
5 =>
array (
0 => 'string',
1 => 'string',
),
6 =>
array (
0 => 'string',
1 => 'code',
2 => 'code',
3 => 'identifier',
4 => 'number',
5 => 'number',
6 => 'number',
7 => 'number',
8 => 'mlcomment',
9 => 'comment',
),
7 =>
array (
0 => 'inlinedoc',
),
8 =>
array (
0 => 'inlinedoc',
),
);
$this->_end = array (
0 => '/(?i)"/',
1 => '/(?i)\\}/',
2 => '/(?i)\\)/',
3 => '/(?i)\\]/',
4 => '/(?i)>/',
5 => '/(?mi)(?<!\\\\)$/',
6 => '/(?mi)(?<!\\\\)$/',
7 => '/(?i)\\*\\//',
8 => '/(?mi)$/',
);
$this->_states = array (
-1 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 => 5,
10 => 6,
11 => -1,
12 => 7,
13 => 8,
),
0 =>
array (
0 => -1,
),
1 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 => 5,
10 => 6,
11 => -1,
12 => 7,
13 => 8,
),
2 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 => 5,
10 => 6,
11 => -1,
12 => 7,
13 => 8,
),
3 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 => 5,
10 => 6,
11 => -1,
12 => 7,
13 => 8,
),
4 =>
array (
),
5 =>
array (
0 => 0,
1 => 4,
),
6 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => -1,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => 7,
9 => 8,
),
7 =>
array (
0 => -1,
),
8 =>
array (
0 => -1,
),
);
$this->_keywords = array (
-1 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 =>
array (
'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/',
'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/',
'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/',
),
5 =>
array (
),
6 =>
array (
),
7 =>
array (
),
8 =>
array (
),
9 => -1,
10 => -1,
11 =>
array (
),
12 => -1,
13 => -1,
),
0 =>
array (
0 =>
array (
),
),
1 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 =>
array (
'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/',
'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/',
'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/',
),
5 =>
array (
),
6 =>
array (
),
7 =>
array (
),
8 =>
array (
),
9 => -1,
10 => -1,
11 =>
array (
),
12 => -1,
13 => -1,
),
2 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 =>
array (
'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/',
'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/',
'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/',
),
5 =>
array (
),
6 =>
array (
),
7 =>
array (
),
8 =>
array (
),
9 => -1,
10 => -1,
11 =>
array (
),
12 => -1,
13 => -1,
),
3 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 =>
array (
'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/',
'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/',
'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/',
),
5 =>
array (
),
6 =>
array (
),
7 =>
array (
),
8 =>
array (
),
9 => -1,
10 => -1,
11 =>
array (
),
12 => -1,
13 => -1,
),
4 =>
array (
),
5 =>
array (
0 => -1,
1 => -1,
),
6 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 =>
array (
'reserved' => '/^(and|and_eq|asm|bitand|bitor|break|case|catch|compl|const_cast|continue|default|delete|do|dynamic_cast|else|for|fortran|friend|goto|if|new|not|not_eq|operator|or|or_eq|private|protected|public|reinterpret_cast|return|sizeof|static_cast|switch|this|throw|try|typeid|using|while|xor|xor_eq|false|true)$/',
'types' => '/^(auto|bool|char|class|const|double|enum|explicit|export|extern|float|inline|int|long|mutable|namespace|register|short|signed|static|struct|template|typedef|typename|union|unsigned|virtual|void|volatile|wchar_t)$/',
'Common Macros' => '/^(NULL|TRUE|FALSE|MAX|MIN|__LINE__|__DATA__|__FILE__|__TIME__|__STDC__)$/',
),
4 =>
array (
),
5 =>
array (
),
6 =>
array (
),
7 =>
array (
),
8 => -1,
9 => -1,
),
7 =>
array (
0 =>
array (
),
),
8 =>
array (
0 =>
array (
),
),
);
$this->_parts = array (
0 =>
array (
0 => NULL,
),
1 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
),
2 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
),
3 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
),
4 =>
array (
),
5 =>
array (
0 => NULL,
1 => NULL,
),
6 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
),
7 =>
array (
0 => NULL,
),
8 =>
array (
0 => NULL,
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
),
0 =>
array (
0 => false,
),
1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
),
2 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
),
3 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
),
4 =>
array (
),
5 =>
array (
0 => false,
1 => false,
),
6 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
),
7 =>
array (
0 => false,
),
8 =>
array (
0 => false,
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
'reserved' => 'reserved',
'types' => 'types',
'Common Macros' => 'prepro',
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}

View file

@ -0,0 +1,437 @@
<?php
/**
* Auto-generated class. CSS syntax highlighting
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: css.xml
* @author Andrey Demenev <demenev@gmail.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. CSS syntax highlighting
*
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: 0.7.0
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_CSS extends Text_Highlighter
{
var $_language = 'css';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_CSS($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?i)\\/\\*)|((?i)(@[a-z\\d]+))|((?i)(((\\.|#)?[a-z]+[a-z\\d\\-]*(?![a-z\\d\\-]))|(\\*))(?!\\s*:\\s*[\\s\\{]))|((?i):[a-z][a-z\\d\\-]*)|((?i)\\[)|((?i)\\{)/',
0 => '//',
1 => '/((?i)\\d*\\.?\\d+(\\%|em|ex|pc|pt|px|in|mm|cm))|((?i)\\d*\\.?\\d+)|((?i)[a-z][a-z\\d\\-]*)|((?i)#([\\da-f]{6}|[\\da-f]{3})\\b)/',
2 => '/((?i)\')|((?i)")|((?i)[\\w\\-\\:]+)/',
3 => '/((?i)\\/\\*)|((?i)[a-z][a-z\\d\\-]*\\s*:)|((?i)(((\\.|#)?[a-z]+[a-z\\d\\-]*(?![a-z\\d\\-]))|(\\*))(?!\\s*:\\s*[\\s\\{]))|((?i)\\{)/',
4 => '/((?i)\\\\[\\\\(\\\\)\\\\])/',
5 => '/((?i)\\\\\\\\|\\\\"|\\\\\'|\\\\`)/',
6 => '/((?i)\\\\\\\\|\\\\"|\\\\\'|\\\\`|\\\\t|\\\\n|\\\\r)/',
);
$this->_counts = array (
-1 =>
array (
0 => 0,
1 => 1,
2 => 4,
3 => 0,
4 => 0,
5 => 0,
),
0 =>
array (
),
1 =>
array (
0 => 1,
1 => 0,
2 => 0,
3 => 1,
),
2 =>
array (
0 => 0,
1 => 0,
2 => 0,
),
3 =>
array (
0 => 0,
1 => 0,
2 => 4,
3 => 0,
),
4 =>
array (
0 => 0,
),
5 =>
array (
0 => 0,
),
6 =>
array (
0 => 0,
),
);
$this->_delim = array (
-1 =>
array (
0 => 'comment',
1 => '',
2 => '',
3 => '',
4 => 'brackets',
5 => 'brackets',
),
0 =>
array (
),
1 =>
array (
0 => '',
1 => '',
2 => '',
3 => '',
),
2 =>
array (
0 => 'quotes',
1 => 'quotes',
2 => '',
),
3 =>
array (
0 => 'comment',
1 => 'reserved',
2 => '',
3 => 'brackets',
),
4 =>
array (
0 => '',
),
5 =>
array (
0 => '',
),
6 =>
array (
0 => '',
),
);
$this->_inner = array (
-1 =>
array (
0 => 'comment',
1 => 'var',
2 => 'identifier',
3 => 'special',
4 => 'code',
5 => 'code',
),
0 =>
array (
),
1 =>
array (
0 => 'number',
1 => 'number',
2 => 'code',
3 => 'var',
),
2 =>
array (
0 => 'string',
1 => 'string',
2 => 'var',
),
3 =>
array (
0 => 'comment',
1 => 'code',
2 => 'identifier',
3 => 'code',
),
4 =>
array (
0 => 'string',
),
5 =>
array (
0 => 'special',
),
6 =>
array (
0 => 'special',
),
);
$this->_end = array (
0 => '/(?i)\\*\\//',
1 => '/(?i)(?=;|\\})/',
2 => '/(?i)\\]/',
3 => '/(?i)\\}/',
4 => '/(?i)\\)/',
5 => '/(?i)\'/',
6 => '/(?i)"/',
);
$this->_states = array (
-1 =>
array (
0 => 0,
1 => -1,
2 => -1,
3 => -1,
4 => 2,
5 => 3,
),
0 =>
array (
),
1 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
),
2 =>
array (
0 => 5,
1 => 6,
2 => -1,
),
3 =>
array (
0 => 0,
1 => 1,
2 => -1,
3 => 3,
),
4 =>
array (
0 => -1,
),
5 =>
array (
0 => -1,
),
6 =>
array (
0 => -1,
),
);
$this->_keywords = array (
-1 =>
array (
0 => -1,
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
4 => -1,
5 => -1,
),
0 =>
array (
),
1 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
'propertyValue' => '/^((?i)far-left|left|center-left|center-right|center|far-right|right-side|right|behind|leftwards|rightwards|inherit|scroll|fixed|transparent|none|repeat-x|repeat-y|repeat|no-repeat|collapse|separate|auto|top|bottom|both|open-quote|close-quote|no-open-quote|no-close-quote|crosshair|default|pointer|move|e-resize|ne-resize|nw-resize|n-resize|se-resize|sw-resize|s-resize|text|wait|help|ltr|rtl|inline|block|list-item|run-in|compact|marker|table|inline-table|table-row-group|table-header-group|table-footer-group|table-row|table-column-group|table-column|table-cell|table-caption|below|level|above|higher|lower|show|hide|caption|icon|menu|message-box|small-caption|status-bar|normal|wider|narrower|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded|italic|oblique|small-caps|bold|bolder|lighter|inside|outside|disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-alpha|lower-latin|upper-alpha|upper-latin|hebrew|armenian|georgian|cjk-ideographic|hiragana|katakana|hiragana-iroha|katakana-iroha|crop|cross|invert|visible|hidden|always|avoid|x-low|low|medium|high|x-high|mix?|repeat?|static|relative|absolute|portrait|landscape|spell-out|once|digits|continuous|code|x-slow|slow|fast|x-fast|faster|slower|justify|underline|overline|line-through|blink|capitalize|uppercase|lowercase|embed|bidi-override|baseline|sub|super|text-top|middle|text-bottom|silent|x-soft|soft|loud|x-loud|pre|nowrap|serif|sans-serif|cursive|fantasy|monospace|empty|string|strict|loose|char|true|false|dotted|dashed|solid|double|groove|ridge|inset|outset|larger|smaller|xx-small|x-small|small|large|x-large|xx-large|all|newspaper|distribute|distribute-all-lines|distribute-center-last|inter-word|inter-ideograph|inter-cluster|kashida|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|keep-all|break-all|break-word|lr-tb|tb-rl|thin|thick|inline-block|w-resize|hand|distribute-letter|distribute-space|whitespace|male|female|child)$/',
'namedcolor' => '/^((?i)aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|purple|red|silver|teal|white|yellow|activeborder|activecaption|appworkspace|background|buttonface|buttonhighlight|buttonshadow|buttontext|captiontext|graytext|highlight|highlighttext|inactiveborder|inactivecaption|inactivecaptiontext|infobackground|infotext|menu|menutext|scrollbar|threeddarkshadow|threedface|threedhighlight|threedlightshadow|threedshadow|window|windowframe|windowtext)$/',
),
3 =>
array (
),
),
2 =>
array (
0 => -1,
1 => -1,
2 =>
array (
),
),
3 =>
array (
0 => -1,
1 => -1,
2 =>
array (
),
3 => -1,
),
4 =>
array (
0 =>
array (
),
),
5 =>
array (
0 =>
array (
),
),
6 =>
array (
0 =>
array (
),
),
);
$this->_parts = array (
0 =>
array (
),
1 =>
array (
0 =>
array (
1 => 'string',
),
1 => NULL,
2 => NULL,
3 => NULL,
),
2 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
),
3 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
),
4 =>
array (
0 => NULL,
),
5 =>
array (
0 => NULL,
),
6 =>
array (
0 => NULL,
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
),
0 =>
array (
),
1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
),
2 =>
array (
0 => false,
1 => false,
2 => false,
),
3 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
),
4 =>
array (
0 => false,
),
5 =>
array (
0 => false,
),
6 =>
array (
0 => false,
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
'propertyValue' => 'string',
'namedcolor' => 'var',
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}

View file

@ -0,0 +1,384 @@
<?php
/**
* Auto-generated class. DIFF syntax highlighting
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: : diff.xml,v 1.1 2007/06/03 02:35:28 ssttoo Exp
* @author Andrey Demenev <demenev@gmail.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. DIFF syntax highlighting
*
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_DIFF extends Text_Highlighter
{
var $_language = 'diff';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_DIFF($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?m)^\\\\\\sNo\\snewline.+$)|((?m)^\\-\\-\\-$)|((?m)^(diff\\s+\\-|Only\\s+|Index).*$)|((?m)^(\\-\\-\\-|\\+\\+\\+)\\s.+$)|((?m)^\\*.*$)|((?m)^\\+.*$)|((?m)^!.*$)|((?m)^\\<\\s.*$)|((?m)^\\>\\s.*$)|((?m)^\\d+(\\,\\d+)?[acd]\\d+(,\\d+)?$)|((?m)^\\-.*$)|((?m)^\\+.*$)|((?m)^@@.+@@$)|((?m)^d\\d+\\s\\d+$)|((?m)^a\\d+\\s\\d+$)|((?m)^(\\d+)(,\\d+)?(a)$)|((?m)^(\\d+)(,\\d+)?(c)$)|((?m)^(\\d+)(,\\d+)?(d)$)|((?m)^a(\\d+)(\\s\\d+)?$)|((?m)^c(\\d+)(\\s\\d+)?$)|((?m)^d(\\d+)(\\s\\d+)?$)/',
0 => '//',
1 => '//',
2 => '//',
3 => '//',
4 => '//',
);
$this->_counts = array (
-1 =>
array (
0 => 0,
1 => 0,
2 => 1,
3 => 1,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 0,
9 => 2,
10 => 0,
11 => 0,
12 => 0,
13 => 0,
14 => 0,
15 => 3,
16 => 3,
17 => 3,
18 => 2,
19 => 2,
20 => 2,
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
4 =>
array (
),
);
$this->_delim = array (
-1 =>
array (
0 => '',
1 => '',
2 => '',
3 => '',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
9 => '',
10 => '',
11 => '',
12 => '',
13 => '',
14 => 'code',
15 => 'code',
16 => 'code',
17 => '',
18 => 'code',
19 => 'code',
20 => '',
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
4 =>
array (
),
);
$this->_inner = array (
-1 =>
array (
0 => 'special',
1 => 'code',
2 => 'var',
3 => 'reserved',
4 => 'quotes',
5 => 'string',
6 => 'inlinedoc',
7 => 'quotes',
8 => 'string',
9 => 'code',
10 => 'quotes',
11 => 'string',
12 => 'code',
13 => 'code',
14 => 'var',
15 => 'string',
16 => 'inlinedoc',
17 => 'code',
18 => 'string',
19 => 'inlinedoc',
20 => 'code',
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
4 =>
array (
),
);
$this->_end = array (
0 => '/(?m)(?=^[ad]\\d+\\s\\d+)/',
1 => '/(?m)^(\\.)$/',
2 => '/(?m)^(\\.)$/',
3 => '/(?m)^(\\.)$/',
4 => '/(?m)^(\\.)$/',
);
$this->_states = array (
-1 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 => -1,
10 => -1,
11 => -1,
12 => -1,
13 => -1,
14 => 0,
15 => 1,
16 => 2,
17 => -1,
18 => 3,
19 => 4,
20 => -1,
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
4 =>
array (
),
);
$this->_keywords = array (
-1 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
4 =>
array (
),
5 =>
array (
),
6 =>
array (
),
7 =>
array (
),
8 =>
array (
),
9 =>
array (
),
10 =>
array (
),
11 =>
array (
),
12 =>
array (
),
13 =>
array (
),
14 => -1,
15 => -1,
16 => -1,
17 =>
array (
),
18 => -1,
19 => -1,
20 =>
array (
),
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
4 =>
array (
),
);
$this->_parts = array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
4 =>
array (
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
17 => false,
18 => false,
19 => false,
20 => false,
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
4 =>
array (
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
);
$this->_defClass = 'default';
$this->_checkDefines();
}
}

View file

@ -0,0 +1,426 @@
<?php
/**
* Auto-generated class. DTD syntax highlighting
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: : dtd.xml,v 1.1 2007/06/03 02:35:28 ssttoo Exp
* @author Andrey Demenev <demenev@gmail.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. DTD syntax highlighting
*
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_DTD extends Text_Highlighter
{
var $_language = 'dtd';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_DTD($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/(\\<!--)|(\\<\\!\\[)|((\\&|\\%)[\\w\\-\\.]+;)/',
0 => '//',
1 => '/(\\<!--)|(\\<)|(#PCDATA\\b)|((\\&|\\%)[\\w\\-\\.]+;)|((?i)[a-z][a-z\\d\\-\\,:]+)/',
2 => '/(\\<!--)|(\\()|(\')|(")|((?<=\\<)!(ENTITY|ATTLIST|ELEMENT|NOTATION)\\b)|(\\s(#(IMPLIED|REQUIRED|FIXED))|CDATA|ENTITY|NOTATION|NMTOKENS?|PUBLIC|SYSTEM\\b)|(#PCDATA\\b)|((\\&|\\%)[\\w\\-\\.]+;)|((?i)[a-z][a-z\\d\\-\\,:]+)/',
3 => '/(\\()|((\\&|\\%)[\\w\\-\\.]+;)|((?i)[a-z][a-z\\d\\-\\,:]+)/',
4 => '/((\\&|\\%)[\\w\\-\\.]+;)/',
5 => '/((\\&|\\%)[\\w\\-\\.]+;)/',
);
$this->_counts = array (
-1 =>
array (
0 => 0,
1 => 0,
2 => 1,
),
0 =>
array (
),
1 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 1,
4 => 0,
),
2 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 1,
5 => 2,
6 => 0,
7 => 1,
8 => 0,
),
3 =>
array (
0 => 0,
1 => 1,
2 => 0,
),
4 =>
array (
0 => 1,
),
5 =>
array (
0 => 1,
),
);
$this->_delim = array (
-1 =>
array (
0 => 'comment',
1 => 'brackets',
2 => '',
),
0 =>
array (
),
1 =>
array (
0 => 'comment',
1 => 'brackets',
2 => '',
3 => '',
4 => '',
),
2 =>
array (
0 => 'comment',
1 => 'brackets',
2 => 'quotes',
3 => 'quotes',
4 => '',
5 => '',
6 => '',
7 => '',
8 => '',
),
3 =>
array (
0 => 'brackets',
1 => '',
2 => '',
),
4 =>
array (
0 => '',
),
5 =>
array (
0 => '',
),
);
$this->_inner = array (
-1 =>
array (
0 => 'comment',
1 => 'code',
2 => 'special',
),
0 =>
array (
),
1 =>
array (
0 => 'comment',
1 => 'code',
2 => 'reserved',
3 => 'special',
4 => 'identifier',
),
2 =>
array (
0 => 'comment',
1 => 'code',
2 => 'string',
3 => 'string',
4 => 'var',
5 => 'reserved',
6 => 'reserved',
7 => 'special',
8 => 'identifier',
),
3 =>
array (
0 => 'code',
1 => 'special',
2 => 'identifier',
),
4 =>
array (
0 => 'special',
),
5 =>
array (
0 => 'special',
),
);
$this->_end = array (
0 => '/--\\>/',
1 => '/\\]\\]\\>/',
2 => '/\\>/',
3 => '/\\)/',
4 => '/\'/',
5 => '/"/',
);
$this->_states = array (
-1 =>
array (
0 => 0,
1 => 1,
2 => -1,
),
0 =>
array (
),
1 =>
array (
0 => 0,
1 => 2,
2 => -1,
3 => -1,
4 => -1,
),
2 =>
array (
0 => 0,
1 => 3,
2 => 4,
3 => 5,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
),
3 =>
array (
0 => 3,
1 => -1,
2 => -1,
),
4 =>
array (
0 => -1,
),
5 =>
array (
0 => -1,
),
);
$this->_keywords = array (
-1 =>
array (
0 => -1,
1 => -1,
2 =>
array (
),
),
0 =>
array (
),
1 =>
array (
0 => -1,
1 => -1,
2 =>
array (
),
3 =>
array (
),
4 =>
array (
),
),
2 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 =>
array (
),
5 =>
array (
),
6 =>
array (
),
7 =>
array (
),
8 =>
array (
),
),
3 =>
array (
0 => -1,
1 =>
array (
),
2 =>
array (
),
),
4 =>
array (
0 =>
array (
),
),
5 =>
array (
0 =>
array (
),
),
);
$this->_parts = array (
0 =>
array (
),
1 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
),
2 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
),
3 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
),
4 =>
array (
0 => NULL,
),
5 =>
array (
0 => NULL,
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => false,
),
0 =>
array (
),
1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
),
2 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
),
3 =>
array (
0 => false,
1 => false,
2 => false,
),
4 =>
array (
0 => false,
),
5 =>
array (
0 => false,
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}

View file

@ -0,0 +1,1291 @@
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* Syntax highlighter class generator
*
* To simplify the process of creating new syntax highlighters
* for different languages, {@link Text_Highlighter_Generator} class is
* provided. It takes highlighting rules from XML file and generates
* a code of a class inherited from {@link Text_Highlighter}.
*
* PHP versions 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @category Text
* @package Text_Highlighter
* @author Andrey Demenev <demenev@gmail.com>
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version CVS: $Id$
* @link http://pear.php.net/package/Text_Highlighter
*/
/**
* @ignore
*/
require_once 'PEAR.php';
require_once 'XML/Parser.php';
// {{{ error codes
define ('TEXT_HIGHLIGHTER_EMPTY_RE', 1);
define ('TEXT_HIGHLIGHTER_INVALID_RE', 2);
define ('TEXT_HIGHLIGHTER_EMPTY_OR_MISSING', 3);
define ('TEXT_HIGHLIGHTER_EMPTY', 4);
define ('TEXT_HIGHLIGHTER_REGION_REGION', 5);
define ('TEXT_HIGHLIGHTER_REGION_BLOCK', 6);
define ('TEXT_HIGHLIGHTER_BLOCK_REGION', 7);
define ('TEXT_HIGHLIGHTER_KEYWORD_BLOCK', 8);
define ('TEXT_HIGHLIGHTER_KEYWORD_INHERITS', 9);
define ('TEXT_HIGHLIGHTER_PARSE', 10);
define ('TEXT_HIGHLIGHTER_FILE_WRITE', 11);
define ('TEXT_HIGHLIGHTER_FILE_READ', 12);
// }}}
/**
* Syntax highliter class generator class
*
* This class is used to generate PHP classes
* from XML files with highlighting rules
*
* Usage example
* <code>
*require_once 'Text/Highlighter/Generator.php';
*$generator = new Text_Highlighter_Generator('php.xml');
*$generator->generate();
*$generator->saveCode('PHP.php');
* </code>
*
* A command line script <b>generate</b> is provided for
* class generation (installs in scripts/Text/Highlighter).
*
* @author Andrey Demenev <demenev@gmail.com>
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_Generator extends XML_Parser
{
// {{{ properties
/**
* Whether to do case folding.
* We have to declare it here, because XML_Parser
* sets case folding in constructor
*
* @var boolean
*/
var $folding = false;
/**
* Holds name of file with highlighting rules
*
* @var string
* @access private
*/
var $_syntaxFile;
/**
* Current element being processed
*
* @var array
* @access private
*/
var $_element;
/**
* List of regions
*
* @var array
* @access private
*/
var $_regions = array();
/**
* List of blocks
*
* @var array
* @access private
*/
var $_blocks = array();
/**
* List of keyword groups
*
* @var array
* @access private
*/
var $_keywords = array();
/**
* List of authors
*
* @var array
* @access private
*/
var $_authors = array();
/**
* Name of language
*
* @var string
* @access public
*/
var $language = '';
/**
* Generated code
*
* @var string
* @access private
*/
var $_code = '';
/**
* Default class
*
* @var string
* @access private
*/
var $_defClass = 'default';
/**
* Comment
*
* @var string
* @access private
*/
var $_comment = '';
/**
* Flag for comment processing
*
* @var boolean
* @access private
*/
var $_inComment = false;
/**
* Sorting order of current block/region
*
* @var integer
* @access private
*/
var $_blockOrder = 0;
/**
* Generation errors
*
* @var array
* @access private
*/
var $_errors;
// }}}
// {{{ constructor
/**
* PHP4 compatable constructor
*
* @param string $syntaxFile Name of XML file
* with syntax highlighting rules
*
* @access public
*/
function Text_Highlighter_Generator($syntaxFile = '')
{
return $this->__construct($syntaxFile);
}
/**
* Constructor
*
* @param string $syntaxFile Name of XML file
* with syntax highlighting rules
*
* @access public
*/
function __construct($syntaxFile = '')
{
XML_Parser::XML_Parser(null, 'func');
$this->_errors = array();
$this->_declareErrorMessages();
if ($syntaxFile) {
$this->setInputFile($syntaxFile);
}
}
// }}}
// {{{ _formatError
/**
* Format error message
*
* @param int $code error code
* @param string $params parameters
* @param string $fileName file name
* @param int $lineNo line number
* @return array
* @access public
*/
function _formatError($code, $params, $fileName, $lineNo)
{
$template = $this->_templates[$code];
$ret = call_user_func_array('sprintf', array_merge(array($template), $params));
if ($fileName) {
$ret = '[' . $fileName . '] ' . $ret;
}
if ($lineNo) {
$ret .= ' (line ' . $lineNo . ')';
}
return $ret;
}
// }}}
// {{{ declareErrorMessages
/**
* Set up error message templates
*
* @access private
*/
function _declareErrorMessages()
{
$this->_templates = array (
TEXT_HIGHLIGHTER_EMPTY_RE => 'Empty regular expression',
TEXT_HIGHLIGHTER_INVALID_RE => 'Invalid regular expression : %s',
TEXT_HIGHLIGHTER_EMPTY_OR_MISSING => 'Empty or missing %s',
TEXT_HIGHLIGHTER_EMPTY => 'Empty %s',
TEXT_HIGHLIGHTER_REGION_REGION => 'Region %s refers undefined region %s',
TEXT_HIGHLIGHTER_REGION_BLOCK => 'Region %s refers undefined block %s',
TEXT_HIGHLIGHTER_BLOCK_REGION => 'Block %s refers undefined region %s',
TEXT_HIGHLIGHTER_KEYWORD_BLOCK => 'Keyword group %s refers undefined block %s',
TEXT_HIGHLIGHTER_KEYWORD_INHERITS => 'Keyword group %s inherits undefined block %s',
TEXT_HIGHLIGHTER_PARSE => '%s',
TEXT_HIGHLIGHTER_FILE_WRITE => 'Error writing file %s',
TEXT_HIGHLIGHTER_FILE_READ => '%s'
);
}
// }}}
// {{{ setInputFile
/**
* Sets the input xml file to be parsed
*
* @param string Filename (full path)
* @return boolean
* @access public
*/
function setInputFile($file)
{
$this->_syntaxFile = $file;
$ret = parent::setInputFile($file);
if (PEAR::isError($ret)) {
$this->_error(TEXT_HIGHLIGHTER_FILE_READ, $ret->message);
return false;
}
return true;
}
// }}}
// {{{ generate
/**
* Generates class code
*
* @access public
*/
function generate()
{
$this->_regions = array();
$this->_blocks = array();
$this->_keywords = array();
$this->language = '';
$this->_code = '';
$this->_defClass = 'default';
$this->_comment = '';
$this->_inComment = false;
$this->_authors = array();
$this->_blockOrder = 0;
$this->_errors = array();
$ret = $this->parse();
if (PEAR::isError($ret)) {
$this->_error(TEXT_HIGHLIGHTER_PARSE, $ret->message);
return false;
}
return true;
}
// }}}
// {{{ getCode
/**
* Returns generated code as a string.
*
* @return string Generated code
* @access public
*/
function getCode()
{
return $this->_code;
}
// }}}
// {{{ saveCode
/**
* Saves generated class to file. Note that {@link Text_Highlighter::factory()}
* assumes that filename is uppercase (SQL.php, DTD.php, etc), and file
* is located in Text/Highlighter
*
* @param string $filename Name of file to write the code to
* @return boolean true on success, false on failure
* @access public
*/
function saveCode($filename)
{
$f = @fopen($filename, 'wb');
if (!$f) {
$this->_error(TEXT_HIGHLIGHTER_FILE_WRITE, array('outfile'=>$filename));
return false;
}
fwrite ($f, $this->_code);
fclose($f);
return true;
}
// }}}
// {{{ hasErrors
/**
* Reports if there were errors
*
* @return boolean
* @access public
*/
function hasErrors()
{
return count($this->_errors) > 0;
}
// }}}
// {{{ getErrors
/**
* Returns errors
*
* @return array
* @access public
*/
function getErrors()
{
return $this->_errors;
}
// }}}
// {{{ _sortBlocks
/**
* Sorts blocks
*
* @access private
*/
function _sortBlocks($b1, $b2) {
return $b1['order'] - $b2['order'];
}
// }}}
// {{{ _sortLookFor
/**
* Sort 'look for' list
* @return int
* @param string $b1
* @param string $b2
*/
function _sortLookFor($b1, $b2) {
$o1 = isset($this->_blocks[$b1]) ? $this->_blocks[$b1]['order'] : $this->_regions[$b1]['order'];
$o2 = isset($this->_blocks[$b2]) ? $this->_blocks[$b2]['order'] : $this->_regions[$b2]['order'];
return $o1 - $o2;
}
// }}}
// {{{ _makeRE
/**
* Adds delimiters and modifiers to regular expression if necessary
*
* @param string $text Original RE
* @return string Final RE
* @access private
*/
function _makeRE($text, $case = false)
{
if (!strlen($text)) {
$this->_error(TEXT_HIGHLIGHTER_EMPTY_RE);
}
if (!strlen($text) || $text{0} != '/') {
$text = '/' . $text . '/';
}
if (!$case) {
$text .= 'i';
}
$php_errormsg = '';
@preg_match($text, '');
if ($php_errormsg) {
$this->_error(TEXT_HIGHLIGHTER_INVALID_RE, $php_errormsg);
}
preg_match ('#^/(.+)/(.*)$#', $text, $m);
if (@$m[2]) {
$text = '(?' . $m[2] . ')' . $m[1];
} else {
$text = $m[1];
}
return $text;
}
// }}}
// {{{ _exportArray
/**
* Exports array as PHP code
*
* @param array $array
* @return string Code
* @access private
*/
function _exportArray($array)
{
$array = var_export($array, true);
return trim(preg_replace('~^(\s*)~m',' \1\1',$array));
}
// }}}
// {{{ _countSubpatterns
/**
* Find number of capturing suppaterns in regular expression
* @return int
* @param string $re Regular expression (without delimiters)
*/
function _countSubpatterns($re)
{
preg_match_all('/' . $re . '/', '', $m);
return count($m)-1;
}
// }}}
/**#@+
* @access private
* @param resource $xp XML parser resource
* @param string $elem XML element name
* @param array $attribs XML element attributes
*/
// {{{ xmltag_Default
/**
* start handler for <default> element
*/
function xmltag_Default($xp, $elem, $attribs)
{
$this->_aliasAttributes($attribs);
if (!isset($attribs['innerGroup']) || $attribs['innerGroup'] === '') {
$this->_error(TEXT_HIGHLIGHTER_EMPTY_OR_MISSING, 'innerGroup');
}
$this->_defClass = @$attribs['innerGroup'];
}
// }}}
// {{{ xmltag_Region
/**
* start handler for <region> element
*/
function xmltag_Region($xp, $elem, $attribs)
{
$this->_aliasAttributes($attribs);
if (!isset($attribs['name']) || $attribs['name'] === '') {
$this->_error(TEXT_HIGHLIGHTER_EMPTY_OR_MISSING, 'region name');
}
if (!isset($attribs['innerGroup']) || $attribs['innerGroup'] === '') {
$this->_error(TEXT_HIGHLIGHTER_EMPTY_OR_MISSING, 'innerGroup');
}
$this->_element = array('name' => $attribs['name']);
$this->_element['line'] = xml_get_current_line_number($this->parser);
if (isset($attribs['case'])) {
$this->_element['case'] = $attribs['case'] == 'yes';
} else {
$this->_element['case'] = $this->_case;
}
$this->_element['innerGroup'] = $attribs['innerGroup'];
$this->_element['delimGroup'] = isset($attribs['delimGroup']) ?
$attribs['delimGroup'] :
$attribs['innerGroup'];
$this->_element['start'] = $this->_makeRE(@$attribs['start'], $this->_element['case']);
$this->_element['end'] = $this->_makeRE(@$attribs['end'], $this->_element['case']);
$this->_element['contained'] = @$attribs['contained'] == 'yes';
$this->_element['never-contained'] = @$attribs['never-contained'] == 'yes';
$this->_element['remember'] = @$attribs['remember'] == 'yes';
if (isset($attribs['startBOL']) && $attribs['startBOL'] == 'yes') {
$this->_element['startBOL'] = true;
}
if (isset($attribs['endBOL']) && $attribs['endBOL'] == 'yes') {
$this->_element['endBOL'] = true;
}
if (isset($attribs['neverAfter'])) {
$this->_element['neverafter'] = $this->_makeRE($attribs['neverAfter']);
}
}
// }}}
// {{{ xmltag_Block
/**
* start handler for <block> element
*/
function xmltag_Block($xp, $elem, $attribs)
{
$this->_aliasAttributes($attribs);
if (!isset($attribs['name']) || $attribs['name'] === '') {
$this->_error(TEXT_HIGHLIGHTER_EMPTY_OR_MISSING, 'block name');
}
if (isset($attribs['innerGroup']) && $attribs['innerGroup'] === '') {
$this->_error(TEXT_HIGHLIGHTER_EMPTY, 'innerGroup');
}
$this->_element = array('name' => $attribs['name']);
$this->_element['line'] = xml_get_current_line_number($this->parser);
if (isset($attribs['case'])) {
$this->_element['case'] = $attribs['case'] == 'yes';
} else {
$this->_element['case'] = $this->_case;
}
if (isset($attribs['innerGroup'])) {
$this->_element['innerGroup'] = @$attribs['innerGroup'];
}
$this->_element['match'] = $this->_makeRE($attribs['match'], $this->_element['case']);
$this->_element['contained'] = @$attribs['contained'] == 'yes';
$this->_element['multiline'] = @$attribs['multiline'] == 'yes';
if (isset($attribs['BOL']) && $attribs['BOL'] == 'yes') {
$this->_element['BOL'] = true;
}
if (isset($attribs['neverAfter'])) {
$this->_element['neverafter'] = $this->_makeRE($attribs['neverAfter']);
}
}
// }}}
// {{{ cdataHandler
/**
* Character data handler. Used for comment
*/
function cdataHandler($xp, $cdata)
{
if ($this->_inComment) {
$this->_comment .= $cdata;
}
}
// }}}
// {{{ xmltag_Comment
/**
* start handler for <comment> element
*/
function xmltag_Comment($xp, $elem, $attribs)
{
$this->_comment = '';
$this->_inComment = true;
}
// }}}
// {{{ xmltag_PartGroup
/**
* start handler for <partgroup> element
*/
function xmltag_PartGroup($xp, $elem, $attribs)
{
$this->_aliasAttributes($attribs);
if (!isset($attribs['innerGroup']) || $attribs['innerGroup'] === '') {
$this->_error(TEXT_HIGHLIGHTER_EMPTY_OR_MISSING, 'innerGroup');
}
$this->_element['partClass'][$attribs['index']] = @$attribs['innerGroup'];
}
// }}}
// {{{ xmltag_PartClass
/**
* start handler for <partclass> element
*/
function xmltag_PartClass($xp, $elem, $attribs)
{
$this->xmltag_PartGroup($xp, $elem, $attribs);
}
// }}}
// {{{ xmltag_Keywords
/**
* start handler for <keywords> element
*/
function xmltag_Keywords($xp, $elem, $attribs)
{
$this->_aliasAttributes($attribs);
if (!isset($attribs['name']) || $attribs['name'] === '') {
$this->_error(TEXT_HIGHLIGHTER_EMPTY_OR_MISSING, 'keyword group name');
}
if (!isset($attribs['innerGroup']) || $attribs['innerGroup'] === '') {
$this->_error(TEXT_HIGHLIGHTER_EMPTY_OR_MISSING, 'innerGroup');
}
if (!isset($attribs['inherits']) || $attribs['inherits'] === '') {
$this->_error(TEXT_HIGHLIGHTER_EMPTY_OR_MISSING, 'inherits');
}
$this->_element = array('name'=>@$attribs['name']);
$this->_element['line'] = xml_get_current_line_number($this->parser);
$this->_element['innerGroup'] = @$attribs['innerGroup'];
if (isset($attribs['case'])) {
$this->_element['case'] = $attribs['case'] == 'yes';
} else {
$this->_element['case'] = $this->_case;
}
$this->_element['inherits'] = @$attribs['inherits'];
if (isset($attribs['otherwise'])) {
$this->_element['otherwise'] = $attribs['otherwise'];
}
if (isset($attribs['ifdef'])) {
$this->_element['ifdef'] = $attribs['ifdef'];
}
if (isset($attribs['ifndef'])) {
$this->_element['ifndef'] = $attribs['ifndef'];
}
}
// }}}
// {{{ xmltag_Keyword
/**
* start handler for <keyword> element
*/
function xmltag_Keyword($xp, $elem, $attribs)
{
if (!isset($attribs['match']) || $attribs['match'] === '') {
$this->_error(TEXT_HIGHLIGHTER_EMPTY_OR_MISSING, 'match');
}
$keyword = @$attribs['match'];
if (!$this->_element['case']) {
$keyword = strtolower($keyword);
}
$this->_element['match'][$keyword] = true;
}
// }}}
// {{{ xmltag_Contains
/**
* start handler for <contains> element
*/
function xmltag_Contains($xp, $elem, $attribs)
{
$this->_element['contains-all'] = @$attribs['all'] == 'yes';
if (isset($attribs['region'])) {
$this->_element['contains']['region'][$attribs['region']] =
xml_get_current_line_number($this->parser);
}
if (isset($attribs['block'])) {
$this->_element['contains']['block'][$attribs['block']] =
xml_get_current_line_number($this->parser);
}
}
// }}}
// {{{ xmltag_But
/**
* start handler for <but> element
*/
function xmltag_But($xp, $elem, $attribs)
{
if (isset($attribs['region'])) {
$this->_element['not-contains']['region'][$attribs['region']] = true;
}
if (isset($attribs['block'])) {
$this->_element['not-contains']['block'][$attribs['block']] = true;
}
}
// }}}
// {{{ xmltag_Onlyin
/**
* start handler for <onlyin> element
*/
function xmltag_Onlyin($xp, $elem, $attribs)
{
if (!isset($attribs['region']) || $attribs['region'] === '') {
$this->_error(TEXT_HIGHLIGHTER_EMPTY_OR_MISSING, 'region');
}
$this->_element['onlyin'][$attribs['region']] = xml_get_current_line_number($this->parser);
}
// }}}
// {{{ xmltag_Author
/**
* start handler for <author> element
*/
function xmltag_Author($xp, $elem, $attribs)
{
if (!isset($attribs['name']) || $attribs['name'] === '') {
$this->_error(TEXT_HIGHLIGHTER_EMPTY_OR_MISSING, 'author name');
}
$this->_authors[] = array(
'name' => @$attribs['name'],
'email' => (string)@$attribs['email']
);
}
// }}}
// {{{ xmltag_Highlight
/**
* start handler for <highlight> element
*/
function xmltag_Highlight($xp, $elem, $attribs)
{
if (!isset($attribs['lang']) || $attribs['lang'] === '') {
$this->_error(TEXT_HIGHLIGHTER_EMPTY_OR_MISSING, 'language name');
}
$this->_code = '';
$this->language = strtoupper(@$attribs['lang']);
$this->_case = @$attribs['case'] == 'yes';
}
// }}}
/**#@-*/
// {{{ _error
/**
* Add an error message
*
* @param integer $code Error code
* @param mixed $message Error message or array with error message parameters
* @param integer $lineNo Source code line number
* @access private
*/
function _error($code, $params = array(), $lineNo = 0)
{
if (!$lineNo && !empty($this->parser)) {
$lineNo = xml_get_current_line_number($this->parser);
}
$this->_errors[] = $this->_formatError($code, $params, $this->_syntaxFile, $lineNo);
}
// }}}
// {{{ _aliasAttributes
/**
* BC trick
*
* @param array $attrs attributes
*/
function _aliasAttributes(&$attrs)
{
if (isset($attrs['innerClass']) && !isset($attrs['innerGroup'])) {
$attrs['innerGroup'] = $attrs['innerClass'];
}
if (isset($attrs['delimClass']) && !isset($attrs['delimGroup'])) {
$attrs['delimGroup'] = $attrs['delimClass'];
}
if (isset($attrs['partClass']) && !isset($attrs['partGroup'])) {
$attrs['partGroup'] = $attrs['partClass'];
}
}
// }}}
/**#@+
* @access private
* @param resource $xp XML parser resource
* @param string $elem XML element name
*/
// {{{ xmltag_Comment_
/**
* end handler for <comment> element
*/
function xmltag_Comment_($xp, $elem)
{
$this->_inComment = false;
}
// }}}
// {{{ xmltag_Region_
/**
* end handler for <region> element
*/
function xmltag_Region_($xp, $elem)
{
$this->_element['type'] = 'region';
$this->_element['order'] = $this->_blockOrder ++;
$this->_regions[$this->_element['name']] = $this->_element;
}
// }}}
// {{{ xmltag_Keywords_
/**
* end handler for <keywords> element
*/
function xmltag_Keywords_($xp, $elem)
{
$this->_keywords[$this->_element['name']] = $this->_element;
}
// }}}
// {{{ xmltag_Block_
/**
* end handler for <block> element
*/
function xmltag_Block_($xp, $elem)
{
$this->_element['type'] = 'block';
$this->_element['order'] = $this->_blockOrder ++;
$this->_blocks[$this->_element['name']] = $this->_element;
}
// }}}
// {{{ xmltag_Highlight_
/**
* end handler for <highlight> element
*/
function xmltag_Highlight_($xp, $elem)
{
$conditions = array();
$toplevel = array();
foreach ($this->_blocks as $i => $current) {
if (!$current['contained'] && !isset($current['onlyin'])) {
$toplevel[] = $i;
}
foreach ((array)@$current['onlyin'] as $region => $lineNo) {
if (!isset($this->_regions[$region])) {
$this->_error(TEXT_HIGHLIGHTER_BLOCK_REGION,
array(
'block' => $current['name'],
'region' => $region
));
}
}
}
foreach ($this->_regions as $i=>$current) {
if (!$current['contained'] && !isset($current['onlyin'])) {
$toplevel[] = $i;
}
foreach ((array)@$current['contains']['region'] as $region => $lineNo) {
if (!isset($this->_regions[$region])) {
$this->_error(TEXT_HIGHLIGHTER_REGION_REGION,
array(
'region1' => $current['name'],
'region2' => $region
));
}
}
foreach ((array)@$current['contains']['block'] as $region => $lineNo) {
if (!isset($this->_blocks[$region])) {
$this->_error(TEXT_HIGHLIGHTER_REGION_BLOCK,
array(
'block' => $current['name'],
'region' => $region
));
}
}
foreach ((array)@$current['onlyin'] as $region => $lineNo) {
if (!isset($this->_regions[$region])) {
$this->_error(TEXT_HIGHLIGHTER_REGION_REGION,
array(
'region1' => $current['name'],
'region2' => $region
));
}
}
foreach ($this->_regions as $j => $region) {
if (isset($region['onlyin'])) {
$suits = isset($region['onlyin'][$current['name']]);
} elseif (isset($current['not-contains']['region'][$region['name']])) {
$suits = false;
} elseif (isset($current['contains']['region'][$region['name']])) {
$suits = true;
} else {
$suits = @$current['contains-all'] && @!$region['never-contained'];
}
if ($suits) {
$this->_regions[$i]['lookfor'][] = $j;
}
}
foreach ($this->_blocks as $j=>$region) {
if (isset($region['onlyin'])) {
$suits = isset($region['onlyin'][$current['name']]);
} elseif (isset($current['not-contains']['block'][$region['name']])) {
$suits = false;
} elseif (isset($current['contains']['block'][$region['name']])) {
$suits = true;
} else {
$suits = @$current['contains-all'] && @!$region['never-contained'];
}
if ($suits) {
$this->_regions[$i]['lookfor'][] = $j;
}
}
}
foreach ($this->_blocks as $i=>$current) {
unset ($this->_blocks[$i]['never-contained']);
unset ($this->_blocks[$i]['contained']);
unset ($this->_blocks[$i]['contains-all']);
unset ($this->_blocks[$i]['contains']);
unset ($this->_blocks[$i]['onlyin']);
unset ($this->_blocks[$i]['line']);
}
foreach ($this->_regions as $i=>$current) {
unset ($this->_regions[$i]['never-contained']);
unset ($this->_regions[$i]['contained']);
unset ($this->_regions[$i]['contains-all']);
unset ($this->_regions[$i]['contains']);
unset ($this->_regions[$i]['onlyin']);
unset ($this->_regions[$i]['line']);
}
foreach ($this->_keywords as $name => $keyword) {
if (isset($keyword['ifdef'])) {
$conditions[$keyword['ifdef']][] = array($name, true);
}
if (isset($keyword['ifndef'])) {
$conditions[$keyword['ifndef']][] = array($name, false);
}
unset($this->_keywords[$name]['line']);
if (!isset($this->_blocks[$keyword['inherits']])) {
$this->_error(TEXT_HIGHLIGHTER_KEYWORD_INHERITS,
array(
'keyword' => $keyword['name'],
'block' => $keyword['inherits']
));
}
if (isset($keyword['otherwise']) && !isset($this->_blocks[$keyword['otherwise']]) ) {
$this->_error(TEXT_HIGHLIGHTER_KEYWORD_BLOCK,
array(
'keyword' => $keyword['name'],
'block' => $keyword['inherits']
));
}
}
$syntax=array(
'keywords' => $this->_keywords,
'blocks' => array_merge($this->_blocks, $this->_regions),
'toplevel' => $toplevel,
);
uasort($syntax['blocks'], array(&$this, '_sortBlocks'));
foreach ($syntax['blocks'] as $name => $block) {
if ($block['type'] == 'block') {
continue;
}
if (is_array(@$syntax['blocks'][$name]['lookfor'])) {
usort($syntax['blocks'][$name]['lookfor'], array(&$this, '_sortLookFor'));
}
}
usort($syntax['toplevel'], array(&$this, '_sortLookFor'));
$syntax['case'] = $this->_case;
$this->_code = <<<CODE
<?php
/**
* Auto-generated class. {$this->language} syntax highlighting
CODE;
if ($this->_comment) {
$comment = preg_replace('~^~m',' * ',$this->_comment);
$this->_code .= "\n * \n" . $comment;
}
$this->_code .= <<<CODE
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: $this->_syntaxFile
CODE;
foreach ($this->_authors as $author) {
$this->_code .= ' * @author ' . $author['name'];
if ($author['email']) {
$this->_code .= ' <' . $author['email'] . '>';
}
$this->_code .= "\n";
}
$this->_code .= <<<CODE
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. {$this->language} syntax highlighting
*
CODE;
foreach ($this->_authors as $author) {
$this->_code .= ' * @author ' . $author['name'];
if ($author['email']) {
$this->_code .= ' <' . $author['email']. '>';
}
$this->_code .= "\n";
}
$this->_code .= <<<CODE
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_{$this->language} extends Text_Highlighter
{
CODE;
$this->_code .= 'var $_language = \'' . strtolower($this->language) . "';\n\n";
$array = var_export($syntax, true);
$array = trim(preg_replace('~^(\s*)~m',' \1\1',$array));
// \$this->_syntax = $array;
$this->_code .= <<<CODE
/**
* PHP4 Compatible Constructor
*
* @param array \$options
* @access public
*/
function Text_Highlighter_{$this->language}(\$options=array())
{
\$this->__construct(\$options);
}
/**
* Constructor
*
* @param array \$options
* @access public
*/
function __construct(\$options=array())
{
CODE;
$this->_code .= <<<CODE
\$this->_options = \$options;
CODE;
$states = array();
$i = 0;
foreach ($syntax['blocks'] as $name => $block) {
if ($block['type'] == 'region') {
$states[$name] = $i++;
}
}
$regs = array();
$counts = array();
$delim = array();
$inner = array();
$end = array();
$stat = array();
$keywords = array();
$parts = array();
$kwmap = array();
$subst = array();
$re = array();
$ce = array();
$rd = array();
$in = array();
$st = array();
$kw = array();
$sb = array();
foreach ($syntax['toplevel'] as $name) {
$block = $syntax['blocks'][$name];
if ($block['type'] == 'block') {
$kwm = array();
$re[] = '(' . $block['match'] . ')';
$ce[] = $this->_countSubpatterns($block['match']);
$rd[] = '';
$sb[] = false;;
$st[] = -1;
foreach ($syntax['keywords'] as $kwname => $kwgroup) {
if ($kwgroup['inherits'] != $name) {
continue;
}
$gre = implode('|', array_keys($kwgroup['match']));
if (!$kwgroup['case']) {
$gre = '(?i)' . $gre;
}
$kwm[$kwname][] = $gre;
$kwmap[$kwname] = $kwgroup['innerGroup'];
}
foreach ($kwm as $g => $ma) {
$kwm[$g] = '/^(' . implode(')|(', $ma) . ')$/';
}
$kw[] = $kwm;
} else {
$kw[] = -1;
$re[] = '(' . $block['start'] . ')';
$ce[] = $this->_countSubpatterns($block['start']);
$rd[] = $block['delimGroup'];
$st[] = $states[$name];
$sb[] = $block['remember'];
}
$in[] = $block['innerGroup'];
}
$re = implode('|', $re);
$regs[-1] = '/' . $re . '/';
$counts[-1] = $ce;
$delim[-1] = $rd;
$inner[-1] = $in;
$stat[-1] = $st;
$keywords[-1] = $kw;
$subst[-1] = $sb;
foreach ($syntax['blocks'] as $ablock) {
if ($ablock['type'] != 'region') {
continue;
}
$end[] = '/' . $ablock['end'] . '/';
$re = array();
$ce = array();
$rd = array();
$in = array();
$st = array();
$kw = array();
$pc = array();
$sb = array();
foreach ((array)@$ablock['lookfor'] as $name) {
$block = $syntax['blocks'][$name];
if (isset($block['partClass'])) {
$pc[] = $block['partClass'];
} else {
$pc[] = null;
}
if ($block['type'] == 'block') {
$kwm = array();;
$re[] = '(' . $block['match'] . ')';
$ce[] = $this->_countSubpatterns($block['match']);
$rd[] = '';
$sb[] = false;
$st[] = -1;
foreach ($syntax['keywords'] as $kwname => $kwgroup) {
if ($kwgroup['inherits'] != $name) {
continue;
}
$gre = implode('|', array_keys($kwgroup['match']));
if (!$kwgroup['case']) {
$gre = '(?i)' . $gre;
}
$kwm[$kwname][] = $gre;
$kwmap[$kwname] = $kwgroup['innerGroup'];
}
foreach ($kwm as $g => $ma) {
$kwm[$g] = '/^(' . implode(')|(', $ma) . ')$/';
}
$kw[] = $kwm;
} else {
$sb[] = $block['remember'];
$kw[] = -1;
$re[] = '(' . $block['start'] . ')';
$ce[] = $this->_countSubpatterns($block['start']);
$rd[] = $block['delimGroup'];
$st[] = $states[$name];
}
$in[] = $block['innerGroup'];
}
$re = implode('|', $re);
$regs[] = '/' . $re . '/';
$counts[] = $ce;
$delim[] = $rd;
$inner[] = $in;
$stat[] = $st;
$keywords[] = $kw;
$parts[] = $pc;
$subst[] = $sb;
}
$this->_code .= "\n \$this->_regs = " . $this->_exportArray($regs);
$this->_code .= ";\n \$this->_counts = " .$this->_exportArray($counts);
$this->_code .= ";\n \$this->_delim = " .$this->_exportArray($delim);
$this->_code .= ";\n \$this->_inner = " .$this->_exportArray($inner);
$this->_code .= ";\n \$this->_end = " .$this->_exportArray($end);
$this->_code .= ";\n \$this->_states = " .$this->_exportArray($stat);
$this->_code .= ";\n \$this->_keywords = " .$this->_exportArray($keywords);
$this->_code .= ";\n \$this->_parts = " .$this->_exportArray($parts);
$this->_code .= ";\n \$this->_subst = " .$this->_exportArray($subst);
$this->_code .= ";\n \$this->_conditions = " .$this->_exportArray($conditions);
$this->_code .= ";\n \$this->_kwmap = " .$this->_exportArray($kwmap);
$this->_code .= ";\n \$this->_defClass = '" .$this->_defClass . '\'';
$this->_code .= <<<CODE
;
\$this->_checkDefines();
}
}
CODE;
}
// }}}
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* c-hanging-comment-ender-p: nil
* End:
*/
?>

View file

@ -0,0 +1,234 @@
<?php
/**
* Auto-generated class. HTML syntax highlighting
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: : html.xml,v 1.1 2007/06/03 02:35:28 ssttoo Exp
* @author Andrey Demenev <demenev@gmail.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. HTML syntax highlighting
*
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_HTML extends Text_Highlighter
{
var $_language = 'html';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_HTML($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?i)\\<!--)|((?i)\\<[\\?\\/]?)|((?i)(&)[\\w\\-\\.]+;)/',
0 => '//',
1 => '/((?i)(?<=[\\<\\/?])[\\w\\-\\:]+)|((?i)[\\w\\-\\:]+)|((?i)")/',
2 => '/((?i)(&)[\\w\\-\\.]+;)/',
);
$this->_counts = array (
-1 =>
array (
0 => 0,
1 => 0,
2 => 1,
),
0 =>
array (
),
1 =>
array (
0 => 0,
1 => 0,
2 => 0,
),
2 =>
array (
0 => 1,
),
);
$this->_delim = array (
-1 =>
array (
0 => 'comment',
1 => 'brackets',
2 => '',
),
0 =>
array (
),
1 =>
array (
0 => '',
1 => '',
2 => 'quotes',
),
2 =>
array (
0 => '',
),
);
$this->_inner = array (
-1 =>
array (
0 => 'comment',
1 => 'code',
2 => 'special',
),
0 =>
array (
),
1 =>
array (
0 => 'reserved',
1 => 'var',
2 => 'string',
),
2 =>
array (
0 => 'special',
),
);
$this->_end = array (
0 => '/(?i)--\\>/',
1 => '/(?i)[\\/\\?]?\\>/',
2 => '/(?i)"/',
);
$this->_states = array (
-1 =>
array (
0 => 0,
1 => 1,
2 => -1,
),
0 =>
array (
),
1 =>
array (
0 => -1,
1 => -1,
2 => 2,
),
2 =>
array (
0 => -1,
),
);
$this->_keywords = array (
-1 =>
array (
0 => -1,
1 => -1,
2 =>
array (
),
),
0 =>
array (
),
1 =>
array (
0 =>
array (
),
1 =>
array (
),
2 => -1,
),
2 =>
array (
0 =>
array (
),
),
);
$this->_parts = array (
0 =>
array (
),
1 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
),
2 =>
array (
0 => NULL,
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => false,
),
0 =>
array (
),
1 =>
array (
0 => false,
1 => false,
2 => false,
),
2 =>
array (
0 => false,
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,631 @@
<?php
/**
* Auto-generated class. JAVASCRIPT syntax highlighting
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: javascript.xml
* @author Andrey Demenev <demenev@gmail.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. JAVASCRIPT syntax highlighting
*
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: 0.7.0
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_JAVASCRIPT extends Text_Highlighter
{
var $_language = 'javascript';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_JAVASCRIPT($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)\\/\\*)|((?i)")|((?i)\')|((?i)\\/\\/)|((?i)[a-z_]\\w*)|((?i)0x\\d*|\\d*\\.?\\d+)/',
0 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)\\/\\*)|((?i)")|((?i)\')|((?i)\\/\\/)|((?i)[a-z_]\\w*)|((?i)0x\\d*|\\d*\\.?\\d+)/',
1 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)\\/\\*)|((?i)")|((?i)\')|((?i)\\/\\/)|((?i)[a-z_]\\w*)|((?i)0x\\d*|\\d*\\.?\\d+)/',
2 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)\\/\\*)|((?i)")|((?i)\')|((?i)\\/\\/)|((?i)[a-z_]\\w*)|((?i)0x\\d*|\\d*\\.?\\d+)/',
3 => '/((?i)((https?|ftp):\\/\\/[\\w\\?\\.\\-\\&=\\/%+]+)|(^|[\\s,!?])www\\.\\w+\\.\\w+[\\w\\?\\.\\&=\\/%+]*)|((?i)\\w+[\\.\\w\\-]+@(\\w+[\\.\\w\\-])+)|((?i)\\b(note|fixme):)|((?i)\\$\\w+:.+\\$)/',
4 => '/((?i)\\\\\\\\|\\\\"|\\\\\'|\\\\`|\\\\t|\\\\n|\\\\r)/',
5 => '/((?i)\\\\\\\\|\\\\"|\\\\\'|\\\\`)/',
6 => '/((?i)((https?|ftp):\\/\\/[\\w\\?\\.\\-\\&=\\/%+]+)|(^|[\\s,!?])www\\.\\w+\\.\\w+[\\w\\?\\.\\&=\\/%+]*)|((?i)\\w+[\\.\\w\\-]+@(\\w+[\\.\\w\\-])+)|((?i)\\b(note|fixme):)|((?i)\\$\\w+:.+\\$)/',
);
$this->_counts = array (
-1 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 0,
),
0 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 0,
),
1 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 0,
),
2 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 0,
),
3 =>
array (
0 => 3,
1 => 1,
2 => 1,
3 => 0,
),
4 =>
array (
0 => 0,
),
5 =>
array (
0 => 0,
),
6 =>
array (
0 => 3,
1 => 1,
2 => 1,
3 => 0,
),
);
$this->_delim = array (
-1 =>
array (
0 => 'brackets',
1 => 'brackets',
2 => 'brackets',
3 => 'comment',
4 => 'quotes',
5 => 'quotes',
6 => 'comment',
7 => '',
8 => '',
),
0 =>
array (
0 => 'brackets',
1 => 'brackets',
2 => 'brackets',
3 => 'comment',
4 => 'quotes',
5 => 'quotes',
6 => 'comment',
7 => '',
8 => '',
),
1 =>
array (
0 => 'brackets',
1 => 'brackets',
2 => 'brackets',
3 => 'comment',
4 => 'quotes',
5 => 'quotes',
6 => 'comment',
7 => '',
8 => '',
),
2 =>
array (
0 => 'brackets',
1 => 'brackets',
2 => 'brackets',
3 => 'comment',
4 => 'quotes',
5 => 'quotes',
6 => 'comment',
7 => '',
8 => '',
),
3 =>
array (
0 => '',
1 => '',
2 => '',
3 => '',
),
4 =>
array (
0 => '',
),
5 =>
array (
0 => '',
),
6 =>
array (
0 => '',
1 => '',
2 => '',
3 => '',
),
);
$this->_inner = array (
-1 =>
array (
0 => 'code',
1 => 'code',
2 => 'code',
3 => 'comment',
4 => 'string',
5 => 'string',
6 => 'comment',
7 => 'identifier',
8 => 'number',
),
0 =>
array (
0 => 'code',
1 => 'code',
2 => 'code',
3 => 'comment',
4 => 'string',
5 => 'string',
6 => 'comment',
7 => 'identifier',
8 => 'number',
),
1 =>
array (
0 => 'code',
1 => 'code',
2 => 'code',
3 => 'comment',
4 => 'string',
5 => 'string',
6 => 'comment',
7 => 'identifier',
8 => 'number',
),
2 =>
array (
0 => 'code',
1 => 'code',
2 => 'code',
3 => 'comment',
4 => 'string',
5 => 'string',
6 => 'comment',
7 => 'identifier',
8 => 'number',
),
3 =>
array (
0 => 'url',
1 => 'url',
2 => 'inlinedoc',
3 => 'inlinedoc',
),
4 =>
array (
0 => 'special',
),
5 =>
array (
0 => 'special',
),
6 =>
array (
0 => 'url',
1 => 'url',
2 => 'inlinedoc',
3 => 'inlinedoc',
),
);
$this->_end = array (
0 => '/(?i)\\}/',
1 => '/(?i)\\)/',
2 => '/(?i)\\]/',
3 => '/(?i)\\*\\//',
4 => '/(?i)"/',
5 => '/(?i)\'/',
6 => '/(?mi)$/',
);
$this->_states = array (
-1 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => 5,
6 => 6,
7 => -1,
8 => -1,
),
0 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => 5,
6 => 6,
7 => -1,
8 => -1,
),
1 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => 5,
6 => 6,
7 => -1,
8 => -1,
),
2 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => 5,
6 => 6,
7 => -1,
8 => -1,
),
3 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
),
4 =>
array (
0 => -1,
),
5 =>
array (
0 => -1,
),
6 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
),
);
$this->_keywords = array (
-1 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 => -1,
6 => -1,
7 =>
array (
'builtin' => '/^(String|Array|RegExp|Function|Math|Number|Date|Image|window|document|navigator|onAbort|onBlur|onChange|onClick|onDblClick|onDragDrop|onError|onFocus|onKeyDown|onKeyPress|onKeyUp|onLoad|onMouseDown|onMouseOver|onMouseOut|onMouseMove|onMouseUp|onMove|onReset|onResize|onSelect|onSubmit|onUnload)$/',
'reserved' => '/^(break|continue|do|while|export|for|in|if|else|import|return|label|switch|case|var|with|delete|new|this|typeof|void|abstract|boolean|byte|catch|char|class|const|debugger|default|double|enum|extends|false|final|finally|float|function|implements|goto|instanceof|int|interface|long|native|null|package|private|protected|public|short|static|super|synchronized|throw|throws|transient|true|try|volatile)$/',
),
8 =>
array (
),
),
0 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 => -1,
6 => -1,
7 =>
array (
'builtin' => '/^(String|Array|RegExp|Function|Math|Number|Date|Image|window|document|navigator|onAbort|onBlur|onChange|onClick|onDblClick|onDragDrop|onError|onFocus|onKeyDown|onKeyPress|onKeyUp|onLoad|onMouseDown|onMouseOver|onMouseOut|onMouseMove|onMouseUp|onMove|onReset|onResize|onSelect|onSubmit|onUnload)$/',
'reserved' => '/^(break|continue|do|while|export|for|in|if|else|import|return|label|switch|case|var|with|delete|new|this|typeof|void|abstract|boolean|byte|catch|char|class|const|debugger|default|double|enum|extends|false|final|finally|float|function|implements|goto|instanceof|int|interface|long|native|null|package|private|protected|public|short|static|super|synchronized|throw|throws|transient|true|try|volatile)$/',
),
8 =>
array (
),
),
1 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 => -1,
6 => -1,
7 =>
array (
'builtin' => '/^(String|Array|RegExp|Function|Math|Number|Date|Image|window|document|navigator|onAbort|onBlur|onChange|onClick|onDblClick|onDragDrop|onError|onFocus|onKeyDown|onKeyPress|onKeyUp|onLoad|onMouseDown|onMouseOver|onMouseOut|onMouseMove|onMouseUp|onMove|onReset|onResize|onSelect|onSubmit|onUnload)$/',
'reserved' => '/^(break|continue|do|while|export|for|in|if|else|import|return|label|switch|case|var|with|delete|new|this|typeof|void|abstract|boolean|byte|catch|char|class|const|debugger|default|double|enum|extends|false|final|finally|float|function|implements|goto|instanceof|int|interface|long|native|null|package|private|protected|public|short|static|super|synchronized|throw|throws|transient|true|try|volatile)$/',
),
8 =>
array (
),
),
2 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 => -1,
6 => -1,
7 =>
array (
'builtin' => '/^(String|Array|RegExp|Function|Math|Number|Date|Image|window|document|navigator|onAbort|onBlur|onChange|onClick|onDblClick|onDragDrop|onError|onFocus|onKeyDown|onKeyPress|onKeyUp|onLoad|onMouseDown|onMouseOver|onMouseOut|onMouseMove|onMouseUp|onMove|onReset|onResize|onSelect|onSubmit|onUnload)$/',
'reserved' => '/^(break|continue|do|while|export|for|in|if|else|import|return|label|switch|case|var|with|delete|new|this|typeof|void|abstract|boolean|byte|catch|char|class|const|debugger|default|double|enum|extends|false|final|finally|float|function|implements|goto|instanceof|int|interface|long|native|null|package|private|protected|public|short|static|super|synchronized|throw|throws|transient|true|try|volatile)$/',
),
8 =>
array (
),
),
3 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
),
4 =>
array (
0 =>
array (
),
),
5 =>
array (
0 =>
array (
),
),
6 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
),
);
$this->_parts = array (
0 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
),
1 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
),
2 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
),
3 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
),
4 =>
array (
0 => NULL,
),
5 =>
array (
0 => NULL,
),
6 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
),
0 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
),
1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
),
2 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
),
3 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
),
4 =>
array (
0 => false,
),
5 =>
array (
0 => false,
),
6 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
'builtin' => 'builtin',
'reserved' => 'reserved',
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}

View file

@ -0,0 +1,434 @@
<?php
/**
* Auto-generated class. MYSQL syntax highlighting
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: : mysql.xml,v 1.1 2007/06/03 02:35:28 ssttoo Exp
* @author Andrey Demenev <demenev@gmail.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. MYSQL syntax highlighting
*
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_MYSQL extends Text_Highlighter
{
var $_language = 'mysql';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_MYSQL($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?i)`)|((?i)\\/\\*)|((?i)(#|--\\s).*)|((?i)[a-z_]\\w*(?=\\s*\\())|((?i)[a-z_]\\w*)|((?i)")|((?i)\\()|((?i)\')|((?i)((\\d+|((\\d*\\.\\d+)|(\\d+\\.\\d*)))[eE][+-]?\\d+))|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)\\d+l?|\\b0l?\\b)|((?i)0[xX][\\da-f]+l?)/',
0 => '//',
1 => '//',
2 => '/((?i)\\\\.)/',
3 => '/((?i)`)|((?i)\\/\\*)|((?i)(#|--\\s).*)|((?i)[a-z_]\\w*(?=\\s*\\())|((?i)[a-z_]\\w*)|((?i)")|((?i)\\()|((?i)\')|((?i)((\\d+|((\\d*\\.\\d+)|(\\d+\\.\\d*)))[eE][+-]?\\d+))|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)\\d+l?|\\b0l?\\b)|((?i)0[xX][\\da-f]+l?)/',
4 => '/((?i)\\\\.)/',
);
$this->_counts = array (
-1 =>
array (
0 => 0,
1 => 0,
2 => 1,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 5,
9 => 2,
10 => 0,
11 => 0,
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => 0,
),
3 =>
array (
0 => 0,
1 => 0,
2 => 1,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 5,
9 => 2,
10 => 0,
11 => 0,
),
4 =>
array (
0 => 0,
),
);
$this->_delim = array (
-1 =>
array (
0 => 'quotes',
1 => 'comment',
2 => '',
3 => '',
4 => '',
5 => 'quotes',
6 => 'brackets',
7 => 'quotes',
8 => '',
9 => '',
10 => '',
11 => '',
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => '',
),
3 =>
array (
0 => 'quotes',
1 => 'comment',
2 => '',
3 => '',
4 => '',
5 => 'quotes',
6 => 'brackets',
7 => 'quotes',
8 => '',
9 => '',
10 => '',
11 => '',
),
4 =>
array (
0 => '',
),
);
$this->_inner = array (
-1 =>
array (
0 => 'identifier',
1 => 'comment',
2 => 'comment',
3 => 'identifier',
4 => 'identifier',
5 => 'string',
6 => 'code',
7 => 'string',
8 => 'number',
9 => 'number',
10 => 'number',
11 => 'number',
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => 'special',
),
3 =>
array (
0 => 'identifier',
1 => 'comment',
2 => 'comment',
3 => 'identifier',
4 => 'identifier',
5 => 'string',
6 => 'code',
7 => 'string',
8 => 'number',
9 => 'number',
10 => 'number',
11 => 'number',
),
4 =>
array (
0 => 'special',
),
);
$this->_end = array (
0 => '/(?i)`/',
1 => '/(?i)\\*\\//',
2 => '/(?i)"/',
3 => '/(?i)\\)/',
4 => '/(?i)\'/',
);
$this->_states = array (
-1 =>
array (
0 => 0,
1 => 1,
2 => -1,
3 => -1,
4 => -1,
5 => 2,
6 => 3,
7 => 4,
8 => -1,
9 => -1,
10 => -1,
11 => -1,
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => -1,
),
3 =>
array (
0 => 0,
1 => 1,
2 => -1,
3 => -1,
4 => -1,
5 => 2,
6 => 3,
7 => 4,
8 => -1,
9 => -1,
10 => -1,
11 => -1,
),
4 =>
array (
0 => -1,
),
);
$this->_keywords = array (
-1 =>
array (
0 => -1,
1 => -1,
2 =>
array (
),
3 =>
array (
'function' => '/^((?i)abs|acos|adddate|ascii|asin|atan|atan2|avg|benchmark|bin|ceiling|char|coalesce|concat|conv|cos|cot|count|curdate|curtime|database|dayname|dayofmonth|dayofweek|dayofyear|decode|degrees|elt|encode|encrypt|exp|extract|field|floor|format|greatest|hex|hour|if|ifnull|insert|instr|interval|isnull|lcase|least|left|length|locate|log|log10|lower|lpad|ltrim|max|md5|mid|min|minute|mod|month|monthname|now|nullif|oct|ord|password|pi|position|pow|power|prepare|quarter|radians|rand|repeat|replace|reverse|right|round|rpad|rtrim|second|sign|sin|soundex|space|sqrt|std|stddev|strcmp|subdate|substring|sum|sysdate|tan|trim|truncate|ucase|upper|user|version|week|weekday|year)$/',
),
4 =>
array (
'reserved' => '/^((?i)action|add|aggregate|all|alter|after|and|as|asc|avg|avg_row_length|auto_increment|between|bigint|bit|binary|blob|bool|both|by|cascade|case|char|character|change|check|checksum|column|columns|comment|constraint|create|cross|current_date|current_time|current_timestamp|data|database|databases|date|datetime|day|day_hour|day_minute|day_second|dayofmonth|dayofweek|dayofyear|dec|decimal|default|delayed|delay_key_write|delete|desc|describe|distinct|distinctrow|double|drop|end|else|escape|escaped|enclosed|enum|explain|exists|fields|file|first|float|float4|float8|flush|foreign|from|for|full|function|global|grant|grants|group|having|heap|high_priority|hour|hour_minute|hour_second|hosts|identified|ignore|in|index|infile|inner|insert|insert_id|int|integer|interval|int1|int2|int3|int4|int8|into|if|is|isam|join|key|keys|kill|last_insert_id|leading|left|length|like|lines|limit|load|local|lock|logs|long|longblob|longtext|low_priority|max|max_rows|match|mediumblob|mediumtext|mediumint|middleint|min_rows|minute|minute_second|modify|month|monthname|myisam|natural|numeric|no|not|null|on|optimize|option|optionally|or|order|outer|outfile|pack_keys|partial|password|precision|primary|procedure|process|processlist|privileges|read|real|references|reload|regexp|rename|replace|restrict|returns|revoke|rlike|row|rows|second|select|set|show|shutdown|smallint|soname|sql_big_tables|sql_big_selects|sql_low_priority_updates|sql_log_off|sql_log_update|sql_select_limit|sql_small_result|sql_big_result|sql_warnings|straight_join|starting|status|string|table|tables|temporary|terminated|text|then|time|timestamp|tinyblob|tinytext|tinyint|trailing|to|type|use|using|unique|unlock|unsigned|update|usage|values|varchar|variables|varying|varbinary|with|write|when|where|year|year_month|zerofill)$/',
),
5 => -1,
6 => -1,
7 => -1,
8 =>
array (
),
9 =>
array (
),
10 =>
array (
),
11 =>
array (
),
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 =>
array (
),
),
3 =>
array (
0 => -1,
1 => -1,
2 =>
array (
),
3 =>
array (
'function' => '/^((?i)abs|acos|adddate|ascii|asin|atan|atan2|avg|benchmark|bin|ceiling|char|coalesce|concat|conv|cos|cot|count|curdate|curtime|database|dayname|dayofmonth|dayofweek|dayofyear|decode|degrees|elt|encode|encrypt|exp|extract|field|floor|format|greatest|hex|hour|if|ifnull|insert|instr|interval|isnull|lcase|least|left|length|locate|log|log10|lower|lpad|ltrim|max|md5|mid|min|minute|mod|month|monthname|now|nullif|oct|ord|password|pi|position|pow|power|prepare|quarter|radians|rand|repeat|replace|reverse|right|round|rpad|rtrim|second|sign|sin|soundex|space|sqrt|std|stddev|strcmp|subdate|substring|sum|sysdate|tan|trim|truncate|ucase|upper|user|version|week|weekday|year)$/',
),
4 =>
array (
'reserved' => '/^((?i)action|add|aggregate|all|alter|after|and|as|asc|avg|avg_row_length|auto_increment|between|bigint|bit|binary|blob|bool|both|by|cascade|case|char|character|change|check|checksum|column|columns|comment|constraint|create|cross|current_date|current_time|current_timestamp|data|database|databases|date|datetime|day|day_hour|day_minute|day_second|dayofmonth|dayofweek|dayofyear|dec|decimal|default|delayed|delay_key_write|delete|desc|describe|distinct|distinctrow|double|drop|end|else|escape|escaped|enclosed|enum|explain|exists|fields|file|first|float|float4|float8|flush|foreign|from|for|full|function|global|grant|grants|group|having|heap|high_priority|hour|hour_minute|hour_second|hosts|identified|ignore|in|index|infile|inner|insert|insert_id|int|integer|interval|int1|int2|int3|int4|int8|into|if|is|isam|join|key|keys|kill|last_insert_id|leading|left|length|like|lines|limit|load|local|lock|logs|long|longblob|longtext|low_priority|max|max_rows|match|mediumblob|mediumtext|mediumint|middleint|min_rows|minute|minute_second|modify|month|monthname|myisam|natural|numeric|no|not|null|on|optimize|option|optionally|or|order|outer|outfile|pack_keys|partial|password|precision|primary|procedure|process|processlist|privileges|read|real|references|reload|regexp|rename|replace|restrict|returns|revoke|rlike|row|rows|second|select|set|show|shutdown|smallint|soname|sql_big_tables|sql_big_selects|sql_low_priority_updates|sql_log_off|sql_log_update|sql_select_limit|sql_small_result|sql_big_result|sql_warnings|straight_join|starting|status|string|table|tables|temporary|terminated|text|then|time|timestamp|tinyblob|tinytext|tinyint|trailing|to|type|use|using|unique|unlock|unsigned|update|usage|values|varchar|variables|varying|varbinary|with|write|when|where|year|year_month|zerofill)$/',
),
5 => -1,
6 => -1,
7 => -1,
8 =>
array (
),
9 =>
array (
),
10 =>
array (
),
11 =>
array (
),
),
4 =>
array (
0 =>
array (
),
),
);
$this->_parts = array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => NULL,
),
3 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
11 => NULL,
),
4 =>
array (
0 => NULL,
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => false,
),
3 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
),
4 =>
array (
0 => false,
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
'function' => 'reserved',
'reserved' => 'reserved',
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}

View file

@ -0,0 +1,1352 @@
<?php
/**
* Auto-generated class. PERL syntax highlighting
*
* This highlighter is EXPERIMENTAL, so that it may work incorrectly.
* Most rules were created by Mariusz Jakubowski, and extended by me.
* My knowledge of Perl is poor, and Perl syntax seems too
* complicated to me.
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: : perl.xml,v 1.1 2007/06/03 02:35:28 ssttoo Exp
* @author Mariusz 'kg' Jakubowski <kg@alternatywa.info>
* @author Andrey Demenev <demenev@gmail.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. PERL syntax highlighting
*
* @author Mariusz 'kg' Jakubowski <kg@alternatywa.info>
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_PERL extends Text_Highlighter
{
var $_language = 'perl';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_PERL($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?m)^(#!)(.*))|((?m)^=\\w+)|(\\{)|(\\()|(\\[)|((use)\\s+([\\w:]*))|([& ](\\w{2,}::)+\\w{2,})|((?Us)\\b(q[wq]\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|((?Us)\\b(q\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|(#.*)|((?x)(s|tr) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2)((\\\\.|[^\\\\])*?)(\\2[ecgimosx]*))|((?x)(m) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2[ecgimosx]*))|( \\/)|(\\$#?[1-9\'`@!])|((?i)(\\$#?|[@%*])([a-z1-9_]+::)*([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)\\$([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)(&|\\w+)\'[\\w_\']+\\b)|((?i)(\\{)([a-z1-9]+)(\\}))|((?i)[\\$@%]#?\\{[a-z1-9]+\\})|(`)|(\')|(")|((?i)[a-z_]\\w*)|(\\d*\\.?\\d+)/',
0 => '//',
1 => '/((?m)^(#!)(.*))|((?m)^=\\w+)|(\\{)|(\\()|(\\[)|((use)\\s+([\\w:]*))|([& ](\\w{2,}::)+\\w{2,})|((?Us)\\b(q[wq]\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|((?Us)\\b(q\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|(#.*)|((?x)(s|tr) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2)((\\\\.|[^\\\\])*?)(\\2[ecgimosx]*))|((?x)(m) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2[ecgimosx]*))|( \\/)|(\\$#?[1-9\'`@!])|((?i)(\\$#?|[@%*])([a-z1-9_]+::)*([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)\\$([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)(&|\\w+)\'[\\w_\']+\\b)|((?i)(\\{)([a-z1-9]+)(\\}))|((?i)[\\$@%]#?\\{[a-z1-9]+\\})|(`)|(\')|(")|((?i)[a-z_]\\w*)|(\\d*\\.?\\d+)/',
2 => '/((?m)^(#!)(.*))|((?m)^=\\w+)|(\\{)|(\\()|(\\[)|((use)\\s+([\\w:]*))|([& ](\\w{2,}::)+\\w{2,})|((?Us)\\b(q[wq]\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|((?Us)\\b(q\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|(#.*)|((?x)(s|tr) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2)((\\\\.|[^\\\\])*?)(\\2[ecgimosx]*))|((?x)(m) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2[ecgimosx]*))|( \\/)|((?i)([a-z1-9_]+)(\\s*=>))|(\\$#?[1-9\'`@!])|((?i)(\\$#?|[@%*])([a-z1-9_]+::)*([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)\\$([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)(&|\\w+)\'[\\w_\']+\\b)|((?i)(\\{)([a-z1-9]+)(\\}))|((?i)[\\$@%]#?\\{[a-z1-9]+\\})|(`)|(\')|(")|((?i)[a-z_]\\w*)|(\\d*\\.?\\d+)/',
3 => '/((?m)^(#!)(.*))|((?m)^=\\w+)|(\\{)|(\\()|(\\[)|((use)\\s+([\\w:]*))|([& ](\\w{2,}::)+\\w{2,})|((?Us)\\b(q[wq]\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|((?Us)\\b(q\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|(#.*)|((?x)(s|tr) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2)((\\\\.|[^\\\\])*?)(\\2[ecgimosx]*))|((?x)(m) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2[ecgimosx]*))|( \\/)|(\\$#?[1-9\'`@!])|((?i)(\\$#?|[@%*])([a-z1-9_]+::)*([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)\\$([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)(&|\\w+)\'[\\w_\']+\\b)|((?i)(\\{)([a-z1-9]+)(\\}))|((?i)[\\$@%]#?\\{[a-z1-9]+\\})|(`)|(\')|(")|((?i)[a-z_]\\w*)|(\\d*\\.?\\d+)/',
4 => '/(\\$#?[1-9\'`@!])|((?i)\\$([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)[\\$@%]#?\\{[a-z1-9]+\\})|(\\\\[\\\\"\'`tnr\\$\\{@])/',
5 => '/(\\\\\\\\|\\\\"|\\\\\'|\\\\`)/',
6 => '/(\\\\\\/)/',
7 => '/(\\$#?[1-9\'`@!])|((?i)\\$([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)[\\$@%]#?\\{[a-z1-9]+\\})|(\\\\\\\\|\\\\"|\\\\\'|\\\\`)/',
8 => '/(\\\\\\\\|\\\\"|\\\\\'|\\\\`)/',
9 => '/(\\$#?[1-9\'`@!])|((?i)\\$([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)[\\$@%]#?\\{[a-z1-9]+\\})|(\\\\[\\\\"\'`tnr\\$\\{@])/',
);
$this->_counts = array (
-1 =>
array (
0 => 2,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 2,
6 => 1,
7 => 9,
8 => 9,
9 => 0,
10 => 8,
11 => 5,
12 => 0,
13 => 0,
14 => 3,
15 => 1,
16 => 1,
17 => 3,
18 => 0,
19 => 0,
20 => 0,
21 => 0,
22 => 0,
23 => 0,
),
0 =>
array (
),
1 =>
array (
0 => 2,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 2,
6 => 1,
7 => 9,
8 => 9,
9 => 0,
10 => 8,
11 => 5,
12 => 0,
13 => 0,
14 => 3,
15 => 1,
16 => 1,
17 => 3,
18 => 0,
19 => 0,
20 => 0,
21 => 0,
22 => 0,
23 => 0,
),
2 =>
array (
0 => 2,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 2,
6 => 1,
7 => 9,
8 => 9,
9 => 0,
10 => 8,
11 => 5,
12 => 0,
13 => 2,
14 => 0,
15 => 3,
16 => 1,
17 => 1,
18 => 3,
19 => 0,
20 => 0,
21 => 0,
22 => 0,
23 => 0,
24 => 0,
),
3 =>
array (
0 => 2,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 2,
6 => 1,
7 => 9,
8 => 9,
9 => 0,
10 => 8,
11 => 5,
12 => 0,
13 => 0,
14 => 3,
15 => 1,
16 => 1,
17 => 3,
18 => 0,
19 => 0,
20 => 0,
21 => 0,
22 => 0,
23 => 0,
),
4 =>
array (
0 => 0,
1 => 1,
2 => 0,
3 => 0,
),
5 =>
array (
0 => 0,
),
6 =>
array (
0 => 0,
),
7 =>
array (
0 => 0,
1 => 1,
2 => 0,
3 => 0,
),
8 =>
array (
0 => 0,
),
9 =>
array (
0 => 0,
1 => 1,
2 => 0,
3 => 0,
),
);
$this->_delim = array (
-1 =>
array (
0 => '',
1 => 'comment',
2 => 'brackets',
3 => 'brackets',
4 => 'brackets',
5 => '',
6 => '',
7 => 'quotes',
8 => 'quotes',
9 => '',
10 => '',
11 => '',
12 => 'quotes',
13 => '',
14 => '',
15 => '',
16 => '',
17 => '',
18 => '',
19 => 'quotes',
20 => 'quotes',
21 => 'quotes',
22 => '',
23 => '',
),
0 =>
array (
),
1 =>
array (
0 => '',
1 => 'comment',
2 => 'brackets',
3 => 'brackets',
4 => 'brackets',
5 => '',
6 => '',
7 => 'quotes',
8 => 'quotes',
9 => '',
10 => '',
11 => '',
12 => 'quotes',
13 => '',
14 => '',
15 => '',
16 => '',
17 => '',
18 => '',
19 => 'quotes',
20 => 'quotes',
21 => 'quotes',
22 => '',
23 => '',
),
2 =>
array (
0 => '',
1 => 'comment',
2 => 'brackets',
3 => 'brackets',
4 => 'brackets',
5 => '',
6 => '',
7 => 'quotes',
8 => 'quotes',
9 => '',
10 => '',
11 => '',
12 => 'quotes',
13 => '',
14 => '',
15 => '',
16 => '',
17 => '',
18 => '',
19 => '',
20 => 'quotes',
21 => 'quotes',
22 => 'quotes',
23 => '',
24 => '',
),
3 =>
array (
0 => '',
1 => 'comment',
2 => 'brackets',
3 => 'brackets',
4 => 'brackets',
5 => '',
6 => '',
7 => 'quotes',
8 => 'quotes',
9 => '',
10 => '',
11 => '',
12 => 'quotes',
13 => '',
14 => '',
15 => '',
16 => '',
17 => '',
18 => '',
19 => 'quotes',
20 => 'quotes',
21 => 'quotes',
22 => '',
23 => '',
),
4 =>
array (
0 => '',
1 => '',
2 => '',
3 => '',
),
5 =>
array (
0 => '',
),
6 =>
array (
0 => '',
),
7 =>
array (
0 => '',
1 => '',
2 => '',
3 => '',
),
8 =>
array (
0 => '',
),
9 =>
array (
0 => '',
1 => '',
2 => '',
3 => '',
),
);
$this->_inner = array (
-1 =>
array (
0 => 'special',
1 => 'comment',
2 => 'code',
3 => 'code',
4 => 'code',
5 => 'special',
6 => 'special',
7 => 'string',
8 => 'string',
9 => 'comment',
10 => 'string',
11 => 'string',
12 => 'string',
13 => 'var',
14 => 'var',
15 => 'var',
16 => 'var',
17 => 'var',
18 => 'var',
19 => 'string',
20 => 'string',
21 => 'string',
22 => 'identifier',
23 => 'number',
),
0 =>
array (
),
1 =>
array (
0 => 'special',
1 => 'comment',
2 => 'code',
3 => 'code',
4 => 'code',
5 => 'special',
6 => 'special',
7 => 'string',
8 => 'string',
9 => 'comment',
10 => 'string',
11 => 'string',
12 => 'string',
13 => 'var',
14 => 'var',
15 => 'var',
16 => 'var',
17 => 'var',
18 => 'var',
19 => 'string',
20 => 'string',
21 => 'string',
22 => 'identifier',
23 => 'number',
),
2 =>
array (
0 => 'special',
1 => 'comment',
2 => 'code',
3 => 'code',
4 => 'code',
5 => 'special',
6 => 'special',
7 => 'string',
8 => 'string',
9 => 'comment',
10 => 'string',
11 => 'string',
12 => 'string',
13 => 'string',
14 => 'var',
15 => 'var',
16 => 'var',
17 => 'var',
18 => 'var',
19 => 'var',
20 => 'string',
21 => 'string',
22 => 'string',
23 => 'identifier',
24 => 'number',
),
3 =>
array (
0 => 'special',
1 => 'comment',
2 => 'code',
3 => 'code',
4 => 'code',
5 => 'special',
6 => 'special',
7 => 'string',
8 => 'string',
9 => 'comment',
10 => 'string',
11 => 'string',
12 => 'string',
13 => 'var',
14 => 'var',
15 => 'var',
16 => 'var',
17 => 'var',
18 => 'var',
19 => 'string',
20 => 'string',
21 => 'string',
22 => 'identifier',
23 => 'number',
),
4 =>
array (
0 => 'var',
1 => 'var',
2 => 'var',
3 => 'special',
),
5 =>
array (
0 => 'special',
),
6 =>
array (
0 => 'string',
),
7 =>
array (
0 => 'var',
1 => 'var',
2 => 'var',
3 => 'special',
),
8 =>
array (
0 => 'special',
),
9 =>
array (
0 => 'var',
1 => 'var',
2 => 'var',
3 => 'special',
),
);
$this->_end = array (
0 => '/(?m)^=cut[^\\n]*/',
1 => '/\\}/',
2 => '/\\)/',
3 => '/\\]/',
4 => '/%b2%/',
5 => '/%b2%/',
6 => '/\\/[cgimosx]*/',
7 => '/`/',
8 => '/\'/',
9 => '/"/',
);
$this->_states = array (
-1 =>
array (
0 => -1,
1 => 0,
2 => 1,
3 => 2,
4 => 3,
5 => -1,
6 => -1,
7 => 4,
8 => 5,
9 => -1,
10 => -1,
11 => -1,
12 => 6,
13 => -1,
14 => -1,
15 => -1,
16 => -1,
17 => -1,
18 => -1,
19 => 7,
20 => 8,
21 => 9,
22 => -1,
23 => -1,
),
0 =>
array (
),
1 =>
array (
0 => -1,
1 => 0,
2 => 1,
3 => 2,
4 => 3,
5 => -1,
6 => -1,
7 => 4,
8 => 5,
9 => -1,
10 => -1,
11 => -1,
12 => 6,
13 => -1,
14 => -1,
15 => -1,
16 => -1,
17 => -1,
18 => -1,
19 => 7,
20 => 8,
21 => 9,
22 => -1,
23 => -1,
),
2 =>
array (
0 => -1,
1 => 0,
2 => 1,
3 => 2,
4 => 3,
5 => -1,
6 => -1,
7 => 4,
8 => 5,
9 => -1,
10 => -1,
11 => -1,
12 => 6,
13 => -1,
14 => -1,
15 => -1,
16 => -1,
17 => -1,
18 => -1,
19 => -1,
20 => 7,
21 => 8,
22 => 9,
23 => -1,
24 => -1,
),
3 =>
array (
0 => -1,
1 => 0,
2 => 1,
3 => 2,
4 => 3,
5 => -1,
6 => -1,
7 => 4,
8 => 5,
9 => -1,
10 => -1,
11 => -1,
12 => 6,
13 => -1,
14 => -1,
15 => -1,
16 => -1,
17 => -1,
18 => -1,
19 => 7,
20 => 8,
21 => 9,
22 => -1,
23 => -1,
),
4 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
),
5 =>
array (
0 => -1,
),
6 =>
array (
0 => -1,
),
7 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
),
8 =>
array (
0 => -1,
),
9 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
),
);
$this->_keywords = array (
-1 =>
array (
0 =>
array (
),
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 =>
array (
),
6 =>
array (
),
7 => -1,
8 => -1,
9 =>
array (
),
10 =>
array (
),
11 =>
array (
),
12 => -1,
13 =>
array (
),
14 =>
array (
),
15 =>
array (
),
16 =>
array (
),
17 =>
array (
),
18 =>
array (
),
19 => -1,
20 => -1,
21 => -1,
22 =>
array (
'reserved' => '/^(abs|accept|alarm|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|connect|continue|cos|crypt|dbmclose|dbmopen|defined|delete|die|do|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eval|exec|exists|exit|exp|fcntl|fileno|flock|fork|format|formline|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|goto|grep|hex|import|index|int|ioctl|join|keys|kill|last|lc|lcfirst|length|link|listen|local|localtime|lock|log|lstat|map|mkdir|msgctl|msgget|msgrcv|msgsnd|my|next|no|oct|open|opendir|ord|our|pack|package|pipe|pop|pos|print|printf|prototype|push|quotemeta|rand|read|readdir|readline|readlink|readpipe|recv|redo|ref|rename|require|reset|return|reverse|rewinddir|rindex|rmdir|scalar|seek|seekdir|select|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|sub|substr|symlink|syscall|sysopen|sysread|sysseek|system|syswrite|tell|telldir|tie|tied|time|times|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|use|utime|values|vec|wait|waitpid|wantarray|warn|write|y)$/',
'missingreserved' => '/^(new)$/',
'flowcontrol' => '/^(if|else|elsif|while|unless|for|foreach|until|do|continue|not|or|and|eq|ne|gt|lt)$/',
),
23 =>
array (
),
),
0 =>
array (
),
1 =>
array (
0 =>
array (
),
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 =>
array (
),
6 =>
array (
),
7 => -1,
8 => -1,
9 =>
array (
),
10 =>
array (
),
11 =>
array (
),
12 => -1,
13 =>
array (
),
14 =>
array (
),
15 =>
array (
),
16 =>
array (
),
17 =>
array (
),
18 =>
array (
),
19 => -1,
20 => -1,
21 => -1,
22 =>
array (
'reserved' => '/^(abs|accept|alarm|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|connect|continue|cos|crypt|dbmclose|dbmopen|defined|delete|die|do|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eval|exec|exists|exit|exp|fcntl|fileno|flock|fork|format|formline|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|goto|grep|hex|import|index|int|ioctl|join|keys|kill|last|lc|lcfirst|length|link|listen|local|localtime|lock|log|lstat|map|mkdir|msgctl|msgget|msgrcv|msgsnd|my|next|no|oct|open|opendir|ord|our|pack|package|pipe|pop|pos|print|printf|prototype|push|quotemeta|rand|read|readdir|readline|readlink|readpipe|recv|redo|ref|rename|require|reset|return|reverse|rewinddir|rindex|rmdir|scalar|seek|seekdir|select|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|sub|substr|symlink|syscall|sysopen|sysread|sysseek|system|syswrite|tell|telldir|tie|tied|time|times|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|use|utime|values|vec|wait|waitpid|wantarray|warn|write|y)$/',
'missingreserved' => '/^(new)$/',
'flowcontrol' => '/^(if|else|elsif|while|unless|for|foreach|until|do|continue|not|or|and|eq|ne|gt|lt)$/',
),
23 =>
array (
),
),
2 =>
array (
0 =>
array (
),
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 =>
array (
),
6 =>
array (
),
7 => -1,
8 => -1,
9 =>
array (
),
10 =>
array (
),
11 =>
array (
),
12 => -1,
13 =>
array (
),
14 =>
array (
),
15 =>
array (
),
16 =>
array (
),
17 =>
array (
),
18 =>
array (
),
19 =>
array (
),
20 => -1,
21 => -1,
22 => -1,
23 =>
array (
'reserved' => '/^(abs|accept|alarm|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|connect|continue|cos|crypt|dbmclose|dbmopen|defined|delete|die|do|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eval|exec|exists|exit|exp|fcntl|fileno|flock|fork|format|formline|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|goto|grep|hex|import|index|int|ioctl|join|keys|kill|last|lc|lcfirst|length|link|listen|local|localtime|lock|log|lstat|map|mkdir|msgctl|msgget|msgrcv|msgsnd|my|next|no|oct|open|opendir|ord|our|pack|package|pipe|pop|pos|print|printf|prototype|push|quotemeta|rand|read|readdir|readline|readlink|readpipe|recv|redo|ref|rename|require|reset|return|reverse|rewinddir|rindex|rmdir|scalar|seek|seekdir|select|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|sub|substr|symlink|syscall|sysopen|sysread|sysseek|system|syswrite|tell|telldir|tie|tied|time|times|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|use|utime|values|vec|wait|waitpid|wantarray|warn|write|y)$/',
'missingreserved' => '/^(new)$/',
'flowcontrol' => '/^(if|else|elsif|while|unless|for|foreach|until|do|continue|not|or|and|eq|ne|gt|lt)$/',
),
24 =>
array (
),
),
3 =>
array (
0 =>
array (
),
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 =>
array (
),
6 =>
array (
),
7 => -1,
8 => -1,
9 =>
array (
),
10 =>
array (
),
11 =>
array (
),
12 => -1,
13 =>
array (
),
14 =>
array (
),
15 =>
array (
),
16 =>
array (
),
17 =>
array (
),
18 =>
array (
),
19 => -1,
20 => -1,
21 => -1,
22 =>
array (
'reserved' => '/^(abs|accept|alarm|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|connect|continue|cos|crypt|dbmclose|dbmopen|defined|delete|die|do|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eval|exec|exists|exit|exp|fcntl|fileno|flock|fork|format|formline|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|goto|grep|hex|import|index|int|ioctl|join|keys|kill|last|lc|lcfirst|length|link|listen|local|localtime|lock|log|lstat|map|mkdir|msgctl|msgget|msgrcv|msgsnd|my|next|no|oct|open|opendir|ord|our|pack|package|pipe|pop|pos|print|printf|prototype|push|quotemeta|rand|read|readdir|readline|readlink|readpipe|recv|redo|ref|rename|require|reset|return|reverse|rewinddir|rindex|rmdir|scalar|seek|seekdir|select|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|sub|substr|symlink|syscall|sysopen|sysread|sysseek|system|syswrite|tell|telldir|tie|tied|time|times|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|use|utime|values|vec|wait|waitpid|wantarray|warn|write|y)$/',
'missingreserved' => '/^(new)$/',
'flowcontrol' => '/^(if|else|elsif|while|unless|for|foreach|until|do|continue|not|or|and|eq|ne|gt|lt)$/',
),
23 =>
array (
),
),
4 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
),
5 =>
array (
0 =>
array (
),
),
6 =>
array (
0 =>
array (
),
),
7 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
),
8 =>
array (
0 =>
array (
),
),
9 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
),
);
$this->_parts = array (
0 =>
array (
),
1 =>
array (
0 =>
array (
1 => 'special',
2 => 'string',
),
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 =>
array (
1 => 'reserved',
2 => 'special',
),
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 =>
array (
1 => 'quotes',
2 => 'quotes',
3 => 'string',
5 => 'quotes',
6 => 'string',
8 => 'quotes',
),
11 =>
array (
1 => 'quotes',
2 => 'quotes',
3 => 'string',
5 => 'quotes',
),
12 => NULL,
13 => NULL,
14 => NULL,
15 => NULL,
16 => NULL,
17 =>
array (
1 => 'brackets',
2 => 'var',
3 => 'brackets',
),
18 => NULL,
19 => NULL,
20 => NULL,
21 => NULL,
22 => NULL,
23 => NULL,
),
2 =>
array (
0 =>
array (
1 => 'special',
2 => 'string',
),
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 =>
array (
1 => 'reserved',
2 => 'special',
),
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 =>
array (
1 => 'quotes',
2 => 'quotes',
3 => 'string',
5 => 'quotes',
6 => 'string',
8 => 'quotes',
),
11 =>
array (
1 => 'quotes',
2 => 'quotes',
3 => 'string',
5 => 'quotes',
),
12 => NULL,
13 =>
array (
1 => 'string',
2 => 'code',
),
14 => NULL,
15 => NULL,
16 => NULL,
17 => NULL,
18 =>
array (
1 => 'brackets',
2 => 'var',
3 => 'brackets',
),
19 => NULL,
20 => NULL,
21 => NULL,
22 => NULL,
23 => NULL,
24 => NULL,
),
3 =>
array (
0 =>
array (
1 => 'special',
2 => 'string',
),
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 =>
array (
1 => 'reserved',
2 => 'special',
),
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 =>
array (
1 => 'quotes',
2 => 'quotes',
3 => 'string',
5 => 'quotes',
6 => 'string',
8 => 'quotes',
),
11 =>
array (
1 => 'quotes',
2 => 'quotes',
3 => 'string',
5 => 'quotes',
),
12 => NULL,
13 => NULL,
14 => NULL,
15 => NULL,
16 => NULL,
17 =>
array (
1 => 'brackets',
2 => 'var',
3 => 'brackets',
),
18 => NULL,
19 => NULL,
20 => NULL,
21 => NULL,
22 => NULL,
23 => NULL,
),
4 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
),
5 =>
array (
0 => NULL,
),
6 =>
array (
0 => NULL,
),
7 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
),
8 =>
array (
0 => NULL,
),
9 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => true,
8 => true,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
17 => false,
18 => false,
19 => false,
20 => false,
21 => false,
22 => false,
23 => false,
),
0 =>
array (
),
1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => true,
8 => true,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
17 => false,
18 => false,
19 => false,
20 => false,
21 => false,
22 => false,
23 => false,
),
2 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => true,
8 => true,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
17 => false,
18 => false,
19 => false,
20 => false,
21 => false,
22 => false,
23 => false,
24 => false,
),
3 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => true,
8 => true,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
17 => false,
18 => false,
19 => false,
20 => false,
21 => false,
22 => false,
23 => false,
),
4 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
),
5 =>
array (
0 => false,
),
6 =>
array (
0 => false,
),
7 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
),
8 =>
array (
0 => false,
),
9 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
'reserved' => 'reserved',
'missingreserved' => 'reserved',
'flowcontrol' => 'reserved',
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}

View file

@ -0,0 +1,1107 @@
<?php
/**
* Auto-generated class. PHP syntax highlighting
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: : php.xml,v 1.1 2007/06/03 02:35:28 ssttoo Exp
* @author Andrey Demenev <demenev@gmail.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. PHP syntax highlighting
*
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_PHP extends Text_Highlighter
{
var $_language = 'php';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_PHP($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?i)\\<\\?(php|=)?)/',
0 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)\\/\\*)|((?i)")|((?i)`)|((?mi)\\<\\<\\<[\\x20\\x09]*(\\w+)$)|((?i)\')|((?i)(#|\\/\\/))|((?i)[a-z_]\\w*)|((?i)\\((array|int|integer|string|bool|boolean|object|float|double)\\))|((?i)0[xX][\\da-f]+)|((?i)\\$[a-z_]\\w*)|((?i)\\d\\d*|\\b0\\b)|((?i)0[0-7]+)|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)((\\d+|((\\d*\\.\\d+)|(\\d+\\.\\d*)))[eE][+-]?\\d+))/',
1 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)\\/\\*)|((?i)")|((?i)`)|((?mi)\\<\\<\\<[\\x20\\x09]*(\\w+)$)|((?i)\')|((?i)(#|\\/\\/))|((?i)[a-z_]\\w*)|((?i)\\((array|int|integer|string|bool|boolean|object|float|double)\\))|((?i)\\?\\>)|((?i)0[xX][\\da-f]+)|((?i)\\$[a-z_]\\w*)|((?i)\\d\\d*|\\b0\\b)|((?i)0[0-7]+)|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)((\\d+|((\\d*\\.\\d+)|(\\d+\\.\\d*)))[eE][+-]?\\d+))/',
2 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)\\/\\*)|((?i)")|((?i)`)|((?mi)\\<\\<\\<[\\x20\\x09]*(\\w+)$)|((?i)\')|((?i)(#|\\/\\/))|((?i)[a-z_]\\w*)|((?i)\\((array|int|integer|string|bool|boolean|object|float|double)\\))|((?i)0[xX][\\da-f]+)|((?i)\\$[a-z_]\\w*)|((?i)\\d\\d*|\\b0\\b)|((?i)0[0-7]+)|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)((\\d+|((\\d*\\.\\d+)|(\\d+\\.\\d*)))[eE][+-]?\\d+))/',
3 => '/((?i)\\{)|((?i)\\()|((?i)\\[)|((?i)\\/\\*)|((?i)")|((?i)`)|((?mi)\\<\\<\\<[\\x20\\x09]*(\\w+)$)|((?i)\')|((?i)(#|\\/\\/))|((?i)[a-z_]\\w*)|((?i)\\((array|int|integer|string|bool|boolean|object|float|double)\\))|((?i)0[xX][\\da-f]+)|((?i)\\$[a-z_]\\w*)|((?i)\\d\\d*|\\b0\\b)|((?i)0[0-7]+)|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)((\\d+|((\\d*\\.\\d+)|(\\d+\\.\\d*)))[eE][+-]?\\d+))/',
4 => '/((?i)\\s@\\w+\\s)|((?i)((https?|ftp):\\/\\/[\\w\\?\\.\\-\\&=\\/%+]+)|(^|[\\s,!?])www\\.\\w+\\.\\w+[\\w\\?\\.\\&=\\/%+]*)|((?i)\\w+[\\.\\w\\-]+@(\\w+[\\.\\w\\-])+)|((?i)\\bnote:)|((?i)\\$\\w+\\s*:.*\\$)/',
5 => '/((?i)\\\\[\\\\"\'`tnr\\$\\{])|((?i)\\{\\$[a-z_].*\\})|((?i)\\$[a-z_]\\w*)/',
6 => '/((?i)\\\\\\\\|\\\\"|\\\\\'|\\\\`)|((?i)\\{\\$[a-z_].*\\})|((?i)\\$[a-z_]\\w*)/',
7 => '/((?i)\\\\[\\\\"\'`tnr\\$\\{])|((?i)\\{\\$[a-z_].*\\})|((?i)\\$[a-z_]\\w*)/',
8 => '/((?i)\\\\\\\\|\\\\"|\\\\\'|\\\\`)/',
9 => '/((?i)\\s@\\w+\\s)|((?i)((https?|ftp):\\/\\/[\\w\\?\\.\\-\\&=\\/%+]+)|(^|[\\s,!?])www\\.\\w+\\.\\w+[\\w\\?\\.\\&=\\/%+]*)|((?i)\\w+[\\.\\w\\-]+@(\\w+[\\.\\w\\-])+)|((?i)\\bnote:)|((?i)\\$\\w+\\s*:.*\\$)/',
10 => '//',
);
$this->_counts = array (
-1 =>
array (
0 => 1,
),
0 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 1,
7 => 0,
8 => 1,
9 => 0,
10 => 1,
11 => 0,
12 => 0,
13 => 0,
14 => 0,
15 => 2,
16 => 5,
),
1 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 1,
7 => 0,
8 => 1,
9 => 0,
10 => 1,
11 => 0,
12 => 0,
13 => 0,
14 => 0,
15 => 0,
16 => 2,
17 => 5,
),
2 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 1,
7 => 0,
8 => 1,
9 => 0,
10 => 1,
11 => 0,
12 => 0,
13 => 0,
14 => 0,
15 => 2,
16 => 5,
),
3 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 1,
7 => 0,
8 => 1,
9 => 0,
10 => 1,
11 => 0,
12 => 0,
13 => 0,
14 => 0,
15 => 2,
16 => 5,
),
4 =>
array (
0 => 0,
1 => 3,
2 => 1,
3 => 0,
4 => 0,
),
5 =>
array (
0 => 0,
1 => 0,
2 => 0,
),
6 =>
array (
0 => 0,
1 => 0,
2 => 0,
),
7 =>
array (
0 => 0,
1 => 0,
2 => 0,
),
8 =>
array (
0 => 0,
),
9 =>
array (
0 => 0,
1 => 3,
2 => 1,
3 => 0,
4 => 0,
),
10 =>
array (
),
);
$this->_delim = array (
-1 =>
array (
0 => 'inlinetags',
),
0 =>
array (
0 => 'brackets',
1 => 'brackets',
2 => 'brackets',
3 => 'comment',
4 => 'quotes',
5 => 'quotes',
6 => 'quotes',
7 => 'quotes',
8 => 'comment',
9 => '',
10 => '',
11 => '',
12 => '',
13 => '',
14 => '',
15 => '',
16 => '',
),
1 =>
array (
0 => 'brackets',
1 => 'brackets',
2 => 'brackets',
3 => 'comment',
4 => 'quotes',
5 => 'quotes',
6 => 'quotes',
7 => 'quotes',
8 => 'comment',
9 => '',
10 => '',
11 => 'inlinetags',
12 => '',
13 => '',
14 => '',
15 => '',
16 => '',
17 => '',
),
2 =>
array (
0 => 'brackets',
1 => 'brackets',
2 => 'brackets',
3 => 'comment',
4 => 'quotes',
5 => 'quotes',
6 => 'quotes',
7 => 'quotes',
8 => 'comment',
9 => '',
10 => '',
11 => '',
12 => '',
13 => '',
14 => '',
15 => '',
16 => '',
),
3 =>
array (
0 => 'brackets',
1 => 'brackets',
2 => 'brackets',
3 => 'comment',
4 => 'quotes',
5 => 'quotes',
6 => 'quotes',
7 => 'quotes',
8 => 'comment',
9 => '',
10 => '',
11 => '',
12 => '',
13 => '',
14 => '',
15 => '',
16 => '',
),
4 =>
array (
0 => '',
1 => '',
2 => '',
3 => '',
4 => '',
),
5 =>
array (
0 => '',
1 => '',
2 => '',
),
6 =>
array (
0 => '',
1 => '',
2 => '',
),
7 =>
array (
0 => '',
1 => '',
2 => '',
),
8 =>
array (
0 => '',
),
9 =>
array (
0 => '',
1 => '',
2 => '',
3 => '',
4 => '',
),
10 =>
array (
),
);
$this->_inner = array (
-1 =>
array (
0 => 'code',
),
0 =>
array (
0 => 'code',
1 => 'code',
2 => 'code',
3 => 'comment',
4 => 'string',
5 => 'string',
6 => 'string',
7 => 'string',
8 => 'comment',
9 => 'identifier',
10 => 'reserved',
11 => 'number',
12 => 'var',
13 => 'number',
14 => 'number',
15 => 'number',
16 => 'number',
),
1 =>
array (
0 => 'code',
1 => 'code',
2 => 'code',
3 => 'comment',
4 => 'string',
5 => 'string',
6 => 'string',
7 => 'string',
8 => 'comment',
9 => 'identifier',
10 => 'reserved',
11 => 'default',
12 => 'number',
13 => 'var',
14 => 'number',
15 => 'number',
16 => 'number',
17 => 'number',
),
2 =>
array (
0 => 'code',
1 => 'code',
2 => 'code',
3 => 'comment',
4 => 'string',
5 => 'string',
6 => 'string',
7 => 'string',
8 => 'comment',
9 => 'identifier',
10 => 'reserved',
11 => 'number',
12 => 'var',
13 => 'number',
14 => 'number',
15 => 'number',
16 => 'number',
),
3 =>
array (
0 => 'code',
1 => 'code',
2 => 'code',
3 => 'comment',
4 => 'string',
5 => 'string',
6 => 'string',
7 => 'string',
8 => 'comment',
9 => 'identifier',
10 => 'reserved',
11 => 'number',
12 => 'var',
13 => 'number',
14 => 'number',
15 => 'number',
16 => 'number',
),
4 =>
array (
0 => 'inlinedoc',
1 => 'url',
2 => 'url',
3 => 'inlinedoc',
4 => 'inlinedoc',
),
5 =>
array (
0 => 'special',
1 => 'var',
2 => 'var',
),
6 =>
array (
0 => 'special',
1 => 'var',
2 => 'var',
),
7 =>
array (
0 => 'special',
1 => 'var',
2 => 'var',
),
8 =>
array (
0 => 'special',
),
9 =>
array (
0 => 'inlinedoc',
1 => 'url',
2 => 'url',
3 => 'inlinedoc',
4 => 'inlinedoc',
),
10 =>
array (
),
);
$this->_end = array (
0 => '/(?i)\\?\\>/',
1 => '/(?i)\\}/',
2 => '/(?i)\\)/',
3 => '/(?i)\\]/',
4 => '/(?i)\\*\\//',
5 => '/(?i)"/',
6 => '/(?i)`/',
7 => '/(?mi)^%1%;?$/',
8 => '/(?i)\'/',
9 => '/(?mi)$|(?=\\?\\>)/',
10 => '/(?i)\\<\\?(php|=)?/',
);
$this->_states = array (
-1 =>
array (
0 => 0,
),
0 =>
array (
0 => 1,
1 => 2,
2 => 3,
3 => 4,
4 => 5,
5 => 6,
6 => 7,
7 => 8,
8 => 9,
9 => -1,
10 => -1,
11 => -1,
12 => -1,
13 => -1,
14 => -1,
15 => -1,
16 => -1,
),
1 =>
array (
0 => 1,
1 => 2,
2 => 3,
3 => 4,
4 => 5,
5 => 6,
6 => 7,
7 => 8,
8 => 9,
9 => -1,
10 => -1,
11 => 10,
12 => -1,
13 => -1,
14 => -1,
15 => -1,
16 => -1,
17 => -1,
),
2 =>
array (
0 => 1,
1 => 2,
2 => 3,
3 => 4,
4 => 5,
5 => 6,
6 => 7,
7 => 8,
8 => 9,
9 => -1,
10 => -1,
11 => -1,
12 => -1,
13 => -1,
14 => -1,
15 => -1,
16 => -1,
),
3 =>
array (
0 => 1,
1 => 2,
2 => 3,
3 => 4,
4 => 5,
5 => 6,
6 => 7,
7 => 8,
8 => 9,
9 => -1,
10 => -1,
11 => -1,
12 => -1,
13 => -1,
14 => -1,
15 => -1,
16 => -1,
),
4 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
),
5 =>
array (
0 => -1,
1 => -1,
2 => -1,
),
6 =>
array (
0 => -1,
1 => -1,
2 => -1,
),
7 =>
array (
0 => -1,
1 => -1,
2 => -1,
),
8 =>
array (
0 => -1,
),
9 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
),
10 =>
array (
),
);
$this->_keywords = array (
-1 =>
array (
0 => -1,
),
0 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 =>
array (
'constants' => '/^(DIRECTORY_SEPARATOR|PATH_SEPARATOR)$/',
'reserved' => '/^((?i)echo|foreach|else|if|elseif|for|as|while|break|continue|class|const|declare|switch|case|endfor|endswitch|endforeach|endif|array|default|do|enddeclare|eval|exit|die|extends|function|global|include|include_once|require|require_once|isset|empty|list|new|static|unset|var|return|try|catch|final|throw|public|private|protected|abstract|interface|implements|define|__file__|__line__|__class__|__method__|__function__|null|true|false|and|or|xor)$/',
),
10 =>
array (
),
11 =>
array (
),
12 =>
array (
),
13 =>
array (
),
14 =>
array (
),
15 =>
array (
),
16 =>
array (
),
),
1 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 =>
array (
'constants' => '/^(DIRECTORY_SEPARATOR|PATH_SEPARATOR)$/',
'reserved' => '/^((?i)echo|foreach|else|if|elseif|for|as|while|break|continue|class|const|declare|switch|case|endfor|endswitch|endforeach|endif|array|default|do|enddeclare|eval|exit|die|extends|function|global|include|include_once|require|require_once|isset|empty|list|new|static|unset|var|return|try|catch|final|throw|public|private|protected|abstract|interface|implements|define|__file__|__line__|__class__|__method__|__function__|null|true|false|and|or|xor)$/',
),
10 =>
array (
),
11 => -1,
12 =>
array (
),
13 =>
array (
),
14 =>
array (
),
15 =>
array (
),
16 =>
array (
),
17 =>
array (
),
),
2 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 =>
array (
'constants' => '/^(DIRECTORY_SEPARATOR|PATH_SEPARATOR)$/',
'reserved' => '/^((?i)echo|foreach|else|if|elseif|for|as|while|break|continue|class|const|declare|switch|case|endfor|endswitch|endforeach|endif|array|default|do|enddeclare|eval|exit|die|extends|function|global|include|include_once|require|require_once|isset|empty|list|new|static|unset|var|return|try|catch|final|throw|public|private|protected|abstract|interface|implements|define|__file__|__line__|__class__|__method__|__function__|null|true|false|and|or|xor)$/',
),
10 =>
array (
),
11 =>
array (
),
12 =>
array (
),
13 =>
array (
),
14 =>
array (
),
15 =>
array (
),
16 =>
array (
),
),
3 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 => -1,
6 => -1,
7 => -1,
8 => -1,
9 =>
array (
'constants' => '/^(DIRECTORY_SEPARATOR|PATH_SEPARATOR)$/',
'reserved' => '/^((?i)echo|foreach|else|if|elseif|for|as|while|break|continue|class|const|declare|switch|case|endfor|endswitch|endforeach|endif|array|default|do|enddeclare|eval|exit|die|extends|function|global|include|include_once|require|require_once|isset|empty|list|new|static|unset|var|return|try|catch|final|throw|public|private|protected|abstract|interface|implements|define|__file__|__line__|__class__|__method__|__function__|null|true|false|and|or|xor)$/',
),
10 =>
array (
),
11 =>
array (
),
12 =>
array (
),
13 =>
array (
),
14 =>
array (
),
15 =>
array (
),
16 =>
array (
),
),
4 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
4 =>
array (
),
),
5 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
),
6 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
),
7 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
),
8 =>
array (
0 =>
array (
),
),
9 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
4 =>
array (
),
),
10 =>
array (
),
);
$this->_parts = array (
0 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
14 => NULL,
15 => NULL,
16 => NULL,
),
1 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
14 => NULL,
15 => NULL,
16 => NULL,
17 => NULL,
),
2 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
14 => NULL,
15 => NULL,
16 => NULL,
),
3 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
14 => NULL,
15 => NULL,
16 => NULL,
),
4 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
),
5 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
),
6 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
),
7 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
),
8 =>
array (
0 => NULL,
),
9 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
),
10 =>
array (
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
),
0 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => true,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
),
1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => true,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
17 => false,
),
2 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => true,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
),
3 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => true,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
),
4 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
),
5 =>
array (
0 => false,
1 => false,
2 => false,
),
6 =>
array (
0 => false,
1 => false,
2 => false,
),
7 =>
array (
0 => false,
1 => false,
2 => false,
),
8 =>
array (
0 => false,
),
9 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
),
10 =>
array (
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
'constants' => 'reserved',
'reserved' => 'reserved',
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}

View file

@ -0,0 +1,647 @@
<?php
/**
* Auto-generated class. PYTHON syntax highlighting
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: : python.xml,v 1.1 2007/06/03 02:35:28 ssttoo Exp
* @author Andrey Demenev <demenev@gmail.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. PYTHON syntax highlighting
*
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_PYTHON extends Text_Highlighter
{
var $_language = 'python';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_PYTHON($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?i)\'\'\')|((?i)""")|((?i)")|((?i)\')|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*(?=\\s*\\())|((?i)[a-z_]\\w*)|((?i)((\\d+|((\\d*\\.\\d+)|(\\d+\\.\\d*)))[eE][+-]?\\d+))|((?i)((\\d*\\.\\d+)|(\\d+\\.\\d*)|(\\d+))j)|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)\\d+l?|\\b0l?\\b)|((?i)0[xX][\\da-f]+l?)|((?i)0[0-7]+l?)|((?i)#.+)/',
0 => '/((?i)\\\\.)/',
1 => '/((?i)\\\\.)/',
2 => '/((?i)\\\\.)/',
3 => '/((?i)\\\\.)/',
4 => '/((?i)\'\'\')|((?i)""")|((?i)")|((?i)\')|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*(?=\\s*\\())|((?i)[a-z_]\\w*)|((?i)((\\d+|((\\d*\\.\\d+)|(\\d+\\.\\d*)))[eE][+-]?\\d+))|((?i)((\\d*\\.\\d+)|(\\d+\\.\\d*)|(\\d+))j)|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)\\d+l?|\\b0l?\\b)|((?i)0[xX][\\da-f]+l?)|((?i)0[0-7]+l?)|((?i)#.+)/',
5 => '/((?i)\'\'\')|((?i)""")|((?i)")|((?i)\')|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*(?=\\s*\\())|((?i)[a-z_]\\w*)|((?i)((\\d+|((\\d*\\.\\d+)|(\\d+\\.\\d*)))[eE][+-]?\\d+))|((?i)((\\d*\\.\\d+)|(\\d+\\.\\d*)|(\\d+))j)|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)\\d+l?|\\b0l?\\b)|((?i)0[xX][\\da-f]+l?)|((?i)0[0-7]+l?)|((?i)#.+)/',
);
$this->_counts = array (
-1 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 5,
9 => 4,
10 => 2,
11 => 0,
12 => 0,
13 => 0,
14 => 0,
),
0 =>
array (
0 => 0,
),
1 =>
array (
0 => 0,
),
2 =>
array (
0 => 0,
),
3 =>
array (
0 => 0,
),
4 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 5,
9 => 4,
10 => 2,
11 => 0,
12 => 0,
13 => 0,
14 => 0,
),
5 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 5,
9 => 4,
10 => 2,
11 => 0,
12 => 0,
13 => 0,
14 => 0,
),
);
$this->_delim = array (
-1 =>
array (
0 => 'quotes',
1 => 'quotes',
2 => 'quotes',
3 => 'quotes',
4 => 'brackets',
5 => 'brackets',
6 => '',
7 => '',
8 => '',
9 => '',
10 => '',
11 => '',
12 => '',
13 => '',
14 => '',
),
0 =>
array (
0 => '',
),
1 =>
array (
0 => '',
),
2 =>
array (
0 => '',
),
3 =>
array (
0 => '',
),
4 =>
array (
0 => 'quotes',
1 => 'quotes',
2 => 'quotes',
3 => 'quotes',
4 => 'brackets',
5 => 'brackets',
6 => '',
7 => '',
8 => '',
9 => '',
10 => '',
11 => '',
12 => '',
13 => '',
14 => '',
),
5 =>
array (
0 => 'quotes',
1 => 'quotes',
2 => 'quotes',
3 => 'quotes',
4 => 'brackets',
5 => 'brackets',
6 => '',
7 => '',
8 => '',
9 => '',
10 => '',
11 => '',
12 => '',
13 => '',
14 => '',
),
);
$this->_inner = array (
-1 =>
array (
0 => 'string',
1 => 'string',
2 => 'string',
3 => 'string',
4 => 'code',
5 => 'code',
6 => 'identifier',
7 => 'identifier',
8 => 'number',
9 => 'number',
10 => 'number',
11 => 'number',
12 => 'number',
13 => 'number',
14 => 'comment',
),
0 =>
array (
0 => 'special',
),
1 =>
array (
0 => 'special',
),
2 =>
array (
0 => 'special',
),
3 =>
array (
0 => 'special',
),
4 =>
array (
0 => 'string',
1 => 'string',
2 => 'string',
3 => 'string',
4 => 'code',
5 => 'code',
6 => 'identifier',
7 => 'identifier',
8 => 'number',
9 => 'number',
10 => 'number',
11 => 'number',
12 => 'number',
13 => 'number',
14 => 'comment',
),
5 =>
array (
0 => 'string',
1 => 'string',
2 => 'string',
3 => 'string',
4 => 'code',
5 => 'code',
6 => 'identifier',
7 => 'identifier',
8 => 'number',
9 => 'number',
10 => 'number',
11 => 'number',
12 => 'number',
13 => 'number',
14 => 'comment',
),
);
$this->_end = array (
0 => '/(?i)\'\'\'/',
1 => '/(?i)"""/',
2 => '/(?i)"/',
3 => '/(?i)\'/',
4 => '/(?i)\\)/',
5 => '/(?i)\\]/',
);
$this->_states = array (
-1 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => 5,
6 => -1,
7 => -1,
8 => -1,
9 => -1,
10 => -1,
11 => -1,
12 => -1,
13 => -1,
14 => -1,
),
0 =>
array (
0 => -1,
),
1 =>
array (
0 => -1,
),
2 =>
array (
0 => -1,
),
3 =>
array (
0 => -1,
),
4 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => 5,
6 => -1,
7 => -1,
8 => -1,
9 => -1,
10 => -1,
11 => -1,
12 => -1,
13 => -1,
14 => -1,
),
5 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => 5,
6 => -1,
7 => -1,
8 => -1,
9 => -1,
10 => -1,
11 => -1,
12 => -1,
13 => -1,
14 => -1,
),
);
$this->_keywords = array (
-1 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 => -1,
6 =>
array (
'builtin' => '/^(__import__|abs|apply|basestring|bool|buffer|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|min|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|round|setattr|slice|staticmethod|sum|super|str|tuple|type|unichr|unicode|vars|xrange|zip)$/',
),
7 =>
array (
'reserved' => '/^(and|del|for|is|raise|assert|elif|from|lambda|return|break|else|global|not|try|class|except|if|or|while|continue|exec|import|pass|yield|def|finally|in|print|False|True|None|NotImplemented|Ellipsis|Exception|SystemExit|StopIteration|StandardError|KeyboardInterrupt|ImportError|EnvironmentError|IOError|OSError|WindowsError|EOFError|RuntimeError|NotImplementedError|NameError|UnboundLocalError|AttributeError|SyntaxError|IndentationError|TabError|TypeError|AssertionError|LookupError|IndexError|KeyError|ArithmeticError|OverflowError|ZeroDivisionError|FloatingPointError|ValueError|UnicodeError|UnicodeEncodeError|UnicodeDecodeError|UnicodeTranslateError|ReferenceError|SystemError|MemoryError|Warning|UserWarning|DeprecationWarning|PendingDeprecationWarning|SyntaxWarning|OverflowWarning|RuntimeWarning|FutureWarning)$/',
),
8 =>
array (
),
9 =>
array (
),
10 =>
array (
),
11 =>
array (
),
12 =>
array (
),
13 =>
array (
),
14 =>
array (
),
),
0 =>
array (
0 =>
array (
),
),
1 =>
array (
0 =>
array (
),
),
2 =>
array (
0 =>
array (
),
),
3 =>
array (
0 =>
array (
),
),
4 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 => -1,
6 =>
array (
'builtin' => '/^(__import__|abs|apply|basestring|bool|buffer|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|min|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|round|setattr|slice|staticmethod|sum|super|str|tuple|type|unichr|unicode|vars|xrange|zip)$/',
),
7 =>
array (
'reserved' => '/^(and|del|for|is|raise|assert|elif|from|lambda|return|break|else|global|not|try|class|except|if|or|while|continue|exec|import|pass|yield|def|finally|in|print|False|True|None|NotImplemented|Ellipsis|Exception|SystemExit|StopIteration|StandardError|KeyboardInterrupt|ImportError|EnvironmentError|IOError|OSError|WindowsError|EOFError|RuntimeError|NotImplementedError|NameError|UnboundLocalError|AttributeError|SyntaxError|IndentationError|TabError|TypeError|AssertionError|LookupError|IndexError|KeyError|ArithmeticError|OverflowError|ZeroDivisionError|FloatingPointError|ValueError|UnicodeError|UnicodeEncodeError|UnicodeDecodeError|UnicodeTranslateError|ReferenceError|SystemError|MemoryError|Warning|UserWarning|DeprecationWarning|PendingDeprecationWarning|SyntaxWarning|OverflowWarning|RuntimeWarning|FutureWarning)$/',
),
8 =>
array (
),
9 =>
array (
),
10 =>
array (
),
11 =>
array (
),
12 =>
array (
),
13 =>
array (
),
14 =>
array (
),
),
5 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 => -1,
6 =>
array (
'builtin' => '/^(__import__|abs|apply|basestring|bool|buffer|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|min|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|round|setattr|slice|staticmethod|sum|super|str|tuple|type|unichr|unicode|vars|xrange|zip)$/',
),
7 =>
array (
'reserved' => '/^(and|del|for|is|raise|assert|elif|from|lambda|return|break|else|global|not|try|class|except|if|or|while|continue|exec|import|pass|yield|def|finally|in|print|False|True|None|NotImplemented|Ellipsis|Exception|SystemExit|StopIteration|StandardError|KeyboardInterrupt|ImportError|EnvironmentError|IOError|OSError|WindowsError|EOFError|RuntimeError|NotImplementedError|NameError|UnboundLocalError|AttributeError|SyntaxError|IndentationError|TabError|TypeError|AssertionError|LookupError|IndexError|KeyError|ArithmeticError|OverflowError|ZeroDivisionError|FloatingPointError|ValueError|UnicodeError|UnicodeEncodeError|UnicodeDecodeError|UnicodeTranslateError|ReferenceError|SystemError|MemoryError|Warning|UserWarning|DeprecationWarning|PendingDeprecationWarning|SyntaxWarning|OverflowWarning|RuntimeWarning|FutureWarning)$/',
),
8 =>
array (
),
9 =>
array (
),
10 =>
array (
),
11 =>
array (
),
12 =>
array (
),
13 =>
array (
),
14 =>
array (
),
),
);
$this->_parts = array (
0 =>
array (
0 => NULL,
),
1 =>
array (
0 => NULL,
),
2 =>
array (
0 => NULL,
),
3 =>
array (
0 => NULL,
),
4 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
14 => NULL,
),
5 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
14 => NULL,
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
),
0 =>
array (
0 => false,
),
1 =>
array (
0 => false,
),
2 =>
array (
0 => false,
),
3 =>
array (
0 => false,
),
4 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
),
5 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
'builtin' => 'builtin',
'reserved' => 'reserved',
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}

View file

@ -0,0 +1,825 @@
<?php
/**
* Auto-generated class. RUBY syntax highlighting
*
*
* FIXME: While this construction : s.split /z/i
* is valid, regular expression is not recognized as such
* (/ folowing an identifier or number is not recognized as
* start of RE), making highlighting improper
*
* %q(a (nested) string) does not get highlighted correctly
*
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: : ruby.xml,v 1.1 2007/06/03 02:35:28 ssttoo Exp
* @author Andrey Demenev <demenev@gmail.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. RUBY syntax highlighting
*
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_RUBY extends Text_Highlighter
{
var $_language = 'ruby';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_RUBY($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?mi)^__END__$)|((?i)")|((?i)%[Qx]([!"#\\$%&\'+\\-*.\\/:;=?@^`|~{<\\[(]))|((?i)\')|((?i)%[wq]([!"#\\$%&\'+\\-*.\\/:;=?@^`|~{<\\[(]))|((?i)\\$(\\W|\\w+))|((?ii)@@?[_a-z][\\d_a-z]*)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)((\\d+|((\\d*\\.\\d+)|(\\d+\\.\\d*)))[eE][+-]?\\d+))|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)0[xX][\\da-f]+l?)|((?i)\\d+l?|\\b0l?\\b)|((?i)0[0-7]+l?)|((?mi)^=begin$)|((?i)#)|((?i)\\s*\\/)/',
0 => '//',
1 => '/((?i)\\\\.)/',
2 => '/((?i)\\\\.)/',
3 => '/((?i)\\\\.)/',
4 => '/((?i)\\\\.)/',
5 => '/((?mi)^__END__$)|((?i)")|((?i)%[Qx]([!"#\\$%&\'+\\-*.\\/:;=?@^`|~{<\\[(]))|((?i)\')|((?i)%[wq]([!"#\\$%&\'+\\-*.\\/:;=?@^`|~{<\\[(]))|((?i)\\$(\\W|\\w+))|((?ii)@@?[_a-z][\\d_a-z]*)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)((\\d+|((\\d*\\.\\d+)|(\\d+\\.\\d*)))[eE][+-]?\\d+))|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)0[xX][\\da-f]+l?)|((?i)\\d+l?|\\b0l?\\b)|((?i)0[0-7]+l?)|((?mi)^=begin$)|((?i)#)|((?i)\\s*\\/)/',
6 => '/((?mi)^__END__$)|((?i)")|((?i)%[Qx]([!"#\\$%&\'+\\-*.\\/:;=?@^`|~{<\\[(]))|((?i)\')|((?i)%[wq]([!"#\\$%&\'+\\-*.\\/:;=?@^`|~{<\\[(]))|((?i)\\$(\\W|\\w+))|((?ii)@@?[_a-z][\\d_a-z]*)|((?i)\\()|((?i)\\[)|((?i)[a-z_]\\w*)|((?i)((\\d+|((\\d*\\.\\d+)|(\\d+\\.\\d*)))[eE][+-]?\\d+))|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)0[xX][\\da-f]+l?)|((?i)\\d+l?|\\b0l?\\b)|((?i)0[0-7]+l?)|((?mi)^=begin$)|((?i)#)|((?i)\\s*\\/)/',
7 => '/((?i)\\$\\w+\\s*:.+\\$)/',
8 => '/((?i)\\$\\w+\\s*:.+\\$)/',
9 => '/((?i)\\\\.)/',
);
$this->_counts = array (
-1 =>
array (
0 => 0,
1 => 0,
2 => 1,
3 => 0,
4 => 1,
5 => 1,
6 => 0,
7 => 0,
8 => 0,
9 => 0,
10 => 5,
11 => 2,
12 => 0,
13 => 0,
14 => 0,
15 => 0,
16 => 0,
17 => 0,
),
0 =>
array (
),
1 =>
array (
0 => 0,
),
2 =>
array (
0 => 0,
),
3 =>
array (
0 => 0,
),
4 =>
array (
0 => 0,
),
5 =>
array (
0 => 0,
1 => 0,
2 => 1,
3 => 0,
4 => 1,
5 => 1,
6 => 0,
7 => 0,
8 => 0,
9 => 0,
10 => 5,
11 => 2,
12 => 0,
13 => 0,
14 => 0,
15 => 0,
16 => 0,
17 => 0,
),
6 =>
array (
0 => 0,
1 => 0,
2 => 1,
3 => 0,
4 => 1,
5 => 1,
6 => 0,
7 => 0,
8 => 0,
9 => 0,
10 => 5,
11 => 2,
12 => 0,
13 => 0,
14 => 0,
15 => 0,
16 => 0,
17 => 0,
),
7 =>
array (
0 => 0,
),
8 =>
array (
0 => 0,
),
9 =>
array (
0 => 0,
),
);
$this->_delim = array (
-1 =>
array (
0 => 'reserved',
1 => 'quotes',
2 => 'quotes',
3 => 'quotes',
4 => 'quotes',
5 => '',
6 => '',
7 => 'brackets',
8 => 'brackets',
9 => '',
10 => '',
11 => '',
12 => '',
13 => '',
14 => '',
15 => 'comment',
16 => 'comment',
17 => 'quotes',
),
0 =>
array (
),
1 =>
array (
0 => '',
),
2 =>
array (
0 => '',
),
3 =>
array (
0 => '',
),
4 =>
array (
0 => '',
),
5 =>
array (
0 => 'reserved',
1 => 'quotes',
2 => 'quotes',
3 => 'quotes',
4 => 'quotes',
5 => '',
6 => '',
7 => 'brackets',
8 => 'brackets',
9 => '',
10 => '',
11 => '',
12 => '',
13 => '',
14 => '',
15 => 'comment',
16 => 'comment',
17 => 'quotes',
),
6 =>
array (
0 => 'reserved',
1 => 'quotes',
2 => 'quotes',
3 => 'quotes',
4 => 'quotes',
5 => '',
6 => '',
7 => 'brackets',
8 => 'brackets',
9 => '',
10 => '',
11 => '',
12 => '',
13 => '',
14 => '',
15 => 'comment',
16 => 'comment',
17 => 'quotes',
),
7 =>
array (
0 => '',
),
8 =>
array (
0 => '',
),
9 =>
array (
0 => '',
),
);
$this->_inner = array (
-1 =>
array (
0 => 'comment',
1 => 'string',
2 => 'string',
3 => 'string',
4 => 'string',
5 => 'var',
6 => 'var',
7 => 'code',
8 => 'code',
9 => 'identifier',
10 => 'number',
11 => 'number',
12 => 'number',
13 => 'number',
14 => 'number',
15 => 'comment',
16 => 'comment',
17 => 'string',
),
0 =>
array (
),
1 =>
array (
0 => 'special',
),
2 =>
array (
0 => 'special',
),
3 =>
array (
0 => 'special',
),
4 =>
array (
0 => 'special',
),
5 =>
array (
0 => 'comment',
1 => 'string',
2 => 'string',
3 => 'string',
4 => 'string',
5 => 'var',
6 => 'var',
7 => 'code',
8 => 'code',
9 => 'identifier',
10 => 'number',
11 => 'number',
12 => 'number',
13 => 'number',
14 => 'number',
15 => 'comment',
16 => 'comment',
17 => 'string',
),
6 =>
array (
0 => 'comment',
1 => 'string',
2 => 'string',
3 => 'string',
4 => 'string',
5 => 'var',
6 => 'var',
7 => 'code',
8 => 'code',
9 => 'identifier',
10 => 'number',
11 => 'number',
12 => 'number',
13 => 'number',
14 => 'number',
15 => 'comment',
16 => 'comment',
17 => 'string',
),
7 =>
array (
0 => 'inlinedoc',
),
8 =>
array (
0 => 'inlinedoc',
),
9 =>
array (
0 => 'special',
),
);
$this->_end = array (
0 => '/(?i)$/',
1 => '/(?i)"/',
2 => '/(?i)%b1%/',
3 => '/(?i)\'/',
4 => '/(?i)%b1%/',
5 => '/(?i)\\)/',
6 => '/(?i)\\]/',
7 => '/(?mi)^=end$/',
8 => '/(?mi)$/',
9 => '/(?i)\\/[iomx]*/',
);
$this->_states = array (
-1 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => -1,
6 => -1,
7 => 5,
8 => 6,
9 => -1,
10 => -1,
11 => -1,
12 => -1,
13 => -1,
14 => -1,
15 => 7,
16 => 8,
17 => 9,
),
0 =>
array (
),
1 =>
array (
0 => -1,
),
2 =>
array (
0 => -1,
),
3 =>
array (
0 => -1,
),
4 =>
array (
0 => -1,
),
5 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => -1,
6 => -1,
7 => 5,
8 => 6,
9 => -1,
10 => -1,
11 => -1,
12 => -1,
13 => -1,
14 => -1,
15 => 7,
16 => 8,
17 => 9,
),
6 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => 3,
4 => 4,
5 => -1,
6 => -1,
7 => 5,
8 => 6,
9 => -1,
10 => -1,
11 => -1,
12 => -1,
13 => -1,
14 => -1,
15 => 7,
16 => 8,
17 => 9,
),
7 =>
array (
0 => -1,
),
8 =>
array (
0 => -1,
),
9 =>
array (
0 => -1,
),
);
$this->_keywords = array (
-1 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 =>
array (
),
6 =>
array (
),
7 => -1,
8 => -1,
9 =>
array (
'reserved' => '/^(__FILE__|require|and|def|end|in|or|self|unless|__LINE__|begin|defined?|ensure|module|redo|super|until|BEGIN|break|do|false|next|rescue|then|when|END|case|else|for|nil|retry|true|while|alias|module_function|private|public|protected|attr_reader|attr_writer|attr_accessor|class|elsif|if|not|return|undef|yield)$/',
),
10 =>
array (
),
11 =>
array (
),
12 =>
array (
),
13 =>
array (
),
14 =>
array (
),
15 => -1,
16 => -1,
17 => -1,
),
0 =>
array (
),
1 =>
array (
0 =>
array (
),
),
2 =>
array (
0 =>
array (
),
),
3 =>
array (
0 =>
array (
),
),
4 =>
array (
0 =>
array (
),
),
5 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 =>
array (
),
6 =>
array (
),
7 => -1,
8 => -1,
9 =>
array (
'reserved' => '/^(__FILE__|require|and|def|end|in|or|self|unless|__LINE__|begin|defined?|ensure|module|redo|super|until|BEGIN|break|do|false|next|rescue|then|when|END|case|else|for|nil|retry|true|while|alias|module_function|private|public|protected|attr_reader|attr_writer|attr_accessor|class|elsif|if|not|return|undef|yield)$/',
),
10 =>
array (
),
11 =>
array (
),
12 =>
array (
),
13 =>
array (
),
14 =>
array (
),
15 => -1,
16 => -1,
17 => -1,
),
6 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
4 => -1,
5 =>
array (
),
6 =>
array (
),
7 => -1,
8 => -1,
9 =>
array (
'reserved' => '/^(__FILE__|require|and|def|end|in|or|self|unless|__LINE__|begin|defined?|ensure|module|redo|super|until|BEGIN|break|do|false|next|rescue|then|when|END|case|else|for|nil|retry|true|while|alias|module_function|private|public|protected|attr_reader|attr_writer|attr_accessor|class|elsif|if|not|return|undef|yield)$/',
),
10 =>
array (
),
11 =>
array (
),
12 =>
array (
),
13 =>
array (
),
14 =>
array (
),
15 => -1,
16 => -1,
17 => -1,
),
7 =>
array (
0 =>
array (
),
),
8 =>
array (
0 =>
array (
),
),
9 =>
array (
0 =>
array (
),
),
);
$this->_parts = array (
0 =>
array (
),
1 =>
array (
0 => NULL,
),
2 =>
array (
0 => NULL,
),
3 =>
array (
0 => NULL,
),
4 =>
array (
0 => NULL,
),
5 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
14 => NULL,
15 => NULL,
16 => NULL,
17 => NULL,
),
6 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
14 => NULL,
15 => NULL,
16 => NULL,
17 => NULL,
),
7 =>
array (
0 => NULL,
),
8 =>
array (
0 => NULL,
),
9 =>
array (
0 => NULL,
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => true,
3 => false,
4 => true,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
17 => false,
),
0 =>
array (
),
1 =>
array (
0 => false,
),
2 =>
array (
0 => false,
),
3 =>
array (
0 => false,
),
4 =>
array (
0 => false,
),
5 =>
array (
0 => false,
1 => false,
2 => true,
3 => false,
4 => true,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
17 => false,
),
6 =>
array (
0 => false,
1 => false,
2 => true,
3 => false,
4 => true,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
17 => false,
),
7 =>
array (
0 => false,
),
8 =>
array (
0 => false,
),
9 =>
array (
0 => false,
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
'reserved' => 'reserved',
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}

View file

@ -0,0 +1,164 @@
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* Abstract base class for Highlighter renderers
*
* PHP versions 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @category Text
* @package Text_Highlighter
* @author Andrey Demenev <demenev@gmail.com>
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version CVS: $Id$
* @link http://pear.php.net/package/Text_Highlighter
*/
/**
* Abstract base class for Highlighter renderers
*
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
* @abstract
*/
class Text_Highlighter_Renderer
{
/**
* Renderer options
*
* @var array
* @access protected
*/
var $_options = array();
/**
* Current language
*
* @var string
* @access protected
*/
var $_language = '';
/**
* Constructor
*
* @access public
*
* @param array $options Rendering options. Renderer-specific.
*/
function __construct($options = array())
{
$this->_options = $options;
}
/**
* PHP4 compatable constructor
*
* @access public
*
* @param array $options Rendering options. Renderer-specific.
*/
function Text_Highlighter_Renderer($options = array())
{
$this->__construct($options);
}
/**
* Resets renderer state
*
* @access public
*
* @param array $options Rendering options. Renderer-specific.
*/
function reset()
{
return;
}
/**
* Preprocesses code
*
* @access public
*
* @param string $str Code to preprocess
* @return string Preprocessed code
*/
function preprocess($str)
{
return $str;
}
/**
* Accepts next token
*
* @abstract
* @access public
*
* @param string $class Token class
* @param string $content Token content
*/
function acceptToken($class, $content)
{
return;
}
/**
* Signals that no more tokens are available
*
* @access public
*
*/
function finalize()
{
return;
}
/**
* Get generated output
*
* @abstract
* @return mixed Renderer-specific
* @access public
*
*/
function getOutput()
{
return;
}
/**
* Set current language
*
* @abstract
* @return void
* @access public
*
*/
function setCurrentLanguage($lang)
{
$this->_language = $lang;
}
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* c-hanging-comment-ender-p: nil
* End:
*/
?>

View file

@ -0,0 +1,200 @@
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* Array renderer.
*
* Produces an array that contains class names and content pairs.
* The array can be enumerated or associative. Associative means
* <code>class =&gt; content</code> pairs.
* Based on the HTML renderer by Andrey Demenev.
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @category Text
* @package Text_Highlighter
* @author Stoyan Stefanov <ssttoo@gmail.com>
* @copyright 2006 Stoyan Stefanov
* @license http://www.php.net/license/3_0.txt PHP License
* @version CVS: $Id$
* @link http://pear.php.net/package/Text_Highlighter
*/
/**
* @ignore
*/
require_once 'Text/Highlighter/Renderer.php';
/**
* Array renderer, based on Andrey Demenev's HTML renderer.
*
* In addition to the options supported by the HTML renderer,
* the following options were also introduced:
* <ul><li>htmlspecialchars - whether or not htmlspecialchars() will
* be called on the content, default TRUE</li>
* <li>enumerated - type of array produced, default FALSE,
* meaning associative array</li>
* </ul>
*
*
* @author Stoyan Stefanov <ssttoo@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2006 Stoyan Stefanov
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: 0.5.0
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_Renderer_Array extends Text_Highlighter_Renderer
{
/**#@+
* @access private
*/
/**
* Tab size
*
* @var integer
*/
var $_tabsize = 4;
/**
* Should htmlentities() will be called
*
* @var boolean
*/
var $_htmlspecialchars = true;
/**
* Enumerated or associative array
*
* @var integer
*/
var $_enumerated = false;
/**
* Array containing highlighting rules
*
* @var array
*/
var $_output = array();
/**#@-*/
/**
* Preprocesses code
*
* @access public
*
* @param string $str Code to preprocess
* @return string Preprocessed code
*/
function preprocess($str)
{
// normalize whitespace and tabs
$str = str_replace("\r\n","\n", $str);
$str = str_replace("\r","\n", $str);
// some browsers refuse to display empty lines
$str = preg_replace('~^$~m'," ", $str);
$str = str_replace("\t",str_repeat(' ', $this->_tabsize), $str);
return rtrim($str);
}
/**
* Resets renderer state
*
* Descendents of Text_Highlighter call this method from the constructor,
* passing $options they get as parameter.
*
* @access protected
*/
function reset()
{
$this->_output = array();
$this->_lastClass = 'default';
if (isset($this->_options['tabsize'])) {
$this->_tabsize = $this->_options['tabsize'];
}
if (isset($this->_options['htmlspecialchars'])) {
$this->_htmlspecialchars = $this->_options['htmlspecialchars'];
}
if (isset($this->_options['enumerated'])) {
$this->_enumerated = $this->_options['enumerated'];
}
}
/**
* Accepts next token
*
* @abstract
* @access public
* @param string $class Token class
* @param string $content Token content
*/
function acceptToken($class, $content)
{
$theClass = $this->_getFullClassName($class);
if ($this->_htmlspecialchars) {
$content = htmlspecialchars($content);
}
if ($this->_enumerated) {
$this->_output[] = array($class, $content);
} else {
$this->_output[][$class] = $content;
}
$this->_lastClass = $class;
}
/**
* Given a CSS class name, returns the class name
* with language name prepended, if necessary
*
* @access private
*
* @param string $class Token class
*/
function _getFullClassName($class)
{
if (!empty($this->_options['use_language'])) {
$theClass = $this->_language . '-' . $class;
} else {
$theClass = $class;
}
return $theClass;
}
/**
* Get generated output
*
* @abstract
* @return array Highlighted code as an array
* @access public
*/
function getOutput()
{
return $this->_output;
}
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* c-hanging-comment-ender-p: nil
* End:
*/
?>

View file

@ -0,0 +1,238 @@
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* BB code renderer.
*
* This BB renderer produces BB code, ready to be pasted in bulletin boards and
* other applications that accept BB code. Based on the HTML renderer by Andrey Demenev.
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @category Text
* @package Text_Highlighter
* @author Stoyan Stefanov <ssttoo@gmail.com>
* @copyright 2005 Stoyan Stefanov
* @license http://www.php.net/license/3_0.txt PHP License
* @version CVS: $Id$
* @link http://pear.php.net/package/Text_Highlighter
*/
/**
* @ignore
*/
require_once 'Text/Highlighter/Renderer.php';
/**
* BB code renderer, based on Andrey Demenev's HTML renderer.
*
* Elements of $options argument of constructor (each being optional):
*
* - 'numbers' - Line numbering TRUE or FALSE
* - 'tabsize' - Tab size, default is 4
* - 'bb_tags' - An array containing three BB tags, see below
* - 'tag_brackets' - An array that conains opening and closing tags, [ and ]
* - 'colors' - An array with all the colors to be used for highlighting
*
* The default BB tags are:
* - 'color' => 'color'
* - 'list' => 'list'
* - 'list_item' => '*'
*
* The default colors for the highlighter are:
* - 'default' => 'Black',
* - 'code' => 'Gray',
* - 'brackets' => 'Olive',
* - 'comment' => 'Orange',
* - 'mlcomment' => 'Orange',
* - 'quotes' => 'Darkred',
* - 'string' => 'Red',
* - 'identifier' => 'Blue',
* - 'builtin' => 'Teal',
* - 'reserved' => 'Green',
* - 'inlinedoc' => 'Blue',
* - 'var' => 'Darkblue',
* - 'url' => 'Blue',
* - 'special' => 'Navy',
* - 'number' => 'Maroon',
* - 'inlinetags' => 'Blue',
*
*
* @author Stoyan Stefanov <ssttoo@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 20045 Stoyan Stefanov
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: 0.5.0
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_Renderer_BB extends Text_Highlighter_Renderer_Array
{
/**#@+
* @access private
*/
/**
* Line numbering - will use the specified BB tag for listings
*
* @var boolean
*/
var $_numbers = false;
/**
* BB tags to be used
*
* @var array
*/
var $_bb_tags = array (
'color' => 'color',
'list' => 'list',
'list_item' => '*',
'code' => 'code',
);
/**
* BB brackets - [ and ]
*
* @var array
*/
var $_tag_brackets = array ('start' => '[', 'end' => ']');
/**
* Colors map
*
* @var boolean
*/
var $_colors = array(
'default' => 'Black',
'code' => 'Gray',
'brackets' => 'Olive',
'comment' => 'Orange',
'mlcomment' => 'Orange',
'quotes' => 'Darkred',
'string' => 'Red',
'identifier' => 'Blue',
'builtin' => 'Teal',
'reserved' => 'Green',
'inlinedoc' => 'Blue',
'var' => 'Darkblue',
'url' => 'Blue',
'special' => 'Navy',
'number' => 'Maroon',
'inlinetags' => 'Blue',
);
/**#@-*/
/**
* Resets renderer state
*
* @access protected
*
*
* Descendents of Text_Highlighter call this method from the constructor,
* passing $options they get as parameter.
*/
function reset()
{
parent::reset();
if (isset($this->_options['numbers'])) {
$this->_numbers = $this->_options['numbers'];
}
if (isset($this->_options['bb_tags'])) {
$this->_bb_tags = array_merge($this->_bb_tags, $this->_options['bb_tags']);
}
if (isset($this->_options['tag_brackets'])) {
$this->_tag_brackets = array_merge($this->_tag_brackets, $this->_options['tag_brackets']);
}
if (isset($this->_options['colors'])) {
$this->_colors = array_merge($this->_colors, $this->_options['colors']);
}
}
/**
* Signals that no more tokens are available
*
* @abstract
* @access public
*
*/
function finalize()
{
// get parent's output
parent::finalize();
$output = parent::getOutput();
$bb_output = '';
$color_start = $this->_tag_brackets['start'] . $this->_bb_tags['color'] . '=%s' . $this->_tag_brackets['end'];
$color_end = $this->_tag_brackets['start'] . '/' . $this->_bb_tags['color'] . $this->_tag_brackets['end'];
// loop through each class=>content pair
foreach ($output AS $token) {
if ($this->_enumerated) {
$class = $token[0];
$content = $token[1];
} else {
$key = key($token);
$class = $key;
$content = $token[$key];
}
$iswhitespace = ctype_space($content);
if (!$iswhitespace && !empty($this->_colors[$class])) {
$bb_output .= sprintf($color_start, $this->_colors[$class]);
$bb_output .= $content;
$bb_output .= $color_end;
} else {
$bb_output .= $content;
}
}
if ($this->_numbers) {
$item_tag = $this->_tag_brackets['start'] .
$this->_bb_tags['list_item'] .
$this->_tag_brackets['end'];
$this->_output = $item_tag . str_replace("\n", "\n". $item_tag .' ', $bb_output);
$this->_output = $this->_tag_brackets['start'] .
$this->_bb_tags['list'] .
$this->_tag_brackets['end'] .
$this->_output .
$this->_tag_brackets['start'] .
'/'.
$this->_bb_tags['list'] .
$this->_tag_brackets['end']
;
} else {
$this->_output = $this->_tag_brackets['start'] .
$this->_bb_tags['code'] .
$this->_tag_brackets['end'] .
$bb_output .
$this->_tag_brackets['start'] .
'/' .
$this->_bb_tags['code'] .
$this->_tag_brackets['end'];
}
}
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* c-hanging-comment-ender-p: nil
* End:
*/
?>

View file

@ -0,0 +1,210 @@
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* Console renderer
*
* PHP versions 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @category Text
* @package Text_Highlighter
* @author Andrey Demenev <demenev@gmail.com>
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version CVS: $Id$
* @link http://pear.php.net/package/Text_Highlighter
*/
/**
* @ignore
*/
require_once 'Text/Highlighter/Renderer.php';
define ('HL_CONSOLE_DEFCOLOR', "\033[0m");
/**
* Console renderer
*
* Suitable for displaying text on color-capable terminals, directly
* or trough less -r
*
* Elements of $options argument of constructor (each being optional):
*
* - 'numbers' - whether to add line numbers
* - 'tabsize' - Tab size
* - 'colors' - additional colors
*
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_Renderer_Console extends Text_Highlighter_Renderer
{
/**#@+
* @access private
*/
/**
* class of last outputted text chunk
*
* @var string
*/
var $_lastClass;
/**
* Line numbering
*
* @var boolean
*/
var $_numbers = false;
/**
* Tab size
*
* @var integer
*/
var $_tabsize = 4;
/**
* Highlighted code
*
* @var string
*/
var $_output = '';
/**#@-*/
var $_colors = array();
var $_defColors = array(
'default' => "\033[0m",
'inlinetags' => "\033[31m",
'brackets' => "\033[36m",
'quotes' => "\033[34m",
'inlinedoc' => "\033[34m",
'var' => "\033[1m",
'types' => "\033[32m",
'number' => "\033[32m",
'string' => "\033[31m",
'reserved' => "\033[35m",
'comment' => "\033[33m",
'mlcomment' => "\033[33m",
);
function preprocess($str)
{
// normalize whitespace and tabs
$str = str_replace("\r\n","\n", $str);
$str = str_replace("\t",str_repeat(' ', $this->_tabsize), $str);
return rtrim($str);
}
/**
* Resets renderer state
*
* @access protected
*
*
* Descendents of Text_Highlighter call this method from the constructor,
* passing $options they get as parameter.
*/
function reset()
{
$this->_lastClass = '';
if (isset($this->_options['numbers'])) {
$this->_numbers = (bool)$this->_options['numbers'];
} else {
$this->_numbers = false;
}
if (isset($this->_options['tabsize'])) {
$this->_tabsize = $this->_options['tabsize'];
} else {
$this->_tabsize = 4;
}
if (isset($this->_options['colors'])) {
$this->_colors = array_merge($this->_defColors, $this->_options['colors']);
} else {
$this->_colors = $this->_defColors;
}
$this->_output = '';
}
/**
* Accepts next token
*
* @access public
*
* @param string $class Token class
* @param string $content Token content
*/
function acceptToken($class, $content)
{
if (isset($this->_colors[$class])) {
$color = $this->_colors[$class];
} else {
$color = $this->_colors['default'];
}
if ($this->_lastClass != $class) {
$this->_output .= $color;
}
$content = str_replace("\n", $this->_colors['default'] . "\n" . $color, $content);
$content .= $this->_colors['default'];
$this->_output .= $content;
}
/**
* Signals that no more tokens are available
*
* @access public
*
*/
function finalize()
{
if ($this->_numbers) {
$nlines = substr_count($this->_output, "\n") + 1;
$len = strlen($nlines);
$i = 1;
$this->_output = preg_replace_callback('~^~m', function () use (&$i, $len) {
return ' ' . str_pad($i++, $len, ' ', STR_PAD_LEFT) . ': ';
}, $this->_output);
}
$this->_output .= HL_CONSOLE_DEFCOLOR . "\n";
}
/**
* Get generated output
*
* @return string Highlighted code
* @access public
*
*/
function getOutput()
{
return $this->_output;
}
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* c-hanging-comment-ender-p: nil
* End:
*/
?>

View file

@ -0,0 +1,465 @@
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* HTML renderer
*
* PHP versions 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @category Text
* @package Text_Highlighter
* @author Andrey Demenev <demenev@gmail.com>
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version CVS: $Id$
* @link http://pear.php.net/package/Text_Highlighter
*/
/**
* @ignore
*/
require_once 'Text/Highlighter/Renderer.php';
require_once 'Text/Highlighter/Renderer/Array.php';
// BC trick : only define constants if Text/Highlighter.php
// is not yet included
if (!defined('HL_NUMBERS_LI')) {
/**#@+
* Constant for use with $options['numbers']
*/
/**
* use numbered list, deprecated, use HL_NUMBERS_OL instaed
* @deprecated
*/
define ('HL_NUMBERS_LI' , 1);
/**
* Use 2-column table with line numbers in left column and code in right column.
*/
define ('HL_NUMBERS_TABLE' , 2);
/**#@-*/
}
/**#@+
* Constant for use with $options['numbers']
*/
/**
* Use numbered list
*/
define ('HL_NUMBERS_OL', 1);
/**
* Use non-numbered list
*/
define ('HL_NUMBERS_UL', 3);
/**#@-*/
/**
* HTML renderer
*
* Elements of $options argument of constructor (each being optional):
*
* - 'numbers' - Line numbering style 0 or {@link HL_NUMBERS_TABLE}
* or {@link HL_NUMBERS_UL} or {@link HL_NUMBERS_OL}
* - 'numbers_start' - starting number for numbered lines
* - 'tabsize' - Tab size
* - 'style_map' - Mapping of keywords to formatting rules using inline styles
* - 'class_map' - Mapping of keywords to formatting rules using class names
* - 'doclinks' - array that has keys "url", "target" and "elements", used for
* generating links to online documentation
* - 'use_language' - class names will be prefixed with language, like "php-reserved" or "css-code"
*
* Example of setting documentation links:
* $options['doclinks'] = array(
* 'url' => 'http://php.net/%s',
* 'target' => '_blank',
* 'elements' => array('reserved', 'identifier')
* );
*
* Example of setting class names map:
* $options['class_map'] = array(
* 'main' => 'my-main',
* 'table' => 'my-table',
* 'gutter' => 'my-gutter',
* 'brackets' => 'my-brackets',
* 'builtin' => 'my-builtin',
* 'code' => 'my-code',
* 'comment' => 'my-comment',
* 'default' => 'my-default',
* 'identifier' => 'my-identifier',
* 'inlinedoc' => 'my-inlinedoc',
* 'inlinetags' => 'my-inlinetags',
* 'mlcomment' => 'my-mlcomment',
* 'number' => 'my-number',
* 'quotes' => 'my-quotes',
* 'reserved' => 'my-reserved',
* 'special' => 'my-special',
* 'string' => 'my-string',
* 'url' => 'my-url',
* 'var' => 'my-var',
* );
*
* Example of setting styles mapping:
* $options['style_map'] = array(
* 'main' => 'color: black',
* 'table' => 'border: 1px solid black',
* 'gutter' => 'background-color: yellow',
* 'brackets' => 'color: blue',
* 'builtin' => 'color: red',
* 'code' => 'color: green',
* 'comment' => 'color: orange',
* // ....
* );
*
*
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_Renderer_Html extends Text_Highlighter_Renderer_Array
{
/**#@+
* @access private
*/
/**
* Line numbering style
*
* @var integer
*/
var $_numbers = 0;
/**
* For numberered lines - where to start
*
* @var integer
*/
var $_numbers_start = 0;
/**
* Tab size
*
* @var integer
*/
var $_tabsize = 4;
/**
* Highlighted code
*
* @var string
*/
var $_output = '';
/**
* Mapping of keywords to formatting rules using inline styles
*
* @var array
*/
var $_style_map = array();
/**
* Mapping of keywords to formatting rules using class names
*
* @var array
*/
var $_class_map = array(
'main' => 'hl-main',
'table' => 'hl-table',
'gutter' => 'hl-gutter',
'brackets' => 'hl-brackets',
'builtin' => 'hl-builtin',
'code' => 'hl-code',
'comment' => 'hl-comment',
'default' => 'hl-default',
'identifier' => 'hl-identifier',
'inlinedoc' => 'hl-inlinedoc',
'inlinetags' => 'hl-inlinetags',
'mlcomment' => 'hl-mlcomment',
'number' => 'hl-number',
'prepro' => 'hl-prepro',
'quotes' => 'hl-quotes',
'reserved' => 'hl-reserved',
'special' => 'hl-special',
'string' => 'hl-string',
'types' => 'hl-types',
'url' => 'hl-url',
'var' => 'hl-var',
);
/**
* Setup for links to online documentation
*
* This is an array with keys:
* - url, ex. http://php.net/%s
* - target, ex. _blank, default - no target
* - elements, default is <code>array('reserved', 'identifier')</code>
*
* @var array
*/
var $_doclinks = array();
/**#@-*/
/**
* Resets renderer state
*
* @access protected
*
*
* Descendents of Text_Highlighter call this method from the constructor,
* passing $options they get as parameter.
*/
function reset()
{
$this->_output = '';
if (isset($this->_options['numbers'])) {
$this->_numbers = (int)$this->_options['numbers'];
if ($this->_numbers != HL_NUMBERS_LI
&& $this->_numbers != HL_NUMBERS_UL
&& $this->_numbers != HL_NUMBERS_OL
&& $this->_numbers != HL_NUMBERS_TABLE
) {
$this->_numbers = 0;
}
}
if (isset($this->_options['tabsize'])) {
$this->_tabsize = $this->_options['tabsize'];
}
if (isset($this->_options['numbers_start'])) {
$this->_numbers_start = intval($this->_options['numbers_start']);
}
if (isset($this->_options['doclinks']) &&
is_array($this->_options['doclinks']) &&
!empty($this->_options['doclinks']['url'])
) {
$this->_doclinks = $this->_options['doclinks']; // keys: url, target, elements array
if (empty($this->_options['doclinks']['elements'])) {
$this->_doclinks['elements'] = array('reserved', 'identifier');
}
}
if (isset($this->_options['style_map'])) {
$this->_style_map = $this->_options['style_map'];
}
if (isset($this->_options['class_map'])) {
$this->_class_map = array_merge($this->_class_map, $this->_options['class_map']);
}
$this->_htmlspecialchars = true;
}
/**
* Given a CSS class name, returns the class name
* with language name prepended, if necessary
*
* @access private
*
* @param string $class Token class
*/
function _getFullClassName($class)
{
if (!empty($this->_options['use_language'])) {
$the_class = $this->_language . '-' . $class;
} else {
$the_class = $class;
}
return $the_class;
}
/**
* Signals that no more tokens are available
*
* @access public
*/
function finalize()
{
// get parent's output
parent::finalize();
$output = parent::getOutput();
$html_output = '';
$numbers_li = false;
if (
$this->_numbers == HL_NUMBERS_LI ||
$this->_numbers == HL_NUMBERS_UL ||
$this->_numbers == HL_NUMBERS_OL
)
{
$numbers_li = true;
}
// loop through each class=>content pair
foreach ($output AS $token) {
if ($this->_enumerated) {
$key = false;
$the_class = $token[0];
$content = $token[1];
} else {
$key = key($token);
$the_class = $key;
$content = $token[$key];
}
$span = $this->_getStyling($the_class);
$decorated_output = $this->_decorate($content, $key);
if ($numbers_li == true) {
// end span tags before end of li, and re-open on next line
$lastSpanTag = str_replace("%s</span>", "", $span);
$span = sprintf($span, $decorated_output);
$span = str_replace("\n", "</span></li>\n<li>$lastSpanTag&nbsp;", $span);
$html_output .= $span;
} else {
$html_output .= sprintf($span, $decorated_output);
}
}
// format lists
if (!empty($this->_numbers) && $numbers_li == true) {
// additional whitespace for browsers that do not display
// empty list items correctly
$this->_output = '<li>&nbsp;' . $html_output . '</li>';
$start = '';
if ($this->_numbers == HL_NUMBERS_OL && intval($this->_numbers_start) > 0) {
$start = ' start="' . $this->_numbers_start . '"';
}
$list_tag = 'ol';
if ($this->_numbers == HL_NUMBERS_UL) {
$list_tag = 'ul';
}
$this->_output = '<' . $list_tag . $start
. ' ' . $this->_getStyling('main', false) . '>'
. $this->_output . '</'. $list_tag .'>';
// render a table
} else if ($this->_numbers == HL_NUMBERS_TABLE) {
$start_number = 0;
if (intval($this->_numbers_start)) {
$start_number = $this->_numbers_start - 1;
}
$numbers = '';
$nlines = substr_count($html_output,"\n")+1;
for ($i=1; $i <= $nlines; $i++) {
$numbers .= ($start_number + $i) . "\n";
}
$this->_output = '<table ' . $this->_getStyling('table', false) . ' width="100%"><tr>' .
'<td '. $this->_getStyling('gutter', false) .' align="right" valign="top">' .
'<pre>' . $numbers . '</pre></td><td '. $this->_getStyling('main', false) .
' valign="top"><pre>' .
$html_output . '</pre></td></tr></table>';
}
if (!$this->_numbers) {
$this->_output = '<pre>' . $html_output . '</pre>';
}
$this->_output = '<div ' . $this->_getStyling('main', false) . '>' . $this->_output . '</div>';
}
/**
* Provides additional formatting to a keyword
*
* @param string $content Keyword
* @return string Keyword with additional formatting
* @access public
*
*/
function _decorate($content, $key = false)
{
// links to online documentation
if (!empty($this->_doclinks) &&
!empty($this->_doclinks['url']) &&
in_array($key, $this->_doclinks['elements'])
) {
$link = '<a href="'. sprintf($this->_doclinks['url'], $content) . '"';
if (!empty($this->_doclinks['target'])) {
$link.= ' target="' . $this->_doclinks['target'] . '"';
}
$link .= '>';
$link.= $content;
$link.= '</a>';
$content = $link;
}
return $content;
}
/**
* Returns <code>class</code> and/or <code>style</code> attribute,
* optionally enclosed in a <code>span</code> tag
*
* @param string $class Class name
* @paran boolean $span_tag Whether or not to return styling attributes in a <code>&gt;span&lt;</code> tag
* @return string <code>span</code> tag or just a <code>class</code> and/or <code>style</code> attributes
* @access private
*/
function _getStyling($class, $span_tag = true)
{
$attrib = '';
if (!empty($this->_style_map) &&
!empty($this->_style_map[$class])
) {
$attrib = 'style="'. $this->_style_map[$class] .'"';
}
if (!empty($this->_class_map) &&
!empty($this->_class_map[$class])
) {
if ($attrib) {
$attrib .= ' ';
}
$attrib .= 'class="'. $this->_getFullClassName($this->_class_map[$class]) .'"';
}
if ($span_tag) {
$span = '<span ' . $attrib . '>%s</span>';
return $span;
} else {
return $attrib;
}
}
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* c-hanging-comment-ender-p: nil
* End:
*/
?>

View file

@ -0,0 +1,187 @@
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* HTML renderer that uses only basic html tags
*
* PHP versions 4 and 5. Based on the "normal" HTML renderer by Andrey Demenev.
* It's designed to work with user agents that support only a limited number of
* HTML tags. Like the iPod which supports only b, i, u and a.
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @category Text
* @package Text_Highlighter
* @author Stoyan Stefanov <ssttoo@gmail.com>
* @copyright 2005 Stoyan Stefanov
* @license http://www.php.net/license/3_0.txt PHP License
* @version CVS: $Id$
* @link http://pear.php.net/package/Text_Highlighter
*/
/**
* @ignore
*/
require_once 'Text/Highlighter/Renderer.php';
require_once 'Text/Highlighter/Renderer/Array.php';
/**
* HTML basic tags renderer, based on Andrey Demenev's HTML renderer.
*
* Elements of $options argument of constructor (each being optional):
*
* - 'numbers' - Line numbering TRUE or FALSE. Default is FALSE.
* - 'tabsize' - Tab size, default is 4.
* - 'tags' - Array, containing the tags to be used for highlighting
*
* Here's the listing of the default tags:
* - 'default' => '',
* - 'code' => '',
* - 'brackets' => 'b',
* - 'comment' => 'i',
* - 'mlcomment' => 'i',
* - 'quotes' => '',
* - 'string' => 'i',
* - 'identifier' => 'b',
* - 'builtin' => 'b',
* - 'reserved' => 'u',
* - 'inlinedoc' => 'i',
* - 'var' => 'b',
* - 'url' => 'i',
* - 'special' => '',
* - 'number' => '',
* - 'inlinetags' => ''
*
* @author Stoyan Stefanov <ssttoo@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2005 Stoyan Stefanov
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: 0.5.0
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_Renderer_HtmlTags extends Text_Highlighter_Renderer_Array
{
/**#@+
* @access private
*/
/**
* Line numbering - will use 'ol' tag
*
* @var boolean
*/
var $_numbers = false;
/**
* HTML tags map
*
* @var array
*/
var $_hilite_tags = array(
'default' => '',
'code' => '',
'brackets' => 'b',
'comment' => 'i',
'mlcomment' => 'i',
'quotes' => '',
'string' => 'i',
'identifier' => 'b',
'builtin' => 'b',
'reserved' => 'u',
'inlinedoc' => 'i',
'var' => 'b',
'url' => 'i',
'special' => '',
'number' => '',
'inlinetags' => '',
);
/**#@-*/
/**
* Resets renderer state
*
* @access protected
*
*
* Descendents of Text_Highlighter call this method from the constructor,
* passing $options they get as parameter.
*/
function reset()
{
parent::reset();
if (isset($this->_options['numbers'])) {
$this->_numbers = $this->_options['numbers'];
}
if (isset($this->_options['tags'])) {
$this->_hilite_tags = array_merge($this->_tags, $this->_options['tags']);
}
}
/**
* Signals that no more tokens are available
*
* @abstract
* @access public
*
*/
function finalize()
{
// get parent's output
parent::finalize();
$output = parent::getOutput();
$html_output = '';
// loop through each class=>content pair
foreach ($output AS $token) {
if ($this->_enumerated) {
$class = $token[0];
$content = $token[1];
} else {
$key = key($token);
$class = $key;
$content = $token[$key];
}
$iswhitespace = ctype_space($content);
if (!$iswhitespace && !empty($this->_hilite_tags[$class])) {
$html_output .= '<'. $this->_hilite_tags[$class] . '>' . $content . '</'. $this->_hilite_tags[$class] . '>';
} else {
$html_output .= $content;
}
}
if ($this->_numbers) {
/* additional whitespace for browsers that do not display
empty list items correctly */
$html_output = '<li>&nbsp;' . str_replace("\n", "</li>\n<li>&nbsp;", $html_output) . '</li>';
$this->_output = '<ol>' . str_replace(' ', '&nbsp;', $html_output) . '</ol>';
} else {
$this->_output = '<pre>' . $html_output . '</pre>';
}
}
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* c-hanging-comment-ender-p: nil
* End:
*/
?>

View file

@ -0,0 +1,86 @@
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* JSON renderer.
*
* Based on the HTML renderer by Andrey Demenev.
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @category Text
* @package Text_Highlighter
* @author Stoyan Stefanov <ssttoo@gmail.com>
* @copyright 2006 Stoyan Stefanov
* @license http://www.php.net/license/3_0.txt PHP License
* @version CVS: $Id$
* @link http://pear.php.net/package/Text_Highlighter
*/
/**
* @ignore
*/
require_once 'Text/Highlighter/Renderer.php';
require_once 'Text/Highlighter/Renderer/Array.php';
/**
* JSON renderer, based on Andrey Demenev's HTML renderer.
*
* @author Stoyan Stefanov <ssttoo@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2006 Stoyan Stefanov
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: 0.5.0
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_Renderer_JSON extends Text_Highlighter_Renderer_Array
{
/**
* Signals that no more tokens are available
*
* @abstract
* @access public
*/
function finalize()
{
parent::finalize();
$output = parent::getOutput();
$json_array = array();
foreach ($output AS $token) {
if ($this->_enumerated) {
$json_array[] = '["' . $token[0] . '","' . $token[1] . '"]';
} else {
$key = key($token);
$json_array[] = '{"class": "' . $key . '","content":"' . $token[$key] . '"}';
}
}
$this->_output = '['. implode(',', $json_array) .']';
$this->_output = str_replace("\n", '\n', $this->_output);
}
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* c-hanging-comment-ender-p: nil
* End:
*/
?>

View file

@ -0,0 +1,104 @@
<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* XML renderer.
*
* Based on the HTML renderer by Andrey Demenev.
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @category Text
* @package Text_Highlighter
* @author Stoyan Stefanov <ssttoo@gmail.com>
* @copyright 2006 Stoyan Stefanov
* @license http://www.php.net/license/3_0.txt PHP License
* @version CVS: $Id$
* @link http://pear.php.net/package/Text_Highlighter
*/
/**
* @ignore
*/
require_once 'Text/Highlighter/Renderer.php';
require_once 'Text/Highlighter/Renderer/Array.php';
require_once 'XML/Serializer.php';
/**
* XML renderer, based on Andrey Demenev's HTML renderer.
*
* @author Stoyan Stefanov <ssttoo@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2006 Stoyan Stefanov
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: 0.5.0
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_Renderer_XML extends Text_Highlighter_Renderer_Array
{
/**
* Options for XML_Serializer
*
* @access private
* @var array
*/
var $_serializer_options = array();
/**
* Resets renderer state
*
* Descendents of Text_Highlighter call this method from the constructor,
* passing $options they get as parameter.
*
* @access protected
*/
function reset()
{
parent::reset();
if (isset($this->_options['xml_serializer'])) {
$this->_serializer_options = $this->_options['xml_serializer'];
}
}
/**
* Signals that no more tokens are available
*
* @abstract
* @access public
*/
function finalize()
{
// call parent's finalize(), then serialize array into XML
parent::finalize();
$output = parent::getOutput();
$serializer = new XML_Serializer($this->_serializer_options);
$result = $serializer->serialize($output);
if ($result === true) {
$this->_output = $serializer->getSerializedData();
}
}
}
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* c-hanging-comment-ender-p: nil
* End:
*/
?>

View file

@ -0,0 +1,1225 @@
<?php
/**
* Auto-generated class. SH syntax highlighting
*
* This highlighter is EXPERIMENTAL. It may work incorrectly.
* It is a crude hack of the perl syntax, which itself wasn't so good.
* But this seems to work OK.
*
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: : sh.xml,v 1.2 2007/06/14 00:15:50 ssttoo Exp
* @author Noah Spurrier <noah@noah.org>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. SH syntax highlighting
*
* @author Noah Spurrier <noah@noah.org>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_SH extends Text_Highlighter
{
var $_language = 'sh';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_SH($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?m)^(#!)(.*))|(\\{)|(\\()|(\\[)|((use)\\s+([\\w:]*))|((?Us)\\b(q[wq]\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|((?Us)\\b(q\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|(#.*)|((?x)(s|tr) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2)((\\\\.|[^\\\\])*?)(\\2[ecgimosx]*))|((?x)(m) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2[ecgimosx]*))|( \\/)|(\\$#?[1-9\'`@!])|((?i)(\\$#?|[@%*])([a-z1-9_]+::)*([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)\\$([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)(\\{)([a-z1-9]+)(\\}))|((?i)[\\$@%]#?\\{[a-z1-9]+\\})|(`)|(\')|(")|((?i)[a-z_]\\w*)|(\\d*\\.?\\d+)/',
0 => '/((?m)^(#!)(.*))|(\\{)|(\\()|(\\[)|((use)\\s+([\\w:]*))|((?Us)\\b(q[wq]\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|((?Us)\\b(q\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|(#.*)|((?x)(s|tr) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2)((\\\\.|[^\\\\])*?)(\\2[ecgimosx]*))|((?x)(m) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2[ecgimosx]*))|( \\/)|(\\$#?[1-9\'`@!])|((?i)(\\$#?|[@%*])([a-z1-9_]+::)*([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)\\$([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)(\\{)([a-z1-9]+)(\\}))|((?i)[\\$@%]#?\\{[a-z1-9]+\\})|(`)|(\')|(")|((?i)[a-z_]\\w*)|(\\d*\\.?\\d+)/',
1 => '/((?m)^(#!)(.*))|(\\{)|(\\()|(\\[)|((use)\\s+([\\w:]*))|((?Us)\\b(q[wq]\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|((?Us)\\b(q\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|(#.*)|((?x)(s|tr) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2)((\\\\.|[^\\\\])*?)(\\2[ecgimosx]*))|((?x)(m) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2[ecgimosx]*))|( \\/)|((?i)([a-z1-9_]+)(\\s*=>))|(\\$#?[1-9\'`@!])|((?i)(\\$#?|[@%*])([a-z1-9_]+::)*([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)\\$([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)(\\{)([a-z1-9]+)(\\}))|((?i)[\\$@%]#?\\{[a-z1-9]+\\})|(`)|(\')|(")|((?i)[a-z_]\\w*)|(\\d*\\.?\\d+)/',
2 => '/((?m)^(#!)(.*))|(\\{)|(\\()|(\\[)|((use)\\s+([\\w:]*))|((?Us)\\b(q[wq]\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|((?Us)\\b(q\\s*((\\{)|(\\()|(\\[)|(\\<)|([\\W\\S])))(?=(.*)((?(3)\\})(?(4)\\))(?(5)\\])(?(6)\\>)(?(7)\\7))))|(#.*)|((?x)(s|tr) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2)((\\\\.|[^\\\\])*?)(\\2[ecgimosx]*))|((?x)(m) ([|#~`!@$%^&*-+=\\\\;:\'",.\\/?]) ((\\\\.|[^\\\\])*?) (\\2[ecgimosx]*))|( \\/)|(\\$#?[1-9\'`@!])|((?i)(\\$#?|[@%*])([a-z1-9_]+::)*([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)\\$([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)(\\{)([a-z1-9]+)(\\}))|((?i)[\\$@%]#?\\{[a-z1-9]+\\})|(`)|(\')|(")|((?i)[a-z_]\\w*)|(\\d*\\.?\\d+)/',
3 => '/(\\$#?[1-9\'`@!])|((?i)\\$([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)[\\$@%]#?\\{[a-z1-9]+\\})|(\\\\[\\\\"\'`tnr\\$\\{@])/',
4 => '/(\\\\\\\\|\\\\"|\\\\\'|\\\\`)/',
5 => '/(\\\\\\/)/',
6 => '/(\\$#?[1-9\'`@!])|((?i)\\$([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)[\\$@%]#?\\{[a-z1-9]+\\})|(\\\\\\\\|\\\\"|\\\\\'|\\\\`)/',
7 => '/(\\\\\\\\|\\\\"|\\\\\'|\\\\`)/',
8 => '/(\\$#?[1-9\'`@!])|((?i)\\$([a-z1-9_]+|\\^(?-i)[A-Z]?(?i)))|((?i)[\\$@%]#?\\{[a-z1-9]+\\})|(\\\\[\\\\"\'`tnr\\$\\{@])/',
);
$this->_counts = array (
-1 =>
array (
0 => 2,
1 => 0,
2 => 0,
3 => 0,
4 => 2,
5 => 9,
6 => 9,
7 => 0,
8 => 8,
9 => 5,
10 => 0,
11 => 0,
12 => 3,
13 => 1,
14 => 3,
15 => 0,
16 => 0,
17 => 0,
18 => 0,
19 => 0,
20 => 0,
),
0 =>
array (
0 => 2,
1 => 0,
2 => 0,
3 => 0,
4 => 2,
5 => 9,
6 => 9,
7 => 0,
8 => 8,
9 => 5,
10 => 0,
11 => 0,
12 => 3,
13 => 1,
14 => 3,
15 => 0,
16 => 0,
17 => 0,
18 => 0,
19 => 0,
20 => 0,
),
1 =>
array (
0 => 2,
1 => 0,
2 => 0,
3 => 0,
4 => 2,
5 => 9,
6 => 9,
7 => 0,
8 => 8,
9 => 5,
10 => 0,
11 => 2,
12 => 0,
13 => 3,
14 => 1,
15 => 3,
16 => 0,
17 => 0,
18 => 0,
19 => 0,
20 => 0,
21 => 0,
),
2 =>
array (
0 => 2,
1 => 0,
2 => 0,
3 => 0,
4 => 2,
5 => 9,
6 => 9,
7 => 0,
8 => 8,
9 => 5,
10 => 0,
11 => 0,
12 => 3,
13 => 1,
14 => 3,
15 => 0,
16 => 0,
17 => 0,
18 => 0,
19 => 0,
20 => 0,
),
3 =>
array (
0 => 0,
1 => 1,
2 => 0,
3 => 0,
),
4 =>
array (
0 => 0,
),
5 =>
array (
0 => 0,
),
6 =>
array (
0 => 0,
1 => 1,
2 => 0,
3 => 0,
),
7 =>
array (
0 => 0,
),
8 =>
array (
0 => 0,
1 => 1,
2 => 0,
3 => 0,
),
);
$this->_delim = array (
-1 =>
array (
0 => '',
1 => 'brackets',
2 => 'brackets',
3 => 'brackets',
4 => '',
5 => 'quotes',
6 => 'quotes',
7 => '',
8 => '',
9 => '',
10 => 'quotes',
11 => '',
12 => '',
13 => '',
14 => '',
15 => '',
16 => 'quotes',
17 => 'quotes',
18 => 'quotes',
19 => '',
20 => '',
),
0 =>
array (
0 => '',
1 => 'brackets',
2 => 'brackets',
3 => 'brackets',
4 => '',
5 => 'quotes',
6 => 'quotes',
7 => '',
8 => '',
9 => '',
10 => 'quotes',
11 => '',
12 => '',
13 => '',
14 => '',
15 => '',
16 => 'quotes',
17 => 'quotes',
18 => 'quotes',
19 => '',
20 => '',
),
1 =>
array (
0 => '',
1 => 'brackets',
2 => 'brackets',
3 => 'brackets',
4 => '',
5 => 'quotes',
6 => 'quotes',
7 => '',
8 => '',
9 => '',
10 => 'quotes',
11 => '',
12 => '',
13 => '',
14 => '',
15 => '',
16 => '',
17 => 'quotes',
18 => 'quotes',
19 => 'quotes',
20 => '',
21 => '',
),
2 =>
array (
0 => '',
1 => 'brackets',
2 => 'brackets',
3 => 'brackets',
4 => '',
5 => 'quotes',
6 => 'quotes',
7 => '',
8 => '',
9 => '',
10 => 'quotes',
11 => '',
12 => '',
13 => '',
14 => '',
15 => '',
16 => 'quotes',
17 => 'quotes',
18 => 'quotes',
19 => '',
20 => '',
),
3 =>
array (
0 => '',
1 => '',
2 => '',
3 => '',
),
4 =>
array (
0 => '',
),
5 =>
array (
0 => '',
),
6 =>
array (
0 => '',
1 => '',
2 => '',
3 => '',
),
7 =>
array (
0 => '',
),
8 =>
array (
0 => '',
1 => '',
2 => '',
3 => '',
),
);
$this->_inner = array (
-1 =>
array (
0 => 'special',
1 => 'code',
2 => 'code',
3 => 'code',
4 => 'special',
5 => 'string',
6 => 'string',
7 => 'comment',
8 => 'string',
9 => 'string',
10 => 'string',
11 => 'var',
12 => 'var',
13 => 'var',
14 => 'var',
15 => 'var',
16 => 'string',
17 => 'string',
18 => 'string',
19 => 'identifier',
20 => 'number',
),
0 =>
array (
0 => 'special',
1 => 'code',
2 => 'code',
3 => 'code',
4 => 'special',
5 => 'string',
6 => 'string',
7 => 'comment',
8 => 'string',
9 => 'string',
10 => 'string',
11 => 'var',
12 => 'var',
13 => 'var',
14 => 'var',
15 => 'var',
16 => 'string',
17 => 'string',
18 => 'string',
19 => 'identifier',
20 => 'number',
),
1 =>
array (
0 => 'special',
1 => 'code',
2 => 'code',
3 => 'code',
4 => 'special',
5 => 'string',
6 => 'string',
7 => 'comment',
8 => 'string',
9 => 'string',
10 => 'string',
11 => 'string',
12 => 'var',
13 => 'var',
14 => 'var',
15 => 'var',
16 => 'var',
17 => 'string',
18 => 'string',
19 => 'string',
20 => 'identifier',
21 => 'number',
),
2 =>
array (
0 => 'special',
1 => 'code',
2 => 'code',
3 => 'code',
4 => 'special',
5 => 'string',
6 => 'string',
7 => 'comment',
8 => 'string',
9 => 'string',
10 => 'string',
11 => 'var',
12 => 'var',
13 => 'var',
14 => 'var',
15 => 'var',
16 => 'string',
17 => 'string',
18 => 'string',
19 => 'identifier',
20 => 'number',
),
3 =>
array (
0 => 'var',
1 => 'var',
2 => 'var',
3 => 'special',
),
4 =>
array (
0 => 'special',
),
5 =>
array (
0 => 'string',
),
6 =>
array (
0 => 'var',
1 => 'var',
2 => 'var',
3 => 'special',
),
7 =>
array (
0 => 'special',
),
8 =>
array (
0 => 'var',
1 => 'var',
2 => 'var',
3 => 'special',
),
);
$this->_end = array (
0 => '/\\}/',
1 => '/\\)/',
2 => '/\\]/',
3 => '/%b2%/',
4 => '/%b2%/',
5 => '/\\/[cgimosx]*/',
6 => '/`/',
7 => '/\'/',
8 => '/"/',
);
$this->_states = array (
-1 =>
array (
0 => -1,
1 => 0,
2 => 1,
3 => 2,
4 => -1,
5 => 3,
6 => 4,
7 => -1,
8 => -1,
9 => -1,
10 => 5,
11 => -1,
12 => -1,
13 => -1,
14 => -1,
15 => -1,
16 => 6,
17 => 7,
18 => 8,
19 => -1,
20 => -1,
),
0 =>
array (
0 => -1,
1 => 0,
2 => 1,
3 => 2,
4 => -1,
5 => 3,
6 => 4,
7 => -1,
8 => -1,
9 => -1,
10 => 5,
11 => -1,
12 => -1,
13 => -1,
14 => -1,
15 => -1,
16 => 6,
17 => 7,
18 => 8,
19 => -1,
20 => -1,
),
1 =>
array (
0 => -1,
1 => 0,
2 => 1,
3 => 2,
4 => -1,
5 => 3,
6 => 4,
7 => -1,
8 => -1,
9 => -1,
10 => 5,
11 => -1,
12 => -1,
13 => -1,
14 => -1,
15 => -1,
16 => -1,
17 => 6,
18 => 7,
19 => 8,
20 => -1,
21 => -1,
),
2 =>
array (
0 => -1,
1 => 0,
2 => 1,
3 => 2,
4 => -1,
5 => 3,
6 => 4,
7 => -1,
8 => -1,
9 => -1,
10 => 5,
11 => -1,
12 => -1,
13 => -1,
14 => -1,
15 => -1,
16 => 6,
17 => 7,
18 => 8,
19 => -1,
20 => -1,
),
3 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
),
4 =>
array (
0 => -1,
),
5 =>
array (
0 => -1,
),
6 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
),
7 =>
array (
0 => -1,
),
8 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
),
);
$this->_keywords = array (
-1 =>
array (
0 =>
array (
),
1 => -1,
2 => -1,
3 => -1,
4 =>
array (
),
5 => -1,
6 => -1,
7 =>
array (
),
8 =>
array (
),
9 =>
array (
),
10 => -1,
11 =>
array (
),
12 =>
array (
),
13 =>
array (
),
14 =>
array (
),
15 =>
array (
),
16 => -1,
17 => -1,
18 => -1,
19 =>
array (
'reserved' => '/^(cd|cp|rm|echo|printf|exit|cut|join|comm|fmt|grep|egrep|fgrep|sed|awk|yes|false|true|test|expr|tee|basename|dirname|pathchk|pwd|stty|tty|env|printenv|id|logname|whoami|groups|users|who|date|uname|hostname|chroot|nice|nohup|sleep|factor|seq|getopt|getopts|options|shift)$/',
'flowcontrol' => '/^(if|fi|then|else|elif|case|esac|while|done|for|in|function|until|do|select|time|read|set)$/',
),
20 =>
array (
),
),
0 =>
array (
0 =>
array (
),
1 => -1,
2 => -1,
3 => -1,
4 =>
array (
),
5 => -1,
6 => -1,
7 =>
array (
),
8 =>
array (
),
9 =>
array (
),
10 => -1,
11 =>
array (
),
12 =>
array (
),
13 =>
array (
),
14 =>
array (
),
15 =>
array (
),
16 => -1,
17 => -1,
18 => -1,
19 =>
array (
'reserved' => '/^(cd|cp|rm|echo|printf|exit|cut|join|comm|fmt|grep|egrep|fgrep|sed|awk|yes|false|true|test|expr|tee|basename|dirname|pathchk|pwd|stty|tty|env|printenv|id|logname|whoami|groups|users|who|date|uname|hostname|chroot|nice|nohup|sleep|factor|seq|getopt|getopts|options|shift)$/',
'flowcontrol' => '/^(if|fi|then|else|elif|case|esac|while|done|for|in|function|until|do|select|time|read|set)$/',
),
20 =>
array (
),
),
1 =>
array (
0 =>
array (
),
1 => -1,
2 => -1,
3 => -1,
4 =>
array (
),
5 => -1,
6 => -1,
7 =>
array (
),
8 =>
array (
),
9 =>
array (
),
10 => -1,
11 =>
array (
),
12 =>
array (
),
13 =>
array (
),
14 =>
array (
),
15 =>
array (
),
16 =>
array (
),
17 => -1,
18 => -1,
19 => -1,
20 =>
array (
'reserved' => '/^(cd|cp|rm|echo|printf|exit|cut|join|comm|fmt|grep|egrep|fgrep|sed|awk|yes|false|true|test|expr|tee|basename|dirname|pathchk|pwd|stty|tty|env|printenv|id|logname|whoami|groups|users|who|date|uname|hostname|chroot|nice|nohup|sleep|factor|seq|getopt|getopts|options|shift)$/',
'flowcontrol' => '/^(if|fi|then|else|elif|case|esac|while|done|for|in|function|until|do|select|time|read|set)$/',
),
21 =>
array (
),
),
2 =>
array (
0 =>
array (
),
1 => -1,
2 => -1,
3 => -1,
4 =>
array (
),
5 => -1,
6 => -1,
7 =>
array (
),
8 =>
array (
),
9 =>
array (
),
10 => -1,
11 =>
array (
),
12 =>
array (
),
13 =>
array (
),
14 =>
array (
),
15 =>
array (
),
16 => -1,
17 => -1,
18 => -1,
19 =>
array (
'reserved' => '/^(cd|cp|rm|echo|printf|exit|cut|join|comm|fmt|grep|egrep|fgrep|sed|awk|yes|false|true|test|expr|tee|basename|dirname|pathchk|pwd|stty|tty|env|printenv|id|logname|whoami|groups|users|who|date|uname|hostname|chroot|nice|nohup|sleep|factor|seq|getopt|getopts|options|shift)$/',
'flowcontrol' => '/^(if|fi|then|else|elif|case|esac|while|done|for|in|function|until|do|select|time|read|set)$/',
),
20 =>
array (
),
),
3 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
),
4 =>
array (
0 =>
array (
),
),
5 =>
array (
0 =>
array (
),
),
6 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
),
7 =>
array (
0 =>
array (
),
),
8 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
),
);
$this->_parts = array (
0 =>
array (
0 =>
array (
1 => 'special',
2 => 'string',
),
1 => NULL,
2 => NULL,
3 => NULL,
4 =>
array (
1 => 'reserved',
2 => 'special',
),
5 => NULL,
6 => NULL,
7 => NULL,
8 =>
array (
1 => 'quotes',
2 => 'quotes',
3 => 'string',
5 => 'quotes',
6 => 'string',
8 => 'quotes',
),
9 =>
array (
1 => 'quotes',
2 => 'quotes',
3 => 'string',
5 => 'quotes',
),
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
14 =>
array (
1 => 'brackets',
2 => 'var',
3 => 'brackets',
),
15 => NULL,
16 => NULL,
17 => NULL,
18 => NULL,
19 => NULL,
20 => NULL,
),
1 =>
array (
0 =>
array (
1 => 'special',
2 => 'string',
),
1 => NULL,
2 => NULL,
3 => NULL,
4 =>
array (
1 => 'reserved',
2 => 'special',
),
5 => NULL,
6 => NULL,
7 => NULL,
8 =>
array (
1 => 'quotes',
2 => 'quotes',
3 => 'string',
5 => 'quotes',
6 => 'string',
8 => 'quotes',
),
9 =>
array (
1 => 'quotes',
2 => 'quotes',
3 => 'string',
5 => 'quotes',
),
10 => NULL,
11 =>
array (
1 => 'string',
2 => 'code',
),
12 => NULL,
13 => NULL,
14 => NULL,
15 =>
array (
1 => 'brackets',
2 => 'var',
3 => 'brackets',
),
16 => NULL,
17 => NULL,
18 => NULL,
19 => NULL,
20 => NULL,
21 => NULL,
),
2 =>
array (
0 =>
array (
1 => 'special',
2 => 'string',
),
1 => NULL,
2 => NULL,
3 => NULL,
4 =>
array (
1 => 'reserved',
2 => 'special',
),
5 => NULL,
6 => NULL,
7 => NULL,
8 =>
array (
1 => 'quotes',
2 => 'quotes',
3 => 'string',
5 => 'quotes',
6 => 'string',
8 => 'quotes',
),
9 =>
array (
1 => 'quotes',
2 => 'quotes',
3 => 'string',
5 => 'quotes',
),
10 => NULL,
11 => NULL,
12 => NULL,
13 => NULL,
14 =>
array (
1 => 'brackets',
2 => 'var',
3 => 'brackets',
),
15 => NULL,
16 => NULL,
17 => NULL,
18 => NULL,
19 => NULL,
20 => NULL,
),
3 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
),
4 =>
array (
0 => NULL,
),
5 =>
array (
0 => NULL,
),
6 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
),
7 =>
array (
0 => NULL,
),
8 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => true,
6 => true,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
17 => false,
18 => false,
19 => false,
20 => false,
),
0 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => true,
6 => true,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
17 => false,
18 => false,
19 => false,
20 => false,
),
1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => true,
6 => true,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
17 => false,
18 => false,
19 => false,
20 => false,
21 => false,
),
2 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => true,
6 => true,
7 => false,
8 => false,
9 => false,
10 => false,
11 => false,
12 => false,
13 => false,
14 => false,
15 => false,
16 => false,
17 => false,
18 => false,
19 => false,
20 => false,
),
3 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
),
4 =>
array (
0 => false,
),
5 =>
array (
0 => false,
),
6 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
),
7 =>
array (
0 => false,
),
8 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
'reserved' => 'reserved',
'flowcontrol' => 'reserved',
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}

View file

@ -0,0 +1,419 @@
<?php
/**
* Auto-generated class. SQL syntax highlighting
*
* Based on SQL-99
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: : sql.xml,v 1.1 2007/06/03 02:35:28 ssttoo Exp
* @author Andrey Demenev <demenev@gmail.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. SQL syntax highlighting
*
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_SQL extends Text_Highlighter
{
var $_language = 'sql';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_SQL($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?i)`)|((?i)\\/\\*)|((?i)(#|--\\s).*)|((?i)[a-z_]\\w*)|((?i)")|((?i)\\()|((?i)\')|((?i)((\\d+|((\\d*\\.\\d+)|(\\d+\\.\\d*)))[eE][+-]?\\d+))|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)\\d+l?|\\b0l?\\b)|((?i)0[xX][\\da-f]+l?)/',
0 => '//',
1 => '//',
2 => '/((?i)\\\\.)/',
3 => '/((?i)`)|((?i)\\/\\*)|((?i)(#|--\\s).*)|((?i)[a-z_]\\w*)|((?i)")|((?i)\\()|((?i)\')|((?i)((\\d+|((\\d*\\.\\d+)|(\\d+\\.\\d*)))[eE][+-]?\\d+))|((?i)(\\d*\\.\\d+)|(\\d+\\.\\d*))|((?i)\\d+l?|\\b0l?\\b)|((?i)0[xX][\\da-f]+l?)/',
4 => '/((?i)\\\\.)/',
);
$this->_counts = array (
-1 =>
array (
0 => 0,
1 => 0,
2 => 1,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 5,
8 => 2,
9 => 0,
10 => 0,
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => 0,
),
3 =>
array (
0 => 0,
1 => 0,
2 => 1,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 5,
8 => 2,
9 => 0,
10 => 0,
),
4 =>
array (
0 => 0,
),
);
$this->_delim = array (
-1 =>
array (
0 => 'quotes',
1 => 'comment',
2 => '',
3 => '',
4 => 'quotes',
5 => 'brackets',
6 => 'quotes',
7 => '',
8 => '',
9 => '',
10 => '',
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => '',
),
3 =>
array (
0 => 'quotes',
1 => 'comment',
2 => '',
3 => '',
4 => 'quotes',
5 => 'brackets',
6 => 'quotes',
7 => '',
8 => '',
9 => '',
10 => '',
),
4 =>
array (
0 => '',
),
);
$this->_inner = array (
-1 =>
array (
0 => 'identifier',
1 => 'comment',
2 => 'comment',
3 => 'identifier',
4 => 'string',
5 => 'code',
6 => 'string',
7 => 'number',
8 => 'number',
9 => 'number',
10 => 'number',
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => 'special',
),
3 =>
array (
0 => 'identifier',
1 => 'comment',
2 => 'comment',
3 => 'identifier',
4 => 'string',
5 => 'code',
6 => 'string',
7 => 'number',
8 => 'number',
9 => 'number',
10 => 'number',
),
4 =>
array (
0 => 'special',
),
);
$this->_end = array (
0 => '/(?i)`/',
1 => '/(?i)\\*\\//',
2 => '/(?i)"/',
3 => '/(?i)\\)/',
4 => '/(?i)\'/',
);
$this->_states = array (
-1 =>
array (
0 => 0,
1 => 1,
2 => -1,
3 => -1,
4 => 2,
5 => 3,
6 => 4,
7 => -1,
8 => -1,
9 => -1,
10 => -1,
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => -1,
),
3 =>
array (
0 => 0,
1 => 1,
2 => -1,
3 => -1,
4 => 2,
5 => 3,
6 => 4,
7 => -1,
8 => -1,
9 => -1,
10 => -1,
),
4 =>
array (
0 => -1,
),
);
$this->_keywords = array (
-1 =>
array (
0 => -1,
1 => -1,
2 =>
array (
),
3 =>
array (
'reserved' => '/^((?i)absolute|action|add|admin|after|aggregate|alias|all|allocate|alter|and|any|are|array|as|asc|assertion|at|authorization|before|begin|binary|bit|blob|boolean|both|breadth|by|call|cascade|cascaded|case|cast|catalog|char|character|check|class|clob|close|collate|collation|column|commit|completion|connect|connection|constraint|constraints|constructor|continue|corresponding|create|cross|cube|current|current_date|current_path|current_role|current_time|current_timestamp|current_user|cursor|cycle|data|date|day|deallocate|dec|decimal|declare|default|deferrable|deferred|delete|depth|deref|desc|describe|descriptor|destroy|destructor|deterministic|diagnostics|dictionary|disconnect|distinct|domain|double|drop|dynamic|each|else|end|end-exec|equals|escape|every|except|exception|exec|execute|external|false|fetch|first|float|for|foreign|found|free|from|full|function|general|get|global|go|goto|grant|group|grouping|having|host|hour|identity|ignore|immediate|in|indicator|initialize|initially|inner|inout|input|insert|int|integer|intersect|interval|into|is|isolation|iterate|join|key|language|large|last|lateral|leading|left|less|level|like|limit|local|localtime|localtimestamp|locator|map|match|minute|modifies|modify|module|month|names|national|natural|nchar|nclob|new|next|no|none|not|null|numeric|object|of|off|old|on|only|open|operation|option|or|order|ordinality|out|outer|output|pad|parameter|parameters|partial|path|postfix|precision|prefix|preorder|prepare|preserve|primary|prior|privileges|procedure|public|read|reads|real|recursive|ref|references|referencing|relative|restrict|result|return|returns|revoke|right|role|rollback|rollup|routine|row|rows|savepoint|schema|scope|scroll|search|second|section|select|sequence|session|session_user|set|sets|size|smallint|some|space|specific|specifictype|sql|sqlexception|sqlstate|sqlwarning|start|state|statement|static|structure|system_user|table|temporary|terminate|than|then|time|timestamp|timezone_hour|timezone_minute|to|trailing|transaction|translation|treat|trigger|true|under|union|unique|unknown|unnest|update|usage|user|using|value|values|varchar|variable|varying|view|when|whenever|where|with|without|work|write|year|zone)$/',
'keyword' => '/^((?i)abs|ada|asensitive|assignment|asymmetric|atomic|avg|between|bitvar|bit_length|c|called|cardinality|catalog_name|chain|character_length|character_set_catalog|character_set_name|character_set_schema|char_length|checked|class_origin|coalesce|cobol|collation_catalog|collation_name|collation_schema|column_name|command_function|command_function_code|committed|condition_number|connection_name|constraint_catalog|constraint_name|constraint_schema|contains|convert|count|cursor_name|datetime_interval_code|datetime_interval_precision|defined|definer|dispatch|dynamic_function|dynamic_function_code|existing|exists|extract|final|fortran|g|generated|granted|hierarchy|hold|implementation|infix|insensitive|instance|instantiable|invoker|k|key_member|key_type|length|lower|m|max|message_length|message_octet_length|message_text|method|min|mod|more|mumps|name|nullable|nullif|number|octet_length|options|overlaps|overlay|overriding|parameter_mode|parameter_name|parameter_ordinal_position|parameter_specific_catalog|parameter_specific_name|parameter_specific_schema|pascal|pli|position|repeatable|returned_length|returned_octet_length|returned_sqlstate|routine_catalog|routine_name|routine_schema|row_count|scale|schema_name|security|self|sensitive|serializable|server_name|similar|simple|source|specific_name|style|subclass_origin|sublist|substring|sum|symmetric|system|table_name|transactions_committed|transactions_rolled_back|transaction_active|transform|transforms|translate|trigger_catalog|trigger_name|trigger_schema|trim|type|uncommitted|unnamed|upper|user_defined_type_catalog|user_defined_type_name|user_defined_type_schema)$/',
),
4 => -1,
5 => -1,
6 => -1,
7 =>
array (
),
8 =>
array (
),
9 =>
array (
),
10 =>
array (
),
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 =>
array (
),
),
3 =>
array (
0 => -1,
1 => -1,
2 =>
array (
),
3 =>
array (
'reserved' => '/^((?i)absolute|action|add|admin|after|aggregate|alias|all|allocate|alter|and|any|are|array|as|asc|assertion|at|authorization|before|begin|binary|bit|blob|boolean|both|breadth|by|call|cascade|cascaded|case|cast|catalog|char|character|check|class|clob|close|collate|collation|column|commit|completion|connect|connection|constraint|constraints|constructor|continue|corresponding|create|cross|cube|current|current_date|current_path|current_role|current_time|current_timestamp|current_user|cursor|cycle|data|date|day|deallocate|dec|decimal|declare|default|deferrable|deferred|delete|depth|deref|desc|describe|descriptor|destroy|destructor|deterministic|diagnostics|dictionary|disconnect|distinct|domain|double|drop|dynamic|each|else|end|end-exec|equals|escape|every|except|exception|exec|execute|external|false|fetch|first|float|for|foreign|found|free|from|full|function|general|get|global|go|goto|grant|group|grouping|having|host|hour|identity|ignore|immediate|in|indicator|initialize|initially|inner|inout|input|insert|int|integer|intersect|interval|into|is|isolation|iterate|join|key|language|large|last|lateral|leading|left|less|level|like|limit|local|localtime|localtimestamp|locator|map|match|minute|modifies|modify|module|month|names|national|natural|nchar|nclob|new|next|no|none|not|null|numeric|object|of|off|old|on|only|open|operation|option|or|order|ordinality|out|outer|output|pad|parameter|parameters|partial|path|postfix|precision|prefix|preorder|prepare|preserve|primary|prior|privileges|procedure|public|read|reads|real|recursive|ref|references|referencing|relative|restrict|result|return|returns|revoke|right|role|rollback|rollup|routine|row|rows|savepoint|schema|scope|scroll|search|second|section|select|sequence|session|session_user|set|sets|size|smallint|some|space|specific|specifictype|sql|sqlexception|sqlstate|sqlwarning|start|state|statement|static|structure|system_user|table|temporary|terminate|than|then|time|timestamp|timezone_hour|timezone_minute|to|trailing|transaction|translation|treat|trigger|true|under|union|unique|unknown|unnest|update|usage|user|using|value|values|varchar|variable|varying|view|when|whenever|where|with|without|work|write|year|zone)$/',
'keyword' => '/^((?i)abs|ada|asensitive|assignment|asymmetric|atomic|avg|between|bitvar|bit_length|c|called|cardinality|catalog_name|chain|character_length|character_set_catalog|character_set_name|character_set_schema|char_length|checked|class_origin|coalesce|cobol|collation_catalog|collation_name|collation_schema|column_name|command_function|command_function_code|committed|condition_number|connection_name|constraint_catalog|constraint_name|constraint_schema|contains|convert|count|cursor_name|datetime_interval_code|datetime_interval_precision|defined|definer|dispatch|dynamic_function|dynamic_function_code|existing|exists|extract|final|fortran|g|generated|granted|hierarchy|hold|implementation|infix|insensitive|instance|instantiable|invoker|k|key_member|key_type|length|lower|m|max|message_length|message_octet_length|message_text|method|min|mod|more|mumps|name|nullable|nullif|number|octet_length|options|overlaps|overlay|overriding|parameter_mode|parameter_name|parameter_ordinal_position|parameter_specific_catalog|parameter_specific_name|parameter_specific_schema|pascal|pli|position|repeatable|returned_length|returned_octet_length|returned_sqlstate|routine_catalog|routine_name|routine_schema|row_count|scale|schema_name|security|self|sensitive|serializable|server_name|similar|simple|source|specific_name|style|subclass_origin|sublist|substring|sum|symmetric|system|table_name|transactions_committed|transactions_rolled_back|transaction_active|transform|transforms|translate|trigger_catalog|trigger_name|trigger_schema|trim|type|uncommitted|unnamed|upper|user_defined_type_catalog|user_defined_type_name|user_defined_type_schema)$/',
),
4 => -1,
5 => -1,
6 => -1,
7 =>
array (
),
8 =>
array (
),
9 =>
array (
),
10 =>
array (
),
),
4 =>
array (
0 =>
array (
),
),
);
$this->_parts = array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => NULL,
),
3 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
6 => NULL,
7 => NULL,
8 => NULL,
9 => NULL,
10 => NULL,
),
4 =>
array (
0 => NULL,
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => false,
),
3 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false,
8 => false,
9 => false,
10 => false,
),
4 =>
array (
0 => false,
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
'reserved' => 'reserved',
'keyword' => 'var',
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}

View file

@ -0,0 +1,318 @@
<?php
/**
* Auto-generated class. VBSCRIPT syntax highlighting
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: vbscript.xml
* @author Daniel Fruzynski <daniel-AT-poradnik-webmastera.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. VBSCRIPT syntax highlighting
*
* @author Daniel Fruzynski <daniel-AT-poradnik-webmastera.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: 0.7.0
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_VBSCRIPT extends Text_Highlighter
{
var $_language = 'vbscript';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_VBSCRIPT($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?i)\\()|((?i)")|((?i)\'|[Rr][Ee][Mm]\\b)|((?i)\\d*\\.?\\d+)|((?i)&H[0-9a-fA-F]+)|((?i)[a-z_]\\w*)/',
0 => '/((?i)\\()|((?i)")|((?i)\'|[Rr][Ee][Mm]\\b)|((?i)\\d*\\.?\\d+)|((?i)&H[0-9a-fA-F]+)|((?i)[a-z_]\\w*)/',
1 => '//',
2 => '/((?i)((https?|ftp):\\/\\/[\\w\\?\\.\\-\\&=\\/%+]+)|(^|[\\s,!?])www\\.\\w+\\.\\w+[\\w\\?\\.\\&=\\/%+]*)|((?i)\\w+[\\.\\w\\-]+@(\\w+[\\.\\w\\-])+)|((?i)\\b(note|fixme):)|((?i)\\$\\w+:.+\\$)/',
);
$this->_counts = array (
-1 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
),
0 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 0,
4 => 0,
5 => 0,
),
1 =>
array (
),
2 =>
array (
0 => 3,
1 => 1,
2 => 1,
3 => 0,
),
);
$this->_delim = array (
-1 =>
array (
0 => 'brackets',
1 => 'quotes',
2 => 'comment',
3 => '',
4 => '',
5 => '',
),
0 =>
array (
0 => 'brackets',
1 => 'quotes',
2 => 'comment',
3 => '',
4 => '',
5 => '',
),
1 =>
array (
),
2 =>
array (
0 => '',
1 => '',
2 => '',
3 => '',
),
);
$this->_inner = array (
-1 =>
array (
0 => 'code',
1 => 'string',
2 => 'comment',
3 => 'number',
4 => 'number',
5 => 'identifier',
),
0 =>
array (
0 => 'code',
1 => 'string',
2 => 'comment',
3 => 'number',
4 => 'number',
5 => 'identifier',
),
1 =>
array (
),
2 =>
array (
0 => 'url',
1 => 'url',
2 => 'inlinedoc',
3 => 'inlinedoc',
),
);
$this->_end = array (
0 => '/(?i)\\)/',
1 => '/(?i)"/',
2 => '/(?mi)$/',
);
$this->_states = array (
-1 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => -1,
4 => -1,
5 => -1,
),
0 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => -1,
4 => -1,
5 => -1,
),
1 =>
array (
),
2 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 => -1,
),
);
$this->_keywords = array (
-1 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 =>
array (
),
4 =>
array (
),
5 =>
array (
'constants' => '/^((?i)vbblack|vbred|vbgreen|vbyellow|vbblue|vbmagenta|vbcyan|vbwhite|vbbinarycompare|vbtextcompare|vbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbokonly|vbokcancel|vbabortretryignore|vbyesnocancel|vbyesno|vbretrycancel|vbcritical|vbquestion|vbexclamation|vbinformation|vbdefaultbutton1|vbdefaultbutton2|vbdefaultbutton3|vbdefaultbutton4|vbapplicationmodal|vbsystemmodal|vbok|vbcancel|vbabort|vbretry|vbignore|vbyes|vbno|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|vbtab|vbverticaltab|vbusedefault|vbtrue|vbfalse|vbempty|vbnull|vbinteger|vblong|vbsingle|vbdouble|vbcurrency|vbdate|vbstring|vbobject|vberror|vbboolean|vbvariant|vbdataobject|vbdecimal|vbbyte|vbarray)$/',
'functions' => '/^((?i)abs|array|asc|atn|cbool|cbyte|ccur|cdate|cdbl|chr|cint|clng|cos|createobject|csng|cstr|date|dateadd|datediff|datepart|dateserial|datevalue|day|escape|eval|exp|filter|formatcurrency|formatdatetime|formatnumber|formatpercent|getlocale|getobject|getref|hex|hour|inputbox|instr|instrrev|int|fix|isarray|isdate|isempty|isnull|isnumeric|isobject|join|lbound|lcase|left|len|loadpicture|log|ltrim|rtrim|trim|mid|minute|month|monthname|msgbox|now|oct|replace|rgb|right|rnd|round|scriptengine|scriptenginebuildversion|scriptenginemajorversion|scriptengineminorversion|second|setlocale|sgn|sin|space|split|sqr|strcomp|string|strreverse|tan|time|timer|timeserial|timevalue|typename|ubound|ucase|unescape|vartype|weekday|weekdayname|year)$/',
'builtin' => '/^((?i)debug|err|match|regexp)$/',
'reserved' => '/^((?i)empty|false|nothing|null|true|and|eqv|imp|is|mod|not|or|xor|call|class|end|const|public|private|dim|do|while|until|exit|loop|erase|execute|executeglobal|for|each|in|to|step|next|function|default|if|then|else|elseif|on|error|resume|goto|option|explicit|property|get|let|set|randomize|redim|preserve|select|case|stop|sub|wend|with)$/',
),
),
0 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 =>
array (
),
4 =>
array (
),
5 =>
array (
'constants' => '/^((?i)vbblack|vbred|vbgreen|vbyellow|vbblue|vbmagenta|vbcyan|vbwhite|vbbinarycompare|vbtextcompare|vbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbokonly|vbokcancel|vbabortretryignore|vbyesnocancel|vbyesno|vbretrycancel|vbcritical|vbquestion|vbexclamation|vbinformation|vbdefaultbutton1|vbdefaultbutton2|vbdefaultbutton3|vbdefaultbutton4|vbapplicationmodal|vbsystemmodal|vbok|vbcancel|vbabort|vbretry|vbignore|vbyes|vbno|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|vbtab|vbverticaltab|vbusedefault|vbtrue|vbfalse|vbempty|vbnull|vbinteger|vblong|vbsingle|vbdouble|vbcurrency|vbdate|vbstring|vbobject|vberror|vbboolean|vbvariant|vbdataobject|vbdecimal|vbbyte|vbarray)$/',
'functions' => '/^((?i)abs|array|asc|atn|cbool|cbyte|ccur|cdate|cdbl|chr|cint|clng|cos|createobject|csng|cstr|date|dateadd|datediff|datepart|dateserial|datevalue|day|escape|eval|exp|filter|formatcurrency|formatdatetime|formatnumber|formatpercent|getlocale|getobject|getref|hex|hour|inputbox|instr|instrrev|int|fix|isarray|isdate|isempty|isnull|isnumeric|isobject|join|lbound|lcase|left|len|loadpicture|log|ltrim|rtrim|trim|mid|minute|month|monthname|msgbox|now|oct|replace|rgb|right|rnd|round|scriptengine|scriptenginebuildversion|scriptenginemajorversion|scriptengineminorversion|second|setlocale|sgn|sin|space|split|sqr|strcomp|string|strreverse|tan|time|timer|timeserial|timevalue|typename|ubound|ucase|unescape|vartype|weekday|weekdayname|year)$/',
'builtin' => '/^((?i)debug|err|match|regexp)$/',
'reserved' => '/^((?i)empty|false|nothing|null|true|and|eqv|imp|is|mod|not|or|xor|call|class|end|const|public|private|dim|do|while|until|exit|loop|erase|execute|executeglobal|for|each|in|to|step|next|function|default|if|then|else|elseif|on|error|resume|goto|option|explicit|property|get|let|set|randomize|redim|preserve|select|case|stop|sub|wend|with)$/',
),
),
1 =>
array (
),
2 =>
array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
),
3 =>
array (
),
),
);
$this->_parts = array (
0 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
4 => NULL,
5 => NULL,
),
1 =>
array (
),
2 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
3 => NULL,
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
),
0 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
),
1 =>
array (
),
2 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
'constants' => 'builtin',
'functions' => 'builtin',
'builtin' => 'builtin',
'reserved' => 'reserved',
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}

View file

@ -0,0 +1,263 @@
<?php
/**
* Auto-generated class. XML syntax highlighting
*
* PHP version 4 and 5
*
* LICENSE: This source file is subject to version 3.0 of the PHP license
* that is available through the world-wide-web at the following URI:
* http://www.php.net/license/3_0.txt. If you did not receive a copy of
* the PHP License and are unable to obtain it through the web, please
* send a note to license@php.net so we can mail you a copy immediately.
*
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @link http://pear.php.net/package/Text_Highlighter
* @category Text
* @package Text_Highlighter
* @version generated from: : xml.xml,v 1.1 2007/06/03 02:35:28 ssttoo Exp
* @author Andrey Demenev <demenev@gmail.com>
*
*/
/**
* @ignore
*/
require_once 'Text/Highlighter.php';
/**
* Auto-generated class. XML syntax highlighting
*
* @author Andrey Demenev <demenev@gmail.com>
* @category Text
* @package Text_Highlighter
* @copyright 2004-2006 Andrey Demenev
* @license http://www.php.net/license/3_0.txt PHP License
* @version Release: @package_version@
* @link http://pear.php.net/package/Text_Highlighter
*/
class Text_Highlighter_XML extends Text_Highlighter
{
var $_language = 'xml';
/**
* PHP4 Compatible Constructor
*
* @param array $options
* @access public
*/
function Text_Highlighter_XML($options=array())
{
$this->__construct($options);
}
/**
* Constructor
*
* @param array $options
* @access public
*/
function __construct($options=array())
{
$this->_options = $options;
$this->_regs = array (
-1 => '/((?i)\\<\\!\\[CDATA\\[)|((?i)\\<!--)|((?i)\\<[\\?\\/]?)|((?i)(&|%)[\\w\\-\\.]+;)/',
0 => '//',
1 => '//',
2 => '/((?i)(?<=[\\<\\/?])[\\w\\-\\:]+)|((?i)[\\w\\-\\:]+)|((?i)")/',
3 => '/((?i)(&|%)[\\w\\-\\.]+;)/',
);
$this->_counts = array (
-1 =>
array (
0 => 0,
1 => 0,
2 => 0,
3 => 1,
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => 0,
1 => 0,
2 => 0,
),
3 =>
array (
0 => 1,
),
);
$this->_delim = array (
-1 =>
array (
0 => 'comment',
1 => 'comment',
2 => 'brackets',
3 => '',
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => '',
1 => '',
2 => 'quotes',
),
3 =>
array (
0 => '',
),
);
$this->_inner = array (
-1 =>
array (
0 => 'comment',
1 => 'comment',
2 => 'code',
3 => 'special',
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => 'reserved',
1 => 'var',
2 => 'string',
),
3 =>
array (
0 => 'special',
),
);
$this->_end = array (
0 => '/(?i)\\]\\]\\>/',
1 => '/(?i)--\\>/',
2 => '/(?i)[\\/\\?]?\\>/',
3 => '/(?i)"/',
);
$this->_states = array (
-1 =>
array (
0 => 0,
1 => 1,
2 => 2,
3 => -1,
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => -1,
1 => -1,
2 => 3,
),
3 =>
array (
0 => -1,
),
);
$this->_keywords = array (
-1 =>
array (
0 => -1,
1 => -1,
2 => -1,
3 =>
array (
),
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 =>
array (
),
1 =>
array (
),
2 => -1,
),
3 =>
array (
0 =>
array (
),
),
);
$this->_parts = array (
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => NULL,
1 => NULL,
2 => NULL,
),
3 =>
array (
0 => NULL,
),
);
$this->_subst = array (
-1 =>
array (
0 => false,
1 => false,
2 => false,
3 => false,
),
0 =>
array (
),
1 =>
array (
),
2 =>
array (
0 => false,
1 => false,
2 => false,
),
3 =>
array (
0 => false,
),
);
$this->_conditions = array (
);
$this->_kwmap = array (
);
$this->_defClass = 'code';
$this->_checkDefines();
}
}