From 3069eaf35e833ffe4a1c1c7829dd7e168ae27420 Mon Sep 17 00:00:00 2001
From: Ciro Mattia Gonano > is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_P', 601);
-/** when < > 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 < >,< tag. If so, it will switch
- * into a mode of parsing out paragraphs by 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) == ' ')
- {
- $this->parse_Ps = true;
- }
- if (is_string($word) && $this->checkEventPush($word, $pevent)) return;
-// if (!isset($this->parse_Ps) || !$this->parse_Ps)
- {
- if (is_string($word) && is_string($this->p_vars['last_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);
- if (!is_object($this->p_vars['list_item'][$this->p_vars['list_count']])) {
- addErrorDie(PDERROR_UL_IN_UL);
- }
- $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 " >< > 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']) == ' ') $this->addText(' ');
- $this->addText($word);
- return;
- }
- if (is_string($word) && $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) == ' ' && $this->parse_Ps)
- {
- $this->p_vars['curpar']++;
- return;
- }
- }
- if ($this->p_vars['start'])
- {
- $this->addText($word);
- } else
- {// if the 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 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) && (substr($ltrimword,0,2) === '1.' || substr($ltrimword,0,2) === '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", " ";
- $this->tokens[STATE_NOEVENTS][] = "> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_CODE', 600);
-/** when <
');
- }
-
- /**
- * Handle "<> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_CODE', 700);
-/** when <
>>
- */
- function handleEscapeCode($word, $pevent)
- {
- $this->p_vars['event_stack']->popEvent();
- $this->addText('> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_PRE', 603);
-/** when <
> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_PRE', 703);
-/** when <
>/<
> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_LIST', 604);
-/** when <
>/<
> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_LIST', 704);
-/** when <> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_B', 605);
-/** when <> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_B', 705);
-/** when <> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_I', 606);
-/** when <> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_I', 706);
-/** when <
> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_BR', 607);
-/** when <
> 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 <><
> section */
-define('PHPDOCUMENTOR_PDP_EVENT_ESCAPE_PRE',609);
-/** when << /pre>> is found in a <><
> section */
-define('PHPDOCUMENTOR_PDP_STATE_ESCAPE_PRE',709);
-/** when << /code>> is found in a <><
> section */
-define('PHPDOCUMENTOR_PDP_EVENT_ESCAPE_CODE',610);
-/** when << /code>> is found in a <><
> section */
-define('PHPDOCUMENTOR_PDP_STATE_ESCAPE_CODE',710);
-/** when <> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_VAR',611);
-/** when <> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_VAR',711);
-/** when <> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_SAMP',612);
-/** when <> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_SAMP',712);
-/** when <> is found in a desc */
-define('PHPDOCUMENTOR_PDP_EVENT_KBD',613);
-/** when <> is found in a desc */
-define('PHPDOCUMENTOR_PDP_STATE_KBD',713);
-/** when a simple list is found in a desc
- *
- * like
- *
- * o item 1
- * o item 2
- *
- */
-define('PHPDOCUMENTOR_PDP_EVENT_SIMLIST',614);
-/** when a simple list is found in a desc
- *
- * like
- *
- * o item 1
- * o item 2
- *
- */
-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 >,<
>>
- */
- function handleEscapePre($word, $pevent)
- {
- $this->p_vars['event_stack']->popEvent();
- $this->addText('');
- }
-
- /**
- * Just like {@link handleEscape}, except the only valid escape is
- * <<>,<
>,<
>,<
>> in a DocBlock will parse out as <
>, 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->addText('<<');
- $this->wp->backupPos($word);
- }
- return;
- }
- $this->addText('<'.str_replace('>>','>',$word));
- }
-
- /**
- * Just like {@link handleEscape}, except the only valid escape is
- * <<
>"
- * 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:
- *
- * * - item 1
- * * - item 2
- * * - item 3
- *
- * 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 <>,<
>
- *
- * 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 <
> or <
> 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']) == '
')
- {
- // ordered list
- $ordered = true;
- }
- // start a new list
- if (!is_object($this->p_vars['last_word']) && (strtolower($this->p_vars['last_word']) == '
","' || strtolower($this->p_vars['last_word']) == '
'))
- {
- // item text
- if (isset($this->p_vars['list_item'][$this->p_vars['list_count']]))
- {
- if (is_string($word) && $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
- if (!isset($this->p_vars['list_item'][$this->p_vars['list_count'] - 1])) {
- addErrorDie(PDERROR_UL_IN_UL);
- }
- $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 <'))
- {
- $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) == '
' && strtolower($word) != '><
> 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) != '') $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 <><
> 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) != '') $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 <><> 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 <><> 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 <><> 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 <><> 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 <><> 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 <", "
", "
", "
",
- "", "", '', '', '', "
tokens[STATE_NOEVENTS][] = "","
", '<>');
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_PRE] = array("", '<>');
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_LIST] = array("","\n","
","
","","","
", '<<',
- '', '', '');
- if (PHPDOCUMENTOR_KILL_WHITESPACE) $this->tokens[PHPDOCUMENTOR_PDP_STATE_P][] = ' ';
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_CODE] = array("","
","","
","","
', '', '');
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_DOUBLECR] = array("\n","","
","
","
","","","
","
', '',
- '
tokens[PHPDOCUMENTOR_PDP_STATE_B] = array("","\n","","","","
","","","\n","","","","","","
', '
', '');
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_VAR] = array("","\n","","","","","","
', '', '');
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_SAMP] = array("","\n","","","","","","
', '', '
');
- $this->tokens[PHPDOCUMENTOR_PDP_STATE_I] = array("","\n","","","","","
","
', '', '');
- $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>>', 'li>>', '/li>>',
- '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(
- "" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "" => PHPDOCUMENTOR_PDP_EVENT_P,
- "" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "" => PHPDOCUMENTOR_PDP_EVENT_B,
- "" => PHPDOCUMENTOR_PDP_EVENT_I,
- "
PHPDOCUMENTOR_PDP_EVENT_BR,
- "\n" => PHPDOCUMENTOR_PDP_EVENT_DOUBLECR,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_CODE] =
- array(
- '<
>' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE_CODE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_CODE] = array("
");
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_PRE] =
- array(
- '<>' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE_PRE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_PRE] = array("");
-##########################
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_BR] = array(">","/>");
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_P] =
- array(
- "" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "" => PHPDOCUMENTOR_PDP_EVENT_B,
- "" => PHPDOCUMENTOR_PDP_EVENT_I,
- "
PHPDOCUMENTOR_PDP_EVENT_BR,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_P] = array("");
-##########################
-
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_LIST] =
- array(
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "" => PHPDOCUMENTOR_PDP_EVENT_B,
- "" => PHPDOCUMENTOR_PDP_EVENT_I,
- "" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "
PHPDOCUMENTOR_PDP_EVENT_BR,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_LIST] = array("
","
");
-##########################
-
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_SIMLIST] =
- array(
- "" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "" => PHPDOCUMENTOR_PDP_EVENT_P,
- "" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "" => PHPDOCUMENTOR_PDP_EVENT_B,
- "" => PHPDOCUMENTOR_PDP_EVENT_I,
- "
PHPDOCUMENTOR_PDP_EVENT_BR,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-##########################
-
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_DOUBLECR] =
- array(
- "" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "
" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "" => PHPDOCUMENTOR_PDP_EVENT_B,
- "" => PHPDOCUMENTOR_PDP_EVENT_I,
- "" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "
PHPDOCUMENTOR_PDP_EVENT_BR,
- "" => PHPDOCUMENTOR_PDP_EVENT_P,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_B] =
- array(
- "" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "
" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "
PHPDOCUMENTOR_PDP_EVENT_BR,
- '' => PHPDOCUMENTOR_PDP_EVENT_I,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_B] = array("
");
-
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_I] =
- array(
- "" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "
" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "
PHPDOCUMENTOR_PDP_EVENT_BR,
- '' => PHPDOCUMENTOR_PDP_EVENT_B,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_I] = array("
");
-
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_VAR] =
- array(
- "" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "
" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "" => PHPDOCUMENTOR_PDP_EVENT_I,
- "" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "
PHPDOCUMENTOR_PDP_EVENT_BR,
- '' => PHPDOCUMENTOR_PDP_EVENT_B,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_VAR] = array("
");
-
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_SAMP] =
- array(
- "" => PHPDOCUMENTOR_PDP_EVENT_CODE,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "
" => PHPDOCUMENTOR_PDP_EVENT_PRE,
- "" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "" => PHPDOCUMENTOR_PDP_EVENT_I,
- "" => PHPDOCUMENTOR_PDP_EVENT_KBD,
- "
PHPDOCUMENTOR_PDP_EVENT_BR,
- '' => PHPDOCUMENTOR_PDP_EVENT_B,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_SAMP] = array("
");
-
-##########################
- $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_KBD] =
- array(
- " PHPDOCUMENTOR_PDP_EVENT_CODE,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "" => PHPDOCUMENTOR_PDP_EVENT_LIST,
- "
PHPDOCUMENTOR_PDP_EVENT_PRE,
- "" => PHPDOCUMENTOR_PDP_EVENT_VAR,
- "" => PHPDOCUMENTOR_PDP_EVENT_SAMP,
- "" => PHPDOCUMENTOR_PDP_EVENT_I,
- "
PHPDOCUMENTOR_PDP_EVENT_BR,
- '' => PHPDOCUMENTOR_PDP_EVENT_B,
- '<<' => PHPDOCUMENTOR_PDP_EVENT_ESCAPE,
- );
-
- $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_KBD] = array("
");
- }
-
- 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;
- }
-}
-
-?>
--
cgit v1.2.3