port of Hubzillas code highlight feature

This commit is contained in:
rabuzarus 2016-06-16 11:38:12 +02:00
parent 76abade4d8
commit 0167a2bd61
56 changed files with 23431 additions and 0 deletions

View file

@ -717,6 +717,13 @@ function bb_CleanPictureLinks($text) {
return ($text);
}
function bb_highlight($match) {
if(in_array(strtolower($match[1]),['php','css','mysql','sql','abap','diff','html','perl','ruby',
'vbscript','avrc','dtd','java','xml','cpp','python','javascript','js','sh']))
return text_highlight($match[2],strtolower($match[1]));
return $match[0];
}
// BBcode 2 HTML was written by WAY2WEB.net
// extended to work with Mistpark/Friendica - Mike Macgirvin
@ -769,6 +776,11 @@ function bbcode($Text,$preserve_nl = false, $tryoembed = true, $simplehtml = fal
if (!$tryoembed)
$Text = preg_replace("/\[share(.*?)avatar\s?=\s?'.*?'\s?(.*?)\]\s?(.*?)\s?\[\/share\]\s?/ism","\n[share$1$2]$3[/share]",$Text);
// Check for [code] text here, before the linefeeds are messed with.
// The highlighter will unescape and re-escape the content.
if (strpos($Text,'[code=') !== false) {
$Text = preg_replace_callback("/\[code=(.*?)\](.*?)\[\/code\]/ism", 'bb_highlight', $Text);
}
// Convert new line chars to html <br /> tags
// nlbr seems to be hopelessly messed up

View file

@ -2087,3 +2087,43 @@ function format_network_name($network, $url = 0) {
}
}
/**
* @brief Syntax based code highlighting for popular languages.
* @param string $s Code block
* @param string $lang Programming language
* @return string Formated html
*/
function text_highlight($s,$lang) {
if($lang === 'js')
$lang = 'javascript';
if(! strpos('Text_Highlighter',get_include_path())) {
set_include_path(get_include_path() . PATH_SEPARATOR . 'library/Text_Highlighter');
}
require_once('library/Text_Highlighter/Text/Highlighter.php');
require_once('library/Text_Highlighter/Text/Highlighter/Renderer/Html.php');
$options = array(
'numbers' => HL_NUMBERS_LI,
'tabsize' => 4,
);
$tag_added = false;
$s = trim(html_entity_decode($s,ENT_COMPAT));
$s = str_replace(" ","\t",$s);
if($lang === 'php') {
if(strpos('<?php',$s) !== 0) {
$s = '<?php' . "\n" . $s;
$tag_added = true;
}
}
$renderer = new Text_Highlighter_Renderer_HTML($options);
$hl = Text_Highlighter::factory($lang);
$hl->setRenderer($renderer);
$o = $hl->highlight($s);
$o = str_replace([" ","\n"],["&nbsp;&nbsp;&nbsp;&nbsp;",''],$o);
if($tag_added) {
$b = substr($o,0,strpos($o,'<li>'));
$e = substr($o,strpos($o,'</li>'));
$o = $b . $e;
}
return('<code>' . $o . '</code>');
}

View file

