summaryrefslogtreecommitdiff
path: root/buildscripts/PhpDocumentor/phpDocumentor/WordParser.inc
diff options
context:
space:
mode:
authorCiro Mattia Gonano <ciromattia@gmail.com>2013-09-11 15:56:48 +0200
committerCiro Mattia Gonano <ciromattia@gmail.com>2013-09-11 15:57:07 +0200
commit3069eaf35e833ffe4a1c1c7829dd7e168ae27420 (patch)
treed0c2e4d934cc34ba7d4232f759923b5a257dcb21 /buildscripts/PhpDocumentor/phpDocumentor/WordParser.inc
parentb833247ce597ec26159b46c8dfbea7f1e265950b (diff)
Merge up to r3319
Diffstat (limited to 'buildscripts/PhpDocumentor/phpDocumentor/WordParser.inc')
-rwxr-xr-xbuildscripts/PhpDocumentor/phpDocumentor/WordParser.inc365
1 files changed, 0 insertions, 365 deletions
diff --git a/buildscripts/PhpDocumentor/phpDocumentor/WordParser.inc b/buildscripts/PhpDocumentor/phpDocumentor/WordParser.inc
deleted file mode 100755
index a755d24a..00000000
--- a/buildscripts/PhpDocumentor/phpDocumentor/WordParser.inc
+++ /dev/null
@@ -1,365 +0,0 @@
-<?php
-/**
- * a generic lexer
- *
- * phpDocumentor :: automatic documentation generator
- *
- * PHP versions 4 and 5
- *
- * Copyright (c) 2000-2007 Joshua Eichorn
- *
- * LICENSE:
- *
- * This library is free software; you can redistribute it
- * and/or modify it under the terms of the GNU Lesser General
- * Public License as published by the Free Software Foundation;
- * either version 2.1 of the License, or (at your option) any
- * later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage WordParsers
- * @author Joshua Eichorn <jeichorn@phpdoc.org>
- * @copyright 2000-2007 Joshua Eichorn
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version CVS: $Id: WordParser.inc 246145 2007-11-14 01:37:03Z ashnazg $
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 0.1
- * @todo CS cleanup - change package to PhpDocumentor
- */
-
-/**
- * Retrieves tokens from source code for use by the Parser
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage WordParsers
- * @author Joshua Eichorn <jeichorn@phpdoc.org>
- * @copyright 2000-2007 Joshua Eichorn
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version Release: 1.4.3
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @see Parser
- * @todo CS cleanup - change package to PhpDocumentor
- */
-class WordParser
-{
- /*
- New lines around the world
- Macintosh: \r
- Unix : \n
- Windows : \r\n
- */
-
- /**#@+
- * @access private
- */
- /**
- * List of text that separates tokens, used to retrieve tokens
- * @var array
- */
- var $wordseperators = array();
-
- /**
- * Position within input of the cursor pointing to the next text to be
- * retrieved as a token
- * @var integer
- */
- var $pos = 0;
-
- /**
- * Size of the input source code
- * @var integer
- */
- var $size;
-
- /**
- * Source code
- * @var string
- */
- var $data;
-
- var $cache;
- /**
- * Current line number
- * @var integer
- */
- var $linenum = 0;
- /**
- * Position the cursor was at the last time line numbers were counted, used
- * to guarantee that line numbers are incremented
- * @var integer
- */
- var $linenumpos = 0;
-
- /**
- * Used for {@}source} tag, contains currently parsed function source
- * @var string
- */
- var $source = '';
- /**
- * flag, determines whether tokens are added to {@link $source}
- * @var boolean
- */
- var $getsource = false;
-
- /**
- * If true, then white space is returned as a part of tokens, otherwise
- * tokens are trimmed
- * @var boolean
- */
- var $returnWhiteSpace = false;
- /**#@-*/
-
- /**
- * Initialize the WordParser
- *
- * @param string &$input source code
- *
- * @return void
- */
- function setup(&$input)
- {
- $this->size = strlen($input);
- $this->data = & $input;
- $this->pos = 0;
- $this->linenum = 0;
- $this->linenumpos = 0;
- $this->cache = array();
- //$this->run = 0;
- //$this->word = WORD_PARSER_RET_WORD;
- }
-
- /**
- * Retrieve source code for the last function/method
- *
- * @return string
- */
- function getSource()
- {
- $source = $this->source;
- $this->source = '';
- $this->getsource = false;
- return $source;
- }
-
- /**
- * Used to tell the WordParser to start retrieving source code
- *
- * @param string $word source code
- *
- * @return void
- * @access private
- */
- function retrievesource($word = '')
- {
- $this->source = $word;
- $this->getsource = true;
- }
-
- /**
- * Retrieve a token from the token list
- *
- * The {@link Parser} class relies upon this method to retrieve the next
- * token. The {@link $wordseperators} array is a collection of strings
- * that delineate tokens for the current parser state. $wordseperators
- * is set by the parser with a call to {@link Parser::configWordParser()}
- * every time a new parser state is reached.
- *
- * For example, while parsing the source code for a class, the word
- * <code>var</code> is a token, and <code>global</code> is not,
- * but inside a function, the reverse is true. The parser state
- * {@link PARSER_STATE_CLASS} has a token list that includes whitespace,
- * code delimiters like ; and {}, and comment/DocBlock indicators
- *
- * If the whitespace option has been turned off using
- * {@link setWhitespace()}, then no whitespace is returned with tokens
- *
- * {@internal
- * In the first segment of the function, the code attempts to find the next
- * token. A cache is used to speed repetitious tasks. The $tpos variable
- * is used to hold the position of the next token. $npos is used to
- * hold the end of the token, and so $npos - $tpos will give the length
- * of the token. This is used to allow tokens that contain whitespace,
- * should that option be desired.
- *
- * {@link $data} is of course the string containing the PHP code to be
- * parsed, and {@link $pos} is the cursor, or current location within the
- * parsed data.
- * }}
- *
- * @return string|false the next token, an empty string if there are no
- * token separators in the $wordseperators array,
- * or false if the end of input has been reached
- */
- function getWord()
- {
- //$st = $this->mtime();
- if ($this->size == $this->pos) {
- return false;
- }
-
- // assume, for starting, that the token is from $this->pos to the end
- $npos = $this->size;
- if (is_array($this->wordseperators)) {
- //$this->wordseperators = array();
- foreach ($this->wordseperators as $sep) {
- // cache is set if this separator has been tested
- if (isset($this->cache[$sep])) {
- $tpos = $this->cache[$sep];
- } else {
- $tpos = false;
- }
- if ($tpos < $this->pos || !is_int($tpos)) {
- // find the position of the next token separator
- $tpos = strpos($this->data, $sep, $this->pos);
- }
-
- // was a token separator found
- // that is closer to the current location?
- if ( ($tpos < $npos) && !($tpos === false)) {
- //echo trim($sep) . "=$tpos\n";
- // set the length of the token
- // to be from $this->pos to
- // the next token separator
- $npos = $tpos;
- $seplen = strlen($sep);
- } else if (!($tpos === false)) {
- $this->cache[$sep] = $tpos;
- }
- }
- } else {
- // no token separators, tell the parser to choose a new state
- return "";
- }
-
- $len = $npos - $this->pos;
- if ($len == 0) {
- $len = $seplen;
- }
-
- //$st3 = $this->mtime();
- $word = substr($this->data, $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;
- }
-
-
- /**
- * Returns the current pointer position, or 1 character after the end of the word
- *
- * @return int the position
- */
- function getPos()
- {
- return $this->pos;
- }
-
- /**
- * Unused
- *
- * {@source}
- *
- * @param integer $start starting position
- * @param integer $len length of block to retrieve
- *
- * @return string the requested block of characters
- */
- function getBlock($start, $len)
- {
- return substr($this->data, $start, $len);
- }
-
- /**
- * Sets the list of possible separator tokens
- *
- * @param array &$seps array of strings that separate tokens
- *
- * @return void
- * @uses $wordseperators
- */
- function setSeperator(&$seps)
- {
- $this->wordseperators = &$seps;
- }
-
- /**
- * Set the internal cursor within the source code
- *
- * @param integer $pos the position
- *
- * @return void
- */
- function setPos($pos)
- {
- $this->pos = $pos;
- }
-
- /**
- * Backup to the previous token so that it can be retrieved again in a new
- * context.
- *
- * Occasionally, a word will be passed to an event handler that should be
- * handled by another event handler. This method allows that to happen.
- *
- * @param string $word token to back up to
- *
- * @return void
- */
- function backupPos($word)
- {
- if ($this->getsource) $this->source =
- substr($this->source, 0, strlen($this->source) - 1);
- $this->pos = $this->pos - strlen($word);
- }
-
- /**
- * set parser to return or strip whitespace
- *
- * @param boolean $val flag to return or strip whitespace
- *
- * @return void
- */
- function setWhitespace($val = false)
- {
- $this->returnWhiteSpace = $val;
- }
-}
-?>