Located in File: /phpDocumentor/IntermediateParser.inc
This class performs the work of organizing raw data from the parser in the format of descendants of the parserElement class. This is also where processing of package pages occurs, in phpDocumentor_IntermediateParser::handleClass() for class-level packages and phpDocumentor_IntermediateParser::handleDocBlock() for page-level packages.
Most of the work of this parser goes to matching up DocBlocks with the elements that they are documenting. Since DocBlocks are passed before the element they document, the last DocBlock is stored in phpDocumentor_IntermediateParser::$last and then placed into the $docblock parameter of the parserElement descendant object.
 $all_packages = array() (line 186)
 Converter::getLink() first checks if an ambiguous link is found in the current package. If not, it then checks in parent packages, and if still not found, uses this array to check in the rest of the packages before giving up
 $classes =  false (line 268)
 dumb computer
 $converters =  false (line 287)
 For example, if the default HTMLframesConverter is using the DOM/l0l33t template, the array will be
 $cur_class =  '' (line 88)
 It is only used (and only valid) when phpDocumentor_IntermediateParser is parsing a class
 $data (line 237)
 In version 1.1+, $data is only used to store the current page information. All handling of documented elements is handled by the ProceduralPages and Classes classes.
 $event_handlers = array(
 $lasttype =  '' (line 80)
 This is used in handleDocBlock to determine whether a DocBlock is a page-level DocBlock in conjunction with the parserData::$clean var. A page-level DocBlock is alwaysthe first DocBlock in a file, and must be followed by another DocBlock. The first test is handled by parserData::$clean, which is set to false on the first encounter of an element, and the second test is handled by this variable, which must be equal to "docblock"
 $packagecategories = array() (line 173)
 WARNING: If more than one category exists, the last category encountered will overwrite the previous and will raise a big warning
 $packageoutput =  false (line 206)
 Format:
  array(package1,package2,...)
  or false if not set
Use this option to limit output similar to ignoring files. If you have some temporary files that you don't want to specify by name but don't want included in output, set a package name for all the elements in your project, and set packageoutput to that name. the default package will be ignored. Parsing speed does not improve. If you want to ignore files for speed reasons, use the ignore command-line option
 $package_pages = array() (line 133)
 used by Convert() to convert all package pages into output
 $package_parents = array() (line 164)
 This array is updated by addPackageParent(), which is called in Classes::processChild() to keep track of classes that descend from classes in different packages. In other words, if class foo is in package one, and class bar is in package two, an entry $package_parents['two'] = 'one' will be made.
 $pages = array() (line 138)
 
 $parsePrivate =  false (line 106)
 option. If this option is true, elements with an @access private tag will be parsed and displayed
 $privatepages = array() (line 151)
 When a page has @access private in its DocBlock, it is placed here instead of in $pages, to allow for proper Class parsing. Since classes and pages are parsed as if they were separate, this array allows public classes on private pages to retrieve information needed about the page that holds the class and to addPageIfNecessary() to the $pages array
 $private_class =  false (line 113)
 
 $proceduralpages =  false (line 276)
 conflicts with elegance
 $quietMode =  false (line 248)
 If this option is true, informative output while parsing will not be displayed (documentation is unaffected)
 $ric = array() (line 303)
 
 $title =  '' (line 291)
 
 $type =  '' (line 97)
 This is used by HandleEvent() to set the $lasttype var, which is used to detect page-level DocBlocks
 $undocumentedElementWarnings =  false (line 261)
 If this option is true, warnings about certain elements (classes, methods) that are not documented with DocBlocks will be shown while parsing, and will also be displayed in the errors.html page (other documentation is unaffected)
 Constructor phpDocumentor_IntermediateParser (line 326)
 
 Method addConverter (line 1710)
 Sets up the $converters array.
 Method addElementToPage (line 1476)
 This function expects the page to exist in either $pages or $privatepages. It calls the parserData::addElement() method to add $element to the page.
 Method addPackageParent (line 1687)
 $package_parents array
 Method addPage (line 1370)
 Called by addPageIfNecessary(), handleDocBlock() and ProceduralPages::setupPages(), this method first checks to see if the page has been added. If not, it assumes that the page has either been @ignored or set with @access private with --parseprivate off, and returns addPrivatePage(). Otherwise, it sets the pages[$path] to be the parserPage $page and sets the package and subpackage to that of $page
 Method addPageIfNecessary (line 1400)
 This method is used when a page has been @ignored or marked with @access private, and a public class is in the page (a class with no @access private in its DocBlock). The method first creates a new page in the $pages array and then copies path information, and calls addPage() to set up packages
 Method addPrivatePage (line 1438)
 Performs a similar function to addPage, but adds to the $privatePages array
 Method addUses (line 1507)
 virtual tags can be added
 Method ClasselementCmp (line 1777)
 
 Method Convert (line 1652)
 This function simply passes $pages and package_pages to the walk() method, and then calls the Output() method. Note that Output() is not required to do anything, and in fact doesn't in HTMLframesConverter.
 Method elementCmp (line 1763)
 
 Method handleClass (line 905)
 This function sets $data->clean to false to tell the phpDocumentor_IntermediateParser that a page-level DocBlock can't be found after this point on this page. It sets $cur_class to its name, and if an @ignore tag is found in the DocBlock, it sets $private_class to true, to prevent post-parsing of any of the class's vars or methods. Then it checks for the existence of a package page for the class's package
 Method handleConst (line 609)
 This function aligns $data's $path var and packages to match the parent object
 Method handleDefine (line 849)
 This function sets $data->clean to false to tell the phpDocumentor_IntermediateParser that a page-level DocBlock can't be found after this point on this page. It then sets the package to be the same as the page and adds itself to the ProceduralPages class
 Method handleDocBlock (line 1047)
 This function sets $last to the DocBlock represented by $data, to allow the next documentable element passed to phpDocumentor_IntermediateParser to link the DocBlock into its $docblock property. This function also checks for two special cases of DocBlocks:
New in version 1.2.2, if the first DocBlock in a file contains a @package tag, it is a page-level DocBlock.
If the DocBlock is page-level, it is processed with _processPageLevelDocBlock
Finally, the function replaces the old parserPage in parserData::$data->parent with the new one containing information from the DocBlock by calling addPage(), and checks for package-level docs.
 Method HandleEvent (line 1227)
 $event is one of the PHPDOC constants from Parser.inc. If it is not PHPDOCUMENTOR_EVENT_NEWSTATE, then a function name is retrieved from the $event_handlers array and called to handle the $data
 Method handleFunction (line 763)
 This function sets $data->clean to false to tell the phpDocumentor_IntermediateParser that a page-level DocBlock can't be found after this point on this page. It then sets the package to be the same as the page, aligns the docblock's @param, @global, and @staticvar tags with the information parsed from the function source code.
If source code has been parsed by a {@source} tag, the source is added to its docblock, and then the parserFunction adds itself to the ProceduralPages class
 Method handleGlobal (line 459)
 This function sets $data->clean to false to tell the phpDocumentor_IntermediateParser that a page-level DocBlock can't be found after this point on this page. It then sets the package to be the same as the page, and adds itself to the ProceduralPages class
 Method handleInclude (line 403)
 This function sets $data->clean to false to tell the phpDocumentor_IntermediateParser that a page-level DocBlock can't be found after this point on this page. It then sets the package to be the same as the page, and adds itself to the ProceduralPages class
 Method handleMethod (line 659)
 This function first aligns $data's path and package to match the parent object, and also aligns the docblock's @param, @global, and @staticvar tags with the information parsed from the method source code. It also checks to see if the method is a constructor and sets the $isConstructor flag. If source code has been parsed by a {@source} tag, the source is added to its docblock
Finally, it adds the method to the Classes class.
 Method handlePackagePage (line 515)
 sets the $package_pages[$data->package] to $data
 Method handlePage (line 1001)
 this event is called at the start of a new page, before the Parser knows whether the page will contain any procedural pages or not
 Method handleTutorial (line 530)
 This adds the parsed tutorial to the tutorial tree
 Method handleVar (line 550)
 This function sets up a @var tag if none is found, and aligns $data's $path var and packages to match the parent object
 Method Output (line 1807)
 This method calls the private methods fixClasses and fixProcPages, both of which adjust inheritance and package information based on complicated post-parsing rules described in ProceduralPages::setupPages() and Classes::Inherit(). Then, it sorts elements of the $pages array and calls Convert for each Converter in the $converters array
 Method parsePackagePage (line 1181)
 
 Method setParsePrivate (line 1931)
 If set to true, elements will be displayed
 Method setQuietMode (line 1908)
 If set to false, no parsing information (parsing /php/file/thisfile.php, Converting etc.) will be displayed. Useful for cron jobs
 Method setTargetDir (line 1884)
 
 Method setTemplateBase (line 1895)
 
 Method setUndocumentedElementWarningsMode (line 1920)
 If set to false, no warnings will be shown for undocumented elements. Useful for identifying classes and methods that haven't yet been documented.
 Method _guessPackage (line 376)
 A file in pear/dir/file.php will be in package "dir." A file in pear/dir/subdir/file.php will be in package "dir," subpackage "subdir."