summaryrefslogtreecommitdiff
path: root/buildscripts/PhpDocumentor/phpDocumentor/ParserDescCleanup.inc
diff options
context:
space:
mode:
Diffstat (limited to 'buildscripts/PhpDocumentor/phpDocumentor/ParserDescCleanup.inc')
-rw-r--r--buildscripts/PhpDocumentor/phpDocumentor/ParserDescCleanup.inc1456
1 files changed, 0 insertions, 1456 deletions
diff --git a/buildscripts/PhpDocumentor/phpDocumentor/ParserDescCleanup.inc b/buildscripts/PhpDocumentor/phpDocumentor/ParserDescCleanup.inc
deleted file mode 100644
index bd80d104..00000000
--- a/buildscripts/PhpDocumentor/phpDocumentor/ParserDescCleanup.inc
+++ /dev/null
@@ -1,1456 +0,0 @@
-<?php
-//
-// +------------------------------------------------------------------------+
-// | phpDocumentor |
-// +------------------------------------------------------------------------+
-// | Copyright (c) 2000-2003 Joshua Eichorn, Gregory Beaver |
-// | Email jeichorn@phpdoc.org, cellog@phpdoc.org |
-// | Web http://www.phpdoc.org |
-// | Mirror http://phpdocu.sourceforge.net/ |
-// | PEAR http://pear.php.net/package-info.php?pacid=137 |
-// +------------------------------------------------------------------------+
-// | This source file is subject to version 3.00 of the PHP License, |
-// | that is available at 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 world-wide-web, please send a note to |
-// | license@php.net so we can mail you a copy immediately. |
-// +------------------------------------------------------------------------+
-//
-
-/**
- * All of the functions to clean up and handle the long description
- * of a DocBlock are in this file.
- *
- * The primary functionality is based on Parser and WordParser, and modified to recognize
- * only the tokens defined in the PHPDOCUMENTOR_PDP_* constants
- * @see Parser, WordParser
- * @package phpDocumentor
- * @subpackage Parsers
- * @author Greg Beaver <cellog@users.sourceforge.net>
- * @since 1.2
- */
-/**#@+
- * {@link parserDescParser} token constants
- */
-/** when <<code>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_CODE', 600);
-/** when <<code>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_CODE', 700);
-/** when <<p>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_P', 601);
-/** when <<p>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_P', 701);
-/** when \n\n is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_DOUBLECR', 602);
-/** when \n\n is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_DOUBLECR', 702);
-/** when <<pre>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_PRE', 603);
-/** when <<pre>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_PRE', 703);
-/** when <<ul>>/<<ol>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_LIST', 604);
-/** when <<ul>>/<<ol>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_LIST', 704);
-/** when <<b>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_B', 605);
-/** when <<b>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_B', 705);
-/** when <<i>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_I', 606);
-/** when <<i>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_I', 706);
-/** when <<br>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_BR', 607);
-/** when <<br>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_BR', 707);
-/** when the << potential escape for tags is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_ESCAPE',608);
-/** when the << potential escape for tags is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_ESCAPE',708);
-/** when << /pre>> is found in a <<pre>><</pre>> section */
-define('PHPDOCUMENTOR_PDP_EVENT_ESCAPE_PRE',609);
-/** when << /pre>> is found in a <<pre>><</pre>> section */
-define('PHPDOCUMENTOR_PDP_STATE_ESCAPE_PRE',709);
-/** when << /code>> is found in a <<code>><</code>> section */
-define('PHPDOCUMENTOR_PDP_EVENT_ESCAPE_CODE',610);
-/** when << /code>> is found in a <<code>><</code>> section */
-define('PHPDOCUMENTOR_PDP_STATE_ESCAPE_CODE',710);
-/** when <<var>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_VAR',611);
-/** when <<var>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_VAR',711);
-/** when <<samp>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_SAMP',612);
-/** when <<samp>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_SAMP',712);
-/** when <<kbd>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_KBD',613);
-/** when <<kbd>> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_KBD',713);
-/** when a simple list is found in a desc
- *
- * like
- * <pre>
- * o item 1
- * o item 2
- * </pre>
- */
-define('PHPDOCUMENTOR_PDP_EVENT_SIMLIST',614);
-/** when a simple list is found in a desc
- *
- * like
- * <pre>
- * o item 1
- * o item 2
- * </pre>
- */
-define('PHPDOCUMENTOR_PDP_STATE_SIMLIST',714);
-/**#@-*/
-/**
-* Like WordParser but designed to handle an array with strings and
-* {@link parserInlineTag}s
-* @package phpDocumentor
-* @subpackage WordParsers
-* @author Greg Beaver <cellog@users.sourceforge.net>
-* @since 1.2
-*/
-class ObjectWordParser extends WordParser
-{
- /**
- * Determines whether text searching is case-sensitive or not
- * @access private
- */
- var $_casesensitive = false;
-
- function ObjectWordParser($casesensitive = false)
- {
- $this->_casesensitive = $casesensitive;
- }
-
- /**
- * Set the word parser to go.
- *
- * @param array {@link parserStringWithInlineTags::$value} style-array, with
- * alternating text and inline tags
- */
- function setup(&$input)
- {
-// if (is_string($input[0])) $input[0] = ltrim($input[0]);
- $this->data = & $input;
- $this->pos = 0;
- $this->linenum = 0;
- $this->linenumpos = 0;
- $this->cache = array();
- reset($this->data);
- list($this->index,) = each($this->data);
- if (!is_object($this->data[$this->index]))
- $this->size = strlen($this->data[$this->index]);
- else $this->size = 0;
- //$this->run = 0;
- //$this->word = WORD_PARSER_RET_WORD;
- }
-
- function getWord()
- {
- if (!isset($this->data[$this->index])) return false;
- // return any inline tags unchanged
- if (is_object($this->data[$this->index]))
- {
- $index = $this->index;
- list($this->index,) = each($this->data);
- $this->pos = 0;
- if ($this->index)
- {
- if (!is_object($this->data[$this->index]))
- $this->size = strlen($this->data[$this->index]);
- else $this->size = 0;
- $this->cache = array();
- return $this->data[$index];
- } else
- {
- return false;
- }
- }
- //$st = $this->mtime();
- if ($this->size == $this->pos)
- {
- // cycle to next line in the array
- list($this->index,) = each($this->data);
- if (!$this->index) return false;
- $this->pos = 0;
- if (!is_object($this->data[$this->index]))
- $this->size = strlen($this->data[$this->index]);
- else $this->size = 0;
- $this->cache = array();
- return $this->getWord();
- }
-
- $npos = $this->size;
- if (is_array($this->wordseperators))
- {
- //$this->wordseperators = array();
- foreach($this->wordseperators as $sep)
- {
- if (isset($this->cache[$sep]))
- $tpos = $this->cache[$sep];
- else
- $tpos = false;
- if ($tpos < $this->pos || !is_int($tpos))
- {
- if ($this->_casesensitive)
- $tpos = strpos($this->data[$this->index],$sep,$this->pos);
- else
- $tpos = strpos(strtolower($this->data[$this->index]),$sep,$this->pos);
- }
-
- if ( ($tpos < $npos) && !($tpos === false))
- {
- //echo trim($sep) . "=$tpos\n";
- $npos = $tpos;
- $seplen = strlen($sep);
- }
- else if (!($tpos === false))
- {
- $this->cache[$sep] = $tpos;
- }
- }
- } else {
- // its time to cycle
- return "";
- }
-
- $len = $npos - $this->pos;
- if ($len == 0)
- {
- $len = $seplen;
- }
-
- //$st3 = $this->mtime();
- $word = substr($this->data[$this->index],$this->pos,$len);
-
- // Change random other os newlines to the unix one
- if ($word == "\r" || $word == "\r\n")
- {
- $word = "\n";
- }
-
- if ($this->linenumpos <= $this->pos)
- {
- $this->linenumpos = $this->pos + $len;
- $this->linenum += count(explode("\n",$word)) - 1;
- }
-
- if ($this->getsource)
- {
- $this->source .= $word;
- }
- $this->pos = $this->pos + $len;
- //$this->word = WORD_PARSER_RET_SEP;
-
- // Things like // commenats rely on the newline to find their end so im going to have to return them
- // never return worthless white space /t ' '
- if ($this->returnWhiteSpace == false)
- {
- if (strlen(trim($word)) == 0 && $word != "\n")
- {
- $word = $this->getWord();
- }
- }
- //$this->time3 = $this->time3 + ($this->mtime() - $st3);
- //$this->time = $this->time + ($this->mtime() - $st);
- return $word;
- }
-
- /**
- * Determine if the next word is an inline tag
- * @return boolean
- */
- function nextIsObjectOrNonNL()
- {
- return (($this->size == $this->pos) && isset($this->data[$this->index + 1])
- && is_object($this->data[$this->index + 1])) ||
- (($this->size > $this->pos) && !in_array($this->data[$this->index]{$this->pos}, array("\n", "\r")));
- }
-}
-
-/**
- * Parses a DocBlock description to retrieve abstract representations of
- * <<pre>>,<<code>>,<<p>>,<<ul>>,<<ol>>,<<li>>,<<b>>,<<i>>
- * @tutorial phpDocumentor.howto.pkg#basics.desc
- * @package phpDocumentor
- * @subpackage Parsers
- * @author Greg Beaver <cellog@users.sourceforge.net>
- * @since 1.2
- */
-class parserDescParser extends Parser
-{
- /**#@+
- * @access private
- */
- /**
- * @var array
- */
- var $eventHandlers = array(PHPDOCUMENTOR_PDP_EVENT_CODE => 'handleCode',
- PHPDOCUMENTOR_PDP_EVENT_PRE => 'handlePre',
- PHPDOCUMENTOR_PDP_EVENT_P => 'handleP',
- PHPDOCUMENTOR_PDP_EVENT_DOUBLECR => 'handleDoubleCR',
- PHPDOCUMENTOR_PDP_EVENT_LIST => 'handleList',
- PHPDOCUMENTOR_PDP_EVENT_B => 'handleB',
- PHPDOCUMENTOR_PDP_EVENT_I => 'handleI',
- PHPDOCUMENTOR_PDP_EVENT_VAR => 'handleVar',
- PHPDOCUMENTOR_PDP_EVENT_KBD => 'handleKbd',
- PHPDOCUMENTOR_PDP_EVENT_SAMP => 'handleSamp',
- PHPDOCUMENTOR_PDP_EVENT_BR => 'handleBr',
- PHPDOCUMENTOR_PDP_EVENT_ESCAPE => 'handleEscape',
- PHPDOCUMENTOR_PDP_EVENT_ESCAPE_CODE => 'handleEscapeCode',
- PHPDOCUMENTOR_PDP_EVENT_ESCAPE_PRE => 'handleEscapePre',
- PHPDOCUMENTOR_PDP_EVENT_SIMLIST => 'handleSimpleList',
- PARSER_EVENT_NOEVENTS => 'defaultHandler',
- );
-
- /**
- * @var array
- */
- var $pars = array();
- /**
- * Determines whether parsing of &lt;p&gt; tags will occur, or double CR will
- * be used
- * @var boolean
- */
- var $parse_Ps;
- /**
- * Context stack.
- *
- * Values can be 'normal', or any tag container like 'my_i', 'my_b'. This
- * is used to determine which tag text or nested tags should be added to
- * @var array
- */
- var $_context = array('normal');
- /**#@-*/
-
- /**
- * sets $wp to be a {@link ObjectWordParser}
- *
- * $wp is the word parser that retrieves tokens
- */
- function parserDescParser()
- {
- $this->wp = new ObjectWordParser;
- }
-
- /**
- * Parse a long or short description for tags
- *
- * @param array array of strings or {@link parserInlineTag}s
- * @param boolean true if the description is a short description. (only 1 paragraph allowed in short desc)
- * @param string name of the class to instantiate for each paragraph. parserDesc for desc/sdesc,
- * parserStringWithInlineTags for tag data
- * @staticvar integer used for recursion limiting if a handler for an event is not found
- */
- function parse (&$parse_data,$sdesc = false,$ind_type = 'parserDesc')
- {
- static $endrecur = 0;
- global $_phpDocumentor_setting;
- if (!is_array($parse_data) || count($parse_data) == 0)
- {
- return false;
- }
- $this->p_vars['indtype'] = $ind_type;
- $this->setupStates($sdesc);
- if (isset($_phpDocumentor_setting['javadocdesc']) && $_phpDocumentor_setting['javadocdesc'] == 'on')
- $this->parse_Ps = true;
-
- // initialize variables so E_ALL error_reporting doesn't complain
- $pevent = 0;
- $word = 0;
- $this->p_vars['curpar'] = 0;
- $this->pars = array();
- $this->p_vars['start'] = true;
- $this->p_vars['event_stack'] = new EventStack;
-
- $this->wp->setup($parse_data,$sdesc);
- $this->wp->setWhitespace(true);
- $this->p_vars['list_count'] = 0;
- if ($sdesc) $this->p_vars['start'] = false;
- do
- {
- if (!isset($this->pars[$this->p_vars['curpar']])) $this->pars[$this->p_vars['curpar']] = new $ind_type;
- $lpevent = $pevent;
- $pevent = $this->p_vars['event_stack']->getEvent();
- if ($lpevent != $pevent)
- {
- $this->p_vars['last_pevent'] = $lpevent;
- }
-
- if ($this->p_vars['last_pevent'] != $pevent)
- {
- // its a new event so the word parser needs to be reconfigured
- $this->configWordParser($pevent);
- }
-
-
- $this->p_vars['last_word'] = $word;
- $word = $this->wp->getWord();
-
- if (0)//PHPDOCUMENTOR_DEBUG == true)
- {
- echo "----------------\n";
- echo "LAST: |" . htmlentities($this->p_vars['last_word']) . "|\n";
-// echo "INDEX: ".$this->p_vars['curpar']."\n";
- echo "PEVENT: " . $this->getParserEventName($pevent) . "\n";
- echo "LASTPEVENT: " . $this->getParserEventName($this->p_vars['last_pevent']) . "\n";
- echo $this->wp->getPos() . " WORD: |".htmlentities($word)."|\n\n";
- var_dump($this->_context);
- }
- if (isset($this->eventHandlers[$pevent]))
- {
- $handle = $this->eventHandlers[$pevent];
- if ($word !== false) $this->$handle($word, $pevent);
- else
- {
- if (!count($this->pars[$this->p_vars['curpar']]->value)) unset($this->pars[$this->p_vars['curpar']]);
- }
- } else
- {
- debug('WARNING: possible error, no ParserDescParser handler for event number '.$pevent);
- if ($endrecur++ == 25)
- {
- die("FATAL ERROR, recursion limit reached");
- }
- }
- if (is_object($word) || trim($word) != '')
- {
- $this->p_vars['start'] = false;
- }
- } while (is_object($word) || !($word === false) && $word != '');
- $context = $this->getContext();
- if ($context != 'normal')
- {
- if ($context == 'list' && $this->p_flags['simplelist'])
- {
- $this->p_vars['lists'][0]->addItem($this->p_vars['list_item'][0]);
- unset($this->p_vars['list_item'][0]);
- $this->setContext('normal');
- $this->addText($this->p_vars['lists'][0]);
- } else addError(PDERROR_UNCLOSED_TAG,str_replace('my_','',$context));
- }
- if ($this->p_vars['list_count'] > 0) addError(PDERROR_UNMATCHED_LIST_TAG);
- if ($sdesc)
- $this->publishEvent(2,$this->pars);
- else
- $this->publishEvent(1,$this->pars);
- }
- /**#@+ @access private */
- /**
- * basic handling
- *
- * This function checks to see if the first thing in
- * a description is the <p> tag. If so, it will switch
- * into a mode of parsing out paragraphs by <p> instead
- * of a double line-break
- *
- * It also removes extra whitespace
- * @uses doSimpleList()
- */
- function defaultHandler($word, $pevent)
- {
- $context = $this->getContext();
- if ($context != 'normal') $this->setContext('normal');
- if ($this->p_vars['start'] && is_string($word) && strtolower($word) == '<p>')
- {
- $this->parse_Ps = true;
- }
- if (is_string($word) && $this->checkEventPush($word, $pevent)) return;
-// if (!isset($this->parse_Ps) || !$this->parse_Ps)
- {
- if (!is_object($word) && ($word == ' ' && $this->p_vars['last_word'] == ' ')) return;
- if ($pevent == PARSER_EVENT_NOEVENTS)
- {
- if ($this->doSimpleList($word)) return;
- }
- $this->addText($word);
- }
- }
-
- /**
- * Retrieve the current top-level tag to add text into
- * @uses $_context
- */
- function getContext()
- {
- array_push($this->_context,$a = array_pop($this->_context));
- return $a;
- }
-
- /**
- * Pop a context off of the context stack
- * @uses $_context
- */
- function dropContext()
- {
- array_pop($this->_context);
- if (count($this->_context) == 0)
- $this->_context = array('normal');
- }
-
- /**
- * @uses $_context
- * @param string context name
- */
- function setContext($context)
- {
- array_push($this->_context,$context);
- }
-
- /**
- * add input as text to the current paragraph or list
- * @param string|parserInlineTag
- */
- function addText($text)
- {
- $context = $this->getContext();
- if ($context == 'list')
- {
-// debug('aded to '.$context);
- $this->p_vars['list_item'][$this->p_vars['list_count']]->add($text);
- } elseif ($context != 'normal')
- {
-// debug('added to '.$context);
- $this->p_vars[$context]->add($text);
- } else
- {
-// debug('added to normal ');
- $indtype = $this->p_vars['indtype'];
- if (!isset($this->pars[$this->p_vars['curpar']]))
- $this->pars[$this->p_vars['curpar']] = new $indtype;
- $this->pars[$this->p_vars['curpar']]->add($text);
- }
- }
-
- /**#@-*/
- /**#@+
- * @access private
- * @param string|parserInlineTag token from the ObjectWordParser
- * @param integer parser event from {@link ParserDescCleanup.inc}
- */
- /**
- * Handles special case where a description needs the text "<tag>" and tag
- * is one of code, b, i, pre, var, or any other valid in-DocBlock html tag.
- *
- * the text <<<code>>> in a DocBlock will parse out as <<code>>, instead
- * of being parsed as markup.
- */
- function handleEscape($word, $pevent)
- {
- $this->p_vars['event_stack']->popEvent();
- if (!in_array($word, $this->tokens[PHPDOCUMENTOR_PDP_STATE_ESCAPE]))
- {
- if ($word == '<')
- {
- $this->addText($word);
- $this->wp->backupPos($word.$word);
- } else
- $this->wp->backupPos($word);
- return;
- }
- $this->addText('<'.str_replace('>>','>',$word));
- }
-
- /**
- * Just like {@link handleEscape}, except the only valid escape is
- * <<</pre>>>
- */
- function handleEscapePre($word, $pevent)
- {
- $this->p_vars['event_stack']->popEvent();
- $this->addText('</pre>');
- }
-
- /**
- * Just like {@link handleEscape}, except the only valid escape is
- * <<</code>>>
- */
- function handleEscapeCode($word, $pevent)
- {
- $this->p_vars['event_stack']->popEvent();
- $this->addText('</code>');
- }
-
- /**
- * Handle "<<br>>"
- * Add a new {@link parserBr}
- * @uses addText()
- */
- function handleBr($word, $pevent)
- {
- if (is_string($word) && $this->checkEventPop($word, $pevent))
- {
- $this->addText(new parserBr);
- }
- }
-
- /**
- * Handles simple lists
- *
- * phpEdit has an ingenious facility to handle simple lists used in a
- * DocBlock like this:
- *
- * - item 1
- * - item 2
- * - item 3
- *
- * The DocBlock is:
- * <pre>
- * * - item 1
- * * - item 2
- * * - item 3
- * </pre>
- * This function converts these simple lists into the parserList class
- * @param boolean true if this is the first list item in the list
- */
- function handleSimpleList($word, $pevent, $start = false)
- {
- if (is_object($word) && $this->p_flags['in_item'])
- {
- $this->p_vars['list_item'][0]->add($word);
- return;
- }
- if (is_string($word) && $this->checkEventPush($word, $pevent))
- {
- $this->p_flags['in_event'] = true;
- return;
- }
- $ltrimword = @substr($word, @strpos($word, ltrim($word)));
- $is_valid = false;
- if (strlen(trim($word)) == 0)
- {
- if ($this->wp->nextIsObjectOrNonNL())
- {
- $is_valid = true;
- }
- }
- if ($word == "\n" && is_string($this->p_vars['last_word'])
- && $this->p_vars['last_word']{strlen($this->p_vars['last_word']) - 1}
- == "\n")
- {
- if ($this->p_flags['in_item'])
- {
- $this->p_vars['lists'][0]->addItem($this->p_vars['list_item'][0]);
- unset($this->p_vars['list_item'][0]);
- $this->setContext('normal');
- $this->p_flags['simplelist'] = false;
- $this->addText($this->p_vars['lists'][0]);
- unset($this->p_vars['lists']);
- unset($this->p_vars['last_list']);
- $this->wp->backuppos($word);
- $this->p_vars['event_stack']->popEvent();
- $this->p_flags['in_item'] = false;
-// debug('end of list 3');
- return;
- } else
- {
- $this->wp->backuppos($word);
- $this->p_vars['event_stack']->popEvent();
- $this->p_flags['in_item'] = false;
-// debug('not a list 2');
- return;
- }
- }
- $start_list = $this->getStartList($word);
- if (substr($ltrimword,0,strlen($start_list)) != $start_list
- || $this->p_flags['in_event'] || is_object($this->p_vars['last_word']))
- {
- if (((strlen($this->p_vars['whitespace']) + 1) < strlen(substr($word,0,strpos($word, $ltrimword))))
- || $word == "\n"
- || $is_valid
- || $this->p_flags['in_event']
- || (is_object($this->p_vars['last_word']) && $this->p_flags['in_item']))
- {
- $this->p_vars['list_item'][0]->add($word);
- $this->resetStartList($start_list);
- $this->p_flags['in_event'] = false;
-// debug('middle of list');
- } else
- {
- if ($this->p_flags['in_item'])
- {
- $this->p_vars['lists'][0]->addItem($this->p_vars['list_item'][0]);
- unset($this->p_vars['list_item'][0]);
- $this->setContext('normal');
- $this->p_flags['simplelist'] = false;
- $this->addText($this->p_vars['lists'][0]);
- unset($this->p_vars['lists']);
- unset($this->p_vars['last_list']);
- $this->wp->backuppos($word);
- $this->p_vars['event_stack']->popEvent();
- $this->p_flags['in_item'] = false;
-// debug('end of list 1');
- return;
- } else
- {
- $this->wp->backuppos($word);
- $this->p_vars['event_stack']->popEvent();
- $this->p_flags['in_item'] = false;
-// debug('not a list');
- return;
- }
- }
- } else
- {
- if ($this->p_vars['whitespace'] != substr($word,0,strpos($word, $start_list)))
- { // if the whitespace is greater than that preceding the list
- // delimiter, it's a multi-line list item
- $this->setContext('normal');
- $this->p_flags['simplelist'] = false;
- $this->addText($this->p_vars['lists'][0]);
- unset($this->p_vars['lists']);
- $this->wp->backuppos($word);
- $this->p_vars['event_stack']->popEvent();
- unset($this->p_vars['last_list']);
- $this->p_flags['in_item'] = false;
-// debug('end of list 2');
- return;
- } else
- {
- if ($this->p_flags['in_item'])
- {
- // end of a list item, add it to the list
- $this->p_vars['lists'][0]->addItem($this->p_vars['list_item'][0]);
- unset($this->p_vars['list_item'][0]);
- }
-// debug('next list item');
- $this->p_vars['list_item'][0] = new parserStringWithInlineTags;
- $this->p_vars['list_item'][0]->add(ltrim(substr($ltrimword,strlen($start_list))));
- $this->p_flags['in_item'] = true;
- }
- }
- }
- /**#@-*/
- /**
- * Get the next list marker
- *
- * In unordered lists, this will be something like "o", "-"
- *
- * In ordered lists, this will be either the number "3", "5" or "3.", "5."
- * @return string text of the next list marker to look for
- * @param string current word from the parser
- * @access private
- */
- function getStartList($word)
- {
- // unordered, return the first marker found
- if (!$this->p_flags['orderedlist']) return $this->p_vars['start_list'];
- if (isset($this->p_vars['last_list']))
- {
- $this->p_vars['save_list'] = $this->p_vars['last_list'];
- $next = $this->p_vars['last_list'];
- // increment to next list number, convert to string
- if (substr($this->p_vars['start_list'], strlen($this->p_vars['start_list']) - 1) == '.')
- $next = (substr($next, 0, strpos($next,'.')) + 1) . '.';
- else
- $next = ($next + 1) . '';
-// debug("next is '$next'");
- if ($this->p_vars['whitespace'] == substr($word,0,strpos($word, $next)))
- return $this->p_vars['last_list'] = $next;
- // the next number is not in this word, so return but don't save
- return $next;
- } else
- {
- $this->p_vars['last_list'] = $this->p_vars['start_list'];
- return $this->p_vars['start_list'];
- }
- }
-
- /**
- * Set the next list marker to the current list marker
- *
- * In ordered lists, this will ensure that the next number returned is the
- * right number
- * @param string token for next list marker
- * @access private
- */
- function resetStartList($start)
- {
- if (!isset($this->p_vars['save_list'])) return false;
- $this->p_vars['last_list'] = $this->p_vars['save_list'];
- }
-
- /**#@+
- * @access private
- * @param string|parserInlineTag token from the ObjectWordParser
- * @param integer parser event from {@link ParserDescCleanup.inc}
- */
- /**
- * Handles <<ol>>,<<li>>,<<ul>>
- *
- * This allows parsing of lists nested to any level. Using
- * the lists and list_item temporary variables and using
- * list_count to control nesting, the method creates a {@link parserList}
- * for each <<ol>> or <<ul>> tag, and a
- * standard {@link parserStringWithInlineTags} for all the text, adding
- * in nested lists as if they were inline tags (the conversion interface
- * is the same for both object types)
- */
- function handleList($word, $pevent)
- {
- if (is_string($word) && $this->checkEventPush($word, $pevent))
- {
- return;
- }
- $ordered = false;
- if (!is_object($this->p_vars['last_word']) && strtolower($this->p_vars['last_word']) == '<ol>')
- {
- // ordered list
- $ordered = true;
- }
- // start a new list
- if (!is_object($this->p_vars['last_word']) && (strtolower($this->p_vars['last_word']) == '<ol>' || strtolower($this->p_vars['last_word']) == '<ul>'))
- {
- $this->p_flags['in_item'] = false;
- $this->setContext('list');
- $this->p_vars['lists'][++$this->p_vars['list_count']] = new parserList($ordered);
- }
- if (!is_object($word) && strtolower($word) == '<li>')
- {
- if ($this->p_flags['in_item'])
- {
- // end of a list item (no end tag), add it to the list
- $this->p_vars['lists'][$this->p_vars['list_count']]->addItem($this->p_vars['list_item'][$this->p_vars['list_count']]);
- unset($this->p_vars['list_item'][$this->p_vars['list_count']]);
- }
- // start a new list item
- $this->p_vars['list_item'][$this->p_vars['list_count']] = new parserStringWithInlineTags;
- $this->p_flags['in_item'] = true;
- } else
- {
- if (is_object($word) || (strtolower($word) != '</li>'))
- {
- if (is_object($word) || (strtolower($word) != '</ul>' && strtolower($word) != '</ol>'))
- {
- // item text
- if (isset($this->p_vars['list_item'][$this->p_vars['list_count']]))
- {
- if ($word == ' ' && $this->p_vars['last_word'] == ' ') return;
- $this->p_vars['list_item'][$this->p_vars['list_count']]->add($word);
- }
- } else
- {
- if ($this->p_flags['in_item'])
- {
- // end the current list item before ending a list
- $this->p_vars['lists'][$this->p_vars['list_count']]->addItem($this->p_vars['list_item'][$this->p_vars['list_count']]);
- unset($this->p_vars['list_item'][$this->p_vars['list_count']]);
- $this->p_flags['in_item'] = false;
- }
- if (is_string($word) && $this->checkEventPop($word, $pevent))
- {
- if ($this->p_vars['list_count'] > 1)
- {
- // this is a sublist, add it to the list item of the parent list
- $this->p_vars['list_item'][$this->p_vars['list_count'] - 1]->add($this->p_vars['lists'][$this->p_vars['list_count']]);
- // remove the sublist item and sublist, drop to parent list
- unset($this->p_vars['lists'][$this->p_vars['list_count']]);
- unset($this->p_vars['lists'][$this->p_vars['list_count']]);
- $this->p_vars['list_count']--;
- $this->p_flags['in_item'] = true;
- } else
- {
- // this is a primary list and it has concluded
- $this->pars[$this->p_vars['curpar']]->add($this->p_vars['lists'][$this->p_vars['list_count']]);
- unset($this->p_vars['lists']);
- unset($this->p_vars['list_item']);
- $this->p_vars['list_count'] = 0;
- $this->dropContext();
- }
- }
- }
- } else
- {
- // check to make sure our list item is not unclosed
- if (!$this->p_flags['in_item'])
- {
- addError(PDERROR_TEXT_OUTSIDE_LI);
- } else
- {
- // end of a list item, add it to the list
- $this->p_vars['lists'][$this->p_vars['list_count']]->addItem($this->p_vars['list_item'][$this->p_vars['list_count']]);
- unset($this->p_vars['list_item'][$this->p_vars['list_count']]);
- $this->p_flags['in_item'] = false;
- }
- }
- }
- }
-
- /**
- * Handles <<code>><</code>> blocks
- */
- function handleCode($word, $pevent)
- {
- if (!isset($this->p_vars['my_code']))
- {
- $this->setContext('my_code');
- $this->p_vars['my_code'] = new parserCode;
- }
- if (is_string($word) && $this->checkEventPush($word, $pevent)) return;
- if (is_object($word) || strtolower($word) != '</code>') $this->p_vars['my_code']->add($word);
- if (is_string($word))
- {
- if ($this->checkEventPop($word,$pevent))
- {
- $this->dropContext();
- $this->addText($this->p_vars['my_code']);
- unset($this->p_vars['my_code']);
- }
- }
- }
-
- /**
- * Handles <<pre>><</pre>> blocks
- */
- function handlePre($word, $pevent)
- {
- if (!isset($this->p_vars['my_pre']))
- {
- $this->setContext('my_pre');
- $this->p_vars['my_pre'] = new parserPre;
- }
- if (is_string($word) && $this->checkEventPush($word, $pevent)) return;
- if (is_object($word) || strtolower($word) != '</pre>') $this->p_vars['my_pre']->add($word);
- if (is_string($word))
- {
- if ($this->checkEventPop($word,$pevent))
- {
- $this->dropContext();
- $this->addText($this->p_vars['my_pre']);
- unset($this->p_vars['my_pre']);
- }
- }
- }
-
- /**
- * Handles <<b>><</b>> blocks
- */
- function handleB($word, $pevent)
- {
- if (!isset($this->p_vars['my_b']))
- {
- $this->setContext('my_b');
- $this->p_vars['my_b'] = new parserB;
- }
- if (is_string($word))
- {
- if ($this->checkEventPop($word,$pevent))
- {
- $this->dropContext();
- $this->addText($this->p_vars['my_b']);
- unset($this->p_vars['my_b']);
- } else
- {
- $this->p_vars['my_b']->add($word);
- }
- } else $this->p_vars['my_b']->add($word);
- }
-
- /**
- * Handles <<i>><</i>> blocks
- */
- function handleI($word, $pevent)
- {
- if (!isset($this->p_vars['my_i']))
- {
- $this->p_vars['my_i'] = new parserI;
- $this->setContext('my_i');
- }
- if (is_string($word))
- {
- if ($this->checkEventPop($word,$pevent))
- {
- $this->dropContext();
- $this->addText($this->p_vars['my_i']);
- unset($this->p_vars['my_i']);
- } else
- {
- $this->p_vars['my_i']->add($word);
- }
- } else $this->p_vars['my_i']->add($word);
- }
-
- /**
- * Handles <<var>><</var>> blocks
- */
- function handleVar($word, $pevent)
- {
- if (!isset($this->p_vars['my_var']))
- {
- $this->setContext('my_var');
- $this->p_vars['my_var'] = new parserDescVar;
- }
- if (is_string($word))
- {
- if ($this->checkEventPop($word,$pevent))
- {
- $this->dropContext();
- $this->addText($this->p_vars['my_var']);
- unset($this->p_vars['my_var']);
- } else
- {
- $this->p_vars['my_var']->add($word);
- }
- } else $this->p_vars['my_var']->add($word);
- }
-
- /**
- * Handles <<samp>><</samp>> blocks
- */
- function handleSamp($word, $pevent)
- {
- if (!isset($this->p_vars['my_samp']))
- {
- $this->setContext('my_samp');
- $this->p_vars['my_samp'] = new parserSamp;
- }
- if (is_string($word))
- {
- if ($this->checkEventPop($word,$pevent))
- {
- $this->dropContext();
- $this->addText($this->p_vars['my_samp']);
- unset($this->p_vars['my_samp']);
- } else
- {
- $this->p_vars['my_samp']->add($word);
- }
- } else $this->p_vars['my_samp']->add($word);
- }
-
- /**
- * Handles <<kbd>><</kbd>> blocks
- */
- function handleKbd($word, $pevent)
- {
- if (!isset($this->p_vars['my_kbd']))
- {
- $this->setContext('my_kbd');
- $this->p_vars['my_kbd'] = new parserKbd;
- }
- if (is_string($word))
- {
- if ($this->checkEventPop($word,$pevent))
- {
- $this->dropContext();
- $this->addText($this->p_vars['my_kbd']);
- unset($this->p_vars['my_kbd']);
- } else
- {
- $this->p_vars['my_kbd']->add($word);
- }
- } else $this->p_vars['my_kbd']->add($word);
- }
-
- /**
- * Handles <<p>><</p>> blocks
- *
- * Note that the only time <<p>> will be interpreted as delimiting a
- * paragraph is if it is the first thing in the description.
- */
- function handleP($word, $pevent)
- {
- if (!isset($this->parse_Ps)) $this->parse_Ps = false;
- if (is_string($word))
- {
- if (is_string($word) && $this->checkEventPush($word, $pevent)) return;
- }
- if (!$this->parse_Ps)
- {
- $this->p_vars['event_stack']->popEvent();
- if (!is_object($word) && strtolower($this->p_vars['last_word']) == '<p>') $this->addText('<p>');
- $this->addText($word);
- return;
- }
- if ($word == "\n") $word = " ";
- if (is_string($word))
- {
- if ($this->checkEventPop($word, $pevent))
- {
- $this->p_vars['curpar']++;
- return;
- }
- // if no closing tag, pretend there was one
- if (!is_object($word) && strtolower($word) == '<p>' && $this->parse_Ps)
- {
- $this->p_vars['curpar']++;
- return;
- }
- }
- if ($this->p_vars['start'])
- {
- $this->addText($word);
- } else
- {// if the <p> is not at the beginning of the desc, then it is not
- // possible to parse into paragraphs using this tag
- if ($word == ' ' && $this->p_vars['last_word'] == ' ') return;
- $this->addText($word);
- }
- }
-
- /**
- * Handles \n\n as a paragraph marker
- * @uses doSimpleList()
- */
- function handleDoubleCR($word, $pevent)
- {
- $this->p_vars['event_stack']->popEvent();
- if ($word == "\n")
- {
- // only use this if <p> isn't being used
- if ((!isset($this->parse_Ps) || !$this->parse_Ps))
- {
- if ($this->p_vars['last_word'] == "\n")
- {
- $this->p_vars['curpar']++;
- $this->parse_Ps = false;
- } else
- {
- if (is_string($word) && !$this->checkEventPush($word, $pevent))
- {
- if ($word == ' ' && $this->p_vars['last_word'] == ' ') return;
- $this->addText($word);
- }
- }
- } else
- {
- if (is_string($word) && !$this->checkEventPush($word, $pevent))
- {
- if ($word == ' ' && $this->p_vars['last_word'] == ' ') return;
- $this->addText($word);
- }
- }
- } else
- {
- if ($this->p_vars['last_word'] == "\n")
- {
- if ((!isset($this->parse_Ps) || !$this->parse_Ps))
- {
- $this->addText(' ');
- }
- }
- if (is_string($word) && !($e = $this->checkEventPush($word, $pevent)))
- {
- if ($word == ' ' && $this->p_vars['last_word'] == ' ') return;
- if ($this->doSimpleList($word)) return;
- $this->addText($word);
- }
- }
- }
-
- /**#@-*/
- /**
- * Return a simple list, if found
- *
- * This helper function extracts a simple list beginning with any of
- * 'o','-'.'#','+','0','1','0.','1.' and starts parsing it.
- * @param string line that may contain a simple list
- * @return boolean true if a list is found, false otherwise
- */
- function doSimpleList($word)
- {
- if ($this->p_flags['in_event']) return true;
- if (is_object($word)) return false;
- $ltrimword = ltrim($word);
- if ((strlen($ltrimword) != strlen($word))
- && strlen($ltrimword) > 1
- && ((in_array($ltrimword{0},array('o','-','1','0','#','+')) && $ltrimword{1} == ' '))
- || ((strlen($ltrimword) >= 2) && (in_array(substr($ltrimword,0,2),array('1.','0.')) && $ltrimword{2} == ' ')))
- {
- // save the whitespace for comparison
- $this->p_vars['whitespace'] = substr($word,0,strlen($word) - strlen($ltrimword));
- $this->p_vars['start_list'] = $ltrimword{0};
- if ($this->p_vars['start_list'] != '1' && $this->p_vars['start_list'] != '1.' &&
- $this->p_vars['start_list'] != '0' && $this->p_vars['start_list'] != '0.')
- {
- $this->p_flags['orderedlist'] = false;
- } else
- {
- if (substr($ltrimword,0,2) == '1.')
- {
- $this->p_vars['start_list'] = '1.';
- }
- $this->p_flags['orderedlist'] = true;
- }
- $this->p_vars['event_stack']->pushEvent(PHPDOCUMENTOR_PDP_EVENT_SIMLIST);
- $this->setContext('list');
- $this->p_flags['simplelist'] = true;
- $this->p_vars['lists'][0] = new parserList($this->p_flags['orderedlist']);
- $this->p_vars['list_count'] = 0;
- $this->handleSimpleList($word, PHPDOCUMENTOR_PDP_EVENT_SIMLIST, true);
- return true;
- }
- return false;
- }
- /**
- * setup the parser tokens, and the pushEvent/popEvent arrays
- * @see $tokens, $pushEvent, $popEvent
- * @param boolean determines whether to allow paragraph parsing
- * @global boolean used to determine whether to slow things down or not by
- * eliminating whitespace from comments
- */
-
- function setupStates($sdesc)
- {
- $this->p_flags['in_item'] = false;
- $this->p_flags['in_event'] = false;
- $this->p_flags['simplelist'] = false;
- $this->_context = array('normal');
- $this->tokens[STATE_NOEVENTS] = array("\n", "<code>", "<pre>", "<ol>", "<ul>",
- "<b>", "<i>", '<var>', '<kbd>', '<samp>', "<br", '<<');
- if (!$sdesc)
- {
- $this->tokens[STATE_NOEVENTS][] = "<p>";
- $this->tokens[STATE_NOEVENTS][] = "</p>";
- }
- if (PHPDOCUMENTOR_KILL_WHITESPACE) $this->tokens[STATE_NOEVENTS][] = ' ';
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_P] = array("</p>","<code>","<pre>","\n","<ol>","<ul>","<b>","<i>","<br","<p>", '<<',
- '<var>', '<kbd>', '<samp>');
- if (PHPDOCUMENTOR_KILL_WHITESPACE) $this->tokens[PHPDOCUMENTOR_PDP_STATE_P][] = ' ';
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_CODE] = array("</code>", '<</code>>');
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_PRE] = array("</pre>", '<</pre>>');
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_LIST] = array("<ul>","<ol>","</ul>","</ol>","<li>","</li>","<b>","<i>","<br", '<<',"<code>","<pre>","<br",
- '<var>', '<kbd>', '<samp>');
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_DOUBLECR] = array("\n","<ol>","<ul>","<code>","<pre>","<b>","<i>","<br","<p>","</p>",
- '<var>', '<kbd>', '<samp>', '<<');
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_SIMLIST] = array("\n",'<var>', '<kbd>', '<samp>','<b>','<i>', '<pre>', '<code>',
- '<br', '<<');
-
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_B] = array("<code>","\n","<pre>","<ol>","<ul>","</b>","<i>","<br", '<<',
- '<var>', '<kbd>', '<samp>');
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_KBD] = array("<code>","\n","<pre>","<ol>","<ul>","<b>","<i>","<br", '<<',
- '<var>', '</kbd>', '<samp>');
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_VAR] = array("<code>","\n","<pre>","<ol>","<ul>","<b>","<i>","<br", '<<',
- '</var>', '<kbd>', '<samp>');
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_SAMP] = array("<code>","\n","<pre>","<ol>","<ul>","<b>","<i>","<br", '<<',
- '<var>', '<kbd>', '</samp>');
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_I] = array("<code>","\n","<pre>","<ol>","<ul>","<b>","</i>","<br", '<<',
- '<var>', '<kbd>', '<samp>');
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_BR] = array(">","/>");
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_ESCAPE] = array('code>>', '/code>>', 'pre>>', '/pre>>', 'b>>', '/b>>',
- 'i>>', '/i>>', 'ol>>', '/ol>>', 'ul>>', '/ul>>',
- 'br>>', 'br />>', 'p>>', '/p>>', 'samp>>', '/samp>>',
- 'kbd>>', '/kbd>>', 'var>>', '/var>>');
- if (PHPDOCUMENTOR_KILL_WHITESPACE) $this->tokens[PHPDOCUMENTOR_PDP_STATE_DOUBLECR][] = ' ';
-
- // For each event word to event mapings
- $this->pushEvent[PARSER_EVENT_NOEVENTS] =
- array(
- "<code>" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "<pre>" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "<p>" => PHPDOCUMENTOR_PDP_EVENT_P,
- "<var>" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "<samp>" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "<kbd>" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "<ol>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<ul>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<b>" => PHPDOCUMENTOR_PDP_EVENT_B,
- "<i>" => PHPDOCUMENTOR_PDP_EVENT_I,
- "<br" => PHPDOCUMENTOR_PDP_EVENT_BR,
- "\n" => PHPDOCUMENTOR_PDP_EVENT_DOUBLECR,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_CODE] =
- array(
- '<</code>>' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE_CODE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_CODE] = array("</code>");
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_PRE] =
- array(
- '<</pre>>' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE_PRE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_PRE] = array("</pre>");
-##########################
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_BR] = array(">","/>");
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_P] =
- array(
- "<code>" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "<ol>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<ul>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<var>" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "<samp>" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "<kbd>" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "<pre>" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "<b>" => PHPDOCUMENTOR_PDP_EVENT_B,
- "<i>" => PHPDOCUMENTOR_PDP_EVENT_I,
- "<br" => PHPDOCUMENTOR_PDP_EVENT_BR,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_P] = array("</p>");
-##########################
-
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_LIST] =
- array(
- "<ul>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<ol>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<code>" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "<var>" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "<samp>" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "<kbd>" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "<b>" => PHPDOCUMENTOR_PDP_EVENT_B,
- "<i>" => PHPDOCUMENTOR_PDP_EVENT_I,
- "<pre>" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "<br" => PHPDOCUMENTOR_PDP_EVENT_BR,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_LIST] = array("</ul>","</ol>");
-##########################
-
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_SIMLIST] =
- array(
- "<code>" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "<pre>" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "<p>" => PHPDOCUMENTOR_PDP_EVENT_P,
- "<var>" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "<samp>" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "<kbd>" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "<b>" => PHPDOCUMENTOR_PDP_EVENT_B,
- "<i>" => PHPDOCUMENTOR_PDP_EVENT_I,
- "<br" => PHPDOCUMENTOR_PDP_EVENT_BR,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-##########################
-
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_DOUBLECR] =
- array(
- "<code>" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "<ol>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<ul>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<pre>" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "<b>" => PHPDOCUMENTOR_PDP_EVENT_B,
- "<i>" => PHPDOCUMENTOR_PDP_EVENT_I,
- "<var>" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "<samp>" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "<kbd>" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "<br" => PHPDOCUMENTOR_PDP_EVENT_BR,
- "<p>" => PHPDOCUMENTOR_PDP_EVENT_P,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_B] =
- array(
- "<code>" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "<ol>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<ul>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<pre>" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "<var>" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "<samp>" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "<kbd>" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "<br" => PHPDOCUMENTOR_PDP_EVENT_BR,
- '<i>' => PHPDOCUMENTOR_PDP_EVENT_I,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_B] = array("</b>");
-
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_I] =
- array(
- "<code>" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "<ol>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<ul>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<pre>" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "<var>" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "<samp>" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "<kbd>" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "<br" => PHPDOCUMENTOR_PDP_EVENT_BR,
- '<b>' => PHPDOCUMENTOR_PDP_EVENT_B,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_I] = array("</i>");
-
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_VAR] =
- array(
- "<code>" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "<ol>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<ul>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<pre>" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "<i>" => PHPDOCUMENTOR_PDP_EVENT_I,
- "<samp>" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "<kbd>" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "<br" => PHPDOCUMENTOR_PDP_EVENT_BR,
- '<b>' => PHPDOCUMENTOR_PDP_EVENT_B,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_VAR] = array("</var>");
-
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_SAMP] =
- array(
- "<code>" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "<ol>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<ul>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<pre>" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "<var>" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "<i>" => PHPDOCUMENTOR_PDP_EVENT_I,
- "<kbd>" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "<br" => PHPDOCUMENTOR_PDP_EVENT_BR,
- '<b>' => PHPDOCUMENTOR_PDP_EVENT_B,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_SAMP] = array("</samp>");
-
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_KBD] =
- array(
- "<code" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "<ol>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<ul>" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "<pre" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "<var>" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "<samp>" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "<i>" => PHPDOCUMENTOR_PDP_EVENT_I,
- "<br" => PHPDOCUMENTOR_PDP_EVENT_BR,
- '<b>' => PHPDOCUMENTOR_PDP_EVENT_B,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_KBD] = array("</kbd>");
- }
-
- function getParserEventName ($value)
- {
- $lookup = array(
- PARSER_EVENT_NOEVENTS => "PARSER_EVENT_NOEVENTS",
- PHPDOCUMENTOR_PDP_EVENT_CODE => "PHPDOCUMENTOR_PDP_EVENT_CODE",
- PHPDOCUMENTOR_PDP_EVENT_P => "PHPDOCUMENTOR_PDP_EVENT_P",
- PHPDOCUMENTOR_PDP_EVENT_B => "PHPDOCUMENTOR_PDP_EVENT_B",
- PHPDOCUMENTOR_PDP_EVENT_I => "PHPDOCUMENTOR_PDP_EVENT_I",
- PHPDOCUMENTOR_PDP_EVENT_BR => "PHPDOCUMENTOR_PDP_EVENT_BR",
- PHPDOCUMENTOR_PDP_EVENT_VAR => "PHPDOCUMENTOR_PDP_EVENT_VAR",
- PHPDOCUMENTOR_PDP_EVENT_SAMP => "PHPDOCUMENTOR_PDP_EVENT_SAMP",
- PHPDOCUMENTOR_PDP_EVENT_KBD => "PHPDOCUMENTOR_PDP_EVENT_KBD",
- PHPDOCUMENTOR_PDP_EVENT_ESCAPE => "PHPDOCUMENTOR_PDP_EVENT_ESCAPE",
- PHPDOCUMENTOR_PDP_EVENT_ESCAPE_CODE => "PHPDOCUMENTOR_PDP_EVENT_ESCAPE_CODE",
- PHPDOCUMENTOR_PDP_EVENT_ESCAPE_PRE => "PHPDOCUMENTOR_PDP_EVENT_ESCAPE_PRE",
- PHPDOCUMENTOR_PDP_EVENT_DOUBLECR => "PHPDOCUMENTOR_PDP_EVENT_DOUBLECR",
- PHPDOCUMENTOR_PDP_EVENT_LIST => "PHPDOCUMENTOR_PDP_EVENT_LIST",
- PHPDOCUMENTOR_PDP_EVENT_PRE => "PHPDOCUMENTOR_PDP_EVENT_PRE",
- PHPDOCUMENTOR_PDP_EVENT_SIMLIST => "PHPDOCUMENTOR_PDP_EVENT_SIMLIST",
- );
- if (isset($lookup[$value]))
- return $lookup[$value];
- else return $value;
- }
-}
-
-?>