summaryrefslogtreecommitdiff
path: root/buildscripts/PhpDocumentor/phpDocumentor/ParserData.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/ParserData.inc
parentb833247ce597ec26159b46c8dfbea7f1e265950b (diff)
Merge up to r3319
Diffstat (limited to 'buildscripts/PhpDocumentor/phpDocumentor/ParserData.inc')
-rwxr-xr-xbuildscripts/PhpDocumentor/phpDocumentor/ParserData.inc970
1 files changed, 0 insertions, 970 deletions
diff --git a/buildscripts/PhpDocumentor/phpDocumentor/ParserData.inc b/buildscripts/PhpDocumentor/phpDocumentor/ParserData.inc
deleted file mode 100755
index 31e7e9f6..00000000
--- a/buildscripts/PhpDocumentor/phpDocumentor/ParserData.inc
+++ /dev/null
@@ -1,970 +0,0 @@
-<?php
-/**
- * Parser Data Structures
- *
- * phpDocumentor :: automatic documentation generator
- *
- * PHP versions 4 and 5
- *
- * Copyright (c) 2002-2008 Gregory Beaver
- *
- * 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 ParserData
- * @author Gregory Beaver <cellog@php.net>
- * @copyright 2002-2008 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version CVS: $Id: ParserData.inc 253814 2008-02-26 12:15:56Z ashnazg $
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.0rc1
- * @todo CS cleanup - change package to PhpDocumentor
- */
-
-/**
- * Contains information about a PHP file, used to group procedural elements
- * together.
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage ParserData
- * @author Gregory Beaver <cellog@php.net>
- * @copyright 2002-2008 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version Release: 1.4.3
- * @filesource
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.0rc1
- * @todo CS cleanup - change package to PhpDocumentor
- * @todo CS cleanup - change classname to PhpDocumentor_*
- */
-class parserPage
-{
- /**
- * Type is used by many functions to skip the hassle of if
- * <code>phpDocumentor_get_class($blah) == 'parserBlah'</code>
- * @var string
- */
- var $type = 'page';
- /**
- * not implemented in this version, will be used to link xml output pages
- * @var string
- */
- var $id = '';
- /**
- * filename.ext (no path)
- * @var string
- */
- var $file = '';
- /**
- * relative source location
- * @var string
- */
- var $sourceLocation = '';
- /**
- * phpdoc-safe name (only letters, numbers and _)
- * @var string
- */
- var $name = '';
- /**
- * original phpdoc-safe name (only letters, numbers and _)
- *
- * This fixes [ 1391432 ] Too many underscores in include links.
- * @var string
- */
- var $origName = '';
- /**
- * @var string
- */
- var $category = 'default';
- /**
- * @var string
- */
- var $package = 'default';
- /**
- * @var string
- */
- var $subpackage = '';
- /**
- * @var string
- */
- var $parserVersion = PHPDOCUMENTOR_VER;
- /**
- * not implemented yet
- * file modification date, will be used for makefiles
- * @var string
- */
- var $modDate = '';
- /**
- * @var string full path this page represents
- */
- var $path = '';
- /**
- * Tokenized source code of the file
- * @var array
- */
- var $source = array();
- /**
- * Used to limit output, contains contents of --packageoutput commandline.
- * Does not increase parsing time. Use --ignore for that
- * @see phpDocumentor_IntermediateParser::$packageoutput,
- * Converter::$package_output
- * @var mixed either false or an array of packages
- */
- var $packageOutput = false;
-
- /**
- * sets package to default package
- *
- * @global string default package name
- */
- function parserPage()
- {
- global $phpDocumentor_DefaultPackageName;
- $this->package = $GLOBALS['phpDocumentor_DefaultPackageName'];
- }
-
- /**
- * gets the tag type
- *
- * @return string always "page"
- */
- function getType()
- {
- return 'page';
- }
-
- /**
- * Sets the source code of the file for highlighting.
- *
- * PHP 4.3.0+ passes an array of tokenizer tokens by line number. PHP
- * 4.2.3- passes a string to be passed to {@link highlight_string()}
- *
- * @param string|array $source the token array/string
- *
- * @return void
- */
- function setSource($source)
- {
- $this->source = $source;
- }
-
- /**
- * Sets the name to display in documentation (can be an alias set with @name)
- *
- * @param string $file the file name
- *
- * @return void
- */
- function setFile($file)
- {
- $this->file = $file;
- }
-
- /**
- * gets the file name
- *
- * @return string|bool filename.ext or @name alias,
- * or FALSE if it's not set
- */
- function getFile()
- {
- if (!isset($this->file)) {
- return false;
- }
- return $this->file;
- }
-
- /**
- * sets the path to the file
- *
- * @param string $path full path to file
- *
- * @return void
- */
- function setPath($path)
- {
- // look for special windows case
- if (SMART_PATH_DELIMITER === '\\') {
- $this->path = strtr($path, '/', '\\');
- } else {
- $this->path = $path;
- }
- }
-
- /**
- * gets the path
- *
- * @return string fully delimited path (OS-dependent format),
- * or FALSE if it's not set
- */
- function getPath()
- {
- if (!isset($this->path)) {
- return false;
- }
- return $this->path;
- }
-
- /**
- * loads the package output array
- *
- * @param array $packages array of packages to display in documentation
- * (package1,package2,...)
- *
- * @return void
- * @see phpDocumentor_IntermediateParser::$packageoutput
- */
- function setPackageOutput($packages)
- {
- $this->packageOutput = $packages;
- }
-
- /**
- * gets the package output array
- *
- * @return array array of packages (package1,package2,...)
- * @see phpDocumentor_IntermediateParser::$packageoutput
- */
- function getPackageOutput()
- {
- return $this->packageOutput;
- }
-
- /**
- * sets the name
- *
- * @param string $name phpdoc-safe name (only _, numbers and letters)
- * set by Parser::parse()
- *
- * @return void
- * @see Parser::parse()
- */
- function setName($name)
- {
- $this->origName = $name;
- $this->name = $name;
- }
-
- /**
- * gets the name
- *
- * @return string phpdoc-safe name (only _, numbers and letters),
- * or FALSE if it's not set
- */
- function getName()
- {
- if (!isset($this->name)) {
- return false;
- }
- return $this->name;
- }
-
- /**
- * sets the source location
- *
- * @param string $source path of this file relative to program root
- *
- * @return void
- */
- function setSourceLocation($source)
- {
- $this->sourceLocation = $source;
- }
-
- /**
- * gets the source location
- *
- * @param Converter $c the output converter
- * @param bool $pearize if this parameter is true,
- * it will truncate the source location
- * to the subdirectory of pear
- *
- * @return string path of this file relative to program root
- * @todo determine if the str_replace in the 'pear/' ELSE branch should be
- * removed (see Documentation/tests/bug1574043.php). It does NOT exist
- * in the similar function parserClass->getSourceLocation() in
- * ParserElements.inc.
- */
- function getSourceLocation ($c, $pearize = false)
- {
- global $_phpDocumentor_options;
- if (!isset($this->sourceLocation)) {
- $sl = false;
- } else {
- $sl = $this->sourceLocation;
- if ($pearize) {
- if (strpos($sl, 'pear/')) {
- $sl = substr($sl, strpos($sl, 'pear/') + 5);
- } else {
- $sl = str_replace($_phpDocumentor_options['Program_Root']
- . PATH_DELIMITER, '', $sl);
- }
- }
- }
- return $sl;
- }
-
- /**
- * Not implemented in this version
- *
- * @return bool tell the parser whether to parse the file,
- * otherwise this function will retrieve the parsed data
- * from external file
- */
- function getParseData()
- {
- return true;
- }
-}
-
-/**
- * Contains an in-memory representation of all documentable elements
- * ({@link parserPage}, {@link parserFunction}, {@link parserDefine},
- * {@link parserInclude}, {@link parserClass}, {@link parserMethod},
- * {@link parserVar}) and their DocBlocks ({@link parserDocBlock}).
- *
- * This class works in coordination with {@link phpDocumentor_IntermediateParser}
- * to take output from {@link Parser::handleEvent()} and create indexes, links,
- * and other assorted things (all documented in phpDocumentor_IntermediateParser
- * and {@link Converter})
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage ParserData
- * @author Gregory Beaver <cellog@php.net>
- * @copyright 2002-2008 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version Release: 1.4.3
- * @filesource
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.0rc1
- * @todo CS cleanup - change package to PhpDocumentor
- */
-class parserData
-{
- /**
- * {@link parserPage} element that is this parserData's parent, or false if
- * not set.
- * @var false|parserPage
- */
- var $parent = false;
- /**
- * array of parsed elements
- * @var array
- */
- var $elements = array();
- /**
- * @var boolean
- * @access private
- */
- var $_hasclasses = false;
- /**
- * @var boolean
- * @access private
- */
- var $_hasinterfaces = false;
- /**
- * array of parsed elements with @access private
- * @var array
- */
- var $privateelements = array();
- /**
- * array of parsed class elements
- * @var array
- */
- var $classelements = array();
-
- /**
- * @var parserTutorial|false
- */
- var $tutorial = false;
- /**
- * array of parsed class elements with @access private
- * @var array
- */
- var $privateclasselements = array();
- /**
- * array of links descended from {@link abstractLink}
- * @var array
- * @see pageLink, defineLink, classLink, functionLink, methodLink, varLink
- */
- var $links = array();
- /**
- * used by {@link phpDocumentor_IntermediateParser::handleDocBlock()} to
- * determine whether a docblock is a page-level docblock or not. $clean is
- * true as long as only 0 or 1 docblock has been parsed, and no element
- * other than parserPage has been parsed
- * @var boolean
- */
- var $clean = true;
- /**
- * DocBlock ({@link parserDocBlock}) for this page, or false if not set
- * @var mixed
- */
- var $docblock = false;
- /**
- * Flag used to determine whether a page-level docblock is present
- * @var boolean
- * @access private
- */
- var $_explicitdocblock = false;
- /**
- * Type is used by many functions to skip the hassle of if
- * <code>phpDocumentor_get_class($blah) == 'parserBlah'</code>
- * always 'page', used in element indexing and conversion functions found in
- * {@link Converter}
- * @var string
- */
- var $type = 'page';
-
- /**
- * add a new element to the tracking array
- *
- * @param parserElement &$element add a parsed element to the
- * {@link $elements} array,
- * also sets {@link $clean} to false
- *
- * @return void
- */
- function addElement(&$element)
- {
- $element->setPath($this->parent->path);
- if ($element->getType() == 'class'
- || $element->getType() == 'method'
- || $element->getType() == 'var'
- || $element->getType() == 'const'
- ) {
- if ($element->getType() == 'class') {
- if ($element->isInterface()) {
- $this->_hasinterfaces = true;
- } else {
- $this->_hasclasses = true;
- }
- }
- $this->classelements[] = $element;
- } else {
- $this->elements[] = $element;
- }
- $this->clean = false;
- }
-
- /**
- * Does this package have interfaces?
- *
- * @return bool
- */
- function hasInterfaces()
- {
- return $this->_hasinterfaces;
- }
-
- /**
- * Does this package have classes?
- *
- * @return boolean
- */
- function hasClasses()
- {
- return $this->_hasclasses;
- }
-
- /**
- * adds a tutorial parser
- *
- * @param parserTutorial $t a tutorial parser
- * @param Converter &$c the output converter
- *
- * @return void
- */
- function addTutorial($t, &$c)
- {
- $this->tutorial = new tutorialLink;
- $this->tutorial->addLink('', $t->path, $t->name, $t->package,
- $t->subpackage, $t->getTitle($c));
- }
-
- /**
- * If this file has a tutorial associated with it,
- * returns a link to the tutorial.
- *
- * @return tutorialLink
- */
- function getTutorial()
- {
- return $this->tutorial;
- }
-
- /**
- * If the page-level DocBlock was present in the source, returns true
- *
- * @return bool
- */
- function hasExplicitDocBlock()
- {
- return $this->_explicitdocblock;
- }
-
- /**
- * Tells this page that its DocBlock was not implicit
- *
- * @return bool
- */
- function explicitDocBlock()
- {
- $this->_explicitdocblock = true;
- }
-
- /**
- * adds a link
- *
- * @param parserElement &$element element to add a new link (descended from
- * {@link abstractLink}) to the
- * {@link $links} array
- * @param string $classorpackage classname for elements that are
- * class-based (this may be deprecated in
- * the future, as the classname should be
- * contained within the element. if
- * $element is a page, this parameter is a
- * package name
- * @param string $subpackage subpackage name for page elements
- *
- * @return string
- */
- function addLink(&$element, $classorpackage = '', $subpackage = '')
- {
- switch($element->type)
- {
- case 'function':
- $x = new functionLink;
- $x->addLink($this->parent->path, $this->parent->name, $element->name,
- $element->docblock->package, $element->docblock->subpackage);
- return $x;
- break;
- case 'define':
- $x = new defineLink;
- $x->addLink($this->parent->path, $this->parent->name, $element->name,
- $element->docblock->package, $element->docblock->subpackage);
- return $x;
- break;
- case 'global':
- $x = new globalLink;
- $x->addLink($this->parent->path, $this->parent->name, $element->name,
- $element->docblock->package, $element->docblock->subpackage);
- return $x;
- break;
- case 'class':
- $x = new classLink;
- $x->addLink($this->parent->path, $this->parent->name, $element->name,
- $element->docblock->package, $element->docblock->subpackage);
- return $x;
- break;
- case 'method':
- $x = new methodLink;
- $x->addLink($classorpackage, $this->parent->path,
- $this->parent->name, $element->name, $element->docblock->package,
- $element->docblock->subpackage);
- return $x;
- break;
- case 'var':
- $x = new varLink;
- $x->addLink($classorpackage, $this->parent->path,
- $this->parent->name, $element->name, $element->docblock->package,
- $element->docblock->subpackage);
- return $x;
- break;
- case 'page':
- if (empty($classorpackage)) {
- $classorpackage = $GLOBALS['phpDocumentor_DefaultPackageName'];
- }
- $x = new pageLink;
- $x->addLink($element->path, $element->name, $element->file,
- $classorpackage, $subpackage);
- return $x;
- break;
- }
- }
-
- /**
- * returns a link
- *
- * @param Converter &$c the output converter
- * @param bool $text a text flag
- *
- * @return string
- */
- function &getLink(&$c, $text = false)
- {
- $a = $c->getPageLink($this->parent->file, $this->docblock->package,
- $this->parent->path, $text);
- return $a;
- }
-
- /**
- * returns a list of all classes declared in a file
- *
- * @param Converter &$c output converter
- *
- * @return array Format: array(
- * packagename => parserClass,
- * packagename => parserClass,
- * ...
- * )
- */
- function getClasses(&$c)
- {
- $r = $c->classes->getClassesInPath($this->parent->path);
- $rr = array();
- if ($r) {
- foreach ($r as $class => $obj) {
- $rr[$obj->docblock->package][] = $obj;
- }
- }
- return $rr;
- }
-
- /**
- * Get the output-safe filename (. changed to _)
- *
- * @return string
- */
- function getName()
- {
- if (isset($this->parent) && $this->parent) {
- return $this->parent->getName();
- }
- }
-
- /**
- * sets the parent
- *
- * @param parserPage &$parent parent element of this parsed data
- *
- * @return void
- */
- function setParent(&$parent)
- {
- $this->parent = $parent;
- }
-
- /**
- * checks if the element is "cleaned" already
- *
- * @return bool returns the value of {@link $clean}
- */
- function isClean()
- {
- return $this->clean;
- }
-
- /**
- * sets the docblock
- *
- * @param parserDocBlock &$docblock docblock element
- *
- * @return void
- * @see parserDocBlock
- */
- function setDocBlock(&$docblock)
- {
- $this->docblock = $docblock;
- }
-}
-
-/**
- * Base class for all elements
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage ParserData
- * @author Gregory Beaver <cellog@php.net>
- * @copyright 2002-2008 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version Release: 1.4.3
- * @filesource
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.0rc1
- * @todo CS cleanup - change package to PhpDocumentor
- * @abstract
- */
-class parserBase
-{
- /**
- * Type is used by many functions to skip the hassle of if
- * phpDocumentor_get_class($blah) == 'parserBlah'... always base
- * @var string
- */
- var $type = 'base';
- /**
- * set to different things by its descendants
- * @abstract
- * @var mixed
- */
- var $value = false;
-
- /**
- * gets the type
- *
- * @return string returns value of {@link $type}
- */
- function getType()
- {
- return $this->type;
- }
-
- /**
- * sets the given value
- *
- * @param mixed $value set the value of this element
- *
- * @return void
- */
- function setValue($value)
- {
- $this->value = $value;
- }
-
- /**
- * gets the value
- *
- * @return mixed get the value of this element (element-dependent)
- */
- function getValue()
- {
- return $this->value;
- }
-}
-
-
-/**
- * Used to represent strings that contain inline tags,
- * so that they can be properly parsed at link time
- *
- * @category ToolsAndUtilities
- * @package phpDocumentor
- * @subpackage ParserData
- * @author Gregory Beaver <cellog@php.net>
- * @copyright 2002-2008 Gregory Beaver
- * @license http://www.opensource.org/licenses/lgpl-license.php LGPL
- * @version Release: 1.4.3
- * @filesource
- * @link http://www.phpdoc.org
- * @link http://pear.php.net/PhpDocumentor
- * @since 1.0rc1
- * @todo CS cleanup - change package to PhpDocumentor
- */
-class parserStringWithInlineTags extends parserBase
-{
- /**
- * Type is used by many functions to skip the hassle of
- * if phpDocumentor_get_class($blah) == 'parserBlah'...
- * always '_string'
- * @var string
- */
- var $type = '_string';
- /**
- * @access private
- */
- var $cache = false;
- /**
- * array of strings and {@link parserInlineTag}s
- * Format:
- * array(string1,string2,parserInlineTag1,string3,parserInlineTag2,...)
- * @var array
- */
- var $value = array();
-
- /**
- * equivalent to the . operator ($a = $b . $c)
- *
- * @param mixed $stringOrInlineTag either a string or a {@link parserInlineTag}
- *
- * @return void
- */
- function add($stringOrInlineTag)
- {
- if (is_string($stringOrInlineTag)) {
- if (!count($this->value)) {
- $this->value[] = $stringOrInlineTag;
- return;
- }
- if (is_string($this->value[count($this->value) - 1])) {
- $this->value[count($this->value) - 1] .= $stringOrInlineTag;
- return;
- } else {
- $this->value[] = $stringOrInlineTag;
- return;
- }
- } else {
- if (is_a($stringOrInlineTag, 'parserinlinetag')
- && phpDocumentor_setup::checkIgnoreTag($stringOrInlineTag->
- inlinetype, true)
- ) {
- return;
- }
- $this->value[] = $stringOrInlineTag;
- }
- }
-
- /**
- * Determine whether the string contains any inline tags
- *
- * @return bool
- * @tutorial inlinetags.pkg
- */
- function hasInlineTag()
- {
- for ($i=0; $i<count($this->value); $i++) {
- if (is_a($this->value[$i], 'parserinlinetag')) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Pass source code to any {@}source} tags contained within the string
- * for later conversion.
- *
- * @param string|array $source source code ready to be highlighted
- *
- * @return void
- */
- function setSource($source)
- {
- for ($i=0; $i<count($this->value); $i++) {
- if (phpDocumentor_get_class($this->value[$i]) == 'parsersourceinlinetag'
- ) {
- $this->value[$i]->setSource($source);
- }
- }
- }
-
- /**
- * equivalent to trim(strlen($string))
- *
- * @return integer length of the string this object represents
- */
- function trimmedStrlen()
- {
- $a = 0;
- for ($i=0; $i<count($this->value); $i++) {
- if (is_string($this->value[$i])) {
- if ($i == 0) {
- $a += strlen(ltrim($this->value[$i]));
- } elseif ($i == count($this->value[$i]) - 1) {
- $a += strlen(chop($this->value[$i]));
- }
- } else {
- $a += $this->value[$i]->Strlen();
- }
- }
- return $a;
- }
-
- /**
- * return the string unconverted (all inline tags are taken out - this
- * should only be used in pre-parsing to see if any other text
- * is in the string)
- *
- * @param bool $trim whether to trim the string
- *
- * @return string trimmed value
- * @uses parserInlineTag::getString() removes inline tag length, as it is
- * indeterminate until conversion.
- */
- function getString($trim = true)
- {
- $a = '';
- for ($i=0; $i<count($this->value); $i++) {
- if (is_string($this->value[$i])) {
- $a .= $this->value[$i];
- } else {
- $a .= $this->value[$i]->getString();
- }
- }
- if ($trim) {
- $a = trim($a);
- }
- return $a;
- }
-
- /**
- * Use to convert the string to a real string
- * with all inline tags parsed and linked
- *
- * @param Converter &$converter the output converter
- * @param bool $postprocess true if one needs to postprocess
- * @param bool $trim false if the output should not be trimmed
- *
- * @return string
- * @see Converter::returnSee()
- * @todo CS cleanup - rename to convert for camelCase rule
- */
- function Convert(&$converter, $postprocess = true, $trim = true)
- {
- if ($this->cache) {
- if ($converter->name == $this->cache['name']
- && $converter->outputformat == $this->cache['output']
- && $converter->checkState($this->cache['state'])
- && $this->cache['postprocess'] === $postprocess
- ) {
- return $this->cache['contents'];
- }
- if ($converter->name != $this->cache['name']) {
- $this->cache = false;
- }
- }
- if (is_string($this->value)) {
- return $this->value;
- }
- $a = '';
- for ($i=0; $i<count($this->value); $i++) {
- if (is_string($this->value[$i])) {
- if ($postprocess && !method_exists($converter, 'postProcess')) {
- var_dump('a', $converter);
- }
- if ($postprocess) {
- $a .= $converter->postProcess($this->value[$i]);
- } else {
- $a .= $this->value[$i];
- }
- } else {
- $a .= $this->value[$i]->Convert($converter, $postprocess);
- }
- }
- if ($trim) {
- $a = trim($a);
- }
- $this->cache = array(
- 'name' => $converter->name,
- 'output' => $converter->outputformat,
- 'contents' => $a,
- 'state' => $converter->getState(),
- 'postprocess' => $postprocess
- );
- return $a;
- }
-}
-
-?>