@ -0,0 +1,455 @@
# $Id$
Introduction
============
Text_Highlighter is a class for syntax highlighting. The main idea is to
simplify creation of subclasses implementing syntax highlighting for
particular language. Subclasses do not implement any new functioanality, they
just provide syntax highlighting rules. The rules sources are in XML format.
To create a highlighter for a language, there is no need to code a new class
manually. Simply describe the rules in XML file and use Text_Highlighter_Generator
to create a new class.
This document does not contain a formal description of API - it is very
simple, and I believe providing some examples of code is sufficient.
Highlighter XML source
======================
Basics
------
Creating a new syntax highlighter begins with describing the highlighting
rules. There are two basic elements: block and region. A block is just a
portion of text matching a regular expression and highlighted with a single
color. Keyword is an example of a block. A region is defined by two regular
expressions: one for start of region, and another for the end. The main
difference from a block is that a region can contain blocks and regions
(including same-named regions). An example of a region is a group of
statements enclosed in curly brackets (this is used in many languages, for
example PHP and C). Also, characters matching start and end of a region may be
highlighted with their own color, and region contents with another.
Blocks and regions may be declared as contained. Contained blocks and regions
can only appear inside regions. If a region or a block is not declared as
contained, it can appear both on top level and inside regions. Block or region
declared as not-contained can only appear on top level.
For any region, a list of blocks and regions that can appear inside this
region can be specified.
In this document, the term "color group" is used. Chunks of text assigned to
same color group will be highlighted with same color. Note that in versions
prior 0.5.0 color goups were refered as CSS classes, but since 0.5.0 not only
HTML output is supported, so "color group" is more appropriate term.
Elements
--------
The toplevel element is <highlight>. Attribute lang is required and denotes
the name of the language. Its value is used as a part of generated class name,
and must only contain letters, digits and underscores. Optional attribute
case, when given value yes, makes the language case sensitive (default is case
insensitive). Allowed subelements are:
* <authors>: Information about the authors of the file.
<author>: Information about a single author of the file. (May be used
multiple times, one per author.)
- name="...": Author's name. Required.
- email="...": Author's email address. Optional.
* <default>: Default color group.
- innerGroup="...": color group name. Required.
* <region>: Region definition
- name="...": Region name. Required.
- innerGroup="...": Default color group of region contents. Required.
- delimGroup="...": color group of start and end of region. Optional,
defaults to value of innerGroup attribute.
- start="...", end="...": Regular expression matching start and end
of region. Required. Regular expression delimiters are optional, but
if you need to specify delimiter, use /. The only case when the
delimiters are needed, is specifying regular expression modifiers,
such as m or U. Examples: \/\* or /$/m.
- contained="yes": Marks region as contained.
- never-contained="yes": Marks region as not-contained.
- <contains>: Elements allowed inside this region.
- all="yes" Region can contain any other region or block
(except not-contained). May be used multiple times.
- <but> Do not allow certain regions or blocks.
- region="..." Name of region not allowed within
current region.
- block="..." Name of block not allowed within
current region.
- region="..." Name of region allowed within current region.
- block="..." Name of block allowed within current region.
- <onlyin> Only allow this region within certain regions. May be
used multiple times.
- block="..." Name of parent region
* <block>: Block definition
- name="...": Block name. Required.
- innerGroup="...": color group of block contents. Optional. If not
specified, color group of parent region or default color group will be
used. One would only want to omit this attribute if there are
keyword groups (see below) inherited from this block, and no special
highlighting should apply when the block does not match the keyword.
- match="..." Regular expression matching the block. Required.
Regular expression delimiters are optional, but if you need to
specify delimiter, use /. The only case when the delimiters are
needed, is specifying regular expression modifiers, such as m or U.
Examples: #|\/\/ or /$/m.
- contained="yes": Marks block as contained.
- never-contained="yes": Marks block as not-contained.
- <onlyin> Only allow this block within certain regions. May be used
multiple times.
- block="..." Name of parent region
- multiline="yes": Marks block as multi-line. By default, whole
blocks are assumed to reside in a single line. This make the things
faster. If you need to declare a multi-line block, use this
attribute.
- <partgroup>: Assigns another color group to a part of the block that
matched a subpattern.
- index="n": Subpattern index. Required.
- innerGroup="...": color group name. Required.
This is an example from CSS highlighter: the measure is matched as
a whole, but the measurement units are highlighted with different
color.
<block name="measure" match="\d*\.?\d+(\%|em|ex|pc|pt|px|in|mm|cm)"
innerGroup="number" contained="yes">
<onlyin region="property"/>
<partGroup index="1" innerGroup="string" />
</block>
* <keywords>: Keyword group definition. Keyword groups are useful when you
want to highlight some words that match a condition for a block with a
different color. Keywords are defined with literal match, not regular
expressions. For example, you have a block named identifier matching a
general identifier, and want to highlight reserved words (which match
this block as well) with different color. You inherit a keyword group
"reserved" from "identifier" block.
- name="...": Keyword group. Required.
- ifdef="...", ifndef="..." : Conditional declaration. See
"Conditions" below.
- inherits="...": Inherited block name. Required.
- innerGroup="...": color group of keyword group. Required.
- case="yes|no": Overrides case-sensitivity of the language.
Optional, defaults to global value.
- <keyword>: Single keyword definition.
- match="..." The keyword. Note: this is not a regular
expression, but literal match (possibly case insensitive).
Note that for BC reasons element partClass is alias for partGroup, and
attributes innerClass and delimClass are aliases of innerGroup and
delimGroup, respectively.
Conditions
----------
Conditional declarations allow enabling or disabling certain highlighting
rules at runtime. For example, Java highlighter has a very big list of
keywords matching Java standard classes. Finding a match in this list can take
much time. For that reason, corresponding keyword group is declared with
"ifdef" attribute :
<keywords name="builtin" inherits="identifier" innerClass="builtin"
case="yes" ifdef="java.builtins">
<keyword match="AbstractAction" />
<keyword match="AbstractBorder" />
<keyword match="AbstractButton" />
...
...
<keyword match="_Remote_Stub" />
<keyword match="_ServantActivatorStub" />
<keyword match="_ServantLocatorStub" />
</keywords>
This keyword group will be only enabled when "java.builtins" is passed as an
element of "defines" option:
$options = array(
'defines' => array(
'java.builtins',
),
'numbers' => HL_NUMBERS_TABLE,
);
$highlighter = Text_Highlighter::factory('java', $options);
"ifndef" attribute has reverse meaning.
Currently, "ifdef" and "ifndef" attributes are only supported for <keywords>
tag.
Class generation
================
Creating XML description of highlighting rules is the most complicated part of
the process. To generate the class, you need just few lines of code:
<?php
require_once 'Text/Highlighter/Generator.php';
$generator = new Text_Highlighter_Generator('php.xml');
$generator->generate();
$generator->saveCode('PHP.php');
?>
Command-line class generation tool
==================================
Example from previous section looks pretty simple, but it does not handle any
errors which may occur during parsing of XML source. The package provides a
command-line script to make generation of classes even more simple, and takes
care of possible errors. It is called generate (on Unix/Linux) or generate.bat
(on Windows). This script is able to process multiple files in one run, and
also to process XML from standard input and write generated code to standard
output.
Usage:
generate options
Options:
-x filename, --xml=filename
source XML file. Multiple input files can be specified, in which
case each -x option must be followed by -p unless -d is specified
Defaults to stdin
-p filename, --php=filename
destination PHP file. Defaults to stdout. If specied multiple times,
each -p must follow -x
-d dirname, --dir=dirname
Default destination directory. File names will be taken from XML input
("lang" attribute of <highlight> tag)
-h, --help
This help
Examples
Read from php.xml, write to PHP.php
generate -x php.xml -p PHP.php
Read from php.xml, write to standard output
generate -x php.xml
Read from php.xml, write to PHP.php, read from xml.xml, write to XML.php
generate -x php.xml -p PHP.php -x xml.xml -p XML.php
Read from php.xml, write to /some/dir/PHP.php, read from xml.xml, write to
/some/dir/XML.php (assuming that xml.xml contains <highlight lang="xml">, and
php.xml contains <highlight lang="php">)
generate -x php.xml -x xml.xml -d /some/dir/
Renderers
=========
Introduction
------------
Text_Highlighter supports renderes. Using renderers, you can get output in
different formats. Two renderers are included in the package:
- HTML renderer. Generates HTML output. A style sheet should be linked to
the document to display colored text
- Console renderer. Can be used to output highlighted text to
color-capable terminals, either directly or trough less -r
Renderers API
-------------
Renderers are subclasses of Text_Highlighter_Renderer. Renderer should
override at least two methods - acceptToken and getOutput. Overriding other
methods is optional, depending on the nature of renderer's output and details
of implementation.
string reset()
resets renderer state. This method is called every time before a new
source file is highlighted.
string preprocess(string $code)
preprocesses code. Can be used, for example, to normalize whitespace
before highlighting. Returns preprocessed string.
void acceptToken(string $group, string $content)
the core method of the renderer. Highlighter passes chunks of text to
this method in $content, and color group in $group
void finalize()
signals the renderer that no more tokens are available.
mixed getOutput()
returns generated output.
Setting renderer options
--------------------------------
Renderers accept an optional argument to their constructor - options array.
Elements of this array are renderer-specific.
HTML renderer
-------------
HTML renderer produces HTML output with optional line numbering. The renderer
itself does not provide information about actual colors of highlighted text.
Instead, <span class="hl-XXX"> is used, where XXX is replaced with color group
name (hl-var, hl-string, etc.). It is up to you to create a CSS stylesheet.
If 'use_language' option with value evaluating to true was passed, class names
will be formatted as "LANG-hl-XXX", where LANG is language name as defined in
highlighter XML source ("lang" attribute of <highlight> tag) in lower case.
There are 3 special CSS classes:
hl-main - this class applies to whole output or right table column,
depending on 'numbers' option
hl-gutter - applies to left column in table
hl-table - applies to whole table
HTML renderer accepts following options (each being optional):
* numbers - line numbering style.
0 - no numbering (default)
HL_NUMBERS_LI - use <ol></ol> for line numbering
HL_NUMBERS_TABLE - create a 2-column table, with line numbers in left
column and highlighted text in right column
* tabsize - tabulation size. Defaults to 4
Example:
require_once 'Text/Highlighter/Renderer/Html.php';
$options = array(
'numbers' => HL_NUMBERS_LI,
'tabsize' => 8,
);
$renderer = new Text_Highlighter_Renderer_HTML($options);
Console renderer
----------------
Console renderer produces output for displaying on a color-capable terminal,
either directly or through less -r, using ANSI escape sequences. By default,
this renderer only highlights most common color groups. Additional colors
can be specified using 'colors' option. This renderer also accepts 'numbers'
option - a boolean value, and 'tabsize' option.
Example :
require_once 'Text/Highlighter/Renderer/Console.php';
$colors = array(
'prepro' => "\033[35m",
'types' => "\033[32m",
);
$options = array(
'numbers' => true,
'tabsize' => 8,
'colors' => $colors,
);
$renderer = new Text_Highlighter_Renderer_Console($options);
ANSI color escape sequences have the following format:
ESC[#;#;....;#m
where ESC is character with ASCII code 27 (033 octal, 0x1B hexadecimal). # is
one of the following:
0 for normal display
1 for bold on
4 underline (mono only)
5 blink on
7 reverse video on
8 nondisplayed (invisible)
30 black foreground
31 red foreground
32 green foreground
33 yellow foreground
34 blue foreground
35 magenta foreground
36 cyan foreground
37 white foreground
40 black background
41 red background
42 green background
43 yellow background
44 blue background
45 magenta background
46 cyan background
47 white background
How to use Text_Highlighter class
=================================
Creating a highlighter object
-----------------------------
To create a highlighter for a certain language, use Text_Highlighter::factory()
static method:
require_once 'Text/Highlighter.php';
$hl = Text_Highlighter::factory('php');
Setting a renderer
------------------
Actual output is produced by a renderer.
require_once 'Text/Highlighter.php';
require_once 'Text/Highlighter/Renderer/Html.php';
$options = array(
'numbers' => HL_NUMBERS_LI,
'tabsize' => 8,
);
$renderer = new Text_Highlighter_Renderer_HTML($options);
$hl = Text_Highlighter::factory('php');
$hl->setRenderer($renderer);
Note that for BC reasons, it is possible to use highlighter without setting a
renderer. If no renderer is set, HTML renderer will be used by default. In
this case, you should pass options as second parameter to factory method. The
following example works exactly as previous one:
require_once 'Text/Highlighter.php';
$options = array(
'numbers' => HL_NUMBERS_LI,
'tabsize' => 8,
);
$hl = Text_Highlighter::factory('php', $options);
Getting output
--------------
And finally, do the highlighting and get the output:
require_once 'Text/Highlighter.php';
require_once 'Text/Highlighter/Renderer/Html.php';
$options = array(
'numbers' => HL_NUMBERS_LI,
'tabsize' => 8,
);
$renderer = new Text_Highlighter_Renderer_HTML($options);
$hl = Text_Highlighter::factory('php');
$hl->setRenderer($renderer);
$html = $hl->highlight(file_get_contents('example.php'));
# vim: set autoindent tabstop=4 shiftwidth=4 softtabstop=4 tw=78: */

View file

@ -0,0 +1,12 @@
# $Id$
Major issues to solve (but I currently have no idea how) :
- speedup highlighting process
- switching between highlighters depending on context, for example :
PHP code -> HTML -> (JavaScript|CSS)
# vim: set autoindent tabstop=4 shiftwidth=4 softtabstop=4 tw=78: */

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();
}
}

File diff suppressed because it is too large Load diff

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();
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,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,208 @@
<?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('~^~em', '" " . 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',