diff options
| author | ctrlaltca@gmail.com <> | 2011-11-19 11:05:46 +0000 | 
|---|---|---|
| committer | ctrlaltca@gmail.com <> | 2011-11-19 11:05:46 +0000 | 
| commit | 1f09b786730956d01c48a82272617a0f8b2597f0 (patch) | |
| tree | fe733def390a3c7ec41933ef4a55c06cf403e9f4 | |
| parent | d840107832b1f59a9fc3b93ffb97ef976be1b83c (diff) | |
updating phpDocumentor, part 1: removal of the old version
267 files changed, 0 insertions, 60562 deletions
diff --git a/.gitattributes b/.gitattributes index bfd82010..e29921e9 100644 --- a/.gitattributes +++ b/.gitattributes @@ -56,272 +56,6 @@ buildscripts/PhpDocumentor/new_phpdoc.php -text  buildscripts/PhpDocumentor/pear-phpdoc -text  buildscripts/PhpDocumentor/pear-phpdoc.bat -text  buildscripts/PhpDocumentor/phpDocumentor.ini -text -buildscripts/PhpDocumentor/phpDocumentor/Classes.inc -text -buildscripts/PhpDocumentor/phpDocumentor/Converter.inc -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/options.ini -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/__tags.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_declaration.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_description.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_list.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_details.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_summary.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_details.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_summary.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_details.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_summary.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_footer.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_get_constant_type.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_header.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_constants.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_methods.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inheritence_tree.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_details.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_summary.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_sub_classes.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_tags.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/examplesource.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/bg_left.png -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/manual.css -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/style.css -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/stylesheet.css -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/HTMLSmartyConverter.inc -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/options.ini -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/__tags.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_declaration.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_description.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_list.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_details.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_summary.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_details.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_summary.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_details.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_summary.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_footer.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_get_constant_type.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_header.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_constants.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_methods.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inheritence_tree.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_details.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_summary.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_sub_classes.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_tags.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/basicindex.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/blank.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/class.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classleft.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classtrees.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/const.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/define.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/docblock.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/elementindex.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/errors.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/examplesource.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/fileleft.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/filesource.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/footer.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/function.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/global.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/header.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/include.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/index.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/background.png -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/bg_left.png -text svneol=unset#unset -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/empty.png -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/manual.css -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/style.css -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/stylesheet.css -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/method.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/packages.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/page.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/pkgelementindex.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/ric.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/todolist.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_toc.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_tree.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/var.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/HTMLframesConverter.inc -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/options.ini -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/basicindex.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/blank.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/class.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/classtrees.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/const.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/define.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/docblock.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/elementindex.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/errors.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/examplesource.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/filesource.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/footer.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/function.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/global.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/header.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/include.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/index.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/left_frame.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/banner.css -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/stylesheet.css -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/method.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/page.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/pkgelementindex.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/ric.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/todolist.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/top_frame.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_nav.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_toc.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc -text -buildscripts/PhpDocumentor/phpDocumentor/DocBlock/Lexer.inc -text -buildscripts/PhpDocumentor/phpDocumentor/DocBlockTags.inc -text -buildscripts/PhpDocumentor/phpDocumentor/Errors.inc -text -buildscripts/PhpDocumentor/phpDocumentor/EventStack.inc -text -buildscripts/PhpDocumentor/phpDocumentor/HighlightParser.inc -text -buildscripts/PhpDocumentor/phpDocumentor/InlineTags.inc -text -buildscripts/PhpDocumentor/phpDocumentor/IntermediateParser.inc -text -buildscripts/PhpDocumentor/phpDocumentor/Io.inc -text -buildscripts/PhpDocumentor/phpDocumentor/LinkClasses.inc -text -buildscripts/PhpDocumentor/phpDocumentor/PackagePageElements.inc -text -buildscripts/PhpDocumentor/phpDocumentor/Parser.inc -text -buildscripts/PhpDocumentor/phpDocumentor/ParserData.inc -text -buildscripts/PhpDocumentor/phpDocumentor/ParserDescCleanup.inc -text -buildscripts/PhpDocumentor/phpDocumentor/ParserDocBlock.inc -text -buildscripts/PhpDocumentor/phpDocumentor/ParserElements.inc -text -buildscripts/PhpDocumentor/phpDocumentor/ProceduralPages.inc -text -buildscripts/PhpDocumentor/phpDocumentor/Publisher.inc -text -buildscripts/PhpDocumentor/phpDocumentor/Setup.inc.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/BUGS -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/COPYING.lib -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/ChangeLog -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/FAQ -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/INSTALL -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/NEWS -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/README -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/RELEASE_NOTES -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/TODO -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Config_File.class.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Smarty.class.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Smarty_Compiler.class.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.assemble_plugin_filepath.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.assign_smarty_interface.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.create_dir_structure.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.display_debug_console.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.get_include_path.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.get_microtime.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.get_php_resource.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.is_secure.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.is_trusted.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.load_plugins.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.load_resource_plugin.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.process_cached_inserts.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.process_compiled_include.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.read_cache_file.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.rm_auto.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.rmdir.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.run_insert_handler.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.smarty_include_php.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_cache_file.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_include.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_resource.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_file.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/debug.tpl -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.strip.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.textformat.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign_debug_info.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.config_load.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.counter.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.cycle.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.debug.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.eval.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.fetch.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_checkboxes.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_image.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_options.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_radios.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_date.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_time.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_table.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.mailto.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.math.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup_init.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.var_dump.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.capitalize.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.cat.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_characters.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_paragraphs.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_sentences.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_words.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.date_format.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.debug_print_var.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.default.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.escape.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.htmlentities.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.indent.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.lower.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.nl2br.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.rawurlencode.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.regex_replace.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.replace.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.spacify.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.string_format.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip_tags.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.truncate.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.upper.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.wordwrap.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/outputfilter.trimwhitespace.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.escape_special_chars.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.make_timestamp.php -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.README -text -buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.gif -text -buildscripts/PhpDocumentor/phpDocumentor/TutorialHighlightParser.inc -text -buildscripts/PhpDocumentor/phpDocumentor/WordParser.inc -text -buildscripts/PhpDocumentor/phpDocumentor/XMLpackagePageParser.inc -text -buildscripts/PhpDocumentor/phpDocumentor/clone.inc.php -text -buildscripts/PhpDocumentor/phpDocumentor/clone5.inc.php -text -buildscripts/PhpDocumentor/phpDocumentor/common.inc.php -text -buildscripts/PhpDocumentor/phpDocumentor/find_phpdoc.php -text -buildscripts/PhpDocumentor/phpDocumentor/phpDocumentorTParser.inc -text -buildscripts/PhpDocumentor/phpDocumentor/phpDocumentorTWordParser.inc -text -buildscripts/PhpDocumentor/phpDocumentor/phpdoc.inc -text  buildscripts/PhpDocumentor/phpdoc -text  buildscripts/PhpDocumentor/phpdoc.php -text  buildscripts/PhpDocumentor/poweredbyphpdoc.gif -text diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Classes.inc b/buildscripts/PhpDocumentor/phpDocumentor/Classes.inc deleted file mode 100644 index d4f29745..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Classes.inc +++ /dev/null @@ -1,1068 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * Intermediate class parsing structure.
 - * @package phpDocumentor
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: Classes.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
 - */
 -/**
 - * Intermediate class parsing structure.
 - *
 - * The {@link phpDocumentor_IntermediateParser} class uses this class and its
 - * cousin, {@link ProceduralPages} to organize all parsed source code elements.
 - * Data is fed to each immediately after it is parsed, and at conversion time,
 - * everything is organized.
 - *
 - * The Classes class is responsible for all inheritance, including resolving
 - * name conflicts between classes, determining which classes extend other
 - * classes, and is responsible for all inheritance of documentation.
 - * {@internal
 - * This structure parses classes, vars and methods by file, and then iterates
 - * over the class tree to set up inheritance.  The {@link Inherit()}
 - * method is the meat of the class, and processes the class trees from root to
 - * branch, ensuring that parsing order is unimportant.}}
 - * @package phpDocumentor
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: Classes.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
 - */
 -class Classes
 -{
 -    /**#@+
 -     * @access private
 -     */
 -    /**
 -     * file being parsed, used in every add function to match up elements with 
 -     * the file that contains them
 -     *
 -     * This variable is used during parsing to associate class elements added
 -     * to the data structures that contain them with the file they reside in
 -     * @see addClass(), addMethod(), addVar(), nextFile()
 -     * @var string
 -     */
 -    var $curfile;
 -    /**
 -     * class being parsed, used to match up methods and vars with their parent
 -     * class
 -     *
 -     * This variable is used during parsing to associate class elements added
 -     * to the data structures that contain them with the file they reside in
 -     * @see addMethod(), addVar()
 -     * @var string
 -     */
 -    var $curclass;
 -    
 -    /**
 -     * Used when a definite match is made between a parent class and a child
 -     * class
 -     *
 -     * This variable is used in post-parsing.
 -     *
 -     * Format: array(parent => array(parentfile => array(child => childfile)))
 -     * @var array
 -     */
 -    var $definitechild;
 -    /**
 -     * array of parsed classes organized by the name of the file that contains
 -     * the class.
 -     *
 -     * Format:
 -     * array(filename => array(classname => {@link parserClass}))
 -     * @var array
 -     */
 -    var $classesbyfile = array();
 -    /**
 -     * array of file names organized by classes that are in the file.
 -     *
 -     * This structure is designed to handle name conflicts.  Two files can
 -     * contain classes with the same name, and this array will record both
 -     * filenames to help control linking and inheritance errors
 -     *
 -     * Format:<pre>
 -     * array(classname => array(name of file containing classname,
 -     *                          name of file 2 containing classname...)</pre>
 -     * @var array
 -     */
 -    var $classesbynamefile = array();
 -    /**
 -     * array of parsed methods organized by the file that contains them.
 -     *
 -     * Format:<pre>
 -     * array(filename => array(classname => array({@link parserMethod} 1, 
 -     *                                            {@link parserMethod} 2,...))</pre>
 -     * @var array
 -     */
 -    var $methodsbyfile = array();
 -    /**
 -     * array of parsed vars organized by the file that contains them.
 -     *
 -     * Format:
 -     * array(filename => array(classname => array({@link parserVar} 1, {@link parserVar} 2,...))
 -     * @var array
 -     */
 -    var $varsbyfile = array();
 -    /**
 -     * array of parsed class constants organized by the file that contains them.
 -     *
 -     * Format:
 -     * array(filename => array(classname => array({@link parserConst} 1, {@link parserConst} 2,...))
 -     * @var array
 -     */
 -    var $constsbyfile = array();
 -    /**
 -     * keeps track of extend declarations by file, used to find inheritance
 -     *
 -     * Format:
 -     * array(filename => array(classname => parentclassname))
 -     * @var array
 -     */
 -    var $extendsbyfile = array();
 -    /**
 -     * Keeps track of child classes by file.
 -     * Since phpDocumentor can document collections of files that contain name
 -     * conflicts (PHP would give a fatal error), it
 -     * is impossible to assume a class that declares "extends foo" necessarily
 -     * extends the class foo in file X.  It could be an
 -     * extended class of class foo in file Y.  Because of this, phpDocumentor
 -     * relies on packaging to resolve the name conflict
 -     * This array keeps track of the packages of a child class
 -     *
 -     * Format:
 -     * array(parentclassname => array(filename => array(childclassname =>
 -     *                                      array(packagename, packagename)))
 -     * @var array
 -     */
 -    var $classchildrenbyfile = array();
 -    /**
 -     * Keeps track of class packages found in a file.
 -     * This is used in {@link getParentClass()} to determine the number of
 -     * packages in a file, in order to resolve inheritance issues
 -     * Format: array(filename => array(packagename1, packagename2,...))
 -     * @var array
 -     */
 -    var $classpackagebyfile = array();
 -    /**
 -     * a tree of class inheritance by name.
 -     *
 -     * format:<pre>
 -     * array(childname => parentname,
 -     *       childname1 => parentname1,
 -     *       rootname => 0, ...
 -     *      )</pre>
 -     * @var array
 -     * @see Converter::generateSortedClassTreeFromClass()
 -     */
 -    var $classparents = array();
 -    /**
 -     * Keeps track of package and subpackage for each class name, organized
 -     * by package
 -     *
 -     * Format:<pre>
 -     * array(classname => array(path => array(package,subpackage),
 -     *                          path2 => array(package,subpackage),...))</pre>
 -     * @var array
 -     */
 -    var $classpathpackages = array();
 -    /**
 -     * used to delete duplicates in the same package to avoid documentation errors
 -     *
 -     * Specifically used in {@link Converter::checkKillClass()}
 -     */
 -    var $killclass = array();
 -    /**
 -     * array of methods by package and class
 -     *
 -     * format:<pre>
 -     * array(packagename =>
 -     *         array(classname =>
 -     *               array(methodname1 => {@link parserMethod} class,
 -     *                     methodname2 => {@link parserMethod} class,...)
 -     *                      )
 -     *              )
 -     *      )</pre>
 -     * @var array
 -     * @see Converter
 -     */
 -    var $methods = array();
 -    
 -    /**
 -     * array of class variables by package and class
 -     *
 -     * format:<pre>
 -     * array(packagename =>
 -     *         array(classname =>
 -     *                array(variablename1 => {@link parserVar} class,
 -     *                      variablename2 => {@link parserVar} class,...
 -     *                     )
 -     *              )
 -     *      )</pre>
 -     * @var array
 -     * @see Converter
 -     */
 -    var $vars = array();
 -    
 -    /**
 -     * array of class variables by package and class
 -     *
 -     * format:<pre>
 -     * array(packagename =>
 -     *         array(classname =>
 -     *                array(constname1 => {@link parserConst} class,
 -     *                      constname2 => {@link parserConst} class,...
 -     *                     )
 -     *              )
 -     *      )</pre>
 -     * @var array
 -     * @see Converter
 -     */
 -    var $consts = array();
 -    /**
 -     * Reverse class_packages_by_file, used to prevent duplicates
 -     * @var array Format: array(packagename => 1)
 -     */
 -    var $revcpbf = array();
 -    /**
 -     * All classes with no parents (no extends clause) are tracked in this array
 -     * by the file that contains them.
 -     *
 -     * Format:<pre>
 -     * array(classname => array(name of file1 that contains root classname,
 -     *                          name of file2 that contains root classname,...))</pre>
 -     * @var array
 -     */
 -    var $roots = array();
 -    
 -    /**
 -     * array of all files that contain classes with the same name
 -     * @var array Format: (classname => array(path1, path2,...))
 -     */
 -    var $potentialclassconflicts = array();
 -    
 -    /**
 -     * array of all inter-package name conflicts of classes
 -     *
 -     * This array allows documentation of PHP namespace conflicts that would
 -     * occur should a user try to include these files in the same file
 -     * @var array Format: (classname => array(path1, path2,...))
 -     */
 -    var $classconflicts = array();
 -    /**#@-*/
 -    /**
 -     * While parsing, add a class to the list of parsed classes
 -     *
 -     * sets up the {@link $classesbyfile, $classesbynamefile, $extendsbyfile},
 -     * {@link $classchildrenbyfile, $roots} arrays, and sets {@link $curclass}
 -     * @param parserClass &$element element is a {@link parserClass}
 -     * @uses addPackageToFile() marks the current class's package as being
 -     *                          present in a file
 -     */
 -    function addClass(&$element)
 -    {
 -        $this->curclass = $element->getName();
 -        $element->curfile = $this->curfile;
 -        if (isset($this->classesbyfile[$this->curfile][$this->curclass]))
 -        {
 -            addWarning(PDERROR_ELEMENT_IGNORED,'class',$this->curclass,$this->curfile);
 -            $this->curclass = false;
 -            return;
 -        }
 -        $this->classesbyfile[$this->curfile][$this->curclass] = $element;
 -        $this->classesbynamefile[$this->curclass][] = $this->curfile;
 -        $this->extendsbyfile[$this->curfile][$this->curclass] = $element->getExtends();
 -        $this->classchildrenbyfile[$element->getExtends()][$this->curfile][$this->curclass][] = $element->docblock->package;
 -        if ($element->docblock->getExplicitPackage())
 -        $this->addPackageToFile($element->docblock->package);
 -        if (!$element->getExtends())
 -        {
 -            $this->roots[$this->curclass][] = $this->curfile;
 -        }
 -    }
 -    
 -    /**
 -     * While parsing, add a method to the list of parsed methods
 -     *
 -     * sets up the {@link $methodsbyfile} array using {@link $curfile} and
 -     * {@link $curclass}
 -     * @param parserMethod &$element element is a {@link parserMethod}
 -     */
 -    function addMethod(&$element)
 -    {
 -        if (!$this->curclass) return;
 -        $this->methodsbyfile[$this->curfile][$this->curclass][] = $element;
 -    }
 -    
 -    /**
 -     * While parsing, add a variable to the list of parsed variables
 -     *
 -     * sets up the {@link $varsbyfile} array using {@link $curfile} and {@link $curclass}
 -     * @param parserVar &$element element is a {@link parserVar}
 -     */
 -    function addVar(&$element)
 -    {
 -        if (!$this->curclass) return;
 -        $this->varsbyfile[$this->curfile][$this->curclass][] = $element;
 -    }
 -    
 -    /**
 -     * While parsing, add a variable to the list of parsed variables
 -     *
 -     * sets up the {@link $constsbyfile} array using {@link $curfile} and {@link $curclass}
 -     * @param parserConst &$element element is a {@link parserConst}
 -     */
 -    function addConst(&$element)
 -    {
 -        if (!$this->curclass) return;
 -        $this->constsbyfile[$this->curfile][$this->curclass][] = $element;
 -    }
 -    
 -    /**
 -     * Prepare to parse a new file
 -     *
 -     * sets {@link $curfile} to $file and {@link $curclass} to false (no class being parsed)
 -     * @param string $file file currently being parsed
 -     */
 -    function nextFile($file)
 -    {
 -        $this->curfile = $file;
 -        $this->curclass = false;
 -    }
 -    
 -    /**
 -     * Mark a package as being used in a class
 -     *
 -     * {@source}
 -     * @param string $package package name
 -     */
 -    function addPackageToFile($package)
 -    {
 -        if (!isset($this->revcpbf[$this->curfile][$package]))
 -        $this->classpackagebyfile[$this->curfile][] = $package;
 -        $this->revcpbf[$this->curfile][$package] = 1;
 -    }
 -    
 -    /**
 -     * Find the parent class of $class, and set up structures to note this fact
 -     *
 -     * Modifies the {@link parserClass} element in {@link $classesbyfile} to use
 -     * the parent's package, and inherit methods/vars
 -     * @param string $class child class to find parent class
 -     * @param string $file file child class is located in
 -     * @uses $definitechild if a match is made between a parent class and parameter
 -     *                      $class in file $file, then definitechild is set here
 -     * @uses getParentClass() to find the parent class
 -     */
 -    function setClassParent($class,$file)
 -    {
 -        if (is_array($par = $this->getParentClass($class,$file)))
 -        {
 -//            phpDocumentor_out("$file class $class extends ".$par[1]." file ".$par[0]."\n");
 -            $this->classesbyfile[$file][$class]->setParent($par[1],$par[0],$this);
 -            $this->definitechild[$par[1]][$par[0]][$class] = $file;
 -        } else
 -        {
 -            $this->classesbyfile[$file][$class]->setParentNoClass($par);
 -        }
 -    }
 -    
 -    /**
 -     * Main processing engine for setting up class inheritance.
 -     *
 -     * This function uses {@link $roots} to traverse the inheritance tree via
 -     * {@link processChild()} and returns the data structures
 -     * phpDocumentor_IntermediateParser needs to convert parsed data
 -     * to output using {@link phpDocumentor_IntermediateParser::Convert()}
 -     * @param phpDocumentor_IntermediateParser
 -     * @uses processChild() set up inheritance
 -     */
 -    function Inherit(&$render)
 -    {
 -        phpDocumentor_out("\nProcessing Class Inheritance\n\n");
 -        flush();
 -        phpDocumentor_out("\nProcessing Root Trees\n\n");
 -        flush();
 -        foreach($this->roots as $class => $files)
 -        {
 -            for ($i=0; $i<count($files); $i++)
 -            {
 -                $this->processChild($render,$class,$files[$i]);
 -            }
 -        }
 -        if (0)
 -        foreach($this->classesbyfile as $i => $j)
 -        {
 -            foreach($j as $k => $m)
 -            {
 -                var_dump($i,$k);
 -                if ($i == 'iConverter')
 -                {
 -                    var_dump($j);
 -                }
 -            }
 -        }
 -        phpDocumentor_out("\nProcessing leftover classes (classes that extend root classes not found in the same package)\n");
 -        flush();
 -        foreach($this->classesbyfile as $i => $j)
 -        {
 -            foreach($j as $k => $m)
 -            {
 -                $this->processChild($render,$k,$i,true);
 -            }
 -        }
 -        phpDocumentor_out("done processing leftover classes\n");
 -        flush();
 -        $this->setupClassConflicts();
 -    }
 -    
 -    /**
 -     * Transfers actual conflicts from {@link $potentialClassconflicts} to
 -     * {@link $classconflicts}
 -     * @access private
 -     * @uses $potentialclassconflicts transfers values to {@link $classconflicts}
 -     */
 -    function setupClassConflicts()
 -    {
 -        foreach($this->potentialclassconflicts as $class => $paths)
 -        {
 -            if (count($paths) - 1)
 -            { //conflict
 -                $package = array();
 -                foreach($paths as $path)
 -                {
 -                    // create a list of conflicting classes in each package
 -                    if (isset($this->classpathpackages[$class][$path]))
 -                    $package[$this->classpathpackages[$class][$path][0]][] = $path;
 -                }
 -                foreach($package as $pathpackages)
 -                {
 -                    // if at least 2 functions exist in the same package, delete all but the first one and add warnings
 -                    if (count($pathpackages) - 1)
 -                    {
 -                        for($i=1; $i < count($pathpackages); $i++)
 -                        {
 -                            if (isset($this->classesbyfile[$pathpackages[$i]]))
 -                            {
 -                                addWarning(PDERROR_ELEMENT_IGNORED,'class',$class,$pathpackages[$i]);
 -                                $this->killClass($class,$pathpackages[$i]);
 -                                $oth = array_flip($paths);
 -                                unset($paths[$oth[$pathpackages[$i]]]);
 -                            }
 -                        }
 -                    }
 -                }
 -                $this->classconflicts[$class] = $paths;
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * If a package contains two classes with the same name, this function finds
 -     * that conflict
 -     *
 -     * Returns the {@link $classconflicts} entry for class $class, minus its own path
 -     * @return mixed returns false if no conflicts, or an array of paths containing conflicts
 -     */
 -    function getConflicts($class)
 -    {
 -        if (!isset($this->classconflicts[$class])) return false;
 -        $a = array();
 -        foreach($this->classconflicts[$class] as $conflict)
 -        {
 -            $a[$this->classesbyfile[$conflict][$class]->docblock->package] = $this->classesbyfile[$conflict][$class];
 -        }
 -        return $a;
 -    }
 -    
 -    /**
 -     * sets up {@link $killclass} for use by Converter::checkKillClass()
 -     * @access private
 -     */
 -    function killClass($class,$path)
 -    {
 -        $this->killclass[$class][$path] = true;
 -    }
 -    
 -    /**
 -     * This function recursively climbs up the class tree, setting inherited
 -     * information like package and adds the elements to phpDocumentor_IntermediateParser.
 -     *
 -     * Using structures defined in {@link Classes}, the function first sets package information,
 -     * and then seeks out child classes.
 -     * It uses 3 tests to determine whether a class is a child class.
 -     * <ol>
 -     *    <li>child class is in the same file as the parent class and extends parent class</li>
 -     *    <li>child class is in a different file and specifies the parent's @package in its docblock</li>
 -     *    <li>child class is in a different file and is in a different @package, with one possible parent class</li>
 -     * </ol>
 -     * @param phpDocumentor_IntermediateParser &$render
 -     * @param string $class class to process
 -     * @param string $file name of file $class is located in
 -     * @param boolean $furb flag used privately to control informational output while parsing
 -     *                            (used when processing leftover classes in {@link Inherit()}
 -     * @global    string    default package, usually "default"
 -     */
 -    function processChild(&$render,$class,$file,$furb = false)
 -    {
 -        global $phpDocumentor_DefaultPackageName;
 -        if (isset($this->classesbyfile[$file][$class]->processed)) return;
 -        $this->potentialclassconflicts[$class][] = $file;
 -        if ($furb) phpDocumentor_out("Processing $class in file $file\n");
 -        flush();
 -        $this->classesbyfile[$file][$class]->processed = true;
 -        $db = $this->classesbyfile[$file][$class];
 -        $render->addUses($db,$file);
 -        if (!$render->parsePrivate)
 -        {
 -            // if this class has an @access private, and parse private is disabled, remove it
 -            if ($db->docblock->hasaccess)
 -            {
 -                $aaa = $db->docblock->getKeyword('access');
 -                if (is_object($aaa) && $aaa->getString() == 'private')
 -                {
 -                    if (isset($this->varsbyfile[$file]) && isset($this->varsbyfile[$file][$class]))
 -                    {
 -                        unset($this->varsbyfile[$file][$class]);
 -                    }
 -                    if (isset($this->methodsbyfile[$file]) && isset($this->methodsbyfile[$file][$class]))
 -                    {
 -                        unset($this->methodsbyfile[$file][$class]);
 -                    }
 -                    if (isset($this->constsbyfile[$file]) && isset($this->constsbyfile[$file][$class]))
 -                    {
 -                        unset($this->constsbyfile[$file][$class]);
 -                    }
 -                    $this->classesbyfile[$file][$class]->ignore = true;
 -                    // if this is a root class, remove it from the roots array
 -                    if (isset($this->roots[$class]))
 -                    foreach($this->roots[$class] as $i => $files)
 -                    {
 -                        // find the file kkey and unset
 -                        if ($files == $file) unset($this->roots[$class][$i]);
 -                    }
 -                    // if this is a child, remove it from the list of child classes of its parent
 -                    if ($db->getExtends()) unset($this->classchildrenbyfile[$db->getExtends()][$file]);
 -                    return;
 -                }
 -            }
 -        }
 -        if ($render->packageoutput)
 -        {
 -            if (!in_array($db->docblock->package,$render->packageoutput))
 -            {
 -                if (isset($this->varsbyfile[$file]) && isset($this->varsbyfile[$file][$class]))
 -                {
 -                    unset($this->varsbyfile[$file][$class]);
 -                }
 -                if (isset($this->methodsbyfile[$file]) && isset($this->methodsbyfile[$file][$class]))
 -                {
 -                    unset($this->methodsbyfile[$file][$class]);
 -                }
 -                if (isset($this->constsbyfile[$file]) && isset($this->constsbyfile[$file][$class]))
 -                {
 -                    unset($this->constsbyfile[$file][$class]);
 -                }
 -                $this->classesbyfile[$file][$class]->ignore = true;
 -                if (isset($this->roots[$class]))
 -                foreach($this->roots[$class] as $i => $files)
 -                {
 -                    if ($files == $file) unset($this->roots[$class][$i]);
 -                }
 -                if ($db->getExtends()) unset($this->classchildrenbyfile[$db->getExtends()][$file]);
 -                return;
 -            }
 -        }
 -        $this->setClassParent($class,$file);
 -        $db = $this->classesbyfile[$file][$class];
 -        if ($furb && !is_array($db->parent))
 -        {
 -//            debug("furb adding $class $file to roots");
 -            $this->roots[$class][] = $file;
 -        }
 -        // fix for 591396
 -        if (!$db->docblock->getExplicitPackage())
 -        {
 -            $a = $render->proceduralpages->pagepackages[$file];
 -            if ($a[0] != $phpDocumentor_DefaultPackageName)
 -            {
 -                // inherit page package
 -                $this->classesbyfile[$file][$class]->docblock->package = $a[0];
 -            }
 -        }
 -        if ($this->classesbyfile[$file][$class]->docblock->package == $render->proceduralpages->pagepackages[$file][0])
 -        {
 -            if ($this->classesbyfile[$file][$class]->docblock->subpackage == '')
 -                $this->classesbyfile[$file][$class]->docblock->subpackage = $render->proceduralpages->pagepackages[$file][1];
 -        }
 -        $db = $this->classesbyfile[$file][$class];
 -        $render->addPackageParent($db);
 -        $render->addPageIfNecessary($file, $db);
 -        if ($access = $db->docblock->getKeyword('access'))
 -        {
 -            if (!is_string($access) && is_object($access)) $access = $access->getString();
 -            if (!is_string($access)) $access = 'public';
 -            if (($access == 'private') && (!$render->parsePrivate))
 -            {
 -                if (isset($this->varsbyfile[$file]) && isset($this->varsbyfile[$file][$class]))
 -                foreach($this->varsbyfile[$file][$class] as $i => $vr)
 -                {
 -                    $vr->docblock->addKeyword('access','private');
 -                    $this->varsbyfile[$file][$class][$i] = $vr;
 -                }
 -                if (isset($this->methodsbyfile[$file]) && isset($this->methodsbyfile[$file][$class]))
 -                foreach($this->methodsbyfile[$file][$class] as $i => $vr)
 -                {
 -                    $vr->docblock->addKeyword('access','private');
 -                    $this->methodsbyfile[$file][$class][$i] = $vr;
 -                }
 -                if (isset($this->constsbyfile[$file]) && isset($this->constsbyfile[$file][$class]))
 -                foreach($this->constsbyfile[$file][$class] as $i => $vr)
 -                {
 -                    $vr->docblock->addKeyword('access','private');
 -                    $this->constsbyfile[$file][$class][$i] = $vr;
 -                }
 -            }
 -        }
 -        $this->classpathpackages[$class][$file] = array($db->docblock->package,$db->docblock->subpackage);
 -        if ($db->docblock->getExplicitPackage())
 -        $render->proceduralpages->addClassPackageToFile($file,$db->docblock->package,$db->docblock->subpackage);
 -        $render->addElementToPage($db,$file);
 -        if (isset($this->varsbyfile[$file]) && isset($this->varsbyfile[$file][$class]))
 -        foreach($this->varsbyfile[$file][$class] as $i => $vr)
 -        {
 -            $vr->docblock->package = $db->docblock->package;
 -            $vr->docblock->subpackage = $db->docblock->subpackage;
 -            $render->addElementToPage($vr,$file);
 -            $render->addUses($vr,$file);
 -            $this->varsbyfile[$file][$class][$i] = $vr;
 -            $this->vars[$db->docblock->package][$class][$vr->getName()] = $vr;
 -        }
 -        if (isset($this->methodsbyfile[$file]) && isset($this->methodsbyfile[$file][$class]))
 -        foreach($this->methodsbyfile[$file][$class] as $i => $vr)
 -        {
 -            $vr->docblock->package = $db->docblock->package;
 -            $vr->docblock->subpackage = $db->docblock->subpackage;
 -            $render->addElementToPage($vr,$file);
 -            $render->addUses($vr,$file);
 -            $this->methodsbyfile[$file][$class][$i] = $vr;
 -            $this->methods[$db->docblock->package][$class][$vr->getName()] = $vr;
 -        }
 -        if (isset($this->constsbyfile[$file]) && isset($this->constsbyfile[$file][$class]))
 -        foreach($this->constsbyfile[$file][$class] as $i => $vr)
 -        {
 -            $vr->docblock->package = $db->docblock->package;
 -            $vr->docblock->subpackage = $db->docblock->subpackage;
 -            $render->addElementToPage($vr,$file);
 -            $render->addUses($vr,$file);
 -            $this->constsbyfile[$file][$class][$i] = $vr;
 -            $this->methods[$db->docblock->package][$class][$vr->getName()] = $vr;
 -        }
 -        $this->classpackages[$class][] = array($db->docblock->package,$db->docblock->subpackage);
 -        if (is_array($db->parent))
 -        $this->classparents[$db->docblock->package][$class] = $db->parent[1];
 -        else
 -        $this->classparents[$db->docblock->package][$class] = $db->getExtends();
 -        if (is_array($db->parent))
 -        {
 -            $z = $this->getClass($db->parent[1],$db->parent[0]);
 -            $this->classchildren[$z->docblock->package][$db->parent[1]][] = $db;
 -        }
 -        if (isset($this->classchildrenbyfile[$class]))
 -        {
 -            foreach($this->classchildrenbyfile[$class] as $childfile => $other)
 -            {
 -                // test 1, inherits in same file (must be same package)
 -                if ($childfile == $file)
 -                {
 -                    foreach($other as $child => $packages)
 -                    {
 -//                        debug("parent $class same file $child");
 -                        $this->processChild($render,$child,$childfile);
 -                        $x = $this->getClass($child,$childfile);
 -                        if ($x->docblock->package != $GLOBALS['phpDocumentor_DefaultPackageName'])
 -                        {
 -                            // child package need root for class trees
 -                            if ($x->docblock->package != $db->docblock->package)
 -                            {
 -//                            debug("adding $child in $childfile 1");
 -                                $this->roots[$child][] = $childfile;
 -                            }
 -                        }
 -                    }
 -                } else
 -                {
 -                // test 2, different file, same package
 -                    foreach($other as $child => $packages)
 -                    {
 -                        for($j=0; $j<count($packages); $j++)
 -                        {
 -                            if ($this->classesbyfile[$file][$class]->docblock->package == $packages[$j])
 -                            {
 -                                $this->processChild($render,$child,$childfile);
 -//                                debug("$childfile diff file $child, parent $class, same package ".$packages[$j]);
 -                            } else
 -                            {
 -                                // test 3, different file, different package, only 1 parent is possible
 -                                if (isset($this->classesbynamefile[$child]))
 -                                {
 -                                    // 1 possible parent
 -                                    if (count($this->classesbynamefile[$class]) == 1)
 -                                    {
 -//                                        debug("$childfile diff file $child, diff package, 1 possible parent root $class");
 -                                        $this->processChild($render,$child,$childfile);
 -                                        $x = $this->getClass($child,$childfile);
 -                                        if ($x->docblock->package != $GLOBALS['phpDocumentor_DefaultPackageName'])
 -                                        {
 -                                            // child package need root for class trees
 -                                            if ($x->docblock->package != $db->docblock->package)
 -                                            {
 -//                                                debug("adding roots $child in $childfile 2");
 -                                                $this->roots[$child][] = $childfile;
 -                                            }
 -                                        }
 -                                    }
 -                                }
 -                            }
 -                        }
 -                    }
 -                }
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * Get the parserClass representation of a class from its name and file
 -     * @return parserClass
 -     * @param string $class classname
 -     * @param string $file file classname is located in
 -     */
 -    function &getClass($class, $file)
 -    {
 -//        debug("getClass called with class $class file $file");
 -        return $this->classesbyfile[$file][$class];
 -    }
 -    
 -    /**
 -     * Used by {@link parserData::getClasses()} to retrieve classes defined in file $path
 -     *
 -     * retrieves the array entry from {@link $classesbyfile} for $path
 -     * @param string $path full path to filename
 -     * @return mixed returns false if no classes defined in the file, otherwise returns an array of {@link parserClass}es
 -     */
 -    function getClassesInPath($path)
 -    {
 -        if (!isset($this->classesbyfile[$path])) return false;
 -        return $this->classesbyfile[$path];
 -    }
 -    
 -    /**
 -     * called by {@link parserClass::hasMethods()}.  Should not be directly called
 -     * @access private
 -     * @param string $file
 -     * @param string $class
 -     */
 -    function hasMethods($file,$class)
 -    {
 -        return isset($this->methodsbyfile[$file][$class]);
 -    }
 -    
 -    /**
 -     * called by {@link parserClass::hasConsts()}.  Should not be directly called
 -     * @access private
 -     * @param string $file
 -     * @param string $class
 -     */
 -    function hasConsts($file,$class)
 -    {
 -        return isset($this->constsbyfile[$file][$class]);
 -    }
 -    
 -    /**
 -     * called by {@link parserClass::hasVars()}.  Should not be directly called
 -     * @access private
 -     * @param string $file
 -     * @param string $class
 -     */
 -    function hasVars($file, $class)
 -    {
 -        return isset($this->varsbyfile[$file][$class]);
 -    }
 -    
 -    /**
 -     * called by {@link parserClass::hasMethod()}.  Should not be directly called
 -     * @param string $file
 -     * @param string $class
 -     * @param string $name method name
 -     * @access private
 -     */
 -    function hasMethod($class, $file, $name)
 -    {
 -        if (!$this->hasMethods($file, $class)) return false;
 -        for($i=0; $i<count($this->methodsbyfile[$file][$class]); $i++)
 -        {
 -            if ($this->methodsbyfile[$file][$class][$i]->getName() == $name) return true;
 -        }
 -        return false;
 -    }
 -    
 -    /**
 -     * called by {@link parserClass::hasVar()}.  Should not be directly called
 -     * @param string $file
 -     * @param string $class
 -     * @param string $name var name
 -     * @access private
 -     */
 -    function hasVar($class, $file, $name)
 -    {
 -        if (!$this->hasVars($file, $class)) return false;
 -        for($i=0; $i<count($this->varsbyfile[$file][$class]); $i++)
 -        {
 -            if ($this->varsbyfile[$file][$class][$i]->getName() == $name) return true;
 -        }
 -        return false;
 -    }
 -    
 -    /**
 -     * called by {@link parserClass::hasConst()}.  Should not be directly called
 -     * @param string $file
 -     * @param string $class
 -     * @param string $name var name
 -     * @access private
 -     */
 -    function hasConst($class, $file, $name)
 -    {
 -        if (!$this->hasConsts($file, $class)) return false;
 -        for($i=0; $i<count($this->constsbyfile[$file][$class]); $i++)
 -        {
 -            if ($this->constsbyfile[$file][$class][$i]->getName() == $name) return true;
 -        }
 -        return false;
 -    }
 -    
 -    /**
 -     * called by {@link parserClass::getMethods()}.  Should not be directly called
 -     * @access private
 -     * @param string $class
 -     * @param string $file
 -     */
 -    function &getMethods($class, $file)
 -    {
 -        if (!isset($this->methodsbyfile[$file][$class])) return false;
 -        return $this->methodsbyfile[$file][$class];
 -    }
 -    
 -    /**
 -     * called by {@link parserClass::getVars()}.  Should not be directly called
 -     * @access private
 -     * @param string $class
 -     * @param string $file
 -     */
 -    function &getVars($class, $file)
 -    {
 -        if (!isset($this->varsbyfile[$file][$class])) return false;
 -        return $this->varsbyfile[$file][$class];
 -    }
 -    
 -    /**
 -     * called by {@link parserClass::getConsts()}.  Should not be directly called
 -     * @access private
 -     * @param string $class
 -     * @param string $file
 -     */
 -    function &getConsts($class, $file)
 -    {
 -        if (!isset($this->constsbyfile[$file][$class])) return false;
 -        return $this->constsbyfile[$file][$class];
 -    }
 -    
 -    /**
 -     * called by {@link parserClass::getMethod()}.  Should not be directly called
 -     * @param string $class
 -     * @param string $file
 -     * @param string $name method name
 -     * @access private
 -     */
 -    function getMethod($class, $file, $name)
 -    {
 -        if (!$this->hasMethod($class, $file, $name)) return false;
 -        for($i=0; $i<count($this->methodsbyfile[$file][$class]); $i++)
 -        {
 -            if ($this->methodsbyfile[$file][$class][$i]->getName() == $name) return $this->methodsbyfile[$file][$class][$i];
 -        }
 -    }
 -    
 -    /**
 -     * called by {@link parserClass::getVar()}.  Should not be directly called
 -     * @param string $class
 -     * @param string $file
 -     * @param string $name var name
 -     * @access private
 -     */
 -    function getVar($class, $file, $name)
 -    {
 -        if (!$this->hasVar($class, $file, $name)) return false;
 -        for($i=0; $i<count($this->varsbyfile[$file][$class]); $i++)
 -        {
 -            if ($this->varsbyfile[$file][$class][$i]->getName() == $name) return $this->varsbyfile[$file][$class][$i];
 -        }
 -    }
 -    
 -    /**
 -     * called by {@link parserClass::getConst()}.  Should not be directly called
 -     * @param string $class
 -     * @param string $file
 -     * @param string $name var name
 -     * @access private
 -     */
 -    function getConst($class, $file, $name)
 -    {
 -        if (!$this->hasConst($class, $file, $name)) return false;
 -        for($i=0; $i<count($this->constsbyfile[$file][$class]); $i++)
 -        {
 -            if ($this->constsbyfile[$file][$class][$i]->getName() == $name) return $this->constsbyfile[$file][$class][$i];
 -        }
 -    }
 -    
 -    /**
 -     * Search for a class in a package
 -     * @return mixed returns false if no class in $package, otherwise returns a {@link parserClass}
 -     * @param string $class classname
 -     * @param string $package package classname is in
 -     */
 -    function &getClassByPackage($class,$package)
 -    {
 -        if (!isset($this->classesbynamefile[$class]))
 -        {
 -//            addWarning(PDERROR_CLASS_NOT_IN_PACKAGE,$class,$package); // removed, too many warnings, not very useful
 -            return false;
 -        }
 -        for($i=0; $i < count($this->classesbynamefile[$class]); $i++)
 -        {
 -						$cls = $this->classesbyfile[$this->classesbynamefile[$class][$i]][$class];
 -						$pkg = $cls->getPackage();
 -            if ($pkg == $package)
 -								return $cls;
 -        }
 -//        addWarning(PDERROR_CLASS_NOT_IN_PACKAGE,$class,$package);
 -        return false;
 -    }
 -    
 -    /**
 -     * Find the parent class of a class in file $file
 -     * uses 3 tests to find the parent classname:
 -     * <ol>
 -     *    <li>only one class with the parent classname</li>
 -     *    <li>more than one class, but only one in the same file as the child</li>
 -     *    <li>only one parent class in the same package as the child</li>
 -     * </ol>
 -     * @return mixed false if no parent class, a string if no parent class found by that name,
 -     *                and an array(file parentclass is in,parentclassname)
 -     */
 -    function getParentClass($class,$file)
 -    {
 -        if (!isset($this->classesbyfile[$file][$class]))
 -        {
 -            return false;
 -        }
 -        $element = $this->classesbyfile[$file][$class];
 -        if (!($ex = $element->getExtends())) return false;
 -        // first check to see if there is one and only one class with the parent class's name
 -        if (isset($this->classesbynamefile[$ex]))
 -        {
 -            if (count($this->classesbynamefile[$ex]) == 1)
 -            {
 -                if ($this->classesbyfile[$this->classesbynamefile[$ex][0]][$ex]->ignore) return $ex;
 -                return array($this->classesbynamefile[$ex][0],$ex);
 -            } else
 -            {
 -                // next check to see if there is a parent class in the same file
 -                if (isset($this->classesbyfile[$file][$ex]))
 -                {
 -                    if ($this->classesbyfile[$file][$ex]->ignore) return $ex;
 -                    return array($file,$ex);
 -                }
 -                // next check to see if there is only one package used in the file, try to resolve it that way
 -                if (isset($this->classpackagebyfile[$file]))
 -                {
 -                    if (count($this->classpackagebyfile[$file]) == 1)
 -                    {
 -                        for($i=0;$i<count($this->classesbynamefile[$ex]);$i++)
 -                        {
 -                            if ($this->classesbyfile[$this->classesbynamefile[$ex][$i]][$ex]->getPackage() == $this->classpackagebyfile[$file][0])
 -                            {
 -                                if ($this->classesbyfile[$this->classesbynamefile[$ex][$i]][$ex]->ignore) return $ex;
 -                                return array($this->classesbynamefile[$ex][$i],$ex);
 -                            }
 -                        }
 -                    }
 -                }
 -                // name conflict
 -                addWarning(PDERROR_INHERITANCE_CONFLICT, $class, $file, $ex);
 -                return $ex;
 -            }
 -        } else
 -        {
 -            addWarning(PDERROR_PARENT_NOT_FOUND, $class, $ex);
 -            return $ex;
 -        }
 -    }
 -    
 -    /**
 -     * Get a list of all root classes indexed by package.  Used to generate
 -     * class trees by {@link Converter}
 -     * @return array array(package => array(rootclassname, rootclassname,...),...)
 -     */
 -    function getRoots()
 -    {
 -        $roots = array();
 -        foreach($this->roots as $class => $files)
 -        {
 -            if (count($files))
 -            {
 -                foreach($files as $i => $boofou)
 -                {
 -                    $x = $this->getClass($class,$files[$i]);
 -                    $roots[$x->getPackage()][] = $class;
 -                }
 -            }
 -        }
 -        foreach($roots as $package => $root)
 -        {
 -            usort($roots[$package],"strnatcasecmp");
 -        }
 -        return $roots;
 -    }
 -    
 -    /**
 -     * Get all classes confirmed in parsing to be descended class $parclass in file $file
 -     * @return mixed either false if no children, or array of format
 -     *         array(childname => childfile,childname2 => childfile2,...)
 -     * @param string $parclass name of parent class
 -     * @param string $file file parent class is found in
 -     * @see parserClass::getChildClassList()
 -     * @uses $definitechild
 -     */
 -    function getDefiniteChildren($parclass,$file)
 -    {
 -        if (isset($this->definitechild[$parclass][$file])) return $this->definitechild[$parclass][$file];
 -        return false;
 -    }
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converter.inc b/buildscripts/PhpDocumentor/phpDocumentor/Converter.inc deleted file mode 100644 index 5b499d65..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converter.inc +++ /dev/null @@ -1,5189 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * Base class for all output converters.
 - * @package Converters
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: Converter.inc,v 1.5 2005/11/28 07:27:59 cellog Exp $
 - */
 -/**
 - * Smarty template files
 - */
 -include_once("phpDocumentor/Smarty-2.6.0/libs/Smarty.class.php");
 -/**
 - * Base class for all output converters.
 - *
 - * The Converter marks the final stage in phpDocumentor.  phpDocumentor works
 - * in this order:
 - *
 - * <pre>Parsing => Intermediate Parsing organization => Conversion to output</pre>
 - *
 - * A Converter takes output from the {@link phpDocumentor_IntermediateParser} and
 - * converts it to output.  With version 1.2, phpDocumentor includes a variety
 - * of output converters:
 - * <ul>
 - *  <li>{@link HTMLframesConverter}</li>
 - *  <li>{@link HTMLSmartyConverter}</li>
 - *  <li>{@link PDFdefaultConverter}</li>
 - *  <li>{@link CHMdefaultConverter}</li>
 - *  <li>{@link CSVdia2codeConverter}</li>
 - *  <li>{@link XMLDocBookConverter}</li>
 - * </ul>
 - * {@internal
 - * The converter takes output directly from {@link phpDocumentor_IntermediateParser}
 - * and using {@link walk()} or {@link walk_everything} (depending on the value of
 - * {@link $sort_absolutely_everything}) it "walks" over an array of phpDocumentor elements.}}
 - *
 - * @package Converters
 - * @abstract
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: Converter.inc,v 1.5 2005/11/28 07:27:59 cellog Exp $
 - */
 -class Converter
 -{
 -    /**
 -     * output format of this converter
 -     *
 -     * in Child converters, this will match the first part of the -o command-line
 -     * as in -o HTML:frames:default "HTML"
 -     * @tutorial phpDocumentor.howto.pkg#using.command-line.output
 -     * @var string
 -     */
 -    var $outputformat = 'Generic';
 -    /**
 -     * package name currently being converted
 -     * @var string
 -     */
 -    var $package = 'default';
 -    /**
 -     * subpackage name currently being converted
 -     * @var string
 -     */
 -    var $subpackage = '';
 -    /**
 -     * set to a classname if currently parsing a class, false if not
 -     * @var string|false
 -     */
 -    var $class = false;
 -    /**#@+
 -     * @access private
 -     */
 -    /**
 -     * the workhorse of linking.
 -     *
 -     * This array is an array of link objects of format:
 -     * [package][subpackage][eltype][elname] = descendant of {@link abstractLink}
 -     * eltype can be page|function|define|class|method|var
 -     * if eltype is method or var, the array format is:
 -     * [package][subpackage][eltype][class][elname]
 -     * @var array
 -     * @see functionLink, pageLink, classLink, defineLink, methodLink, varLink, globalLink
 -     */
 -    var $links = array();
 -
 -    /**
 -     * the workhorse of linking, with allowance for support of multiple
 -     * elements in different files.
 -     *
 -     * This array is an array of link objects of format:
 -     * [package][subpackage][eltype][file][elname] = descendant of {@link abstractLink}
 -     * eltype can be function|define|class|method|var
 -     * if eltype is method or var, the array format is:
 -     * [package][subpackage][eltype][file][class][elname]
 -     * @var array
 -     * @see functionLink, pageLink, classLink, defineLink, methodLink, varLink, globalLink
 -    */
 -    var $linkswithfile = array();
 -    /**#@-*/
 -    /**
 -     * set to value of -po commandline
 -     * @tutorial phpDocumentor.howto.pkg#using.command-line.packageoutput
 -     * @var mixed
 -     */
 -    var $package_output;
 -
 -    /**
 -     * name of current page being converted
 -     * @var string
 -     */
 -    var $page;
 -
 -    /**
 -     * path of current page being converted
 -     * @var string
 -     */
 -    var $path;
 -
 -    /**
 -     * template for the procedural page currently being processed
 -     * @var Smarty
 -     */
 -    var $page_data;
 -
 -    /**
 -     * template for the class currently being processed
 -     * @var Smarty
 -     */
 -    var $class_data;
 -
 -    /**
 -     * current procedural page being processed
 -     * @var parserPage
 -     */
 -    var $curpage;
 -    /**
 -     * alphabetical index of all elements sorted by package, subpackage, page,
 -     * and class.
 -     * @var array Format: array(package => array(subpackage => array('page'|'class' => array(path|classname => array(element, element,...)))))
 -     * @uses $sort_absolutely_everything if true, then $package_elements is used,
 -     *       otherwise, the {@link ParserData::$classelements} and
 -     *       {@link ParserData::$pageelements} variables are used
 -     */
 -    var $package_elements = array();
 -    /**
 -     * alphabetical index of all elements
 -     *
 -     * @var array Format: array(first letter of element name => array({@link parserElement} or {@link parserPage},...))
 -     * @see formatIndex(), HTMLframesConverter::formatIndex()
 -     */
 -    var $elements = array();
 -    /**
 -     * alphabetized index of procedural pages by package
 -     *
 -     * @see $leftindex
 -     * @var array Format: array(package => array(subpackage => array({@link pageLink} 1,{@link pageLink} 2,...)
 -     */
 -    var $page_elements = array();
 -    /**
 -     * alphabetized index of defines by package
 -     *
 -     * @see $leftindex
 -     * @var array Format: array(package => array(subpackage => array({@link defineLink} 1,{@link defineLink} 2,...)
 -     */
 -    var $define_elements = array();
 -    /**
 -     * alphabetized index of classes by package
 -     *
 -     * @see $leftindex
 -     * @var array Format: array(package => array(subpackage => array({@link classLink} 1,{@link classLink} 2,...)
 -     */
 -    var $class_elements = array();
 -    /**
 -     * alphabetized index of global variables by package
 -     *
 -     * @see $leftindex
 -     * @var array Format: array(package => array(subpackage => array({@link globalLink} 1,{@link globalLink} 2,...)
 -     */
 -    var $global_elements = array();
 -    /**
 -     * alphabetized index of functions by package
 -     *
 -     * @see $leftindex
 -     * @var array Format: array(package => array(subpackage => array({@link functionLink} 1,{@link functionLink} 2,...)
 -     */
 -    var $function_elements = array();
 -    /**
 -     * alphabetical index of all elements, indexed by package/subpackage
 -     *
 -     * @var array Format: array(first letter of element name => array({@link parserElement} or {@link parserPage},...))
 -     * @see formatPkgIndex(), HTMLframesConverter::formatPkgIndex()
 -     */
 -    var $pkg_elements = array();
 -
 -    /**
 -     * alphabetical index of all elements on a page by package/subpackage
 -     *
 -     * The page itself has a link under ###main
 -     * @var array Format: array(package => array(subpackage => array(path => array({@link abstractLink} descendant 1, ...)))
 -     * @see formatLeftIndex()
 -     */
 -    var $page_contents = array();
 -
 -    /**
 -     * This determines whether the {@link $page_contents} array should be sorted by element type as well as alphabetically by name
 -     * @see sortPageContentsByElementType()
 -     * @var boolean
 -     */
 -    var $sort_page_contents_by_type = false;
 -    /**
 -     * This is used if the content must be passed in the order it should be read, i.e. by package, procedural then classes
 -     *
 -     * This fixes bug 637921, and is used by {@link PDFdefaultConverter}
 -     */
 -    var $sort_absolutely_everything = false;
 -    /**
 -     * alphabetical index of all methods and vars in a class by package/subpackage
 -     *
 -     * The class itself has a link under ###main
 -     * @var array
 -     * Format:<pre>
 -     * array(package =>
 -     *       array(subpackage =>
 -     *             array(path =>
 -     *                   array(class =>
 -     *                         array({@link abstractLink} descendant 1, ...
 -     *                        )
 -     *                  )
 -     *            )
 -     *      )</pre>
 -     * @see formatLeftIndex()
 -     */
 -    var $class_contents = array();
 -    /**
 -     * controls processing of elements marked private with @access private
 -     *
 -     * defaults to false.  Set with command-line --parseprivate or -pp
 -     * @var bool
 -     */
 -    var $parseprivate;
 -    /**
 -     * controls display of progress information while parsing.
 -     *
 -     * defaults to false.  Set to true for cron jobs or other situations where no visual output is necessary
 -     * @var bool
 -     */
 -    var $quietmode;
 -
 -    /**
 -     * directory that output is sent to. -t command-line sets this.
 -     * @tutorial phpDocumentor.howto.pkg#using.command-line.target
 -     */
 -    var $targetDir = '';
 -
 -    /**
 -     * Directory that the template is in, relative to phpDocumentor root directory
 -     * @var string
 -     */
 -    var $templateDir = '';
 -
 -    /**
 -     * Directory that the smarty templates are in
 -     * @var string
 -     */
 -    var $smarty_dir = '';
 -
 -    /**
 -     * Name of the template, from last part of -o
 -     * @tutorial phpDocumentor.howto.pkg#using.command-line.output
 -     * @var string
 -     */
 -    var $templateName = '';
 -
 -    /**
 -     * full path of the current file being converted
 -     */
 -    var $curfile;
 -
 -    /**
 -     * All class information, organized by path, and by package
 -     * @var Classes
 -     */
 -    var $classes;
 -
 -    /**
 -     * Hierarchy of packages
 -     *
 -     * Every package that contains classes may have parent or child classes
 -     * in other packages.  In other words, this code is legal:
 -     *
 -     * <code>
 -     * /**
 -     *  * @package one
 -     *  * /
 -     * class one {}
 -     *
 -     * /**
 -     *  * @package two
 -     *  * /
 -     * class two extends one {}
 -     * </code>
 -     *
 -     * In this case, package one is a parent of package two
 -     * @var array
 -     * @see phpDocumentor_IntermediateParser::$package_parents
 -     */
 -    var $package_parents;
 -
 -    /**
 -     * Packages associated with categories
 -     *
 -     * Used by the XML:DocBook/peardoc2 converter, and available to others, to
 -     * group many packages into categories
 -     * @see phpDocumentor_IntermediateParser::$packagecategories
 -     * @var array
 -     */
 -    var $packagecategories;
 -
 -    /**
 -     * All packages encountered in parsing
 -     * @var array
 -     * @see phpDocumentor_IntermediateParser::$all_packages
 -     */
 -    var $all_packages;
 -
 -    /**
 -     * A list of files that have had source code generated
 -     * @var array
 -     */
 -    var $sourcePaths = array();
 -
 -    /**
 -     * Controls which of the one-element-only indexes are generated.
 -     *
 -     * Generation of these indexes for large packages is time-consuming.  This is an optimization feature.  An
 -     * example of how to use this is in {@link HTMLframesConverter::$leftindex}, and in {@link HTMLframesConverter::formatLeftIndex()}.
 -     * These indexes are intended for use as navigational aids through documentation, but can be used for anything by converters.
 -     * @see $class_elements, $page_elements, $function_elements, $define_elements, $global_elements
 -     * @see formatLeftIndex()
 -     * @var array
 -     */
 -    var $leftindex = array('classes' => true, 'pages' => true, 'functions' => true, 'defines' => true, 'globals' => true);
 -
 -    /** @access private */
 -    var $killclass = false;
 -    /**
 -     * @var string
 -     * @see phpDocumentor_IntermediateParser::$title
 -     */
 -    var $title = 'Generated Documentation';
 -
 -    /**
 -     * Options for each template, parsed from the options.ini file in the template base directory
 -     * @tutorial phpDocumentor/tutorials.pkg#conversion.ppage
 -     * @var array
 -     */
 -    var $template_options;
 -
 -    /**
 -     * Tutorials and Extended Documentation parsed from a tutorials/package[/subpackage] directory
 -     * @tutorial tutorials.pkg
 -     * @access private
 -     */
 -    var $tutorials = array();
 -
 -    /**
 -     * tree-format structure of tutorials and their child tutorials, if any
 -     * @var array
 -     * @access private
 -     */
 -    var $tutorial_tree = false;
 -
 -    /**
 -     * list of tutorials that have already been processed. Used by @link _setupTutorialTree()
 -     * @var array
 -     * @access private
 -     */
 -    var $processed_tutorials;
 -
 -    /**
 -     * List of all @todo tags and a link to the element with the @todo
 -     *
 -     * Format: array(package => array(link to element, array(todo {@link parserTag},...)),...)
 -     * @tutorial tags.todo.pkg
 -     * @var array
 -     */
 -    var $todoList = array();
 -
 -    /**
 -     * Initialize Converter data structures
 -     * @param array {@link $all_packages} value
 -     * @param array {@link $package_parents} value
 -     * @param Classes {@link $classes} value
 -     * @param ProceduralPages {@link $proceduralpages} value
 -     * @param array {@link $package_output} value
 -     * @param boolean {@link $parseprivate} value
 -     * @param boolean {@link $quietmode} value
 -     * @param string {@link $targetDir} value
 -     * @param string {@link $templateDir} value
 -     * @param string (@link $title} value
 -     */
 -    function Converter(&$allp, &$packp, &$classes, &$procpages, $po, $pp, $qm, $targetDir, $template, $title)
 -    {
 -        $this->all_packages = $allp;
 -        $this->package_parents = $packp;
 -        $this->package = $GLOBALS['phpDocumentor_DefaultPackageName'];
 -        $this->proceduralpages = &$procpages;
 -        $this->package_output = $po;
 -        if (is_array($po))
 -        {
 -            $a = $po[0];
 -            $this->all_packages = array_flip($po);
 -            $this->all_packages[$a] = 1;
 -        }
 -        $this->parseprivate = $pp;
 -        $this->quietmode = $qm;
 -        $this->classes = &$classes;
 -        $this->roots = $classes->getRoots();
 -        $this->title = $title;
 -        $this->setTemplateDir($template);
 -        $this->setTargetdir($targetDir);
 -    }
 -
 -    /**
 -     * Called by IntermediateParser after creation
 -     * @access private
 -     */
 -    function setTutorials($tutorials)
 -    {
 -        $this->tutorials = $tutorials;
 -    }
 -
 -    /**
 -     * @param pkg|cls|proc the tutorial type to search for
 -     * @param tutorial name
 -     * @param string package name
 -     * @param string subpackage name, if any
 -     * @return false|parserTutorial if the tutorial exists, return it
 -     */
 -    function hasTutorial($type, $name, $package, $subpackage = '')
 -    {
 -        if (isset($this->tutorials[$package][$subpackage][$type][$name . '.' . $type]))
 -            return $this->tutorials[$package][$subpackage][$type][$name . '.' . $type];
 -        return false;
 -    }
 -
 -    /**
 -     * Called by {@link walk()} while converting, when the last class element
 -     * has been parsed.
 -     *
 -     * A Converter can use this method in any way it pleases. HTMLframesConverter
 -     * uses it to complete the template for the class and to output its
 -     * documentation
 -     * @see HTMLframesConverter::endClass()
 -     * @abstract
 -     */
 -    function endClass()
 -    {
 -    }
 -
 -    /**
 -    * Called by {@link walk()} while converting, when the last procedural page
 -    * element has been parsed.
 -    *
 -    * A Converter can use this method in any way it pleases. HTMLframesConverter
 -    * uses it to complete the template for the procedural page and to output its
 -    * documentation
 -    * @see HTMLframesConverter::endClass()
 -    * @abstract
 -    */
 -    function endPage()
 -    {
 -    }
 -
 -    /**
 -    * Called by {@link walk()} while converting.
 -    *
 -    * This method is intended to be the place that {@link $pkg_elements} is
 -    * formatted for output.
 -    * @see HTMLframesConverter::formatPkgIndex()
 -    * @abstract
 -    */
 -    function formatPkgIndex()
 -    {
 -    }
 -
 -    /**
 -    * Called by {@link walk()} while converting.
 -    *
 -    * This method is intended to be the place that {@link $elements} is
 -    * formatted for output.
 -    * @see HTMLframesConverter::formatIndex()
 -    * @abstract
 -    */
 -    function formatIndex()
 -    {
 -    }
 -
 -    /**
 -    * Called by {@link walk()} while converting.
 -    *
 -    * This method is intended to be the place that any of
 -    * {@link $class_elements, $function_elements, $page_elements},
 -    * {@link $define_elements}, and {@link $global_elements} is formatted for
 -    * output, depending on the value of {@link $leftindex}
 -    * @see HTMLframesConverter::formatLeftIndex()
 -    * @abstract
 -    */
 -    function formatLeftIndex()
 -    {
 -    }
 -
 -    /**
 -     * Called by {@link parserSourceInlineTag::stringConvert()} to allow
 -     * converters to format the source code the way they'd like.
 -     *
 -     * default returns it unchanged (html with xhtml tags)
 -     * @param string output from highlight_string() - use this function to
 -     * reformat the returned data for Converter-specific output
 -     * @return string
 -     * @deprecated in favor of tokenizer-based highlighting.  This will be
 -     *             removed for 2.0
 -     */
 -    function unmangle($sourcecode)
 -    {
 -        return $sourcecode;
 -    }
 -
 -    /**
 -     * Initialize highlight caching
 -     */
 -    function startHighlight()
 -    {
 -        $this->_highlightCache = array(false, false);
 -        $this->_appendHighlight = '';
 -    }
 -
 -    function getHighlightState()
 -    {
 -        return $this->_highlightCache;
 -    }
 -
 -    function _setHighlightCache($type, $token)
 -    {
 -        $test = ($this->_highlightCache[0] === $type && $this->_highlightCache[1] == $token);
 -        if (!$test) {
 -            $this->_appendHighlight = $this->flushHighlightCache();
 -        } else {
 -            $this->_appendHighlight = '';
 -        }
 -        $this->_highlightCache = array($type, $token);
 -        return $test;
 -    }
 -
 -    /**
 -     * Return the close text for the current token
 -     * @return string
 -     */
 -    function flushHighlightCache()
 -    {
 -        $hc = $this->_highlightCache;
 -        $this->_highlightCache = array(false, false);
 -        if ($hc[0]) {
 -            if (!isset($this->template_options[$hc[0]]['/'.$hc[1]])) {
 -                return '';
 -            }
 -    		return $this->template_options[$hc[0]]['/'.$hc[1]];
 -        }
 -        return '';
 -    }
 -
 -    /**
 -     * Used to allow converters to format the source code the way they'd like.
 -     *
 -     * default returns it unchanged.  Mainly used by the {@link HighlightParser}
 -     * {@internal
 -     * The method takes information from options.ini, the template options
 -     * file, specifically the [highlightSourceTokens] and [highlightSource]
 -     * sections, and uses them to enclose tokens.
 -     *
 -     * {@source}}}
 -     * @param integer token value from {@link PHP_MANUAL#tokenizer tokenizer constants}
 -     * @param string contents of token
 -     * @param boolean whether the contents are preformatted or need modification
 -     * @return string
 -     */
 -    function highlightSource($token, $word, $preformatted = false)
 -    {
 -        if ($token !== false)
 -        {
 -            if (!$preformatted) $word = $this->postProcess($word);
 -            if (isset($this->template_options['highlightSourceTokens'][token_name($token)]))
 -            {
 -                if ($this->_setHighlightCache('highlightSourceTokens', token_name($token))) {
 -                    return $word;
 -                }
 -                $e = $this->_appendHighlight;
 -                return $e . $this->template_options['highlightSourceTokens'][token_name($token)] . $word;
 -            } else
 -            {
 -                $this->_setHighlightCache(false, false);
 -                $e = $this->_appendHighlight;
 -                return $e . $word;
 -            }
 -        } else
 -        {
 -            if (isset($this->template_options['highlightSource'][$word]))
 -            {
 -                $newword = ($preformatted ? $word : $this->postProcess($word));
 -                if ($this->_setHighlightCache('highlightSource', $word)) {
 -                    return $newword;
 -                }
 -                $e = $this->_appendHighlight;
 -                return $e . $this->template_options['highlightSource'][$word] . $newword;
 -            } else
 -            {
 -                $this->_setHighlightCache(false, false);
 -                $e = $this->_appendHighlight;
 -                return $e . ($preformatted ? $word : $this->postProcess($word));
 -            }
 -        }
 -    }
 -
 -    /**
 -     * Used to allow converters to format the source code of DocBlocks the way
 -     * they'd like.
 -     *
 -     * default returns it unchanged.  Mainly used by the {@link HighlightParser}
 -     * {@internal
 -     * The method takes information from options.ini, the template options
 -     * file, specifically the [highlightDocBlockSourceTokens] section, and uses
 -     * it to enclose tokens.
 -     *
 -     * {@source}}}
 -     * @param string name of docblock token type
 -     * @param string contents of token
 -     * @param boolean whether the contents are preformatted or need modification
 -     * @return string
 -     */
 -    function highlightDocBlockSource($token, $word, $preformatted = false)
 -    {
 -        if (empty($word)) {
 -            $this->_setHighlightCache(false, false);
 -            $e = $this->_appendHighlight;
 -            return $e . $word;
 -        }
 -        if (isset($this->template_options['highlightDocBlockSourceTokens'][$token]))
 -        {
 -            if (!$preformatted) $word = $this->postProcess($word);
 -            if ($this->_setHighlightCache('highlightDocBlockSourceTokens', $token)) {
 -                return $word;
 -            }
 -            $e = $this->_appendHighlight;
 -            return $e . $this->template_options['highlightDocBlockSourceTokens'][$token] . $word;
 -        } else {
 -            $this->_setHighlightCache(false, false);
 -            $e = $this->_appendHighlight;
 -            return $e . ($preformatted ? $word : $this->postProcess($word));
 -        }
 -    }
 -
 -    /**
 -     * Used to allow converters to format the source code of DocBlocks the way
 -     * they'd like.
 -     *
 -     * default returns it unchanged.  Mainly used by the {@link HighlightParser}
 -     * {@internal
 -     * The method takes information from options.ini, the template options
 -     * file, specifically the [highlightDocBlockSourceTokens] section, and uses
 -     * it to enclose tokens.
 -     *
 -     * {@source}}}
 -     * @param string name of docblock token type
 -     * @param string contents of token
 -     * @param boolean whether the contents are preformatted or need modification
 -     * @return string
 -     */
 -    function highlightTutorialSource($token, $word, $preformatted = false)
 -    {
 -        if (empty($word)) {
 -            $this->_setHighlightCache(false, false);
 -            $e = $this->_appendHighlight;
 -            return $e . $word;
 -        }
 -        if (isset($this->template_options['highlightTutorialSourceTokens'][$token]))
 -        {
 -            if (!$preformatted) $word = $this->postProcess($word);
 -            if ($this->_setHighlightCache('highlightTutorialSourceTokens', $token)) {
 -                return $word;
 -            }
 -            $e = $this->_appendHighlight;
 -            return $e . $this->template_options['highlightTutorialSourceTokens'][$token] . $word;
 -        } else {
 -            $this->_setHighlightCache(false, false);
 -            $e = $this->_appendHighlight;
 -            return $e . ($preformatted ? $word : $this->postProcess($word));
 -        }
 -    }
 -
 -    /**
 -     * Called by {@link parserReturnTag::Convert()} to allow converters to
 -     * change type names to desired formatting
 -     *
 -     * Used by {@link XMLDocBookConverter::type_adjust()} to change true and
 -     * false to the peardoc2 values
 -     * @param string
 -     * @return string
 -     */
 -    function type_adjust($typename)
 -    {
 -        return $typename;
 -    }
 -
 -    /**
 -     * Used to convert the {@}example} inline tag in a docblock.
 -     *
 -     * By default, this just wraps ProgramExample
 -     * @see XMLDocBookpeardoc2Converter::exampleProgramExample
 -     * @param string
 -     * @param boolean true if this is to highlight a tutorial <programlisting>
 -     * @return string
 -     */
 -    function exampleProgramExample($example, $tutorial = false, $inlinesourceparse = null/*false*/,
 -                            $class = null/*false*/, $linenum = null/*false*/, $filesourcepath = null/*false*/)
 -    {
 -        return $this->ProgramExample($example, $tutorial, $inlinesourceparse, $class, $linenum, $filesourcepath);
 -    }
 -
 -    /**
 -     * Used to convert the <<code>> tag in a docblock
 -     * @param string
 -     * @param boolean true if this is to highlight a tutorial <programlisting>
 -     * @return string
 -     */
 -    function ProgramExample($example, $tutorial = false, $inlinesourceparse = null/*false*/,
 -                            $class = null/*false*/, $linenum = null/*false*/, $filesourcepath = null/*false*/)
 -    {
 -        if (tokenizer_ext)
 -        {
 -            $e = $example;
 -            if (!is_array($example))
 -            {
 -                $obj = new phpDocumentorTWordParser;
 -                $obj->setup($example);
 -                $e = $obj->getFileSource();
 -                if (!isset($e[0]) || !is_array($e[0][0]) || $e[0][0][0] != T_OPEN_TAG)
 -                {
 -                    $example = "<?php\n".$example;
 -                    $obj->setup($example);
 -                    $e = $obj->getFileSource();
 -                    unset($e[0]);
 -                    $e = array_values($e);
 -                }
 -                unset($obj);
 -            }
 -            $saveclass = $this->class;
 -            $parser = new phpDocumentor_HighlightParser;
 -            if (!isset($inlinesourceparse))
 -            {
 -                $example = $parser->parse($e, $this, true); // force php mode
 -            } else
 -            {
 -                if (isset($filesourcepath))
 -                {
 -                    $example = $parser->parse($e, $this, $inlinesourceparse, $class, $linenum, $filesourcepath);
 -                } elseif (isset($linenum))
 -                {
 -                    $example = $parser->parse($e, $this, $inlinesourceparse, $class, $linenum);
 -                } elseif (isset($class))
 -                {
 -                    $example = $parser->parse($e, $this, $inlinesourceparse, $class);
 -                } else
 -                {
 -                    $example = $parser->parse($e, $this, $inlinesourceparse);
 -                }
 -            }
 -            $this->class = $saveclass;
 -        } else
 -        {
 -            $example = $this->postProcess($example);
 -        }
 -
 -        if ($tutorial)
 -        {
 -            return $example;
 -        }
 -
 -        if (!isset($this->template_options['desctranslate'])) return $example;
 -        if (!isset($this->template_options['desctranslate']['code'])) return $example;
 -        $example = $this->template_options['desctranslate']['code'] . $example;
 -        if (!isset($this->template_options['desctranslate']['/code'])) return $example;
 -        return $example . $this->template_options['desctranslate']['/code'];
 -    }
 -
 -    /**
 -     * @param string
 -     */
 -    function TutorialExample($example)
 -    {
 -        $parse = new phpDocumentor_TutorialHighlightParser;
 -        return $parse->parse($example, $this);
 -    }
 -
 -    /**
 -     * Used to convert the contents of <<li>> in a docblock
 -     * @param string
 -     * @return string
 -     */
 -    function ListItem($item)
 -    {
 -        if (!isset($this->template_options['desctranslate'])) return $item;
 -        if (!isset($this->template_options['desctranslate']['li'])) return $item;
 -        $item = $this->template_options['desctranslate']['li'] . $item;
 -        if (!isset($this->template_options['desctranslate']['/li'])) return $item;
 -        return $item . $this->template_options['desctranslate']['/li'];
 -    }
 -
 -    /**
 -     * Used to convert the contents of <<ol>> or <<ul>> in a docblock
 -     * @param string
 -     * @return string
 -     */
 -    function EncloseList($list,$ordered)
 -    {
 -        $listname = ($ordered ? 'ol' : 'ul');
 -        if (!isset($this->template_options['desctranslate'])) return $list;
 -        if (!isset($this->template_options['desctranslate'][$listname])) return $list;
 -        $list = $this->template_options['desctranslate'][$listname] . $list;
 -        if (!isset($this->template_options['desctranslate']['/'.$listname])) return $list;
 -        return $list . $this->template_options['desctranslate']['/'.$listname];
 -    }
 -
 -    /**
 -     * Used to convert the contents of <<pre>> in a docblock
 -     * @param string
 -     * @return string
 -     */
 -    function PreserveWhiteSpace($string)
 -    {
 -        if (!isset($this->template_options['desctranslate'])) return $string;
 -        if (!isset($this->template_options['desctranslate']['pre'])) return $string;
 -        $string = $this->template_options['desctranslate']['pre'] . $string;
 -        if (!isset($this->template_options['desctranslate']['/pre'])) return $string;
 -        return $string . $this->template_options['desctranslate']['/pre'];
 -    }
 -
 -    /**
 -     * Used to enclose a paragraph in a docblock
 -     * @param string
 -     * @return string
 -     */
 -    function EncloseParagraph($para)
 -    {
 -        if (!isset($this->template_options['desctranslate'])) return $para;
 -        if (!isset($this->template_options['desctranslate']['p'])) return $para;
 -        $para = $this->template_options['desctranslate']['p'] . $para;
 -        if (!isset($this->template_options['desctranslate']['/p'])) return $para;
 -        return $para . $this->template_options['desctranslate']['/p'];
 -    }
 -
 -    /**
 -     * Used to convert the contents of <<b>> in a docblock
 -     * @param string
 -     * @return string
 -     */
 -    function Bolden($para)
 -    {
 -        if (!isset($this->template_options['desctranslate'])) return $para;
 -        if (!isset($this->template_options['desctranslate']['b'])) return $para;
 -        $para = $this->template_options['desctranslate']['b'] . $para;
 -        if (!isset($this->template_options['desctranslate']['/b'])) return $para;
 -        return $para . $this->template_options['desctranslate']['/b'];
 -    }
 -
 -    /**
 -     * Used to convert the contents of <<i>> in a docblock
 -     * @param string
 -     * @return string
 -     */
 -    function Italicize($para)
 -    {
 -        if (!isset($this->template_options['desctranslate'])) return $para;
 -        if (!isset($this->template_options['desctranslate']['i'])) return $para;
 -        $para = $this->template_options['desctranslate']['i'] . $para;
 -        if (!isset($this->template_options['desctranslate']['/i'])) return $para;
 -        return $para . $this->template_options['desctranslate']['/i'];
 -    }
 -
 -    /**
 -     * Used to convert the contents of <<var>> in a docblock
 -     * @param string
 -     * @return string
 -     */
 -    function Varize($para)
 -    {
 -        if (!isset($this->template_options['desctranslate'])) return $para;
 -        if (!isset($this->template_options['desctranslate']['var'])) return $para;
 -        $para = $this->template_options['desctranslate']['var'] . $para;
 -        if (!isset($this->template_options['desctranslate']['/var'])) return $para;
 -        return $para . $this->template_options['desctranslate']['/var'];
 -    }
 -
 -    /**
 -     * Used to convert the contents of <<kbd>> in a docblock
 -     * @param string
 -     * @return string
 -     */
 -    function Kbdize($para)
 -    {
 -        if (!isset($this->template_options['desctranslate'])) return $para;
 -        if (!isset($this->template_options['desctranslate']['kbd'])) return $para;
 -        $para = $this->template_options['desctranslate']['kbd'] . $para;
 -        if (!isset($this->template_options['desctranslate']['/kbd'])) return $para;
 -        return $para . $this->template_options['desctranslate']['/kbd'];
 -    }
 -
 -    /**
 -     * Used to convert the contents of <<samp>> in a docblock
 -     * @param string
 -     * @return string
 -     */
 -    function Sampize($para)
 -    {
 -        if (!isset($this->template_options['desctranslate'])) return $para;
 -        if (!isset($this->template_options['desctranslate']['samp'])) return $para;
 -        $para = $this->template_options['desctranslate']['samp'] . $para;
 -        if (!isset($this->template_options['desctranslate']['/samp'])) return $para;
 -        return $para . $this->template_options['desctranslate']['/samp'];
 -    }
 -
 -    /**
 -     * Used to convert <<br>> in a docblock
 -     * @param string
 -     * @return string
 -     */
 -    function Br($para)
 -    {
 -        if (!isset($this->template_options['desctranslate'])) return $para;
 -        if (!isset($this->template_options['desctranslate']['br'])) return $para;
 -        $para = $this->template_options['desctranslate']['br'] . $para;
 -        return $para;
 -    }
 -
 -    /**
 -     * This version does nothing
 -     *
 -     * Perform necessary post-processing of string data.  For example, the HTML
 -     * Converters should escape < and > to become < and >
 -     * @return string
 -     */
 -    function postProcess($text)
 -    {
 -        return $text;
 -    }
 -
 -    /**
 -     * Creates a table of contents for a {@}toc} inline tag in a tutorial
 -     *
 -     * This function should return a formatted table of contents.  By default, it
 -     * does nothing, it is up to the converter to format the TOC
 -     * @abstract
 -     * @return string table of contents formatted for use in the current output format
 -     * @param array format: array(array('tagname' => section, 'link' => returnsee link, 'id' => anchor name, 'title' => from title tag),...)
 -     */
 -    function formatTutorialTOC($toc)
 -    {
 -        return '';
 -    }
 -
 -    /**
 -     * Write out the formatted source code for a php file
 -     *
 -     * This function provides the primary functionality for the
 -     * {@tutorial tags.filesource.pkg} tag.
 -     * @param string full path to the file
 -     * @param string fully highlighted/linked source code of the file
 -     * @abstract
 -     */
 -    function writeSource($filepath, $source)
 -    {
 -        debug($source);
 -        return;
 -    }
 -
 -    /**
 -     * Write out the formatted source code for an example php file
 -     *
 -     * This function provides the primary functionality for the
 -     * {@tutorial tags.example.pkg} tag.
 -     * @param string example title
 -     * @param string example filename (no path)
 -     * @param string fully highlighted/linked source code of the file
 -     * @abstract
 -     */
 -    function writeExample($title, $path, $source)
 -    {
 -        return;
 -    }
 -
 -    /** Translate the path info into a unique file name for the highlighted
 -     * source code.
 -     * @param string $pathinfo
 -     * @return string
 -     */
 -    function getFileSourceName($path)
 -    {
 -        global $_phpDocumentor_options;
 -        $pathinfo = $this->proceduralpages->getPathInfo($path, $this);
 -        $pathinfo['source_loc'] = str_replace($_phpDocumentor_options['Program_Root'].'/','',$pathinfo['source_loc']);
 -        $pathinfo['source_loc'] = str_replace('/','_',$pathinfo['source_loc']);
 -        return "fsource_{$pathinfo['package']}_{$pathinfo['subpackage']}_{$pathinfo['source_loc']}";
 -    }
 -
 -    /** Return the fixed path to the source-code file folder.
 -     * @param string $base Path is relative to this folder
 -     * @return string
 -     */
 -    function getFileSourcePath($base)
 -    {
 -        if (substr($base, -1) != PATH_DELIMITER) {
 -            $base .= PATH_DELIMITER;
 -        }
 -        return $base . '__filesource';
 -    }
 -
 -    /** Return the path to the current
 -     * @param string $pathinfo
 -     * @return string
 -     */
 -    function getCurrentPageURL()
 -    {
 -        return '{$srcdir}' . PATH_DELIMITER . $this->page_dir;
 -    }
 -
 -    /**
 -     * @return string an output-format dependent link to phpxref-style highlighted
 -     * source code
 -     * @abstract
 -     */
 -    function getSourceLink($path)
 -    {
 -        return '';
 -    }
 -
 -    /**
 -     * @return string Link to the current page being parsed.
 -     * Should return {@link $curname} and a converter-specific extension.
 -     * @abstract
 -     */
 -    function getCurrentPageLink()
 -    {
 -    }
 -
 -    /**
 -     * Return a line of highlighted source code with formatted line number
 -     *
 -     * If the $path is a full path, then an anchor to the line number will be
 -     * added as well
 -     * @param integer line number
 -     * @param string highlighted source code line
 -     * @param false|string full path to @filesource file this line is a part of,
 -     *        if this is a single line from a complete file.
 -     * @return string formatted source code line with line number
 -     */
 -    function sourceLine($linenumber, $line, $path = false)
 -    {
 -        if ($path)
 -        {
 -            return $this->getSourceAnchor($path, $linenumber) .
 -                   $this->Br(sprintf('%-6u',$linenumber).str_replace("\n",'',$line));
 -        } else
 -        {
 -            return $this->Br(sprintf('%-6u',$linenumber).str_replace("\n",'',$line));
 -        }
 -    }
 -
 -    /**
 -     * Determine whether an element's file has generated source code, used for
 -     * linking to line numbers of source.
 -     *
 -     * Wrapper for {@link $sourcePaths} in this version
 -     * @param string full path to the source code file
 -     * @return boolean
 -     */
 -    function hasSourceCode($path)
 -    {
 -        return isset($this->sourcePaths[$path]);
 -    }
 -
 -    /**
 -     * Mark a file as having had source code highlighted
 -     * @param string full path of source file
 -     */
 -    function setSourcePaths($path)
 -    {
 -        $this->sourcePaths[$path] = true;
 -    }
 -
 -    /**
 -     * Used to translate an XML DocBook entity like ” from a tutorial by
 -     * reading the options.ini file for the template.
 -     * @param string entity name
 -     */
 -    function TranslateEntity($name)
 -    {
 -        if (!isset($this->template_options['ppage']))
 -        {
 -            if (!$this->template_options['preservedocbooktags'])
 -            return '';
 -            else
 -            return '&'.$name.';';
 -        }
 -        if (isset($this->template_options['ppage']['&'.$name.';']))
 -        {
 -            return $this->template_options['ppage']['&'.$name.';'];
 -        } else
 -        {
 -            if (!$this->template_options['preservedocbooktags'])
 -            return '';
 -            else
 -            return '&'.$name.';';
 -        }
 -    }
 -
 -    /**
 -     * Used to translate an XML DocBook tag from a tutorial by reading the
 -     * options.ini file for the template.
 -     * @param string tag name
 -     * @param string any attributes Format: array(name => value)
 -     * @param string the tag contents, if any
 -     * @param string the tag contents, if any, unpost-processed
 -     * @return string
 -     */
 -    function TranslateTag($name,$attr,$cdata,$unconvertedcdata)
 -    {
 -        if (!isset($this->template_options['ppage']))
 -        {
 -            if (!$this->template_options['preservedocbooktags'])
 -            return $cdata;
 -            else
 -            return '<'.$name.$this->AttrToString($name,$attr,true).'>'.$cdata.'</'.$name.'>'."\n";
 -        }
 -        // make sure this template transforms the tag into something
 -        if (isset($this->template_options['ppage'][$name]))
 -        {
 -            // test for global attribute transforms like $attr$role = class, changing
 -            // all role="*" attributes to class="*" in html, for example
 -            foreach($attr as $att => $val)
 -            {
 -                if (isset($this->template_options['$attr$'.$att]))
 -                {
 -                    $new = '';
 -                    if (!isset($this->template_options['$attr$'.$att]['close']))
 -                    {
 -                        $new .= '<'.$this->template_options['$attr$'.$att]['open'];
 -                        if (isset($this->template_options['$attr$'.$att]['cdata!']))
 -                        {
 -                            if (isset($this->template_options['$attr$'.$att]['separateall']))
 -                            $new .= $this->template_options['$attr$'.$att]['separator'];
 -                            else
 -                            $new .= ' ';
 -                            $new .= $this->template_options['$attr$'.$att]['$'.$att];
 -                            $new .= $this->template_options['$attr$'.$att]['separator'];
 -                            if ($this->template_options['$attr$'.$att]['quotevalues']) $val = '"'.$val.'"';
 -                            $new .= $val.'>';
 -                        } else
 -                        {
 -                            $new .= '>'.$val;
 -                        }
 -                        $new .= '</'.$this->template_options['$attr$'.$att]['open'].'>';
 -                    } else
 -                    {
 -                        $new .= $this->template_options['$attr$'.$att]['open'] . $val . $this->template_options['$attr$'.$att]['close'];
 -                    }
 -                    unset($attr[$att]);
 -                    $cdata = $new . $cdata;
 -                }
 -            }
 -
 -            if (!isset($this->template_options['ppage']['/'.$name]))
 -            {// if the close tag isn't specified, we put opening and closing tags around it, with translated attributes
 -                if (isset($this->template_options['ppage'][$name.'/']))
 -                $cdata = '<'.$this->template_options['ppage'][$name].$this->AttrToString($name,$attr).'/>' . $cdata;
 -                else
 -                $cdata = '<'.$this->template_options['ppage'][$name].$this->AttrToString($name,$attr).'>' . $cdata .
 -                         '</'.$this->template_options['ppage'][$name].'>';
 -            } else
 -            { // if close tag is specified, use the open and close as literal
 -                if ($name == 'programlisting' && isset($attr['role']) &&
 -                      ($attr['role'] == 'php' || $attr['role'] == 'tutorial' || $attr['role'] == 'html'))
 -                { // highlight PHP source
 -//                    var_dump($unconvertedcdata, $cdata);exit;
 -                    if ($attr['role'] == 'php') {
 -                        $cdata = $this->ProgramExample($unconvertedcdata, true);
 -                    } elseif ($attr['role'] == 'tutorial') {
 -                        $cdata = $this->TutorialExample($unconvertedcdata);
 -                    } elseif ($attr['role'] == 'html') {
 -                        $cdata = $unconvertedcdata;
 -                    }
 -                } else
 -                {// normal case below
 -                    $cdata = $this->template_options['ppage'][$name].$this->AttrToString($name,$attr). $cdata .$this->template_options['ppage']['/'.$name];
 -                }
 -            }
 -            return $cdata;
 -        } else
 -        {
 -            if ($this->template_options['preservedocbooktags'])
 -            {
 -                return '<'.$name.$this->AttrToString($name,$attr,true).'>' . $cdata .
 -                         '</'.$name.'>'."\n";
 -            } else
 -            {
 -                return $cdata;
 -            }
 -        }
 -    }
 -
 -    /**
 -     * Convert the attribute of a Tutorial docbook tag's attribute list
 -     * to a string based on the template options.ini
 -     * @param string tag name
 -     * @param attribute array
 -     * @param boolean if true, returns attrname="value"...
 -     * @return string
 -     */
 -    function AttrToString($tag,$attr,$unmodified = false)
 -    {
 -        $ret = '';
 -        if ($unmodified)
 -        {
 -            $ret = ' ';
 -            foreach($attr as $n => $v)
 -            {
 -                $ret .= $n.' = "'.$v.'"';
 -            }
 -            return $ret;
 -        }
 -        // no_attr tells us to ignore all attributes
 -        if (isset($this->template_options['no_attr'])) return $ret;
 -        // tagname! tells us to ignore all attributes for this tag
 -        if (isset($this->template_options['ppage'][$tag.'!'])) return $ret;
 -        if (count($attr)) $ret = ' ';
 -        // pass 1, check to see if any attributes add together
 -        $same = array();
 -        foreach($attr as $n => $v)
 -        {
 -            if (isset($this->template_options['ppage'][$tag.'->'.$n]))
 -            {
 -                $same[$this->template_options['ppage'][$tag.'->'.$n]][] = $n;
 -            }
 -        }
 -        foreach($attr as $n => $v)
 -        {
 -            if (isset($this->template_options['ppage'][$tag.'->'.$n]))
 -            {
 -                if (count($same[$this->template_options['ppage'][$tag.'->'.$n]]) == 1)
 -                { // only 1 attribute translated for this one
 -                    // this is useful for equivalent value names
 -                    if (isset($this->template_options['ppage'][$tag.'->'.$n.'+'.$v])) $v = $this->template_options['ppage'][$tag.'->'.$n.'+'.$v];
 -                } else
 -                { // more than 1 attribute combines to make the new attribute
 -                    $teststrtemp = array();
 -                    foreach($same[$this->template_options['ppage'][$tag.'->'.$n]] as $oldattr)
 -                    {
 -                        $teststrtemp[] = $oldattr.'+'.$attr[$oldattr];
 -                    }
 -                    $teststrs = array();
 -                    $num = count($same[$this->template_options['ppage'][$tag.'->'.$n]]);
 -                    for($i=0;$i<$num;$i++)
 -                    {
 -                        $started = false;
 -                        $a = '';
 -                        for($j=$i;!$started || $j != $i;$j = ($j + $i) % $num)
 -                        {
 -                            if (!empty($a)) $a .= '|';
 -                            $a .= $teststrtemp[$j];
 -                        }
 -                        $teststrs[$i] = $a;
 -                    }
 -                    $done = false;
 -                    foreach($teststrs as $test)
 -                    {
 -                        if ($done) break;
 -                        if (isset($this->template_options['ppage'][$tag.'->'.$test]))
 -                        {
 -                            $done = true;
 -                            $v = $this->template_options['ppage'][$tag.'->'.$test];
 -                        }
 -                    }
 -                }
 -                $ret .= $this->template_options['ppage'][$tag.'->'.$n].' = "'.$v.'"';
 -            } else
 -            {
 -                if (!isset($this->template_options['ppage'][$tag.'!'.$n]))
 -                {
 -                    if (isset($this->template_options['ppage']['$attr$'.$n]))
 -                    $ret .= $this->template_options['ppage']['$attr$'.$n].' = "'.$v.'"';
 -                    else
 -                    $ret .= $n.' = "'.$v.'"';
 -                }
 -            }
 -        }
 -        return $ret;
 -    }
 -
 -    /**
 -     * Convert the title of a Tutorial docbook tag section
 -     * to a string based on the template options.ini
 -     * @param string tag name
 -     * @param array
 -     * @param string title text
 -     * @param string
 -     * @return string
 -     */
 -    function ConvertTitle($tag,$attr,$title,$cdata)
 -    {
 -        if (!isset($this->template_options[$tag.'_title'])) return array($attr,$title.$cdata);
 -        if (isset($this->template_options[$tag.'_title']['tag_attr']))
 -        {
 -            $attr[$this->template_options[$tag.'_title']['tag_attr']] = urlencode($cdata);
 -            $cdata = '';
 -        } elseif(isset($this->template_options[$tag.'_title']['cdata_start']))
 -        {
 -            $cdata = $this->template_options[$tag.'_title']['open'] . $title .
 -                     $this->template_options[$tag.'_title']['close'] . $cdata;
 -        } else $cdata = $title.$cdata;
 -        return array($attr,$cdata);
 -    }
 -
 -    /**
 -     * Return a converter-specific id to distinguish tutorials and their
 -     * sections
 -     *
 -     * Used by {@}id}
 -     * @return string
 -     */
 -    function getTutorialId($package,$subpackage,$tutorial,$id)
 -    {
 -        return $package.$subpackage.$tutorial.$id;
 -    }
 -
 -    /**
 -     * Create the {@link $elements, $pkg_elements} and {@link $links} arrays
 -     * @access private
 -     * @todo version 2.0 - faulty package_output logic should be removed
 -     *
 -     *       in this version, if the parent file isn't in the package, all
 -     *       the procedural elements are simply shunted to another package!
 -     */
 -    function _createPkgElements(&$pages)
 -    {
 -        if (empty($this->elements))
 -        {
 -            $this->elements = array();
 -            $this->pkg_elements = array();
 -            $this->links = array();
 -            phpDocumentor_out('Building indexes...');
 -            flush();
 -            foreach($pages as $j => $flub)
 -            {
 -                $this->package = $pages[$j]->parent->package;
 -                $this->subpackage = $pages[$j]->parent->subpackage;
 -                $this->class = false;
 -                $this->curfile = $pages[$j]->parent->getFile();
 -                $this->curname = $this->getPageName($pages[$j]->parent);
 -                $this->curpath = $pages[$j]->parent->getPath();
 -                $use = true;
 -                if ($this->package_output)
 -                {
 -                    if (in_array($this->package,$this->package_output))
 -                    {
 -                        $this->addElement($pages[$j]->parent,$pages[$j]);
 -                    } else
 -                    {
 -                        if (count($pages[$j]->classelements))
 -                        {
 -                            list(,$pages[$j]->parent->package) = each($this->package_output);
 -                            reset($this->package_output);
 -                            $pages[$j]->parent->subpackage = '';
 -                            $this->addElement($pages[$j]->parent,$pages[$j]);
 -                        } else
 -                        {
 -                            unset($pages[$j]);
 -                            continue;
 -                        }
 -                    }
 -                } else
 -                {
 -                    $this->addElement($pages[$j]->parent,$pages[$j]);
 -                }
 -                if ($use)
 -                for($i=0; $i<count($pages[$j]->elements); $i++)
 -                {
 -                    $pages[$j]->elements[$i]->docblock->package = $this->package;
 -                    $pages[$j]->elements[$i]->docblock->subpackage = $this->subpackage;
 -                    $this->proceduralpages->replaceElement($pages[$j]->elements[$i]);
 -                    $this->addElement($pages[$j]->elements[$i]);
 -                }
 -                for($i=0; $i<count($pages[$j]->classelements); $i++)
 -                {
 -                    if ($this->class)
 -                    {
 -                        if ($pages[$j]->classelements[$i]->type == 'class')
 -                        {
 -                            if ($this->checkKillClass($pages[$j]->classelements[$i]->getName(),$pages[$j]->classelements[$i]->getPath())) continue;
 -                            $this->package = $pages[$j]->classelements[$i]->docblock->package;
 -                            if ($this->package_output) if (!in_array($this->package,$this->package_output)) continue;
 -                            $this->subpackage = $pages[$j]->classelements[$i]->docblock->subpackage;
 -                            $this->class = $pages[$j]->classelements[$i]->name;
 -                        } else
 -                        {
 -                            if ($this->killclass) continue;
 -                            // force all contained elements to have parent package/subpackage
 -                            $pages[$j]->classelements[$i]->docblock->package = $this->package;
 -                            $pages[$j]->classelements[$i]->docblock->subpackage = $this->subpackage;
 -                        }
 -                    }
 -                    if ($pages[$j]->classelements[$i]->type == 'class')
 -                    {
 -                        if ($this->checkKillClass($pages[$j]->classelements[$i]->getName(),$pages[$j]->classelements[$i]->getPath())) continue;
 -                        $this->package = $pages[$j]->classelements[$i]->docblock->package;
 -                        if ($this->package_output) if (!in_array($this->package,$this->package_output)) continue;
 -                        $this->subpackage = $pages[$j]->classelements[$i]->docblock->subpackage;
 -                        $this->class = $pages[$j]->classelements[$i]->name;
 -                    }
 -                    if (!$this->killclass) $this->addElement($pages[$j]->classelements[$i]);
 -                }
 -            }
 -            phpDocumentor_out("done\n");
 -            flush();
 -        }
 -        $this->sortIndexes();
 -        $this->sortTodos();
 -        if ($this->sort_page_contents_by_type) $this->sortPageContentsByElementType($pages);
 -    }
 -
 -    /**
 -     * Process the {@link $tutorials} array
 -     *
 -     * Using the tutorialname.ext.ini files, this method sets up tutorial
 -     * hierarchy.  There is some minimal error checking to make sure that no
 -     * tutorial links to itself, even two levels deep as in tute->next->tute.
 -     *
 -     * If all tests pass, it creates the hierarchy
 -     * @uses generateTutorialOrder()
 -     * @uses _setupTutorialTree()
 -     * @access private
 -     */
 -    function _processTutorials()
 -    {
 -        $parents = $all = array();
 -        foreach($this->tutorials as $package => $els)
 -        {
 -            if ($this->package_output)
 -            {
 -                if (!in_array($package,$this->package_output))
 -                {
 -                    unset($this->tutorials[$package]);
 -                    continue;
 -                }
 -            }
 -            if (!isset($this->pkg_elements[$package]))
 -            {
 -                unset($this->tutorials[$package]);
 -                continue;
 -            }
 -            foreach($els as $subpackage => $els2)
 -            {
 -                foreach($els2 as $type => $tutorials)
 -                {
 -                    foreach($tutorials as $tutorial)
 -                    {
 -                        if ($tutorial->ini)
 -                        {
 -                            if (isset($tutorial->ini['Linked Tutorials']))
 -                            {
 -                                foreach($tutorial->ini['Linked Tutorials'] as $child)
 -                                {
 -                                    $sub = (empty($tutorial->subpackage) ? '' : $tutorial->subpackage . '/');
 -                                    $kid = $tutorial->package . '/' . $sub . $child . '.' . $tutorial->tutorial_type;
 -                                    // parent includes self as a linked tutorial?
 -                                    $kidlink = $this->getTutorialLink($kid,false,false,array($tutorial->package));
 -                                    if (is_object($kidlink) && $this->returnSee($kidlink) == $tutorial->getLink($this))
 -                                    { // bad!
 -                                        addErrorDie(PDERROR_TUTORIAL_IS_OWN_CHILD,$tutorial->name,$tutorial->name.'.ini');
 -                                    }
 -                                }
 -                                $parents[] = $tutorial;
 -                            }
 -                        }
 -                        $all[$package][$subpackage][$type][] = $tutorial;
 -                    }
 -                }
 -            }
 -        }
 -        // loop error-checking, use this to eliminate possibility of accidentally linking to a parent as a child
 -        $testlinks = array();
 -        foreach($parents as $parent)
 -        {
 -            $testlinks[$parent->name]['links'][] = $parent->getLink($this);
 -            $testlinks[$parent->name]['name'][$parent->getLink($this)] = $parent->name;
 -        }
 -        // generate the order of tutorials, and link them together
 -        foreach($parents as $parent)
 -        {
 -            foreach($parent->ini['Linked Tutorials'] as $child)
 -            {
 -                $sub = (empty($parent->subpackage) ? '' : $parent->subpackage . '/');
 -                $kid = $parent->package . '/' . $sub . $child . '.' . $parent->tutorial_type;
 -                // child tutorials must be in the same package AND subpackage
 -                // AND have the same extension as the parent, makes things clearer for both ends
 -                if (in_array($this->returnSee($this->getTutorialLink($kid,false,false,array($parent->package))),$testlinks[$parent->name]['links']))
 -                    addErrorDie(PDERROR_TUTORIAL_IS_OWN_GRANDPA,$testlinks[$parent->name][$this->returnSee($this->getTutorialLink($kid,false,false,array($parent->package)))],$kid->name,$testlinks[$parent->name][$this->returnSee($this->getTutorialLink($kid,false,false,array($parent->package)))],$kid->name.'.ini');
 -                if ($this->returnSee($this->getTutorialLink($kid,false,false,array($parent->package))) == $kid)
 -                {
 -                    addWarning(PDERROR_CHILD_TUTORIAL_NOT_FOUND, $child . '.' . $parent->tutorial_type, $parent->name .'.ini',$parent->package, $parent->subpackage);
 -                }
 -            }
 -        }
 -        $new = $tree = $roots = array();
 -        // build a list of all 'root' tutorials (tutorials without parents).
 -        foreach($parents as $i => $parent)
 -        {
 -            if (! $parent->isChildOf($parents)) {
 -                $roots[] = $parent;
 -            }
 -        }
 -        $parents = $roots;
 -        // add the parents and all child tutorials in order to the list of tutorials to process
 -        foreach($parents as $parent)
 -        {
 -            $this->generateTutorialOrder($parent,$all,$new);
 -        }
 -        if (count($all))
 -        {
 -            // add the leftover tutorials
 -            foreach($all as $package => $els)
 -            {
 -                foreach($els as $subpackage => $els2)
 -                {
 -                    foreach($els2 as $type => $tutorials)
 -                    {
 -                        foreach($tutorials as $tutorial)
 -                        {
 -                            $new[$package][$subpackage][$type][] = $tutorial;
 -                        }
 -                    }
 -                }
 -            }
 -        }
 -        // remove the old, unprocessed tutorials, and set it up with the next code
 -        $this->tutorials = array();
 -        // reset integrity of the tutorial list
 -        $prev = false;
 -        uksort($new, 'tutorialcmp');
 -//        debug($this->vardump_tree($new));exit;
 -        foreach($new as $package => $els)
 -        {
 -            foreach($els as $subpackage => $els2)
 -            {
 -                foreach($els2 as $type => $tutorials)
 -                {
 -                    foreach($tutorials as $tutorial)
 -                    {
 -                        if ($prev)
 -                        {
 -                            $this->tutorials[$prevpackage][$prevsubpackage][$prevtype][$prevname]->setNext($tutorial,$this);
 -                            $tutorial->setPrev($prev,$this);
 -                        }
 -                        $this->tutorials[$package][$subpackage][$type][$tutorial->name] = $tutorial;
 -                        $prev = $tutorial->getLink($this,true);
 -                        $prevpackage = $package;
 -                        $prevsubpackage = $subpackage;
 -                        $prevtype = $type;
 -                        $prevname = $tutorial->name;
 -                    }
 -                }
 -            }
 -        }
 -        $this->tutorial_tree = $this->_setupTutorialTree();
 -        return $new;
 -    }
 -
 -    /**
 -    * called by {@link phpDocumentor_IntermediateParser::Convert()} to traverse
 -    * the array of pages and their elements, converting them to the output format
 -    *
 -    * The walk() method should be flexible enough such that it never needs
 -    * modification.  walk() sets up all of the indexes, and sorts everything in
 -    * logical alphabetical order.  It then passes each element individually to
 -    * {@link Convert()}, which then passes to the Convert*() methods.  A child
 -    * Converter need not override any of these unless special functionality must
 -    * be added. see {@tutorial Converters/template.vars.cls} for details.
 -    * {@internal
 -    * walk() first creates all of the indexes {@link $elements, $pkg_elements}
 -    * and the left indexes specified by {@link $leftindexes},
 -    * and then sorts them by calling {@link sortIndexes()}.
 -    *
 -    * Next, it converts all README/CHANGELOG/INSTALL-style files, using
 -    * {@link Convert_RIC}.
 -    *
 -    * After this, it
 -    * passes all package-level docs to Convert().  Then, it calls the index
 -    * sorting functions {@link formatPkgIndex(), formatIndex()} and
 -    * {@link formatLeftIndex()}.
 -    *
 -    * Finally, it converts each procedural page in alphabetical order.  This
 -    * stage passes elements from the physical file to Convert() in alphabetical
 -    * order.  First, procedural page elements {@link parserDefine, parserInclude}
 -    * {@link parserGlobal}, and {@link parserFunction} are passed to Convert().
 -    *
 -    * Then, class elements are passed in this order: {@link parserClass}, then
 -    * all of the {@link parserVar}s in the class and all of the
 -    * {@link parserMethod}s in the class.  Classes are in alphabetical order,
 -    * and both vars and methods are in alphabetical order.
 -    *
 -    * Finally, {@link ConvertErrorLog()} is called and the data walk is complete.}}
 -    * @param array Format: array(fullpath => {@link parserData} structure with full {@link parserData::$elements}
 -    *                                         and {@link parserData::$class_elements}.
 -    * @param array Format: array({@link parserPackagePage} 1, {@link parserPackagePage} 2,...)
 -    * @uses Converter::_createPkgElements() sets up {@link $elements} and
 -    *       {@link $pkg_elements} array, as well as {@link $links}
 -    */
 -    function walk(&$pages,&$package_pages)
 -    {
 -        if (empty($pages))
 -        {
 -            die("<b>ERROR</b>: nothing parsed");
 -        }
 -        $this->_createPkgElements($pages);
 -        if (count($this->ric))
 -        {
 -            phpDocumentor_out("Converting README/INSTALL/CHANGELOG contents...\n");
 -            flush();
 -            foreach($this->ric as $name => $contents)
 -            {
 -                phpDocumentor_out("$name...");
 -                flush();
 -                $this->Convert_RIC($name,$contents);
 -            }
 -            phpDocumentor_out("\ndone\n");
 -            flush();
 -        }
 -        foreach($package_pages as $i => $perp)
 -        {
 -            if ($this->package_output)
 -            {
 -                if (!in_array($package_pages[$i]->package,$this->package_output)) continue;
 -            }
 -            phpDocumentor_out('Converting package page for package '.$package_pages[$i]->package.'... ');
 -            flush();
 -            $this->package = $package_pages[$i]->package;
 -            $this->subpackage = '';
 -            $this->class = false;
 -            $this->Convert($package_pages[$i]);
 -            phpDocumentor_out("done\n");
 -            flush();
 -        }
 -        phpDocumentor_out("Converting tutorials/extended docs\n");
 -        flush();
 -        // get tutorials into the order they will display, and set next/prev links
 -        $new = $this->_processTutorials();
 -        foreach($this->tutorials as $package => $els)
 -        {
 -            foreach($els as $subpackage => $els2)
 -            {
 -                foreach($els2 as $type => $tutorials)
 -                {
 -                    foreach($tutorials as $tutorial)
 -                    {
 -                        switch ($type)
 -                        {
 -                            case 'pkg' :
 -                                $a = '';
 -                                if ($tutorial->ini)
 -                                $a .= 'Top-level ';
 -                                if (!empty($tutorial->subpackage))
 -                                $a .= 'Sub-';
 -                                $ptext = "Converting ${a}Package-level tutorial ".$tutorial->name.'...';
 -                            break;
 -                            case 'cls' :
 -                                $a = '';
 -                                if ($tutorial->ini)
 -                                $a .= 'Top-level ';
 -                                $ptext = "Converting ${a}Class-level tutorial " . $tutorial->name ." and associating...";
 -                                $link = Converter::getClassLink(str_replace('.cls','',$tutorial->name), $tutorial->package);
 -                                if (is_object($link))
 -                                {
 -                                    if ($this->sort_absolutely_everything)
 -                                    {
 -                                        $addend = 'unsuccessful ';
 -                                        if (isset($this->package_elements[$tutorial->package][$tutorial->subpackage]['class'][$link->name]))
 -                                        {
 -                                            $this->package_elements[$tutorial->package][$tutorial->subpackage]['class'][$link->name][0]->addTutorial($tutorial,$this);
 -                                            $addend = 'success ';
 -                                        }
 -                                    } else
 -                                    {
 -                                        $addend = 'unsuccessful ';
 -                                        if (!isset($this->classes->killclass[str_replace('.cls','',$tutorial->name)]) && !isset($this->classes->killclass[str_replace('.cls','',$tutorial->name)][$tutorial->path]))
 -                                        {
 -                                            foreach($pages as $j => $inf)
 -                                            {
 -                                                foreach($inf->classelements as $i => $class)
 -                                                {
 -                                                    if ($class->type == 'class' && $class->name == str_replace('.cls','',$tutorial->name) && $class->path == $link->path)
 -                                                    {
 -                                                        $pages[$j]->classelements[$i]->addTutorial($tutorial,$this);
 -                                                        $addend = 'success ';
 -                                                    }
 -                                                }
 -                                            }
 -                                        }
 -                                    }
 -                                    $ptext .= $addend;
 -                                } else $ptext .= "unsuccessful ";
 -                            break;
 -                            case 'proc' :
 -                                $a = '';
 -                                if ($tutorial->ini)
 -                                $a .= 'Top-level ';
 -                                $ptext = "Converting ${a}Procedural-level tutorial ".$tutorial->name." and associating...";
 -                                $link = Converter::getPageLink(str_replace('.proc','',$tutorial->name), $tutorial->package);
 -                                if (is_object($link))
 -                                {
 -                                    $addend = 'unsuccessful ';
 -                                    if ($this->sort_absolutely_everything)
 -                                    {
 -                                        if (isset($this->package_elements[$tutorial->package][$tutorial->subpackage]['page'][$link->path]))
 -                                        {
 -                                            $this->package_elements[$tutorial->package][$tutorial->subpackage]['page'][$link->path][0]->addTutorial($tutorial,$this);
 -                                            $addend = "success ";
 -                                        }
 -                                    } else
 -                                    {
 -                                        foreach($pages as $j => $info)
 -                                        {
 -                                            if ($j == $link->path)
 -                                            {
 -                                                $pages[$j]->addTutorial($tutorial,$this);
 -                                                $addend = "success ";
 -                                            }
 -                                        }
 -                                    }
 -                                    $ptext .= $addend;
 -                                } else $ptext .= "unsuccessful ";
 -                            break;
 -                        }
 -                        phpDocumentor_out($ptext);
 -                        flush();
 -                        $this->package = $tutorial->package;
 -                        $this->subpackage = $tutorial->subpackage;
 -                        $this->Convert($tutorial);
 -                        phpDocumentor_out("done\n");
 -                        flush();
 -                    }
 -                }
 -            }
 -        }
 -        phpDocumentor_out("Formatting Package Indexes...");
 -        flush();
 -        $this->formatPkgIndex();
 -        phpDocumentor_out("done\n");
 -        flush();
 -        phpDocumentor_out("Formatting Index...");
 -        flush();
 -        $this->formatIndex();
 -        phpDocumentor_out("done\n\n");
 -        flush();
 -        phpDocumentor_out("Formatting Left Quick Index...");
 -        flush();
 -        $this->formatLeftIndex();
 -        phpDocumentor_out("done\n\n");
 -        flush();
 -        if ($this->sort_absolutely_everything) return $this->walk_everything();
 -        foreach($pages as $j => $flub)
 -        {
 -            phpDocumentor_out('Converting '.$pages[$j]->parent->getPath());
 -            flush();
 -            $this->package = $pages[$j]->parent->package;
 -            $this->subpackage = $pages[$j]->parent->subpackage;
 -            $this->class = false;
 -            $this->curfile = $pages[$j]->parent->getFile();
 -            $this->curname = $this->getPageName($pages[$j]->parent);
 -            $this->curpath = $pages[$j]->parent->getPath();
 -            $use = true;
 -            if ($this->package_output)
 -            {
 -                if (in_array($this->package,$this->package_output))
 -                {
 -                    $this->Convert($pages[$j]);
 -                } else
 -                {
 -                    $use = false;
 -                }
 -            } else
 -            {
 -                $this->Convert($pages[$j]);
 -            }
 -            phpDocumentor_out(" Procedural Page Elements...");
 -            flush();
 -            if ($use)
 -            for($i=0; $i<count($pages[$j]->elements); $i++)
 -            {
 -                $a = $pages[$j]->elements[$i]->docblock->getKeyword('access');
 -                if (is_object($a)) $a = $a->getString();
 -                if (!$this->parseprivate && ($a == 'private'))
 -                    continue;
 -//                phpDocumentor_out("    ".$pages[$j]->elements[$i]->name."\n");
 -                $pages[$j]->elements[$i]->docblock->package = $this->package;
 -                $pages[$j]->elements[$i]->docblock->subpackage = $this->subpackage;
 -                $this->Convert($pages[$j]->elements[$i]);
 -            }
 -            phpDocumentor_out(" Classes...");
 -            $this->class = false;
 -            flush();
 -            for($i=0; $i<count($pages[$j]->classelements); $i++)
 -            {
 -                if ($this->class)
 -                {
 -                    if ($pages[$j]->classelements[$i]->type == 'class')
 -                    {
 -                        if (!$this->killclass) $this->endClass();
 -                        $this->killclass = false;
 -                        if ($this->checkKillClass($pages[$j]->classelements[$i]->getName(),$pages[$j]->classelements[$i]->getPath())) continue;
 -                        $this->package = $pages[$j]->classelements[$i]->docblock->package;
 -                        if ($this->package_output) if (!in_array($this->package,$this->package_output)) continue;
 -                        $this->subpackage = $pages[$j]->classelements[$i]->docblock->subpackage;
 -                        $this->class = $pages[$j]->classelements[$i]->name;
 -                    } else
 -                    {
 -                        $a = $pages[$j]->classelements[$i]->docblock->getKeyword('access');
 -                        if (is_object($a)) $a = $a->getString();
 -                        if (!$this->parseprivate && ($a == 'private'))
 -                            continue;
 -                        if ($this->killclass) continue;
 -                        // force all contained elements to have parent package/subpackage
 -                        $pages[$j]->classelements[$i]->docblock->package = $this->package;
 -                        $pages[$j]->classelements[$i]->docblock->subpackage = $this->subpackage;
 -                    }
 -                }
 -                if ($pages[$j]->classelements[$i]->type == 'class')
 -                {
 -                    $this->killclass = false;
 -                    if ($this->checkKillClass($pages[$j]->classelements[$i]->getName(),$pages[$j]->classelements[$i]->getPath())) continue;
 -                    $this->package = $pages[$j]->classelements[$i]->docblock->package;
 -                    if ($this->package_output) if (!in_array($this->package,$this->package_output)) continue;
 -                    $this->subpackage = $pages[$j]->classelements[$i]->docblock->subpackage;
 -                    $this->class = $pages[$j]->classelements[$i]->name;
 -                }
 -                if ($this->killclass) continue;
 -//                phpDocumentor_out("    ".$pages[$j]->classelements[$i]->name."\n");
 -                $this->Convert($pages[$j]->classelements[$i]);
 -            }
 -            if (count($pages[$j]->classelements) && !$this->killclass) $this->endClass();
 -            phpDocumentor_out(" done\n");
 -            flush();
 -            $this->endPage();
 -        }
 -        phpDocumentor_out("\nConverting @todo List...");
 -        flush();
 -        if (count($this->todoList))
 -        {
 -            $this->ConvertTodoList();
 -        }
 -        phpDocumentor_out("done\n");
 -        flush();
 -        phpDocumentor_out("\nConverting Error Log...");
 -        flush();
 -        $this->ConvertErrorLog();
 -        phpDocumentor_out("done\n");
 -        flush();
 -    }
 -
 -
 -    /**
 -     * Get a tree structure representing the hierarchy of tutorials
 -     *
 -     * Returns an array in format:
 -     * <pre>
 -     * array('tutorial' => {@link parserTutorial},
 -     *       'kids' => array( // child tutorials
 -     *                   array('tutorial' => child {@link parserTutorial},
 -     *                         'kids' => array(...)
 -     *                        )
 -     *                      )
 -     *      )
 -     * </pre>
 -     * @param parserTutorial|array
 -     * @tutorial tutorials.pkg
 -     * @return array
 -     */
 -    function getTutorialTree($tutorial)
 -    {
 -        if (is_object($tutorial))
 -        {
 -						$path = $tutorial->package . '/' . $tutorial->subpackage . '/' . $tutorial->name;
 -            if (isset($this->tutorial_tree[$path]))
 -								$tutorial = $this->tutorial_tree[$path];
 -            else
 -								return false;
 -        }
 -        $tree = array();
 -        if (isset($tutorial['tutorial']))
 -        {
 -            $tree['tutorial'] = $tutorial['tutorial'];
 -            if (isset($tutorial['child']))
 -            {
 -                foreach($tutorial['child'] as $a => $b)
 -                {
 -										$btut = $b['tutorial'];
 -                    $res['tutorial'] = $this->tutorials[$btut->package][$btut->subpackage][$btut->tutorial_type][$btut->name];
 -                    if (isset($b['child']))
 -                    {
 -                         $tempres = Converter::getTutorialTree($b);
 -                         $res['kids'] = $tempres['kids'];
 -                    }
 -                    $tree['kids'][] = $res;
 -                }
 -            }
 -        }
 -        return $tree;
 -    }
 -
 -    /**
 -     * Remove tutorials one by one from $all, and transfer them into $new in the
 -     * order they should be parsed
 -     * @param parserTutorial
 -     * @param array
 -     * @param array
 -     * @access private
 -     */
 -    function generateTutorialOrder($parent,&$all,&$new)
 -    {
 -        // remove from the list of tutorials to process
 -        foreach($all[$parent->package][$parent->subpackage][$parent->tutorial_type] as $ind => $t)
 -        {
 -            if ($t->name == $parent->name) {
 -                unset($all[$parent->package][$parent->subpackage][$parent->tutorial_type][$ind]);
 -            }
 -        }
 -        // add to the new ordered list of tutorials
 -        $x = &$new[$parent->package][$parent->subpackage][$parent->tutorial_type];
 -        if (!is_object($x[count($x) - 1]) || $x[count($x) - 1]->name != $parent->name)
 -        { // only add if the parent isn't also a child
 -            $new[$parent->package][$parent->subpackage][$parent->tutorial_type][] = $parent;
 -            // add a new branch to the tree
 -        }
 -        // process all child tutorials, and insert them in order
 -//        debug("processing parent ".$parent->name);
 -        if ($parent->ini)
 -        {
 -            foreach($parent->ini['Linked Tutorials'] as $child)
 -            {
 -                $sub = (empty($parent->subpackage) ? '' : $parent->subpackage . '/');
 -                $kid = $parent->package . '/' . $sub . $child . '.' . $parent->tutorial_type;
 -                $_klink = $this->getTutorialLink($kid,false,false,array($parent->package));
 -                if (is_object($_klink)) {
 -                    $klink = $this->returnSee($_klink);
 -                } else {
 -                    $klink = false;
 -                }
 -                // remove the child from the list of remaining tutorials
 -                foreach($all[$parent->package][$parent->subpackage][$parent->tutorial_type] as $ind => $tute)
 -                {
 -                    if ($klink && $tute->getLink($this) == $klink)
 -                    {
 -                        // set up parent, next and prev links
 -                        $tute->setParent($parent, $this);
 -                        // remove the child from the list of tutorials to process
 -                        foreach($all[$parent->package][$parent->subpackage][$parent->tutorial_type] as $ind => $t)
 -                        {
 -                            if ($t->name == $tute->name)
 -                            unset($all[$parent->package][$parent->subpackage][$parent->tutorial_type][$ind]);
 -                        }
 -                        // add to the new ordered list of tutorials
 -                        $new[$parent->package][$parent->subpackage][$parent->tutorial_type][] = $tute;
 -                        if ($tute->ini)
 -                        {
 -                            // add all the child's child tutorials to the list
 -                            $this->generateTutorialOrder($tute,$all,$new);
 -                        }
 -                    }
 -                }
 -            }
 -        }
 -        return;
 -    }
 -
 -		/** Returns the path to this tutorial as a string
 -		 * @param parserTutorial $pkg
 -		 * @param parserTutorial $subpkg
 -		 * @param parserTutorial $namepkg
 -		 * @return string */
 -		function _tutorial_path($pkg, $subpkg = 0, $namepkg = 0)
 -		{
 -			if (! $subpkg)
 -				$subpkg = $pkg;
 -			if (! $namepkg)
 -				$namepkg = $pkg;
 -			return $pkg->package.'/'.$subpkg->subpackage.'/'.$namepkg->name;
 -		}
 -
 -
 -    /**
 -     * Creates a tree structure of tutorials
 -     *
 -     * Format:
 -     * <pre>
 -     * array('package/subpackage/tutorial1.ext' =>
 -     *          array('tutorial' => {@link parserTutorial},
 -     *                'child'    =>
 -     *                    array('package/subpackage/child1tutorial.ext' => ...,
 -     *                          'package/subpackage/child2tutorial.ext' => ...,
 -     *                          ...
 -     *                         )
 -     *       'package/subpackage/tutorial2.ext' => ...,
 -     *       ...
 -     *       )
 -     * </pre>
 -     * @return array the tutorial tree
 -     * @access private
 -     */
 -    function _setupTutorialTree($parent = false)
 -    {
 -				if (! isset($this->processed_tutorials))
 -						$this->processed_tutorials = array();
 -        $tree = array();
 -        if (!$parent)
 -        {
 -            foreach($this->tutorials as $package => $s)
 -            {
 -                foreach($s as $subpackage => $t)
 -                {
 -                    foreach($t as $type => $n)
 -                    {
 -                        foreach($n as $name => $tutorial)
 -                        {
 -                            if (!$tutorial->parent)
 -                            {
 -																$child_path = $this->_tutorial_path($tutorial,$tutorial,$tutorial);
 -																if (! isset($this->processed_tutorials[$child_path]))
 -																{
 -																		$this->processed_tutorials[$child_path] = $tutorial;
 -																		//debug("parent ".$tutorial->name);
 -																		$ret = $this->_setupTutorialTree($tutorial);
 -																		if (!count($tree))
 -																			$tree = $ret;
 -																		else
 -																			$tree = array_merge($tree,$ret);
 -																}
 -                            }
 -                        }
 -                    }
 -                }
 -            }
 -            return $tree;
 -        }
 -				$parent_path = $this->_tutorial_path($parent);
 -        $tree[$parent_path]['tutorial'] = $parent;
 -        // process all child tutorials, and insert them in order
 -        if ($parent->ini)
 -        {
 -            foreach($parent->ini['Linked Tutorials'] as $child)
 -            {
 -                if (isset($this->tutorials[$parent->package][$parent->subpackage][$parent->tutorial_type][$child . '.' . $parent->tutorial_type]))
 -												// remove the child from the list of remaining tutorials
 -										$tute = $this->tutorials[$parent->package][$parent->subpackage][$parent->tutorial_type][$child . '.' . $parent->tutorial_type];
 -                else
 -										$tute = false;
 -
 -                if ($tute)
 -                {
 -										$child_path = $this->_tutorial_path($parent,$parent,$tute);
 -										if (! isset($this->processed_tutorials[$child_path]))
 -										{
 -												$this->processed_tutorials[$child_path] = $tute;
 -												if ($tute->name == $child . '.' . $parent->tutorial_type)
 -												{
 -//														echo "Adding [$child_path] to [$parent_path]<br>";
 -														$tree[$parent_path]['child'][$this->_tutorial_path($parent,$parent,$tute)]['tutorial'] = $tute;
 -														if ($tute->ini)
 -														{
 -																// add all the child's child tutorials to the list
 -																if (!isset($tree[$parent_path]['child']))
 -																		$tree[$parent_path]['child'] = $this->_setupTutorialTree($tute);
 -																else
 -																		$tree[$parent_path]['child'] = array_merge($tree[$parent_path]['child'],$this->_setupTutorialTree($tute));
 -														}
 -												}
 -										}
 -                }
 -            }
 -        }
 -        return $tree;
 -    }
 -
 -    /**
 -     * Debugging function for dumping {@link $tutorial_tree}
 -     * @return string
 -     */
 -    function vardump_tree($tree,$indent='')
 -    {
 -        if (phpDocumentor_get_class($tree) == 'parsertutorial') return $tree->name.' extends '.($tree->parent? $tree->parent->name : 'nothing');
 -        $a = '';
 -        foreach($tree as $ind => $stuff)
 -        {
 -            $x = $this->vardump_tree($stuff,"$indent   ");
 -            $a .= $indent.'['.$ind." => \n   ".$indent.$x."]\n";
 -        }
 -        return substr($a,0,strlen($a) - 1);
 -    }
 -
 -    /**
 -     * @access private
 -     */
 -    function sort_package_elements($a,$b)
 -    {
 -        if (($a->type == $b->type) && (isset($a->isConstructor) && $a->isConstructor)) return -1;
 -        if (($a->type == $b->type) && (isset($b->isConstructor) && $b->isConstructor)) return 1;
 -        if ($a->type == $b->type) return strnatcasecmp($a->name,$b->name);
 -        if ($a->type == 'class') return -1;
 -        if ($b->type == 'class') return 1;
 -        if ($a->type == 'const') return -1;
 -        if ($b->type == 'const') return 1;
 -        if ($a->type == 'var') return -1;
 -        if ($b->type == 'var') return 1;
 -        if ($a->type == 'page') return -1;
 -        if ($b->type == 'page') return 1;
 -        if ($a->type == 'include') return -1;
 -        if ($b->type == 'include') return 1;
 -        if ($a->type == 'define') return -1;
 -        if ($b->type == 'define') return 1;
 -        if ($a->type == 'global') return -1;
 -        if ($b->type == 'global') return 1;
 -        if ($a->type == 'function') return -1;
 -        if ($b->type == 'function') return 1;
 -    }
 -
 -    /**
 -     * @access private
 -     */
 -    function defpackagesort($a,$b)
 -    {
 -        if ($a == $GLOBALS['phpDocumentor_DefaultPackageName']) return -1;
 -        if ($b == $GLOBALS['phpDocumentor_DefaultPackageName']) return 0;
 -        return strnatcasecmp($a,$b);
 -    }
 -
 -    /**
 -     * @access private
 -     */
 -    function Pc_sort($a,$b)
 -    {
 -        return strnatcasecmp(key($a),key($b));
 -    }
 -
 -    /**
 -     * walk over elements by package rather than page
 -     *
 -     * This method is designed for converters like the PDF converter that need
 -     * everything passed in alphabetical order by package/subpackage and by
 -     * procedural and then class information
 -     * @see PDFdefaultConverter
 -     * @see walk()
 -     */
 -    function walk_everything()
 -    {
 -        global $hooser;
 -        $hooser = false;
 -        uksort($this->package_elements,array($this,'defpackagesort'));
 -        foreach($this->package_elements as $package => $r)
 -        {
 -            if ($this->package_output)
 -            {
 -                if (!in_array($this->package,$this->package_output))
 -                {
 -                    unset($this->package_elements[$package]);
 -                    continue;
 -                }
 -            }
 -            uksort($this->package_elements[$package],'strnatcasecmp');
 -        }
 -        foreach($this->package_elements as $package => $r)
 -        {
 -            foreach($this->package_elements[$package] as $subpackage => $r)
 -            {
 -                if (isset($r['page']))
 -                {
 -                    uksort($r['page'],'strnatcasecmp');
 -                    foreach($r['page'] as $page => $oo)
 -                    {
 -                        usort($this->package_elements[$package][$subpackage]['page'][$page],array($this,'sort_package_elements'));
 -                    }
 -                }
 -                if (isset($r['class']))
 -                {
 -                    uksort($r['class'],'strnatcasecmp');
 -                    foreach($r['class'] as $page => $oo)
 -                    {
 -                        usort($r['class'][$page],array($this,'sort_package_elements'));
 -                    }
 -                }
 -                $this->package_elements[$package][$subpackage] = $r;
 -            }
 -        }
 -        foreach($this->package_elements as $package => $s)
 -        {
 -            $notyet = false;
 -            foreach($s as $subpackage => $r)
 -            {
 -                $this->package = $package;
 -                $this->subpackage = $subpackage;
 -                if (isset($r['page']))
 -                {
 -                    $this->class = false;
 -                    foreach($r['page'] as $page => $elements)
 -                    {
 -                        if (is_array($elements))
 -                        {
 -                            foreach($elements as $element)
 -                            {
 -                                if ($element->type == 'page')
 -                                {
 -                                    phpDocumentor_out('Converting '.$element->parent->getPath());
 -                                    flush();
 -                                    $this->curfile = $element->parent->getFile();
 -                                    $this->curname = $this->getPageName($element->parent);
 -                                    $this->curpath = $element->parent->getPath();
 -                                    $notyet = true;
 -                                } else
 -                                {
 -                                    // force all contained elements to have parent package/subpackage
 -                                    $element->docblock->package = $this->package;
 -                                    $element->docblock->subpackage = $this->subpackage;
 -                                    $a = $element->docblock->getKeyword('access');
 -                                    if (is_object($a)) $a = $a->getString();
 -                                    if (!$this->parseprivate && ($a == 'private'))
 -                                        continue;
 -                                }
 -                                if ($notyet)
 -                                {
 -                                    phpDocumentor_out(" Procedural Page Elements...");
 -                                    flush();
 -                                    $notyet = false;
 -                                }
 -                                $this->Convert($element);
 -                            }
 -                        }
 -                        $this->endPage();
 -                        phpDocumentor_out("done\n");
 -                        flush();
 -                    }
 -                }
 -                $start_classes = true;
 -                if (isset($r['class']))
 -                {
 -                    foreach($r['class'] as $class => $elements)
 -                    {
 -                        foreach($elements as $element)
 -                        {
 -                            if ($element->type == 'class')
 -                            {
 -                                if (!$start_classes)
 -                                {
 -                                    if (count($elements) && !$this->killclass) $this->endClass();
 -                                    phpDocumentor_out("done\n");
 -                                    flush();
 -                                }
 -                                $start_classes = false;
 -                                $this->class = $element->getName();
 -                                $this->killclass = false;
 -                                if ($this->checkKillClass($element->getName(),$element->getPath())) continue;
 -                                if (!$this->killclass)
 -                                {
 -                                    phpDocumentor_out('Converting '.$this->class."...");
 -                                    flush();
 -                                    $notyet = true;
 -                                }
 -                            } else
 -                            {
 -                                if ($notyet)
 -                                {
 -                                    phpDocumentor_out("Variables/methods/Class constants...\n");
 -                                    flush();
 -                                    $notyet = false;
 -                                }
 -                                $a = $element->docblock->getKeyword('access');
 -                                if (is_object($a)) $a = $a->getString();
 -                                if (!$this->parseprivate && ($a == 'private'))
 -                                    continue;
 -                                if ($this->killclass) continue;
 -                                // force all contained elements to have parent package/subpackage
 -                                $element->docblock->package = $this->package;
 -                                $element->docblock->subpackage = $this->subpackage;
 -                            }
 -                            if ($this->killclass) continue;
 -                            $this->Convert($element);
 -                        }
 -                    }
 -                    if (count($elements) && !$this->killclass) $this->endClass();
 -                    phpDocumentor_out("done\n");
 -                    flush();
 -                } // if isset($r['class'])
 -            } // foreach($s
 -        } // foreach($this->package_elements)
 -        phpDocumentor_out("\nConverting @todo List...");
 -        flush();
 -        if (count($this->todoList))
 -        {
 -            $this->ConvertTodoList();
 -        }
 -        phpDocumentor_out("done\n");
 -        flush();
 -        phpDocumentor_out("\nConverting Error Log...");
 -        flush();
 -        $this->ConvertErrorLog();
 -        phpDocumentor_out("done\n");
 -        flush();
 -    }
 -
 -    /**
 -     * Convert the phpDocumentor parsing/conversion error log
 -     * @abstract
 -     */
 -    function ConvertErrorLog()
 -    {
 -    }
 -
 -    /**
 -     * Convert the list of all @todo tags
 -     * @abstract
 -     */
 -    function ConvertTodoList()
 -    {
 -    }
 -
 -    /**
 -     * Sorts the @todo list - do not override or modify this function
 -     * @access private
 -     * @uses _sortTodos passed to {@link usort()} to sort the todo list
 -     */
 -    function sortTodos()
 -    {
 -        phpDocumentor_out("\nSorting @todo list...");
 -        flush();
 -        foreach($this->todoList as $package => $r)
 -        usort($this->todoList[$package],array($this, '_sortTodos'));
 -        phpDocumentor_out("done\n");
 -    }
 -
 -    /** @access private */
 -    function _sortTodos($a, $b)
 -    {
 -        return strnatcasecmp($a[0]->name, $b[0]->name);
 -    }
 -
 -    /**
 -     * Sorts all indexes - do not override or modify this function
 -     * @uses $leftindex based on the value of leftindex, sorts link arrays
 -     * @uses $class_elements sorts with {@link compareLink}
 -     * @uses $page_elements sorts with {@link compareLink}
 -     * @uses $define_elements sorts with {@link compareLink}
 -     * @uses $global_elements sorts with {@link compareLink}
 -     * @uses $function_elements sorts with {@link compareLink}
 -     * @uses $elements sorts with {@link elementCmp}
 -     * @uses $pkg_elements sorts with {@link elementCmp} after sorting by
 -     *                     package/subpackage alphabetically
 -     * @access private
 -     */
 -    function sortIndexes()
 -    {
 -        phpDocumentor_out("\nSorting Indexes...");
 -        flush();
 -        uksort($this->elements,'strnatcasecmp');
 -        if ($this->leftindex['classes'])
 -        {
 -            foreach($this->class_elements as $package => $o1)
 -            {
 -                foreach($o1 as $subpackage => $links)
 -                {
 -                    usort($this->class_elements[$package][$subpackage],array($this,'compareLink'));
 -                }
 -            }
 -        }
 -        if ($this->leftindex['pages'])
 -        {
 -            foreach($this->page_elements as $package => $o1)
 -            {
 -                uksort($this->page_elements[$package],'strnatcasecmp');
 -                foreach($o1 as $subpackage => $links)
 -                {
 -                    usort($this->page_elements[$package][$subpackage],array($this,'compareLink'));
 -                }
 -            }
 -        }
 -        if ($this->leftindex['defines'])
 -        {
 -            foreach($this->define_elements as $package => $o1)
 -            {
 -                uksort($this->define_elements[$package],'strnatcasecmp');
 -                foreach($o1 as $subpackage => $links)
 -                {
 -                    usort($this->define_elements[$package][$subpackage],array($this,'compareLink'));
 -                }
 -            }
 -        }
 -        if ($this->leftindex['globals'])
 -        {
 -            foreach($this->global_elements as $package => $o1)
 -            {
 -                uksort($this->global_elements[$package],'strnatcasecmp');
 -                foreach($o1 as $subpackage => $links)
 -                {
 -                    usort($this->global_elements[$package][$subpackage],array($this,'compareLink'));
 -                }
 -            }
 -        }
 -        if ($this->leftindex['functions'])
 -        {
 -            foreach($this->function_elements as $package => $o1)
 -            {
 -                uksort($this->function_elements[$package],'strnatcasecmp');
 -                foreach($o1 as $subpackage => $links)
 -                {
 -                    usort($this->function_elements[$package][$subpackage],array($this,'compareLink'));
 -                }
 -            }
 -        }
 -        foreach($this->elements as $letter => $nothuing)
 -        {
 -            uasort($this->elements[$letter],array($this,"elementCmp"));
 -        }
 -        foreach($this->pkg_elements as $package => $els)
 -        {
 -            uksort($this->pkg_elements[$package],'strnatcasecmp');
 -            foreach($this->pkg_elements[$package] as $subpackage => $els)
 -            {
 -                if (empty($els)) continue;
 -                uksort($this->pkg_elements[$package][$subpackage],'strnatcasecmp');
 -                foreach($els as $letter => $yuh)
 -                {
 -                    usort($this->pkg_elements[$package][$subpackage][$letter],array($this,"elementCmp"));
 -                }
 -            }
 -        }
 -        phpDocumentor_out("done\n");
 -        flush();
 -    }
 -
 -    /**
 -     * sorts {@link $page_contents} by element type as well as alphabetically
 -     * @see $sort_page_contents_by_element_type
 -     */
 -    function sortPageContentsByElementType(&$pages)
 -    {
 -        foreach($this->page_contents as $package => $els)
 -        {
 -            foreach($this->page_contents[$package] as $subpackage => $els)
 -            {
 -                if (empty($els)) continue;
 -                foreach($this->page_contents[$package][$subpackage] as $path => $stuff)
 -                {
 -                    if (!count($pages[$path]->elements)) continue;
 -                    usort($pages[$path]->elements,array($this,'eltypecmp'));
 -                    usort($this->page_contents[$package][$subpackage][$path],array($this,'eltypecmp'));
 -                    if (isset($this->page_contents[$package][$subpackage][$path][0]))
 -                    $this->page_contents[$package][$subpackage][$path]['###main'] = $this->page_contents[$package][$subpackage][$path][0];
 -                    unset($this->page_contents[$package][$subpackage][$path][0]);
 -                }
 -            }
 -        }
 -    }
 -
 -    /**
 -     * @access private
 -     * @see Converter::sortIndexes()
 -     */
 -    function compareLink($a, $b)
 -    {
 -         return strnatcasecmp($a->name,$b->name);
 -    }
 -
 -    /**
 -     * @access private
 -     * @see Converter::sortPageContentsByElementType()
 -     */
 -    function eltypecmp($a, $b)
 -    {
 -        if ($a->type == 'page') return -1;
 -        if ($b->type == 'page') return 1;
 -         return strnatcasecmp($a->type.$a->name,$b->type.$b->name);
 -    }
 -
 -    /**
 -     * does a nat case sort on the specified second level value of the array
 -     *
 -     * @param    mixed    $a
 -     * @param    mixed    $b
 -     * @return    int
 -     * @access private
 -     */
 -    function elementCmp ($a, $b)
 -    {
 -        return strnatcasecmp($a->getName(), $b->getName());
 -    }
 -
 -    /**
 -     * Used to stop conversion of @ignored or private @access classes
 -     * @uses $killclass sets killclass based on the value of {@link Classes::$killclass}
 -     *       and {@link $package_output}
 -     * @access private
 -     */
 -    function checkKillClass($class, $path)
 -    {
 -        $this->killclass = false;
 -        if (isset($this->classes->killclass[$class]) && isset($this->classes->killclass[$class][$path])) $this->killclass = true;
 -        if ($this->package_output)
 -        {
 -            $a = $this->classes->getClass($class, $path);
 -            if (!in_array($a->docblock->package,$this->package_output)) $this->killclass = true;
 -        }
 -        if (PHPDOCUMENTOR_DEBUG && $this->killclass) debug("$class $path killed");
 -        return $this->killclass;
 -    }
 -
 -    /**
 -     * @param abstractLink descendant of abstractLink
 -     * @param array|parserTag list of @todos|@todo tag
 -     * @access private
 -     */
 -    function addTodoLink($link, $todos)
 -    {
 -        $this->todoList[$link->package][] = array($link, $todos);
 -    }
 -
 -    /**
 -     * Adds all elements to the {@link $elements, $pkg_elements, $links},
 -     * {@link $linkswithfile} and left indexes - Do not modify or override
 -     * @access private
 -     * @param parserBase any documentable element descendant of parserBase
 -     *                   except parserTutorial
 -     * @param false|parserPage only used to add a {@link parserPage} if the
 -     *                         $element passed is a parserPage
 -     * @staticvar string path of current page, used for {@link $page_contents} setup
 -     */
 -    function addElement(&$element,$pageel=false)
 -    {
 -        static $curpath = '';
 -        if ($this->package_output)
 -        {
 -            if (!in_array($this->package, $this->package_output)) return;
 -        }
 -        if ($pageel && phpDocumentor_get_class($pageel) == 'parserdata')
 -        {
 -            if (isset($pageel->docblock) && phpDocumentor_get_class($pageel->docblock) == 'parserdocblock')
 -            {
 -                $a = $pageel->docblock->getKeyword('todo');
 -                if ($a)
 -                {
 -                    $this->addTodoLink($this->addLink($element),$a);
 -                }
 -            }
 -        }
 -        if (isset($element->docblock))
 -        {
 -            $a = $element->docblock->getKeyword('access');
 -            if (is_object($a)) $a = $a->getString();
 -            if (!$this->parseprivate && ($a == 'private'))
 -                return;
 -            $a = $element->docblock->getKeyword('todo');
 -            if ($a)
 -            {
 -                $this->addTodoLink($this->addLink($element),$a);
 -            }
 -        }
 -        $i = 0;
 -        switch($element->type)
 -        {
 -            case 'page' :
 -                if ($this->sort_absolutely_everything)
 -                {
 -                    $this->package_elements[$element->package][$element->subpackage]['page'][$element->getPath()][] = $pageel;
 -                }
 -                $link = $this->addLink($element);
 -                $curpath = $element->getPath();
 -                if ($this->leftindex['pages'])
 -                $this->page_elements[$element->package][$element->subpackage][] = $link;
 -                $this->page_contents[$element->package][$element->subpackage][$curpath]['###main'] = $link;
 -            break;
 -            case 'class' :
 -                if ($this->sort_absolutely_everything)
 -                {
 -                    $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['class'][$this->class][] = $element;
 -                }
 -                $link = $this->addLink($element);
 -                if ($this->leftindex['classes'])
 -                $this->class_elements[$element->docblock->package][$element->docblock->subpackage][] = $link;
 -                $this->class_contents[$element->docblock->package][$element->docblock->subpackage][$this->class]['###main'] = $link;
 -            break;
 -            case 'include' :
 -                if ($this->sort_absolutely_everything)
 -                {
 -                    $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['page'][$curpath][] = $element;
 -                }
 -                $link = $this->addLink($element);
 -            break;
 -            case 'define' :
 -                if ($this->sort_absolutely_everything)
 -                {
 -                    $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['page'][$curpath][] = $element;
 -                }
 -                $link = $this->addLink($element);
 -                if ($this->leftindex['defines'])
 -                $this->define_elements[$element->docblock->package][$element->docblock->subpackage][] = $link;
 -                $this->page_contents[$element->docblock->package][$element->docblock->subpackage][$curpath][] = $link;
 -            break;
 -            case 'global' :
 -                if ($this->sort_absolutely_everything)
 -                {
 -                    $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['page'][$curpath][] = $element;
 -                }
 -                $link = $this->addLink($element);
 -                $i++;
 -                if ($this->leftindex['globals'])
 -                $this->global_elements[$element->docblock->package][$element->docblock->subpackage][] = $link;
 -                $this->page_contents[$element->docblock->package][$element->docblock->subpackage][$curpath][] = $link;
 -            break;
 -            case 'var' :
 -                if ($this->sort_absolutely_everything)
 -                {
 -                    $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['class'][$this->class][] = $element;
 -                }
 -                $link = $this->addLink($element);
 -                $i++;
 -                $this->class_contents[$element->docblock->package][$element->docblock->subpackage][$this->class][] = $link;
 -            break;
 -            case 'const' :
 -                if ($this->sort_absolutely_everything)
 -                {
 -                    $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['class'][$this->class][] = $element;
 -                }
 -                $link = $this->addLink($element);
 -                $i++;
 -                $this->class_contents[$element->docblock->package][$element->docblock->subpackage][$this->class][] = $link;
 -            break;
 -            case 'method' :
 -                if ($this->sort_absolutely_everything)
 -                {
 -                    $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['class'][$this->class][] = $element;
 -                }
 -                $link = $this->addLink($element);
 -                $this->class_contents[$element->docblock->package][$element->docblock->subpackage][$this->class][] = $link;
 -            break;
 -            case 'function' :
 -                if ($this->sort_absolutely_everything)
 -                {
 -                    $this->package_elements[$element->docblock->package][$element->docblock->subpackage]['page'][$curpath][] = $element;
 -                }
 -                $link = $this->addLink($element);
 -                if ($this->leftindex['functions'])
 -                $this->function_elements[$element->docblock->package][$element->docblock->subpackage][] = $link;
 -                $this->page_contents[$element->docblock->package][$element->docblock->subpackage][$curpath][] = $link;
 -            break;
 -            default :
 -            break;
 -        }
 -        if ($element->getType() != 'include')
 -        {
 -            if ($element->getType() == 'var' || $element->getType() == 'method'|| $element->getType() == 'const')
 -            {
 -                $this->links[$this->package][$this->subpackage][$element->getType()][$element->class][$element->getName()] = $link;
 -                $this->linkswithfile[$this->package][$this->subpackage][$element->getType()][$element->getPath()][$element->class][$element->getName()] = $link;
 -            } else
 -            {
 -                if ($element->type == 'page')
 -                {
 -                    $this->links[$this->package][$this->subpackage][$element->getType()][$element->getFile()] = $link;
 -                    $this->linkswithfile[$this->package][$this->subpackage][$element->getType()][$element->getPath()][$element->getFile()] = $link;
 -                } else
 -                {
 -                    $this->links[$this->package][$this->subpackage][$element->getType()][$element->getName()] = $link;
 -                    $this->linkswithfile[$this->package][$this->subpackage][$element->getType()][$element->getPath()][$element->getName()] = $link;
 -                }
 -            }
 -        }
 -        if ($element->type == 'page')
 -        {
 -            $this->elements[substr(strtolower($element->getFile()),$i,1)][] = $element;
 -            $this->pkg_elements[$this->package][$this->subpackage][substr(strtolower($element->getFile()),$i,1)][] = $element;
 -        } else
 -        {
 -            $this->elements[substr(strtolower($element->getName()),$i,1)][] = $element;
 -            $this->pkg_elements[$this->package][$this->subpackage][substr(strtolower($element->getName()),$i,1)][] = $element;
 -        }
 -    }
 -
 -    /**
 -     * returns an abstract link to element.  Do not modify or override
 -     *
 -     * This method should only be called in process of Conversion, unless
 -     * $element is a parserPage, or $page is set to true, and $element is
 -     * not a parserPage
 -     * @return abstractLink abstractLink descendant
 -     * @access private
 -     * @param parserElement element to add a new link (descended from
 -     *                      {@link abstractLink})to the {@link $links} array
 -     * @param string 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 name for page elements
 -     */
 -    function addLink(&$element,$page = false)
 -    {
 -        if ($page)
 -        {
 -            // create a fake parserPage to extract the fileAlias for this link
 -            $fakepage = new parserPage;
 -            $fakepage->setPath($element->getPath());
 -            $fakepage->setFile(basename($element->getPath()));
 -            $this->curname = $this->getPageName($fakepage);
 -        }
 -        switch($element->type)
 -        {
 -            case 'function':
 -                $x = new functionLink;
 -                $x->addLink($element->getPath(), $this->curname, $element->name, $element->docblock->package, $element->docblock->subpackage, $element->docblock->category);
 -                return $x;
 -            break;
 -            case 'define':
 -                $x = new defineLink;
 -                $x->addLink($element->getPath(), $this->curname, $element->name, $element->docblock->package, $element->docblock->subpackage, $element->docblock->category);
 -                return $x;
 -            break;
 -            case 'global':
 -                $x = new globalLink;
 -                $x->addLink($element->getPath(), $this->curname, $element->name, $element->docblock->package, $element->docblock->subpackage, $element->docblock->category);
 -                return $x;
 -            break;
 -            case 'class':
 -                $x = new classLink;
 -                $x->addLink($element->getPath(), $this->curname, $element->name, $element->docblock->package, $element->docblock->subpackage, $element->docblock->category);
 -                return $x;
 -            break;
 -            case 'method':
 -                $x = new methodLink;
 -                $x->addLink($this->class, $element->getPath(), $this->curname, $element->name, $element->docblock->package, $element->docblock->subpackage, $element->docblock->category);
 -                return $x;
 -            break;
 -            case 'var':
 -                $x = new varLink;
 -                $x->addLink($this->class, $element->getPath(), $this->curname, $element->name, $element->docblock->package, $element->docblock->subpackage, $element->docblock->category);
 -                return $x;
 -            break;
 -            case 'const':
 -                $x = new constLink;
 -                $x->addLink($this->class, $element->getPath(), $this->curname, $element->name, $element->docblock->package, $element->docblock->subpackage, $element->docblock->category);
 -                return $x;
 -            break;
 -            case 'page':
 -                $x = new pageLink;
 -                $x->addLink($element->getPath(),$this->getPageName($element),$element->file,$element->package, $element->subpackage, $element->category);
 -                return $x;
 -            break;
 -        }
 -    }
 -
 -    /**
 -     * Return a tree of all classes that extend this class
 -     *
 -     * The data structure returned is designed for a non-recursive algorithm,
 -     * and is somewhat complex.
 -     * In most cases, the array returned is:
 -     *
 -     * <pre>
 -     * array('#root' =>
 -     *         array('link' => {@link classLink} to $class,
 -     *               'parent' => false,
 -     *               'children' => array(array('class' => 'childclass1',
 -     *                                         'package' => 'child1package'),
 -     *                                    array('class' => 'childclass2',
 -     *                                         'package' => 'child2package'),...
 -     *                                  )
 -     *               ),
 -     *       'child1package#childclass1' =>
 -     *         array('link' => {@link classLink} to childclass1,
 -     *               'parent' => '#root',
 -     *               'children' => array(array('class' => 'kidclass',
 -     *                                         'package' => 'kidpackage'),...
 -     *                                  )
 -     *              ),
 -     *       'kidpackage#kidclass' =>
 -     *         array('link' => {@link classLink} to kidclass,
 -     *               'parent' => 'child1package#childclass1',
 -     *               'children' => array() // no children
 -     *              ),
 -     *      ....
 -     *      )
 -     *</pre>
 -     *
 -     * To describe this format using language, every class in the tree has an
 -     * entry in the first level of the array.  The index for all child
 -     * classes that extend the root class is childpackage#childclassname.
 -     * Each entry in the array has 3 elements: link, parent, and children.
 -     * <ul>
 -     *  <li>link - a {@link classLink} to the current class</li>
 -     *  <li>parent - a {@link classLink} to the class's parent, or false (except for one special case described below)</li>
 -     *  <li>children - an array of arrays, each entry has a 'class' and 'package' index to the child class,
 -     * used to find the entry in the big array</li>
 -     * </ul>
 -     *
 -     * special cases are when the #root class has a parent in another package,
 -     * or when the #root class extends a class not found
 -     * by phpDocumentor.  In the first case, parent will be a
 -     * classLink to the parent class.  In the second, parent will be the
 -     * extends clause, as in:
 -     * <code>
 -     * class X extends Y
 -     * {
 -     * ...
 -     * }
 -     * </code>
 -     * in this case, the #root entry will be array('link' => classLink to X, 'parent' => 'Y', children => array(...))
 -     *
 -     * The fastest way to design a method to process the array returned
 -     * is to copy HTMLframesConverter::getRootTree() into
 -     * your converter and to modify the html to whatever output format you are going to use
 -     * @see HTMLframesConverter::getRootTree()
 -     * @param string class name
 -     * @param string
 -     * @param string
 -     * @return array Format: see docs
 -     */
 -    function getSortedClassTreeFromClass($class,$package,$subpackage)
 -    {
 -        $my_tree = array();
 -        $root = $this->classes->getClassByPackage($class,$package);
 -        if (!$root) return false;
 -        $class_children = $this->classes->getDefiniteChildren($class,$root->curfile);
 -        if (!$class_children)
 -        {
 -            // special case: parent class is found, but is not part of this package, class has no children
 -            if (is_array($root->parent))
 -            {
 -                $x = $root->getParent($this);
 -                if ($x->docblock->package != $package)
 -                {
 -                    $v = Converter::getClassLink($root->getName(),$package,$root->getPath());
 -                    return array('#root' => array('link' => $v,'parent' => Converter::getClassLink($x->getName(),$x->docblock->package,$x->getPath()), 'children' => array()));
 -                }
 -            } else
 -            { // class has normal situation, no children
 -                if (is_string($root->getParent($this)))
 -                return array('#root' => array('link' => Converter::getClassLink($root->getName(),$package,$root->getPath()), 'parent' => $root->getExtends(),'children' => array()));
 -                else
 -                return array('#root' => array('link' => Converter::getClassLink($root->getName(),$package,$root->getPath()), 'parent' => false, 'children' => array()));
 -            }
 -        }
 -        // special case: parent class is found, but is not part of this package, class has children
 -        if (is_array($root->parent))
 -        {
 -            $x = $root->getParent($this);
 -            if ($x->docblock->package != $package)
 -            {
 -                $v = Converter::getClassLink($root->getName(),$package,$root->getPath());
 -                $my_tree = array('#root' => array('link' => $v, 'parent' => Converter::getClassLink($x->getName(),$x->docblock->package,$x->getPath()), 'children' => array()));
 -            } else
 -            {
 -            }
 -        } else
 -        $my_tree = array('#root' => array('link' => Converter::getClassLink($root->getName(),$package,$root->getPath()), 'parent' => false, 'children' => array()));
 -        // location of tree walker
 -        $cur = '#root';
 -        $lastcur = array(array(false,0));
 -        $childpos = 0;
 -        if (isset($class_children))
 -        {
 -            do
 -            {
 -                if (!$class_children)
 -                {
 -                    list($cur, $childpos) = array_pop($lastcur);
 -                    if (isset($my_tree[$cur]['children'][$childpos + 1]))
 -                    {
 -                        array_push($lastcur, array($cur, $childpos + 1));
 -                        $par = $cur;
 -                        $cur = $my_tree[$cur]['children'][$childpos + 1];
 -                        $x = $this->classes->getClassByPackage($cur['class'],$cur['package']);
 -                        $childpos = 0;
 -                        $cur = $cur['package'] . '#' . $cur['class'];
 -                        $my_tree[$cur]['link'] = Converter::getClassLink($x->getName(),$x->docblock->package,$x->getPath());
 -                        $my_tree[$cur]['parent'] = $par;
 -                        $my_tree[$cur]['children'] = array();
 -                        $class_children = $this->classes->getDefiniteChildren($x->getName(), $x->curfile);
 -                        continue;
 -                    } else
 -                    {
 -                        $class_children = false;
 -                        continue;
 -                    }
 -                }
 -                foreach($class_children as $chileclass => $chilefile)
 -                {
 -                    $ch = $this->classes->getClass($chileclass,$chilefile);
 -                    $my_tree[$cur]['children'][] = array('class' => $ch->getName(), 'package' => $ch->docblock->package);
 -                }
 -                usort($my_tree[$cur]['children'],'rootcmp');
 -                if (isset($my_tree[$cur]['children'][$childpos]))
 -                {
 -                    array_push($lastcur, array($cur, $childpos));
 -                    $par = $cur;
 -                    $cur = $my_tree[$cur]['children'][$childpos];
 -                    $x = $this->classes->getClassByPackage($cur['class'],$cur['package']);
 -                    $cur = $cur['package'] . '#' . $cur['class'];
 -                    $my_tree[$cur]['link'] = Converter::getClassLink($x->getName(),$x->docblock->package,$x->getPath());
 -                    $my_tree[$cur]['parent'] = $par;
 -                    $my_tree[$cur]['children'] = array();
 -                    $childpos = 0;
 -                    $class_children = $this->classes->getDefiniteChildren($x->getName(), $x->curfile);
 -                } else
 -                {
 -                    list($cur, $childpos) = array_pop($lastcur);
 -                }
 -            } while ($cur);
 -        }
 -        return $my_tree;
 -    }
 -
 -    /**
 -     * do not override
 -     * @return bool true if a link to this class exists in package $package and subpackage $subpackage
 -     * @param string $expr class name
 -     * @param string $package package to search in
 -     * @param string $subpackage subpackage to search in
 -     * @access private
 -     */
 -    function isLinkedClass($expr,$package,$subpackage,$file=false)
 -    {
 -        if ($file)
 -        return isset($this->linkswithfile[$package][$subpackage]['class'][$file][$expr]);
 -        return isset($this->links[$package][$subpackage]['class'][$expr]);
 -    }
 -
 -    /**
 -     * do not override
 -     * @return bool true if a link to this function exists in package $package and subpackage $subpackage
 -     * @param string $expr function name
 -     * @param string $package package to search in
 -     * @param string $subpackage subpackage to search in
 -     * @access private
 -     */
 -    function isLinkedFunction($expr,$package,$subpackage,$file=false)
 -    {
 -        if ($file)
 -        return isset($this->linkswithfile[$package][$subpackage]['function'][$file][$expr]);
 -        return isset($this->links[$package][$subpackage]['function'][$expr]);
 -    }
 -
 -    /**
 -     * do not override
 -     * @return bool true if a link to this define exists in package $package and subpackage $subpackage
 -     * @param string $expr define name
 -     * @param string $package package to search in
 -     * @param string $subpackage subpackage to search in
 -     * @access private
 -     */
 -    function isLinkedDefine($expr,$package,$subpackage,$file=false)
 -    {
 -        if ($file)
 -        return isset($this->linkswithfile[$package][$subpackage]['define'][$file][$expr]);
 -        return isset($this->links[$package][$subpackage]['define'][$expr]);
 -    }
 -
 -    /**
 -     * do not override
 -     * @return bool true if a link to this define exists in package $package and subpackage $subpackage
 -     * @param string $expr define name
 -     * @param string $package package to search in
 -     * @param string $subpackage subpackage to search in
 -     * @access private
 -     */
 -    function isLinkedGlobal($expr,$package,$subpackage,$file=false)
 -    {
 -        if ($file)
 -        return isset($this->linkswithfile[$package][$subpackage]['global'][$file][$expr]);
 -        return isset($this->links[$package][$subpackage]['global'][$expr]);
 -    }
 -
 -    /**
 -     * do not override
 -     * @return bool true if a link to this procedural page exists in package $package and subpackage $subpackage
 -     * @param string $expr procedural page name
 -     * @param string $package package to search in
 -     * @param string $subpackage subpackage to search in
 -     * @access private
 -     */
 -    function isLinkedPage($expr,$package,$subpackage,$path=false)
 -    {
 -        if ($path)
 -        return isset($this->linkswithfile[$package][$subpackage]['page'][$path][$expr]);
 -        return isset($this->links[$package][$subpackage]['page'][$expr]);
 -    }
 -
 -    /**
 -     * do not override
 -     * @return bool true if a link to this method exists in package $package, subpackage $subpackage and class $class
 -     * @param string $expr method name
 -     * @param string $class class name
 -     * @param string $package package to search in
 -     * @param string $subpackage subpackage to search in
 -     * @access private
 -     */
 -    function isLinkedMethod($expr,$package,$subpackage,$class,$file=false)
 -    {
 -        if ($file)
 -        return isset($this->linkswithfile[$package][$subpackage]['method'][$file][$class][$expr]);
 -        return isset($this->links[$package][$subpackage]['method'][$class][$expr]);
 -    }
 -
 -    /**
 -     * do not override
 -     * @return bool true if a link to this method exists in package $package, subpackage $subpackage and class $class
 -     * @param string $expr var name
 -     * @param string $class class name
 -     * @param string $package package to search in
 -     * @param string $subpackage subpackage to search in
 -     * @access private
 -     */
 -    function isLinkedVar($expr,$package,$subpackage,$class,$file=false)
 -    {
 -        if ($file)
 -        return isset($this->linkswithfile[$package][$subpackage]['var'][$file][$class][$expr]);
 -        return isset($this->links[$package][$subpackage]['var'][$class][$expr]);
 -    }
 -
 -    /**
 -     * do not override
 -     * @return bool true if a link to this method exists in package $package, subpackage $subpackage and class $class
 -     * @param string $expr constant name
 -     * @param string $class class name
 -     * @param string $package package to search in
 -     * @param string $subpackage subpackage to search in
 -     * @access private
 -     */
 -    function isLinkedConst($expr,$package,$subpackage,$class,$file=false)
 -    {
 -        if ($file)
 -        return isset($this->linkswithfile[$package][$subpackage]['const'][$file][$class][$expr]);
 -        return isset($this->links[$package][$subpackage]['const'][$class][$expr]);
 -    }
 -
 -    /**
 -     * return false or a {@link classLink} to $expr
 -     * @param string $expr class name
 -     * @param string $package package name
 -     * @return mixed returns a {@link classLink} or false if the element is not found in package $package
 -     * @see classLink
 -     */
 -    function getClassLink($expr,$package,$file=false, $text = false)
 -    {
 -        if (!isset($this->links[$package])) return false;
 -        foreach($this->links[$package] as $subpackage => $notused)
 -        {
 -            if ($this->isLinkedClass($expr,$package,$subpackage,$file))
 -            {
 -                if ($file)
 -                {
 -                    return $this->linkswithfile[$package][$subpackage]['class'][$file][$expr];
 -                }
 -                return $this->links[$package][$subpackage]['class'][$expr];
 -            }
 -        }
 -        return false;
 -    }
 -
 -    /**
 -     * return false or a {@link functionLink} to $expr
 -     * @param string $expr function name
 -     * @param string $package package name
 -     * @return mixed returns a {@link functionLink} or false if the element is not found in package $package
 -     * @see functionLink
 -     */
 -    function getFunctionLink($expr,$package,$file=false, $text = false)
 -    {
 -        if (!isset($this->links[$package])) return false;
 -        foreach($this->links[$package] as $subpackage => $notused)
 -        {
 -            if ($this->isLinkedFunction($expr,$package,$subpackage,$file))
 -            {
 -                if ($file)
 -                {
 -                    return $this->linkswithfile[$package][$subpackage]['function'][$file][$expr];
 -                }
 -                return $this->links[$package][$subpackage]['function'][$expr];
 -            }
 -        }
 -        return false;
 -    }
 -
 -    /**
 -     * return false or a {@link defineLink} to $expr
 -     * @param string $expr constant name
 -     * @param string $package package name
 -     * @return mixed returns a {@link defineLink} or false if the element is not found in package $package
 -     * @see defineLink
 -     */
 -    function getDefineLink($expr,$package,$file=false, $text = false)
 -    {
 -        if (!isset($this->links[$package])) return false;
 -        foreach($this->links[$package] as $subpackage => $notused)
 -        {
 -            if ($this->isLinkedDefine($expr,$package,$subpackage,$file))
 -            {
 -                if ($file)
 -                {
 -                    return $this->linkswithfile[$package][$subpackage]['define'][$file][$expr];
 -                }
 -                return $this->links[$package][$subpackage]['define'][$expr];
 -            }
 -        }
 -        return false;
 -    }
 -
 -    /**
 -     * return false or a {@link globalLink} to $expr
 -     * @param string $expr global variable name (with leading $)
 -     * @param string $package package name
 -     * @return mixed returns a {@link defineLink} or false if the element is not found in package $package
 -     * @see defineLink
 -     */
 -    function getGlobalLink($expr,$package,$file=false, $text = false)
 -    {
 -        if (!isset($this->links[$package])) return false;
 -        foreach($this->links[$package] as $subpackage => $notused)
 -        {
 -            if ($this->isLinkedGlobal($expr,$package,$subpackage,$file))
 -            {
 -                if ($file)
 -                {
 -                    return $this->linkswithfile[$package][$subpackage]['global'][$file][$expr];
 -                }
 -                return $this->links[$package][$subpackage]['global'][$expr];
 -            }
 -        }
 -        return false;
 -    }
 -
 -    /**
 -     * return false or a {@link pageLink} to $expr
 -     * @param string $expr procedural page name
 -     * @param string $package package name
 -     * @return mixed returns a {@link pageLink} or false if the element is not found in package $package
 -     * @see pageLink
 -     */
 -    function getPageLink($expr,$package,$path = false, $text = false, $packages = false)
 -    {
 -        if (!isset($this->links[$package])) return false;
 -        foreach($this->links[$package] as $subpackage => $notused)
 -        {
 -            if ($this->isLinkedPage($expr,$package,$subpackage,$path))
 -            {
 -                if ($path)
 -                {
 -                    return $this->linkswithfile[$package][$subpackage]['page'][$path][$expr];
 -                }
 -                return $this->links[$package][$subpackage]['page'][$expr];
 -            }
 -        }
 -        return false;
 -    }
 -
 -    /**
 -     * return false or a {@link methodLink} to $expr in $class
 -     * @param string $expr method name
 -     * @param string $class class name
 -     * @param string $package package name
 -     * @return mixed returns a {@link methodLink} or false if the element is not found in package $package, class $class
 -     * @see methodLink
 -     */
 -    function getMethodLink($expr,$class,$package,$file=false, $text = false)
 -    {
 -        $expr = trim($expr);
 -        $class = trim($class);
 -        if (!isset($this->links[$package])) return false;
 -        foreach($this->links[$package] as $subpackage => $notused)
 -        {
 -            if ($this->isLinkedMethod($expr,$package,$subpackage,$class,$file))
 -            {
 -                if ($file)
 -                {
 -                    return $this->linkswithfile[$package][$subpackage]['method'][$file][$class][$expr];
 -                }
 -                return $this->links[$package][$subpackage]['method'][$class][$expr];
 -            }
 -        }
 -        return false;
 -    }
 -
 -    /**
 -     * return false or a {@link varLink} to $expr in $class
 -     * @param string $expr var name
 -     * @param string $class class name
 -     * @param string $package package name
 -     * @return mixed returns a {@link varLink} or false if the element is not found in package $package, class $class
 -     * @see varLink
 -     */
 -    function getVarLink($expr,$class,$package,$file=false, $text = false)
 -    {
 -        $expr = trim($expr);
 -        $class = trim($class);
 -        if (!isset($this->links[$package])) return false;
 -        foreach($this->links[$package] as $subpackage => $notused)
 -        {
 -            if ($this->isLinkedVar($expr,$package,$subpackage,$class,$file))
 -            {
 -                if ($file)
 -                {
 -                    return $this->linkswithfile[$package][$subpackage]['var'][$file][$class][$expr];
 -                }
 -                return $this->links[$package][$subpackage]['var'][$class][$expr];
 -            }
 -        }
 -        return false;
 -    }
 -
 -    /**
 -     * return false or a {@link constLink} to $expr in $class
 -     * @param string $expr constant name
 -     * @param string $class class name
 -     * @param string $package package name
 -     * @return mixed returns a {@link varLink} or false if the element is not found in package $package, class $class
 -     * @see constLink
 -     */
 -    function getConstLink($expr,$class,$package,$file=false, $text = false)
 -    {
 -        $expr = trim($expr);
 -        $class = trim($class);
 -        if (!isset($this->links[$package])) return false;
 -        foreach($this->links[$package] as $subpackage => $notused)
 -        {
 -            if ($this->isLinkedConst($expr,$package,$subpackage,$class,$file))
 -            {
 -                if ($file)
 -                {
 -                    return $this->linkswithfile[$package][$subpackage]['const'][$file][$class][$expr];
 -                }
 -                return $this->links[$package][$subpackage]['const'][$class][$expr];
 -            }
 -        }
 -        return false;
 -    }
 -
 -    /**
 -     * The meat of the @tutorial tag and inline {@}tutorial} tag
 -     *
 -     * Take a string and return an abstract link to the tutorial it represents.
 -     * Since tutorial naming literally works like the underlying filesystem, the
 -     * way to reference the tutorial is similar.  Tutorials are located in a
 -     * subdirectory of any directory parsed, which is named 'tutorials/' (we
 -     * try to make things simple when we can :).  They are further organized by
 -     * package and subpackage as:
 -     *
 -     * tutorials/package/subpackage
 -     *
 -     * and the files are named *.cls, *.pkg, or *.proc, and so a link to a tutorial
 -     * named file.cls can be referenced (depending on context) as any of:
 -     *
 -     * <code>
 -     * * @tutorial package/subpackage/file.cls
 -     * * @tutorial package/file.cls
 -     * * @tutorial file.cls
 -     * </code>
 -     *
 -     * The first case will only be needed if file.cls exists in both the current
 -     * package, in anotherpackage/file.cls and in anotherpackage/subpackage/file.cls
 -     * and you wish to reference the one in anotherpackage/subpackage.
 -     * The second case is only needed if you wish to reference file.cls in another
 -     * package and it is unique in that package. the third will link to the first
 -     * file.cls it finds using this search method:
 -     *
 -     * <ol>
 -     *    <li>current package/subpackage</li>
 -     *    <li>all other subpackages of current package</li>
 -     *    <li>parent package, if this package has classes that extend classes in
 -     *    another package</li>
 -     *    <li>all other packages</li>
 -     * </ol>
 -     * @return tutorialLink|string returns either a link, or the original text, if not found
 -     * @param string the original expression
 -     * @param string package to look in first
 -     * @param string subpackage to look in first
 -     * @param array array of package names to search in if not found in parent packages.
 -     *              This is used to limit the search, phpDocumentor automatically searches
 -     *              all packages
 -     * @since 1.2
 -     */
 -    function getTutorialLink($expr, $package = false, $subpackage = false, $packages = false)
 -    {
 -        // is $expr a comma-delimited list?
 -        if (strpos($expr,','))
 -        {
 -            $a = explode(',',$expr);
 -            $b = array();
 -            for($i=0;$i<count($a);$i++)
 -            {
 -                // if so return each component with a link
 -                $b[] = Converter::getTutorialLink(trim($a[$i]));
 -            }
 -            return $b;
 -        }
 -        $subsection = '';
 -        if (strpos($expr,'#'))
 -        {
 -            $a = explode('#',$expr);
 -            $org = $expr;
 -            $expr = $a[0];
 -            $subsection = $a[1];
 -        }
 -        if (strpos($expr,'/'))
 -        {
 -            $a = explode('/',$expr);
 -            if (count($a) == 3)
 -            {
 -                return Converter::getTutorialLink($a[2],$a[0],$a[1],array());
 -            }
 -            if (count($a) == 2)
 -            {
 -                return Converter::getTutorialLink($a[1],$a[0],false,array());
 -            }
 -        }
 -        if (!$package) $package = $this->package;
 -        if (!$subpackage) $subpackage = $this->subpackage;
 -        if (!isset($this->all_packages[$package])) return $expr;
 -        elseif (isset($packages[$package])) unset($packages[$package]);
 -        $ext = pathinfo($expr, PATHINFO_EXTENSION);
 -        if (isset($this->tutorials[$package][$subpackage][$ext][$expr]))
 -        {
 -            $a = $this->tutorials[$package][$subpackage][$ext][$expr];
 -            $link = new tutorialLink;
 -            $link->addLink($subsection,$a->path,$a->name,$a->package,$a->subpackage,$a->getTitle($this,$subsection));
 -            return $link;
 -        }
 -        do
 -        {
 -            if (!is_array($packages))
 -            {
 -                $packages = $this->all_packages;
 -                if (isset($packages[$package])) unset($packages[$package]);
 -            }
 -            if (isset($this->tutorials[$package]))
 -            {
 -                if (isset($this->tutorials[$package][$subpackage][$ext][$expr]))
 -                {
 -                    $a = $this->tutorials[$package][$subpackage][$ext][$expr];
 -                    $link = new tutorialLink;
 -                    $link->addLink($subsection,$a->path,$a->name,$a->package,$a->subpackage,$a->getTitle($this));
 -                    return $link;
 -                } else
 -                {
 -                    foreach($this->tutorials[$package] as $subpackage => $stuff)
 -                    {
 -                        if (isset($stuff[$ext][$expr]))
 -                        {
 -                            $a = $stuff[$ext][$expr];
 -                            $link = new tutorialLink;
 -                            $link->addLink($subsection,$a->path,$a->name,$a->package,$a->subpackage,$a->getTitle($this));
 -                            return $link;
 -                        }
 -                    }
 -                }
 -            }
 -            // try other packages
 -            // look in parent package first, if found
 -            if (isset($this->package_parents[$package]))
 -            {
 -                $p1 = $package;
 -                $package = $this->package_parents[$package];
 -            } else
 -            {
 -                // no parent package, so start with the first one that's left
 -                list($package,) = @each($packages);
 -            }
 -            if ($package)
 -            {
 -                if (isset($packages[$package])) unset($packages[$package]);
 -            }
 -        } while (count($packages) || $package);
 -        addWarning(PDERROR_TUTORIAL_NOT_FOUND,$expr);
 -        return $expr;
 -    }
 -
 -    /**
 -     * The meat of the @see tag and inline {@}link} tag
 -     *
 -     * $expr is a string with many allowable formats:
 -     * <ol>
 -     *  <li>proceduralpagename.ext</li>
 -     *  <li>constant_name</li>
 -     *  <li>classname::function()</li>
 -     *  <li>classname::constantname</li> (new 1.2.4)
 -     *  <li>classname::$variablename</li>
 -     *  <li>classname</li>
 -     *  <li>function functionname()</li>
 -     *  <li>global $globalvarname</li>
 -     *  <li>packagename#expr where expr is any of the above</li>
 -     * </ol>
 -     *
 -     * New in version 1.1, you can explicitly specify a package to link to that
 -     * is different from the current package.  Use the # operator
 -     * to specify a new package, as in tests#bug-540368.php (which should appear
 -     * as a link like: "{@link tests#bug-540368.php}").  This
 -     * example links to the procedural page bug-540368.php in package
 -     * tests.  Also, the "function" operator is now used to specifically
 -     * link to a function instead of a method in the current class.
 -     *
 -     * <code>
 -     * class myclass
 -     * {
 -     *  // from inside the class definition, use "function conflict()" to refer to procedural function "conflict()"
 -     *    function conflict()
 -     *    {
 -     *    }
 -     * }
 -     *
 -     * function conflict()
 -     * {
 -     * }
 -     * </code>
 -     *
 -     * If classname:: is not present, and the see tag is in a documentation
 -     * block within a class, then the function uses the classname to
 -     * search for $expr as a function or variable within classname, or any of its parent classes.
 -     * given an $expr without '$', '::' or '()' getLink first searches for
 -     * classes, procedural pages, constants, global variables, and then searches for
 -     * methods and variables within the default class, and finally for any function
 -     *
 -     * @param string $expr expression to search for a link
 -     * @param string $package package to start searching in
 -     * @param array $packages list of all packages to search in
 -     * @return mixed getLink returns a descendant of {@link abstractLink} if it finds a link, otherwise it returns a string
 -     * @see getPageLink(), getDefineLink(), getVarLink(), getFunctionLink(), getClassLink()
 -     * @see pageLink, functionLink, defineLink, classLink, methodLink, varLink
 -     */
 -    function &getLink($expr, $package = false, $packages = false)
 -    {
 -        // is $expr a comma-delimited list?
 -        if (strpos($expr,','))
 -        {
 -            $a = explode(',',$expr);
 -            $b = array();
 -            for($i=0;$i<count($a);$i++)
 -            {
 -                // if so return each component with a link
 -                $b[] = Converter::getLink(trim($a[$i]));
 -            }
 -            return $b;
 -        }
 -        if (strpos($expr,'#'))
 -        {
 -            $a = explode('#',$expr);
 -            if (count($a) == 2)
 -            { // can have exactly 1 package override, otherwise it's ignored
 -                // feature 564991, link to php manual
 -                if ($a[0] == 'PHP_MANUAL')
 -                return 'http://www.php.net/'.$a[1];
 -                return Converter::getLink($a[1],$a[0],array());
 -            }
 -        }
 -        $a = &$this->_getLink($expr, $package, $packages);
 -        return $a;
 -    }
 -
 -    /**
 -     * @access private
 -     */
 -    function &_getLink($expr, $package = false, $packages = false)
 -    {
 -        if (!$package) $package = $this->package;
 -        //
 -        if (!isset($this->all_packages[$package])) return $expr;
 -        elseif (isset($packages[$package])) unset($packages[$package]);
 -        $links = &$this->links;
 -        $class = $this->class;
 -        if (strpos($expr,'function ') === 0)
 -        { // asking for a function, not a method
 -            if ($test = Converter::getFunctionLink(str_replace('function ','',str_replace('()','',$expr)), $package)) return $test;
 -            else return $expr;
 -        }
 -        if (strpos($expr,'global ') === 0)
 -        { // asking for a global variable
 -            if ($test = Converter::getGlobalLink(str_replace('global ','',$expr), $package)) return $test;
 -            else return $expr;
 -        }
 -        if (strpos($expr,'object ') === 0)
 -        { // asking for a class
 -            if ($test = Converter::getClassLink(str_replace('object ','',$expr), $package)) return $test;
 -            else return $expr;
 -        }
 -        if (strpos($expr,'constant ') === 0)
 -        { // asking for a class
 -            if ($test = Converter::getDefineLink(str_replace('constant ','',$expr), $package)) return $test;
 -            else return $expr;
 -        }
 -        // are we in a class?
 -        if ($class)
 -        {
 -            // is $expr simply a word? see if it is the class
 -            if (trim($expr) == $class)
 -            {
 -                if ($test = Converter::getClassLink(trim(str_replace('object ','',$expr)),$package)) return $test;
 -            }
 -            // if not, check to see if it is a method or variable of this class tree
 -            if (!strpos($expr,'::'))
 -            {
 -                // if get is neither get() nor $get, assume get is a function, add () to make get()
 -                if (strpos($expr,'$') !== 0 && !strpos($expr,'()')) //$get = $get.'()';
 -                {
 -                    if ($a = $this->getLinkMethod($expr,$class,$package)) return $a;
 -                    if ($a = $this->getLinkConst($expr,$class,$package)) return $a;
 -                    if ($a = $this->getLinkVar('$'.$expr,$class,$package)) return $a;
 -                }
 -                if (strpos($expr,'()')) if ($a = $this->getLinkMethod($expr,$class,$package)) return $a;
 -                if (is_numeric(strpos($expr,'$'))) if ($a = $this->getLinkVar($expr,$class,$package)) return $a;
 -            }
 -        }
 -        if ($test = Converter::getClassLink(trim(str_replace('object ','',$expr)),$package)) return $test;
 -        if ($test = Converter::getPageLink(trim($expr),$package)) return $test;
 -        if ($test = Converter::getDefineLink(trim($expr),$package)) return $test;
 -        if ($test = Converter::getGlobalLink(trim($expr),$package)) return $test;
 -//        if (strpos($expr,'.'))
 -        // package specified
 -
 -        if (!is_array($packages))
 -        {
 -            $packages = $this->all_packages;
 -        }
 -        do
 -        {
 -            if (isset($packages[$package])) unset($packages[$package]);
 -            if ($test = Converter::getClassLink(str_replace('object ','',$expr),$package)) return $test;
 -            if ($test = Converter::getPageLink($expr,$package)) return $test;
 -            if ($test = Converter::getDefineLink($expr,$package)) return $test;
 -            if ($test = Converter::getGlobalLink($expr,$package)) return $test;
 -            // is $expr in class::method() or class::$variable format?
 -            if (strpos($expr,'function ') === 0)
 -            { // asking for a function, not a method
 -                if ($test = Converter::getFunctionLink(str_replace('function','',str_replace('()','',$expr)), $package)) return $test;
 -                else return $expr;
 -            }
 -            $test = $this->_getDoubleColon($expr, $package, $packages, $class, $links);
 -            if (!is_string($test)) return $test;
 -            if (strpos($test, 'parent::') === 0) return $test;
 -            // $expr does not have ::
 -            if (is_numeric(@strpos('$',$expr)))
 -            {
 -                // default to current class, whose name is contained in $this->render->parent
 -                if ($test = Converter::getVarLink($expr, $class, $package)) return $test;
 -            }
 -            // $expr is a function? (non-method)
 -            if (@strpos($expr,'()'))
 -            {
 -                // otherwise, see if it is a method
 -                if ($class)
 -                {
 -                    if ($test = Converter::getMethodLink(str_replace('()','',$expr), $class, $package)) return $test;
 -                }
 -                // extract the function name, use it to retrieve the file that the function is in
 -    //            $page = $this->func_page[str_replace('function ','',str_replace('()','',$expr))];
 -                // return the link
 -                if ($test = Converter::getFunctionLink(str_replace('function ','',str_replace('()','',$expr)), $package)) return $test;
 -            }
 -            // $expr is just a word.  First, test to see if it is a function of the current package
 -            if ($test = Converter::getFunctionLink(str_replace('function ','',str_replace('()','',$expr)), $package)) return $test;
 -            // try other packages
 -            // look in parent package first, if found
 -            if (isset($this->package_parents[$package]) && in_array($this->package_parents[$package], $packages))
 -            {
 -                $p1 = $package;
 -                $package = $this->package_parents[$package];
 -                if ($package)
 -                {
 -                    if (isset($packages[$package])) unset($packages[$package]);
 -                }
 -                continue;
 -            }
 -            // no parent package, so start with the first one that's left
 -            $package = @array_shift(@array_keys($packages));
 -            if ($package && isset($packages[$package]))
 -            {
 -                unset($packages[$package]);
 -            }
 -        } while (count($packages) || $package);
 -        $funcs = get_defined_functions();
 -        // feature 564991, link to php manual
 -        if (in_array(str_replace(array('(',')'),array('',''),$expr),$funcs['internal']))
 -        {
 -            return 'http://www.php.net/'.str_replace(array('(',')'),array('',''),$expr);
 -        }
 -        // no links found
 -        return $expr;
 -    }
 -
 -    /**
 -     * Split up getLink to make it easier to debug
 -     * @access private
 -     */
 -    function _getDoubleColon(&$expr, &$package, &$packages, $class, $links)
 -    {
 -        if (@strpos($expr,'::'))
 -        {
 -            $class_method = explode('::',$expr);
 -            if ($class_method[0] == 'parent')
 -            {
 -                // can only have parent in the same package as the class!  subtle bug
 -                $package = $this->package;
 -                $packages = array();
 -                $cl = $this->classes->getClassByPackage($class,$package);
 -                if (!$cl)
 -                { // this is possible if an example file has parent::method()
 -                    return $expr;
 -                }
 -                $par = $cl->getParent($this);
 -                $phpparent = false;
 -                if (is_object($par))
 -                {
 -                    $package = $par->docblock->package;
 -                    $phpparent = $par->getName();
 -                } else
 -                {
 -                    addWarning(PDERROR_CLASS_PARENT_NOT_FOUND,$class,$package,$class_method[1]);
 -                    return $expr;
 -                }
 -                if ($phpparent) $class_method[0] = $phpparent;
 -            }
 -            if (strpos($class_method[1],'()'))
 -            {
 -                // strip everything but the function name, return a link
 -                if ($test = Converter::getMethodLink(str_replace('()','',$class_method[1]), $class_method[0], $package)) return $test;
 -            }
 -            if ($test = Converter::getVarLink($class_method[1], $class_method[0], $package)) return $test;
 -            if ($test = Converter::getConstLink($class_method[1], $class_method[0], $package)) return $test;
 -        }
 -        return $expr;
 -    }
 -
 -    /**
 -     * cycle through parent classes to retrieve a link to a method
 -     * do not use or override, used by getLink
 -     * @access private
 -     */
 -    function &getLinkMethod($expr, $class, $package)
 -    {
 -        $links = &$this->links;
 -        do
 -        {
 -            // is $expr in class::method() or class::$variable format?
 -            if (@strpos($expr,'::'))
 -            {
 -                $class_method = explode('::',$expr);
 -                if ($class_method[0] == 'parent')
 -                {
 -                    $cl = $this->classes->getClassByPackage($class,$package);
 -                    $par = $cl->getParent($this);
 -                    $phpparent = false;
 -                    if (is_object($par))
 -                    {
 -                        $package = $par->docblock->package;
 -                        $phpparent = $par->getName();
 -                    } else addWarning(PDERROR_CLASSPARENT_NOTFOUND,$class,$package,$class_method[1]);
 -                    if ($phpparent) $class_method[0] = $phpparent;
 -                } else
 -                {
 -                    $cl = $this->classes->getClassByPackage($class,$package);
 -                }
 -                if (strpos($class_method[1],'()'))
 -                {
 -                    // strip everything but the function name, return a link
 -                    if ($test = Converter::getMethodLink(str_replace('function ','',str_replace('()','',$class_method[1])), $class_method[0], $package)) return $test;
 -                }
 -            }
 -            if ($test = Converter::getMethodLink(str_replace('()','',$expr), $class, $package)) return $test;
 -            $cl = $this->classes->getClassByPackage($class,$package);
 -            if ($cl)
 -            {
 -                $par = $cl->getParent($this);
 -                if (is_object($par))
 -                {
 -                    $package = $par->docblock->package;
 -                    $class = $par->getName();
 -                } else $class = $par;
 -            } else $class = false;
 -        } while ($class);
 -        // no links found
 -        return false;
 -    }
 -
 -    /**
 -     * cycle through parent classes to retrieve a link to a var
 -     * do not use or override, used by getLink
 -     * @access private
 -     */
 -    function &getLinkVar($expr, $class, $package)
 -    {
 -        $links = &$this->links;
 -        do
 -        {
 -            // is $expr in class::method() or class::$variable format?
 -            if (@strpos($expr,'::'))
 -            {
 -                $class_method = explode('::',$expr);
 -                if ($class_method[0] == 'parent')
 -                {
 -                    $cl = $this->classes->getClassByPackage($class,$package);
 -                    $phpparent = false;
 -                    $par = $cl->getParent($this);
 -                    if (is_object($par))
 -                    {
 -                        $package = $par->docblock->package;
 -                        $phpparent = $par->getName();
 -                    } else addWarning(PDERROR_CLASSPARENT_NOTFOUND,$class,$package,$class_method[1]);
 -                    if ($phpparent) $class_method[0] = $phpparent;
 -                } else
 -                {
 -                    $cl = $this->classes->getClassByPackage($class,$package);
 -                }
 -                if ($test = Converter::getVarLink($class_method[1], $class_method[0], $package)) return $test;
 -                if ($test = Converter::getVarLink('$'.$class_method[1], $class_method[0], $package)) return $test;
 -            }
 -            if ($test = Converter::getVarLink($expr, $class, $package)) return $test;
 -            if ($test = Converter::getVarLink('$'.$expr, $class, $package)) return $test;
 -            $cl = $this->classes->getClassByPackage($class,$package);
 -            if ($cl)
 -            {
 -                $par = $cl->getParent($this);
 -                if (is_object($par))
 -                {
 -                    $package = $par->docblock->package;
 -                    $class = $par->getName();
 -                } else $class = $par;
 -            } else $class = false;
 -        } while ($class);
 -        // no links found
 -        $class = false;
 -        return $class;
 -    }
 -
 -    /**
 -     * cycle through parent classes to retrieve a link to a class constant
 -     * do not use or override, used by getLink
 -     * @access private
 -     * @since 1.2.4
 -     */
 -    function &getLinkConst($expr, $class, $package)
 -    {
 -        $links = &$this->links;
 -        do
 -        {
 -            // is $expr in class::method() or class::$variable format?
 -            if (@strpos($expr,'::'))
 -            {
 -                $class_method = explode('::',$expr);
 -                if ($class_method[0] == 'parent')
 -                {
 -                    $cl = $this->classes->getClassByPackage($class,$package);
 -                    $phpparent = false;
 -                    $par = $cl->getParent($this);
 -                    if (is_object($par))
 -                    {
 -                        $package = $par->docblock->package;
 -                        $phpparent = $par->getName();
 -                    } else addWarning(PDERROR_CLASSPARENT_NOTFOUND,$class,$package,$class_method[1]);
 -                    if ($phpparent) $class_method[0] = $phpparent;
 -                } else
 -                {
 -                    $cl = $this->classes->getClassByPackage($class,$package);
 -                }
 -                if ($test = Converter::getConstLink($class_method[1], $class_method[0], $package)) return $test;
 -            }
 -            if ($test = Converter::getConstLink($expr, $class, $package)) return $test;
 -            $cl = $this->classes->getClassByPackage($class,$package);
 -            if ($cl)
 -            {
 -                $par = $cl->getParent($this);
 -                if (is_object($par))
 -                {
 -                    $package = $par->docblock->package;
 -                    $class = $par->getName();
 -                } else $class = $par;
 -            } else $class = false;
 -        } while ($class);
 -        // no links found
 -        return false;
 -    }
 -
 -    /**
 -     * take URL $link and text $text and return a link in the format needed for the Converter
 -     * @param string URL
 -     * @param string text to display
 -     * @return string link to $link
 -     * @abstract
 -     */
 -    function returnLink($link,$text)
 -    {
 -    }
 -
 -    /**
 -     * take {@link abstractLink} descendant and text $eltext and return a link
 -     * in the format needed for the Converter
 -     * @param abstractLink
 -     * @param string
 -     * @return string link to $element
 -     * @abstract
 -     */
 -    function returnSee(&$link, $eltext = false)
 -    {
 -    }
 -
 -    /**
 -     * take {@link abstractLink} descendant and text $eltext and return a
 -     * unique ID in the format needed for the Converter
 -     * @param abstractLink
 -     * @return string unique identifier of $element
 -     * @abstract
 -     */
 -    function getId(&$link)
 -    {
 -    }
 -
 -    /**
 -     * Convert README/INSTALL/CHANGELOG file contents to output format
 -     * @param README|INSTALL|CHANGELOG
 -     * @param string contents of the file
 -     * @abstract
 -     */
 -    function Convert_RIC($name, $contents)
 -    {
 -    }
 -
 -    /**
 -     * Convert all elements to output format
 -     *
 -     * This will call ConvertXxx where Xxx is {@link ucfirst}($element->type).
 -     * It is expected that a child converter defines a handler for every
 -     * element type, even if that handler does nothing.  phpDocumentor will
 -     * terminate with an error if a handler doesn't exist.
 -     * {@internal
 -     * Since 1.2.0 beta 3, this function has been moved from child converters
 -     * to the parent, because it doesn't really make sense to put it in the
 -     * child converter, and we can add error handling.
 -     *
 -     * {@source}}}
 -     * @throws {@link PDERROR_NO_CONVERT_HANDLER}
 -     * @param mixed {@link parserElement} descendant or {@link parserPackagePage} or {@link parserData}
 -     */
 -    function Convert(&$element)
 -    {
 -        $handler = 'convert'.ucfirst($element->type);
 -        if (method_exists($this,$handler))
 -        {
 -            $this->$handler($element);
 -        } else
 -        {
 -            addErrorDie(PDERROR_NO_CONVERTER_HANDLER,$element->type,$handler,phpDocumentor_get_class($this));
 -        }
 -    }
 -    /**#@+
 -     * Conversion Handlers
 -     *
 -     * All of the convert* handlers set up template variables for the Smarty
 -     * template.{@internal  In addition, the {@link newSmarty()} method is
 -     * called to retrieve the global Smarty template}}
 -     */
 -    /**
 -     * Default Tutorial Handler
 -     *
 -     * Sets up the tutorial template, and its prev/next/parent links
 -     * {@internal
 -     * Retrieves the title using {@link parserTutorial::getTitle()} and uses the
 -     * {@link parserTutorial::prev, parserTutorial::next, parserTutorial::parent}
 -     * links to set up those links.}}
 -     * @param parserTutorial
 -     */
 -    function &convertTutorial(&$element)
 -    {
 -        $this->package = $element->package;
 -        $this->subpackage = $element->subpackage;
 -        $x = $element->Convert($this);
 -        $template = &$this->newSmarty();
 -        $template->assign('contents',$x);
 -        $template->assign('title',$element->getTitle($this));
 -        $template->assign('nav',$element->parent || $element->prev || $element->next);
 -        if ($element->parent)
 -        {
 -            $template->assign('up',$this->getId($element->parent));
 -            $template->assign('uptitle',$element->parent->title);
 -        }
 -        if ($element->prev)
 -        {
 -            $template->assign('prev',$this->getId($element->prev));
 -            $template->assign('prevtitle',$element->prev->title);
 -        }
 -        if ($element->next)
 -        {
 -            $template->assign('next',$this->getId($element->next));
 -            $template->assign('nexttitle',$element->next->title);
 -        }
 -        return $template;
 -    }
 -    /**
 -     * Default Class Handler
 -     *
 -     * Sets up the class template.
 -     * {@internal special methods
 -     * {@link generateChildClassList(), generateFormattedClassTree()},
 -     * {@link getFormattedConflicts, getFormattedInheritedMethods},
 -     * and {@link getFormattedInheritedVars} are called to complete vital
 -     * template setup.}}
 -     */
 -    function convertClass(&$element)
 -    {
 -        $this->class = $element->getName();
 -        $this->class_data = &$this->newSmarty();
 -        $this->class_data->assign("class_name",$element->getName());
 -        $this->class_data->assign("vars",array());
 -        $this->class_data->assign("methods",array());
 -        $this->class_data->assign("consts",array());
 -        $this->class_data->assign("is_interface", $element->isInterface());
 -        $this->class_data->assign("implements", $this->getFormattedImplements($element));
 -        $this->class_data->assign("package",$element->docblock->package);
 -        $this->class_data->assign("line_number",$element->getLineNumber());
 -        $this->class_data->assign("source_location",$element->getSourceLocation($this));
 -				$this->class_data->assign("page_link",$this->getCurrentPageLink());
 -        $docblock = $this->prepareDocBlock($element, false);
 -        $this->class_data->assign("sdesc",$docblock['sdesc']);
 -        $this->class_data->assign("desc",$docblock['desc']);
 -				$this->class_data->assign("access", $docblock['access']);
 -				$this->class_data->assign("abstract", $docblock['abstract']);
 -        $this->class_data->assign("tags",$docblock['tags']);
 -        $this->class_data->assign("api_tags",$docblock['api_tags']);
 -        $this->class_data->assign("info_tags",$docblock['info_tags']);
 -        $this->class_data->assign("utags",$docblock['utags']);
 -        if ($this->hasSourceCode($element->getPath())) {
 -        $this->class_data->assign("class_slink",$this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true));
 -        }
 -
 -        else
 -        $this->class_data->assign("class_slink",false);
 -        $this->class_data->assign("children", $this->generateChildClassList($element));
 -        $this->class_data->assign("class_tree", $this->generateFormattedClassTree($element));
 -        $this->class_data->assign("conflicts", $this->getFormattedConflicts($element,"classes"));
 -        $inherited_methods = $this->getFormattedInheritedMethods($element);
 -        if (!empty($inherited_methods))
 -        {
 -            $this->class_data->assign("imethods",$inherited_methods);
 -        } else
 -        {
 -            $this->class_data->assign("imethods",false);
 -        }
 -        $inherited_vars = $this->getFormattedInheritedVars($element);
 -        if (!empty($inherited_vars))
 -        {
 -            $this->class_data->assign("ivars",$inherited_vars);
 -        } else
 -        {
 -            $this->class_data->assign("ivars",false);
 -        }
 -        $inherited_consts = $this->getFormattedInheritedConsts($element);
 -        if (!empty($inherited_consts))
 -        {
 -            $this->class_data->assign("iconsts",$inherited_consts);
 -        } else
 -        {
 -            $this->class_data->assign("iconsts",false);
 -        }
 -    }
 -
 -
 -    /**
 -     * Converts method for template output
 -     *
 -     * This function must be called by a child converter with any extra
 -     * template variables needed in the parameter $addition
 -     * @param parserMethod
 -     */
 -    function convertMethod(&$element, $additions = array())
 -    {
 -        $fname = $element->getName();
 -        $docblock = $this->prepareDocBlock($element);
 -        $returntype = 'void';
 -        if ($element->isConstructor) $returntype = $element->class;
 -        if ($element->docblock->return)
 -        {
 -            $a = $element->docblock->return->Convert($this);
 -            $returntype = $element->docblock->return->converted_returnType;
 -        }
 -        $params = $param_i = array();
 -        if (count($element->docblock->params))
 -        foreach($element->docblock->params as $param => $val)
 -        {
 -            $a = $val->Convert($this);
 -            $params[] = $param_i[$param] = array("var" => $param,"datatype" => $val->converted_returnType,"data" => $a);
 -        }
 -
 -				if ($element->docblock->hasaccess)
 -					$acc = $element->docblock->tags['access'][0]->value;
 -				else
 -					$acc = 'public';
 -
 -
 -        if ($this->hasSourceCode($element->getPath()))
 -        $additions["slink"] = $this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true);
 -        $this->class_data->append('methods',array_merge(
 -                                             array('sdesc' => $docblock['sdesc'],
 -                                                   'desc' => $docblock['desc'],
 -																									 'access' => $docblock['access'],
 -																									 'abstract' => $docblock['abstract'],
 -                                                   'tags' => $docblock['tags'],
 -                                                   'api_tags' => $docblock['api_tags'],
 -                                                   'info_tags' => $docblock['info_tags'],
 -                                                   'utags' => $docblock['utags'],
 -                                                   'constructor' => $element->isConstructor,
 -																									 'access' => $acc,
 -                                                   'function_name'     => $fname,
 -                                                   'function_return'    => $returntype,
 -                                                   'function_call'     => $element->getFunctionCall(),
 -                                                   'ifunction_call'     => $element->getIntricateFunctionCall($this, $param_i),
 -                                                   'descmethod'    => $this->getFormattedDescMethods($element),
 -                                                   'method_overrides'    => $this->getFormattedOverrides($element),
 -                                                   'line_number' => $element->getLineNumber(),
 -                                                   'id' => $this->getId($element),
 -                                                   'params' => $params),
 -                                             $additions));
 -    }
 -
 -    /**
 -     * Converts class variables for template output.
 -     *
 -     * This function must be called by a child converter with any extra
 -     * template variables needed in the parameter $addition
 -     * @param parserVar
 -     */
 -    function convertVar(&$element, $additions = array())
 -    {
 -        $docblock = $this->prepareDocBlock($element);
 -        $b = 'mixed';
 -
 -        if ($element->docblock->hasaccess)
 -            $acc = $element->docblock->tags['access'][0]->value;
 -        else
 -            $acc = 'public';
 -
 -        if ($element->docblock->var)
 -        {
 -            $b = $element->docblock->var->converted_returnType;
 -        }
 -        if ($this->hasSourceCode($element->getPath()))
 -        $additions["slink"] = $this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true);
 -        $this->class_data->append('vars',array_merge(
 -                                          array('sdesc' => $docblock['sdesc'],
 -                                                'desc' => $docblock['desc'],
 -                                                'abstract' => $docblock['abstract'],
 -                                                'utags' => $docblock['utags'],
 -                                                'tags' => $docblock['tags'],
 -                                                'api_tags' => $docblock['api_tags'],
 -                                                'info_tags' => $docblock['info_tags'],
 -                                                'var_name' => $element->getName(),
 -                                                'var_default' => $this->postProcess($element->getValue()),
 -                                                'var_type' => $b,
 -                                                'access' => $acc,
 -                                                'line_number' => $element->getLineNumber(),
 -                                                'descvar'    => $this->getFormattedDescVars($element),
 -                                                'var_overrides' => $this->getFormattedOverrides($element),
 -                                                'id' => $this->getId($element)),
 -                                          $additions));
 -    }
 -
 -    /**
 -     * Converts class constants for template output.
 -     *
 -     * This function must be called by a child converter with any extra
 -     * template variables needed in the parameter $addition
 -     * @param parserConst
 -     */
 -    function convertConst(&$element, $additions = array())
 -    {
 -        $docblock = $this->prepareDocBlock($element);
 -
 -        if ($element->docblock->hasaccess)
 -        	$acc = $element->docblock->tags['access'][0]->value;
 -        else
 -        	$acc = 'public';
 -
 -        if ($this->hasSourceCode($element->getPath()))
 -        $additions["slink"] = $this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true);
 -        $this->class_data->append('consts',array_merge(
 -                                          array('sdesc' => $docblock['sdesc'],
 -                                                'desc' => $docblock['desc'],
 -                                                'access' => $docblock['access'],
 -                                                'abstract' => $docblock['abstract'],
 -                                                'utags' => $docblock['utags'],
 -                                                'tags' => $docblock['tags'],
 -                                                'api_tags' => $docblock['api_tags'],
 -                                                'info_tags' => $docblock['info_tags'],
 -                                                'const_name' => $element->getName(),
 -                                                'const_value' => $this->postProcess($element->getValue()),
 -                                                'access' => $acc,
 -                                                'line_number' => $element->getLineNumber(),
 -                                                'id' => $this->getId($element)),
 -                                          $additions));
 -    }
 -
 -    /**
 -     * Default Page Handler
 -     *
 -     * {@internal In addition to setting up the smarty template with {@link newSmarty()},
 -     * this class uses {@link getSourceLocation()} and {@link getClassesOnPage()}
 -     * to set template variables.  Also used is {@link getPageName()}, to get
 -     * a Converter-specific name for the page.}}
 -     * @param parserPage
 -     */
 -    function convertPage(&$element)
 -    {
 -        $this->page_data = &$this->newSmarty(true);
 -        $this->page = $this->getPageName($element->parent);
 -        $this->path = $element->parent->getPath();
 -        $this->curpage = &$element->parent;
 -        $this->page_data->assign("source_location",$element->parent->getSourceLocation($this));
 -        $this->page_data->assign("functions",array());
 -        $this->page_data->assign("includes",array());
 -        $this->page_data->assign("defines",array());
 -        $this->page_data->assign("globals",array());
 -        $this->page_data->assign("classes",$this->getClassesOnPage($element));
 -        $this->page_data->assign("name", $element->parent->getFile());
 -        if ($t = $element->getTutorial())
 -        {
 -            $this->page_data->assign("tutorial",$this->returnSee($t));
 -        } else
 -        {
 -            $this->page_data->assign("tutorial",false);
 -        }
 -        if ($element->docblock)
 -        {
 -            $docblock = $this->prepareDocBlock($element, false);
 -            $this->page_data->assign("sdesc",$docblock['sdesc']);
 -            $this->page_data->assign("desc",$docblock['desc']);
 -            $this->page_data->assign("tags",$docblock['tags']);
 -            $this->page_data->assign("api_tags",$docblock['api_tags']);
 -            $this->page_data->assign("info_tags",$docblock['info_tags']);
 -            $this->page_data->assign("utags",$docblock['utags']);
 -        }
 -    }
 -
 -    /**
 -     * Converts global variables for template output
 -     *
 -     * This function must be called by a child converter with any extra
 -     * template variables needed in the parameter $addition
 -     * {@internal
 -     * In addition to using {@link prepareDocBlock()}, this method also
 -     * uses utility functions {@link getGlobalValue(), getFormattedConflicts()}}}
 -     * @param parserGlobal
 -     * @uses postProcess() on global_value template value, makes it displayable
 -     * @param array any additional template variables should be in this array
 -     */
 -    function convertGlobal(&$element, $addition = array())
 -    {
 -        $docblock = $this->prepareDocBlock($element);
 -        $value = $this->getGlobalValue($element->getValue());
 -        if ($this->hasSourceCode($element->getPath()))
 -        $addition["slink"] = $this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true);
 -        $this->page_data->append('globals',array_merge(
 -                                            array('sdesc' => $docblock['sdesc'],
 -                                                  'desc' => $docblock['desc'],
 -                                                  'tags' => $docblock['tags'],
 -                                                  'api_tags' => $docblock['api_tags'],
 -                                                  'info_tags' => $docblock['info_tags'],
 -                                                  'utags' => $docblock['utags'],
 -                                                  'global_name'     => $element->getName(),
 -                                                  'global_type' => $element->getDataType($this),
 -                                                  'global_value'    => $this->postProcess($value),
 -                                                  'line_number' => $element->getLineNumber(),
 -                                                  'global_conflicts'    => $this->getFormattedConflicts($element,"global variables"),
 -                                                  'id' => $this->getId($element)),
 -                                            $addition));
 -    }
 -
 -    /**
 -     * Converts defines for template output
 -     *
 -     * This function must be called by a child converter with any extra
 -     * template variables needed in the parameter $addition
 -     * {@internal
 -     * In addition to using {@link prepareDocBlock()}, this method also
 -     * uses utility functions {@link getGlobalValue(), getFormattedConflicts()}}}
 -     * @param parserDefine
 -     * @uses postProcess() on define_value template value, makes it displayable
 -     * @param array any additional template variables should be in this array
 -     */
 -    function convertDefine(&$element, $addition = array())
 -    {
 -        $docblock = $this->prepareDocBlock($element);
 -        if ($this->hasSourceCode($element->getPath()))
 -        $addition["slink"] = $this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true);
 -        $this->page_data->append('defines',array_merge(
 -                                            array('sdesc' => $docblock['sdesc'],
 -                                                  'desc' => $docblock['desc'],
 -                                                  'tags' => $docblock['tags'],
 -                                                  'api_tags' => $docblock['api_tags'],
 -                                                  'info_tags' => $docblock['info_tags'],
 -                                                  'utags' => $docblock['utags'],
 -                                                  'define_name'     => $element->getName(),
 -                                                  'line_number' => $element->getLineNumber(),
 -                                                  'define_value'    => $this->postProcess($element->getValue()),
 -                                                  'define_conflicts'    => $this->getFormattedConflicts($element,"defines"),
 -                                                  'id' => $this->getId($element)),
 -                                            $addition));
 -    }
 -
 -
 -    /**
 -     * Converts includes for template output
 -     *
 -     * This function must be called by a child converter with any extra
 -     * template variables needed in the parameter $addition
 -     * @see prepareDocBlock()
 -     * @param parserInclude
 -     */
 -    function convertInclude(&$element, $addition = array())
 -    {
 -        $docblock = $this->prepareDocBlock($element);
 -        $per = $this->getIncludeValue($element->getValue(), $element->getPath());
 -
 -        if ($this->hasSourceCode($element->getPath()))
 -        $addition["slink"] = $this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true);
 -        $this->page_data->append('includes',array_merge(
 -                                             array('sdesc' => $docblock['sdesc'],
 -                                                   'desc' => $docblock['desc'],
 -                                                   'tags' => $docblock['tags'],
 -                                                   'api_tags' => $docblock['api_tags'],
 -                                                   'info_tags' => $docblock['info_tags'],
 -                                                   'utags' => $docblock['utags'],
 -                                                   'include_name'     => $element->getName(),
 -                                                   'line_number' => $element->getLineNumber(),
 -                                                   'include_value'    => $per),
 -                                             $addition));
 -    }
 -
 -    /**
 -     * Converts function for template output
 -     *
 -     * This function must be called by a child converter with any extra
 -     * template variables needed in the parameter $addition
 -     * @see prepareDocBlock()
 -     * @param parserFunction
 -     */
 -    function convertFunction(&$element, $addition = array())
 -    {
 -        $docblock = $this->prepareDocBlock($element);
 -        $fname = $element->getName();
 -        $params = $param_i = array();
 -        if (count($element->docblock->params))
 -        foreach($element->docblock->params as $param => $val)
 -        {
 -            $a = $val->Convert($this);
 -            $params[] = $param_i[$param] = array("var" => $param,"datatype" => $val->converted_returnType,"data" => $a);
 -        }
 -        $returntype = 'void';
 -        if ($element->docblock->return)
 -        {
 -            $a = $element->docblock->return->Convert($this);
 -            $returntype = $element->docblock->return->converted_returnType;
 -        }
 -
 -        if ($this->hasSourceCode($element->getPath()))
 -        $addition["slink"] = $this->getSourceAnchor($element->getPath(),$element->getLineNumber(),$element->getLineNumber(),true);
 -        $this->page_data->append('functions',array_merge(
 -                                              array('sdesc' => $docblock['sdesc'],
 -                                                    'desc' => $docblock['desc'],
 -                                                    'tags' => $docblock['tags'],
 -                                                    'api_tags' => $docblock['api_tags'],
 -                                                    'info_tags' => $docblock['info_tags'],
 -                                                    'utags' => $docblock['utags'],
 -                                                    'function_name'     => $fname,
 -                                                    'function_return'    => $returntype,
 -                                                    'function_conflicts'    => $this->getFormattedConflicts($element,"functions"),
 -                                                    'ifunction_call'     => $element->getIntricateFunctionCall($this, $param_i),
 -                                                    'function_call'     => $element->getFunctionCall(),
 -                                                    'line_number' => $element->getLineNumber(),
 -                                                    'id' => $this->getId($element),
 -                                                    'params' => $params),
 -                                              $addition));
 -    }
 -    /**#@-*/
 -
 -    /**
 -     * convert the element's DocBlock for output
 -     *
 -     * This function converts all tags and descriptions for output
 -     * @param mixed any descendant of {@link parserElement}, or {@link parserData}
 -     * @param array used to translate tagnames into other tags
 -     * @param boolean set to false for pages and classes, the only elements allowed to specify @package
 -     * @return array
 -     *
 -     * Format:
 -     * <pre>
 -     * array('sdesc' => DocBlock summary
 -     *       'desc' => DocBlock detailed description
 -     *       'tags' => array('keyword' => tagname, 'data' => tag description)
 -     *                 known tags
 -     *       'api_tags' => array('keyword' => tagname, 'data' => tag description)
 -     *                 known api documentation tags
 -     *       'info_tags' => array('keyword' => tagname, 'data' => tag description)
 -     *                 known informational tags
 -     *     [ 'utags' => array('keyword' => tagname, 'data' => tag description
 -     *                 unknown tags ]
 -     *     [ 'vartype' => type from @var/@return tag ]
 -     *     [ 'var_descrip' => description from @var/@return tag ]
 -     *      )
 -     * </pre>
 -     */
 -    function prepareDocBlock(&$element, $names = array(),$nopackage = true)
 -    {
 -        $tagses = $element->docblock->listTags();
 -        $tags = $ret = $api_tags = $info_tags = array();
 -        $api_tags_arr = array("abstract", "access", "deprecated", "example", "filesource",
 -                             "global", "internal", "name", "return", "see", "static",
 -                             "staticvar", "uses", "var");
 -        if (!$nopackage)
 -        {
 -            $tags[] = array('keyword' => 'package','data' => $element->docblock->package);
 -            if (!empty($element->docblock->subpackage)) $tags[] = array('keyword' => 'subpackage','data' => $element->docblock->subpackage);
 -        }
 -        if ($element->docblock->var)
 -        {
 -            $a = $element->docblock->var->Convert($this);
 -            $ret['vartype'] = $element->docblock->var->converted_returnType;
 -            if (!empty($a))
 -            {
 -                $tags[] = array('keyword' => 'var', 'data' => $a);
 -                $ret["var_descrip"] = $a;
 -            }
 -        }
 -        if ($element->docblock->return)
 -        {
 -            $a = $element->docblock->return->Convert($this);
 -            $ret['vartype'] = $element->docblock->return->converted_returnType;
 -            if (!empty($a))
 -            {
 -                $tags[] = $api_tags[] = array('keyword' => 'return', 'data' => $a);
 -                $ret["var_descrip"] = $a;
 -            }
 -        }
 -        if ($element->docblock->funcglobals)
 -        foreach($element->docblock->funcglobals as $global => $val)
 -        {
 -            if ($a = $this->getGlobalLink($global,$element->docblock->package))
 -            {
 -                $global = $a;
 -            }
 -            $b = Converter::getLink($val[0]);
 -            if (is_object($b) && phpDocumentor_get_class($b) == 'classlink')
 -            {
 -                $val[0] = $this->returnSee($b);
 -            }
 -            $tags[] = $api_tags[] = array('keyword' => 'global','data' => $val[0].' '.$global.': '.$val[1]->Convert($this));
 -        }
 -        if ($element->docblock->statics)
 -        foreach($element->docblock->statics as $static => $val)
 -        {
 -            $a = $val->Convert($this);
 -            $tags[] = $api_tags[] = array('keyword' => 'staticvar','data' => $val->converted_returnType.' '.$static.': '.$a);
 -        }
 -        foreach($tagses as $tag)
 -        {
 -            if (isset($names[$tag->keyword])) $tag->keyword = $names[$tag->keyword];
 -            if ($tag->keyword)
 -                $tags[] = array("keyword" => $tag->keyword,"data" => $tag->Convert($this));
 -            if (in_array($tag->keyword, $api_tags_arr))
 -                $api_tags[] = array("keyword" => $tag->keyword,"data" => $tag->Convert($this));
 -            else
 -                $info_tags[] = array("keyword" => $tag->keyword,"data" => $tag->Convert($this));
 -        }
 -        $utags = array();
 -        foreach($element->docblock->unknown_tags as $keyword => $tag)
 -        {
 -            foreach($tag as $t)
 -            $utags[] = array('keyword' => $keyword, 'data' => $t->Convert($this));
 -        }
 -				$ret['abstract'] = FALSE;
 -				$ret['access'] = 'public';
 -				foreach($tags as $tag)
 -				{
 -						if ($tag['keyword'] == 'access')
 -							  $ret['access'] = $tag['data'];
 -						if ($tag['keyword'] == 'abstract')
 -							  $ret['abstract'] = TRUE;
 -				}
 -        $ret['sdesc'] = $element->docblock->getSDesc($this);
 -        $ret['desc'] = $element->docblock->getDesc($this);
 -        $ret['tags'] = $tags;
 -        $ret['api_tags'] = $api_tags;
 -        $ret['info_tags'] = $info_tags;
 -        $ret['utags'] = $utags;
 -        return $ret;
 -    }
 -
 -    /**
 -     * gets a list of all classes declared on a procedural page represented by
 -     * $element, a {@link parserData} class
 -     * @param parserData &$element
 -     * @return array links to each classes documentation
 -     *
 -     * Format:
 -     * <pre>
 -     * array('name' => class name,
 -     *       'sdesc' => summary of the class
 -     *       'link' => link to the class's documentation)
 -     * </pre>
 -     */
 -    function getClassesOnPage(&$element)
 -    {
 -        global $_phpDocumentor_setting;
 -        $a = $element->getClasses($this);
 -        $classes = array();
 -        foreach($a as $package => $clas)
 -        {
 -            if (isset($_phpDocumentor_setting['packageoutput']))
 -            {
 -                $packages = explode(',',$_phpDocumentor_setting['packageoutput']);
 -                if (!in_array($package, $packages)) continue;
 -            }
 -            for($i=0; $i<count($clas); $i++)
 -            {
 -                if ($this->parseprivate || ! ($clas[$i]->docblock && $clas[$i]->docblock->hasaccess && $clas[$i]->docblock->tags['access'][0]->value == 'private'))
 -                {
 -                    $sdesc = '';
 -                    $r = array();
 -                    $sdesc = $clas[$i]->docblock->getSDesc($this);
 -                    if ($clas[$i]->docblock->hasaccess)
 -											$r['access'] = $clas[$i]->docblock->tags['access'][0]->value;
 -                    else
 -											$r['access'] = 'public';
 -										if (isset ($clas[$i]->docblock->tags['abstract']))
 -											$r['abstract'] = TRUE;
 -										else
 -											$r['abstract'] = FALSE;
 -                    $r['name'] = $clas[$i]->getName();
 -                    $r['sdesc'] = $sdesc;
 -                    $r['link'] = $this->getClassLink($clas[$i]->getName(),$package,$clas[$i]->getPath());
 -                    $classes[] = $r;
 -                }
 -            }
 -        }
 -        return $classes;
 -    }
 -
 -    /**
 -     * returns an array containing the class inheritance tree from the root
 -     * object to the class.
 -     *
 -     * This method must be overridden, or phpDocumentor will halt with a fatal
 -     * error
 -     * @return string Converter-specific class tree for an individual class
 -     * @param parserClass    class variable
 -     * @abstract
 -     */
 -
 -    function generateFormattedClassTree($class)
 -    {
 -        addErrorDie(PDERROR_CONVERTER_OVR_GFCT,phpDocumentor_get_class($this));
 -    }
 -
 -    /**
 -     * returns an array containing the class inheritance tree from the root
 -     * object to the class.
 -     *
 -     * This method must be overridden, or phpDocumentor will halt with a fatal
 -     * error
 -     * @return string Converter-specific class tree for an individual class
 -     * @param parserClass    class variable
 -     * @abstract
 -     */
 -
 -    function getFormattedImplements($el)
 -    {
 -        $ret = array();
 -        foreach ($el->getImplements() as $interface)
 -        {
 -            $ret[] = $this->returnSee($this->getLink($interface));
 -        }
 -        return $ret;
 -    }
 -
 -    /**
 -     * @param mixed {@link parserClass, parserFunction, parserDefine} or
 -     * {@link parserGlobal}
 -     * @param string type to display.  either 'class','function','define'
 -     *               or 'global variable'
 -     * @return array links to conflicting elements, or empty array
 -     * @uses parserClass::getConflicts()
 -     * @uses parserFunction::getConflicts()
 -     * @uses parserDefine::getConflicts()
 -     * @uses parserGlobal::getConflicts()
 -     */
 -    function getFormattedConflicts(&$element,$type)
 -    {
 -        $conflicts = $element->getConflicts($this);
 -        $r = array();
 -        if (!$conflicts) return false;
 -        foreach($conflicts as $package => $class)
 -        {
 -            $r[] = $class->getLink($this,$class->docblock->package);
 -        }
 -        if (!empty($r)) $r = array('conflicttype' => $type, 'conflicts' => $r);
 -        return $r;
 -    }
 -
 -    /**
 -     * Get a list of methods in child classes that override this method
 -     * @return array empty array or array(array('link'=>link to method,
 -     * 'sdesc'=>short description of the method),...)
 -     * @uses parserMethod::getOverridingMethods()
 -     * @param parserMethod
 -     */
 -    function getFormattedDescMethods(&$element)
 -    {
 -        $meths = $element->getOverridingMethods($this);
 -        $r = array();
 -        for($i=0; $i<count($meths); $i++)
 -        {
 -            $ms = array();
 -            $ms['link'] = $meths[$i]->getLink($this);
 -            $ms['sdesc'] = $meths[$i]->docblock->getSDesc($this);
 -            $r[] = $ms;
 -        }
 -        return $r;
 -    }
 -
 -    /**
 -     * Get a list of vars in child classes that override this var
 -     * @return array empty array or array('link'=>link to var,
 -     * 'sdesc'=>short description of the method
 -     * @uses parserVar::getOverridingVars()
 -     * @param parserVar
 -     */
 -    function getFormattedDescVars(&$element)
 -    {
 -        $vars = $element->getOverridingVars($this);
 -        $r = array();
 -        for($i=0; $i<count($vars); $i++)
 -        {
 -            $vs = array();
 -            $vs['link'] = $vars[$i]->getLink($this);
 -            $vs['sdesc'] = $vars[$i]->docblock->getSDesc($this);
 -            $r[] = $vs;
 -        }
 -        return $r;
 -    }
 -
 -    /**
 -     * Get the method this method overrides, if any
 -     * @return array|false array('link'=>link to overridden method,
 -     * 'sdesc'=>short description
 -     * @see parserMethod::getOverrides()
 -     * @param parserMethod
 -     */
 -    function getFormattedOverrides(&$element)
 -    {
 -        $ovr = $element->getOverrides($this);
 -        if (!$ovr) return false;
 -        $sdesc = $ovr->docblock->getSDesc($this);
 -        return array('link' => $ovr->getLink($this),'sdesc' => $sdesc);
 -    }
 -
 -    /**
 -     * returns a list of child classes
 -     *
 -     * @param parserClass class variable
 -     * @uses parserClass::getChildClassList()
 -     */
 -
 -    function generateChildClassList($class)
 -    {
 -        $kids = $class->getChildClassList($this);
 -        $list = array();
 -        if (count($kids))
 -        {
 -            for($i=0; $i<count($kids); $i++)
 -            {
 -                $lt['link'] = $kids[$i]->getLink($this);
 -                $lt['sdesc'] = $kids[$i]->docblock->getSDesc($this);
 -
 -								if ($kids[$i]->docblock->hasaccess)
 -									$lt['access'] = $kids[$i]->docblock->tags['access'][0]->value;
 -								else
 -									$lt['access'] = 'public';
 -
 -								$lt['abstract'] = isset ($kids[$i]->docblock->tags['abstract'][0]);
 -
 -                $list[] = $lt;
 -            }
 -        } else return false;
 -        return $list;
 -    }
 -
 -    /**
 -     * Return template-enabled list of inherited variables
 -     *
 -     * uses parserVar helper function getInheritedVars and generates a
 -     * template-enabled list using getClassLink()
 -     * @param parserVar $child class method
 -     * @see getClassLink(), parserVar::getInheritedVars()
 -     * @return array Format:
 -     * <pre>
 -     * array(
 -     *   array('parent_class' => link to parent class's documentation,
 -     *         'ivars' =>
 -     *            array(
 -     *              array('name' => inherited variable name,
 -     *                    'link' => link to inherited variable's documentation,
 -     *                    'default' => default value of inherited variable,
 -     *                    'sdesc' => summary of inherited variable),
 -     *              ...),
 -     *   ...)
 -     * </pre>
 -     */
 -
 -    function getFormattedInheritedVars($child)
 -    {
 -        $package = $child->docblock->package;
 -        $subpackage = $child->docblock->subpackage;
 -        $ivars = $child->getInheritedVars($this);
 -        $results = array();
 -        if (!count($ivars)) return $results;
 -        foreach($ivars as $parent => $vars)
 -        {
 -            $file = $vars['file'];
 -            $vars = $vars['vars'];
 -            $par = $this->classes->getClass($parent,$file);
 -            $package = $par->docblock->package;
 -            usort($vars,array($this,"sortVar"));
 -            $result['parent_class'] = $this->getClassLink($parent,$package);
 -            foreach($vars as $var)
 -            {
 -                $info = array();
 -
 -								if ($var->docblock->hasaccess)
 -									$info['access'] = $var->docblock->tags['access'][0]->value;
 -								else
 -									$info['access'] = 'public';
 -
 -								$info['abstract'] = isset ($var->docblock->tags['abstract'][0]);
 -
 -								$info['name'] = $var->getName();
 -                $info['link'] = $var->getLink($this);
 -                $info['default'] = $this->postProcess($var->getValue());
 -                if ($var->docblock)
 -                $info['sdesc'] = $var->docblock->getSDesc($this);
 -                $result["ivars"][] = $info;
 -            }
 -            $results[] = $result;
 -            $result = array();
 -        }
 -        return $results;
 -    }
 -
 -    /**
 -     * Return template-enabled list of inherited methods
 -     *
 -     * uses parserMethod helper function getInheritedMethods and generates a
 -     * template-enabled list using getClassLink()
 -     * @param parserMethod $child class method
 -     * @see getClassLink(), parserMethod::getInheritedMethods()
 -     * @return array Format:
 -     * <pre>
 -     * array(
 -     *   array('parent_class' => link to parent class's documentation,
 -     *         'ivars' =>
 -     *            array(
 -     *              array('name' => inherited variable name,
 -     *                    'link' => link to inherited variable's documentation,
 -     *                    'function_call' => {@link parserMethod::getIntricateFunctionCall()}
 -     *                                       returned array,
 -     *                    'sdesc' => summary of inherited variable),
 -     *              ...),
 -     *   ...)
 -     * </pre>
 -     */
 -
 -    function getFormattedInheritedMethods($child)
 -    {
 -        $package = $child->docblock->package;
 -        $subpackage = $child->docblock->subpackage;
 -        $imethods = $child->getInheritedMethods($this);
 -        $results = array();
 -        if (!count($imethods)) return $results;
 -        foreach($imethods as $parent => $methods)
 -        {
 -            $file = $methods['file'];
 -            $methods = $methods['methods'];
 -            $par = $this->classes->getClass($parent,$file);
 -            $package = $par->docblock->package;
 -            usort($methods,array($this,"sortMethod"));
 -            $result['parent_class'] = $this->getClassLink($parent,$package);
 -            foreach($methods as $method)
 -            {
 -                $info = array();
 -
 -								if ($method->docblock->hasaccess)
 -									$info['access'] = $method->docblock->tags['access'][0]->value;
 -								else
 -									$info['access'] = 'public';
 -
 -								$info['abstract'] = isset ($method->docblock->tags['abstract'][0]);
 -
 -								if ($method->isConstructor) $info['constructor'] = 1;
 -                $info['link'] = $method->getLink($this);
 -                $info['name'] = $method->getName();
 -                if ($method->docblock)
 -                $info['sdesc'] = $method->docblock->getSDesc($this);
 -                $params = array();
 -                if (count($method->docblock->params))
 -                foreach($method->docblock->params as $param => $val)
 -                {
 -                    $a = $val->Convert($this);
 -                    $params[$param] = array("var" => $param,"datatype" => $val->converted_returnType,"data" => $a);
 -                }
 -
 -                $info['function_call'] = $method->getIntricateFunctionCall($this,$params);
 -                $result["imethods"][] = $info;
 -            }
 -            $results[] = $result;
 -            $result = array();
 -        }
 -        return $results;
 -    }
 -
 -    /**
 -     * Return template-enabled list of inherited class constants
 -     *
 -     * uses parserConst helper function getInheritedConsts and generates a
 -     * template-enabled list using getClassLink()
 -     * @param parserConst $child class constant
 -     * @see getClassLink(), parserMethod::getInheritedConsts()
 -     * @return array Format:
 -     * <pre>
 -     * array(
 -     *   array('parent_class' => link to parent class's documentation,
 -     *         'ivars' =>
 -     *            array(
 -     *              array('name' => inherited constant name,
 -     *                    'link' => link to inherited constant's documentation,
 -     *                    'value' => constant value,
 -     *                    'sdesc' => summary of inherited constant),
 -     *              ...),
 -     *   ...)
 -     * </pre>
 -     */
 -
 -    function getFormattedInheritedConsts($child)
 -    {
 -        $package = $child->docblock->package;
 -        $subpackage = $child->docblock->subpackage;
 -        $ivars = $child->getInheritedConsts($this);
 -        $results = array();
 -        if (!count($ivars)) return $results;
 -        foreach($ivars as $parent => $vars)
 -        {
 -            $file = $vars['file'];
 -            $vars = $vars['consts'];
 -            $par = $this->classes->getClass($parent,$file);
 -            $package = $par->docblock->package;
 -            usort($vars,array($this,"sortVar"));
 -            $result['parent_class'] = $this->getClassLink($parent,$package);
 -            foreach($vars as $var)
 -            {
 -                $info = array();
 -
 -                if ($var->docblock->hasaccess)
 -                	$info['access'] = $var->docblock->tags['access'][0]->value;
 -                else
 -                	$info['access'] = 'public';
 -
 -                $info['name'] = $var->getName();
 -                $info['link'] = $var->getLink($this);
 -                $info['value'] = $this->postProcess($var->getValue());
 -                if ($var->docblock)
 -                $info['sdesc'] = $var->docblock->getSDesc($this);
 -                $result["iconsts"][] = $info;
 -            }
 -            $results[] = $result;
 -            $result = array();
 -        }
 -        return $results;
 -    }
 -
 -    /**
 -     * Return a Smarty template object to operate with
 -     *
 -     * This returns a Smarty template with pre-initialized variables for use.
 -     * If the method "SmartyInit()" exists, it is called.
 -     * @return Smarty
 -     */
 -    function &newSmarty()
 -    {
 -        $templ = new Smarty;
 -        $templ->use_sub_dirs = false;
 -        $templ->template_dir = realpath($this->smarty_dir . PATH_DELIMITER . 'templates');
 -        $templ->compile_dir = realpath($this->smarty_dir . PATH_DELIMITER . 'templates_c');
 -        $templ->config_dir = realpath($this->smarty_dir . PATH_DELIMITER . 'configs');
 -        $templ->assign("date",date("r",time()));
 -        $templ->assign("maintitle",$this->title);
 -        $templ->assign("package",$this->package);
 -        $templ->assign("phpdocversion",PHPDOCUMENTOR_VER);
 -        $templ->assign("phpdocwebsite",PHPDOCUMENTOR_WEBSITE);
 -        $templ->assign("subpackage",$this->subpackage);
 -        if (method_exists($this,'SmartyInit')) return $this->SmartyInit($templ);
 -        return $templ;
 -    }
 -
 -    /**
 -     * do all necessary output
 -     * @see Converter
 -     * @abstract
 -     */
 -    function Output($title)
 -    {
 -        phpDocumentor_out("WARNING: Generic Converter::Output was used, no output will be generated");
 -    }
 -
 -    /**
 -     * Set the template directory with a different template base directory
 -     * @tutorial phpDocumentor.howto.pkg#using.command-line.templatebase
 -     * @param string template base directory
 -     * @param string template name
 -     */
 -    function setTemplateBase($base, $dir)
 -    {
 -        // remove trailing /'s from the base path, if any
 -        $base = str_replace('\\','/',$base);
 -        while ($base{strlen($base) - 1} == '/') $base = substr($base,0,strlen($base) - 1);
 -        $this->templateName = substr($dir,0,strlen($dir) - 1);
 -        $this->templateDir =  $base . "/Converters/" . $this->outputformat . "/" . $this->name . "/templates/" . $dir;
 -        if (!is_dir($this->templateDir))
 -        {
 -            addErrorDie(PDERROR_TEMPLATEDIR_DOESNT_EXIST, $this->templateDir);
 -        }
 -
 -        $this->smarty_dir = $this->templateDir;
 -        if (file_exists($this->templateDir . PATH_DELIMITER . 'options.ini'))
 -        {
 -            // retrieve template options, allow array creation
 -            $this->template_options = phpDocumentor_parse_ini_file($this->templateDir . PATH_DELIMITER . 'options.ini',true);
 -        }
 -    }
 -
 -    /**
 -     * sets the template directory based on the {@link $outputformat} and {@link $name}
 -     * Also sets {@link $templateName} to the $dir parameter
 -     * @param string subdirectory
 -     */
 -    function setTemplateDir($dir)
 -    {
 -        if ('@DATA-DIR@' != '@'.'DATA-DIR@') {
 -            $templateBase = str_replace('\\', '/', '@DATA-DIR@/PhpDocumentor/phpDocumentor');
 -        } else {
 -            $templateBase = str_replace('\\','/',$GLOBALS['_phpDocumentor_install_dir']) . '/phpDocumentor';
 -        }
 -        $this->setTemplateBase($templateBase, $dir);
 -    }
 -
 -    /**
 -     * Get the absolute path to the converter's base directory
 -     * @return string
 -     */
 -    function getConverterDir()
 -    {
 -        if (/*@donotremove*/0) {
 -            return str_replace('\\', '/', "@DATA-DIR@/PhpDocumentor/phpDocumentor/Converters/") . $this->outputformat . "/" . $this->name;
 -        } else {
 -            return str_replace('\\','/',$GLOBALS['_phpDocumentor_install_dir']) ."/phpDocumentor/Converters/" . $this->outputformat . "/" . $this->name;
 -        }
 -    }
 -
 -    /**
 -     * Parse a global variable's default value for class initialization.
 -     *
 -     * If a global variable's default value is "new class" as in:
 -     * <code>
 -     * $globalvar = new Parser
 -     * </code>
 -     * This method will document it not as "new Parser" but instead as
 -     * "new {@link Parser}".    For examples, see {@link phpdoc.inc}.
 -     * Many global variables are classes, and phpDocumentor links to their
 -     * documentation
 -     * @return string default global variable value with link to class if
 -     *                it's "new Class"
 -     * @param string default value of a global variable.
 -     */
 -    function getGlobalValue($value)
 -    {
 -        if (strpos($value,'new') === 0)
 -        {
 -            preg_match('/new([^(]*)(.*)/',$value,$newval);
 -            if (isset($newval[1]))
 -            {
 -                $a = Converter::getLink(trim($newval[1]));
 -                if (!isset($newval[2])) $newval[2] = '';
 -                if ($a && phpDocumentor_get_class($a) == 'classlink') $value = 'new '.$this->returnSee($a).$newval[2];
 -            }
 -        }
 -        return $value;
 -    }
 -
 -    /**
 -     * Parse an include's file to see if it is a file documented in this project
 -     *
 -     * Although not very smart yet, this method will try to look for the
 -     * included file file.ext:
 -     *
 -     * <code>
 -     * include ("file.ext");
 -     * </code>
 -     *
 -     * If it finds it, it will return a link to the file's documentation.  As of
 -     * 1.2.0rc1, phpDocumentor is smarty enough to find these cases:
 -     * <ul>
 -     *  <li>absolute path to file</li>
 -     *  <li>./file.ext or ../file.ext</li>
 -     *  <li>relpath/to/file.ext if relpath is a subdirectory of the base parse
 -     *      directory</li>
 -     * </ul>
 -     * For examples, see {@link Setup.inc.php} includes.
 -     * Every include auto-links to the documentation for the file that is included
 -     * @return string included file with link to docs for file, if found
 -     * @param string file included by include statement.
 -     * @param string path of file that has the include statement
 -     */
 -    function getIncludeValue($value, $ipath)
 -    {
 -        preg_match('/"([^"\']*\.[^"\']*)"/',$value,$match);
 -        if (!isset($match[1]))
 -        preg_match('/\'([^"\']*\.[^"\']*)\'/',$value,$match);
 -        if (isset($match[1]))
 -        {
 -            $fancy_per = $this->proceduralpages->pathMatchesParsedFile($match[1],$ipath);
 -            if ($fancy_per)
 -            {
 -                $link = $this->addLink($fancy_per);
 -                if (is_object($link) && phpDocumentor_get_class($link) == 'pagelink' &&
 -                    isset($this->all_packages[$link->package]))
 -                {
 -                    $value = $this->returnSee($link,$value);
 -                }
 -            } else
 -            {
 -                $per = Converter::getLink($match[1]);
 -                if (is_object($per) && phpDocumentor_get_class($per) == 'pagelink')
 -                $value = $this->returnSee($per);
 -            }
 -        }
 -        return $value;
 -    }
 -
 -    /**
 -     * Recursively creates all subdirectories that don't exist in the $dir path
 -     * @param string $dir
 -     */
 -    function createParentDir($dir)
 -    {
 -        if (empty($dir)) return;
 -        $tmp = explode(SMART_PATH_DELIMITER,$dir);
 -        array_pop($tmp);
 -        $parent = implode(SMART_PATH_DELIMITER,$tmp);
 -        if ($parent != '' && !file_exists($parent))
 -        {
 -            $test = @mkdir($parent,0775);
 -            if (!$test)
 -            {
 -                $this->createParentDir($parent);
 -                $test = @mkdir($parent,0775);
 -                phpDocumentor_out("Creating Parent Directory $parent\n");
 -            } else
 -            {
 -                phpDocumentor_out("Creating Parent Directory $parent\n");
 -            }
 -        }
 -    }
 -
 -    /**
 -     * Sets the output directory for generated documentation
 -     * @param string $dir the output directory
 -     */
 -    function setTargetDir($dir)
 -    {
 -        if (strlen($dir) > 0)
 -        {
 -            $this->targetDir = $dir;
 -            // if directory does exist create it, this should have more error checking in the future
 -            if (!file_exists($dir))
 -            {
 -                $tmp = str_replace(array("/","\\"),SMART_PATH_DELIMITER,$dir);
 -                if (substr($tmp,-1) == SMART_PATH_DELIMITER)
 -                {
 -                    $tmp = substr($tmp,0,(strlen($tmp)-1));
 -                }
 -                $this->createParentDir($tmp);
 -                phpDocumentor_out("Creating Directory $dir\n");
 -                mkdir($dir,0775);
 -            }
 -             else if (!is_dir($dir))
 -            {
 -                echo "Output path: '$dir' is not a directory\n";
 -                die();
 -            }
 -        } else {
 -            echo "a target directory must be specified\n try phpdoc -h\n";
 -            die();
 -        }
 -    }
 -
 -    /**
 -     * Writes a file to target dir
 -     * @param string
 -     * @param string
 -     * @param boolean true if the data is binary and not text
 -     */
 -    function writeFile($file,$data,$binary = false)
 -    {
 -        if (!file_exists($this->targetDir))
 -        {
 -            mkdir($this->targetDir,0775);
 -        }
 -        $string = '';
 -        if ($binary) $string = 'binary file ';
 -        phpDocumentor_out("    Writing $string".$this->targetDir . PATH_DELIMITER . $file . "\n");
 -        flush();
 -        $write = 'w';
 -        if ($binary) $write = 'wb';
 -        $fp = fopen($this->targetDir . PATH_DELIMITER . $file,$write);
 -        set_file_buffer( $fp, 0 );
 -        fwrite($fp,$data,strlen($data));
 -        fclose($fp);
 -    }
 -
 -    /**
 -     * Copies a file from the template directory to the target directory
 -     * thanks to Robert Hoffmann for this fix
 -     * @param string
 -     */
 -    function copyFile($file, $subdir = '')
 -    {
 -        if (!file_exists($this->targetDir))
 -        {
 -            mkdir($this->targetDir,0775);
 -        }
 -        copy($this->templateDir . $subdir  . PATH_DELIMITER . $file, $this->targetDir . PATH_DELIMITER . $file);
 -    }
 -
 -    /**
 -     * Return parserStringWithInlineTags::Convert() cache state
 -     * @see parserStringWithInlineTags::Convert()
 -     * @abstract
 -     */
 -    function getState()
 -    {
 -        return true;
 -    }
 -
 -    /**
 -     * Compare parserStringWithInlineTags::Convert() cache state to $state
 -     * @param mixed
 -     * @see parserStringWithInlineTags::Convert()
 -     * @abstract
 -     */
 -    function checkState($state)
 -    {
 -        return true;
 -    }
 -
 -}
 -
 -/**
 - * @access private
 - * @see Converter::getSortedClassTreeFromClass()
 - */
 -function rootcmp($a, $b)
 -{
 -    return strnatcasecmp($a['class'],$b['class']);
 -}
 -
 -/**
 - * @access private
 - * @global string used to make the first tutorials converted the default package tutorials
 - */
 -function tutorialcmp($a, $b)
 -{
 -    global $phpDocumentor_DefaultPackageName;
 -    if ($a == $phpDocumentor_DefaultPackageName) return -1;
 -    if ($b == $phpDocumentor_DefaultPackageName) return 1;
 -    return strnatcasecmp($a, $b);
 -}
 -
 -/**
 - * smart htmlentities, doesn't entity the allowed tags list
 - * Since version 1.1, this function uses htmlspecialchars instead of
 - * htmlentities, for international support
 - * This function has been replaced by functionality in {@link ParserDescCleanup.inc}
 - * @param string $s
 - * @return string browser-displayable page
 - * @deprecated As of v1.2, No longer needed, as valid tags are parsed out of the source,
 - *   and everything else is {@link Converter::postProcess()} handled
 - */
 -function adv_htmlentities($s)
 -{
 -    return;
 -    global $phpDocumentor___html,$_phpDocumentor_html_allowed;
 -    $result = htmlspecialchars($s);
 -    $entities = array_flip(get_html_translation_table(HTML_SPECIALCHARS));
 -    $result = strtr($result,$phpDocumentor___html);
 -    $matches = array();
 -    preg_match_all('/(<img.*>)/U',$result,$matches);
 -    for($i=0;$i<count($matches[1]);$i++)
 -    {
 -        $result = str_replace($matches[1][$i],strtr($matches[1][$i],array_flip(get_html_translation_table(HTML_SPECIALCHARS))),$result);
 -    }
 -    preg_match_all('/(<font.*>)/U',$result,$matches);
 -    for($i=0;$i<count($matches[1]);$i++)
 -    {
 -        $result = str_replace($matches[1][$i],strtr($matches[1][$i],array_flip(get_html_translation_table(HTML_SPECIALCHARS))),$result);
 -    }
 -    preg_match_all('/(<ol.*>)/U',$result,$matches);
 -    for($i=0;$i<count($matches[1]);$i++)
 -    {
 -        $result = str_replace($matches[1][$i],strtr($matches[1][$i],array_flip(get_html_translation_table(HTML_SPECIALCHARS))),$result);
 -    }
 -    preg_match_all('/(<ul.*>)/U',$result,$matches);
 -    for($i=0;$i<count($matches[1]);$i++)
 -    {
 -        $result = str_replace($matches[1][$i],strtr($matches[1][$i],array_flip(get_html_translation_table(HTML_SPECIALCHARS))),$result);
 -    }
 -    preg_match_all('/(<li.*>)/U',$result,$matches);
 -    for($i=0;$i<count($matches[1]);$i++)
 -    {
 -        $result = str_replace($matches[1][$i],strtr($matches[1][$i],array_flip(get_html_translation_table(HTML_SPECIALCHARS))),$result);
 -    }
 -    preg_match_all('/(<a .*>)/U',$result,$matches);
 -    for($i=0;$i<count($matches[1]);$i++)
 -    {
 -        $result = str_replace($matches[1][$i],strtr($matches[1][$i],array_flip(get_html_translation_table(HTML_SPECIALCHARS))),$result);
 -    }
 -    return $result;
 -}
 -
 -/**
 - * Used solely for setting up the @uses list
 - * @package ignore
 - * @ignore
 - */
 -class __dummyConverter extends Converter
 -{
 -    function setTemplateDir(){}
 -    function setTargetDir(){}
 -    function getPageName(&$element)
 -    {
 -        if (phpDocumentor_get_class($element) == 'parserpage') return '_'.$element->getName();
 -        return '_'.$element->parent->getName();
 -    }
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc deleted file mode 100644 index 87674ac0..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/CHMdefaultConverter.inc +++ /dev/null @@ -1,1755 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -/**
 - * CHM (Compiled Help Manual) output converter for Smarty Template.
 - *
 - * @package Converters
 - * @subpackage CHMdefault
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: CHMdefaultConverter.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
 - */
 -/**
 - * Generates files that MS HTML Help Worshop can use to create a MS Windows
 - * compiled help file (CHM)
 - *
 - * The free MS HTML Help compiler takes the project file (phpdoc.hhp) and reads
 - * the table of contents file specified in the project (which is always contents.hhc
 - * in phpDocumentor).  When the converter reaches stable state, it will also
 - * output an index file index.hhk.  The free download for MS HTML Help Workshop
 - * is available below
 - * @link http://www.microsoft.com/downloads/release.asp?releaseid=33071 MS HTML Help Workshop download
 - * @package Converters
 - * @subpackage CHMdefault
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Revision: 1.1 $
 - */
 -class CHMdefaultConverter extends Converter
 -{
 -    /**
 -     * CHMdefaultConverter wants elements sorted by type as well as alphabetically
 -     * @see Converter::$sort_page_contents_by_type
 -     * @var boolean
 -     */
 -    var $sort_page_contents_by_type = true;
 -    /** @var string */
 -    var $outputformat = 'CHM';
 -    /** @var string */
 -    var $name = 'default';
 -    /**
 -     * indexes of elements by package that need to be generated
 -     * @var array
 -     */
 -    var $leftindex = array('classes' => true, 'pages' => true, 'functions' => true, 'defines' => false, 'globals' => false);
 -    
 -    /**
 -     * output directory for the current procedural page being processed
 -     * @var string
 -     */
 -    var $page_dir;
 -    
 -    /**
 -     * target directory passed on the command-line.
 -     * {@link $targetDir} is malleable, always adding package/ and package/subpackage/ subdirectories onto it.
 -     * @var string
 -     */
 -    var $base_dir;
 -    
 -    /**
 -     * output directory for the current class being processed
 -     * @var string
 -     */
 -    var $class_dir;
 -    
 -    /**
 -     * array of converted package page names.
 -     * Used to link to the package page in the left index
 -     * @var array Format: array(package => 1)
 -     */
 -    var $package_pages = array();
 -    
 -    /**
 -     * controls formatting of parser informative output
 -     * 
 -     * Converter prints:
 -     * "Converting /path/to/file.php... Procedural Page Elements... Classes..."
 -     * Since CHMdefaultConverter outputs files while converting, it needs to send a \n to start a new line.  However, if there
 -     * is more than one class, output is messy, with multiple \n's just between class file output.  This variable prevents that
 -     * and is purely cosmetic
 -     * @var boolean
 -     */
 -    var $juststarted = false;
 -    
 -    /**
 -     * contains all of the template procedural page element loop data needed for the current template
 -     * @var array
 -     */
 -    var $current;
 -    
 -    /**
 -     * contains all of the template class element loop data needed for the current template
 -     * @var array
 -     */
 -    var $currentclass;
 -    var $wrote = false;
 -    var $ric_set = array();
 -    /**
 -     * Table of Contents entry for index.hhk
 -     * @var array
 -     */
 -    var $KLinks = array();
 -
 -    /**
 -     * sets {@link $base_dir} to $targetDir
 -     * @see Converter()
 -     */
 -    function CHMdefaultConverter(&$allp, &$packp, &$classes, &$procpages, $po, $pp, $qm, $targetDir, $templateDir, $title)
 -    {
 -        Converter::Converter($allp, $packp, $classes, $procpages,$po, $pp, $qm, $targetDir, $templateDir, $title);
 -        $this->base_dir = $targetDir;
 -    }
 -    
 -    /**
 -     * @deprecated in favor of PHP 4.3.0+ tokenizer-based source highlighting
 -     */
 -    function unmangle($sourcecode)
 -    {
 -        $sourcecode = str_replace('<code>','<pre>',$sourcecode);
 -        $sourcecode = str_replace('</code>','</pre>',$sourcecode);
 -        $sourcecode = str_replace('<br />',"\n",$sourcecode);
 -        $sourcecode = str_replace(' ',' ',$sourcecode);
 -        $sourcecode = str_replace('<','<',$sourcecode);
 -        $sourcecode = str_replace('>','>',$sourcecode);
 -        $sourcecode = str_replace('&','&',$sourcecode);
 -        return $sourcecode;
 -    }
 -
 -    /**
 -     * @param string full path to the source file
 -     * @param string fully highlighted source code
 -     */
 -    function writeSource($path, $value)
 -    {
 -        $templ = &$this->newSmarty();
 -        $pathinfo = $this->proceduralpages->getPathInfo($path, $this);
 -        $templ->assign('source',$value);
 -        $templ->assign('package',$pathinfo['package']);
 -        $templ->assign('subpackage',$pathinfo['subpackage']);
 -        $templ->assign('name',$pathinfo['name']);
 -        $templ->assign('source_loc',$pathinfo['source_loc']);
 -        $templ->assign('docs',$pathinfo['docs']);
 -        $templ->assign("subdir",'../');
 -        $templ->register_outputfilter('CHMdefault_outputfilter');
 -        $this->setTargetDir($this->getFileSourcePath($this->base_dir));
 -        //$this->addSourceTOC($pathinfo['name'],$this->getFileSourceName($path),$pathinfo['package'],$pathinfo['subpackage'], true);
 -        phpDocumentor_out("\n");
 -        $this->setSourcePaths($path);
 -        $this->writefile($this->getFileSourceName($path).'.html',$templ->fetch('filesource.tpl'));
 -    }
 -    
 -    function writeExample($title, $path, $source)
 -    {
 -        $templ = &$this->newSmarty();
 -        $templ->assign('source',$source);
 -        if (empty($title))
 -        {
 -            $title = 'example';
 -            addWarning(PDERROR_EMPTY_EXAMPLE_TITLE, $path, $title);
 -        }
 -        $templ->assign('title',$title);
 -        $templ->assign('file',$path);
 -        $templ->assign("subdir",'../');
 -        $templ->register_outputfilter('CHMdefault_outputfilter');
 -        $pathinfo = $this->proceduralpages->getPathInfo($path, $this);
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . '__examplesource');
 -        //$this->addSourceTOC($title,'exsource_'.$path,$pathinfo['package'],$pathinfo['subpackage'], false);
 -        phpDocumentor_out("\n");
 -        $this->writefile('exsource_'.$path.'.html',$templ->fetch('examplesource.tpl'));
 -    }
 -    
 -    function getExampleLink($path, $title)
 -    {
 -        return $this->returnLink('{$subdir}__examplesource' . PATH_DELIMITER . 'exsource_'.$path.'.html',$title);
 -    }
 -    
 -    function getSourceLink($path)
 -    {
 -        // fix 1171583
 -        $x = str_replace(PATH_DELIMITER, '', $this->getFileSourcePath('{$subdir}')) .
 -            PATH_DELIMITER;
 -        return $this->returnLink($x .
 -            $this->getFileSourceName($path).'.html','Source Code for this file');
 -    }
 -    
 -    /**
 -     * Used to convert the <<code>> tag in a docblock
 -     * @param string
 -     * @param boolean
 -     * @return string
 -     */
 -    function ProgramExample($example, $tutorial = false, $inlinesourceparse = null/*false*/,
 -                            $class = null/*false*/, $linenum = null/*false*/, $filesourcepath = null/*false*/)
 -    {
 -        return $this->PreserveWhiteSpace(parent::ProgramExample($example, $tutorial, $inlinesourceparse, $class, $linenum, $filesourcepath));
 -    }
 -    
 -    /**
 -     * @param string
 -     */
 -    function TutorialExample($example)
 -    {
 -        $trans = $this->template_options['desctranslate'];
 -        $this->template_options['desctranslate'] = array();
 -        $example = '<ol>' . parent::TutorialExample($example)
 -               .'</ol>';
 -        $this->template_options['desctranslate'] = $trans;
 -        if (!isset($this->template_options['desctranslate'])) return $example;
 -        if (!isset($this->template_options['desctranslate']['code'])) return $example;
 -        $example = $this->template_options['desctranslate']['code'] . $example;
 -        if (!isset($this->template_options['desctranslate']['/code'])) return $example;
 -        return $example . $this->template_options['desctranslate']['/code'];
 -    }
 -    
 -    /**
 -     * Retrieve a Converter-specific anchor to a segment of a source code file
 -     * parsed via a {@tutorial tags.filesource.pkg} tag.
 -     * @param string full path to source file
 -     * @param string name of anchor
 -     * @param string link text, if this is a link
 -     * @param boolean returns either a link or a destination based on this
 -     *                parameter
 -     * @return string link to an anchor, or the anchor
 -     */
 -    function getSourceAnchor($sourcefile,$anchor,$text = '',$link = false)
 -    {
 -        if ($link) {
 -            $x = str_replace(PATH_DELIMITER, '', $this->getFileSourcePath('{$subdir}')) .
 -                PATH_DELIMITER;
 -            return $this->returnLink($x .
 -                $this->getFileSourceName($sourcefile).'.html#a'.$anchor, $text);
 -        } else
 -            return '<a name="a'.$anchor.'"></a>';
 -    }
 -    
 -    function getCurrentPageLink()
 -    {
 -        return $this->curname . '.html';
 -    }
 -
 -    /**
 -     * Uses htmlspecialchars() on the input
 -     */
 -    function postProcess($text)
 -    {
 -        return htmlspecialchars($text);
 -    }
 -    
 -    /**
 -     * Use the template tutorial_toc.tpl to generate a table of contents for HTML
 -     * @return string table of contents formatted for use in the current output format
 -     * @param array format: array(array('tagname' => section, 'link' => returnsee link, 'id' => anchor name, 'title' => from title tag),...)
 -     */
 -    function formatTutorialTOC($toc)
 -    {
 -        $template = &$this->newSmarty();
 -        $template->assign('toc',$toc);
 -        return $template->fetch('tutorial_toc.tpl');
 -    }
 -    
 -    function &SmartyInit(&$templ)
 -    {
 -        if (!isset($this->package_index))
 -        foreach($this->all_packages as $key => $val)
 -        {
 -            if (isset($this->pkg_elements[$key]))
 -            {
 -                if (!isset($start)) $start = $key;
 -                $this->package_index[] = array('link' => "li_$key.html", 'title' => $key);
 -            }
 -        }
 -        $templ->assign("packageindex",$this->package_index);
 -        $templ->assign("subdir",'');
 -        return $templ;
 -    }
 -    
 -    
 -    /**
 -     * Writes out the template file of {@link $class_data} and unsets the template to save memory
 -     * @see registerCurrentClass()
 -     * @see parent::endClass()
 -     */
 -    function endClass()
 -    {
 -        $a = '../';
 -        if (!empty($this->subpackage)) $a .= '../';
 -        if ($this->juststarted)
 -        {
 -            $this->juststarted = false;
 -            phpDocumentor_out("\n");
 -            flush();
 -        }
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir);
 -        $this->class_data->assign("subdir",$a);
 -        $this->class_data->register_outputfilter('CHMdefault_outputfilter');
 -        $this->addTOC($this->class,$this->class,$this->package,$this->subpackage, true);
 -        $this->writefile($this->class . '.html',$this->class_data->fetch('class.tpl'));
 -        unset($this->class_data);
 -    }
 -    
 -    /**
 -     * Writes out the template file of {@link $page_data} and unsets the template to save memory
 -     * @see registerCurrent()
 -     * @see parent::endPage()
 -     */
 -    function endPage()
 -    {
 -        $this->package = $this->curpage->package;
 -        $this->subpackage = $this->curpage->subpackage;
 -        $a = '../';
 -        if (!empty($this->subpackage)) $a .= '../';
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir);
 -        $this->page_data->assign("package",$this->package);
 -        $this->page_data->assign("subdir",$a);
 -        $this->page_data->register_outputfilter('CHMdefault_outputfilter');
 -        //$this->addTOC($this->curpage->file,$this->page,$this->package,$this->subpackage);
 -        $this->writefile($this->page . '.html',$this->page_data->fetch('page.tpl'));
 -        unset($this->page_data);
 -    }
 -    
 -    /**
 -     * @param string
 -     * @param string
 -     * @return string <a href="'.$link.'">'.$text.'</a>
 -     */
 -    function returnLink($link,$text)
 -    {
 -        return '<a href="'.$link.'">'.$text.'</a>';
 -    }
 -    
 -    /**
 -     * CHMdefaultConverter chooses to format both package indexes and the complete index here
 -     *
 -     * This function formats output for the elementindex.html and pkgelementindex.html template files.  It then
 -     * writes them to the target directory
 -     * @see generateElementIndex(), generatePkgElementIndex()
 -     */
 -    function formatPkgIndex()
 -    {
 -        list($package_indexes,$packages,$mletters) = $this->generatePkgElementIndexes();
 -        for($i=0;$i<count($package_indexes);$i++)
 -        {
 -            $template = &$this->newSmarty();
 -            $this->package = $package_indexes[$i]['package'];
 -            $this->subpackage = '';
 -            $template->assign("index",$package_indexes[$i]['pindex']);
 -            $template->assign("package",$package_indexes[$i]['package']);
 -            $template->assign("letters",$mletters[$package_indexes[$i]['package']]);
 -            $template->assign("title","Package ".$package_indexes[$i]['package']." Element Index");
 -            $template->assign("subdir",'../');
 -            $template->register_outputfilter('CHMdefault_outputfilter');
 -            $this->setTargetDir($this->base_dir . PATH_DELIMITER . $package_indexes[$i]['package']);
 -            $this->addTOC($package_indexes[$i]['package']." Alphabetical Index",'elementindex_'.$package_indexes[$i]['package'],$package_indexes[$i]['package'],'');
 -            $this->writefile('elementindex_'.$package_indexes[$i]['package'].'.html',$template->fetch('pkgelementindex.tpl'));
 -        }
 -        phpDocumentor_out("\n");
 -        flush();
 -        }
 -    
 -    /**
 -     * CHMdefaultConverter uses this function to format template index.html and packages.html
 -     *
 -     * This function generates the package list from {@link $all_packages}, eliminating any
 -     * packages that don't have any entries in their package index (no files at all, due to @ignore
 -     * or other factors).  Then it uses the default package name as the first package index to display.
 -     * It sets the right pane to be either a blank file with instructions on making package-level docs,
 -     * or the package-level docs for the default package.
 -     * @global string Used to set the starting package to display
 -     */
 -    function formatIndex()
 -    {
 -        global $phpDocumentor_DefaultPackageName;
 -        list($elindex,$mletters) = $this->generateElementIndex();
 -        $template = &$this->newSmarty();
 -        $template->assign("index",$elindex);
 -        $template->assign("letters",$mletters);
 -        $template->assign("title","Element Index");
 -        $template->assign("date",date("r",time()));
 -        $template->register_outputfilter('CHMdefault_outputfilter');
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir);
 -        $this->addTOC("Alphabetical Index Of All Elements",'elementindex',"Index",'');
 -        $this->writefile('elementindex.html',$template->fetch('elementindex.tpl'));
 -        usort($this->package_index,"CHMdefault_pindexcmp");
 -        $index = &$this->newSmarty();
 -        foreach($this->all_packages as $key => $val)
 -        {
 -            if (isset($this->pkg_elements[$key]))
 -            {
 -                if (!isset($start)) $start = $key;
 -                if (!isset($this->package_pages[$key])) $this->writeNewPPage($key);
 -            }
 -        }
 -        $this->setTargetDir($this->base_dir);
 -        // Created index.html
 -        if (isset($this->pkg_elements[$phpDocumentor_DefaultPackageName])) $start = $phpDocumentor_DefaultPackageName;
 -        $this->package = $start;
 -        $this->subpackage = '';
 -        $setalready = false;
 -        if (isset($this->tutorials[$start]['']['pkg']))
 -        {
 -            foreach($this->tutorials[$start]['']['pkg'] as $tute)
 -            {
 -                if ($tute->name == $start . '.pkg')
 -                {
 -                    $setalready = true;
 -                       $this->addTOC("Start page",$start.'/tutorial_'.$tute->name,"Index",'');
 -                }
 -            }
 -        }
 -        if (!$setalready)
 -        {
 -            if (isset($this->package_pages[$start]))
 -            {
 -                   $this->addTOC("Start page",'package_'.$start,"Index",'');
 -            }
 -            else
 -            {
 -                $index->assign("blank","blank");
 -                $blank = &$this->newSmarty();
 -                $blank->assign('package',$phpDocumentor_DefaultPackageName);
 -                $this->addTOC("Start page",'blank',"Index",'');
 -                $this->writefile("blank.html",$blank->fetch('blank.tpl'));
 -                Converter::writefile('index.html',$blank->fetch('tutorial.tpl'));
 -            }
 -        }
 -        phpDocumentor_out("\n");
 -        flush();
 -
 -        unset($index);
 -    }
 -    
 -    function writeNewPPage($key)
 -    {
 -        return;
 -        $template = &$this->newSmarty();
 -        $this->package = $key;
 -        $this->subpackage = '';
 -        $template->assign("date",date("r",time()));
 -        $template->assign("title",$this->title);
 -        $template->assign("package",$key);
 -        $template->register_outputfilter('CHMdefault_outputfilter');
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir);
 -    
 -        //$this->addTOC("$key Index","li_$key",$key,'');
 -        $this->writefile("li_$key.html",$template->fetch('index.tpl'));
 -        unset($template);
 -    }
 -    
 -    /**
 -     * Generate indexes for li_package.html and classtree output files
 -     *
 -     * This function generates the li_package.html files from the template file left.html.  It does this by
 -     * iterating through each of the $page_elements, $class_elements and  $function_elements arrays to retrieve
 -     * the pre-sorted {@link abstractLink} descendants needed for index generation.  Conversion of these links to
 -     * text is done by {@link returnSee()}.  The {@link $local} parameter is set to false to ensure that paths are correct.
 -     * 
 -     * Then it uses {@link generateFormattedClassTrees()} to create class trees from the template file classtrees.html.  Output
 -     * filename is classtrees_packagename.html.  This function also unsets {@link $elements} and {@link $pkg_elements} to free
 -     * up the considerable memory these two class vars use
 -     * @see $page_elements, $class_elements, $function_elements
 -     */
 -    function formatLeftIndex()
 -    {
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir);
 -        if (0)//!isset($this->left))
 -        {
 -            debug("Nothing parsed, check the command-line");
 -            die();
 -        }
 -        foreach($this->all_packages as $package => $rest)
 -        {
 -            if (!isset($this->pkg_elements[$package])) continue;
 -            
 -            // Create class tree page
 -            $template = &$this->newSmarty();
 -            $template->assign("classtrees",$this->generateFormattedClassTrees($package));
 -            $template->assign("package",$package);
 -            $template->assign("date",date("r",time()));
 -            $template->register_outputfilter('CHMdefault_outputfilter');
 -            $this->addTOC("$package Class Trees","classtrees_$package",$package,'');
 -            $this->writefile("classtrees_$package.html",$template->fetch('classtrees.tpl'));
 -            phpDocumentor_out("\n");
 -            flush();
 -        }
 -        // free up considerable memory
 -        unset($this->elements);
 -        unset($this->pkg_elements);
 -    }
 -    
 -    /**
 -     * This function takes an {@link abstractLink} descendant and returns an html link
 -     *
 -     * @param abstractLink a descendant of abstractlink should be passed, and never text
 -     * @param string text to display in the link
 -     * @param boolean this parameter is not used, and is deprecated
 -     * @param boolean determines whether the returned text is enclosed in an <a> tag
 -     */
 -    function returnSee(&$element, $eltext = false, $with_a = true)
 -    {
 -        if (!$element) return false;
 -        if (!$with_a) return $this->getId($element, false);
 -        if (!$eltext)
 -        {
 -            $eltext = '';
 -            switch($element->type)
 -            {
 -                case 'tutorial' :
 -                $eltext = strip_tags($element->title);
 -                break;
 -                case 'method' :
 -                case 'var' :
 -                case 'const' :
 -                $eltext .= $element->class.'::';
 -                case 'page' :
 -                case 'define' :
 -                case 'class' :
 -                case 'function' :
 -                case 'global' :
 -                default :
 -                $eltext .= $element->name;
 -                if ($element->type == 'function' || $element->type == 'method') $eltext .= '()';
 -                break;
 -            }
 -        }
 -        return '<a href="'.$this->getId($element).'">'.$eltext.'</a>';
 -    }
 -    
 -    function getId($element, $fullpath = true)
 -    {
 -        if (phpDocumentor_get_class($element) == 'parserdata')
 -        {
 -            $element = $this->addLink($element->parent);
 -            $elp = $element->parent;
 -        } elseif (is_a($element, 'parserbase'))
 -        {
 -            $elp = $element;
 -            $element = $this->addLink($element);
 -        }
 -        $c = '';
 -        if (!empty($element->subpackage))
 -        {
 -            $c = '/'.$element->subpackage;
 -        }
 -        $b = '{$subdir}';
 -        switch ($element->type)
 -        {
 -            case 'page' :
 -            if ($fullpath)
 -            return $b.$element->package.$c.'/'.$element->fileAlias.'.html';
 -            return 'top';
 -            break;
 -            case 'define' :
 -            case 'global' :
 -            case 'function' :
 -            if ($fullpath)
 -            return $b.$element->package.$c.'/'.$element->fileAlias.'.html#'.$element->type.$element->name;
 -            return $element->type.$element->name;
 -            break;
 -            case 'class' :
 -            if ($fullpath)
 -            return $b.$element->package.$c.'/'.$element->name.'.html';
 -            return 'top';
 -            break;
 -            case 'method' :
 -            case 'var' :
 -            case 'const' :
 -            if ($fullpath)
 -            return $b.$element->package.$c.'/'.$element->class.'.html#'.$element->type.$element->name;
 -            return $element->type.$element->name;
 -            break;
 -            case 'tutorial' :
 -            $d = '';
 -            if ($element->section)
 -            {
 -                $d = '#'.$element->section;
 -            }
 -            return $b.$element->package.$c.'/tutorial_'.$element->name.'.html'.$d;
 -        }
 -    }
 -    
 -    function ConvertTodoList()
 -    {
 -        $todolist = array();
 -        foreach($this->todoList as $package => $alltodos)
 -        {
 -            foreach($alltodos as $todos)
 -            {
 -                $converted = array();
 -                $converted['link'] = $this->returnSee($todos[0]);
 -                if (!is_array($todos[1]))
 -                {
 -                    $converted['todos'][] = $todos[1]->Convert($this);
 -                } else
 -                {
 -                    foreach($todos[1] as $todo)
 -                    {
 -                        $converted['todos'][] = $todo->Convert($this);
 -                    }
 -                }
 -                $todolist[$package][] = $converted;
 -            }
 -        }
 -        $templ = &$this->newSmarty();
 -        $templ->assign('todos',$todolist);
 -        $templ->register_outputfilter('CHMdefault_outputfilter');
 -        $this->setTargetDir($this->base_dir);
 -        $this->addTOC('Todo List','todolist','Index','',false,true);
 -        $this->addKLink('Todo List', 'todolist', '', 'Development');
 -        $this->writefile('todolist.html',$templ->fetch('todolist.tpl'));
 -    }
 -    
 -    /**
 -     * Convert README/INSTALL/CHANGELOG file contents to output format
 -     * @param README|INSTALL|CHANGELOG
 -     * @param string contents of the file
 -     */
 -    function Convert_RIC($name, $contents)
 -    {
 -        $template = &$this->newSmarty();
 -        $template->assign('contents',$contents);
 -        $template->assign('name',$name);
 -        $this->setTargetDir($this->base_dir);
 -        $this->addTOC($name,'ric_'.$name,'Index','',false,true);
 -        $this->addKLink($name, 'ric_'.$name, '', 'Development');
 -        $this->writefile('ric_'.$name . '.html',$template->fetch('ric.tpl'));
 -        $this->ric_set[$name] = true;
 -    }
 -    
 -    /**
 -     * Create errors.html template file output
 -     *
 -     * This method takes all parsing errors and warnings and spits them out ordered by file and line number.
 -     * @global ErrorTracker We'll be using it's output facility
 -     */
 -    function ConvertErrorLog()
 -    {
 -        global $phpDocumentor_errors;
 -        $allfiles = array();
 -        $files = array();
 -        $warnings = $phpDocumentor_errors->returnWarnings();
 -        $errors = $phpDocumentor_errors->returnErrors();
 -        $template = &$this->newSmarty();
 -        foreach($warnings as $warning)
 -        {
 -            $file = '##none';
 -            $linenum = 'Warning';
 -            if ($warning->file)
 -            {
 -                $file = $warning->file;
 -                $allfiles[$file] = 1;
 -                $linenum .= ' on line '.$warning->linenum;
 -            }
 -            $files[$file]['warnings'][] = array('name' => $linenum, 'listing' => $warning->data);
 -        }
 -        foreach($errors as $error)
 -        {
 -            $file = '##none';
 -            $linenum = 'Error';
 -            if ($error->file)
 -            {
 -                $file = $error->file;
 -                $allfiles[$file] = 1;
 -                $linenum .= ' on line '.$error->linenum;
 -            }
 -            $files[$file]['errors'][] = array('name' => $linenum, 'listing' => $error->data);
 -        }
 -        $i=1;
 -        $af = array();
 -        foreach($allfiles as $file => $num)
 -        {
 -            $af[$i++] = $file;
 -        }
 -        $allfiles = $af;
 -        usort($allfiles,'strnatcasecmp');
 -        $allfiles[0] = "Post-parsing";
 -        foreach($allfiles as $i => $a)
 -        {
 -            $allfiles[$i] = array('file' => $a);
 -        }
 -        $out = array();
 -        foreach($files as $file => $data)
 -        {
 -            if ($file == '##none') $file = 'Post-parsing';
 -            $out[$file] = $data;
 -        }
 -        $template->assign("files",$allfiles);
 -        $template->assign("all",$out);
 -        $template->assign("title","phpDocumentor Parser Errors and Warnings");
 -        $this->setTargetDir($this->base_dir);
 -        $this->writefile("errors.html",$template->fetch('errors.tpl'));
 -        unset($template);
 -        phpDocumentor_out("\n\nTo view errors and warnings, look at ".$this->base_dir. PATH_DELIMITER . "errors.html\n");
 -        flush();
 -    }
 -    
 -    function getCData($value)
 -    {
 -        return '<pre>'.htmlentities($value).'</pre>';
 -    }
 -    
 -    function getTutorialId($package,$subpackage,$tutorial,$id)
 -    {
 -        return $id;
 -    }
 -
 -    /**
 -     * Converts package page and sets its package as used in {@link $package_pages}
 -     * @param parserPackagePage
 -     */
 -    function convertPackagepage(&$element)
 -    {
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->package = $element->package;
 -        $this->subpackage = '';
 -        $contents = $element->Convert($this);
 -        $this->package_pages[$element->package] = str_replace('{$subdir}','../',$contents);
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $element->package);
 -        $this->addTOC($element->package." Tutorial",'package_'.$element->package,$element->package,'');
 -        $this->writeFile('package_'.$element->package.'.html',str_replace('{$subdir}','../',$contents));
 -        $this->setTargetDir($this->base_dir);
 -        Converter::writefile('index.html',str_replace('{$subdir}','',$contents));
 -        $this->addKLink($element->package." Tutorial", 'package_'.$element->package, '', 'Tutorials');
 -    }
 -    
 -    /**
 -     * @param parserTutorial
 -     */
 -    function convertTutorial(&$element)
 -    {
 -        phpDocumentor_out("\n");
 -        flush();
 -        $template = &parent::convertTutorial($element);
 -        $a = '../';
 -        if ($element->subpackage) $a .= '../';
 -        $template->assign('subdir',$a);
 -        $template->register_outputfilter('CHMdefault_outputfilter');
 -        $contents = $template->fetch('tutorial.tpl');
 -        if ($element->package == $GLOBALS['phpDocumentor_DefaultPackageName'] && empty($element->subpackage) && ($element->name == $element->package . '.pkg'))
 -        {
 -            $template->assign('subdir','');
 -            $this->setTargetDir($this->base_dir);
 -            Converter::writefile('index.html',$template->fetch('tutorial.tpl'));
 -        }
 -        $a = '';
 -        if ($element->subpackage) $a = PATH_DELIMITER . $element->subpackage;
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $element->package . $a);
 -        $this->addTOC($a = strip_tags($element->getTitle($this)), 'tutorial_'.$element->name,
 -            $element->package, $element->subpackage, false, true);
 -        $this->writeFile('tutorial_'.$element->name.'.html',$contents);
 -        $this->addKLink($element->getTitle($this), $element->package . $a . PATH_DELIMITER . 'tutorial_'.$element->name,
 -            '', 'Tutorials');
 -    }
 -    
 -    /**
 -     * Converts class for template output
 -     * @see prepareDocBlock(), generateChildClassList(), generateFormattedClassTree(), getFormattedConflicts()
 -     * @see getFormattedInheritedMethods(), getFormattedInheritedVars()
 -     * @param parserClass
 -     */
 -    function convertClass(&$element)
 -    {
 -        parent::convertClass($element);
 -        $this->class_dir = $element->docblock->package;
 -        if (!empty($element->docblock->subpackage)) $this->class_dir .= PATH_DELIMITER . $element->docblock->subpackage;
 -        $a = '../';
 -        if ($element->docblock->subpackage != '') $a = "../$a";
 -        
 -        $this->class_data->assign('subdir',$a);
 -        $this->class_data->assign("title","Docs For Class " . $element->getName());
 -        $this->class_data->assign("page",$element->getName() . '.html');
 -        $this->addKLink($element->name, $this->class_dir . PATH_DELIMITER . $this->class, '', 'Classes');
 -    }
 -    
 -
 -    /**
 -     * Converts class variables for template output
 -     * @see prepareDocBlock(), getFormattedConflicts()
 -     * @param parserDefine
 -     */
 -    function convertVar(&$element)
 -    {
 -        parent::convertVar($element, array('var_dest' => $this->getId($element,false)));
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir);
 -        $this->addKLink($element->name, $this->class_dir . PATH_DELIMITER .$this->class, $this->getId($element,false), $element->class.' Properties');
 -    }
 -
 -    /**
 -     * Converts class constants for template output
 -     * @see prepareDocBlock(), getFormattedConflicts()
 -     * @param parserDefine
 -     */
 -    function convertConst(&$element)
 -    {
 -        parent::convertConst($element, array('const_dest' => $this->getId($element,false)));
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir);
 -        $this->addKLink($element->name, $this->class_dir . PATH_DELIMITER .$this->class, $this->getId($element,false), $element->class.' Constants');
 -    }
 -
 -    /**
 -     * Converts class methods for template output
 -     * @see prepareDocBlock(), getFormattedConflicts()
 -     * @param parserDefine
 -     */
 -    function convertMethod(&$element)
 -    {
 -        parent::convertMethod($element, array('method_dest' => $this->getId($element,false)));
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir);
 -        $this->addKLink($element->name, $this->class_dir . PATH_DELIMITER .$this->class, $this->getId($element,false), $element->class.' Methods');
 -    }
 -    
 -    /**
 -     * Converts function for template output
 -     * @see prepareDocBlock(), parserFunction::getFunctionCall(), getFormattedConflicts()
 -     * @param parserFunction
 -     */
 -    function convertFunction(&$element)
 -    {
 -        $funcloc = $this->getId($this->addLink($element));
 -        parent::convertFunction($element,array('function_dest' => $this->getId($element,false)));
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir);
 -        $this->addKLink($element->name, $this->page_dir . PATH_DELIMITER . $this->page, $this->getId($element,false), 'Functions');
 -    }
 -    
 -    /**
 -     * Converts include elements for template output
 -     * @see prepareDocBlock()
 -     * @param parserInclude
 -     */
 -    function convertInclude(&$element)
 -    {
 -        parent::convertInclude($element, array('include_file'    => '_'.strtr($element->getValue(),array('"' => '', "'" => '','.' => '_'))));
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir);
 -        $this->addKLink(str_replace('"', '', $element->getValue()), $this->page_dir . PATH_DELIMITER . $this->page, '', ucfirst($element->name));
 -    }
 -    
 -    /**
 -     * Converts defines for template output
 -     * @see prepareDocBlock(), getFormattedConflicts()
 -     * @param parserDefine
 -     */
 -    function convertDefine(&$element)
 -    {
 -        parent::convertDefine($element, array('define_link' => $this->getId($element,false)));
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir);
 -        $this->addKLink($element->name, $this->page_dir . PATH_DELIMITER . $this->page, $this->getId($element,false), 'Constants');
 -    }
 -    
 -    /**
 -     * Converts global variables for template output
 -     * @param parserGlobal
 -     */
 -    function convertGlobal(&$element)
 -    {
 -        parent::convertGlobal($element, array('global_link' => $this->getId($element,false)));
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir);
 -        $this->addKLink($element->name, $this->page_dir . PATH_DELIMITER . $this->page, $this->getId($element,false), 'Global Variables');
 -    }
 -    
 -    /**
 -     * converts procedural pages for template output
 -     * @see prepareDocBlock(), getClassesOnPage()
 -     * @param parserData
 -     */
 -    function convertPage(&$element)
 -    {
 -        parent::convertPage($element);
 -        $this->juststarted = true;
 -        $this->page_dir = $element->parent->package;
 -        if (!empty($element->parent->subpackage)) $this->page_dir .= PATH_DELIMITER . $element->parent->subpackage;
 -        // registering stuff on the template
 -        $this->page_data->assign("page",$this->getPageName($element) . '.html');
 -        $this->page_data->assign("title","Docs for page ".$element->parent->getFile());
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir);
 -        $this->addKLink($element->parent->file, $this->page_dir . PATH_DELIMITER . $this->page, '', 'Files');
 -    }
 -    
 -    function getPageName(&$element)
 -    {
 -        if (phpDocumentor_get_class($element) == 'parserpage') return '_'.$element->getName();
 -        return '_'.$element->parent->getName();
 -    }
 -
 -    /**
 -     * returns an array containing the class inheritance tree from the root object to the class
 -     *
 -     * @param parserClass    class variable
 -     * @return array Format: array(root,child,child,child,...,$class)
 -     * @uses parserClass::getParentClassTree()
 -     */
 -    
 -    function generateFormattedClassTree($class)
 -    {
 -        $tree = $class->getParentClassTree($this);
 -        $out = '';
 -        if (count($tree) - 1)
 -        {
 -            $result = array($class->getName());
 -            $parent = $tree[$class->getName()];
 -            $distance[] = '';
 -            while ($parent)
 -            {
 -                $x = $parent;
 -                if (is_object($parent))
 -                {
 -                    $subpackage = $parent->docblock->subpackage;
 -                    $package = $parent->docblock->package;
 -                    $x = $parent;
 -                    $x = $parent->getLink($this);
 -                    if (!$x) $x = $parent->getName();
 -                }
 -                $result[] = 
 -                    $x;
 -                $distance[] =
 -                    "\n%s|\n" .
 -                    "%s--";
 -                if (is_object($parent))
 -                $parent = $tree[$parent->getName()];
 -                elseif (isset($tree[$parent]))
 -                $parent = $tree[$parent];
 -            }
 -            $nbsp = '   ';
 -            for($i=count($result) - 1;$i>=0;$i--)
 -            {
 -                $my_nbsp = '';
 -                for($j=0;$j<count($result) - $i;$j++) $my_nbsp .= $nbsp;
 -                $distance[$i] = sprintf($distance[$i],$my_nbsp,$my_nbsp);
 -            }
 -            return array('classes'=>array_reverse($result),'distance'=>array_reverse($distance));
 -        } else
 -        {
 -            return array('classes'=>$class->getName(),'distance'=>array(''));
 -        }
 -    }
 -    
 -    /** @access private */
 -    function sortVar($a, $b)
 -    {
 -        return strnatcasecmp($a->getName(),$b->getName());
 -    }
 -    
 -    /** @access private */
 -    function sortMethod($a, $b)
 -    {
 -        if ($a->isConstructor) return -1;
 -        if ($b->isConstructor) return 1;
 -        return strnatcasecmp($a->getName(),$b->getName());
 -    }
 -
 -    /**
 -     * returns a template-enabled array of class trees
 -     * 
 -     * @param    string    $package    package to generate a class tree for
 -     * @see $roots, HTMLConverter::getRootTree()
 -     */
 -    function generateFormattedClassTrees($package)
 -    {
 -        if (!isset($this->roots[$package])) return array();
 -        $roots = $trees = array();
 -        $roots = $this->roots[$package];
 -        for($i=0;$i<count($roots);$i++)
 -        {
 -            $trees[] = array('class' => $roots[$i],'class_tree' => "<ul>\n".$this->getRootTree($this->getSortedClassTreeFromClass($roots[$i],$package,''),$package)."</ul>\n");
 -        }
 -        return $trees;
 -    }
 -    
 -    /**
 -     * return formatted class tree for the Class Trees page
 -     *
 -     * @param array $tree output from {@link getSortedClassTreeFromClass()}
 -     * @see Classes::$definitechild, generateFormattedClassTrees()
 -     * @return string
 -     */
 -    function getRootTree($tree,$package)
 -    {
 -        if (!$tree) return '';
 -        $my_tree = '';
 -        $cur = '#root';
 -        $lastcur = array(false);
 -        $kids = array();
 -        $dopar = false;
 -        if ($tree[$cur]['parent'])
 -        {
 -            $dopar = true;
 -            if (!is_object($tree[$cur]['parent']))
 -            {
 -//                debug("parent ".$tree[$cur]['parent']." not found");
 -                $my_tree .= '<li>' . $tree[$cur]['parent'] .'<ul>';
 -            }
 -            else
 -            {
 -//                        debug("parent ".$this->returnSee($tree[$cur]['parent'])." in other package");
 -                $my_tree .= '<li>' . $this->returnSee($tree[$cur]['parent']);
 -                if ($tree[$cur]['parent']->package != $package) $my_tree .= ' <b>(Different package)</b><ul>';
 -            }
 -        }
 -        do
 -        {
 -//            fancy_debug($cur,$lastcur,$kids);
 -            if (count($tree[$cur]['children']))
 -            {
 -//                debug("$cur has children");
 -                if (!isset($kids[$cur]))
 -                {
 -//                    debug("set $cur kids");
 -                    $kids[$cur] = 1;
 -                    $my_tree .= '<li>'.$this->returnSee($tree[$cur]['link']);
 -                    $my_tree .= '<ul>'."\n";
 -                }
 -                array_push($lastcur,$cur);
 -                list(,$cur) = each($tree[$cur]['children']);
 -//                var_dump('listed',$cur);
 -                if ($cur)
 -                {
 -                    $cur = $cur['package'] . '#' . $cur['class'];
 -//                    debug("set cur to child $cur");
 -//                    $my_tree .= '<li>'.$this->returnSee($tree[$cur]['link']);
 -                    continue;
 -                } else
 -                {
 -//                    debug("end of children for $cur");
 -                    $cur = array_pop($lastcur);
 -                    $cur = array_pop($lastcur);
 -                    $my_tree .= '</ul></li>'."\n";
 -                    if ($dopar && ($cur == '#root' || !$cur)) $my_tree .= '</ul></li>';
 -                }
 -            } else 
 -            {
 -//                debug("$cur has no children");
 -                $my_tree .= '<li>'.$this->returnSee($tree[$cur]['link'])."</li>";
 -                if ($dopar && $cur == '#root') $my_tree .= '</ul></li>';
 -                $cur = array_pop($lastcur);
 -            }
 -        } while ($cur);
 -        return $my_tree;
 -    }
 -        /**
 -         * Generate indexing information for given element
 -         * 
 -         * @param parserElement descendant of parserElement
 -         * @see generateElementIndex()
 -         * @return array
 -         */
 -        function getIndexInformation($elt)
 -        {
 -            $Result['type'] = $elt->type;
 -            $Result['file_name'] = $elt->file;
 -            $Result['path'] = $elt->getPath();
 -            
 -            if (isset($elt->docblock))
 -						{
 -							$Result['description'] = $elt->docblock->getSDesc($this);
 -							
 -							if ($elt->docblock->hasaccess)
 -								$Result['access'] = $elt->docblock->tags['access'][0]->value;
 -							else
 -								$Result['access'] = 'public';
 -
 -							$Result['abstract'] = isset ($elt->docblock->tags['abstract'][0]);
 -						}
 -            else
 -                $Result['description'] = '';
 -            
 -            $aa = $Result['description'];
 -            if (!empty($aa)) $aa = "<br>    $aa";
 -
 -            switch($elt->type)
 -            {
 -                    case 'class':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Class';
 -                            $Result['link'] = $this->getClassLink($elt->getName(),
 -                                                                  $elt->docblock->package,
 -                                                                  $elt->getPath(),
 -                                                                  $elt->getName());
 -                            $Result['listing'] = 'in file '.$elt->file.', class '.$Result['link']."$aa";
 -                    break;
 -                    case 'define':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Constant';
 -                            $Result['link'] = $this->getDefineLink($elt->getName(),
 -                                                                   $elt->docblock->package,
 -                                                                   $elt->getPath(),
 -                                                                   $elt->getName());
 -                            $Result['listing'] = 'in file '.$elt->file.', constant '.$Result['link']."$aa";
 -                    break;
 -                    case 'global':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Global';
 -                            $Result['link'] = $this->getGlobalLink($elt->getName(),
 -                                                                   $elt->docblock->package,
 -                                                                   $elt->getPath(),
 -                                                                   $elt->getName());
 -                            $Result['listing'] = 'in file '.$elt->file.', global variable '.$Result['link']."$aa";
 -                    break;
 -                    case 'function':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Function';
 -                            $Result['link'] = $this->getFunctionLink($elt->getName(),
 -                                                                     $elt->docblock->package,
 -                                                                     $elt->getPath(),
 -                                                                     $elt->getName().'()');
 -                            $Result['listing'] = 'in file '.$elt->file.', function '.$Result['link']."$aa";
 -                    break;
 -                    case 'method':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Method';
 -                            $Result['link'] = $this->getMethodLink($elt->getName(),
 -                                                                   $elt->class,
 -                                                                   $elt->docblock->package,
 -                                                                   $elt->getPath(),
 -                                                                   $elt->class.'::'.$elt->getName().'()'
 -                                                                             );
 -														if ($elt->isConstructor) $Result['constructor'] = 1;
 -                            $Result['listing'] = 'in file '.$elt->file.', method '.$Result['link']."$aa";
 -                    break;
 -                    case 'var':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Variable';
 -                            $Result['link'] = $this->getVarLink($elt->getName(),
 -                                                                $elt->class,
 -                                                                $elt->docblock->package,
 -                                                                $elt->getPath(),
 -                                                                $elt->class.'::'.$elt->getName());
 -                            $Result['listing'] = 'in file '.$elt->file.', variable '.$Result['link']."$aa";
 -                    break;
 -                    case 'const':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Variable';
 -                            $Result['link'] = $this->getConstLink($elt->getName(),
 -                                                                $elt->class,
 -                                                                $elt->docblock->package,
 -                                                                $elt->getPath(),
 -                                                                $elt->class.'::'.$elt->getName());
 -                            $Result['listing'] = 'in file '.$elt->file.', class constant '.$Result['link']."$aa";
 -                    break;
 -                    case 'page':
 -                            $Result['name'] = $elt->getFile();
 -                            $Result['title'] = 'Page';
 -                            $Result['link'] = $this->getPageLink($elt->getFile(),
 -                                                                 $elt->package,
 -                                                                 $elt->getPath(),
 -                                                                 $elt->getFile());
 -                            $Result['listing'] = 'procedural page '.$Result['link'];
 -                    break;
 -                    case 'include':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Include';
 -                            $Result['link'] = $elt->getValue();
 -                            $Result['listing'] = 'include '.$Result['name'];
 -                    break;
 -            }
 -
 -            return $Result;
 -        }
 -    /**
 -     * Generate alphabetical index of all elements
 -     *
 -     * @see $elements, walk()
 -     */
 -    function generateElementIndex()
 -    {
 -        $elementindex = array();
 -        $letters = array();
 -        $used = array();
 -        foreach($this->elements as $letter => $nutoh)
 -        {
 -            foreach($this->elements[$letter] as $i => $yuh)
 -            {
 -                if ($this->elements[$letter][$i]->type != 'include')
 -                {
 -                    if (!isset($used[$letter]))
 -                    {
 -                        $letters[]['letter'] = $letter;
 -                        $elindex['letter'] = $letter;
 -                        $used[$letter] = 1;
 -                    }
 -
 -                    $elindex['index'][] = $this->getIndexInformation($this->elements[$letter][$i]);
 -                }
 -            }
 -            if (isset($elindex['index']))
 -            {
 -                $elementindex[] = $elindex;
 -            } else
 -            {
 -                unset($letters[count($letters) - 1]);
 -            }
 -            $elindex = array();
 -        }
 -        return array($elementindex,$letters);
 -    }
 -    
 -    function setTemplateDir($dir)
 -    {
 -        Converter::setTemplateDir($dir);
 -        $this->smarty_dir = $this->templateDir;
 -    }
 -    
 -    function copyMediaRecursively($media,$targetdir,$subdir = '')
 -    {
 -        if (!is_array($media)) {
 -            return;
 -        }
 -        foreach($media as $dir => $files)
 -        {
 -            if ($dir === '/')
 -            {
 -                $this->copyMediaRecursively($files,$targetdir);
 -            } else
 -            {
 -                if (!is_numeric($dir))
 -                {
 -                    // create the subdir
 -                    phpDocumentor_out("creating $targetdir/$dir\n");
 -                    Converter::setTargetDir($targetdir . PATH_DELIMITER . $dir);
 -                    if (!empty($subdir)) $subdir .= PATH_DELIMITER;
 -                    $this->copyMediaRecursively($files,"$targetdir/$dir",$subdir . $dir);
 -                } else
 -                {
 -                    // copy the file
 -                    phpDocumentor_out("copying $targetdir/".$files['file']."\n");
 -                    $this->copyFile($files['file'],$subdir);
 -                }
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * calls the converter setTargetDir, and then copies any template images and the stylesheet if they haven't been copied
 -     * @see Converter::setTargetDir()
 -     */
 -    function setTargetDir($dir)
 -    {
 -        Converter::setTargetDir($dir);
 -        if ($this->wrote) return;
 -        $this->wrote = true;
 -        $template_images = array();
 -        $stylesheets = array();
 -        $tdir = $dir;
 -        $dir = $this->templateDir;
 -        $this->templateDir = $this->templateDir.'templates/';
 -        $info = new Io;
 -        $this->copyMediaRecursively($info->getDirTree($this->templateDir.'media',$this->templateDir),$tdir);
 -    }
 -    
 -    /**
 -     * Generate alphabetical index of all elements by package and subpackage
 -     *
 -     * @param string $package name of a package
 -     * @see $pkg_elements, walk(), generatePkgElementIndexes()
 -     */
 -    function generatePkgElementIndex($package)
 -    {
 -//        var_dump($this->pkg_elements[$package]);
 -        $elementindex = array();
 -        $letters = array();
 -        $letterind = array();
 -        $used = array();
 -        $subp = '';
 -        foreach($this->pkg_elements[$package] as $subpackage => $els)
 -        {
 -            if (empty($els)) continue;
 -            if (!empty($subpackage)) $subp = " (<b>subpackage:</b> $subpackage)"; else $subp = '';
 -            foreach($els as $letter => $yuh)
 -            {
 -                foreach($els[$letter] as $i => $yuh)
 -                {
 -                    if ($els[$letter][$i]->type != 'include')
 -                    {
 -                        if (!isset($used[$letter]))
 -                        {
 -                            $letters[]['letter'] = $letter;
 -                            $letterind[$letter] = count($letters) - 1;
 -                            $used[$letter] = 1;
 -                        }
 -                        $elindex[$letter]['letter'] = $letter;
 -
 -                        $elindex[$letter]['index'][] = $this->getIndexInformation($els[$letter][$i]);
 -                    }
 -                }
 -            }
 -        }
 -        ksort($elindex);
 -        usort($letters,'CHMdefault_lettersort');
 -        if (isset($elindex))
 -        {
 -            while(list($letter,$tempel) = each($elindex))
 -            {
 -                if (!isset($tempel))
 -                {
 -                    unset($letters[$letterind[$tempel['letter']]]);
 -                } else
 -                $elementindex[] = $tempel;
 -            }
 -        } else $letters = array();
 -        return array($elementindex,$letters);
 -    }
 -    
 -    /**
 -     *
 -     * @see generatePkgElementIndex()
 -     */
 -    function generatePkgElementIndexes()
 -    {
 -        $packages = array();
 -        $package_names = array();
 -        $pkg = array();
 -        $letters = array();
 -        foreach($this->pkg_elements as $package => $trash)
 -        {
 -            $pkgs['package'] = $package;
 -            $pkg['package'] = $package;
 -            list($pkg['pindex'],$letters[$package]) = $this->generatePkgElementIndex($package);
 -            if (count($pkg['pindex']))
 -            {
 -                $packages[] = $pkg;
 -                $package_names[] = $pkgs;
 -            }
 -            unset($pkgs);
 -            unset($pkg);
 -        }
 -        foreach($packages as $i => $package)
 -        {
 -            $pnames = array();
 -            for($j=0;$j<count($package_names);$j++)
 -            {
 -                if ($package_names[$j]['package'] != $package['package']) $pnames[] = $package_names[$j];
 -            }
 -            $packages[$i]['packageindexes'] = $pnames;
 -        }
 -        return array($packages,$package_names,$letters);
 -    }
 -    
 -    /**
 -     * @param string name of class
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the class's documentation
 -     * @see parent::getClassLink()
 -     */
 -    function getClassLink($expr,$package, $file = false,$text = false, $with_a = true)
 -    {
 -        $a = Converter::getClassLink($expr,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text, $with_a);
 -    }
 -
 -    /**
 -     * @param string name of function
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the function's documentation
 -     * @see parent::getFunctionLink()
 -     */
 -    function getFunctionLink($expr,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getFunctionLink($expr,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of define
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the define's documentation
 -     * @see parent::getDefineLink()
 -     */
 -    function getDefineLink($expr,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getDefineLink($expr,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of global variable
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the global variable's documentation
 -     * @see parent::getGlobalLink()
 -     */
 -    function getGlobalLink($expr,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getGlobalLink($expr,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of procedural page
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the procedural page's documentation
 -     * @see parent::getPageLink()
 -     */
 -    function getPageLink($expr,$package, $path = false,$text = false)
 -    {
 -        $a = Converter::getPageLink($expr,$package,$path);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of method
 -     * @param string class containing method
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the method's documentation
 -     * @see parent::getMethodLink()
 -     */
 -    function getMethodLink($expr,$class,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getMethodLink($expr,$class,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of var
 -     * @param string class containing var
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the var's documentation
 -     * @see parent::getVarLink()
 -     */
 -    function getVarLink($expr,$class,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getVarLink($expr,$class,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of class constant
 -     * @param string class containing class constant
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the var's documentation
 -     * @see parent::getVarLink()
 -     */
 -    function getConstLink($expr,$class,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getConstLink($expr,$class,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -    
 -    /**
 -     * does a nat case sort on the specified second level value of the array
 -     *
 -     * @param    mixed    $a
 -     * @param    mixed    $b
 -     * @return    int
 -     */
 -    function rcNatCmp ($a, $b)
 -    {
 -        $aa = strtoupper($a[$this->rcnatcmpkey]);
 -        $bb = strtoupper($b[$this->rcnatcmpkey]);
 -        
 -        return strnatcasecmp($aa, $bb);
 -    }
 -    
 -    /**
 -     * does a nat case sort on the specified second level value of the array.
 -     * this one puts constructors first
 -     *
 -     * @param    mixed    $a
 -     * @param    mixed    $b
 -     * @return    int
 -     */
 -    function rcNatCmp1 ($a, $b)
 -    {
 -        $aa = strtoupper($a[$this->rcnatcmpkey]);
 -        $bb = strtoupper($b[$this->rcnatcmpkey]);
 -        
 -        if (strpos($aa,'CONSTRUCTOR') === 0)
 -        {
 -            return -1;
 -        }
 -        if (strpos($bb,'CONSTRUCTOR') === 0)
 -        {
 -            return 1;
 -        }
 -        if (strpos($aa,strtoupper($this->class)) === 0)
 -        {
 -            return -1;
 -        }
 -        if (strpos($bb,strtoupper($this->class)) === 0)
 -        {
 -            return -1;
 -        }
 -        return strnatcasecmp($aa, $bb);
 -    }
 -    
 -    /**
 -     * Write a file to disk, and add it to the {@link $hhp_files} list of files
 -     * to include in the generated CHM
 -     *
 -     * {@source}
 -     */
 -    function writefile($file,$contents)
 -    {
 -        $this->addHHP($this->targetDir . PATH_DELIMITER . $file);
 -        Converter::writefile($file,$contents);
 -    }
 -    
 -    /**
 -     * @uses $hhp_files creates the array by adding parameter $file
 -     */
 -    function addHHP($file)
 -    {
 -        $file = str_replace($this->base_dir . PATH_DELIMITER, '', $file);
 -        $file = str_replace('\\',PATH_DELIMITER,$file);
 -        $file = str_replace('//',PATH_DELIMITER,$file);
 -        $file = str_replace(PATH_DELIMITER,'\\',$file);
 -        $this->hhp_files[]['name'] = $file;
 -    }
 -    
 -    function generateTOC()
 -    {
 -        $comppack = '';
 -        $templ = &$this->newSmarty();
 -        foreach($this->TOC as $package => $TOC1)
 -        {
 -            $comp_subs = '';
 -            $comp_subs1 = false;
 -            foreach($TOC1 as $subpackage => $files)
 -            {
 -                $comp_types = '';
 -                    $comp = '';
 -                    $templ1 = &$this->newSmarty();
 -                    $templ1->assign('entry', array());
 -					$type = 'Classes';
 -                //foreach($types as $type => $files)
 -                //{
 -                    foreach($files as $file)
 -                    {
 -						//use book icon for classes
 -						if ($type == 'Classes') {
 -	                        $templ1->append('entry', array('paramname' => $file[0],'outputfile' => $file[1],'isclass' => 1));
 -						} else {
 -	                        $templ1->append('entry', array('paramname' => $file[0],'outputfile' => $file[1]));
 -						}
 -                    }
 -                    $templ = &$this->newSmarty();
 -                    $templ->assign('tocsubentries',$templ1->fetch('tocentry.tpl'));
 -                    $templ->assign('entry', array(array('paramname' => $type)));
 -                    $comp_types .= $templ->fetch('tocentry.tpl');
 -                //}
 -                if (!empty($subpackage))
 -                {
 -                    $templ = &$this->newSmarty();
 -                    $templ->assign('tocsubentries',$comp_types);
 -                    $templ->assign('entry', array(array('paramname' => $subpackage)));
 -                    $comp_subs .= $templ->fetch('tocentry.tpl');
 -                } else
 -                {
 -                    $comp_subs1 = $comp_types;
 -                }
 -            }
 -            if ($comp_subs1)
 -            $templ->assign('tocsubentries',$comp_subs1);
 -            if (!empty($comp_subs))
 -            $templ->assign('entry', array(array('paramname' => $package, 'tocsubentries' => $comp_subs)));
 -            else
 -            $templ->assign('entry', array(array('paramname' => $package)));
 -            $comppack .= $templ->fetch('tocentry.tpl');
 -        }
 -        return $comppack;
 -    }
 -    
 -    function addSourceTOC($name, $file, $package, $subpackage, $source = false)
 -    {
 -        $file = str_replace($this->base_dir . PATH_DELIMITER, '', $this->targetDir)
 -             . PATH_DELIMITER . $file . '.html';
 -        $file = str_replace('\\',PATH_DELIMITER,$file);
 -        $file = str_replace('//',PATH_DELIMITER,$file);
 -        $file = str_replace(PATH_DELIMITER,'\\',$file);
 -        $sub = $source ? 'Source Code' : 'Examples';
 -        $this->TOC[$package][$subpackage][$sub][] = array($name, $file);
 -    }
 -    
 -    function addTOC($name,$file,$package,$subpackage,$class = false,$tutorial = false)
 -    {
 -        $file = str_replace($this->base_dir . PATH_DELIMITER, '', $this->targetDir)
 -             . PATH_DELIMITER . $file . '.html';
 -        $file = str_replace('\\',PATH_DELIMITER,$file);
 -        $file = str_replace('//',PATH_DELIMITER,$file);
 -        $file = str_replace(PATH_DELIMITER,'\\',$file);
 -        $file = str_replace($this->base_dir . '\\', '', $file);
 -        $sub = $class ? 'Classes' : 'Files';
 -        if ($tutorial) $sub = 'Manual';
 -		if($class)
 -	        $this->TOC[$package][$subpackage][] = array($name,$file);
 -    }
 -    
 -    /**
 -     * Add an item to the index.hhk file
 -     * @param string $name index entry name
 -     * @param string $file filename containing index
 -     * @param string $bookmark html anchor of location in file, if any
 -     * @param string $group group this entry with a string
 -     * @uses $KLinks tracks the index
 -     * @author Andrew Eddie <eddieajau@users.sourceforge.net>
 -     */
 -    function addKLink($name, $file, $bookmark='', $group='')
 -    {
 -        $file = $file . '.html';
 -        $file = str_replace('\\',PATH_DELIMITER,$file);
 -        $file = str_replace('//',PATH_DELIMITER,$file);
 -        $file = str_replace(PATH_DELIMITER,'\\',$file);
 -//        debug("added $name, $file, $bookmark, $group ");
 -		$link = $file;
 -		$link .= $bookmark ? "#$bookmark" :'';
 -		if ($group) {
 -	        $this->KLinks[$group]['grouplink'] = $file;
 -	        $this->KLinks[$group][] = array($name,$link);
 -		}
 -	    $this->KLinks[] = array($name,$link);
 -    }
 -
 -    /**
 -     * Get the table of contents for index.hhk
 -     * @return string contents of tocentry.tpl generated from $KLinks
 -     * @author Andrew Eddie <eddieajau@users.sourceforge.net>
 -     */
 -    function generateKLinks()
 -    {
 -        $templ = &$this->newSmarty();
 -		$templ->assign('entry', array());
 -        foreach($this->KLinks as $group=>$link)
 -        {
 -			if (isset($link['grouplink'])) {
 -				$templg = &$this->newSmarty();
 -				$templg->assign('entry', array());
 -				foreach($link as $k=>$sublink)
 -				{
 -					if ($k != 'grouplink') {
 -						$templg->append('entry', array('paramname' => $sublink[0],'outputfile' => $sublink[1]));
 -					}
 -				}
 -				$templ->append('entry', array('paramname' => $group, 'outputfile' => $link['grouplink'], 'tocsubentries' => $templg->fetch('tocentry.tpl') ));
 -			} else {
 -				$templ->append('entry', array('paramname' => $link[0],'outputfile' => $link[1]));
 -			}
 -		}
 -        return $templ->fetch('tocentry.tpl');
 -    }
 -    
 -    /**
 -     * Create the phpdoc.hhp, contents.hhc files needed by MS HTML Help Compiler
 -     * to create a CHM file
 -     *
 -     * The output function generates the table of contents (contents.hhc)
 -     * and file list (phpdoc.hhp) files used to create a .CHM by the
 -     * free MS HTML Help compiler.
 -     * {@internal
 -     * Using {@link $hhp_files}, a list of all separate .html files
 -     * is created in CHM format, and written to phpdoc.hhp.  This list was
 -     * generated by {@link writefile}.
 -     *
 -     * Next, a call to the table of contents:
 -     *
 -     * {@source 12 2}
 -     *
 -     * finishes things off}}
 -     * @todo use to directly call html help compiler hhc.exe
 -     * @link http://www.microsoft.com/downloads/release.asp?releaseid=33071
 -     * @uses generateTOC() assigns to the toc template variable
 -     */
 -    function Output()
 -    {
 -        $templ = &$this->newSmarty();
 -        $templ->assign('files',$this->hhp_files);
 -        $this->setTargetDir($this->base_dir);
 -        Converter::writefile('phpdoc.hhp',$templ->fetch('hhp.tpl'));
 -        $templ = &$this->newSmarty();
 -        $templ->assign('toc',$this->generateTOC());
 -        Converter::writefile('contents.hhc',$templ->fetch('contents.hhc.tpl'));
 -		$templ->assign('klinks',$this->generateKLinks());
 -        Converter::writefile('index.hhk',$templ->fetch('index.hhk.tpl'));
 -        phpDocumentor_out("NOTE: to create the documentation.chm file, you must now run Microsoft Help Workshop on phpdoc.hhp\n");
 -        phpDocumentor_out("To get the free Microsoft Help Workshop, browse to: http://go.microsoft.com/fwlink/?LinkId=14188\n");
 -        flush();
 -    }
 -}
 -
 -/**
 - * @access private
 - * @global string name of the package to set as the first package
 - */
 -function CHMdefault_pindexcmp($a, $b)
 -{
 -    global $phpDocumentor_DefaultPackageName;
 -    if ($a['title'] == $phpDocumentor_DefaultPackageName) return -1;
 -    if ($b['title'] == $phpDocumentor_DefaultPackageName) return 1;
 -    return strnatcasecmp($a['title'],$b['title']);
 -}
 -
 -/** @access private */
 -function CHMdefault_lettersort($a, $b)
 -{
 -    return strnatcasecmp($a['letter'],$b['letter']);
 -}
 -
 -/** @access private */
 -function CHMdefault_outputfilter($src, &$smarty)
 -{
 -    return str_replace('{$subdir}',$smarty->_tpl_vars['subdir'],$src);
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/options.ini b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/options.ini deleted file mode 100644 index 4566db60..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/options.ini +++ /dev/null @@ -1,577 +0,0 @@ -preservedocbooktags = false
 -
 -;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
 -[highlightSourceTokens]
 -;; format:
 -;; T_CONSTANTNAME = open
 -;; /T_CONSTANTNAME = close
 -
 -T_INCLUDE = <span class="src-inc">
 -/T_INCLUDE = </span>
 -T_INCLUDE_ONCE = <span class="src-inc">
 -/T_INCLUDE_ONCE = </span>
 -T_REQUIRE_ONCE = <span class="src-inc">
 -/T_REQUIRE_ONCE = </span>
 -T_REQUIRE_ONCE = <span class="src-inc">
 -/T_REQUIRE_ONCE = </span>
 -
 -T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
 -/T_CONSTANT_ENCAPSED_STRING = </span>
 -T_STRING_VARNAME = <span class="src-str">
 -/T_STRING_VARNAME = </span>
 -
 -T_STRING = <span class="src-id">
 -/T_STRING = </span>
 -
 -T_DNUMBER = <span class="src-num">
 -/T_DNUMBER = </span>
 -T_LNUMBER = <span class="src-num">
 -/T_LNUMBER = </span>
 -
 -T_VARIABLE = <span class="src-var">
 -/T_VARIABLE = </span>
 -
 -T_COMMENT = <span class="src-comm">
 -/T_COMMENT = </span>
 -T_ML_COMMENT = <span class="src-comm">
 -/T_ML_COMMENT = </span>
 -
 -T_OBJECT_OPERATOR = <span class="src-sym">
 -/T_OBJECT_OPERATOR = </span>
 -
 -T_ABSTRACT = <span class="src-key">
 -/T_ABSTRACT = </span>
 -T_CLONE = <span class="src-key">
 -/T_CLONE = </span>
 -T_HALT_COMPILER = <span class="src-key">
 -/T_HALT_COMPILER = </span>
 -T_ARRAY = <span class="src-key">
 -/T_ARRAY = </span>
 -T_AS = <span class="src-key">
 -/T_AS = </span>
 -T_BREAK = <span class="src-key">
 -/T_BREAK = </span>
 -T_CLASS = <span class="src-key">
 -/T_CLASS = </span>
 -T_CASE = <span class="src-key">
 -/T_CASE = </span>
 -T_CONST = <span class="src-key">
 -/T_CONST = </span>
 -T_CONTINUE = <span class="src-key">
 -/T_CONTINUE = </span>
 -T_DECLARE = <span class="src-key">
 -/T_DECLARE = </span>
 -T_DEFAULT = <span class="src-key">
 -/T_DEFAULT = </span>
 -T_ELSE = <span class="src-key">
 -/T_ELSE = </span>
 -T_ELSEIF = <span class="src-key">
 -/T_ELSEIF = </span>
 -T_EMPTY = <span class="src-key">
 -/T_EMPTY = </span>
 -T_ENDDECLARE = <span class="src-key">
 -/T_ENDDECLARE = </span>
 -T_ENDFOR = <span class="src-key">
 -/T_ENDFOR = </span>
 -T_ENDSWITCH = <span class="src-key">
 -/T_ENDSWITCH = </span>
 -T_ENDFOREACH = <span class="src-key">
 -/T_ENDFOREACH = </span>
 -T_ENDIF = <span class="src-key">
 -/T_ENDIF = </span>
 -T_ENDWHILE = <span class="src-key">
 -/T_ENDWHILE = </span>
 -T_EXIT = <span class="src-key">
 -/T_EXIT = </span>
 -T_EXTENDS = <span class="src-key">
 -/T_EXTENDS = </span>
 -T_FINAL = <span class="src-key">
 -/T_FINAL = </span>
 -T_FOR = <span class="src-key">
 -/T_FOR = </span>
 -T_FOREACH = <span class="src-key">
 -/T_FOREACH = </span>
 -T_FUNCTION = <span class="src-key">
 -/T_FUNCTION = </span>
 -T_GLOBAL = <span class="src-key">
 -/T_GLOBAL = </span>
 -T_IF = <span class="src-key">
 -/T_IF = </span>
 -T_IMPLEMENTS = <span class="src-key">
 -/T_IMPLEMENTS = </span>
 -T_INTERFACE = <span class="src-key">
 -/T_INTERFACE = </span>
 -T_LOGICAL_AND = <span class="src-key">
 -/T_LOGICAL_AND = </span>
 -T_LOGICAL_OR = <span class="src-key">
 -/T_LOGICAL_OR = </span>
 -T_LOGICAL_XOR = <span class="src-key">
 -/T_LOGICAL_XOR = </span>
 -T_NEW = <span class="src-key">
 -/T_NEW = </span>
 -T_PRIVATE = <span class="src-key">
 -/T_PRIVATE = </span>
 -T_PROTECTED = <span class="src-key">
 -/T_PROTECTED = </span>
 -T_PUBLIC = <span class="src-key">
 -/T_PUBLIC = </span>
 -T_RETURN = <span class="src-key">
 -/T_RETURN = </span>
 -T_STATIC = <span class="src-key">
 -/T_STATIC = </span>
 -T_SWITCH = <span class="src-key">
 -/T_SWITCH = </span>
 -T_VAR = <span class="src-key">
 -/T_VAR = </span>
 -T_WHILE = <span class="src-key">
 -/T_WHILE = </span>
 -
 -T_DOUBLE_COLON = <span class="src-sym">
 -/T_DOUBLE_COLON = </span>
 -
 -T_OPEN_TAG = <span class="src-php">
 -/T_OPEN_TAG = </span>
 -T_OPEN_TAG_WITH_ECHO = <span class="src-php">
 -/T_OPEN_TAG_WITH_ECHO = </span>
 -T_CLOSE_TAG = <span class="src-php">
 -/T_CLOSE_TAG = </span>
 -
 -
 -[highlightSource]
 -;; this is for highlighting things that aren't tokens like "&"
 -;; format:
 -;; word = open
 -;; /word = close
 -@ = <span class="src-sym">
 -/@ = </span>
 -& = <span class="src-sym">
 -/& = </span>
 -[ = <span class="src-sym">
 -/[ = </span>
 -] = <span class="src-sym">
 -/] = </span>
 -! = <span class="src-sym">
 -/! = </span>
 -";" = <span class="src-sym">
 -/; = </span>
 -( = <span class="src-sym">
 -/( = </span>
 -) = <span class="src-sym">
 -/) = </span>
 -, = <span class="src-sym">
 -/, = </span>
 -{ = <span class="src-sym">
 -/{ = </span>
 -} = <span class="src-sym">
 -/} = </span>
 -""" = <span class="src-str">
 -/" = </span>
 -
 -[highlightDocBlockSourceTokens]
 -;; this is for docblock tokens, using by phpDocumentor_HighlightParser
 -;; tagphptype is for "string" in @param string description, for example
 -docblock = <span class="src-doc">
 -/docblock = </span>
 -tagphptype = <span class="src-doc-type">
 -/tagphptype = </span>
 -tagvarname = <span class="src-doc-var">
 -/tagvarname = </span>
 -coretag = <span class="src-doc-coretag">
 -/coretag = </span>
 -tag = <span class="src-doc-tag">
 -/tag = </span>
 -inlinetag = <span class="src-doc-inlinetag">
 -/inlinetag = </span>
 -internal = <span class="src-doc-internal">
 -/internal = </span>
 -closetemplate = <span class="src-doc-close-template">
 -/closetemplate = </span>
 -docblocktemplate = <span class="src-doc-template">
 -/docblocktemplate = </span>
 -
 -[highlightTutorialSourceTokens]
 -;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
 -;; <tag>
 -opentag = <span class="tute-tag">
 -/opentag = </span>
 -;; </tag>
 -closetag = <span class="tute-tag">
 -/closetag = </span>
 -;; <tag attribute="value">
 -attribute = <span class="tute-attribute-name">
 -/attribute = </span>
 -;; <tag attribute="value">
 -attributevalue = <span class="tute-attribute-value">
 -/attributevalue = </span>
 -;; &entity;
 -entity = <span class="tute-entity">
 -/entity = </span>
 -;; <!-- comment -->
 -comment = <span class="tute-comment">
 -/comment = </span>
 -;; {@inline tag}
 -itag = <span class="tute-inline-tag">
 -/itag = </span>
 -
 -;; used for translation of html in DocBlocks
 -[desctranslate]
 -ul = <ul>
 -/ul = </ul>
 -ol = <ol>
 -/ol = </ol>
 -li = <li>
 -/li = </li>
 -code = <div class="listing"><pre>
 -/code = </pre></div>
 -var = <var>
 -/var = </var>
 -samp = <samp>
 -/samp = </samp>
 -kbd = <kbd>
 -/kbd = </kbd>
 -pre = <pre>
 -/pre = </pre>
 -p = <p>
 -/p = </p>
 -b = <strong>
 -/b = </strong>
 -i = <em>
 -/i = </em>
 -br = <br />
 -
 -[ppage]
 -;; this is the DocBook package page translation section.  All DocBook tags
 -;; that have a corresponding html tag must be listed here.  Entities should
 -;; also be listed here
 -;;
 -;; examples:
 -;; 1)
 -;; tagname = newtagname
 -;;
 -;; This is the simplest case, where all attributes will be added into the
 -;; starting tag and the ending tag will be html/xml style </tranlatedtagname>
 -;; <tagname></tagname> becomes <newtagname></newtagname> and
 -;; <tagname attr="value"></tagname> becomes
 -;; <newtagname attr="value"></newtagname>
 -;;
 -;; 2)
 -;; tagname = newtagname
 -;; tagname->attr = newattrname
 -;;
 -;; in this case, everything will be like the first case, except tags like:
 -;; <tagname attr="value"></tagname> will become
 -;; <newtagname newattrname="value"></newtagname>
 -;;
 -;; 3)
 -;; tagname = newtagname
 -;; tagname->attr = newattrname
 -;; tagname->attr+value = newvalue
 -;;
 -;; in this case, the value is also translated to another.  This can be useful
 -;; for instances such as focus="middle" changing to align="center" or something
 -;; of that nature.
 -;; <tagname attr="value"></tagname> will become
 -;; <newtagname newattrname="newvalue"></newtagname>
 -;;
 -;; 4)
 -;; tagname = newtagname
 -;; tagname->attr1 = newattrname
 -;; tagname->attr2 = newattrname
 -;; tagname->attr1+value|attr2+value = newvalue
 -;;
 -;; in this case, two attributes combine to make one new attribute, and the combined
 -;; value is translated into a new value
 -;; <tagname attr1="value1" attr2="value2"></tagname> will become
 -;; <newtagname newattrname="newvalue"></newtagname>
 -;;
 -;; 5)
 -;; tagname = newtagname
 -;; tagname!attr = dummy
 -;;
 -;; here, the attribute will be ignored.  dummy is not used and may be any value
 -;; <tagname attr="value"></tagname> will become
 -;; <newtagname></newtagname>
 -;;
 -;; 6)
 -;; tagname = newtagname
 -;; tagname! = dummy
 -;;
 -;; here, all attributes will be ignored.  dummy is not used and may be any value
 -;; <tagname attr1="value" attr2="foo"></tagname> will become
 -;; <newtagname></newtagname>
 -;;
 -;; 7)
 -;; tagname = newtagname
 -;; tagname/ = 1
 -;;
 -;; here, the tag will be translated as a single tag with no closing tag, and all
 -;; attributes
 -;; <tagname attr="val">{text text}</tagname> will become
 -;; <newtagname attr="val" />
 -;;
 -;; 8)
 -;; tagname = <starttaginfo />
 -;; /tagname = closetagtext
 -;;
 -;; in this case, the text <starttaginfo> will be inserted exactly as entered for
 -;; <tagname> and closetagtext for </tagname>
 -;; <tagname attr="val"></tagname> will become
 -;; <starttaginfo />closetagtext
 -;;
 -;; 9)
 -;; $attr$my_attribute = newattrname
 -;;
 -;; tagname = newtagname
 -;;
 -;; in this case, all occurences of my_attribute in any tag will be changed to
 -;; newattrname.  This is useful for changing things like role="php" to
 -;; class="php," for example.  Note that the text "$attr$" MUST be on the line
 -;; start for phpDocumentor to recognize it.
 -;;
 -;; 10)
 -;; &entity; = translation text
 -;; " = "
 -;; " = """
 -;; < = <
 -;;
 -;; Use this to control translation of entities to their appropriate values
 -
 -  =  
 -" = "
 -” = ”
 -“ = “
 -& = &
 -< = <
 -> = >
 -© = ©
 -
 -$attr$role = class
 -
 -abbrev = abbr
 -
 -blockquote = blockquote
 -
 -arg = span
 -arg->choice = class
 -
 -author = <span class="author">
 -/author = </span>
 -author! = 0
 -
 -authorblurb = <div class="author-blurb">
 -/authorblurb = </div>
 -
 -authorgroup = <div class="authors"><h2 class="title">Authors</h2>
 -/authorgroup = </div>
 -authorgroup! = 0
 -
 -caution = <span class="warning">
 -/caution = </span>
 -caution! = 0
 -
 -cmdsynopsis = <div class="cmd-synopsis">
 -/cmdsynopsis = </div>
 -
 -command = <span class="cmd-title">
 -/command = </span>
 -
 -copyright = <div class="notes">
 -/copyright = </div>
 -
 -emphasis = strong
 -
 -example = <pre class="example">
 -/example = </pre>
 -example! = 0
 -
 -function =
 -/function = ()
 -
 -formalpara = p
 -
 -graphic = img
 -graphic->fileref = src
 -graphic/ =
 -
 -important = strong
 -
 -informalequation = blockquote
 -
 -informalexample = div
 -
 -inlineequation = em
 -
 -itemizedlist = ul
 -
 -listitem = li
 -
 -literal = code
 -
 -literallayout = span
 -
 -option = " "
 -/option = 
 -
 -orderedlist = ol
 -
 -para = p
 -
 -programlisting = <pre class="listing">
 -/programlisting = </pre>
 -programlisting! = 0
 -
 -refentry = div
 -
 -refnamediv = <div class="ref-title-box">
 -/refnamediv = </div>
 -refnamediv! = 0
 -
 -refname = <h1 class="ref-title">
 -/refname = </h1>
 -
 -refpurpose = <h2 class="ref-purpose">
 -/refpurpose = </h2>
 -
 -refsynopsisdiv = <div class="ref-synopsis">
 -/refsynopsisdiv = </div>
 -refsynopsisdiv! = 0
 -
 -refsect1 = span
 -
 -refsect2 = 
 -/refsect2 = <hr />
 -
 -refsect3 = 
 -/refsect3 = <br />
 -
 -releaseinfo = <div class="release-info">(
 -/releaseinfo = )</div>
 -
 -simpara = 
 -/simpara = <br />
 -simpara! = 0
 -
 -subscript = sub
 -
 -superscript = super
 -
 -table = table
 -
 -table->colsep = rules
 -table->rowsep = rules
 -table->colsep+1|rowsep+1 = all
 -table->colsep+1|rowsep+0 = cols
 -table->colsep+0|rowsep+1 = rows
 -
 -table->frame = frame
 -table->frame+all = border
 -table->frame+none = void
 -table->frame+sides = vsides
 -table->frame+top = above
 -table->frame+topbot = hsides
 -
 -thead = thead
 -
 -tfoot = tfoot
 -
 -tbody = tbody
 -
 -colspec = col
 -
 -tgroup = colgroup
 -tgroup/ = 1
 -tgroup->cols = span
 -
 -row = tr
 -
 -entry = td
 -entry->morerows = colspan
 -entry->morerows+1 = 2
 -entry->morerows+2 = 3
 -entry->morerows+3 = 4
 -entry->morerows+4 = 5
 -entry->morerows+5 = 6
 -entry->morerows+6 = 7
 -entry->morerows+7 = 8
 -entry->morerows+8 = 9
 -entry->morerows+9 = 10
 -entry->morerows+10 = 11
 -;; add more if you need more colspans
 -
 -warning = <span class="warning">
 -/warning = </span>
 -warning! = 0
 -
 -;; now begins the attributes that should be tags in cdata
 -[$attr$id]
 -open = a
 -;close = /a
 -cdata! = true
 -quotevalues = true
 -separator = "="
 -;separateall = true
 -$id = name
 -
 -;; now begins the sections that deal with <title>
 -[refsynopsisdiv_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <h1 class="title">
 -close = </h1>
 -
 -[refsect1_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <h2 class="title">
 -close = </h2>
 -
 -[refsect2_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <h3 class="title">
 -close = </h3>
 -
 -[refsect3_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <h4 class="title">
 -close = </h4>
 -
 -[para_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <div class="title">
 -close = </div>
 -
 -[formalpara_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <div class="title">
 -close = </div>
 -
 -[example_title]
 -;tag_attr = true
 -;attr_name = title
 -;cdata_start = true
 -cdata_end = true
 -open = </td></tr><tr><td><strong>
 -close = </strong>
 -
 -[table_title]
 -;tag_attr = true
 -;attr_name = true
 -cdata_start = true
 -open = <caption>
 -close = </caption>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/__tags.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/__tags.tpl deleted file mode 100644 index 221830c4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/__tags.tpl +++ /dev/null @@ -1,13 +0,0 @@ -<div class="tag-list">
 -    {section name=tag loop=$tags}
 -        {if $tags[tag].keyword != "abstract" &&
 -            $tags[tag].keyword != "access" &&
 -            $tags[tag].keyword != "static" &&
 -	    $tags[tag].keyword != "version"
 -	}
 -
 -            <strong>{$tags[tag].keyword|capitalize}:</strong> 
 -            {$tags[tag].data}<br />
 -        {/if}
 -    {/section}
 -</div>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_declaration.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_declaration.tpl deleted file mode 100644 index d7fe2f82..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_declaration.tpl +++ /dev/null @@ -1,38 +0,0 @@ -<hr size="1" noshade="noshade"/>
 -<div class="class-declaration">
 -    {if count($tags) > 0}
 -        {section name=tag loop=$tags}
 -            {if $tags[tag].keyword == "abstract"}
 -                abstract
 -            {/if}
 -        {/section}
 -    {/if}
 -
 -    {if $is_interface}
 -        interface
 -    {else}
 -        class
 -    {/if}
 -
 -    <strong>{$class_name}</strong>
 -
 -    {if count($class_tree) > 1}
 -        {section name=tree loop=$class_tree.classes}
 -            {if $smarty.section.tree.last}
 -                extends {$class_tree.classes[$smarty.section.tree.index_prev]}
 -            {/if}
 -        {/section}
 -    {/if}
 -
 -    {if $implements}
 -        <br/>
 -        implements
 -        {foreach item="interface" from=$implements}
 -            {if !$smarty.foreach.interface.first}
 -                , {$interface}
 -            {else}
 -                {$interface}
 -            {/if}
 -        {/foreach}
 -    {/if}
 -</div>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_description.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_description.tpl deleted file mode 100644 index 12025c1c..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_description.tpl +++ /dev/null @@ -1,7 +0,0 @@ -<div class="class-description">
 -    <p>{$sdesc}</p>
 -
 -    {if $desc != ""}{$desc}{/if}
 -</div>
 -
 -{include file="_tags.tpl" tags=$tags}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_list.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_list.tpl deleted file mode 100644 index d6a1d398..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_class_list.tpl +++ /dev/null @@ -1 +0,0 @@ -{eval var=$compiledclassindex}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_details.tpl deleted file mode 100644 index bca71e17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_details.tpl +++ /dev/null @@ -1,33 +0,0 @@ -{if $consts}
 -    <hr size="1" noshade="noshade"/>
 -    <a name="constant-details"></a>
 -    <table class="constant-details" cellspacing="1">
 -        <tr>
 -            <th>Constant Details</th>
 -        </tr>
 -        {section name=const loop=$consts}
 -            <tr>
 -                <td>
 -                    <a name="{$consts[const].const_dest}"></a>
 -
 -                    <h3>{$consts[const].const_name}</h3>
 -
 -                    <p>{$consts[const].sdesc}</p>
 -
 -                    {if $consts[const].desc}
 -                        {$consts[const].desc}
 -                    {/if}
 -
 -                    <div class="tag-list">
 -                        <h4 class="tag">Type:</h4>
 -                        <div class="tag-data">{include file="_get_constant_type.tpl" const=$consts[const].const_value}</div>
 -                        <h4 class="tag">Value:</h4>
 -                        <div class="tag-data">{$consts[const].const_value}</div>
 -                    </div>
 -                    {include file="_tags.tpl" tags=$consts[const].tags}
 -                    <p/>
 -                </td>
 -            </tr>
 -        {/section}
 -    </table>
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_summary.tpl deleted file mode 100644 index 8049c4b0..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constant_summary.tpl +++ /dev/null @@ -1,22 +0,0 @@ -{if $consts || $iconsts}
 -    <hr size="1" noshade="noshade"/>
 -    <a name="constant-summary"></a>
 -    <table class="constant-summary" cellspacing="1">
 -        <tr>
 -            <th colspan="3">Constant Summary</th>
 -        </tr>
 -        {section name=const loop=$consts}
 -            <tr>
 -                <td class="type" nowrap="nowrap">{strip}{include file="_get_constant_type.tpl" const=$consts[const].const_value}{/strip}</td>
 -                <td class="name"><a href="{$consts[const].id}">{$consts[const].const_name}</a></td>
 -                <td class="description" width="100%">
 -                    {$consts[const].sdesc}
 -
 -                    {if $consts[const].desc}
 -                        {$consts[const].desc}
 -                    {/if}
 -                </td>
 -            </tr>
 -        {/section}
 -    </table>
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_details.tpl deleted file mode 100644 index ec4fd0a2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_details.tpl +++ /dev/null @@ -1,55 +0,0 @@ -{if $methods}
 -    {section name=method loop=$methods}
 -        {if $methods[method].function_name == "__construct"}
 -            <hr size="1" noshade="noshade"/>
 -            <a name="sec-method"></a>
 -            <table class="method-details" cellspacing="1">
 -                <tr>
 -                    <th colspan="3">Constructor Details</th>
 -                </tr>
 -                <tr>
 -                    <td class="method-data">
 -                        <a name="{$methods[method].method_dest}"></a>
 -
 -                        <h2>{$methods[method].function_name}</h2>
 -
 -                        <table class="method-detail" cellspacing="0">
 -                            <tr>
 -                                <td nowrap="nowrap">{strip}
 -                                    {if $methods[method].access == "protected"}
 -                                        protected 
 -                                    {/if}
 -
 -                                    {if $methods[method].access == "public"}
 -                                        public 
 -                                    {/if}
 -
 -                                    {if $methods[method].abstract == "1"}
 -                                        abstract 
 -                                    {/if}
 -
 -                                    {if $methods[method].static == "1"}
 -                                        static 
 -                                    {/if}
 -
 -                                    <strong>{$methods[method].function_name}</strong>
 -                                {/strip}</td>
 -                                <td nowrap="nowrap">{strip}
 -                                    {$methods[method].ifunction_call.params}
 -                                {/strip}</td>
 -                            </tr>
 -                        </table>
 -
 -                        <p>{$methods[method].sdesc}</p>
 -
 -                        {if $methods[method].desc}
 -                            {$methods[method].desc}
 -                        {/if}
 -
 -                        {include file="_tags.tpl" tags=$methods[method].tags}
 -                    </td>
 -                </tr>
 -            </table>
 -        {/if}
 -    {/section}
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_summary.tpl deleted file mode 100644 index 8819f63e..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_constructor_summary.tpl +++ /dev/null @@ -1,25 +0,0 @@ -{if $methods}
 -    {section name=method loop=$methods}
 -        {if $methods[method].function_name == "__construct"}
 -            <hr size="1" noshade="noshade"/>
 -            <a name="constructor-summary"></a>
 -            <table class="method-summary" cellspacing="1">
 -                <tr>
 -                    <th colspan="2">Constructor Summary</th>
 -                </tr>
 -                <tr>
 -                    <td class="type" nowrap="nowrap" width="1%">{$methods[method].access}</td>
 -                    <td>
 -                        <div class="declaration">
 -                            <a href="{$methods[method].id}">{$methods[method].function_name}</a>
 -                            {$methods[method].ifunction_call.params}
 -                        </div>
 -                        <div class="description">
 -                            {$methods[method].sdesc}
 -                        </div>
 -                    </td>
 -                </tr>
 -            </table>
 -        {/if}
 -    {/section}
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_details.tpl deleted file mode 100644 index 3cb5534a..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_details.tpl +++ /dev/null @@ -1,55 +0,0 @@ -{if $methods}
 -    {section name=method loop=$methods}
 -        {if $methods[method].function_name == "__destruct"}
 -            <hr size="1" noshade="noshade"/>
 -            <a name="sec-method"></a>
 -            <table class="method-details" cellspacing="1">
 -                <tr>
 -                    <th colspan="3">Destructor Details</th>
 -                </tr>
 -                <tr>
 -                    <td class="method-data">
 -                        <a name="{$methods[method].method_dest}"></a>
 -
 -                        <h2>{$methods[method].function_name}</h2>
 -
 -                        <table class="method-detail" cellspacing="0">
 -                            <tr>
 -                                <td nowrap="nowrap">{strip}
 -                                    {if $methods[method].access == "protected"}
 -                                        protected 
 -                                    {/if}
 -
 -                                    {if $methods[method].access == "public"}
 -                                        public 
 -                                    {/if}
 -
 -                                    {if $methods[method].abstract == "1"}
 -                                        abstract 
 -                                    {/if}
 -
 -                                    {if $methods[method].static == "1"}
 -                                        static 
 -                                    {/if}
 -
 -                                    <strong>{$methods[method].function_name}</strong>
 -                                {/strip}</td>
 -                                <td nowrap="nowrap">{strip}
 -                                    {build_argument_list args=$methods[method].ifunction_call.params style="vertical"}
 -                                {/strip}</td>
 -                            </tr>
 -                        </table>
 -
 -                        <p>{$methods[method].sdesc}</p>
 -
 -                        {if $methods[method].desc}
 -                            {$methods[method].desc}
 -                        {/if}
 -
 -                        {include file="_tags.tpl" tags=$methods[method].tags}
 -                    </td>
 -                </tr>
 -            </table>
 -        {/if}
 -    {/section}
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_summary.tpl deleted file mode 100644 index 53e8f1d2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_destructor_summary.tpl +++ /dev/null @@ -1,27 +0,0 @@ -{if $methods}
 -    {section name=method loop=$methods}
 -        {if $methods[method].function_name == "__destruct"}
 -            <hr size="1" noshade="noshade"/>
 -            <a name="desructor-summary"></a>
 -            <table class="method-summary" cellspacing="1">
 -                <tr>
 -                    <th colspan="2">Destructor Summary</th>
 -                </tr>
 -                <tr>
 -                    <td class="type" nowrap="nowrap" width="1%">{strip}
 -                        {$methods[method].access}
 -                    {/strip}</td>
 -                    <td>
 -                        <div class="declaration">{strip}
 -                            <a href="{$methods[method].id}">{$methods[method].function_name}</a>
 -                            {$methods[method].ifunction_call.params}
 -                        {/strip}</div>
 -                        <div class="description">
 -                            {$methods[method].sdesc}
 -                        </div>
 -                    </td>
 -                </tr>
 -            </table>
 -        {/if}
 -    {/section}
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_footer.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_footer.tpl deleted file mode 100644 index 0c2eddc2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_footer.tpl +++ /dev/null @@ -1 +0,0 @@ -</div>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_get_constant_type.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_get_constant_type.tpl deleted file mode 100644 index 48301da4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_get_constant_type.tpl +++ /dev/null @@ -1,10 +0,0 @@ -{if is_numeric(strtolower(trim($const)))}
 -    int
 -{elseif strtolower(trim($const)) == "true" ||
 -        strtolower(trim($const)) == "false"}
 -    bool
 -{elseif strtolower(trim($const)) == "null"}
 -    null
 -{else}
 -    string
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_header.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_header.tpl deleted file mode 100644 index f92571a4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_header.tpl +++ /dev/null @@ -1,4 +0,0 @@ -<div id="bar" nowrap="nowrap">
 -    {include file="_class_list.tpl"}
 -</div>
 -<div id="content1">
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_constants.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_constants.tpl deleted file mode 100644 index 66c37633..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_constants.tpl +++ /dev/null @@ -1,34 +0,0 @@ -{if $iconsts}
 -    {section name=iconst loop=$iconsts}
 -        <table class="inherited-constants" cellspacing="1">
 -            <tr>
 -                <th>Constants Inherited From {$iconsts[iconst].parent_class}</th>
 -            </tr>
 -            <tr>
 -                <td>
 -                    {assign var="_consts" value=""}
 -
 -                    {section name=_const loop=$iconsts[iconst].iconsts}
 -                        {if $_consts != ""},
 -                           {* append var="_consts" value=", "*}
 -                        {/if}
 -			<a href="{$href}">{$iconsts[iconst].iconsts[_const].name}</a>{if !$smarty.section.name.last},{/if}
 -			{*	
 -                        {extract_attribute attribute="href"
 -                                           element=$iconsts[iconst].iconsts[_const].link
 -                                           var="href" append="no"}
 -
 -                        {append var="_consts" value="<a href=\""}
 -                        {append var="_consts" value=$href}
 -                        {append var="_consts" value="\">"}
 -                        {append var="_consts" value=$iconsts[iconst].iconsts[_const].name}
 -                        {append var="_consts" value="</a>"}
 -			*}                    
 -{/section}
 -
 -                    {*$_consts*}
 -                </td>
 -            </tr>
 -        </table>
 -    {/section}
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_methods.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_methods.tpl deleted file mode 100644 index 55aafb17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inherited_methods.tpl +++ /dev/null @@ -1,42 +0,0 @@ -{if $imethods}
 -    {section name=imethod loop=$imethods}
 -        {if count($imethods[imethod].imethods) > 1 ||
 -            ($imethods[imethod].imethods[0].name != "__construct" &&
 -             $imethods[imethod].imethods[0].name != "__destruct" &&
 -             $imethods[imethod].imethods[0].abstract != "1")}
 -            <table class="inherited-methods" cellspacing="1">
 -                <tr>
 -                    <th>Methods Inherited From {$imethods[imethod].parent_class}</th>
 -                </tr>
 -                <tr>
 -                    <td>
 -                        {* assign var="_methods" value="" *}
 -
 -                        {section name=_method loop=$imethods[imethod].imethods}
 -                            {if $imethods[imethod].imethods[_method].name != "__construct" &&
 -                                $imethods[imethod].imethods[_method].abstract != "1"}
 -                                {*
 -				{if $_methods != ""}
 -                                    {append var="_methods" value=", "}
 -                                {/if}
 -				
 -                                {extract_attribute attribute="href"
 -                                                   element=$imethods[imethod].imethods[_method].link
 -                                                   var="href" append="no"}
 -
 -                                {append var="_methods" value="<a href=\""}
 -                                {append var="_methods" value=$href}
 -                                {append var="_methods" value="\">"}
 -                                {append var="_methods" value=$imethods[imethod].imethods[_method].name}
 -                                {append var="_methods" value="</a>"}
 -                            	*}
 -				{$imethods[imethod].imethods[_method].link}{if !$smarty.section._method.last},{/if}
 -				{/if}
 -                        {/section}
 -
 -                    </td>
 -                </tr>
 -            </table>
 -        {/if}
 -    {/section}
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inheritence_tree.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inheritence_tree.tpl deleted file mode 100644 index 471c7972..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_inheritence_tree.tpl +++ /dev/null @@ -1,3 +0,0 @@ -<div class="inheritence-tree">
 -    <pre>{section name=tree loop=$class_tree.classes}{if $smarty.section.tree.last}<strong>{$class_tree.classes[tree]}</strong>{else}{$class_tree.classes[tree]}{/if}{$class_tree.distance[tree]}{/section}</pre>
 -</div>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_details.tpl deleted file mode 100644 index b5ddfb10..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_details.tpl +++ /dev/null @@ -1,101 +0,0 @@ -{if $methods && (count($methods) > 1 ||
 -   ($methods[0].function_name != "__construct" &&
 -    $methods[0].function_name != "__destruct"))}
 -
 -    <hr size="1" noshade="noshade"/>
 -    <a name="method-details"></a>
 -    <table class="method-details" cellspacing="1">
 -        <tr>
 -            <th>Method Details</th>
 -        </tr>
 -        {section name=method loop=$methods}
 -            {if $methods[method].function_name != "__construct" &&
 -                $methods[method].function_name != "__destruct"}
 -
 -                <tr>
 -                    <td class="method-data">
 -
 -                        <a name="{$methods[method].method_dest}"></a>
 -
 -                        <h2>{$methods[method].function_name}</h2>
 -
 -                        <table class="method-detail" cellspacing="0">
 -                            <tr>
 -                                <td nowrap="nowrap">{strip}
 -                                    {if $methods[method].access == "protected"}
 -                                        protected 
 -                                    {/if}
 -
 -                                    {if $methods[method].access == "public"}
 -                                        public 
 -                                    {/if}
 -
 -                                    {if $methods[method].abstract == 1}
 -                                        abstract 
 -                                    {/if}
 -
 -                                    {if $methods[method].static == 1}
 -                                        static 
 -                                    {/if}
 -
 -                                    {$methods[method].function_return} 
 -
 -
 -                                    <strong>{$methods[method].function_name}</strong>
 -                                {/strip}</td>
 -                                <td width="100%">{strip}
 -                         (
 -                        {if $methods[method].ifunction_call.params}
 -                            {foreach item=param name="method" from=$methods[method].ifunction_call.params}
 -                                {$param.type} {$param.name} {if !$smarty.foreach.method.last}, {/if}
 -                            {/foreach}
 -
 -                        {/if}
 -                        )
 -				{/strip}</td>
 -                            </tr>
 -                        </table>
 -
 -                        <p>{$methods[method].sdesc}</p>
 -
 -                        {if $methods[method].desc}
 -                            {$methods[method].desc}
 -                        {/if}
 -			{* $methods[method]|print_r *}	
 -			<div class="tag-list"><table class="method-summary" cellspacing="1">
 -			{if $methods[method].ifunction_call.params}
 -				<tr><th colspan="3" class="small">Input</th></tr>
 -                            {foreach item=param name="method" from=$methods[method].ifunction_call.params}
 -                                <tr><td valign="top">{$param.type}</td><td valign="top"><strong>{$param.name}</strong><td valign="top">{$param.description}</td></tr>
 -                            {/foreach}
 -                        {/if}
 -			{if $methods[method].tags}
 -				<tr><th colspan="3" class="small">Output</th></tr>
 -			    
 -                            {foreach item=param name="method" from=$methods[method].tags}
 -				{if $param.keyword == "return"}
 -                                <tr><td valign="top">
 -                                    {$methods[method].function_return}
 -				</td><td valign="top" colspan="2">{$param.data}</td></tr>
 -                            	{/if}
 -			    {/foreach}
 -                        {/if}
 - 			{if $methods[method].tags}
 -				<tr><th colspan="3" class="small">Exception</th></tr>
 -			    
 -                            {foreach item=param name="method" from=$methods[method].tags}
 -				{if $param.keyword == "throws"}
 -                                <tr><td valign="top">{$param.keyword}</td><td valign="top" colspan="2">{$param.data}</td></tr>
 -                            	{/if}
 -			    {/foreach}
 -                        {/if}
 -			</table></div>
 -                                              
 - {* include file="_tags.tpl" tags=$methods[method].tags *}
 -                        <p/>
 -                    </td>
 -                </tr>
 -            {/if}
 -        {/section}
 -    </table>
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_summary.tpl deleted file mode 100644 index 8fefd671..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_method_summary.tpl +++ /dev/null @@ -1,61 +0,0 @@ -{if $methods || $imethods}
 -    <hr size="1" noshade="noshade"/>
 -    <a name="method-summary"></a>
 -    <table class="method-summary" cellspacing="1">
 -        <tr>
 -            <th colspan="2">Method Summary</th>
 -        </tr>
 -        {section name=method loop=$methods}
 -            {if $methods[method].function_name != "__construct" &&
 -                $methods[method].function_name != "__destruct"}
 -                {*
 -		{if trim(substr($methods[method].function_call, 0, 1)) == "&"}
 -                    {assign var="ref" value="true"}
 -                    {assign var="css" value=" class=\"reference\""}
 -                {else}
 -                    {assign var="ref" value="false"}
 -                    {assign var="css" value=""}
 -                {/if}
 -		*}
 -                <tr>
 -                    <td class="type" nowrap="nowrap" width="1%">
 -                        {if $methods[method].access == "protected"}
 -                            protected 
 -                        {/if}
 -
 -                        {if $methods[method].abstract == 1}
 -                            abstract 
 -                        {/if}
 -
 -                        {if $methods[method].static == 1}
 -                            static 
 -                        {/if}
 -
 -                        {$methods[method].function_return}
 -{*
 -                        {if $ref == "true"}
 -                             &
 -                        {/if}
 -*}
 -                    </td>
 -                    <td>
 -                        <div class="declaration">
 -                            <a href="{$methods[method].id}">{$methods[method].function_name}</a>
 -						({strip}
 -						{if $methods[method].ifunction_call.params}
 -							{foreach item=param name="method" from=$methods[method].ifunction_call.params}	
 -								{$param.type} {$param.name}{if !$smarty.foreach.method.last}, {/if}
 -							{/foreach}
 -                        	    
 -						{/if}
 -						{/strip})
 -						</div>
 -                        <div class="description">
 -                            {$methods[method].sdesc}
 -                        </div>
 -                    </td>
 -                </tr>
 -            {/if}
 -        {/section}
 -    </table>
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_sub_classes.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_sub_classes.tpl deleted file mode 100644 index e605b314..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_sub_classes.tpl +++ /dev/null @@ -1,19 +0,0 @@ -{if $children}
 -    <div class="sub-classes">
 -        {if $is_interface}
 -            <h4>Direct Known Sub-interfaces:</h4>
 -        {else}
 -            <h4>Direct Known Sub-classes:</h4>
 -        {/if}
 -
 -        <div><small>
 -        {section name=child loop=$children}
 -            {if !$smarty.section.child.first}
 -                , {$children[child].link}
 -            {else}
 -                {$children[child].link}
 -            {/if}
 -        {/section}
 -        </small></div>
 -    </div>
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_tags.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_tags.tpl deleted file mode 100644 index 221830c4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/_tags.tpl +++ /dev/null @@ -1,13 +0,0 @@ -<div class="tag-list">
 -    {section name=tag loop=$tags}
 -        {if $tags[tag].keyword != "abstract" &&
 -            $tags[tag].keyword != "access" &&
 -            $tags[tag].keyword != "static" &&
 -	    $tags[tag].keyword != "version"
 -	}
 -
 -            <strong>{$tags[tag].keyword|capitalize}:</strong> 
 -            {$tags[tag].data}<br />
 -        {/if}
 -    {/section}
 -</div>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl deleted file mode 100644 index 37e94343..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/basicindex.tpl +++ /dev/null @@ -1,18 +0,0 @@ -{section name=letter loop=$letters}
 -	[ <a href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a> ]
 -{/section}
 -
 -{section name=index loop=$index}
 -  <hr />
 -	<a name="{$index[index].letter}"></a>
 -	<div>
 -		<h2>{$index[index].letter}</h2>
 -		<dl>
 -			{section name=contents loop=$index[index].index}
 -				<dt><b>{$index[index].index[contents].name}</b></dt>
 -				<dd>{$index[index].index[contents].listing}</dd>
 -			{/section}
 -		</dl>
 -	</div>
 -	<a href="{$indexname}.html#top">top</a><br>
 -{/section}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl deleted file mode 100644 index b503c142..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/blank.tpl +++ /dev/null @@ -1,5 +0,0 @@ -<div align="center"><h1>{$maintitle}</h1></div>
 -<b>Welcome to {$package}!</b><br />
 -<br />
 -This documentation was generated by <a href="{$phpdocwebsite}">phpDocumentor v{$phpdocversion}</a><br />
 -
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl deleted file mode 100644 index 49e8c142..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/class.tpl +++ /dev/null @@ -1,31 +0,0 @@ -{include file="header.tpl" eltype="class" hasel=true contents=$classcontents}
 -
 -<h1><a href="../../../classdoc/{$class_name}.html">{if $is_interface}Interface{else}Class{/if} {$class_name}</a>
 -<span style="font-size:11pt">(<a href="../../../classdoc/{$class_name}.html">Class Overview</a>)</span>
 -</h1>
 -
 -{*inheritence tree*}
 -<div class="inheritence-tree">
 -    <pre>{section name=tree loop=$class_tree.classes}{if $smarty.section.tree.last}<strong>{$class_tree.classes[tree]}</strong>{else}{$class_tree.classes[tree]}{/if}{$class_tree.distance[tree]}{/section}</pre>
 -</div>
 -
 -{include file="_sub_classes.tpl"}
 -{include file="_class_description.tpl"}
 -{include file="_inherited_constants.tpl"}
 -
 -{include file="_constructor_summary.tpl"}
 -{* include file="_destructor_summary.tpl" *}
 -
 -{include file="_method_summary.tpl"}
 -
 -{include file="_inherited_methods.tpl"}
 -{include file="_constant_summary.tpl"}
 -{include file="_constructor_details.tpl"}
 -
 -{* include file="_destructor_details.tpl" *}
 -
 -{include file="_method_details.tpl"}
 -
 -{include file="_constant_details.tpl"}
 -
 -{include file="footer.tpl"}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl deleted file mode 100644 index c07fc33a..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classleft.tpl +++ /dev/null @@ -1,9 +0,0 @@ -{foreach key=subpackage item=files from=$classleftindex}
 -  <div class="package">
 -	{if $subpackage != ""}{$subpackage}<br />{/if}
 -	{section name=files loop=$files}
 -    {if $subpackage != ""}  {/if}
 -		{if $files[files].link != ''}<a href="{$files[files].link}">{/if}{$files[files].title}{if $files[files].link != ''}</a>{/if}<br />
 -	{/section}
 -  </div>
 -{/foreach}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl deleted file mode 100644 index 4020e3a8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/classtrees.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{include file="header.tpl" noleftindex=true}
 -<h1>{$title}</h1>
 -{section name=classtrees loop=$classtrees}
 -<hr />
 -<div class="classtree">Root class {$classtrees[classtrees].class}</div><br>
 -{$classtrees[classtrees].class_tree}
 -{/section}
 -{include file="footer.tpl"}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl deleted file mode 100644 index 88856c4b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/const.tpl +++ /dev/null @@ -1,14 +0,0 @@ -{section name=consts loop=$consts}
 -{if $show == 'summary'}
 -	var {$consts[consts].const_name}, {$consts[consts].sdesc}<br>
 -{else}
 -	<a name="{$consts[consts].const_dest}"></a>
 -	<p></p>
 -	<h4>{$consts[consts].const_name} = <span class="value">{$consts[consts].const_value|replace:"\n":"<br>\n"|replace:" ":" "|replace:"\t":"   "}</span></h4>
 -	<p>[line {if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}]</p>
 -  {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
 -
 -  <br />
 -	<div class="top">[ <a href="#top">Top</a> ]</div><br />
 -{/if}
 -{/section}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl deleted file mode 100644 index a1c71a0d..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/contents.hhc.tpl +++ /dev/null @@ -1 +0,0 @@ -{$toc}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl deleted file mode 100644 index 04ce5b48..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/define.tpl +++ /dev/null @@ -1,32 +0,0 @@ -{if count($defines) > 0}
 -{section name=def loop=$defines}
 -{if $show == 'summary'}
 -define constant <a href="{$defines[def].id}">{$defines[def].define_name}</a> = {$defines[def].define_value}, {$defines[def].sdesc}<br>
 -{else}
 -  <hr />
 -	<a name="{$defines[def].define_link}"></a>
 -	<h3>{$defines[def].define_name} <span class="smalllinenumber">[line {if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}]</span></h3>
 -	<div class="tags">
 -    <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border">
 -    <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code">
 -		<code>{$defines[def].define_name} = {$defines[def].define_value}</code>
 -    </td></tr></table>
 -    </td></tr></table>
 -
 -    {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
 -    <br />
 -	{if $defines[def].define_conflicts.conflict_type}
 -	<p><b>Conflicts with defines:</b> 
 -	{section name=me loop=$defines[def].define_conflicts.conflicts}
 -	{$defines[def].define_conflicts.conflicts[me]}<br />
 -	{/section}
 -	</p>
 -	{/if}
 -{* original    {if $defines[def].define_conflicts != ""
 -		<b>Conflicts:</b> {$defines[def].define_conflicts<br /><br />
 -    {/if *}
 -	</div>
 -	<div class="top">[ <a href="#top">Top</a> ]</div><br /><br />
 -{/if}
 -{/section}
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl deleted file mode 100644 index 09a603f8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/docblock.tpl +++ /dev/null @@ -1,15 +0,0 @@ -{if $sdesc != ''}{$sdesc|default:''}<br /><br />{/if}
 -{if $desc != ''}{$desc|default:''}<br />{/if}
 -{if count($tags) > 0}
 -<br /><br />
 -<h4>Tags:</h4>
 -<div class="tags">
 -<table border="0" cellspacing="0" cellpadding="0">
 -{section name=tag loop=$tags}
 -  <tr>
 -    <td><b>{$tags[tag].keyword}:</b>  </td><td>{$tags[tag].data}</td>
 -  </tr>
 -{/section}
 -</table>
 -</div>
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl deleted file mode 100644 index 175a5136..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/elementindex.tpl +++ /dev/null @@ -1,5 +0,0 @@ -{include file="header.tpl" noleftindex=true}
 -<a name="top"></a>
 -<h1>Index of all elements</h1>
 -{include file="basicindex.tpl" indexname="elementindex"}
 -{include file="footer.tpl"}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl deleted file mode 100644 index 1576a822..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/errors.tpl +++ /dev/null @@ -1,21 +0,0 @@ -{include file="header.tpl" noleftindex=true}
 -{section name=files loop=$files}
 -<a href="#{$files[files].file}">{$files[files].file}</a><br>
 -{/section}
 -{foreach key=file item=issues from=$all}
 -<a name="{$file}"></a>
 -<h1>{$file}</h1>
 -{if count($issues.warnings)}
 -<h2>Warnings:</h2><br>
 -{section name=warnings loop=$issues.warnings}
 -<b>{$issues.warnings[warnings].name}</b> - {$issues.warnings[warnings].listing}<br>
 -{/section}
 -{/if}
 -{if count($issues.errors)}
 -<h2>Errors:</h2><br>
 -{section name=errors loop=$issues.errors}
 -<b>{$issues.errors[errors].name}</b> - {$issues.errors[errors].listing}<br>
 -{/section}
 -{/if}
 -{/foreach}
 -{include file="footer.tpl"}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/examplesource.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/examplesource.tpl deleted file mode 100644 index fb85654b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/examplesource.tpl +++ /dev/null @@ -1,6 +0,0 @@ -{include file="header.tpl" title=$title}
 -<h1 align="center">{$title}</h1>
 -<div class="php">
 -{$source}
 -</div>
 -{include file="footer.tpl"}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl deleted file mode 100644 index 50f108d7..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/fileleft.tpl +++ /dev/null @@ -1,10 +0,0 @@ -{foreach key=subpackage item=files from=$fileleftindex}
 -	{if $subpackage != ""}subpackage <b>{$subpackage}</b><br>{/if}
 -  <div class="package">
 -	{section name=files loop=$files}
 -		{if $files[files].link != ''}<a href="{$files[files].link}">{/if}
 -		{$files[files].title}
 -		{if $files[files].link != ''}</a>{/if}<br>
 -	{/section}
 -  </div><br />
 -{/foreach}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl deleted file mode 100644 index b23076a0..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/filesource.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{capture name="tutle"}File Source for {$name}{/capture}
 -{include file="header.tpl" title=$smarty.capture.tutle}
 -<h1 align="center">Source for file {$name}</h1>
 -<p>Documentation is available at {$docs}</p>
 -<div class="php">
 -{$source}
 -</div>
 -{include file="footer.tpl"}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl deleted file mode 100644 index 0b744c20..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/footer.tpl +++ /dev/null @@ -1,11 +0,0 @@ -
 -
 -<div id="footer">
 -  Copyright © 2006 by Prado Software Group.
 -</div>
 -
 -</div><!-- page -->
 -
 -
 -</body>
 -</html>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl deleted file mode 100644 index 098aeb17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/function.tpl +++ /dev/null @@ -1,48 +0,0 @@ -{section name=func loop=$functions}
 -{if $show == 'summary'}
 -function {$functions[func].id}, {$functions[func].sdesc}<br />
 -{else}
 -  <hr />
 -	<a name="{$functions[func].function_dest}"></a>
 -	<h3>{$functions[func].function_name} <span class="smalllinenumber">[line {if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}]</span></h3>
 -	<div class="function">
 -    <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border">
 -    <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code">
 -		<code>{$functions[func].function_return} {if $functions[func].ifunction_call.returnsref}&{/if}{$functions[func].function_name}(
 -{if count($functions[func].ifunction_call.params)}
 -{section name=params loop=$functions[func].ifunction_call.params}
 -{if $smarty.section.params.iteration != 1}, {/if}{if $functions[func].ifunction_call.params[params].default != ''}[{/if}{$functions[func].ifunction_call.params[params].type} {$functions[func].ifunction_call.params[params].name}{if $functions[func].ifunction_call.params[params].default != ''} = {$functions[func].ifunction_call.params[params].default|escape:"html"}]{/if}
 -{/section}
 -{/if})</code>
 -    </td></tr></table>
 -    </td></tr></table><br />
 -
 -		{include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags}
 -    <br /><br />
 -	{if $functions[func].function_conflicts.conflict_type}
 -	<p><b>Conflicts with functions:</b> 
 -	{section name=me loop=$functions[func].function_conflicts.conflicts}
 -	{$functions[func].function_conflicts.conflicts[me]}<br />
 -	{/section}
 -	</p>
 -	{/if}
 -{* original    {if $functions[func].function_conflicts != ""
 -		<b>Conflicts:</b> {$functions[func].function_conflicts<br /><br />
 -    {/if *}
 -
 -    {if count($functions[func].params) > 0}
 -		<h4>Parameters</h4>
 -    <table border="0" cellspacing="0" cellpadding="0">
 -		{section name=params loop=$functions[func].params}
 -      <tr>
 -        <td class="type">{$functions[func].params[params].datatype}  </td>
 -        <td><b>{$functions[func].params[params].var}</b>  </td>
 -        <td>{$functions[func].params[params].data}</td>
 -      </tr>
 -		{/section}
 -		</table>
 -    {/if}
 -	<div class="top">[ <a href="#top">Top</a> ]</div><br /><br />
 -	</div>
 -{/if}
 -{/section}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl deleted file mode 100644 index 1053f748..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/global.tpl +++ /dev/null @@ -1,40 +0,0 @@ -{if count($globals) > 0}
 -{section name=glob loop=$globals}
 -{if $show == 'summary'}
 -global variable <a href="{$globals[glob].id}">{$globals[glob].global_name}</a> = {$globals[glob].global_value}, {$globals[glob].sdesc}<br>
 -{else}
 -  <hr />
 -	<a name="{$globals[glob].global_link}"></a>
 -	<h4><i>{$globals[glob].global_type}</i> {$globals[glob].global_name} <span class="smalllinenumber">[line {if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}]</span></h4>
 -	<div class="tags">
 -  {if $globals[glob].sdesc != ""}
 -	{include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
 -  {/if}
 -
 -  <table border="0" cellspacing="0" cellpadding="0">
 -    <tr>
 -      <td><b>Default value:</b>  </td>
 -      <td>{$globals[glob].global_value|replace:" ":" "|replace:"\n":"<br />\n"|replace:"\t":"   "}</td>
 -    </tr>
 -	{if $globals[glob].global_conflicts.conflict_type}
 -	<tr>
 -	  <td><b>Conflicts with globals:</b>  </td>
 -	  <td>
 -	{section name=me loop=$globals[glob].global_conflicts.conflicts}
 -	{$globals[glob].global_conflicts.conflicts[me]}<br />
 -	{/section}
 -	  </td>
 -	</tr>
 -	{/if}
 -{* original    {if $globals[glob].global_conflicts != ""
 -    <tr>
 -      <td><b>Conflicts:</b>  </td>
 -      <td>{$globals[glob].global_conflicts</td>
 -    </tr>
 -    {/if *}
 -  </table>
 -	</div><br /><br />
 -	<div class="top">[ <a href="#top">Top</a> ]</div><br /><br />
 -{/if}
 -{/section}
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl deleted file mode 100644 index 83b0c66b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/header.tpl +++ /dev/null @@ -1,23 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 -
 -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
 -
 -<head>
 -<title>PRADO API Manual: {$title}</title>
 -
 -<meta http-equiv="Expires" content="Fri, Jan 01 1900 00:00:00 GMT"/>
 -<meta http-equiv="Pragma" content="no-cache"/>
 -<meta http-equiv="Cache-Control" content="no-cache"/>
 -<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 -<meta http-equiv="content-language" content="en"/>
 -<meta name="Keywords" content="PRADO PHP framework component template delphi asp.net event property OOP PHP5 object oriented programming Web programming development" />
 -<meta name="Description" content="PRADO is a component-based and event-driven framework for Web application development in PHP 5." />
 -<meta name="Author" content="Qiang Xue" />
 -<meta name="Subject" content="Web programming, PHP framework" />
 -<meta name="Language" content="en" />
 -<link rel="stylesheet" type="text/css" href="{$subdir}media/style.css" />
 -<link rel="stylesheet" type="text/css" href="{$subdir}media/manual.css" />
 -</head>
 -<body>
 -
 -<div id="page">
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl deleted file mode 100644 index a68f02b1..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/hhp.tpl +++ /dev/null @@ -1,17 +0,0 @@ -[OPTIONS]
 -Compatibility=1.1 or later
 -Compiled file=documentation.chm
 -Contents file=contents.hhc
 -Default topic=index.html
 -Display compile progress=No
 -Index file=Index.hhk
 -Language=0x409 English (United States)
 -
 -
 -[FILES]
 -{section name=files loop=$files}
 -{$files[files].name}
 -{/section}
 -
 -[INFOTYPES]
 -
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl deleted file mode 100644 index cff067db..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/include.tpl +++ /dev/null @@ -1,9 +0,0 @@ -{if count($includes) > 0}
 -<h4>Includes:</h4>
 -<div class="tags">
 -{section name=includes loop=$includes}
 -{$includes[includes].include_name}({$includes[includes].include_value}) [line {if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}]<br />
 -{include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
 -{/section}
 -</div>
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl deleted file mode 100644 index 8b31a11d..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.hhk.tpl +++ /dev/null @@ -1,8 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 -<HTML>
 -<HEAD>
 -<meta name="GENERATOR" content="phpDocumentor {$phpdocversion} {$phpdocwebsite}">
 -<!-- Sitemap 1.0 -->
 -</HEAD><BODY>
 -{$klinks}
 -</BODY></HTML>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl deleted file mode 100644 index 60c74b47..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/index.tpl +++ /dev/null @@ -1,7 +0,0 @@ -{include file="header.tpl"}
 -{if $contents}
 -{$contents}
 -{else}
 -{include file="blank.tpl"}
 -{/if}
 -{include file="footer.tpl"}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/bg_left.png b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/bg_left.png Binary files differdeleted file mode 100644 index 19fdf05d..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/bg_left.png +++ /dev/null diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/manual.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/manual.css deleted file mode 100644 index 8aaa937d..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/manual.css +++ /dev/null @@ -1,260 +0,0 @@ -/* thanks to symfony for a great base template for phpdoc  */
 -/* symfony-project.com */
 -
 -#page
 -{
 -	width: 99%;
 -}
 -
 -div.credit
 -{
 -    font-size: 10px;
 -    color: #888;
 -}
 -
 -.inherited-methods
 -{
 -  background-color: #ddd;
 -  font-size:        1.0em;
 -  margin-top:       10px;
 -  width:            100%;
 -}
 -
 -.inherited-methods td
 -{
 -  background-color: #FFFFFF;
 -  font-family:      "courier new", courier;
 -  font-size:        1.1em;
 -  padding:          5px;
 -}
 -
 -.inherited-methods th
 -{
 -  background-color: #F0F0F0;
 -  font-weight:      bold;
 -  padding:          5px;
 -  text-align:       left;
 -}
 -
 -.method-detail
 -{
 -  font-size: 1.0em;
 -}
 -
 -.method-detail a
 -{
 -  font-weight: bold;
 -}
 -
 -.method-detail td
 -{
 -  font-family:    "courier new", courier;
 -  font-size:      1.1em;
 -  padding-top:    10px;
 -  vertical-align: top;
 -}
 -
 -.method-details
 -{
 -  background-color: #ddd;
 -  font-size:        1.0em;
 -  width:            100%;
 -}
 -
 -.method-details td
 -{
 -  background-color: #FFFFFF;
 -}
 -
 -.method-details td.method-data
 -{
 -  padding: 5px;
 -}
 -
 -.method-details h2
 -{
 -  color: #750000;
 -}
 -
 -.method-details th
 -{
 -  background-color: #F0F0F0;
 -  font-weight:      bold;
 -  font-size:        1.2em;
 -  padding:          5px;
 -  text-align:       left;
 -}
 -
 -.method-summary
 -{
 -  background-color: #aaa;
 -  font-size:        1.0em;
 -  width:            100%;
 -}
 -
 -.method-summary td
 -{
 -  background-color: #FFFFFF;
 -  padding:          5px;
 -}
 -
 -.method-summary td a
 -{
 -  font-weight: bold;
 -}
 -
 -.method-summary td.type
 -{
 -  font-family:    "courier new", courier;
 -  font-size:      1.0em;
 -  text-align:     right;
 -  vertical-align: top;
 -}
 -
 -.method-summary div.declaration
 -{
 -  font-family: "courier new", courier;
 -  font-size:   1.1em;
 -}
 -
 -.method-summary th
 -{
 -  background-color: #F0F0F0;
 -  font-weight:      bold;
 -  font-size:        1.2em;
 -  padding:          5px;
 -  text-align:       left;
 -}
 -
 -.method-summary th.small
 -{
 -	font-size:  1.0em;
 -}
 -
 -.method-summary tr.reference td {
 -    background-color: #FFEDED;
 -}
 -
 -
 -.constant-details
 -{
 -  background-color: #ddd;
 -  font-size:        1.0em;
 -  width:            100%;
 -}
 -
 -.constant-details h3
 -{
 -  color: #750000;
 -}
 -
 -.constant-details td
 -{
 -  background-color: #FFFFFF;
 -  padding:          5px;
 -}
 -
 -.constant-details th
 -{
 -  background-color: #F0F0F0;
 -  font-weight:      bold;
 -  font-size:        1.2em;
 -  padding:          5px;
 -  text-align:       left;
 -}
 -
 -.constant-summary
 -{
 -  background-color: #ddd;
 -  font-size:        1.0em;
 -  width:            100%;
 -}
 -
 -.constant-summary td
 -{
 -  background-color: #FFFFFF;
 -  padding:          5px;
 -}
 -
 -.constant-summary td.name a
 -{
 -  font-family: "courier new", courier;
 -  font-size:   1.0em;
 -  font-weight: bold;
 -}
 -
 -.constant-summary td.type
 -{
 -  font-family: "courier new", courier;
 -  font-size:   1.0em;
 -}
 -
 -.constant-summary th
 -{
 -  background-color: #F0F0F0;
 -  font-weight:      bold;
 -  font-size:        1.2em;
 -  padding:          5px;
 -  text-align:       left;
 -}
 -
 -.inherited-constants
 -{
 -  background-color: #eee;
 -  font-size:        1.0em;
 -  margin-top:       10px;
 -  width:            100%;
 -}
 -
 -.inherited-constants td
 -{
 -  background-color: #FFFFFF;
 -  font-family:      "courier new", courier;
 -  font-size:        1.1em;
 -  padding:          5px;
 -}
 -
 -.inherited-constants th
 -{
 -  background-color: #F0F0F0;
 -  font-weight:      bold;
 -  padding:          5px;
 -  text-align:       left;
 -}
 -
 -.class-declaration
 -{
 -  font-family: "courier new", courier;
 -  font-size:   1.1em;
 -}
 -
 -.class-description
 -{
 -  background-color: #F0F0F0;
 -  margin-top:       10px;
 -  padding:          1px 8px 1px 8px;
 -  margin-bottom:    5px;
 -}
 -
 -.inheritence-tree pre
 -{
 -  margin-bottom: 0;
 -}
 -
 -.sub-classes h4
 -{
 -  margin: 10px 0 0 0;
 -}
 -
 -.sub-classes div
 -{
 -  font-family: "courier new", courier;
 -  font-size:   1.1em;
 -  margin:      5px 0 0 40px;
 -}
 -
 -.sub-classes div small
 -{
 -  font-size: 1.0em;
 -}
 -
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/style.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/style.css deleted file mode 100644 index 918d43e4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/style.css +++ /dev/null @@ -1,598 +0,0 @@ -/**
 - * PradoSoft profile by Carl G. Mathisen and Stefan A. Petrov
 - * http://decart.no
 - */
 -
 -body
 -{
 -    text-align: center;
 -}
 -
 -body, div, span, p, input
 -{
 -    font-family: Verdana, sans-serif, Arial;
 -    font-size: 10pt;
 -    color: #333333;
 -}
 -
 -h1, h2, h3, h4
 -{
 -	font-family: Verdana, Helvetica, Arial, Lucida Grande, Trebuchet MS;
 -    padding: 0px;
 -    margin: 0px;
 -	margin-bottom: 10px;
 -    color: #821B18;
 -    font-weight: normal;
 -}
 -
 -h2
 -{
 -	font-size: 18px;
 -}
 -
 -h3
 -{
 -	font-size: 16px;
 -}
 -
 -div
 -{
 -    text-align: left;
 -}
 -
 -.instructions
 -{
 -	background-color: #EEEEEE;
 -}
 -
 -img
 -{
 -	border: none;
 -}
 -
 -a
 -{
 -    color: #CD2C27;
 -    text-decoration: none;
 -}
 -
 -a:hover
 -{
 -    color: #821B18;
 -    text-decoration: underline;
 -}
 -
 -#page
 -{
 -    margin: 0 auto;
 -    padding: 0;
 -    position: relative;
 -}
 -
 -#header
 -{
 -    position: relative;
 -    height: 98px;
 -}
 -
 -#logo
 -{
 -    height: 99px;
 -}
 -
 -/* main page */
 -
 -div.intro
 -{
 -    height: 190px;
 -    background-image: url('bigmantis.jpg');
 -    background-repeat: no-repeat;
 -    background-position: top right;
 -    background-color: #fff;
 -}
 -
 -div.statements
 -{
 -    height: 135px;
 -    background-image: url('statementsbg.gif');
 -    background-repeat: repeat-x;
 -    position: relative;
 -    border-bottom : 1px solid #EEE;
 -}
 -
 -div.statements div
 -{
 -    position: absolute;
 -    width: 250px;
 -    top: 20px;
 -}
 -
 -div.statements div p
 -{
 -    font-size: 13px;
 -    color: #818181;
 -}
 -
 -div.statements div.whatis
 -{
 -    left: 20px;
 -}
 -
 -div.statements div.whatreq
 -{
 -    left: 290px;
 -}
 -
 -div.statements div.cani
 -{
 -    left: 600px;
 -    width: 210px;
 -}
 -
 -/* navbar */
 -#navbar
 -{
 -    border-bottom: 2px solid #E9EEEF;
 -    height: 30px;
 -    margin-bottom: 20px;
 -}
 -
 -#navbar ul
 -{
 -    margin-left: 0;
 -    padding-left: 0;
 -    display: inline;
 -}
 -
 -#navbar ul li
 -{
 -    margin-left: 0px;
 -    list-style: none;
 -    display: inline;
 -}
 -
 -#navbar ul li a
 -{
 -    display: block;
 -    float: left;
 -    font-size: 14px;
 -    font-weight: bold;
 -    padding-right: 14px;
 -    padding-top: 5px;
 -    color: #CD2B26;
 -    text-decoration: none;
 -    height: 29px;
 -}
 -
 -#navbar ul li a.active, #navbar ul li a.hover
 -{
 -    color: #821B18;
 -}
 -
 -/* infobar */
 -div#infobar
 -{
 -    float: right;
 -    width: 200px;
 -    padding-left: 20px;
 -    border-left: 2px solid #E9EEEF;
 -}
 -
 -div#infobar div
 -{
 -    margin-bottom: 20px;
 -}
 -
 -div#infobar div#featured img
 -{
 -    margin-top: 10px;
 -}
 -
 -/* articles */
 -
 -div#articles
 -{
 -    width: 560px;
 -    float: left;
 -}
 -
 -/* article */
 -
 -div.article
 -{
 -    margin-bottom: 40px;
 -}
 -
 -div.article .date
 -{
 -    color: #9F9291;
 -}
 -
 -div.article .more
 -{
 -	margin-right: 10px;
 -    display: block;
 -    text-align: right;
 -}
 -
 -.logo
 -{
 -	position: absolute;
 -	margin-left: 15px;
 -	margin-top: 0px;
 -	z-index: 1;
 -}
 -
 -#main
 -{
 -	padding: 20px;
 -	padding-top: 20px;
 -	background-color: #fff;
 -}
 -
 -div.mantis
 -{
 -    height: 190px;
 -    background-color: #fff;
 -     border-bottom: 1px solid #DCDCDC;
 -}
 -
 -div.releases
 -{
 -	float: left;
 -    width: 240px;
 -    height: 190px;
 -}
 -
 -div.releases div.official
 -{
 -    width: 190px;
 -    position: relative;
 -    left: 52px;
 -    top: 128px;
 -    font-size: 8pt;
 -    color: #6D6D6D;
 -}
 -
 -div.releases div.official a
 -{
 -    display: block;
 -}
 -
 -div.whyprado
 -{
 -	display: block;
 -	float: left;
 -}
 -
 -div.whyprado ul.list
 -{
 -	margin-top: 40px;
 -	margin-left: 40px;
 -}
 -
 -div.whyprado ul.list li
 -{
 -	display: block;
 -	margin: 5px;
 -	padding: 0px;
 -	font-size: 18px;
 -	background-repeat: no-repeat;
 -	background-position: bottom left;
 -	padding-left: 30px;
 -	list-style: none;
 -}
 -
 -
 -#footer
 -{
 -    border-top: 1px solid #e9eeef;
 -    background-color: #fff;
 -    clear: both;
 -    color: #A7A7A7;
 -    font-size: 8pt;
 -    text-align: center;
 -    padding-top: 10px;
 -    padding-bottom: 30px;
 -    background-repeat: repeat-x;
 -    background-position: bottom;
 -}
 -
 -#features
 -{
 -	margin-left: 610px;
 -    padding: 10px;
 -    padding-left: 10px;
 -    padding-right: 10px;
 -    background-color: #BEDD75;
 -    color: #344A1E;
 -    font-size: 9pt;
 -}
 -
 -#features ul
 -{
 -    margin: 10px;
 -    padding: 0px;
 -}
 -
 -#features ul li
 -{
 -	font-size: 8pt;
 -    padding: 0px;
 -    margin: 0px;
 -    margin-top: 8px;
 -}
 -
 -#features h3
 -{
 -    margin: 0px;
 -    padding: 0px;
 -    font-size: 10pt;
 -    color: #292E1D;
 -    text-align: center;
 -    border-bottom: 1px solid silver;
 -}
 -
 -#news
 -{
 -	float: left;
 -	width: 590px;
 -}
 -
 -.newstitle
 -{
 -	font-size: 12pt;
 -	font-weight: bold;
 -	color: #555;
 -	margin-top: 10px;
 -	margin-bottom: 0px;
 -	border-bottom: 1px solid silver;
 -}
 -
 -.newscontentmore
 -{
 -	margin-right: 10px;
 -    display: block;
 -    color: #50811A;
 -    text-align: right;
 -}
 -
 -.newscontentmore:hover
 -{
 -	color: red;
 -}
 -
 -.newstime
 -{
 -	margin: 0px;
 -	font-size:0.8em;
 -	color:#aaa;
 -	padding-left:10px;
 -	text-align: right;
 -}
 -
 -.newscontent
 -{
 -	margin-top: 5px;
 -}
 -
 -#leftpanel
 -{
 -	float: left;
 -	width: 550px;
 -}
 -
 -#topics
 -{
 -	border: 1px solid #804040;
 -	margin-left: 610px;
 -	padding-bottom: 10px;
 -}
 -
 -#topicsheader
 -{
 -	text-align:center;
 -	font-weight:bold;
 -	background-color:#804040;
 -	color:#FFFFBC;
 -	padding: 3px;
 -	margin-bottom:0px;
 -}
 -
 -.topicitem
 -{
 -	padding: 5px;
 -}
 -
 -.topicitem a:hover
 -{
 -	text-decoration: underline;
 -}
 -
 -.topicitem p
 -{
 -	margin: 0px;
 -	font-size:0.8em;
 -	color:#aaa;
 -	padding-left:10px;
 -	white-space:nowrap;
 -}
 -
 -.reference
 -{
 -}
 -
 -.reference img
 -{
 -	margin: 10px;
 -}
 -
 -.reference h3
 -{
 -}
 -
 -
 -.download
 -{
 -  width:            100%;
 -  background-color: #aaa;
 -}
 -
 -.download td
 -{
 -  background-color: #FFFFFF;
 -  padding:          5px;
 -  font-size: 9pt;
 -}
 -
 -.download td a
 -{
 -  font-weight: bold;
 -}
 -
 -.download td.type
 -{
 -  font-family:    "courier new", courier;
 -  text-align:     right;
 -  vertical-align: top;
 -}
 -
 -.download div.declaration
 -{
 -  font-family: "courier new", courier;
 -}
 -
 -
 -.download th
 -{
 -  background-color: #F0F0F0;
 -  font-weight:      bold;
 -  padding:          5px;
 -  text-align:       left;
 -}
 -
 -.download th.small
 -{
 -	font-size:  1.0em;
 -}
 -
 -.download tr.reference td {
 -    background-color: #FFEDED;
 -}
 -
 -
 -.doc-title
 -{
 -	font-size: 14pt;
 -	font-weight: bold;
 -	margin-top: 10px;
 -	margin-bottom: 10px;
 -}
 -
 -.doc-subtitle
 -{
 -	font-size: 11pt;
 -	font-weight: bold;
 -	background-color: #EEE;
 -	padding: 5px;
 -	margin-top: 20px;
 -}
 -
 -.doc-namespace
 -{
 -	font-size: 8pt;
 -}
 -
 -
 -.doc-menu
 -{
 -}
 -
 -.doc-classes
 -{
 -}
 -
 -.doc-ancestors
 -{
 -	font-size: 8pt;
 -}
 -
 -.doc-properties
 -{
 -	font-size: 9pt;
 -}
 -
 -.doc-properties table
 -{
 -	border-collapse: collapse;
 -	background-color: silver;
 -	width: 100%;
 -}
 -
 -.doc-properties td, .doc-properties th
 -{
 -	padding:    3px;
 -	vertical-align: top;
 -	background-color: white;
 -	border: 1px solid silver;
 -}
 -
 -.doc-events
 -{
 -	font-size: 9pt;
 -}
 -
 -.doc-events table
 -{
 -	border-collapse: collapse;
 -	background-color: silver;
 -	width: 100%;
 -}
 -
 -.doc-events td, .doc-events th
 -{
 -	padding:    3px;
 -	vertical-align: top;
 -	background-color: white;
 -	border: 1px solid silver;
 -}
 -
 -.doc-methods
 -{
 -	font-size: 9pt;
 -}
 -
 -.doc-methods table
 -{
 -	border-collapse: collapse;
 -	background-color: silver;
 -	width: 100%;
 -}
 -
 -.doc-methods td, .doc-methods th
 -{
 -	padding:    3px;
 -	vertical-align: top;
 -	background-color: white;
 -	border: 1px solid silver;
 -}
 -
 -.doc-derived
 -{
 -}
 -
 -.doc-inherited
 -{
 -}
 -
 -.doc-native td
 -{
 -	background-color: lightyellow;
 -}
 -
 -.forum-topic
 -{
 -	padding: 10px;
 -	border:1px solid silver;
 -	margin-bottom: 10px;
 -}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/stylesheet.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/stylesheet.css deleted file mode 100644 index 7dc9d148..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/media/stylesheet.css +++ /dev/null @@ -1,728 +0,0 @@ -BODY, DIV, SPAN, PRE, CODE, TD, TH {
 -	line-height: 140%;
 -	font-size: 10pt;
 -	font-family: verdana,arial,sans-serif;
 -}
 -
 -H1 {
 -	font-size: 12pt;
 -}
 -
 -H4 {
 -	font-size: 10pt;
 -	font-weight: bold;
 -}
 -
 -P.label {
 -	margin-bottom: 5px;
 -}
 -P.dt {
 -	margin-top: 0px;
 -	margin-bottom: 0px;
 -}
 -P.indent {
 -	margin-top: 0px;
 -	margin-left: 20px;
 -	margin-bottom: 0px;
 -}
 -P.method {
 -	background-color: #f0f0f0;
 -	padding: 2px;
 -	border: 1px #cccccc solid;
 -}
 -
 -A {
 -	text-decoration: none;
 -}
 -
 -A:link{
 -	color: #336699;
 -}
 -
 -A:visited			{
 -	color: #003366;
 -}
 -
 -A:active, A:hover	{
 -	color: #6699CC;
 -}
 -
 -A:hover{
 -	text-decoration: underline;
 -}
 -
 -SPAN.type			{
 -	color: #336699;
 -	font-size: xx-small;
 -	font-weight: normal;
 -	}
 -
 -PRE	{
 -	background-color: #EEEEEE;
 -	padding: 10px;
 -	border-width: 1px;
 -	border-color: #336699;
 -	border-style: solid;
 -}
 -
 -HR	{
 -	color: #336699;
 -	background-color: #336699;
 -	border-width: 0px;
 -	height: 1px;
 -	filter: Alpha (opacity=100,finishopacity=0,style=1);
 -}
 -
 -DIV.sdesc			{
 -	font-weight: bold;
 -	background-color: #EEEEEE;
 -	padding: 10px;
 -	border-width: 1px;
 -	border-color: #336699;
 -	border-style: solid;
 -}
 -
 -DIV.desc			{
 -	font-family: monospace;
 -	background-color: #EEEEEE;
 -	padding: 10px;
 -	border-width: 1px;
 -	border-color: #336699;
 -	border-style: solid;
 -}
 -
 -SPAN.code			{
 -	font-family: monospace;
 -}
 -
 -CODE.varsummarydefault{
 -	padding: 1px;
 -	border-width: 1px;
 -	border-style: dashed;
 -	border-color: #336699;
 -}
 -
 -UL.tute	{
 -	margin:			0px;
 -	padding:		0px;
 -	padding-left:		5px;
 -	}
 -
 -LI.tute	{
 -	line-height: 140%;
 -	font-size: 10pt;
 -	text-indent:		-15px;
 -	padding-bottom:		2px;
 -	padding-left:		14px;
 -}
 -
 -.small{
 -	font-size: 9pt;
 -}
 -
 -
 -.tute-tag { color: #009999 }
 -.tute-attribute-name { color: #0000FF }
 -.tute-attribute-value { color: #0099FF }
 -.tute-entity { font-weight: bold; }
 -.tute-comment { font-style: italic }
 -.tute-inline-tag { color: #636311; font-weight: bold }
 -
 -/**
 - * PradoSoft profile by Carl G. Mathisen and Stefan A. Petrov
 - * http://decart.no
 - */
 -
 -body
 -{
 -    text-align: center;
 -}
 -
 -body, div, span, p, input
 -{
 -    font-family: Verdana, sans-serif, Arial;
 -    font-size: 10pt;
 -    color: #333333;
 -}
 -
 -h1, h2, h3, h4
 -{
 -	font-family: Verdana, Helvetica, Arial, Lucida Grande, Trebuchet MS;
 -    padding: 0px;
 -    margin: 0px;
 -	margin-bottom: 10px;
 -    color: #821B18;
 -    font-weight: normal;
 -}
 -
 -h2
 -{
 -	font-size: 18px;
 -}
 -
 -h3
 -{
 -	font-size: 16px;
 -}
 -
 -div
 -{
 -    text-align: left;
 -}
 -
 -.instructions
 -{
 -	background-color: #EEEEEE;
 -}
 -
 -img
 -{
 -	border: none;
 -}
 -
 -a
 -{
 -    color: #CD2C27;
 -    text-decoration: none;
 -}
 -
 -a:hover
 -{
 -    color: #821B18;
 -    text-decoration: underline;
 -}
 -
 -#page
 -{
 -    margin: 0 auto;
 -    padding: 0;
 -    position: relative;
 -}
 -
 -#header
 -{
 -    position: relative;
 -    height: 98px;
 -}
 -
 -#logo
 -{
 -    height: 99px;
 -}
 -
 -/* main page */
 -
 -div.intro
 -{
 -    height: 190px;
 -    background-image: url('bigmantis.jpg');
 -    background-repeat: no-repeat;
 -    background-position: top right;
 -    background-color: #fff;
 -}
 -
 -div.statements
 -{
 -    height: 135px;
 -    background-image: url('statementsbg.gif');
 -    background-repeat: repeat-x;
 -    position: relative;
 -    border-bottom : 1px solid #EEE;
 -}
 -
 -div.statements div
 -{
 -    position: absolute;
 -    width: 250px;
 -    top: 20px;
 -}
 -
 -div.statements div p
 -{
 -    font-size: 13px;
 -    color: #818181;
 -}
 -
 -div.statements div.whatis
 -{
 -    left: 20px;
 -}
 -
 -div.statements div.whatreq
 -{
 -    left: 290px;
 -}
 -
 -div.statements div.cani
 -{
 -    left: 600px;
 -    width: 210px;
 -}
 -
 -/* navbar */
 -#navbar
 -{
 -    border-bottom: 2px solid #E9EEEF;
 -    height: 30px;
 -    margin-bottom: 20px;
 -}
 -
 -#navbar ul
 -{
 -    margin-left: 0;
 -    padding-left: 0;
 -    display: inline;
 -}
 -
 -#navbar ul li
 -{
 -    margin-left: 0px;
 -    list-style: none;
 -    display: inline;
 -}
 -
 -#navbar ul li a
 -{
 -    display: block;
 -    float: left;
 -    font-size: 14px;
 -    font-weight: bold;
 -    padding-right: 14px;
 -    padding-top: 5px;
 -    color: #CD2B26;
 -    text-decoration: none;
 -    height: 29px;
 -}
 -
 -#navbar ul li a.active, #navbar ul li a.hover
 -{
 -    color: #821B18;
 -}
 -
 -/* infobar */
 -div#infobar
 -{
 -    float: right;
 -    width: 200px;
 -    padding-left: 20px;
 -    border-left: 2px solid #E9EEEF;
 -}
 -
 -div#infobar div
 -{
 -    margin-bottom: 20px;
 -}
 -
 -div#infobar div#featured img
 -{
 -    margin-top: 10px;
 -}
 -
 -/* articles */
 -
 -div#articles
 -{
 -    width: 560px;
 -    float: left;
 -}
 -
 -/* article */
 -
 -div.article
 -{
 -    margin-bottom: 40px;
 -}
 -
 -div.article .date
 -{
 -    color: #9F9291;
 -}
 -
 -div.article .more
 -{
 -	margin-right: 10px;
 -    display: block;
 -    text-align: right;
 -}
 -
 -.logo
 -{
 -	position: absolute;
 -	margin-left: 15px;
 -	margin-top: 0px;
 -	z-index: 1;
 -}
 -
 -#main
 -{
 -	padding: 20px;
 -	padding-top: 20px;
 -	background-color: #fff;
 -}
 -
 -div.mantis
 -{
 -    height: 190px;
 -    background-color: #fff;
 -     border-bottom: 1px solid #DCDCDC;
 -}
 -
 -div.releases
 -{
 -	float: left;
 -    width: 240px;
 -    height: 190px;
 -}
 -
 -div.releases div.official
 -{
 -    width: 190px;
 -    position: relative;
 -    left: 52px;
 -    top: 128px;
 -    font-size: 8pt;
 -    color: #6D6D6D;
 -}
 -
 -div.releases div.official a
 -{
 -    display: block;
 -}
 -
 -div.whyprado
 -{
 -	display: block;
 -	float: left;
 -}
 -
 -div.whyprado ul.list
 -{
 -	margin-top: 40px;
 -	margin-left: 40px;
 -}
 -
 -div.whyprado ul.list li
 -{
 -	display: block;
 -	margin: 5px;
 -	padding: 0px;
 -	font-size: 18px;
 -	background-repeat: no-repeat;
 -	background-position: bottom left;
 -	padding-left: 30px;
 -	list-style: none;
 -}
 -
 -
 -#footer
 -{
 -    border-top: 1px solid #e9eeef;
 -    background-color: #fff;
 -    clear: both;
 -    color: #A7A7A7;
 -    font-size: 8pt;
 -    text-align: center;
 -    padding-top: 10px;
 -    padding-bottom: 30px;
 -    background-repeat: repeat-x;
 -    background-position: bottom;
 -}
 -
 -#features
 -{
 -	margin-left: 610px;
 -    padding: 10px;
 -    padding-left: 10px;
 -    padding-right: 10px;
 -    background-color: #BEDD75;
 -    color: #344A1E;
 -    font-size: 9pt;
 -}
 -
 -#features ul
 -{
 -    margin: 10px;
 -    padding: 0px;
 -}
 -
 -#features ul li
 -{
 -	font-size: 8pt;
 -    padding: 0px;
 -    margin: 0px;
 -    margin-top: 8px;
 -}
 -
 -#features h3
 -{
 -    margin: 0px;
 -    padding: 0px;
 -    font-size: 10pt;
 -    color: #292E1D;
 -    text-align: center;
 -    border-bottom: 1px solid silver;
 -}
 -
 -#news
 -{
 -	float: left;
 -	width: 590px;
 -}
 -
 -.newstitle
 -{
 -	font-size: 12pt;
 -	font-weight: bold;
 -	color: #555;
 -	margin-top: 10px;
 -	margin-bottom: 0px;
 -	border-bottom: 1px solid silver;
 -}
 -
 -.newscontentmore
 -{
 -	margin-right: 10px;
 -    display: block;
 -    color: #50811A;
 -    text-align: right;
 -}
 -
 -.newscontentmore:hover
 -{
 -	color: red;
 -}
 -
 -.newstime
 -{
 -	margin: 0px;
 -	font-size:0.8em;
 -	color:#aaa;
 -	padding-left:10px;
 -	text-align: right;
 -}
 -
 -.newscontent
 -{
 -	margin-top: 5px;
 -}
 -
 -#leftpanel
 -{
 -	float: left;
 -	width: 550px;
 -}
 -
 -#topics
 -{
 -	border: 1px solid #804040;
 -	margin-left: 610px;
 -	padding-bottom: 10px;
 -}
 -
 -#topicsheader
 -{
 -	text-align:center;
 -	font-weight:bold;
 -	background-color:#804040;
 -	color:#FFFFBC;
 -	padding: 3px;
 -	margin-bottom:0px;
 -}
 -
 -.topicitem
 -{
 -	padding: 5px;
 -}
 -
 -.topicitem a:hover
 -{
 -	text-decoration: underline;
 -}
 -
 -.topicitem p
 -{
 -	margin: 0px;
 -	font-size:0.8em;
 -	color:#aaa;
 -	padding-left:10px;
 -	white-space:nowrap;
 -}
 -
 -.reference
 -{
 -}
 -
 -.reference img
 -{
 -	margin: 10px;
 -}
 -
 -.reference h3
 -{
 -}
 -
 -
 -.download
 -{
 -  width:            100%;
 -  background-color: #aaa;
 -}
 -
 -.download td
 -{
 -  background-color: #FFFFFF;
 -  padding:          5px;
 -  font-size: 9pt;
 -}
 -
 -.download td a
 -{
 -  font-weight: bold;
 -}
 -
 -.download td.type
 -{
 -  font-family:    "courier new", courier;
 -  text-align:     right;
 -  vertical-align: top;
 -}
 -
 -.download div.declaration
 -{
 -  font-family: "courier new", courier;
 -}
 -
 -
 -.download th
 -{
 -  background-color: #F0F0F0;
 -  font-weight:      bold;
 -  padding:          5px;
 -  text-align:       left;
 -}
 -
 -.download th.small
 -{
 -	font-size:  1.0em;
 -}
 -
 -.download tr.reference td {
 -    background-color: #FFEDED;
 -}
 -
 -
 -.doc-title
 -{
 -	font-size: 14pt;
 -	font-weight: bold;
 -	margin-top: 10px;
 -	margin-bottom: 10px;
 -}
 -
 -.doc-subtitle
 -{
 -	font-size: 11pt;
 -	font-weight: bold;
 -	background-color: #EEE;
 -	padding: 5px;
 -	margin-top: 20px;
 -}
 -
 -.doc-namespace
 -{
 -	font-size: 8pt;
 -}
 -
 -
 -.doc-menu
 -{
 -}
 -
 -.doc-classes
 -{
 -}
 -
 -.doc-ancestors
 -{
 -	font-size: 8pt;
 -}
 -
 -.doc-properties
 -{
 -	font-size: 9pt;
 -}
 -
 -.doc-properties table
 -{
 -	border-collapse: collapse;
 -	background-color: silver;
 -	width: 100%;
 -}
 -
 -.doc-properties td, .doc-properties th
 -{
 -	padding:    3px;
 -	vertical-align: top;
 -	background-color: white;
 -	border: 1px solid silver;
 -}
 -
 -.doc-events
 -{
 -	font-size: 9pt;
 -}
 -
 -.doc-events table
 -{
 -	border-collapse: collapse;
 -	background-color: silver;
 -	width: 100%;
 -}
 -
 -.doc-events td, .doc-events th
 -{
 -	padding:    3px;
 -	vertical-align: top;
 -	background-color: white;
 -	border: 1px solid silver;
 -}
 -
 -.doc-methods
 -{
 -	font-size: 9pt;
 -}
 -
 -.doc-methods table
 -{
 -	border-collapse: collapse;
 -	background-color: silver;
 -	width: 100%;
 -}
 -
 -.doc-methods td, .doc-methods th
 -{
 -	padding:    3px;
 -	vertical-align: top;
 -	background-color: white;
 -	border: 1px solid silver;
 -}
 -
 -.doc-derived
 -{
 -}
 -
 -.doc-inherited
 -{
 -}
 -
 -.doc-native td
 -{
 -	background-color: lightyellow;
 -}
 -
 -.forum-topic
 -{
 -	padding: 10px;
 -	border:1px solid silver;
 -	margin-bottom: 10px;
 -}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl deleted file mode 100644 index 07cb76e5..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/method.tpl +++ /dev/null @@ -1,58 +0,0 @@ -{section name=methods loop=$methods}
 -{if $show == 'summary'}
 -method {$methods[methods].function_call}, {$methods[methods].sdesc}<br />
 -{else}
 -  <hr />
 -	<a name="{$methods[methods].method_dest}"></a>
 -	<h3>{if $methods[methods].ifunction_call.constructor}constructor {elseif $methods[methods].ifunction_call.destructor}destructor {else}method {/if}{$methods[methods].function_name} <span class="smalllinenumber">[line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}]</span></h3>
 -	<div class="function">
 -    <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border">
 -    <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code">
 -		<code>{$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&{/if}{$methods[methods].function_name}(
 -{if count($methods[methods].ifunction_call.params)}
 -{section name=params loop=$methods[methods].ifunction_call.params}
 -{if $smarty.section.params.iteration != 1}, {/if}
 -{if $methods[methods].ifunction_call.params[params].default != ''}[{/if}{$methods[methods].ifunction_call.params[params].type}
 -{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].default != ''} = {$methods[methods].ifunction_call.params[params].default}]{/if}
 -{/section}
 -{/if})</code>
 -    </td></tr></table>
 -    </td></tr></table><br />
 -	
 -		{include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags}<br /><br />
 -
 -{if $methods[methods].descmethod}
 -	<p>Overridden in child classes as:<br />
 -	{section name=dm loop=$methods[methods].descmethod}
 -	<dl>
 -	<dt>{$methods[methods].descmethod[dm].link}</dt>
 -		<dd>{$methods[methods].descmethod[dm].sdesc}</dd>
 -	</dl>
 -	{/section}</p>
 -{/if}
 -{* original    {if $methods[methods].descmethod != ""
 -    {$methods[methods].descmethod<br /><br />
 -    {/if *}
 -{if $methods[methods].method_overrides}Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})<br /><br />{/if}
 -{* original    {if $methods[methods].method_overrides != ""
 -    {$methods[methods].method_overrides<br /><br />
 -    {/if *}
 -
 -    {if count($methods[methods].params) > 0}
 -    <h4>Parameters:</h4>
 -    <div class="tags">
 -    <table border="0" cellspacing="0" cellpadding="0">
 -    {section name=params loop=$methods[methods].params}
 -      <tr>
 -        <td class="type">{$methods[methods].params[params].datatype}  </td>
 -        <td><b>{$methods[methods].params[params].var}</b>  </td>
 -        <td>{$methods[methods].params[params].data}</td>
 -      </tr>
 -    {/section}
 -    </table>
 -    </div><br />
 -    {/if}
 -    <div class="top">[ <a href="#top">Top</a> ]</div>
 -  </div>
 -{/if}
 -{/section}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl deleted file mode 100644 index b48b6719..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/packages.tpl +++ /dev/null @@ -1,3 +0,0 @@ -{section name=packages loop=$packages}
 -<a href="{$packages[packages].link}">{$packages[packages].title}</a>
 -{/section}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl deleted file mode 100644 index 6dd8683d..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/page.tpl +++ /dev/null @@ -1,31 +0,0 @@ -{include file="header.tpl" eltype="Procedural file" class_name=$name hasel=true contents=$pagecontents}
 -
 -<br>
 -<br>
 -
 -{if $classes}
 -<div class="contents">
 -{if $tutorial}
 -<span class="maintutorial">Main Tutorial: {$tutorial}</span>
 -{/if}
 -<h2>Classes:</h2>
 -{section name=classes loop=$classes}
 -<dt>{$classes[classes].link}</dt>
 -	<dd>{$classes[classes].sdesc}</dd>
 -{/section}
 -</div><br /><br />
 -{/if}
 -
 -<h2>Page Details:</h2>
 -{include file="docblock.tpl" type="page"}
 -<br /><br />
 -{include file="include.tpl"}
 -<br /><br />
 -{include file="global.tpl"}
 -<br /><br />
 -{include file="define.tpl"}
 -<br />
 -{include file="function.tpl"}
 -
 -{include file="footer.tpl"}
 -
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl deleted file mode 100644 index 753ad7cf..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/pkgelementindex.tpl +++ /dev/null @@ -1,5 +0,0 @@ -{include file="header.tpl"}
 -<a name="top"></a>
 -<h1>Element index for package {$package}</h1>
 -{include file="basicindex.tpl" indexname=elementindex_$package}
 -{include file="footer.tpl"}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl deleted file mode 100644 index c4cb83f9..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/ric.tpl +++ /dev/null @@ -1,6 +0,0 @@ -{include file="header.tpl"}
 -<h1 align="center">{$name}</h1>
 -<pre>
 -{$contents|htmlentities}
 -</pre>
 -{include file="footer.tpl"}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl deleted file mode 100644 index 87f68ebb..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tocentry.tpl +++ /dev/null @@ -1,11 +0,0 @@ -<UL>
 -{section name=entry loop=$entry}
 -	<LI> <OBJECT type="text/sitemap">
 -		<param name="Name" value="{$entry[entry].paramname}">
 -{if $entry[entry].isclass}		<param name="ImageNumber" value="1">
 -{/if}{if $entry[entry].outputfile}		<param name="Local" value="{$entry[entry].outputfile}">
 -{/if}		</OBJECT>
 -	{if $entry[entry].tocsubentries}{$entry[entry].tocsubentries}{/if}
 -{/section}
 -	{$tocsubentries}
 -</UL>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl deleted file mode 100644 index 5ab0bca2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/todolist.tpl +++ /dev/null @@ -1,14 +0,0 @@ -{include file="header.tpl" title="Todo List"}
 -<div align="center"><h1>Todo List</h1></div>
 -{foreach from=$todos key=todopackage item=todo}
 -<h2>{$todopackage}</h2>
 -{section name=todo loop=$todo}
 -<h3>{$todo[todo].link}</h3>
 -<ul>
 -{section name=t loop=$todo[todo].todos}
 -    <li>{$todo[todo].todos[t]}</li>
 -{/section}
 -</ul>
 -{/section}
 -{/foreach}
 -{include file="footer.tpl"}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl deleted file mode 100644 index 22c71c3b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial.tpl +++ /dev/null @@ -1,32 +0,0 @@ -{include file="header.tpl" title=$title}
 -{if $nav}
 -<table width="100%" border="0" cellpadding="0" cellspacing="0">
 -<tr>
 -<td width="10%" align="left" valign="bottom">{if $prev}<a href=
 -"{$prev}">{/if}Prev{if $prev}</a>{/if}</td>
 -<td width="80%" align="center" valign="bottom"></td>
 -<td width="10%" align="right" valign="bottom">{if $next}<a href=
 -"{$next}">{/if}Next{if $next}</a>{/if}</td>
 -</tr>
 -</table>
 -{/if}
 -{$contents}
 -{if $nav}
 -<table width="100%" border="0" cellpadding="0" cellspacing="0">
 -<tr>
 -<td width="33%" align="left" valign="top">{if $prev}<a href="{$prev}">{/if}
 -Prev{if $prev}</a>{/if}</td>
 -<td width="34%" align="center" valign="top">{if $up}<a href=
 -"{$up}">Up</a>{else} {/if}</td>
 -<td width="33%" align="right" valign="top">{if $next}<a href=
 -"{$next}">{/if}Next{if $next}</a>{/if}</td>
 -</tr>
 -
 -<tr>
 -<td width="33%" align="left" valign="top">{if $prevtitle}{$prevtitle}{/if}</td>
 -<td width="34%" align="center" valign="top">{if $uptitle}{$uptitle}{/if}</td>
 -<td width="33%" align="right" valign="top">{if $nexttitle}{$nexttitle}{/if}</td>
 -</tr>
 -</table>
 -{/if}
 -{include file="footer.tpl"}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl deleted file mode 100644 index 1db34438..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_toc.tpl +++ /dev/null @@ -1,29 +0,0 @@ -{if count($toc)}
 -<h1 align="center">Table of Contents</h1>
 -<ul>
 -{section name=toc loop=$toc}
 -{if $toc[toc].tagname == 'refsect1'}
 -{assign var="context" value="refsect1"}
 -{$toc[toc].link}<br />
 -{/if}
 -{if $toc[toc].tagname == 'refsect2'}
 -{assign var="context" value="refsect2"}
 -   {$toc[toc].link}<br />
 -{/if}
 -{if $toc[toc].tagname == 'refsect3'}
 -{assign var="context" value="refsect3"}
 -      {$toc[toc].link}<br />
 -{/if}
 -{if $toc[toc].tagname == 'table'}
 -{if $context == 'refsect2'}   {/if}
 -{if $context == 'refsect3'}   {/if}
 -Table: {$toc[toc].link}
 -{/if}
 -{if $toc[toc].tagname == 'example'}
 -{if $context == 'refsect2'}   {/if}
 -{if $context == 'refsect3'}   {/if}
 -Table: {$toc[toc].link}
 -{/if}
 -{/section}
 -</ul>
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl deleted file mode 100644 index faf7bcef..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/tutorial_tree.tpl +++ /dev/null @@ -1,5 +0,0 @@ -<ul>
 -	<li type="square"><a href="{$main.link}">{$main.title|strip_tags}</a>
 -{if $kids}{$kids}</li>{/if}
 -</ul>
 -
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl deleted file mode 100644 index c76929fe..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/CHM/default/templates/default/templates/var.tpl +++ /dev/null @@ -1,28 +0,0 @@ -{section name=vars loop=$vars}
 -{if $show == 'summary'}
 -	var {$vars[vars].var_name}, {$vars[vars].sdesc}<br>
 -{else}
 -	<a name="{$vars[vars].var_dest}"></a>
 -	<p></p>
 -	<h4>{$vars[vars].var_name} = <span class="value">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":" "|replace:"\t":"   "}</span></h4>
 -	<p>[line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]</p>
 -  {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
 -
 -  <br />
 -	<div class="tags">
 -  <table border="0" cellspacing="0" cellpadding="0">
 -    <tr>
 -      <td><b>Type:</b>  </td>
 -      <td>{$vars[vars].var_type}</td>
 -    </tr>
 -    {if $vars[vars].var_overrides != ""}
 -    <tr>
 -      <td><b>Overrides:</b>  </td>
 -      <td>{$vars[vars].var_overrides}</td>
 -    </tr>
 -    {/if}
 -  </table>
 -	</div><br /><br />
 -	<div class="top">[ <a href="#top">Top</a> ]</div><br />
 -{/if}
 -{/section}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/HTMLSmartyConverter.inc b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/HTMLSmartyConverter.inc deleted file mode 100644 index 09f5af73..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/HTMLSmartyConverter.inc +++ /dev/null @@ -1,1779 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -/**
 - * HTML output converter for Smarty Template.
 - * This Converter takes output from the {@link Parser} and converts it to HTML-ready output for use with {@link Smarty}.
 - *
 - * @package Converters
 - * @subpackage HTMLSmarty
 - * @see parserDocBlock, parserInclude, parserPage, parserClass, parserDefine, parserFunction, parserMethod, parserVar
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Revision: 1.1 $
 - */
 -/**
 - * HTML output converter.
 - * This Converter takes output from the {@link Parser} and converts it to HTML-ready output for use with {@link Smarty}.
 - *
 - * @package Converters
 - * @subpackage HTMLSmarty
 - * @see parserDocBlock, parserInclude, parserPage, parserClass, parserDefine, parserFunction, parserMethod, parserVar
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Revision: 1.1 $
 - */
 -class HTMLSmartyConverter extends Converter
 -{
 -    /**
 -     * Smarty Converter wants elements sorted by type as well as alphabetically
 -     * @see Converter::$sort_page_contents_by_type
 -     * @var boolean
 -     */
 -    var $sort_page_contents_by_type = true;
 -    /** @var string */
 -    var $outputformat = 'HTML';
 -    /** @var string */
 -    var $name = 'Smarty';
 -    /**
 -     * indexes of elements by package that need to be generated
 -     * @var array
 -     */
 -    var $leftindex = array('classes' => true, 'pages' => true, 'functions' => true, 'defines' => false, 'globals' => false);
 -    
 -    /**
 -     * output directory for the current procedural page being processed
 -     * @var string
 -     */
 -    var $page_dir;
 -    
 -    /**
 -     * target directory passed on the command-line.
 -     * {@link $targetDir} is malleable, always adding package/ and package/subpackage/ subdirectories onto it.
 -     * @var string
 -     */
 -    var $base_dir;
 -    
 -    /**
 -     * output directory for the current class being processed
 -     * @var string
 -     */
 -    var $class_dir;
 -    
 -    /**
 -     * array of converted package page names.
 -     * Used to link to the package page in the left index
 -     * @var array Format: array(package => 1)
 -     */
 -    var $package_pages = array();
 -    
 -    /**
 -     * controls formatting of parser informative output
 -     * 
 -     * Converter prints:
 -     * "Converting /path/to/file.php... Procedural Page Elements... Classes..."
 -     * Since HTMLdefaultConverter outputs files while converting, it needs to send a \n to start a new line.  However, if there
 -     * is more than one class, output is messy, with multiple \n's just between class file output.  This variable prevents that
 -     * and is purely cosmetic
 -     * @var boolean
 -     */
 -    var $juststarted = false;
 -    
 -    /**
 -     * contains all of the template procedural page element loop data needed for the current template
 -     * @var array
 -     */
 -    var $current;
 -    
 -    /**
 -     * contains all of the template class element loop data needed for the current template
 -     * @var array
 -     */
 -    var $currentclass;
 -    var $wrote = false;
 -    var $ric_set = array();
 -    
 -    /**
 -     * sets {@link $base_dir} to $targetDir
 -     * @see Converter()
 -     */
 -    
 -    /**#@+
 -     * @access private
 -     */
 -    var $_classleft_cache = false;
 -    var $_classcontents_cache = false;
 -    var $_pagecontents_cache = false;
 -    var $_pageleft_cache = false;
 -    var $_done_package_index = false;
 -    var $_ric_done = false;
 -    var $_wrote_tdir = false;
 -    var $ric_contents = array();
 -    /**#@-*/
 -    
 -    function HTMLSmartyConverter(&$allp, &$packp, &$classes, &$procpages, $po, $pp, $qm, $targetDir, $templateDir, $title)
 -    {
 -        Converter::Converter($allp, $packp, $classes, $procpages,$po, $pp, $qm, $targetDir, $templateDir, $title);
 -        $this->base_dir = $targetDir;
 -    }
 -    
 -    function writeSource($path, $value)
 -    {
 -        $templ = &$this->newSmarty();
 -        $pathinfo = $this->proceduralpages->getPathInfo($path, $this);
 -        $templ->assign('source',$value);
 -        $templ->assign('package',$pathinfo['package']);
 -        $templ->assign('subpackage',$pathinfo['subpackage']);
 -        $templ->assign('name',$pathinfo['name']);
 -        $templ->assign('source_loc',$pathinfo['source_loc']);
 -        $templ->assign('docs',$pathinfo['docs']);
 -        $templ->assign("subdir",'../');
 -        $templ->register_outputfilter('HTMLSmarty_outputfilter');
 -        $this->setTargetDir($this->getFileSourcePath($this->base_dir));
 -        phpDocumentor_out("\n");
 -        $this->setSourcePaths($path);
 -        $this->writefile($this->getFileSourceName($path).'.html',$templ->fetch('filesource.tpl'));
 -    }
 -    
 -    function writeExample($title, $path, $source)
 -    {
 -        $templ = &$this->newSmarty();
 -        $templ->assign('source',$source);
 -        if (empty($title))
 -        {
 -            $title = 'example';
 -            addWarning(PDERROR_EMPTY_EXAMPLE_TITLE, $path, $title);
 -        }
 -        $templ->assign('title',$title);
 -        $templ->assign('file',$path);
 -        $templ->assign("subdir",'../');
 -        $templ->register_outputfilter('HTMLSmarty_outputfilter');
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . '__examplesource');
 -        phpDocumentor_out("\n");
 -        $this->writefile('exsource_'.$path.'.html',$templ->fetch('examplesource.tpl'));
 -    }
 -    
 -    function getExampleLink($path, $title)
 -    {
 -        return $this->returnLink('{$subdir}__examplesource' . PATH_DELIMITER . 'exsource_'.$path.'.html',$title);
 -    }
 -    
 -    function getSourceLink($path)
 -    {
 -        return $this->returnLink($this->getFileSourcePath('{$subdir}') .
 -        PATH_DELIMITER . $this->getFileSourceName($path).'.html','Source Code for this file');
 -    }
 -
 -    /**
 -     * Return a line of highlighted source code with formatted line number
 -     *
 -     * If the $path is a full path, then an anchor to the line number will be
 -     * added as well
 -     * @param integer line number
 -     * @param string highlighted source code line
 -     * @param false|string full path to @filesource file this line is a part of,
 -     *        if this is a single line from a complete file.
 -     * @return string formatted source code line with line number
 -     */
 -    function sourceLine($linenumber, $line, $path = false)
 -    {
 -        $extra = '';
 -        if (strlen(str_replace("\n", '', $line)) == 0) {
 -            $extra = ' ';
 -        }
 -        if ($path)
 -        {
 -            return '<li>' . $this->getSourceAnchor($path, $linenumber) .
 -                   str_replace("\n",'',$line) . $extra .
 -                   "</li>\n";
 -        } else
 -        {
 -            return '<li>' . str_replace("\n",'',$line) . "$extra</li>\n";
 -        }
 -    }
 -    
 -    /**
 -     * Used to convert the <<code>> tag in a docblock
 -     * @param string
 -     * @param boolean
 -     * @return string
 -     */
 -    function ProgramExample($example, $tutorial = false, $inlinesourceparse = null/*false*/,
 -                            $class = null/*false*/, $linenum = null/*false*/, $filesourcepath = null/*false*/)
 -    {
 -        $trans = $this->template_options['desctranslate'];
 -        $this->template_options['desctranslate'] = array();
 -        $example = '<ol>' . parent::ProgramExample($example, $tutorial, $inlinesourceparse, $class, $linenum, $filesourcepath)
 -               .'</ol>';
 -        $this->template_options['desctranslate'] = $trans;
 -        if (!isset($this->template_options['desctranslate'])) return $example;
 -        if (!isset($this->template_options['desctranslate']['code'])) return $example;
 -        $example = $this->template_options['desctranslate']['code'] . $example;
 -        if (!isset($this->template_options['desctranslate']['/code'])) return $example;
 -        return $example . $this->template_options['desctranslate']['/code'];
 -    }
 -    
 -    /**
 -     * @param string
 -     */
 -    function TutorialExample($example)
 -    {
 -        $trans = $this->template_options['desctranslate'];
 -        $this->template_options['desctranslate'] = array();
 -        $example = '<ol>' . parent::TutorialExample($example)
 -               .'</ol>';
 -        $this->template_options['desctranslate'] = $trans;
 -        if (!isset($this->template_options['desctranslate'])) return $example;
 -        if (!isset($this->template_options['desctranslate']['code'])) return $example;
 -        $example = $this->template_options['desctranslate']['code'] . $example;
 -        if (!isset($this->template_options['desctranslate']['/code'])) return $example;
 -        return $example . $this->template_options['desctranslate']['/code'];
 -    }
 -    
 -    /**
 -     * Retrieve a Converter-specific anchor to a segment of a source code file
 -     * parsed via a {@tutorial tags.filesource.pkg} tag.
 -     * @param string full path to source file
 -     * @param string name of anchor
 -     * @param string link text, if this is a link
 -     * @param boolean returns either a link or a destination based on this
 -     *                parameter
 -     * @return string link to an anchor, or the anchor
 -     */
 -    function getSourceAnchor($sourcefile,$anchor,$text = '',$link = false)
 -    {
 -        if ($link)
 -        return $this->returnLink($this->getFileSourcePath('{$subdir}') .
 -        PATH_DELIMITER . $this->getFileSourceName($sourcefile).'.html#a'.$anchor, $text);
 -        else
 -        return '<a name="a'.$anchor.'"></a>';
 -    }
 -    
 -    function getCurrentPageLink()
 -    {
 -        return $this->curname . '.html';
 -    }
 -
 -    function unmangle($sourcecode)
 -    {
 -        $sourcecode = str_replace(' ',' ',$sourcecode);
 -        $sourcecode = str_replace('&','&',$sourcecode);
 -        $sourcecode = str_replace('<br />',"<br>",$sourcecode);
 -        $sourcecode = str_replace('<code>','<pre>',$sourcecode);
 -        $sourcecode = str_replace('</code>','</pre>',$sourcecode);
 -        $sourcecode = str_replace('<','<',$sourcecode);
 -        $sourcecode = str_replace('>','>',$sourcecode);
 -        return $sourcecode;
 -    }
 -    
 -    /**
 -     * Uses htmlspecialchars() on the input
 -     */
 -    function postProcess($text)
 -    {
 -        return htmlspecialchars($text);
 -    }
 -    
 -    /**
 -     * Use the template tutorial_toc.tpl to generate a table of contents for HTML
 -     * @return string table of contents formatted for use in the current output format
 -     * @param array format: array(array('tagname' => section, 'link' => returnsee link, 'id' => anchor name, 'title' => from title tag),...)
 -     */
 -    function formatTutorialTOC($toc)
 -    {
 -        $template = &$this->newSmarty();
 -        $template->assign('toc',$toc);
 -        return $template->fetch('tutorial_toc.tpl');
 -    }
 -    
 -    function &SmartyInit(&$templ)
 -    {
 -        $this->makeLeft();
 -        $templ->assign("ric",$this->ric_set);
 -        $templ->assign("packageindex",$this->package_index);
 -        $templ->assign('hastodos',count($this->todoList));
 -        $templ->assign('todolink','todolist.html');
 -        $templ->assign("subdir",'');
 -        return $templ;
 -    }
 -    
 -    /**
 -     * Writes out the template file of {@link $class_data} and unsets the template to save memory
 -     * @see registerCurrentClass()
 -     * @see parent::endClass()
 -     */
 -    function endClass()
 -    {
 -        $a = '../';
 -        if (!empty($this->subpackage)) $a .= '../';
 -        if ($this->juststarted)
 -        {
 -            $this->juststarted = false;
 -            phpDocumentor_out("\n");
 -            flush();
 -        }
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir);
 -        $this->class_data->assign("compiledclassindex",$this->getClassLeft());
 -        $this->class_data->assign("compiledfileindex",$this->getPageLeft());
 -        $this->class_data->assign("tutorials",$this->getTutorialList());
 -        $this->class_data->assign("contents",$this->getClassContents());
 -        $this->class_data->assign("packageindex",$this->package_index);
 -        $this->class_data->assign("package",$this->package);
 -        $this->class_data->assign("subdir",$a);
 -        $this->class_data->register_outputfilter('HTMLSmarty_outputfilter');
 -        $this->writefile($this->class . '.html',$this->class_data->fetch('class.tpl'));
 -        unset($this->class_data);
 -    }
 -    
 -    function getTutorialList()
 -    {
 -        static $cache = false;
 -        if ($cache)
 -        {
 -            if (isset($cache[$this->package])) return $cache[$this->package];
 -        }
 -        $package = $this->package;
 -        if (!isset($this->tutorials[$package])) return false;
 -        foreach($this->tutorials[$package] as $subpackage => $blah)
 -        {
 -            $subpackages[] = $subpackage;
 -        }
 -        $tutes = array();
 -        foreach($subpackages as $subpackage)
 -        {
 -            if (isset($this->tutorial_tree) && is_array($this->tutorial_tree))
 -            foreach($this->tutorial_tree as $root => $tr)
 -            {
 -                if ($tr['tutorial']->package == $package && $tr['tutorial']->subpackage == $subpackage)
 -                $tutes[$tr['tutorial']->tutorial_type][] = $this->getTutorialTree($tr['tutorial']);
 -            }
 -        }
 -        $cache[$this->package] = $tutes;
 -        return $tutes;
 -    }
 -    
 -    function getTutorialTree($tutorial,$k = false)
 -    {
 -        $ret = '';
 -        if (is_object($tutorial)) $tree = parent::getTutorialTree($tutorial); else $tree = $tutorial;
 -        if (!$tree)
 -        {
 -            $template = &$this->newSmarty();
 -            $template->assign('subtree',false);
 -            $template->assign('name',str_replace('.','',$tutorial->name));
 -            $template->assign('parent',false);
 -            $template->assign('haskids',false);
 -            $template->assign('kids','');
 -            $link = new tutorialLink;
 -            $t = $tutorial;
 -            $link->addLink('',$t->path,$t->name,$t->package,$t->subpackage,$t->getTitle($this));
 -            $main = array('link' => $this->getId($link), 'title' => $link->title);
 -            $template->assign('main',$main);
 -            return $template->fetch('tutorial_tree.tpl');
 -        }
 -        if (isset($tree['kids']))
 -        {
 -            foreach($tree['kids'] as $subtree)
 -            {
 -                $ret .= $this->getTutorialTree($subtree, true);
 -            }
 -        }
 -        $template = &$this->newSmarty();
 -        $template->assign('subtree',$k);
 -        $template->assign('name',str_replace('.','',$tree['tutorial']->name));
 -        $template->assign('parent',($k ? str_replace('.','',$tree['tutorial']->parent->name) : false));
 -        $template->assign('haskids',strlen($ret));
 -        $template->assign('kids',$ret);
 -        $link = new tutorialLink;
 -        $t = $tree['tutorial'];
 -        $link->addLink('',$t->path,$t->name,$t->package,$t->subpackage,$t->getTitle($this));
 -        $main = array('link' => $this->getId($link), 'title' => $link->title);
 -        $template->assign('main',$main);
 -        return $template->fetch('tutorial_tree.tpl');
 -    }
 -    
 -    function getClassLeft()
 -    {
 -        if ($this->_classleft_cache)
 -        {
 -            if (isset($this->_classleft_cache[$this->package][$this->subpackage])) return $this->_classleft_cache[$this->package][$this->subpackage];
 -        }
 -        $arr = array();
 -        if (isset($this->left['#class'][$this->package]))
 -        foreach($this->left['#class'][$this->package] as $subpackage => $pages)
 -        {
 -            $arr[$subpackage] = $pages;
 -        }
 -        $templ = &$this->newSmarty();
 -        $templ->assign('classleftindex',$arr);
 -        $arr = $templ->fetch('classleft.tpl');
 -        $this->_classleft_cache[$this->package][$this->subpackage] = $arr;
 -        return $arr;
 -    }
 -    
 -    function getClassContents()
 -    {
 -        if ($this->_classcontents_cache)
 -        {
 -            if (isset($this->_classcontents_cache[$this->package][$this->subpackage][$this->class])) return $this->_classcontents_cache[$this->package][$this->subpackage][$this->class];
 -        }
 -        $arr = array();
 -        foreach($this->class_contents[$this->package][$this->subpackage][$this->class] as $i => $link)
 -        {
 -            if (is_object($link))
 -            $arr[$link->type][] = $this->returnSee($link,$link->name);
 -        }
 -        $this->_classcontents_cache[$this->package][$this->subpackage][$this->class] = $arr;
 -        return $arr;
 -    }
 -    
 -    function getPageContents()
 -    {
 -        if (!isset($this->path)) $this->path = '#####';
 -        if ($this->_pagecontents_cache)
 -        {
 -            if (isset($this->_pagecontents_cache[$this->package][$this->subpackage][$this->path])) return $this->_pagecontents_cache[$this->package][$this->subpackage][$this->path];
 -        }
 -        $arr = array();
 -        foreach($this->page_contents[$this->curpage->package][$this->curpage->subpackage] as $i => $link)
 -        {
 -            if (is_object($link))
 -            $arr[$link->type][$i] = $this->returnSee($link);
 -        }
 -        $this->_pagecontents_cache[$this->package][$this->subpackage][$this->path] = $arr;
 -        return $arr;
 -    }
 -    
 -    function getPageLeft()
 -    {
 -        if ($this->_pageleft_cache)
 -        {
 -            if (isset($this->_pageleft_cache[$this->package][$this->subpackage])) return $this->_pageleft_cache[$this->package][$this->subpackage];
 -        }
 -        $arr = array();
 -        if (isset($this->left[$this->package]))
 -        foreach($this->left[$this->package] as $subpackage => $pages)
 -        {
 -            $arr[$subpackage] = $pages;
 -        }
 -        $templ = &$this->newSmarty();
 -        $templ->assign('fileleftindex',$arr);
 -        $arr = $templ->fetch('fileleft.tpl');
 -        $this->_pageleft_cache[$this->package][$this->subpackage] = $arr;
 -        return $arr;
 -    }
 -    
 -    /**
 -     * Writes out the template file of {@link $page_data} and unsets the template to save memory
 -     * @see registerCurrent()
 -     * @see parent::endPage()
 -     */
 -    function endPage()
 -    {
 -        $this->package = $this->curpage->package;
 -        $this->subpackage = $this->curpage->subpackage;
 -        $a = '../';
 -        if (!empty($this->subpackage)) $a .= '../';
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir);
 -        $this->page_data->assign("contents",$this->getPageContents());
 -        $this->page_data->assign("compiledfileindex",$this->getPageLeft());
 -        $this->page_data->assign("compiledclassindex",$this->getClassLeft());
 -        $this->page_data->assign("tutorials",$this->getTutorialList());
 -        $this->page_data->assign("packageindex",$this->package_index);
 -        $this->page_data->assign("package",$this->package);
 -        $this->page_data->assign("subdir",$a);
 -        $this->page_data->register_outputfilter('HTMLSmarty_outputfilter');
 -        $this->writefile($this->page . '.html',$this->page_data->fetch('page.tpl'));
 -        unset($this->page_data);
 -    }
 -    
 -    /**
 -     * @param string
 -     * @param string
 -     * @return string <a href="'.$link.'">'.$text.'</a>
 -     */
 -    function returnLink($link,$text)
 -    {
 -        return '<a href="'.$link.'">'.$text.'</a>';
 -    }
 -    
 -    function makeLeft()
 -    {
 -        if ($this->_done_package_index) return;
 -        $this->_done_package_index = true;
 -        if (!isset($this->package_index))
 -        foreach($this->all_packages as $key => $val)
 -        {
 -            if (isset($this->pkg_elements[$key]))
 -            {
 -                if (!isset($start)) $start = $key;
 -                $this->package_index[] = array('link' => "li_$key.html", 'title' => $key);
 -            }
 -        }
 -        foreach($this->page_elements as $package => $o1)
 -        {
 -            foreach($o1 as $subpackage => $links)
 -            {
 -                for($i=0;$i<count($links);$i++)
 -                {
 -                    $this->left[$package][$subpackage][] =
 -                        array("link" => $this->getId($links[$i]), "title" => $links[$i]->name);
 -                }
 -            }
 -        }
 -        foreach($this->class_elements as $package => $o1)
 -        {
 -            foreach($o1 as $subpackage => $links)
 -            {
 -                for($i=0;$i<count($links);$i++)
 -                {
 -                    $this->left['#class'][$package][$subpackage][] =
 -                        array("link" => $this->getId($links[$i]), "title" => $links[$i]->name);
 -                }
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * HTMLdefaultConverter chooses to format both package indexes and the complete index here
 -     *
 -     * This function formats output for the elementindex.html and pkgelementindex.html template files.  It then
 -     * writes them to the target directory
 -     * @see generateElementIndex(), generatePkgElementIndex()
 -     */
 -    function formatPkgIndex()
 -    {
 -        list($package_indexes,$packages,$mletters) = $this->generatePkgElementIndexes();
 -        for($i=0;$i<count($package_indexes);$i++)
 -        {
 -            $template = &$this->newSmarty();
 -            $this->package = $package_indexes[$i]['package'];
 -            $this->subpackage = '';
 -            $template->assign("compiledclassindex",$this->getClassLeft());
 -            $template->assign("compiledfileindex",$this->getPageLeft());
 -            $template->assign("tutorials",$this->getTutorialList());
 -            $template->assign("index",$package_indexes[$i]['pindex']);
 -            $template->assign("package",$package_indexes[$i]['package']);
 -            $template->assign("letters",$mletters[$package_indexes[$i]['package']]);
 -            $template->assign("title","Package ".$package_indexes[$i]['package']." Element Index");
 -            $template->assign("date",date("r",time()));
 -            $template->register_outputfilter('HTMLSmarty_outputfilter');
 -            $this->setTargetDir($this->base_dir);
 -            $this->writefile('elementindex_'.$package_indexes[$i]['package'].'.html',$template->fetch('pkgelementindex.tpl'));
 -        }
 -        phpDocumentor_out("\n");
 -        flush();
 -        }
 -    
 -    /**
 -     * HTMLdefaultConverter uses this function to format template index.html and packages.html
 -     *
 -     * This function generates the package list from {@link $all_packages}, eliminating any
 -     * packages that don't have any entries in their package index (no files at all, due to @ignore
 -     * or other factors).  Then it uses the default package name as the first package index to display.
 -     * It sets the right pane to be either a blank file with instructions on making package-level docs,
 -     * or the package-level docs for the default package.
 -     * @global string Used to set the starting package to display
 -     */
 -    function formatIndex()
 -    {
 -        global $phpDocumentor_DefaultPackageName;
 -        if (!isset($this->package_index))
 -        {
 -            debug("\nERROR: Nothing parsed, check the command-line");
 -            die();
 -        }
 -        list($elindex,$mletters) = $this->generateElementIndex();
 -        $template = &$this->newSmarty();
 -        $template->assign("index",$elindex);
 -        $template->assign("letters",$mletters);
 -        $template->assign("title","Element Index");
 -        $template->assign("date",date("r",time()));
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir);
 -        $template->register_outputfilter('HTMLSmarty_outputfilter');
 -        $this->writefile('elementindex.html',$template->fetch('elementindex.tpl'));
 -        usort($this->package_index,"HTMLSmarty_pindexcmp");
 -        $index = &$this->newSmarty();
 -        foreach($this->all_packages as $key => $val)
 -        {
 -            if (isset($this->pkg_elements[$key]))
 -            {
 -                if (!isset($start)) $start = $key;
 -                if (!isset($this->package_pages[$key])) $this->writeNewPPage($key);
 -            }
 -        }
 -        // Created index.html
 -        $start = $phpDocumentor_DefaultPackageName;
 -        if (!isset($this->pkg_elements[$key]))
 -        {
 -            // if there are no elements, use a random package as the default
 -            $start = array_shift(array_keys($this->pkg_elements));
 -        }
 -        $this->package = $start;
 -        $this->subpackage = '';
 -        $index->assign("compiledclassindex",$this->getClassLeft());
 -        $index->assign("compiledfileindex",$this->getPageLeft());
 -        $index->assign('hastodos',count($this->todoList));
 -        $index->assign('todolink','todolist.html');
 -        $index->assign("tutorials",$this->getTutorialList());
 -        $index->assign("date",date("r",time()));
 -        $index->assign("package",$this->package);
 -        $index->assign("title",$this->title);
 -        $index->assign("start","li_$start.html");
 -        if (isset($this->package_pages[$start]))
 -        {
 -            $index->assign("contents",$this->package_pages[$start]);
 -        }
 -        $index->register_outputfilter('HTMLSmarty_outputfilter');
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir);
 -        $this->writefile("index.html",$index->fetch('index.tpl'));
 -        unset($index);
 -
 -    }
 -    
 -    function writeNewPPage($key)
 -    {
 -        $template = &$this->newSmarty();
 -        $this->package = $key;
 -        $this->subpackage = '';
 -        $template->assign("compiledclassindex",$this->getClassLeft());
 -        $template->assign("compiledfileindex",$this->getPageLeft());
 -        $template->assign("tutorials",$this->getTutorialList());
 -        $template->assign("date",date("r",time()));
 -        $template->assign("title",$this->title);
 -        $template->assign("package",$key);
 -        $template->register_outputfilter('HTMLSmarty_outputfilter');
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir);
 -        $this->writefile("li_$key.html",$template->fetch('index.tpl'));
 -        unset($template);
 -    }
 -    
 -    /**
 -     * Generate indexes for li_package.html and classtree output files
 -     *
 -     * This function generates the li_package.html files from the template file left.html.  It does this by
 -     * iterating through each of the $page_elements, $class_elements and  $function_elements arrays to retrieve
 -     * the pre-sorted {@link abstractLink} descendants needed for index generation.  Conversion of these links to
 -     * text is done by {@link returnSee()}.
 -     * 
 -     * Then it uses {@link generateFormattedClassTrees()} to create class trees from the template file classtrees.html.  Output
 -     * filename is classtrees_packagename.html.  This function also unsets {@link $elements} and {@link $pkg_elements} to free
 -     * up the considerable memory these two class vars use
 -     * @see $page_elements, $class_elements, $function_elements
 -     */
 -    function formatLeftIndex()
 -    {
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir);
 -        if (!isset($this->left))
 -        {
 -            debug("Nothing parsed, check the command-line");
 -            die();
 -        }
 -        foreach($this->all_packages as $package => $rest)
 -        {
 -            if (!isset($this->pkg_elements[$package])) continue;
 -            // Create class tree page
 -            $template = &$this->newSmarty();
 -            $template->assign("compiledclassindex",$this->getClassLeft());
 -            $template->assign("compiledfileindex",$this->getPageLeft());
 -            $template->assign("classtrees",$this->generateFormattedClassTrees($package));
 -            $template->assign("package",$package);
 -            $template->assign("date",date("r",time()));
 -            $template->assign("title","Class Trees for Package $package");
 -            $template->register_outputfilter('HTMLSmarty_outputfilter');
 -            $this->writefile("classtrees_$package.html",$template->fetch('classtrees.tpl'));
 -            phpDocumentor_out("\n");
 -            flush();
 -        }
 -        $this->writeRIC();
 -        // free up considerable memory
 -        unset($this->elements);
 -        unset($this->pkg_elements);
 -    }
 -    
 -    
 -    /**
 -     * This function takes an {@link abstractLink} descendant and returns an html link
 -     *
 -     * @param abstractLink a descendant of abstractlink should be passed, and never text
 -     * @param string text to display in the link
 -     * @param boolean this parameter is not used, and is deprecated
 -     * @param boolean determines whether the returned text is enclosed in an <a> tag
 -     */
 -    function returnSee(&$element, $eltext = false, $with_a = true)
 -    {
 -        if (!is_object($element) || !$element) return false;
 -        if (!$with_a) return $this->getId($element, false);
 -        if (!$eltext)
 -        {
 -            $eltext = '';
 -            switch($element->type)
 -            {
 -                case 'tutorial' :
 -                $eltext = strip_tags($element->title);
 -                break;
 -                case 'method' :
 -                case 'var' :
 -                case 'const' :
 -                $eltext .= $element->class.'::';
 -                case 'page' :
 -                case 'define' :
 -                case 'class' :
 -                case 'function' :
 -                case 'global' :
 -                default :
 -                $eltext .= $element->name;
 -                if ($element->type == 'function' || $element->type == 'method') $eltext .= '()';
 -                break;
 -            }
 -        }
 -        return '<a href="'.$this->getId($element).'">'.$eltext.'</a>';
 -    }
 -    
 -    function getId($element, $fullpath = true)
 -    {
 -        if (phpDocumentor_get_class($element) == 'parserdata')
 -        {
 -            $element = $this->addLink($element->parent);
 -            $elp = $element->parent;
 -        } elseif (is_a($element, 'parserbase'))
 -        {
 -            $elp = $element;
 -            $element = $this->addLink($element);
 -        }
 -        $c = '';
 -        if (!empty($element->subpackage))
 -        {
 -            $c = '/'.$element->subpackage;
 -        }
 -        $b = '{$subdir}';
 -        switch ($element->type)
 -        {
 -            case 'page' :
 -            if ($fullpath)
 -            return $b.$element->package.$c.'/'.$element->fileAlias.'.html';
 -            return 'top';
 -            break;
 -            case 'define' :
 -            case 'global' :
 -            case 'function' :
 -            if ($fullpath)
 -            return $b.$element->package.$c.'/'.$element->fileAlias.'.html#'.$element->type.$element->name;
 -            return $element->type.$element->name;
 -            break;
 -            case 'class' :
 -            if ($fullpath)
 -            return $b.$element->package.$c.'/'.$element->name.'.html';
 -            return 'top';
 -            break;
 -            case 'method' :
 -            case 'var' :
 -            case 'const' :
 -            if ($fullpath)
 -            return $b.$element->package.$c.'/'.$element->class.'.html#'.$element->type.$element->name;
 -            return $element->type.$element->name;
 -            break;
 -            case 'tutorial' :
 -            $d = '';
 -            if ($element->section)
 -            {
 -                $d = '#'.$element->section;
 -            }
 -            return $b.$element->package.$c.'/tutorial_'.$element->name.'.html'.$d;
 -        }
 -    }
 -    
 -    /**
 -     * Convert README/INSTALL/CHANGELOG file contents to output format
 -     * @param README|INSTALL|CHANGELOG
 -     * @param string contents of the file
 -     */
 -    function Convert_RIC($name, $contents)
 -    {
 -        $this->ric_contents[$name] = $contents;
 -        $this->ric_set[] = array('file' => 'ric_'.$name . '.html','name' => $name);
 -    }
 -    
 -    function writeRIC()
 -    {
 -        if ($this->_ric_done) return;
 -        $this->_ric_done = true;
 -        foreach($this->ric_contents as $name => $contents)
 -        {
 -            $template = &$this->newSmarty();
 -            $template->assign('contents',$contents);
 -            $template->assign('name',$name);
 -            $template->assign('title',$name);
 -            $this->setTargetDir($this->base_dir);
 -            $this->writefile('ric_'.$name . '.html',$template->fetch('ric.tpl'));
 -        }
 -    }
 -    
 -    function ConvertTodoList()
 -    {
 -        $todolist = array();
 -        foreach($this->todoList as $package => $alltodos)
 -        {
 -            foreach($alltodos as $todos)
 -            {
 -                $converted = array();
 -                $converted['link'] = $this->returnSee($todos[0]);
 -                if (!is_array($todos[1]))
 -                {
 -                    $converted['todos'][] = $todos[1]->Convert($this);
 -                } else
 -                {
 -                    foreach($todos[1] as $todo)
 -                    {
 -                        $converted['todos'][] = $todo->Convert($this);
 -                    }
 -                }
 -                $todolist[$package][] = $converted;
 -            }
 -        }
 -        $templ = &$this->newSmarty();
 -        $templ->assign('todos',$todolist);
 -        $templ->register_outputfilter('HTMLSmarty_outputfilter');
 -        $this->setTargetDir($this->base_dir);
 -        $this->writefile('todolist.html',$templ->fetch('todolist.tpl'));
 -    }
 -    
 -    /**
 -     * Create errors.html template file output
 -     *
 -     * This method takes all parsing errors and warnings and spits them out ordered by file and line number.
 -     * @global ErrorTracker We'll be using it's output facility
 -     */
 -    function ConvertErrorLog()
 -    {
 -        global $phpDocumentor_errors;
 -        $allfiles = array();
 -        $files = array();
 -        $warnings = $phpDocumentor_errors->returnWarnings();
 -        $errors = $phpDocumentor_errors->returnErrors();
 -        $template = &$this->newSmarty();
 -        foreach($warnings as $warning)
 -        {
 -            $file = '##none';
 -            $linenum = 'Warning';
 -            if ($warning->file)
 -            {
 -                $file = $warning->file;
 -                $allfiles[$file] = 1;
 -                $linenum .= ' on line '.$warning->linenum;
 -            }
 -            $files[$file]['warnings'][] = array('name' => $linenum, 'listing' => $warning->data);
 -        }
 -        foreach($errors as $error)
 -        {
 -            $file = '##none';
 -            $linenum = 'Error';
 -            if ($error->file)
 -            {
 -                $file = $error->file;
 -                $allfiles[$file] = 1;
 -                $linenum .= ' on line '.$error->linenum;
 -            }
 -            $files[$file]['errors'][] = array('name' => $linenum, 'listing' => $error->data);
 -        }
 -        $i=1;
 -        $af = array();
 -        foreach($allfiles as $file => $num)
 -        {
 -            $af[$i++] = $file;
 -        }
 -        $allfiles = $af;
 -        usort($allfiles,'strnatcasecmp');
 -        $allfiles[0] = "Post-parsing";
 -        foreach($allfiles as $i => $a)
 -        {
 -            $allfiles[$i] = array('file' => $a);
 -        }
 -        $out = array();
 -        foreach($files as $file => $data)
 -        {
 -            if ($file == '##none') $file = 'Post-parsing';
 -            $out[$file] = $data;
 -        }
 -        $template->assign("files",$allfiles);
 -        $template->assign("all",$out);
 -        $template->assign("title","phpDocumentor Parser Errors and Warnings");
 -        $template->register_outputfilter('HTMLSmarty_outputfilter');
 -        $this->setTargetDir($this->base_dir);
 -        $this->writefile("errors.html",$template->fetch('errors.tpl'));
 -        unset($template);
 -        phpDocumentor_out("\n\nTo view errors and warnings, look at ".$this->base_dir. PATH_DELIMITER . "errors.html\n");
 -        flush();
 -    }
 -    
 -    function getCData($value)
 -    {
 -        return '<pre>'.htmlentities($value).'</pre>';
 -    }
 -    
 -    function getTutorialId($package,$subpackage,$tutorial,$id)
 -    {
 -        return $id;
 -    }
 -
 -    /**
 -     * Converts package page and sets its package as used in {@link $package_pages}
 -     * @param parserPackagePage
 -     */
 -    function convertPackagepage(&$element)
 -    {
 -        phpDocumentor_out("\n");
 -        flush();
 -        $template = &$this->newSmarty();
 -        $this->package = $element->package;
 -        $this->subpackage = '';
 -        $template->assign("compiledclassindex",$this->getClassLeft());
 -        $template->assign("compiledfileindex",$this->getPageLeft());
 -        $template->assign("tutorials",$this->getTutorialList());
 -        $template->assign("date",date("r",time()));
 -        $template->assign("title",$this->title);
 -        $template->assign("package",$element->package);
 -        $x = $element->Convert($this);
 -        $x = substr($x,strpos($x,'<body'));
 -        $template->assign("contents",trim(substr($x,strpos($x,'>') + 1)));
 -        $this->package_pages[$element->package] = trim(substr($x,strpos($x,'>') + 1));
 -        $template->register_outputfilter('HTMLSmarty_outputfilter');
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir);
 -        $this->writefile("li_".$element->package.".html",$template->fetch('index.tpl'));
 -        unset($template);
 -    }
 -    
 -    /**
 -     * @param parserTutorial
 -     */
 -    function convertTutorial(&$element)
 -    {
 -        phpDocumentor_out("\n");
 -        flush();
 -        $template = &parent::convertTutorial($element);
 -        $this->package = $element->package;
 -        $this->subpackage = $element->subpackage;
 -        $template->assign("compiledclassindex",$this->getClassLeft());
 -        $template->assign("compiledfileindex",$this->getPageLeft());
 -        $template->assign("tutorials",$this->getTutorialList());
 -        $template->assign("title",strip_tags($element->getTitle($this)));
 -        $contents = $element->Convert($this);
 -        if ($element->name == $this->package . '.pkg')
 -        {
 -            $this->package_pages[$element->package] = $contents;
 -        }
 -        $a = '../';
 -        if (!empty($element->subpackage)) $a .= $a;
 -        $template->assign("subdir",$a);
 -        $a = '';
 -        if ($element->subpackage) $a = PATH_DELIMITER . $element->subpackage;
 -        $template->register_outputfilter('HTMLSmarty_outputfilter');
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $element->package . $a);
 -        $this->writeFile('tutorial_'.$element->name.'.html',$template->fetch('tutorial.tpl'));
 -        if ($element->name == $element->package . '.pkg')
 -        {
 -            phpDocumentor_out("\n");
 -            flush();
 -            // package-level docs
 -            $this->setTargetDir($this->base_dir);
 -            $template->assign("subdir",'');
 -            $this->writeFile('li_'.$element->package.'.html',$template->fetch('tutorial.tpl'));
 -        }
 -        unset($template);
 -    }
 -
 -    /**
 -     * Converts class for template output
 -     * @see prepareDocBlock(), generateChildClassList(), generateFormattedClassTree(), getFormattedConflicts()
 -     * @see getFormattedInheritedMethods(), getFormattedInheritedVars()
 -     * @param parserClass
 -     */
 -    function convertClass(&$element)
 -    {
 -        parent::convertClass($element);
 -        $this->class_dir = $element->docblock->package;
 -        if (!empty($element->docblock->subpackage)) $this->class_dir .= PATH_DELIMITER . $element->docblock->subpackage;
 -        $a = '../classtrees_';
 -        if ($element->docblock->subpackage != '') $a = "../$a";
 -        
 -        $this->class_data->assign('subdir',$a);
 -        $this->class_data->assign("title","Docs For Class " . $element->getName());
 -        $this->class_data->assign("page",$element->getName() . '.html');
 -    }
 -
 -    /**
 -     * Converts class variables for template output
 -     * @see prepareDocBlock(), getFormattedConflicts()
 -     * @param parserDefine
 -     */
 -    function convertVar(&$element)
 -    {
 -        parent::convertVar($element, array('var_dest' => $this->getId($element,false)));
 -    }
 -
 -    /**
 -     * Converts class variables for template output
 -     * @see prepareDocBlock(), getFormattedConflicts()
 -     * @param parserDefine
 -     */
 -    function convertConst(&$element)
 -    {
 -        parent::convertConst($element, array('const_dest' => $this->getId($element,false)));
 -    }
 -
 -    /**
 -     * Converts class methods for template output
 -     * @see prepareDocBlock(), getFormattedConflicts()
 -     * @param parserDefine
 -     */
 -    function convertMethod(&$element)
 -    {
 -        parent::convertMethod($element, array('method_dest' => $this->getId($element,false)));
 -    }
 -    
 -    /**
 -     * Converts function for template output
 -     * @see prepareDocBlock(), parserFunction::getFunctionCall(), getFormattedConflicts()
 -     * @param parserFunction
 -     */
 -    function convertFunction(&$element)
 -    {
 -        $funcloc = $this->getId($this->addLink($element));
 -        parent::convertFunction($element,array('function_dest' => $this->getId($element,false)));
 -    }
 -    
 -    /**
 -     * Converts include elements for template output
 -     * @see prepareDocBlock()
 -     * @param parserInclude
 -     */
 -    function convertInclude(&$element)
 -    {
 -        parent::convertInclude($element, array('include_file'    => '_'.strtr($element->getValue(),array('"' => '', "'" => '','.' => '_'))));
 -    }
 -    
 -    /**
 -     * Converts defines for template output
 -     * @see prepareDocBlock(), getFormattedConflicts()
 -     * @param parserDefine
 -     */
 -    function convertDefine(&$element)
 -    {
 -        parent::convertDefine($element, array('define_link' => $this->getId($element,false)));
 -    }
 -    
 -    /**
 -     * Converts global variables for template output
 -     * @param parserGlobal
 -     * @see prepareDocBlock(), getFormattedConflicts()
 -     */
 -    function convertGlobal(&$element)
 -    {
 -        parent::convertGlobal($element, array('global_link' => $this->getId($element,false)));
 -    }
 -    
 -    /**
 -     * converts procedural pages for template output
 -     * @see prepareDocBlock(), getClassesOnPage()
 -     * @param parserData
 -     */
 -    function convertPage(&$element)
 -    {
 -        parent::convertPage($element);
 -        $this->juststarted = true;
 -        $this->page_dir = $element->parent->package;
 -        if (!empty($element->parent->subpackage)) $this->page_dir .= PATH_DELIMITER . $element->parent->subpackage;
 -        // registering stuff on the template
 -        $a = '../';
 -        if (!empty($element->docblock->subpackage)) $a = $a . $a;
 -        $this->page_data->assign('subdir',$a);
 -        $this->page_data->assign("page",$this->getPageName($element) . '.html');
 -        $this->page_data->assign("title","Docs for page ".$element->parent->getFile());
 -    }
 -    
 -    function getPageName(&$element)
 -    {
 -        if (phpDocumentor_get_class($element) == 'parserpage') return '_'.$element->getName();
 -        return '_'.$element->parent->getName();
 -    }
 -
 -    /**
 -     * returns an array containing the class inheritance tree from the root object to the class
 -     *
 -     * @param parserClass    class variable
 -     * @return array Format: array(root,child,child,child,...,$class)
 -     * @uses parserClass::getParentClassTree()
 -     */
 -    
 -    function generateFormattedClassTree($class)
 -    {
 -        $tree = $class->getParentClassTree($this);
 -        $out = '';
 -        if (count($tree) - 1)
 -        {
 -            $result = array($class->getName());
 -            $parent = $tree[$class->getName()];
 -            $distance[] = '';
 -            while ($parent)
 -            {
 -                $x = $parent;
 -                if (is_object($parent))
 -                {
 -                    $subpackage = $parent->docblock->subpackage;
 -                    $package = $parent->docblock->package;
 -                    $x = $parent;
 -                    $x = $parent->getLink($this);
 -                    if (!$x) $x = $parent->getName();
 -                }
 -                $result[] = 
 -                    $x;
 -                $distance[] =
 -                    "\n%s|\n" .
 -                    "%s--";
 -                if (is_object($parent))
 -                $parent = $tree[$parent->getName()];
 -                elseif (isset($tree[$parent]))
 -                $parent = $tree[$parent];
 -            }
 -            $nbsp = '   ';
 -            for($i=count($result) - 1;$i>=0;$i--)
 -            {
 -                $my_nbsp = '';
 -                for($j=0;$j<count($result) - $i;$j++) $my_nbsp .= $nbsp;
 -                $distance[$i] = sprintf($distance[$i],$my_nbsp,$my_nbsp);
 -            }
 -            return array('classes'=>array_reverse($result),'distance'=>array_reverse($distance));
 -        } else
 -        {
 -            return array('classes'=>$class->getName(),'distance'=>array(''));
 -        }
 -    }
 -    
 -    /** @access private */
 -    function sortVar($a, $b)
 -    {
 -        return strnatcasecmp($a->getName(),$b->getName());
 -    }
 -    
 -    /** @access private */
 -    function sortMethod($a, $b)
 -    {
 -        if ($a->isConstructor) return -1;
 -        if ($b->isConstructor) return 1;
 -        return strnatcasecmp($a->getName(),$b->getName());
 -    }
 -
 -    /**
 -     * returns a template-enabled array of class trees
 -     * 
 -     * @param    string    $package    package to generate a class tree for
 -     * @see $roots, HTMLConverter::getRootTree()
 -     */
 -    function generateFormattedClassTrees($package)
 -    {
 -        if (!isset($this->roots[$package])) return array();
 -        $roots = $trees = array();
 -        $roots = $this->roots[$package];
 -        for($i=0;$i<count($roots);$i++)
 -        {
 -            $trees[] = array('class' => $roots[$i],'class_tree' => "<ul>\n".$this->getRootTree($this->getSortedClassTreeFromClass($roots[$i],$package,''),$package)."</ul>\n");
 -        }
 -        return $trees;
 -    }
 -    
 -    /**
 -     * return formatted class tree for the Class Trees page
 -     *
 -     * @param array $tree output from {@link getSortedClassTreeFromClass()}
 -     * @see Classes::$definitechild, generateFormattedClassTrees()
 -     * @return string
 -     */
 -    function getRootTree($tree,$package)
 -    {
 -        if (!$tree) return '';
 -        $my_tree = '';
 -        $cur = '#root';
 -        $lastcur = array(false);
 -        $kids = array();
 -        $dopar = false;
 -        if ($tree[$cur]['parent'])
 -        {
 -            $dopar = true;
 -            if (!is_object($tree[$cur]['parent']))
 -            {
 -//                debug("parent ".$tree[$cur]['parent']." not found");
 -                $my_tree .= '<li>' . $tree[$cur]['parent'] .'<ul>';
 -            }
 -            else
 -            {
 -//                        debug("parent ".$this->returnSee($tree[$cur]['parent'])." in other package");
 -                $my_tree .= '<li>' . $this->returnSee($tree[$cur]['parent']);
 -                if ($tree[$cur]['parent']->package != $package) $my_tree .= ' <b>(Different package)</b><ul>';
 -            }
 -        }
 -        do
 -        {
 -//            fancy_debug($cur,$lastcur,$kids);
 -            if (count($tree[$cur]['children']))
 -            {
 -//                debug("$cur has children");
 -                if (!isset($kids[$cur]))
 -                {
 -//                    debug("set $cur kids");
 -                    $kids[$cur] = 1;
 -                    $my_tree .= '<li>'.$this->returnSee($tree[$cur]['link']);
 -                    $my_tree .= '<ul>'."\n";
 -                }
 -                array_push($lastcur,$cur);
 -                list(,$cur) = each($tree[$cur]['children']);
 -//                var_dump('listed',$cur);
 -                if ($cur)
 -                {
 -                    $cur = $cur['package'] . '#' . $cur['class'];
 -//                    debug("set cur to child $cur");
 -//                    $my_tree .= '<li>'.$this->returnSee($tree[$cur]['link']);
 -                    continue;
 -                } else
 -                {
 -//                    debug("end of children for $cur");
 -                    $cur = array_pop($lastcur);
 -                    $cur = array_pop($lastcur);
 -                    $my_tree .= '</ul></li>'."\n";
 -                    if ($dopar && ($cur == '#root' || !$cur)) $my_tree .= '</ul></li>';
 -                }
 -            } else 
 -            {
 -//                debug("$cur has no children");
 -                $my_tree .= '<li>'.$this->returnSee($tree[$cur]['link'])."</li>";
 -                if ($dopar && $cur == '#root') $my_tree .= '</ul></li>';
 -                $cur = array_pop($lastcur);
 -            }
 -        } while ($cur);
 -        return $my_tree;
 -    }
 -        /**
 -         * Generate indexing information for given element
 -         * 
 -         * @param parserElement descendant of parserElement
 -         * @see generateElementIndex()
 -         * @return array
 -         */
 -        function getIndexInformation($elt)
 -        {
 -            $Result['type'] = $elt->type;
 -            $Result['file_name'] = $elt->file;
 -            $Result['path'] = $elt->getPath();
 -            
 -            if (isset($elt->docblock))
 -						{
 -							$Result['description'] = $elt->docblock->getSDesc($this);
 -							
 -							if ($elt->docblock->hasaccess)
 -								$Result['access'] = $elt->docblock->tags['access'][0]->value;
 -							else
 -								$Result['access'] = 'public';
 -
 -							$Result['abstract'] = isset ($elt->docblock->tags['abstract'][0]);
 -						}
 -            else
 -                $Result['description'] = '';
 -            
 -            $aa = $Result['description'];
 -            if (!empty($aa)) $aa = "<br>    $aa";
 -
 -            switch($elt->type)
 -            {
 -                    case 'class':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Class';
 -                            $Result['link'] = $this->getClassLink($elt->getName(),
 -                                                                  $elt->docblock->package,
 -                                                                  $elt->getPath(),
 -                                                                  $elt->getName());
 -                            $Result['listing'] = 'in file '.$elt->file.', class '.$Result['link']."$aa";
 -                    break;
 -                    case 'define':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Constant';
 -                            $Result['link'] = $this->getDefineLink($elt->getName(),
 -                                                                   $elt->docblock->package,
 -                                                                   $elt->getPath(),
 -                                                                   $elt->getName());
 -                            $Result['listing'] = 'in file '.$elt->file.', constant '.$Result['link']."$aa";
 -                    break;
 -                    case 'global':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Global';
 -                            $Result['link'] = $this->getGlobalLink($elt->getName(),
 -                                                                   $elt->docblock->package,
 -                                                                   $elt->getPath(),
 -                                                                   $elt->getName());
 -                            $Result['listing'] = 'in file '.$elt->file.', global variable '.$Result['link']."$aa";
 -                    break;
 -                    case 'function':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Function';
 -                            $Result['link'] = $this->getFunctionLink($elt->getName(),
 -                                                                     $elt->docblock->package,
 -                                                                     $elt->getPath(),
 -                                                                     $elt->getName().'()');
 -                            $Result['listing'] = 'in file '.$elt->file.', function '.$Result['link']."$aa";
 -                    break;
 -                    case 'method':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Method';
 -                            $Result['link'] = $this->getMethodLink($elt->getName(),
 -                                                                   $elt->class,
 -                                                                   $elt->docblock->package,
 -                                                                   $elt->getPath(),
 -                                                                   $elt->class.'::'.$elt->getName().'()'
 -                                                                             );
 -														if ($elt->isConstructor) $Result['constructor'] = 1;
 -                            $Result['listing'] = 'in file '.$elt->file.', method '.$Result['link']."$aa";
 -                    break;
 -                    case 'var':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Variable';
 -                            $Result['link'] = $this->getVarLink($elt->getName(),
 -                                                                $elt->class,
 -                                                                $elt->docblock->package,
 -                                                                $elt->getPath(),
 -                                                                $elt->class.'::'.$elt->getName());
 -                            $Result['listing'] = 'in file '.$elt->file.', variable '.$Result['link']."$aa";
 -                    break;
 -                    case 'const':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Variable';
 -                            $Result['link'] = $this->getConstLink($elt->getName(),
 -                                                                $elt->class,
 -                                                                $elt->docblock->package,
 -                                                                $elt->getPath(),
 -                                                                $elt->class.'::'.$elt->getName());
 -                            $Result['listing'] = 'in file '.$elt->file.', class constant '.$Result['link']."$aa";
 -                    break;
 -                    case 'page':
 -                            $Result['name'] = $elt->getFile();
 -                            $Result['title'] = 'Page';
 -                            $Result['link'] = $this->getPageLink($elt->getFile(),
 -                                                                 $elt->package,
 -                                                                 $elt->getPath(),
 -                                                                 $elt->getFile());
 -                            $Result['listing'] = 'procedural page '.$Result['link'];
 -                    break;
 -                    case 'include':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Include';
 -                            $Result['link'] = $elt->getValue();
 -                            $Result['listing'] = 'include '.$Result['name'];
 -                    break;
 -            }
 -
 -            return $Result;
 -        }
 -    /**
 -     * Generate alphabetical index of all elements
 -     *
 -     * @see $elements, walk()
 -     */
 -    function generateElementIndex()
 -    {
 -        $elementindex = array();
 -        $letters = array();
 -        $used = array();
 -        foreach($this->elements as $letter => $nutoh)
 -        {
 -            foreach($this->elements[$letter] as $i => $yuh)
 -            {
 -                if ($this->elements[$letter][$i]->type != 'include')
 -                {
 -                    if (!isset($used[$letter]))
 -                    {
 -                        $letters[]['letter'] = $letter;
 -                        $elindex['letter'] = $letter;
 -                        $used[$letter] = 1;
 -                    }
 -
 -                    $elindex['index'][] = $this->getIndexInformation($this->elements[$letter][$i]);
 -                }
 -            }
 -            if (isset($elindex['index']))
 -            {
 -                $elementindex[] = $elindex;
 -            } else
 -            {
 -                unset($letters[count($letters) - 1]);
 -            }
 -            $elindex = array();
 -        }
 -        return array($elementindex,$letters);
 -    }
 -    
 -    function copyMediaRecursively($media,$targetdir,$subdir = '')
 -    {
 -        if (!is_array($media)) {
 -            return;
 -        }
 -        foreach($media as $dir => $files)
 -        {
 -            if ($dir === '/')
 -            {
 -                $this->copyMediaRecursively($files,$targetdir);
 -            } else
 -            {
 -                if (!is_numeric($dir))
 -                {
 -                    // create the subdir
 -                    phpDocumentor_out("creating $targetdir/$dir\n");
 -                    Converter::setTargetDir($targetdir . PATH_DELIMITER . $dir);
 -                    if (!empty($subdir)) $subdir .= PATH_DELIMITER;
 -                    $this->copyMediaRecursively($files,"$targetdir/$dir",$subdir . $dir);
 -                } else
 -                {
 -                    // copy the file
 -                    phpDocumentor_out("copying $targetdir/".$files['file']."\n");
 -                    $this->copyFile($files['file'],$subdir);
 -                }
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * calls the converter setTargetDir, and then copies any template images and the stylesheet if they haven't been copied
 -     * @see Converter::setTargetDir()
 -     */
 -    function setTargetDir($dir)
 -    {
 -        Converter::setTargetDir($dir);
 -        if ($this->_wrote_tdir) return;
 -        $this->_wrote_tdir = true;
 -        $template_images = array();
 -        $stylesheets = array();
 -        $tdir = $dir;
 -        $dir = $this->templateDir;
 -        $this->templateDir = $this->templateDir.'templates/';
 -        $info = new Io;
 -        $this->copyMediaRecursively($info->getDirTree($this->templateDir.'media',$this->templateDir),$tdir);
 -    }
 -    
 -    /**
 -     * Generate alphabetical index of all elements by package and subpackage
 -     *
 -     * @param string $package name of a package
 -     * @see $pkg_elements, walk(), generatePkgElementIndexes()
 -     */
 -    function generatePkgElementIndex($package)
 -    {
 -        $elementindex = array();
 -        $letters = array();
 -        $letterind = array();
 -        $used = array();
 -        $subp = '';
 -        foreach($this->pkg_elements[$package] as $subpackage => $els)
 -        {
 -            if (empty($els)) continue;
 -            if (!empty($subpackage)) $subp = " (<b>subpackage:</b> $subpackage)"; else $subp = '';
 -            foreach($els as $letter => $yuh)
 -            {
 -                foreach($els[$letter] as $i => $yuh)
 -                {
 -                    if ($els[$letter][$i]->type != 'include')
 -                    {
 -                        if (!isset($used[$letter]))
 -                        {
 -                            $letters[]['letter'] = $letter;
 -                            $letterind[$letter] = count($letters) - 1;
 -                            $used[$letter] = 1;
 -                        }
 -                        $elindex[$letter]['letter'] = $letter;
 -
 -                        $elindex[$letter]['index'][] = $this->getIndexInformation($els[$letter][$i]);
 -                    }
 -                }
 -            }
 -        }
 -        ksort($elindex);
 -        usort($letters,'HTMLSmarty_lettersort');
 -        if (isset($elindex))
 -        {
 -            while(list($letter,$tempel) = each($elindex))
 -            {
 -                if (!isset($tempel))
 -                {
 -                    unset($letters[$letterind[$tempel['letter']]]);
 -                } else
 -                $elementindex[] = $tempel;
 -            }
 -        } else $letters = array();
 -        return array($elementindex,$letters);
 -    }
 -    
 -    /**
 -     *
 -     * @see generatePkgElementIndex()
 -     */
 -    function generatePkgElementIndexes()
 -    {
 -        $packages = array();
 -        $package_names = array();
 -        $pkg = array();
 -        $letters = array();
 -        foreach($this->pkg_elements as $package => $trash)
 -        {
 -            $pkgs['package'] = $package;
 -            $pkg['package'] = $package;
 -            list($pkg['pindex'],$letters[$package]) = $this->generatePkgElementIndex($package);
 -            if (count($pkg['pindex']))
 -            {
 -                $packages[] = $pkg;
 -                $package_names[] = $pkgs;
 -            }
 -            unset($pkgs);
 -            unset($pkg);
 -        }
 -        foreach($packages as $i => $package)
 -        {
 -            $pnames = array();
 -            for($j=0;$j<count($package_names);$j++)
 -            {
 -                if ($package_names[$j]['package'] != $package['package']) $pnames[] = $package_names[$j];
 -            }
 -            $packages[$i]['packageindexes'] = $pnames;
 -        }
 -        return array($packages,$package_names,$letters);
 -    }
 -    
 -    /**
 -     * @param string name of class
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the class's documentation
 -     * @see parent::getClassLink()
 -     */
 -    function getClassLink($expr,$package, $file = false,$text = false, $with_a = true)
 -    {
 -        $a = Converter::getClassLink($expr,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text, $with_a);
 -    }
 -
 -    /**
 -     * @param string name of function
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the function's documentation
 -     * @see parent::getFunctionLink()
 -     */
 -    function getFunctionLink($expr,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getFunctionLink($expr,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of define
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the define's documentation
 -     * @see parent::getDefineLink()
 -     */
 -    function getDefineLink($expr,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getDefineLink($expr,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of global variable
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the global variable's documentation
 -     * @see parent::getGlobalLink()
 -     */
 -    function getGlobalLink($expr,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getGlobalLink($expr,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of procedural page
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the procedural page's documentation
 -     * @see parent::getPageLink()
 -     */
 -    function getPageLink($expr,$package, $path = false,$text = false)
 -    {
 -        $a = Converter::getPageLink($expr,$package,$path);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of method
 -     * @param string class containing method
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the method's documentation
 -     * @see parent::getMethodLink()
 -     */
 -    function getMethodLink($expr,$class,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getMethodLink($expr,$class,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of var
 -     * @param string class containing var
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the var's documentation
 -     * @see parent::getVarLink()
 -     */
 -    function getVarLink($expr,$class,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getVarLink($expr,$class,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of class constant
 -     * @param string class containing class constant
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the var's documentation
 -     * @see parent::getVarLink()
 -     */
 -    function getConstLink($expr,$class,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getConstLink($expr,$class,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -    
 -    /**
 -     * does a nat case sort on the specified second level value of the array
 -     *
 -     * @param    mixed    $a
 -     * @param    mixed    $b
 -     * @return    int
 -     */
 -    function rcNatCmp ($a, $b)
 -    {
 -        $aa = strtoupper($a[$this->rcnatcmpkey]);
 -        $bb = strtoupper($b[$this->rcnatcmpkey]);
 -        
 -        return strnatcasecmp($aa, $bb);
 -    }
 -    
 -    /**
 -     * does a nat case sort on the specified second level value of the array.
 -     * this one puts constructors first
 -     *
 -     * @param    mixed    $a
 -     * @param    mixed    $b
 -     * @return    int
 -     */
 -    function rcNatCmp1 ($a, $b)
 -    {
 -        $aa = strtoupper($a[$this->rcnatcmpkey]);
 -        $bb = strtoupper($b[$this->rcnatcmpkey]);
 -        
 -        if (strpos($aa,'CONSTRUCTOR') === 0)
 -        {
 -            return -1;
 -        }
 -        if (strpos($bb,'CONSTRUCTOR') === 0)
 -        {
 -            return 1;
 -        }
 -        if (strpos($aa,strtoupper($this->class)) === 0)
 -        {
 -            return -1;
 -        }
 -        if (strpos($bb,strtoupper($this->class)) === 0)
 -        {
 -            return -1;
 -        }
 -        return strnatcasecmp($aa, $bb);
 -    }
 -    
 -    /**
 -     * This function is not used by HTMLdefaultConverter, but is required by Converter
 -     */
 -    function Output()
 -    {
 -    }
 -}
 -
 -/**
 - * @access private
 - * @global string name of the package to set as the first package
 - */
 -function HTMLSmarty_pindexcmp($a, $b)
 -{
 -    global $phpDocumentor_DefaultPackageName;
 -    if ($a['title'] == $phpDocumentor_DefaultPackageName) return -1;
 -    if ($b['title'] == $phpDocumentor_DefaultPackageName) return 1;
 -    return strnatcasecmp($a['title'],$b['title']);
 -}
 -
 -/** @access private */
 -function HTMLSmarty_lettersort($a, $b)
 -{
 -    return strnatcasecmp($a['letter'],$b['letter']);
 -}
 -
 -/** @access private */
 -function HTMLSmarty_outputfilter($src, &$smarty)
 -{
 -    return str_replace('{$subdir}',$smarty->_tpl_vars['subdir'],$src);
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/options.ini b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/options.ini deleted file mode 100644 index 4566db60..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/options.ini +++ /dev/null @@ -1,577 +0,0 @@ -preservedocbooktags = false
 -
 -;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
 -[highlightSourceTokens]
 -;; format:
 -;; T_CONSTANTNAME = open
 -;; /T_CONSTANTNAME = close
 -
 -T_INCLUDE = <span class="src-inc">
 -/T_INCLUDE = </span>
 -T_INCLUDE_ONCE = <span class="src-inc">
 -/T_INCLUDE_ONCE = </span>
 -T_REQUIRE_ONCE = <span class="src-inc">
 -/T_REQUIRE_ONCE = </span>
 -T_REQUIRE_ONCE = <span class="src-inc">
 -/T_REQUIRE_ONCE = </span>
 -
 -T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
 -/T_CONSTANT_ENCAPSED_STRING = </span>
 -T_STRING_VARNAME = <span class="src-str">
 -/T_STRING_VARNAME = </span>
 -
 -T_STRING = <span class="src-id">
 -/T_STRING = </span>
 -
 -T_DNUMBER = <span class="src-num">
 -/T_DNUMBER = </span>
 -T_LNUMBER = <span class="src-num">
 -/T_LNUMBER = </span>
 -
 -T_VARIABLE = <span class="src-var">
 -/T_VARIABLE = </span>
 -
 -T_COMMENT = <span class="src-comm">
 -/T_COMMENT = </span>
 -T_ML_COMMENT = <span class="src-comm">
 -/T_ML_COMMENT = </span>
 -
 -T_OBJECT_OPERATOR = <span class="src-sym">
 -/T_OBJECT_OPERATOR = </span>
 -
 -T_ABSTRACT = <span class="src-key">
 -/T_ABSTRACT = </span>
 -T_CLONE = <span class="src-key">
 -/T_CLONE = </span>
 -T_HALT_COMPILER = <span class="src-key">
 -/T_HALT_COMPILER = </span>
 -T_ARRAY = <span class="src-key">
 -/T_ARRAY = </span>
 -T_AS = <span class="src-key">
 -/T_AS = </span>
 -T_BREAK = <span class="src-key">
 -/T_BREAK = </span>
 -T_CLASS = <span class="src-key">
 -/T_CLASS = </span>
 -T_CASE = <span class="src-key">
 -/T_CASE = </span>
 -T_CONST = <span class="src-key">
 -/T_CONST = </span>
 -T_CONTINUE = <span class="src-key">
 -/T_CONTINUE = </span>
 -T_DECLARE = <span class="src-key">
 -/T_DECLARE = </span>
 -T_DEFAULT = <span class="src-key">
 -/T_DEFAULT = </span>
 -T_ELSE = <span class="src-key">
 -/T_ELSE = </span>
 -T_ELSEIF = <span class="src-key">
 -/T_ELSEIF = </span>
 -T_EMPTY = <span class="src-key">
 -/T_EMPTY = </span>
 -T_ENDDECLARE = <span class="src-key">
 -/T_ENDDECLARE = </span>
 -T_ENDFOR = <span class="src-key">
 -/T_ENDFOR = </span>
 -T_ENDSWITCH = <span class="src-key">
 -/T_ENDSWITCH = </span>
 -T_ENDFOREACH = <span class="src-key">
 -/T_ENDFOREACH = </span>
 -T_ENDIF = <span class="src-key">
 -/T_ENDIF = </span>
 -T_ENDWHILE = <span class="src-key">
 -/T_ENDWHILE = </span>
 -T_EXIT = <span class="src-key">
 -/T_EXIT = </span>
 -T_EXTENDS = <span class="src-key">
 -/T_EXTENDS = </span>
 -T_FINAL = <span class="src-key">
 -/T_FINAL = </span>
 -T_FOR = <span class="src-key">
 -/T_FOR = </span>
 -T_FOREACH = <span class="src-key">
 -/T_FOREACH = </span>
 -T_FUNCTION = <span class="src-key">
 -/T_FUNCTION = </span>
 -T_GLOBAL = <span class="src-key">
 -/T_GLOBAL = </span>
 -T_IF = <span class="src-key">
 -/T_IF = </span>
 -T_IMPLEMENTS = <span class="src-key">
 -/T_IMPLEMENTS = </span>
 -T_INTERFACE = <span class="src-key">
 -/T_INTERFACE = </span>
 -T_LOGICAL_AND = <span class="src-key">
 -/T_LOGICAL_AND = </span>
 -T_LOGICAL_OR = <span class="src-key">
 -/T_LOGICAL_OR = </span>
 -T_LOGICAL_XOR = <span class="src-key">
 -/T_LOGICAL_XOR = </span>
 -T_NEW = <span class="src-key">
 -/T_NEW = </span>
 -T_PRIVATE = <span class="src-key">
 -/T_PRIVATE = </span>
 -T_PROTECTED = <span class="src-key">
 -/T_PROTECTED = </span>
 -T_PUBLIC = <span class="src-key">
 -/T_PUBLIC = </span>
 -T_RETURN = <span class="src-key">
 -/T_RETURN = </span>
 -T_STATIC = <span class="src-key">
 -/T_STATIC = </span>
 -T_SWITCH = <span class="src-key">
 -/T_SWITCH = </span>
 -T_VAR = <span class="src-key">
 -/T_VAR = </span>
 -T_WHILE = <span class="src-key">
 -/T_WHILE = </span>
 -
 -T_DOUBLE_COLON = <span class="src-sym">
 -/T_DOUBLE_COLON = </span>
 -
 -T_OPEN_TAG = <span class="src-php">
 -/T_OPEN_TAG = </span>
 -T_OPEN_TAG_WITH_ECHO = <span class="src-php">
 -/T_OPEN_TAG_WITH_ECHO = </span>
 -T_CLOSE_TAG = <span class="src-php">
 -/T_CLOSE_TAG = </span>
 -
 -
 -[highlightSource]
 -;; this is for highlighting things that aren't tokens like "&"
 -;; format:
 -;; word = open
 -;; /word = close
 -@ = <span class="src-sym">
 -/@ = </span>
 -& = <span class="src-sym">
 -/& = </span>
 -[ = <span class="src-sym">
 -/[ = </span>
 -] = <span class="src-sym">
 -/] = </span>
 -! = <span class="src-sym">
 -/! = </span>
 -";" = <span class="src-sym">
 -/; = </span>
 -( = <span class="src-sym">
 -/( = </span>
 -) = <span class="src-sym">
 -/) = </span>
 -, = <span class="src-sym">
 -/, = </span>
 -{ = <span class="src-sym">
 -/{ = </span>
 -} = <span class="src-sym">
 -/} = </span>
 -""" = <span class="src-str">
 -/" = </span>
 -
 -[highlightDocBlockSourceTokens]
 -;; this is for docblock tokens, using by phpDocumentor_HighlightParser
 -;; tagphptype is for "string" in @param string description, for example
 -docblock = <span class="src-doc">
 -/docblock = </span>
 -tagphptype = <span class="src-doc-type">
 -/tagphptype = </span>
 -tagvarname = <span class="src-doc-var">
 -/tagvarname = </span>
 -coretag = <span class="src-doc-coretag">
 -/coretag = </span>
 -tag = <span class="src-doc-tag">
 -/tag = </span>
 -inlinetag = <span class="src-doc-inlinetag">
 -/inlinetag = </span>
 -internal = <span class="src-doc-internal">
 -/internal = </span>
 -closetemplate = <span class="src-doc-close-template">
 -/closetemplate = </span>
 -docblocktemplate = <span class="src-doc-template">
 -/docblocktemplate = </span>
 -
 -[highlightTutorialSourceTokens]
 -;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
 -;; <tag>
 -opentag = <span class="tute-tag">
 -/opentag = </span>
 -;; </tag>
 -closetag = <span class="tute-tag">
 -/closetag = </span>
 -;; <tag attribute="value">
 -attribute = <span class="tute-attribute-name">
 -/attribute = </span>
 -;; <tag attribute="value">
 -attributevalue = <span class="tute-attribute-value">
 -/attributevalue = </span>
 -;; &entity;
 -entity = <span class="tute-entity">
 -/entity = </span>
 -;; <!-- comment -->
 -comment = <span class="tute-comment">
 -/comment = </span>
 -;; {@inline tag}
 -itag = <span class="tute-inline-tag">
 -/itag = </span>
 -
 -;; used for translation of html in DocBlocks
 -[desctranslate]
 -ul = <ul>
 -/ul = </ul>
 -ol = <ol>
 -/ol = </ol>
 -li = <li>
 -/li = </li>
 -code = <div class="listing"><pre>
 -/code = </pre></div>
 -var = <var>
 -/var = </var>
 -samp = <samp>
 -/samp = </samp>
 -kbd = <kbd>
 -/kbd = </kbd>
 -pre = <pre>
 -/pre = </pre>
 -p = <p>
 -/p = </p>
 -b = <strong>
 -/b = </strong>
 -i = <em>
 -/i = </em>
 -br = <br />
 -
 -[ppage]
 -;; this is the DocBook package page translation section.  All DocBook tags
 -;; that have a corresponding html tag must be listed here.  Entities should
 -;; also be listed here
 -;;
 -;; examples:
 -;; 1)
 -;; tagname = newtagname
 -;;
 -;; This is the simplest case, where all attributes will be added into the
 -;; starting tag and the ending tag will be html/xml style </tranlatedtagname>
 -;; <tagname></tagname> becomes <newtagname></newtagname> and
 -;; <tagname attr="value"></tagname> becomes
 -;; <newtagname attr="value"></newtagname>
 -;;
 -;; 2)
 -;; tagname = newtagname
 -;; tagname->attr = newattrname
 -;;
 -;; in this case, everything will be like the first case, except tags like:
 -;; <tagname attr="value"></tagname> will become
 -;; <newtagname newattrname="value"></newtagname>
 -;;
 -;; 3)
 -;; tagname = newtagname
 -;; tagname->attr = newattrname
 -;; tagname->attr+value = newvalue
 -;;
 -;; in this case, the value is also translated to another.  This can be useful
 -;; for instances such as focus="middle" changing to align="center" or something
 -;; of that nature.
 -;; <tagname attr="value"></tagname> will become
 -;; <newtagname newattrname="newvalue"></newtagname>
 -;;
 -;; 4)
 -;; tagname = newtagname
 -;; tagname->attr1 = newattrname
 -;; tagname->attr2 = newattrname
 -;; tagname->attr1+value|attr2+value = newvalue
 -;;
 -;; in this case, two attributes combine to make one new attribute, and the combined
 -;; value is translated into a new value
 -;; <tagname attr1="value1" attr2="value2"></tagname> will become
 -;; <newtagname newattrname="newvalue"></newtagname>
 -;;
 -;; 5)
 -;; tagname = newtagname
 -;; tagname!attr = dummy
 -;;
 -;; here, the attribute will be ignored.  dummy is not used and may be any value
 -;; <tagname attr="value"></tagname> will become
 -;; <newtagname></newtagname>
 -;;
 -;; 6)
 -;; tagname = newtagname
 -;; tagname! = dummy
 -;;
 -;; here, all attributes will be ignored.  dummy is not used and may be any value
 -;; <tagname attr1="value" attr2="foo"></tagname> will become
 -;; <newtagname></newtagname>
 -;;
 -;; 7)
 -;; tagname = newtagname
 -;; tagname/ = 1
 -;;
 -;; here, the tag will be translated as a single tag with no closing tag, and all
 -;; attributes
 -;; <tagname attr="val">{text text}</tagname> will become
 -;; <newtagname attr="val" />
 -;;
 -;; 8)
 -;; tagname = <starttaginfo />
 -;; /tagname = closetagtext
 -;;
 -;; in this case, the text <starttaginfo> will be inserted exactly as entered for
 -;; <tagname> and closetagtext for </tagname>
 -;; <tagname attr="val"></tagname> will become
 -;; <starttaginfo />closetagtext
 -;;
 -;; 9)
 -;; $attr$my_attribute = newattrname
 -;;
 -;; tagname = newtagname
 -;;
 -;; in this case, all occurences of my_attribute in any tag will be changed to
 -;; newattrname.  This is useful for changing things like role="php" to
 -;; class="php," for example.  Note that the text "$attr$" MUST be on the line
 -;; start for phpDocumentor to recognize it.
 -;;
 -;; 10)
 -;; &entity; = translation text
 -;; " = "
 -;; " = """
 -;; < = <
 -;;
 -;; Use this to control translation of entities to their appropriate values
 -
 -  =  
 -" = "
 -” = ”
 -“ = “
 -& = &
 -< = <
 -> = >
 -© = ©
 -
 -$attr$role = class
 -
 -abbrev = abbr
 -
 -blockquote = blockquote
 -
 -arg = span
 -arg->choice = class
 -
 -author = <span class="author">
 -/author = </span>
 -author! = 0
 -
 -authorblurb = <div class="author-blurb">
 -/authorblurb = </div>
 -
 -authorgroup = <div class="authors"><h2 class="title">Authors</h2>
 -/authorgroup = </div>
 -authorgroup! = 0
 -
 -caution = <span class="warning">
 -/caution = </span>
 -caution! = 0
 -
 -cmdsynopsis = <div class="cmd-synopsis">
 -/cmdsynopsis = </div>
 -
 -command = <span class="cmd-title">
 -/command = </span>
 -
 -copyright = <div class="notes">
 -/copyright = </div>
 -
 -emphasis = strong
 -
 -example = <pre class="example">
 -/example = </pre>
 -example! = 0
 -
 -function =
 -/function = ()
 -
 -formalpara = p
 -
 -graphic = img
 -graphic->fileref = src
 -graphic/ =
 -
 -important = strong
 -
 -informalequation = blockquote
 -
 -informalexample = div
 -
 -inlineequation = em
 -
 -itemizedlist = ul
 -
 -listitem = li
 -
 -literal = code
 -
 -literallayout = span
 -
 -option = " "
 -/option = 
 -
 -orderedlist = ol
 -
 -para = p
 -
 -programlisting = <pre class="listing">
 -/programlisting = </pre>
 -programlisting! = 0
 -
 -refentry = div
 -
 -refnamediv = <div class="ref-title-box">
 -/refnamediv = </div>
 -refnamediv! = 0
 -
 -refname = <h1 class="ref-title">
 -/refname = </h1>
 -
 -refpurpose = <h2 class="ref-purpose">
 -/refpurpose = </h2>
 -
 -refsynopsisdiv = <div class="ref-synopsis">
 -/refsynopsisdiv = </div>
 -refsynopsisdiv! = 0
 -
 -refsect1 = span
 -
 -refsect2 = 
 -/refsect2 = <hr />
 -
 -refsect3 = 
 -/refsect3 = <br />
 -
 -releaseinfo = <div class="release-info">(
 -/releaseinfo = )</div>
 -
 -simpara = 
 -/simpara = <br />
 -simpara! = 0
 -
 -subscript = sub
 -
 -superscript = super
 -
 -table = table
 -
 -table->colsep = rules
 -table->rowsep = rules
 -table->colsep+1|rowsep+1 = all
 -table->colsep+1|rowsep+0 = cols
 -table->colsep+0|rowsep+1 = rows
 -
 -table->frame = frame
 -table->frame+all = border
 -table->frame+none = void
 -table->frame+sides = vsides
 -table->frame+top = above
 -table->frame+topbot = hsides
 -
 -thead = thead
 -
 -tfoot = tfoot
 -
 -tbody = tbody
 -
 -colspec = col
 -
 -tgroup = colgroup
 -tgroup/ = 1
 -tgroup->cols = span
 -
 -row = tr
 -
 -entry = td
 -entry->morerows = colspan
 -entry->morerows+1 = 2
 -entry->morerows+2 = 3
 -entry->morerows+3 = 4
 -entry->morerows+4 = 5
 -entry->morerows+5 = 6
 -entry->morerows+6 = 7
 -entry->morerows+7 = 8
 -entry->morerows+8 = 9
 -entry->morerows+9 = 10
 -entry->morerows+10 = 11
 -;; add more if you need more colspans
 -
 -warning = <span class="warning">
 -/warning = </span>
 -warning! = 0
 -
 -;; now begins the attributes that should be tags in cdata
 -[$attr$id]
 -open = a
 -;close = /a
 -cdata! = true
 -quotevalues = true
 -separator = "="
 -;separateall = true
 -$id = name
 -
 -;; now begins the sections that deal with <title>
 -[refsynopsisdiv_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <h1 class="title">
 -close = </h1>
 -
 -[refsect1_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <h2 class="title">
 -close = </h2>
 -
 -[refsect2_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <h3 class="title">
 -close = </h3>
 -
 -[refsect3_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <h4 class="title">
 -close = </h4>
 -
 -[para_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <div class="title">
 -close = </div>
 -
 -[formalpara_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <div class="title">
 -close = </div>
 -
 -[example_title]
 -;tag_attr = true
 -;attr_name = title
 -;cdata_start = true
 -cdata_end = true
 -open = </td></tr><tr><td><strong>
 -close = </strong>
 -
 -[table_title]
 -;tag_attr = true
 -;attr_name = true
 -cdata_start = true
 -open = <caption>
 -close = </caption>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/__tags.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/__tags.tpl deleted file mode 100644 index 221830c4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/__tags.tpl +++ /dev/null @@ -1,13 +0,0 @@ -<div class="tag-list">
 -    {section name=tag loop=$tags}
 -        {if $tags[tag].keyword != "abstract" &&
 -            $tags[tag].keyword != "access" &&
 -            $tags[tag].keyword != "static" &&
 -	    $tags[tag].keyword != "version"
 -	}
 -
 -            <strong>{$tags[tag].keyword|capitalize}:</strong> 
 -            {$tags[tag].data}<br />
 -        {/if}
 -    {/section}
 -</div>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_declaration.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_declaration.tpl deleted file mode 100644 index d7fe2f82..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_declaration.tpl +++ /dev/null @@ -1,38 +0,0 @@ -<hr size="1" noshade="noshade"/>
 -<div class="class-declaration">
 -    {if count($tags) > 0}
 -        {section name=tag loop=$tags}
 -            {if $tags[tag].keyword == "abstract"}
 -                abstract
 -            {/if}
 -        {/section}
 -    {/if}
 -
 -    {if $is_interface}
 -        interface
 -    {else}
 -        class
 -    {/if}
 -
 -    <strong>{$class_name}</strong>
 -
 -    {if count($class_tree) > 1}
 -        {section name=tree loop=$class_tree.classes}
 -            {if $smarty.section.tree.last}
 -                extends {$class_tree.classes[$smarty.section.tree.index_prev]}
 -            {/if}
 -        {/section}
 -    {/if}
 -
 -    {if $implements}
 -        <br/>
 -        implements
 -        {foreach item="interface" from=$implements}
 -            {if !$smarty.foreach.interface.first}
 -                , {$interface}
 -            {else}
 -                {$interface}
 -            {/if}
 -        {/foreach}
 -    {/if}
 -</div>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_description.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_description.tpl deleted file mode 100644 index 12025c1c..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_description.tpl +++ /dev/null @@ -1,7 +0,0 @@ -<div class="class-description">
 -    <p>{$sdesc}</p>
 -
 -    {if $desc != ""}{$desc}{/if}
 -</div>
 -
 -{include file="_tags.tpl" tags=$tags}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_list.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_list.tpl deleted file mode 100644 index d6a1d398..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_class_list.tpl +++ /dev/null @@ -1 +0,0 @@ -{eval var=$compiledclassindex}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_details.tpl deleted file mode 100644 index bca71e17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_details.tpl +++ /dev/null @@ -1,33 +0,0 @@ -{if $consts}
 -    <hr size="1" noshade="noshade"/>
 -    <a name="constant-details"></a>
 -    <table class="constant-details" cellspacing="1">
 -        <tr>
 -            <th>Constant Details</th>
 -        </tr>
 -        {section name=const loop=$consts}
 -            <tr>
 -                <td>
 -                    <a name="{$consts[const].const_dest}"></a>
 -
 -                    <h3>{$consts[const].const_name}</h3>
 -
 -                    <p>{$consts[const].sdesc}</p>
 -
 -                    {if $consts[const].desc}
 -                        {$consts[const].desc}
 -                    {/if}
 -
 -                    <div class="tag-list">
 -                        <h4 class="tag">Type:</h4>
 -                        <div class="tag-data">{include file="_get_constant_type.tpl" const=$consts[const].const_value}</div>
 -                        <h4 class="tag">Value:</h4>
 -                        <div class="tag-data">{$consts[const].const_value}</div>
 -                    </div>
 -                    {include file="_tags.tpl" tags=$consts[const].tags}
 -                    <p/>
 -                </td>
 -            </tr>
 -        {/section}
 -    </table>
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_summary.tpl deleted file mode 100644 index 8049c4b0..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constant_summary.tpl +++ /dev/null @@ -1,22 +0,0 @@ -{if $consts || $iconsts}
 -    <hr size="1" noshade="noshade"/>
 -    <a name="constant-summary"></a>
 -    <table class="constant-summary" cellspacing="1">
 -        <tr>
 -            <th colspan="3">Constant Summary</th>
 -        </tr>
 -        {section name=const loop=$consts}
 -            <tr>
 -                <td class="type" nowrap="nowrap">{strip}{include file="_get_constant_type.tpl" const=$consts[const].const_value}{/strip}</td>
 -                <td class="name"><a href="{$consts[const].id}">{$consts[const].const_name}</a></td>
 -                <td class="description" width="100%">
 -                    {$consts[const].sdesc}
 -
 -                    {if $consts[const].desc}
 -                        {$consts[const].desc}
 -                    {/if}
 -                </td>
 -            </tr>
 -        {/section}
 -    </table>
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_details.tpl deleted file mode 100644 index ec4fd0a2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_details.tpl +++ /dev/null @@ -1,55 +0,0 @@ -{if $methods}
 -    {section name=method loop=$methods}
 -        {if $methods[method].function_name == "__construct"}
 -            <hr size="1" noshade="noshade"/>
 -            <a name="sec-method"></a>
 -            <table class="method-details" cellspacing="1">
 -                <tr>
 -                    <th colspan="3">Constructor Details</th>
 -                </tr>
 -                <tr>
 -                    <td class="method-data">
 -                        <a name="{$methods[method].method_dest}"></a>
 -
 -                        <h2>{$methods[method].function_name}</h2>
 -
 -                        <table class="method-detail" cellspacing="0">
 -                            <tr>
 -                                <td nowrap="nowrap">{strip}
 -                                    {if $methods[method].access == "protected"}
 -                                        protected 
 -                                    {/if}
 -
 -                                    {if $methods[method].access == "public"}
 -                                        public 
 -                                    {/if}
 -
 -                                    {if $methods[method].abstract == "1"}
 -                                        abstract 
 -                                    {/if}
 -
 -                                    {if $methods[method].static == "1"}
 -                                        static 
 -                                    {/if}
 -
 -                                    <strong>{$methods[method].function_name}</strong>
 -                                {/strip}</td>
 -                                <td nowrap="nowrap">{strip}
 -                                    {$methods[method].ifunction_call.params}
 -                                {/strip}</td>
 -                            </tr>
 -                        </table>
 -
 -                        <p>{$methods[method].sdesc}</p>
 -
 -                        {if $methods[method].desc}
 -                            {$methods[method].desc}
 -                        {/if}
 -
 -                        {include file="_tags.tpl" tags=$methods[method].tags}
 -                    </td>
 -                </tr>
 -            </table>
 -        {/if}
 -    {/section}
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_summary.tpl deleted file mode 100644 index 8819f63e..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_constructor_summary.tpl +++ /dev/null @@ -1,25 +0,0 @@ -{if $methods}
 -    {section name=method loop=$methods}
 -        {if $methods[method].function_name == "__construct"}
 -            <hr size="1" noshade="noshade"/>
 -            <a name="constructor-summary"></a>
 -            <table class="method-summary" cellspacing="1">
 -                <tr>
 -                    <th colspan="2">Constructor Summary</th>
 -                </tr>
 -                <tr>
 -                    <td class="type" nowrap="nowrap" width="1%">{$methods[method].access}</td>
 -                    <td>
 -                        <div class="declaration">
 -                            <a href="{$methods[method].id}">{$methods[method].function_name}</a>
 -                            {$methods[method].ifunction_call.params}
 -                        </div>
 -                        <div class="description">
 -                            {$methods[method].sdesc}
 -                        </div>
 -                    </td>
 -                </tr>
 -            </table>
 -        {/if}
 -    {/section}
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_details.tpl deleted file mode 100644 index 3cb5534a..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_details.tpl +++ /dev/null @@ -1,55 +0,0 @@ -{if $methods}
 -    {section name=method loop=$methods}
 -        {if $methods[method].function_name == "__destruct"}
 -            <hr size="1" noshade="noshade"/>
 -            <a name="sec-method"></a>
 -            <table class="method-details" cellspacing="1">
 -                <tr>
 -                    <th colspan="3">Destructor Details</th>
 -                </tr>
 -                <tr>
 -                    <td class="method-data">
 -                        <a name="{$methods[method].method_dest}"></a>
 -
 -                        <h2>{$methods[method].function_name}</h2>
 -
 -                        <table class="method-detail" cellspacing="0">
 -                            <tr>
 -                                <td nowrap="nowrap">{strip}
 -                                    {if $methods[method].access == "protected"}
 -                                        protected 
 -                                    {/if}
 -
 -                                    {if $methods[method].access == "public"}
 -                                        public 
 -                                    {/if}
 -
 -                                    {if $methods[method].abstract == "1"}
 -                                        abstract 
 -                                    {/if}
 -
 -                                    {if $methods[method].static == "1"}
 -                                        static 
 -                                    {/if}
 -
 -                                    <strong>{$methods[method].function_name}</strong>
 -                                {/strip}</td>
 -                                <td nowrap="nowrap">{strip}
 -                                    {build_argument_list args=$methods[method].ifunction_call.params style="vertical"}
 -                                {/strip}</td>
 -                            </tr>
 -                        </table>
 -
 -                        <p>{$methods[method].sdesc}</p>
 -
 -                        {if $methods[method].desc}
 -                            {$methods[method].desc}
 -                        {/if}
 -
 -                        {include file="_tags.tpl" tags=$methods[method].tags}
 -                    </td>
 -                </tr>
 -            </table>
 -        {/if}
 -    {/section}
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_summary.tpl deleted file mode 100644 index 53e8f1d2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_destructor_summary.tpl +++ /dev/null @@ -1,27 +0,0 @@ -{if $methods}
 -    {section name=method loop=$methods}
 -        {if $methods[method].function_name == "__destruct"}
 -            <hr size="1" noshade="noshade"/>
 -            <a name="desructor-summary"></a>
 -            <table class="method-summary" cellspacing="1">
 -                <tr>
 -                    <th colspan="2">Destructor Summary</th>
 -                </tr>
 -                <tr>
 -                    <td class="type" nowrap="nowrap" width="1%">{strip}
 -                        {$methods[method].access}
 -                    {/strip}</td>
 -                    <td>
 -                        <div class="declaration">{strip}
 -                            <a href="{$methods[method].id}">{$methods[method].function_name}</a>
 -                            {$methods[method].ifunction_call.params}
 -                        {/strip}</div>
 -                        <div class="description">
 -                            {$methods[method].sdesc}
 -                        </div>
 -                    </td>
 -                </tr>
 -            </table>
 -        {/if}
 -    {/section}
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_footer.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_footer.tpl deleted file mode 100644 index 0c2eddc2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_footer.tpl +++ /dev/null @@ -1 +0,0 @@ -</div>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_get_constant_type.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_get_constant_type.tpl deleted file mode 100644 index 48301da4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_get_constant_type.tpl +++ /dev/null @@ -1,10 +0,0 @@ -{if is_numeric(strtolower(trim($const)))}
 -    int
 -{elseif strtolower(trim($const)) == "true" ||
 -        strtolower(trim($const)) == "false"}
 -    bool
 -{elseif strtolower(trim($const)) == "null"}
 -    null
 -{else}
 -    string
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_header.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_header.tpl deleted file mode 100644 index f92571a4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_header.tpl +++ /dev/null @@ -1,4 +0,0 @@ -<div id="bar" nowrap="nowrap">
 -    {include file="_class_list.tpl"}
 -</div>
 -<div id="content1">
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_constants.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_constants.tpl deleted file mode 100644 index 66c37633..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_constants.tpl +++ /dev/null @@ -1,34 +0,0 @@ -{if $iconsts}
 -    {section name=iconst loop=$iconsts}
 -        <table class="inherited-constants" cellspacing="1">
 -            <tr>
 -                <th>Constants Inherited From {$iconsts[iconst].parent_class}</th>
 -            </tr>
 -            <tr>
 -                <td>
 -                    {assign var="_consts" value=""}
 -
 -                    {section name=_const loop=$iconsts[iconst].iconsts}
 -                        {if $_consts != ""},
 -                           {* append var="_consts" value=", "*}
 -                        {/if}
 -			<a href="{$href}">{$iconsts[iconst].iconsts[_const].name}</a>{if !$smarty.section.name.last},{/if}
 -			{*	
 -                        {extract_attribute attribute="href"
 -                                           element=$iconsts[iconst].iconsts[_const].link
 -                                           var="href" append="no"}
 -
 -                        {append var="_consts" value="<a href=\""}
 -                        {append var="_consts" value=$href}
 -                        {append var="_consts" value="\">"}
 -                        {append var="_consts" value=$iconsts[iconst].iconsts[_const].name}
 -                        {append var="_consts" value="</a>"}
 -			*}                    
 -{/section}
 -
 -                    {*$_consts*}
 -                </td>
 -            </tr>
 -        </table>
 -    {/section}
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_methods.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_methods.tpl deleted file mode 100644 index 55aafb17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inherited_methods.tpl +++ /dev/null @@ -1,42 +0,0 @@ -{if $imethods}
 -    {section name=imethod loop=$imethods}
 -        {if count($imethods[imethod].imethods) > 1 ||
 -            ($imethods[imethod].imethods[0].name != "__construct" &&
 -             $imethods[imethod].imethods[0].name != "__destruct" &&
 -             $imethods[imethod].imethods[0].abstract != "1")}
 -            <table class="inherited-methods" cellspacing="1">
 -                <tr>
 -                    <th>Methods Inherited From {$imethods[imethod].parent_class}</th>
 -                </tr>
 -                <tr>
 -                    <td>
 -                        {* assign var="_methods" value="" *}
 -
 -                        {section name=_method loop=$imethods[imethod].imethods}
 -                            {if $imethods[imethod].imethods[_method].name != "__construct" &&
 -                                $imethods[imethod].imethods[_method].abstract != "1"}
 -                                {*
 -				{if $_methods != ""}
 -                                    {append var="_methods" value=", "}
 -                                {/if}
 -				
 -                                {extract_attribute attribute="href"
 -                                                   element=$imethods[imethod].imethods[_method].link
 -                                                   var="href" append="no"}
 -
 -                                {append var="_methods" value="<a href=\""}
 -                                {append var="_methods" value=$href}
 -                                {append var="_methods" value="\">"}
 -                                {append var="_methods" value=$imethods[imethod].imethods[_method].name}
 -                                {append var="_methods" value="</a>"}
 -                            	*}
 -				{$imethods[imethod].imethods[_method].link}{if !$smarty.section._method.last},{/if}
 -				{/if}
 -                        {/section}
 -
 -                    </td>
 -                </tr>
 -            </table>
 -        {/if}
 -    {/section}
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inheritence_tree.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inheritence_tree.tpl deleted file mode 100644 index 471c7972..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_inheritence_tree.tpl +++ /dev/null @@ -1,3 +0,0 @@ -<div class="inheritence-tree">
 -    <pre>{section name=tree loop=$class_tree.classes}{if $smarty.section.tree.last}<strong>{$class_tree.classes[tree]}</strong>{else}{$class_tree.classes[tree]}{/if}{$class_tree.distance[tree]}{/section}</pre>
 -</div>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_details.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_details.tpl deleted file mode 100644 index b5ddfb10..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_details.tpl +++ /dev/null @@ -1,101 +0,0 @@ -{if $methods && (count($methods) > 1 ||
 -   ($methods[0].function_name != "__construct" &&
 -    $methods[0].function_name != "__destruct"))}
 -
 -    <hr size="1" noshade="noshade"/>
 -    <a name="method-details"></a>
 -    <table class="method-details" cellspacing="1">
 -        <tr>
 -            <th>Method Details</th>
 -        </tr>
 -        {section name=method loop=$methods}
 -            {if $methods[method].function_name != "__construct" &&
 -                $methods[method].function_name != "__destruct"}
 -
 -                <tr>
 -                    <td class="method-data">
 -
 -                        <a name="{$methods[method].method_dest}"></a>
 -
 -                        <h2>{$methods[method].function_name}</h2>
 -
 -                        <table class="method-detail" cellspacing="0">
 -                            <tr>
 -                                <td nowrap="nowrap">{strip}
 -                                    {if $methods[method].access == "protected"}
 -                                        protected 
 -                                    {/if}
 -
 -                                    {if $methods[method].access == "public"}
 -                                        public 
 -                                    {/if}
 -
 -                                    {if $methods[method].abstract == 1}
 -                                        abstract 
 -                                    {/if}
 -
 -                                    {if $methods[method].static == 1}
 -                                        static 
 -                                    {/if}
 -
 -                                    {$methods[method].function_return} 
 -
 -
 -                                    <strong>{$methods[method].function_name}</strong>
 -                                {/strip}</td>
 -                                <td width="100%">{strip}
 -                         (
 -                        {if $methods[method].ifunction_call.params}
 -                            {foreach item=param name="method" from=$methods[method].ifunction_call.params}
 -                                {$param.type} {$param.name} {if !$smarty.foreach.method.last}, {/if}
 -                            {/foreach}
 -
 -                        {/if}
 -                        )
 -				{/strip}</td>
 -                            </tr>
 -                        </table>
 -
 -                        <p>{$methods[method].sdesc}</p>
 -
 -                        {if $methods[method].desc}
 -                            {$methods[method].desc}
 -                        {/if}
 -			{* $methods[method]|print_r *}	
 -			<div class="tag-list"><table class="method-summary" cellspacing="1">
 -			{if $methods[method].ifunction_call.params}
 -				<tr><th colspan="3" class="small">Input</th></tr>
 -                            {foreach item=param name="method" from=$methods[method].ifunction_call.params}
 -                                <tr><td valign="top">{$param.type}</td><td valign="top"><strong>{$param.name}</strong><td valign="top">{$param.description}</td></tr>
 -                            {/foreach}
 -                        {/if}
 -			{if $methods[method].tags}
 -				<tr><th colspan="3" class="small">Output</th></tr>
 -			    
 -                            {foreach item=param name="method" from=$methods[method].tags}
 -				{if $param.keyword == "return"}
 -                                <tr><td valign="top">
 -                                    {$methods[method].function_return}
 -				</td><td valign="top" colspan="2">{$param.data}</td></tr>
 -                            	{/if}
 -			    {/foreach}
 -                        {/if}
 - 			{if $methods[method].tags}
 -				<tr><th colspan="3" class="small">Exception</th></tr>
 -			    
 -                            {foreach item=param name="method" from=$methods[method].tags}
 -				{if $param.keyword == "throws"}
 -                                <tr><td valign="top">{$param.keyword}</td><td valign="top" colspan="2">{$param.data}</td></tr>
 -                            	{/if}
 -			    {/foreach}
 -                        {/if}
 -			</table></div>
 -                                              
 - {* include file="_tags.tpl" tags=$methods[method].tags *}
 -                        <p/>
 -                    </td>
 -                </tr>
 -            {/if}
 -        {/section}
 -    </table>
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_summary.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_summary.tpl deleted file mode 100644 index 8fefd671..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_method_summary.tpl +++ /dev/null @@ -1,61 +0,0 @@ -{if $methods || $imethods}
 -    <hr size="1" noshade="noshade"/>
 -    <a name="method-summary"></a>
 -    <table class="method-summary" cellspacing="1">
 -        <tr>
 -            <th colspan="2">Method Summary</th>
 -        </tr>
 -        {section name=method loop=$methods}
 -            {if $methods[method].function_name != "__construct" &&
 -                $methods[method].function_name != "__destruct"}
 -                {*
 -		{if trim(substr($methods[method].function_call, 0, 1)) == "&"}
 -                    {assign var="ref" value="true"}
 -                    {assign var="css" value=" class=\"reference\""}
 -                {else}
 -                    {assign var="ref" value="false"}
 -                    {assign var="css" value=""}
 -                {/if}
 -		*}
 -                <tr>
 -                    <td class="type" nowrap="nowrap" width="1%">
 -                        {if $methods[method].access == "protected"}
 -                            protected 
 -                        {/if}
 -
 -                        {if $methods[method].abstract == 1}
 -                            abstract 
 -                        {/if}
 -
 -                        {if $methods[method].static == 1}
 -                            static 
 -                        {/if}
 -
 -                        {$methods[method].function_return}
 -{*
 -                        {if $ref == "true"}
 -                             &
 -                        {/if}
 -*}
 -                    </td>
 -                    <td>
 -                        <div class="declaration">
 -                            <a href="{$methods[method].id}">{$methods[method].function_name}</a>
 -						({strip}
 -						{if $methods[method].ifunction_call.params}
 -							{foreach item=param name="method" from=$methods[method].ifunction_call.params}	
 -								{$param.type} {$param.name}{if !$smarty.foreach.method.last}, {/if}
 -							{/foreach}
 -                        	    
 -						{/if}
 -						{/strip})
 -						</div>
 -                        <div class="description">
 -                            {$methods[method].sdesc}
 -                        </div>
 -                    </td>
 -                </tr>
 -            {/if}
 -        {/section}
 -    </table>
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_sub_classes.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_sub_classes.tpl deleted file mode 100644 index e605b314..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_sub_classes.tpl +++ /dev/null @@ -1,19 +0,0 @@ -{if $children}
 -    <div class="sub-classes">
 -        {if $is_interface}
 -            <h4>Direct Known Sub-interfaces:</h4>
 -        {else}
 -            <h4>Direct Known Sub-classes:</h4>
 -        {/if}
 -
 -        <div><small>
 -        {section name=child loop=$children}
 -            {if !$smarty.section.child.first}
 -                , {$children[child].link}
 -            {else}
 -                {$children[child].link}
 -            {/if}
 -        {/section}
 -        </small></div>
 -    </div>
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_tags.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_tags.tpl deleted file mode 100644 index 221830c4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/_tags.tpl +++ /dev/null @@ -1,13 +0,0 @@ -<div class="tag-list">
 -    {section name=tag loop=$tags}
 -        {if $tags[tag].keyword != "abstract" &&
 -            $tags[tag].keyword != "access" &&
 -            $tags[tag].keyword != "static" &&
 -	    $tags[tag].keyword != "version"
 -	}
 -
 -            <strong>{$tags[tag].keyword|capitalize}:</strong> 
 -            {$tags[tag].data}<br />
 -        {/if}
 -    {/section}
 -</div>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/basicindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/basicindex.tpl deleted file mode 100644 index 37e94343..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/basicindex.tpl +++ /dev/null @@ -1,18 +0,0 @@ -{section name=letter loop=$letters}
 -	[ <a href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a> ]
 -{/section}
 -
 -{section name=index loop=$index}
 -  <hr />
 -	<a name="{$index[index].letter}"></a>
 -	<div>
 -		<h2>{$index[index].letter}</h2>
 -		<dl>
 -			{section name=contents loop=$index[index].index}
 -				<dt><b>{$index[index].index[contents].name}</b></dt>
 -				<dd>{$index[index].index[contents].listing}</dd>
 -			{/section}
 -		</dl>
 -	</div>
 -	<a href="{$indexname}.html#top">top</a><br>
 -{/section}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/blank.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/blank.tpl deleted file mode 100644 index b503c142..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/blank.tpl +++ /dev/null @@ -1,5 +0,0 @@ -<div align="center"><h1>{$maintitle}</h1></div>
 -<b>Welcome to {$package}!</b><br />
 -<br />
 -This documentation was generated by <a href="{$phpdocwebsite}">phpDocumentor v{$phpdocversion}</a><br />
 -
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/class.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/class.tpl deleted file mode 100644 index e791bbba..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/class.tpl +++ /dev/null @@ -1,29 +0,0 @@ -{include file="header.tpl" eltype="class" hasel=true contents=$classcontents}
 -
 -<h1>{if $is_interface}Interface{else}Class{/if} {$class_name}</h1>
 -
 -{*inheritence tree*}
 -<div class="inheritence-tree">
 -    <pre>{section name=tree loop=$class_tree.classes}{if $smarty.section.tree.last}<strong>{$class_tree.classes[tree]}</strong>{else}{$class_tree.classes[tree]}{/if}{$class_tree.distance[tree]}{/section}</pre>
 -</div>
 -
 -{include file="_sub_classes.tpl"}
 -{include file="_class_description.tpl"}
 -{include file="_inherited_constants.tpl"}
 -
 -{include file="_constructor_summary.tpl"}
 -{* include file="_destructor_summary.tpl" *}
 -
 -{include file="_method_summary.tpl"}
 -
 -{include file="_inherited_methods.tpl"}
 -{include file="_constant_summary.tpl"}
 -{include file="_constructor_details.tpl"}
 -
 -{* include file="_destructor_details.tpl" *}
 -
 -{include file="_method_details.tpl"}
 -
 -{include file="_constant_details.tpl"}
 -
 -{include file="footer.tpl"}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classleft.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classleft.tpl deleted file mode 100644 index c07fc33a..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classleft.tpl +++ /dev/null @@ -1,9 +0,0 @@ -{foreach key=subpackage item=files from=$classleftindex}
 -  <div class="package">
 -	{if $subpackage != ""}{$subpackage}<br />{/if}
 -	{section name=files loop=$files}
 -    {if $subpackage != ""}  {/if}
 -		{if $files[files].link != ''}<a href="{$files[files].link}">{/if}{$files[files].title}{if $files[files].link != ''}</a>{/if}<br />
 -	{/section}
 -  </div>
 -{/foreach}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classtrees.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classtrees.tpl deleted file mode 100644 index 4020e3a8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/classtrees.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{include file="header.tpl" noleftindex=true}
 -<h1>{$title}</h1>
 -{section name=classtrees loop=$classtrees}
 -<hr />
 -<div class="classtree">Root class {$classtrees[classtrees].class}</div><br>
 -{$classtrees[classtrees].class_tree}
 -{/section}
 -{include file="footer.tpl"}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/const.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/const.tpl deleted file mode 100644 index 88856c4b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/const.tpl +++ /dev/null @@ -1,14 +0,0 @@ -{section name=consts loop=$consts}
 -{if $show == 'summary'}
 -	var {$consts[consts].const_name}, {$consts[consts].sdesc}<br>
 -{else}
 -	<a name="{$consts[consts].const_dest}"></a>
 -	<p></p>
 -	<h4>{$consts[consts].const_name} = <span class="value">{$consts[consts].const_value|replace:"\n":"<br>\n"|replace:" ":" "|replace:"\t":"   "}</span></h4>
 -	<p>[line {if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}]</p>
 -  {include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}
 -
 -  <br />
 -	<div class="top">[ <a href="#top">Top</a> ]</div><br />
 -{/if}
 -{/section}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/define.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/define.tpl deleted file mode 100644 index 04ce5b48..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/define.tpl +++ /dev/null @@ -1,32 +0,0 @@ -{if count($defines) > 0}
 -{section name=def loop=$defines}
 -{if $show == 'summary'}
 -define constant <a href="{$defines[def].id}">{$defines[def].define_name}</a> = {$defines[def].define_value}, {$defines[def].sdesc}<br>
 -{else}
 -  <hr />
 -	<a name="{$defines[def].define_link}"></a>
 -	<h3>{$defines[def].define_name} <span class="smalllinenumber">[line {if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}]</span></h3>
 -	<div class="tags">
 -    <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border">
 -    <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code">
 -		<code>{$defines[def].define_name} = {$defines[def].define_value}</code>
 -    </td></tr></table>
 -    </td></tr></table>
 -
 -    {include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
 -    <br />
 -	{if $defines[def].define_conflicts.conflict_type}
 -	<p><b>Conflicts with defines:</b> 
 -	{section name=me loop=$defines[def].define_conflicts.conflicts}
 -	{$defines[def].define_conflicts.conflicts[me]}<br />
 -	{/section}
 -	</p>
 -	{/if}
 -{* original    {if $defines[def].define_conflicts != ""
 -		<b>Conflicts:</b> {$defines[def].define_conflicts<br /><br />
 -    {/if *}
 -	</div>
 -	<div class="top">[ <a href="#top">Top</a> ]</div><br /><br />
 -{/if}
 -{/section}
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/docblock.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/docblock.tpl deleted file mode 100644 index 09a603f8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/docblock.tpl +++ /dev/null @@ -1,15 +0,0 @@ -{if $sdesc != ''}{$sdesc|default:''}<br /><br />{/if}
 -{if $desc != ''}{$desc|default:''}<br />{/if}
 -{if count($tags) > 0}
 -<br /><br />
 -<h4>Tags:</h4>
 -<div class="tags">
 -<table border="0" cellspacing="0" cellpadding="0">
 -{section name=tag loop=$tags}
 -  <tr>
 -    <td><b>{$tags[tag].keyword}:</b>  </td><td>{$tags[tag].data}</td>
 -  </tr>
 -{/section}
 -</table>
 -</div>
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/elementindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/elementindex.tpl deleted file mode 100644 index 175a5136..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/elementindex.tpl +++ /dev/null @@ -1,5 +0,0 @@ -{include file="header.tpl" noleftindex=true}
 -<a name="top"></a>
 -<h1>Index of all elements</h1>
 -{include file="basicindex.tpl" indexname="elementindex"}
 -{include file="footer.tpl"}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/errors.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/errors.tpl deleted file mode 100644 index 1576a822..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/errors.tpl +++ /dev/null @@ -1,21 +0,0 @@ -{include file="header.tpl" noleftindex=true}
 -{section name=files loop=$files}
 -<a href="#{$files[files].file}">{$files[files].file}</a><br>
 -{/section}
 -{foreach key=file item=issues from=$all}
 -<a name="{$file}"></a>
 -<h1>{$file}</h1>
 -{if count($issues.warnings)}
 -<h2>Warnings:</h2><br>
 -{section name=warnings loop=$issues.warnings}
 -<b>{$issues.warnings[warnings].name}</b> - {$issues.warnings[warnings].listing}<br>
 -{/section}
 -{/if}
 -{if count($issues.errors)}
 -<h2>Errors:</h2><br>
 -{section name=errors loop=$issues.errors}
 -<b>{$issues.errors[errors].name}</b> - {$issues.errors[errors].listing}<br>
 -{/section}
 -{/if}
 -{/foreach}
 -{include file="footer.tpl"}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/examplesource.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/examplesource.tpl deleted file mode 100644 index fb85654b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/examplesource.tpl +++ /dev/null @@ -1,6 +0,0 @@ -{include file="header.tpl" title=$title}
 -<h1 align="center">{$title}</h1>
 -<div class="php">
 -{$source}
 -</div>
 -{include file="footer.tpl"}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/fileleft.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/fileleft.tpl deleted file mode 100644 index 50f108d7..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/fileleft.tpl +++ /dev/null @@ -1,10 +0,0 @@ -{foreach key=subpackage item=files from=$fileleftindex}
 -	{if $subpackage != ""}subpackage <b>{$subpackage}</b><br>{/if}
 -  <div class="package">
 -	{section name=files loop=$files}
 -		{if $files[files].link != ''}<a href="{$files[files].link}">{/if}
 -		{$files[files].title}
 -		{if $files[files].link != ''}</a>{/if}<br>
 -	{/section}
 -  </div><br />
 -{/foreach}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/filesource.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/filesource.tpl deleted file mode 100644 index b23076a0..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/filesource.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{capture name="tutle"}File Source for {$name}{/capture}
 -{include file="header.tpl" title=$smarty.capture.tutle}
 -<h1 align="center">Source for file {$name}</h1>
 -<p>Documentation is available at {$docs}</p>
 -<div class="php">
 -{$source}
 -</div>
 -{include file="footer.tpl"}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/footer.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/footer.tpl deleted file mode 100644 index 68135cd6..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/footer.tpl +++ /dev/null @@ -1,25 +0,0 @@ -      <!-- content end --></td></tr></table>
 -    </td>
 -  </tr>
 -</table>
 -
 -</div><!-- main -->
 -
 -<div id="footer">
 -  <a href="/tos/">Terms of Service</a> |
 -  <a href="/support/">Contact Us</a>
 -  <br/>
 -  Copyright © 2006-2007 by the PRADO Group.<br/>
 -  <a title="Powered by PRADO" href="http://www.pradosoft.com/"><img src="http://www.pradosoft.com/images/powered2.gif" style="border-width:0px;" alt="Powered by PRADO" /></a>
 -</div>
 -
 -</div><!-- page -->
 -<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
 -</script>
 -<script type="text/javascript">
 -_uacct = "UA-186303-3";
 -urchinTracker();
 -</script>
 -
 -</body>
 -</html>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/function.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/function.tpl deleted file mode 100644 index 098aeb17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/function.tpl +++ /dev/null @@ -1,48 +0,0 @@ -{section name=func loop=$functions}
 -{if $show == 'summary'}
 -function {$functions[func].id}, {$functions[func].sdesc}<br />
 -{else}
 -  <hr />
 -	<a name="{$functions[func].function_dest}"></a>
 -	<h3>{$functions[func].function_name} <span class="smalllinenumber">[line {if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}]</span></h3>
 -	<div class="function">
 -    <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border">
 -    <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code">
 -		<code>{$functions[func].function_return} {if $functions[func].ifunction_call.returnsref}&{/if}{$functions[func].function_name}(
 -{if count($functions[func].ifunction_call.params)}
 -{section name=params loop=$functions[func].ifunction_call.params}
 -{if $smarty.section.params.iteration != 1}, {/if}{if $functions[func].ifunction_call.params[params].default != ''}[{/if}{$functions[func].ifunction_call.params[params].type} {$functions[func].ifunction_call.params[params].name}{if $functions[func].ifunction_call.params[params].default != ''} = {$functions[func].ifunction_call.params[params].default|escape:"html"}]{/if}
 -{/section}
 -{/if})</code>
 -    </td></tr></table>
 -    </td></tr></table><br />
 -
 -		{include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags}
 -    <br /><br />
 -	{if $functions[func].function_conflicts.conflict_type}
 -	<p><b>Conflicts with functions:</b> 
 -	{section name=me loop=$functions[func].function_conflicts.conflicts}
 -	{$functions[func].function_conflicts.conflicts[me]}<br />
 -	{/section}
 -	</p>
 -	{/if}
 -{* original    {if $functions[func].function_conflicts != ""
 -		<b>Conflicts:</b> {$functions[func].function_conflicts<br /><br />
 -    {/if *}
 -
 -    {if count($functions[func].params) > 0}
 -		<h4>Parameters</h4>
 -    <table border="0" cellspacing="0" cellpadding="0">
 -		{section name=params loop=$functions[func].params}
 -      <tr>
 -        <td class="type">{$functions[func].params[params].datatype}  </td>
 -        <td><b>{$functions[func].params[params].var}</b>  </td>
 -        <td>{$functions[func].params[params].data}</td>
 -      </tr>
 -		{/section}
 -		</table>
 -    {/if}
 -	<div class="top">[ <a href="#top">Top</a> ]</div><br /><br />
 -	</div>
 -{/if}
 -{/section}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/global.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/global.tpl deleted file mode 100644 index 1053f748..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/global.tpl +++ /dev/null @@ -1,40 +0,0 @@ -{if count($globals) > 0}
 -{section name=glob loop=$globals}
 -{if $show == 'summary'}
 -global variable <a href="{$globals[glob].id}">{$globals[glob].global_name}</a> = {$globals[glob].global_value}, {$globals[glob].sdesc}<br>
 -{else}
 -  <hr />
 -	<a name="{$globals[glob].global_link}"></a>
 -	<h4><i>{$globals[glob].global_type}</i> {$globals[glob].global_name} <span class="smalllinenumber">[line {if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}]</span></h4>
 -	<div class="tags">
 -  {if $globals[glob].sdesc != ""}
 -	{include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
 -  {/if}
 -
 -  <table border="0" cellspacing="0" cellpadding="0">
 -    <tr>
 -      <td><b>Default value:</b>  </td>
 -      <td>{$globals[glob].global_value|replace:" ":" "|replace:"\n":"<br />\n"|replace:"\t":"   "}</td>
 -    </tr>
 -	{if $globals[glob].global_conflicts.conflict_type}
 -	<tr>
 -	  <td><b>Conflicts with globals:</b>  </td>
 -	  <td>
 -	{section name=me loop=$globals[glob].global_conflicts.conflicts}
 -	{$globals[glob].global_conflicts.conflicts[me]}<br />
 -	{/section}
 -	  </td>
 -	</tr>
 -	{/if}
 -{* original    {if $globals[glob].global_conflicts != ""
 -    <tr>
 -      <td><b>Conflicts:</b>  </td>
 -      <td>{$globals[glob].global_conflicts</td>
 -    </tr>
 -    {/if *}
 -  </table>
 -	</div><br /><br />
 -	<div class="top">[ <a href="#top">Top</a> ]</div><br /><br />
 -{/if}
 -{/section}
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/header.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/header.tpl deleted file mode 100644 index 659168cf..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/header.tpl +++ /dev/null @@ -1,113 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > -	<head> -		<title>PRADO API Manual: {$title}</title> -		<meta http-equiv="Expires" content="Fri, Jan 01 1900 00:00:00 GMT"/> -		<meta http-equiv="Pragma" content="no-cache"/> -		<meta http-equiv="Cache-Control" content="no-cache"/> -		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> -		<meta http-equiv="content-language" content="en"/> -		<meta name="Keywords" content="PRADO PHP framework component template delphi asp.net event property OOP PHP5 object oriented programming Web programming development" /> -		<meta name="Description" content="PRADO is a component-based and event-driven framework for Web application development in PHP 5." /> -		<meta name="Author" content="Qiang Xue" /> -		<meta name="Subject" content="Web programming, PHP framework" /> -		<meta name="Language" content="en" /> -		<link rel="Shortcut Icon" href="/favicon.ico" /> -		<link rel="stylesheet" type="text/css" href="/css/style.css" /> -		<link rel="stylesheet" type="text/css" href="/css/manual.css" /> -	</head> -	<body> -		<div id="page"> -			<div id="header"> -				<div id="logo"><img src="/css/pradoheader.gif" alt="PRADO Component Framework for PHP 5" /></div> -				<div id="mainmenu"> -					<ul> -						<li><a href="/">Home</a></li> -						<li><a href="/about/" >About</a></li> -						<li><a href="/testimonials/" >Testimonials</a></li> -						<li><a href="/demos/" >Demos</a></li> -						<li><a href="/download/" >Download</a></li> -						<li><a href="/documentation/" class="active">Documentation</a></li> -						<li><a href="/forum/" >Forum</a></li> -						<li><a href="http://code.google.com/p/prado3/updates/list">Development</a></li> -					</ul> -				</div><!-- mainmenu --> -			</div><!-- header --> -			<div id="main"> -				<div id="navbar"> -					<ul> -						<li><a href="/tutorials/">Tutorials</a></li> -						<li><a href="/docs/classdoc/">Class Docs</a></li> -						<li><a href="/docs/manual/" class="active">API Manual</a></li> -						<li><a href="/wiki/">Wiki</a></li> -					</ul> -				</div> -				<table width="100%" border="0" cellpadding="0" cellspacing="0"> -					<tr valign="top"> -						<td width="200" id="infobar"> -{if count($ric) >= 1} -							<div id="ric"> -{section name=ric loop=$ric} -								<p><a href="{$subdir}{$ric[ric].file}">{$ric[ric].name}</a></p> -{/section} -							</div> -{/if} -							<b>Packages:</b><br /> -{section name=packagelist loop=$packageindex} -							<a href="{$subdir}{$packageindex[packagelist].link}">{$packageindex[packagelist].title}</a><br /> -{/section} -							<br /><br /> -{if $tutorials} -							<b>Tutorials/Manuals:</b><br /> -{if $tutorials.pkg} -							<strong>Package-level:</strong> -{section name=ext loop=$tutorials.pkg} -							{$tutorials.pkg[ext]} -{/section} -{/if} -{if $tutorials.cls} -							<strong>Class-level:</strong> -{section name=ext loop=$tutorials.cls} -							{$tutorials.cls[ext]} -{/section} -{/if} -{if $tutorials.proc} -							<strong>Procedural-level:</strong> -{section name=ext loop=$tutorials.proc} -							{$tutorials.proc[ext]} -{/section} -{/if} -{/if} -{if !$noleftindex}{assign var="noleftindex" value=false}{/if} -{if !$noleftindex} -{* -{if $compiledfileindex} -							<b>Files:</b><br /> -							{eval var=$compiledfileindex} -{/if} -*} -{if $compiledclassindex} -							<b>Classes:</b><br /> -							{eval var=$compiledclassindex} -{/if} -{/if} -						</td> -						<td> -							<table cellpadding="10" cellspacing="0" width="100%" border="0"> -								<tr> -									<td valign="top" align="center"> -										<form type="get" action="/docs/manual/search.php"> -											Keyword <input type="text" name="keyword" size="50" /> -											<input type="submit" value="Search" /> -										</form> -									</td> -								</tr> -								<tr> -									<td valign="top"><!-- content begin --> -{* -{if !$hasel}{assign var="hasel" value=false}{/if} -{if $hasel} -										<h1>{$eltype|capitalize}: {$class_name}</h1> -										Source Location: {$source_location}<br /><br /> -{/if} -*} diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/include.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/include.tpl deleted file mode 100644 index cff067db..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/include.tpl +++ /dev/null @@ -1,9 +0,0 @@ -{if count($includes) > 0}
 -<h4>Includes:</h4>
 -<div class="tags">
 -{section name=includes loop=$includes}
 -{$includes[includes].include_name}({$includes[includes].include_value}) [line {if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}]<br />
 -{include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
 -{/section}
 -</div>
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/index.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/index.tpl deleted file mode 100644 index 60c74b47..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/index.tpl +++ /dev/null @@ -1,7 +0,0 @@ -{include file="header.tpl"}
 -{if $contents}
 -{$contents}
 -{else}
 -{include file="blank.tpl"}
 -{/if}
 -{include file="footer.tpl"}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/background.png b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/background.png Binary files differdeleted file mode 100644 index d6f36f60..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/background.png +++ /dev/null diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/bg_left.png b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/bg_left.png Binary files differdeleted file mode 100644 index 19fdf05d..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/bg_left.png +++ /dev/null diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/empty.png b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/empty.png Binary files differdeleted file mode 100644 index a9f29bb1..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/empty.png +++ /dev/null diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/manual.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/manual.css deleted file mode 100644 index 8aaa937d..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/manual.css +++ /dev/null @@ -1,260 +0,0 @@ -/* thanks to symfony for a great base template for phpdoc  */
 -/* symfony-project.com */
 -
 -#page
 -{
 -	width: 99%;
 -}
 -
 -div.credit
 -{
 -    font-size: 10px;
 -    color: #888;
 -}
 -
 -.inherited-methods
 -{
 -  background-color: #ddd;
 -  font-size:        1.0em;
 -  margin-top:       10px;
 -  width:            100%;
 -}
 -
 -.inherited-methods td
 -{
 -  background-color: #FFFFFF;
 -  font-family:      "courier new", courier;
 -  font-size:        1.1em;
 -  padding:          5px;
 -}
 -
 -.inherited-methods th
 -{
 -  background-color: #F0F0F0;
 -  font-weight:      bold;
 -  padding:          5px;
 -  text-align:       left;
 -}
 -
 -.method-detail
 -{
 -  font-size: 1.0em;
 -}
 -
 -.method-detail a
 -{
 -  font-weight: bold;
 -}
 -
 -.method-detail td
 -{
 -  font-family:    "courier new", courier;
 -  font-size:      1.1em;
 -  padding-top:    10px;
 -  vertical-align: top;
 -}
 -
 -.method-details
 -{
 -  background-color: #ddd;
 -  font-size:        1.0em;
 -  width:            100%;
 -}
 -
 -.method-details td
 -{
 -  background-color: #FFFFFF;
 -}
 -
 -.method-details td.method-data
 -{
 -  padding: 5px;
 -}
 -
 -.method-details h2
 -{
 -  color: #750000;
 -}
 -
 -.method-details th
 -{
 -  background-color: #F0F0F0;
 -  font-weight:      bold;
 -  font-size:        1.2em;
 -  padding:          5px;
 -  text-align:       left;
 -}
 -
 -.method-summary
 -{
 -  background-color: #aaa;
 -  font-size:        1.0em;
 -  width:            100%;
 -}
 -
 -.method-summary td
 -{
 -  background-color: #FFFFFF;
 -  padding:          5px;
 -}
 -
 -.method-summary td a
 -{
 -  font-weight: bold;
 -}
 -
 -.method-summary td.type
 -{
 -  font-family:    "courier new", courier;
 -  font-size:      1.0em;
 -  text-align:     right;
 -  vertical-align: top;
 -}
 -
 -.method-summary div.declaration
 -{
 -  font-family: "courier new", courier;
 -  font-size:   1.1em;
 -}
 -
 -.method-summary th
 -{
 -  background-color: #F0F0F0;
 -  font-weight:      bold;
 -  font-size:        1.2em;
 -  padding:          5px;
 -  text-align:       left;
 -}
 -
 -.method-summary th.small
 -{
 -	font-size:  1.0em;
 -}
 -
 -.method-summary tr.reference td {
 -    background-color: #FFEDED;
 -}
 -
 -
 -.constant-details
 -{
 -  background-color: #ddd;
 -  font-size:        1.0em;
 -  width:            100%;
 -}
 -
 -.constant-details h3
 -{
 -  color: #750000;
 -}
 -
 -.constant-details td
 -{
 -  background-color: #FFFFFF;
 -  padding:          5px;
 -}
 -
 -.constant-details th
 -{
 -  background-color: #F0F0F0;
 -  font-weight:      bold;
 -  font-size:        1.2em;
 -  padding:          5px;
 -  text-align:       left;
 -}
 -
 -.constant-summary
 -{
 -  background-color: #ddd;
 -  font-size:        1.0em;
 -  width:            100%;
 -}
 -
 -.constant-summary td
 -{
 -  background-color: #FFFFFF;
 -  padding:          5px;
 -}
 -
 -.constant-summary td.name a
 -{
 -  font-family: "courier new", courier;
 -  font-size:   1.0em;
 -  font-weight: bold;
 -}
 -
 -.constant-summary td.type
 -{
 -  font-family: "courier new", courier;
 -  font-size:   1.0em;
 -}
 -
 -.constant-summary th
 -{
 -  background-color: #F0F0F0;
 -  font-weight:      bold;
 -  font-size:        1.2em;
 -  padding:          5px;
 -  text-align:       left;
 -}
 -
 -.inherited-constants
 -{
 -  background-color: #eee;
 -  font-size:        1.0em;
 -  margin-top:       10px;
 -  width:            100%;
 -}
 -
 -.inherited-constants td
 -{
 -  background-color: #FFFFFF;
 -  font-family:      "courier new", courier;
 -  font-size:        1.1em;
 -  padding:          5px;
 -}
 -
 -.inherited-constants th
 -{
 -  background-color: #F0F0F0;
 -  font-weight:      bold;
 -  padding:          5px;
 -  text-align:       left;
 -}
 -
 -.class-declaration
 -{
 -  font-family: "courier new", courier;
 -  font-size:   1.1em;
 -}
 -
 -.class-description
 -{
 -  background-color: #F0F0F0;
 -  margin-top:       10px;
 -  padding:          1px 8px 1px 8px;
 -  margin-bottom:    5px;
 -}
 -
 -.inheritence-tree pre
 -{
 -  margin-bottom: 0;
 -}
 -
 -.sub-classes h4
 -{
 -  margin: 10px 0 0 0;
 -}
 -
 -.sub-classes div
 -{
 -  font-family: "courier new", courier;
 -  font-size:   1.1em;
 -  margin:      5px 0 0 40px;
 -}
 -
 -.sub-classes div small
 -{
 -  font-size: 1.0em;
 -}
 -
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/style.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/style.css deleted file mode 100644 index 918d43e4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/style.css +++ /dev/null @@ -1,598 +0,0 @@ -/**
 - * PradoSoft profile by Carl G. Mathisen and Stefan A. Petrov
 - * http://decart.no
 - */
 -
 -body
 -{
 -    text-align: center;
 -}
 -
 -body, div, span, p, input
 -{
 -    font-family: Verdana, sans-serif, Arial;
 -    font-size: 10pt;
 -    color: #333333;
 -}
 -
 -h1, h2, h3, h4
 -{
 -	font-family: Verdana, Helvetica, Arial, Lucida Grande, Trebuchet MS;
 -    padding: 0px;
 -    margin: 0px;
 -	margin-bottom: 10px;
 -    color: #821B18;
 -    font-weight: normal;
 -}
 -
 -h2
 -{
 -	font-size: 18px;
 -}
 -
 -h3
 -{
 -	font-size: 16px;
 -}
 -
 -div
 -{
 -    text-align: left;
 -}
 -
 -.instructions
 -{
 -	background-color: #EEEEEE;
 -}
 -
 -img
 -{
 -	border: none;
 -}
 -
 -a
 -{
 -    color: #CD2C27;
 -    text-decoration: none;
 -}
 -
 -a:hover
 -{
 -    color: #821B18;
 -    text-decoration: underline;
 -}
 -
 -#page
 -{
 -    margin: 0 auto;
 -    padding: 0;
 -    position: relative;
 -}
 -
 -#header
 -{
 -    position: relative;
 -    height: 98px;
 -}
 -
 -#logo
 -{
 -    height: 99px;
 -}
 -
 -/* main page */
 -
 -div.intro
 -{
 -    height: 190px;
 -    background-image: url('bigmantis.jpg');
 -    background-repeat: no-repeat;
 -    background-position: top right;
 -    background-color: #fff;
 -}
 -
 -div.statements
 -{
 -    height: 135px;
 -    background-image: url('statementsbg.gif');
 -    background-repeat: repeat-x;
 -    position: relative;
 -    border-bottom : 1px solid #EEE;
 -}
 -
 -div.statements div
 -{
 -    position: absolute;
 -    width: 250px;
 -    top: 20px;
 -}
 -
 -div.statements div p
 -{
 -    font-size: 13px;
 -    color: #818181;
 -}
 -
 -div.statements div.whatis
 -{
 -    left: 20px;
 -}
 -
 -div.statements div.whatreq
 -{
 -    left: 290px;
 -}
 -
 -div.statements div.cani
 -{
 -    left: 600px;
 -    width: 210px;
 -}
 -
 -/* navbar */
 -#navbar
 -{
 -    border-bottom: 2px solid #E9EEEF;
 -    height: 30px;
 -    margin-bottom: 20px;
 -}
 -
 -#navbar ul
 -{
 -    margin-left: 0;
 -    padding-left: 0;
 -    display: inline;
 -}
 -
 -#navbar ul li
 -{
 -    margin-left: 0px;
 -    list-style: none;
 -    display: inline;
 -}
 -
 -#navbar ul li a
 -{
 -    display: block;
 -    float: left;
 -    font-size: 14px;
 -    font-weight: bold;
 -    padding-right: 14px;
 -    padding-top: 5px;
 -    color: #CD2B26;
 -    text-decoration: none;
 -    height: 29px;
 -}
 -
 -#navbar ul li a.active, #navbar ul li a.hover
 -{
 -    color: #821B18;
 -}
 -
 -/* infobar */
 -div#infobar
 -{
 -    float: right;
 -    width: 200px;
 -    padding-left: 20px;
 -    border-left: 2px solid #E9EEEF;
 -}
 -
 -div#infobar div
 -{
 -    margin-bottom: 20px;
 -}
 -
 -div#infobar div#featured img
 -{
 -    margin-top: 10px;
 -}
 -
 -/* articles */
 -
 -div#articles
 -{
 -    width: 560px;
 -    float: left;
 -}
 -
 -/* article */
 -
 -div.article
 -{
 -    margin-bottom: 40px;
 -}
 -
 -div.article .date
 -{
 -    color: #9F9291;
 -}
 -
 -div.article .more
 -{
 -	margin-right: 10px;
 -    display: block;
 -    text-align: right;
 -}
 -
 -.logo
 -{
 -	position: absolute;
 -	margin-left: 15px;
 -	margin-top: 0px;
 -	z-index: 1;
 -}
 -
 -#main
 -{
 -	padding: 20px;
 -	padding-top: 20px;
 -	background-color: #fff;
 -}
 -
 -div.mantis
 -{
 -    height: 190px;
 -    background-color: #fff;
 -     border-bottom: 1px solid #DCDCDC;
 -}
 -
 -div.releases
 -{
 -	float: left;
 -    width: 240px;
 -    height: 190px;
 -}
 -
 -div.releases div.official
 -{
 -    width: 190px;
 -    position: relative;
 -    left: 52px;
 -    top: 128px;
 -    font-size: 8pt;
 -    color: #6D6D6D;
 -}
 -
 -div.releases div.official a
 -{
 -    display: block;
 -}
 -
 -div.whyprado
 -{
 -	display: block;
 -	float: left;
 -}
 -
 -div.whyprado ul.list
 -{
 -	margin-top: 40px;
 -	margin-left: 40px;
 -}
 -
 -div.whyprado ul.list li
 -{
 -	display: block;
 -	margin: 5px;
 -	padding: 0px;
 -	font-size: 18px;
 -	background-repeat: no-repeat;
 -	background-position: bottom left;
 -	padding-left: 30px;
 -	list-style: none;
 -}
 -
 -
 -#footer
 -{
 -    border-top: 1px solid #e9eeef;
 -    background-color: #fff;
 -    clear: both;
 -    color: #A7A7A7;
 -    font-size: 8pt;
 -    text-align: center;
 -    padding-top: 10px;
 -    padding-bottom: 30px;
 -    background-repeat: repeat-x;
 -    background-position: bottom;
 -}
 -
 -#features
 -{
 -	margin-left: 610px;
 -    padding: 10px;
 -    padding-left: 10px;
 -    padding-right: 10px;
 -    background-color: #BEDD75;
 -    color: #344A1E;
 -    font-size: 9pt;
 -}
 -
 -#features ul
 -{
 -    margin: 10px;
 -    padding: 0px;
 -}
 -
 -#features ul li
 -{
 -	font-size: 8pt;
 -    padding: 0px;
 -    margin: 0px;
 -    margin-top: 8px;
 -}
 -
 -#features h3
 -{
 -    margin: 0px;
 -    padding: 0px;
 -    font-size: 10pt;
 -    color: #292E1D;
 -    text-align: center;
 -    border-bottom: 1px solid silver;
 -}
 -
 -#news
 -{
 -	float: left;
 -	width: 590px;
 -}
 -
 -.newstitle
 -{
 -	font-size: 12pt;
 -	font-weight: bold;
 -	color: #555;
 -	margin-top: 10px;
 -	margin-bottom: 0px;
 -	border-bottom: 1px solid silver;
 -}
 -
 -.newscontentmore
 -{
 -	margin-right: 10px;
 -    display: block;
 -    color: #50811A;
 -    text-align: right;
 -}
 -
 -.newscontentmore:hover
 -{
 -	color: red;
 -}
 -
 -.newstime
 -{
 -	margin: 0px;
 -	font-size:0.8em;
 -	color:#aaa;
 -	padding-left:10px;
 -	text-align: right;
 -}
 -
 -.newscontent
 -{
 -	margin-top: 5px;
 -}
 -
 -#leftpanel
 -{
 -	float: left;
 -	width: 550px;
 -}
 -
 -#topics
 -{
 -	border: 1px solid #804040;
 -	margin-left: 610px;
 -	padding-bottom: 10px;
 -}
 -
 -#topicsheader
 -{
 -	text-align:center;
 -	font-weight:bold;
 -	background-color:#804040;
 -	color:#FFFFBC;
 -	padding: 3px;
 -	margin-bottom:0px;
 -}
 -
 -.topicitem
 -{
 -	padding: 5px;
 -}
 -
 -.topicitem a:hover
 -{
 -	text-decoration: underline;
 -}
 -
 -.topicitem p
 -{
 -	margin: 0px;
 -	font-size:0.8em;
 -	color:#aaa;
 -	padding-left:10px;
 -	white-space:nowrap;
 -}
 -
 -.reference
 -{
 -}
 -
 -.reference img
 -{
 -	margin: 10px;
 -}
 -
 -.reference h3
 -{
 -}
 -
 -
 -.download
 -{
 -  width:            100%;
 -  background-color: #aaa;
 -}
 -
 -.download td
 -{
 -  background-color: #FFFFFF;
 -  padding:          5px;
 -  font-size: 9pt;
 -}
 -
 -.download td a
 -{
 -  font-weight: bold;
 -}
 -
 -.download td.type
 -{
 -  font-family:    "courier new", courier;
 -  text-align:     right;
 -  vertical-align: top;
 -}
 -
 -.download div.declaration
 -{
 -  font-family: "courier new", courier;
 -}
 -
 -
 -.download th
 -{
 -  background-color: #F0F0F0;
 -  font-weight:      bold;
 -  padding:          5px;
 -  text-align:       left;
 -}
 -
 -.download th.small
 -{
 -	font-size:  1.0em;
 -}
 -
 -.download tr.reference td {
 -    background-color: #FFEDED;
 -}
 -
 -
 -.doc-title
 -{
 -	font-size: 14pt;
 -	font-weight: bold;
 -	margin-top: 10px;
 -	margin-bottom: 10px;
 -}
 -
 -.doc-subtitle
 -{
 -	font-size: 11pt;
 -	font-weight: bold;
 -	background-color: #EEE;
 -	padding: 5px;
 -	margin-top: 20px;
 -}
 -
 -.doc-namespace
 -{
 -	font-size: 8pt;
 -}
 -
 -
 -.doc-menu
 -{
 -}
 -
 -.doc-classes
 -{
 -}
 -
 -.doc-ancestors
 -{
 -	font-size: 8pt;
 -}
 -
 -.doc-properties
 -{
 -	font-size: 9pt;
 -}
 -
 -.doc-properties table
 -{
 -	border-collapse: collapse;
 -	background-color: silver;
 -	width: 100%;
 -}
 -
 -.doc-properties td, .doc-properties th
 -{
 -	padding:    3px;
 -	vertical-align: top;
 -	background-color: white;
 -	border: 1px solid silver;
 -}
 -
 -.doc-events
 -{
 -	font-size: 9pt;
 -}
 -
 -.doc-events table
 -{
 -	border-collapse: collapse;
 -	background-color: silver;
 -	width: 100%;
 -}
 -
 -.doc-events td, .doc-events th
 -{
 -	padding:    3px;
 -	vertical-align: top;
 -	background-color: white;
 -	border: 1px solid silver;
 -}
 -
 -.doc-methods
 -{
 -	font-size: 9pt;
 -}
 -
 -.doc-methods table
 -{
 -	border-collapse: collapse;
 -	background-color: silver;
 -	width: 100%;
 -}
 -
 -.doc-methods td, .doc-methods th
 -{
 -	padding:    3px;
 -	vertical-align: top;
 -	background-color: white;
 -	border: 1px solid silver;
 -}
 -
 -.doc-derived
 -{
 -}
 -
 -.doc-inherited
 -{
 -}
 -
 -.doc-native td
 -{
 -	background-color: lightyellow;
 -}
 -
 -.forum-topic
 -{
 -	padding: 10px;
 -	border:1px solid silver;
 -	margin-bottom: 10px;
 -}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/stylesheet.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/stylesheet.css deleted file mode 100644 index 2c08f94f..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/media/stylesheet.css +++ /dev/null @@ -1,129 +0,0 @@ -BODY, DIV, SPAN, PRE, CODE, TD, TH {
 -	line-height: 140%;
 -	font-size: 10pt;
 -	font-family: verdana,arial,sans-serif;
 -}
 -
 -H1 {
 -	font-size: 12pt;
 -}
 -
 -H4 {
 -	font-size: 10pt;
 -	font-weight: bold;
 -}
 -
 -P.label {
 -	margin-bottom: 5px;
 -}
 -P.dt {
 -	margin-top: 0px;
 -	margin-bottom: 0px;
 -}
 -P.indent {
 -	margin-top: 0px;
 -	margin-left: 20px;
 -	margin-bottom: 0px;
 -}
 -P.method {
 -	background-color: #f0f0f0;
 -	padding: 2px;
 -	border: 1px #cccccc solid;
 -}
 -
 -A {
 -	text-decoration: none;
 -}
 -
 -A:link{
 -	color: #336699;
 -}
 -
 -A:visited			{
 -	color: #003366;
 -}
 -
 -A:active, A:hover	{
 -	color: #6699CC;
 -}
 -
 -A:hover{
 -	text-decoration: underline;
 -}
 -
 -SPAN.type			{
 -	color: #336699;
 -	font-size: xx-small;
 -	font-weight: normal;
 -	}
 -
 -PRE	{
 -	background-color: #EEEEEE;
 -	padding: 10px;
 -	border-width: 1px;
 -	border-color: #336699;
 -	border-style: solid;
 -}
 -
 -HR	{
 -	color: #336699;
 -	background-color: #336699;
 -	border-width: 0px;
 -	height: 1px;
 -	filter: Alpha (opacity=100,finishopacity=0,style=1);
 -}
 -
 -DIV.sdesc			{
 -	font-weight: bold;
 -	background-color: #EEEEEE;
 -	padding: 10px;
 -	border-width: 1px;
 -	border-color: #336699;
 -	border-style: solid;
 -}
 -
 -DIV.desc			{
 -	font-family: monospace;
 -	background-color: #EEEEEE;
 -	padding: 10px;
 -	border-width: 1px;
 -	border-color: #336699;
 -	border-style: solid;
 -}
 -
 -SPAN.code			{
 -	font-family: monospace;
 -}
 -
 -CODE.varsummarydefault{
 -	padding: 1px;
 -	border-width: 1px;
 -	border-style: dashed;
 -	border-color: #336699;
 -}
 -
 -UL.tute	{
 -	margin:			0px;
 -	padding:		0px;
 -	padding-left:		5px;
 -	}
 -
 -LI.tute	{
 -	line-height: 140%;
 -	font-size: 10pt;
 -	text-indent:		-15px;
 -	padding-bottom:		2px;
 -	padding-left:		14px;
 -}
 -
 -.small{
 -	font-size: 9pt;
 -}
 -
 -
 -.tute-tag { color: #009999 }
 -.tute-attribute-name { color: #0000FF }
 -.tute-attribute-value { color: #0099FF }
 -.tute-entity { font-weight: bold; }
 -.tute-comment { font-style: italic }
 -.tute-inline-tag { color: #636311; font-weight: bold }
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/method.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/method.tpl deleted file mode 100644 index 07cb76e5..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/method.tpl +++ /dev/null @@ -1,58 +0,0 @@ -{section name=methods loop=$methods}
 -{if $show == 'summary'}
 -method {$methods[methods].function_call}, {$methods[methods].sdesc}<br />
 -{else}
 -  <hr />
 -	<a name="{$methods[methods].method_dest}"></a>
 -	<h3>{if $methods[methods].ifunction_call.constructor}constructor {elseif $methods[methods].ifunction_call.destructor}destructor {else}method {/if}{$methods[methods].function_name} <span class="smalllinenumber">[line {if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}]</span></h3>
 -	<div class="function">
 -    <table width="90%" border="0" cellspacing="0" cellpadding="1"><tr><td class="code_border">
 -    <table width="100%" border="0" cellspacing="0" cellpadding="2"><tr><td class="code">
 -		<code>{$methods[methods].function_return} {if $methods[methods].ifunction_call.returnsref}&{/if}{$methods[methods].function_name}(
 -{if count($methods[methods].ifunction_call.params)}
 -{section name=params loop=$methods[methods].ifunction_call.params}
 -{if $smarty.section.params.iteration != 1}, {/if}
 -{if $methods[methods].ifunction_call.params[params].default != ''}[{/if}{$methods[methods].ifunction_call.params[params].type}
 -{$methods[methods].ifunction_call.params[params].name}{if $methods[methods].ifunction_call.params[params].default != ''} = {$methods[methods].ifunction_call.params[params].default}]{/if}
 -{/section}
 -{/if})</code>
 -    </td></tr></table>
 -    </td></tr></table><br />
 -	
 -		{include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags}<br /><br />
 -
 -{if $methods[methods].descmethod}
 -	<p>Overridden in child classes as:<br />
 -	{section name=dm loop=$methods[methods].descmethod}
 -	<dl>
 -	<dt>{$methods[methods].descmethod[dm].link}</dt>
 -		<dd>{$methods[methods].descmethod[dm].sdesc}</dd>
 -	</dl>
 -	{/section}</p>
 -{/if}
 -{* original    {if $methods[methods].descmethod != ""
 -    {$methods[methods].descmethod<br /><br />
 -    {/if *}
 -{if $methods[methods].method_overrides}Overrides {$methods[methods].method_overrides.link} ({$methods[methods].method_overrides.sdesc|default:"parent method not documented"})<br /><br />{/if}
 -{* original    {if $methods[methods].method_overrides != ""
 -    {$methods[methods].method_overrides<br /><br />
 -    {/if *}
 -
 -    {if count($methods[methods].params) > 0}
 -    <h4>Parameters:</h4>
 -    <div class="tags">
 -    <table border="0" cellspacing="0" cellpadding="0">
 -    {section name=params loop=$methods[methods].params}
 -      <tr>
 -        <td class="type">{$methods[methods].params[params].datatype}  </td>
 -        <td><b>{$methods[methods].params[params].var}</b>  </td>
 -        <td>{$methods[methods].params[params].data}</td>
 -      </tr>
 -    {/section}
 -    </table>
 -    </div><br />
 -    {/if}
 -    <div class="top">[ <a href="#top">Top</a> ]</div>
 -  </div>
 -{/if}
 -{/section}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/packages.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/packages.tpl deleted file mode 100644 index b48b6719..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/packages.tpl +++ /dev/null @@ -1,3 +0,0 @@ -{section name=packages loop=$packages}
 -<a href="{$packages[packages].link}">{$packages[packages].title}</a>
 -{/section}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/page.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/page.tpl deleted file mode 100644 index 6dd8683d..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/page.tpl +++ /dev/null @@ -1,31 +0,0 @@ -{include file="header.tpl" eltype="Procedural file" class_name=$name hasel=true contents=$pagecontents}
 -
 -<br>
 -<br>
 -
 -{if $classes}
 -<div class="contents">
 -{if $tutorial}
 -<span class="maintutorial">Main Tutorial: {$tutorial}</span>
 -{/if}
 -<h2>Classes:</h2>
 -{section name=classes loop=$classes}
 -<dt>{$classes[classes].link}</dt>
 -	<dd>{$classes[classes].sdesc}</dd>
 -{/section}
 -</div><br /><br />
 -{/if}
 -
 -<h2>Page Details:</h2>
 -{include file="docblock.tpl" type="page"}
 -<br /><br />
 -{include file="include.tpl"}
 -<br /><br />
 -{include file="global.tpl"}
 -<br /><br />
 -{include file="define.tpl"}
 -<br />
 -{include file="function.tpl"}
 -
 -{include file="footer.tpl"}
 -
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/pkgelementindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/pkgelementindex.tpl deleted file mode 100644 index 753ad7cf..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/pkgelementindex.tpl +++ /dev/null @@ -1,5 +0,0 @@ -{include file="header.tpl"}
 -<a name="top"></a>
 -<h1>Element index for package {$package}</h1>
 -{include file="basicindex.tpl" indexname=elementindex_$package}
 -{include file="footer.tpl"}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/ric.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/ric.tpl deleted file mode 100644 index c4cb83f9..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/ric.tpl +++ /dev/null @@ -1,6 +0,0 @@ -{include file="header.tpl"}
 -<h1 align="center">{$name}</h1>
 -<pre>
 -{$contents|htmlentities}
 -</pre>
 -{include file="footer.tpl"}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/todolist.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/todolist.tpl deleted file mode 100644 index 5ab0bca2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/todolist.tpl +++ /dev/null @@ -1,14 +0,0 @@ -{include file="header.tpl" title="Todo List"}
 -<div align="center"><h1>Todo List</h1></div>
 -{foreach from=$todos key=todopackage item=todo}
 -<h2>{$todopackage}</h2>
 -{section name=todo loop=$todo}
 -<h3>{$todo[todo].link}</h3>
 -<ul>
 -{section name=t loop=$todo[todo].todos}
 -    <li>{$todo[todo].todos[t]}</li>
 -{/section}
 -</ul>
 -{/section}
 -{/foreach}
 -{include file="footer.tpl"}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial.tpl deleted file mode 100644 index 22c71c3b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial.tpl +++ /dev/null @@ -1,32 +0,0 @@ -{include file="header.tpl" title=$title}
 -{if $nav}
 -<table width="100%" border="0" cellpadding="0" cellspacing="0">
 -<tr>
 -<td width="10%" align="left" valign="bottom">{if $prev}<a href=
 -"{$prev}">{/if}Prev{if $prev}</a>{/if}</td>
 -<td width="80%" align="center" valign="bottom"></td>
 -<td width="10%" align="right" valign="bottom">{if $next}<a href=
 -"{$next}">{/if}Next{if $next}</a>{/if}</td>
 -</tr>
 -</table>
 -{/if}
 -{$contents}
 -{if $nav}
 -<table width="100%" border="0" cellpadding="0" cellspacing="0">
 -<tr>
 -<td width="33%" align="left" valign="top">{if $prev}<a href="{$prev}">{/if}
 -Prev{if $prev}</a>{/if}</td>
 -<td width="34%" align="center" valign="top">{if $up}<a href=
 -"{$up}">Up</a>{else} {/if}</td>
 -<td width="33%" align="right" valign="top">{if $next}<a href=
 -"{$next}">{/if}Next{if $next}</a>{/if}</td>
 -</tr>
 -
 -<tr>
 -<td width="33%" align="left" valign="top">{if $prevtitle}{$prevtitle}{/if}</td>
 -<td width="34%" align="center" valign="top">{if $uptitle}{$uptitle}{/if}</td>
 -<td width="33%" align="right" valign="top">{if $nexttitle}{$nexttitle}{/if}</td>
 -</tr>
 -</table>
 -{/if}
 -{include file="footer.tpl"}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_toc.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_toc.tpl deleted file mode 100644 index 1db34438..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_toc.tpl +++ /dev/null @@ -1,29 +0,0 @@ -{if count($toc)}
 -<h1 align="center">Table of Contents</h1>
 -<ul>
 -{section name=toc loop=$toc}
 -{if $toc[toc].tagname == 'refsect1'}
 -{assign var="context" value="refsect1"}
 -{$toc[toc].link}<br />
 -{/if}
 -{if $toc[toc].tagname == 'refsect2'}
 -{assign var="context" value="refsect2"}
 -   {$toc[toc].link}<br />
 -{/if}
 -{if $toc[toc].tagname == 'refsect3'}
 -{assign var="context" value="refsect3"}
 -      {$toc[toc].link}<br />
 -{/if}
 -{if $toc[toc].tagname == 'table'}
 -{if $context == 'refsect2'}   {/if}
 -{if $context == 'refsect3'}   {/if}
 -Table: {$toc[toc].link}
 -{/if}
 -{if $toc[toc].tagname == 'example'}
 -{if $context == 'refsect2'}   {/if}
 -{if $context == 'refsect3'}   {/if}
 -Table: {$toc[toc].link}
 -{/if}
 -{/section}
 -</ul>
 -{/if}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_tree.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_tree.tpl deleted file mode 100644 index faf7bcef..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/tutorial_tree.tpl +++ /dev/null @@ -1,5 +0,0 @@ -<ul>
 -	<li type="square"><a href="{$main.link}">{$main.title|strip_tags}</a>
 -{if $kids}{$kids}</li>{/if}
 -</ul>
 -
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/var.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/var.tpl deleted file mode 100644 index c76929fe..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/PradoSoft/templates/var.tpl +++ /dev/null @@ -1,28 +0,0 @@ -{section name=vars loop=$vars}
 -{if $show == 'summary'}
 -	var {$vars[vars].var_name}, {$vars[vars].sdesc}<br>
 -{else}
 -	<a name="{$vars[vars].var_dest}"></a>
 -	<p></p>
 -	<h4>{$vars[vars].var_name} = <span class="value">{$vars[vars].var_default|replace:"\n":"<br>\n"|replace:" ":" "|replace:"\t":"   "}</span></h4>
 -	<p>[line {if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}]</p>
 -  {include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}
 -
 -  <br />
 -	<div class="tags">
 -  <table border="0" cellspacing="0" cellpadding="0">
 -    <tr>
 -      <td><b>Type:</b>  </td>
 -      <td>{$vars[vars].var_type}</td>
 -    </tr>
 -    {if $vars[vars].var_overrides != ""}
 -    <tr>
 -      <td><b>Overrides:</b>  </td>
 -      <td>{$vars[vars].var_overrides}</td>
 -    </tr>
 -    {/if}
 -  </table>
 -	</div><br /><br />
 -	<div class="top">[ <a href="#top">Top</a> ]</div><br />
 -{/if}
 -{/section}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/HTMLframesConverter.inc b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/HTMLframesConverter.inc deleted file mode 100644 index d1b8751c..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/HTMLframesConverter.inc +++ /dev/null @@ -1,1747 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -/**
 - * HTML original framed output converter, modified to use Smarty Template.
 - * This Converter takes output from the {@link Parser} and converts it to HTML-ready output for use with {@link Smarty}.
 - *
 - * @package Converters
 - * @subpackage HTMLframes
 - * @see parserDocBlock, parserInclude, parserPage, parserClass, parserDefine, parserFunction, parserMethod, parserVar
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: HTMLframesConverter.inc,v 1.1 2005/10/17 18:37:03 jeichorn Exp $
 - */
 -/**
 - * HTML output converter.
 - * This Converter takes output from the {@link Parser} and converts it to HTML-ready output for use with {@link Smarty}.
 - *
 - * @package Converters
 - * @subpackage HTMLframes
 - * @see parserDocBlock, parserInclude, parserPage, parserClass, parserDefine, parserFunction, parserMethod, parserVar
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.2
 - * @version $Id: HTMLframesConverter.inc,v 1.1 2005/10/17 18:37:03 jeichorn Exp $
 - */
 -class HTMLframesConverter extends Converter
 -{
 -    /**
 -     * Smarty Converter wants elements sorted by type as well as alphabetically
 -     * @see Converter::$sort_page_contents_by_type
 -     * @var boolean
 -     */
 -    var $sort_page_contents_by_type = true;
 -    /** @var string */
 -    var $outputformat = 'HTML';
 -    /** @var string */
 -    var $name = 'frames';
 -    /**
 -     * indexes of elements by package that need to be generated
 -     * @var array
 -     */
 -    var $leftindex = array('classes' => true, 'pages' => true, 'functions' => true, 'defines' => false, 'globals' => false);
 -    
 -    /**
 -     * output directory for the current procedural page being processed
 -     * @var string
 -     */
 -    var $page_dir;
 -    
 -    /**
 -     * target directory passed on the command-line.
 -     * {@link $targetDir} is malleable, always adding package/ and package/subpackage/ subdirectories onto it.
 -     * @var string
 -     */
 -    var $base_dir;
 -    
 -    /**
 -     * output directory for the current class being processed
 -     * @var string
 -     */
 -    var $class_dir;
 -    
 -    /**
 -     * array of converted package page names.
 -     * Used to link to the package page in the left index
 -     * @var array Format: array(package => 1)
 -     */
 -    var $package_pages = array();
 -    
 -    /**
 -     * controls formatting of parser informative output
 -     * 
 -     * Converter prints:
 -     * "Converting /path/to/file.php... Procedural Page Elements... Classes..."
 -     * Since HTMLdefaultConverter outputs files while converting, it needs to send a \n to start a new line.  However, if there
 -     * is more than one class, output is messy, with multiple \n's just between class file output.  This variable prevents that
 -     * and is purely cosmetic
 -     * @var boolean
 -     */
 -    var $juststarted = false;
 -    
 -    /**
 -     * contains all of the template procedural page element loop data needed for the current template
 -     * @var array
 -     */
 -    var $current;
 -    
 -    /**
 -     * contains all of the template class element loop data needed for the current template
 -     * @var array
 -     */
 -    var $currentclass;
 -    var $wrote = false;
 -    var $ric_set = array();
 -    
 -    /**
 -     * sets {@link $base_dir} to $targetDir
 -     * @see Converter()
 -     */
 -    function HTMLframesConverter(&$allp, &$packp, &$classes, &$procpages, $po, $pp, $qm, $targetDir, $templateDir, $title)
 -    {
 -        Converter::Converter($allp, $packp, $classes, $procpages,$po, $pp, $qm, $targetDir, $templateDir, $title);
 -        $this->base_dir = $targetDir;
 -    }
 -    
 -    /**
 -     * @deprecated in favor of PHP 4.3.0+ tokenizer-based source highlighting
 -     */
 -    function unmangle($sourcecode)
 -    {
 -        $sourcecode = str_replace('<code>','<pre>',$sourcecode);
 -        $sourcecode = str_replace('</code>','</pre>',$sourcecode);
 -        $sourcecode = str_replace('<br />',"\n",$sourcecode);
 -        $sourcecode = str_replace(' ',' ',$sourcecode);
 -        $sourcecode = str_replace('<','<',$sourcecode);
 -        $sourcecode = str_replace('>','>',$sourcecode);
 -        $sourcecode = str_replace('&','&',$sourcecode);
 -        return $sourcecode;
 -    }
 -
 -    /**
 -     * @param string full path to the source file
 -     * @param string fully highlighted source code
 -     */
 -    function writeSource($path, $value)
 -    {
 -        $templ = &$this->newSmarty();
 -        $pathinfo = $this->proceduralpages->getPathInfo($path, $this);
 -        $templ->assign('source',$value);
 -        $templ->assign('package',$pathinfo['package']);
 -        $templ->assign('subpackage',$pathinfo['subpackage']);
 -        $templ->assign('name',$pathinfo['name']);
 -        $templ->assign('source_loc',$pathinfo['source_loc']);
 -        $templ->assign('docs',$pathinfo['docs']);
 -        $templ->assign("subdir",'../');
 -        $templ->register_outputfilter('HTMLframes_outputfilter');
 -        $this->setTargetDir($this->getFileSourcePath($this->base_dir));
 -        phpDocumentor_out("\n");
 -        $this->setSourcePaths($path);
 -        $this->writefile($this->getFileSourceName($path).'.html',$templ->fetch('filesource.tpl'));
 -    }
 -    
 -    function writeExample($title, $path, $source)
 -    {
 -        $templ = &$this->newSmarty();
 -        $templ->assign('source',$source);
 -        if (empty($title))
 -        {
 -            $title = 'example';
 -            addWarning(PDERROR_EMPTY_EXAMPLE_TITLE, $path, $title);
 -        }
 -        $templ->assign('title',$title);
 -        $templ->assign('file',$path);
 -        $templ->assign("subdir",'../');
 -        $templ->register_outputfilter('HTMLframes_outputfilter');
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . '__examplesource');
 -        phpDocumentor_out("\n");
 -        $this->writefile('exsource_'.$path.'.html',$templ->fetch('examplesource.tpl'));
 -    }
 -    
 -    function getExampleLink($path, $title)
 -    {
 -        return $this->returnLink('{$subdir}__examplesource' . PATH_DELIMITER . 'exsource_'.$path.'.html',$title);
 -    }
 -    
 -    function getSourceLink($path)
 -    {
 -        return $this->returnLink($this->getFileSourcePath('{$subdir}') .
 -        PATH_DELIMITER . $this->getFileSourceName($path).'.html','Source Code for this file');
 -    }
 -
 -    /**
 -     * Return a line of highlighted source code with formatted line number
 -     *
 -     * If the $path is a full path, then an anchor to the line number will be
 -     * added as well
 -     * @param integer line number
 -     * @param string highlighted source code line
 -     * @param false|string full path to @filesource file this line is a part of,
 -     *        if this is a single line from a complete file.
 -     * @return string formatted source code line with line number
 -     */
 -    function sourceLine($linenumber, $line, $path = false)
 -    {
 -        $extra = '';
 -        if (strlen(str_replace("\n", '', $line)) == 0) {
 -            $extra = ' ';
 -        }
 -        if ($path)
 -        {
 -            return '<li>' . $this->getSourceAnchor($path, $linenumber) .
 -                   str_replace("\n",'',$line) . $extra .
 -                   "</li>\n";
 -        } else
 -        {
 -            return '<li>' . str_replace("\n",'',$line) . "$extra</li>\n";
 -        }
 -    }
 -    
 -    /**
 -     * Used to convert the <<code>> tag in a docblock
 -     * @param string
 -     * @param boolean
 -     * @return string
 -     */
 -    function ProgramExample($example, $tutorial = false, $inlinesourceparse = null/*false*/,
 -                            $class = null/*false*/, $linenum = null/*false*/, $filesourcepath = null/*false*/)
 -    {
 -        return '<pre><ol>' . parent::ProgramExample($example, $tutorial, $inlinesourceparse, $class, $linenum, $filesourcepath)
 -               .'</ol></pre>';
 -    }
 -    
 -    /**
 -     * @param string
 -     */
 -    function TutorialExample($example)
 -    {
 -        $trans = $this->template_options['desctranslate'];
 -        $this->template_options['desctranslate'] = array();
 -        $example = '<ol>' . parent::TutorialExample($example)
 -               .'</ol>';
 -        $this->template_options['desctranslate'] = $trans;
 -        if (!isset($this->template_options['desctranslate'])) return $example;
 -        if (!isset($this->template_options['desctranslate']['code'])) return $example;
 -        $example = $this->template_options['desctranslate']['code'] . $example;
 -        if (!isset($this->template_options['desctranslate']['/code'])) return $example;
 -        return $example . $this->template_options['desctranslate']['/code'];
 -    }
 -    
 -    /**
 -     * Retrieve a Converter-specific anchor to a segment of a source code file
 -     * parsed via a {@tutorial tags.filesource.pkg} tag.
 -     * @param string full path to source file
 -     * @param string name of anchor
 -     * @param string link text, if this is a link
 -     * @param boolean returns either a link or a destination based on this
 -     *                parameter
 -     * @return string link to an anchor, or the anchor
 -     */
 -    function getSourceAnchor($sourcefile,$anchor,$text = '',$link = false)
 -    {
 -        if ($link)
 -        return $this->returnLink($this->getFileSourcePath('{$subdir}') .
 -        PATH_DELIMITER . $this->getFileSourceName($sourcefile).'.html#a'.$anchor, $text);
 -        else
 -        return '<a name="a'.$anchor.'"></a>';
 -    }
 -    
 -    function getCurrentPageLink()
 -    {
 -        return $this->curname . '.html';
 -    }
 -
 -    /**
 -     * Uses htmlspecialchars() on the input
 -     */
 -    function postProcess($text)
 -    {
 -        return htmlspecialchars($text);
 -    }
 -    
 -    /**
 -     * Use the template tutorial_toc.tpl to generate a table of contents for HTML
 -     * @return string table of contents formatted for use in the current output format
 -     * @param array format: array(array('tagname' => section, 'link' => returnsee link, 'id' => anchor name, 'title' => from title tag),...)
 -     */
 -    function formatTutorialTOC($toc)
 -    {
 -        $template = &$this->newSmarty();
 -        $template->assign('toc',$toc);
 -        return $template->fetch('tutorial_toc.tpl');
 -    }
 -    
 -    function &SmartyInit(&$templ)
 -    {
 -        if (!isset($this->package_index))
 -        foreach($this->all_packages as $key => $val)
 -        {
 -            if (isset($this->pkg_elements[$key]))
 -            {
 -                if (!isset($start)) $start = $key;
 -                $this->package_index[] = array('link' => "li_$key.html", 'title' => $key);
 -            }
 -        }
 -        $templ->assign("packageindex",$this->package_index);
 -        $templ->assign("subdir",'');
 -        return $templ;
 -    }
 -    
 -    /**
 -     * Writes out the template file of {@link $class_data} and unsets the template to save memory
 -     * @see registerCurrentClass()
 -     * @see parent::endClass()
 -     */
 -    function endClass()
 -    {
 -        $a = '../';
 -        if (!empty($this->subpackage)) $a .= '../';
 -        if ($this->juststarted)
 -        {
 -            $this->juststarted = false;
 -            phpDocumentor_out("\n");
 -            flush();
 -        }
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->class_dir);
 -        $this->class_data->assign("subdir",$a);
 -        $this->class_data->register_outputfilter('HTMLframes_outputfilter');
 -        $this->writefile($this->class . '.html',$this->class_data->fetch('class.tpl'));
 -        unset($this->class_data);
 -    }
 -    
 -    /**
 -     * Writes out the template file of {@link $page_data} and unsets the template to save memory
 -     * @see registerCurrent()
 -     * @see parent::endPage()
 -     */
 -    function endPage()
 -    {
 -        $this->package = $this->curpage->package;
 -        $this->subpackage = $this->curpage->subpackage;
 -        $a = '../';
 -        if (!empty($this->subpackage)) $a .= '../';
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $this->page_dir);
 -        $this->page_data->assign("package",$this->package);
 -        $this->page_data->assign("subdir",$a);
 -        $this->page_data->register_outputfilter('HTMLframes_outputfilter');
 -        $this->writefile($this->page . '.html',$this->page_data->fetch('page.tpl'));
 -        unset($this->page_data);
 -    }
 -    
 -    /**
 -     * @param string
 -     * @param string
 -     * @return string <a href="'.$link.'">'.$text.'</a>
 -     */
 -    function returnLink($link,$text)
 -    {
 -        return '<a href="'.$link.'">'.$text.'</a>';
 -    }
 -    
 -    function makeLeft()
 -    {
 -        foreach($this->page_elements as $package => $o1)
 -        {
 -            foreach($o1 as $subpackage => $links)
 -            {
 -                for($i=0;$i<count($links);$i++)
 -                {
 -                    $left[$package][$subpackage]['files'][] =
 -                        array("link" => $this->getId($links[$i]), "title" => $links[$i]->name);
 -                }
 -            }
 -        }
 -        foreach($this->class_elements as $package => $o1)
 -        {
 -            foreach($o1 as $subpackage => $links)
 -            {
 -                for($i=0;$i<count($links);$i++)
 -                {
 -										$class = $this->classes->getClassByPackage($links[$i]->name, $links[$i]->package);
 -										if ($class && isset($class->docblock) && $class->docblock->hasaccess)
 -												$left[$package][$subpackage]['classes'][] =
 -												array("link" => $this->getId($links[$i]), 
 -															"title" => $links[$i]->name,
 -															"access" => $class->docblock->tags['access'][0]->value,
 -															"abstract" => isset ($class->docblock->tags['abstract'][0]));
 -										else
 -												$left[$package][$subpackage]['classes'][] =
 -												array("link" => $this->getId($links[$i]), 
 -															"title" => $links[$i]->name,
 -															"access" => 'public',
 -															"abstract" => isset ($class->docblock->tags['abstract'][0]));
 -                }
 -            }
 -        }
 -        foreach($this->function_elements as $package => $o1)
 -        {
 -            foreach($o1 as $subpackage => $links)
 -            {
 -                for($i=0;$i<count($links);$i++)
 -                {
 -                    $left[$package][$subpackage]['functions'][] =
 -                        array("link" => $this->getId($links[$i]), "title" => $links[$i]->name);
 -                }
 -            }
 -        }
 -        $ret = array();
 -        foreach($left as $package => $r)
 -        {
 -            $pd = 'blank';
 -            if (isset($this->package_pages[$package])) $pd = $package.'/package_'.$package.'.html';
 -            if (!isset($r['']))
 -            {
 -                $pt = false;
 -                $ptnoa = false;
 -                $ptt = $package;
 -                if ($t = $this->hasTutorial('pkg',$package,$package,''))
 -                {
 -                    $pt = $t->getLink($this);
 -                    $ptnoa = $this->getId($t->getLink($this,true));
 -                    $ptt = $t->getTitle($this);
 -                }
 -                $tutes = array();
 -                foreach($this->tutorial_tree as $root => $tr)
 -                {
 -                    if ($tr['tutorial']->package == $package && $tr['tutorial']->subpackage == $subpackage)
 -                    $tutes[$tr['tutorial']->tutorial_type][] = $this->getTutorialTree($tr['tutorial']);
 -                }
 -                if (isset($this->childless_tutorials[$package][$subpackage]))
 -                {
 -                    foreach($this->childless_tutorials[$package][$subpackage] as $ext => $other)
 -                    {
 -                        foreach($other as $tutorial)
 -                        {
 -                            $tutes[$tutorial->tutorial_type][] = $this->getTutorialTree($tutorial);
 -                        }
 -                    }
 -                }
 -                $ret[$package][] =
 -                    array(
 -                        'package' => $package,
 -                        'subpackage' => '',
 -                        'packagedoc' => $pd,
 -                        'packagetutorial' => $pt,
 -                        'packagetutorialnoa' => $ptnoa,
 -                        'packagetutorialtitle' => $ptt,
 -                        'files' => array(),
 -                        'functions' => array(),
 -                        'classes' => array(),
 -                        'tutorials' => $tutes,
 -                        );
 -            }
 -            foreach($r as $subpackage => $info)
 -            {
 -                $my = array();
 -                $my['package'] = $package;
 -                if (isset($this->package_pages[$package]))
 -                $my['packagedoc'] = $pd;
 -                else
 -                $my['packagedoc'] = 'blank';
 -                $my['subpackage'] = $subpackage;
 -                if (empty($subpackage))
 -                {
 -                    if ($t = $this->hasTutorial('pkg',$package,$package,$subpackage))
 -                    {
 -                        $my['packagetutorial'] = $t->getLink($this);
 -                        $my['packagetutorialnoa'] = $this->getId($t->getLink($this,true));
 -                        $my['packagetutorialtitle'] = $t->getTitle($this);
 -                    } else
 -                    {
 -                        $my['packagetutorial'] = '<a href="blank.html">No Package-Level Tutorial</a>';
 -                        $my['packagetutorialnoa'] = 'blank.html';
 -                        $my['packagetutorialtitle'] = $package;
 -                    }
 -                } else
 -                {
 -                    if ($t = $this->hasTutorial('pkg',$subpackage,$package,$subpackage))
 -                    {
 -                        $my['subpackagetutorial'] = $this->returnSee($this->getTutorialLink($t));
 -                        $my['subpackagetutorialnoa'] = $this->getId($t->getLink($this,true));
 -                        $my['subpackagetutorialtitle'] = $t->getTitle($this);
 -                    } else
 -                    {
 -                        $my['subpackagetutorial'] = false;
 -                        $my['subpackagetutorialnoa'] = false;
 -                        $my['subpackagetutorialtitle'] = $subpackage;
 -                    }
 -                }
 -                $tutes = array();
 -                foreach($this->tutorial_tree as $root => $tr)
 -                {
 -                    if ($tr['tutorial']->package == $package && $tr['tutorial']->subpackage == $subpackage)
 -                    {
 -                        $tutes[$tr['tutorial']->tutorial_type][] = $this->getTutorialTree($tr['tutorial']);
 -                    }
 -                }
 -                $my['tutorials'] = $tutes;
 -                $my['files'] = $my['classes'] = $my['functions'] = array();
 -                if (isset($info['files']))
 -                $my['files'] = $info['files'];
 -                if (isset($info['classes']))
 -                $my['classes'] = $info['classes'];
 -                if (isset($info['functions']))
 -                $my['functions'] = $info['functions'];
 -                $ret[$package][] = $my;
 -            }
 -        }
 -        return $ret;
 -    }
 -    
 -    function getTutorialTree($tutorial,$k = false)
 -    {
 -        $ret = '';
 -        if (is_object($tutorial)) $tree = parent::getTutorialTree($tutorial); else $tree = $tutorial;
 -//        debug($this->vardump_tree($tree));exit;
 -        if (!$tree)
 -        {
 -            $template = &$this->newSmarty();
 -            $template->assign('subtree',false);
 -            $template->assign('name',str_replace('.','',$tutorial->name));
 -            $template->assign('parent',false);
 -            $template->assign('haskids',false);
 -            $template->assign('kids','');
 -            $link = new tutorialLink;
 -            $t = $tutorial;
 -            $link->addLink('',$t->path,$t->name,$t->package,$t->subpackage,$t->getTitle($this));
 -            $main = array('link' => $this->getId($link), 'title' => $link->title);
 -            $template->assign('main',$main);
 -            return $template->fetch('tutorial_tree.tpl');
 -        }
 -        if (isset($tree['kids']))
 -        {
 -            foreach($tree['kids'] as $subtree)
 -            {
 -                $ret .= $this->getTutorialTree($subtree, true);
 -            }
 -        }
 -        $template = &$this->newSmarty();
 -        $template->assign('subtree',$k);
 -        $template->assign('name',str_replace('.','',$tree['tutorial']->name));
 -        $template->assign('parent',($k ? str_replace('.','',$tree['tutorial']->parent->name) : false));
 -        $template->assign('haskids',strlen($ret));
 -        $template->assign('kids',$ret);
 -        $link = new tutorialLink;
 -        $t = $tree['tutorial'];
 -        $link->addLink('',$t->path,$t->name,$t->package,$t->subpackage,$t->getTitle($this));
 -        $main = array('link' => $this->getId($link), 'title' => $link->title);
 -        $template->assign('main',$main);
 -        $ret = $template->fetch('tutorial_tree.tpl');
 -				return $ret;
 -    }
 -    
 -    /**
 -     * HTMLdefaultConverter chooses to format both package indexes and the complete index here
 -     *
 -     * This function formats output for the elementindex.html and pkgelementindex.html template files.  It then
 -     * writes them to the target directory
 -     * @see generateElementIndex(), generatePkgElementIndex()
 -     */
 -    function formatPkgIndex()
 -    {
 -        list($package_indexes,$packages,$mletters) = $this->generatePkgElementIndexes();
 -        for($i=0;$i<count($package_indexes);$i++)
 -        {
 -            $template = &$this->newSmarty();
 -            $this->package = $package_indexes[$i]['package'];
 -            $this->subpackage = '';
 -            $template->assign("index",$package_indexes[$i]['pindex']);
 -            $template->assign("package",$package_indexes[$i]['package']);
 -            $template->assign("letters",$mletters[$package_indexes[$i]['package']]);
 -            $template->register_outputfilter('HTMLframes_outputfilter');
 -            $this->setTargetDir($this->base_dir);
 -            $this->writefile('elementindex_'.$package_indexes[$i]['package'].'.html',$template->fetch('pkgelementindex.tpl'));
 -        }
 -        phpDocumentor_out("\n");
 -        flush();
 -        }
 -    
 -    /**
 -     * HTMLdefaultConverter uses this function to format template index.html and packages.html
 -     *
 -     * This function generates the package list from {@link $all_packages}, eliminating any
 -     * packages that don't have any entries in their package index (no files at all, due to @ignore
 -     * or other factors).  Then it uses the default package name as the first package index to display.
 -     * It sets the right pane to be either a blank file with instructions on making package-level docs,
 -     * or the package-level docs for the default package.
 -     * @global string Used to set the starting package to display
 -     */
 -    function formatIndex()
 -    {
 -        global $phpDocumentor_DefaultPackageName;
 -        list($elindex,$mletters) = $this->generateElementIndex();
 -        $template = &$this->newSmarty();
 -        $template->assign("index",$elindex);
 -        $template->assign("letters",$mletters);
 -        $template->register_outputfilter('HTMLframes_outputfilter');
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir);
 -        $this->writefile('elementindex.html',$template->fetch('elementindex.tpl'));
 -        usort($this->package_index,"HTMLframes_pindexcmp");
 -        $index = &$this->newSmarty();
 -        foreach($this->all_packages as $key => $val)
 -        {
 -            if (isset($this->pkg_elements[$key]))
 -            {
 -                if (!isset($start)) $start = $key;
 -                if (!isset($this->package_pages[$key])) $this->writeNewPPage($key);
 -            }
 -        }
 -        // Created index.html
 -        if (isset($this->pkg_elements[$phpDocumentor_DefaultPackageName])) $start = $phpDocumentor_DefaultPackageName;
 -        $this->package = $start;
 -        $this->subpackage = '';
 -        $index->assign("package_count",count($this->pkg_elements));
 -        if (count($this->ric_set))
 -        $index->assign("package_count",2);
 -        $index->assign("date",date("r",time()));
 -        $index->assign("title",$this->title);
 -        $index->assign("start","li_$start.html");
 -        $index->register_outputfilter('HTMLframes_outputfilter');
 -        if (isset($this->tutorials[$start]['']['pkg'][$start . '.pkg']))
 -        {
 -            $index->assign("blank",$start.'/tutorial_'.$start.'.pkg');
 -        } elseif (isset($this->package_pages[$start]))
 -        {
 -            $index->assign("blank",$start.'/package_'.$start);
 -        }
 -        else
 -        {
 -            $index->assign("blank","blank");
 -            $blank = &$this->newSmarty();
 -            $blank->assign('package',$phpDocumentor_DefaultPackageName);
 -            $this->setTargetDir($this->base_dir);
 -            $this->writefile("blank.html",$blank->fetch('blank.tpl'));
 -        }
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir);
 -        $this->writefile("index.html",$index->fetch('index.tpl'));
 -
 -        // Create package index
 -        $package = &$this->newSmarty();
 -        $package->assign('ric',array());
 -        if (isset($this->ric_set))
 -        {
 -            foreach($this->ric_set as $name => $u)
 -            {
 -                $package->append('ric',array('file' => 'ric_'.$name.'.html','name' => $name));
 -            }
 -        }
 -        $package->assign("packages",$this->package_index);
 -        $package->register_outputfilter('HTMLframes_outputfilter');
 -        $this->writefile("packages.html",$package->fetch('top_frame.tpl'));
 -        unset($index);
 -    }
 -    
 -    function writeNewPPage($key)
 -    {
 -        return;
 -        $template = &$this->newSmarty();
 -        $this->package = $key;
 -        $this->subpackage = '';
 -        $template->assign("date",date("r",time()));
 -        $template->assign("title",$this->title);
 -        $template->assign("package",$key);
 -        $template->register_outputfilter('HTMLframes_outputfilter');
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir);
 -    
 -        $this->writefile("li_$key.html",$template->fetch('index.tpl'));
 -        unset($template);
 -    }
 -    
 -    /**
 -     * Generate indexes for li_package.html and classtree output files
 -     *
 -     * This function generates the li_package.html files from the template file left.html.  It does this by
 -     * iterating through each of the $page_elements, $class_elements and  $function_elements arrays to retrieve
 -     * the pre-sorted {@link abstractLink} descendants needed for index generation.  Conversion of these links to
 -     * text is done by {@link returnSee()}.  The {@link $local} parameter is set to false to ensure that paths are correct.
 -     * 
 -     * Then it uses {@link generateFormattedClassTrees()} to create class trees from the template file classtrees.html.  Output
 -     * filename is classtrees_packagename.html.  This function also unsets {@link $elements} and {@link $pkg_elements} to free
 -     * up the considerable memory these two class vars use
 -     * @see $page_elements, $class_elements, $function_elements
 -     */
 -    function formatLeftIndex()
 -    {
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir);
 -        if (0)//!isset($this->left))
 -        {
 -            debug("Nothing parsed, check the command-line");
 -            die();
 -        }
 -        $x = $this->makeLeft();
 -        foreach($this->all_packages as $package => $rest)
 -        {
 -            if (!isset($this->pkg_elements[$package])) continue;
 -            $template = &$this->newSmarty();
 -            $template->assign("info",$x[$package]);
 -            $template->assign('package',$package);
 -            $template->assign("hastutorials",isset($this->tutorials[$package]));
 -            $template->assign('hastodos',count($this->todoList));
 -            $template->assign('todolink','todolist.html');
 -            $template->assign("classtreepage","classtrees_$package");
 -            $template->assign("elementindex","elementindex_$package");
 -            $template->register_outputfilter('HTMLframes_outputfilter');
 -            if (isset($this->package_pages[$package]))
 -            {
 -                $template->assign("packagedoc",$package.'/package_' . $package . '.html');
 -            } else
 -            {
 -                $template->assign("packagedoc",false);
 -            }
 -            $this->writefile("li_$package.html",$template->fetch('left_frame.tpl'));
 -            
 -            // Create class tree page
 -            $template = &$this->newSmarty();
 -            $template->assign("classtrees",$this->generateFormattedClassTrees($package));
 -            $template->assign("package",$package);
 -            $template->register_outputfilter('HTMLframes_outputfilter');
 -            $this->writefile("classtrees_$package.html",$template->fetch('classtrees.tpl'));
 -            phpDocumentor_out("\n");
 -            flush();
 -        }
 -        // free up considerable memory
 -        unset($this->elements);
 -        unset($this->pkg_elements);
 -    }
 -    
 -    /**
 -     * This function takes an {@link abstractLink} descendant and returns an html link
 -     *
 -     * @param abstractLink a descendant of abstractlink should be passed, and never text
 -     * @param string text to display in the link
 -     * @param boolean this parameter is not used, and is deprecated
 -     * @param boolean determines whether the returned text is enclosed in an <a> tag
 -     */
 -    function returnSee(&$element, $eltext = false, $with_a = true)
 -    {
 -        if (!is_object($element) || !$element) return false;
 -        if (!$with_a) return $this->getId($element, false);
 -        if (!$eltext)
 -        {
 -            $eltext = '';
 -            switch($element->type)
 -            {
 -                case 'tutorial' :
 -                $eltext = strip_tags($element->title);
 -                break;
 -                case 'method' :
 -                case 'var' :
 -                case 'const' :
 -                $eltext .= $element->class.'::';
 -                case 'page' :
 -                case 'define' :
 -                case 'class' :
 -                case 'function' :
 -                case 'global' :
 -                default :
 -                $eltext .= $element->name;
 -                if ($element->type == 'function' || $element->type == 'method') $eltext .= '()';
 -                break;
 -            }
 -        }
 -        return '<a href="'.$this->getId($element).'">'.$eltext.'</a>';
 -    }
 -    
 -    function getId($element, $fullpath = true)
 -    {
 -        if (phpDocumentor_get_class($element) == 'parserdata')
 -        {
 -            $element = $this->addLink($element->parent);
 -            $elp = $element->parent;
 -        } elseif (is_a($element, 'parserbase'))
 -        {
 -            $elp = $element;
 -            $element = $this->addLink($element);
 -        }
 -        $c = '';
 -        if (!empty($element->subpackage))
 -        {
 -            $c = '/'.$element->subpackage;
 -        }
 -        $b = '{$subdir}';
 -        switch ($element->type)
 -        {
 -            case 'page' :
 -            if ($fullpath)
 -            return $b.$element->package.$c.'/'.$element->fileAlias.'.html';
 -            return 'top';
 -            break;
 -            case 'define' :
 -            case 'global' :
 -            case 'function' :
 -            if ($fullpath)
 -            return $b.$element->package.$c.'/'.$element->fileAlias.'.html#'.$element->type.$element->name;
 -            return $element->type.$element->name;
 -            break;
 -            case 'class' :
 -            if ($fullpath)
 -            return $b.$element->package.$c.'/'.$element->name.'.html';
 -            return 'top';
 -            break;
 -            case 'method' :
 -            case 'var' :
 -            case 'const' :
 -            if ($fullpath)
 -            return $b.$element->package.$c.'/'.$element->class.'.html#'.$element->type.$element->name;
 -            return $element->type.$element->name;
 -            break;
 -            case 'tutorial' :
 -            $d = '';
 -            if ($element->section)
 -            {
 -                $d = '#'.$element->section;
 -            }
 -            return $b.$element->package.$c.'/tutorial_'.$element->name.'.html'.$d;
 -        }
 -    }
 -    
 -    /**
 -     * Convert README/INSTALL/CHANGELOG file contents to output format
 -     * @param README|INSTALL|CHANGELOG
 -     * @param string contents of the file
 -     */
 -    function Convert_RIC($name, $contents)
 -    {
 -        $template = &$this->newSmarty();
 -        $template->assign('contents',$contents);
 -        $template->assign('name',$name);
 -        $this->setTargetDir($this->base_dir);
 -        $this->writefile('ric_'.$name . '.html',$template->fetch('ric.tpl'));
 -        $this->ric_set[$name] = true;
 -    }
 -    
 -    function ConvertTodoList()
 -    {
 -        $todolist = array();
 -        foreach($this->todoList as $package => $alltodos)
 -        {
 -            foreach($alltodos as $todos)
 -            {
 -                $converted = array();
 -                $converted['link'] = $this->returnSee($todos[0]);
 -                if (!is_array($todos[1]))
 -                {
 -                    $converted['todos'][] = $todos[1]->Convert($this);
 -                } else
 -                {
 -                    foreach($todos[1] as $todo)
 -                    {
 -                        $converted['todos'][] = $todo->Convert($this);
 -                    }
 -                }
 -                $todolist[$package][] = $converted;
 -            }
 -        }
 -        $templ = &$this->newSmarty();
 -        $templ->assign('todos',$todolist);
 -        $templ->register_outputfilter('HTMLframes_outputfilter');
 -        $this->setTargetDir($this->base_dir);
 -        $this->writefile('todolist.html',$templ->fetch('todolist.tpl'));
 -    }
 -    
 -    /**
 -     * Create errors.html template file output
 -     *
 -     * This method takes all parsing errors and warnings and spits them out ordered by file and line number.
 -     * @global ErrorTracker We'll be using it's output facility
 -     */
 -    function ConvertErrorLog()
 -    {
 -        global $phpDocumentor_errors;
 -        $allfiles = array();
 -        $files = array();
 -        $warnings = $phpDocumentor_errors->returnWarnings();
 -        $errors = $phpDocumentor_errors->returnErrors();
 -        $template = &$this->newSmarty();
 -        foreach($warnings as $warning)
 -        {
 -            $file = '##none';
 -            $linenum = 'Warning';
 -            if ($warning->file)
 -            {
 -                $file = $warning->file;
 -                $allfiles[$file] = 1;
 -                $linenum .= ' on line '.$warning->linenum;
 -            }
 -            $files[$file]['warnings'][] = array('name' => $linenum, 'listing' => $warning->data);
 -        }
 -        foreach($errors as $error)
 -        {
 -            $file = '##none';
 -            $linenum = 'Error';
 -            if ($error->file)
 -            {
 -                $file = $error->file;
 -                $allfiles[$file] = 1;
 -                $linenum .= ' on line '.$error->linenum;
 -            }
 -            $files[$file]['errors'][] = array('name' => $linenum, 'listing' => $error->data);
 -        }
 -        $i=1;
 -        $af = array();
 -        foreach($allfiles as $file => $num)
 -        {
 -            $af[$i++] = $file;
 -        }
 -        $allfiles = $af;
 -        usort($allfiles,'strnatcasecmp');
 -        $allfiles[0] = "Post-parsing";
 -        foreach($allfiles as $i => $a)
 -        {
 -            $allfiles[$i] = array('file' => $a);
 -        }
 -        $out = array();
 -        foreach($files as $file => $data)
 -        {
 -            if ($file == '##none') $file = 'Post-parsing';
 -            $out[$file] = $data;
 -        }
 -        $template->assign("files",$allfiles);
 -        $template->assign("all",$out);
 -        $template->assign("title","phpDocumentor Parser Errors and Warnings");
 -        $this->setTargetDir($this->base_dir);
 -        $this->writefile("errors.html",$template->fetch('errors.tpl'));
 -        unset($template);
 -        phpDocumentor_out("\n\nTo view errors and warnings, look at ".$this->base_dir. PATH_DELIMITER . "errors.html\n");
 -        flush();
 -    }
 -    
 -    function getTutorialId($package,$subpackage,$tutorial,$id)
 -    {
 -        return $id;
 -    }
 -    
 -    function getCData($value)
 -    {
 -        return '<pre>'.htmlentities($value).'</pre>';
 -    }
 -    
 -    /**
 -     * Converts package page and sets its package as used in {@link $package_pages}
 -     * @param parserPackagePage
 -     */
 -    function convertPackagepage(&$element)
 -    {
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->package = $element->package;
 -        $this->subpackage = '';
 -        $contents = $element->Convert($this);
 -        $this->package_pages[$element->package] = str_replace('{$subdir}','../',$contents);
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $element->package);
 -        $this->writeFile('package_'.$element->package.'.html',str_replace('{$subdir}','../',$contents));
 -    }
 -    
 -    /**
 -     * @param parserTutorial
 -     */
 -    function convertTutorial(&$element)
 -    {
 -        phpDocumentor_out("\n");
 -        flush();
 -        $template = &parent::convertTutorial($element);
 -        $a = '../';
 -        if ($element->subpackage) $a .= '../';
 -        $template->assign('subdir',$a);
 -        $template->register_outputfilter('HTMLframes_outputfilter');
 -        $contents = $template->fetch('tutorial.tpl');
 -        $a = '';
 -        if ($element->subpackage) $a = PATH_DELIMITER . $element->subpackage;
 -        phpDocumentor_out("\n");
 -        flush();
 -        $this->setTargetDir($this->base_dir . PATH_DELIMITER . $element->package . $a);
 -        $this->writeFile('tutorial_'.$element->name.'.html',$contents);
 -    }
 -    
 -    /**
 -     * Converts class for template output
 -     * @see prepareDocBlock(), generateChildClassList(), generateFormattedClassTree(), getFormattedConflicts()
 -     * @see getFormattedInheritedMethods(), getFormattedInheritedVars()
 -     * @param parserClass
 -     */
 -    function convertClass(&$element)
 -    {
 -        parent::convertClass($element);
 -        $this->class_dir = $element->docblock->package;
 -        if (!empty($element->docblock->subpackage)) $this->class_dir .= PATH_DELIMITER . $element->docblock->subpackage;
 -        $a = '../';
 -        if ($element->docblock->subpackage != '') $a = "../$a";
 -        
 -        $this->class_data->assign('subdir',$a);
 -        $this->class_data->assign("title","Docs For Class " . $element->getName());
 -        $this->class_data->assign("page",$element->getName() . '.html');
 -    }
 -
 -    /**
 -     * Converts class variables for template output
 -     * @see prepareDocBlock(), getFormattedConflicts()
 -     * @param parserDefine
 -     */
 -    function convertVar(&$element)
 -    {
 -        parent::convertVar($element, array('var_dest' => $this->getId($element,false)));
 -    }
 -
 -    /**
 -     * Converts class variables for template output
 -     * @see prepareDocBlock(), getFormattedConflicts()
 -     * @param parserDefine
 -     */
 -    function convertConst(&$element)
 -    {
 -        parent::convertConst($element, array('const_dest' => $this->getId($element,false)));
 -    }
 -
 -    /**
 -     * Converts class methods for template output
 -     * @see prepareDocBlock(), getFormattedConflicts()
 -     * @param parserDefine
 -     */
 -    function convertMethod(&$element)
 -    {
 -        parent::convertMethod($element, array('method_dest' => $this->getId($element,false)));
 -    }
 -    
 -    /**
 -     * Converts function for template output
 -     * @see prepareDocBlock(), parserFunction::getFunctionCall(), getFormattedConflicts()
 -     * @param parserFunction
 -     */
 -    function convertFunction(&$element)
 -    {
 -        $funcloc = $this->getId($this->addLink($element));
 -        parent::convertFunction($element,array('function_dest' => $this->getId($element,false)));
 -    }
 -    
 -    /**
 -     * Converts include elements for template output
 -     * @see prepareDocBlock()
 -     * @param parserInclude
 -     */
 -    function convertInclude(&$element)
 -    {
 -        parent::convertInclude($element, array('include_file'    => '_'.strtr($element->getValue(),array('"' => '', "'" => '','.' => '_'))));
 -    }
 -    
 -    /**
 -     * Converts defines for template output
 -     * @see prepareDocBlock(), getFormattedConflicts()
 -     * @param parserDefine
 -     */
 -    function convertDefine(&$element)
 -    {
 -        parent::convertDefine($element, array('define_link' => $this->getId($element,false)));
 -    }
 -    
 -    /**
 -     * Converts global variables for template output
 -     * @param parserGlobal
 -     */
 -    function convertGlobal(&$element)
 -    {
 -        parent::convertGlobal($element, array('global_link' => $this->getId($element,false)));
 -    }
 -    
 -    /**
 -     * converts procedural pages for template output
 -     * @see prepareDocBlock(), getClassesOnPage()
 -     * @param parserData
 -     */
 -    function convertPage(&$element)
 -    {
 -        parent::convertPage($element);
 -        $this->juststarted = true;
 -        $this->page_dir = $element->parent->package;
 -        if (!empty($element->parent->subpackage)) $this->page_dir .= PATH_DELIMITER . $element->parent->subpackage;
 -        // registering stuff on the template
 -        $this->page_data->assign("page",$this->getPageName($element) . '.html');
 -        $this->page_data->assign("title","Docs for page ".$element->parent->getFile());
 -    }
 -    
 -    function getPageName(&$element)
 -    {
 -        if (phpDocumentor_get_class($element) == 'parserpage') return '_'.$element->getName();
 -        return '_'.$element->parent->getName();
 -    }
 -
 -    /**
 -     * returns an array containing the class inheritance tree from the root object to the class
 -     *
 -     * @param parserClass    class variable
 -     * @return array Format: array(root,child,child,child,...,$class)
 -     * @uses parserClass::getParentClassTree()
 -     */
 -    
 -    function generateFormattedClassTree($class)
 -    {
 -        $tree = $class->getParentClassTree($this);
 -        $out = '';
 -        if (count($tree) - 1)
 -        {
 -            $result = array($class->getName());
 -            $parent = $tree[$class->getName()];
 -            $distance[] = '';
 -            while ($parent)
 -            {
 -                $x = $parent;
 -                if (is_object($parent))
 -                {
 -                    $subpackage = $parent->docblock->subpackage;
 -                    $package = $parent->docblock->package;
 -                    $x = $parent;
 -                    $x = $parent->getLink($this);
 -                    if (!$x) $x = $parent->getName();
 -                }
 -                $result[] = 
 -                    $x;
 -                $distance[] =
 -                    "\n%s|\n" .
 -                    "%s--";
 -                if (is_object($parent))
 -                $parent = $tree[$parent->getName()];
 -                elseif (isset($tree[$parent]))
 -                $parent = $tree[$parent];
 -            }
 -            $nbsp = '   ';
 -            for($i=count($result) - 1;$i>=0;$i--)
 -            {
 -                $my_nbsp = '';
 -                for($j=0;$j<count($result) - $i;$j++) $my_nbsp .= $nbsp;
 -                $distance[$i] = sprintf($distance[$i],$my_nbsp,$my_nbsp);
 -            }
 -            return array('classes'=>array_reverse($result),'distance'=>array_reverse($distance));
 -        } else
 -        {
 -            return array('classes'=>$class->getName(),'distance'=>array(''));
 -        }
 -    }
 -    
 -    /** @access private */
 -    function sortVar($a, $b)
 -    {
 -        return strnatcasecmp($a->getName(),$b->getName());
 -    }
 -    
 -    /** @access private */
 -    function sortMethod($a, $b)
 -    {
 -        if ($a->isConstructor) return -1;
 -        if ($b->isConstructor) return 1;
 -        return strnatcasecmp($a->getName(),$b->getName());
 -    }
 -
 -    /**
 -     * returns a template-enabled array of class trees
 -     * 
 -     * @param    string    $package    package to generate a class tree for
 -     * @see $roots, HTMLConverter::getRootTree()
 -     */
 -    function generateFormattedClassTrees($package)
 -    {
 -        if (!isset($this->roots[$package])) return array();
 -        $roots = $trees = array();
 -        $roots = $this->roots[$package];
 -        for($i=0;$i<count($roots);$i++)
 -        {
 -            $trees[] = array('class' => $roots[$i],'class_tree' => "<ul>\n".$this->getRootTree($this->getSortedClassTreeFromClass($roots[$i],$package,''),$package)."</ul>\n");
 -        }
 -        return $trees;
 -    }
 -    
 -    /**
 -     * return formatted class tree for the Class Trees page
 -     *
 -     * @param array $tree output from {@link getSortedClassTreeFromClass()}
 -     * @see Classes::$definitechild, generateFormattedClassTrees()
 -     * @return string
 -     */
 -    function getRootTree($tree,$package)
 -    {
 -        if (!$tree) return '';
 -        $my_tree = '';
 -        $cur = '#root';
 -        $lastcur = array(false);
 -        $kids = array();
 -        $dopar = false;
 -        if ($tree[$cur]['parent'])
 -        {
 -            $dopar = true;
 -            if (!is_object($tree[$cur]['parent']))
 -            {
 -//                debug("parent ".$tree[$cur]['parent']." not found");
 -                $my_tree .= '<li>' . $tree[$cur]['parent'] .'<ul>';
 -            }
 -            else
 -            {
 -//                        debug("parent ".$this->returnSee($tree[$cur]['parent'])." in other package");
 -                $my_tree .= '<li>' . $this->returnSee($tree[$cur]['parent']);
 -                if ($tree[$cur]['parent']->package != $package) $my_tree .= ' <b>(Different package)</b><ul>';
 -            }
 -        }
 -        do
 -        {
 -//            fancy_debug($cur,$lastcur,$kids);
 -            if (count($tree[$cur]['children']))
 -            {
 -//                debug("$cur has children");
 -                if (!isset($kids[$cur]))
 -                {
 -//                    debug("set $cur kids");
 -                    $kids[$cur] = 1;
 -                    $my_tree .= '<li>'.$this->returnSee($tree[$cur]['link']);
 -                    $my_tree .= '<ul>'."\n";
 -                }
 -                array_push($lastcur,$cur);
 -                list(,$cur) = each($tree[$cur]['children']);
 -//                var_dump('listed',$cur);
 -                if ($cur)
 -                {
 -                    $cur = $cur['package'] . '#' . $cur['class'];
 -//                    debug("set cur to child $cur");
 -//                    $my_tree .= '<li>'.$this->returnSee($tree[$cur]['link']);
 -                    continue;
 -                } else
 -                {
 -//                    debug("end of children for $cur");
 -                    $cur = array_pop($lastcur);
 -                    $cur = array_pop($lastcur);
 -                    $my_tree .= '</ul></li>'."\n";
 -                    if ($dopar && ($cur == '#root' || !$cur)) $my_tree .= '</ul></li>';
 -                }
 -            } else 
 -            {
 -//                debug("$cur has no children");
 -                $my_tree .= '<li>'.$this->returnSee($tree[$cur]['link'])."</li>";
 -                if ($dopar && $cur == '#root') $my_tree .= '</ul></li>';
 -                $cur = array_pop($lastcur);
 -            }
 -        } while ($cur);
 -        return $my_tree;
 -    }
 -        /**
 -         * Generate indexing information for given element
 -         * 
 -         * @param parserElement descendant of parserElement
 -         * @see generateElementIndex()
 -         * @return array
 -         */
 -        function getIndexInformation($elt)
 -        {
 -            $Result['type'] = $elt->type;
 -            $Result['file_name'] = $elt->file;
 -            $Result['path'] = $elt->getPath();
 -            
 -            if (isset($elt->docblock))
 -						{
 -							$Result['description'] = $elt->docblock->getSDesc($this);
 -							
 -							if ($elt->docblock->hasaccess)
 -								$Result['access'] = $elt->docblock->tags['access'][0]->value;
 -							else
 -								$Result['access'] = 'public';
 -
 -							$Result['abstract'] = isset ($elt->docblock->tags['abstract'][0]);
 -						}
 -            else
 -                $Result['description'] = '';
 -            
 -            $aa = $Result['description'];
 -            if (!empty($aa)) $aa = "<br>    $aa";
 -
 -            switch($elt->type)
 -            {
 -                    case 'class':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Class';
 -                            $Result['link'] = $this->getClassLink($elt->getName(),
 -                                                                  $elt->docblock->package,
 -                                                                  $elt->getPath(),
 -                                                                  $elt->getName());
 -                            $Result['listing'] = 'in file '.$elt->file.', class '.$Result['link']."$aa";
 -                    break;
 -                    case 'define':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Constant';
 -                            $Result['link'] = $this->getDefineLink($elt->getName(),
 -                                                                   $elt->docblock->package,
 -                                                                   $elt->getPath(),
 -                                                                   $elt->getName());
 -                            $Result['listing'] = 'in file '.$elt->file.', constant '.$Result['link']."$aa";
 -                    break;
 -                    case 'global':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Global';
 -                            $Result['link'] = $this->getGlobalLink($elt->getName(),
 -                                                                   $elt->docblock->package,
 -                                                                   $elt->getPath(),
 -                                                                   $elt->getName());
 -                            $Result['listing'] = 'in file '.$elt->file.', global variable '.$Result['link']."$aa";
 -                    break;
 -                    case 'function':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Function';
 -                            $Result['link'] = $this->getFunctionLink($elt->getName(),
 -                                                                     $elt->docblock->package,
 -                                                                     $elt->getPath(),
 -                                                                     $elt->getName().'()');
 -                            $Result['listing'] = 'in file '.$elt->file.', function '.$Result['link']."$aa";
 -                    break;
 -                    case 'method':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Method';
 -                            $Result['link'] = $this->getMethodLink($elt->getName(),
 -                                                                   $elt->class,
 -                                                                   $elt->docblock->package,
 -                                                                   $elt->getPath(),
 -                                                                   $elt->class.'::'.$elt->getName().'()'
 -                                                                             );
 -														if ($elt->isConstructor) $Result['constructor'] = 1;
 -                            $Result['listing'] = 'in file '.$elt->file.', method '.$Result['link']."$aa";
 -                    break;
 -                    case 'var':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Variable';
 -                            $Result['link'] = $this->getVarLink($elt->getName(),
 -                                                                $elt->class,
 -                                                                $elt->docblock->package,
 -                                                                $elt->getPath(),
 -                                                                $elt->class.'::'.$elt->getName());
 -                            $Result['listing'] = 'in file '.$elt->file.', variable '.$Result['link']."$aa";
 -                    break;
 -                    case 'const':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Class Constant';
 -                            $Result['link'] = $this->getConstLink($elt->getName(),
 -                                                                $elt->class,
 -                                                                $elt->docblock->package,
 -                                                                $elt->getPath(),
 -                                                                $elt->class.'::'.$elt->getName());
 -                            $Result['listing'] = 'in file '.$elt->file.', class constant '.$Result['link']."$aa";
 -                    break;
 -                    case 'page':
 -                            $Result['name'] = $elt->getFile();
 -                            $Result['title'] = 'Page';
 -                            $Result['link'] = $this->getPageLink($elt->getFile(),
 -                                                                 $elt->package,
 -                                                                 $elt->getPath(),
 -                                                                 $elt->getFile());
 -                            $Result['listing'] = 'procedural page '.$Result['link'];
 -                    break;
 -                    case 'include':
 -                            $Result['name'] = $elt->getName();
 -                            $Result['title'] = 'Include';
 -                            $Result['link'] = $elt->getValue();
 -                            $Result['listing'] = 'include '.$Result['name'];
 -                    break;
 -            }
 -
 -            return $Result;
 -        }
 -    /**
 -     * Generate alphabetical index of all elements
 -     *
 -     * @see $elements, walk()
 -     */
 -    function generateElementIndex()
 -    {
 -        $elementindex = array();
 -        $letters = array();
 -        $used = array();
 -        foreach($this->elements as $letter => $nutoh)
 -        {
 -            foreach($this->elements[$letter] as $i => $yuh)
 -            {
 -                if ($this->elements[$letter][$i]->type != 'include')
 -                {
 -                    if (!isset($used[$letter]))
 -                    {
 -                        $letters[]['letter'] = $letter;
 -                        $elindex['letter'] = $letter;
 -                        $used[$letter] = 1;
 -                    }
 -
 -                    $elindex['index'][] = $this->getIndexInformation($this->elements[$letter][$i]);
 -                }
 -            }
 -            if (isset($elindex['index']))
 -            {
 -                $elementindex[] = $elindex;
 -            } else
 -            {
 -                unset($letters[count($letters) - 1]);
 -            }
 -            $elindex = array();
 -        }
 -        return array($elementindex,$letters);
 -    }
 -    
 -    function copyMediaRecursively($media,$targetdir,$subdir = '')
 -    {
 -        if (!is_array($media)) {
 -            return;
 -        }
 -        foreach($media as $dir => $files)
 -        {
 -            if ($dir === '/')
 -            {
 -                $this->copyMediaRecursively($files,$targetdir);
 -            } else
 -            {
 -                if (!is_numeric($dir))
 -                {
 -                    // create the subdir
 -                    phpDocumentor_out("creating $targetdir/$dir\n");
 -                    Converter::setTargetDir($targetdir . PATH_DELIMITER . $dir);
 -                    if (!empty($subdir)) $subdir .= PATH_DELIMITER;
 -                    $this->copyMediaRecursively($files,"$targetdir/$dir",$subdir . $dir);
 -                } else
 -                {
 -                    // copy the file
 -                    phpDocumentor_out("copying $targetdir/".$files['file']."\n");
 -                    $this->copyFile($files['file'],$subdir);
 -                }
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * calls the converter setTargetDir, and then copies any template images and the stylesheet if they haven't been copied
 -     * @see Converter::setTargetDir()
 -     */
 -    function setTargetDir($dir)
 -    {
 -        Converter::setTargetDir($dir);
 -        if ($this->wrote) return;
 -        $this->wrote = true;
 -        $template_images = array();
 -        $stylesheets = array();
 -        $tdir = $dir;
 -        $dir = $this->templateDir;
 -        $this->templateDir = $this->templateDir.'templates/';
 -        $info = new Io;
 -        $this->copyMediaRecursively($info->getDirTree($this->templateDir.'media',$this->templateDir),$tdir);
 -    }
 -    
 -    /**
 -     * Generate alphabetical index of all elements by package and subpackage
 -     *
 -     * @param string $package name of a package
 -     * @see $pkg_elements, walk(), generatePkgElementIndexes()
 -     */
 -    function generatePkgElementIndex($package)
 -    {
 -//        var_dump($this->pkg_elements[$package]);
 -        $elementindex = array();
 -        $letters = array();
 -        $letterind = array();
 -        $used = array();
 -        $subp = '';
 -        foreach($this->pkg_elements[$package] as $subpackage => $els)
 -        {
 -            if (empty($els)) continue;
 -            if (!empty($subpackage)) $subp = " (<b>subpackage:</b> $subpackage)"; else $subp = '';
 -            foreach($els as $letter => $yuh)
 -            {
 -                foreach($els[$letter] as $i => $yuh)
 -                {
 -                    if ($els[$letter][$i]->type != 'include')
 -                    {
 -                        if (!isset($used[$letter]))
 -                        {
 -                            $letters[]['letter'] = $letter;
 -                            $letterind[$letter] = count($letters) - 1;
 -                            $used[$letter] = 1;
 -                        }
 -                        $elindex[$letter]['letter'] = $letter;
 -
 -                        $elindex[$letter]['index'][] = $this->getIndexInformation($els[$letter][$i]);
 -                    }
 -                }
 -            }
 -        }
 -        ksort($elindex);
 -        usort($letters,'HTMLframes_lettersort');
 -        if (isset($elindex))
 -        {
 -            while(list($letter,$tempel) = each($elindex))
 -            {
 -                if (!isset($tempel))
 -                {
 -                    unset($letters[$letterind[$tempel['letter']]]);
 -                } else
 -                $elementindex[] = $tempel;
 -            }
 -        } else $letters = array();
 -        return array($elementindex,$letters);
 -    }
 -    
 -    /**
 -     *
 -     * @see generatePkgElementIndex()
 -     */
 -    function generatePkgElementIndexes()
 -    {
 -        $packages = array();
 -        $package_names = array();
 -        $pkg = array();
 -        $letters = array();
 -        foreach($this->pkg_elements as $package => $trash)
 -        {
 -            $pkgs['package'] = $package;
 -            $pkg['package'] = $package;
 -            list($pkg['pindex'],$letters[$package]) = $this->generatePkgElementIndex($package);
 -            if (count($pkg['pindex']))
 -            {
 -                $packages[] = $pkg;
 -                $package_names[] = $pkgs;
 -            }
 -            unset($pkgs);
 -            unset($pkg);
 -        }
 -        foreach($packages as $i => $package)
 -        {
 -            $pnames = array();
 -            for($j=0;$j<count($package_names);$j++)
 -            {
 -                if ($package_names[$j]['package'] != $package['package']) $pnames[] = $package_names[$j];
 -            }
 -            $packages[$i]['packageindexes'] = $pnames;
 -        }
 -        return array($packages,$package_names,$letters);
 -    }
 -    
 -    /**
 -     * @param string name of class
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the class's documentation
 -     * @see parent::getClassLink()
 -     */
 -    function getClassLink($expr,$package, $file = false,$text = false, $with_a = true)
 -    {
 -        $a = Converter::getClassLink($expr,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text, $with_a);
 -    }
 -
 -    /**
 -     * @param string name of function
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the function's documentation
 -     * @see parent::getFunctionLink()
 -     */
 -    function getFunctionLink($expr,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getFunctionLink($expr,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of define
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the define's documentation
 -     * @see parent::getDefineLink()
 -     */
 -    function getDefineLink($expr,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getDefineLink($expr,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of global variable
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the global variable's documentation
 -     * @see parent::getGlobalLink()
 -     */
 -    function getGlobalLink($expr,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getGlobalLink($expr,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of procedural page
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the procedural page's documentation
 -     * @see parent::getPageLink()
 -     */
 -    function getPageLink($expr,$package, $path = false,$text = false)
 -    {
 -        $a = Converter::getPageLink($expr,$package,$path);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of method
 -     * @param string class containing method
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the method's documentation
 -     * @see parent::getMethodLink()
 -     */
 -    function getMethodLink($expr,$class,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getMethodLink($expr,$class,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of var
 -     * @param string class containing var
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the var's documentation
 -     * @see parent::getVarLink()
 -     */
 -    function getVarLink($expr,$class,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getVarLink($expr,$class,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -
 -    /**
 -     * @param string name of class constant
 -     * @param string class containing class constant
 -     * @param string package name
 -     * @param string full path to look in (used in index generation)
 -     * @param boolean deprecated
 -     * @param boolean return just the URL, or enclose it in an html a tag
 -     * @return mixed false if not found, or an html a link to the var's documentation
 -     * @see parent::getVarLink()
 -     */
 -    function getConstLink($expr,$class,$package, $file = false,$text = false)
 -    {
 -        $a = Converter::getConstLink($expr,$class,$package,$file);
 -        if (!$a) return false;
 -        return $this->returnSee($a, $text);
 -    }
 -    
 -    /**
 -     * does a nat case sort on the specified second level value of the array
 -     *
 -     * @param    mixed    $a
 -     * @param    mixed    $b
 -     * @return    int
 -     */
 -    function rcNatCmp ($a, $b)
 -    {
 -        $aa = strtoupper($a[$this->rcnatcmpkey]);
 -        $bb = strtoupper($b[$this->rcnatcmpkey]);
 -        
 -        return strnatcasecmp($aa, $bb);
 -    }
 -    
 -    /**
 -     * does a nat case sort on the specified second level value of the array.
 -     * this one puts constructors first
 -     *
 -     * @param    mixed    $a
 -     * @param    mixed    $b
 -     * @return    int
 -     */
 -    function rcNatCmp1 ($a, $b)
 -    {
 -        $aa = strtoupper($a[$this->rcnatcmpkey]);
 -        $bb = strtoupper($b[$this->rcnatcmpkey]);
 -        
 -        if (strpos($aa,'CONSTRUCTOR') === 0)
 -        {
 -            return -1;
 -        }
 -        if (strpos($bb,'CONSTRUCTOR') === 0)
 -        {
 -            return 1;
 -        }
 -        if (strpos($aa,strtoupper($this->class)) === 0)
 -        {
 -            return -1;
 -        }
 -        if (strpos($bb,strtoupper($this->class)) === 0)
 -        {
 -            return -1;
 -        }
 -        return strnatcasecmp($aa, $bb);
 -    }
 -    
 -    /**
 -     * This function is not used by HTMLdefaultConverter, but is required by Converter
 -     */
 -    function Output()
 -    {
 -    }
 -}
 -
 -/**
 - * @access private
 - * @global string name of the package to set as the first package
 - */
 -function HTMLframes_pindexcmp($a, $b)
 -{
 -    global $phpDocumentor_DefaultPackageName;
 -    if ($a['title'] == $phpDocumentor_DefaultPackageName) return -1;
 -    if ($b['title'] == $phpDocumentor_DefaultPackageName) return 1;
 -    return strnatcasecmp($a['title'],$b['title']);
 -}
 -
 -/** @access private */
 -function HTMLframes_lettersort($a, $b)
 -{
 -    return strnatcasecmp($a['letter'],$b['letter']);
 -}
 -
 -/** @access private */
 -function HTMLframes_outputfilter($src, &$smarty)
 -{
 -    return str_replace('{$subdir}',$smarty->_tpl_vars['subdir'],$src);
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/options.ini b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/options.ini deleted file mode 100644 index 73164a39..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/options.ini +++ /dev/null @@ -1,577 +0,0 @@ -preservedocbooktags = false
 -
 -;; used to highlight the {@source} inline tag, @filesource tag, and @example tag
 -[highlightSourceTokens]
 -;; format:
 -;; T_CONSTANTNAME = open
 -;; /T_CONSTANTNAME = close
 -
 -T_INCLUDE = <span class="src-inc">
 -/T_INCLUDE = </span>
 -T_INCLUDE_ONCE = <span class="src-inc">
 -/T_INCLUDE_ONCE = </span>
 -T_REQUIRE_ONCE = <span class="src-inc">
 -/T_REQUIRE_ONCE = </span>
 -T_REQUIRE_ONCE = <span class="src-inc">
 -/T_REQUIRE_ONCE = </span>
 -
 -T_CONSTANT_ENCAPSED_STRING = <span class="src-str">
 -/T_CONSTANT_ENCAPSED_STRING = </span>
 -T_STRING_VARNAME = <span class="src-str">
 -/T_STRING_VARNAME = </span>
 -
 -T_STRING = <span class="src-id">
 -/T_STRING = </span>
 -
 -T_DNUMBER = <span class="src-num">
 -/T_DNUMBER = </span>
 -T_LNUMBER = <span class="src-num">
 -/T_LNUMBER = </span>
 -
 -T_VARIABLE = <span class="src-var">
 -/T_VARIABLE = </span>
 -
 -T_COMMENT = <span class="src-comm">
 -/T_COMMENT = </span>
 -T_ML_COMMENT = <span class="src-comm">
 -/T_ML_COMMENT = </span>
 -
 -T_OBJECT_OPERATOR = <span class="src-sym">
 -/T_OBJECT_OPERATOR = </span>
 -
 -T_ABSTRACT = <span class="src-key">
 -/T_ABSTRACT = </span>
 -T_CLONE = <span class="src-key">
 -/T_CLONE = </span>
 -T_HALT_COMPILER = <span class="src-key">
 -/T_HALT_COMPILER = </span>
 -T_ARRAY = <span class="src-key">
 -/T_ARRAY = </span>
 -T_AS = <span class="src-key">
 -/T_AS = </span>
 -T_BREAK = <span class="src-key">
 -/T_BREAK = </span>
 -T_CLASS = <span class="src-key">
 -/T_CLASS = </span>
 -T_CASE = <span class="src-key">
 -/T_CASE = </span>
 -T_CONST = <span class="src-key">
 -/T_CONST = </span>
 -T_CONTINUE = <span class="src-key">
 -/T_CONTINUE = </span>
 -T_DECLARE = <span class="src-key">
 -/T_DECLARE = </span>
 -T_DEFAULT = <span class="src-key">
 -/T_DEFAULT = </span>
 -T_ELSE = <span class="src-key">
 -/T_ELSE = </span>
 -T_ELSEIF = <span class="src-key">
 -/T_ELSEIF = </span>
 -T_EMPTY = <span class="src-key">
 -/T_EMPTY = </span>
 -T_ENDDECLARE = <span class="src-key">
 -/T_ENDDECLARE = </span>
 -T_ENDFOR = <span class="src-key">
 -/T_ENDFOR = </span>
 -T_ENDSWITCH = <span class="src-key">
 -/T_ENDSWITCH = </span>
 -T_ENDFOREACH = <span class="src-key">
 -/T_ENDFOREACH = </span>
 -T_ENDIF = <span class="src-key">
 -/T_ENDIF = </span>
 -T_ENDWHILE = <span class="src-key">
 -/T_ENDWHILE = </span>
 -T_EXIT = <span class="src-key">
 -/T_EXIT = </span>
 -T_EXTENDS = <span class="src-key">
 -/T_EXTENDS = </span>
 -T_FINAL = <span class="src-key">
 -/T_FINAL = </span>
 -T_FOR = <span class="src-key">
 -/T_FOR = </span>
 -T_FOREACH = <span class="src-key">
 -/T_FOREACH = </span>
 -T_FUNCTION = <span class="src-key">
 -/T_FUNCTION = </span>
 -T_GLOBAL = <span class="src-key">
 -/T_GLOBAL = </span>
 -T_IF = <span class="src-key">
 -/T_IF = </span>
 -T_IMPLEMENTS = <span class="src-key">
 -/T_IMPLEMENTS = </span>
 -T_INTERFACE = <span class="src-key">
 -/T_INTERFACE = </span>
 -T_LOGICAL_AND = <span class="src-key">
 -/T_LOGICAL_AND = </span>
 -T_LOGICAL_OR = <span class="src-key">
 -/T_LOGICAL_OR = </span>
 -T_LOGICAL_XOR = <span class="src-key">
 -/T_LOGICAL_XOR = </span>
 -T_NEW = <span class="src-key">
 -/T_NEW = </span>
 -T_PRIVATE = <span class="src-key">
 -/T_PRIVATE = </span>
 -T_PROTECTED = <span class="src-key">
 -/T_PROTECTED = </span>
 -T_PUBLIC = <span class="src-key">
 -/T_PUBLIC = </span>
 -T_RETURN = <span class="src-key">
 -/T_RETURN = </span>
 -T_STATIC = <span class="src-key">
 -/T_STATIC = </span>
 -T_SWITCH = <span class="src-key">
 -/T_SWITCH = </span>
 -T_VAR = <span class="src-key">
 -/T_VAR = </span>
 -T_WHILE = <span class="src-key">
 -/T_WHILE = </span>
 -
 -T_DOUBLE_COLON = <span class="src-sym">
 -/T_DOUBLE_COLON = </span>
 -
 -T_OPEN_TAG = <span class="src-php">
 -/T_OPEN_TAG = </span>
 -T_OPEN_TAG_WITH_ECHO = <span class="src-php">
 -/T_OPEN_TAG_WITH_ECHO = </span>
 -T_CLOSE_TAG = <span class="src-php">
 -/T_CLOSE_TAG = </span>
 -
 -
 -[highlightSource]
 -;; this is for highlighting things that aren't tokens like "&"
 -;; format:
 -;; word = open
 -;; /word = close
 -@ = <span class="src-sym">
 -/@ = </span>
 -& = <span class="src-sym">
 -/& = </span>
 -[ = <span class="src-sym">
 -/[ = </span>
 -] = <span class="src-sym">
 -/] = </span>
 -! = <span class="src-sym">
 -/! = </span>
 -";" = <span class="src-sym">
 -/; = </span>
 -( = <span class="src-sym">
 -/( = </span>
 -) = <span class="src-sym">
 -/) = </span>
 -, = <span class="src-sym">
 -/, = </span>
 -{ = <span class="src-sym">
 -/{ = </span>
 -} = <span class="src-sym">
 -/} = </span>
 -""" = <span class="src-str">
 -/" = </span>
 -
 -[highlightDocBlockSourceTokens]
 -;; this is for docblock tokens, using by phpDocumentor_HighlightParser
 -;; tagphptype is for "string" in @param string description, for example
 -docblock = <span class="src-doc">
 -/docblock = </span>
 -tagphptype = <span class="src-doc-type">
 -/tagphptype = </span>
 -tagvarname = <span class="src-doc-var">
 -/tagvarname = </span>
 -coretag = <span class="src-doc-coretag">
 -/coretag = </span>
 -tag = <span class="src-doc-tag">
 -/tag = </span>
 -inlinetag = <span class="src-doc-inlinetag">
 -/inlinetag = </span>
 -internal = <span class="src-doc-internal">
 -/internal = </span>
 -closetemplate = <span class="src-doc-close-template">
 -/closetemplate = </span>
 -docblocktemplate = <span class="src-doc-template">
 -/docblocktemplate = </span>
 -
 -[highlightTutorialSourceTokens]
 -;; this is for XML DocBook-based tutorials, highlighted by phpDocumentor_TutorialHighlightParser
 -;; <tag>
 -opentag = <span class="tute-tag">
 -/opentag = </span>
 -;; </tag>
 -closetag = <span class="tute-tag">
 -/closetag = </span>
 -;; <tag attribute="value">
 -attribute = <span class="tute-attribute-name">
 -/attribute = </span>
 -;; <tag attribute="value">
 -attributevalue = <span class="tute-attribute-value">
 -/attributevalue = </span>
 -;; &entity;
 -entity = <span class="tute-entity">
 -/entity = </span>
 -;; <!-- comment -->
 -comment = <span class="tute-comment">
 -/comment = </span>
 -;; {@inline tag}
 -itag = <span class="tute-inline-tag">
 -/itag = </span>
 -
 -;; used for translation of html in DocBlocks
 -[desctranslate]
 -ul = <ul>
 -/ul = </ul>
 -ol = <ol>
 -/ol = </ol>
 -li = <li>
 -/li = </li>
 -code = <code><pre>
 -/code = </pre></code>
 -var = <var>
 -/var = </var>
 -samp = <samp>
 -/samp = </samp>
 -kbd = <kbd>
 -/kbd = </kbd>
 -pre = <pre>
 -/pre = </pre>
 -p = <p>
 -/p = </p>
 -b = <strong>
 -/b = </strong>
 -i = <em>
 -/i = </em>
 -br = <br />
 -
 -[ppage]
 -;; this is the DocBook package page translation section.  All DocBook tags
 -;; that have a corresponding html tag must be listed here.  Entities should
 -;; also be listed here
 -;;
 -;; examples:
 -;; 1)
 -;; tagname = newtagname
 -;;
 -;; This is the simplest case, where all attributes will be added into the
 -;; starting tag and the ending tag will be html/xml style </tranlatedtagname>
 -;; <tagname></tagname> becomes <newtagname></newtagname> and
 -;; <tagname attr="value"></tagname> becomes
 -;; <newtagname attr="value"></newtagname>
 -;;
 -;; 2)
 -;; tagname = newtagname
 -;; tagname->attr = newattrname
 -;;
 -;; in this case, everything will be like the first case, except tags like:
 -;; <tagname attr="value"></tagname> will become
 -;; <newtagname newattrname="value"></newtagname>
 -;;
 -;; 3)
 -;; tagname = newtagname
 -;; tagname->attr = newattrname
 -;; tagname->attr+value = newvalue
 -;;
 -;; in this case, the value is also translated to another.  This can be useful
 -;; for instances such as focus="middle" changing to align="center" or something
 -;; of that nature.
 -;; <tagname attr="value"></tagname> will become
 -;; <newtagname newattrname="newvalue"></newtagname>
 -;;
 -;; 4)
 -;; tagname = newtagname
 -;; tagname->attr1 = newattrname
 -;; tagname->attr2 = newattrname
 -;; tagname->attr1+value|attr2+value = newvalue
 -;;
 -;; in this case, two attributes combine to make one new attribute, and the combined
 -;; value is translated into a new value
 -;; <tagname attr1="value1" attr2="value2"></tagname> will become
 -;; <newtagname newattrname="newvalue"></newtagname>
 -;;
 -;; 5)
 -;; tagname = newtagname
 -;; tagname!attr = dummy
 -;;
 -;; here, the attribute will be ignored.  dummy is not used and may be any value
 -;; <tagname attr="value"></tagname> will become
 -;; <newtagname></newtagname>
 -;;
 -;; 6)
 -;; tagname = newtagname
 -;; tagname! = dummy
 -;;
 -;; here, all attributes will be ignored.  dummy is not used and may be any value
 -;; <tagname attr1="value" attr2="foo"></tagname> will become
 -;; <newtagname></newtagname>
 -;;
 -;; 7)
 -;; tagname = newtagname
 -;; tagname/ = 1
 -;;
 -;; here, the tag will be translated as a single tag with no closing tag, and all
 -;; attributes
 -;; <tagname attr="val">{text text}</tagname> will become
 -;; <newtagname attr="val" />
 -;;
 -;; 8)
 -;; tagname = <starttaginfo />
 -;; /tagname = closetagtext
 -;;
 -;; in this case, the text <starttaginfo> will be inserted exactly as entered for
 -;; <tagname> and closetagtext for </tagname>
 -;; <tagname attr="val"></tagname> will become
 -;; <starttaginfo />closetagtext
 -;;
 -;; 9)
 -;; $attr$my_attribute = newattrname
 -;;
 -;; tagname = newtagname
 -;;
 -;; in this case, all occurences of my_attribute in any tag will be changed to
 -;; newattrname.  This is useful for changing things like role="php" to
 -;; class="php," for example.  Note that the text "$attr$" MUST be on the line
 -;; start for phpDocumentor to recognize it.
 -;;
 -;; 10)
 -;; &entity; = translation text
 -;; " = "
 -;; " = """
 -;; < = <
 -;;
 -;; Use this to control translation of entities to their appropriate values
 -
 -  =  
 -" = "
 -” = ”
 -“ = “
 -& = &
 -< = <
 -> = >
 -© = ©
 -
 -
 -$attr$role = class
 -
 -abbrev = abbr
 -
 -blockquote = blockquote
 -
 -arg = span
 -arg->choice = class
 -
 -author = <span class="author">
 -/author = </span>
 -author! = 0
 -
 -authorblurb = <div class="author-blurb">
 -/authorblurb = </div>
 -
 -authorgroup = <div class="authors"><h2 class="title">Authors</h2>
 -/authorgroup = </div>
 -authorgroup! = 0
 -
 -caution = <span class="warning">
 -/caution = </span>
 -caution! = 0
 -
 -cmdsynopsis = <div class="cmd-synopsis">
 -/cmdsynopsis = </div>
 -
 -command = <span class="cmd-title">
 -/command = </span>
 -
 -copyright = <div class="notes">
 -/copyright = </div>
 -
 -emphasis = em
 -
 -example = <pre class="example">
 -/example = </pre>
 -example! = 0
 -
 -function =
 -/function = ()
 -
 -formalpara = p
 -
 -graphic = img
 -graphic->fileref = src
 -graphic/ =
 -
 -important = strong
 -
 -informalequation = blockquote
 -
 -informalexample = div
 -
 -inlineequation = em
 -
 -itemizedlist = ul
 -
 -listitem = li
 -
 -literal = code
 -
 -literallayout = span
 -
 -option = " "
 -/option = 
 -
 -orderedlist = ol
 -
 -para = p
 -
 -programlisting = <pre class="listing">
 -/programlisting = </pre>
 -programlisting! = 0
 -
 -refentry = div
 -
 -refnamediv = <div class="ref-title-box">
 -/refnamediv = </div>
 -refnamediv! = 0
 -
 -refname = <h1 class="ref-title">
 -/refname = </h1>
 -
 -refpurpose = <h2 class="ref-purpose">
 -/refpurpose = </h2>
 -
 -refsynopsisdiv = <div class="ref-synopsis">
 -/refsynopsisdiv = </div>
 -refsynopsisdiv! = 0
 -
 -refsect1 = span
 -
 -refsect2 = span
 -
 -refsect3 = 
 -/refsect3 = <br />
 -
 -releaseinfo = <div class="release-info">(
 -/releaseinfo = )</div>
 -
 -simpara = 
 -/simpara = <br />
 -simpara! = 0
 -
 -subscript = sub
 -
 -superscript = super
 -
 -table = table
 -
 -table->colsep = rules
 -table->rowsep = rules
 -table->colsep+1|rowsep+1 =all
 -table->colsep+1|rowsep+0 =cols
 -table->colsep+0|rowsep+1 =rows
 -
 -table->frame =frame
 -table->frame+all =border
 -table->frame+none =void
 -table->frame+sides =vsides
 -table->frame+top =above
 -table->frame+topbot =hsides
 -
 -thead = thead
 -
 -tfoot = tfoot
 -
 -tbody = tbody
 -
 -colspec = col
 -
 -tgroup = colgroup
 -tgroup/ = 1
 -tgroup->cols = span
 -
 -row = tr
 -
 -entry = td
 -entry->morerows = colspan
 -entry->morerows+1 =2
 -entry->morerows+2 =3
 -entry->morerows+3 =4
 -entry->morerows+4 =5
 -entry->morerows+5 =6
 -entry->morerows+6 =7
 -entry->morerows+7 =8
 -entry->morerows+8 =9
 -entry->morerows+9 =10
 -entry->morerows+10 =11
 -;; add more if you need more colspans
 -
 -warning = <span class="warning">
 -/warning = </span>
 -warning! = 0
 -
 -;; now begins the attributes that should be tags in cdata
 -[$attr$id]
 -open = a
 -;close = /a
 -cdata! = true
 -quotevalues = true
 -separator = "="
 -;separateall = true
 -$id = name
 -
 -;; now begins the sections that deal with <title>
 -[refsynopsisdiv_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <h1 class="title">
 -close = </h1>
 -
 -[refsect1_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <h2 class="title">
 -close = </h2>
 -
 -[refsect2_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <h3 class="title">
 -close = </h3>
 -
 -[refsect3_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <h4 class="title">
 -close = </h4>
 -
 -[para_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <div class="title">
 -close = </div>
 -
 -[formalpara_title]
 -;tag_attr = true
 -;attr_name = title
 -cdata_start = true
 -;cdata_end = true
 -open = <div class="title">
 -close = </div>
 -
 -[example_title]
 -;tag_attr = true
 -;attr_name = title
 -;cdata_start = true
 -cdata_end = true
 -open = </td></tr><tr><td><strong>
 -close = </strong>
 -
 -[table_title]
 -;tag_attr = true
 -;attr_name = true
 -cdata_start = true
 -open = <caption>
 -close = </caption>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/basicindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/basicindex.tpl deleted file mode 100644 index 711e1d2e..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/basicindex.tpl +++ /dev/null @@ -1,47 +0,0 @@ -<div class="index-letter-menu">
 -{section name=letter loop=$letters}
 -	<a class="index-letter" href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a>
 -{/section}
 -</div>
 -
 -{section name=index loop=$index}
 -	<a name="{$index[index].letter}"></a>
 -	<div class="index-letter-section">
 -		<div style="float: left" class="index-letter-title">{$index[index].letter}</div>
 -		<div style="float: right"><a href="#top">top</a></div>
 -		<div style="clear: both"></div>
 -	</div>
 -	<dl>
 -	{section name=contents loop=$index[index].index}
 -		<dt class="field">
 -			{if ($index[index].index[contents].title == "Variable")}
 -			<span class="var-title">{$index[index].index[contents].name}</span>
 -			{elseif ($index[index].index[contents].title == "Global")}
 -			<span class="var-title">{$index[index].index[contents].name}</span>
 -			{elseif ($index[index].index[contents].title == "Method")}
 -			<span class="method-title">{$index[index].index[contents].name}</span>
 -			{elseif ($index[index].index[contents].title == "Function")}
 -			<span class="method-title">{$index[index].index[contents].name}</span>
 -			{elseif ($index[index].index[contents].title == "Constant")}
 -			<span class="const-title">{$index[index].index[contents].name}</span>
 -			{elseif ($index[index].index[contents].title == "Page") || ($index[index].index[contents].title == "Include")}
 -			<span class="include-title">{$index[index].index[contents].name}</span>
 -			{else}
 -			{$index[index].index[contents].name}
 -			{/if}
 -		</dt>
 -		<dd class="index-item-body">
 -			<div class="index-item-details">{$index[index].index[contents].link} in {$index[index].index[contents].file_name}</div>
 -			{if $index[index].index[contents].description}
 -				<div class="index-item-description">{$index[index].index[contents].description}</div>
 -			{/if}
 -		</dd>
 -	{/section}
 -	</dl>
 -{/section}
 -
 -<div class="index-letter-menu">
 -{section name=letter loop=$letters}
 -	<a class="index-letter" href="{$indexname}.html#{$letters[letter].letter}">{$letters[letter].letter}</a>
 -{/section}
 -</div>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/blank.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/blank.tpl deleted file mode 100644 index 1fbaca2f..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/blank.tpl +++ /dev/null @@ -1,13 +0,0 @@ -<html>
 -<head>
 -	<title>{$maintitle}</title>
 -			<link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
 -			<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
 -</head>
 -<body>
 -<div align="center"><h1>{$maintitle}</h1></div>
 -<b>Welcome to {$package}!</b><br />
 -<br />
 -This documentation was generated by <a href="{$phpdocwebsite}">phpDocumentor v{$phpdocversion}</a><br />
 -</body>
 -</html>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/class.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/class.tpl deleted file mode 100644 index cc1c080b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/class.tpl +++ /dev/null @@ -1,402 +0,0 @@ -{include file="header.tpl" top3=true}
 -
 -<h2 class="class-name">{if $is_interface}Interface{else}Class{/if} {$class_name}</h2>
 -
 -<a name="sec-description"></a>
 -<div class="info-box">
 -	<div class="info-box-title">Description</div>
 -	<div class="nav-bar">
 -		{if $children || $vars || $ivars || $methods || $imethods || $consts || $iconsts }
 -			<span class="disabled">Description</span> |
 -		{/if}
 -		{if $children}
 -			<a href="#sec-descendents">Descendents</a>
 -			{if $vars || $ivars || $methods || $imethods || $consts || $iconsts}|{/if}
 -		{/if}
 -		{if $vars || $ivars}
 -			{if $vars}
 -				<a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
 -			{else}
 -				<a href="#sec-vars">Vars</a>
 -			{/if}
 -			{if $methods || $imethods}|{/if}
 -		{/if}
 -		{if $methods || $imethods}
 -			{if $methods}
 -				<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
 -			{else}
 -				<a href="#sec-methods">Methods</a>
 -			{/if}			
 -		{/if}
 -		{if $consts || $iconsts}
 -			{if $consts}
 -				<a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
 -			{else}
 -				<a href="#sec-consts">Constants</a>
 -			{/if}			
 -		{/if}
 -	</div>
 -	<div class="info-box-body">
 -        {if $implements}
 -        <p class="implements">
 -            Implements interfaces:
 -            <ul>
 -                {foreach item="int" from=$implements}<li>{$int}</li>{/foreach}
 -            </ul>
 -        </p>
 -        {/if}
 -		{include file="docblock.tpl" type="class" sdesc=$sdesc desc=$desc}
 -		<p class="notes">
 -			Located in <a class="field" href="{$page_link}">{$source_location}</a> (line <span class="field">{if $class_slink}{$class_slink}{else}{$line_number}{/if}</span>)
 -		</p>
 -		
 -		{if $tutorial}
 -			<hr class="separator" />
 -			<div class="notes">Tutorial: <span class="tutorial">{$tutorial}</span></div>
 -		{/if}
 -		
 -		<pre>{section name=tree loop=$class_tree.classes}{$class_tree.classes[tree]}{$class_tree.distance[tree]}{/section}</pre>
 -	
 -		{if $conflicts.conflict_type}
 -			<hr class="separator" />
 -			<div><span class="warning">Conflicts with classes:</span><br /> 
 -			{section name=me loop=$conflicts.conflicts}
 -				{$conflicts.conflicts[me]}<br />
 -			{/section}
 -			</div>
 -		{/if}
 -	</div>
 -</div>
 -
 -{if $children}
 -	<a name="sec-descendents"></a>
 -	<div class="info-box">
 -		<div class="info-box-title">Direct descendents</div>
 -		<div class="nav-bar">
 -			<a href="#sec-description">Description</a> |
 -			<span class="disabled">Descendents</span>
 -			{if $vars || $ivars || $methods || $imethods}|{/if}
 -			{if $vars || $ivars}
 -				{if $vars}
 -					<a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
 -				{else}
 -					<a href="#sec-vars">Vars</a>
 -				{/if}
 -				{if $methods || $imethods}|{/if}
 -			{/if}
 -			{if $methods || $imethods}
 -				{if $methods}
 -					<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
 -				{else}
 -					<a href="#sec-methods">Methods</a>
 -				{/if}			
 -			{/if}
 -			{if $consts || $iconsts}
 -				{if $consts}
 -					<a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
 -				{else}
 -					<a href="#sec-consts">Constants</a>
 -				{/if}			
 -			{/if}
 -		</div>
 -		<div class="info-box-body">
 -			<table cellpadding="2" cellspacing="0" class="class-table">
 -				<tr>
 -					<th class="class-table-header">Class</th>
 -					<th class="class-table-header">Description</th>
 -				</tr>
 -				{section name=kids loop=$children}
 -				<tr>
 -					<td style="padding-right: 2em">{$children[kids].link}</td>
 -					<td>
 -					{if $children[kids].sdesc}
 -						{$children[kids].sdesc}
 -					{else}
 -						{$children[kids].desc}
 -					{/if}
 -					</td>
 -				</tr>
 -				{/section}
 -			</table>
 -		</div>
 -	</div>
 -{/if}
 -
 -{if $consts}
 -	<a name="sec-const-summary"></a>
 -	<div class="info-box">
 -		<div class="info-box-title">Class Constant Summary</span></div>
 -		<div class="nav-bar">
 -			<a href="#sec-description">Description</a> |
 -			{if $children}
 -				<a href="#sec-descendents">Descendants</a> |
 -			{/if}
 -			<span class="disabled">Constants</span> (<a href="#sec-consts">details</a>)
 -			{if $vars || $ivars}
 -				{if $vars}
 -					<a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
 -				{else}
 -					<a href="#sec-vars">Vars</a>
 -				{/if} 
 -				|
 -			{/if}
 -			{if $methods || $imethods}
 -				| 
 -				{if $methods}
 -					<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
 -				{else}
 -					<a href="#sec-methods">Methods</a>
 -				{/if}			
 -			{/if}
 -		</div>
 -		<div class="info-box-body">
 -			<div class="const-summary">
 -				{section name=consts loop=$consts}
 -				<div class="const-title">
 -					<img src="{$subdir}media/images/Constant.png" alt=" " />
 -					<a href="#{$consts[consts].const_name}" title="details" class="const-name">{$consts[consts].const_name}</a> = 					<span class="var-type">{$consts[consts].const_value}</span>
 -
 -				</div>
 -				{/section}
 -			</div>
 -		</div>
 -	</div>
 -{/if}
 -
 -{if $vars}
 -	<a name="sec-var-summary"></a>
 -	<div class="info-box">
 -		<div class="info-box-title">Variable Summary</span></div>
 -		<div class="nav-bar">
 -			<a href="#sec-description">Description</a> |
 -			{if $children}
 -				<a href="#sec-descendents">Descendents</a> |
 -			{/if}
 -			<span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
 -			{if $methods || $imethods}
 -				| 
 -				{if $methods}
 -					<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
 -				{else}
 -					<a href="#sec-methods">Methods</a>
 -				{/if}			
 -			{/if}
 -			{if $consts || $iconsts}
 -				{if $consts}
 -					<a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
 -				{else}
 -					<a href="#sec-consts">Constants</a>
 -				{/if}			
 -			{/if}
 -		</div>
 -		<div class="info-box-body">
 -			<div class="var-summary">
 -				{section name=vars loop=$vars}
 -				<div class="var-title">
 -					<span class="var-type">{$vars[vars].var_type}</span>
 -					<a href="#{$vars[vars].var_name}" title="details" class="var-name">{$vars[vars].var_name}</a>
 -				</div>
 -				{/section}
 -			</div>
 -		</div>
 -	</div>
 -{/if}
 -
 -{if $methods}
 -	<a name="sec-method-summary"></a>
 -	<div class="info-box">
 -		<div class="info-box-title">Method Summary</span></div>
 -		<div class="nav-bar">
 -			<a href="#sec-description">Description</a> |
 -			{if $children}
 -				<a href="#sec-descendents">Descendents</a> |
 -			{/if}
 -			{if $consts || $iconsts}
 -				{if $consts}
 -					<a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
 -				{else}
 -					<a href="#sec-consts">Constants</a>
 -				{/if}			
 -			{/if}
 -			{if $vars || $ivars}
 -				{if $vars}
 -					<a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
 -				{else}
 -					<a href="#sec-vars">Vars</a>
 -				{/if} 
 -				|
 -			{/if}
 -			<span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
 -		</div>
 -		<div class="info-box-body">			
 -			<div class="method-summary">
 -				{section name=methods loop=$methods}				
 -				<div class="method-definition">
 -					{if $methods[methods].function_return}
 -						<span class="method-result">{$methods[methods].function_return}</span>
 -					{/if}
 -					<a href="#{$methods[methods].function_name}" title="details" class="method-name">{if $methods[methods].ifunction_call.returnsref}&{/if}{$methods[methods].function_name}</a>
 -					{if count($methods[methods].ifunction_call.params)}
 -						({section name=params loop=$methods[methods].ifunction_call.params}{if $smarty.section.params.iteration != 1}, {/if}{if $methods[methods].ifunction_call.params[params].default}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span> <span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].default} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
 -					{else}
 -					()
 -					{/if}
 -				</div>
 -				{/section}
 -			</div>
 -		</div>
 -	</div>		
 -{/if}
 -
 -{if $vars || $ivars}
 -	<a name="sec-vars"></a>
 -	<div class="info-box">
 -		<div class="info-box-title">Variables</div>
 -		<div class="nav-bar">
 -			<a href="#sec-description">Description</a> |
 -			{if $children}
 -				<a href="#sec-descendents">Descendents</a> |
 -			{/if}
 -			{if $methods}
 -				<a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
 -			{else}
 -				<span class="disabled">Vars</span>
 -			{/if}			
 -			
 -			{if $consts || $iconsts}
 -				{if $consts}
 -					<a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
 -				{else}
 -					<a href="#sec-consts">Constants</a>
 -				{/if}			
 -			{/if}
 -			{if $methods || $imethods}
 -				| 
 -				{if $methods}
 -					<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
 -				{else}
 -					<a href="#sec-methods">Methods</a>
 -				{/if}			
 -			{/if}
 -		</div>
 -		<div class="info-box-body">
 -			{include file="var.tpl"}
 -			{if $ivars}
 -				<h4>Inherited Variables</h4>
 -				<A NAME='inherited_vars'><!-- --></A>
 -				{section name=ivars loop=$ivars}
 -					<p>Inherited from <span class="classname">{$ivars[ivars].parent_class}</span></p>
 -					<blockquote>
 -						{section name=ivars2 loop=$ivars[ivars].ivars}
 -							<span class="var-title">
 -								<span class="var-name">{$ivars[ivars].ivars[ivars2].link}</span>{if $ivars[ivars].ivars[ivars2].ivar_sdesc}: {$ivars[ivars].ivars[ivars2].ivar_sdesc}{/if}<br>
 -							</span>
 -						{/section}
 -					</blockquote> 
 -				{/section}
 -			{/if}			
 -		</div>
 -	</div>
 -{/if}
 -	
 -{if $methods || $imethods}
 -	<a name="sec-methods"></a>
 -	<div class="info-box">
 -		<div class="info-box-title">Methods</div>
 -		<div class="nav-bar">
 -			<a href="#sec-description">Description</a> |
 -			{if $children}
 -				<a href="#sec-descendents">Descendents</a> |
 -			{/if}
 -			{if $vars || $ivars}
 -				{if $vars}
 -					<a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
 -				{else}
 -					<a href="#sec-vars">Vars</a>
 -				{/if}
 -			{/if}
 -			{if $consts || $iconsts}
 -				{if $consts}
 -					<a href="#sec-const-summary">Constants</a> (<a href="#sec-consts">details</a>)
 -				{else}
 -					<a href="#sec-consts">Constants</a>
 -				{/if}			
 -			{/if}
 -			{if $methods}
 -				<a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
 -			{else}
 -				<span class="disabled">Methods</span>
 -			{/if}			
 -		</div>
 -		<div class="info-box-body">
 -			{include file="method.tpl"}
 -			{if $imethods}
 -				<h4>Inherited Methods</h4>
 -				<a name='inherited_methods'><!-- --></a>	
 -				{section name=imethods loop=$imethods}
 -					<!-- =========== Summary =========== -->
 -					<p>Inherited From <span class="classname">{$imethods[imethods].parent_class}</span></p>
 -					<blockquote>
 -						{section name=im2 loop=$imethods[imethods].imethods}
 -							<span class="method-name">{$imethods[imethods].imethods[im2].link}</span>{if $imethods[imethods].imethods[im2].ifunction_sdesc}: {$imethods[imethods].imethods[im2].ifunction_sdesc}{/if}<br>
 -						{/section}
 -					</blockquote>
 -				{/section}
 -			{/if}			
 -		</div>
 -	</div>
 -{/if}
 -
 -{if $consts || $iconsts}
 -	<a name="sec-consts"></a>
 -	<div class="info-box">
 -		<div class="info-box-title">Class Constants</div>
 -		<div class="nav-bar">
 -			<a href="#sec-description">Description</a> |
 -			{if $children}
 -				<a href="#sec-descendents">Descendants</a> |
 -			{/if}
 -			{if $methods}
 -				<a href="#sec-var-summary">Constants</a> (<span class="disabled">details</span>)
 -			{else}
 -				<span class="disabled">Constants</span>
 -			{/if}			
 -			
 -			{if $vars || $ivars}
 -				{if $vars}
 -					<a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
 -				{else}
 -					<a href="#sec-vars">Vars</a>
 -				{/if}
 -			{/if}
 -			{if $methods || $imethods}
 -				| 
 -				{if $methods}
 -					<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
 -				{else}
 -					<a href="#sec-methods">Methods</a>
 -				{/if}			
 -			{/if}
 -		</div>
 -		<div class="info-box-body">
 -			{include file="const.tpl"}
 -			{if $iconsts}
 -				<h4>Inherited Constants</h4>
 -				<A NAME='inherited_vars'><!-- --></A>
 -				{section name=iconsts loop=$iconsts}
 -					<p>Inherited from <span class="classname">{$iconsts[iconsts].parent_class}</span></p>
 -					<blockquote>
 -						{section name=iconsts2 loop=$iconsts[iconsts].iconsts}
 -							<img src="{$subdir}media/images/{if $iconsts[iconsts].iconsts[iconsts2].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
 -							<span class="const-title">
 -								<span class="const-name">{$iconsts[iconsts].iconsts[iconsts2].link}</span>{if $iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}: {$iconsts[iconsts].iconsts[iconsts2].iconst_sdesc}{/if}<br>
 -							</span>
 -						{/section}
 -					</blockquote> 
 -				{/section}
 -			{/if}			
 -		</div>
 -	</div>
 -{/if}
 -
 -{include file="footer.tpl" top3=true}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/classtrees.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/classtrees.tpl deleted file mode 100644 index 5188e8cf..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/classtrees.tpl +++ /dev/null @@ -1,11 +0,0 @@ -{include file="header.tpl" top1=true}
 -
 -<!-- Start of Class Data -->
 -<H2>
 -	{$smarty.capture.title}
 -</H2>
 -{section name=classtrees loop=$classtrees}
 -<h2>Root class {$classtrees[classtrees].class}</h2>
 -{$classtrees[classtrees].class_tree}
 -{/section}
 -{include file="footer.tpl"}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/const.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/const.tpl deleted file mode 100644 index 4157488f..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/const.tpl +++ /dev/null @@ -1,18 +0,0 @@ -{section name=consts loop=$consts}
 -<a name="const{$consts[consts].const_name}" id="{$consts[consts].const_name}"><!-- --></A>
 -<div class="{cycle values="evenrow,oddrow"}">
 -
 -	<div class="const-header">
 -		<img src="{$subdir}media/images/{if $consts[consts].access == 'private'}PrivateVariable{else}Variable{/if}.png" />
 -		<span class="const-title">
 -			<span class="const-name">{$consts[consts].const_name}</span>
 -			 = <span class="const-default">{$consts[consts].const_value|replace:"\n":"<br />"}</span>
 -			(line <span class="line-number">{if $consts[consts].slink}{$consts[consts].slink}{else}{$consts[consts].line_number}{/if}</span>)
 -		</span>
 -	</div>
 -
 -	{include file="docblock.tpl" sdesc=$consts[consts].sdesc desc=$consts[consts].desc tags=$consts[consts].tags}	
 -	
 -</div>
 -{/section}
 -
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/define.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/define.tpl deleted file mode 100644 index ab76faa2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/define.tpl +++ /dev/null @@ -1,24 +0,0 @@ -{section name=def loop=$defines}
 -<a name="{$defines[def].define_link}"><!-- --></a>
 -<div class="{cycle values="evenrow,oddrow"}">
 -	
 -	<div>
 -		<span class="const-title">
 -			<span class="const-name">{$defines[def].define_name}</span> = {$defines[def].define_value|replace:"\n":"<br />"}
 -			(line <span class="line-number">{if $defines[def].slink}{$defines[def].slink}{else}{$defines[def].line_number}{/if}</span>)
 -		</span>
 -	</div>
 -	
 -	{include file="docblock.tpl" sdesc=$defines[def].sdesc desc=$defines[def].desc tags=$defines[def].tags}
 -	
 -	{if $globals[glob].global_conflicts.conflict_type}
 -		<hr class="separator" />
 -		<div><span class="warning">Conflicts with constants:</span><br /> 
 -			{section name=me loop=$defines[def].define_conflicts.conflicts}
 -				{$defines[def].define_conflicts.conflicts[me]}<br />
 -			{/section}
 -		</div>
 -	{/if}
 -	
 -</div>
 -{/section}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/docblock.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/docblock.tpl deleted file mode 100644 index 8a87c9b7..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/docblock.tpl +++ /dev/null @@ -1,14 +0,0 @@ -<!-- ========== Info from phpDoc block ========= -->
 -{if $sdesc}
 -<p class="short-description">{$sdesc}</p>
 -{/if}
 -{if $desc}
 -<p class="description">{$desc}</p>
 -{/if}
 -{if $tags}
 -	<ul class="tags">
 -		{section name=tags loop=$tags}
 -		<li><span class="field">{$tags[tags].keyword}:</span> {$tags[tags].data}</li>
 -		{/section}
 -	</ul>
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/elementindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/elementindex.tpl deleted file mode 100644 index 6e651db1..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/elementindex.tpl +++ /dev/null @@ -1,12 +0,0 @@ -{include file="header.tpl" noleftindex=true}
 -<a name="top"></a>
 -<h2>Full index</h2>
 -<h3>Package indexes</h3>
 -<ul>
 -{section name=p loop=$packageindex}
 -	<li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
 -{/section}
 -</ul>
 -<br />
 -{include file="basicindex.tpl" indexname="elementindex"}
 -{include file="footer.tpl"}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/errors.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/errors.tpl deleted file mode 100644 index 1576a822..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/errors.tpl +++ /dev/null @@ -1,21 +0,0 @@ -{include file="header.tpl" noleftindex=true}
 -{section name=files loop=$files}
 -<a href="#{$files[files].file}">{$files[files].file}</a><br>
 -{/section}
 -{foreach key=file item=issues from=$all}
 -<a name="{$file}"></a>
 -<h1>{$file}</h1>
 -{if count($issues.warnings)}
 -<h2>Warnings:</h2><br>
 -{section name=warnings loop=$issues.warnings}
 -<b>{$issues.warnings[warnings].name}</b> - {$issues.warnings[warnings].listing}<br>
 -{/section}
 -{/if}
 -{if count($issues.errors)}
 -<h2>Errors:</h2><br>
 -{section name=errors loop=$issues.errors}
 -<b>{$issues.errors[errors].name}</b> - {$issues.errors[errors].listing}<br>
 -{/section}
 -{/if}
 -{/foreach}
 -{include file="footer.tpl"}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/examplesource.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/examplesource.tpl deleted file mode 100644 index c813280b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/examplesource.tpl +++ /dev/null @@ -1,6 +0,0 @@ -{include file="header.tpl" title=$title}
 -<h1>{$title}</h1>
 -<div class="listing">
 -{$source}
 -</div>
 -{include file="footer.tpl"}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/filesource.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/filesource.tpl deleted file mode 100644 index 4fd821a2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/filesource.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{capture name="tutle"}File Source for {$name}{/capture}
 -{include file="header.tpl" title=$smarty.capture.tutle}
 -<h1>Source for file {$name}</h1>
 -<p>Documentation is available at {$docs}</p>
 -<div class="src-code">
 -{$source}
 -</div>
 -{include file="footer.tpl"}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/footer.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/footer.tpl deleted file mode 100644 index 424ebbe2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/footer.tpl +++ /dev/null @@ -1,8 +0,0 @@ -{if !$index}
 -	<p class="notes" id="credit">
 -		Documentation generated on {$date} by <a href="{$phpdocwebsite}" target="_blank">phpDocumentor {$phpdocversion}</a>
 -	</p>
 -{/if}
 -	{if $top3}</div>{/if}
 -</body>
 -</html>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/function.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/function.tpl deleted file mode 100644 index 2750a97e..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/function.tpl +++ /dev/null @@ -1,44 +0,0 @@ -{section name=func loop=$functions}
 -<a name="{$functions[func].function_dest}" id="{$functions[func].function_dest}"><!-- --></a>
 -<div class="{cycle values="evenrow,oddrow"}">
 -	
 -	<div>
 -		<span class="method-title">{$functions[func].function_name}</span> (line <span class="line-number">{if $functions[func].slink}{$functions[func].slink}{else}{$functions[func].line_number}{/if}</span>)
 -	</div> 
 -
 -	{include file="docblock.tpl" sdesc=$functions[func].sdesc desc=$functions[func].desc tags=$functions[func].tags params=$functions[func].params function=false}
 -	
 -	<div class="method-signature">
 -		<span class="method-result">{$functions[func].function_return}</span>
 -		<span class="method-name">
 -			{if $functions[func].ifunction_call.returnsref}&{/if}{$functions[func].function_name}
 -		</span>
 -		{if count($functions[func].ifunction_call.params)}
 -			({section name=params loop=$functions[func].ifunction_call.params}{if $smarty.section.params.iteration != 1}, {/if}{if $functions[func].ifunction_call.params[params].hasdefault}[{/if}<span class="var-type">{$functions[func].ifunction_call.params[params].type}</span> <span class="var-name">{$functions[func].ifunction_call.params[params].name}</span>{if $functions[func].ifunction_call.params[params].hasdefault} = <span class="var-default">{$functions[func].ifunction_call.params[params].default|escape:"html"}</span>]{/if}{/section})
 -		{else}
 -		()
 -		{/if}
 -	</div>
 -
 -	{if $functions[func].params}
 -		<ul class="parameters">
 -		{section name=params loop=$functions[func].params}
 -			<li>
 -				<span class="var-type">{$functions[func].params[params].datatype}</span>
 -				<span class="var-name">{$functions[func].params[params].var}</span>{if $functions[func].params[params].data}<span class="var-description">: {$functions[func].params[params].data}</span>{/if}
 -			</li>
 -		{/section}
 -		</ul>
 -	{/if}
 -	
 -	{if $functions[func].function_conflicts.conflict_type}
 -		<hr class="separator" />
 -		<div><span class="warning">Conflicts with functions:</span><br /> 
 -			{section name=me loop=$functions[func].function_conflicts.conflicts}
 -				{$functions[func].function_conflicts.conflicts[me]}<br />
 -			{/section}
 -		</div>
 -	{/if}
 -
 -</div>
 -{/section}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/global.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/global.tpl deleted file mode 100644 index 3c89ddfc..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/global.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{section name=glob loop=$globals}
 -<a name="{$globals[glob].global_link}" id="{$globals[glob].global_link}"><!-- --></a>
 -<div class="{cycle values="evenrow,oddrow"}">
 -	
 -	<div>
 -		<span class="var-title">
 -			<span class="var-type">{$globals[glob].global_type}</span>
 -			<span class="var-name">{$globals[glob].global_name}</span>
 -			{if $vars[vars].var_default} = <span class="var-default">{$globals[glob].global_value|replace:"\n":"<br />"}</span>{/if}
 -			(line <span class="line-number">{if $globals[glob].slink}{$globals[glob].slink}{else}{$globals[glob].line_number}{/if}</span>)
 -		</span>
 -	</div>
 -
 -	{include file="docblock.tpl" sdesc=$globals[glob].sdesc desc=$globals[glob].desc tags=$globals[glob].tags}
 -	
 -	{if $globals[glob].global_conflicts.conflict_type}
 -		<hr class="separator" />
 -		<div><span class="warning">Conflicts with global variables:</span><br /> 
 -			{section name=me loop=$globals[glob].global_conflicts.conflicts}
 -				{$globals[glob].global_conflicts.conflicts[me]}<br />
 -			{/section}
 -		</div>
 -	{/if}
 -	
 -</div>
 -{/section}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/header.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/header.tpl deleted file mode 100644 index d5e26dfa..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/header.tpl +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-1"?>
 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 -  <html xmlns="http://www.w3.org/1999/xhtml">
 -		<head>
 -			<!-- template designed by Marco Von Ballmoos -->
 -			<title>{$title}</title>
 -			<link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
 -			<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
 -		</head>
 -		<body>
 -			{if $top3}<div class="page-body">{/if}
 -			
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/include.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/include.tpl deleted file mode 100644 index bd408aff..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/include.tpl +++ /dev/null @@ -1,16 +0,0 @@ -{section name=includes loop=$includes}
 -<a name="{$includes[includes].include_file}"><!-- --></a>
 -<div class="{cycle values="evenrow,oddrow"}">
 -	
 -	<div>
 -		<span class="include-title">
 -			<span class="include-type">{$includes[includes].include_name}</span>
 -			(<span class="include-name">{$includes[includes].include_value}</span>)
 -			(line <span class="line-number">{if $includes[includes].slink}{$includes[includes].slink}{else}{$includes[includes].line_number}{/if}</span>)
 -		</span>
 -	</div>
 -
 -	{include file="docblock.tpl" sdesc=$includes[includes].sdesc desc=$includes[includes].desc tags=$includes[includes].tags}
 -	
 -</div>
 -{/section}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/index.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/index.tpl deleted file mode 100644 index 477d2b17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/index.tpl +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-1"?>
 -<!DOCTYPE html 
 -     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//FR"
 -     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
 -   <html xmlns="http://www.w3.org/1999/xhtml">
 -<head>
 -	<!-- Generated by phpDocumentor on {$date}  -->
 -  <title>{$title}</title>
 -  <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
 -</head>
 -
 -<FRAMESET rows='120,*'>
 -	<FRAME src='packages.html' name='left_top' frameborder="1" bordercolor="#999999">
 -	<FRAMESET cols='25%,*'>
 -		<FRAME src='{$start}' name='left_bottom' frameborder="1" bordercolor="#999999">
 -		<FRAME src='{$blank}.html' name='right' frameborder="1" bordercolor="#999999">
 -	</FRAMESET>
 -	<NOFRAMES>
 -		<H2>Frame Alert</H2>
 -		<P>This document is designed to be viewed using the frames feature.
 -		If you see this message, you are using a non-frame-capable web client.</P>
 -	</NOFRAMES>
 -</FRAMESET>
 -</HTML>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/left_frame.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/left_frame.tpl deleted file mode 100644 index 4232d845..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/left_frame.tpl +++ /dev/null @@ -1,149 +0,0 @@ -{include file="header.tpl" top2=true}
 -<div class="package-title">{$package}</div>
 -<div class="package-details">
 -
 -	<dl class="tree">
 -		
 -		<dt class="folder-title">Description</dt>
 -		<dd>
 -			<a href='{$classtreepage}.html' target='right'>Class trees</a><br />
 -			<a href='{$elementindex}.html' target='right'>Index of elements</a><br />
 -			{if $hastodos}
 -				<a href="{$todolink}" target="right">Todo List</a><br />
 -			{/if}
 -		</dd>
 -	
 -		{section name=p loop=$info}
 -					
 -			{if $info[p].subpackage == ""}
 -				
 -				{if $info[p].tutorials}
 -					<dt class="folder-title">Tutorials/Manuals</dt>
 -					<dd>
 -					{if $info[p].tutorials.pkg}
 -						<dl class="tree">
 -						<dt class="folder-title">Package-level</dt>
 -						<dd>
 -						{section name=ext loop=$info[p].tutorials.pkg}
 -							{$info[p].tutorials.pkg[ext]}
 -						{/section}
 -						</dd>
 -						</dl>
 -					{/if}
 -					
 -					{if $info[p].tutorials.cls}
 -						<dl class="tree">
 -						<dt class="folder-title">Class-level</dt>
 -						<dd>
 -						{section name=ext loop=$info[p].tutorials.cls}
 -							{$info[p].tutorials.cls[ext]}
 -						{/section}
 -						</dd>
 -						</dl>
 -					{/if}
 -					
 -					{if $info[p].tutorials.proc}
 -						<dl class="tree">
 -						<dt class="folder-title">Function-level</dt>
 -						<dd>
 -						{section name=ext loop=$info[p].tutorials.proc}
 -							{$info[p].tutorials.proc[ext]}
 -						{/section}
 -						</dd>
 -						</dl>
 -					{/if}
 -					</dd>
 -				{/if}
 -				{if $info[p].classes}
 -					<dt class="folder-title">Classes</dt>
 -					{section name=class loop=$info[p].classes}
 -						<dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
 -					{/section}
 -				{/if}
 -				{if $info[p].functions}
 -					<dt class="folder-title">Functions</dt>
 -					{section name=f loop=$info[p].functions}
 -						<dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
 -					{/section}
 -				{/if}
 -				{if $info[p].files}
 -					<dt class="folder-title">Files</dt>
 -					{section name=nonclass loop=$info[p].files}
 -						<dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
 -					{/section}
 -				{/if}
 -								
 -			{else}
 -				{if $info[p].tutorials}			
 -					<dt class="folder-title">Tutorials/Manuals</dt>
 -					<dd>
 -					{if $info[p].tutorials.pkg}
 -						<dl class="tree">
 -						<dt class="folder-title">Package-level</dt>
 -						<dd>
 -						{section name=ext loop=$info[p].tutorials.pkg}
 -							{$info[p].tutorials.pkg[ext]}
 -						{/section}
 -						</dd>
 -						</dl>
 -					{/if}
 -					
 -					{if $info[p].tutorials.cls}
 -						<dl class="tree">
 -						<dt class="folder-title">Class-level</dt>
 -						<dd>
 -						{section name=ext loop=$info[p].tutorials.cls}
 -							{$info[p].tutorials.cls[ext]}
 -						{/section}
 -						</dd>
 -						</dl>
 -					{/if}
 -					
 -					{if $info[p].tutorials.proc}
 -						<dl class="tree">
 -						<dt class="folder-title">Function-level</dt>
 -						<dd>
 -						{section name=ext loop=$info[p].tutorials.proc}
 -							{$info[p].tutorials.proc[ext]}
 -						{/section}
 -						</dd>
 -						</dl>
 -					{/if}
 -					</dd>
 -				{/if}
 -				
 -				<dt class="sub-package">{$info[p].subpackage}</dt>
 -				<dd>
 -					<dl class="tree">
 -						{if $info[p].subpackagetutorial}
 -							<div><a href="{$info.0.subpackagetutorialnoa}" target="right">{$info.0.subpackagetutorialtitle}</a></div>
 -						{/if}
 -						{if $info[p].classes}
 -							<dt class="folder-title">Classes</dt>
 -							{section name=class loop=$info[p].classes}
 -								<dd><a href='{$info[p].classes[class].link}' target='right'>{$info[p].classes[class].title}</a></dd>
 -							{/section}
 -						{/if}
 -						{if $info[p].functions}
 -							<dt class="folder-title">Functions</dt>
 -							{section name=f loop=$info[p].functions}
 -								<dd><a href='{$info[p].functions[f].link}' target='right'>{$info[p].functions[f].title}</a></dd>
 -							{/section}
 -						{/if}
 -						{if $info[p].files}
 -							<dt class="folder-title">Files</dt>
 -							{section name=nonclass loop=$info[p].files}
 -								<dd><a href='{$info[p].files[nonclass].link}' target='right'>{$info[p].files[nonclass].title}</a></dd>
 -							{/section}
 -						{/if}
 -					</dl>
 -				</dd>
 -								
 -			{/if}
 -			
 -		{/section}
 -	</dl>
 -</div>
 -<p class="notes"><a href="{$phpdocwebsite}" target="_blank">phpDocumentor v <span class="field">{$phpdocversion}</span></a></p>
 -</BODY>
 -</HTML>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/banner.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/banner.css deleted file mode 100644 index e67227b7..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/banner.css +++ /dev/null @@ -1,32 +0,0 @@ -body 
 -{ 
 -	background-color: #CCCCFF; 
 -	margin: 0px; 
 -	padding: 0px;
 -}
 -
 -/* Banner (top bar) classes */
 -
 -.banner {  }
 -
 -.banner-menu 
 -{ 
 -	clear: both;
 -	padding: .5em;
 -	border-top: 2px solid #6666AA;	
 -}
 -
 -.banner-title 
 -{ 
 -	text-align: right; 
 -	font-size: 20pt; 
 -	font-weight: bold; 
 -	margin: .2em;
 -}
 -
 -.package-selector 
 -{ 
 -	background-color: #AAAADD; 
 -	border: 1px solid black; 
 -	color: yellow;
 -}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/stylesheet.css b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/stylesheet.css deleted file mode 100644 index 88f471f2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/media/stylesheet.css +++ /dev/null @@ -1,144 +0,0 @@ -a { color: #336699; text-decoration: none; }
 -a:hover { color: #6699CC; text-decoration: underline; }
 -a:active { color: #6699CC; text-decoration: underline; }
 -
 -body { background : #FFFFFF; }
 -body, table { font-family: Georgia, Times New Roman, Times, serif; font-size: 10pt }
 -p, li { line-height: 140% }
 -a img { border: 0px; }
 -dd { margin-left: 0px; padding-left: 1em; }
 -
 -/* Page layout/boxes */
 -
 -.info-box {}
 -.info-box-title { margin: 1em 0em 0em 0em; padding: .25em; font-weight: normal; font-size: 14pt; border: 2px solid #999999; background-color: #CCCCFF }
 -.info-box-body { border: 1px solid #999999; padding: .5em; }
 -.nav-bar { font-size: 8pt; white-space: nowrap; text-align: right; padding: .2em; margin: 0em 0em 1em 0em; }
 -
 -.oddrow { background-color: #F8F8F8; border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
 -.evenrow { border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em}
 -
 -.page-body { max-width: 800px; margin: auto; }
 -.tree dl { margin: 0px }
 -
 -/* Index formatting classes */
 -
 -.index-item-body { margin-top: .5em; margin-bottom: .5em}
 -.index-item-description { margin-top: .25em }
 -.index-item-details { font-weight: normal; font-style: italic; font-size: 8pt }
 -.index-letter-section { background-color: #EEEEEE; border: 1px dotted #999999; padding: .5em; margin-bottom: 1em}
 -.index-letter-title { font-size: 12pt; font-weight: bold }
 -.index-letter-menu { text-align: center; margin: 1em }
 -.index-letter { font-size: 12pt }
 -
 -/* Docbook classes */
 -
 -.description {}
 -.short-description { font-weight: bold; color: #666666; }
 -.tags {	padding-left: 0em; margin-left: 3em; color: #666666; list-style-type: square; }
 -.parameters {	padding-left: 0em; margin-left: 3em; font-style: italic; list-style-type: square; }
 -.redefinitions { font-size: 8pt; padding-left: 0em; margin-left: 2em; }
 -.package {  }
 -.package-title { font-weight: bold; font-size: 14pt; border-bottom: 1px solid black }
 -.package-details { font-size: 85%; }
 -.sub-package { font-weight: bold; font-size: 120% }
 -.tutorial { border-width: thin; border-color: #0066ff }
 -.tutorial-nav-box { width: 100%; border: 1px solid #999999; background-color: #F8F8F8; }
 -.nav-button-disabled { color: #999999; }
 -.nav-button:active, 
 -.nav-button:focus, 
 -.nav-button:hover { background-color: #DDDDDD; outline: 1px solid #999999; text-decoration: none }
 -.folder-title { font-style: italic }
 -
 -/* Generic formatting */
 -
 -.field { font-weight: bold; }
 -.detail { font-size: 8pt; }
 -.notes { font-style: italic; font-size: 8pt; }
 -.separator { background-color: #999999; height: 2px; }
 -.warning {  color: #FF6600; }
 -.disabled { font-style: italic; color: #999999; }
 -
 -/* Code elements */
 -
 -.line-number {  }
 -
 -.class-table { width: 100%; }
 -.class-table-header { border-bottom: 1px dotted #666666; text-align: left}
 -.class-name { color: #000000; font-weight: bold; }
 -
 -.method-summary { padding-left: 1em; font-size: 8pt }
 -.method-header { }
 -.method-definition { margin-bottom: .3em }
 -.method-title { font-weight: bold; }
 -.method-name { font-weight: bold; }
 -.method-signature { font-size: 85%; color: #666666; margin: .5em 0em }
 -.method-result { font-style: italic; }
 -
 -.var-summary { padding-left: 1em; font-size: 8pt; }
 -.var-header { }
 -.var-title { margin-bottom: .3em }
 -.var-type { font-style: italic; }
 -.var-name { font-weight: bold; }
 -.var-default {}
 -.var-description { font-weight: normal; color: #000000; }
 -
 -.include-title {  }
 -.include-type { font-style: italic; }
 -.include-name { font-weight: bold; }
 -
 -.const-title {  }
 -.const-name { font-weight: bold; }
 -
 -/* Syntax highlighting */
 -
 -.src-code {  border: 1px solid #336699; padding: 1em; background-color: #EEEEEE; }
 -*[class="src-code"] {	line-height : 0.5em }
 -
 -.src-comm { color: green; }
 -.src-id {  }
 -.src-inc { color: #0000FF; }
 -.src-key { color: #0000FF; }
 -.src-num { color: #CC0000; }
 -.src-str { color: #66cccc; }
 -.src-sym { font-weight: bold; }
 -.src-var { }
 -
 -.src-php { font-weight: bold; }
 -
 -.src-doc { color: #009999 }
 -.src-doc-close-template { color: #0000FF }
 -.src-doc-coretag { color: #0099FF; font-weight: bold }
 -.src-doc-inlinetag { color: #0099FF }
 -.src-doc-internal { color: #6699cc }
 -.src-doc-tag { color: #0080CC }
 -.src-doc-template { color: #0000FF }
 -.src-doc-type { font-style: italic }
 -.src-doc-var { font-style: italic }
 -
 -.tute-tag { color: #009999 }
 -.tute-attribute-name { color: #0000FF }
 -.tute-attribute-value { color: #0099FF }
 -.tute-entity { font-weight: bold; }
 -.tute-comment { font-style: italic }
 -.tute-inline-tag { color: #636311; font-weight: bold }
 -
 -/* tutorial */
 -
 -.authors {  }
 -.author { font-style: italic; font-weight: bold }
 -.author-blurb { margin: .5em 0em .5em 2em; font-size: 85%; font-weight: normal; font-style: normal }
 -.example { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; }
 -*[class="example"] { line-height : 0.5em }
 -.listing { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; white-space: nowrap; }
 -*[class="listing"] { line-height : 0.5em }
 -.release-info { font-size: 85%; font-style: italic; margin: 1em 0em }
 -.ref-title-box {  }
 -.ref-title {  }
 -.ref-purpose { font-style: italic; color: #666666 }
 -.ref-synopsis {  }
 -.title { font-weight: bold; margin: 1em 0em 0em 0em; padding: .25em; border: 2px solid #999999; background-color: #CCCCFF  }
 -.cmd-synopsis { margin: 1em 0em }
 -.cmd-title { font-weight: bold }
 -.toc { margin-left: 2em; padding-left: 0em }
 -
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/method.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/method.tpl deleted file mode 100644 index 3138a925..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/method.tpl +++ /dev/null @@ -1,61 +0,0 @@ -<A NAME='method_detail'></A>
 -{section name=methods loop=$methods}
 -<a name="method{$methods[methods].function_name}" id="{$methods[methods].function_name}"><!-- --></a>
 -<div class="{cycle values="evenrow,oddrow"}">
 -	
 -	<div class="method-header">
 -		<span class="method-title">{if $methods[methods].ifunction_call.constructor}Constructor {elseif $methods[methods].ifunction_call.destructor}Destructor {/if}{$methods[methods].function_name}</span> (line <span class="line-number">{if $methods[methods].slink}{$methods[methods].slink}{else}{$methods[methods].line_number}{/if}</span>)
 -	</div> 
 -	
 -	{include file="docblock.tpl" sdesc=$methods[methods].sdesc desc=$methods[methods].desc tags=$methods[methods].tags params=$methods[methods].params function=false}
 -	
 -	<div class="method-signature">
 -		<span class="method-result">{$methods[methods].function_return}</span>
 -		<span class="method-name">
 -			{if $methods[methods].ifunction_call.returnsref}&{/if}{$methods[methods].function_name}
 -		</span>
 -		{if count($methods[methods].ifunction_call.params)}
 -			({section name=params loop=$methods[methods].ifunction_call.params}{if $smarty.section.params.iteration != 1}, {/if}{if $methods[methods].ifunction_call.params[params].default}[{/if}<span class="var-type">{$methods[methods].ifunction_call.params[params].type}</span> <span class="var-name">{$methods[methods].ifunction_call.params[params].name}</span>{if $methods[methods].ifunction_call.params[params].default} = <span class="var-default">{$methods[methods].ifunction_call.params[params].default}</span>]{/if}{/section})
 -		{else}
 -		()
 -		{/if}
 -	</div>
 -	
 -	{if $methods[methods].params}
 -		<ul class="parameters">
 -		{section name=params loop=$methods[methods].params}
 -			<li>
 -				<span class="var-type">{$methods[methods].params[params].datatype}</span>
 -				<span class="var-name">{$methods[methods].params[params].var}</span>{if $methods[methods].params[params].data}<span class="var-description">: {$methods[methods].params[params].data}</span>{/if}
 -			</li>
 -		{/section}
 -		</ul>
 -	{/if}
 -	
 -	{if $methods[methods].method_overrides}
 -		<hr class="separator" />
 -		<div class="notes">Redefinition of:</div>
 -		<dl>
 -			<dt>{$methods[methods].method_overrides.link}</dt>
 -			{if $methods[methods].method_overrides.sdesc}
 -			<dd>{$methods[methods].method_overrides.sdesc}</dd>
 -			{/if}
 -		</dl>
 -	{/if}
 -	
 -	{if $methods[methods].descmethod}
 -		<hr class="separator" />
 -		<div class="notes">Redefined in descendants as:</div>
 -		<ul class="redefinitions">
 -		{section name=dm loop=$methods[methods].descmethod}
 -			<li>
 -				{$methods[methods].descmethod[dm].link}
 -				{if $methods[methods].descmethod[dm].sdesc}
 -				: {$methods[methods].descmethod[dm].sdesc}
 -				{/if}
 -			</li>
 -		{/section}
 -		</ul>
 -	{/if}
 -</div>
 -{/section}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/page.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/page.tpl deleted file mode 100644 index e5e1913c..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/page.tpl +++ /dev/null @@ -1,211 +0,0 @@ -{include file="header.tpl" top3=true}
 -
 -<h2 class="file-name">{$source_location}</h2>
 -
 -<a name="sec-description"></a>
 -<div class="info-box">
 -	<div class="info-box-title">Description</div>
 -	<div class="nav-bar">
 -		{if $classes || $includes || $defines || $globals || $functions}
 -			<span class="disabled">Description</span> |
 -		{/if}
 -		{if $classes}
 -			<a href="#sec-classes">Classes</a>
 -			{if $includes || $defines || $globals || $functions}|{/if}
 -		{/if}
 -		{if $includes}
 -			<a href="#sec-includes">Includes</a>
 -			{if $defines || $globals || $functions}|{/if}
 -		{/if}
 -		{if $defines}
 -			<a href="#sec-constants">Constants</a>
 -			{if $globals || $functions}|{/if}
 -		{/if}
 -		{if $globals}
 -			<a href="#sec-variables">Variables</a>
 -			{if $functions}|{/if}
 -		{/if}
 -		{if $functions}
 -			<a href="#sec-functions">Functions</a>
 -		{/if}
 -	</div>
 -	<div class="info-box-body">	
 -		{include file="docblock.tpl" desc=$desc sdesc=$sdesc tags=$tags}
 -		
 -		{if $tutorial}
 -			<hr class="separator" />
 -			<div class="notes">Tutorial: <span class="tutorial">{$tutorial}</div>
 -		{/if}
 -	</div>
 -</div>
 -		
 -{if $classes}
 -	<a name="sec-classes"></a>	
 -	<div class="info-box">
 -		<div class="info-box-title">Classes</div>
 -		<div class="nav-bar">
 -			<a href="#sec-description">Description</a> |
 -			<span class="disabled">Classes</span>
 -			{if $includes || $defines || $globals || $functions}|{/if}
 -			{if $includes}
 -				<a href="#sec-includes">Includes</a>
 -				{if $defines || $globals || $functions}|{/if}
 -			{/if}
 -			{if $defines}
 -				<a href="#sec-constants">Constants</a>
 -				{if $globals || $functions}|{/if}
 -			{/if}
 -			{if $globals}
 -				<a href="#sec-variables">Variables</a>
 -				{if $functions}|{/if}
 -			{/if}
 -			{if $functions}
 -				<a href="#sec-functions">Functions</a>
 -			{/if}
 -		</div>
 -		<div class="info-box-body">	
 -			<table cellpadding="2" cellspacing="0" class="class-table">
 -				<tr>
 -					<th class="class-table-header">Class</th>
 -					<th class="class-table-header">Description</th>
 -				</tr>
 -				{section name=classes loop=$classes}
 -				<tr>
 -					<td style="padding-right: 2em; vertical-align: top">
 -						{$classes[classes].link}
 -					</td>
 -					<td>
 -					{if $classes[classes].sdesc}
 -						{$classes[classes].sdesc}
 -					{else}
 -						{$classes[classes].desc}
 -					{/if}
 -					</td>
 -				</tr>
 -				{/section}
 -			</table>
 -		</div>
 -	</div>
 -{/if}
 -
 -{if $includes}
 -	<a name="sec-includes"></a>	
 -	<div class="info-box">
 -		<div class="info-box-title">Includes</div>
 -		<div class="nav-bar">
 -			<a href="#sec-description">Description</a> |
 -			{if $classes}
 -				<a href="#sec-classes">Classes</a>
 -				{if $includes || $defines || $globals || $functions}|{/if}
 -			{/if}
 -			<span class="disabled">Includes</span>
 -			{if $defines || $globals || $functions}|{/if}
 -			{if $defines}
 -				<a href="#sec-constants">Constants</a>
 -				{if $globals || $functions}|{/if}
 -			{/if}
 -			{if $globals}
 -				<a href="#sec-variables">Variables</a>
 -				{if $functions}|{/if}
 -			{/if}
 -			{if $functions}
 -				<a href="#sec-functions">Functions</a>
 -			{/if}
 -		</div>
 -		<div class="info-box-body">	
 -			{include file="include.tpl"}
 -		</div>
 -	</div>
 -{/if}
 -	
 -{if $defines}
 -	<a name="sec-constants"></a>	
 -	<div class="info-box">
 -		<div class="info-box-title">Constants</div>
 -		<div class="nav-bar">
 -			<a href="#sec-description">Description</a> |
 -			{if $classes}
 -				<a href="#sec-classes">Classes</a>
 -				{if $includes || $defines || $globals || $functions}|{/if}
 -			{/if}
 -			{if $includes}
 -				<a href="#sec-includes">Includes</a>
 -				{if $defines || $globals || $functions}|{/if}
 -			{/if}
 -			<span class="disabled">Constants</span>
 -			{if $globals || $functions}|{/if}
 -			{if $globals}
 -				<a href="#sec-variables">Variables</a>
 -				{if $functions}|{/if}
 -			{/if}
 -			{if $functions}
 -				<a href="#sec-functions">Functions</a>
 -			{/if}
 -		</div>
 -		<div class="info-box-body">	
 -			{include file="define.tpl"}
 -		</div>
 -	</div>
 -{/if}
 -	
 -{if $globals}
 -	<a name="sec-variables"></a>	
 -	<div class="info-box">
 -		<div class="info-box-title">Variables</div>
 -		<div class="nav-bar">
 -			<a href="#sec-description">Description</a> |
 -			{if $classes}
 -				<a href="#sec-classes">Classes</a>
 -				{if $includes || $defines || $globals || $functions}|{/if}
 -			{/if}
 -			{if $includes}
 -				<a href="#sec-includes">Includes</a>
 -				{if $defines || $globals || $functions}|{/if}
 -			{/if}
 -			{if $defines}
 -				<a href="#sec-constants">Constants</a>
 -				{if $globals || $functions}|{/if}
 -			{/if}
 -			<span class="disabled">Variables</span>
 -			{if $functions}|{/if}
 -			{if $globals}
 -				<a href="#sec-functions">Functions</a>
 -			{/if}
 -		</div>
 -		<div class="info-box-body">	
 -			{include file="global.tpl"}
 -		</div>
 -	</div>
 -{/if}
 -	
 -{if $functions}
 -	<a name="sec-functions"></a>	
 -	<div class="info-box">
 -		<div class="info-box-title">Functions</div>
 -		<div class="nav-bar">
 -			<a href="#sec-description">Description</a> |
 -			{if $classes}
 -				<a href="#sec-classes">Classes</a>
 -				{if $includes || $defines || $globals || $functions}|{/if}
 -			{/if}
 -			{if $includes}
 -				<a href="#sec-includes">Includes</a>
 -				{if $defines || $globals || $functions}|{/if}
 -			{/if}
 -			{if $defines}
 -				<a href="#sec-constants">Constants</a>
 -				{if $globals || $functions}|{/if}
 -			{/if}
 -			{if $globals}
 -				<a href="#sec-variables">Variables</a>
 -				{if $functions}|{/if}
 -			{/if}
 -			<span class="disabled">Functions</span>
 -		</div>
 -		<div class="info-box-body">	
 -			{include file="function.tpl"}
 -		</div>
 -	</div>
 -{/if}
 -	
 -{include file="footer.tpl" top3=true}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/pkgelementindex.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/pkgelementindex.tpl deleted file mode 100644 index 542af8ed..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/pkgelementindex.tpl +++ /dev/null @@ -1,17 +0,0 @@ -{include file="header.tpl"}
 -<a name="top"></a>
 -<h2>[{$package}] element index</h2>
 -{if count($packageindex) > 1}
 -	<h3>Package indexes</h3>
 -	<ul>
 -	{section name=p loop=$packageindex}
 -	{if $packageindex[p].title != $package}
 -		<li><a href="elementindex_{$packageindex[p].title}.html">{$packageindex[p].title}</a></li>
 -	{/if}
 -	{/section}
 -	</ul>
 -{/if}
 -<a href="elementindex.html">All elements</a>
 -<br />
 -{include file="basicindex.tpl" indexname=elementindex_$package}
 -{include file="footer.tpl"}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/ric.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/ric.tpl deleted file mode 100644 index c4cb83f9..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/ric.tpl +++ /dev/null @@ -1,6 +0,0 @@ -{include file="header.tpl"}
 -<h1 align="center">{$name}</h1>
 -<pre>
 -{$contents|htmlentities}
 -</pre>
 -{include file="footer.tpl"}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/todolist.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/todolist.tpl deleted file mode 100644 index 5ab0bca2..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/todolist.tpl +++ /dev/null @@ -1,14 +0,0 @@ -{include file="header.tpl" title="Todo List"}
 -<div align="center"><h1>Todo List</h1></div>
 -{foreach from=$todos key=todopackage item=todo}
 -<h2>{$todopackage}</h2>
 -{section name=todo loop=$todo}
 -<h3>{$todo[todo].link}</h3>
 -<ul>
 -{section name=t loop=$todo[todo].todos}
 -    <li>{$todo[todo].todos[t]}</li>
 -{/section}
 -</ul>
 -{/section}
 -{/foreach}
 -{include file="footer.tpl"}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/top_frame.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/top_frame.tpl deleted file mode 100644 index 31f559cb..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/top_frame.tpl +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="iso-8859-1"?>
 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 -  <html xmlns="http://www.w3.org/1999/xhtml">
 -		<head>
 -			<!-- template designed by Marco Von Ballmoos -->
 -			<title>{$title}</title>
 -			<link rel="stylesheet" href="{$subdir}media/stylesheet.css" />
 -			<link rel="stylesheet" href="{$subdir}media/banner.css" />
 -			<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'/>
 -		</head>
 -		<body>
 -			<div class="banner">
 -				<div class="banner-title">PRADO API Manual</div>
 -				<div class="banner-menu">
 -	        <table cellpadding="0" cellspacing="0" style="width: 100%">
 -	          <tr>
 -              <td>
 -								{if count($ric) >= 1}
 -									{assign var="last_ric_name" value=""}
 -									{section name=ric loop=$ric}
 -										{if $last_ric_name != ""} | {/if}
 -										<a href="{$ric[ric].file}" target="right">{$ric[ric].name}</a>
 -										{assign var="last_ric_name" value=$ric[ric].name}
 -									{/section}
 -								{/if}
 -              </td>
 -              <td style="width: 2em"> </td>
 -              <td style="text-align: right">
 -								{if count($packages) > 1}
 -									{assign var="last_package_name" value=""}
 -									{section name=p loop=$packages}
 -										{if $last_package_name != ""} | {/if}
 -										<a href="{$packages[p].link}" target="left_bottom">{$packages[p].title}</a>
 -										{assign var="last_package_name" value=$packages[p].title}
 -									{/section}
 -								{/if}
 -              </td>
 -						</tr>
 -          </table>
 -				</div>
 -			</div>
 -		</body>
 -	</html>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial.tpl deleted file mode 100644 index deb1ee04..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial.tpl +++ /dev/null @@ -1,13 +0,0 @@ -{include file="header.tpl" title=$title top3=true}
 -
 -{if $nav}
 -	{include file="tutorial_nav.tpl" prev=$prev next=$next up=$up prevtitle=$prevtitle nexttitle=$nexttitle uptitle=$uptitle}
 -{/if}
 -
 -{$contents}
 -
 -{if $nav}
 -	{include file="tutorial_nav.tpl" prev=$prev next=$next up=$up prevtitle=$prevtitle nexttitle=$nexttitle uptitle=$uptitle}
 -{/if}
 -
 -{include file="footer.tpl" top3=true}
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_nav.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_nav.tpl deleted file mode 100644 index 9b42fec8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_nav.tpl +++ /dev/null @@ -1,41 +0,0 @@ -<table class="tutorial-nav-box">
 -	<tr>
 -		<td style="width: 30%">
 -			{if $prev}
 -				<a href="{$prev}" class="nav-button">Previous</a>
 -			{else}
 -				<span class="nav-button-disabled">Previous</span>
 -			{/if}
 -		</td>
 -		<td style="text-align: center">
 -			{if $up}
 -				<a href="{$up}" class="nav-button">Up</a>
 -			{/if}
 -		</td>
 -		<td style="text-align: right; width: 30%">
 -			{if $next}
 -				<a href="{$next}" class="nav-button">Next</a>
 -			{else}
 -				<span class="nav-button-disabled">Next</span>
 -			{/if}
 -		</td>
 -	</tr>
 -	<tr>
 -		<td style="width: 30%">
 -			{if $prevtitle}
 -				<span class="detail">{$prevtitle}</span>
 -			{/if}
 -		</td>
 -		<td style="text-align: center">
 -			{if $uptitle}
 -				<span class="detail">{$uptitle}</span>
 -			{/if}
 -		</td>
 -		<td style="text-align: right; width: 30%">
 -			{if $nexttitle}
 -				<span class="detail">{$nexttitle}</span>
 -			{/if}
 -		</td>
 -	</tr>
 -</table>
 -	
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_toc.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_toc.tpl deleted file mode 100644 index 314ebd81..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_toc.tpl +++ /dev/null @@ -1,39 +0,0 @@ -{if count($toc)}
 -<h1 class="title">Table of Contents</h1>
 -<ul class="toc">
 -	{assign var="lastcontext" value='refsect1'}
 -	{section name=toc loop=$toc}
 -		
 -		{if $toc[toc].tagname != $lastcontext}
 -		  {if $lastcontext == 'refsect1'}
 -				<ul class="toc">
 -					<li>{$toc[toc].link}</li>
 -			{else}
 -				{if $lastcontext == 'refsect2'}
 -					{if $toc[toc].tagname == 'refsect1'}
 -						</ul>
 -						<li>{$toc[toc].link}</li>
 -					{/if}
 -					{if $toc[toc].tagname == 'refsect3'}
 -						<ul class="toc">
 -							<li>{$toc[toc].link}</li>
 -					{/if}
 -				{else}
 -					</ul>
 -					<li>{$toc[toc].link}</li>
 -				{/if}
 -			{/if}
 -			{assign var="lastcontext" value=$toc[toc].tagname}
 -		{else}
 -			<li>{$toc[toc].link}</li>
 -		{/if}
 -	{/section}
 -	{if $lastcontext == 'refsect2'}
 -		</ul>
 -	{/if}
 -	{if $lastcontext == 'refsect3'}
 -			</ul>
 -		</ul>
 -	{/if}
 -</ul>
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl deleted file mode 100644 index d5a18355..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/tutorial_tree.tpl +++ /dev/null @@ -1,6 +0,0 @@ -<div><a href="{$main.link}" target="right">{$main.title|strip_tags}</a></div>
 -{if $haskids}
 -<div style="margin-left: 1em">
 -	{$kids}
 -</div>
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl deleted file mode 100644 index 59c4d8cd..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Converters/HTML/frames/templates/default/templates/var.tpl +++ /dev/null @@ -1,44 +0,0 @@ -{section name=vars loop=$vars}
 -<a name="var{$vars[vars].var_name}" id="{$vars[vars].var_name}"><!-- --></A>
 -<div class="{cycle values="evenrow,oddrow"}">
 -
 -	<div class="var-header">
 -		<span class="var-title">
 -			<span class="var-type">{$vars[vars].var_type}</span>
 -			<span class="var-name">{$vars[vars].var_name}</span>
 -			{if $vars[vars].var_default} = <span class="var-default">{$vars[vars].var_default|replace:"\n":"<br />"}</span>{/if}
 -			(line <span class="line-number">{if $vars[vars].slink}{$vars[vars].slink}{else}{$vars[vars].line_number}{/if}</span>)
 -		</span>
 -	</div>
 -
 -	{include file="docblock.tpl" sdesc=$vars[vars].sdesc desc=$vars[vars].desc tags=$vars[vars].tags}	
 -	
 -	{if $vars[vars].var_overrides}
 -		<hr class="separator" />
 -		<div class="notes">Redefinition of:</div>
 -		<dl>
 -			<dt>{$vars[vars].var_overrides.link}</dt>
 -			{if $vars[vars].var_overrides.sdesc}
 -			<dd>{$vars[vars].var_overrides.sdesc}</dd>
 -			{/if}
 -		</dl>
 -	{/if}
 -	
 -	{if $vars[vars].descvar}
 -		<hr class="separator" />
 -		<div class="notes">Redefined in descendants as:</div>
 -		<ul class="redefinitions">
 -		{section name=vm loop=$vars[vars].descvar}
 -			<li>
 -				{$vars[vars].descvar[vm].link}
 -				{if $vars[vars].descvar[vm].sdesc}
 -				: {$vars[vars].descvar[vm].sdesc}
 -				{/if}
 -			</li>
 -		{/section}
 -		</ul>
 -	{/if}	
 -
 -</div>
 -{/section}
 -
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc b/buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc deleted file mode 100644 index f4fa31d3..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/DescHTML.inc +++ /dev/null @@ -1,241 +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 abstract representations of html tags in DocBlocks are handled by the
 - * classes in this file
 - *
 - * Before version 1.2, phpDocumentor simply passed html to converters, without
 - * much thought, except the {@link adv_htmlentities()} function was provided
 - * along with a list of allowed html.  That list is no longer used, in favor
 - * of these classes.
 - *
 - * The PDF Converter output looked wretched in version 1.1.0 because line breaks
 - * in DocBlocks were honored.  This meant that output often had just a few words
 - * on every other line!  To fix this problem, DocBlock descriptions are now
 - * parsed using the {@link ParserDescParser}, and split into paragraphs.  In
 - * addition, html in DocBlocks are parsed into these objects to allow for easy
 - * conversion in destination converters.  This design also allows different
 - * conversion for different templates within a converter, which separates
 - * design from logic almost 100%
 - * @package phpDocumentor
 - * @subpackage DescHTML
 - * @since 1.2
 - */
 -/**
 - * Used for <<code>> in a description
 - * @package phpDocumentor
 - * @subpackage DescHTML
 - */
 -class parserCode extends parserStringWithInlineTags
 -{
 -    /**
 -     * @param Converter
 -     * @uses Converter::ProgramExample()
 -     */
 -    function Convert(&$c)
 -    {
 -        if (!isset($this->value[0])) return '';
 -        if (is_string($this->value[0]) && $this->value[0]{0} == "\n")
 -        {
 -            $this->value[0] = substr($this->value[0],1);
 -        }
 -        $linktags = array();
 -        foreach($this->value as $val) {
 -            if (phpDocumentor_get_class($val) == 'parserlinkinlinetag' ||
 -                  phpDocumentor_get_class($val) == 'parsertutorialinlinetag') {
 -                $linktags[] = array($c->postProcess($val->Convert($c, false, false)), $val);
 -            }
 -        }
 -        $a = $c->ProgramExample(rtrim(ltrim(parent::Convert($c, false, false), "\n\r")));
 -        foreach ($linktags as $tag) {
 -            $a = str_replace($tag[0], $tag[1]->Convert($c, false, false), $a);
 -        }
 -        return $a;
 -//        else return $c->PreserveWhiteSpace($this->getString(false));
 -    }
 -}
 -
 -/**
 - * Used for <<pre>> in a description
 - * @package phpDocumentor
 - * @subpackage DescHTML
 - */
 -class parserPre extends parserStringWithInlineTags
 -{
 -    /**
 -     * @param Converter
 -     * @uses Converter::PreserveWhiteSpace()
 -     */
 -    function Convert(&$c)
 -    {
 -        return $c->PreserveWhiteSpace(rtrim(ltrim(parent::Convert($c, false, false), "\n\r")));
 -    }
 -}
 -
 -/**
 - * Used for <<b>> in a description
 - * @package phpDocumentor
 - * @subpackage DescHTML
 - */
 -class parserB extends parserStringWithInlineTags
 -{
 -    /**
 -     * @param Converter
 -     * @uses Converter::Bolden()
 -     */
 -    function Convert(&$c)
 -    {
 -        return $c->Bolden(parent::Convert($c));
 -    }
 -}
 -
 -/**
 - * Used for <<i>> in a description
 - * @package phpDocumentor
 - * @subpackage DescHTML
 - */
 -class parserI extends parserStringWithInlineTags
 -{
 -    /**
 -     * @param Converter
 -     * @uses Converter::Italicize()
 -     */
 -    function Convert(&$c)
 -    {
 -        return $c->Italicize(parent::Convert($c));
 -    }
 -}
 -
 -/**
 - * Used for <<var>> in a description
 - * @package phpDocumentor
 - * @subpackage DescHTML
 - */
 -class parserDescVar extends parserStringWithInlineTags
 -{
 -    /**
 -     * @param Converter
 -     * @uses Converter::Varize()
 -     */
 -    function Convert(&$c)
 -    {
 -        return $c->Varize(parent::Convert($c));
 -    }
 -}
 -
 -/**
 - * Used for <<samp>> in a description
 - * @package phpDocumentor
 - * @subpackage DescHTML
 - */
 -class parserSamp extends parserStringWithInlineTags
 -{
 -    /**
 -     * @param Converter
 -     * @uses Converter::Sampize()
 -     */
 -    function Convert(&$c)
 -    {
 -        return $c->Sampize(parent::Convert($c));
 -    }
 -}
 -
 -/**
 - * Used for <<kbd>> in a description
 - * @package phpDocumentor
 - * @subpackage DescHTML
 - */
 -class parserKbd extends parserStringWithInlineTags
 -{
 -    /**
 -     * @param Converter
 -     * @uses Converter::Kbdize()
 -     */
 -    function Convert(&$c)
 -    {
 -        return $c->Kbdize(parent::Convert($c));
 -    }
 -}
 -
 -/**
 - * Used for <<br>> in a description
 - * @package phpDocumentor
 - * @subpackage DescHTML
 - */
 -class parserBr extends parserStringWithInlineTags
 -{
 -    /**
 -     * @param Converter
 -     * @uses Converter::Br()
 -     */
 -    function Convert(&$c)
 -    {
 -        return $c->Br($this->getString());
 -    }
 -}
 -
 -/**
 - * Used for lists <<ol>> and <<ul>>
 - * @package phpDocumentor
 - * @subpackage DescHTML
 - */
 -class parserList extends parserStringWithInlineTags
 -{
 -    /** @var boolean */
 -    var $numbered;
 -    /** @var integer */
 -    var $items = 0;
 -    /**
 -     * @param integer
 -     */
 -    function parserList($numbered)
 -    {
 -        $this->numbered = $numbered;
 -    }
 -    
 -    /** @param parserStringWithInlineTags */
 -    function addItem($item)
 -    {
 -        $this->value[$this->items++] = $item;
 -    }
 -    
 -    /** @param parserList */
 -    function addList($list)
 -    {
 -        $this->value[$this->items++] = $list;
 -    }
 -    
 -    /**
 -     * @uses Converter::ListItem() enclose each item of the list
 -     * @uses Converter::EncloseList() enclose the list
 -     * @param Converter
 -     */
 -    function Convert(&$c)
 -    {
 -        $list = '';
 -        foreach($this->value as $item)
 -        {
 -            $list .= $c->ListItem(trim($item->Convert($c)));
 -        }
 -        return $c->EncloseList($list,$this->numbered);
 -    }
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/DocBlock/Lexer.inc b/buildscripts/PhpDocumentor/phpDocumentor/DocBlock/Lexer.inc deleted file mode 100644 index edfc896c..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/DocBlock/Lexer.inc +++ /dev/null @@ -1,701 +0,0 @@ -<?php
 -define('PHPDOC_LEXER_DESC', 1);
 -define('PHPDOC_LEXER_TAGS', 2);
 -define('PHPDOC_LEXER_ESCTAG', 3);
 -define('PHPDOC_LEXER_INLINETAG', 4);
 -define('PHPDOC_LEXER_INTERNAL', 5);
 -define('PHPDOC_LEXER_INTERNALTAG', 6);
 -define('PHPDOC_LEXER_SIMPLELIST', 7);
 -define('PHPDOC_DOCBLOCK_TOKEN_NEWLINE', 1);
 -define('PHPDOC_DOCBLOCK_TOKEN_DESC', 2);
 -define('PHPDOC_DOCBLOCK_TOKEN_ESCTAGOPEN', 3);
 -define('PHPDOC_DOCBLOCK_TOKEN_ESCTAGCLOSE', 4);
 -define('PHPDOC_DOCBLOCK_TOKEN_TAG', 5);
 -define('PHPDOC_DOCBLOCK_TOKEN_INLINETAG', 6);
 -define('PHPDOC_DOCBLOCK_TOKEN_INLINETAGCLOSE', 7);
 -define('PHPDOC_DOCBLOCK_TOKEN_INTERNAL', 8);
 -define('PHPDOC_DOCBLOCK_TOKEN_INTERNALCLOSE', 9);
 -define('PHPDOC_DOCBLOCK_TOKEN_HTMLTAG', 10);
 -define('PHPDOC_DOCBLOCK_TOKEN_HTMLTAGCLOSE', 11);
 -define('PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTSTART', 12);
 -define('PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTEND', 13);
 -define('PHPDOC_DOCBLOCK_TOKEN_UNORDEREDBULLET', 14);
 -define('PHPDOC_DOCBLOCK_TOKEN_ORDEREDBULLET', 15);
 -class PhpDocumentor_DocBlock_Lexer
 -{
 -    var $processedline;
 -    var $tagStack = array();
 -    var $tokens = array();
 -    var $simplelist = array();
 -    var $whitespace = array();
 -    var $states = array(PHPDOC_LEXER_DESC);
 -    function tokenName($token)
 -    {
 -        $this->tokens = array(
 -            PHPDOC_DOCBLOCK_TOKEN_NEWLINE => 'PHPDOC_DOCBLOCK_TOKEN_NEWLINE',
 -            PHPDOC_DOCBLOCK_TOKEN_DESC => 'PHPDOC_DOCBLOCK_TOKEN_DESC',
 -            PHPDOC_DOCBLOCK_TOKEN_ESCTAGOPEN => 'PHPDOC_DOCBLOCK_TOKEN_ESCTAGOPEN',
 -            PHPDOC_DOCBLOCK_TOKEN_ESCTAGCLOSE => 'PHPDOC_DOCBLOCK_TOKEN_ESCTAGCLOSE',
 -            PHPDOC_DOCBLOCK_TOKEN_TAG => 'PHPDOC_DOCBLOCK_TOKEN_TAG',
 -            PHPDOC_DOCBLOCK_TOKEN_INLINETAG => 'PHPDOC_DOCBLOCK_TOKEN_INLINETAG',
 -            PHPDOC_DOCBLOCK_TOKEN_INLINETAGCLOSE => 'PHPDOC_DOCBLOCK_TOKEN_INLINETAGCLOSE',
 -            PHPDOC_DOCBLOCK_TOKEN_INTERNAL => 'PHPDOC_DOCBLOCK_TOKEN_INTERNAL',
 -            PHPDOC_DOCBLOCK_TOKEN_INTERNALCLOSE => 'PHPDOC_DOCBLOCK_TOKEN_INTERNALCLOSE',
 -        );
 -        if (in_array($token, array_keys($this->tokens))) {
 -            return $this->tokens[$token];
 -        }
 -        return 'UNKNOWN';
 -    }
 -
 -    function lex($comment)
 -    {
 -        $comment = str_replace(array("\r\n", "\r"), array("\n", "\n"), $comment);
 -        $comment = explode("\n", $comment);
 -        $this->tokens = array();
 -        $state = PHPDOC_LEXER_DESC;
 -        $this->states = array(PHPDOC_LEXER_DESC);
 -        $tid = 0;
 -        $token = '';
 -        $esctag = false;
 -        $this->exception = false;
 -        list($lastline,) = each(array_reverse($comment, true));
 -        foreach ($comment as $this->linenum => $line) {
 -            if ($this->exception) {
 -                $this->tokens = array();
 -                return false;
 -            }
 -            $linestart = true;
 -            $this->processedline = trim($line);
 -            if ($this->processedline == '*/') {
 -                break;
 -            }
 -            if (!$this->processedline) {
 -                continue;
 -            }
 -            if (substr($this->processedline, 0, 3) == '/**') {
 -                $this->processedline = substr($this->processedline, 3);
 -                if (!$this->processedline) {
 -                    continue;
 -                }
 -                if (trim($this->processedline) == '*/') {
 -                    $this->endSimpleList();
 -                    break;
 -                }
 -            } else {
 -                $this->processedline = substr($this->processedline, 1);
 -            }
 -            while (true) {
 -                switch ($state) {
 -                    case PHPDOC_LEXER_INTERNALTAG :
 -                        $internalendpos = strpos($this->processedline, '}}');
 -                    case PHPDOC_LEXER_TAGS :
 -                        $trimline = trim($this->processedline);
 -                        if (strlen($trimline) && $trimline{0} == '@') {
 -                            if (preg_match('/^(@[^\s]+)\s/', $trimline, $matches) ||
 -                                  preg_match('/^(@[^\s]+)$/', $trimline, $matches)) {
 -                                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_TAG,
 -                                    $matches[1]);
 -                                $this->processedline = substr($trimline, strpos($trimline, $matches[1]) +
 -                                    strlen($matches[1]));
 -                                if (!$this->processedline) {
 -                                    break 2;
 -                                }
 -                                continue 2; // to while(true)
 -                            }
 -                        } elseif (preg_match('/^@/', $trimline, $matches)) {
 -                            // throw exception for invalid tag
 -                            return $this->throwException('Invalid tag encountered in line number ' .
 -                                $this->linenum . ': "' . $line . '"', 'tag');
 -                        } else {
 -                            $tagpos = strpos($this->processedline, '<');
 -                            $inlinetagpos = strpos($this->processedline, '{@');
 -                            if (isset($internalendpos) && $internalendpos !== false) {
 -                                do {
 -                                    if ($tagpos !== false && $internalendpos > $tagpos) {
 -                                        break;
 -                                    }
 -                                    if ($inlinetagpos !== false && $internalendpos > $inlinetagpos) {
 -                                        break;
 -                                    }
 -                                    // }} is the next important token
 -                                    $this->appendDesc(substr($this->processedline, 0,
 -                                        $internalendpos));
 -                                    $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_INTERNALCLOSE, '}}');
 -                                    $this->processedline = substr($this->processedline, $internalendpos
 -                                        + 2);
 -                                    array_shift($this->states);
 -                                    $state = PHPDOC_LEXER_TAGS;
 -                                    continue 3; // to while(true);
 -                                } while (false);
 -                            }
 -                            if ($tagpos !== false && $inlinetagpos !== false) {
 -                                if ($tagpos > $inlinetagpos) {
 -                                    $tagpos = false;
 -                                } else {
 -                                    $inlinetagpos = false;
 -                                }
 -                            }
 -                            if ($tagpos !== false) {
 -                                continue $this->searchForHTMLTag($tagpos,
 -                                    $state, $esctag, $linestart, $trimline);
 -                            }
 -                            if ($inlinetagpos !== false) {
 -                                $state = $this->searchForInlineTag($inlinetagpos, $comment);
 -                                $linestart = false;
 -                                continue 2; // to while (true)
 -                            }
 -                            if (strpos($this->processedline, '*/')) {
 -                                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_DESC,
 -                                    substr($this->processedline,
 -                                    0, strpos($this->processedline, '*/')));
 -                                return $this->tokens;
 -                            }
 -                            $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_DESC, $this->processedline);
 -                        }
 -                    break;
 -                    case PHPDOC_LEXER_INTERNAL :
 -                        $internalendpos = strpos($this->processedline, '}}');
 -                    case PHPDOC_LEXER_SIMPLELIST :
 -                        if ($linestart && $state == PHPDOC_LEXER_SIMPLELIST) {
 -                            if (!$this->processSimpleList()) {
 -                                while (count($this->simplelist) && !$this->processSimpleList());
 -                            }
 -                            if (!count($this->simplelist)) {
 -                                array_shift($this->states);
 -                                $state = array_shift($this->states);
 -                                array_unshift($this->states, $state);
 -                            }
 -                        }
 -                    case PHPDOC_LEXER_DESC :
 -                        if (strpos($this->processedline, '*/')) {
 -                            $this->processedline = substr($this->processedline,
 -                                0, strpos($this->processedline, '*/'));
 -                        }
 -                        if (!$this->processedline) {
 -                            if ($this->linenum != $lastline) {
 -                                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_NEWLINE, "\n");
 -                            }
 -                            continue 3; // to foreach
 -                        }
 -                        $trimline = trim($this->processedline);
 -                        if ($linestart && $state != PHPDOC_LEXER_TAGS && $trimline{0} == '@') {
 -                            if ($state == PHPDOC_LEXER_INTERNAL) {
 -                                // throw exception
 -                                return $this->throwException('Cannot start tags in {@internal}} ' .
 -                                    ' in line number ' .
 -                                    $this->linenum . ': "' . $line . '"', 'tag');
 -                            }
 -                            $this->states = array(PHPDOC_LEXER_TAGS);
 -                            $state = PHPDOC_LEXER_TAGS;
 -                            continue 2; // to while(true)
 -
 -                        }
 -                        if ($state != PHPDOC_LEXER_SIMPLELIST && $linestart && strlen($trimline) > 3 &&
 -                             ($trimline{0} == '-' || $trimline{0} == '*' ||
 -                              $trimline{0} == '#' || $trimline{0} == 'o' ||
 -                              $trimline{0} == '1')) {
 -                            if ($this->searchForSimplelist($trimline)) {
 -                                $state = PHPDOC_LEXER_SIMPLELIST;
 -                                $linestart = false;
 -                                continue 2; // to while(true)
 -                            }
 -                        }
 -                        $tagpos = strpos($this->processedline, '<');
 -                        $inlinetagpos = strpos($this->processedline, '{@');
 -                        if (isset($internalendpos) && $internalendpos !== false) {
 -                            do {
 -                                if ($tagpos !== false && $internalendpos > $tagpos) {
 -                                    break;
 -                                }
 -                                if ($inlinetagpos !== false && $internalendpos > $inlinetagpos) {
 -                                    break;
 -                                }
 -                                // }} is the next important token
 -                                $this->appendDesc(substr($this->processedline, 0, $internalendpos));
 -                                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_INTERNALCLOSE, '}}');
 -                                $this->processedline = substr($this->processedline, $internalendpos
 -                                    + 2);
 -                                array_shift($this->states);
 -                                $state = PHPDOC_LEXER_DESC;
 -                                continue 3; // to while(true);
 -                            } while (false);
 -                        }
 -                        if ($tagpos !== false && $inlinetagpos !== false) {
 -                            if ($tagpos > $inlinetagpos) {
 -                                $tagpos = false;
 -                            } else {
 -                                $inlinetagpos = false;
 -                            }
 -                        }
 -                        if ($tagpos !== false) {
 -                            continue $this->searchForHTMLTag($tagpos, $state,
 -                                $esctag, $linestart, $trimline);
 -                        }
 -                        if ($inlinetagpos !== false) {
 -                            $state = $this->searchForInlineTag($inlinetagpos, $comment);
 -                            $linestart = false;
 -                            continue 2; // to while (true)
 -                        }
 -                        $this->appendDesc($this->processedline);
 -                    break;
 -                    case PHPDOC_LEXER_ESCTAG :
 -                        if (!$this->processedline) {
 -                            if ($this->linenum != $lastline) {
 -                                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_NEWLINE, "\n");
 -                            }
 -                            continue 3; // to foreach
 -                        }
 -                        $endpos = strpos($this->processedline, $esctag);
 -                        $inlinetagpos = strpos($this->processedline, '{@');
 -                        if ($endpos !== false && $inlinetagpos !== false) {
 -                            if ($endpos > $inlinetagpos) {
 -                                $endpos = false;
 -                            } else {
 -                                $inlinetagpos = false;
 -                            }
 -                        }
 -                        if ($endpos !== false) {
 -                            if (strlen(substr($this->processedline, 0, $endpos))) {
 -                                $this->appendDesc(substr($this->processedline, 0, $endpos));
 -                            }
 -                            $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ESCTAGCLOSE, $esctag);
 -                            $this->processedline = substr($this->processedline, $endpos +
 -                                strlen($esctag));
 -                            $state = $this->states[0];
 -                            if (count($this->states) > 1) {
 -                                array_shift($this->states);
 -                            }
 -                            if (!$this->processedline) {
 -                                break 2;
 -                            }
 -                        }
 -                        if ($inlinetagpos !== false) {
 -                            array_unshift($this->states, PHPDOC_LEXER_ESCTAG);
 -                            $state = $this->searchForInlineTag($inlinetagpos, $comment);
 -                            $linestart = false;
 -                            continue 2; // to while (true)
 -                        }
 -                        $this->appendDesc($this->processedline);
 -                    break;
 -                    case PHPDOC_LEXER_INLINETAG :
 -                        if (!$this->processedline) {
 -                            if ($this->linenum != $lastline) {
 -                                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_NEWLINE, "\n");
 -                            }
 -                            continue 3; // to foreach
 -                        }
 -                        $endpos = strpos($this->processedline, '}');
 -                        if ($endpos !== false) {
 -                            if (strlen(substr($this->processedline, 0, $endpos))) {
 -                                $this->appendDesc(substr($this->processedline, 0, $endpos));
 -                            }
 -                            $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_INLINETAGCLOSE, '}');
 -                            $this->processedline = substr($this->processedline, $endpos + 1); // strlen('}')
 -                            $state = $this->states[0];
 -                            if (count($this->states) > 1) {
 -                                array_shift($this->states);
 -                            }
 -                            if (!$this->processedline) {
 -                                break 2;
 -                            }
 -                            if ($state != PHPDOC_LEXER_INLINETAG && strlen($this->processedline)) {
 -                                $linestart = false;
 -                                continue 2; // to while (true)
 -                            }
 -                        }
 -                        $this->appendDesc($this->processedline);
 -                    break;
 -                }
 -                break;
 -            }
 -            if ($this->linenum != $lastline) {
 -                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_NEWLINE, "\n");
 -            }
 -        }
 -        return $this->tokens;
 -    }
 -
 -    function searchForSimplelist($trimline)
 -    {
 -        $whitespace = strpos($this->processedline, $trimline);
 -        switch ($trimline{0}) {
 -            case '-' :
 -            case '*' :
 -            case '+' :
 -            case 'o' :
 -                if (strlen($trimline) < 3 || $trimline{1} != ' ') {
 -                    return false;
 -                }
 -                // unordered lists
 -                $this->simplelist[] = 'u' . $trimline{0};
 -                $this->whitespace[] = $whitespace;
 -                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTSTART, '');
 -                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_UNORDEREDBULLET, $trimline{0});
 -                $this->processedline = substr($this->processedline, strpos($this->processedline,
 -                    $trimline{0}) + 2);
 -                array_unshift($this->states, PHPDOC_LEXER_SIMPLELIST);
 -                return true;
 -            break;
 -            case '#' :
 -                if (strlen($trimline) < 3) {
 -                    return false;
 -                }
 -                // ordered lists
 -                $this->simplelist[] = '#1';
 -                $this->whitespace[] = $whitespace;
 -                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTSTART, '');
 -                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ORDEREDBULLET, '#');
 -                $this->processedline = substr($this->processedline, strpos($this->processedline,
 -                    '#') + 2);
 -                array_unshift($this->states, PHPDOC_LEXER_SIMPLELIST);
 -                return true;
 -            case '1' :
 -                if (strlen($trimline) < 4) {
 -                    return false;
 -                }
 -                if ($trimline{1} == ' ') {
 -                    $this->simplelist[] = 'O1';
 -                } elseif ($trimline{1} == '.' && $trimline{2} == ' ') {
 -                    $this->simplelist[] = 'o1';
 -                } else {
 -                    return false;
 -                }
 -                $this->whitespace[] = $whitespace;
 -                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTSTART, '');
 -                if ($trimline{1} == '.') {
 -                    $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ORDEREDBULLET, '1.');
 -                    $this->processedline = substr($this->processedline, strpos($this->processedline,
 -                        '1.') + 3);
 -                } else {
 -                    $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ORDEREDBULLET, '1');
 -                    $this->processedline = substr($this->processedline, strpos($this->processedline,
 -                        '1') + 2);
 -                }
 -                array_unshift($this->states, PHPDOC_LEXER_SIMPLELIST);
 -                return true;
 -        }
 -        return false;
 -    }
 -
 -    /**
 -     * @todo process multi-line elements via whitespace
 -     * @todo process nested simple lists
 -     */
 -    function processSimpleList()
 -    {
 -        $trimline = trim($this->processedline);
 -        $index = count($this->simplelist) - 1;
 -        $whitespace = strpos($this->processedline, $trimline);
 -        if ($whitespace < $this->whitespace[$index]) {
 -            while (count($this->whitespace[$index]) && $whitespace < $this->whitespace[$index]) {
 -                // the end of the current simplelist
 -                $this->tokens = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTEND, '');
 -                array_pop($this->simplelist);
 -                $index--;
 -            }
 -            if ($index == -1) {
 -                return false; // all simple lists concluded
 -            }
 -        }
 -        if ($whitespace > $this->whitespace[$index]) {
 -            // could be a multi-line element or a new list
 -            if (!$this->searchForSimplelist($trimline)) {
 -                // trim off the simple list whitespace if this is multi-line
 -                $this->processedline = substr($this->processedline, $this->whitespace[$index] + 2);
 -            }
 -            return true;
 -        }
 -        // implied: whitespace matches exactly so this is either another
 -        // bullet point or the end of the simple list
 -        switch ($this->simplelist[$index]{0}) {
 -            case 'u' :
 -                if (strlen($trimline) < 3 || $trimline{0} != $this->simplelist[$index]{1} ||
 -                      $trimline{1} != ' ') {
 -                    $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTEND, '');
 -                    array_pop($this->simplelist);
 -                    return false;
 -                }
 -                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_UNORDEREDBULLET, $trimline{0});
 -                $this->processedline = substr($this->processedline, strpos($this->processedline,
 -                    $trimline{0}) + 2);
 -            break;
 -            case 'o' :
 -                if (strlen($trimline) < 4 || ($trimline{0} !=
 -                      ($this->simplelist[$index]{1} + 1) . '') ||
 -                      $trimline{1} != '.' || $trimline{2} != ' ') {
 -                    $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTEND, '');
 -                    array_pop($this->simplelist);
 -                    return false;
 -                }
 -                $this->simplelist[$index] = $this->simplelist[$index]{0} .
 -                    ($this->simplelist[$index]{1} + 1);
 -                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ORDEREDBULLET,
 -                    $this->simplelist[$index]{1} . '.');
 -                $this->processedline = substr($this->processedline, strpos($this->processedline,
 -                    $trimline{0} . '.') + 3);
 -            break;
 -            case 'O' :
 -                if (strlen($trimline) < 3 || $trimline{0} != ($this->simplelist[$index]{1} + 1) . '' ||
 -                      $trimline{1} != ' ') {
 -                    $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTEND, '');
 -                    array_pop($this->simplelist);
 -                    return false;
 -                }
 -                $this->simplelist[$index] = $this->simplelist[$index]{0} .
 -                    ($this->simplelist[$index]{1} + 1);
 -                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ORDEREDBULLET,
 -                    $this->simplelist[$index]{1});
 -                $this->processedline = substr($this->processedline, strpos($this->processedline,
 -                    $this->simplelist[$index]{1}) + 2);
 -            break;
 -            case '#' :
 -                if (strlen($trimline) < 3 || $trimline{0} != '#' ||
 -                      $trimline{1} != ' ') {
 -                    $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTEND, '');
 -                    array_pop($this->simplelist);
 -                    return false;
 -                }
 -                $this->simplelist[$index] = $this->simplelist[$index]{0} .
 -                    ($this->simplelist[$index]{1} + 1);
 -                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ORDEREDBULLET,
 -                    $this->simplelist[$index]{1});
 -                $this->processedline = substr($this->processedline, strpos($this->processedline,
 -                    '#') + 2);
 -            break;
 -        }
 -        return true;
 -    }
 -
 -    function searchForHTMLTag($tagpos, &$state, &$esctag, &$linestart,
 -                              &$trimline)
 -    {
 -        if (preg_match('/^<(<\/?[a-zA-Z]+ ?\/?>)>/', substr($this->processedline, $tagpos),
 -              $matches)) {
 -            if ($tagpos) {
 -                $this->appendDesc(substr($this->processedline, 0, $tagpos));
 -            }
 -            $this->appendDesc($matches[1]);
 -            $this->processedline = substr($this->processedline, $tagpos
 -                + strlen($matches[1])
 -                + 2);
 -            return 2;
 -        } elseif (!count($matches) &&
 -              preg_match('/^<(<\/?[a-zA-Z]+ ?\/?>)>/', substr($this->processedline, $tagpos + 1),
 -              $matches)) {
 -            if ($tagpos) {
 -                $this->appendDesc(substr($this->processedline, 0, $tagpos));
 -            }
 -            $this->appendDesc('<' . $matches[1]);
 -            $this->processedline = substr($this->processedline, $tagpos
 -                + strlen($matches[1])
 -                + 3);
 -            return 2;
 -        } elseif (preg_match('#^(br>|br/>|br />)#',
 -              substr($this->processedline, $tagpos + 1), $matches)) {
 -            if ($tagpos) {
 -                $this->appendDesc(substr($this->processedline, 0, $tagpos));
 -            }
 -            $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_HTMLTAG, 'br');
 -            $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_HTMLTAGCLOSE, 'br');
 -            $this->processedline = substr($this->processedline, $tagpos
 -                + strlen($matches[1])
 -                + 1);
 -            return 2;
 -        } elseif (preg_match('/^(b>|i>|li>|ol>|ul>|p>|pre>|var>)/',
 -              substr($this->processedline, $tagpos + 1), $matches)) {
 -            if ($tagpos) {
 -                $this->appendDesc(substr($this->processedline, 0, $tagpos));
 -            }
 -            $matches = substr($matches[1], 0, strlen($matches[1]) - 1);
 -            array_push($this->tagStack, $matches);
 -            $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_HTMLTAG, $matches);
 -            $this->processedline = substr($this->processedline, $tagpos
 -                + strlen($matches)
 -                + 2);
 -            return 2;
 -        } elseif (preg_match('#^(/b>|/i>|/li>|/ol>|/ul>|/p>|/pre>|/var>)#',
 -              substr($this->processedline, $tagpos + 1), $matches)) {
 -            if ($tagpos) {
 -                $this->appendDesc(substr($this->processedline, 0, $tagpos));
 -            }
 -            $matches = substr($matches[1], 1, strlen($matches[1]) - 2);
 -            $test = array_pop($this->tagStack);
 -            if ($matches != $test) {
 -                // throw exception
 -                $this->throwException('Invalid closing html tag encountered in line number ' .
 -                    $this->linenum . ': "</' . $matches . '>", expecting "</' . $test . '>"', 'htmltag');
 -                return 3;
 -            }
 -            $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_HTMLTAGCLOSE, $matches);
 -            $this->processedline = substr($this->processedline, $tagpos
 -                + strlen($matches)
 -                + 3);
 -            return 2;
 -        } elseif (preg_match('/^(code>|pre>|kbd>|samp>)/',
 -              substr($this->processedline, $tagpos + 1), $matches)) {
 -            $esctag = '</' . $matches[0];
 -            if ($tagpos) {
 -                $this->appendDesc(substr($this->processedline, 0, $tagpos));
 -            }
 -            switch ($matches[0]) {
 -                case 'code>' :
 -                    $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ESCTAGOPEN,
 -                        '<code>');
 -                break;
 -                case 'pre>' :
 -                    $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ESCTAGOPEN,
 -                        '<pre>');
 -                break;
 -                case 'kbd>' :
 -                    $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ESCTAGOPEN,
 -                        '<kbd>');
 -                break;
 -                case 'samp>' :
 -                    $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_ESCTAGOPEN,
 -                        '<samp>');
 -                break;
 -            }
 -            $this->processedline = $line = substr($this->processedline, $tagpos
 -                + strlen($matches[0])
 -                + 1);
 -            $state = PHPDOC_LEXER_ESCTAG;
 -            if (!$this->processedline) {
 -                return 3; // to foreach
 -            }
 -            if (strpos($this->processedline, $esctag) !== false) {
 -                if (!strpos($this->processedline, $esctag)) {
 -                    $linestart = false;
 -                    return 2; // to while (true)
 -                }
 -                if (strpos($this->processedline, $esctag)) {
 -                    $this->appendDesc(substr($this->processedline, 0,
 -                        strpos($this->processedline, $esctag)));
 -                }
 -                $this->processedline = $trimline =
 -                    substr($this->processedline, strpos($this->processedline, $esctag));
 -                $linestart = false;
 -                return 2; // to while(true)
 -            }
 -        }
 -    }
 -
 -    function searchForInlineTag($inlinetagpos, $comment)
 -    {
 -        if ($inlinetagpos) {
 -            $this->appendDesc(substr($this->processedline, 0, $inlinetagpos));
 -        }
 -        if ($inlinetagpos === strpos($this->processedline, '{@internal')) {
 -            $state = array_shift($this->states);
 -            array_unshift($this->states, $state);
 -            if ($state == PHPDOC_LEXER_INTERNAL || $state == PHPDOC_LEXER_INTERNALTAG) {
 -                // throw exception
 -                return $this->throwException('cannot nest {@internal}} in line number ' .
 -                    $this->linenum . ': "' . $line . '"', 'internaltag');
 -            }
 -            $basestate = array_pop($this->states);
 -            array_push($this->states, $basestate);
 -            if ($basestate == PHPDOC_LEXER_DESC) {
 -                $newstate = PHPDOC_LEXER_INTERNAL;
 -            } else {
 -                $newstate = PHPDOC_LEXER_INTERNALTAG;
 -            }
 -            array_unshift($this->states, $newstate);
 -            $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_INTERNAL, '{@internal');
 -            $this->processedline = substr($this->processedline, $inlinetagpos + strlen('{@internal'));
 -            return $newstate;
 -        }
 -        if (!preg_match('/^({@[^}\s]+)\s/', substr($this->processedline, $inlinetagpos), $matches)) {
 -            if (!preg_match('/^({@[^}\s]+)}/', substr($this->processedline, $inlinetagpos), $matches)) {
 -                if ($this->hasEndchar($comment, '}')) {
 -                    $matches = array(substr($this->processedline, $inlinetagpos),
 -                        substr($this->processedline, $inlinetagpos));
 -                } else {
 -                    // throw exception if this does not match
 -                    $this->throwException('Unclosed inline tag encountered on line number ' .
 -                        $this->linenum . ': "' . $line . '"', 'tag');
 -                    return PHPDOC_LEXER_DESC;
 -                }
 -            } else {
 -                // throw exception if this does not match
 -                $this->throwException('Invalid inline tag encountered in line number ' .
 -                    $this->linenum . ': "' . $line . '"', 'tag');
 -                return PHPDOC_LEXER_DESC;
 -            }
 -        }
 -        $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_INLINETAG, $matches[1]);
 -        $this->processedline = substr($this->processedline, $inlinetagpos + strlen($matches[1]));
 -        return PHPDOC_LEXER_INLINETAG;
 -    }
 -
 -    function appendDesc($desc)
 -    {
 -        if (!strlen($desc)) {
 -            return;
 -        }
 -        if (count($this->tokens)) {
 -            $last = array_pop($this->tokens);
 -            if ($last[0] == PHPDOC_DOCBLOCK_TOKEN_DESC) {
 -                $last[1] .= $desc;
 -                $this->tokens[] = $last;
 -            } else {
 -                $this->tokens[] = $last;
 -                $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_DESC, $desc);
 -            }
 -        } else {
 -            $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_DESC, $desc);
 -        }
 -    }
 -
 -    function hasEndChar($comment, $char)
 -    {
 -        $linenum = $this->linenum;
 -        foreach ($comment as $num => $line) {
 -            if ($linenum !== false && $num <= $linenum) {
 -                continue;
 -            }
 -            $linenum = false;
 -            $processedline = trim($line);
 -            if ($processedline == '*/') {
 -                break;
 -            }
 -            if (!$processedline) {
 -                continue;
 -            }
 -            if (substr($processedline, 0, 3) == '/**') {
 -                $processedline = substr($processedline, 3);
 -                if (!$processedline) {
 -                    continue;
 -                }
 -                if (trim($processedline) == '*/') {
 -                    break;
 -                }
 -            } else {
 -                $processedline = substr($processedline, 1);
 -            }
 -            if (strpos($processedline, $char) !== false) {
 -                return true;
 -            }
 -        }
 -        return false;
 -    }
 -
 -    function endSimpleList()
 -    {
 -        if (count($this->tagStack)) {
 -            $this->tokens = array();
 -            return $this->throwException('Error: unclosed html tags: "' .
 -                implode(', ', $this->tagStack) . '"', 'simplelist');
 -        }
 -        while (count($this->simplelist)) {
 -            $this->tokens[] = array(PHPDOC_DOCBLOCK_TOKEN_SIMPLELISTEND, '');
 -        }
 -    }
 -
 -    function throwException($message, $type)
 -    {
 -        $this->error = array($message, $this->linenum, $type);
 -        $this->exception = true;
 -    }
 -}
 -?>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/DocBlockTags.inc b/buildscripts/PhpDocumentor/phpDocumentor/DocBlockTags.inc deleted file mode 100644 index fa465deb..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/DocBlockTags.inc +++ /dev/null @@ -1,984 +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 abstract representations of DocBlock tags are defined
 - * by the classes in this file
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - * @since separate file since version 1.2
 - */
 -/**
 - * used to represent standard tags like @access, etc.
 - * This class is aware of inline tags, and will automatically handle them
 - * using inherited functions
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: DocBlockTags.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
 - */
 -class parserTag extends parserStringWithInlineTags
 -{
 -    /**
 -     * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah'
 -     * always '_tag'
 -     * @var string
 -     */
 -    var $type = '_tag';
 -    /**
 -     * tag name (see, access, etc.)
 -     * @var string
 -     */
 -    var $keyword = '';
 -    
 -    /**
 -     * Set up the tag
 -     *
 -     * {@source}
 -     * @param string $keyword tag name
 -     * @param parserStringWithInlineTags $value
 -     * @param boolean whether to parse the $value for html tags
 -     */
 -    function parserTag($keyword, $value, $noparse = false)
 -    {
 -        $this->keyword = $keyword;
 -        if (!$noparse)
 -        {
 -            $parser = new parserDescParser;
 -            $parser->subscribe('*',$this);
 -            $parser->parse($value->value,true,'parserstringwithinlinetags');
 -        } else $this->value = $value;
 -    }
 -    
 -    /**
 -     * @param Converter
 -     * @see Converter
 -     */
 -    function Convert(&$converter)
 -    {
 -        if (is_array($this->value))
 -        {
 -            if (count($this->value) == 1)
 -            {
 -                list(,$val) = each($this->value);
 -                reset($this->value);
 -                return $val->Convert($converter);
 -            }
 -            $result = '';
 -            foreach($this->value as $val)
 -            {
 -                // this is only true if we processed the description in
 -                // the constructor
 -                if (phpDocumentor_get_class($val) == 'parserstringwithinlinetags')
 -                $result .= $converter->EncloseParagraph($val->Convert($converter));
 -                else
 -                $result .= $val->Convert($converter);
 -            }
 -            return $result;
 -        } else
 -        {
 -            return $this->value->Convert($converter);
 -        }
 -    }
 -    
 -    /**
 -     * Gets a count of the number of paragraphs in this
 -     * tag's description.
 -     *
 -     * Useful in determining whether to enclose the
 -     * tag in a paragraph or not.
 -     * @access private
 -     * @return integer
 -     */
 -    function _valueParagraphCount()
 -    {
 -    }
 -    
 -    /**
 -     * Called by the {@link parserDescParser} when processing a description.
 -     * @param integer not used
 -     * @param array array of {@link parserStringWithInlineTags} representing
 -     *              paragraphs in the tag description
 -     * @see parserTag::parserTag()
 -     */
 -    function HandleEvent($a,$desc)
 -    {
 -        $this->value = $desc;
 -    }
 -    
 -    /**
 -     * @return string returns the text minus any inline tags
 -     * @see parserStringWithInlineTags::getString()
 -     */
 -    function getString()
 -    {
 -        if (is_array($this->value))
 -        {
 -            $result = '';
 -            foreach($this->value as $val)
 -            {
 -                $result .= $val->getString();
 -            }
 -            return $result;
 -        } else return $this->value->getString();
 -    }
 -}
 -
 -/**
 - * This class represents the @name tag
 - * @tutorial tags.name.pkg
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - */
 -class parserNameTag extends parserTag
 -{
 -    /**
 -     * tag name
 -     * @var string
 -     */
 -    var $keyword = 'name';
 -    
 -    /**
 -     * @param string not used
 -     * @param string name
 -     */
 -    function parserNameTag($name, $value)
 -    {
 -        $this->value = $value;
 -    }
 -    
 -    /**
 -     * @see parserStringWithInlineTags::Convert()
 -     * @param Converter
 -     * @return string converted value of the tag
 -     */
 -    function Convert(&$c)
 -    {
 -        return $this->value;
 -    }
 -}
 -
 -/**
 - * This class represents the @access tag
 - * @tutorial tags.access.pkg
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - */
 -class parserAccessTag extends parserTag
 -{
 -    /**
 -     * tag name
 -     * @var string
 -     */
 -    var $keyword = 'access';
 -    
 -    /**
 -     * set to true if the returned tag has a value type of private, protected
 -     * or public, false otherwise
 -     * @var boolean
 -     */
 -    var $isvalid = false;
 -    
 -    /**
 -     * checks $value to make sure it is private, protected or public, otherwise
 -     * it's not a valid @access tag
 -     * @see $isvalid
 -     * @param parserStringWithInlineTags $value
 -     */
 -    function parserAccessTag($value)
 -    {
 -        if (!is_string($value))
 -        {
 -            if (is_object($value))
 -            {
 -                if (method_exists($value,'getstring'))
 -                {
 -                    $value = $value->getString();
 -                }
 -            }
 -        }
 -        switch(trim($value))
 -        {
 -            case 'private' :
 -            case 'public' :
 -            case 'protected' :
 -                $this->value = $value;
 -                $this->isvalid = true;
 -            break;
 -            default :
 -            addError(PDERROR_ACCESS_WRONG_PARAM,$value);
 -                $this->value = 'public';
 -            break;
 -        }
 -    }
 -    
 -    /**
 -     * @see parserStringWithInlineTags::Convert()
 -     * @param Converter
 -     * @return string converted value of the tag
 -     */
 -    function Convert(&$converter)
 -    {
 -        return $this->value;
 -    }
 -    
 -    /**
 -     * No inline tags are possible, returns 'public', 'protected' or 'private'
 -     * @return string returns the text minus any inline tags
 -     */
 -    function getString()
 -    {
 -        return $this->value;
 -    }
 -}
 -
 -/**
 - * represents "@return"
 - * @tutorial tags.return.pkg
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: DocBlockTags.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
 - */
 -class parserReturnTag extends parserTag
 -{
 -    /**
 -     * always 'return'
 -     * @var string
 -     */
 -    var $keyword = 'return';
 -    /**
 -     * the type a function returns
 -     */
 -    var $returnType = 'void';
 -    
 -    /**
 -     * contains a link to the documentation for a class passed as a type in @return, @var or @param
 -     *
 -     * Example:
 -     *
 -     * <code>
 -     * class myclass
 -     * {
 -     * ...
 -     * }
 -     * /** @return myclass blahblahblah
 -     * ...
 -     * </code>
 -     *
 -     * In this case, $converted_returnType will contain a link to myclass instead of the string 'myclass'
 -     * @var mixed either the same as $returnType or a link to the docs for a class
 -     * @see $returnType
 -     */
 -    var $converted_returnType = false;
 -    
 -    /**
 -     * @param string
 -     * @param parserStringWithInlineTags
 -     */
 -    function parserReturnTag($returnType, $value)
 -    {
 -        $this->returnType = $returnType;
 -        parent::parserTag('return',$value);
 -    }
 -    
 -    /**
 -     * sets up $converted_returnType
 -     * @see parserStringWithInlineTags::Convert(), $converted_returnType
 -     * @param Converter
 -     * @return string converted value of the tag
 -     */
 -    function Convert(&$converter)
 -    {
 -        $my_types = '';
 -        if (strpos($this->returnType,'|'))
 -        {
 -            $types = explode('|',$this->returnType);
 -            foreach($types as $returntype)
 -            {
 -                $a = $converter->getLink($returntype);
 -                if (is_object($a) && phpDocumentor_get_class($a) == 'classlink')
 -                {
 -                    if (!empty($my_types)) $my_types .= '|';
 -                    $my_types .= $converter->returnSee($a,$converter->type_adjust($returntype));
 -                } else
 -                {
 -                    if (!empty($my_types)) $my_types .= '|';
 -                    $my_types .= $converter->type_adjust($returntype);
 -                }
 -            }
 -            $this->converted_returnType = $my_types;
 -        } else
 -        {
 -            $a = $converter->getLink($this->returnType);
 -            if (is_object($a) && phpDocumentor_get_class($a) == 'classlink')
 -            {
 -                $this->converted_returnType = $converter->returnSee($a,$converter->type_adjust($this->returnType));
 -            } else
 -            {
 -                $this->converted_returnType = $converter->type_adjust($this->returnType);
 -            }
 -        }
 -        return parserTag::Convert($converter);
 -    }
 -}
 -
 -/**
 - * represents "@var"
 - * @tutorial tags.var.pkg
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: DocBlockTags.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
 - */
 -class parserVarTag extends parserReturnTag
 -{
 -    /**
 -     * always 'var'
 -     * @var string
 -     */
 -    var $keyword = 'var';
 -    /**
 -     * the type a var has
 -     * @var string
 -     */
 -    var $returnType = 'mixed';
 -}
 -
 -/**
 - * Represents "@param"
 - * @tutorial tags.param.pkg
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - */
 -class parserParamTag extends parserVarTag
 -{
 -    /**
 -     * always 'param'
 -     * @var string
 -     */
 -    var $keyword = 'param';
 -}
 -
 -/**
 - * Represents "@staticvar"
 - * @tutorial tags.staticvar.pkg
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - */
 -class parserStaticvarTag extends parserParamTag
 -{
 -    /**
 -     * always 'staticvar'
 -     * @var string
 -     */
 -    var $keyword = 'staticvar';
 -}
 -
 -/**
 - * represents "@link"
 - * @tutorial tags.link.pkg
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: DocBlockTags.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
 - */
 -class parserLinkTag extends parserTag
 -{
 -    /**
 -     * always 'link'
 -     * @var string
 -     */
 -    var $keyword = 'link';
 -    
 -    /**
 -     * URL to link to
 -     * @param string $link
 -     */
 -    function parserLinkTag($link)
 -    {
 -        $start = $val = $link->getString();
 -        if (strpos($val,' '))
 -        {
 -            $start = array_shift($val = explode(' ',$val));
 -            $val = join($val, ' ');
 -        }
 -        $a = new parserLinkInlineTag($start,$val);
 -        $b = new parserStringWithInlineTags;
 -        $b->add($a);
 -        $this->value = $b;
 -    }
 -}
 -
 -/**
 - * represents "@see"
 - * @tutorial tags.see.pkg
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: DocBlockTags.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
 - */
 -class parserSeeTag extends parserLinkTag
 -{
 -    /**
 -     * always 'see'
 -     * @var string
 -     */
 -    var $keyword = 'see';
 -    
 -    /**
 -     * @param string element to link to
 -     */
 -    function parserSeeTag($name)
 -    {
 -        parserTag::parserTag($this->keyword,$name,true);
 -    }
 -
 -    /**
 -     * @param Converter
 -     * @see parserStringWithInlineTags::Convert()
 -     */
 -    function Convert(&$converter)
 -    {
 -        if ($this->value->hasInlineTag())
 -        {
 -            addErrorDie(PDERROR_INLINETAG_IN_SEE);
 -        }
 -        $a = $converter->getLink(trim($this->value->Convert($converter)));
 -        if (is_string($a))
 -        {
 -            // feature 564991
 -            if (strpos($a,'://'))
 -            {
 -                // php function
 -                return $converter->returnLink($a,str_replace('PHP_MANUAL#','',$this->value->Convert($converter)));
 -            }
 -            return $a;
 -        }
 -        if (is_object($a)) return $converter->returnSee($a);
 -        // getLink parsed a comma-delimited list of linked thingies, add the commas back in
 -        if (is_array($a))
 -        {
 -            $b = '';
 -            foreach($a as $i => $bub)
 -            {
 -                if (!empty($b)) $b .= ', ';
 -                if (is_string($a[$i])) $b .= $a[$i];
 -                if (is_object($a[$i])) $b .= $converter->returnSee($a[$i]);
 -            }
 -            return $b;
 -        }
 -        return false;
 -    }
 -}
 -
 -/**
 - * represents "@license"
 - *
 - * Link to a license, instead of including lines and lines of license information
 - * in every file
 - * @tutorial tags.license.pkg
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - */
 -class parserLicenseTag extends parserLinkTag
 -{
 -    /**
 -     * always 'license'
 -     * @var string
 -     */
 -    var $keyword = 'license';
 -    
 -    /**
 -     * URL to link to
 -     * @param string $link
 -     */
 -    function parserLicenseTag($name, $link)
 -    {
 -        $a = explode(' ',$link->getString());
 -        $url = array_shift($a);
 -        $license = join($a,' ');
 -        if (empty($license)) $license = $url;
 -        $a = new parserLinkInlineTag($url, $license);
 -        $b = new parserStringWithInlineTags;
 -        $b->add($a);
 -        $this->value = $b;
 -    }
 -}
 -
 -/**
 - * represents "@uses"
 - *
 - * This is exactly like @see except that the element used has a @useby link to this element added to its docblock
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - * @tutorial tags.uses.pkg
 - * @since 1.2
 - */
 -class parserUsesTag extends parserSeeTag
 -{
 -    /**
 -     * Always "uses"
 -     * @var string
 -     */
 -    var $keyword = 'uses';
 -    /** @access private */
 -    var $_description;
 -    
 -    /**
 -     * @param string element to link to
 -     * @param parserStringWithInlineTags description of how the element is used
 -     */
 -    function parserUsesTag($seeel, $description)
 -    {
 -        parent::parserSeeTag($seeel);
 -        $this->_description = $description;
 -    }
 -    
 -    /**
 -     * Return a link to documentation for other element, and description of how
 -     * it is used
 -     *
 -     * Works exactly like {@link parent::Convert()} except that it also includes
 -     * a description of how the element used is used.
 -     * @return string
 -     * @param Converter
 -     */
 -    function Convert(&$c)
 -    {
 -        $val = $this->value;
 -        $see = parent::Convert($c);
 -        $this->value = $this->_description;
 -		  $desc_val = parserTag::Convert($c);
 -        if (!empty($desc_val)) {
 -           $see .= ' - '.$desc_val;
 -        }
 -        $this->value = $val;
 -        return $see;
 -    }
 -    
 -    /**
 -     * Get the text of the link to the element that is being used
 -     * @return string
 -     * @access private
 -     */
 -    function getSeeElement()
 -    {
 -        return $this->value->getString();
 -    }
 -    
 -    /**
 -     * Get the description of how the element used is being used.
 -     * @return parserStringWithInlineTags
 -     */
 -    function getDescription()
 -    {
 -        return $this->_description;
 -    }
 -}
 -
 -/**
 - * This is a virtual tag, it is created by @uses to cross-reference the used element
 - *
 - * This is exactly like @uses.
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - * @since 1.2
 - */
 -class parserUsedByTag extends parserUsesTag
 -{
 -    /**
 -     * Always "usedby"
 -     * @var string
 -     */
 -    var $keyword = 'usedby';
 -    /** @access private */
 -    var $_link;
 -    
 -    /**
 -     * @param abstractLink link of element that uses this element
 -     * @param string description of how the element is used
 -     */
 -    function parserUsedByTag($link, $description)
 -    {
 -        $this->value = $description;
 -        $this->_link = $link;
 -    }
 -    
 -    /**
 -     * @return string
 -     * @param Converter
 -     */
 -    function Convert(&$c)
 -    {
 -        $see = $c->returnSee($this->_link);
 -		  $desc_val = parserTag::Convert($c);
 -        if (!empty($desc_val)) {
 -           $see .= ' - '.$desc_val;
 -        }
 -        return $see;
 -    }
 -}
 -
 -/**
 - * represents "@tutorial"
 - *
 - * This is exactly like @see except that it only links to tutorials
 - * @tutorial phpDocumentor/tutorials.pkg
 - * @tutorial tags.tutorial.pkg
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - * @since 1.2
 - */
 -class parserTutorialTag extends parserSeeTag
 -{
 -    /**
 -     * Always "tutorial"
 -     * @var string
 -     */
 -    var $keyword = 'tutorial';
 -    /**
 -     * @param Converter
 -     * @see parserStringWithInlineTags::Convert()
 -     */
 -    function Convert(&$converter)
 -    {
 -        $a = $converter->getTutorialLink(trim($this->value->Convert($converter)));
 -        if (is_string($a))
 -        {
 -            return $a;
 -        }
 -        if (is_object($a)) return $converter->returnSee($a);
 -        // getLink parsed a comma-delimited list of linked thingies, add the commas back in
 -        if (is_array($a))
 -        {
 -            $b = '';
 -            foreach($a as $i => $bub)
 -            {
 -                if (!empty($b)) $b .= ', ';
 -                if (is_string($a[$i])) $b .= $a[$i];
 -                if (is_object($a[$i])) $b .= $converter->returnSee($a[$i]);
 -            }
 -            return $b;
 -        }
 -        return false;
 -    }
 -}
 -
 -/**
 - * represents "@filesource"
 - * 
 - * Use this to create a link to a highlighted phpxref-style source file listing
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - * @tutorial tags.filesource.pkg
 - */
 -class parserFileSourceTag extends parserTag
 -{
 -    /**
 -     * Always "filesource"
 -     * @var string
 -     */
 -    var $keyword = 'filesource';
 -    /** @var array */
 -    var $source;
 -    /** @var string */
 -    var $path;
 -    /**
 -     * Flag variable, controls double writes of file for each converter
 -     * @access private
 -     * @var array
 -     */
 -    var $_converted = array();
 -    /**
 -     * Set {@link $source} to $value, and set up path
 -     * @param string
 -     * @param array output from {@link phpDocumentorTWordParser::getFileSource()}
 -     */
 -    function parserFileSourceTag($filepath, $value)
 -    {
 -        parent::parserTag($this->keyword, '');
 -        $this->path = $filepath;
 -        $this->source = $value;
 -    }
 -
 -    /**
 -     * Return a link to the highlighted source and generate the source
 -     * @uses ConvertSource() generate source code and write it out
 -     * @return string output from {@link getSourceLink()}
 -     * @param Converter
 -     */
 -    function Convert(&$c)
 -    {
 -        if (!isset($this->_converted[$c->name]))
 -        {
 -            $this->ConvertSource($c);
 -            $this->_converted[$c->name] = true;
 -        }
 -        return $this->getSourceLink($c);
 -    }
 -
 -    /**
 -     * @param Converter
 -     * @uses phpDocumentor_HighlightParser highlights source code
 -     * @uses writeSource()
 -     */
 -    function ConvertSource(&$c)
 -    {
 -        $this->writeSource($c, $c->ProgramExample($this->source, true, false, false, false, $this->path));
 -        return;
 -        $parser = new phpDocumentor_HighlightParser;
 -        $return = '';
 -        $return = $parser->parse($this->source,$c, false, false, false, $this->path);
 -        $this->writeSource($c, $return);
 -    }
 -
 -    /**
 -     * @param Converter
 -     * @param string highlighted source code
 -     * @uses Converter::writeSource() export highlighted file source
 -     */
 -    function writeSource(&$c, $source)
 -    {
 -        $c->writeSource($this->path, $source);
 -    }
 -
 -    /**
 -     * @uses Converter::getSourceLink()
 -     * @param Converter
 -     * @return output from getSourceLink()
 -     */
 -    function getSourceLink(&$c)
 -    {
 -        return $c->getSourceLink($this->path);
 -    }
 -}
 -
 -/**
 - * represents "@example"
 - * 
 - * The example tag 
 - * @package phpDocumentor
 - * @subpackage DocBlockTags
 - * @tutorial tags.example.pkg
 - */
 -class parserExampleTag extends parserFileSourceTag
 -{
 -    /**
 -     * always "example"
 -     * @var string
 -     */
 -    var $keyword = 'example';
 -    /**
 -     * Reads and parses the example file indicated
 -     *
 -     * The example tag takes one parameter: the full path to a php file that
 -     * should be parsed and included as an example.
 -     * @uses phpDocumentorTWordParser::getFileSource() uses to parse an example
 -     *       and retrieve all tokens by line number
 -     * @param parserStringWithInlineTags
 -     * @param string path of file containing this @example tag
 -     */
 -    function parserExampleTag($value, $current_path)
 -    {
 -        global $_phpDocumentor_setting;
 -        parent::parserTag('example', $value);
 -        $path = false;
 -        // code thanks to Sam Blum, modified by Greg Beaver
 -        $tagValue = $value->getString();
 -        $path = $isAbsPath = $pathOnly = $fileName = $fileExt = $original_path  = $title = FALSE;
 -        do
 -        {
 -            // make sure the format is stuff.ext description
 -            if (!preg_match('`(.*)\.(\w*)\s(.*)`', $tagValue, $match))
 -            {
 -                // or format is stuff.ext
 -                if (!preg_match('`(.*)\.(\w*)\s*$`', $tagValue, $match))
 -                {
 -                    // Murphy: Some funny path was given
 -                    $original_path = $tagValue; // used for error output
 -                    break; // try-block
 -                }
 -            }
 -            if (strlen($match[1]) === 0)
 -            {
 -                // Murphy: Some funny path was given
 -                $original_path = $tagValue; // used for error output
 -                break; // try-block
 -            }
 -            $fileExt = $match[2];
 -            $title = 'example';
 -            if (isset($match[3]))
 -            {
 -                $title = trim($match[3]);
 -            }
 -            $pathTmp = str_replace('\\', '/', $match[1]); // Replace windows '\' the path.
 -
 -            // Is there a path and a file or is it just a file?
 -            if (strpos($pathTmp,'/') === false)
 -            {
 -                // No path part
 -                $pathOnly = '';
 -                $fileName = $pathTmp .'.'. $fileExt;
 -            } else
 -            {
 -                $splitPos = strrpos($pathTmp,'/'); // split the path on the last directory, find the filename
 -                $pathOnly = substr($match[1], 0, $splitPos+1);
 -                $fileName = substr($match[1], $splitPos+1) .'.'. $fileExt;
 -                // Is the path absolute? (i.e. does it start like an absolute path?)
 -                if (('/' === $pathTmp[0]) || preg_match('`^\w*:`i', $pathTmp))
 -                { // works for both windows 'C:' and URLs like 'http://'
 -                    $isAbsPath = true; // Yes
 -                }
 -            }
 -
 -            $original_path = $pathOnly . $fileName;
 -
 -            // Now look for the file starting with abs. path.
 -            if ($isAbsPath)
 -            {
 -                $tmp = realpath($original_path); // remove any weirdities like /../file.ext
 -                if ($tmp && is_file($tmp))
 -                {
 -                    $path = $tmp;
 -                }
 -                // Alway break if abs. path was detected; even if file was not found.
 -                break; // try-block
 -            }
 -
 -            // Search for the example file some standard places 
 -            // 1) Look if the ini-var examplesdir is set and look there ...
 -            if (isset($_phpDocumentor_setting['examplesdir']))
 -            {
 -                $tmp = realpath($_phpDocumentor_setting['examplesdir'] . PATH_DELIMITER  . $original_path);
 -                if ($tmp && is_file($tmp))
 -                {
 -                    $path = $tmp; // Yo! found it :)
 -                    break; // try-block
 -                }
 -            }
 -
 -            // 2) Then try to look for an 'example/'-dir below the *currently* parsed file ...
 -            if (!empty($current_path))
 -            {
 -                $tmp = realpath(dirname($current_path) . PATH_DELIMITER . 'examples' . PATH_DELIMITER . $fileName);
 -                if ($tmp && is_file($tmp))
 -                {
 -                    $path = $tmp; // Yo! found it :)
 -                    break; // try-block
 -                }
 -            }
 -
 -            // 3) Then try to look for the example file below the subdir PHPDOCUMENTOR_BASE/examples/ ...
 -            if (is_dir(PHPDOCUMENTOR_BASE . PATH_DELIMITER . 'examples'))
 -            {
 -                $tmp = realpath(PHPDOCUMENTOR_BASE . PATH_DELIMITER . 'examples' . PATH_DELIMITER . $original_path);
 -                if ($tmp && is_file($tmp))
 -                {
 -                    $path = $tmp; // Yo! found it :)
 -                    break; // try-block
 -                }
 -            }
 -
 -            $tmp = realpath(PHPDOCUMENTOR_BASE . PATH_DELIMITER . $original_path);
 -            if ($tmp && is_file($tmp))
 -            {
 -                $path = $tmp; // Yo! found it :)
 -                break; // try-block
 -            }
 -            // If we reach this point, nothing was found and $path is false.
 -        } while (false);
 -
 -        if (!$path)
 -        {
 -            addWarning(PDERROR_EXAMPLE_NOT_FOUND, $original_path);
 -            $this->_title = 'example not found';
 -            $this->path = false;
 -        } else
 -        {
 -            $this->_title = ($title) ? $title : 'example';
 -            // make a unique html-filename but avoid it to get too long.
 -            $uniqueFileName = str_replace(array(':', DIRECTORY_SEPARATOR,'/'), array('_', '_', '_'), $path);
 -            $uniqueFileName = substr($uniqueFileName,-50) . '_' . md5($path);
 -            $this->path = $uniqueFileName;
 -            
 -            $f = @fopen($path,'r');
 -            if ($f)
 -            {
 -                $example = fread($f,filesize($path));
 -                if (tokenizer_ext)
 -                {
 -                    $obj = new phpDocumentorTWordParser;
 -                    $obj->setup($example);
 -                    $this->source = $obj->getFileSource();
 -                    unset($obj);
 -                } else
 -                {
 -                    $this->source = $example;
 -                }
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * @param Converter
 -     * @uses phpDocumentor_HighlightParser highlights source code
 -     * @uses writeSource()
 -     */
 -    function ConvertSource(&$c)
 -    {
 -        $this->writeSource($c, $c->ProgramExample($this->source, true));
 -        return;
 -        $parser = new phpDocumentor_HighlightParser;
 -        $return = '';
 -        $return = $parser->parse($this->source,$c);
 -        $this->writeSource($c, $return);
 -    }
 -
 -    /**
 -     * @param Converter $c
 -     * @param string parsed example source
 -     * @uses Converter::writeExample() writes final example out
 -     * @access private
 -     */
 -    function writeSource(&$c, $source)
 -    {
 -        if ($this->path)
 -        $c->writeExample($this->_title, $this->path, $source);
 -    }
 -
 -    /**
 -     * Retrieve a converter-specific link to the example
 -     *
 -     * @param Converter
 -     * @uses Converter::getExampleLink() retrieve the link to the example
 -     */
 -    function getSourceLink(&$c)
 -    {
 -        if (!$this->path) return $this->_title;
 -        return $c->getExampleLink($this->path, $this->_title);
 -    }
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Errors.inc b/buildscripts/PhpDocumentor/phpDocumentor/Errors.inc deleted file mode 100644 index 99bada26..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Errors.inc +++ /dev/null @@ -1,793 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * @package phpDocumentor
 - * @subpackage Errors
 - * @author Gregory Beaver <cellog@users.sourceforge.net>
 - * @version $Id: Errors.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
 - */
 -/**
 - * warning triggered when inheritance could be from more than one class
 - */
 -define("PDERROR_MULTIPLE_PARENT",1);
 -/**
 - * warning triggered when parent class doesn't exist
 - */
 -define("PDERROR_PARENT_NOT_FOUND",2);
 -/**
 - * warning triggered when an {@inline tag} is not terminated (no } before the * / ending the comment)
 - */
 -define("PDERROR_UNTERMINATED_INLINE_TAG",3);
 -/**
 - * warning triggered when inheritance could be from more than one class
 - */
 -define("PDERROR_CLASS_EXISTS",4);
 -/**
 - * warning triggered when inheritance could be from more than one class
 - */
 -define("PDERROR_INHERITANCE_CONFLICT",5);
 -/**
 - * warning triggered when a converter is passed to {@link phpDocumentor_IntermediateParser::addConverter()} that is not a class
 - */
 -define("PDERROR_CONVERTER_NOT_FOUND",6);
 -/**
 - * warning triggered when a converter is passed to {@link phpDocumentor_IntermediateParser::addConverter()} that is not a class
 - */
 -define("PDERROR_NO_CONVERTERS",7);
 -/**
 - * warning triggered when the arguments to @access are neither public nor private
 - */
 -define("PDERROR_ACCESS_WRONG_PARAM",8);
 -/**
 - * warning triggered when there are multiple @access tags in a docblock
 - */
 -define("PDERROR_MULTIPLE_ACCESS_TAGS",9);
 -/**
 - * warning triggered when there are multiple @return tags in a docblock
 - */
 -define("PDERROR_MULTIPLE_RETURN_TAGS",10);
 -/**
 - * warning triggered when there are multiple @var tags in a docblock
 - */
 -define("PDERROR_MULTIPLE_VAR_TAGS",11);
 -/**
 - * warning triggered when there are multiple @package tags in a docblock
 - */
 -define("PDERROR_MULTIPLE_PACKAGE_TAGS",12);
 -/**
 - * warning triggered when there are multiple @subpackage tags in a docblock
 - */
 -define("PDERROR_MULTIPLE_SUBPACKAGE_TAGS",13);
 -/**
 - * warning triggered when the package or subpackage name is illegal
 - */
 -define("PDERROR_ILLEGAL_PACKAGENAME",14);
 -/**
 - * warning triggered when there a @package tag is used in a function, define, method, var or include
 - */
 -define("PDERROR_OVERRIDDEN_PACKAGE_TAGS",15);
 -/**
 - * warning triggered when there a @subpackage tag is used in a function, define, method, var or include
 - */
 -define("PDERROR_OVERRIDDEN_SUBPACKAGE_TAGS",16);
 -/**
 - * warning triggered when classes in the same package have the same name
 - */
 -define("PDERROR_CLASS_CONFLICT",17);
 -/**
 - * warning triggered when classes in the same package have the same name
 - */
 -define("PDERROR_UNKNOWN_TAG",18);
 -/**
 - * warning triggered when there are multiple @name tags in a docblock
 - */
 -define("PDERROR_MULTIPLE_NAME_TAGS",19);
 -/**
 - * warning triggered when there are multiple @name tags in a docblock
 - */
 -define("PDERROR_PACKAGEOUTPUT_DELETES_PARENT_FILE",20);
 -/**
 - * warning triggered when there are multiple @name tags in a docblock
 - */
 -define("PDERROR_GLOBAL_NOT_FOUND",21);
 -/**
 - * warning triggered when there are multiple @name tags in a docblock
 - */
 -define("PDERROR_MULTIPLE_GLOBAL_TAGS",22);
 -/**
 - * warning triggered when there are multiple @name tags in a docblock
 - */
 -define("PDERROR_MALFORMED_GLOBAL_TAG",23);
 -/**
 - * warning triggered when an @ignore tag is used in a DocBlock preceding a method, variable, include, or global variable
 - */
 -define("PDERROR_IGNORE_TAG_IGNORED",24);
 -/**
 - * warning triggered when a duplicate element is encountered that will be ignored by the documentor
 - */
 -define("PDERROR_ELEMENT_IGNORED",25);
 -/**
 - * warning triggered when an entire page is ignored because of @access private
 - */
 -define("PDERROR_PARSEPRIVATE",26);
 -/**
 - * warning triggered when an entire page is ignored because of @access private
 - */
 -define("PDERROR_UNKNOWN_COMMANDLINE",27);
 -/**
 - * warning triggered when an entire page is ignored because of @access private
 - */
 -define("PDERROR_NEED_WHITESPACE",28);
 -/**
 - * warning triggered when an entire page is ignored because of @access private
 - */
 -define("PDERROR_CLASS_PARENT_NOT_FOUND",29);
 -/**
 - * warning triggered when a getClassByPackage is called and can't find the class
 - */
 -define("PDERROR_CLASS_NOT_IN_PACKAGE",30);
 -/**
 - * warning triggered when a { @source } inline tag is used in a docblock not preceding a function
 - */
 -define("PDERROR_SOURCE_TAG_FUNCTION_NOT_FOUND",31);
 -/**
 - * warning triggered when a docblock template is never turned off with /**#@-* / (no space)
 - */
 -define("PDERROR_DB_TEMPLATE_UNTERMINATED",32);
 -/**
 - * warning triggered when a docblock has an unmatched <ol> or <ul>
 - */
 -define("PDERROR_UNMATCHED_LIST_TAG",33);
 -/**
 - * warning triggered when another tag is nested in <b> - not allowed in phpDocumentor
 - */
 -define("PDERROR_CANT_NEST_IN_B",34);
 -/**
 - * warning triggered when a docbook tag is not properly matched
 - */
 -define("PDERROR_UNMATCHED_TUTORIAL_TAG",35);
 -/**
 - * warning triggered when an inline tag is found inside an xml tag name in a package page
 - */
 -define("PDERROR_CANT_HAVE_INLINE_IN_TAGNAME",36);
 -/**
 - * warning triggered when a tutorial is referenced via @tutorial/{ @tutorial} and is not found
 - */
 -define("PDERROR_TUTORIAL_NOT_FOUND",37);
 -/**
 - * warning triggered when a tutorial lists itself as a child tutorial
 - */
 -define("PDERROR_TUTORIAL_IS_OWN_CHILD",38);
 -/**
 - * warning triggered when a tutorial's child lists the parent tutorial as a child tutorial
 - */
 -define("PDERROR_TUTORIAL_IS_OWN_GRANDPA",39);
 -/**
 - * warning triggered when a tutorial's child in the .ini file doesn't exist in the
 - * package and subpackage of the parent
 - */
 -define("PDERROR_CHILD_TUTORIAL_NOT_FOUND",40);
 -/**
 - * warning triggered when a <pdffunction:funcname /> tag is used in the PDF
 - * Converter and no funcname is present (<pdffunction: />)
 - */
 -define("PDERROR_PDFFUNCTION_NO_FUNC",41);
 -/**
 - * warning triggered when a <pdffunction:funcname /> tag is used in the PDF
 - * Converter and funcname is not a {@link Cezpdf} method
 - */
 -define("PDERROR_PDF_METHOD_DOESNT_EXIST",42);
 -/**
 - * warning triggered when a <pdffunction:funcname arg=$tempvar/> tag is used in the PDF
 - * Converter and "tempvar" is not set from the return of a previous pdffunction tag
 - */
 -define("PDERROR_PDF_TEMPVAR_DOESNT_EXIST",43);
 -/**
 - * warning triggered when a subsection's title is asked for, but the subsection is not found
 - */
 -define("PDERROR_TUTORIAL_SUBSECTION_NOT_FOUND",44);
 -/**
 - * warning triggered when a subsection's title is asked for, but the subsection is not found
 - */
 -define("PDERROR_UNTERMINATED_ATTRIB",45);
 -/**
 - * warning triggered when no @package tag is used in a page-level or class-level DocBlock
 - */
 -define("PDERROR_NO_PACKAGE_TAG",46);
 -/**
 - * warning triggered when no @access private tag is used in a global variable/method/var
 - * with _ as first char in name and --pear was specified
 - */
 -define("PDERROR_PRIVATE_ASSUMED",47);
 -/**
 - * warning triggered when an example's path from @example /path/to/example.php
 - * is not found
 - */
 -define("PDERROR_EXAMPLE_NOT_FOUND",48);
 -/**
 - * warning triggered when an example's path from @example /path/to/example.php
 - * is not found
 - */
 -define("PDERROR_NO_CONVERTER_HANDLER",49);
 -/**
 - * warning triggered when an example's path from @example /path/to/example.php
 - * is not found
 - */
 -define("PDERROR_INLINETAG_IN_SEE",50);
 -/**
 - * warning triggered when an id attribute in a tutorial docbook tag is not
 - * an {@}id} inline tag
 - */
 -define("PDERROR_ID_MUST_BE_INLINE",51);
 -/**
 - * warning triggered when an {@}internal}} tag is not closed
 - */
 -define("PDERROR_INTERNAL_NOT_CLOSED",52);
 -/**
 - * warning triggered when an {@}source} tag is found in a short description
 - */
 -define("PDERROR_SOURCE_TAG_IGNORED",53);
 -/**
 - * warning triggered when a child converter doesn't override getFormattedClassTrees()
 - */
 -define("PDERROR_CONVERTER_OVR_GFCT",54);
 -/**
 - * warning triggered when a package is already associated with a category, and
 - * a new association is found
 - */
 -define("PDERROR_PACKAGECAT_SET",55);
 -/**
 - * warning triggered when text in a docblock list is not contained in
 - * an <<li>> opening tag
 - */
 -define("PDERROR_TEXT_OUTSIDE_LI",56);
 -/**
 - * warning triggered when a DocBlock html tag is unclosed
 - */
 -define("PDERROR_UNCLOSED_TAG",57);
 -/**
 - * warning triggered by @filesource, if PHP < 4.3.0
 - */
 -define("PDERROR_TAG_NOT_HANDLED",58);
 -/**
 - * warning triggered by sourcecode="on", if PHP < 4.3.0
 - */
 -define("PDERROR_SOURCECODE_IGNORED",59);
 -/**
 - * warning triggered by an empty tag
 - */
 -define("PDERROR_MALFORMED_TAG",60);
 -/**
 - * warning triggered by more than 1 @category tag
 - */
 -define("PDERROR_MULTIPLE_CATEGORY_TAGS",61);
 -/**
 - * warning triggered by {@}inheritdoc} in a non-inheritable situation
 - */
 -define("PDERROR_INHERITDOC_DONT_WORK_HERE",62);
 -/**
 - * warning triggered by @example path/to/example with no title
 - */
 -define("PDERROR_EMPTY_EXAMPLE_TITLE",63);
 -/**
 - * warning triggered by non-existent template directory
 - */
 -define("PDERROR_TEMPLATEDIR_DOESNT_EXIST",64);
 -/**
 - * warning triggered by an unterminated entity in a tutorial
 - */
 -define("PDERROR_UNTERMINATED_ENTITY",65);
 -/**
 - * warning triggered by an unterminated entity in a tutorial
 - */
 -define("PDERROR_BEAUTIFYING_FAILED",66);
 -/**
 - * warning triggered by a function with no name
 - *
 - * <pre>
 - * function ($params)
 - * {
 - * }
 - * </pre>
 - * triggers this error
 - */
 -define("PDERROR_FUNCTION_HAS_NONAME",67);
 -/**
 - * warning triggered by a page-level docblock preceding a source element
 - *
 - * <code>
 - * <?php
 - * /**
 - *  * Page-level DocBlock
 - *  * @package pagepackage
 - *  *{@*}
 - * include 'file.php';
 - * </code>
 - */
 -define("PDERROR_DOCBLOCK_CONFLICT", 68);
 -/**
 - * warning triggered when a file does not contain a page-level docblock
 - */
 -define("PDERROR_NO_PAGE_LEVELDOCBLOCK", 69);
 -/**
 - * warning triggered when the first docblock in a file with a @package tag
 - * precedes a class.  In this case, the class gets the docblock.
 - */
 -define("PDERROR_DOCBLOCK_GOES_CLASS", 70);
 -/**
 - * warning triggered in tutorial parsing if there is a missing {@id} inline tag
 - */
 -define("PDERROR_NO_DOCBOOK_ID", 71);
 -/**
 - * warning triggered if someone brilliant tries "class X extends X {"
 - */
 -define("PDERROR_CANNOT_EXTEND_SELF", 72);
 -
 -/**
 - * Error messages for phpDocumentor parser warnings
 - * @global array $GLOBALS['phpDocumentor_warning_descrip']
 - * @name $phpDocumentor_warning_descrip
 - */
 -$GLOBALS['phpDocumentor_warning_descrip'] =
 -    array(
 -        PDERROR_MULTIPLE_PARENT => 'Class %s has multiple possible parents, package inheritance aborted',
 -        PDERROR_PARENT_NOT_FOUND => 'Class %s parent %s not found',
 -        PDERROR_INHERITANCE_CONFLICT => 'Class %s in file %s has multiple possible parents named %s.  Cannot resolve name conflict,'."\n".' try ignoring a file that contains the conflicting parent class',
 -        PDERROR_UNKNOWN_TAG => 'Unknown tag "@%s" used',
 -        PDERROR_IGNORE_TAG_IGNORED => '@ignore tag used for %s element "%s" will be ignored',
 -        PDERROR_ELEMENT_IGNORED => "\n".'duplicate %s element "%s" in file %s will be ignored.'."\n".'Use an @ignore tag on the original if you want this case to be documented.',
 -        PDERROR_PARSEPRIVATE => "entire page %s ignored because of @access private.\nChoose -pp to enable parsing of private elements",
 -        PDERROR_CLASS_PARENT_NOT_FOUND => "class %s in package %s parent not found in @see parent::%s",
 -        PDERROR_CLASS_NOT_IN_PACKAGE => "class %s was not found in package %s",
 -        PDERROR_DB_TEMPLATE_UNTERMINATED => "docblock template never terminated with /**#@-*/",
 -        PDERROR_PDF_METHOD_DOESNT_EXIST => '<pdffunction:%s /> called, but pdf method "%s" doesn\'t exist',
 -        PDERROR_TUTORIAL_NOT_FOUND => "tutorial \"%s\" not found, does it exist?",
 -        PDERROR_CHILD_TUTORIAL_NOT_FOUND => 'child tutorial "%s" listed in %s not found in parent package "%s" subpackage "%s"',
 -        PDERROR_TUTORIAL_SUBSECTION_NOT_FOUND => 'tutorial %s subsection "%s" doesn\'t exist, but its title was asked for',
 -        PDERROR_NO_PACKAGE_TAG => 'no @package tag was used in a DocBlock for %s %s',
 -        PDERROR_PRIVATE_ASSUMED => '%s "%s" is assumed to be @access private because its name starts with _, but has no @access tag',
 -        PDERROR_EXAMPLE_NOT_FOUND => 'example file "%s" does not exist',
 -        PDERROR_SOURCE_TAG_IGNORED => '{@source} can only be used in the long description, not in the short description: "%s"',
 -        PDERROR_PACKAGECAT_SET => 'package %s is already in category %s, will now replace with category %s',
 -        PDERROR_SOURCECODE_IGNORED => 'sourcecode command-line option is ignored for PHP versions < 4.3.0',
 -        PDERROR_INHERITDOC_DONT_WORK_HERE => '{@inheritdoc} can only be used in the docblock of a child class',
 -        PDERROR_EMPTY_EXAMPLE_TITLE => 'Example file found at "%s" has no title, using "%s"',
 -        PDERROR_DOCBLOCK_CONFLICT => 'Page-level DocBlock precedes "%s %s", use another DocBlock to document the source element',
 -        PDERROR_NO_PAGE_LEVELDOCBLOCK => 'File "%s" has no page-level DocBlock, use @package in the first DocBlock to create one',
 -        PDERROR_DOCBLOCK_GOES_CLASS => 'DocBlock would be page-level, but precedes class "%s", use another DocBlock to document the file',
 -        PDERROR_NO_DOCBOOK_ID => 'Tutorial section %s "%s" has no id="{@id subsection}" tag ({@id} for refentry)',
 -        PDERROR_BEAUTIFYING_FAILED => 'Beautifying failed: %s',
 -        );
 -
 -
 -
 -//********************************************************
 -
 -
 -
 -/**
 - * Error messages for phpDocumentor parser errors
 - * @global array $GLOBALS['phpDocumentor_error_descrip']
 - * @name $phpDocumentor_error_descrip
 - */
 -$GLOBALS['phpDocumentor_error_descrip'] = 
 -    array(
 -        PDERROR_UNTERMINATED_INLINE_TAG => 'Inline tag {@%s} in tag %s is unterminated, "%s"',
 -        PDERROR_CLASS_EXISTS => 'Class %s already exists in package "%s"',
 -        PDERROR_CONVERTER_NOT_FOUND => 'Converter %s specified by --output command-line option is not a class',
 -        PDERROR_NO_CONVERTERS => 'No Converters have been specified by --output command-line option',
 -        PDERROR_ACCESS_WRONG_PARAM => '@access was passed neither "public" nor "private."  Was passed: "%s"',
 -        PDERROR_MULTIPLE_ACCESS_TAGS => 'DocBlock has multiple @access tags, illegal. ignoring additional tag "@access %s"',
 -        PDERROR_MULTIPLE_RETURN_TAGS => 'DocBlock has multiple @return tags, illegal. ignoring additional tag "@return %s %s"',
 -        PDERROR_MULTIPLE_VAR_TAGS => 'DocBlock has multiple @var tags, illegal. ignoring additional tag "@var %s %s"',
 -        PDERROR_MULTIPLE_PACKAGE_TAGS => 'DocBlock has multiple @package tags, illegal. ignoring additional tag "@package %s"',
 -        PDERROR_MULTIPLE_SUBPACKAGE_TAGS => 'DocBlock has multiple @subpackage tags, illegal. ignoring additional tag "@subpackage %s"',
 -        PDERROR_ILLEGAL_PACKAGENAME => '@%s tag has illegal %s name "%s"',
 -        PDERROR_OVERRIDDEN_PACKAGE_TAGS => '%s %s\'s DocBlock has @package tag, illegal. ignoring tag "@package %s"',
 -        PDERROR_OVERRIDDEN_SUBPACKAGE_TAGS => '"%s" %s\'s DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage %s"',
 -        PDERROR_CLASS_CONFLICT => 'class "%s" has multiple declarations in package %s, in file %s and file %s, documentation will have output errors!',
 -        PDERROR_MULTIPLE_NAME_TAGS => 'DocBlock has multiple @name tags, illegal. ignoring additional tag "@name %s"',
 -        PDERROR_PACKAGEOUTPUT_DELETES_PARENT_FILE => '-po (packageoutput) option deletes parent file "%s" containing class "%s."'."\n".'  Try using --defaultpackagename (-dn) %s to include the parent file in the same package as the class',
 -        PDERROR_GLOBAL_NOT_FOUND => 'global variable %s specified in @global tag was never found',
 -        PDERROR_MULTIPLE_GLOBAL_TAGS => '@global define tag already used for global variable "%s", ignoring @global %s',
 -        PDERROR_MALFORMED_GLOBAL_TAG => 'incorrect @global syntax.  Should be @global vartype $varname or @global vartype description',
 -        PDERROR_UNKNOWN_COMMANDLINE => 'Unknown command-line option "%s" encountered, use phpdoc -h for help',
 -        PDERROR_NEED_WHITESPACE => 'phpDocumentor programmer error - wordparser whitespace set to false in handleDocBlock, notify developers.  You should never see this error',
 -        PDERROR_SOURCE_TAG_FUNCTION_NOT_FOUND => '{@source} tag used in a docblock that isn\'t preceding a function',
 -        PDERROR_UNMATCHED_LIST_TAG => 'unmatched ol or ul tag in DocBlock, parsing will be incorrect',
 -        PDERROR_CANT_NEST_IN_B => 'Can\'t nest a code, pre, ul, or ol tag in a b tag in phpDocumentor DocBlock (%s tag nested)',
 -        PDERROR_UNMATCHED_TUTORIAL_TAG => 'While parsing extended documentation, "%s" tag was matched with "%s" endtag, missing endtag'."\ntag contents:\"%s\"",
 -        PDERROR_CANT_HAVE_INLINE_IN_TAGNAME => 'Can\'t have an inline tag inside a package page XML tag!',
 -        PDERROR_TUTORIAL_IS_OWN_CHILD => 'Tutorial %s lists itself as its own child in %s, illegal',
 -        PDERROR_TUTORIAL_IS_OWN_GRANDPA => 'Tutorial %s\'s child %s lists %s as its child in %s, illegal',
 -        PDERROR_PDFFUNCTION_NO_FUNC => 'Invalid pdffunction syntax: "<pdffunction: />", should be "<pdffunction:functionname [arg="value"...]/>"',
 -        PDERROR_PDF_TEMPVAR_DOESNT_EXIST => '<pdffunction:%s arg=%s /> called but temporary variable "%s" doesn\'t exist',
 -        PDERROR_UNTERMINATED_ATTRIB => 'Tutorial tag %s attribute %s is unterminated, current value "%s"',
 -        PDERROR_NO_CONVERTER_HANDLER => 'Handler for element of type "%s" called, but %s is not a method of %s',
 -        PDERROR_INLINETAG_IN_SEE => 'Inline tags are not allowed in a @see tag',
 -        PDERROR_ID_MUST_BE_INLINE => '<%s id="%s"> must be <%s id="{@id %s}">',
 -        PDERROR_INTERNAL_NOT_CLOSED => '{@internal was never terminated with }}',
 -        PDERROR_CONVERTER_OVR_GFCT => 'Converter "%s" must override getFormattedClassTrees() but doesn\'t',
 -        PDERROR_TEXT_OUTSIDE_LI => 'Text cannot be outside of li tag in a DocBlock list, parsing will be incorrect',
 -        PDERROR_UNCLOSED_TAG => 'Unclosed %s tag in DocBlock, parsing will be incorrect',
 -        PDERROR_TAG_NOT_HANDLED => '"%s" tag is not available in PHP versions less than 4.3.0, tag ignored',
 -        PDERROR_MALFORMED_TAG => '"%s" tag was used without any parameters, illegal',
 -        PDERROR_MULTIPLE_CATEGORY_TAGS => 'package has multiple @category tags, ignoring "@category %s"',
 -        PDERROR_TEMPLATEDIR_DOESNT_EXIST => 'template directory "%s" does not exist',
 -        PDERROR_UNTERMINATED_ENTITY => 'entity &%s is unterminated',
 -        PDERROR_FUNCTION_HAS_NONAME => 'function has no name (PHP error - test your file before parsing!)',
 -        PDERROR_CANNOT_EXTEND_SELF => 'class %s cannot extend itself - TEST YOUR CODE BEFORE PARSING',
 -        );
 -
 -/**
 - * encapsulates warning information
 - * @package phpDocumentor
 - * @subpackage Errors
 - */
 -class RecordWarning
 -{
 -    /**
 -     * name of global variable that descriptors for this warning/error is kept
 -     * @var string
 -     */
 -    var $type = 'phpDocumentor_warning_descrip';
 -    /**
 -     * file this error occurred in
 -     * @var string
 -     */
 -    var $file = false;
 -    /**
 -     * line number of the file this error occurred in
 -     * @var integer
 -     */
 -    var $linenum;
 -    /**
 -     * error string
 -     * @var string
 -     */
 -    var $data;
 -    /**
 -     * error number
 -     * @see Errors.inc
 -     * @var string
 -     */
 -    var $num;
 -    /**
 -     * @param string $file filename this error occurred in ({@link $file})
 -     * @param integer $linenum line number this error occurred on ({@link $linenum})
 -     * @param integer $num Error number defined in {@link Errors.inc}
 -     * @param string $data... variable number of strings, up to 4, to sprintf based on the error number
 -     */
 -    function RecordWarning($file,$linenum,$num)
 -    {
 -        $this->file = $file;
 -        $this->linenum = $linenum;
 -        $a = array('','','','');
 -        if (func_num_args()>3)
 -        {
 -            for($i=3;$i<func_num_args();$i++)
 -            {
 -                $a[$i - 3] = func_get_arg($i);
 -            }
 -        }
 -
 -        $this->num = $num;
 -        $this->data = sprintf($GLOBALS[$this->type][$this->num],$a[0],$a[1],$a[2],$a[3]);
 -        $this->output();
 -    }
 -    
 -    /**
 -     * prints the warning
 -     */
 -    function output($string = false)
 -    {
 -        if ($string)
 -        {
 -            if ($this->file)
 -            return "WARNING in $this->file on line $this->linenum: $this->data\n";
 -            else
 -            return "WARNING: $this->data\n";
 -        }
 -        if ($this->file)
 -        phpDocumentor_out("WARNING in $this->file on line $this->linenum: $this->data\n");
 -        else
 -        phpDocumentor_out("WARNING: $this->data\n");
 -        flush();
 -    }
 -}
 -
 -/**
 - * encapsulates error information
 - * @package phpDocumentor
 - * @subpackage Errors
 - */
 -class RecordError extends RecordWarning
 -{
 -    /**
 -     * name of global variable that descriptors for this warning/error is kept
 -     * @var string
 -     */
 -    var $type = 'phpDocumentor_error_descrip';
 -
 -    /**
 -     * prints the error
 -     */
 -    function output($string = false)
 -    {
 -        if ($string)
 -        {
 -            if ($this->file)
 -            return "\n\tERROR in $this->file on line $this->linenum: $this->data\n";
 -            else
 -            return "\n\tERROR: $this->data\n";
 -        }
 -        if ($this->file)
 -        phpDocumentor_out("\n\tERROR in $this->file on line $this->linenum: $this->data\n");
 -        else
 -        phpDocumentor_out("\n\tERROR: $this->data\n");
 -        flush();
 -    }
 -}
 -
 -/**
 - * contains all the errors/warnings
 - * @see $errors, $warnings
 - * @package phpDocumentor
 - * @subpackage Errors
 - */
 -class ErrorTracker
 -{
 -    /**
 -     * array of {@link RecordError}s
 -     * @var array
 -     */
 -    var $errors = array();
 -    /**
 -     * array of {@link RecordWarning}s
 -     * @var array
 -     */
 -    var $warnings = array();
 -    /**
 -     * @var string
 -     */
 -    var $curfile = '';
 -    /**
 -     * @var integer
 -     */
 -    var $linenum = 0;
 -    
 -    /**
 -     * index in {@link $errors} of last error triggered
 -     * @var integer|false
 -     */
 -    var $lasterror = false;
 -    
 -    /**
 -     * index in {@link $warnings} of last warning triggered
 -     * @var integer|false
 -     */
 -    var $lastwarning = false;
 -    
 -    /**
 -     * This function subscribes to two events in the Parser in order to keep track of line number information and file name.
 -     * @param integer $num parser-passed event (see {@link PHPDOCUMENTOR_EVENT_NEWLINENUM, PHPDOCUMENTOR_EVENT_NEWFILE})
 -     * @param mixed $data either a line number if $num is PHPDOCUMENTOR_EVENT_NEWLINENUM or a file name if $num is PHPDOCUMENTOR_EVENT_NEWFILE
 -     */
 -    function handleEvent($num,$data)
 -    {
 -        switch($num)
 -        {
 -            case PHPDOCUMENTOR_EVENT_NEWLINENUM :
 -                $this->linenum = $data;
 -            break;
 -            case PHPDOCUMENTOR_EVENT_NEWFILE :
 -                $this->linenum = 0;
 -                $this->curfile = $data;
 -            break;
 -            // debugging
 -            case 1000000635 :
 -                phpDocumentor_out($this->curfile.' has '.$this->linenum.' lines'."\n");
 -                flush();
 -            break;
 -        }
 -    }
 -
 -    /**
 -     * add a new warning to the {@link $warnings} array
 -     * @param integer $num error number from {@link Errors.inc}
 -     * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num
 -     */
 -    function addWarning($num)
 -    {
 -        $a = array('','','','');
 -        if (func_num_args()>1)
 -        {
 -            for($i=1;$i<func_num_args();$i++)
 -            {
 -                $a[$i - 1] = func_get_arg($i);
 -            }
 -        }
 -        $this->warnings[] = new RecordWarning($this->curfile,$this->linenum,$num,$a[0],$a[1],$a[2],$a[3]);
 -        $this->lastwarning = count($this->warnings) - 1;
 -    }
 -
 -    /**
 -     * add a new error to the {@link $errors} array
 -     * @param integer $num error number from {@link Errors.inc}
 -     * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num
 -     */
 -    function addError($num)
 -    {
 -        $a = array('','','','');
 -        if (func_num_args()>1)
 -        {
 -            for($i=1;$i<func_num_args();$i++)
 -            {
 -                $a[$i - 1] = func_get_arg($i);
 -            }
 -        }
 -        $this->errors[] = new RecordError($this->curfile,$this->linenum,$num,$a[0],$a[1],$a[2],$a[3]);
 -        $this->lasterror = count($this->errors) - 1;
 -    }
 -    
 -    /**
 -     * add a new error to the {@link $errors} array and returns the error string
 -     * @param integer $num error number from {@link Errors.inc}
 -     * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num
 -     */
 -    function addErrorReturn($num)
 -    {
 -        $a = array('','','','');
 -        if (func_num_args()>1)
 -        {
 -            for($i=1;$i<func_num_args();$i++)
 -            {
 -                $a[$i - 1] = func_get_arg($i);
 -            }
 -        }
 -        $this->errors[] = new RecordError($this->curfile,$this->linenum,$num,$a[0],$a[1],$a[2],$a[3],false);
 -        $this->lasterror = count($this->errors) - 1;
 -    }
 -    
 -    /**
 -     * Get sorted array of all warnings in parsing/conversion
 -     * @return array
 -     */
 -    function &returnWarnings()
 -    {
 -        usort($this->warnings,array($this,"errorsort"));
 -        return $this->warnings;
 -    }
 -    
 -    /**
 -     * Get sorted array of all non-fatal errors in parsing/conversion
 -     * @return array
 -     */
 -    function &returnErrors()
 -    {
 -        usort($this->errors,array($this,"errorsort"));
 -        return $this->errors;
 -    }
 -    
 -    /**
 -     * @access private
 -     * @param RecordError|RecordWarning
 -     * @param RecordError|RecordWarning
 -     */
 -    function errorsort($a, $b)
 -    {
 -        if (!$a->file) return -1;
 -        if (!$b->file) return 1;
 -        if ($a->file == $b->file)
 -        {
 -            if ($a->linenum == $b->linenum) return 0;
 -            if ($a->linenum < $b->linenum) return -1;
 -            return 1;
 -        }
 -        return strnatcasecmp($a->file,$b->file);
 -    }
 -    
 -    /**
 -     * Get the error message of the last error
 -     * @return string
 -     */
 -    function returnLastError()
 -    {
 -        return $this->errors[$this->lasterror]->output(true);
 -    }
 -
 -    /**
 -     * Get the warning message of the last warning
 -     * @return string
 -     */
 -    function returnLastWarning()
 -    {
 -        return $this->warnings[$this->lastwarning]->output(true);
 -    }
 -}
 -
 -/**
 - * @global ErrorTracker $GLOBALS['phpDocumentor_errors']
 - * @name $phpDocumentor_errors
 - */
 -$GLOBALS['phpDocumentor_errors'] = new ErrorTracker;
 -
 -/**
 - * @param integer $num error number from {@link Errors.inc}
 - * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num
 - * @see ErrorTracker::addError()
 - */
 -function addError($num)
 -{
 -    global $phpDocumentor_errors;
 -    $a = array('','','','');
 -    if (func_num_args()>1)
 -    {
 -        for($i=1;$i<func_num_args();$i++)
 -        {
 -            $a[$i - 1] = func_get_arg($i);
 -        }
 -    }
 -    $phpDocumentor_errors->addError($num,$a[0],$a[1],$a[2],$a[3]);
 -}
 -
 -/**
 - * like {@link addError()} but exits parsing
 - * @param integer $num error number from {@link Errors.inc}
 - * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num
 - * @global ErrorTracker repository for all errors generated by phpDocumentor
 - * @see ErrorTracker::addError()
 - */
 -function addErrorDie($num)
 -{
 -    global $phpDocumentor_errors;
 -    $a = array('','','','');
 -    if (func_num_args()>1)
 -    {
 -        for($i=1;$i<func_num_args();$i++)
 -        {
 -            $a[$i - 1] = func_get_arg($i);
 -        }
 -    }
 -    $phpDocumentor_errors->addErrorReturn($num,$a[0],$a[1],$a[2],$a[3]);
 -    die($phpDocumentor_errors->returnLastError());
 -}
 -
 -/**
 - * @param integer $num warning number from {@link Errors.inc}
 - * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num
 - * @global ErrorTracker repository for all errors generated by phpDocumentor
 - * @see ErrorTracker::addWarning()
 - */
 -function addWarning($num)
 -{
 -    global $phpDocumentor_errors;
 -    $a = array('','','','');
 -    if (func_num_args()>1)
 -    {
 -        for($i=1;$i<func_num_args();$i++)
 -        {
 -            $a[$i - 1] = func_get_arg($i);
 -        }
 -    }
 -
 -    $phpDocumentor_errors->addWarning($num,$a[0],$a[1],$a[2],$a[3]);
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/EventStack.inc b/buildscripts/PhpDocumentor/phpDocumentor/EventStack.inc deleted file mode 100644 index 5e2690e8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/EventStack.inc +++ /dev/null @@ -1,78 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * An event Stack
 - * 
 - * @author    Joshua Eichorn <jeichorn@phpdoc.org>
 - * @version    $Id: EventStack.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
 - * @package     phpDocumentor
 - */
 -/**
 - * An event Stack
 - * 
 - * @author    Joshua Eichorn <jeichorn@phpdoc.org>
 - * @version    $Id: EventStack.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
 - * @package     phpDocumentor
 - */
 -class EventStack
 -{
 -    /**
 -     * The stack
 -     * @var array
 -     */
 -    var $stack = array(PARSER_EVENT_NOEVENTS);
 -
 -    /**
 -     * The number of events in the stack
 -     * @var integer
 -     */
 -    var $num = 0;
 -
 -    /**
 -     * Push an event onto the stack
 -     *
 -     * @param    int    $event    All events must be constants
 -     */
 -    function pushEvent($event)
 -    {
 -        $this->num = array_push($this->stack,$event) - 1;
 -    }
 -
 -    /**
 -     * Pop an event from the stack
 -     *
 -     * @return    int    An event
 -     */
 -    function popEvent()
 -    {
 -        $this->num--;
 -        return array_pop($this->stack);
 -    }
 -
 -    /**
 -     * Get the current event
 -     *
 -     * @return    int    An event
 -     */
 -    function getEvent()
 -    {
 -        return $this->stack[$this->num];
 -    }
 -}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/HighlightParser.inc b/buildscripts/PhpDocumentor/phpDocumentor/HighlightParser.inc deleted file mode 100644 index f2a26ee9..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/HighlightParser.inc +++ /dev/null @@ -1,2354 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * Source Code Highlighting
 - *
 - * The classes in this file are responsible for the dynamic @example, @filesource
 - * and {@}source} tags output.  Using the phpDocumentor_HighlightWordParser,
 - * the phpDocumentor_HighlightParser retrieves PHP tokens one by one from the
 - * array generated by {@link phpDocumentorTWordParser} source retrieval functions
 - * and then highlights them individually.
 - *
 - * It accomplishes this highlighting through the assistance of methods in
 - * the output Converter passed to its parse() method, and then returns the
 - * fully highlighted source as a string
 - * @tutorial tags.example.pkg, tags.filesource.pkg, tags.inlinesource.pkg
 - * @package phpDocumentor
 - * @subpackage Parsers
 - * @since 1.2.0beta3
 - */
 -/**
 - * Retrieve tokens from an array of tokens organized by line numbers
 - * @package phpDocumentor
 - * @subpackage Parsers
 - * @since 1.2.0beta3
 - */
 -class phpDocumentor_HighlightWordParser extends phpDocumentorTWordParser
 -{
 -    /**
 -     * Hash used to keep track of line numbers that have already been initialized
 -     * @var array
 -     * @access private
 -     */
 -    var $_listLineNums = array();
 -    /**
 -     * @param array
 -     * @param phpDocumentor_HighlightParser
 -     */
 -    function setup(&$input, &$parser)
 -    {
 -        $this->_parser = &$parser;
 -        $this->data = &$input;
 -        $this->_all = $input;
 -        $this->_sourceline = 0;
 -        $this->pos = 0;
 -        $this->linenum = 0;
 -    }
 -    
 -    /**
 -     * debugging function
 -     * @access private
 -     */
 -    function printState()
 -    {
 -        $linenum = $this->linenum;
 -        $pos = $this->pos;
 -        if (!isset($this->_all[$this->linenum][$this->pos]))
 -        {
 -            $linenum++;
 -            $pos = 0;
 -        }
 -        $details = '';
 -        $token = $this->_all[$linenum][$pos];
 -        if (is_array($token))
 -        {
 -            $details = token_name($token[0]);
 -            $token = htmlspecialchars($token[1]);
 -        } else $token = htmlspecialchars($token);
 -        debug('Next Token '.$this->linenum.'-'.$this->pos.':'.$details);
 -        var_dump($token);
 -    }
 -    
 -    /**
 -     * Retrieve the position of the next token that will be parsed
 -     * in the internal token array
 -     * @return array format: array(line number, position)
 -     */
 -    function nextToken()
 -    {
 -        $linenum = $this->linenum;
 -        $pos = $this->pos;
 -        if (!isset($this->_all[$this->linenum][$this->pos]))
 -        {
 -            $linenum++;
 -            $pos = 0;
 -        }
 -        if (!isset($this->_all[$linenum][$pos])) return false;
 -        return array($linenum, $pos);
 -    }
 -    
 -    /**
 -     * Retrieve the next token
 -     * @return array|string either array(PHP token constant, token) or string
 -     *                      non-specific separator
 -     */
 -    function getWord()
 -    {
 -        if (!isset($this->_all[$this->linenum][$this->pos]))
 -        {
 -            $this->linenum++;
 -            $this->pos = 0;
 -            if (!isset($this->_all[$this->linenum])) return false;
 -            $this->_parser->newLineNum();
 -            return $this->getWord();
 -        }
 -        $word = $this->_all[$this->linenum][$this->pos++];
 -        return str_replace("\t",'    ',$word);
 -    }
 -
 -    /**
 -     * back the word parser to the previous token as defined by $last_token
 -     * @param array|string token, or output from {@link nextToken()}
 -     * @param boolean if true, backupPos interprets $last_token to be the
 -     *                position in the internal token array of the last token
 -     */
 -    function backupPos($last_token, $is_pos = false)
 -    {
 -        if ($is_pos)
 -        {
 -            $this->linenum = $last_token[0];
 -            $this->pos = $last_token[1];
 -            return;
 -        }
 -        if ($last_token === false) return;
 -//fancy_debug('before',$this->linenum,$this->pos,token_name($this->_all[$this->linenum][$this->pos][0]),htmlentities($this->_all[$this->linenum][$this->pos][1]),$this->_all[$this->linenum]);
 -        do
 -        {
 -            $this->pos--;
 -            if ($this->pos < 0)
 -            {
 -                $this->linenum--;
 -                if ($this->linenum < 0) {
 -                    var_dump($last_token);
 -                    break;
 -                }
 -                $this->pos = count($this->_all[$this->linenum]) - 1;
 -            }
 -        } while (!$this->tokenEquals($last_token,str_replace("\t", '    ', $this->_all[$this->linenum][$this->pos])));
 -        //fancy_debug('after',$this->linenum,$this->pos,token_name($this->_all[$this->linenum][$this->pos][0]),htmlentities($this->_all[$this->linenum][$this->pos][1]));
 -    }
 -}
 -
 -/**
 - * Highlights source code using {@link parse()}
 - * @package phpDocumentor
 - * @subpackage Parsers
 - */
 -class phpDocumentor_HighlightParser extends phpDocumentorTParser
 -{
 -    /**#@+ @access private */
 -    /**
 -     * Highlighted source is built up in this string
 -     * @var string
 -     */
 -    var $_output;
 -    /**
 -     * contents of the current source code line as it is parsed
 -     * @var string
 -     */
 -    var $_line;
 -    /**
 -     * Used to retrieve highlighted tokens
 -     * @var Converter a descendant of Converter
 -     */
 -    var $_converter;
 -    /**
 -     * Path to file being highlighted, if this is from a @filesource tag
 -     * @var false|string full path
 -     */
 -    var $_filesourcepath;
 -    /**
 -     * @var array
 -     */
 -    var $eventHandlers = array(
 -                                PARSER_EVENT_ARRAY => 'defaultHandler',
 -                                PARSER_EVENT_CLASS => 'handleClass',
 -                                PARSER_EVENT_COMMENT => 'handleComment',
 -                                PARSER_EVENT_DOCBLOCK_TEMPLATE => 'handleDocBlockTemplate',
 -                                PARSER_EVENT_END_DOCBLOCK_TEMPLATE => 'handleEndDocBlockTemplate',
 -                                PARSER_EVENT_LOGICBLOCK => 'handleLogicBlock',
 -                                PARSER_EVENT_METHOD_LOGICBLOCK => 'handleMethodLogicBlock',
 -                                PARSER_EVENT_NOEVENTS => 'defaultHandler',
 -                                PARSER_EVENT_OUTPHP => 'defaultHandler',
 -                                PARSER_EVENT_CLASS_MEMBER => 'handleClassMember',
 -                                PARSER_EVENT_DEFINE => 'defaultHandler',
 -                                PARSER_EVENT_DEFINE_PARAMS => 'defaultHandler',
 -                                PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS => 'defaultHandler',
 -                                PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS => 'defaultHandler',
 -                                PARSER_EVENT_DOCBLOCK => 'handleDocBlock',
 -                                PARSER_EVENT_TAGS => 'handleTags',
 -                                PARSER_EVENT_DESC => 'handleDesc',
 -                                PARSER_EVENT_DOCKEYWORD => 'handleTag',
 -                                PARSER_EVENT_DOCKEYWORD_EMAIL => 'handleDockeywordEmail',
 -                                PARSER_EVENT_EOFQUOTE => 'handleQuote',
 -                                PARSER_EVENT_FUNCTION => 'handleFunction',
 -                                PARSER_EVENT_METHOD => 'handleMethod',
 -                                PARSER_EVENT_FUNCTION_PARAMS => 'handleFunctionParams',
 -                                PARSER_EVENT_FUNC_GLOBAL => 'handleFuncGlobal',
 -                                PARSER_EVENT_INLINE_DOCKEYWORD => 'handleInlineDockeyword',
 -                                PARSER_EVENT_INCLUDE => 'defaultHandler',
 -                                PARSER_EVENT_INCLUDE_PARAMS => 'defaultHandler',
 -                                PARSER_EVENT_QUOTE => 'handleQuote',
 -                                PARSER_EVENT_QUOTE_VAR => 'handleQuoteVar',
 -                                PARSER_EVENT_PHPCODE => 'handlePhpCode',
 -                                PARSER_EVENT_SINGLEQUOTE => 'handleSingleQuote',
 -                                PARSER_EVENT_STATIC_VAR => 'defaultHandler',
 -                                PARSER_EVENT_STATIC_VAR_VALUE => 'defaultHandler',
 -                                PARSER_EVENT_VAR => 'handleVar',
 -    );
 -
 -    /**
 -     * event handlers for @tags
 -     * @tutorial tags.pkg
 -     */
 -    var $tagHandlers = array(
 -                                '*' => 'defaultTagHandler',
 -                                'abstract' => 'coreTagHandler',
 -                                'access' => 'coreTagHandler',
 -                                'author' => 'coreTagHandler',
 -                                'category' => 'coreTagHandler',
 -                                'copyright' => 'coreTagHandler',
 -                                'deprecated' => 'coreTagHandler',
 -                                'example' => 'coreTagHandler',
 -                                'filesource' => 'coreTagHandler',
 -                                'final' => 'coreTagHandler',
 -                                'global' => 'globalTagHandler',
 -                                'ignore' => 'coreTagHandler',
 -                                'license' => 'coreTagHandler',
 -                                'link' => 'coreTagHandler',
 -                                'name' => 'coreTagHandler',
 -                                'package' => 'coreTagHandler',
 -                                'param' => 'paramTagHandler',
 -                                'parameter' => 'paramTagHandler',
 -                                'see' => 'coreTagHandler',
 -                                'since' => 'coreTagHandler',
 -                                'subpackage' => 'coreTagHandler',
 -                                'internal' => 'coreTagHandler',
 -                                'return' => 'returnTagHandler',
 -                                'static' => 'coreTagHandler',
 -                                'staticvar' => 'staticvarTagHandler',
 -								'throws' => 'coreTagHandler',
 -                                'todo' => 'coreTagHandler',
 -                                'tutorial' => 'coreTagHandler',
 -                                'uses' => 'coreTagHandler',
 -                                'var' => 'varTagHandler',
 -                                'version' => 'coreTagHandler',
 -                            );
 -    /**#@-*/
 -    
 -    /**
 -     * @uses Converter::SourceLine() encloses {@link $_line} in a
 -     *                               converter-specific format
 -     */
 -    function newLineNum()
 -    {
 -        if ($this->_pf_no_output_yet) return;
 -        $this->_flush_save();
 -        $this->_line .= $this->_converter->flushHighlightCache();
 -        $this->_output .= $this->_converter->SourceLine($this->_wp->linenum, $this->_line, $this->_path);
 -        $this->_line = '';
 -    }
 -    
 -    /**
 -     * Start the parsing at a certain line number
 -     */
 -    function setLineNum($num)
 -    {
 -        $this->_wp->linenum = $num;
 -    }
 -    
 -    /**
 -     * Parse a new file
 -     *
 -     * The parse() method is a do...while() loop that retrieves tokens one by
 -     * one from the {@link $_event_stack}, and uses the token event array set up
 -     * by the class constructor to call event handlers.
 -     *
 -     * The event handlers each process the tokens passed to them, and use the
 -     * {@link _addoutput()} method to append the processed tokens to the
 -     * {@link $_line} variable.  The word parser calls {@link newLineNum()}
 -     * every time a line is reached.
 -     *
 -     * In addition, the event handlers use special linking functions
 -     * {@link _link()} and its cousins (_classlink(), etc.) to create in-code
 -     * hyperlinks to the documentation for source code elements that are in the
 -     * source code.
 -     *
 -     * @uses setupStates() initialize parser state variables
 -     * @uses configWordParser() pass $parse_data to prepare retrieval of tokens
 -     * @param    array $parse_data
 -     * @param    Converter $converter
 -     * @param    boolean $inlinesourceparse whether this data is from an
 -     *           inline {@}source} tag
 -     * @param    string|false if a string, it is the name of the class whose
 -     *           method we are parsing containing a {@}source} tag
 -     * @param    false|integer starting line number from {@}source linenum}
 -     * @param    false|string full path to file with @filesource tag, if this
 -     *           is a @filesource parse
 -     * @staticvar    integer    used for recursion limiting if a handler for
 -     *                          an event is not found
 -     * @return    bool
 -     */
 -    function parse (&$parse_data, &$converter, $inlinesourceparse = false, $class = false, $linenum = false, $filesourcepath = false)
 -    {
 -        if (!tokenizer_ext)
 -        {
 -            if (is_array($parse_data))
 -            {
 -                $parse_data = join($parse_data,'');
 -            }
 -            $parse_data = explode("\n", $parse_data);
 -            $this->_output = '';
 -            foreach($parse_data as $linenum => $line)
 -            {
 -                if ($linenum > 0)
 -                {
 -                    $this->_output .= $converter->SourceLine($linenum, $line, $filesourcepath);
 -                }
 -            }
 -            return $converter->PreserveWhiteSpace($this->_output);
 -        }
 -        static $endrecur = 0;
 -        $this->_converter = &$converter;
 -        $converter->startHighlight();
 -        $this->_path = $filesourcepath;
 -        $this->setupStates($inlinesourceparse, $class);
 -
 -        $this->configWordParser($parse_data);
 -        if ($linenum !== false) $this->setLineNum($linenum);
 -        // initialize variables so E_ALL error_reporting doesn't complain
 -        $pevent = 0;
 -        $word = 0;
 -
 -        do
 -        {
 -            $lpevent = $pevent;
 -            $pevent = $this->_event_stack->getEvent();
 -            if ($lpevent != $pevent)
 -            {
 -                $this->_last_pevent = $lpevent;
 -            }
 -
 -            if ($pevent == PARSER_EVENT_CLASS_MEMBER)
 -            {
 -                $this->_wp->setWhitespace(true);
 -            } else
 -            {
 -                $this->_wp->setWhitespace(false);
 -            }
 -
 -            if (!is_array($word)) $lw = $word;
 -            if (is_array($word) && $word[0] != T_WHITESPACE) $lw = $word;
 -            $dbg_linenum = $this->_wp->linenum;
 -            $dbg_pos = $this->_wp->getPos();
 -            $word = $this->_wp->getWord();
 -            if (is_array($word) && $word[0] == T_WHITESPACE  && $pevent != PARSER_EVENT_CLASS_MEMBER)
 -            {
 -//                debug("added ".$this->_wp->linenum.'-'.$this->_wp->pos);
 -                $this->_addoutput($word);
 -                continue;
 -            } else $this->_pv_last_word = $lw;
 -            if ($pevent != PARSER_EVENT_DOCBLOCK)
 -            {
 -                $this->_pv_last_next_word = $this->_pv_next_word;
 -                $this->_pv_next_word = $this->_wp->nextToken();
 -            }
 -            // in wordparser, have to keep track of lines
 -//            $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWLINENUM, $this->_wp->linenum);
 -            if (0)//PHPDOCUMENTOR_DEBUG == true)
 -            {
 -                echo "LAST: ";
 -                if (is_array($this->_pv_last_word))
 -                {
 -                    echo token_name($this->_pv_last_word[0]). ' => |'.htmlspecialchars($this->_pv_last_word[1]);
 -                } else echo "|" . $this->_pv_last_word;
 -                echo "|\n";
 -                echo "PEVENT: " . $this->getParserEventName($pevent) . "\n";
 -                echo "LASTPEVENT: " . $this->getParserEventName($this->_last_pevent) . "\n";
 -//                echo "LINE: ".$this->_line."\n";
 -//                echo "OUTPUT: ".$this->_output."\n";
 -                echo $dbg_linenum.'-'.$dbg_pos . ": ";
 -                if (is_array($word))
 -                {
 -                    echo token_name($word[0]).' => |'.htmlspecialchars($word[1]);
 -                } else echo '|'.htmlspecialchars($word);
 -                echo "|\n";
 -                $this->_wp->printState();
 -                echo "NEXT TOKEN: ";
 -                $tok1 = $this->_pv_next_word;
 -                $tok = $this->_wp->_all[$tok1[0]][$tok1[1]];
 -                if (is_array($tok))
 -                {
 -                    echo token_name($tok[0]). ' => '.$tok1[0].'-'.$tok1[1].'|'.htmlspecialchars($tok[1]);
 -                } else echo "|" . $tok;
 -                echo "|\n";
 -                echo "-------------------\n\n\n";
 -                flush();
 -            }
 -            if (isset($this->eventHandlers[$pevent]))
 -            {
 -                $handle = $this->eventHandlers[$pevent];
 -                $this->$handle($word, $pevent);
 -            } else
 -            {
 -                debug('WARNING: possible error, no handler for event number '.$pevent);
 -                if ($endrecur++ == 25)
 -                {
 -                    die("FATAL ERROR, recursion limit reached");
 -                }
 -            }
 -        } while (!($word === false));
 -        if (strlen($this->_line)) $this->newLineNum();
 -        return $this->_output;
 -    }
 -
 -    /**#@+
 -     * Event Handlers
 -     *
 -     * All Event Handlers use {@link checkEventPush()} and
 -     * {@link checkEventPop()} to set up the event stack and parser state.
 -     * @access private
 -     * @param string|array token value
 -     * @param integer parser event from {@link Parser.inc}
 -     */
 -    /**
 -     * Most tokens only need highlighting, and this method handles them
 -     */
 -    function defaultHandler($word, $pevent)
 -    {
 -        $this->_addoutput($word);
 -        if ($this->checkEventPush($word, $pevent)) return;
 -        $this->checkEventPop($word, $pevent);
 -    }
 -    
 -    /**
 -     * Handles global declarations in a function, like:
 -     *
 -     * <code>
 -     * function foobar()
 -     * {
 -     *     global $_phpDocumentor_setting;
 -     * }
 -     * </code>
 -     * @uses _globallink() instead of _addoutput(), to link to global variables
 -     *       if they are used in a function
 -     */
 -    function handleFuncGlobal($word, $pevent)
 -    {
 -        if ($this->checkEventPush($word, $pevent)) return;
 -        $this->_globallink($word);
 -        $this->checkEventPop($word, $pevent);
 -    }
 -    
 -    /**
 -     * Handles strings in quotation marks and heredoc
 -     *
 -     * Special handling is needed for strings that contain variables like:
 -     *
 -     * <code>$a = "$test string"</code>
 -     *
 -     * The tokenizer parses out tokens '"',array(T_VARIABLE,'$test'),' string',
 -     * and '"'.  Since it is possible to have $this->classvar in a string,
 -     * we save a variable name just in case the next token is -> to allow linking
 -     * to class members.  Otherwise, the string is simply highlighted.
 -     *
 -     * constant strings (with no $variables in them) are passed as a single
 -     * entity, and so will be saved in the last token parsed.  This means the
 -     * event handler must tell the word parser to re-retrieve the current token
 -     * so that the correct event handler can process it.
 -     */
 -    function handleQuote($word, $pevent)
 -    {
 -        if ($this->_pf_inmethod && is_array($word) && $word[0] == T_VARIABLE) $this->_pv_lastvar = $word;
 -        if ($this->checkEventPush($word, $pevent))
 -        {
 -            $this->_addoutput($word);
 -            return;
 -        }
 -        if ($this->_pf_quote_active &&
 -              (($this->_pv_last_word == '"' && $this->_last_pevent != PARSER_EVENT_QUOTE) ||
 -               (is_array($this->_pv_last_word) && $this->_pv_last_word[0] == T_END_HEREDOC &&
 -                $this->_last_pevent != PARSER_EVENT_EOFQUOTE)))
 -        {
 -            $this->_pf_quote_active = false;
 -            $this->_wp->backupPos($word);
 -            $this->_event_stack->popEvent();
 -            return;
 -        }
 -        if (!$this->_pf_quote_active && 
 -            (($this->_pv_last_word == '"' && $this->_last_pevent != PARSER_EVENT_QUOTE) ||
 -             (is_array($this->_pv_last_word) && $this->_pv_last_word[0] == T_END_HEREDOC &&
 -                $this->_last_pevent != PARSER_EVENT_EOFQUOTE)))
 -        {
 -            if (is_array($word) && $word[0] == T_VARIABLE) $this->_pv_lastvar = $word;
 -            $this->_pf_quote_active = true;
 -            $this->_save_highlight_state = $this->_converter->getHighlightState();
 -            $this->_converter->startHighlight();
 -            $this->_addoutput($word);
 -            $this->checkEventPop($word, $pevent);
 -            return;
 -        } elseif (is_array($this->_pv_last_word) && $this->_pv_last_word[0] == T_CONSTANT_ENCAPSED_STRING)
 -        {
 -//            $this->_pv_quote_data = $this->_pv_last_word[1];
 -            $this->_event_stack->popEvent();
 -            $this->_wp->backupPos($word);
 -            return;
 -        }
 -        if ($this->checkEventPop($word, $pevent))
 -        {
 -            $this->_pf_quote_active = false;
 -        }
 -        $this->_addoutput($word);
 -    }
 -    
 -    /**
 -     * Handles {$variable} within a "quote"
 -     *
 -     * This is a simple handler, for a very complex
 -     * array of legal syntax.  It is legal to nest control structures
 -     * inside the {}, and other weird stuff.
 -     */
 -    function handleQuoteVar($word, $pevent)
 -    {
 -        if ($this->checkEventPop($word, $pevent))
 -        {
 -            $this->_pf_quote_active = true;
 -            $this->_addoutput($word);
 -            return;
 -        }
 -        if ($this->_pf_inmethod && is_array($word) && $word[0] == T_VARIABLE) $this->_pv_lastvar = $word;
 -        if ($this->checkEventPush($word, $pevent))
 -        {
 -            $this->_pf_quote_active = false;
 -            if (is_string($word) && ($word == '{' || $word == '"' || $word == "'"))
 -            {
 -                $this->_pf_quote_active = true;
 -                $this->_pv_lastvar = false;
 -            }
 -        }
 -        $this->_addoutput($word);
 -    }
 -    
 -    /**
 -     * Handles define() statements
 -     *
 -     * The only thing this handler cares about is retrieving the name of the
 -     * define variable, and the end of the define statement, so after the name
 -     * is found, it simply makes sure parentheses are matched as in this case:
 -     *
 -     * <code>
 -     * define("test",array("hello",6 => 4, 5 => array('there')));
 -     * </code>
 -     *
 -     * This handler and the DEFINE_PARAMS_PARENTHESIS handler (which is just
 -     * {@link defaultHandler()} in this version, as nothing fancy is needed)
 -     * work together to ensure proper parenthesis matching.
 -     *
 -     * If the define variable is documented, a link will be created to its
 -     * documentation using the Converter passed.
 -     */
 -    function handleDefine($word, $pevent)
 -    {
 -        static $token_save;
 -        if (!isset($token_save)) $token_save = array();
 -        $e = $this->checkEventPush( $word, $pevent);
 -        if ($e && $e != PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS) return;
 -        
 -        if(!isset($this->_pv_define_params_data)) $this->_pv_define_params_data = '';
 -        
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            unset($token_save);
 -            $this->_addoutput($word);
 -        }
 -        if ($this->_pf_definename_isset)
 -        {
 -            $this->_addoutput($word);
 -        } else
 -        {
 -            if ($word != ",")
 -            {
 -                $token_save[] = $word;
 -                if (is_array($word)) $word = $word[1];
 -                $this->_pv_define_params_data .= $word;
 -            } else
 -            {
 -                if (substr($this->_pv_define_params_data,0,1) ==
 -                    substr($this->_pv_define_params_data,strlen($this->_pv_define_params_data) - 1) &&
 -                    in_array(substr($this->_pv_define_params_data,0,1),array('"',"'")))
 -                { // remove leading and ending quotation marks if there are only two
 -                    $a = substr($this->_pv_define_params_data,0,1);
 -                    $b = substr($this->_pv_define_params_data,1,strlen($this->_pv_define_params_data) - 2);
 -                    if (strpos($b,$a) === false)
 -                    {
 -                        $this->_pv_define_params_data = $b;
 -                    }
 -                }
 -                $this->_pf_definename_isset = true;
 -                $link = $this->_converter->getLink($this->_pv_define_params_data);
 -                foreach ($token_save as $token)
 -                {
 -                    if (is_object($link))
 -                    {
 -                        if (is_array($token)) $token = $token[1];
 -                        $this->_addoutput($this->_converter->returnSee($link, $token));
 -                    } else
 -                    {
 -                        $this->_addoutput($save, $token);
 -                    }
 -                }
 -                $this->_pv_define_params_data = '';
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * Handles normal global code.  Special consideration is taken for DocBlocks
 -     * as they need to retrieve the whole DocBlock before doing any output, so
 -     * the parser flag {@link $_pf_no_output_yet} is set to tell
 -     * {@link _addoutput()} not to spit anything out yet.
 -     * @uses _link() make any global code that is a documentable element link
 -     *       to the php manual or its documentation
 -     */
 -    function handlePhpCode($word, $pevent)
 -    {
 -        $test = $this->checkEventPush($word, $pevent);
 -        if ($test == PARSER_EVENT_DOCBLOCK || $test == PARSER_EVENT_COMMENT)
 -        {
 -            $this->_pf_no_output_yet = true;
 -            $this->_pv_saveline = $this->_wp->linenum + 1;
 -            return;
 -        }
 -        if (is_array($word) && $word[0] == T_DOUBLE_COLON) $this->_pf_colon_colon = true;
 -        if (!$this->_pf_colon_colon && is_array($word) && $word[0] == T_STRING) $this->_pv_last_string = $word;
 -        $this->_link($word);
 -        $this->checkEventPop($word, $pevent);
 -    }
 -    
 -    /**
 -     * Handle the function declaration header
 -     *
 -     * This handler only sees the "function name" portion of the function
 -     * declaration.  Handling of the function parameters is by
 -     * {@link handleFunctionParams()}, and the function body is handled by
 -     * {@link handleLogicBlock()}
 -     */
 -    function handleFunction($word, $pevent)
 -    {
 -        if ($this->checkEventPush($word, $pevent))
 -        {
 -            $this->_addoutput($word);
 -            return;
 -        }
 -        if ($this->checkEventPop($word, $pevent)) return;
 -        $this->_link($word);
 -    }
 -    
 -    /**
 -     * Handle the method declaration header
 -     *
 -     * This handler only sees the "function name" portion of the method
 -     * declaration.  Handling of the method parameters is by
 -     * {@link handleFunctionParams()}, and the method body is handled by
 -     * {@link handleMethodLogicBlock()}
 -     */
 -    function handleMethod($word, $pevent)
 -    {
 -        if ($this->checkEventPush($word, $pevent))
 -        {
 -            $this->_addoutput($word);
 -            return;
 -        }
 -        if ($this->checkEventPop($word, $pevent)) {
 -            if ($word == ';') {
 -                $this->_addoutput($word);
 -            }
 -            return;
 -        }
 -        $this->_methodlink($word);
 -    }
 -    
 -    /**
 -     * Handler for the stuff between ( and ) in a function declaration
 -     *
 -     * <code>
 -     * function handles($only,$these,$parameters){...}
 -     * </code>
 -     */
 -    function handleFunctionParams($word, $pevent)
 -    {
 -        if ($this->checkEventPush($word, $pevent))
 -        {
 -            $this->_addoutput($word);
 -            return;
 -        }
 -        $this->_addoutput($word);
 -        $this->checkEventPop($word, $pevent);
 -    }
 -    
 -    /**
 -     * Handler for function body.
 -     *
 -     * The function body is checked for php functions, documented constants,
 -     * functions, and indirectly for global statements.  It hyperlinks to the
 -     * documentation for detected elements is created.  Everything else is
 -     * highlighted normally.
 -     */
 -    function handleLogicBlock($word, $pevent)
 -    {
 -        if ($this->checkEventPush($word, $pevent))
 -        {
 -            $this->_addoutput($word);
 -            return;
 -        }
 -        if (is_array($word) && $word[0] == T_DOUBLE_COLON) $this->_pf_colon_colon = true;
 -        if (!$this->_pf_colon_colon && is_array($word) && $word[0] == T_STRING) $this->_pv_last_string = $word;
 -        $this->_link($word);
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $e = $this->_event_stack->popEvent();
 -            $this->_event_stack->pushEvent($e);
 -            if ($e == PARSER_EVENT_FUNCTION)
 -            {
 -                $this->_wp->backupPos($word); 
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * Handler for method body.
 -     *
 -     * Like functions, the method body is checked for php functions, documented
 -     * constants, functions, and indirectly for global statements.  It also
 -     * checks for "$this->XXXX" where XXXX is a class variable or method, and
 -     * links to the documentation for detected elements is created.  Everything
 -     * else is highlighted normally.
 -     */
 -    function handleMethodLogicBlock($word, $pevent)
 -    {
 -        if (isset($this->_pv_prev_var_type))
 -        {
 -//            debug('prevtype is set');
 -            if (!is_array($word)) unset($this->_pv_prev_var_type);
 -            else
 -            {
 -                if ($word[0] != T_WHITESPACE && $word[0] != T_STRING && $word[0] != T_OBJECT_OPERATOR)
 -                {
 -//                    fancy_debug('unset',$word);
 -                    unset($this->_pv_prev_var_type);
 -                }
 -            }
 -        }
 -        $this->_pf_inmethod = true;
 -        if ($e = $this->checkEventPush($word, $pevent))
 -        {
 -            $this->_addoutput($word);
 -            if ($e == PARSER_EVENT_CLASS_MEMBER) {
 -                $this->_pf_no_output_yet = true;
 -            }
 -            return;
 -        }
 -        if (is_array($word) && $word[0] == T_DOUBLE_COLON) $this->_pf_colon_colon = true;
 -        if (!$this->_pf_colon_colon && is_array($word) && $word[0] == T_STRING) $this->_pv_last_string = $word;
 -        if (is_array($word) && $word[0] == T_VARIABLE) $this->_pv_lastvar = $word;
 -        $this->_link($word);
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $this->_pf_inmethod = false;
 -            $e = $this->_event_stack->popEvent();
 -            $this->_event_stack->pushEvent($e);
 -            if ($e == PARSER_EVENT_METHOD)
 -            {
 -                $this->_wp->backupPos($word); 
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * Handles $obj->classmember in a method body
 -     *
 -     * This handler is responsible for linking to the documentation of a
 -     * class member when it is used directly in a method body.
 -     * 
 -     * There are two methods of determining whether to link:
 -     * - $this->member
 -     * - $this->member->submember
 -     *
 -     * The first case is handled by the $_pv_lastvar variable, and the
 -     * second case is handled by the $_pv_prev_var_type variable.  $_pv_lastvar
 -     * is always set to the value of the last T_VARIABLE token, if and only if
 -     * no text has occurred between the variable and a T_OBJECT_OPERATOR token
 -     * "->".  handleClassMember will only link if the last variable encountered
 -     * was $this.
 -     *
 -     * When $this->variable is encountered, the variable is looked up to see
 -     * if it can be found, and if so, the contents of its @var tag are processed
 -     * to see if the member variable is defined to have 1 and only 1 class.
 -     * If so, the $_pv_prev_var_type variable is set to this classname.  When
 -     * submember is processed, the HighlightParser checks to see if 
 -     * $_pv_prev_var_type::submember() or $_pv_prev_var_type::$submember exists,
 -     * and if it does, it is linked to.
 -     */
 -    function handleClassMember($word, $pevent)
 -    {
 -        if (!isset($this->_pv_lastvar) && !isset($this->_pv_prev_var_type))
 -        {
 -//            fancy_debug('returned from',$word,$this->_pv_prev_var_type);
 -            $this->_pf_no_output_yet = false;
 -            $this->_event_stack->popEvent();
 -            return $this->defaultHandler($word, $pevent);
 -        }
 -        if (isset($this->_pv_cm_name))
 -        {
 -            $this->_pf_obj_op = false;
 -            $name = $this->_pv_cm_name;
 -            unset($this->_pv_cm_name);
 -//            debug('unset pvcmname');
 -            $this->_event_stack->popEvent();
 -            // control variable for _pv_prev_var_type
 -            $setnow = false;
 -            if ((isset($this->_pv_lastvar) && $this->_pv_lastvar[1] == '$this')
 -                || isset($this->_pv_prev_var_type))
 -            {
 -                if (is_array($word) && $word[0] == T_WHITESPACE)
 -                {
 -                    // preserve value of _pv_prev_var_type
 -                    $setnow = true;
 -                    $save = $this->_wp->nextToken();
 -                    $temp = $this->_wp->getWord();
 -                    $this->_wp->backupPos($save, true);
 -                }
 -                if ((is_string($word) && $word == '(') ||
 -                    (isset($temp) && is_string($temp) && $temp == '('))
 -                { // it's a function
 -                    $this->_pf_no_output_yet = false;
 -                    $this->_methodlink($name);
 -                    unset($this->_pv_prev_var_type);
 -                } else
 -                { // it's a variable
 -//                    fancy_debug('name is ',$name);
 -                    $this->_pf_no_output_yet = false;
 -                    $this->_varlink($name, true);
 -                    $templink = $this->_converter->getLink('object '.$this->_pv_class);
 -                    $class = false;
 -                    if (is_object($templink)) {
 -                        $class = $this->_converter->classes->getClass($templink->name, $templink->path);
 -                    }
 -                    if ($class)
 -                    {
 -                        $varname = $name;
 -                        if (is_array($varname)) $varname = $name[1];
 -                        if ($varname{0} != '$') $varname = '$'.$varname;
 -                        $var = $class->getVar($this->_converter, $varname);
 -                        
 -                        if (is_object($var) && $var->docblock->var)
 -                            $type = $var->docblock->var->returnType;
 -                        if (isset($type))
 -                        {
 -                            if (strpos($type, 'object') === false)
 -                                $type = 'object '.$type;
 -                            $type = $this->_converter->getLink($type);
 -                            if (phpDocumentor_get_class($type) == 'classlink')
 -                            { // the variable's type is a class, save it for future ->
 -//                                fancy_debug('set prev_var_type!',$type->name);
 -                                $setnow = true;
 -                                $this->_pv_prev_var_type = $type->name;
 -                            } else unset($this->_pv_prev_var_type);
 -                        } else unset($this->_pv_prev_var_type);
 -                    } else unset($this->_pv_prev_var_type);
 -                }
 -            } else {
 -                $this->_pf_no_output_yet = false;
 -                // this does NewLinenum if necessary
 -                $this->_wp->backupPos($word);
 -                $this->_wp->getWord();
 -                $this->_addoutput($name);
 -            }
 -            if (!$setnow)
 -            {
 -//                debug('unset prevtype, no setnow');
 -                unset($this->_pv_prev_var_type);
 -            }
 -            unset($this->_pv_lastvar);
 -            $this->_pf_no_output_yet = false;
 -            // this does NewLinenum if necessary
 -            $this->_wp->backupPos($word);
 -            $this->_wp->getWord();
 -            if ($word[0] == T_OBJECT_OPERATOR)
 -                $this->_wp->backupPos($word);
 -            else
 -                $this->_addoutput($word);
 -            return;
 -        }
 -        if (!$this->_pf_obj_op && is_array($this->_pv_last_word) && $this->_pv_last_word[0] == T_OBJECT_OPERATOR)
 -        {
 -            if ((isset($this->_pv_lastvar) && $this->_pv_lastvar[1] == '$this') || isset($this->_pv_prev_var_type))
 -            {
 -                $this->_pf_obj_op = true;
 -            } else
 -            {
 -                $this->_pf_no_output_yet = false;
 -                // this does NewLinenum if necessary
 -                $this->_wp->backupPos($word);
 -                $this->_wp->getWord();
 -                $this->_addoutput($word);
 -                $this->_event_stack->popEvent();
 -            }
 -        }
 -        if (is_array($word) && $word == T_WHITESPACE)
 -        {
 -            $this->_pf_no_output_yet = false;
 -            // this does NewLinenum if necessary
 -            $this->_wp->backupPos($word);
 -            $this->_wp->getWord();
 -            $this->_addoutput($word);
 -            return;
 -        }
 -        if ($this->_pf_obj_op)
 -        {
 -            if (!(is_array($word) && ($word[0] == T_STRING || $word[0] == T_WHITESPACE)))
 -            {
 -                unset($this->_pv_lastvar);
 -//                debug('unset lastvar');
 -                $this->_event_stack->popEvent();
 -                $this->_pf_no_output_yet = false;
 -                // this does NewLinenum if necessary
 -                $this->_wp->backupPos($word);
 -                $this->_wp->getWord();
 -                $this->_addoutput($word);
 -                return;
 -            }
 -            if ($word[0] == T_STRING)
 -            {
 -//                fancy_debug('set pvcmname to',$word);
 -                $this->_pv_cm_name = $word;
 -            } else {
 -                $this->_pf_no_output_yet = false;
 -                // this does NewLinenum if necessary
 -                $this->_wp->backupPos($word);
 -                $this->_wp->getWord();
 -                $this->_addoutput($word);
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * Handles comments
 -     *
 -     * Comments are almost always single-line tokens, and so will be
 -     * in the last word.  This handler checks to see if the current token
 -     * is in fact a comment, and if it isn't, it backs up and returns control
 -     * to the parent event handler with that word.
 -     */
 -    function handleComment($word, $pevent)
 -    {
 -        $w = $this->_pv_last_word;
 -        // don't perform this check if this is a normal comment.  Docblocks
 -        // have the _pf_no_output_yet variable set to true
 -        if ($this->_pf_no_output_yet &&
 -              is_array($w) && (in_array($w[0], array(T_COMMENT, T_DOC_COMMENT)) && strpos($w[1],'/**') === 0)) {
 -            $this->_event_stack->popEvent();
 -            $this->_event_stack->pushEvent(PARSER_EVENT_DOCBLOCK);
 -            return $this->handleDocBlock($word, PARSER_EVENT_DOCBLOCK);
 -        }
 -        if ($this->_pf_no_output_yet) {
 -            $flag = 1;
 -            $this->_pf_no_output_yet = false;
 -            $this->_addoutput($this->_pv_last_word);
 -        }
 -        if (!is_array($word) || !in_array($word[0], array(T_COMMENT, T_DOC_COMMENT)) ||
 -            (in_array($word[0], array(T_COMMENT, T_DOC_COMMENT)) && strpos($word[1],'/**') === 0))
 -        {
 -            $this->_event_stack->popEvent();
 -            if (strpos($this->_pv_last_word[1], "\n") !== false)
 -            {
 -//                $this->_wp->linenum++;
 -//                $this->newLineNum();
 -            }
 -            $this->_wp->backupPos($this->_pv_last_word);
 -            $this->_wp->getWord();
 -//            var_dump($this->_wp->nextToken());
 -            return;
 -        } elseif (isset($flag)) {
 -            $this->newLineNum();
 -        }
 -        $this->_addoutput($word);
 -        $this->checkEventPop($word, $pevent);
 -        if (strpos($word[1], '*/') === strlen($word[1]) - 2) {
 -            $this->_event_stack->popEvent();
 -        }
 -    }
 -    
 -    /**
 -     * Handle class declarations
 -     *
 -     * Handles the initial declaration line:
 -     *
 -     * <code>class X</code>
 -     * 
 -     * or
 -     * 
 -     * <code>class X extends Y implements I</code>
 -     *
 -     * @uses _classlink() to link to documentation for X and for Y class in
 -     *                    "class X extends Y"
 -     */
 -    function handleClass($word, $pevent)
 -    {
 -        $this->_pf_in_class = true;
 -        $a = $this->checkEventPush( $word, $pevent);
 -
 -        if (!isset($this->_pv_class) && is_array($word) && $word[0] == T_STRING)
 -        {
 -            $this->_pv_class = $this->_converter->class = $word[1];
 -            $this->_classlink($word);
 -            return;
 -        }
 -        
 -        if (is_array($word) && in_array($word[0], array(T_PRIVATE, T_PROTECTED, T_PUBLIC))) {
 -            $starttok = $this->_wp->nextToken();
 -            $test = array(T_WHITESPACE);
 -            while ($test && $test[0] == T_WHITESPACE) {
 -                $tok = $this->_wp->nextToken();
 -            	$test = $this->_wp->getWord();
 -            } // while
 -            
 -            if (is_array($test) && $test[0] == T_VARIABLE) {
 -                $this->_wp->backupPos($tok, true);
 -                return;
 -            }
 -            $this->_wp->backupPos($starttok, true);
 -        }
 -        
 -        if (@in_array($this->_pv_last_word[0], array(T_PRIVATE, T_PROTECTED, T_PUBLIC))) {
 -            if (is_array($word) && $word[0] == T_VARIABLE) {
 -                $this->_wp->backupPos($this->_pv_last_word);
 -                $this->_event_stack->pushEvent(PARSER_EVENT_VAR);
 -                return;
 -            }
 -        }
 -
 -        if ($this->_pf_extends_found && is_array($word) && $word[0] == T_STRING)
 -        {
 -            $this->_classlink($word);
 -            return;
 -        }
 -        if (is_array($word) && $word[0] == T_EXTENDS) $this->_pf_extends_found = true;
 -        if ($a == PARSER_EVENT_DOCBLOCK)
 -        {
 -            $this->_pf_no_output_yet = true;
 -            $this->_pv_saveline = $this->_wp->linenum + 1;
 -            return;
 -        }
 -        $this->_addoutput($word);
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $this->_pf_in_class = false;
 -            unset($this->_pv_class);
 -        }
 -    }
 -    
 -    /**
 -     * Handles class variable declaration
 -     *
 -     * <code>
 -     * class X
 -     * {
 -     *     var $Y;
 -     * }
 -     * </code>
 -     * @uses _varlink() make a link to $Y documentation in class variable
 -     *                  declaration "var $Y;"
 -     */
 -    function handleVar($word, $pevent)
 -    {
 -        if ($this->checkEventPush($word, $pevent))
 -        {
 -            $this->_addoutput($word);
 -            return;
 -        }
 -        if (is_array($word) && $word[0] == T_VARIABLE)
 -        {
 -            return $this->_varlink($word);
 -        }
 -        $this->_addoutput($word);
 -        $this->checkEventPop($word, $pevent);
 -    }
 -    
 -    /**
 -     * This handler is responsible for highlighting DocBlocks
 -     *
 -     * handleDocBlock determines whether the docblock is normal or a template,
 -     * and gathers all the lines of the docblock together before doing any
 -     * processing
 -     *
 -     * As it is not possible to distinguish any comment token from a docblock
 -     * token, this handler is also called for comments, and will pass control
 -     * to {@link handleComment()} if the comment is not a DocBlock
 -     * @uses commonDocBlock() once all lines of the DocBlock have been retrieved
 -     */
 -    function handleDocBlock($word, $pevent)
 -    {
 -        if (!($this->_pf_docblock || $this->_pf_docblock_template))
 -        {
 -            if (strpos($this->_pv_last_word[1],'/**') !== 0)
 -            { // not a docblock
 -                $this->_wp->backupPos($this->_pv_last_word);
 -                $this->_event_stack->popEvent();
 -                $this->_event_stack->pushEvent(PARSER_EVENT_COMMENT);
 -                $this->_pf_no_output_yet = false;
 -                return;
 -            } else
 -            {
 -                $this->_pf_no_output_yet = true;
 -                $this->_pv_db_lines = array();
 -            }
 -        }
 -        $last_word = $this->_pv_last_word[1];
 -        $dtype = '_pv_docblock';
 -        if ($last_word == '/**#@-*/')
 -        { // stop using docblock template
 -            $this->_pf_no_output_yet = false;
 -            $this->_addDocBlockoutput('closetemplate', $last_word);
 -            if ($this->_pv_next_word !== false) {
 -                $this->_wp->backupPos($this->_pv_next_word,true);
 -            }
 -            $this->_event_stack->popEvent();
 -            return;
 -        }
 -        if (!($this->_pf_docblock || $this->_pf_docblock_template))
 -        {
 -            $this->_pv_db_lines = array();
 -            if (strpos($last_word,'/**#@+') === 0)
 -            { // docblock template definition
 -                $this->_pf_docblock_template = true;
 -            } else
 -            {
 -                $this->_pf_docblock = true;
 -            }
 -            $this->_pv_db_lines[] = $last_word;
 -            if (strpos($last_word,'*/') !== false)
 -            {
 -                $this->commonDocBlock();
 -                return;
 -            }
 -            $this->_pv_db_lines[] = $word[1];
 -            if (strpos($word[1],'*/') !== false)
 -            {
 -                $this->commonDocBlock();
 -            }
 -        } else
 -        {
 -            $this->_pv_db_lines[] = $word[1];
 -        }
 -        if (($this->_pf_docblock || $this->_pf_docblock_template) && (strpos($word[1],'*/') !== false))
 -        {
 -            $this->commonDocBlock();
 -        }
 -    }
 -    /**#@-*/
 -    /**
 -     * This continuation of handleDocBlock splits DocBlock comments up into
 -     * phpDocumentor tokens.  It highlights DocBlock templates in a different
 -     * manner from regular DocBlocks, recognizes inline tags, regular tags,
 -     * and distinguishes between standard core tags and other tags, and
 -     * recognizes parameters to tags like @var.
 -     *
 -     * the type in "@var type description" will be highlighted as a php type,
 -     * and the var in "@param type $var description" will be highlighted as a
 -     * php variable.
 -     * @uses handleDesc() highlight inline tags in the description
 -     * @uses handleTags() highlight all tags
 -     * @access private
 -     */
 -    function commonDocBlock()
 -    {
 -        $this->_event_stack->popEvent();
 -        $lines = $this->_pv_db_lines;
 -        $go = count($this->_pv_db_lines);
 -        for($i=0;$i<$go;$i++)
 -        {
 -            if (substr(trim($lines[$i]),0,2) == '*/' || substr(trim($lines[$i]),0,1) != '*' && substr(trim($lines[$i]),0,3) != '/**')
 -            {
 -                $lines[$i] = array($lines[$i],false);
 -            } elseif (substr(trim($lines[$i]),0,3) == '/**')
 -            {
 -                $linesi = array();
 -                $linesi[1] = substr(trim($lines[$i]),3); // remove leading "/**"
 -                if (empty($linesi[1]))
 -                $linesi[0] = $lines[$i];
 -                else
 -                $linesi[0] = substr($lines[$i],0,strpos($lines[$i],$linesi[1]));
 -                $lines[$i] = $linesi;
 -            } else
 -            {
 -                $linesi = array();
 -                $linesi[1] = substr(trim($lines[$i]),1); // remove leading "* "
 -                if (empty($linesi[1]))
 -                $linesi[0] = $lines[$i];
 -                else
 -                $linesi[0] = substr($lines[$i],0,strpos($lines[$i],$linesi[1]));
 -                $lines[$i] = $linesi;
 -            }
 -        }
 -        for($i = 0;$i<count($lines);$i++)
 -        {
 -            if ($lines[$i][1] === false) continue;
 -            if (substr(trim($lines[$i][1]),0,1) == '@' && substr(trim($lines[$i][1]),0,2) != '@ ')
 -            {
 -                $tagindex = $i;
 -                $i = count($lines);
 -            }
 -        }
 -        if (isset($tagindex))
 -        {
 -            $tags = array_slice($lines,$tagindex);
 -            $desc = array_slice($lines,0,$tagindex);
 -        } else
 -        {
 -            $tags = array();
 -            $desc = $lines;
 -        }
 -//        var_dump($desc,$tags);
 -        $this->_pf_no_output_yet = false;
 -        $save = $this->_wp->linenum;
 -        $this->_wp->linenum = $this->_pv_saveline;
 -        $this->handleDesc($desc);
 -        $this->handleTags($tags);
 -        $this->_pv_db_lines = array();
 -        $this->_wp->linenum = $save;
 -        if (strpos($this->_pv_last_word[1],'*/') !== false)
 -        {
 -            $this->_wp->backupPos($this->_pv_next_word,true);
 -        }
 -        $this->_pf_docblock = $this->_pf_docblock_template = false;
 -    }
 -    
 -    /**
 -     * Handle the description area of a DocBlock
 -     *
 -     * This method simply finds inline tags and highlights them
 -     * separately from the rest of the description.
 -     * @uses getInlineTags()
 -     * @access private
 -     */
 -    function handleDesc($desc)
 -    {
 -        $dbtype = 'docblock';
 -        $dbtype .= ($this->_pf_docblock ? '' : 'template');
 -        foreach($desc as $line)
 -        {
 -            $this->getInlineTags($line[0].$line[1]);
 -            if (strpos($line[0],'*/') === false)
 -            {
 -                $this->newLineNum();
 -                $this->_wp->linenum++;
 -            }
 -        }
 -        if ($this->_pf_internal)
 -        {
 -            $this->_pf_internal = false;
 -        }
 -    }
 -    
 -    /**
 -     * Handle phpDocumentor tags in a DocBlock
 -     *
 -     * This method uses the {@link $tagHandlers} array to determine which
 -     * method will handle tags found in the docblock, and passes the data to
 -     * the individual handlers one by one
 -     * @access private
 -     */
 -    function handleTags($tags)
 -    {
 -        $newtags = array();
 -        $curtag = array();
 -        for($i=0;$i < count($tags);$i++)
 -        {
 -            $tagsi = trim($tags[$i][1]);
 -            if (substr($tagsi,0,1) == '@' && substr($tagsi,0,2) != '@ ')
 -            { // start a new tag
 -                $tags[$i][1] = array(substr($tags[$i][1],0,strpos($tags[$i][1],$tagsi)),$tagsi);
 -                if (!empty($curtag))
 -                {
 -                    $newtags[] = $curtag;
 -                    $curtag = array();
 -                }
 -                $curtag[] = $tags[$i];
 -            } else $curtag[] = $tags[$i];
 -        }
 -        if (!empty($curtag)) $newtags[] = $curtag;
 -        foreach($newtags as $tag)
 -        {
 -            foreach($tag as $i => $t)
 -            {
 -                if ($t[1] === false) continue;
 -                if (is_array($t[1]))
 -                {
 -                    $tag[$i][1][1] = explode(" ",str_replace("\t",'    ',$t[1][1]));
 -                    $x = $tag[$i][1][1];
 -                }
 -            }
 -            $tagname = substr(array_shift($x),1);
 -            $restoftag = $tag;
 -            if (isset($this->tagHandlers[$tagname]))
 -            $handle = $this->tagHandlers[$tagname];
 -            else
 -            $handle = $this->tagHandlers['*'];
 -            $this->$handle($tagname,$restoftag);
 -        }
 -    }
 -    
 -    /**
 -     * This handler recognizes all {@}inline} tags
 -     *
 -     * Normal inline tags are simply highlighted.  the {@}internal}} inline
 -     * tag {@tutorial tags.inlineinternal.pkg} is highlighted differently
 -     * to distinguish it from other inline tags.
 -     * @access private
 -     */
 -    function getInlineTags($value, $endinternal = false)
 -    {
 -        if (!$value) return;
 -        if ($this->_pf_internal && !$endinternal)
 -        {
 -            if (strpos($value,'}}') !== false)
 -            {
 -                $x = strrpos($value,'}}');
 -                // add the rest of internal
 -                $this->getInlineTags(substr($value,0,$x + 3), true);
 -                // strip internal from value
 -                $value = substr($value,strrpos($value,'}}') + 1);
 -                // turn off internal
 -                $this->_pf_internal = false;
 -            }
 -        }
 -        if (!$value) return;
 -        $dbtype = 'docblock';
 -        $dbtype .= ($this->_pf_docblock ? '' : 'template');
 -        $save = $value;
 -        $value = explode('{@',$value);
 -        $newval = array();
 -        // everything before the first {@ is normal text
 -        $this->_addDocBlockoutput($dbtype, $value[0]);
 -        for($i=1;$i<count($value);$i++)
 -        {
 -            if (substr($value[$i],0,1) == '}')
 -            {
 -                $this->_addDocBlockoutput($dbtype, '{@}'.substr($value[$i],1));
 -            } else
 -            {
 -                $save = $value[$i];
 -                $value[$i] = str_replace("\t","    ",$value[$i]);
 -                $value[$i] = explode(" ",$value[$i]);
 -                $word = array_shift($value[$i]);
 -                $val = join(' ',$value[$i]);
 -                if ($word == 'internal')
 -                {
 -                    $this->_pf_internal = true;
 -                    $this->_addDocBlockoutput($dbtype, '{@internal ');
 -                    $value[$i] = substr($save,strlen('internal') + 1);
 -                    // strip internal and cycle as if it were normal text.
 -                    $this->_addDocBlockoutput($dbtype, $value[$i]);
 -                    continue;
 -                }
 -                if (in_array(str_replace('}','',$word),$this->allowableInlineTags))
 -                {
 -                    if (strpos($word,'}'))
 -                    {
 -                        $word = str_replace('}','',$word);
 -                        $val = '} '.$val;
 -                    }
 -                    $val = explode('}',$val);
 -                    if (count($val) == 1)
 -                    {
 -//                         addError(PDERROR_UNTERMINATED_INLINE_TAG,$word,'',$save);
 -                    }
 -                    $rest = $val;
 -                    $val = array_shift($rest);
 -					if ($endinternal)
 -					$rest = join('}',$rest);
 -					else
 -                    $rest = join(' ',$rest);
 -                    if (isset($this->inlineTagHandlers[$word]))
 -                    $handle = $this->inlineTagHandlers[$word];
 -                    else
 -                    $handle = $this->inlineTagHandlers['*'];
 -                    $this->$handle($word,$val);
 -                    $this->_addDocBlockoutput($dbtype, $rest);
 -                } else
 -                {
 -                    $val = $word.' '.$val;
 -                    $this->_addDocBlockoutput($dbtype, '{@'.$val);
 -                }
 -            }
 -        }
 -    }
 -
 -    
 -    /**
 -     * Handles all inline tags
 -     * @access private
 -     */
 -    function handleDefaultInlineTag($name, $value)
 -    {
 -        $this->_addDocBlockoutput('inlinetag','{@'.$name.' '.$value.'}');
 -    }
 -
 -    /**#@+
 -     * phpDocumentor DocBlock tag handlers
 -     * @access private
 -     * @param string tag name
 -     * @param array array of lines contained in the tag description
 -     */
 -    /**
 -     * Handle normal tags
 -     *
 -     * This handler adds to outpu all comment information before the tag begins
 -     * as in " * " before "@todo" in " * @todo"
 -     *
 -     * Then, it highlights the tag as a regular or coretag based on $coretag.
 -     * Finally, it uses getInlineTags to highlight the description
 -     * @uses getInlineTags() highlight a tag description
 -     * @param boolean whether this tag is a core tag or not
 -     */
 -    function defaultTagHandler($name, $value, $coretag = false)
 -    {
 -        $dbtype = 'docblock';
 -        $dbtype .= ($this->_pf_docblock ? '' : 'template');
 -        foreach($value as $line)
 -        {
 -            $this->_addDocBlockoutput($dbtype, $line[0]);
 -            if ($line[1] === false)
 -            {
 -                if (trim($line[0]) != '*/')
 -                {
 -                    $this->newLineNum();
 -                    $this->_wp->linenum++;
 -                }
 -                continue;
 -            }
 -            $this->_addDocBlockoutput($dbtype, $line[1][0]);
 -            $stored = '';
 -            if (is_array($line[1][1]))
 -            {
 -                foreach($line[1][1] as $i => $tpart)
 -                {
 -                    if ($tpart == '@'.$name && $i == 0)
 -                    {
 -                        $tagname = 'tag';
 -                        if ($coretag) $tagname = 'coretag';
 -                        $this->_addDocBlockoutput($tagname,'@'.$name);
 -                        continue;
 -                    }
 -                    $stored .= ' '.$tpart;
 -                }
 -            } else $stored = $line[1];
 -            $this->getInlineTags($stored);
 -            if (strpos($stored,'*/') === false)
 -            {
 -                $this->newLineNum();
 -                $this->_wp->linenum++;
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * @see defaultTagHandler()
 -     */
 -    function coreTagHandler($name, $value)
 -    {
 -        return $this->defaultTagHandler($name, $value, true);
 -    }
 -    
 -    /**
 -     * Handles @global
 -     *
 -     * This handler works like {@link defaultTagHandler()} except it highlights
 -     * the type and variable (if present) in "@global type $variable" or
 -     * "@global type description"
 -     */
 -    function globalTagHandler($name, $value)
 -    {
 -        $this->paramTagHandler($name, $value);
 -    }
 -    
 -    /**
 -     * Handles @param
 -     *
 -     * This handler works like {@link defaultTagHandler()} except it highlights
 -     * the type and variable (if present) in "@param type $variable description"
 -     * or "@param type description"
 -     * @param boolean private parameter, checks for $var or not
 -     */
 -    function paramTagHandler($name, $value, $checkforvar = true)
 -    {
 -        $dbtype = 'docblock';
 -        $dbtype .= ($this->_pf_docblock ? '' : 'template');
 -        $ret = $this->retrieveType($value,0,$checkforvar);
 -        foreach($value as $num => $line)
 -        {
 -            $this->_addDocBlockoutput($dbtype, $line[0]);
 -            if ($line[1] === false)
 -            {
 -                if (trim($line[0]) != '*/')
 -                {
 -                    $this->newLineNum();
 -                    $this->_wp->linenum++;
 -                }
 -                continue;
 -            }
 -            $this->_addDocBlockoutput($dbtype, $line[1][0]);
 -            $stored = '';
 -            $typeloc = 1;
 -            $varloc = 2;
 -            if (is_array($line[1][1]))
 -            {
 -                $this->_addDocBlockoutput('coretag','@'.$name.' ');
 -                foreach($ret[0] as $text)
 -                {
 -                    if (is_string($text)) $this->_addDocBlockoutput($dbtype,$text);
 -                    if (is_array($text))
 -                    {
 -                        if ($text[0] != 'desc') $this->_addDocBlockoutput($text[0],$text[1]);
 -                        else $stored .= $text[1];
 -                    }
 -                }
 -            } else
 -            {
 -                if (isset($ret[$num]))
 -                {
 -                    foreach($ret[$num] as $text)
 -                    {
 -                        if (is_string($text)) $this->_addDocBlockoutput($dbtype,$text);
 -                        if (is_array($text))
 -                        {
 -                            if ($text[0] != 'desc') $this->_addDocBlockoutput($text[0],$text[1]);
 -                            else $stored .= $text[1];
 -                        }
 -                    }
 -                } else $stored = $line[1];
 -            }
 -            $this->getInlineTags($stored);
 -            if (strpos($stored,'*/') === false)
 -            {
 -                $this->newLineNum();
 -                $this->_wp->linenum++;
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * @see paramTagHandler()
 -     */
 -    function staticvarTagHandler($name, $value)
 -    {
 -        return $this->paramTagHandler($name, $value);
 -    }
 -    
 -    /**
 -     * @see paramTagHandler()
 -     */
 -    function varTagHandler($name, $value)
 -    {
 -        return $this->paramTagHandler($name, $value);
 -    }
 -    
 -    /**
 -     * Handles @return
 -     *
 -     * This handler works like {@link defaultTagHandler()} except it highlights
 -     * the type in "@return type description"
 -     */
 -    function returnTagHandler($name, $value)
 -    {
 -        $this->paramTagHandler($name, $value, false);
 -    }
 -    /**#@-*/
 -    
 -    /**
 -     * Retrieve the type portion of a @tag type description
 -     *
 -     * Tags like @param, @return and @var all have a PHP type portion in their
 -     * description.  Since the type may contain the expression "object blah"
 -     * where blah is a classname, it makes parsing out the type field complex.
 -     *
 -     * Even more complicated is the case where a tag variable can contain
 -     * multiple types, such as object blah|object blah2|false, and so this
 -     * method handles these cases.
 -     * @param array array of words that were separated by spaces
 -     * @param 0|1 0 = find the type, 1 = find the var, if present
 -     * @param boolean flag to determine whether to check for the end of a
 -     *        type is defined by a $varname
 -     * @return array Format: array(state (0 [find type], 1 [var], 2 [done]),
 -     *                             
 -     * @access private
 -     */
 -    function retrieveType($value, $state = 0, $checkforvar = false)
 -    {
 -        $index = 0;
 -        $result = array();
 -        do
 -        {
 -            if (!isset($value[$index][1])) return $result;
 -            $val = $value[$index][1];
 -            if (empty($val)) return $result;
 -            if ($index == 0)
 -            {
 -                $val = $val[1];
 -                array_shift($val);
 -            } else
 -            {
 -                $val = explode(' ',$val);
 -            }
 -            $ret = $this->_retrieveType($val, $state, $checkforvar);
 -            $state = $ret[0];
 -            $result[$index++] = $ret[1];
 -        } while ((!$checkforvar && $state < 1) || ($state < 2 && $checkforvar));
 -        return $result;
 -    }
 -    
 -    function _retrieveType($value, $state, $checkforvar)
 -    {
 -        $result = array();
 -        $result[] = $this->_removeWhiteSpace($value, 0);
 -        if ($state == 0)
 -        {
 -            if (!count($value)) return array(2,$result);
 -            $types = '';
 -            $index = 0;
 -            if (trim($value[0]) == 'object')
 -            {
 -                $result[] = array('tagphptype', $value[0].' ');
 -                $types .= array_shift($value).' ';
 -                $result[] = $this->_removeWhiteSpace($value, 0);
 -                if (!count($value))
 -                { // was just passed "object"
 -                    return array(2,$result);
 -                }
 -                if ($value[0]{0} == '$' || substr($value[0],0,2) == '&$')
 -                { // was just passed "object" and the next thing is a variable name
 -                    if ($checkforvar)
 -                    {
 -                        $result[] = array('tagvarname' , $value[0].' ');
 -                        array_shift($value);
 -                    }
 -                    $result[] = array('desc', join(' ', $value));
 -                    return array(2,$result);
 -                }
 -            }
 -            $done = false;
 -            $loop = -1;
 -            do
 -            { // this loop checks for type|type|type and for
 -              // type|object classname|type|object classname2
 -                if (strpos($value[0], '|'))
 -                {
 -                    $temptypes = explode('|', $value[0]);
 -                    while(count($temptypes))
 -                    {
 -                        $type = array_shift($temptypes);
 -                        $result[] = array('tagphptype',$type);
 -                        if (count($temptypes)) $result[] = '|';
 -                    }
 -                    if (trim($type) == 'object')
 -                    {
 -                        $result[] = array('tagphptype', $types . ' ');
 -                        $result[] = $this->_removeWhiteSpace($value,0);
 -                    } else $done = true;
 -                    array_shift($value);
 -                    if (count($value) && strlen($value[0]) && isset ($value[0]) && ($value[0]{0} == '$' || substr($value[0],0,2) == '&$'))
 -                    { // was just passed "object" and the next thing is a variable name
 -                        $result[] = array('tagvarname' , $value[0].' ');
 -                        array_shift($value);
 -                        $result[] = array('desc', join(' ', $value));
 -                        return array(2,$result);
 -                    }
 -                } else
 -                {
 -                    $result[] = array('tagphptype', $value[0].' ');
 -                    array_shift($value);
 -                    $done = true;
 -                }
 -                $loop++;
 -            } while (!$done && count($value));
 -            if ($loop) $result[] = ' ';
 -            // still searching for type
 -            if (!$done && !count($value)) return array(0,$result);
 -            // still searching for var
 -            if ($done && !count($value)) return array(1,$result);
 -        }
 -        $result[] = $this->_removeWhiteSpace($value,0);
 -        $state = 1;
 -        if ($checkforvar)
 -        {
 -            if (count($value))
 -            {
 -                $state = 2;
 -                if (substr($value[0],0,1) == '$' || substr($value[0],0,2) == '&$')
 -                {
 -                    $result[] = array('tagvarname' , $value[0].' ');
 -                    array_shift($value);
 -                }
 -            } else $state = 1;
 -        }
 -        $result[] = array('desc', join(' ',$value));
 -        return array($state,$result);
 -    }
 -    
 -    
 -    /**
 -     * @param array array of string
 -     * @param integer index to seek non-whitespace to
 -     * @access private
 -     * @return string whitespace
 -     */
 -    function _removeWhiteSpace(&$value, $index)
 -    {
 -        $result = '';
 -        if (count($value) > $index && empty($value[$index]))
 -        {
 -            $found = false;
 -            for($i=$index; $i<count($value) && !strlen($value[$i]); $i++) $result .= ' ';
 -            array_splice($value, $index, $i - $index);
 -        }
 -        return $result;
 -    }
 -
 -    /**#@+
 -     * Link generation methods
 -     * @access private
 -     * @param string|array token to try to link
 -     */
 -    /**
 -     * Generate a link to documentation for an element
 -     *
 -     * This method tries to link to documentation for functions, methods,
 -     * PHP functions, class names, and if found, adds the links to output
 -     * instead of plain text
 -     */
 -    function _link($word)
 -    {
 -        if (is_array($word) && $word[0] == T_STRING)
 -        {
 -            if ($this->_pf_colon_colon)
 -            {
 -                $this->_pf_colon_colon = false;
 -                $combo = $this->_pv_last_string[1].'::'.$word[1].'()';
 -//                debug('testing '.$combo);
 -                $link = $this->_converter->getLink($combo);
 -                if (is_object($link))
 -                {
 -                    $this->_addoutput($this->_converter->returnSee($link, $word[1]), true);
 -                    return;
 -                }
 -                $this->_addoutput($word);
 -                return;
 -            }
 -            $link = $this->_converter->getLink($word[1].'()');
 -            if (is_object($link))
 -            {
 -                $this->_addoutput($this->_converter->returnSee($link, $word[1]), true);
 -                return;
 -            } elseif (is_string($link) && strpos($link,'ttp://'))
 -            {
 -                $this->_addoutput($this->_converter->returnLink($link, $word[1]), true);
 -                return;
 -            } else
 -            {
 -                $link = $this->_converter->getLink($word[1]);
 -                if (is_object($link)) $word[1] = $this->_converter->returnSee($link, $word[1]);
 -                $this->_addoutput($word, true);
 -                return;
 -            }
 -        }
 -        $this->_addoutput($word);
 -    }
 -    
 -    /**
 -     * Works like {@link _link()} except it only links to global variables
 -     */
 -    function _globallink($word)
 -    {
 -        if (!is_array($word)) return $this->_addoutput($word);
 -        if ($word[0] != T_VARIABLE) return $this->_addoutput($word);
 -        if (is_array($word) && $word[0] == T_VARIABLE)
 -        {
 -            $link = $this->_converter->getLink('global '.$word[1]);
 -            if (is_object($link))
 -            {
 -                $this->_addoutput($this->_converter->returnSee($link, $word[1]), true);
 -                return;
 -            }
 -        }
 -        $this->_addoutput($word);
 -    }
 -    
 -    /**
 -     * Works like {@link _link()} except it only links to classes
 -     */
 -    function _classlink($word)
 -    {
 -//            debug("checking class ".$word[1]);
 -        if (is_array($word) && $word[0] == T_STRING)
 -        {
 -            $link = $this->_converter->getLink($word[1]);
 -            if (is_object($link))
 -            {
 -                $this->_addoutput($this->_converter->returnSee($link, $word[1]), true);
 -                return;
 -            }
 -        }
 -        $this->_addoutput($word);
 -    }
 -    
 -    /**
 -     * Works like {@link _link()} except it only links to methods
 -     */
 -    function _methodlink($word)
 -    {
 -        if (is_array($word) && $word[0] == T_STRING)
 -        {
 -//            debug("checking method ".$this->_pv_class.'::'.$word[1].'()');
 -            if (isset($this->_pv_prev_var_type))
 -            {
 -                $link = $this->_converter->getLink($this->_pv_prev_var_type.'::'.$word[1].'()');
 -            } else
 -                $link = $this->_converter->getLink($this->_pv_class.'::'.$word[1].'()');
 -            if (is_object($link))
 -            {
 -                $this->_addoutput($this->_converter->returnSee($link, $word[1]), true);
 -                return;
 -            }
 -            if (isset($this->_pv_prev_var_type))
 -            {
 -                $this->_addoutput($word);
 -                return;
 -            }
 -//            debug("checking method ".$word[1].'()');
 -            $link = $this->_converter->getLink($word[1].'()');
 -            if (is_object($link))
 -            {
 -                $this->_addoutput($this->_converter->returnSee($link, $word[1]), true);
 -                return;
 -            }
 -        }
 -        $this->_addoutput($word);
 -    }
 -    
 -    /**
 -     * Works like {@link _link()} except it only links to class variables
 -     */
 -    function _varlink($word, $justastring=false)
 -    {
 -        if ($justastring)
 -        {
 -            $word[0] = T_VARIABLE;
 -        }
 -        if (is_array($word) && $word[0] == T_VARIABLE)
 -        {
 -            $x = ($justastring ? '$' : '');
 -//            debug("checking var ".$this->_pv_class.'::'.$x.$word[1]);
 -            if (isset($this->_pv_prev_var_type))
 -            {
 -//            debug("checking var ".$this->_pv_prev_var_type.'::'.$x.$word[1]);
 -                $link = $this->_converter->getLink($this->_pv_prev_var_type.'::'.$x.$word[1]);
 -            }
 -            else
 -            $link = $this->_converter->getLink($this->_pv_class.'::'.$x.$word[1]);
 -            if (is_object($link))
 -            {
 -                $this->_addoutput($this->_converter->returnSee($link, $word[1]), true);
 -                return;
 -            }
 -//            debug("checking var ".$x.$word[1]);
 -            if (isset($this->_pv_prev_var_type))
 -            {
 -                $this->_addoutput($word);
 -                return;
 -            }
 -            $link = $this->_converter->getLink($x.$word[1]);
 -            if (is_object($link))
 -            {
 -                $this->_addoutput($this->_converter->returnSee($link, $word[1]), true);
 -                return;
 -            }
 -        }
 -        $this->_addoutput($word);
 -    }
 -    /**#@-*/
 -    
 -    /**#@+
 -     * Output Methods
 -     * @access private
 -     */
 -    /**
 -     * This method adds output to {@link $_line}
 -     *
 -     * If a string with variables like "$test this" is present, then special
 -     * handling is used to allow processing of the variable in context.
 -     * @see _flush_save()
 -     */
 -    function _addoutput($word, $preformatted = false)
 -    {
 -        if ($this->_pf_no_output_yet) return;
 -        if ($this->_pf_quote_active)
 -        {
 -            if (is_array($word)) $this->_save .= $this->_converter->highlightSource($word[0], $word[1]);
 -            else
 -            $this->_save .= $this->_converter->highlightSource(false, $word, true);
 -        } else
 -        {
 -            $this->_flush_save();
 -            if (is_string($word) && trim($word) == '')
 -            {
 -                $this->_line .= $word;
 -                return;
 -            }
 -            if (is_array($word) && trim($word[1]) == '')
 -            {
 -                $this->_line .= $word[1];
 -                return;
 -            }
 -            if (is_array($word)) 
 -            {
 -                $this->_line .= $this->_converter->highlightSource($word[0], $word[1], $preformatted);
 -            } else
 -            {
 -                $this->_line .= $this->_converter->highlightSource(false, $word, $preformatted);
 -            }
 -        }
 -    }
 -    
 -    /** 
 -     * Like {@link _output()}, but for DocBlock highlighting
 -     */
 -    function _addDocBlockoutput($dbtype, $word, $preformatted = false)
 -    {
 -        if ($this->_pf_internal)
 -        {
 -            $this->_line .= $this->_converter->highlightDocBlockSource('internal', $word, $preformatted);
 -        } else
 -        {
 -            $this->_line .= $this->_converter->highlightDocBlockSource($dbtype, $word, $preformatted);
 -        }
 -    }
 -    
 -    /**
 -     * Flush a saved string variable highlighting
 -     *
 -     * {@source}
 -     */
 -    function _flush_save()
 -    {
 -        if (!empty($this->_save))
 -        {
 -            $this->_save .= $this->_converter->flushHighlightCache();
 -            // clear the existing cache, reset it to the old value
 -            $this->_converter->_setHighlightCache($this->_save_highlight_state[0], $this->_save_highlight_state[1]);
 -            $this->_line .= $this->_converter->highlightSource(T_CONSTANT_ENCAPSED_STRING, $this->_save, true);
 -            $this->_save = '';
 -        }
 -    }
 -    /**#@-*/
 -    
 -    /**
 -     * Give the word parser necessary data to begin a new parse
 -     * @param array all tokens separated by line number
 -     */
 -    function configWordParser(&$data)
 -    {
 -        $this->_wp->setup($data, $this);
 -        $this->_wp->setWhitespace(true);
 -    }
 -
 -    /**
 -     * Initialize all parser state variables
 -     * @param boolean true if we are highlighting an inline {@}source} tag's
 -     *                output
 -     * @param false|string name of class we are going to start from
 -     * @uses $_wp sets to a new {@link phpDocumentor_HighlightWordParser}
 -     */
 -    function setupStates($inlinesourceparse, $class)
 -    {
 -        $this->_output = '';
 -        $this->_line = '';
 -        unset($this->_wp);
 -        $this->_wp = new phpDocumentor_HighlightWordParser;
 -        $this->_event_stack = new EventStack;
 -        if ($inlinesourceparse)
 -        {
 -            $this->_event_stack->pushEvent(PARSER_EVENT_PHPCODE);
 -            if ($class)
 -            {
 -                $this->_event_stack->pushEvent(PARSER_EVENT_CLASS);
 -                $this->_pv_class = $class;
 -            }
 -        } else $this->_pv_class = null;
 -        $this->_pv_define = null;
 -        $this->_pv_define_name = null;
 -        $this->_pv_define_value = null;
 -        $this->_pv_define_params_data = null;
 -        $this->_pv_dtype = null;
 -        $this->_pv_docblock = null;
 -        $this->_pv_dtemplate = null;
 -        $this->_pv_func = null;
 -        $this->_pv_global_name = null;
 -        $this->_pv_global_val = null;
 -        $this->_pv_globals = null;
 -        $this->_pv_global_count = null;
 -        $this->_pv_include_params_data = null;
 -        $this->_pv_include_name = null;
 -        $this->_pv_include_value = null;
 -        $this->_pv_linenum = null;
 -        $this->_pv_periodline = null;
 -        $this->_pv_paren_count = 0;
 -        $this->_pv_statics = null;
 -        $this->_pv_static_count = null;
 -        $this->_pv_static_val = null;
 -        $this->_pv_quote_data = null;
 -        $this->_pv_function_data = null;
 -        $this->_pv_var = null;
 -        $this->_pv_varname = null;
 -        $this->_pf_definename_isset = false;
 -        $this->_pf_extends_found = false;
 -        $this->_pf_includename_isset = false;
 -        $this->_pf_get_source = false;
 -        $this->_pf_getting_source = false;
 -        $this->_pf_in_class = false;
 -        $this->_pf_in_define = false;
 -        $this->_pf_in_global = false;
 -        $this->_pf_in_include = false;
 -        $this->_pf_in_var = false;
 -        $this->_pf_funcparam_val = false;
 -        $this->_pf_quote_active = false;
 -        $this->_pf_reset_quote_data = true;
 -        $this->_pf_useperiod = false;
 -        $this->_pf_var_equals = false;
 -        $this->_pf_obj_op = false;
 -        $this->_pf_docblock = false;
 -        $this->_pf_docblock_template = false;
 -        $this->_pf_colon_colon = false;
 -        $this->_pv_last_string = false;
 -        $this->_pf_inmethod = false;
 -        $this->_pf_no_output_yet = false;
 -        $this->_pv_saveline = 0;
 -        $this->_pv_next_word = false;
 -        $this->_save = '';
 -    }
 -
 -    /**
 -     * Initialize the {@link $tokenpushEvent, $wordpushEvent} arrays
 -     */
 -    function phpDocumentor_HighlightParser()
 -    {
 -        if (!defined('T_INTERFACE')) {
 -            define('T_INTERFACE', -1);
 -        }
 -        $this->allowableTags = $GLOBALS['_phpDocumentor_tags_allowed'];
 -        $this->allowableInlineTags = $GLOBALS['_phpDocumentor_inline_doc_tags_allowed'];
 -        $this->inlineTagHandlers = array('*' => 'handleDefaultInlineTag');
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_NOEVENTS] = 
 -            array(
 -                T_OPEN_TAG => PARSER_EVENT_PHPCODE,
 -            );
 -
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_PHPCODE] = 
 -            array(
 -                T_FUNCTION     => PARSER_EVENT_FUNCTION,
 -                T_CLASS     => PARSER_EVENT_CLASS,
 -                T_INTERFACE     => PARSER_EVENT_CLASS,
 -                T_INCLUDE_ONCE => PARSER_EVENT_INCLUDE,
 -                T_INCLUDE => PARSER_EVENT_INCLUDE,
 -                T_START_HEREDOC   => PARSER_EVENT_EOFQUOTE,
 -                T_REQUIRE    => PARSER_EVENT_INCLUDE,
 -                T_REQUIRE_ONCE    => PARSER_EVENT_INCLUDE,
 -                T_COMMENT   => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_PHPCODE] =
 -            array(
 -                "define"     => PARSER_EVENT_DEFINE,
 -            );
 -/**************************************************************/
 -
 -        $this->wordpushEvent[PARSER_EVENT_FUNCTION] =
 -            array(
 -                '{'     => PARSER_EVENT_LOGICBLOCK,
 -                '('     => PARSER_EVENT_FUNCTION_PARAMS,
 -            );
 -        $this->tokenpushEvent[PARSER_EVENT_FUNCTION] =
 -            array(
 -                T_COMMENT   => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -            );
 -
 -        $this->wordpopEvent[PARSER_EVENT_FUNCTION] = array("}");
 -/**************************************************************/
 -
 -        $this->tokenpopEvent[PARSER_EVENT_EOFQUOTE] = array(T_END_HEREDOC);
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_FUNCTION_PARAMS] =
 -            array(
 -                T_CONSTANT_ENCAPSED_STRING => PARSER_EVENT_QUOTE,
 -                T_ARRAY => PARSER_EVENT_ARRAY,
 -                T_COMMENT => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_FUNCTION_PARAMS] =
 -            array(
 -                '"' => PARSER_EVENT_QUOTE,
 -                "'" => PARSER_EVENT_QUOTE,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_FUNCTION_PARAMS] = array(")");
 -/**************************************************************/
 -
 -        $this->wordpushEvent[PARSER_EVENT_LOGICBLOCK] = 
 -            array(
 -                "{"    => PARSER_EVENT_LOGICBLOCK,
 -                '"'    => PARSER_EVENT_QUOTE,
 -            );
 -        $this->tokenpushEvent[PARSER_EVENT_LOGICBLOCK] =
 -            array(
 -                T_GLOBAL    => PARSER_EVENT_FUNC_GLOBAL,
 -                T_STATIC    => PARSER_EVENT_STATIC_VAR,
 -                T_START_HEREDOC   => PARSER_EVENT_EOFQUOTE,
 -                T_CURLY_OPEN    => PARSER_EVENT_LOGICBLOCK,
 -                T_DOLLAR_OPEN_CURLY_BRACES => PARSER_EVENT_LOGICBLOCK,
 -            );
 -
 -        $this->wordpopEvent[PARSER_EVENT_LOGICBLOCK] = array("}");
 -        $this->tokenpopEvent[PARSER_EVENT_LOGICBLOCK] = array(T_CURLY_OPEN);
 -
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_ARRAY] = 
 -            array(
 -                T_COMMENT  => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_ARRAY] = array(")");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_FUNC_GLOBAL] =
 -            array(
 -                T_COMMENT   => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -            );
 -
 -        $this->wordpopEvent[PARSER_EVENT_FUNC_GLOBAL] = array(";");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_STATIC_VAR] =
 -            array(
 -                T_CONSTANT_ENCAPSED_STRING  => PARSER_EVENT_QUOTE,
 -                T_COMMENT   => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_STATIC_VAR] =
 -            array(
 -                "="        => PARSER_EVENT_STATIC_VAR_VALUE,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_STATIC_VAR] = array(";");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_STATIC_VAR_VALUE] = 
 -            array(
 -                T_CONSTANT_ENCAPSED_STRING  => PARSER_EVENT_QUOTE,
 -                T_COMMENT   => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -                T_ARRAY     => PARSER_EVENT_ARRAY,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_STATIC_VAR_VALUE] =
 -            array(
 -                '"' => PARSER_EVENT_QUOTE,
 -                "'" => PARSER_EVENT_QUOTE,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_STATIC_VAR_VALUE] = array(";",",");
 -/**************************************************************/
 -        $this->tokenpushEvent[PARSER_EVENT_QUOTE] = 
 -            array(
 -                T_OBJECT_OPERATOR => PARSER_EVENT_CLASS_MEMBER,
 -                T_CURLY_OPEN => PARSER_EVENT_QUOTE_VAR,
 -            );
 -
 -        $this->wordpopEvent[PARSER_EVENT_QUOTE] = array('"');
 -/**************************************************************/
 -        $this->tokenpushEvent[PARSER_EVENT_QUOTE_VAR] = 
 -            array(
 -                T_OBJECT_OPERATOR => PARSER_EVENT_CLASS_MEMBER,
 -                T_CURLY_OPEN => PARSER_EVENT_QUOTE_VAR,
 -            );
 -
 -        $this->wordpushEvent[PARSER_EVENT_QUOTE_VAR] =
 -            array(
 -                "{" => PARSER_EVENT_QUOTE_VAR,
 -                '"' => PARSER_EVENT_QUOTE_VAR,
 -                "'" => PARSER_EVENT_QUOTE_VAR,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_QUOTE_VAR] = array('}');
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_DEFINE] = 
 -            array(
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -                T_CONSTANT_ENCAPSED_STRING        => PARSER_EVENT_QUOTE,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_DEFINE] = 
 -            array(
 -                "("     => PARSER_EVENT_DEFINE_PARAMS,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_DEFINE] = array(";");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_DEFINE_PARAMS] = 
 -            array(
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_DEFINE_PARAMS] = 
 -            array(
 -                "("    =>    PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS,
 -                '"' => PARSER_EVENT_QUOTE,
 -                "'" => PARSER_EVENT_QUOTE,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_DEFINE_PARAMS] = array(")");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS] =
 -            array(
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS] =
 -            array(
 -                "("    =>    PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS,
 -                '"' => PARSER_EVENT_QUOTE,
 -                "'" => PARSER_EVENT_QUOTE,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS] = array(")");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_VAR] = 
 -            array(
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -                T_ARRAY     => PARSER_EVENT_ARRAY,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_VAR] = array(";");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_CLASS] = 
 -            array(
 -                T_FUNCTION     => PARSER_EVENT_METHOD,
 -                T_VAR         => PARSER_EVENT_VAR,
 -                T_COMMENT         => PARSER_EVENT_DOCBLOCK,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -                T_CLOSE_TAG        => PARSER_EVENT_OUTPHP,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_CLASS] = array("}");
 -
 -/**************************************************************/
 -
 -        $this->wordpushEvent[PARSER_EVENT_METHOD] =
 -            array(
 -                '{'     => PARSER_EVENT_METHOD_LOGICBLOCK,
 -                '('     => PARSER_EVENT_FUNCTION_PARAMS,
 -            );
 -        $this->tokenpushEvent[PARSER_EVENT_METHOD] =
 -            array(
 -                T_COMMENT   => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -            );
 -
 -        $this->wordpopEvent[PARSER_EVENT_METHOD] = array("}", ";");
 -/**************************************************************/
 -
 -        $this->wordpushEvent[PARSER_EVENT_METHOD_LOGICBLOCK] = 
 -            array(
 -                "{"    => PARSER_EVENT_METHOD_LOGICBLOCK,
 -                '"'    => PARSER_EVENT_QUOTE,
 -            );
 -        $this->tokenpushEvent[PARSER_EVENT_METHOD_LOGICBLOCK] =
 -            array(
 -                T_OBJECT_OPERATOR => PARSER_EVENT_CLASS_MEMBER,
 -                T_GLOBAL    => PARSER_EVENT_FUNC_GLOBAL,
 -                T_STATIC    => PARSER_EVENT_STATIC_VAR,
 -                T_CURLY_OPEN    => PARSER_EVENT_LOGICBLOCK,
 -                T_DOLLAR_OPEN_CURLY_BRACES => PARSER_EVENT_LOGICBLOCK,
 -            );
 -
 -        $this->wordpopEvent[PARSER_EVENT_METHOD_LOGICBLOCK] = array("}");
 -        $this->tokenpopEvent[PARSER_EVENT_METHOD_LOGICBLOCK] = array(T_CURLY_OPEN);
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_INCLUDE] = 
 -            array(
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_INCLUDE] = 
 -            array(
 -                "("     => PARSER_EVENT_INCLUDE_PARAMS,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_INCLUDE] = array(";");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_INCLUDE_PARAMS] = 
 -            array(
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_INCLUDE_PARAMS] = 
 -            array(
 -                "("    =>    PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_INCLUDE_PARAMS] = array(")");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS] =
 -            array(
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS] =
 -            array(
 -                "("    =>    PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS] = array(")");
 -    }
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/InlineTags.inc b/buildscripts/PhpDocumentor/phpDocumentor/InlineTags.inc deleted file mode 100644 index 27ae3165..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/InlineTags.inc +++ /dev/null @@ -1,854 +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 abstract representations of inline tags are in this file
 - * @package phpDocumentor
 - * @subpackage InlineTags
 - * @since separate file since version 1.2
 - * @version $Id: InlineTags.inc,v 1.1 2005/10/17 18:36:55 jeichorn Exp $
 - */
 -/**
 - * Use this element to represent an {@}inline tag} like {@}link}
 - * @see parserStringWithInlineTags
 - * @package phpDocumentor
 - * @subpackage InlineTags
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Revision: 1.1 $
 - * @tutorial inlinetags.pkg
 - */
 -class parserInlineTag extends parserBase
 -{
 -    /**
 -     * Element type
 -     *
 -     * Type is used by many functions to skip the hassle of
 -     *
 -     * <code>
 -     * if phpDocumentor_get_class($blah) == 'parserBlah'
 -     * </code>
 -     * always "inlinetag"
 -     * @var string
 -     */
 -    var $type = 'inlinetag';
 -    /**
 -     * the name of the inline tag (like link)
 -     * @var string
 -     */
 -    var $inlinetype = '';
 -    
 -    /**
 -     * @param string $type tag type (example: link)
 -     * @param string $value tag value (example: what to link to)
 -     */
 -    function parserInlineTag($type,$value)
 -    {
 -        $this->inlinetype = $type;
 -        $this->value = trim($value);
 -    }
 -    
 -    /**
 -     * @return integer length of the tag
 -     */
 -    function Strlen()
 -    {
 -        // fix 1203451
 -        if (is_array($this->value))
 -        {
 -            return array_reduce(create_function('$a,$b', 'return $a + strlen($b);')) +
 -                count($this->value);
 -        }
 -        return strlen($this->value);
 -    }
 -    
 -    /**
 -     * @return string always '', used by {@link Parser::handleDocBlock()} to
 -     *                calculate the short description of a DocBlock
 -     * @see parserStringWithInlineTags::getString()
 -     * @see parserStringWithInlineTags::trimmedStrlen()
 -     */
 -    function getString()
 -    {
 -        return '';
 -    }
 -}
 -
 -/**
 - * represents inline links
 - * @tutorial tags.inlinelink.pkg
 - * @package phpDocumentor
 - * @subpackage InlineTags
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - */
 -class parserLinkInlineTag extends parserInlineTag
 -{
 -    /**
 -     * text to display in the link, can be different from the link for standard
 -     * links like websites
 -     * @var string
 -     */
 -    var $linktext = '';
 -    
 -    /**
 -     * @param string $link stored in $value, see {@link parserBase::$value}
 -     * @param string $text see {@link $linktext}
 -     */
 -    function parserLinkInlineTag($link,$text)
 -    {
 -        if (strpos($link, ','))
 -        {
 -            $link = explode(',',$link);
 -            parserInlineTag::parserInlineTag('link','');
 -            $this->value = $link;
 -        } else
 -        {
 -            parserInlineTag::parserInlineTag('link',$link);
 -        }
 -        $this->linktext = trim($text);
 -    }
 -    
 -    /**
 -     * @param Converter converter used to change the abstract link into text for
 -     *                  display
 -     * @return false|string returns the converted link or false if not converted
 -     *                      successfully
 -     */
 -    function Convert(&$c)
 -    {
 -        if (is_array($this->value))
 -        {
 -            $ret = '';
 -            foreach($this->value as $text)
 -            {
 -                if (!empty($ret))
 -                {
 -                    $ret .= ', ';
 -                }
 -                $ret .= $this->ConvertPart($c, trim($text));
 -            }
 -            return $ret;
 -        } else
 -        {
 -            return $this->ConvertPart($c, $this->value);
 -        }
 -    }
 -    
 -    function ConvertPart(&$c, $value)
 -    {
 -        if (strpos($value,'://') || (strpos($value,'mailto:') === 0))
 -        {
 -            if (strpos($value, ' '))
 -            {
 -                $value = explode(' ', $value);
 -                $link = array_shift($value);
 -                $text = join(' ', $value);
 -            } else
 -            {
 -                $link = $value;
 -                $text = $this->linktext;
 -            }
 -            return $c->returnLink($link,htmlspecialchars($text));
 -        } else
 -        {
 -            $savevalue = $value;
 -            $descrip = false;
 -            if (strpos(trim($value),' '))
 -            {
 -                $v = preg_split('/\s/',trim($value));
 -                if (in_array(strtolower($v[0]), array('object', 'function')))
 -                {
 -                    if (!isset($v[1]) ||
 -                        (isset($v[1]) && strlen($v[1])
 -                            && !in_array($v[1]{0}, array('$','&'))
 -                            && $v[1] != '###commanana####'))
 -                    {
 -                        $vsave = $v[0];
 -                        array_shift($v);
 -                        $v[0] = $vsave . ' ' . $v[0];
 -                    }
 -                }
 -                $value = $c->getLink($v[0]);
 -                array_shift($v);
 -                $descrip = join($v,' ');
 -                $descrip = str_replace('###commanana####', ',', $descrip);
 -            } else
 -            {
 -                $value = $c->getLink($value);
 -            }
 -            if (is_string($value))
 -            {
 -                // feature 564991
 -                if (strpos($value,'://'))
 -                {
 -                    // php function
 -                    return $c->returnLink($value,str_replace('PHP_MANUAL#','',$value));
 -                }
 -                return $value;
 -            }
 -            if (!$descrip) $descrip = $c->type_adjust($savevalue);
 -            if (is_object($value)) return $c->returnSee($value, $descrip);
 -/*            // getLink parsed a comma-delimited list of linked thingies, add the commas back in
 -            if (is_array($value))
 -            {
 -                $a = '';
 -                foreach($value as $i => $bub)
 -                {
 -                    if (!empty($a)) $a .= ', ';
 -                    if (is_string($value[$i]))
 -                    {
 -                        // feature 564991
 -                        if (strpos($value[$i],'://'))
 -                        {
 -                            // php function
 -                            $a .= $c->returnLink($value[$i],str_replace('PHP_MANUAL#','',$vals[$i]));
 -                        } else
 -                        $a .= $value[$i];
 -                    }
 -                    if (is_object($value[$i])) $a .= $c->returnSee($value[$i],$descrip[$i]);
 -                }
 -                return $a;
 -            } */
 -            return $savevalue;
 -        }
 -    }
 -}
 -
 -/**
 - * Represents inline links to external tutorial documentation
 - * @tutorial tags.inlinetutorial.pkg
 - * @package phpDocumentor
 - * @subpackage InlineTags
 - */
 -class parserTutorialInlineTag extends parserLinkInlineTag
 -{
 -    /**
 -     * @param string $link stored in $value, see {@link parserBase::$value}
 -     * @param string $text see {@link $linktext}
 -     */
 -    function parserTutorialInlineTag($link,$text)
 -    {
 -        parserInlineTag::parserInlineTag('tutorial',$link);
 -        $this->linktext = trim($text);
 -    }
 -
 -    /**
 -     * @param Converter converter used to change the abstract link into text for display
 -     * @return mixed returns the converted link or false if not converted successfully
 -     */
 -    function Convert(&$c)
 -    {
 -        $descrip = false;
 -        if (strpos($this->value,',') === false)
 -        {
 -            if (strpos(trim($this->value),' '))
 -            {
 -				$v = explode(' ', trim($this->value));
 -                $value = $c->getTutorialLink($v[0]);
 -                array_shift($v);
 -                $descrip = join($v,' ');
 -            } else $value = $c->getTutorialLink($this->value);
 -        } else
 -        {
 -			$vals = explode(',',$this->value);
 -            $descrip = array();
 -            foreach($vals as $val)
 -            {
 -                $val = trim($val);
 -                if (strpos($val,' '))
 -                {
 -                    $v = explode(' ',$val);
 -                    $value[] = $c->getTutorialLink($v[0]);
 -                    array_shift($v);
 -                    $descrip[] = join($v,' ');
 -                } else
 -                {
 -                    $value[] = $c->getTutorialLink($val);
 -                    $descrip[] = false;
 -                }
 -            }
 -        }
 -        if (is_string($value))
 -        {
 -            return $value;
 -        }
 -        if (is_object($value)) return $c->returnSee($value,$descrip);
 -        // getLink parsed a comma-delimited list of linked thingies, add the commas back in
 -        if (is_array($value))
 -        {
 -            $a = '';
 -            foreach($value as $i => $bub)
 -            {
 -                if (!empty($a)) $a .= ', ';
 -                if (is_string($value[$i]))
 -                {
 -                    $a .= $value[$i];
 -                }
 -                if (is_object($value[$i])) $a .= $c->returnSee($value[$i],$descrip[$i]);
 -            }
 -            return $a;
 -        }
 -        return false;
 -    }
 -}
 -
 -/**
 - * represents inline source tag, used for function/method source
 - * @tutorial tags.inlinesource.pkg
 - * @package phpDocumentor
 - * @subpackage InlineTags
 - */
 -class parserSourceInlineTag extends parserInlineTag
 -{
 -    /**
 -     * always 'source'
 -     * @var string
 -     */
 -    var $inlinetype = 'source';
 -    /**
 -     * First line of source code to display
 -     * @var integer
 -     * @see $end
 -     */
 -    var $start = 1;
 -    /**
 -     * Last line to display
 -     * @var '*'|integer If '*' then the whole source will be used, otherwise
 -     *                  the {@link $start} to $end line numbers will be displayed
 -     */
 -    var $end = '*';
 -    /**
 -     * tokenized source organized by line numbers for php 4.3.0+, the old
 -     * {@}source} tag used a string
 -     * @var string|array
 -     */
 -    var $source = false;
 -    /**#@+ @access private */
 -    /** @var string|false */
 -    var $_class;
 -    /**#@-*/
 -    /**
 -     * @param string format "start [end]" where start and end are line numbers
 -     *               with the end line number optional
 -     */
 -    function parserSourceInlineTag($value)
 -    {
 -        parserInlineTag::parserInlineTag('source','');
 -        preg_match('/^([0-9]*)\W([0-9]*)$/',trim($value), $match);
 -        if (!count($match))
 -        {
 -            preg_match('/^([0-9]*)$/',trim($value),$match);
 -            if (count($match))
 -            {
 -                $this->start = (int) $match[1];
 -            }
 -        } else
 -        {
 -            $this->start = (int) $match[1];
 -            $this->end = (int) $match[2];
 -        }
 -    }
 -    
 -    /**
 -     * only used to determine blank lines.  {@}source} will not be blank,
 -     * probably
 -     */
 -    function Strlen()
 -    {
 -        return 1;
 -    }
 -    
 -    function getString()
 -    {
 -        return '{@source}';
 -    }
 -    
 -    /**
 -     * @param string|array source code
 -     * @param boolean in php 4.3.0, if this is a method this will be true
 -     * @param string class name if this is a method
 -     */
 -    function setSource($source, $class = false)
 -    {
 -        if (is_array($source))
 -        {
 -            $this->_class = $class;
 -            $this->source = $source;
 -        } else
 -        {
 -            $source = strstr($source,'function');
 -            $pos = strrpos($source,'}');
 -            $this->source = substr($source,0,$pos + 1);
 -        }
 -    }
 -    
 -    /**
 -     * @uses stringConvert() in PHP 4.2.3-, this method is used to convert
 -     * @uses arrayConvert() in PHP 4.3.0+, this method is used to convert
 -     * @param Converter
 -     */
 -    function Convert(&$c)
 -    {
 -        if (is_string($this->source)) return $this->stringConvert($c);
 -        return $this->arrayConvert($c);
 -    }
 -    
 -    /**
 -     * @param Converter
 -     * @uses phpDocumentor_HighlightParser Parses the tokenized source
 -     */
 -    function arrayConvert(&$c)
 -    {
 -        $source = $this->source;
 -        if ($this->end != '*')
 -        {
 -            $source = array_slice($this->source,0,$this->end + $this->start - 1);
 -        }
 -        $start = $this->start - 1;
 -        if ($start < 0) $start = 0;
 -        return $c->ProgramExample($source, true, true, $this->_class, $start);
 -    }
 -    
 -    /**
 -     * @param Converter
 -     * @uses Converter::unmangle() remove the extraneous stuff from
 -     *                             {@link highlight_string()}
 -     * @deprecated in favor of PHP 4.3.0+ {@link arrayConvert()}
 -     */
 -    function stringConvert(&$c)
 -    {
 -        $source = highlight_string('<?php '.$this->source.' ?>', true);
 -        $source = '<code>'.substr($source,strlen('<code><font color="#000000">
 -<font color="#0000CC"><?php </font>') - 1);
 -        $source = str_replace('} </font><font color="#0000CC">?></font>','}</font></code>',$source);
 -        if ($this->start || ($this->end != '*'))
 -        {
 -            $source = explode('<br />',$source);
 -            $start = $this->start;
 -            if ($this->end != '*')
 -            {
 -                $source = array_slice($source,$start - 1,$this->end - $start + 1);
 -            } else
 -            {
 -                $source = array_slice($source,$start - 1);
 -            }
 -            $source = implode($source,'<br />');
 -            if ($start > 0) $source = "<code>$source";
 -            if ($this->end != '*') $source = "$source</code>";
 -        }
 -        $source = $c->unmangle($source,$this->source);
 -        return $source;
 -    }
 -}
 -
 -/**
 - * Represents the example inline tag, used to display an example file
 - * inside a docblock or tutorial
 - * @tutorial tags.inlineexample.pkg
 - * @package phpDocumentor
 - * @subpackage InlineTags
 - */
 -class parserExampleInlineTag extends parserSourceInlineTag
 -{
 -    /**
 -     * @param string format "filepath[ start [end]]" where start and end are line numbers
 -     *               with the end line number optional
 -     * @param string full path to the current file, used to check relative
 -     *               directory locations
 -     * @param boolean if true, then this is in a tutorial
 -     */
 -    function parserExampleInlineTag($value, $current_path, $isTutorial = false)
 -    {
 -        global $_phpDocumentor_setting;
 -        parserInlineTag::parserInlineTag('example','');
 -        $path = false;
 -        $tagValue = trim($value);
 -        $path = $isAbsPath = $pathOnly = $fileName = $fileExt = $original_path  = $title = FALSE;
 -        do
 -        {
 -            // make sure the format is stuff.ext startline[ endline]
 -            if (!preg_match('`(.*)\.(\w*)\s(.*)`', $tagValue, $match))
 -            {
 -                // or format is stuff.ext
 -                if (!preg_match('`(.*)\.(\w*)\s*$`', $tagValue, $match))
 -                {
 -                    // Murphy: Some funny path was given
 -                    $original_path = $tagValue; // used for error output
 -                    break; // try-block
 -                }
 -            }
 -            if (strlen($match[1]) === 0)
 -            {
 -                // Murphy: Some funny path was given
 -                $original_path = $tagValue; // used for error output
 -                break; // try-block
 -            }
 -            $fileExt = $match[2];
 -            if (isset($match[3]))
 -            {
 -                $lines = explode(' ', trim($match[3]));
 -                $this->start = (int) $lines[0];
 -                if (isset($lines[1])) {
 -                    $this->end = (int) $lines[1];
 -                }
 -            }
 -            $pathTmp = str_replace('\\', '/', $match[1]); // Replace windows '\' the path.
 -
 -            // Is there a path and a file or is it just a file?
 -            if (strpos($pathTmp,'/') === false)
 -            {
 -                // No path part
 -                $pathOnly = '';
 -                $fileName = $pathTmp .'.'. $fileExt;
 -            } else
 -            {
 -                $splitPos = strrpos($pathTmp,'/'); // split the path on the last directory, find the filename
 -                $pathOnly = substr($match[1], 0, $splitPos+1);
 -                $fileName = substr($match[1], $splitPos+1) .'.'. $fileExt;
 -                // Is the path absolute? (i.e. does it start like an absolute path?)
 -                if (('/' === $pathTmp[0]) || preg_match('`^\w*:`i', $pathTmp))
 -                { // works for both windows 'C:' and URLs like 'http://'
 -                    $isAbsPath = true; // Yes
 -                }
 -            }
 -
 -            $original_path = $pathOnly . $fileName;
 -
 -            // Now look for the file starting with abs. path.
 -            if ($isAbsPath)
 -            {
 -                $tmp = realpath($original_path); // remove any weirdities like /../file.ext
 -                if ($tmp && is_file($tmp))
 -                {
 -                    $path = $tmp;
 -                }
 -                // Alway break if abs. path was detected; even if file was not found.
 -                break; // try-block
 -            }
 -
 -            // Search for the example file some standard places 
 -            // 1) Look if the ini-var examplesdir is set and look there ...
 -            if (isset($_phpDocumentor_setting['examplesdir']))
 -            {
 -                $tmp = realpath($_phpDocumentor_setting['examplesdir'] . PATH_DELIMITER  . $original_path);
 -                if ($tmp && is_file($tmp))
 -                {
 -                    $path = $tmp; // Yo! found it :)
 -                    break; // try-block
 -                }
 -            }
 -
 -            // 2) Then try to look for an 'example/'-dir below the *currently* parsed file ...
 -            if (!empty($current_path))
 -            {
 -                $tmp = realpath(dirname($current_path) . PATH_DELIMITER . 'examples' . PATH_DELIMITER . $fileName);
 -                if ($tmp && is_file($tmp))
 -                {
 -                    $path = $tmp; // Yo! found it :)
 -                    break; // try-block
 -                }
 -            }
 -
 -            // 3) Then try to look for the example file below the subdir PHPDOCUMENTOR_BASE/examples/ ...
 -            if (is_dir(PHPDOCUMENTOR_BASE . PATH_DELIMITER . 'examples'))
 -            {
 -                $tmp = realpath(PHPDOCUMENTOR_BASE . PATH_DELIMITER . 'examples' . PATH_DELIMITER . $original_path);
 -                if ($tmp && is_file($tmp))
 -                {
 -                    $path = $tmp; // Yo! found it :)
 -                    break; // try-block
 -                }
 -            }
 -
 -            $tmp = realpath(PHPDOCUMENTOR_BASE . PATH_DELIMITER . $original_path);
 -            if ($tmp && is_file($tmp))
 -            {
 -                $path = $tmp; // Yo! found it :)
 -                break; // try-block
 -            }
 -            // If we reach this point, nothing was found and $path is false.
 -        } while (false);
 -
 -        if (!$path)
 -        {
 -            addWarning(PDERROR_EXAMPLE_NOT_FOUND, $original_path);
 -            $this->path = false;
 -        } else
 -        {
 -            $f = @fopen($path,'r');
 -            if ($f)
 -            {
 -                $example = fread($f,filesize($path));
 -                if (tokenizer_ext && !$isTutorial)
 -                {
 -                    $obj = new phpDocumentorTWordParser;
 -                    $obj->setup($example);
 -                    $this->setSource($obj->getFileSource());
 -                    unset($obj);
 -                } else
 -                {
 -                    $this->setSource($example);
 -                }
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * @param string|array source code
 -     * @param boolean in php 4.3.0, if this is a method this will be true
 -     * @param string class name if this is a method
 -     */
 -    function setSource($source, $class = false)
 -    {
 -        $this->_class = $class;
 -        $this->source = $source;
 -    }
 -    
 -    /**
 -     * @param Converter
 -     * @uses phpDocumentor_HighlightParser Parses the tokenized source
 -     */
 -    function arrayConvert(&$c)
 -    {
 -        $source = $this->source;
 -        if ($this->end != '*')
 -        {
 -            $source = array_slice($this->source,0,$this->end + $this->start - 1);
 -        }
 -        $start = $this->start - 1;
 -        if ($start < 0) $start = 0;
 -        return $c->exampleProgramExample($source, true, true, $this->_class, $start);
 -    }
 -
 -    /**
 -     * Return the source for the example file, enclosed in
 -     * a <programlisting> tag to use in a tutorial
 -     * @return string
 -     */
 -    function getProgramListing()
 -    {
 -        $source = explode("\n", $this->source);
 -        $start = $this->start;
 -        if ($this->end != '*')
 -        {
 -            $source = array_slice($source,$start - 1,$this->end - $start + 1);
 -        } else
 -        {
 -            $source = array_slice($source,$start - 1);
 -        }
 -        $source = join("\n", $source);
 -        return
 -        "<programlisting role=\"php\">
 -         <![CDATA[\n" .
 -          $source .
 -        "\n]]>\n</programlisting>";
 -    }
 -}
 -
 -/**
 - * Represents the inheritdoc inline tag, used by classes/methods/vars to inherit
 - * documentation from the parent class if possible
 - * @tutorial tags.inlineinheritdoc.pkg
 - * @package phpDocumentor
 - * @subpackage InlineTags
 - */
 -class parserInheritdocInlineTag extends parserInlineTag
 -{
 -    /**
 -     * always 'inheritdoc'
 -     * @var string
 -     */
 -    var $inlinetype = 'inheritdoc';
 -    
 -    /**
 -     * Does nothing, overrides parent constructor
 -     */
 -    function parserInheritdocInlineTag()
 -    {
 -    }
 -    
 -    function Convert()
 -    {
 -        addWarning(PDERROR_INHERITDOC_DONT_WORK_HERE);
 -        return '';
 -    }
 -}
 -
 -/**
 - * Represents the inline {@}id} tag for tutorials
 - * @tutorial tags.inlineid.pkg
 - * @package phpDocumentor
 - * @subpackage InlineTags
 - */
 -class parserIdInlineTag extends parserInlineTag
 -{
 -    /**
 -     * always 'id'
 -     * @var string
 -     */
 -    var $inlinetype = 'id';
 -    /**
 -     * package of the {@}id}
 -     * @var string
 -     */
 -    var $package = 'default';
 -    /**
 -     * category of the {@}id}
 -     * @var string
 -     */
 -    var $category = 'default';
 -    /**
 -     * subpackage of the {@}id}
 -     * @var string
 -     */
 -    var $subpackage = '';
 -    /**
 -     * full name of the tutorial
 -     * @var string
 -     */
 -    var $tutorial;
 -    /**
 -     * section/subsection name
 -     * @var string
 -     */
 -    var $id;
 -    
 -    /**
 -     * @param string package name
 -     * @param string subpackage name
 -     * @param string tutorial name
 -     * @param string section/subsection name
 -     * @param string category name
 -     */
 -    function parserIdInlineTag($category,$package,$subpackage,$tutorial,$id = false)
 -    {
 -        $this->package = $package;
 -        $this->subpackage = $subpackage;
 -        $this->tutorial = $tutorial;
 -        $this->id = $id;
 -        $this->category = $category;
 -    }
 -    
 -    /**
 -     * @param Converter
 -     * @uses Converter::getTutorialId() retrieve converter-specific ID
 -     */
 -    function Convert(&$c)
 -    {
 -        if (!$this->id) return '';
 -        return $c->getTutorialId($this->package,$this->subpackage,$this->tutorial,$this->id,$this->category);
 -    }
 -}
 -
 -/**
 - * Represents {@}toc} for table of contents generation in tutorials
 - * @tutorial tags.inlinetoc.pkg
 - * @package phpDocumentor
 - * @subpackage InlineTags
 - */
 -class parserTocInlineTag extends parserInlineTag
 -{
 -    /**
 -     * always 'toc'
 -     * @var string
 -     */
 -    var $inlinetype = 'toc';
 -    /**
 -     * @var array format:
 -     * <pre>
 -     * array(array('tagname' => section,
 -     *             'link' => returnsee link,
 -     *             'id' => anchor name,
 -     *             'title' => from title tag),...)
 -     * </pre>
 -     * @access private
 -     */
 -    var $_toc = false;
 -    /**
 -     * full path to tutorial, used in conversion
 -     * @var string
 -     * @access private
 -     */
 -    var $_path = false;
 -
 -    function parserTocInlineTag()
 -    {
 -        parent::parserInlineTag('toc','');
 -    }
 -    
 -    /**
 -     * @param array format:
 -     * <pre>
 -     * array(array('tag' => {@link parserXMLDocBookTag},
 -     *             'id' => {@link parserIdInlineTag},
 -     *             'title' => {@link parserXMLDocBookTag title}),...)
 -     * </pre>
 -     */
 -    function setTOC($toc)
 -    {
 -        $this->toc = $toc;
 -    }
 -    
 -    /**
 -     * @param string
 -     */
 -    function setPath($path)
 -    {
 -        $this->_path = $path;
 -    }
 -    
 -    /**
 -     * @uses Converter::formatTutorialTOC() passes an array of format:
 -     *
 -     * <pre>
 -     * array(
 -     *    'tagname' => string name of tag,
 -     *    'link' => {@link tutorialLink} to the tutorial,
 -     *    'id' => converter specific tutorial ID from {@link Converter::getTutorialId()}
 -     *    'title' => title of the tutorial)
 -     * </pre>
 -     *
 -     * and returns the results as the table of contents
 -     * @uses Converter::getTutorialId() retrieve the tutorial ID for
 -     * @param Converter
 -     */
 -    function Convert(&$c)
 -    {
 -        $newtoc = array();
 -        foreach($this->toc as $i => $toc)
 -        {
 -            if (isset($toc['title']))
 -            $toc['tag']->setTitle($toc['title']);
 -            else
 -            $toc['tag']->setTitle(new parserStringWithInlineTags);
 -            $newtoc[$i]['tagname'] = $toc['tag']->name;
 -            $l = new tutorialLink;
 -            if (!isset($toc['title'])) $title = 'section '.$toc['id']->id;
 -            else
 -            $title = $toc['title']->Convert($c);
 -            $l->addLink($toc['id']->id,$this->_path,basename($this->_path),$toc['id']->package, $toc['id']->subpackage, strip_tags($title));
 -            $newtoc[$i]['link'] = $c->returnSee($l);
 -            $newtoc[$i]['id'] = $c->getTutorialId($toc['id']->package, $toc['id']->subpackage, basename($this->_path), $toc['id']->id, $toc['id']->category);
 -            $newtoc[$i]['title'] = $title;
 -        }
 -        return $c->formatTutorialTOC($newtoc);
 -    }
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/IntermediateParser.inc b/buildscripts/PhpDocumentor/phpDocumentor/IntermediateParser.inc deleted file mode 100644 index 92a54ea0..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/IntermediateParser.inc +++ /dev/null @@ -1,1832 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/** The phpDocumentor_IntermediateParser Class
 - *
 - *  The Intermediary Data Parser (intermediate between Parse and Converter)
 - *
 - *  @author Gregory Beaver
 - *  @version $Revision: 1.2 $
 - *  @copyright 2002 Gregory Beaver
 - *  @package     phpDocumentor
 - */
 -/** The phpDocumentor_IntermediateParser Class
 - *
 - * This class performs the work of organizing raw data from the parser in the
 - * format of descendants of the {@link parserElement} class.  This is also where
 - * processing of package pages occurs, in
 - * {@link phpDocumentor_IntermediateParser::handleClass()} for class-level
 - * packages and {@link 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
 - * {@link phpDocumentor_IntermediateParser::$last} and then placed into the
 - * $docblock parameter of the parserElement
 - * descendant object.
 - *  @author Gregory Beaver
 - *  @version $Id: IntermediateParser.inc,v 1.2 2005/11/20 19:26:12 cellog Exp $
 - *  @copyright 2002 Gregory Beaver
 - *  @package     phpDocumentor
 - */
 -class phpDocumentor_IntermediateParser
 -{
 -    /**
 -     * @var parserDocBlock
 -     */
 -    var $last;
 -    
 -    /**
 -     * type of the last parser Element handled
 -     *
 -     * This is used in handleDocBlock to determine whether a DocBlock is a
 -     * page-level DocBlock in conjunction with the {@link 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"
 -     * @see handleDocBlock()
 -     * @var string
 -     */
 -    var $lasttype = '';
 -    
 -    /**
 -     * Name of the class currently being parsed.
 -     * It is only used (and only valid) when phpDocumentor_IntermediateParser is
 -     * parsing a class
 -     * @var string
 -     */
 -    var $cur_class = '';
 -    
 -    /**
 -     * type of the current parser Element being handled
 -     * 
 -     * This is used by {@link HandleEvent()} to set the {@link $lasttype} var,
 -     * which is used to detect page-level DocBlocks
 -     * @var string
 -     */
 -    var $type = '';
 -    
 -    /**
 -     * set in {@link Setup.inc.php} to the value of the parseprivate commandline
 -     * option.  If this option is true, elements with an @access private tag
 -     * will be parsed and displayed
 -     * @tutorial phpDocumentor.howto.pkg#using.command-line.parseprivate
 -     * @var boolean
 -     */
 -    var $parsePrivate = false;
 -    
 -    /**
 -     * this variable is used to prevent parsing of elements with an @ignore tag
 -     * @see $packageoutput
 -     * @see $parsePrivate
 -     */
 -    var $private_class = false;
 -    
 -    /**
 -     * used to set the output directory
 -     * @see setTargetDir()
 -     */
 -    var $targetDir;
 -    
 -    /**
 -     * used to set the template base directory
 -     * @see setTemplateBase()
 -     */
 -    var $templateBase;
 -    
 -    /**
 -     * array of parsed package pages
 -     *
 -     * used by {@link Convert()} to convert all package pages into output
 -     * @var array
 -     */
 -    var $package_pages = array();
 -    
 -    /**
 -     * @var array array of all {@link parserData} containing page information
 -     */
 -    var $pages = array();
 -    /**
 -     * Put away a page that has been @ignored or @access private if
 -     * !{@link $parsePrivate}
 -     *
 -     * When a page has @access private in its DocBlock, it is placed here
 -     * instead of in {@link $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 {@link addPageIfNecessary()} to the
 -     * $pages array
 -     * @var array
 -     */
 -    var $privatepages = array();
 -    /**
 -     * Keeps track of packages of classes that have parent classes in another
 -     * package.  Used in automatic linking.
 -     *
 -     * This array is updated by {@link addPackageParent()}, which is called in
 -     * {@link 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.
 -     * @var array Format: packagename => parentpackagename
 -     * @see Converter::getLink()
 -     */
 -    var $package_parents = array();
 -    
 -    /**
 -     * Used to determine the category for tutorials.
 -     *
 -     * <b>WARNING:</b> If more than one category exists, the last category
 -     * encountered will overwrite the previous and will raise a big warning
 -     * @var array Format: packagename => categoryname
 -     */
 -    var $packagecategories = array();
 -    
 -    /**
 -     * list of all packages encountered while documenting.  Used in automatic
 -     * linking.
 -     * 
 -     * 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
 -     * @var array Format: array(packagename => 1, packagename => 1,...)
 -     * @see Converter::getLink()
 -     */
 -    var $all_packages = array();
 -    
 -    /**
 -     * array of packages to parser and output documentation for, if not all
 -     * packages should be documented
 -     *
 -     * Format:<br />
 -     * array(package1,package2,...)<br />
 -     * 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
 -     * @tutorial phpDocumentor.howto.pkg#using.command-line.packageoutput
 -     * @see Io
 -     * @var false|array
 -     */
 -    var $packageoutput = false;
 -    
 -    /**
 -     * the functions which handle output from the {@link Parser}
 -     * @see handleEvent(), handleDocBlock(), handlePage(), handleClass()
 -     * @see handleDefine(), handleFunction(), handleMethod(), handleVar()
 -     * @see handlePackagePage(), handleInclude(), handleTutorial()
 -     */
 -    var $event_handlers = array(
 -            'docblock' => 'handleDocBlock',
 -            'page' => 'handlePage',
 -            'class' => 'handleClass',
 -            'define' => 'handleDefine',
 -            'function' => 'handleFunction',
 -            'method' => 'handleMethod',
 -            'var' => 'handleVar',
 -            'const' => 'handleConst',
 -            'packagepage' => 'handlePackagePage',
 -            'include' => 'handleInclude',
 -            'global' => 'handleGlobal',
 -            'tutorial' => 'handleTutorial',
 -            );
 -    
 -    /**
 -     * $data contains parsed structures for the current page being parsed
 -     *
 -     * In version 1.1+, $data is only used to store the current page information.
 -     * All handling of documented elements is handled by the
 -     * {@link ProceduralPages} and {@link Classes} classes.
 -     * @var parserData
 -     */
 -    var $data;
 -    
 -    /**
 -     * set in {@link Setup.inc.php} to the value of the quitemode commandline
 -     * option.
 -     *
 -     * If this option is true, informative output while parsing will not be
 -     * displayed (documentation is unaffected)
 -     * @var boolean
 -     * @tutorial phpDocumentor.howto.pkg#using.command-line.quiet
 -     */
 -    var $quietMode = false;
 -    
 -    /**
 -     * used to keep track of inheritance at the smartest level possible for a
 -     * dumb computer
 -     * @var Classes
 -     */
 -    var $classes = false;
 -    
 -    /**
 -     * used to keep track of all elements in a procedural page.  Handles name
 -     * conflicts with elegance
 -     * @since 1.1
 -     * @var ProceduralPages
 -     */
 -    var $proceduralpages = false;
 -    
 -    /**
 -     * an array of template names indexed by converter name
 -     *
 -     * For example, if the default HTMLframesConverter is using the DOM/l0l33t
 -     * template, the array will be
 -     * <code>$converters['frames'] = 'DOM/l0l33t'</code>
 -     * @var array Format: array(Convertername1 => templatename)
 -     * @see Converter
 -     */
 -    var $converters = false;
 -    /** 
 -     * @var string Title of generated documentation, passed to Converters
 -     */
 -    var $title = '';
 -    
 -    var $uses = array();
 -
 -    var $db_template;
 -    
 -    /**
 -     * Stores parsed CHANGELOG/INSTALL/README files
 -     * @var array Format: array(CHANGELOG => contents,
 -     *                          INSTALL => contents,
 -     *                          README => contents)
 -     */
 -    var $ric = array();
 -    
 -    /**
 -     * Flag used to determine whether the last docblock
 -     * was a page-level docblock.
 -     * @var boolean
 -     * @access private
 -     */
 -    var $_lastDocBlockWasPageLevel = false;
 -    
 -    /**
 -     * Flag used to determine whether the Page-level
 -     * DocBlock was declared in old or new style
 -     * @var boolean
 -     * @access private
 -     */
 -    var $_oldPageLevel = false;
 -
 -    /**
 -     * sets up basic data structures
 -     * @param string Title of generated documentation, passed to Converters
 -     * @see $title, $data, $classes, $proceduralpages
 -     */
 -    function phpDocumentor_IntermediateParser($title='Generated Documentation')
 -    {
 -        $this->title = $title;
 -        $this->data = new parserData;
 -        $this->classes = new Classes;
 -        $this->proceduralpages = new ProceduralPages;
 -    }
 -    
 -    /**
 -     * Retrieve the relative path.  If the path contains "pear/" it will
 -     * be used as the base, otherwise the Program_Root string will be used.
 -     * @global array uses 'Program_Root' option to replace it with '' for
 -     *               retrieving the source location of a file
 -     * @param string path to file
 -     * @return string
 -     * @see $sourceLocation
 -     * @access private
 -     */
 -    function _getSourceLocation($sl, $sourceloc)
 -    {
 -        global $_phpDocumentor_options;
 -        if (empty($sl)) return false;
 -        $sl = str_replace('\\','/',$sl);
 -        if (strpos($sl,'pear/'))
 -        {
 -            $sl = substr($sl,strpos($sl,'pear/') + 5);
 -            if (dirname($sl) == '.')
 -            {
 -                return 'PEAR';
 -            }
 -            return dirname($sl);
 -        } else
 -        {
 -            if (strpos(str_replace($_phpDocumentor_options['Program_Root'] . PATH_DELIMITER,'',$sourceloc),PATH_DELIMITER) === false)
 -                return '';
 -            return dirname(str_replace($_phpDocumentor_options['Program_Root'] . PATH_DELIMITER,'',$sourceloc));
 -        }
 -    }
 -    
 -    /**
 -     * Guess the package/subpackage based on subdirectory if the --pear option
 -     *
 -     * 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."
 -     * @param string full path of file
 -     * @param template-ready source location Program_Root/dir/file.php
 -     * @global array uses the 'pear' option to determine whether to guess based
 -     *               on subdirectory
 -     * @tutorial phpDocumentor.howto.pkg#using.command-line.pear
 -     */
 -    function _guessPackage($path, $sourceloc)
 -    {
 -        global $_phpDocumentor_setting;
 -        if ($_phpDocumentor_setting['pear'])
 -        {
 -            $subpath = explode(PATH_DELIMITER, $this->_getSourceLocation($path, $sourceloc));
 -            if (!empty($subpath[0]))
 -            { // can only have package and subpackage in this version
 -                $package = $subpath[0];
 -                $subpackage = '';
 -                if (isset($subpath[1])) $subpackage = $subpath[1];
 -                return array($package,$subpackage);
 -            } else return array($this->package, $this->subpackage);
 -        } else return array($this->package, $this->subpackage);
 -    }
 -    
 -    /**
 -     * handles post-parsing of include/require/include_once/include_once
 -     *
 -     * This function sets {@link $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
 -     * {@link ProceduralPages} class
 -     * @param integer $event Event number from {@link Parser.inc}
 -     * @param parserInclude $data
 -     */
 -    function handleInclude($event,$data)
 -    {
 -        if ($this->_lastDocBlockWasPageLevel)
 -        {
 -            addWarning(PDERROR_DOCBLOCK_CONFLICT, $data->getName(), $data->getFile());
 -            if (!$this->_oldPageLevel)
 -            {
 -                unset($this->last);
 -            }
 -        }
 -        $this->_lastDocBlockWasPageLevel =
 -        $this->data->clean = false;
 -        // page was @ignored
 -        if ($this->private_page)
 -        {
 -            unset($this->last);
 -            return;
 -        }
 -        if (empty($this->last))
 -        {
 -            if (isset($this->db_template))
 -            // use the docblock template
 -            $this->last = phpDocumentor_clone($this->db_template);
 -            else
 -            // we don't have a docblock, create an empty one to get rid of errors
 -            $this->last = new parserDocblock();
 -        }
 -//        $this->last->setLineNumber($data->getLineNumber());
 -        if ($this->last->getKeyword('ignore'))
 -        {
 -            $this->last = false;
 -            return;
 -//            addWarning(PDERROR_IGNORE_TAG_IGNORED,'include',$data->getName().'('.$data->getValue().')');
 -        }
 -
 -        $this->last->overridePackage($this->category,$this->package,$this->subpackage,$data->getName(),'include');
 -        $data->setDocBlock($this->last);
 -        $this->proceduralpages->addInclude($data);
 -        $this->last = false;
 -    }
 -    
 -    /**
 -     * handles post-parsing of global variables
 -     *
 -     * This function sets {@link $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
 -     * {@link ProceduralPages} class
 -     * @param integer $event Event number from {@link Parser.inc}
 -     * @param parserGlobal $data
 -     */
 -    function handleGlobal($event,$data)
 -    {
 -        if ($this->_lastDocBlockWasPageLevel)
 -        {
 -            addWarning(PDERROR_DOCBLOCK_CONFLICT, 'global variable', $data->getName());
 -            if (!$this->_oldPageLevel)
 -            {
 -                unset($this->last);
 -            }
 -        }
 -        $this->_lastDocBlockWasPageLevel =
 -        $this->data->clean = false;
 -        if ($this->private_page)
 -        {
 -            unset($this->last);
 -            return;
 -        }
 -        if (empty($this->last))
 -        {
 -            if (isset($this->db_template))
 -            // use the docblock template
 -            $this->last = phpDocumentor_clone($this->db_template);
 -            else
 -            // we don't have a docblock, create an empty one to get rid of errors
 -            $this->last = new parserDocblock();
 -        }
 -//        $this->last->setLineNumber($data->getLineNumber());
 -        if ($this->last->getKeyword('ignore'))
 -        {
 -            addWarning(PDERROR_IGNORE_TAG_IGNORED,'global variable - just don\'t document the',$data->getName());
 -            $this->last = false;
 -            return;
 -        }
 -        $this->last->overridePackage($this->category,$this->package,$this->subpackage,$data->getName(),'global');
 -        $data->setDocBlock($this->last);
 -        if ($data->docblock->getKeyword('name'))
 -        {
 -            $a = $data->docblock->getKeyword('name');
 -            if (is_object($a)) $a = $a->value;
 -            $data->setName($a);
 -        }
 -        $this->proceduralpages->addGlobal($data);
 -        $this->last = false;
 -    }
 -    
 -    /**
 -     * handles post-parsing of Package-level documentation pages.
 -     *
 -     * sets the {@link $package_pages}[$data->package] to $data
 -     * @param integer $event Event number from {@link Parser.inc}
 -     * @param parserPackagePage $data
 -     */
 -    function handlePackagePage($event,$data)
 -    {
 -        $this->package_pages[$data->package] = &$data;
 -        $this->last = false;
 -    }
 -    
 -    /**
 -     * handle post-parsing of Tutorials.
 -     *
 -     * This adds the parsed tutorial to the tutorial tree
 -     * @uses $tutorials sets the value of tutorials to parameter $data
 -     * @param integer $event Event Number
 -     * @param parserTutorial $data
 -     * @since 1.2
 -     */
 -    function handleTutorial($event,$data)
 -    {
 -        if (isset($this->packagecategories[$data->package]))
 -        {
 -            $data->category = $this->packagecategories[$data->package];
 -        } else
 -        {
 -            $data->category = $GLOBALS['phpDocumentor_DefaultCategoryName'];
 -        }
 -        $this->tutorials[$data->package][$data->subpackage][$data->tutorial_type][$data->name] = $data;
 -    }
 -    
 -    /**
 -     * handles post-parsing of class vars
 -     *
 -     * This function sets up a @var tag if none is found, and aligns $data's
 -     * $path var and packages to match the parent object
 -     * @param integer $event Event number from {@link Parser.inc}
 -     * @param parserVar $data
 -     */
 -    function handleVar($event,$data)
 -    {
 -        global $_phpDocumentor_setting;
 -        if ($this->private_class)
 -        {
 -            unset($this->last);
 -            return;
 -        }
 -        if (empty($this->last))
 -        {
 -            if (isset($this->db_template))
 -            {
 -                // use the docblock template
 -                $this->last = phpDocumentor_clone($this->db_template);
 -            } else {
 -                // we don't have a docblock, create an empty one to get rid of errors
 -                $this->last = new parserDocblock();
 -            }
 -        }
 -//        $this->last->setLineNumber($data->getLineNumber());
 -        $this->last->overridePackage($this->category,$this->package,$this->subpackage,$data->getName(),'var');
 -        $this->last->updateModifiers($data->getModifiers());
 -
 -        if ($this->last->getKeyword('ignore'))
 -        {
 -            $this->last = false;
 -            return;
 -//            addWarning(PDERROR_IGNORE_TAG_IGNORED,'var',$this->cur_class.'::'.$data->getName());
 -        }
 -        if (!$this->last->var)
 -        {
 -            $this->last->addVar('mixed',new parserStringWithInlineTags);
 -        }
 -        
 -        if ($_phpDocumentor_setting['pear'])
 -        {
 -            if (strpos($data->getName(), '_') == 1 && !$this->last->getKeyword('access'))
 -            {
 -                addWarning(PDERROR_PRIVATE_ASSUMED,'class variable',$data->class.'::'.$data->getName());
 -                $this->last->addKeyword('access','private');
 -                $data->setDocBlock($this->last);
 -            }
 -        }
 -        $data->setDocBlock($this->last);
 -        $data->path = $this->data->parent->path;
 -        $this->classes->addVar($data);
 -        $this->last = false;
 -    }
 -    
 -    /**
 -     * handles post-parsing of class constants
 -     *
 -     * This function aligns $data's
 -     * $path var and packages to match the parent object
 -     * @param integer $event Event number from {@link Parser.inc}
 -     * @param parserVar $data
 -     */
 -    function handleConst($event,$data)
 -    {
 -        global $_phpDocumentor_setting;
 -        if ($this->private_class)
 -        {
 -            unset($this->last);
 -            return;
 -        }
 -        if (empty($this->last))
 -        {
 -            if (isset($this->db_template))
 -            // use the docblock template
 -            $this->last = phpDocumentor_clone($this->db_template);
 -            else
 -            // we don't have a docblock, create an empty one to get rid of errors
 -            $this->last = new parserDocblock();
 -        }
 -//        $this->last->setLineNumber($data->getLineNumber());
 -        $this->last->overridePackage($this->category,$this->package,$this->subpackage,$data->getName(),'const');
 -
 -        if ($this->last->getKeyword('ignore'))
 -        {
 -            $this->last = false;
 -            return;
 -//            addWarning(PDERROR_IGNORE_TAG_IGNORED,'var',$this->cur_class.'::'.$data->getName());
 -        }
 -        $data->setDocBlock($this->last);
 -        $data->path = $this->data->parent->path;
 -        $this->classes->addConst($data);
 -        $this->last = false;
 -    }
 -    
 -    /**
 -     * handles post-parsing of class methods
 -     *
 -     * 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 {@link Classes} class.
 -     * @param integer $event Event number from {@link Parser.inc}
 -     * @param parserMethod $data
 -     */
 -    function handleMethod($event,$data)
 -    {
 -        global $_phpDocumentor_setting;
 -        if ($this->private_class)
 -        {
 -            unset($this->last);
 -            return;
 -        }
 -
 -        if (empty($this->last))
 -        {
 -            if (isset($this->db_template))
 -            // use the docblock template
 -            $this->last = phpDocumentor_clone($this->db_template);
 -            else
 -            // we don't have a docblock, create an empty one to get rid of errors
 -            $this->last = new parserDocblock();
 -        }
 -//        $this->last->setLineNumber($data->getLineNumber());
 -        if ($this->last->getKeyword('ignore'))
 -        {
 -            $this->last = false;
 -            return;
 -//            addWarning(PDERROR_IGNORE_TAG_IGNORED,'method',$this->cur_class.'::'.$data->getName());
 -        }
 -        $this->last->overridePackage($this->category,$this->package,$this->subpackage,$data->getName(),'method');
 -        if ($data->hasSource())
 -        {
 -            $this->last->setSource($data->getSource(), $data->getClass());
 -        }
 -        foreach($data->listParams() as $param)
 -        {
 -            $update_params[] = $param[0];
 -        }
 -        foreach($data->listGlobals() as $param)
 -        {
 -            $update_globals[] = $param[1];
 -        }
 -        foreach($data->listStatics() as $param)
 -        {
 -            $update_statics[] = $param[0];
 -        }
 -        if (isset($update_params))
 -        $this->last->updateParams($update_params);
 -        if (isset($update_globals))
 -        $this->last->updateGlobals($update_globals);
 -        if (isset($update_statics))
 -        $this->last->updateStatics($update_statics);
 -        $this->last->updateModifiers($data->getModifiers());
 -        unset($update_params);
 -        unset($update_globals);
 -        unset($update_statics);
 -
 -        if ($data->getName() == $this->cur_class) $data->setConstructor();
 -        if ($data->getName() == '__construct') {
 -            $data->setConstructor();
 -        }
 -        if ($data->getName() == '__destruct') {
 -            $data->setDestructor();
 -        }
 -
 -        if ($_phpDocumentor_setting['pear'])
 -        {
 -            if (strpos($data->getName(), '_') === 0 && substr($data->getName(), 1) == $data->class)
 -            { // is destructor
 -                $data->setDestructor();
 -            } elseif (strpos($data->getName(), '_') === 0 && !$this->last->getKeyword('access'))
 -            {
 -                if (strpos($data->getName(), '__') !== 0) {
 -                    addWarning(PDERROR_PRIVATE_ASSUMED,'method',$data->class.'::'.$data->getName().'()');
 -                    $this->last->addKeyword('access','private');
 -                    $data->setDocBlock($this->last);
 -                }
 -            }
 -        }
 -        $data->setDocBlock($this->last);
 -        $data->path = $this->data->parent->path;
 -        $this->classes->addMethod($data);
 -        $this->last = false;
 -    }
 -
 -    /**
 -     * handles post-parsing of functions
 -     *
 -     * This function sets {@link $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
 -     * {@link ProceduralPages} class
 -     * @param integer $event Event number from {@link Parser.inc}
 -     * @param parserFunction $data
 -     */
 -    function handleFunction($event,$data)
 -    {
 -        if ($this->_lastDocBlockWasPageLevel)
 -        {
 -            addWarning(PDERROR_DOCBLOCK_CONFLICT, 'function', $data->getName());
 -            if (!$this->_oldPageLevel)
 -            {
 -                unset($this->last);
 -            }
 -        }
 -        $this->_lastDocBlockWasPageLevel =
 -        $this->data->clean = false;
 -        if ($this->private_page)
 -        {
 -            unset($this->last);
 -            return;
 -        }
 -
 -        if (empty($this->last))
 -        {
 -            if (isset($this->db_template))
 -            // use the docblock template
 -            $this->last = phpDocumentor_clone($this->db_template);
 -            else
 -            // we don't have a docblock, create an empty one to get rid of errors
 -            $this->last = new parserDocblock();
 -        }
 -//        $this->last->setLineNumber($data->getLineNumber());
 -        if ($this->last->getKeyword('ignore'))
 -        {
 -            unset($this->last);
 -            return;
 -        }
 -        $this->last->overridePackage($this->category,$this->package,$this->subpackage,$data->getName(),'function');
 -
 -        foreach($data->listParams() as $param)
 -        {
 -            $update_params[] = $param[0];
 -        }
 -        foreach($data->listGlobals() as $param)
 -        {
 -            $update_globals[] = $param[1];
 -        }
 -        foreach($data->listStatics() as $param)
 -        {
 -            $update_statics[] = $param[0];
 -        }
 -        if (isset($update_params))
 -        $this->last->updateParams($update_params);
 -        if (isset($update_globals))
 -        $this->last->updateGlobals($update_globals);
 -        if (isset($update_statics))
 -        $this->last->updateStatics($update_statics);
 -        unset($update_params);
 -        unset($update_globals);
 -        unset($update_statics);
 -
 -        if ($data->hasSource())
 -        {
 -            $this->last->setSource($data->getSource());
 -        }
 -        if (count($this->last->params) == 1 && !count($data->listParams()))
 -        {
 -            // if the function has no parameters, and 1 @param, add it to the list as optional, default value is description from @param
 -            $pars = $this->last->listParams();
 -            $data->addParam($pars[0]['var'],$pars[0]['data']->getString());
 -        }
 -        $data->setDocBlock($this->last);
 -        $this->proceduralpages->addFunction($data);
 -        $this->last = false;
 -    }
 -    
 -    /**
 -     * handles post-parsing of defines
 -     *
 -     * This function sets {@link $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 {@link ProceduralPages} class
 -     * @param integer $event Event number from {@link Parser.inc}
 -     * @param parserDefine $data
 -     */
 -    function handleDefine($event,$data)
 -    {
 -        if ($this->_lastDocBlockWasPageLevel)
 -        {
 -            addWarning(PDERROR_DOCBLOCK_CONFLICT, 'define', $data->getName());
 -            if (!$this->_oldPageLevel)
 -            {
 -                unset($this->last);
 -            }
 -        }
 -        $this->_lastDocBlockWasPageLevel =
 -        $this->data->clean = false;
 -        if ($this->private_page)
 -        {
 -            unset($this->last);
 -            return;
 -        }
 -        if (empty($this->last))
 -        {
 -            if (isset($this->db_template))
 -            // use the docblock template
 -            $this->last = phpDocumentor_clone($this->db_template);
 -            else
 -            // we don't have a docblock, create an empty one to get rid of errors
 -            $this->last = new parserDocblock();
 -        }
 -//        $this->last->setLineNumber($data->getLineNumber());
 -        if ($this->last->getKeyword('ignore'))
 -        {
 -            unset($this->last);
 -            return;
 -        }
 -
 -        $this->last->overridePackage($this->category,$this->package,$this->subpackage,$data->getName(),'define');
 -        $data->setDocBlock($this->last);
 -        $this->proceduralpages->addDefine($data);
 -        $this->last = false;
 -    }
 -    
 -    /**
 -     * handles post-parsing of classes
 -     *
 -     * This function sets {@link $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 {@link $cur_class} to its
 -     * name, and if an @ignore tag is found in the DocBlock, it sets
 -     * {@link $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
 -     * @param integer $event Event number from {@link Parser.inc}
 -     * @param parserClass $data
 -     */
 -    function handleClass($event,$data)
 -    {
 -        global $_phpDocumentor_setting;
 -        if ($this->_lastDocBlockWasPageLevel)
 -        {
 -            if (!$this->_oldPageLevel)
 -            {
 -                addWarning(PDERROR_DOCBLOCK_GOES_CLASS, $data->getName());
 -                $doc = new parserDocBlock;
 -                $doc->category = $this->category;
 -                $doc->package = $this->package;
 -                $doc->subpackage = $this->subpackage;
 -                if ($_phpDocumentor_setting['sourcecode']) {
 -                    $doc->canSource();
 -                    $doc->addFileSource($this->data->parent->path, $this->data->parent->source);
 -                }
 -                $this->data->setDocBlock($doc);
 -                unset($doc);
 -                $this->last->cantSource();
 -            }
 -        }
 -        $this->_lastDocBlockWasPageLevel =
 -        $this->data->clean = false;
 -        if (empty($this->last))
 -        {
 -            if (isset($this->db_template))
 -            // use the docblock template
 -            $this->last = phpDocumentor_clone($this->db_template);
 -            else
 -            // we don't have a docblock, create an empty one to get rid of errors
 -            $this->last = new parserDocblock();
 -            list($this->last->package, $this->last->subpackage) = $this->_guessPackage($this->data->parent->path, $this->data->parent->getSourceLocation('dummy'));
 -            addWarning(PDERROR_NO_PACKAGE_TAG,'class',$data->getName(),$this->last->package);
 -        } else
 -        {
 -            if (!$this->last->getExplicitPackage())
 -            {
 -                list($this->last->package, $this->last->subpackage) = $this->_guessPackage($this->data->parent->path, $this->data->parent->getSourceLocation('dummy'));
 -                addWarning(PDERROR_NO_PACKAGE_TAG,'class',$data->getName(),$this->last->package);
 -            } else
 -            {
 -                if (isset($this->packagecategories[$this->package])
 -                    && $this->packagecategories[$this->package] != $this->category)
 -                    addWarning(PDERROR_PACKAGECAT_SET,$this->package,
 -                                $this->packagecategories[$this->package],
 -                                $this->category);
 -                $this->packagecategories[$this->package] = $this->category;
 -            }
 -        }
 -        $this->last->updateModifiers($data->getModifiers());
 -//        $this->last->setLineNumber($data->getLineNumber());
 -        $data->setDocBlock($this->last);
 -        $this->cur_class = $name = $data->getName();
 -        if ($this->last->getKeyword('ignore'))
 -        {
 -            $this->private_class = true;
 -            unset($this->last);
 -            return;
 -        }
 -        $data->path = $this->data->parent->path;
 -        $this->classes->addClass($data);
 -        $this->private_class = false;
 -        if ($this->last->package)
 -        {
 -            $this->parsePackagePage($this->last->package, $this->data->parent->getPath());
 -        }
 -        $this->last = false;
 -    }
 -    
 -    /**
 -     * handles post-parsing of procedural pages
 -     *
 -     * 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
 -     * @param integer $event Event number from {@link Parser.inc}
 -     * @param parserPage $data
 -     */
 -    function handlePage($event,$data)
 -    {
 -        $type = 'page';
 -        $this->private_page = false;
 -        $this->data = new parserData;
 -        $data->category = $this->category = $GLOBALS['phpDocumentor_DefaultCategoryName'];
 -        $this->package = $GLOBALS['phpDocumentor_DefaultPackageName'];
 -        $this->subpackage = '';
 -        $this->proceduralpages->addPage($data);
 -        $this->data->setParent($data);
 -        $this->pages[$data->getPath()] = $this->data;
 -        $this->classes->nextFile($data->getPath());
 -        $this->packageoutput = $data->getPackageOutput();
 -    }
 -    
 -    /**
 -     * handles post-parsing of DocBlocks
 -     *
 -     * This function sets {@link $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:
 -     * <ol>
 -     *    <li>First DocBlock in the file contains a @package tag</li>
 -     *    <li>First DocBlock in the file is immediately followed by another
 -     *        DocBlock</li>
 -     * </ol>
 -     * In both cases, the function extracts this tag and uses it as the
 -     * page-level package.  If the @package tag is in the DocBlock of an
 -     * element (function, global variable, whatever) that isn't a page-level
 -     * DocBlock, a warning will be raised to notify the author that a @package
 -     * tag belongs in a page-level DocBlock.
 -     *
 -     * <b>New</b> 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
 -     * {@link _processPageLevelDocBlock}
 -     *
 -     * Finally, the function replaces the old parserPage in
 -     * {@link parserData::$data}->parent with the new one containing information
 -     * from the DocBlock by calling {@link addPage()}, and checks for
 -     * package-level docs.
 -     * @param integer $event Event number from {@link Parser.inc}
 -     * @param parserDocBlock $data
 -     */
 -    function handleDocBlock($event,$data)
 -    {
 -        $type = 'docblock';
 -        $data->postProcess();
 -        // Zend desc support
 -        if ($tdesc = $data->getKeyword('desc'))
 -        {
 -            $data->setShortDesc($tdesc);
 -            unset($data->tags['desc']);
 -        }
 -        $this->_lastDocBlockWasPageLevel = false;
 -        // 1st docblock in file, check for @package
 -        if ($this->data->isClean() && !isset($this->last))
 -        {
 -            if ($data->getExplicitPackage())
 -            {
 -                // new with 1.2.2:
 -                // if the first docblock in a file
 -                // contains a @package tag, then it is
 -                // a page-level docblock
 -                $this->_processPageLevelDocBlock($data);
 -                $this->_lastDocBlockWasPageLevel = true;
 -                $this->all_packages[$data->package] = 1;
 -                $this->last = $data;
 -                return;
 -            }
 -            $doc = new parserDocBlock;
 -            $doc->category = $this->category;
 -            $doc->package = $this->package;
 -            $doc->subpackage = $this->subpackage;
 -            $this->data->setDocBlock($doc);
 -            $this->proceduralpages->addPagePackage($this->data->parent->getPath(),$this->package,$this->subpackage);
 -            unset($doc);
 -        }
 -        // 2nd docblock in a row, and it's at the top of the file, page-level docblock
 -        if ($this->lasttype == "docblock" && $this->data->isClean())
 -        {
 -            $this->_processPageLevelDocBlock($this->last);
 -            $this->_oldPageLevel = true;
 -            $this->_lastDocBlockWasPageLevel = false;
 -        }
 -        $this->all_packages[$data->package] = 1;
 -        $this->last = $data;
 -    }
 -    
 -    /**
 -     * Process a Page-level DocBlock
 -     *
 -     * First, it checks for an @ignore tag,
 -     * and if found, calls {@link ProceduralPages::ignorePage()}.  An @ignore
 -     * tag in a page-level DocBlock will ignore all functions, defines, global
 -     * variables, and includes.  It will not ignore classes!  The function next
 -     * checks for an @access private, and if --parseprivate is off, performs the
 -     * same actions as @ignore, raising a warning for the unsuspecting user.
 -     * Next, it checks for the @name tag, which is used to rename the page.
 -     * This is also a PEAR compatibility issue, and may not be very useful in
 -     * the long run.  Documentation is best when it refers to real entities in
 -     * the package, and not to aliases.
 -     * @access private
 -     */
 -    function _processPageLevelDocBlock($data)
 -    {
 -        global $_phpDocumentor_setting;
 -        // can only have 1 package-level docblock, others are ignored
 -        if (!$this->data->isClean())
 -        {
 -            return;
 -        }
 -        $this->data->clean = false;
 -        $this->data->explicitDocBlock();
 -        $data->canSource();
 -        if ($_phpDocumentor_setting['sourcecode'])
 -        {
 -            $data->addFileSource($this->data->parent->path, $this->data->parent->source);
 -        }
 -        if (!$data->getExplicitPackage())
 -        {
 -            list($data->package,$data->subpackage) = $this->_guessPackage($this->data->parent->getPath(), $this->data->parent->getSourceLocation('dummy'));
 -            addWarning(PDERROR_NO_PACKAGE_TAG,'file',$this->data->parent->getPath(),$this->last->package);
 -        }
 -        if (isset($this->packagecategories[$this->package])
 -            && $this->packagecategories[$this->package] != $this->category)
 -            addWarning(PDERROR_PACKAGECAT_SET,$this->package,
 -                        $this->packagecategories[$this->package],
 -                        $data->category);
 -        $this->packagecategories[$this->package] = $data->category;
 -        $this->category = $this->data->parent->category = $data->category;
 -        $this->packagecategories[$this->package] = $this->category;
 -        $this->subpackage = $this->data->parent->subpackage = $data->subpackage;
 -        if ($data->getKeyword('ignore'))
 -        {
 -            $this->proceduralpages->ignorePage($this->data->parent);
 -            $this->private_page = true;
 -            unset($this->last);
 -            $this->privatepages[$this->data->parent->getPath()] = $this->data;
 -            unset($this->pages[$this->data->parent->getPath()]);
 -            return;
 -        }
 -        $this->data->setDocBlock($data);
 -        $this->package = $this->data->parent->package = $data->package;
 -        $this->subpackage = $this->data->parent->subpackage = $data->subpackage;
 -        $this->proceduralpages->addPagePackage($this->data->parent->getPath(),$this->package,$this->subpackage);
 -        if ($access = $data->getKeyword('access'))
 -        {
 -            if (is_object($access) && ($access->getString() == 'private') && (!$this->parsePrivate))
 -            {
 -                addWarning(PDERROR_PARSEPRIVATE, $this->data->parent->getPath());
 -                $this->proceduralpages->ignorePage($this->data->parent);
 -                $this->private_page = true;
 -                unset($this->last);
 -                $this->privatepages[$this->data->parent->getPath()] = $this->data;
 -                unset($this->pages[$this->data->parent->getPath()]);
 -                return;
 -            }
 -        }
 -        if ($data->getKeyword('name'))
 -        {
 -            $a = $data->getKeyword('name');
 -            if (is_object($a)) $a = $a->value;
 -            $this->data->parent->setFile($a);
 -            $this->proceduralpages->setName($a);
 -        }
 -        $this->addPage($this->data->parent, $this->data->parent->getPath());
 -        if ($this->package)
 -        {
 -            $this->parsePackagePage($this->package, $this->data->parent->getPath());
 -        }
 -    }
 -    
 -    /**
 -     * Backward-compatibility only, use the new tutorials for more power
 -     * @tutorial tutorials.pkg
 -     * @param string package name of package file to parse
 -     * @param string directory of file that contains package name
 -     */
 -    function parsePackagePage($package, $path)
 -    {
 -        if (!isset($this->package_pages[$package]))
 -        {
 -            if (file_exists(dirname($path) . SMART_PATH_DELIMITER . $package . '.html'))
 -            {
 -                if ($this->quietMode === false)
 -                {
 -                    phpDocumentor_out("Reading package-level file ".$package . '.html');
 -                          flush();
 -                }
 -                $fp = fopen(dirname($path) . SMART_PATH_DELIMITER . $package . '.html',"r");
 -                $ret = fread($fp,filesize(dirname($path) . SMART_PATH_DELIMITER . $package . '.html'));
 -                fclose($fp);
 -                unset($fp);
 -                if ($this->quietMode === false)
 -                {
 -                    phpDocumentor_out(" -- Parsing File\n");
 -                          flush();
 -                }
 -                $pageParser = new ppageParser;
 -                $tempp = $this->package;
 -                $lp = $this->last;
 -                $pageParser->subscribe('*',$this);
 -                $pageParser->parse($ret,false,$package);
 -                $this->package = $tempp;
 -                $this->last = $lp;
 -                unset($tempp);
 -                unset($pageParser);
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * called via {@link Parser::parse()} and Parser's inherited method
 -     * {@link Publisher::publishEvent()}
 -     *
 -     * $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
 -     * {@link $event_handlers} array and called to handle the $data
 -     * @param integer $event event number from {@link Parser.inc}
 -     * @param mixed $data if $event is {@link PHPDOCUMENTOR_EVENT_NEWSTATE}, $data is a {@link PHP_DOC_EVENT_END_PAGE} or {@link STATE_END_CLASS},
 -     *                    otherwise $data is either a {@link parserDocBlock}, {@link parserPage} or descendant of {@link parserElement}
 -     * @global array we use 'sourcecode' to determine whether to highlight the source
 -     *               of the current file if it has no file-level docblock
 -     */
 -    function HandleEvent($event,$data)
 -    {
 -        global $_phpDocumentor_setting;
 -        global $phpDocumentor_DefaultPackageName, $phpDocumentor_DefaultCategoryName;
 -        if (empty($this->packagecategories))
 -        $this->packagecategories[$phpDocumentor_DefaultPackageName] = $phpDocumentor_DefaultCategoryName;
 -        if ($event == PHPDOCUMENTOR_EVENT_NEWSTATE)
 -        {
 -            if ($data == STATE_END_CLASS)
 -            {
 -            } elseif ($data == PHPDOCUMENTOR_EVENT_END_PAGE)
 -            {
 -                if (!$this->private_page)
 -                {
 -                    $this->all_packages[$this->package] = 1;
 -                    if (!$this->data->hasExplicitDocBlock())
 -                    {
 -                        $doc = $this->data->docblock;
 -                        if (!$this->data->docblock)
 -                        {
 -                            $doc = new parserDocBlock;
 -                        }
 -                        if ($_phpDocumentor_setting['sourcecode'])
 -                        {
 -                            $doc->canSource();
 -                            $doc->addFileSource($this->data->parent->path, $this->data->parent->source);
 -                        }
 -                        list($doc->package,$doc->subpackage) = $this->_guessPackage($this->data->parent->getPath(), $this->data->parent->getSourceLocation('dummy'));
 -                        addWarning(PDERROR_NO_PAGE_LEVELDOCBLOCK,$this->data->parent->getPath());
 -                        $this->data->setDocBlock($doc);
 -                        $this->proceduralpages->addPage($this->data->parent,$doc->package,$doc->subpackage);
 -                    }
 -                    $this->pages[$this->data->parent->getPath()] = $this->data;
 -                }
 -                $this->private_page = false;
 -                $this->private_class = false;
 -                if (isset($this->db_template))
 -                {
 -                    addWarning(PDERROR_DB_TEMPLATE_UNTERMINATED);
 -                }
 -                unset($this->db_template);
 -                unset($this->last);
 -            } elseif ($data == PHPDOCUMENTOR_EVENT_END_DOCBLOCK_TEMPLATE)
 -            {
 -                unset($this->db_template);
 -            }
 -            //echo $this->state_lookup[$data] . "\n";
 -            //echo $data."\n";
 -        } 
 -         else 
 -        {
 -            if ($event == PHPDOCUMENTOR_EVENT_README_INSTALL_CHANGELOG)
 -            {
 -                $this->ric[$data[0]] = $data[1];
 -                return;
 -            }
 -            if ($event == PHPDOCUMENTOR_EVENT_DOCBLOCK_TEMPLATE)
 -            {
 -                $data->postProcess();
 -                $this->db_template = $data;
 -                $this->_lastDocBlockWasPageLevel = false;
 -                // 2nd docblock in a row, and it's at the top of the file, page-level docblock
 -                if ($this->type == "docblock" && $this->data->isClean())
 -                {
 -                    // can only have 1 package-level docblock, others are ignored
 -                    $this->data->clean = false;
 -                    if ($this->last->getKeyword('ignore'))
 -                    {
 -                        $this->proceduralpages->ignorePage($this->data->parent);
 -                        $this->private_page = true;
 -                        unset($this->last);
 -                        $this->privatepages[$this->data->parent->getPath()] = $this->data;
 -                        unset($this->pages[$this->data->parent->getPath()]);
 -                        return;
 -                    }
 -                    $this->data->setDocBlock($this->last);
 -                    $this->package = $this->data->parent->package = $this->last->package;
 -                    $this->subpackage = $this->data->parent->subpackage = $this->last->subpackage;
 -                    $this->proceduralpages->addPagePackage($this->data->parent->getPath(),$this->package,$this->subpackage);
 -                    if ($access = $this->last->getKeyword('access'))
 -                    {
 -                        if (is_object($access) && ($access->getString() == 'private') && (!$this->parsePrivate))
 -                        {
 -                            addWarning(PDERROR_PARSEPRIVATE, $this->data->parent->getPath());
 -                            $this->proceduralpages->ignorePage($this->data->parent);
 -                            $this->private_page = true;
 -                            unset($this->last);
 -                            $this->privatepages[$this->data->parent->getPath()] = $this->data;
 -                            unset($this->pages[$this->data->parent->getPath()]);
 -                            return;
 -                        }
 -                    }
 -                    if ($this->last->getKeyword('name'))
 -                    {
 -                        $a = $this->last->getKeyword('name');
 -                        if (is_object($a)) $a = $a->value;
 -                        $this->data->parent->setFile($a);
 -                        $this->proceduralpages->setName($a);
 -                    }
 -                    $this->addPage($this->data->parent, $this->data->parent->getPath());
 -                    if ($this->package)
 -                    {
 -                        $this->parsePackagePage($this->package, $this->data->parent->getPath());
 -                    }
 -                }
 -                unset($this->last);
 -            } else
 -            {
 -                $this->lasttype = $this->type;
 -                $type = $data->getType();
 -//                fancy_debug($type,$data);
 -                if (($type != 'page') && ($type != 'docblock') && ($type != 'packagepage') && ($type != 'tutorial'))
 -                {
 -                    $data->setFile($this->data->parent->getFile());
 -                }
 -                $this->type = $type;
 -                //echo $type . "\n";
 -                
 -                if (isset($this->event_handlers[$type]))
 -                {
 -                    $handle = $this->event_handlers[$type];
 -                    $this->$handle($event,$data);
 -                }
 -            } 
 -        }
 -    }
 -    
 -    /**
 -     * Replaces the {@link parserPage} represented by $this->pages[$path] with
 -     * $page
 -     *
 -     * Called by {@link addPageIfNecessary(), handleDocBlock()} and
 -     * {@link 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 {@link addPrivatePage()}.  Otherwise, it sets the pages[$path] to
 -     * be the parserPage $page and sets the package and subpackage to that of
 -     * $page
 -     * @see $pages
 -     * @param parserPage
 -     * @param string full path to the file
 -     */
 -    function addPage($page, $path)
 -    {
 -        if (!isset($this->pages[$path])) return $this->addPrivatePage($page, $path);
 -        $this->pages[$path]->setParent($page);
 -        if ($page->package != $GLOBALS['phpDocumentor_DefaultPackageName'])
 -        {
 -            if (!$this->pages[$path]->docblock)
 -            {
 -                $docblock = new parserDocBlock;
 -                $docblock->package = $page->package;
 -                $docblock->subpackage = $page->subpackage;
 -                $this->pages[$path]->docblock = $docblock;
 -            } else
 -            {
 -                $this->pages[$path]->docblock->package = $page->package;
 -                $this->pages[$path]->docblock->subpackage = $page->subpackage;
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * add a new {@link parserPage} to the $pages array if none is found
 -     *
 -     * 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
 -     * {@link $pages} array and then copies path information, and calls
 -     * {@link addPage()} to set up packages
 -     * @param string full path of page
 -     */
 -    function addPageIfNecessary($path, &$class)
 -    {
 -        global $_phpDocumentor_setting;
 -        if (!$this->parsePrivate)
 -        {
 -            if (!isset($this->pages[$path]))
 -            {
 -                $this->pages[$path] = new parserData;
 -                $this->pages[$path]->docblock = new parserDocBlock;
 -                $this->pages[$path]->docblock->package = $this->privatepages[$path]->docblock->package;
 -                $this->pages[$path]->docblock->subpackage = $this->privatepages[$path]->docblock->subpackage;
 -                $par = $this->privatepages[$path]->parent;
 -                $this->pages[$path]->setParent($par);
 -                $this->proceduralpages->addPage($par);
 -            }
 -        }
 -        if (isset($_phpDocumentor_setting['packageoutput']))
 -            $packages = explode(',',$_phpDocumentor_setting['packageoutput']);
 -        if (isset($_phpDocumentor_setting['packageoutput']) &&
 -            $this->pages[$path]->parent->package != $class->docblock->package &&
 -            !in_array($this->pages[$path]->parent->package,$packages))
 -        {
 -            $this->pages[$path]->parent->package = $class->docblock->package;
 -            $this->addPage($this->pages[$path]->parent, $path);
 -            $this->proceduralpages->addPage($this->pages[$path]->parent);
 -        }
 -    }
 -    
 -    /**
 -     * Adds a {@link parserPage} element to the {@link parserData} element in
 -     * $this->privatepages[$path]
 -     *
 -     * Performs a similar function to addPage, but adds to the
 -     * {@link $privatePages} array
 -     * @param parserPage $page
 -     * @param string $path full path to the page
 -     * @see addPage()
 -     */
 -    function addPrivatePage($page, $path)
 -    {
 -        $this->privatepages[$path]->setParent($page);
 -        if ($page->package != $GLOBALS['phpDocumentor_DefaultPackageName'])
 -        {
 -            if (!$this->privatepages[$path]->docblock)
 -            {
 -                $docblock = new parserDocBlock;
 -                $docblock->package = $page->package;
 -                $docblock->subpackage = $page->subpackage;
 -                $this->privatepages[$path]->docblock = $docblock;
 -            } else
 -            {
 -                $this->privatepages[$path]->docblock->package = $page->package;
 -                $this->privatepages[$path]->docblock->subpackage = $page->subpackage;
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * adds a processed descendant of {@link parserElement} to the {@link $pages}
 -     * array or {@link $privatepages} array
 -     *
 -     * This function expects the page to exist in either $pages or $privatepages.  It calls the
 -     * {@link parserData::addElement()} method to add $element to the page.
 -     * @param parserElement $element this will actually be a descendant of parserElement
 -     * @param string $path
 -     */
 -    function addElementToPage($element, $path)
 -    {
 -        if (isset($this->privatepages[$path]))
 -        {
 -            if (isset($this->pages[$path]))
 -            {
 -                if ($element->type == 'class' || $element->type == 'method'
 -                    || $element->type == 'var' || $element->type == 'const')
 -                {
 -                    $this->pages[$path]->addElement($element);
 -                } else
 -                $this->privatepages[$path]->addElement($element);
 -            } else
 -            $this->privatepages[$path]->addElement($element);
 -        } else
 -        {
 -            if (isset($this->pages[$path]))
 -            {
 -                $this->pages[$path]->addElement($element);
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * Add all the @uses tags from $element to the $uses array so that @usedby
 -     * virtual tags can be added
 -     * @uses parserUsesTag::getSeeElement() used to initialize {@link $uses}
 -     * @uses parserUsesTag::getDescription() used to initialize {@link $uses}
 -     * @param parserElement descendant of parserElement
 -     * @param string full path to the file 
 -     */
 -    function addUses($element, $path)
 -    {
 -        if ($element->type == 'page')
 -        {
 -            $element = $this->pages[$element->path];
 -        }
 -        if (!$this->parsePrivate && $element->docblock->hasaccess)
 -        {
 -            $a =  $element->docblock->getKeyword('access');
 -            if (is_object($a) && $a->getString() == 'private') return;
 -        }
 -        if (isset($this->privatepages[$path]))
 -        {
 -            if (isset($this->pages[$path]))
 -            {
 -//                if ($element->type == 'function' || $element->type == 'method')
 -                {
 -                    $uses = $element->docblock->getKeyword('uses');
 -                    if ($uses)
 -                    {
 -                        if (!is_array($uses)) $uses = array($uses);
 -                        foreach($uses as $use)
 -                        {
 -                            if (!is_object($use)) continue;
 -                            $el = $use->getSeeElement();
 -                            $description = $use->getDescription();
 -                            $this->uses[$el][] = array($element, $description);
 -                        }
 -                    }
 -                }
 -            }
 -        } else
 -        {
 -            if (isset($this->pages[$path]))
 -            {
 -//                if ($element->type == 'function' || $element->type == 'method')
 -                {
 -                    $uses = $element->docblock->getKeyword('uses');
 -                    if ($uses)
 -                    {
 -                        if (!is_array($uses)) $uses = array($uses);
 -                        foreach($uses as $use)
 -                        {
 -                            if (!is_object($use)) continue;
 -                            $el = $use->getSeeElement();
 -                            $description = $use->getDescription();
 -                            $this->uses[$el][] = array($element, $description);
 -                        }
 -                    }
 -                }
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * Add a {@link parserUsedByTag} link to every element referred to by @uses
 -     * @param Converter temporary converter used to retrieve abstract links
 -     * @uses phpDocumentor_IntermediateParser::addUses() indirectly, as
 -     *       addUses() sets up $uses, which is iterated over here
 -     * @uses $pages sets up all @usedby tags from here
 -     * @access private
 -     */
 -    function _setupUsesList(&$converter)
 -    {
 -        ob_start();
 -        $converter->_createPkgElements($this->pages);
 -        ob_end_clean();
 -        foreach($this->uses as $link => $elements)
 -        {
 -            foreach($elements as $element)
 -            {
 -                if ($element[0]->type == 'method' || $element[0]->type == 'var' ||
 -                    $element[0]->type == 'const')
 -                {
 -                    $converter->class = $element[0]->getClass();
 -                }
 -                if ($element[0]->type == 'class')
 -                {
 -                    $converter->class = $element[0]->getName();
 -                }
 -                $reallink = $converter->getLink($link,$element[0]->docblock->package);
 -                if (is_object($reallink))
 -                {
 -                    // add a used by tag to the docblock of the destination
 -                    switch(phpDocumentor_get_class($reallink))
 -                    {
 -                        case 'pagelink' :
 -                        case 'functionlink' :
 -                        case 'definelink' :
 -                        case 'globallink' :
 -                        if (isset($this->pages[$reallink->path]))
 -                        {
 -                            for ($i=0;$i<count($this->pages[$reallink->path]->elements);$i++)
 -                            {
 -                                if ($this->pages[$reallink->path]->elements[$i]->type == str_replace('link','',phpDocumentor_get_class($reallink)) && $this->pages[$reallink->path]->elements[$i]->getName() == $reallink->name)
 -                                {
 -                                    $this->pages[$reallink->path]->elements[$i]->docblock->addUsedBy($element[0]->getLink($converter,false,true), $element[1]);
 -//                                   debug('added @usedby to '.str_replace('link','',phpDocumentor_get_class($reallink)).' '.$reallink->name);
 -                                }
 -                            }
 -                        }
 -                        break;
 -                        case 'classlink' :
 -                        case 'methodlink' :
 -                        case 'varlink' :
 -                        case 'constlink' :
 -                        if (isset($this->pages[$reallink->path]))
 -                        {
 -                            for ($i=0;$i<count($this->pages[$reallink->path]->classelements);$i++)
 -                            {
 -                                if ($this->pages[$reallink->path]->classelements[$i]->type == str_replace('link','',phpDocumentor_get_class($reallink)) && $this->pages[$reallink->path]->classelements[$i]->getName() == $reallink->name)
 -                                {
 -                                    $this->pages[$reallink->path]->classelements[$i]->docblock->addUsedBy($element[0]->getLink($converter,false,true), $element[1]);
 -//                                   debug('added @usedby to '.str_replace('link','',phpDocumentor_get_class($reallink)).' '.$reallink->name);
 -                                }
 -                            }
 -                        }
 -                        break;
 -                    }
 -                }
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * Interface to the Converter
 -     *
 -     * This function simply passes {@link $pages} and {@link 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.
 -     * @uses Converter::walk() passes {@link $pages} and {@link $package_pages}
 -     * @uses Converter::Output()
 -     */
 -    function Convert($title, $converter)
 -    {
 -        $converter->walk($this->pages, $this->package_pages);
 -        $converter->Output($title);
 -    }
 -    
 -    /**
 -     * Clean up classes
 -     *
 -     * {@source}
 -     * @access private
 -     * @uses Classes::Inherit() passes $this
 -     */
 -    function fixClasses()
 -    {
 -        $this->classes->Inherit($this);
 -    }
 -    
 -    /**
 -     * Clean up Procedural Pages
 -     * {@source}
 -     * @access private
 -     * @uses ProceduralPages::setupPages() passes $this
 -     */
 -    function fixProcPages()
 -    {
 -        $this->proceduralpages->setupPages($this);
 -    }
 -    
 -    /**
 -     * If the parent class of $class is in a different package, adds it to the
 -     * {@link $package_parents} array
 -     * @param parserClass &$class
 -     */
 -    function addPackageParent(&$class)
 -    {
 -        if (!is_array($class->parent)) return;
 -        $par = $this->classes->getClass($class->parent[1], $class->parent[0]);
 -        if ($class->docblock->package == $par->docblock->package) return;
 -        $this->package_parents[$class->docblock->package] = $par->docblock->package;
 -        if (!isset($this->package_parents[$par->docblock->package]) || !$this->package_parents[$par->docblock->package]) $this->package_parents[$par->docblock->package] = false;
 -    }
 -    
 -    /**
 -     * Add a converter name to use to the list of converters
 -     *
 -     * Sets up the {@link $converters} array.
 -     * {@internal
 -     * First, the Converter's file is included, and then, if successful,
 -     * the converter classname is tested for existance.  If all is good,
 -     * then the templates are added to the list of converters/templates to use}}
 -     * @param string $output output format (HTML, PDF, XML).  Must be all caps
 -     * @param string $name Converter name (frames, for example, is the name of
 -     *                     HTMLframesConverter)
 -     * @param string $template template to use, should be a relative path to the
 -     *                         templates dir (like DOM/default)
 -     */
 -    function addConverter($output,$name,$template)
 -    {
 -        if (strpos($name,PATH_DELIMITER))
 -        {
 -            $parent = explode(PATH_DELIMITER,$name);
 -            $parent = $parent[0];
 -            if ('@VER@' != '@'.'VER@') {
 -                $filename = 'PhpDocumentor/phpDocumentor/Converters' .
 -                    PATH_DELIMITER . $output . PATH_DELIMITER . $parent . PATH_DELIMITER . $output . $parent . "Converter" . ".inc";
 -                if (Io::isIncludeable($filename))
 -                {
 -                    include_once($filename);
 -                }
 -            } else {
 -                $filename = str_replace('\\','/',$GLOBALS['_phpDocumentor_install_dir']) . '/phpDocumentor/Converters' .
 -                    PATH_DELIMITER . $output . PATH_DELIMITER . $parent . PATH_DELIMITER . $output . $parent . "Converter" . ".inc";
 -                if (file_exists($filename) && is_readable($filename))
 -                {
 -                    include_once($filename);
 -                }
 -            }
 -            if (!class_exists($output . $parent . 'Converter'))
 -            {
 -                addError(PDERROR_CONVERTER_NOT_FOUND,"parent Converter ".$output . $parent . "Converter of child Converter ".$output . str_replace(PATH_DELIMITER,'',$name) . "Converter");
 -            }
 -        }
 -        $filename = str_replace('\\', '/', $GLOBALS['_phpDocumentor_install_dir']) . '/phpDocumentor/Converters' .
 -             PATH_DELIMITER . $output . PATH_DELIMITER . $name . PATH_DELIMITER . $output .
 -             str_replace(PATH_DELIMITER, '', $name) . "Converter" . ".inc";
 -        if (file_exists($filename) && is_readable($filename))
 -        {
 -            include_once($filename);
 -        }
 -        if (class_exists($output . str_replace(PATH_DELIMITER,'',$name) . 'Converter'))
 -        {
 -            $this->converters[$output][$output . str_replace(PATH_DELIMITER,'',$name) . "Converter"][] = $template;
 -        } else
 -        {
 -            addError(PDERROR_CONVERTER_NOT_FOUND,$output . str_replace(PATH_DELIMITER,'',$name) . "Converter");
 -        }
 -    }
 -
 -    /**
 -     * does a natural case sort on two {@link parserElement} descendants
 -     *
 -     * @param    mixed    $a
 -     * @param    mixed    $b
 -     * @return    int
 -     * @see        generateElementIndex()
 -     */
 -    function elementCmp ($a, $b)
 -    {
 -        return strnatcasecmp($a->getName(), $b->getName());
 -    }
 -    
 -    /**
 -     * does a natural case sort on two class elements (either
 -     * {@link parserClass, parserMethod} or {@link parserVar}
 -     *
 -     * @param    mixed    $a
 -     * @param    mixed    $b
 -     * @return    int
 -     * @see        generateElementIndex()
 -     */
 -    function ClasselementCmp ($a, $b)
 -    {
 -        if (phpDocumentor_get_class($a) == 'parserclass') $atest = $a->name; else $atest = $a->class;
 -        if (phpDocumentor_get_class($b) == 'parserclass') $btest = $b->name; else $btest = $b->class;
 -        
 -        if(($c = strnatcasecmp($atest, $btest)) != 0) return $c;
 -        if (phpDocumentor_get_class($a) != 'parserclass') $atest .= $a->name;
 -        if (phpDocumentor_get_class($b) != 'parserclass') $btest .= $b->name;
 -        if (phpDocumentor_get_class($a) == 'parsermethod' && phpDocumentor_get_class($b) == 'parsermethod')
 -        {
 -            if ($a->isConstructor) return -1;
 -            if ($b->isConstructor) return 1;
 -            if ($a->isDestructor) return -1;
 -            if ($b->isDestructor) return 1;
 -        }
 -        return strnatcasecmp($atest,$btest);
 -    }
 -    
 -    /**
 -     * call this method once parsing has completed.
 -     *
 -     * 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 {@link ProceduralPages::setupPages()}
 -     * and {@link Classes::Inherit()}.  Then, it sorts elements of the $pages
 -     * array and calls Convert for each Converter in the $converters array
 -     * @see $converters
 -     * @see $pages
 -     * @see Convert()
 -     */
 -    function Output ($title = "Generated Documentation")
 -    {
 -        $GLOBALS['phpDocumentor_errors']->curfile = false;
 -        $this->fixClasses();
 -        $this->fixProcPages();
 -//        var_dump($this->uses);
 -//        exit;
 -        phpDocumentor_out("\nSorting page elements...");
 -        flush();
 -        uasort($this->pages,'pagesort');
 -        foreach($this->pages as $i => $page)
 -        {
 -            usort($this->pages[$i]->elements,array($this,'elementCmp'));
 -            usort($this->pages[$i]->classelements,array($this,'ClasselementCmp'));
 -        }
 -        phpDocumentor_out("done\n");
 -        flush();
 -        $complicatedout = false;
 -        if (is_array($this->converters))
 -        {
 -            if (count($this->converters) > 1)
 -            {
 -                $complicatedout = true;
 -            }
 -            phpDocumentor_out("Formatting @uses list...");
 -            flush();
 -            $a = new __dummyConverter($this->all_packages, $this->package_parents, $this->classes, $this->proceduralpages, $this->packageoutput, $this->parsePrivate, $this->quietMode, $this->targetDir , '', $this->title);
 -            $this->_setupUsesList($a);
 -            unset($a);
 -            phpDocumentor_out("done\n\n");
 -            flush();
 -            foreach($this->converters as $converter => $blah)
 -            {
 -                if (is_array($blah))
 -                {
 -                    if (count($blah) > 1)
 -                    {
 -                        $complicatedout = true;
 -                    }
 -                    foreach($blah as $converter => $templates)
 -                    {
 -                        foreach($templates as $template)
 -                        {
 -                            $extraout = '';
 -                            if ($complicatedout)
 -                            {
 -                                $extraout = SMART_PATH_DELIMITER . $converter;
 -                            }
 -                            if (count($templates) > 1)
 -                            {
 -                                $extraout .= SMART_PATH_DELIMITER . str_replace(PATH_DELIMITER, SMART_PATH_DELIMITER, substr($template,0,strlen($template) - 1));
 -                            }
 -                            $a = new $converter($this->all_packages, $this->package_parents, $this->classes, $this->proceduralpages, $this->packageoutput, $this->parsePrivate, $this->quietMode, $this->targetDir . $extraout, $template, $this->title);
 -                            if (isset($this->templateBase))
 -                            {
 -                                $a->setTemplateBase($this->templateBase, $template);
 -                            }
 -                            $a->ric = $this->ric;
 -                            $a->packagecategories = $this->packagecategories;
 -                            if (isset($this->tutorials)) $a->setTutorials($this->tutorials);
 -                            $this->Convert($title, $a);
 -                            unset($a);
 -                        }
 -                    }
 -                }
 -            }
 -        } else
 -        {
 -            addErrorDie(PDERROR_NO_CONVERTERS);
 -        }
 -    }
 -
 -    /**
 -     * Sets the output directory
 -     *
 -     * @param string $dir the output directory
 -     */
 -    function setTargetDir($dir)
 -    {
 -        $this->targetDir = $dir;
 -    }
 -
 -    /**
 -     * Sets the template base directory
 -     *
 -     * @param string $dir the template base directory
 -     * @tutorial phpDocumentor.howto.pkg#using.command-line.templatebase
 -     */
 -    function setTemplateBase($dir)
 -    {
 -        $this->templateBase = $dir;
 -    }
 -
 -    /**
 -     * set parsing information output mode (quiet or verbose)
 -     *
 -     * If set to false, no parsing information (parsing /php/file/thisfile.php,
 -     * Converting etc.) will be displayed.
 -     * Useful for cron jobs
 -     * @param    bool $quietMode
 -     */
 -    function setQuietMode($quietMode)
 -    {
 -        $this->quietMode = $quietMode;
 -    }
 -    
 -    /**
 -     * set display of elements marked with @access private
 -     *
 -     * If set to true, elements will be displayed
 -     * @param    bool $parse
 -     */
 -    function setParsePrivate($parse)
 -    {
 -        $this->parsePrivate = $parse;
 -    }
 -}
 -
 -/** @access private */
 -function pagesort($a, $b)
 -{
 -    return strnatcasecmp($a->parent->file,$b->parent->file);
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Io.inc b/buildscripts/PhpDocumentor/phpDocumentor/Io.inc deleted file mode 100644 index dac36bec..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Io.inc +++ /dev/null @@ -1,869 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * Class to handle file and user io opperations
 - *
 - * @author    Joshua Eichorn <jeichorn@phpdoc.org>
 - * @version    $Id: Io.inc,v 1.5 2005/11/20 21:20:22 cellog Exp $
 - * @package     phpDocumentor
 - */
 -/**
 - * Class to handle file and user io opperations
 - *
 - * @author    Joshua Eichorn <jeichorn@phpdoc.org>
 - * @version    $Id: Io.inc,v 1.5 2005/11/20 21:20:22 cellog Exp $
 - * @package     phpDocumentor
 - */
 -class Io 
 -{
 -    
 -    /**
 -     * Holds all the options that are avaible to the cmd line interface
 -     * and to the different web interfaces
 -     */
 -    var $phpDocOptions;
 -    /**
 -     * Format: array(array(regexp-ready string to search for whole path,
 -     * regexp-ready string to search for basename of ignore strings),...)
 -     * @var false|array
 -     */
 -    var $ignore = false;
 -
 -    /**
 -     * creates an array $this->phpDocOptions and sets program options in it.
 -     * Array is in the format of:
 -     * <pre>
 -     * [filename][tag][] = "f";
 -     * [filename][tag][] = "-file";
 -     * [filename][desc] "name of file to parse"
 -     * </pre>
 -     */
 -    function Io()
 -    {
 -        $this->phpDocOptions['filename']['tag'] = array( "-f", "--filename");
 -        $this->phpDocOptions['filename']['desc'] = "name of file(s) to parse ',' file1,file2.  Can contain complete path and * ? wildcards";
 -        $this->phpDocOptions['filename']['type'] = "path";
 -
 -        $this->phpDocOptions['directory']['tag'] = array( "-d", "--directory");
 -        $this->phpDocOptions['directory']['desc'] = "name of a directory(s) to parse directory1,directory2";
 -        $this->phpDocOptions['directory']['type'] = "path";
 -
 -        $this->phpDocOptions['examplesdir']['tag'] = array( "-ed", "--examplesdir");
 -        $this->phpDocOptions['examplesdir']['desc'] = "full path of the directory to look for example files from @example tags";
 -        $this->phpDocOptions['examplesdir']['type'] = "path";
 -
 -        $this->phpDocOptions['templatebase']['tag'] = array( "-tb", "--templatebase");
 -        $this->phpDocOptions['templatebase']['desc'] = "base location of all templates for this parse.";
 -        $this->phpDocOptions['templatebase']['type'] = "path";
 -
 -        $this->phpDocOptions['target']['tag'] = array("-t", "--target");
 -        $this->phpDocOptions['target']['desc'] = "path where to save the generated files";
 -        $this->phpDocOptions['target']['type'] = "path";
 -        
 -        $this->phpDocOptions['ignore']['tag'] = array("-i", "--ignore");
 -        $this->phpDocOptions['ignore']['desc'] = "file(s) that will be ignored, multiple separated by ','.  Wildcards * and ? are ok";
 -        $this->phpDocOptions['ignore']['type'] = "path";
 -
 -        $this->phpDocOptions['ignoretags']['tag'] = array("-it", "--ignore-tags");
 -        $this->phpDocOptions['ignoretags']['desc'] = "tags to ignore for this parse.  @package, @subpackage, @access and @ignore may not be ignored.";
 -        $this->phpDocOptions['ignoretags']['type'] = "value";
 -
 -        $this->phpDocOptions['hidden']['tag'] = array("-dh", "--hidden");
 -        $this->phpDocOptions['hidden']['desc'] = "set equal to on (-dh on) to descend into hidden directories (directories starting with '.'), default is off";
 -        $this->phpDocOptions['hidden']['type'] = "value";
 -
 -        $this->phpDocOptions['quiet']['tag'] = array("-q", "--quiet");
 -        $this->phpDocOptions['quiet']['desc'] = "do not display parsing/conversion messages.  Useful for cron jobs on/off default off";
 -        $this->phpDocOptions['quiet']['type'] = "value";
 -
 -        $this->phpDocOptions['title']['tag'] = array("-ti","--title");
 -        $this->phpDocOptions['title']['desc'] = "title of generated documentation, default is 'Generated Documentation'";
 -        $this->phpDocOptions['title']['type'] = "value";
 -
 -        $this->phpDocOptions['help']['tag'] = array("-h", "--help");
 -        $this->phpDocOptions['help']['desc'] = "    show this help message";
 -
 -        $this->phpDocOptions['useconfig']['tag'] = array("-c","--useconfig");
 -        $this->phpDocOptions['useconfig']['desc'] = "Use a Config file in the users/ subdirectory for all command-line options";
 -        $this->phpDocOptions['useconfig']['type'] = "value";
 -
 -        $this->phpDocOptions['parseprivate']['tag'] = array("-pp","--parseprivate");
 -        $this->phpDocOptions['parseprivate']['desc'] = "parse @internal and elements marked private with @access.  Use on/off, default off";
 -        $this->phpDocOptions['parseprivate']['type'] = "value";
 -
 -        $this->phpDocOptions['packageoutput']['tag'] = array("-po","--packageoutput");
 -        $this->phpDocOptions['packageoutput']['desc'] = "output documentation only for selected packages.  Use a comma-delimited list";
 -        $this->phpDocOptions['packageoutput']['type'] = "value";
 -
 -        $this->phpDocOptions['defaultpackagename']['tag'] = array("-dn","--defaultpackagename");
 -        $this->phpDocOptions['defaultpackagename']['desc'] = "name to use for the default package.  If not specified, uses 'default'";
 -        $this->phpDocOptions['defaultpackagename']['type'] = "value";
 -
 -        $this->phpDocOptions['defaultcategoryname']['tag'] = array("-dc","--defaultcategoryname");
 -        $this->phpDocOptions['defaultcategoryname']['desc'] = "name to use for the default category.  If not specified, uses 'default'";
 -        $this->phpDocOptions['defaultcategoryname']['type'] = "value";
 -
 -        $this->phpDocOptions['output']['tag'] = array("-o","--output");
 -        $this->phpDocOptions['output']['desc'] = "output information to use separated by ','.  Format: output:converter:templatedir like \"HTML:frames:phpedit\"";
 -        $this->phpDocOptions['output']['type'] = "value";
 -
 -        $this->phpDocOptions['converterparams']['tag'] = array("-cp","--converterparams");
 -        $this->phpDocOptions['converterparams']['desc'] = "dynamic parameters for a converter, separate values with commas";
 -        $this->phpDocOptions['converterparams']['type'] = "value";
 -
 -        $this->phpDocOptions['customtags']['tag'] = array("-ct","--customtags");
 -        $this->phpDocOptions['customtags']['desc'] = "custom tags, will be recognized and put in tags[] instead of unknowntags[]";
 -        $this->phpDocOptions['customtags']['type'] = "value";
 -
 -        $this->phpDocOptions['sourcecode']['tag'] = array("-s","--sourcecode");
 -        $this->phpDocOptions['sourcecode']['desc'] = "generate highlighted sourcecode for every parsed file (PHP 4.3.0+ only) on/off default off";
 -        $this->phpDocOptions['sourcecode']['type'] = "value";
 -
 -        $this->phpDocOptions['javadocdesc']['tag'] = array("-j","--javadocdesc");
 -        $this->phpDocOptions['javadocdesc']['desc'] = "JavaDoc-compliant description parsing.  Use on/off, default off (more flexibility)";
 -        $this->phpDocOptions['javadocdesc']['type'] = "value";
 -
 -        $this->phpDocOptions['pear']['tag'] = array("-p","--pear");
 -        $this->phpDocOptions['pear']['desc'] = "Parse a PEAR-style repository (package is directory, _members are @access private) on/off default off";
 -        $this->phpDocOptions['pear']['type'] = "value";
 -
 -        $this->phpDocOptions['readmeinstallchangelog']['tag'] = array("-ric","--readmeinstallchangelog");
 -        $this->phpDocOptions['readmeinstallchangelog']['desc'] = "Specify custom filenames to parse like README, INSTALL or CHANGELOG files";
 -        $this->phpDocOptions['readmeinstallchangelog']['type'] = "value";
 -
 -        $this->phpDocOptions['general']['message'] ="You can have multiple directories and multiple files, as well as a combination of both options";
 -    }
 -
 -    
 -    /**
 -     * create the help message for display on the command-line
 -     * @return string a string containing a help message
 -     */
 -    function displayHelpMsg()
 -    {
 -        unset($ret);
 -        $ret = "\n";
 -        foreach($this->phpDocOptions as $data)
 -        {
 -            unset($tag);
 -            $tag = "";
 -            if (isset($data['tag']))
 -            {
 -                if (is_array($data['tag'])) {
 -                    foreach($data['tag'] as $param) {
 -                        $tag .= "$param    ";
 -                    }
 -                }
 -		$taglen = 34;
 -		$outputwidth = 79;
 -		$tagspace = str_repeat(" ",$taglen);
 -                $tmp = "  ".trim($tag).$tagspace;
 -                $tmp = substr($tmp,0,$taglen);
 -                $d = wordwrap(ltrim($data['desc']),($outputwidth-$taglen));
 -		$dt = explode("\n",$d);
 -		$dt[0] = $tmp .$dt[0];
 -		for($i=1;$i<count($dt);$i++)
 -		{
 -			$dt[$i] = $tagspace.$dt[$i];
 -		}
 -		$ret .= implode("\n",$dt)."\n\n";
 -		
 -            }
 -        }
 -        $ret .= "\n".wordwrap($data['message'],$outputwidth)."\n";
 -        return $ret; 
 -    }
 -    
 -    /**
 -     * calls {@link file_exists()} for each value in include_path,
 -     * then calls {@link is_readable()} when it finds the file
 -     * @param string
 -     * @return boolean
 -     */
 -    function isIncludeable($filename)
 -    {
 -        $ip = get_include_path();
 -        if (PHPDOCUMENTOR_WINDOWS)
 -        {
 -            $ip = explode(';', $ip);
 -        } else {
 -            $ip = explode(':', $ip);
 -        }
 -        foreach($ip as $path)
 -        {
 -            if ($a = realpath($path . DIRECTORY_SEPARATOR . $filename))
 -            {
 -                if (is_readable($a))
 -                {
 -                    return true;
 -                }
 -            }
 -        }
 -        return false;
 -    }
 -
 -    /**
 -     * Parses $_SERVER['argv'] and creates a setup array
 -     * @return array a setup array
 -     * @global array command-line arguments
 -     */
 -    function parseArgv()
 -    {
 -        global $argv;
 -        // defaults for setting
 -        $setting['hidden'] = "off";
 -        $setting['template'] = 'templates' . PATH_DELIMITER .'default' . PATH_DELIMITER;
 -
 -        $valnext = "junk";
 -        if(isset($argv) && is_array($argv))
 -        {
 -            foreach ($argv as $cmd)
 -            {
 -                //if($cmd === 'phpdoc' || basename($cmd)==='phpdoc')
 -                //    continue;
 -
 -                if ($cmd == '-h' || $cmd == '--help')
 -                {
 -                    echo $this->displayHelpMsg();
 -                    die();
 -                }
 -                $setting[$valnext] = $cmd;
 -                foreach( $this->phpDocOptions as $name => $data )
 -                {
 -                    if (!empty($data['tag']))
 -                    {
 -                        if (in_array($cmd,$data['tag']))
 -                        {
 -                            $valnext = $name;
 -                            break;
 -                        } 
 -                        else
 -                        {
 -                            $valnext = "junk";
 -                        }
 -                    }
 -                }
 -                if ($valnext == 'junk' && (strpos(trim($cmd),'-') === 0))
 -                {
 -                    addErrorDie(PDERROR_UNKNOWN_COMMANDLINE,$cmd);
 -                }
 -            }
 -        } else
 -        {
 -            echo "Please use php-cli.exe in windows, or set register_argc_argv On";
 -            die;
 -        }
 -        /* $setting will always have at least 2 elements
 -        [hidden] => off
 -        [template] => templates/default
 -         */
 -        if (count($setting) < 3) {
 -            echo $this->displayhelpMsg();
 -            die();
 -        }
 -        return $setting;
 -    }
 -
 -
 -    /**
 -     * @return array list of files in a directory
 -     * @param string $directory full path to the directory you want the list of
 -     * @param off|on whether to list files that begin with . like .bash_history
 -     */
 -    function dirList($directory,$hidden = "off")
 -    {
 -        $directory = realpath($directory);
 -        $ret = false;
 -        if (@is_dir($directory))
 -        {
 -            $ret = array();
 -            $d = @dir($directory); // thanks to Jason E Sweat (jsweat@users.sourceforge.net) for fix
 -            while($d && ($entry=$d->read()) !== false) {
 -                if (strcmp($entry,".") != 0 && strcmp($entry,"..") != 0) {
 -                if ($hidden == "off")
 -                {
 -                    if (substr($entry,0,1) == ".")
 -                    {
 -                        $getentry = false;
 -                    } else {
 -                        $getentry = true;
 -                    }
 -        
 -                } else {
 -                    $getentry = true;
 -                }
 -        
 -                if ($getentry == true)
 -                {
 -                    if (is_file($directory . PATH_DELIMITER . $entry)) {
 -                        $ret[] = $directory . PATH_DELIMITER . $entry;
 -                    }
 -                    if (is_dir($directory . PATH_DELIMITER . $entry)) {
 -                        $tmp = $this->dirList($directory . PATH_DELIMITER . $entry, $hidden);
 -                        if (is_array($tmp)) {
 -                            foreach($tmp as $ent) {
 -                                $ret[] = $ent;
 -                            }
 -                        }
 -                    }
 -                }
 -            }
 -        }
 -        if ($d) $d->close();
 -        } else {
 -            die("directory: '$directory'  not found\n");
 -        }
 -        return $ret;
 -    }
 -
 -    /**
 -     * Retrieve common directory (case-insensitive in windows)
 -     *
 -     * takes the list of files, and returns the subdirectory they share in common,
 -     * so in this list:
 -     *
 -     * <code>
 -     * array(
 -     * "/dir1/dir2/subdir/dir3/filename.ext",
 -     * "/dir1/dir2/subdir/dir4/filename.ext",
 -     * "/dir1/dir2/mydir/dir5/filename.ext");
 -     * </code>
 -     *
 -     * getBase will return "/dir1/dir2"
 -     * @param array array of strings
 -     */
 -    function getBase($filelist)
 -    {
 -        $masterPath = false;
 -        foreach($filelist as $path)
 -        {
 -            if (!$masterPath)
 -            {
 -                $masterPath = str_replace('\\','/',dirname($path));
 -            } else
 -            {
 -                if (dirname($path) != $masterPath)
 -                {
 -                    $mp = explode(PATH_DELIMITER, $masterPath);
 -                    $np = explode(PATH_DELIMITER, str_replace('\\', '/', dirname($path)));
 -
 -                    if (count($np) < count($mp))
 -                    {
 -                        $masterPath = join($np, PATH_DELIMITER);
 -                    } else
 -                    {
 -                        $test = false;
 -                        $found = false;
 -                        for($i=0;$i < count($mp) && $i < count($np);$i++)
 -                        {
 -                            if (PHPDOCUMENTOR_WINDOWS)
 -                            {
 -                                if (strtolower($mp[$i]) != strtolower($np[$i])) $found = $i;
 -                            } else
 -                            {
 -                                if ($mp[$i] != $np[$i]) $found = $i;
 -                            }
 -                        }
 -                        if ($found !== false)
 -                        {
 -                            $mp = array_slice($mp,0,$found);
 -                            $masterPath = join($mp,PATH_DELIMITER);
 -                        }
 -                    }
 -                }
 -            }
 -        }
 -        return $masterPath;
 -    }
 -    
 -    /**
 -     * Retrieve tutorial subdirectories and their contents from the list of
 -     * files to parse
 -     * @param array array of paths (strings)
 -     * @return array array(filelist - tutorials, tutorials)
 -     */
 -    function getTutorials($filelist)
 -    {
 -        $list = $tutorials = array();
 -        foreach($filelist as $file)
 -        {
 -            if (strpos($file,'tutorials/') !== false)
 -            {
 -                $tutedir = explode('/',substr($file,strpos($file,'tutorials/')));
 -                array_shift($tutedir);
 -                if (count($tutedir) <= 3)
 -                {
 -                    $res = array();
 -                    // kludge - will need to fix for 2.0
 -                    $res['category'] = $GLOBALS['phpDocumentor_DefaultCategoryName'];
 -                    $res['package'] = array_shift($tutedir);
 -                    $res['subpackage'] = '';
 -                    if (count($tutedir) > 1)
 -                    $res['subpackage'] = array_shift($tutedir);
 -                    $f = array_shift($tutedir);
 -                    $res['tutename'] = $f;
 -                    $f = explode('.',$f);
 -                    $res['tutetype'] = array_pop($f);
 -                    if ($res['tutetype'] == 'ini') continue;
 -                    $res['path'] = $file;
 -                    if (@file_exists($file . '.ini'))
 -                    {
 -                        $res['ini'] = phpDocumentor_parse_ini_file($file . '.ini', true);
 -                    } else
 -                    {
 -                        $res['ini'] = false;
 -                    }
 -                    $tutorials[] = $res;
 -                }
 -            } else $list[] = $file;
 -        }
 -        return array($list,$tutorials);
 -    }
 -    
 -    /**
 -     * @param string base directory from {@link getBase()}
 -     * @param array file list from {@link dirList()}
 -     * @return array array(filelist - README/INSTALL/CHANGELOG,
 -     *                     README/INSTALL/CHANGELOG)
 -     */
 -    function getReadmeInstallChangelog($base,$filelist)
 -    {
 -        $list = $ric = array();
 -        $names = $GLOBALS['_phpDocumentor_RIC_files'];
 -        foreach($filelist as $file)
 -        {
 -            if ((dirname($file) == $base) && in_array(strtoupper(basename($file)), $names))
 -            { // be sure to change $this->checkIgnore() if any other files are added here!!
 -                $ric[] = $file;
 -            } else
 -            {
 -                $list[] = $file;
 -            }
 -        }
 -        return array($list,$ric);
 -    }
 -    
 -    function getDirTree($dir, $base_dir, $ignore = array(), $hidden="off")
 -    {
 -        $allfiles = $this->dirList($dir,$hidden);
 -        $struc = array();
 -        foreach($allfiles as $file)
 -        {
 -            if ($this->checkIgnore(basename($file),dirname($file),$ignore)) continue;
 -            $path = substr(dirname($file),strlen(str_replace('\\','/',realpath($base_dir)))+1);
 -            if (!$path) $path = '/';
 -            $parts = pathinfo($file);
 -            if (!isset($parts['extension']))
 -            {
 -                $parts['extension'] = '';
 -            }
 -            $struc[$path][] = array(
 -                'file' => $parts['basename'],
 -                'ext' => $parts['extension'],
 -                'path' => $file);
 -        }
 -        uksort($struc,'strnatcasecmp');
 -        foreach($struc as $key => $ind)
 -        {
 -            usort($ind,'Ioinc_sortfiles');
 -            $struc[$key] = $ind;
 -            $save = $key;
 -            if ($key != '/')
 -            {
 -                $key = explode('/',$key);
 -                while (count($key))
 -                {
 -                    array_pop($key);
 -                    if (isset($struc[join('/',$key)]))
 -                    {
 -                        $struc[join('/',$key)][substr($save,strlen(join('/',$key)) + 1)] = $ind;
 -                        unset($struc[$save]);
 -                    }
 -                }
 -            }
 -        }
 -        foreach($struc as $key => $ind)
 -        {
 -            if ($key != '/')
 -            {
 -                if (count(explode('/',$key)) == 1)
 -                {
 -                    $struc['/'][$key] = $struc[$key];
 -                    unset($struc[$key]);
 -                }
 -            }
 -        }
 -        $tempstruc = $struc;
 -        unset($tempstruc['/']);
 -        $leftover_dirs = array_keys($tempstruc);
 -        $splitdirs = array();
 -        foreach($leftover_dirs as $dir)
 -        {
 -            $splitdirs[] = explode('/',$dir);
 -        }
 -        $leftover_dirs = array();
 -
 -        foreach($splitdirs as $dir)
 -        {
 -            $save = join($dir,'/');
 -            $struc['/'] = setup_dirs($struc['/'], $dir, $tempstruc[$save]);
 -            unset($struc[$save]);
 -        }
 -        @uksort($struc['/'],'Ioinc_mystrucsort');
 -        return $struc;
 -    }
 -    
 -    /**
 -     * Reads a file and returns it as a string
 -     * Does basic error checking
 -     *
 -     * file extensions are set in {@link phpdoc.inc}
 -     *
 -     * @global array PHP File extensions, used to validate that $path is a PHP File
 -     * @global array PHP File extensions in a CVS repository, used to validate that $path is a PHP File
 -     * @param    string    $path
 -     */
 -    function readPhpFile($path, $quietMode = false)
 -    {
 -        global $_phpDocumentor_cvsphpfile_exts, $_phpDocumentor_phpfile_exts;
 -        // tiberiusblue addition
 -        $cvsExt = $_phpDocumentor_cvsphpfile_exts; 
 -        $ext = $_phpDocumentor_phpfile_exts;
 -        if (file_exists($path))
 -        {
 -            if (is_file($path))
 -            {
 -                // check extension
 -                $tmp = explode(".",$path);
 -                // tiberiusblue addition
 -                $tmp2 = $tmp;
 -                if (in_array(array_pop($tmp),$ext))
 -                {
 -                    phpDocumentor_out(" -- Parsing file\n");
 -                    flush();
 -                    $fp = fopen($path,"r");
 -                    $ret = fread($fp,filesize($path));
 -                    fclose($fp);
 -                    return $ret;
 -                } elseif (in_array(array_pop($tmp2),$cvsExt)) 
 -                { 
 -                    phpDocumentor_out(" CVS file [EXPERIMENTAL]\n"); 
 -                    flush();
 -                    $fp = fopen($path,"r"); 
 -                    $ret = fread($fp,filesize($path)); 
 -                    fclose($fp); 
 -                    $ret = strstr($ret,"<?");
 -                    $ret = substr($ret,0,strpos($ret,"@\n"));
 -                    $ret = str_replace("@@","@",$ret); 
 -                    return $ret; 
 -                } else
 -                {
 -                    phpDocumentor_out(" -- File not parsed, not a php file\n");
 -                    flush();
 -                }
 -            } else {
 -                phpDocumentor_out(" -- Unable to read file, not a file\n");
 -                flush();
 -            }
 -        } else {
 -            phpDocumentor_out(" -- Unable to read file, file does not exist\n");
 -            flush();
 -           }
 -    }
 -
 -    /**
 -     * Tell whether to ignore a file or a directory
 -     * allows * and ? wildcards
 -     *
 -     * @author Greg Beaver <cellog@users.sourceforge.net>
 -     * @param    string  $file    just the file name of the file or directory,
 -     *                          in the case of directories this is the last dir
 -     * @param    string  $path    the full path
 -     * @param    array   $ignore
 -     * @return   bool    true if $path should be ignored, false if it should not
 -     */
 -    function checkIgnore($file,$path,$ignore,$ignore_no_ext = true)
 -    {
 -        global $_phpDocumentor_RIC_files;
 -        $path = realpath($path);
 -        if (!count($ignore)) return false;
 -        if ($ignore_no_ext && 
 -            !in_array(strtoupper($file), $_phpDocumentor_RIC_files))
 -        {
 -            if (!is_numeric(strpos($file,'.'))) return true;
 -        }
 -        if (!isset($this->ignore) || !$this->ignore)
 -        {
 -            $this->_setupIgnore($ignore);
 -            if (!$this->ignore)
 -            {
 -                return false;
 -            }
 -        }
 -        if (is_array($this->ignore))
 -        {
 -            foreach($this->ignore as $match)
 -            {
 -                // match is an array if the ignore parameter was a /path/to/pattern
 -                if (is_array($match))
 -                {
 -                    // check to see if the path matches with a path delimiter appended
 -                    preg_match('/^' . strtoupper($match[0]).'$/', strtoupper($path) . PATH_DELIMITER,$find);
 -                    if (!count($find))
 -                    {
 -                        // check to see if it matches without an appended path delimiter
 -                        preg_match('/^' . strtoupper($match[0]).'$/', strtoupper($path), $find);
 -                    }
 -                    if (count($find))
 -                    {
 -                        // check to see if the file matches the file portion of the regex string
 -                        preg_match('/^' . strtoupper($match[1]).'$/', strtoupper($file), $find);
 -                        if (count($find))
 -                        {
 -                            return true;
 -                        }
 -                    }
 -                    // check to see if the full path matches the regex
 -                    preg_match('/^' . strtoupper($match[0]).'$/',
 -                               strtoupper($path . DIRECTORY_SEPARATOR . $file), $find);
 -                    if (count($find))
 -                    {
 -                        return true;
 -                    }
 -                } else
 -                {
 -                    // ignore parameter was just a pattern with no path delimiters
 -                    // check it against the path
 -                    preg_match('/^' . strtoupper($match).'$/', strtoupper($path), $find);
 -                    if (count($find))
 -                    {
 -                        return true;
 -                    }
 -                    // check it against the file only
 -                    preg_match('/^' . strtoupper($match).'$/', strtoupper($file), $find);
 -                    if (count($find))
 -                    {
 -                        return true;
 -                    }
 -                }
 -            }
 -        }
 -        return false;
 -    }
 -    
 -    /**
 -     * Construct the {@link $ignore} array
 -     * @author Greg Beaver <cellog@users.sourceforge.net>
 -     * @param array strings of files/paths/wildcards to ignore
 -     * @access protected
 -     */
 -    function _setupIgnore($ignore)
 -    {
 -        $ig = array();
 -        if (is_array($ignore))
 -        {
 -            for($i=0; $i<count($ignore);$i++)
 -            {
 -                $ignore[$i] = strtr($ignore[$i], "\\", "/");
 -                $ignore[$i] = str_replace('//','/',$ignore[$i]);
 -
 -                if (!empty($ignore[$i]))
 -                {
 -                    if (!is_numeric(strpos($ignore[$i],PATH_DELIMITER)))
 -                    {
 -                        $ig[] = $this->getRegExpableSearchString($ignore[$i]);
 -                    } else
 -                    {
 -                        if (basename($ignore[$i]) . PATH_DELIMITER == $ignore[$i])
 -                        $ig[] = $this->getRegExpableSearchString($ignore[$i]);
 -                        else
 -                        $ig[] = array($this->getRegExpableSearchString($ignore[$i]),$this->getRegExpableSearchString(basename($ignore[$i])));
 -                    }
 -                }
 -            }
 -            if (count($ig)) $this->ignore = $ig;
 -        } else $this->ignore = false;
 -    }
 -    
 -    /**
 -     * Converts $s into a string that can be used with preg_match
 -     * @param string $s string with wildcards ? and *
 -     * @author Greg Beaver <cellog@users.sourceforge.net>
 -     * @return string converts * to .*, ? to ., etc.
 -     */
 -    function getRegExpableSearchString($s)
 -    {
 -        $y = '\/';
 -        if (DIRECTORY_SEPARATOR == '\\')
 -        {
 -            $y = '\\\\';
 -        }
 -        $s = str_replace('/', DIRECTORY_SEPARATOR, $s);
 -        $x = strtr($s, array('?' => '.','*' => '.*','.' => '\\.','\\' => '\\\\','/' => '\\/',
 -                                '[' => '\\[',']' => '\\]','-' => '\\-'));
 -        if (strpos($s, DIRECTORY_SEPARATOR) !== false &&
 -            strrpos($s, DIRECTORY_SEPARATOR) === strlen($s) - 1)
 -        {
 -            $x = "(?:.*$y$x?.*|$x.*)";
 -        }
 -        return $x;
 -    }
 -    
 -    /**
 -     * Removes files from the $dir array that do not match the search string in
 -     * $match
 -     * @param array $dir array of filenames (full path)
 -     * @param string $match search string with wildcards
 -     * @author Greg Beaver <cellog@users.sourceforge.net>
 -     * @return string|array listing of every file in a directory that matches
 -     *                      the search string
 -     */
 -    function removeNonMatches($dir, $match)
 -    {
 -        $match = $this->getRegExpableSearchString($match);
 -        $nodir = false;
 -        if (!is_array($dir))
 -        {
 -            $dir = array($dir);
 -            $nodir = true;
 -        }
 -        foreach($dir as $i => $file)
 -        {
 -            preg_match('/^'.$match.'$/',basename($file),$find);
 -            if (!count($find)) unset($dir[$i]);
 -        }
 -        if ($nodir) return $dir[0];
 -        return $dir;
 -    }
 -    
 -    /**
 -     * Take a filename with wildcards and return all files that match the
 -     * wildcards
 -     * @param string $file a full path from the -f command-line parameter, with
 -     * potential * and ? wildcards.
 -     * @return mixed if $file contains wildcards, returns an array of matching
 -     *               files, otherwise returns false
 -     * @author Greg Beaver <cellog@users.sourceforge.net>
 -     */
 -    function getAllFiles($file)
 -    {
 -        $path = realpath(dirname($file));
 -        $file = basename($file);
 -        // any wildcards?
 -        if (is_numeric(strpos($file,'?')) || is_numeric(strpos($file,'*')))
 -        {
 -            $files = $this->dirList($path);
 -            $a = $this->removeNonMatches($files,$file);
 -            return $a;
 -        }
 -        return false;
 -    }
 -}
 -
 -/**#@+
 - * Sorting functions for the file list
 - * @param string
 - * @param string
 - */
 -function Ioinc_sortfiles($a, $b)
 -{
 -    return strnatcasecmp($a['file'],$b['file']);
 -}
 -
 -function Ioinc_mystrucsort($a, $b)
 -{
 -    if (is_numeric($a) && is_string($b)) return 1;
 -    if (is_numeric($b) && is_string($a)) return -1;
 -    if (is_numeric($a) && is_numeric($b))
 -    {
 -        if ($a > $b) return 1;
 -        if ($a < $b) return -1;
 -        if ($a == $b) return 0;
 -    }
 -    return strnatcasecmp($a,$b);
 -}
 -/**#@-*/
 -
 -/**
 - * Recursively add all the subdirectories of $contents to $dir without erasing anything in
 - * $dir
 - * @param array
 - * @param array
 - * @return array processed $dir
 - */
 -function set_dir($dir,$contents)
 -{
 -    while(list($one,$two) = each($contents))
 -    {
 -        if (isset($dir[$one]))
 -        {
 -            $dir[$one] = set_dir($dir[$one],$contents[$one]);
 -        } else $dir[$one] = $two;
 -    }
 -    return $dir;
 -}
 -
 -/**
 - * Recursively move contents of $struc into associative array
 - *
 - * The contents of $struc have many indexes like 'dir/subdir/subdir2'.
 - * This function converts them to
 - * array('dir' => array('subdir' => array('subdir2')))
 - * @param array struc is array('dir' => array of files in dir,'dir/subdir' => array of files in dir/subdir,...)
 - * @param array array form of 'dir/subdir/subdir2' array('dir','subdir','subdir2')
 - * @return array same as struc but with array('dir' => array(file1,file2,'subdir' => array(file1,...)))
 - */
 -function setup_dirs($struc,$dir,$contents)
 -{
 -    if (!count($dir))
 -    {
 -        foreach($contents as $dir => $files)
 -        {
 -            if (is_string($dir))
 -            {
 -                if (strpos($dir,'/'))
 -                {
 -                    $test = true;
 -                    $a = $contents[$dir];
 -                    unset($contents[$dir]);
 -                    $b = explode('/',$dir);
 -                    $c = array_shift($b);
 -                    if (isset($contents[$c]))
 -                    {
 -                        $contents[$c] = set_dir($contents[$c],setup_dirs(array(),$b,$a));
 -                    } else $contents[$c] = setup_dirs(array(),$b,$a);
 -                }
 -            }
 -        }
 -        return $contents;
 -    }
 -    $me = array_shift($dir);
 -    if (!isset($struc[$me])) $struc[$me] = array();
 -    $struc[$me] = setup_dirs($struc[$me],$dir,$contents);
 -    return $struc;
 -}
 -
 -if (!function_exists('get_include_path')) {
 -function get_include_path()
 -{
 -    return ini_get('include_path');
 -}
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/LinkClasses.inc b/buildscripts/PhpDocumentor/phpDocumentor/LinkClasses.inc deleted file mode 100644 index d122f0d4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/LinkClasses.inc +++ /dev/null @@ -1,206 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * Linking to element documentation is performed by the classes in this file.
 - *
 - * abstractLink descendants contain enough information to differentiate every
 - * documentable element, and so can be converted to a link string by
 - * {@link Converter::returnSee()}
 - * @package phpDocumentor
 - * @subpackage Links
 - */
 -
 -/**
 - * linking classes parent
 - * @package phpDocumentor
 - * @subpackage Links
 - */
 -class abstractLink
 -{
 -    /**#@+ @var string */
 -    var $path;
 -    /**
 -     * phpdoc alias _phpdoc_inc for phpdoc.inc
 -     */
 -    var $fileAlias = '';
 -    /**
 -     * element type linked to.
 -     * can only be a documentable element
 -     */
 -    var $type = '';
 -    var $name = '';
 -    var $category = '';
 -    var $package = '';
 -    var $subpackage = '';
 -    /**#@-*/
 -
 -    /**
 -     * @param string full path to file containing element
 -     * @param string page name, as configured by {@link Parser::parse}
 -     * @param string element name
 -     * @param string package element is in
 -     * @param string subpackage element is in
 -     * @param string optional category that documentation is in
 -     */
 -    function addLink($path, $fileAlias, $name, $package, $subpackage, $category = false)
 -    {
 -        $this->path = $path;
 -        $this->fileAlias = $fileAlias;
 -        $this->name = $name;
 -        $this->category = $category;
 -        $this->package = $package;
 -        $this->subpackage = $subpackage;
 -    }
 -}
 -
 -/**
 - * procedural page link
 - * @package phpDocumentor
 - * @subpackage Links
 - */
 -class pageLink extends abstractLink
 -{
 -    /** @var string */
 -    var $type = 'page';
 -}
 -
 -/**
 - * function link
 - * @package phpDocumentor
 - * @subpackage Links
 - */
 -class functionLink extends abstractLink
 -{
 -    /** @var string */
 -    var $type = 'function';
 -}
 -
 -/**
 - * define link
 - * @package phpDocumentor
 - * @subpackage Links
 - */
 -class defineLink extends abstractLink
 -{
 -    /** @var string */
 -    var $type = 'define';
 -}
 -
 -/**
 - * global variable link
 - * @package phpDocumentor
 - * @subpackage Links
 - */
 -class globalLink extends abstractLink
 -{
 -    /** @var string */
 -    var $type = 'global';
 -}
 -
 -/**
 - * class link
 - * @package phpDocumentor
 - * @subpackage Links
 - */
 -class classLink extends abstractLink
 -{
 -    /** @var string */
 -    var $type = 'class';
 -}
 -
 -/**
 - * method link
 - * @package phpDocumentor
 - * @subpackage Links
 - */
 -class methodLink extends abstractLink
 -{
 -    /** @var string */
 -    var $type = 'method';
 -    /** @var string */
 -    var $class = '';
 -    
 -    /**
 -     * @param string class name
 -     * @param string full path to file containing element
 -     * @param string page name, as configured by {@link Parser::parse}
 -     * @param string element name
 -     * @param string package element is in
 -     * @param string subpackage element is in
 -     */
 -    function addLink($class, $path ,$fileAlias,$name,$package,$subpackage, $category = false)
 -    {
 -        $this->class = $class;
 -        abstractLink::addLink($path, $fileAlias,$name,$package,$subpackage, $category);
 -    }
 -}
 -
 -/**
 - * class variable link
 - * @package phpDocumentor
 - * @subpackage Links
 - */
 -class varLink extends methodLink
 -{
 -    /** @var string */
 -    var $type = 'var';
 -}
 -
 -/**
 - * class constant link
 - * @package phpDocumentor
 - * @subpackage Links
 - */
 -class constLink extends methodLink
 -{
 -    /** @var string */
 -    var $type = 'const';
 -}
 -
 -/**
 - * tutorial link
 - * @package phpDocumentor
 - * @subpackage Links
 - */
 -class tutorialLink extends abstractLink
 -{
 -    /**#@+ @var string */
 -    var $type = 'tutorial';
 -    var $section = '';
 -    var $title = false;
 -    /**#@-*/
 -    
 -    /**
 -     * @param string section/subsection name
 -     * @param string full path to file containing element
 -     * @param string page name, as configured by {@link Parser::parse}
 -     * @param string element name
 -     * @param string package element is in
 -     * @param string subpackage element is in
 -     * @param string title of tutorial
 -     */
 -    function addLink($section,$path,$name,$package,$subpackage,$title = false, $category = false)
 -    {
 -        $this->section = $section;
 -        $this->title = $title;
 -        parent::addLink($path,'',$name,$package,$subpackage, $category);
 -    }
 -}
 -?>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/PackagePageElements.inc b/buildscripts/PhpDocumentor/phpDocumentor/PackagePageElements.inc deleted file mode 100644 index 1b71b6b7..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/PackagePageElements.inc +++ /dev/null @@ -1,387 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * Data structures used in parsing XML DocBook-based tutorials
 - *
 - * Conversion of DocBook-based tutorials is performed using special
 - * {@link Converter} class methods.  By default, these methods simply retrieve
 - * simple rules for replacement of tags and slight re-ordering from the
 - * options.ini file present for every template.
 - *
 - * In future versions, there may be utilization of xslt or other more powerful
 - * protocols.  However, for most situations, the power of these classes will
 - * be more than sufficient to handle very complex documentation.
 - *
 - * Note that an entire tutorial is contained in a single parserXMLDocBookTag,
 - * matching the document model for DocBook.  The top-level tag, <refentry>,
 - * contains every other tag and all text.
 - * @tutorial tutorials.pkg
 - * @package phpDocumentor
 - * @subpackage Tutorial
 - */
 -/**
 - * Represents <![CDATA[ ]]> sections.
 - *
 - * These sections are interpreted as plain text
 - * @package phpDocumentor
 - * @subpackage Tutorial
 - */
 -class parserCData extends parserStringWithInlineTags
 -{
 -    /**
 -     * @uses Converter::getCData() convert contents to text
 -     * @param Converter
 -     */
 -    function Convert(&$c, $postprocess = true)
 -    {
 -        $val = $this->value;
 -        if ($postprocess)
 -        foreach($this->value as $key => $value)
 -        {
 -            if (is_string($value)) $this->value[$key] = $c->getCData($value);
 -        }
 -        $this->cache = false;
 -        $x = parent::Convert($c, false);
 -        $this->value = $val;
 -        return $x;
 -    }
 -}
 -/**
 - * a standard XML DocBook Tag
 - *
 - * This class is designed to represent all DocBook tags.  It is intelligent
 - * enough to understand the <title> tag, and also the <refname> tag for
 - * as title for <refentry>
 - * @since 1.2
 - * @package phpDocumentor
 - * @subpackage Tutorial
 - */
 -class parserXMLDocBookTag extends parserStringWithInlineTags
 -{
 -    /**
 -     * Attributes from the XML tag
 -     *
 -     * Format: array(attrname => attrvalue, attrname => attrvalue,...)
 -     * @var array
 -     */
 -    var $attributes = array();
 -    /**
 -     * Name of the tag
 -     * @var string
 -     */
 -    var $name;
 -    /**#@+ @access private */
 -    /** @var parserCData */
 -    var $_cdata;
 -    /** @var parserTag */
 -    var $_title;
 -    /** @var parserIdLineTag */
 -    var $_id;
 -    /**
 -     * Set to <refpurpose> in <refsynopsisdiv>
 -     * @var parserTag
 -     */
 -    var $_description;
 -    /**#@-*/
 -    /**
 -     * @param string tag name
 -     */
 -    function parserXMLDocBookTag($name)
 -    {
 -        $this->name = $name;
 -    }
 -    
 -    /**
 -     * @param Converter
 -     * @param boolean
 -     * @uses Converter::TranslateTag() Calls this to enclose the contents of the
 -     *       DocBook tag based on the values in template options.ini file
 -     */
 -    function Convert(&$c, $postprocess = true)
 -    {
 -        $value = parent::Convert($c, $postprocess);
 -        $simvalue = parent::Convert($c, false);
 -        foreach($this->attributes as $a => $v)
 -        {
 -            $this->attributes[$a] = (is_string($v) ? $v : $v->Convert($c, $postprocess));
 -        }
 -        if (isset($this->_title))
 -        {
 -            list($this->attributes,$value) = $c->ConvertTitle($this->name, $this->attributes, $this->_title->Convert($c, $postprocess), $value);
 -        }
 -        return $c->TranslateTag($this->name,$this->attributes,$value,$simvalue);
 -    }
 -    
 -    /**
 -     * Begin a new CData section
 -     * @see addCData()
 -     */
 -    function startCData()
 -    {
 -        $this->_cdata = new parserCData;
 -    }
 -    
 -    /**
 -     * Adds {@link $_cdata} to {@link $value}
 -     */
 -    function endCData()
 -    {
 -        $this->value[] = $this->_cdata;
 -        unset($this->_cdata);
 -    }
 -    
 -    /**
 -     * Retrieve either the table of contents index, or the location that
 -     * the TOC will go
 -     * @see setTOC()
 -     * @param false|integer either an index of the {@}toc} tag in $this->value
 -     *                      or false, if the next index value of $this->value
 -     *                      is needed
 -     */
 -    function getTOC($state = false)
 -    {
 -        if ($state !== false) return $this->value[$state];
 -        return count($this->value);
 -    }
 -    
 -    /**
 -     * @param integer index of the TOC in $this->value
 -     * @param parserTocInlineTag
 -     */
 -    function setTOC($state, $val)
 -    {
 -        $this->value[$state] = $val;
 -    }
 -    
 -    /**
 -     * add a word to CData
 -     * @param string
 -     */
 -    function addCData($word)
 -    {
 -        $this->_cdata->add($word);
 -    }
 -    
 -    /**
 -     * Add an xml tag attribute name="value" pair
 -     *
 -     * if the attribute is id, value must be a {@link parserIdInlineTag}
 -     * @param string attribute name
 -     * @param string|parserIdInlineTag value of attribute
 -     */
 -    function addAttribute($name,$value)
 -    {
 -        $this->attributes[$name] = $value;
 -        if ($name == 'id')
 -        {
 -            // fix 1153593
 -            if (is_string($value))
 -            {
 -                addWarning(PDERROR_ID_MUST_BE_INLINE,$this->name,$value,$this->name,$value);
 -            } else {
 -                $this->setId($value);
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * Set the title of a DocBook tag section.
 -     *
 -     * For most DocBook tags, the title is represented with a <title></title>
 -     * tag pair.  The <refentry> top-level tag is a little different.  Instead
 -     * of using <title></title>, phpDocumentor uses the contents of the
 -     * <refname> tag in the <refnamediv> tag
 -     * @param parserXMLDocBookTag the title element
 -     */
 -    function setTitle($title)
 -    {
 -        $this->_title = $title;
 -    }
 -    
 -    /**
 -     * If the id attribute is present, this method will set its id
 -     * @param parserIdInlineTag
 -     */
 -    function setId($id)
 -    {
 -        $this->_id = $id;
 -    }
 -    
 -    /**
 -     * Return converter-specific formatting of ID.
 -     *
 -     * Passes $c to {@link parserIdInlineTag::Convert()}
 -     * @param Converter
 -     * @return string
 -     */
 -    function getId(&$c)
 -    {
 -        if ($this->_id) return trim($this->_id->Convert($c));
 -    }
 -    
 -    /**
 -     * Determine whether the docbook element has a title
 -     * @return boolean
 -     */
 -    function hasTitle()
 -    {
 -        return isset($this->_title);
 -    }
 -    
 -    /**
 -     * Retrieve Converter-specific formatting of the title of this element
 -     * @return string
 -     * @param Converter
 -     */
 -    function getTitle(&$c)
 -    {
 -        if ($this->name == 'refentry')
 -        {
 -            foreach($this->value as $tag)
 -            {
 -                if (is_object($tag) && $tag->name == 'refnamediv')
 -                {
 -                    return $tag->getTitle($c);
 -                }
 -            }
 -        }
 -        if ($this->name == 'refnamediv')
 -        {
 -            foreach($this->value as $tag)
 -            {
 -                if (is_object($tag) && $tag->name == 'refname')
 -                {
 -                    $t = new parserStringWithInlineTags;
 -                    foreach($tag->value as $val) $t->add($val);
 -                    $this->_title = $t;
 -                }
 -                if (is_object($tag) && $tag->name == 'refpurpose')
 -                {
 -                    $t = new parserStringWithInlineTags;
 -                    foreach($tag->value as $val) $t->add($val);
 -                    $this->_description = $t;
 -                }
 -            }
 -        }
 -        if (isset($this->_title))
 -        return $this->_title->Convert($c);
 -        if (is_object($this->value[0])) return $this->value[0]->getTitle($c);
 -        if (isset($this->value[1]))
 -        if (is_object($this->value[1])) return $this->value[1]->getTitle($c);
 -        return '';
 -    }
 -    
 -    /**
 -     * Retrieve the contents of a subsection
 -     *
 -     * This method uses the $_id members of nested docbook tags to retrieve
 -     * the section defined by $subsection
 -     * @param Converter
 -     * @param string converter-specific subsection
 -     */
 -    function getSubsection(&$c,$subsection)
 -    {
 -        if (!is_object($this->_id)) {
 -            return false;
 -        }
 -        $search = phpDocumentor_clone($this->_id);
 -        if (is_string($this->_id)) return false;
 -        if (phpDocumentor_get_class($search) != 'parseridinlinetag') return false;
 -        $search->id = $subsection;
 -        foreach($this->value as $el)
 -        {
 -            if (phpDocumentor_get_class($el) == 'parserxmldocbooktag')
 -            {
 -                if ($el->getId($c) == $search->Convert($c))
 -                {
 -                    return $el;
 -                } elseif ($a = $el->getSubsection($c,$subsection))
 -                {
 -                    return $a;
 -                }
 -            }
 -        }
 -        return false;
 -    }
 -    
 -    /**
 -     * Add contents to this tag.
 -     *
 -     * There are four kinds of data in a DocBook tutorial:
 -     *  1. <b>tags</b> - normal tags like <refentry>
 -     *  2. <b>entities</b> - normal entities like ”
 -     *  3. <b><![CDATA[</b> - character data that should not be interpreted,
 -     *     like <programlisting> contents
 -     *  4. <b>text</b> - normal non-markup text
 -     *
 -     * All four kinds of data are added here
 -     * @param parserEntity|parserCData|parserXMLDocBookTag|string nested tag,
 -     *        entity, or text
 -     */
 -    function add($el)
 -    {
 -        if (is_string($el)) return parent::add($el);
 -        if (phpDocumentor_get_class($el) == 'parserxmldocbooktag')
 -        {
 -            if ($el->name == 'title')
 -            {
 -                $this->setTitle($el);
 -            } else return parent::add($el);
 -        } else return parent::add($el);
 -    }
 -}
 -
 -/**
 - * a standard entity like ”
 - *
 - * This class is designed to represent all DocBook entities.
 - * @since 1.2
 - * @package phpDocumentor
 - * @subpackage Tutorial
 - */
 -class parserEntity
 -{
 -    /**
 -     * @param string entity name
 -     */
 -    function parserEntity($name)
 -    {
 -        $this->value = $name;
 -    }
 -    
 -    /**
 -     * @uses Converter::TranslateEntity() convert contents to text
 -     * @param Converter
 -     * @return string
 -     */
 -    function Convert(&$c, $postprocess = true)
 -    {
 -        if ($postprocess)
 -        return $c->TranslateEntity($this->value);
 -        else
 -        {
 -            $trans_tbl = get_html_translation_table (HTML_ENTITIES);
 -            $trans_tbl = array_flip ($trans_tbl);
 -            $ret = strtr ('&'.$this->value.';', $trans_tbl);
 -            return $ret;
 -        }
 -    }
 -}
 -?>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Parser.inc b/buildscripts/PhpDocumentor/phpDocumentor/Parser.inc deleted file mode 100644 index 55e67685..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Parser.inc +++ /dev/null @@ -1,3185 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * @package     phpDocumentor
 - * @subpackage Parsers
 - */
 -/** used when a backslash is encountered in parsing a string or other escapable entity */ 
 -define("PARSER_EVENT_ESCAPE"        ,    900);
 -/** used when a backslash is encountered in parsing a string or other escapable entity */ 
 -define("STATE_ESCAPE"            ,    1000);
 -
 -/** Class published to IntermediateParser with this event */
 -define("PHPDOCUMENTOR_EVENT_CLASS"        ,    800);
 -/** DocBlock published to IntermediateParser with this event */
 -define("PHPDOCUMENTOR_EVENT_DOCBLOCK"        ,    801);
 -/** Function published to IntermediateParser with this event */
 -define("PHPDOCUMENTOR_EVENT_FUNCTION"        ,    802);
 -/** Class Variable published to IntermediateParser with this event */
 -define("PHPDOCUMENTOR_EVENT_VAR"        ,    803);
 -/** New File (page) published to IntermediateParser with this event */
 -define("PHPDOCUMENTOR_EVENT_PAGE"        ,    804);
 -/** Constant (define) published to IntermediateParser with this event */
 -define("PHPDOCUMENTOR_EVENT_DEFINE"        ,    805);
 -/** Class Constant published to IntermediateParser with this event */
 -define("PHPDOCUMENTOR_EVENT_CONST"        ,    806);
 -/** @deprecated */
 -define("PHPDOCUMENTOR_EVENT_MESSAGE"        ,    807);
 -/** use to inform IntermediateParser of a new element being parsed */
 -define("PHPDOCUMENTOR_EVENT_NEWSTATE"        ,    808);
 -/**
 - * used to inform phpDocumentor_IntermediateParser that the current file has been completely parsed.
 - * Render then flushes all buffers for functions/classes/defines/includes on the current page
 - * @see phpDocumentor_IntermediateParser::HandleEvent()
 - */
 -define("PHPDOCUMENTOR_EVENT_END_PAGE"        ,    808);
 -/** Package-level page published to IntermediateParser with this event */
 -define("PHPDOCUMENTOR_EVENT_PACKAGEPAGE"        ,    809);
 -/** Include (include/require/include_once/include_once) published to IntermediateParser with this event */
 -define("PHPDOCUMENTOR_EVENT_INCLUDE"        ,    810);
 -/** Tutorial published to IntermediateParser with this event */
 -define("PHPDOCUMENTOR_EVENT_TUTORIAL"        ,    811);
 -/** Contents of README/INSTALL/CHANGELOG files published to IntermediateParser with this event */
 -define("PHPDOCUMENTOR_EVENT_README_INSTALL_CHANGELOG"        ,    812);
 -
 -/** use to inform ErrorTracker of a new file being parsed */
 -define("PHPDOCUMENTOR_EVENT_NEWFILE"    ,    811);
 -/** use to inform ErrorTracker of the next line number being parsed */
 -define("PHPDOCUMENTOR_EVENT_NEWLINENUM"    ,    812);
 -/** used when a global variable definition is encountered in the source */
 -define("PHPDOCUMENTOR_EVENT_GLOBAL"    ,    813);
 -/** used when a docblock template is encountered in the source */
 -define("PHPDOCUMENTOR_EVENT_DOCBLOCK_TEMPLATE"    ,    814);
 -/** used when a docblock template is encountered in the source */
 -define("PHPDOCUMENTOR_EVENT_END_DOCBLOCK_TEMPLATE"    ,    815);
 -/** used when double quotation mark (") encountered in parsing */
 -define("PARSER_EVENT_QUOTE"        ,    101);
 -/** currently parsing a quote */
 -define("STATE_QUOTE"            ,    201);
 -
 -/** { encountered in parsing a function or php code */
 -define("PARSER_EVENT_LOGICBLOCK"    ,    102);
 -/** currently parsing a { } block */
 -define("STATE_LOGICBLOCK"        ,    202);
 -
 -/** used for the beginning of parsing, before first < ? php encountered */
 -define("PARSER_EVENT_NOEVENTS"        ,    103);
 -/** out of < ? php tag */
 -define("STATE_NOEVENTS"            ,    203);
 -
 -/** used when long comment /x x/ where x is an asterisk is encountered in parsing */
 -define("PARSER_EVENT_COMMENTBLOCK"    ,    104);
 -/** currently parsing a long comment /x x/ where x is an asterisk */
 -define("STATE_COMMENTBLOCK"        ,    204);
 -
 -/** used when short comment // is encountered in parsing */
 -define("PARSER_EVENT_COMMENT"        ,    105);
 -/** currently parsing a short comment // */
 -define("STATE_COMMENT"            ,    205);
 -
 -/** used when php code processor instruction (< ? php) is encountered in parsing */
 -define("PARSER_EVENT_PHPCODE"        ,    106);
 -/** currently parsing php code */
 -define("STATE_PHPCODE"            ,    206);
 -
 -/** used when a define statement is encountered in parsing */
 -define("PARSER_EVENT_DEFINE"        ,    107);
 -/** currently parsing a define statement */
 -define("STATE_DEFINE"            ,    207);
 -
 -/** used when a define statement opening parenthesis is encountered in parsing */
 -define("PARSER_EVENT_DEFINE_PARAMS"    ,    108);
 -/** currently parsing the stuff in ( ) of a define statement */
 -define("STATE_DEFINE_PARAMS"        ,    208);
 -
 -/** used when a function statement opening parenthesis is encountered in parsing */
 -define("PARSER_EVENT_FUNCTION_PARAMS"    ,    109);
 -/** currently parsing the stuff in ( ) of a function definition */
 -define("STATE_FUNCTION_PARAMS"        ,    209);
 -
 -/** used when a single quote (') is encountered in parsing */
 -define("PARSER_EVENT_SINGLEQUOTE"    ,    110);
 -/** currently parsing a string enclosed in single quotes (') */
 -define("STATE_SINGLEQUOTE"        ,    210);
 -
 -/** used when a class definition is encountered in parsing */
 -define("PARSER_EVENT_CLASS"        ,    111);
 -/** currently parsing a class definition */
 -define("STATE_CLASS"            ,    211);
 -/** used to tell Render that a class has been completely parsed, and to flush buffers */
 -define("STATE_END_CLASS"        ,    311);
 -
 -/** used when a DocBlock is encountered in parsing */
 -define("PARSER_EVENT_DOCBLOCK"        ,    112);
 -/** currently parsing a DocBlock */
 -define("STATE_DOCBLOCK"            ,    212);
 -
 -/** used when a @tag is encountered in DocBlock parsing */
 -define("PARSER_EVENT_DOCKEYWORD"    ,    113);
 -/** currently parsing a @tag in a DocBlock */
 -define("STATE_DOCKEYWORD"        ,    213);
 -
 -/** used when a <email@address> is encountered in parsing an @author tag*/
 -define("PARSER_EVENT_DOCKEYWORD_EMAIL"    ,    114);
 -/** currently parsing an email in brackets in an @author tag of a DocBlock */
 -define("STATE_DOCKEYWORD_EMAIL"        ,    214);
 -
 -/** used when an array definition is encountered in parsing */
 -define("PARSER_EVENT_ARRAY"        ,    115);
 -/** currently parsing an array */
 -define("STATE_ARRAY"            ,    215);
 -
 -/** used when a var statement is encountered in parsing a class definition */
 -define("PARSER_EVENT_VAR"        ,    116);
 -/** currently parsing a Class variable */
 -define("STATE_VAR"            ,    216);
 -
 -/** used when a function definition is encountered in parsing */
 -define("PARSER_EVENT_FUNCTION"        ,    117);
 -/** currently parsing a Function or Method */
 -define("STATE_FUNCTION"            ,    217);
 -
 -/** used when a ? > (with no space) is encountered in parsing */
 -define("PARSER_EVENT_OUTPHP"        ,    118);
 -/** currently out of php code */
 -define("STATE_OUTPHP"            ,    218);
 -
 -/** used when an inline {@tag} is encountered in parsing a DocBlock */
 -define("PARSER_EVENT_INLINE_DOCKEYWORD"    ,    119);
 -/** currently parsing an inline tag like { @link} in a DocBlock */
 -define("STATE_INLINE_DOCKEYWORD"        ,    219);
 -
 -/** used when a define statement's opening parenthesis is encountered in parsing */
 -define("PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS"    ,    120);
 -/** currently parsing an inner parenthetical statement of a define( ) */
 -define("STATE_DEFINE_PARAMS_PARENTHESIS"        ,    220);
 -
 -define("PARSER_EVENT_END_STATEMENT",    121);
 -
 -/** used when a <<< is encountered in parsing */
 -define("PARSER_EVENT_EOFQUOTE"    ,    122);
 -/** currently parsing a string defined using Perl <<< */
 -define("STATE_EOFQUOTE"        ,    222);
 -
 -/** used when an include/require/include_once/include_once statement is encountered in parsing */
 -define("PARSER_EVENT_INCLUDE"    ,    123);
 -/** currently parsing an include/require/include_once/include_once */
 -define("STATE_INCLUDE"    ,    223);
 -
 -/** used when an opening parenthesis of an include/require/include_once/include_once statement is encountered in parsing */
 -define("PARSER_EVENT_INCLUDE_PARAMS"    ,    124);
 -/** currently parsing the stuff in ( ) of a define statement */
 -define("STATE_INCLUDE_PARAMS"    ,    224);
 -
 -/** used when an inner ( ) is encountered while parsing an include/require/include_once/include_once statement */
 -define("PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS"    ,    125);
 -/** currently parsing an inner parenthetical statement of an include/includeonce/require/requireonce( ) */
 -define("STATE_INCLUDE_PARAMS_PARENTHESIS"    ,    225);
 -
 -/** used when parsing the desc part of a docblock */
 -define("PARSER_EVENT_DESC"    ,    126);
 -/** currently parsing the desc part of a docblock */
 -define("STATE_DESC"    ,    226);
 -
 -/** used when parsing the @tag block of a docblock */
 -define("PARSER_EVENT_TAGS"    ,    127);
 -/** currently parsing the @tag block of a docblock */
 -define("STATE_TAGS"    ,    227);
 -
 -/** used when parsing a global variable declaration */
 -define("PARSER_EVENT_DEFINE_GLOBAL"    ,    128);
 -/** currently parsing a global variable declaration */
 -define("STATE_GLOBAL"    ,    228);
 -
 -/** used when parsing the default value in a global variable declaration */
 -define("PARSER_EVENT_GLOBAL_VALUE"    ,    129);
 -/** currently parsing the default value in a global variable declaration */
 -define("STATE_GLOBAL_VALUE"    ,    229);
 -
 -/** used when parsing a "global $var1, $var2;" declaration in a function */
 -define("PARSER_EVENT_FUNC_GLOBAL"    ,    130);
 -/** currently parsing a "global $var1, $var2;" declaration in a function */
 -define("STATE_FUNC_GLOBAL"    ,    230);
 -
 -/** used when parsing a "static $var1, $var2;" declaration in a function */
 -define("PARSER_EVENT_STATIC_VAR"    ,    131);
 -/** currently parsing a "static $var1, $var2;" declaration in a function */
 -define("STATE_STATIC_VAR"    ,    231);
 -
 -/** used when parsing the value in a "static $var1 = x" declaration in a function */
 -define("PARSER_EVENT_STATIC_VAR_VALUE"    ,    132);
 -/** currently parsing the value in a "static $var1 = x" declaration in a function */
 -define("STATE_STATIC_VAR_VALUE"    ,    232);
 -
 -/** used when encountering a /**#@+ comment marking a new docblock template */
 -define("PARSER_EVENT_DOCBLOCK_TEMPLATE"    ,    133);
 -/** currently parsing the value in a "static $var1 = x" declaration in a function */
 -define("STATE_DOCBLOCK_TEMPLATE"    ,    233);
 -
 -/** used when encountering a /**#@-* / comment (no space) marking the end of using a docblock template */
 -define("PARSER_EVENT_END_DOCBLOCK_TEMPLATE"    ,    134);
 -/** currently parsing the value in a "static $var1 = x" declaration in a function */
 -define("STATE_END_DOCBLOCK_TEMPLATE"    ,    234);
 -
 -/** used by the {@link HighlightParser} only, when a method starts */
 -define("PARSER_EVENT_METHOD"    ,    135);
 -/** currently parsing a method using the {@link HighlightParser} */
 -define("STATE_METHOD"    ,    235);
 -
 -/** used by the {@link HighlightParser} only, when a method body is parsed */
 -define("PARSER_EVENT_METHOD_LOGICBLOCK"    ,    136);
 -/** currently parsing the method body using the {@link HighlightParser} */
 -define("STATE_METHOD_LOGICBLOCK"    ,    236);
 -
 -/** used by the {@link HighlightParser} only, when ->var or ->function() is encountered in a method */
 -define("PARSER_EVENT_CLASS_MEMBER"    ,    137);
 -/** currently parsing a class member using the {@link HighlightParser} */
 -define("STATE_CLASS_MEMBER"    ,    237);
 -
 -/** used by the {@link HighlightParser} only, when {$var} is encountered in a string */
 -define("PARSER_EVENT_QUOTE_VAR"    ,    138);
 -/** currently parsing a {$encapsed_var} using the {@link HighlightParser} */
 -define("STATE_QUOTE_VAR"    ,    238);
 -
 -/** used when parsing an access modifier */
 -define("PARSER_EVENT_ACCESS_MODIFIER"    ,    139);
 -/** currently parsing an access modifier */
 -define("STATE_ACCESS_MODIFIER"    ,    239);
 -
 -/** used when a class implements interfaces */
 -define("PARSER_EVENT_IMPLEMENTS"    ,    140);
 -/** currently parsing an implements clause */
 -define("STATE_IMPLEMENTS"    ,    240);
 -
 -/** used when a class implements interfaces */
 -define("PARSER_EVENT_CLASS_CONSTANT"    ,    141);
 -/** currently parsing a class constant */
 -define("STATE_CLASS_CONSTANT"    ,    241);
 -
 -/** used when a variable value is an array */
 -define("PARSER_EVENT_VAR_ARRAY"    ,    142);
 -/** currently parsing a variable value is an array */
 -define("STATE_VAR_ARRAY"    ,    242);
 -
 -/** used when a comment is found in a variable array value */
 -define("PARSER_EVENT_VAR_ARRAY_COMMENT"    ,    143);
 -/** currently parsing a comment in a variable array value */
 -define("STATE_VAR_ARRAY_COMMENT"    ,    243);
 -
 -if (!defined('T_INTERFACE'))
 -{
 -    define('T_INTERFACE', 'foo');
 -    if (!defined('T_CONST')) {
 -        define('T_CONST', 'foo');
 -    }
 -    define('T_ABSTRACT', 'foo');
 -    define('T_PRIVATE', 'foo');
 -    define('T_PUBLIC', 'foo');
 -    define('T_PROTECTED', 'foo');
 -    define('T_FINAL', 'foo');
 -    define('T_IMPLEMENTS', 'foo');
 -}
 -if (!defined('T_DOC_COMMENT'))
 -{
 -    define('T_DOC_COMMENT', T_ML_COMMENT);
 -}
 -/**
 - * PHP Parser for PHP 4.2.3-
 - *
 - * This parser is slower than the tokenizer-based parser, and is deprecated.
 - * @author    Joshua Eichorn <jeichorn@phpdoc.org>
 - * @author    Gregory Beaver <cellog@users.sourceforge.net>
 - * @version    $Id: Parser.inc,v 1.1 2005/10/17 18:36:56 jeichorn Exp $
 - * @package     phpDocumentor
 - * @subpackage Parsers
 - * @deprecated in favor of {@link phpDocumentorTParser}
 - */
 -class Parser extends Publisher
 -{
 -    /**#@+
 -     * @access private
 -     */
 -    /**
 -     * Word parser
 -     * @see WordParser
 -     */
 -    var $wp;
 -    
 -    /**
 -     * temporary parser variables
 -     */
 -    var $p_vars = array('func' => false, 'function_data' => '', 'quote_data' => '', 'event_stack' => false, 'last_pevent' => 0,
 -                        'two_words_ago' => '', 'temp_word' => '', 'docblock' => false, 'line' => array(), 'linecount' => 0, 'startword' => '',
 -                        'periodline' => 0, 'shortdesc' => '', 'docblock_desc' => '', 'class' => false, 'source_location' => '',
 -                        'define_params_data' => '', 'define' => false, 'define_name' => '', 'define_value' => '', 'var' => false,
 -                        'oldtoken' => false, 'comment_data' => '', 'function_param' => NULL, 'inline_dockeyword_type' => false,
 -                        'inline_dockeyword_data' => false, 'dockeyword_type' => false, 'dockeyword_data' =>false, 'param_var' => false,
 -                        'include_name' => '', 'include_value' => '','include' => false, 'return_type' => '', 'cur_class' => '',
 -                        'function_data' => false, 'varname' => '', 'returntype' => false, 'vartype' => false, 'paramtype' => false,
 -                        'tagname' => '', 'find_global' => '', 'global_type' => '', 'paramname' => false, 'statics' => array(),
 -                        'static_count' => 0, 'static_val' => array(), 'docblock_type' => 'docblock', 'seelement' => false);
 -    
 -    /**
 -     * parser flags, for states that don't warrant a new event (like new line in a docblock)
 -     */
 -    var $p_flags = array('docblocknewline' => false, 'docblockintags' => false, 'useperiod' => false,
 -                        'definename_isset' => false, 'define_parens' => false, 'reset_quote_data' => false,
 -                        'in_desc' => true, 'in_tag' => false, 'newline' => true, 'tempnewline' => false,
 -                        'start_docblock' => false, 'includename_isset' => false, 'return_isset' => false,
 -                        'is_return' => false, 'in_class' => false, 'asterisk' => false, 'var_equals' => false,
 -                        'arrayinvarname' => false, 'valid_newline' => true, 'startline' => false,
 -                        'function_global' => false, 'define_global' => false, 'static_value' => false,'funcparam_val' => false,
 -                        'get_source' => false, 'getting_source' => false);
 -
 -    /**
 -     * lookup table for event handler methods
 -     * @see Parser::parse()
 -     */
 -    var $eventHandlers = array(
 -                                'handleArray' => PARSER_EVENT_ARRAY,
 -                                'handleClass' => PARSER_EVENT_CLASS,
 -                                'handleComment' => PARSER_EVENT_COMMENT,
 -                                'handleDocBlockTemplate' => PARSER_EVENT_DOCBLOCK_TEMPLATE,
 -                                'handleEndDocBlockTemplate' => PARSER_EVENT_END_DOCBLOCK_TEMPLATE,
 -                                'handleEscape' => PARSER_EVENT_ESCAPE,
 -                                'handleLogicBlock' => PARSER_EVENT_LOGICBLOCK,
 -                                'defaultHandler' => PARSER_EVENT_NOEVENTS,
 -//                                'defaultHandler' => PARSER_EVENT_COMMENTBLOCK, (set in constructor below)
 -//                                'defaultHandler' => PARSER_EVENT_OUTPHP,
 -                                'handleDefine' => PARSER_EVENT_DEFINE,
 -                                'handleDefineParams' => PARSER_EVENT_DEFINE_PARAMS,
 -                                'handleDefineParamsParenthesis' => PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS,
 -                                'handleIncludeParamsParenthesis' => PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS,
 -//                                'handleDocBlock' => PARSER_EVENT_DOCBLOCK,
 -                                'BetterhandleDocBlock' => PARSER_EVENT_DOCBLOCK,
 -                                'handleTags' => PARSER_EVENT_TAGS,
 -                                'handleDesc' => PARSER_EVENT_DESC,
 -//                                'handleDockeyword' => PARSER_EVENT_DOCKEYWORD,
 -                                'handleTag' => PARSER_EVENT_DOCKEYWORD,
 -                                'handleDockeywordEmail' => PARSER_EVENT_DOCKEYWORD_EMAIL,
 -                                'handleEOFQuote' => PARSER_EVENT_EOFQUOTE,
 -                                'handleFunction' => PARSER_EVENT_FUNCTION,
 -                                'handleFunctionParams' => PARSER_EVENT_FUNCTION_PARAMS,
 -                                'handleFuncGlobal' => PARSER_EVENT_FUNC_GLOBAL,
 -                                'handleGlobal' => PARSER_EVENT_DEFINE_GLOBAL,
 -                                'handleGlobalValue' => PARSER_EVENT_GLOBAL_VALUE,
 -                                'handleInlineDockeyword' => PARSER_EVENT_INLINE_DOCKEYWORD,
 -                                'handleInclude' => PARSER_EVENT_INCLUDE,
 -                                'handleIncludeParams' => PARSER_EVENT_INCLUDE_PARAMS,
 -                                'handleQuote' => PARSER_EVENT_QUOTE,
 -                                'handlePhpCode' => PARSER_EVENT_PHPCODE,
 -                                'handleSingleQuote' => PARSER_EVENT_SINGLEQUOTE,
 -                                'handleStaticVar' => PARSER_EVENT_STATIC_VAR,
 -                                'handleStaticValue' => PARSER_EVENT_STATIC_VAR_VALUE,
 -                                'handleVar' => PARSER_EVENT_VAR,
 -    );
 -    
 -    /**
 -     * event handlers for @tags
 -     * @tutorial tags.pkg
 -     */
 -    var $tagHandlers = array(
 -                                '*' => 'defaultTagHandler',
 -                                'category' => 'categoryTagHandler',
 -                                'example' => 'exampleTagHandler',
 -                                'filesource' => 'invalidTagHandler',
 -                                'return' => 'returnTagHandler',
 -                                'returns' => 'returnTagHandler',
 -                                'var' => 'varTagHandler',
 -                                'package' => 'packageTagHandler',
 -                                'param' => 'paramTagHandler',
 -                                'parameter' => 'paramTagHandler',
 -                                'global' => 'globalTagHandler',
 -                                'staticvar' => 'staticvarTagHandler',
 -                                'uses' => 'usesTagHandler'
 -                            );
 -
 -    var $laststart = false;
 -
 -    /**
 -     * An array of allowable @tags
 -     */
 -    var $allowableTags;
 -
 -
 -    /**
 -     * An array of allowed inline @tags
 -     */
 -    var $allowableInlineTags;
 -    
 -    /**
 -     * Sets the states up, and creates a new WordParser
 -     */
 -    
 -    /**
 -     * an array of parsing tokens organized by event number.
 -     * A token is defined as the smallest group of characters that separates or
 -     * defines a new parser element.  In English, a space or punctuation are
 -     * tokens that separate words.  in PHP, tokens may be //, or even "
 -     * Format: array(eventnum =>array(token1, token2, token3, ...),...)
 -     * @var array
 -     */
 -    var $tokens;
 -    
 -    /**
 -     * array of events that are raised, organized by the tokens that raise them.
 -     * Format: array(eventnum => array(token => neweventnum, token2 => neweventnum2,...),...)
 -     * @var array
 -     */
 -    var $pushEvent;
 -    
 -    /**
 -     * array of tokens that end an event, organized by event
 -     * Format: array(eventnum => array(token => neweventnum, token2 => neweventnum2,...),...)
 -     * @var array
 -     */
 -    var $popEvent;
 -    /**#@-*/
 -    
 -    /**
 -     * Set up invariant parsing variables
 -     */
 -    function Parser()
 -    {
 -        $this->allowableTags = $GLOBALS['_phpDocumentor_tags_allowed'];
 -        $this->allowableInlineTags = $GLOBALS['_phpDocumentor_inline_doc_tags_allowed'];
 -        $this->wp = new WordParser;
 -        // strange PHP 4.0.6 behavior: it converts constants to strings without warning if it's an array index
 -        $this->eventHandlers = array_flip($this->eventHandlers);
 -        $this->eventHandlers[PARSER_EVENT_COMMENTBLOCK] = 'defaultHandler';
 -        $this->eventHandlers[PARSER_EVENT_OUTPHP] = 'defaultHandler';
 -        $this->subscribe(PHPDOCUMENTOR_EVENT_NEWLINENUM,$GLOBALS['phpDocumentor_errors']);
 -        $this->subscribe(PHPDOCUMENTOR_EVENT_NEWFILE,$GLOBALS['phpDocumentor_errors']);
 -    }
 -
 -    /**
 -     * Parse a new file
 -     *
 -     * @param    string    $parse_data
 -     * @param    string    $path
 -     * @param    int    $base    number of directories to drop off the bottom when creating names using path
 -     * @staticvar    integer    used for recursion limiting if a handler for an event is not found
 -     * @return    bool
 -     */
 -    function parse (&$parse_data, $path, $base = 0, $packages = false)
 -    {
 -        global $_phpDocumentor_options;
 -        static $endrecur = 0;
 -        $this->p_vars = array('func' => false, 'function_data' => '', 'quote_data' => '', 'event_stack' => false, 'last_pevent' => 0,
 -                        'two_words_ago' => '', 'temp_word' => '', 'docblock' => false, 'line' => array(), 'linecount' => 0, 'startword' => '',
 -                        'periodline' => 0, 'shortdesc' => '', 'docblock_desc' => '', 'class' => false, 'source_location' => '',
 -                        'define_params_data' => '', 'define' => false, 'define_name' => '', 'define_value' => '', 'var' => false,
 -                        'oldtoken' => false, 'comment_data' => '', 'function_param' => NULL, 'inline_dockeyword_type' => false,
 -                        'inline_dockeyword_data' => false, 'dockeyword_type' => false, 'dockeyword_data' =>false, 'param_var' => false,
 -                        'include_name' => '', 'include_value' => '','include' => false, 'return_type' => '', 'cur_class' => '',
 -                        'function_data' => false, 'varname' => '', 'returntype' => false, 'vartype' => false, 'paramtype' => false,
 -                        'tagname' => '', 'find_global' => '', 'global_type' => '', 'paramname' => false, 'statics' => array(),
 -                        'static_count' => 0, 'static_val' => array(), 'docblock_type' => 'docblock', 'linenum' => false,
 -                        'seelement' => false);
 -    
 -        $this->p_flags = array('docblocknewline' => false, 'docblockintags' => false, 'useperiod' => false,
 -                        'definename_isset' => false, 'define_parens' => false, 'reset_quote_data' => false,
 -                        'in_desc' => true, 'in_tag' => false, 'newline' => true, 'tempnewline' => false,
 -                        'start_docblock' => false, 'includename_isset' => false, 'return_isset' => false,
 -                        'is_return' => false, 'in_class' => false, 'asterisk' => false, 'var_equals' => false,
 -                        'arrayinvarname' => false, 'valid_newline' => true, 'startline' => false,
 -                        'function_global' => false, 'define_global' => false, 'static_value' => false,'funcparam_val' => false,
 -                        'get_source' => false, 'getting_source' => false, 'in_define' => false, 'in_include' => false,
 -                        'in_var' => false, 'in_global' => false);
 -        $this->p_vars['parsepath'] = $path;
 -        $this->setupStates();
 -        if (strlen($parse_data) == 0)
 -        {
 -            return false;
 -        }
 -
 -        // initialize variables so E_ALL error_reporting doesn't complain
 -        $pevent = 0;
 -        $word = 0;
 -        $this->p_vars['event_stack'] = new EventStack;
 -
 -        $this->wp->setup($parse_data);
 -        
 -
 -        $page = new ParserPage;
 -        $page->setPath($path);
 -        $page->setPackageOutput($packages);
 -        $page->setFile(basename($path));
 -        $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWFILE,basename($path));
 -        //$name = str_replace("/","_",dirname($path)) . "_" . array_shift(explode(".",$page->getFile()));
 -        // fc@fc.clever-soft.com 11/29/2001
 -        $name = str_replace(PATH_DELIMITER,"_",dirname($path)) . "_" .  str_replace(".","_",$page->getFile());
 -        $tmp = explode("_",$name);
 -        $name = str_replace(':','_',implode("_",array_slice($tmp,$base)));
 -        // if base is '', drive letter is present in windows
 -
 -        $page->setName($name);
 -        $temploc = $_phpDocumentor_options['Program_Root'] . PATH_DELIMITER. implode(PATH_DELIMITER,
 -            array_slice(explode(PATH_DELIMITER,$path),$base));
 -        
 -        if ($temploc == $_phpDocumentor_options['Program_Root'] . PATH_DELIMITER) $temploc .= $path;
 -        
 -        $this->p_vars['source_location'] = $source_location = $temploc;
 -        $page->setSourceLocation($source_location);
 -
 -        $this->publishEvent(PHPDOCUMENTOR_EVENT_PAGE,$page);
 -        unset($page);
 -        $this->p_flags['reset_quote_data'] = true;
 -
 -        do
 -        {
 -            $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->publishEvent(PHPDOCUMENTOR_EVENT_NEWSTATE,($pevent + 100));
 -
 -            if ($pevent == PARSER_EVENT_GLOBAL_VALUE || $pevent == PARSER_EVENT_DOCBLOCK || $pevent == PARSER_EVENT_DOCBLOCK_TEMPLATE)
 -            {
 -                $this->wp->setWhitespace(true);
 -            }
 -
 -            $this->p_vars['last_word'] = $word;
 -            $word = $this->wp->getWord();
 -            // in wordparser, have to keep track of lines
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWLINENUM, $this->wp->linenum);
 -
 -            if (0)//PHPDOCUMENTOR_DEBUG == true)
 -            {
 -                echo "\nLAST: |" . $this->p_vars['last_word'] . "|\n";
 -                echo "PEVENT: " . $this->getParserEventName($pevent) . "\n";
 -                echo "LASTPEVENT: " . $this->getParserEventName($this->p_vars['last_pevent']) . "\n";
 -                echo $this->wp->getPos() . ": |$word|\n--------------------------\n\n";
 -            }
 -            if ($this->p_flags['get_source'])
 -            {
 -                if ($pevent == PARSER_EVENT_FUNCTION)
 -                {
 -                    $this->wp->retrievesource("function $word");
 -                    $this->p_flags['get_source'] = false;
 -                    $this->p_flags['getting_source'] = true;
 -                }
 -            }
 -            if (false)//$this->p_flags['getting_source'] && ($pevent == PARSER_EVENT_DOCBLOCK) || ($pevent == PARSER_EVENT_NOEVENTS))
 -            {
 -                addError(PDERROR_SOURCE_TAG_FUNCTION_NOT_FOUND);
 -                // throw away source
 -                $this->wp->getSource();
 -            }
 -            if (isset($this->eventHandlers[$pevent]))
 -            {
 -                $handle = $this->eventHandlers[$pevent];
 -                $this->$handle($word, $pevent);
 -            } else
 -            {
 -                debug('WARNING: possible error, no handler for event number '.$pevent);
 -                if ($endrecur++ == 25)
 -                {
 -                    die("FATAL ERROR, recursion limit reached");
 -                }
 -            }
 -        } while (!($word === false));
 -        $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWSTATE,PHPDOCUMENTOR_EVENT_END_PAGE);
 -    }
 -    
 -    /**#@+
 -     * @access private
 -     * @param string token parsed from source
 -     * @param integer parser constant from {@link Parser.inc}
 -     */
 -    /**
 -     * handler for NOEVENTS, OUTPHP, COMMENTBLOCK
 -     */
 -    
 -    function defaultHandler($word, $pevent)
 -    {
 -        $this->checkEventPush( $word, $pevent);
 -        $this->checkEventPop($word,$pevent);
 -    }
 -    
 -    /**
 -     * handler for LOGICBLOCK
 -     *
 -     * Logic Blocks are the stuff between { and } in a function/method.  A
 -     * logic block can clearly contain other logic blocks, as in:
 -     *
 -     * <code>
 -     * function test($a)
 -     * {
 -     *    if (testcondition)
 -     *    { // nested logic block
 -     *    }
 -     * }
 -     * </code>
 -     *
 -     * So, the exit portion of the logic block handler must check to see if the
 -     * logic block being exited is the top-level, and it does this by retrieving
 -     * the last event from the stack.  If it is a function (and not a logic block)
 -     * then it backs up the word parser so that the function will exit properly.
 -     *
 -     * {@source 11}
 -     */
 -    
 -    function handleLogicBlock($word, $pevent)
 -    {
 -        $a = $this->checkEventPush( $word, $pevent);
 -        if ($a == PARSER_EVENT_FUNC_GLOBAL || $a == PARSER_EVENT_STATIC_VAR)
 -        {
 -            if (substr($this->p_vars['last_word'],strlen($this->p_vars['last_word']) - 1,1) != ' ' && substr($this->p_vars['last_word'],strlen($this->p_vars['last_word']) - 1,1) != "\t" && substr($this->p_vars['last_word'],strlen($this->p_vars['last_word']) - 1,1) != "\n" && substr($this->p_vars['last_word'],strlen($this->p_vars['last_word']) - 1,1) != ";" && substr($this->p_vars['last_word'],strlen($this->p_vars['last_word']) - 1,1) != "}" && substr($this->p_vars['last_word'],strlen($this->p_vars['last_word']) - 1,1) != "{")
 -            {
 -                $this->p_vars['event_stack']->popEvent();
 -            }
 -        }
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $e = $this->p_vars['event_stack']->popEvent();
 -            $this->p_vars['event_stack']->pushEvent($e);
 -            if ($e == PARSER_EVENT_FUNCTION)
 -            {
 -                $this->wp->backupPos($word); 
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * handler for ESCAPE.
 -     * this event handler parses <code>"this string \"with its escape backslashes\""</code> and returns:
 -     * <code>this string "with its escape backslashes"</code>
 -     * to make it human-readable
 -     */
 -    
 -    function handleEscape($word, $pevent)
 -    {
 -        $this->p_vars['event_stack']->popEvent();
 -    }
 -    
 -    /**
 -     * handler for COMMENT.
 -     * this event handler parses single-line comments like:
 -     * // this one
 -     */
 -    
 -    function handleComment($word, $pevent)
 -    {
 -        $this->checkEventPush( $word, $pevent);
 -    
 -        if (!isset($this->p_vars['comment_data'])) $this->p_vars['comment_data'] = '';
 -        $this->p_vars['comment_data'] .= $word;
 -    
 -        $this->checkEventPop($word,$pevent);
 -    }
 -
 -    /**
 -     * handler for ARRAY.
 -     * this event handler parses arrays in default values of function and var definitions
 -     */
 -    
 -    function handleArray($word, $pevent)
 -    {
 -        $e = $this->checkEventPush( $word, $pevent); 
 -        if (($e == PARSER_EVENT_COMMENTBLOCK) ||
 -            ($e == PARSER_EVENT_COMMENT)) return;
 -
 -        if (!isset($this->p_vars['function_data']) || (isset($this->p_vars['function_data']) && empty($this->p_vars['function_data'])))
 -        {
 -            $this->p_vars['function_data'] = "array";
 -        }
 -
 -        if ( ($this->p_vars['last_word'] == "'"))
 -        {
 -            $this->p_vars['function_data'] .= $this->p_vars['quote_data']."'";
 -        }
 -        if ( ($this->p_vars['last_word'] == "\""))
 -        {
 -            $this->p_vars['function_data'] .= $this->p_vars['quote_data']."\"";
 -        }
 -
 -        $this->p_vars['function_data'] .= $word;
 -        //echo "function_data = |$this->p_vars['function_data']|\n";
 -
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -        }
 -    }
 -
 -    /**
 -     * handler for DEFINE.
 -     * handles define(constant, value); statements
 -     */
 -    
 -    function handleDefine($word, $pevent)
 -    {
 -        if (!$this->p_flags['in_define'])
 -        {
 -            $this->p_vars['linenum'] = $this->wp->linenum;
 -        }
 -        $this->p_flags['in_define'] = true;
 -        $this->checkEventPush( $word, $pevent);
 -
 -        $this->p_flags['definename_isset'] = false;
 -        $this->p_vars['define_params_data'] = '';
 -        unset($this->p_vars['quote_data']);
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $this->p_flags['in_define'] = false;
 -            $this->p_vars['define'] = new parserDefine;
 -            $this->p_vars['define']->setLineNumber($this->p_vars['linenum']);
 -            $this->p_vars['define']->setName($this->p_vars['define_name']);
 -            $this->p_vars['define']->setValue($this->p_vars['define_value']);
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_DEFINE,$this->p_vars['define']);
 -            $this->p_flags['definename_isset'] = false;
 -            unset($this->p_vars['define']);
 -            unset($this->p_vars['define_name']);
 -            unset($this->p_vars['define_value']);
 -            $this->p_flags['in_define'] = false;
 -            $this->p_vars['define_params_data'] = '';
 -        }
 -    }
 -    
 -    /**
 -     * handler for DEFINE_PARAMS.
 -     * handles the parsing of constant and value in define(constant, value);
 -     */
 -    
 -    function handleDefineParams($word, $pevent)
 -    {
 -        if ($this->checkEventPush( $word, $pevent))
 -        {
 -            if ($word == '(')
 -            {
 -                $this->p_vars['define_params_data'] .= $word;
 -            }
 -            return;
 -        }
 -        
 -        $this->p_flags['define_parens'] = true;
 -        if(!isset($this->p_vars['define_params_data'])) $this->p_vars['define_params_data'] = '';
 -        
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            if (!empty($this->p_vars['quote_data']))
 -            {
 -                $this->p_vars['define_params_data'] .= $this->p_vars['quote_data'];
 -            }
 -            if (!empty($this->p_vars['define_params_data']))
 -            {
 -                //echo $this->p_vars['define_params_data']."\n";
 -                $this->p_vars['define_value'] = $this->p_vars['define_params_data'];
 -            }
 -            else
 -            {
 -                if (    $this->p_vars['last_word'] != "/*" && 
 -                    $this->p_vars['last_word'] != "//" && $this->p_vars['last_word'] != "#")
 -                {
 -                    $this->p_vars['define_value'] = trim($this->p_vars['last_word']);
 -                }
 -                else
 -                {
 -                    $this->p_vars['define_value'] = "";
 -                }
 -            }
 -        }
 -        if ($this->p_flags['definename_isset'])
 -        {
 -            if (isset($this->p_vars['quote_data']))
 -            {
 -                $this->p_vars['define_params_data'] .= '"'.$this->p_vars['quote_data'].'"';
 -                unset($this->p_vars['quote_data']);
 -            }
 -            $this->p_vars['define_params_data'] .= $word;
 -        } else
 -        {
 -            if ($word != ",")
 -            {
 -                if (isset($this->p_vars['quote_data']))
 -                {
 -                    $this->p_vars['define_params_data'] .= $this->p_vars['quote_data'];
 -                    unset($this->p_vars['quote_data']);
 -                }
 -                $this->p_vars['define_params_data'] .= $word;
 -            } else
 -            {
 -                if (isset($this->p_vars['quote_data']) && !$this->p_flags['definename_isset'])
 -                {
 -                    $this->p_vars['define_params_data'] .= $this->p_vars['quote_data'];
 -                    unset($this->p_vars['quote_data']);
 -                }
 -                $this->p_flags['definename_isset'] = true;
 -                $this->p_vars['define_name'] = $this->p_vars['define_params_data'];
 -                unset($this->p_vars['quote_data']);
 -                $this->p_vars['define_params_data'] = '';
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * handler for DEFINE_PARAMS_PARENTHESIS.
 -     * this handler takes all parenthetical statements within constant or value in:
 -     * define(constant, value) of a define statement, and handles them properly
 -     */
 -    
 -    function handleDefineParamsParenthesis($word, $pevent)
 -    {
 -        if (isset($this->p_vars['quote_data']))
 -        {
 -            $this->p_vars['define_params_data'] .= '"'.$this->p_vars['quote_data'].'"';
 -            unset($this->p_vars['quote_data']);
 -        }
 -        $this->p_vars['define_params_data'] .= $word;
 -        $this->checkEventPush( $word, $pevent);
 -        $this->checkEventPop( $word, $pevent);
 -    }
 -
 -    /**
 -     * handler for CLASS.
 -     * this handler parses a class statement
 -     */
 -    
 -    function handleClass($word, $pevent)
 -    {
 -        $this->p_flags['in_class'] = true;
 -        $a = $this->checkEventPush( $word, $pevent);
 -        if ($a == PARSER_EVENT_DOCBLOCK || $a == PARSER_EVENT_DOCBLOCK_TEMPLATE)
 -        {
 -            $this->wp->setWhitespace(true);
 -        }
 -
 -        if (!isset($this->p_vars['class'])) $this->p_vars['class'] = false;
 -        if (!is_subclass_of($this->p_vars['class'],"parserBase"))
 -        {
 -            $this->p_vars['class'] = new parserClass;
 -            $this->p_vars['class']->setLineNumber($this->wp->linenum);
 -            $this->p_vars['class']->setname($word);
 -            $this->p_vars['cur_class'] = $word;
 -            $this->p_vars['class']->setSourceLocation($this->p_vars['source_location']);
 -        }
 -
 -        if (strtolower($this->p_vars['last_word']) == "extends")
 -        {
 -            $this->p_vars['class']->setExtends($word);
 -        }
 -
 -        if ($word == "{")
 -        {
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_CLASS,$this->p_vars['class']);
 -        }
 -        //echo $this->wp->getPos() . ": |$word|\n";
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $this->p_flags['in_class'] = false;
 -            // throw an event when class is done
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWSTATE,STATE_END_CLASS);
 -            $this->p_vars['class'] = false;
 -        }
 -    }
 -
 -    /**
 -     * handler for VAR.
 -     * handle a var $varname = default_value; or var $varname; statement in a class definition
 -     */
 -    
 -    function handleVar($word, $pevent)
 -    {
 -        if (!$this->p_flags['in_var'])
 -        {
 -            $this->p_vars['linenum'] = $this->wp->linenum;
 -        }
 -        $this->p_flags['in_var'] = true;
 -        //echo $word."\n";
 -        $e = $this->checkEventPush( $word, $pevent);
 -        
 -        if (!isset($this->p_vars['var'])) $this->p_vars['var'] = false;
 -        if ($word == '=' || $word == ';') $this->p_flags['var_equals'] = true;
 -        if (!$this->p_flags['var_equals'])
 -        {
 -            // if we haven't parsed the = yet, no arrays are possible!
 -            if ($e == PARSER_EVENT_ARRAY)
 -            {
 -                $this->p_flags['arrayinvarname'] = true;
 -                $this->p_vars['event_stack']->popEvent();
 -            }
 -            if (!$e || ($e == PARSER_EVENT_ARRAY))
 -            $this->p_vars['varname'] .= $word;
 -        }
 -
 -        if (!$this->p_flags['var_equals'])
 -        {
 -            if ($word != "/*" && $word != "//" && $word != "#")
 -            {
 -                $this->p_vars['var'] = new parserVar($this->p_vars['cur_class']);
 -                $this->p_vars['var']->setName($this->p_vars['varname']);
 -            }
 -        }
 -        if ($this->p_vars['last_word'] == "=")
 -        {
 -            if ($word != "/*" && $word != "//" && $word != "#")
 -            {
 -                $this->p_vars['var']->setValue($word);
 -            }
 -        }
 -        // fix 1202772
 -        if (isset($this->p_vars['quote_data']) && ($this->p_vars['last_pevent'] == PARSER_EVENT_QUOTE || $this->p_vars['last_pevent'] == PARSER_EVENT_SINGLEQUOTE))
 -        {
 -            $this->p_vars['var']->setValue($this->p_vars['quote_data']);
 -            unset($this->p_vars['quote_data']);
 -        }
 -        if ($this->p_vars['last_pevent'] == PARSER_EVENT_ARRAY)
 -        {
 -            $this->p_vars['var']->setValue($this->p_vars['function_data']);
 -            $this->p_vars['function_data'] = false;
 -        }
 -            
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $this->p_vars['var']->setLineNumber($this->p_vars['linenum']);
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_VAR,$this->p_vars['var']);
 -            unset($this->p_vars['var']);
 -            $this->p_flags['in_var'] = false;
 -            $this->p_flags['var_equals'] = false;
 -            $this->p_flags['arrayinvarname'] = false;
 -            $this->p_vars['varname'] = '';
 -        }
 -    }
 -
 -    /**
 -     * handler for QUOTE.
 -     * this handler recognizes strings defined with double quotation marks (") and handles them correctly
 -     * in any place that they legally appear in php code
 -     */
 -    
 -    function handleQuote($word, $pevent)
 -    {
 -        if ($this->p_flags['reset_quote_data'] === true)
 -        {
 -            $this->p_flags['reset_quote_data'] = false;
 -            $this->p_vars['quote_data'] = "";
 -        }
 -        $this->checkEventPush( $word, $pevent);
 -        if ($word != "\"")
 -        {
 -            $this->p_vars['quote_data'] .= $word;
 -        }
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $this->p_flags['reset_quote_data'] = true;
 -        }
 -    }
 -    
 -    /**
 -     * handler for SINGLEQUOTE.
 -     * this handler recognizes strings defined with single quotation marks (') and handles them correctly
 -     * in any place that they legally appear in php code
 -     */
 -    
 -    function handleSingleQuote($word, $pevent)
 -    {
 -        $this->checkEventPush( $word, $pevent);
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            if ($this->p_vars['last_word'] != "'")
 -            {
 -                $this->p_vars['quote_data'] = $this->p_vars['last_word'];
 -            } else {
 -                $this->p_vars['quote_data'] = "";
 -            }
 -        }
 -    }
 -
 -    /**
 -     * handler for EOFQUOTE.
 -     * this handler recognizes strings defined with perl-style <<< EOF quotes, and handles them correctly
 -     * in any place that they legally appear in php code
 -     *
 -     * an example:
 -     * <code>$var <<< EOF
 -     * blah blah blah
 -     * EOF;</code>
 -     */
 -    
 -    function handleEOFQuote($word, $pevent)
 -    {
 -        //    echo $this->wp->getPos() . ": word=|$word|\t\t\tlastword=|$this->p_vars['last_word']|\n";
 -        if (trim($this->p_vars['last_word']) == "<<<")
 -        {
 -            // ok we found the keyword
 -            //echo "Keyword == $word\n";
 -            $this->p_vars['oldtoken'] = $this->tokens[STATE_EOFQUOTE];
 -            $this->tokens[STATE_EOFQUOTE] = array($word);
 -        } 
 -        else if ($this->p_vars['last_pevent'] || PARSER_EVENT_EOFQUOTE) 
 -        {
 -            // i don't think anything will ever use this so were not going to set it
 -            //$this->p_vars['quote_data'] = $this->p_vars['last_word']; 
 -            $this->p_vars['event_stack']->popEvent();
 -            $this->tokens[STATE_EOFQUOTE] = $this->p_vars['oldtoken'];
 -        }
 -    }
 -    /**#@-*/
 -
 -    /**
 -     * Tells the parser to search for a global variable definition as
 -     * defined by a @global type $name tag.
 -     *
 -     * The parser is fooled into looking for the entire global variable as a
 -     * single token by amending the {@link $tokens} array.
 -     *
 -     * {@source}
 -     * @access private
 -     * @param string name of global variable as it appears in the source code
 -     */
 -    function findGlobal($name)
 -    {
 -        if (!isset($this->p_vars['globaltofind']))
 -        {
 -            $this->p_vars['globaltofind'] = $name;
 -            $this->pushEvent[PARSER_EVENT_PHPCODE][strtolower($name)] = PARSER_EVENT_DEFINE_GLOBAL;
 -            $this->tokens[STATE_PHPCODE][] = $name;
 -        } else
 -        {
 -            addError(PDERROR_MULTIPLE_GLOBAL_TAGS,$this->p_vars['globaltofind'],$name);
 -        }
 -    }
 -    
 -    /**#@+
 -     * @access private
 -     * @param string token parsed from source
 -     * @param integer parser constant from {@link Parser.inc}
 -     */
 -    /**
 -     * handler for PHPCODE.
 -     * this handler recognizes the <code><?</code> php processor directive, and begins parsing php code
 -     */
 -    
 -    function handlePhpCode($word, $pevent)
 -    {
 -        $e = $this->checkEventPush( $word, $pevent);
 -        if ($e == PARSER_EVENT_DOCBLOCK || $e == PARSER_EVENT_DOCBLOCK_TEMPLATE)
 -        {
 -            $this->wp->setWhitespace(true);
 -        }
 -        if (isset($this->p_vars['globaltofind']) && $e)
 -        {
 -            if ($e != PARSER_EVENT_DEFINE_GLOBAL && $e != PARSER_EVENT_ARRAY && $e != PARSER_EVENT_QUOTE && $e != PARSER_EVENT_SINGLEQUOTE && $e != PARSER_EVENT_COMMENT && $e != PARSER_EVENT_COMMENTBLOCK)
 -            {
 -                addError(PDERROR_GLOBAL_NOT_FOUND,$this->p_vars['globaltofind']);
 -                unset($this->pushEvent[PARSER_EVENT_PHPCODE][strtolower($this->p_vars['globaltofind'])]);
 -                foreach($this->tokens[STATE_PHPCODE] as $i => $notme)
 -                if ($this->tokens[STATE_PHPCODE][$i] == $this->p_vars['globaltofind'])
 -                unset($this->tokens[STATE_PHPCODE][$i]);
 -                unset($this->p_vars['globaltofind']);
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * handler for global variables
 -     */
 -    function handleGlobal($word, $pevent)
 -    {
 -        if (!$this->p_flags['in_global'])
 -        {
 -            $this->p_vars['linenum'] = $this->wp->linenum;
 -        }
 -        $this->p_flags['in_global'] = true;
 -        $e = $this->checkEventPush($word, $pevent);
 -        if ($this->checkEventPop($word, $pevent))
 -        {
 -            $this->p_flags['in_global'] = false;
 -            $a = new parserGlobal;
 -            $a->setDataType($this->p_vars['global_type']);
 -            $this->p_vars['global_type'] = '';
 -            $a->setLineNumber($this->p_vars['linenum']);
 -            $a->setName($this->p_vars['globaltofind']);
 -            if (isset($this->p_vars['global_val']))
 -            $a->setValue(trim($this->p_vars['global_val']));
 -            unset($this->p_vars['global_val']);
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_GLOBAL,$a);
 -            unset($this->pushEvent[PARSER_EVENT_PHPCODE][strtolower($this->p_vars['globaltofind'])]);
 -            foreach($this->tokens[STATE_PHPCODE] as $i => $notme)
 -            if ($this->tokens[STATE_PHPCODE][$i] == $this->p_vars['globaltofind'])
 -            unset($this->tokens[STATE_PHPCODE][$i]);
 -            unset($this->p_vars['globaltofind']);
 -        }
 -    }
 -    
 -    /**
 -     * Handles the stuff after the = in <code>$globalvar = value</code>
 -     */
 -    function handleGlobalValue($word, $pevent)
 -    {
 -        if ($this->checkEventPush($word, $pevent))
 -        {
 -            $this->wp->setWhitespace(false);
 -            return;
 -        }
 -        if (!isset($this->p_vars['global_val'])) $this->p_vars['global_val'] = '';
 -        if ($this->p_vars['last_pevent'] == PARSER_EVENT_QUOTE || $this->p_vars['last_pevent'] == PARSER_EVENT_SINGLEQUOTE)
 -        {
 -            if (!isset($this->p_vars['quote_data'])) $this->p_vars['quote_data'] = '';
 -            $this->p_vars['global_val'] .= '"'.$this->p_vars['quote_data'].'"';
 -            unset($this->p_vars['quote_data']);
 -            $this->p_vars['last_pevent'] = PARSER_EVENT_GLOBAL_VALUE;
 -        }
 -        if ($this->p_vars['last_pevent'] == PARSER_EVENT_ARRAY)
 -        {
 -            $this->p_vars['global_val'] .= $this->p_vars['function_data'];
 -            $this->p_vars['function_data'] = false;
 -        }
 -        if ($word != ';')
 -        $this->p_vars['global_val'] .= $word;
 -        if ($this->checkEventPop($word, $pevent))
 -        {
 -            $this->wp->setWhitespace(false);
 -            $this->wp->backupPos($word);
 -        }
 -    }
 -    
 -    /**
 -     * handler for FUNC_GLOBAL.
 -     * this handler recognizes "global $var1, $var2" declarations in a function, and parses them
 -     */
 -    
 -    function handleFuncGlobal($word, $pevent)
 -    {
 -        if ((substr(trim($word),0,1) != '$') && ($word != ',') && ($word != ';'))
 -        { // not a global declaration, using a variable named "$global"
 -            $this->p_vars['event_stack']->popEvent();
 -            return;
 -        }
 -        if ($this->checkEventPop($word, $pevent))
 -        {
 -            return;
 -        }
 -        if (!$this->checkEventPush($word, $pevent))
 -        {
 -            if ($word == ',')
 -            { // another variable
 -                $this->p_vars['global_count']++;
 -            } else
 -            {
 -                if (!isset($this->p_vars['globals'][$this->p_vars['global_count']]))
 -                $this->p_vars['globals'][$this->p_vars['global_count']] = '';
 -                if (!empty($this->p_vars['globals'][$this->p_vars['global_count']])) $this->p_vars['global_count']++;
 -                $this->p_vars['globals'][$this->p_vars['global_count']] = trim($word);
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * handler for STATIC_VAR.
 -     * this handler recognizes "static $var1, $var2 = 6" declarations in a function, and parses them
 -     */
 -    
 -    function handleStaticVar($word, $pevent)
 -    {
 -        if ($this->checkEventPop($word, $pevent))
 -        {
 -            $this->p_vars['static_count']++;
 -            return;
 -        }
 -        if (!$this->checkEventPush($word, $pevent))
 -        {
 -            if ($word == ',')
 -            {
 -                $this->p_vars['static_count']++;
 -                return;
 -            }
 -            if (!isset($this->p_vars['statics'][$this->p_vars['static_count']]))
 -            $this->p_vars['statics'][$this->p_vars['static_count']] = '';
 -            if (!empty($this->p_vars['statics'][$this->p_vars['static_count']])) $this->p_vars['static_count']++;
 -            $this->p_vars['statics'][$this->p_vars['static_count']] = trim($word);
 -        }
 -    }
 -    
 -    /**
 -     * handler for STATIC_VAR_VALUE.
 -     * this handler parses the 6 in "static $var1, $var2 = 6"
 -     */
 -    
 -    function handleStaticValue($word, $pevent)
 -    {
 -        if ($this->checkEventPush($word, $pevent))
 -        {
 -            return;
 -        }
 -        if (!isset($this->p_vars['static_val'][$this->p_vars['static_count']])) $this->p_vars['static_val'][$this->p_vars['static_count']] = '';
 -        if ($this->p_vars['last_pevent'] == PARSER_EVENT_QUOTE || $this->p_vars['last_pevent'] == PARSER_EVENT_SINGLEQUOTE)
 -        {
 -            $this->p_vars['static_val'][$this->p_vars['static_count']] .= '"'.$this->p_vars['quote_data'].'"';
 -            unset($this->p_vars['quote_data']);
 -        }
 -        if ($this->p_vars['last_pevent'] == PARSER_EVENT_ARRAY)
 -        {
 -            $this->p_vars['static_val'][$this->p_vars['static_count']] .= $this->p_vars['function_data'];
 -            $this->p_vars['function_data'] = false;
 -        }
 -        if ($this->checkEventPop($word, $pevent))
 -        {
 -            $this->p_vars['static_val'][$this->p_vars['static_count']] = trim($this->p_vars['static_val'][$this->p_vars['static_count']]);
 -            $this->wp->backupPos($word);
 -            return;
 -        } else $this->p_vars['static_val'][$this->p_vars['static_count']] .= $word;
 -    }
 -    
 -    /**
 -     * handler for FUNCTION.
 -     * this handler recognizes function declarations, and parses them.  The body
 -     * of the function is parsed by handleLogicBlock()
 -     * @see handleLogicBlock()
 -     */
 -    
 -    function handleFunction($word, $pevent)
 -    {
 -        if ($e = $this->checkEventPush( $word, $pevent))
 -        {
 -            if ($e == PARSER_EVENT_COMMENT || $e == PARSER_EVENT_COMMENTBLOCK) return;
 -        }
 -    
 -        if (!isset($this->p_vars['func'])) $this->p_vars['func'] = false;
 -        if (! is_subclass_of($this->p_vars['func'],"parserBase")) 
 -        {
 -            $this->p_vars['globals'] = array();
 -            $this->p_vars['global_count'] = 0;
 -            if ($this->p_flags['in_class'])
 -            $this->p_vars['func'] = new parserMethod($this->p_vars['cur_class']); 
 -            else
 -            $this->p_vars['func'] = new parserFunction;
 -            $this->p_vars['func']->setLineNumber($this->wp->linenum);
 -            if (trim($word) != '&')
 -            $this->p_vars['func']->setName(trim($word));
 -            else
 -            $this->p_vars['func']->setReturnsReference();
 -        } else
 -        {
 -            if ($this->p_vars['func']->getReturnsReference())
 -            {
 -                if ($this->p_vars['last_word'] == '&')
 -                {
 -                    $this->p_vars['func']->setName(trim($word));
 -                }
 -            }
 -        }
 -        if ($this->checkEventPop($word,$pevent)) 
 -        { 
 -            $this->p_vars['func']->addGlobals($this->p_vars['globals']);
 -            $this->p_vars['func']->addStatics($this->p_vars['statics'],$this->p_vars['static_val']);
 -            $this->p_vars['globals'] = array();
 -            $this->p_vars['global_count'] = 0;
 -            if ($this->p_flags['getting_source'])
 -            {
 -                $x = $this->wp->getSource();
 -                $this->p_vars['func']->addSource($x);
 -                $this->p_flags['get_source'] = false;
 -                $this->p_flags['getting_source'] = false;
 -            }
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_FUNCTION,$this->p_vars['func']); 
 -            $this->p_vars['func'] = false; 
 -        } 
 -    }
 -
 -    /**#@-*/
 -    /**
 -     * Helper function for {@link handleFunctionParams()}
 -     *
 -     * This function adds a new parameter to the parameter list
 -     * @access private
 -     * @param string
 -     */
 -    function endFunctionParam($word)
 -    {
 -        if (isset($this->p_vars['quote_data']) && ($this->p_vars['last_pevent'] == PARSER_EVENT_SINGLEQUOTE))
 -        {
 -            $this->p_vars['function_data'] .= "'".$this->p_vars['quote_data']."'";
 -            unset($this->p_vars['quote_data']);
 -        }
 -        if (isset($this->p_vars['quote_data']) && ($this->p_vars['quote_data'] != '') && ($this->p_vars['last_pevent'] == PARSER_EVENT_QUOTE))
 -        {
 -            $this->p_vars['function_data'] .= '"'.$this->p_vars['quote_data'].'"';
 -            unset($this->p_vars['quote_data']);
 -        }
 -        if (isset($this->p_vars['function_param']))
 -        {
 -            $this->p_vars['func']->addParam($this->p_vars['function_param'],$this->p_vars['function_data'], $this->p_flags['funcparam_val']);
 -            unset($this->p_vars['function_param']);
 -            $this->p_vars['function_data'] = '';
 -            $this->p_flags['funcparam_val'] = false;
 -        }
 -    }
 -    /**#@+
 -     * @access private
 -     * @param string token parsed from source
 -     * @param integer parser constant from {@link Parser.inc}
 -     */
 -    /**
 -     * handler for FUNCTION_PARAMS.
 -     * this handler recognizes the parameters of a function within parentheses like function(param, param = default_value)
 -     * and parses them
 -     * @see endFunctionParam()
 -     */
 -    
 -    function handleFunctionParams($word, $pevent)
 -    {
 -        //echo $this->wp->getPos() . ": word=|$word|\t\t\tlastword=|".$this->p_vars['last_word']."|\n";
 -        //echo "function_param = '".$this->p_vars['function_param']."'\n";
 -        //echo "function_data = '".$this->p_vars['function_data']."'\n";
 -        $e1 = $this->checkEventPush( $word, $pevent); 
 -
 -        if (!$e1)
 -        {
 -            if ($word == ',' || $this->checkEventPop($word,$pevent))
 -            {
 -                $this->endFunctionParam($word);
 -            } elseif ($word == '=')
 -            {
 -                $this->p_flags['funcparam_val'] = true;
 -            } else
 -            {
 -                if ($this->p_flags['funcparam_val'])
 -                {
 -                    if (isset($this->p_vars['quote_data']) && ($this->p_vars['last_pevent'] == PARSER_EVENT_SINGLEQUOTE))
 -                    {
 -                        $this->p_vars['function_data'] .= "'".$this->p_vars['quote_data']."'";
 -                        unset($this->p_vars['quote_data']);
 -                    }
 -                    if (isset($this->p_vars['quote_data']) && ($this->p_vars['last_pevent'] == PARSER_EVENT_QUOTE))
 -                    {
 -                        $this->p_vars['function_data'] .= '"'.$this->p_vars['quote_data'].'"';
 -                        unset($this->p_vars['quote_data']);
 -                    }
 -                    $this->p_vars['function_data'] .= $word;
 -                } else
 -                {
 -                    $this->p_vars['function_param'] = $word;
 -                }
 -            }
 -        }
 -    }
 -
 -    
 -    /**
 -     * javadoc-desc-compliant handler for DOCBLOCK.
 -     * this handler recognizes @tags in DocBlocks and parses them for display.
 -     * It also parses out unknown tags into their own array for use by the docblock
 -     */
 -    
 -    function JavaDochandleDocblock($word, $pevent)
 -    {
 -        $e1 = $this->checkEventPush( $word, $pevent);
 -        if (!isset($this->p_vars[$this->p_vars['docblock_type']]) || !$this->p_vars[$this->p_vars['docblock_type']])
 -        {
 -            $this->p_vars[$this->p_vars['docblock_type']] = new parserDocBlock();
 -            $this->p_vars['returntype'] = false;
 -            $this->p_vars['vartype'] = false;
 -            $this->p_flags['startdocblock'] = true;
 -            $this->p_flags['valid_newline'] = true;
 -            $this->p_flags['startline'] = true;
 -            $this->p_flags['newline'] = true;
 -            $this->p_flags['in_desc'] = true;
 -            $this->p_flags['in_tag'] = false;
 -            $this->p_flags['useperiod'] = false;
 -            $this->p_vars['line'] = array();
 -            $this->p_vars['linecount'] = 0;
 -        }
 -        $e = $this->checkEventPop( $word, $pevent);
 -        if (!$e1 && !$e)
 -        {
 -            if ($this->p_flags['in_desc']) $this->JavaDochandleDesc($word, $pevent);
 -            else $this->handleTags($word, $pevent);
 -        }
 -        if ($e)
 -        {
 -            if (!isset($this->p_vars['periodline'])) $this->p_vars['periodline'] = 0;
 -            if ($this->p_vars['periodline'] > 3)
 -            {
 -                $this->p_flags['useperiod'] = false;
 -            }
 -
 -            $this->p_vars['docblock_desc'] = new parserDesc;
 -//            echo "i = ".$this->p_vars['periodline']."; i < " . count($this->p_vars['line']) . "\n";
 -            if ($this->p_vars['docblock_type'] == 'docblock')
 -            {
 -                if (isset($this->p_vars['docblock_template']))
 -                {
 -                    // copy template values if not overridden
 -                    if (!$this->p_vars['docblock']->getExplicitPackage())
 -                    {
 -                        if ($p = $this->p_vars['docblock_template']->getKeyword('package'))
 -                        {
 -                            $this->p_vars['docblock']->addKeyword('package',$p);
 -                            $this->p_vars['docblock']->setExplicitPackage();
 -                        }
 -                        if ($p = $this->p_vars['docblock_template']->getKeyword('category'))
 -                        {
 -                            $this->p_vars['docblock']->addKeyword('category',$p);
 -                            $this->p_vars['docblock']->setExplicitCategory();
 -                        }
 -                        if ($p = $this->p_vars['docblock_template']->getKeyword('subpackage'))
 -                        {
 -                            $this->p_vars['docblock']->addKeyword('subpackage',$p);
 -                        }
 -                    }
 -                    $tags = $this->p_vars['docblock_template']->listTags();
 -                    foreach($tags as $tag)
 -                    {
 -                        $this->p_vars['docblock']->addKeyword($tag->keyword,$tag->value);
 -                    }
 -                    $this->p_vars['docblock_desc']->add($this->p_vars['docblock_template']->desc);
 -                    if (!count($this->p_vars['docblock']->params)) $this->p_vars['docblock']->params = $this->p_vars['docblock_template']->params;
 -                }
 -                if ($a = strpos(trim($this->p_vars['shortdesc']),'<p>') === 0)
 -                $this->p_vars['shortdesc'] = substr($this->p_vars['shortdesc'],strpos($this->p_vars['shortdesc'],'<p>') + 4);
 -                $this->p_vars[$this->p_vars['docblock_type']]->setShortDesc($this->p_vars['shortdesc']);
 -            }
 -            for($i = 0; $i < count($this->p_vars['line']); $i++)
 -            {
 -                // the line will not be set if it doesn't start with a *
 -                if (isset($this->p_vars['line'][$i]))
 -                $this->p_vars['docblock_desc']->add($this->p_vars['line'][$i]);
 -            }
 -
 -
 -            $this->p_vars[$this->p_vars['docblock_type']]->setDesc($this->p_vars['docblock_desc']);
 -            unset($this->p_vars['docblock_desc']);
 -//            var_dump($this->p_vars[$this->p_vars['docblock_type']]);
 -//            exit;
 -            if ($this->p_vars['docblock_type'] == 'docblock')
 -            {
 -                $this->publishEvent(PHPDOCUMENTOR_EVENT_DOCBLOCK,$this->p_vars[$this->p_vars['docblock_type']]);
 -                unset($this->p_vars[$this->p_vars['docblock_type']]);
 -                $this->p_vars[$this->p_vars['docblock_type']] = new parserDocBlock();
 -            }
 -            $this->p_flags['in_desc'] = true;
 -            $this->p_flags['in_tag'] = false;
 -            $this->p_flags['useperiod'] = false;
 -            $this->p_vars['line'] = array();
 -            $this->p_vars['linecount'] = 0;
 -            $this->p_flags['start_docblock'] = true;
 -            $this->p_flags['valid_newline'] = true;
 -            $this->wp->setWhitespace(false);
 -        }
 -    }
 -
 -    /**
 -     * handler for DOCKEYWORD_DESC.
 -     * this handler parses the short and long description of a dockeyword
 -     */
 -    
 -    function JavaDochandleDesc($word, $pevent)
 -    {
 -        if ($this->p_flags['valid_newline'])
 -        {
 -            if ($word == '@' && $this->p_flags['startline'])
 -            {
 -                return $this->handleTag($word, $pevent);
 -            }
 -            if (!isset($this->p_vars['line'][$this->p_vars['linecount']]))
 -            {
 -                $this->p_vars['line'][$this->p_vars['linecount']] = new parserStringWithInlineTags;
 -            }
 -            if ($this->p_vars['last_word'] == "." && $this->p_flags['useperiod'] == false)
 -            {
 -                $this->p_vars['periodline'] = $this->p_vars['linecount'];
 -                $this->p_vars['shortdesc'] = new parserDesc;
 -                for($i = 0; ($i <= $this->p_vars['periodline']) && ($i < count($this->p_vars['line'])); $i++)
 -                {
 -                    if (isset($this->p_vars['line'][$i]))
 -                    $this->p_vars['shortdesc']->add($this->p_vars['line'][$i]);
 -                }
 -                $this->p_flags['useperiod'] = true;
 -            }
 -            $this->p_vars['line'][$this->p_vars['linecount']]->add($word);
 -//            debug("DESC $word");
 -        }
 -        $this->handleCR($word);
 -    }
 -    
 -    /**
 -     * handler for DOCBLOCK.
 -     * this handler recognizes @tags in DocBlocks and parses them for display.
 -     * It also parses out unknown tags into their own array for use by the docblock
 -     */
 -    
 -    function BetterhandleDocblock($word, $pevent)
 -    {
 -        $e1 = $this->checkEventPush( $word, $pevent);
 -        if (!$this->wp->returnWhiteSpace)
 -        {
 -            addErrorDie(PDERROR_NEED_WHITESPACE);
 -        }
 -        if (!isset($this->p_vars[$this->p_vars['docblock_type']]) || !$this->p_vars[$this->p_vars['docblock_type']])
 -        {
 -            $this->p_vars[$this->p_vars['docblock_type']] = new parserDocBlock();
 -            $this->p_vars['returntype'] = false;
 -            $this->p_vars['vartype'] = false;
 -            $this->p_flags['startdocblock'] = true;
 -            $this->p_flags['valid_newline'] = true;
 -            $this->p_flags['startline'] = true;
 -            $this->p_flags['newline'] = true;
 -            $this->p_flags['in_desc'] = true;
 -            $this->p_flags['in_tag'] = false;
 -            $this->p_flags['useperiod'] = false;
 -            $this->p_vars['line'] = array();
 -            $this->p_vars['linecount'] = 0;
 -        }
 -        $e = $this->checkEventPop( $word, $pevent);
 -        if (!$e1 && !$e)
 -        {
 -            if ($this->p_flags['in_desc']) $this->handleDesc($word, $pevent);
 -            else $this->handleTags($word, $pevent);
 -        }
 -        if ($e)
 -        {
 -            if (!isset($this->p_vars['periodline'])) $this->p_vars['periodline'] = 0;
 -            if ($this->p_vars['periodline'] > 3)
 -            {
 -                $this->p_flags['useperiod'] = false;
 -            } else
 -            {
 -                for($i = 0; $i < $this->p_vars['periodline']; $i++)
 -                {
 -                    if (isset($this->p_vars['line'][$i]))
 -                    {
 -                        if ($this->p_vars['line'][$i]->trimmedStrlen() == 0 && isset($this->p_vars['line'][$i - 1]) && $this->p_vars['line'][$i - 1]->trimmedStrlen())
 -                        {
 -                            $this->p_vars['periodline'] = $i;
 -                        }
 -                    }
 -                }
 -            }
 -            // figure out the shortdesc
 -            if ($this->p_flags['useperiod'] === false)
 -            {
 -                // use the first non blank line for short desc
 -                for($i = 0; $i < count($this->p_vars['line']); $i++)
 -                {
 -                    if (!isset($this->p_vars['line'][$i]))
 -                    $this->p_vars['line'][$i] = new parserStringWithInlineTags;
 -                    if ($this->p_vars['line'][$i]->trimmedStrlen() > 0)
 -                    {
 -                        $this->p_vars['periodline'] = $i;
 -                        $i = count($this->p_vars['line']);
 -                    }
 -                }
 -                        
 -                // check to see if we are going to use a blank line to end the shortdesc
 -                // this can only be in the first 4 lines
 -                if (count($this->p_vars['line']) > 4)
 -                {
 -                    $max = 4;
 -                } else {
 -                    $max = count($this->p_vars['line']);
 -                }
 -
 -                for($i = $this->p_vars['periodline']; $i < $max; $i++)
 -                {
 -                    if (isset($this->p_vars['line'][$i]))
 -                    if ($this->p_vars['line'][$i]->trimmedStrlen() == 0)
 -                    {
 -                        $this->p_vars['periodline'] = $i;
 -                        $i = $max;
 -                    }
 -                }
 -            }
 -
 -            if ($this->p_vars['docblock_type'] == 'docblock')
 -            {
 -                $this->p_vars['shortdesc'] = new parserDesc;
 -                for($i = 0; ($i <= $this->p_vars['periodline']) && ($i < count($this->p_vars['line'])); $i++)
 -                {
 -                    if (isset($this->p_vars['line'][$i]))
 -                    $this->p_vars['shortdesc']->add($this->p_vars['line'][$i]);
 -                }
 -                $this->p_vars['periodline']++;
 -    
 -                $this->p_vars['docblock_desc'] = new parserDesc;
 -                if (isset($this->p_vars['docblock_template']))
 -                {
 -                    // copy template values if not overridden
 -                    if (!$this->p_vars['docblock']->getExplicitPackage())
 -                    {
 -                        if ($p = $this->p_vars['docblock_template']->getKeyword('package'))
 -                        {
 -                            $this->p_vars['docblock']->addKeyword('package',$p);
 -                            $this->p_vars['docblock']->setExplicitPackage();
 -                        }
 -                        if ($p = $this->p_vars['docblock_template']->getKeyword('category'))
 -                        {
 -                            $this->p_vars['docblock']->addKeyword('category',$p);
 -                            $this->p_vars['docblock']->setExplicitCategory();
 -                        }
 -                        if ($p = $this->p_vars['docblock_template']->getKeyword('subpackage'))
 -                        {
 -                            $this->p_vars['docblock']->addKeyword('subpackage',$p);
 -                        }
 -                    }
 -                    $tags = $this->p_vars['docblock_template']->listTags();
 -                    foreach($tags as $tag)
 -                    {
 -                        $this->p_vars['docblock']->addKeyword($tag->keyword,$tag->value);
 -                    }
 -                    if (!count($this->p_vars['docblock']->params)) $this->p_vars['docblock']->params = $this->p_vars['docblock_template']->params;
 -                    $this->p_vars['docblock_desc']->add($this->p_vars['docblock_template']->desc);
 -                }
 -    //            echo "i = ".$this->p_vars['periodline']."; i < " . count($this->p_vars['line']) . "\n";
 -                for($i = $this->p_vars['periodline']; $i < count($this->p_vars['line']); $i++)
 -                {
 -                    // the line will not be set if it doesn't start with a *
 -                    if (isset($this->p_vars['line'][$i]))
 -                    $this->p_vars['docblock_desc']->add($this->p_vars['line'][$i]);
 -                }
 -            } else
 -            {
 -                $this->p_vars['shortdesc'] = new parserDesc;
 -                for($i = 0; ($i <= $this->p_vars['periodline']) && ($i < count($this->p_vars['line'])); $i++)
 -                {
 -                    if (isset($this->p_vars['line'][$i]))
 -                    $this->p_vars['shortdesc']->add($this->p_vars['line'][$i]);
 -                }
 -                $this->p_vars['periodline']++;
 -    
 -                $this->p_vars['docblock_desc'] = new parserDesc;
 -                for($i=$this->p_vars['periodline']; $i < count($this->p_vars['line']); $i++)
 -                {
 -                    if (isset($this->p_vars['line'][$i]))
 -                    $this->p_vars['docblock_desc']->add($this->p_vars['line'][$i]);
 -                }
 -            }
 -
 -
 -            $this->p_vars[$this->p_vars['docblock_type']]->setShortDesc($this->p_vars['shortdesc']);
 -            $this->p_vars[$this->p_vars['docblock_type']]->setDesc($this->p_vars['docblock_desc']);
 -            unset($this->p_vars['docblock_desc']);
 -//            var_dump($this->p_vars[$this->p_vars['docblock_type']]);
 -//            exit;
 -            if ($this->p_vars['docblock_type'] == 'docblock')
 -            {
 -                $this->publishEvent(PHPDOCUMENTOR_EVENT_DOCBLOCK,$this->p_vars[$this->p_vars['docblock_type']]);
 -                unset($this->p_vars[$this->p_vars['docblock_type']]);
 -                $this->p_vars[$this->p_vars['docblock_type']] = new parserDocBlock();
 -            } else
 -            {
 -                $this->publishEvent(PHPDOCUMENTOR_EVENT_DOCBLOCK_TEMPLATE,$this->p_vars[$this->p_vars['docblock_type']]);
 -            }
 -            $this->p_flags['in_desc'] = true;
 -            $this->p_flags['in_tag'] = false;
 -            $this->p_flags['useperiod'] = false;
 -            $this->p_vars['line'] = array();
 -            $this->p_vars['linecount'] = 0;
 -            $this->p_flags['start_docblock'] = true;
 -            $this->p_flags['valid_newline'] = true;
 -            $this->wp->setWhitespace(false);
 -            $this->p_vars['docblock_type'] = 'docblock';
 -        }
 -    }
 -    
 -    /**
 -     * Handles docblock templates
 -     * @tutorial phpDocumentor.howto.pkg#basics.docblocktemplate
 -     */
 -    function handleDocBlockTemplate($word, $pevent)
 -    {
 -        $this->p_vars['docblock_type'] = 'docblock_template';
 -        $this->p_vars['event_stack']->popEvent();
 -        $this->p_vars['event_stack']->pushEvent(PARSER_EVENT_DOCBLOCK);
 -        // fool the docblock handler into thinking everything is totally normal
 -        $this->p_vars['last_word'] = '/**';
 -        $pevent = PARSER_EVENT_DOCBLOCK;
 -        $this->BetterhandleDocBlock($word, $pevent);
 -    }
 -    
 -    /**
 -     * Handles closing docblock templates /**#@-* /
 -     * @tutorial phpDocumentor.howto.pkg#basics.docblocktemplate
 -     */
 -    function handleEndDocBlockTemplate($word, $pevent)
 -    {
 -        unset($this->p_vars['docblock_template']);
 -        $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWSTATE,PHPDOCUMENTOR_EVENT_END_DOCBLOCK_TEMPLATE);
 -        $this->p_vars['event_stack']->popEvent();
 -    }
 -    /**#@-*/
 -    /**
 -     * Handles a new line in a DocBlock
 -     * @param string token containing a newline \n
 -     * @access private
 -     */
 -    function handleCR($word)
 -    {
 -        $this->laststart = $this->p_flags['startline'];
 -        if ($word == "\n" || $word == ".\n")
 -        {
 -            $this->p_flags['start_docblock'] = false;
 -            $this->p_flags['newline'] = true;
 -            $this->p_flags['valid_newline'] = false;
 -            if ($this->p_flags['in_desc'] && !$this->p_flags['useperiod'])
 -            {
 -                if ($word == ".\n")
 -                {
 -                    $this->p_flags['useperiod'] = true;
 -                    $this->p_vars['periodline'] = $this->p_vars['linecount'];
 -                }
 -            }
 -        } else
 -        {
 -            if ($this->p_flags['valid_newline'] && strlen(trim($word)))
 -            {
 -                $this->p_flags['startline'] = false;
 -            }
 -            if ($this->p_flags['newline'] && ($word == '*' || $this->p_flags['start_docblock']))
 -            {
 -                $this->p_flags['newline'] = false;
 -                $this->p_flags['valid_newline'] = true;
 -                if (!$this->p_flags['start_docblock'])
 -                $this->p_vars['linecount']++;
 -                $this->p_flags['startline'] = true;
 -                $justset = true;
 -//                debug('valid newline');
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * handler for DOCKEYWORD_DESC.
 -     * this handler parses the short and long description of a dockeyword
 -     * @access private
 -     */
 -    
 -    function handleDesc($word, $pevent)
 -    {
 -//        echo "|$word|\n";
 -        if ($this->p_flags['valid_newline'])
 -        {
 -            if ($word == '@' && $this->p_flags['startline'])
 -            {
 -                return $this->handleTag($word, $pevent);
 -            }
 -            if ($this->p_vars['last_word'] == ". " || $this->p_vars['last_word'] == ".\t")
 -            {
 -                $this->p_flags['useperiod'] = true;
 -                $this->p_vars['periodline'] = $this->p_vars['linecount'];
 -                $this->p_vars['linecount']++;
 -            }
 -            if (!isset($this->p_vars['line'][$this->p_vars['linecount']]))
 -            {
 -                $this->p_vars['line'][$this->p_vars['linecount']] = new parserStringWithInlineTags;
 -            }
 -            if ($this->p_flags['startline'])
 -            {
 -                if ($word[0] == ' ') $word = substr($word,1);
 -//                $word = ltrim($word," \t");
 -            }
 -            if ($word != '') $this->p_vars['line'][$this->p_vars['linecount']]->add($word);
 -//            debug("DESC $word");
 -        }
 -        $this->handleCR($word);
 -    }
 -    
 -    /**#@+
 -     * @access private
 -     * @param string token parsed from source
 -     * @param integer parser constant from {@link Parser.inc}
 -     */
 -    /**
 -     * handler for DOCKEYWORD_TAGS.
 -     * this handler recognizes @tags in DocBlocks and parses them for display
 -     * I think this may be unused.  We'll delete from 1.1 if so
 -     */
 -    function handleTags($word, $pevent)
 -    {
 -        if ($this->p_flags['valid_newline'])
 -        {
 -//            debug("TAGS $word");
 -        }
 -        $this->handleCR($word);
 -    }
 -    
 -    /**
 -     * handler for DOCKEYWORD.
 -     * this handler recognizes @tags in DocBlocks and parses them for display
 -     */
 -    function handleTag($word, $pevent)
 -    {
 -        if ($this->p_flags['in_desc'] && !$this->p_flags['valid_newline'])
 -        {
 -            $this->p_vars['event_stack']->popEvent();
 -            return $this->handleDesc($word, $pevent);
 -        }
 -//        if ($this->p_vars['last_word'] == '@') fancy_debug('here'.$word,$this->p_flags['startline'],$this->p_flags['in_tag']);
 -        if ($this->p_vars['tagname'] == 'author')
 -        {
 -            if ($word == '<')
 -            {
 -                $this->p_vars['event_stack']->pushEvent(PARSER_EVENT_DOCKEYWORD_EMAIL);
 -                return $this->handleDockeywordEmail($word, $pevent);
 -            }
 -        }
 -        if ($this->checkEventPush( $word, $pevent)) return;
 -        if ($this->p_vars['last_word'] == '@' && !$this->p_flags['startline'] && $this->p_flags['in_desc'])
 -        {
 -            // fix 1203445
 -            if (!isset($this->p_vars['line'][$this->p_vars['linecount']]))
 -            {
 -                $this->p_vars['line'][$this->p_vars['linecount']] = new parserStringWithInlineTags;
 -            }
 -            $this->p_vars['event_stack']->popEvent();
 -            $this->p_vars['line'][$this->p_vars['linecount']]->add('@');
 -            return $this->handleDesc($word, $pevent);
 -        } elseif($this->p_vars['last_word'] == '@' && !strlen(trim($word)) && empty($this->p_vars['tagname']) && $this->p_flags['in_desc'])
 -        {
 -            // fix 1203445
 -            if (!isset($this->p_vars['line'][$this->p_vars['linecount']]))
 -            {
 -                $this->p_vars['line'][$this->p_vars['linecount']] = new parserStringWithInlineTags;
 -            }
 -            $pevent = $this->p_vars['event_stack']->popEvent();
 -            $this->p_vars['line'][$this->p_vars['linecount']]->add('@');
 -            return $this->handleDesc($word, $pevent);
 -        }
 -        if ($word == '@' && $this->p_flags['startline'] && $this->p_flags['in_tag'])
 -        {
 -            $this->wp->backupPos($word);
 -            $white = $this->wp->returnWhiteSpace;
 -            $this->wp->setWhitespace(true);
 -            $word1 = $this->wp->getWord();
 -            $this->wp->backupPos($word1);
 -            if (strlen(trim($word1)))
 -            {
 -                $this->endTag();
 -            }
 -            $this->wp->getWord();
 -            $this->wp->setWhitespace($white);
 -        }
 -        $this->p_flags['in_tag'] = true;
 -        $e = $this->checkEventPop($word, $pevent);
 -        if (!$e)
 -        {
 -            if ($this->p_flags['valid_newline'])
 -            {
 -                if (($this->p_flags['startline'] || $this->laststart) && $word != '@')
 -                {
 -                    if ($this->p_vars['last_word'] == '@')
 -                    {
 -//                        debug("TAGSTART $word");
 -                        $this->p_flags['in_tag'] = true;
 -                        $this->p_vars['tagname'] = $word;
 -                        $this->p_flags['startline'] = false;
 -                        $this->p_vars['tag_value'] = new parserStringWithInlineTags;
 -                    } else
 -                    {
 -//                        debug("TAG1 $word");
 -                        if (isset($this->tagHandlers[$this->p_vars['tagname']]))
 -                        $handler = $this->tagHandlers[$this->p_vars['tagname']];
 -                        else $handler = $this->tagHandlers['*'];
 -                        $this->$handler($word);
 -                    }
 -                } else
 -                {
 -                    if (empty($this->p_vars['tagname']))
 -                    {
 -                        if ($this->p_flags['in_desc'])
 -                        {
 -                            $this->p_flags['in_tag'] = false;
 -                            // fix 1203445
 -                            if (!isset($this->p_vars['line'][$this->p_vars['linecount']]))
 -                            {
 -                                $this->p_vars['line'][$this->p_vars['linecount']] =
 -                                    new parserStringWithInlineTags;
 -                            }
 -                            $this->p_vars['line'][$this->p_vars['linecount']]->add('@');
 -                            $this->p_vars['event_stack']->popEvent();
 -                            $this->handleCR($word);
 -                            return $this->handleDesc($word, $pevent);
 -                        }
 -                    }
 -//                    debug("TAG2 $word");
 -                    if (isset($this->tagHandlers[$this->p_vars['tagname']]))
 -                    $handler = $this->tagHandlers[$this->p_vars['tagname']];
 -                    else $handler = $this->tagHandlers['*'];
 -                    $this->$handler($word);
 -                }
 -            }
 -            $this->handleCR($word);
 -        }
 -        $this->p_flags['in_desc'] = false;
 -        if ($e)
 -        {
 -            $this->endTag();
 -            $this->wp->setWhitespace(false);
 -            // walk back a word
 -            $this->wp->backupPos($word);
 -            $this->wp->setWhitespace(true);
 -        }
 -    }
 -    /**#@-*/
 -    /**
 -     * Called to clean up at the end of parsing a @tag in a docblock
 -     */
 -    function endTag()
 -    {
 -        if (isset($this->tagHandlers[$this->p_vars['tagname']]))
 -        $handler = $this->tagHandlers[$this->p_vars['tagname']];
 -        else $handler = $this->tagHandlers['*'];
 -        $this->$handler(false);
 -        $this->p_vars['tagname'] = '';
 -        $this->p_flags['startline'] = true;
 -//        debug("ENDTAG");
 -    }
 -    
 -    /**#@+
 -     * Tag Handlers
 -     * @param string
 -     */
 -    /**
 -     * Handles all standard tags that only have a description
 -     */
 -    function defaultTagHandler($word)
 -    {
 -        if ($word !== false)
 -        {
 -            $this->p_vars['tag_value']->add($word);
 -        } else
 -        {
 -            $this->p_vars[$this->p_vars['docblock_type']]->addKeyword($this->p_vars['tagname'],$this->p_vars['tag_value']);
 -        }
 -    }
 -    
 -    /**
 -     * Handles tags like '@filesource' that only work in PHP 4.3.0+
 -     */
 -    function invalidTagHandler($word)
 -    {
 -        if ($word === false)
 -        {
 -            addError(PDERROR_TAG_NOT_HANDLED,$this->p_vars['tagname']);
 -        }
 -    }
 -    
 -    /**
 -     * handles @package
 -     * @tutorial tags.package.pkg
 -     */
 -    function packageTagHandler($word)
 -    {
 -        if ($word !== false)
 -        {
 -            $this->p_vars['tag_value']->add($word);
 -        } else
 -        {
 -            $this->p_vars[$this->p_vars['docblock_type']]->addKeyword($this->p_vars['tagname'],$this->p_vars['tag_value']);
 -            $this->p_vars[$this->p_vars['docblock_type']]->setExplicitPackage();
 -        }
 -    }
 -    
 -    /**
 -     * handles @example
 -     * @tutorial tags.example.pkg
 -     */
 -    function exampleTagHandler($word)
 -    {
 -        if ($word !== false)
 -        {
 -            $this->p_vars['tag_value']->add($word);
 -        } else
 -        {
 -            $this->p_vars[$this->p_vars['docblock_type']]->addExample($this->p_vars['tag_value'], $this->p_vars['parsepath']);
 -        }
 -    }
 -    
 -    /**
 -     * handles @category
 -     * @tutorial tags.category.pkg
 -     */
 -    function categoryTagHandler($word)
 -    {
 -        if ($word !== false)
 -        {
 -            $this->p_vars['tag_value']->add($word);
 -        } else
 -        {
 -            $this->p_vars[$this->p_vars['docblock_type']]->addKeyword($this->p_vars['tagname'],$this->p_vars['tag_value']);
 -            $this->p_vars[$this->p_vars['docblock_type']]->setExplicitCategory();
 -        }
 -    }
 -    
 -    /**
 -     * handles @global
 -     * @tutorial tags.global.pkg
 -     */
 -    function globalTagHandler($word)
 -    {
 -        if ($word !== false)
 -        {
 -            // no data yet
 -            $a = trim($this->p_vars['tag_value']->getString());
 -            if (empty($a))
 -            {
 -                // not an empty word
 -                if (trim($word) != '')
 -                {
 -                    if (!empty($this->p_vars['global_type']))
 -                    {
 -                        if (!$this->p_flags['define_global'] && !$this->p_flags['function_global'])
 -                        {
 -                            // @global type $GLOBALVARNAME ?
 -                            if (substr($word,0,1) == '$')
 -                            {
 -                                $this->p_flags['define_global'] = true;
 -                                $this->p_flags['function_global'] = false;
 -                                $this->p_vars['find_global'] = $word;
 -                            } else
 -                            { // function @global type description
 -                                $this->p_flags['function_global'] = true;
 -                                $this->p_flags['define_global'] = false;
 -                                $this->p_vars['tag_value']->add($word);
 -                            }
 -                        } else
 -                        {
 -                            if ($this->p_flags['define_global'])
 -                            {
 -                                $this->p_vars['find_global'] .= $word;
 -                            } elseif($this->p_flags['function_global'])
 -                            {
 -                                // description, to be added to the tag
 -                                $this->p_vars['tag_value']->add($word);
 -                            }
 -                        }
 -                    } else
 -                    {
 -                        $this->p_vars['global_type'] = $word;
 -                    } 
 -                } else $this->p_vars['tag_value']->add($word); // add whitespace to the tag description
 -            } else
 -            { // tag_value has data, must be a function @global
 -                $this->p_vars['tag_value']->add($word);
 -            }
 -        } else
 -        { // endtag
 -            if ($this->p_flags['define_global'])
 -            {
 -                $this->findGlobal($this->p_vars['find_global']);
 -            }
 -            elseif ($this->p_flags['function_global'])
 -            {
 -                $this->p_vars[$this->p_vars['docblock_type']]->addFuncGlobal($this->p_vars['global_type'],$this->p_vars['tag_value']);
 -                $this->p_vars['global_type'] = '';
 -            }
 -            else
 -            {
 -                addError(PDERROR_MALFORMED_GLOBAL_TAG);
 -            }
 -            $this->p_vars['find_global'] = '';
 -            $this->p_flags['define_global'] = false;
 -            $this->p_flags['function_global'] = false;
 -        }
 -    }
 -    
 -    /**
 -     * handles @staticvar
 -     * @tutorial tags.staticvar.pkg
 -     */
 -    function staticvarTagHandler($word)
 -    {
 -        if ($word !== false)
 -        {
 -            if (!$this->p_vars['returntype']) $this->p_vars['returntype'] = trim($word);
 -            else
 -            {
 -                if (!$this->p_vars['paramname'])
 -                {
 -                    if (substr(trim($word),0,1) == "$")
 -                    $this->p_vars['paramname'] = trim($word);
 -                    else $this->p_vars['tag_value']->add($word);
 -                } else
 -                {
 -                    if (0)//strtolower($this->p_vars['paramtype']) == 'object')
 -                    {
 -                        if (strlen(trim($word)))
 -                        $this->p_vars['paramname'] = trim($word);
 -                    } else $this->p_vars['tag_value']->add($word);
 -                }
 -            }
 -        } else
 -        {
 -            if (!$this->p_vars['paramname'])
 -            $this->p_vars[$this->p_vars['docblock_type']]->addStaticVar(null,$this->p_vars['returntype'],$this->p_vars['tag_value']);
 -            else
 -            $this->p_vars[$this->p_vars['docblock_type']]->addStaticVar($this->p_vars['paramname'],$this->p_vars['returntype'],$this->p_vars['tag_value']);
 -            $this->p_vars['paramname'] = false;
 -            $this->p_vars['returntype'] = false;
 -        }
 -    }
 -    
 -    /**
 -     * handles @uses
 -     * @tutorial tags.uses.pkg
 -     */
 -    function usesTagHandler($word)
 -    {
 -        if ($word !== false)
 -        {
 -            if (!$this->p_vars['seelement']) $this->p_vars['seelement'] = trim($word);
 -            else
 -            {
 -                $this->p_vars['tag_value']->add($word);
 -            }
 -        } else
 -        {
 -            $see = new parserStringWithInlineTags;
 -            $see->add($this->p_vars['seelement']);
 -            $this->p_vars[$this->p_vars['docblock_type']]->addUses($see,$this->p_vars['tag_value']);
 -            $this->p_vars['seelement'] = false;
 -        }
 -    }
 -    
 -    /**
 -     * handles @param
 -     * @tutorial tags.param.pkg
 -     */
 -    function paramTagHandler($word)
 -    {
 -        if ($word !== false)
 -        {
 -            if (!$this->p_vars['returntype']) $this->p_vars['returntype'] = trim($word);
 -            else
 -            {
 -                if (!$this->p_vars['paramname'])
 -                {
 -                    if (substr(trim($word),0,1) == "$" || substr(trim($word),0,2) == "&$")
 -                    $this->p_vars['paramname'] = trim($word);
 -                    else $this->p_vars['tag_value']->add($word);
 -                } else
 -                {
 -                    if (0)//strtolower($this->p_vars['paramtype']) == 'object')
 -                    {
 -                        if (strlen(trim($word)))
 -                        $this->p_vars['paramname'] = trim($word);
 -                    } else $this->p_vars['tag_value']->add($word);
 -                }
 -            }
 -        } else
 -        {
 -            if (!$this->p_vars['paramname'])
 -            $this->p_vars[$this->p_vars['docblock_type']]->addParam(null,$this->p_vars['returntype'],$this->p_vars['tag_value']);
 -            else
 -            $this->p_vars[$this->p_vars['docblock_type']]->addParam($this->p_vars['paramname'],$this->p_vars['returntype'],$this->p_vars['tag_value']);
 -            $this->p_vars['paramname'] = false;
 -            $this->p_vars['returntype'] = false;
 -        }
 -    }
 -    
 -    /**
 -     * handles @return
 -     * @tutorial tags.return.pkg
 -     */
 -    function returnTagHandler($word)
 -    {
 -        if ($word !== false)
 -        {
 -            if (!$this->p_vars['returntype']) $this->p_vars['returntype'] = trim($word);
 -            else
 -            {
 -                if (strtolower($this->p_vars['returntype']) == 'object')
 -                {
 -                    if (strlen(trim($word)))
 -                    $this->p_vars['returntype'] = trim($word);
 -                } else $this->p_vars['tag_value']->add($word);
 -            }
 -        } else
 -        {
 -            $this->p_vars[$this->p_vars['docblock_type']]->addReturn($this->p_vars['returntype'],$this->p_vars['tag_value']);
 -            $this->p_vars['returntype'] = false;
 -        }
 -    }
 -    
 -    /**
 -     * handles @var
 -     * @tutorial tags.var.pkg
 -     */
 -    function varTagHandler($word)
 -    {
 -        if ($word)
 -        {
 -            if (!$this->p_vars['vartype']) $this->p_vars['vartype'] = trim($word);
 -            else
 -            {
 -                if (strtolower($this->p_vars['vartype']) == 'object')
 -                {
 -                    if (strlen(trim($word)))
 -                    $this->p_vars['vartype'] = trim($word);
 -                }
 -                else $this->p_vars['tag_value']->add($word);
 -            }
 -        } elseif ($word === false)
 -        {
 -            $this->p_vars[$this->p_vars['docblock_type']]->addVar($this->p_vars['vartype'],$this->p_vars['tag_value']);
 -            $this->p_vars['vartype'] = false;
 -        }
 -    }
 -    /**#@-*/
 -    /** @access private */
 -    function getSource()
 -    {
 -        $this->p_flags['get_source'] = true;
 -    }
 -    /**#@+
 -     * @access private
 -     * @param string token parsed from source
 -     * @param integer parser constant from {@link Parser.inc}
 -     */
 -    /**
 -     * handler for DOCKEYWORD_EMAIL.
 -     * this handler recognizes angle brackets < and > surrounding an email address in an @author tag,
 -     * and returns a mailto: hyperlink
 -     */
 -    
 -    function handleDockeywordEmail($word, $pevent)
 -    {
 -        //echo $this->wp->getPos() . ": |$word|\n";
 -        if (!$this->checkEventPop($word,$pevent) && $word != "<")
 -        {
 -            if (strstr($word,"@"))
 -            {
 -                $this->p_vars['tag_value']->add('<');
 -                $this->p_vars['tag_value']->add(new parserLinkInlineTag("mailto:$word",$word));
 -                $this->p_vars['tag_value']->add('>');
 -            } else {
 -                $this->p_vars['tag_value']->add("<$word>");
 -            }
 -        }
 -    }
 -
 -    /**
 -     * handler for INLINE_DOCKEYWORD.
 -     * this handler recognizes {@inline tags} like link, and parses them, replacing them directly
 -     * in the text flow with their output.
 -     */
 -    
 -    function handleInlineDockeyword($word, $pevent)
 -    {
 -        //        echo $this->wp->getPos() . ": |$word|\n";
 -
 -        //        echo "docktype: $this->p_vars['inline_dockeyword_type']\n";
 -        if (!isset($this->p_vars['inline_dockeyword_type'])) $this->p_vars['inline_dockeyword_type'] = false;
 -        if (!isset($this->p_vars['inline_dockeyword_data'])) $this->p_vars['inline_dockeyword_data'] = '';
 -        if (!$this->p_vars['inline_dockeyword_type'])
 -        {
 -            if (in_array($word,$this->allowableInlineTags))
 -            {
 -                if ($word == '}')
 -                $this->p_vars['inline_dockeyword_type'] = '';
 -                else
 -                $this->p_vars['inline_dockeyword_type'] = strtolower($word);
 -                $this->p_vars['whitesp'] = $this->wp->returnWhiteSpace;
 -                $this->wp->setWhiteSpace(true);
 -            } else {
 -                if ($this->p_flags['in_desc'])
 -                {
 -                    // fix 1203445
 -                    if (!isset($this->p_vars['line'][$this->p_vars['linecount']]))
 -                    {
 -                        $this->p_vars['line'][$this->p_vars['linecount']] =
 -                            new parserStringWithInlineTags;
 -                    }
 -                    if ($word == '}')
 -                    {
 -                        $this->p_vars['line'][$this->p_vars['linecount']]->add('{@');
 -                    } else
 -                    {
 -                        $this->p_vars['line'][$this->p_vars['linecount']]->add('{@'.$word);
 -                    }
 -                } elseif($this->p_flags['in_tag'])
 -                {
 -                    if ($word == '}')
 -                    $this->p_vars['tag_value']->add('{@'.$word);
 -                    else
 -                    $this->p_vars['tag_value']->add('{@'.$word);
 -                }
 -                $this->p_vars['event_stack']->popEvent();
 -                $this->p_vars['inline_dockeyword_type'] = false;
 -                $this->p_vars['inline_dockeyword_data'] = '';
 -                return;
 -            }
 -        } else
 -        {
 -            if ($word != "}")
 -            {
 -                $this->p_vars['inline_dockeyword_data'] .= $word;
 -            }
 -        }
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $this->wp->setWhiteSpace($this->p_vars['whitesp']);
 -            if ($this->p_vars['inline_dockeyword_type']=='link')
 -            {
 -                // support hyperlinks of any protocol
 -                if (is_numeric(strpos($this->p_vars['inline_dockeyword_data'],'://')) || (strpos(trim($this->p_vars['inline_dockeyword_data']),'mailto:') === 0))
 -                {
 -                    // if there is more than 1 parameter, the stuff after the space is the hyperlink text
 -                    if (strpos(trim($this->p_vars['inline_dockeyword_data']),' '))
 -                    {
 -                        $i1 = strpos(trim($this->p_vars['inline_dockeyword_data']),' ') + 1;
 -                        $link = substr(trim($this->p_vars['inline_dockeyword_data']),0,$i1 - 1);
 -                        $text = substr(trim($this->p_vars['inline_dockeyword_data']),$i1);
 -                        $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($link,$text);
 -//                        '<a href="'.$link.'">'.$text.'</a>';
 -                    }
 -                    else
 -                    {
 -                        $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($this->p_vars['inline_dockeyword_data'],$this->p_vars['inline_dockeyword_data']);
 -                    }
 -//                    '<a href="'.$this->p_vars['inline_dockeyword_data'].'">'.$this->p_vars['inline_dockeyword_data'].'</a>';
 -                } else
 -                {
 -                    if (!strpos($this->p_vars['inline_dockeyword_data'],','))
 -                    {
 -                        $testp = explode('#',$this->p_vars['inline_dockeyword_data']);
 -                        if (count($testp) - 1)
 -                        $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($this->p_vars['inline_dockeyword_data'],$testp[1]);
 -                        else
 -                        $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($this->p_vars['inline_dockeyword_data'],$this->p_vars['inline_dockeyword_data']);
 -                    } else
 -                    $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($this->p_vars['inline_dockeyword_data'],$this->p_vars['inline_dockeyword_data']);
 -                }
 -            }
 -            if ($this->p_vars['inline_dockeyword_type'] == 'tutorial')
 -            {
 -                $this->p_vars['inline_dockeyword_data'] = new parserTutorialInlineTag($this->p_vars['inline_dockeyword_data'],$this->p_vars['inline_dockeyword_data']);
 -            }
 -            if ($this->p_vars['inline_dockeyword_type'] == 'source')
 -            {
 -                $this->getSource();
 -                $this->p_vars['inline_dockeyword_data'] = new parserSourceInlineTag($this->p_vars['inline_dockeyword_data']);
 -            }
 -            if ($this->p_vars['inline_dockeyword_type'] == 'inheritdoc')
 -            {
 -                $this->p_vars['inline_dockeyword_data'] = new parserInheritdocInlineTag();
 -            }
 -            if ($word == '*/')
 -            {
 -                if (!isset($this->p_vars['inline_dockeyword_type'])) $this->p_vars['inline_dockeyword_type'] = '';
 -                if (!isset($this->p_vars['tagname'])) $this->p_vars['tagname'] = '';
 -                if (!isset($this->p_vars['tag_value']) || !is_object($this->p_vars['tag_value'])) $this->p_vars['tag_value'] = new parserStringWithInlineTags;
 -                addError(PDERROR_UNTERMINATED_INLINE_TAG,$this->p_vars['inline_dockeyword_type'],$this->p_vars['tagname'],'@'.$this->p_vars['tagname'].' '.$this->p_vars['tag_value']->getString());
 -        // when we add the error class, raise error here: we reached the end of the docblock
 -                $this->wp->backupPos($word); 
 -            }
 -            if ($this->p_flags['in_desc'])
 -            {
 -                $this->p_vars['line'][$this->p_vars['linecount']]->add($this->p_vars['inline_dockeyword_data']);
 -                $this->p_vars['inline_dockeyword_type'] = false;
 -                $this->p_vars['inline_dockeyword_data'] = '';
 -            }
 -            elseif ($this->p_flags['in_tag'])
 -            {
 -                $this->p_vars['tag_value']->add($this->p_vars['inline_dockeyword_data']);
 -                $this->p_vars['inline_dockeyword_type'] = false;
 -                $this->p_vars['inline_dockeyword_data'] = '';
 -            }
 -        }
 -    }
 -
 -    /**
 -     * handler for INCLUDE.
 -     * this handler recognizes include/require/include_once/include_once statements, and publishes the
 -     * data to Render
 -     */
 -    
 -    function handleInclude($word, $pevent)
 -    {
 -        if (!$this->p_flags['in_include'])
 -        {
 -            $this->p_vars['linenum'] = $this->wp->linenum;
 -        }
 -        $this->p_flags['in_include'] = true;
 -        $a = $this->checkEventPush( $word, $pevent);
 -        if (!$this->p_flags['includename_isset'])
 -        {
 -            $this->p_flags['includename_isset'] = true;
 -            $this->p_vars['include_name'] = $this->p_vars['last_word'];
 -            if ($a)
 -            $this->p_vars['include_value'] = '';
 -            else
 -            $this->p_vars['include_value'] = $word;
 -            unset($this->p_vars['quote_data']);
 -        } else
 -        {
 -            if (!$a)
 -            {
 -                if (empty($this->p_vars['include_params_data']))
 -                {
 -                    if (isset($this->p_vars['quote_data']))
 -                    {
 -                        $this->p_vars['include_value'] .= '"'.$this->p_vars['quote_data'].'"';
 -                        unset($this->p_vars['quote_data']);
 -                    }
 -                    if ($word != ';')
 -                    $this->p_vars['include_value'] .= $word;
 -                }
 -            } else
 -            {
 -                $this->p_vars['include_params_data'] = '';
 -            }
 -        }
 -
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $this->p_vars['include'] = new parserInclude;
 -            $this->p_vars['include']->setLineNumber($this->p_vars['linenum']);
 -            $this->p_flags['in_include'] = false;
 -            $this->p_vars['include']->setName($this->p_vars['include_name']);
 -            $this->p_vars['include']->setValue($this->p_vars['include_value']);
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_INCLUDE,$this->p_vars['include']);
 -            $this->p_flags['includename_isset'] = false;
 -            unset($this->p_vars['include']);
 -            unset($this->p_vars['include_name']);
 -            unset($this->p_vars['include_value']);
 -            unset($this->p_vars['include_params_data']);
 -        }
 -    }
 -    
 -    /**
 -     * handler for INCLUDE_PARAMS.
 -     * this handler parses the contents of ( ) in include/require/include_once/include_once statements
 -     */
 -    
 -    function handleIncludeParams($word, $pevent)
 -    {
 -        $this->checkEventPush( $word, $pevent);
 -        
 -        $this->p_flags['include_parens'] = true;
 -        if(!isset($this->p_vars['include_params_data'])) $this->p_vars['include_params_data'] = '';
 -        
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            if (isset($this->p_vars['quote_data']))
 -            {
 -                $this->p_vars['include_value'] = $this->p_vars['include_params_data'].'"'.$this->p_vars['quote_data'].'"';
 -                unset($this->p_vars['quote_data']);
 -            } else {
 -                if (!empty($this->p_vars['include_params_data']))
 -                $this->p_vars['include_value'] = $this->p_vars['include_params_data'];
 -                else
 -                $this->p_vars['include_value'] = trim($this->p_vars['last_word']);
 -            }
 -        }
 -        if (isset($this->p_vars['quote_data']))
 -        {
 -            $this->p_vars['include_params_data'] .= '"'.$this->p_vars['quote_data'].'"';
 -            unset($this->p_vars['quote_data']);
 -        }
 -        if (($word != "'") && ($word != '"'))
 -        $this->p_vars['include_params_data'] .= $word;
 -    }
 -    
 -    /**
 -     * handler for INCLUDE_PARAMS_PARENTHESIS.
 -     * this handler takes all parenthetical statements within file in:
 -     * include statement include(file), and handles them properly
 -     */
 -    
 -    function handleIncludeParamsParenthesis($word, $pevent)
 -    {
 -        if (isset($this->p_vars['quote_data']))
 -        {
 -            $this->p_vars['include_params_data'] .= '"'.$this->p_vars['quote_data'].'"';
 -            unset($this->p_vars['quote_data']);
 -        }
 -        $this->p_vars['include_params_data'] .= $word;
 -        $this->checkEventPush( $word, $pevent);
 -        $this->checkEventPop( $word, $pevent);
 -    }
 -    /**#@-*/
 -    /**
 -     * this function checks whether parameter $word is a token for pushing a new event onto the Event Stack.
 -     * @return mixed    returns false, or the event number
 -     */
 -    
 -    function checkEventPush($word,$pevent)
 -    {
 -        $e = false;
 -        if (isset($this->pushEvent[$pevent]))
 -        {
 -            if (isset($this->pushEvent[$pevent][strtolower($word)]))
 -            $e = $this->pushEvent[$pevent][strtolower($word)];
 -        }
 -        if ($e)
 -        {
 -            $this->p_vars['event_stack']->pushEvent($e);
 -            return $e;
 -        } else {
 -            return false;
 -        }
 -    }
 -
 -    /**
 -     * this function checks whether parameter $word is a token for popping the current event off of the Event Stack.
 -     * @return mixed    returns false, or the event number popped off of the stack
 -     */
 -    
 -    function checkEventPop($word,$pevent)
 -    {
 -        if (!isset($this->popEvent[$pevent])) return false;
 -        if (in_array(strtolower($word),$this->popEvent[$pevent]))
 -        {
 -            return $this->p_vars['event_stack']->popEvent();
 -        } else {
 -            return false;
 -        }
 -    }
 -
 -    /**
 -     * setup the parser tokens, and the pushEvent/popEvent arrays
 -     * @see $tokens, $pushEvent, $popEvent
 -     */
 -    
 -    function setupStates()
 -    {
 -        $this->tokens[STATE_PHPCODE]            = array(" ", "\t",";","?>","</script>","/**#@+","/**#@-*/","/**", "//","/*","#","\r\n","\n","\r","(",'<<<','"',"'");
 -        $this->tokens[STATE_QUOTE]            = array("\\\"","\\\\","\"");
 -        $this->tokens[STATE_LOGICBLOCK]            = array("{","}","\"","'","/*","//","#","?>","</script>",'<<<','global','static');
 -        $this->tokens[STATE_FUNC_GLOBAL]        = array("\"","'","/*","//","#",";",",");
 -        $this->tokens[STATE_STATIC_VAR]        = array("\"","'","/*","//","#",";",",",'=','array');
 -        $this->tokens[STATE_STATIC_VAR_VALUE]        = array("/*","//","#"," ","\t",";","=","\"","'","array",",");
 -        $this->tokens[STATE_NOEVENTS]            = array("<?php","<?",'<script language="php">');
 -        $this->tokens[STATE_COMMENTBLOCK]        = array("*/","\n");
 -        $this->tokens[STATE_COMMENT]            = array("\r\n","\r","\n");
 -        $this->tokens[STATE_DEFINE]            = array(" ","(",";");
 -        $this->tokens[STATE_DEFINE_PARAMS]        = array("/*","//","#",",",")"," ","'","\"","(");
 -        $this->tokens[STATE_DEFINE_PARAMS_PARENTHESIS]    = array("(","'","\"",")");
 -        $this->tokens[STATE_FUNCTION_PARAMS]        = array("/*","//","#","\"",",",")","="," ","'","(");
 -        $this->tokens[STATE_SINGLEQUOTE]        = array("'","\\'","\\\\");
 -        $this->tokens[STATE_CLASS]            = array(" ", "\t", "?>", "</script>", ";", "}", "{",
 -                                                      "/**#@+", "/**#@-*/", "/**", "//", "/*", "#",
 -                                                      "\r\n", "\n", "\r","(");
 -        $this->tokens[STATE_DOCBLOCK]            = array("*/","*","@","\r\n","\n","\r",". ",".\n",".\t",'{@');
 -        $this->tokens[STATE_DOCBLOCK_TEMPLATE]            = array("*/","*","@","\r\n","\n","\r",". ",".\n",".\t",'{@');
 -        $this->tokens[STATE_DOCKEYWORD]            = array("@","*/","*","\n","\r\n","\r","\t"," ","<",">",'{@');
 -        $this->tokens[STATE_INLINE_DOCKEYWORD]        = array("{@","}","\t"," ","*/");
 -        $this->tokens[STATE_DOCKEYWORD_EMAIL]        = array(">","\n","\r\n","\r");
 -        $this->tokens[STATE_VAR]            = array("/*","//","#"," ","\t",";","=",",","\"","'","array");
 -        $this->tokens[STATE_GLOBAL]            = array("/*","//","#"," ","\t",";","=","\"","'");
 -        $this->tokens[STATE_GLOBAL_VALUE]            = array("/*","//","#"," ","\t",";","=","\"","'","array");
 -        $this->tokens[STATE_ARRAY]            = array("/*","//","#","(",")","\"","'","array");
 -        $this->tokens[STATE_FUNCTION]            = array("(","{","}"," ","\t","&","/*","//","#");
 -        $this->tokens[STATE_OUTPHP]            = array("<?php","<?",'<script language="php">');
 -        $this->tokens[STATE_EOFQUOTE]            = array(" ","\t","\n");
 -        $this->tokens[STATE_ESCAPE]            = false;// this tells the word parser to just cycle
 -        $this->tokens[STATE_INCLUDE]            = array(" ","(",";","'",'"');
 -        $this->tokens[STATE_INCLUDE_PARAMS]        = array("/*",")"," ","'","\"","(");
 -        $this->tokens[STATE_INCLUDE_PARAMS_PARENTHESIS]    = array("(","'","\"",")");
 -
 -        // For each event word to event mapings
 -        $this->pushEvent[PARSER_EVENT_QUOTE] = 
 -            array(
 -                "\\"    => PARSER_EVENT_ESCAPE
 -            );
 -        $this->popEvent[PARSER_EVENT_QUOTE] = array("\"");
 -##########################
 -         
 -        $this->pushEvent[PARSER_EVENT_LOGICBLOCK] = 
 -            array(
 -                "\""    => PARSER_EVENT_QUOTE,
 -                "'"    => PARSER_EVENT_SINGLEQUOTE,
 -                "//"     => PARSER_EVENT_COMMENT,
 -                "#"     => PARSER_EVENT_COMMENT,
 -                "global"    => PARSER_EVENT_FUNC_GLOBAL,
 -                "static"    => PARSER_EVENT_STATIC_VAR,
 -                "/*"     => PARSER_EVENT_COMMENTBLOCK,
 -                "{"    => PARSER_EVENT_LOGICBLOCK,
 -                "?>"    => PARSER_EVENT_OUTPHP,
 -                "</script>"    => PARSER_EVENT_OUTPHP,
 -                "<<<"    => PARSER_EVENT_EOFQUOTE
 -            );
 -        $this->popEvent[PARSER_EVENT_LOGICBLOCK] = array("}");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_FUNC_GLOBAL] =
 -            array(
 -                "\""    => PARSER_EVENT_QUOTE,
 -                "'"    => PARSER_EVENT_SINGLEQUOTE,
 -                "//"     => PARSER_EVENT_COMMENT,
 -                "#"     => PARSER_EVENT_COMMENT,
 -                "/*"     => PARSER_EVENT_COMMENTBLOCK,
 -            );
 -        $this->popEvent[PARSER_EVENT_FUNC_GLOBAL] = array(";");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_STATIC_VAR] =
 -            array(
 -                "\""    => PARSER_EVENT_QUOTE,
 -                "'"    => PARSER_EVENT_SINGLEQUOTE,
 -                "//"     => PARSER_EVENT_COMMENT,
 -                "#"     => PARSER_EVENT_COMMENT,
 -                "/*"     => PARSER_EVENT_COMMENTBLOCK,
 -                "="        => PARSER_EVENT_STATIC_VAR_VALUE,
 -            );
 -        $this->popEvent[PARSER_EVENT_STATIC_VAR] = array(";");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_STATIC_VAR_VALUE] = 
 -            array(
 -                "\""    => PARSER_EVENT_QUOTE,
 -                "'"    => PARSER_EVENT_SINGLEQUOTE,
 -                "array" => PARSER_EVENT_ARRAY,
 -                "/*"     => PARSER_EVENT_COMMENTBLOCK,
 -                "//"     => PARSER_EVENT_COMMENT,
 -                "#"     => PARSER_EVENT_COMMENT
 -            );
 -        $this->popEvent[PARSER_EVENT_STATIC_VAR_VALUE] = array(";",",");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_NOEVENTS] = 
 -            array(
 -                "<?php" => PARSER_EVENT_PHPCODE,
 -                "<?" => PARSER_EVENT_PHPCODE,
 -                '<script language="php">' => PARSER_EVENT_PHPCODE,
 -            );
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_PHPCODE] = 
 -            array(
 -                "function"     => PARSER_EVENT_FUNCTION,
 -                "class"     => PARSER_EVENT_CLASS,
 -                "define"     => PARSER_EVENT_DEFINE,
 -                "include_once" => PARSER_EVENT_INCLUDE,
 -                "require_once" => PARSER_EVENT_INCLUDE,
 -                "include"    => PARSER_EVENT_INCLUDE,
 -                "require"    => PARSER_EVENT_INCLUDE,
 -                "//"         => PARSER_EVENT_COMMENT,
 -                "#"         => PARSER_EVENT_COMMENT,
 -                "/*"         => PARSER_EVENT_COMMENTBLOCK,
 -                "/**"         => PARSER_EVENT_DOCBLOCK,
 -                "/**#@+"    => PARSER_EVENT_DOCBLOCK_TEMPLATE,
 -                "/**#@-*/"    => PARSER_EVENT_END_DOCBLOCK_TEMPLATE,
 -                "\""        => PARSER_EVENT_QUOTE,
 -                "'"        => PARSER_EVENT_SINGLEQUOTE,
 -                "<<<"        => PARSER_EVENT_EOFQUOTE,
 -                "?>"         => PARSER_EVENT_OUTPHP,
 -                "</script>"         => PARSER_EVENT_OUTPHP,
 -            );
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_FUNCTION] = 
 -            array(
 -                "("     => PARSER_EVENT_FUNCTION_PARAMS,
 -                "//"     => PARSER_EVENT_COMMENT,
 -                "#"     => PARSER_EVENT_COMMENT,
 -                "/*"     => PARSER_EVENT_COMMENTBLOCK,
 -                "{"     => PARSER_EVENT_LOGICBLOCK
 -            );
 -        $this->popEvent[PARSER_EVENT_FUNCTION] = array("}");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_DOCBLOCK] = 
 -            array(
 -                "@"     => PARSER_EVENT_DOCKEYWORD,
 -                "{@"    => PARSER_EVENT_INLINE_DOCKEYWORD
 -            );
 -        $this->popEvent[PARSER_EVENT_DOCBLOCK] = array("*/");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_DOCBLOCK_TEMPLATE] = 
 -            array(
 -                "@"     => PARSER_EVENT_DOCKEYWORD,
 -                "{@"    => PARSER_EVENT_INLINE_DOCKEYWORD
 -            );
 -        $this->popEvent[PARSER_EVENT_DOCBLOCK_TEMPLATE] = array("*/");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_CLASS] = 
 -            array(
 -                "function"     => PARSER_EVENT_FUNCTION,
 -                "var"         => PARSER_EVENT_VAR,
 -                "/**"         => PARSER_EVENT_DOCBLOCK,
 -                "/**#@+"    => PARSER_EVENT_DOCBLOCK_TEMPLATE,
 -                "/**#@-*/"    => PARSER_EVENT_END_DOCBLOCK_TEMPLATE,
 -                "//"         => PARSER_EVENT_COMMENT,
 -                "/*"         => PARSER_EVENT_COMMENTBLOCK,
 -                "#"         => PARSER_EVENT_COMMENT,
 -                "?>"        => PARSER_EVENT_OUTPHP,
 -                "</script>"    => PARSER_EVENT_OUTPHP,
 -            );
 -        $this->popEvent[PARSER_EVENT_CLASS] = array("}");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_DEFINE] = 
 -            array(
 -                "/*"     => PARSER_EVENT_COMMENTBLOCK,
 -                "("     => PARSER_EVENT_DEFINE_PARAMS
 -            );
 -        $this->popEvent[PARSER_EVENT_DEFINE] = array(";");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_INCLUDE] = 
 -            array(
 -                "/*"     => PARSER_EVENT_COMMENTBLOCK,
 -                "("     => PARSER_EVENT_INCLUDE_PARAMS,
 -                "'"        => PARSER_EVENT_SINGLEQUOTE,
 -                '"'        => PARSER_EVENT_QUOTE,
 -            );
 -        $this->popEvent[PARSER_EVENT_INCLUDE] = array(";");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_DEFINE_PARAMS] = 
 -            array(
 -                "("    =>    PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS,
 -                "'"        => PARSER_EVENT_SINGLEQUOTE,
 -                '"' =>    PARSER_EVENT_QUOTE,
 -                "/*"     => PARSER_EVENT_COMMENTBLOCK,
 -                "//"     => PARSER_EVENT_COMMENT,
 -                "#"     => PARSER_EVENT_COMMENT
 -            );
 -        $this->popEvent[PARSER_EVENT_DEFINE_PARAMS] = array(")");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_INCLUDE_PARAMS] = 
 -            array(
 -                "("    =>    PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS,
 -                "'" =>    PARSER_EVENT_SINGLEQUOTE,
 -                '"' =>    PARSER_EVENT_QUOTE,
 -            );
 -        $this->popEvent[PARSER_EVENT_INCLUDE_PARAMS] = array(")");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS] =
 -            array(
 -                "("    =>    PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS,
 -                "'" =>    PARSER_EVENT_SINGLEQUOTE,
 -                '"' =>    PARSER_EVENT_QUOTE,
 -            );
 -        $this->popEvent[PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS] = array(")");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS] =
 -            array(
 -                "("    =>    PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS,
 -                "'" =>    PARSER_EVENT_SINGLEQUOTE,
 -                '"' =>    PARSER_EVENT_QUOTE,
 -            );
 -        $this->popEvent[PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS] = array(")");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_VAR] = 
 -            array(
 -                "\""    => PARSER_EVENT_QUOTE,
 -                "'"    => PARSER_EVENT_SINGLEQUOTE,
 -                "array" => PARSER_EVENT_ARRAY,
 -                "/*"     => PARSER_EVENT_COMMENTBLOCK,
 -                "//"     => PARSER_EVENT_COMMENT,
 -                "#"     => PARSER_EVENT_COMMENT
 -            );
 -        $this->popEvent[PARSER_EVENT_VAR] = array(";");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_DEFINE_GLOBAL] = 
 -            array(
 -                "="    => PARSER_EVENT_GLOBAL_VALUE,
 -                "\""    => PARSER_EVENT_QUOTE,
 -                "'"    => PARSER_EVENT_SINGLEQUOTE,
 -                "/*"     => PARSER_EVENT_COMMENTBLOCK,
 -                "//"     => PARSER_EVENT_COMMENT,
 -                "#"     => PARSER_EVENT_COMMENT
 -            );
 -        $this->popEvent[PARSER_EVENT_DEFINE_GLOBAL] = array(";");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_GLOBAL_VALUE] = 
 -            array(
 -                "\""    => PARSER_EVENT_QUOTE,
 -                "'"    => PARSER_EVENT_SINGLEQUOTE,
 -                "array" => PARSER_EVENT_ARRAY,
 -                "/*"     => PARSER_EVENT_COMMENTBLOCK,
 -                "//"     => PARSER_EVENT_COMMENT,
 -                "#"     => PARSER_EVENT_COMMENT
 -            );
 -        $this->popEvent[PARSER_EVENT_GLOBAL_VALUE] = array(";");
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_COMMENT] = 
 -            array(
 -                "\\"    => PARSER_EVENT_ESCAPE
 -            );
 -        $this->popEvent[PARSER_EVENT_COMMENT] = array("\n");
 -##########################
 -
 -        $this->popEvent[PARSER_EVENT_COMMENTBLOCK] = array("*/");
 -##########################
 -        $this->pushEvent[PARSER_EVENT_SINGLEQUOTE] = 
 -            array(
 -                "\\"    => PARSER_EVENT_ESCAPE
 -            );
 -
 -        $this->popEvent[PARSER_EVENT_SINGLEQUOTE] = array("'");
 -##########################
 -        $this->pushEvent[PARSER_EVENT_FUNCTION_PARAMS] = 
 -            array(
 -                "\""    => PARSER_EVENT_QUOTE,
 -                "'"    => PARSER_EVENT_SINGLEQUOTE,
 -                "array" => PARSER_EVENT_ARRAY,
 -                "/*"     => PARSER_EVENT_COMMENTBLOCK,
 -                "//"     => PARSER_EVENT_COMMENT,
 -                "#"     => PARSER_EVENT_COMMENT
 -            );
 -        $this->popEvent[PARSER_EVENT_FUNCTION_PARAMS] = array(")");
 -##########################
 -        $this->pushEvent[PARSER_EVENT_DOCKEYWORD] = 
 -            array(
 -//                "<"    => PARSER_EVENT_DOCKEYWORD_EMAIL,
 -                "{@" => PARSER_EVENT_INLINE_DOCKEYWORD,
 -            );
 -
 -        $this->popEvent[PARSER_EVENT_DOCKEYWORD] = array("*/");
 -##########################
 -
 -        $this->popEvent[PARSER_EVENT_INLINE_DOCKEYWORD] = array("}","*/");
 -##########################
 -
 -        $this->popEvent[PARSER_EVENT_OUTPHP] = array("<?php","<?",'<script language="php">');
 -##########################
 -
 -        $this->popEvent[PARSER_EVENT_DOCKEYWORD_EMAIL] = array(">","\n");
 -
 -##########################
 -        $this->pushEvent[PARSER_EVENT_ARRAY] = 
 -            array(
 -                "\""    => PARSER_EVENT_QUOTE,
 -                "'"    => PARSER_EVENT_SINGLEQUOTE,
 -                "array" => PARSER_EVENT_ARRAY,
 -                "/*"     => PARSER_EVENT_COMMENTBLOCK,
 -                "//"     => PARSER_EVENT_COMMENT,
 -                "#"     => PARSER_EVENT_COMMENT
 -            );
 -        $this->popEvent[PARSER_EVENT_ARRAY] = array(")");
 -##########################
 -    }
 -
 -    /**
 -     * tell the parser's WordParser {@link $wp} to set up tokens to parse words by.
 -     * tokens are word separators.  In English, a space or punctuation are examples of tokens.
 -     * In PHP, a token can be a ;, a parenthesis, or even the word "function"
 -     * @param    $value integer an event number
 -     * @see WordParser
 -     */
 -    
 -    function configWordParser($e)
 -    {
 -        $this->wp->setSeperator($this->tokens[($e + 100)]);
 -    }
 -
 -    /**
 -     * Debugging function, takes an event number and attempts to return its name
 -     * @param    $value integer an event number
 -     */
 -    
 -
 -    function getParserEventName ($value)
 -    {    
 -        $lookup = array(
 -            PARSER_EVENT_NOEVENTS         => "PARSER_EVENT_NOEVENTS",
 -            PARSER_EVENT_PHPCODE        => "PARSER_EVENT_PHPCODE",
 -            PARSER_EVENT_DOCBLOCK        => "PARSER_EVENT_DOCBLOCK",
 -            PARSER_EVENT_FUNCTION        => "PARSER_EVENT_FUNCTION",
 -            PARSER_EVENT_CLASS        => "PARSER_EVENT_CLASS",
 -            PARSER_EVENT_DEFINE        => "PARSER_EVENT_DEFINE",
 -            PARSER_EVENT_DEFINE_PARAMS    => "PARSER_EVENT_DEFINE_PARAMS",
 -            PARSER_EVENT_COMMENT        => "PARSER_EVENT_COMMENT",
 -            PARSER_EVENT_COMMENTBLOCK    => "PARSER_EVENT_COMMENTBLOCK",
 -            PARSER_EVENT_ESCAPE        => "PARSER_EVENT_ESCAPE",
 -            PARSER_EVENT_QUOTE        => "PARSER_EVENT_QUOTE",
 -            PARSER_EVENT_FUNCTION_PARAMS    => "PARSER_EVENT_FUNCTION_PARAMS",
 -            PARSER_EVENT_SINGLEQUOTE    => "PARSER_EVENT_SINGLEQUOTE",
 -            PARSER_EVENT_VAR        => "PARSER_EVENT_VAR",
 -            PARSER_EVENT_LOGICBLOCK        => "PARSER_EVENT_LOGICBLOCK",
 -            PARSER_EVENT_OUTPHP        => "PARSER_EVENT_OUTPHP",
 -            PARSER_EVENT_DOCKEYWORD        => "PARSER_EVENT_DOCKEYWORD",
 -            PARSER_EVENT_DOCKEYWORD_EMAIL    => "PARSER_EVENT_DOCKEYWORD_EMAIL",
 -            PARSER_EVENT_ARRAY        => "PARSER_EVENT_ARRAY",
 -            PARSER_EVENT_INLINE_DOCKEYWORD    =>    "PARSER_EVENT_INLINE_DOCKEYWORD",
 -            PARSER_EVENT_EOFQUOTE    =>    "PARSER_EVENT_EOFQUOTE",
 -            PARSER_EVENT_INCLUDE    =>    "PARSER_EVENT_INCLUDE",
 -            PARSER_EVENT_INCLUDE_PARAMS    =>    "PARSER_EVENT_INCLUDE_PARAMS",
 -            PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS    => "PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS",
 -            PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS => "PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS",
 -            PARSER_EVENT_DEFINE_GLOBAL => "PARSER_EVENT_DEFINE_GLOBAL",
 -            PARSER_EVENT_GLOBAL_VALUE => "PARSER_EVENT_GLOBAL_VALUE",
 -            PARSER_EVENT_FUNC_GLOBAL => "PARSER_EVENT_FUNC_GLOBAL",
 -            PARSER_EVENT_STATIC_VAR => "PARSER_EVENT_STATIC_VAR",
 -            PARSER_EVENT_DOCBLOCK_TEMPLATE => "PARSER_EVENT_DOCBLOCK_TEMPLATE",
 -            PARSER_EVENT_END_DOCBLOCK_TEMPLATE => "PARSER_EVENT_END_DOCBLOCK_TEMPLATE",
 -            PARSER_EVENT_METHOD_LOGICBLOCK => 'PARSER_EVENT_METHOD_LOGICBLOCK',
 -            PARSER_EVENT_CLASS_MEMBER => 'PARSER_EVENT_CLASS_MEMBER',
 -            PARSER_EVENT_METHOD => 'PARSER_EVENT_METHOD',
 -            PARSER_EVENT_QUOTE_VAR => 'PARSER_EVENT_QUOTE_VAR',
 -            PARSER_EVENT_ACCESS_MODIFIER => 'PARSER_EVENT_ACCESS_MODIFIER',
 -            PARSER_EVENT_IMPLEMENTS => 'PARSER_EVENT_IMPLEMENTS',
 -            PARSER_EVENT_CLASS_CONSTANT => 'PARSER_EVENT_CLASS_CONSTANT',
 -            PARSER_EVENT_VAR_ARRAY => 'PARSER_EVENT_VAR_ARRAY',
 -            PARSER_EVENT_VAR_ARRAY_COMMENT =>'PARSER_EVENT_VAR_ARRAY_COMMENT',
 -        );
 -        if (isset($lookup[$value]))
 -        return $lookup[$value];
 -        else return $value;
 -    }
 -}
 -
 -/**
 - * Global package page parser
 - *
 - * @deprecated in favor of tutorials
 - * @tutorial tutorials.pkg
 - * @package phpDocumentor
 - * @subpackage Parsers
 - */
 -class ppageParser extends Parser
 -{
 -    /** @var string */
 -    var $package = false;
 -    /** @var string */
 -    var $subpackage = '';
 -    /**
 -     * set up invariant Parser variables
 -     */
 -    function ppageParser()
 -    {
 -        Parser::Parser();
 -        $this->allowableInlineTags = $GLOBALS['_phpDocumentor_inline_tutorial_tags_allowed'];
 -        $this->eventHandlers = array();
 -        $this->eventHandlers[PARSER_EVENT_NOEVENTS] = 'defaultHandler';
 -        $this->eventHandlers[PARSER_EVENT_INLINE_DOCKEYWORD] = 'handleInlineDocKeyword';
 -    }
 -    
 -    /**
 -     * set up invariant Parser variables
 -     */
 -    function setupStates()
 -    {
 -        $this->tokens[STATE_NOEVENTS]        = array("{@","}");
 -        $this->tokens[STATE_INLINE_DOCKEYWORD]        = array("{@","}","\t"," ");
 -
 -##########################
 -
 -        $this->pushEvent[PARSER_EVENT_NOEVENTS] = 
 -            array(
 -                "{@" => PARSER_EVENT_INLINE_DOCKEYWORD
 -            );
 -##########################
 -
 -        $this->popEvent[PARSER_EVENT_INLINE_DOCKEYWORD] = array("}");
 -    }
 -    
 -    /**
 -     * Parse a new file
 -     *
 -     * @param    string    $parse_data
 -     * @param    string    $package
 -     * @param    int    $subpackage
 -     * @return    mixed    false or parsed data
 -     */
 -    function parse (&$parse_data,$xml,$package = 'default',$subpackage = '',$tutorial = '',
 -                    $category='default', $path='')
 -    {
 -        $this->setupStates();
 -        $this->p_vars['total'] = new parserPackagePage($package,$xml);
 -        $this->p_vars['tutorial'] = $tutorial;
 -        $this->_path = $path;
 -        $this->category = $category;
 -        $this->package = $package;
 -        if (!isset($subpackage) || !$subpackage) $subpackage = '';
 -        $this->subpackage = $subpackage;
 -        if (strlen($parse_data) == 0)
 -        {
 -            return false;
 -        }
 -
 -        // initialize variables so E_ALL error_reporting doesn't complain
 -        $pevent = 0;
 -        $word = 0;
 -        $this->p_vars['event_stack'] = new EventStack;
 -        // change this to a new ParserStringWithInlineTags, and change all $total .= blah to $total->add(blah)
 -        // then modify phpDocumentor_IntermediateParser->Convert to convert all package pages (the package page handler in phpDocumentor_IntermediateParser should
 -        // save them all in a variable) to perform the linking.  then, remove the legacy code from handleDocBlock
 -        // and handleClass in Render.inc, and do a loop that converts each package page, and passes it to handleEvent
 -        // just like Converter::walk does with the other elements.  The only other addition that might be good is a
 -        // new descendant of parserElement parserPackagePage that contains the data and stuff.  Hope this helps :)
 -        $total = '';
 -
 -        $this->wp->setup($parse_data);
 -
 -        $this->p_flags['reset_quote_data'] = true;
 -
 -        do
 -        {
 -            $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);
 -            }
 -
 -            if (!$xml)
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWSTATE,($pevent + 100));
 -
 -
 -            $this->p_vars['last_word'] = $word;
 -            $word = $this->wp->getWord();
 -
 -            if (0)//PHPDOCUMENTOR_DEBUG == true)
 -            {
 -                echo "LAST: |" . $this->p_vars['last_word'] . "|\n";
 -                echo "PEVENT: " . $this->getParserEventName($pevent) . "\n";
 -                echo $this->wp->getPos() . ": |$word|\n";
 -            }
 -            if (isset($this->eventHandlers[$pevent]))
 -            {
 -                $handle = $this->eventHandlers[$pevent];
 -                $this->$handle($word, $pevent);
 -            }
 -        } while (!($word === false));
 -        if (!$xml)
 -        $this->PublishEvent(PHPDOCUMENTOR_EVENT_PACKAGEPAGE,$this->p_vars['total']);
 -        else
 -        return $this->p_vars['total']->value;
 -    }
 -    
 -    /**
 -     * Handles all non-inline tags
 -     * 
 -     * @param string token
 -     * @param integer parser event
 -     */
 -    function defaultHandler($word, $pevent)
 -    {
 -        if (!$this->checkEventPush( $word, $pevent))
 -        {
 -            if ($word) $this->p_vars['total']->add($word);
 -        }
 -    }
 -
 -    /**
 -     * handler for INLINE_DOCKEYWORD.
 -     * this handler recognizes {@inline tags} like link, and parses them, replacing them directly
 -     * in the text flow with their output.
 -     * @param string token
 -     * @param integer parser event
 -     */
 -    
 -    function handleInlineDockeyword($word, $pevent)
 -    {
 -        //        echo $this->wp->getPos() . ": |$word|\n";
 -
 -        //        echo "docktype: $this->p_vars['inline_dockeyword_type']\n";
 -        if (!isset($this->p_vars['inline_dockeyword_type'])) $this->p_vars['inline_dockeyword_type'] = false;
 -        if (!isset($this->p_vars['inline_dockeyword_data'])) $this->p_vars['inline_dockeyword_data'] = '';
 -        if (!$this->p_vars['inline_dockeyword_type'])
 -        {
 -            if (in_array($word,$this->allowableInlineTags))
 -            {
 -                $this->p_vars['inline_dockeyword_type'] = strtolower($word);
 -                $this->p_vars['whitesp'] = $this->wp->returnWhiteSpace;
 -                $this->wp->setWhiteSpace(true);
 -            } else {
 -                if ($word == '}')
 -                $this->p_vars['total']->add('{@');
 -                else
 -                {
 -                    $this->p_vars['total']->add('{@'.$word);
 -                    $this->p_vars['event_stack']->popEvent();
 -                }
 -                $this->p_vars['inline_dockeyword_type'] = false;
 -                $this->p_vars['inline_dockeyword_data'] = '';
 -            }
 -        } else
 -        {
 -            if ($word != "}")
 -            {
 -                $this->p_vars['inline_dockeyword_data'] .= $word;
 -            }
 -        }
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $this->wp->setWhiteSpace($this->p_vars['whitesp']);
 -            if ($this->p_vars['inline_dockeyword_type']=='link')
 -            {
 -                // support hyperlinks of any protocol
 -                if (is_numeric(strpos($this->p_vars['inline_dockeyword_data'],'://')) || (strpos(trim($this->p_vars['inline_dockeyword_data']),'mailto:') === 0))
 -                {
 -                    // if there is more than 1 parameter, the stuff after the space is the hyperlink text
 -                    if (strpos(trim($this->p_vars['inline_dockeyword_data']),' '))
 -                    {
 -                        $i1 = strpos(trim($this->p_vars['inline_dockeyword_data']),' ') + 1;
 -                        $link = substr(trim($this->p_vars['inline_dockeyword_data']),0,$i1 - 1);
 -                        $text = substr(trim($this->p_vars['inline_dockeyword_data']),$i1);
 -                        $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($link,$text);
 -//                        '<a href="'.$link.'">'.$text.'</a>';
 -                    }
 -                    else
 -                    {
 -                        $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($this->p_vars['inline_dockeyword_data'],$this->p_vars['inline_dockeyword_data']);
 -                    }
 -//                    '<a href="'.$this->p_vars['inline_dockeyword_data'].'">'.$this->p_vars['inline_dockeyword_data'].'</a>';
 -                } else
 -                {
 -                    $testp = explode('#',$this->p_vars['inline_dockeyword_data']);
 -                    if (count($testp) - 1) $this->p_vars['inline_dockeyword_data'] = $testp[1];
 -                    $this->p_vars['inline_dockeyword_data'] = new parserLinkInlineTag($this->p_vars['inline_dockeyword_data'],$this->p_vars['inline_dockeyword_data']);
 -                }
 -            }
 -            if ($this->p_vars['inline_dockeyword_type']=='id')
 -            {
 -                $this->p_vars['inline_dockeyword_data'] = new parserIdInlineTag($this->category,$this->package,$this->subpackage,$this->p_vars['tutorial'],trim($this->p_vars['inline_dockeyword_data']));
 -            }
 -            if ($this->p_vars['inline_dockeyword_type'] == 'tutorial')
 -            {
 -                $this->p_vars['inline_dockeyword_data'] = new parserTutorialInlineTag($this->p_vars['inline_dockeyword_data'],$this->p_vars['inline_dockeyword_data']);
 -            }
 -            if ($this->p_vars['inline_dockeyword_type'] == 'toc')
 -            {
 -                $this->p_vars['inline_dockeyword_data'] = new parserTocInlineTag();
 -            }
 -            if ($this->p_vars['inline_dockeyword_type'] == 'example')
 -            {
 -                $example =
 -                    new parserExampleInlineTag($this->p_vars['inline_dockeyword_data'], $this->_path, true);
 -                $this->p_vars['total']->add($example->getProgramListing());
 -            } else
 -            {
 -                $this->p_vars['total']->add($this->p_vars['inline_dockeyword_data']);
 -            }
 -            $this->p_vars['inline_dockeyword_type'] = false;
 -            $this->p_vars['inline_dockeyword_data'] = '';
 -        }
 -    }
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/ParserData.inc b/buildscripts/PhpDocumentor/phpDocumentor/ParserData.inc deleted file mode 100644 index d7d0f285..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/ParserData.inc +++ /dev/null @@ -1,725 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * Parser Data Structures
 - * @package phpDocumentor
 - * @subpackage ParserData
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: ParserData.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
 - */
 -/**
 - * Contains information about a PHP file, used to group procedural elements
 - * together.
 - * @package phpDocumentor
 - * @subpackage ParserData
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: ParserData.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
 - */
 -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 = '';
 -    /**
 -     * @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'];
 -    }
 -    
 -    /**
 -     * @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
 -     */
 -    function setSource($source)
 -    {
 -        $this->source = $source;
 -    }
 -    
 -    /**
 -     * Sets the name to display in documentation (can be an alias set with @name)
 -     * @param string $file
 -     */
 -    function setFile($file)
 -    {
 -        $this->file = $file;
 -    }
 -    
 -    /**
 -     * @return string filename.ext or @name alias
 -     */
 -    function getFile()
 -    {
 -        if (!isset($this->file)) return false;
 -        return $this->file;
 -    }
 -    
 -    /**
 -     * @param string $path full path to file
 -     */
 -    function setPath($path)
 -    {
 -        // look for special windows case
 -        if(SMART_PATH_DELIMITER === '\\')
 -            $this->path = strtr($path,'/','\\');
 -        else
 -            $this->path = $path;
 -    }
 -    
 -    /**
 -     * @return string fully delimited path (OS-dependent format)
 -     */
 -    function getPath()
 -    {
 -        if (!isset($this->path)) return false;
 -        return $this->path;
 -    }
 -    
 -    /**
 -     * @param array $packages array of packages to display in documentation (package1,package2,...)
 -     * @see phpDocumentor_IntermediateParser::$packageoutput
 -     */
 -    function setPackageOutput($packages)
 -    {
 -        $this->packageOutput = $packages;
 -    }
 -    
 -    /**
 -     * @return array array of packages (package1,package2,...)
 -     * @see phpDocumentor_IntermediateParser::$packageoutput
 -     */
 -    function getPackageOutput()
 -    {
 -        return $this->packageOutput;
 -    }
 -    
 -    /**
 -     * @param string $name phpdoc-safe name (only _, numbers and letters) set by Parser::parse()
 -     * @see Parser::parse()
 -     */
 -    function setName($name)
 -    {
 -        $this->name = $name;
 -    }
 -    
 -    /**
 -     * @return string phpdoc-safe name (only _, numbers and letters)
 -     */
 -    function getName()
 -    {
 -        if (!isset($this->name)) return false;
 -        return $this->name;
 -    }
 -    
 -    /**
 -     * @param string $source path of this file relative to program root
 -     */
 -    function setSourceLocation($source)
 -    {
 -        $this->sourceLocation = $source;
 -    }
 -    
 -    /**
 -    * @param Converter
 -    * @param boolean 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
 -     */
 -    function getSourceLocation ($c,$pearize = false)
 -    {
 -        global $_phpDocumentor_options;
 -        if (!isset($this->sourceLocation)) return false;
 -        if ($pearize)
 -        {
 -            $sl = $this->sourceLocation;
 -            if (strpos($sl,'pear/'))
 -            {
 -                $sl = substr($sl,strpos($sl,'pear/') + 5);
 -                return $sl;
 -            } else
 -            {
 -                return str_replace($_phpDocumentor_options['Program_Root'] . PATH_DELIMITER,'',$sl);
 -            }
 -            return $sl;
 -        }
 -        return $this->sourceLocation;
 -    }
 -    /**
 -     * Not implemented in this version
 -     * @return boolean 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})
 - * @package phpDocumentor
 - * @subpackage ParserData
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: ParserData.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
 - */
 -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();
 -    /**
 -     * 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';
 -    
 -    /**
 -     * @param parserElement add a parsed element to the {@link $elements} array,
 -     *                      also sets {@link $clean} to false
 -     */
 -    function addElement(&$element)
 -    {
 -        $element->setPath($this->parent->path);
 -        if ($element->getType() == 'class' || $element->getType() == 'method' || $element->getType() == 'var'
 -            || $element->getType() == 'const')
 -        {
 -            $this->classelements[] = $element;
 -        } else
 -        {
 -            $this->elements[] = $element;
 -        }
 -        $this->clean = false;
 -    }
 -    
 -    /**
 -     * @param parserTutorial
 -     * @param Converter
 -     */
 -    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 boolean
 -     */
 -    function hasExplicitDocBlock()
 -    {
 -        return $this->_explicitdocblock;
 -    }
 -    
 -    /**
 -     * Tells this page that its DocBlock was not implicit
 -     */
 -    function explicitDocBlock()
 -    {
 -        $this->_explicitdocblock = true;
 -    }
 -    
 -    /**
 -     * @param parserElement element to add a new link (descended from
 -     * {@link abstractLink})to the {@link $links} array
 -     * @param string 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 name for page elements
 -     */
 -    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;
 -        }
 -    }
 -    
 -    function &getLink(&$c, $text = false)
 -    {
 -        return $c->getPageLink($this->parent->file, $this->docblock->package, $this->parent->path, $text);
 -    }
 -    
 -    /**
 -     * returns a list of all classes declared in a file
 -     * @param Converter &$c
 -     * @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();
 -    }
 -    
 -    /**
 -     * @param parserPage parent element of this parsed data
 -     */
 -    function setParent(&$parent)
 -    {
 -        $this->parent = $parent;
 -    }
 -    
 -    /**
 -     * @return bool returns the value of {@link $clean}
 -     */
 -    function isClean()
 -    {
 -        return $this->clean;
 -    }
 -    
 -    /**
 -     * @param parserDocBlock
 -     * @see parserDocBlock
 -     */
 -    function setDocBlock(&$docblock)
 -    {
 -        $this->docblock = $docblock;
 -    }
 -}
 -
 -/**
 - * Base class for all elements
 - * @package phpDocumentor
 - * @subpackage ParserData
 - * @abstract
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: ParserData.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
 - */
 -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;
 -
 -    /**
 -     * @return string returns value of {@link $type}
 -     */
 -    function getType()
 -    {
 -        return $this->type;
 -    }
 -    
 -    /**
 -     * @param mixed set the value of this element
 -     */
 -    function setValue($value)
 -    {
 -        $this->value = $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
 - * @package phpDocumentor
 - * @subpackage ParserData
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: ParserData.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
 - */
 -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 either a string or a {@link parserInlineTag}
 -     */
 -    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
 -     * @tutorial inlinetags.pkg
 -     * @return boolean
 -     */
 -    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 code ready to be highlighted
 -     */
 -    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)
 -     * @uses parserInlineTag::getString() removes inline tag length, as it is
 -     *       indeterminate until conversion.
 -     * @return string trimmed value
 -     */
 -    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
 -     * @see Converter::returnSee()
 -     * @param Converter
 -     * @param boolean true if one needs to postprocess
 -     * @param boolean false if the output should not be trimmed
 -     */
 -    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;
 -    }
 -}
 -
 -?>
\ No newline at end of file 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 <p> 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;
 -    }
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/ParserDocBlock.inc b/buildscripts/PhpDocumentor/phpDocumentor/ParserDocBlock.inc deleted file mode 100644 index 96ea1b20..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/ParserDocBlock.inc +++ /dev/null @@ -1,1165 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * DocBlock Parser Classes
 - * @package phpDocumentor
 - * @subpackage ParserDocBlock
 - */
 -/**
 - * represents a short or long description in a DocBlock ({@link parserDocBlock})
 - * @package phpDocumentor
 - * @subpackage ParserDocBlock
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: ParserDocBlock.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
 - */
 -class parserDesc extends parserStringWithInlineTags
 -{
 -    /**
 -     * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah'
 -     * always '_desc'
 -     * @var string
 -     */
 -    var $type = '_desc';
 -    
 -    /**
 -     * @param mixed like {@link parserStringWithInlineTags::add()}, this can be a string or parserInlineTag, but it can also be a
 -     *              parserStringWithInlineTags, and the contents will be merged
 -     */
 -    function add($stringOrClass)
 -    {
 -        if (is_object($stringOrClass))
 -        {
 -            if (phpDocumentor_get_class($stringOrClass) == 'parserstringwithinlinetags' ||
 -                phpDocumentor_get_class($stringOrClass) == 'parserdesc')
 -            {
 -                for($i=0;$i<count($stringOrClass->value);$i++)
 -                {
 -                    parserStringWithInlineTags::add($stringOrClass->value[$i]);
 -                }
 -            } else
 -            {
 -                parserStringWithInlineTags::add($stringOrClass);
 -            }
 -        } else return parserStringWithInlineTags::add($stringOrClass);
 -    }
 -    
 -    /**
 -     * @return boolean whether this desc has an {@}inheritdoc} inline tag
 -     */
 -    function hasInheritDoc()
 -    {
 -        for($i=0;$i<count($this->value);$i++)
 -        {
 -            if (phpDocumentor_get_class($this->value[$i])=='parserinheritdocinlinetag') return true;
 -        }
 -    }
 -    
 -    /**
 -     * @return boolean whether this desc has an {@}source} inline tag
 -     */
 -    function hasSource()
 -    {
 -        for($i=0;$i<count($this->value);$i++)
 -        {
 -            if (phpDocumentor_get_class($this->value[$i])=='parsersourceinlinetag') return true;
 -        }
 -    }
 -    
 -    /**
 -     * replaces {@}inheritdoc} with the contents of the parent DocBlock
 -     * @param parserDesc parent parserDesc, used to retrieve the description
 -     */
 -    function replaceInheritDoc($desc)
 -    {
 -        $value = $this->value;
 -        $this->value = array();
 -        for($i=0;$i<count($value);$i++)
 -        {
 -            if (phpDocumentor_get_class($value[$i])=='parserinheritdocinlinetag')
 -            {
 -                for($j=0;$j<count($desc->value);$j++)
 -                {
 -                    $this->add($desc->value[$j]);
 -                }
 -            } else $this->add($value[$i]);
 -        }
 -    }
 -}
 -
 -/**
 - * Represents a docblock and its components, {@link $desc}, {@link $sdesc}, {@link $tags}, and also {@link $params} for functions
 - * @package phpDocumentor
 - * @subpackage ParserDocBlock
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: ParserDocBlock.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
 - */
 -class parserDocBlock
 -{
 -    /**
 -     * @var parserDesc
 -     */
 -    var $desc = false;
 -    /**
 -     * @var array array of {@link parserDesc}s
 -     */
 -    var $processed_desc = false;
 -    /**
 -     * @var array array of {@link parserDesc}s
 -     */
 -    var $processed_sdesc = false;
 -    /**
 -     * @var parserDesc
 -     */
 -    var $sdesc = false;
 -    /**
 -     * Line number in the source on which this docblock begins
 -     * @since 1.2
 -     * @var false|integer
 -     */
 -    var $linenumber = false;
 -    /**
 -     * Line number in the source on which this docblock ends
 -     * @since 1.2
 -     * @var false|integer
 -     */
 -    var $endlinenumber = false;
 -    /**
 -     * array of {@link parserTag}s
 -     * @var array
 -     */
 -    var $tags = array();
 -    /**
 -     * array of unrecognized {@link parserTag}s
 -     * @var array
 -     */
 -    var $unknown_tags = array();
 -    /**
 -     * array of param data.
 -     * Format:
 -     * array(index of param in function parameter list -OR- parameter name =>
 -     *         parserStringWithInlineTags,...)
 -     * @var array
 -     */
 -    var $params = array();
 -    /**
 -     * array of global variable data.
 -     * Format:
 -     * array(index of global variable in @global tag list -OR- global variable name =>
 -     *         array(datatype,parserStringWithInlineTags),...)
 -     * @var array
 -     */
 -    var $funcglobals = array();
 -    
 -    /**
 -     * array of static variable data.
 -     * Format:
 -     * array(index of static variable in @global tag list -OR- static variable name =>
 -     *         {@link parserStaticvarTag},...)
 -     * @var array
 -     */
 -    var $statics = array();
 -    /**
 -     * This is either a {@link parserReturnTag} or false if no return tag is present
 -     * @var mixed
 -     */
 -    var $return = false;
 -    /**
 -     * This is either a {@link parserVarTag} or false if no var tag is present
 -     * @var mixed
 -     */
 -    var $var = false;
 -    /**
 -     * fix for bug 591396
 -     * @var boolean
 -     */
 -    var $explicitpackage = false;
 -    /**
 -     * fix for bug 708559
 -     * @var boolean
 -     */
 -    var $explicitcategory = false;
 -    /** @var string */
 -    var $category;
 -    /** @var string */
 -    var $package = 'default';
 -    /** @var string */
 -    var $subpackage = '';
 -    /**
 -     * whether this DocBlock has an @access tag
 -     * @var boolean */
 -    var $hasaccess = false;
 -    /**
 -     * whether this DocBlock has a @name tag
 -     * @var boolean */
 -    var $hasname = false;
 -    /**
 -     * description of package parsed from @package tag
 -     * Unused in this version
 -     * @var string
 -     */
 -    var $packagedescrip = '';
 -    /**
 -     * description of subpackage parsed from @package tag
 -     * Unused in this version
 -     * @var string
 -     */
 -    var $subpackagedescrip = '';
 -    /**
 -     * Determines whether a DocBlock can legally have a {@}source} tag
 -     * @tutorial tags.inlinesource.pkg
 -     * @var boolean
 -     * @access private
 -     */
 -    var $_canSource = false;
 -    
 -    /**
 -     * sets package to default
 -     * @global string default package name
 -     */
 -    function parserDocBlock()
 -    {
 -        global $phpDocumentor_DefaultPackageName;
 -        $this->package = $GLOBALS['phpDocumentor_DefaultPackageName'];
 -        $this->category = $GLOBALS['phpDocumentor_DefaultCategoryName'];
 -    }
 -    
 -    /**
 -     * Sets the starting line number for the DocBlock
 -     * @param integer
 -     */
 -    function setLineNumber($number)
 -    {
 -        $this->linenumber = $number;
 -    }
 -    
 -    /**
 -     * Retrieve starting line number
 -     * @return integer
 -     */
 -    function getLineNumber()
 -    {
 -        return $this->linenumber;
 -    }
 -    
 -    /**
 -     * Sets the ending line number for the DocBlock
 -     * @param integer
 -     */
 -    function setEndLineNumber($number)
 -    {
 -        $this->endlinenumber = $number;
 -    }
 -    
 -    /**
 -     * Retrieve ending line number
 -     * @return integer
 -     */
 -    function getEndLineNumber()
 -    {
 -        return $this->endlinenumber;
 -    }
 -    
 -    /**
 -     * Parse out any html tags from doc comments, and make them into
 -     * abstract structures
 -     * @uses parserDescParser::parse()
 -     */
 -    function postProcess()
 -    {
 -        if ($this->sdesc)
 -        {
 -            $parser = new parserDescParser;
 -            $parser->subscribe('*',$this);
 -            if ($this->desc) $parser->parse($this->desc->value);
 -            $parser->parse($this->sdesc->value,true);
 -        }
 -    }
 -    
 -    /**
 -     * Tells the DocBlock it can have a @filesource tag
 -     *
 -     * Only page-level DocBlocks may have a @filesource tag
 -     */
 -    function canSource()
 -    {
 -        $this->_canSource = true;
 -    }
 -    
 -    /**
 -     * Tells the DocBlock it can't have a @filesource tag
 -     *
 -     * Only page-level DocBlocks may have a @filesource tag
 -     */
 -    function cantSource()
 -    {
 -        $this->_canSource = false;
 -    }
 -    
 -    /**
 -     * Indirectly called after parsing by {@link postProcess}
 -     *
 -     * @param integer either 1 for long desc or 2 for short desc
 -     * @param array data organized into paragraphs.  Each entry is a {@link parserStringWithInlineTags}
 -     * @uses $processed_desc sets to the array passed from {@link parserDescParser::parse()}
 -     * @uses $processed_sdesc sets to the array passed from {@link parserDescParser::parse()}
 -     * @access private
 -     */
 -    function HandleEvent($event,$data)
 -    {
 -        if ($event == 1)
 -        $this->processed_desc = $data;
 -        else
 -        $this->processed_sdesc = $data;
 -    }
 -    
 -    /**
 -     * @param array
 -     */
 -    function updateModifiers($modifiers)
 -    {
 -        if (is_array($modifiers) && count($modifiers))
 -        {
 -            foreach ($modifiers as $modifier)
 -            {
 -                switch ($modifier)
 -                {
 -                    case 'private' :
 -                    case 'public' :
 -                    case 'protected' :
 -                        unset($this->tags['access']);
 -                        $x = new parserAccessTag($modifier);
 -                        if ($x->isvalid)
 -                        {
 -                            $this->hasaccess = true;
 -                            $this->tags['access'][] = $x;
 -                        }
 -                    break;
 -                    case 'static' :
 -                    case 'abstract' :
 -                        unset($this->tags[$modifier]);
 -                        $this->addKeyword($modifier, '');
 -                    break;
 -                }
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * Set the short description of the DocBlock
 -     *
 -     * Setting the short description is possible by passing in one of three
 -     * possible parameters:
 -     * <ul>
 -     *  <li>another DocBlock's short description</li>
 -     *  <li>another DocBlock, the short description will be extracted</li>
 -     *  <li>a Zend Studio-compatible @desc tag</li>
 -     * </ul>
 -     * @param parserDesc|parserDocBlock|parserTag sets {@link $sdesc}
 -     */
 -    function setShortDesc($desc)
 -    {
 -        if (phpDocumentor_get_class($desc) == 'parsertag')
 -        {
 -            $this->sdesc = new parserDesc;
 -            $this->processed_sdesc = $desc->value;
 -            return;
 -        }
 -        if (phpDocumentor_get_class($desc) == 'parserdesc') {
 -            $this->sdesc = $desc;
 -        } else
 -        {
 -            $this->sdesc = $desc->sdesc;
 -            $this->processed_sdesc = $desc->processed_sdesc;
 -        }
 -        
 -        if ($this->sdesc && $this->sdesc->hasSource())
 -        {
 -            addWarning(PDERROR_SOURCE_TAG_IGNORED,$this->sdesc->getString());
 -        }
 -    }
 -    
 -    /**
 -     * Passes to {@link parserStringWithInlineTags::setSource()}
 -     *
 -     * After passing, it calls {@link postProcess()} to set up the new
 -     * source
 -     * @param string|array tokenized highlight-ready source code
 -     * @param false|string name of class if this is a method source
 -     */
 -    function setSource($source, $class = false)
 -    {
 -        if ($this->desc)
 -        {
 -            $this->desc->setSource($source, $class);
 -            $this->postProcess();
 -        }
 -    }
 -    
 -    /**
 -     * @param parserDesc|parserDocBlock sets {@link $desc}
 -     */
 -    function setDesc($desc)
 -    {
 -        if (phpDocumentor_get_class($desc) == 'parserdesc')
 -        $this->desc = $desc;
 -        else
 -        {
 -            $this->desc = $desc->desc;
 -            $this->processed_desc = $desc->processed_desc;
 -        }
 -    }
 -    
 -    /**
 -     * Wrapper for {@link parserDesc::hasInheritDoc()}
 -     * @return boolean
 -     */
 -    function hasInheritDoc()
 -    {
 -        if (!$this->desc) return false;
 -        return $this->desc->hasInheritDoc();
 -    }
 -    
 -    /**
 -     * Wrapper for {@link parserDesc::replaceInheritDoc()}
 -     *
 -     * Also replaces {@}inheritdoc} in the {@link $processed_desc}
 -     * @param parserDesc
 -     */
 -    function replaceInheritDoc($desc)
 -    {
 -        if (!$this->desc) return false;
 -        $this->desc->replaceInheritDoc($desc->desc);
 -        $this->postProcess();
 -    }
 -    
 -    /**
 -     * @param Converter takes {@link $sdesc} and converts it to a string and returns it if present, otherwise returns ''
 -     * @return string
 -     */
 -    function getSDesc(&$converter)
 -    {
 -        if ($this->sdesc && $this->processed_sdesc)
 -        {
 -            $result = '';
 -            foreach($this->processed_sdesc as $desc)
 -            {
 -                if (count($desc->value))
 -                $result .= $desc->Convert($converter);
 -            }
 -            return $result;
 -        } else
 -        {
 -//            var_dump($this->desc,$this->processed_desc);
 -        }
 -        return '';
 -    }
 -    
 -    /**
 -     * @param Converter takes {@link $desc} and converts it to a string and returns it if present, otherwise returns ''
 -     * @return string
 -     */
 -    function getDesc(&$converter)
 -    {
 -        if ($this->desc && $this->processed_desc)
 -        {
 -            $result = '';
 -            foreach($this->processed_desc as $desc)
 -            {
 -                if (count($desc->value))
 -                $result .= $converter->EncloseParagraph($desc->Convert($converter));
 -            }
 -            return $result;
 -        } else
 -        {
 -//            var_dump($this->desc,$this->processed_desc);
 -        }
 -        return '';
 -    }
 -    
 -    /**
 -     * @param string $paramVar if empty, param is indexed in the order received and set using {@link changeParam()}
 -     * @param parserStringWithInlineTags $value
 -     */
 -    function addParam($paramVar, $paramType, $value)
 -    {
 -        if (empty($paramVar))
 -        $this->params[count($this->params)] = new parserParamTag($paramType,$value);
 -        else
 -        $this->params[$paramVar] = new parserParamTag($paramType,$value);
 -    }
 -    
 -    /**
 -     * @param integer $index index of parameter in the {@link $params} array
 -     * @param string $name name of the parameter to set in the $params array
 -     */
 -    function changeParam($index,$name)
 -    {
 -        $this->params[$name] = $this->params[$index];
 -        unset($this->params[$index]);
 -    }
 -    
 -    /**
 -     * replaces nameless parameters in the {@link $params} array with their names
 -     * @param array $params Format: array(parameter index => parameter name,...)
 -     */
 -    function updateParams($params)
 -    {
 -        for($i=0;$i<count($params);$i++)
 -        {
 -            if (isset($this->params[$i]))
 -            {
 -                $this->changeParam($i,$params[$i]);
 -            }
 -        }
 -        if (isset($this->tags))
 -        unset($this->tags['param']);
 -    }
 -    
 -    /**
 -     * Used to insert DocBlock Template tags into a docblock
 -     * @param parserTag tag
 -     * @global array used to determine whether to add ignored tags, or not
 -     */
 -    function addTag($tag)
 -    {
 -        global $_phpDocumentor_setting;
 -        if (phpDocumentor_setup::checkIgnoreTag($tag->keyword)) return;
 -        $value = $tag->value;
 -        if (is_array($value)) $value = $value[0];
 -        if ($tag->keyword == 'uses')
 -        {
 -            $this->addUses($value, $tag->_description);
 -        } else
 -        {
 -            $this->addKeyword($tag->keyword, $value);
 -        }
 -    }
 -
 -    /**
 -     * @param string $keyword tag name
 -     * @param parserStringWithInlineTags $value the contents of the tag
 -     * @global array used to determine whether to add the @internal tag or not
 -     */
 -    function addKeyword($keyword, $value)
 -    {
 -        global $_phpDocumentor_setting;
 -        if (phpDocumentor_setup::checkIgnoreTag($keyword)) return;
 -        // don't add the tag at all if it was specified to ignore it with --ignore-tags
 -        if ($keyword == 'package' || $keyword == 'subpackage' || $keyword == 'category') return $this->addPackage($keyword, $value);
 -        if ($keyword == 'access') return $this->addAccess($value);
 -        if ($keyword == 'link') return $this->addLink($value);
 -        if ($keyword == 'see' || $keyword == 'tutorial') return $this->addSee($keyword,$value);
 -        if ($keyword == 'uses') return $this->addUses($keyword, $value);
 -        if ($keyword == 'name') return $this->addName($value);
 -        if (!in_array($keyword,$GLOBALS['_phpDocumentor_tags_allowed']))
 -        $this->addUnknownTag($keyword,$value);
 -        else
 -        {
 -        if ($keyword == 'internal' && (!isset($_phpDocumentor_setting['parseprivate']) || $_phpDocumentor_setting['parseprivate'] == 'off')) return;
 -            if (!isset($this->tags[$keyword])) {
 -                $this->tags[$keyword] = array();
 -            }
 -            $ptag = 'parserTag';
 -            if (class_exists('parser'.$keyword.'tag'))
 -                $ptag = 'parser'.ucfirst($keyword).'Tag';
 -            array_unshift($this->tags[$keyword], new $ptag($keyword, $value));
 -        }
 -    }
 -    
 -    /**
 -     * adds an @example tag
 -     * @param string contents of the tag
 -     * @param string path to the file containing this tag
 -     */
 -    function addExample($value, $path)
 -    {
 -        $this->tags['example'][] = new parserExampleTag($value, $path);
 -    }
 -    
 -    /**
 -     * adds an unknown tag to the {@link $unknown_tags} array for use by custom converters
 -     * @param string tag name
 -     * @param string tag value
 -     */
 -    function addUnknownTag($keyword, $value)
 -    {
 -        addWarning(PDERROR_UNKNOWN_TAG,$keyword);
 -        $this->unknown_tags[$keyword][] = new parserTag($keyword, $value);
 -    }
 -    
 -    /**
 -     * set the element's package to the passed values.  Used in {@link phpDocumentor_IntermediateParser} to align package of
 -     * elements inside a class or procedural page to the package of the class/procedural page
 -     * @param string
 -     * @param string
 -     * @param string
 -     * @param string element name
 -     * @param string element type (include, define, var, method, global, function, const)
 -     */
 -    function overridePackage($category, $package,$subpackage,$elname,$type)
 -    {
 -        if ($this->package != $GLOBALS['phpDocumentor_DefaultPackageName'])
 -        {
 -            addError(PDERROR_OVERRIDDEN_PACKAGE_TAGS,$elname,$type,$this->package);
 -            $this->explicitpackage = false;
 -        }
 -        if (!empty($this->subpackage))
 -        addError(PDERROR_OVERRIDDEN_SUBPACKAGE_TAGS,$type,$elname,$this->subpackage);
 -        $this->package = $GLOBALS['phpDocumentor_DefaultPackageName'];
 -        $this->subpackage = '';
 -        $this->category = $category;
 -        $this->addPackage('package',$package);
 -        $this->addPackage('subpackage',$subpackage);
 -    }
 -    
 -    /**
 -     * Used if this docblock has a @package tag.
 -     *
 -     * phpDocumentor will guess package for DocBlocks that don't have
 -     * a @package tag
 -     * @uses $explicitpackage
 -     */
 -    function setExplicitPackage()
 -    {
 -        $this->explicitpackage = true;
 -    }
 -    
 -    /**
 -     * If the DocBlock has a @package tag, then this returns true
 -     * @return boolean
 -     */
 -    function getExplicitPackage()
 -    {
 -        return $this->explicitpackage;
 -    }
 -    
 -    /**
 -     * Used if this docblock has a @category tag.
 -     *
 -     * phpDocumentor will guess category for DocBlocks that don't have
 -     * a @category tag
 -     * @uses $explicitcategory
 -     */
 -    function setExplicitCategory()
 -    {
 -        $this->explicitcategory = true;
 -    }
 -    
 -    /**
 -     * If the DocBlock has a @category tag, then this returns true
 -     * @return boolean
 -     */
 -    function getExplicitCategory()
 -    {
 -        return $this->explicitcategory;
 -    }
 -    
 -    /**
 -     * @param string $keyword tag name (either package or subpackage)
 -     * @param mixed $value either a string or a parserStringWithInlineTags.  Strips all inline tags and use the text as the package
 -     */
 -    function addPackage($keyword, $value)
 -    {
 -        if ($keyword == 'package')
 -        {
 -            if (!$this->explicitpackage)
 -            {
 -                if (!is_string($value))
 -                $value = $value->getString();
 -                $rest = '';
 -                $value = explode(' ',$value);
 -                if (count($value) - 1)
 -                {
 -                    $rest = $value;
 -                    $value = $value[0];
 -                    unset($rest[0]);
 -                    $rest = implode($rest,' ');
 -                } else
 -                {
 -                    $value = explode("\t",$value[0]);
 -                    if (count($value) - 1)
 -                    {
 -                        $rest = $value;
 -                        $value = $value[0];
 -                        unset($rest[0]);
 -                        $rest = implode($rest,"\t");
 -                    } else $value = $value[0];
 -                }
 -                preg_match("/^([^`~!@#$%^&*(){}|<>,;]+)$/",$value,$match);
 -                if (!isset($match[0]))
 -                {
 -                    // if were a single line and the only bad character is a space then will fix things for them
 -                    preg_match("/^([^`~!@#$%^&*(){}|<>,;]+)$/",$value,$match);
 -                    if (!isset($match[0]))
 -                    {
 -                        addError(PDERROR_ILLEGAL_PACKAGENAME,'package','package',$value);
 -                        $value = $GLOBALS['phpDocumentor_DefaultPackageName'];
 -                    }
 -                    else
 -                    {
 -                        $value = 
 -                            str_replace(array(" ","/","\\",":"),"_",
 -                                trim($value));
 -                    }
 -                }
 -                $this->packagedescrip = $this->package = trim($value);
 -                if (!empty($rest)) $this->packagedescrip = $rest;
 -            } else
 -            {
 -                if (is_string($value))
 -                addError(PDERROR_MULTIPLE_PACKAGE_TAGS,$value);
 -                else
 -                addError(PDERROR_MULTIPLE_PACKAGE_TAGS,$value->getString());
 -            }
 -        } elseif ($keyword == 'subpackage')
 -        {
 -            if (empty($this->subpackage))
 -            {
 -                if (!is_string($value))
 -                $value = $value->getString();
 -                $rest = '';
 -                $value = explode(' ',$value);
 -                if (count($value) - 1)
 -                {
 -                    $rest = $value;
 -                    $value = $value[0];
 -                    unset($rest[0]);
 -                    $rest = implode($rest,' ');
 -                } else
 -                {
 -                    $value = explode("\t",$value[0]);
 -                    if (count($value) - 1)
 -                    {
 -                        $rest = $value;
 -                        $value = $value[0];
 -                        unset($rest[0]);
 -                        $rest = implode($rest,"\t");
 -                    } else $value = $value[0];
 -                }
 -                if (!empty($value))
 -                {
 -                    preg_match("/^([^`~!@#$%^&*(){}|<>,;]+)$/",$value,$match);
 -                    if (!isset($match[0]))
 -                    {
 -                        // if were a single line and the only bad character is a space then will fix things for them
 -                        preg_match("/^([^`~!@#$%^&*(){}|<>,;]+)$/",$value,$match);
 -                        if (!isset($match[0]))
 -                        {
 -                            addError(PDERROR_ILLEGAL_PACKAGENAME,'subpackage','subpackage',$value);
 -                            $value = '';
 -                        }
 -                        else
 -                        {
 -                            $value = 
 -                                str_replace(array(" ","/","\\",":"),"_",
 -                                    trim($value));
 -                        }
 -                    }
 -                }
 -                $this->subpackage = trim($value);
 -                if (!empty($rest)) $this->subpackagedescrip = $rest;
 -            } else
 -            {
 -                if (is_string($value))
 -                addError(PDERROR_MULTIPLE_SUBPACKAGE_TAGS,$value);
 -                else
 -                addError(PDERROR_MULTIPLE_SUBPACKAGE_TAGS,$value->getString());
 -            }
 -        } elseif ($keyword == 'category')
 -        {
 -            if (!$this->explicitcategory)
 -            {
 -                if (!is_string($value))
 -                $value = $value->getString();
 -                $this->category = $value;
 -            } else
 -            {
 -                if (is_string($value))
 -                addError(PDERROR_MULTIPLE_CATEGORY_TAGS,$value);
 -                else
 -                addError(PDERROR_MULTIPLE_CATEGORY_TAGS,$value->getString());
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * Adds a @name tag to the tag list
 -     * @param string new name of element
 -     */
 -    function addName($value)
 -    {
 -        if (is_object($value)) $value = $value->getString();
 -        if (!$this->hasname)
 -        {
 -            $x = new parserNameTag('name',$value);
 -            $this->hasname = true;
 -            $this->tags['name'][] = $x;
 -        } else
 -        {
 -            addError(PDERROR_MULTIPLE_NAME_TAGS,$value);
 -        }
 -    }
 -    
 -    /**
 -     * @param string if empty, staticvar is indexed in the order received and set using {@link changeStatic()}
 -     * @param string data type
 -     * @param parserStringWithInlineTags
 -     */
 -    function addStaticVar($staticvar, $type, $descrip)
 -    {
 -        if (empty($staticvar))
 -        $this->statics[] = new parserStaticvarTag($type,$descrip);
 -        else
 -        $this->statics[$staticvar] = new parserStaticvarTag($type,$descrip);
 -    }
 -    
 -    /**
 -     * adds a function declaration of @global to the {@link $funcglobals} array
 -     * @param string global type
 -     * @param string description of how the global is used in the function
 -     */
 -    function addFuncGlobal($type,$value)
 -    {
 -        $this->funcglobals[] = array($type,$value);
 -    }
 -    
 -    /**
 -     * @param integer $index index of parameter in the {@link $funcglobals} array
 -     * @param string $name name of the parameter to set in the $funcglobals array
 -     */
 -    function changeGlobal($index,$name)
 -    {
 -        $this->funcglobals[$name] = $this->funcglobals[$index];
 -        unset($this->funcglobals[$index]);
 -    }
 -
 -    /**
 -     * @param integer $index index of parameter in the {@link $statics} array
 -     * @param string $name name of the parameter to set in the $statics array
 -     */
 -    function changeStatic($index,$name)
 -    {
 -        $this->statics[$name] = $this->statics[$index];
 -        unset($this->statics[$index]);
 -    }
 -
 -    /**
 -     * replaces nameless global variables in the {@link $funcglobals} array with their names
 -     * @param array
 -     */
 -    function updateGlobals($funcs)
 -    {
 -        for($i=0;$i<count($funcs);$i++)
 -        {
 -            if (isset($this->funcglobals[$i]))
 -            {
 -                $this->changeGlobal($i,$funcs[$i]);
 -            }
 -        }
 -    }
 -
 -    /**
 -     * replaces nameless static variables in the {@link $statics} array with their names
 -     * @param array
 -     */
 -    function updateStatics($funcs)
 -    {
 -        for($i=0;$i<count($funcs);$i++)
 -        {
 -            if (isset($this->statics[$i]))
 -            {
 -                $this->changeStatic($i,$funcs[$i]);
 -            }
 -        }
 -    }
 -
 -    /**
 -     * add an @access tag to the {@link tags} array
 -     * @param string should be either public or private
 -     */
 -    function addAccess($value)
 -    {
 -        if (is_object($value)) $value = $value->getString();
 -        $value = strtolower($value);
 -        if (!$this->hasaccess)
 -        {
 -            $x = new parserAccessTag($value);
 -            if ($x->isvalid)
 -            {
 -                $this->hasaccess = true;
 -                $this->tags['access'][] = $x;
 -            }
 -        } else
 -        {
 -            if (is_string($value))
 -            addError(PDERROR_MULTIPLE_ACCESS_TAGS,$value);
 -            else
 -            addError(PDERROR_MULTIPLE_ACCESS_TAGS,$value->getString());
 -        }
 -    }
 -    
 -    /**
 -     * Adds a new @filesource tag to the DocBlock
 -     * @tutorial tags.filesource.pkg
 -     * @param string full path to the file
 -     * @param array tokenized source code, ordered by line number
 -     */
 -    function addFileSource($path, $source)
 -    {
 -        if (isset($this->tags['filesource'])) return;
 -        $this->tags['filesource'][] = new parserFileSourceTag($path, $source);
 -    }
 -    
 -    /**
 -     * creates a {@link parserLinkTag} and adds it to the {@link $tags} array
 -     * @param string $link
 -     */
 -    function addLink($link)
 -    {
 -        if (phpDocumentor_setup::checkIgnoreTag('@link')) return;
 -        $this->tags['link'][] = new parserLinkTag($link);
 -    }
 -    
 -    /**
 -     * creates a {@link parserLinkTag} and adds it to the {@link $tags} array
 -     * @param string either see or uses
 -     * @param string $value
 -     */
 -    function addSee($keyword,$value)
 -    {
 -        if (phpDocumentor_setup::checkIgnoreTag($keyword)) return;
 -        $tag = 'parser'.ucfirst($keyword).'Tag';
 -        $this->tags[$keyword][] = new $tag($value);
 -    }
 -    
 -    /**
 -     * creates a {@link parserReturnTag} and adds it to the {@link $tags} array
 -     * @param string $returnType the one-word name of the return type (mixed should be used if more than one type)
 -     * @param parserStringWithInlineTags $value
 -     */
 -    function addReturn($returnType, $value)
 -    {
 -        // only take the first one
 -        if (!$this->return)
 -        {
 -            $this->return = new parserReturnTag($returnType, $value);
 -        } else
 -        {
 -            addError(PDERROR_MULTIPLE_RETURN_TAGS,$returnType,$value->getString());
 -        }
 -    }
 -    
 -    /**
 -     * creates a {@link parserVarTag} and adds it to the {@link $tags} array
 -     * @param string $varType the one-word name of the variable type (mixed should be used if more than one type)
 -     * @param parserStringWithInlineTags $value
 -     */
 -    function addVar($varType, $value)
 -    {
 -        // only take the first one
 -        if (!$this->var)
 -        {
 -            $this->var = new parserVarTag($varType, $value);
 -        } else
 -        {
 -            addError(PDERROR_MULTIPLE_VAR_TAGS,$varType,$value->getString());
 -        }
 -    }
 -    
 -    /**
 -     * Adds a virtual @usedby tag to output
 -     * @param abstractLink link to the element that has a @uses tag
 -     * @param parserStringWithInlinetags description of how the elements uses
 -     *                                   this one
 -     * @access private
 -     */
 -    function addUsedBy($link, $descrip)
 -    {
 -        $this->tags['usedby'][] = new parserUsedByTag($link, $descrip);
 -    }
 -    
 -    /**
 -     * Add a @uses tag to the DocBlock
 -     * @param string @see-style text, used for {@link Converter::getLink()}
 -     * @param parserStringWithInlineTags description of how the used element is
 -     *                                   used
 -     * @tutorial tags.uses.pkg
 -     */
 -    function addUses($seeel, $description)
 -    {
 -        $this->tags['uses'][] = new parserUsesTag($seeel, $description);
 -    }
 -    
 -    /**
 -     * @param string
 -     * @return mixed false if no keyword, unconverted value if one keyword, array of unconverted values if more than one keyword
 -     */
 -    function getKeyword($keyword)
 -    {
 -        if ($keyword == 'filesource' && !$this->_canSource) return false;
 -        if (isset($this->tags[$keyword]))
 -        {
 -            if (count($this->tags[$keyword]) == 1)
 -            {
 -                return $this->tags[$keyword][0];
 -            } else return $this->tags[$keyword];
 -        } else return false;
 -    }
 -    
 -    /**
 -     * @return array Format: array('var' => tag name, 'data' => unconverted tag value)
 -     */
 -    function listParams()
 -    {
 -        if (isset($this->params))
 -        {
 -            $ret = array();
 -            foreach($this->params as $key => $val)
 -            {
 -                $ret[] = array("var" => ucfirst($key),"data" => $val);
 -            }
 -            return $ret;
 -        } else {
 -            return array();
 -        }
 -    }
 -    
 -    /**
 -     * @param Converter
 -     */
 -    function listTags()
 -    {
 -        $tags = array();
 -        foreach($this->tags as $keyword => $vals)
 -        {
 -            if ($keyword == 'filesource' && !$this->_canSource) continue;
 -            foreach($vals as $val)
 -            {
 -                $tags[] = $val;
 -            }
 -        }
 -        usort($tags,'tagsort');
 -        return $tags;
 -    }
 -    
 -    /** @return string always 'docblock' */
 -    function getType()
 -    {
 -        return 'docblock';
 -    }
 -}
 -
 -/**
 - * @access private
 - */
 -function tagsort($a, $b)
 -{
 -    switch(phpDocumentor_get_class($a))
 -    {
 -        case 'parsertag' :
 -            switch ($a->keyword)
 -            {
 -                case 'author' :
 -                    $o = 3;
 -                    break;
 -                case 'version' :
 -                    $o = 4;
 -                    break;
 -                case 'deprecated' :
 -                case 'deprec' :
 -                    $o = 7;
 -                    break;
 -                case 'todo' :
 -                case 'TODO' :
 -                    $o = 8;
 -                    break;
 -                case 'abstract' :
 -                    $o = 9;
 -                    break;
 -            }
 -        case 'parseraccesstag' :
 -            $o = 10;
 -            break;
 -        case 'parsernametag' :
 -            $o = 11;
 -            break;
 -        case 'parserseetag' :
 -            $o = 5;
 -            break;
 -        case 'parserlinktag' :
 -            $o = 6;
 -            break;
 -        case 'parserreturntag' :
 -            $o = 0;
 -            break;
 -        case 'parservartag' :
 -            $o = 1;
 -            break;
 -        case 'parserstaticvartag' :
 -            $o = 2;
 -            break;
 -        default :
 -            $o = 12;
 -            break;
 -    }
 -    switch(phpDocumentor_get_class($b))
 -    {
 -        case 'parsertag' :
 -            switch ($b->keyword)
 -            {
 -                case 'author' :
 -                    $p = 3;
 -                case 'version' :
 -                    $p = 4;
 -                case 'deprecated' :
 -                case 'deprec' :
 -                    $p = 7;
 -                case 'todo' :
 -                case 'TODO' :
 -                    $p = 8;
 -                case 'abstract' :
 -                    $p = 9;
 -            }
 -        case 'parseraccesstag' :
 -            $p = 10;
 -        case 'parsernametag' :
 -            $p = 11;
 -        case 'parserseetag' :
 -            $p = 5;
 -        case 'parserlinktag' :
 -            $p = 6;
 -        case 'parserreturntag' :
 -            $p = 0;
 -        case 'parservartag' :
 -            $p = 1;
 -        case 'parsertutorialtag' :
 -            $p = 1;
 -        case 'parserstaticvartag' :
 -            $p = 2;
 -        default :
 -            $p = 12;
 -    }
 -    if ($o == $p) return 0;
 -    if ($o < $p) return -1;
 -    if ($o > $p) return 1;
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/ParserElements.inc b/buildscripts/PhpDocumentor/phpDocumentor/ParserElements.inc deleted file mode 100644 index a95d24b8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/ParserElements.inc +++ /dev/null @@ -1,1910 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * Parser Elements, all classes representing documentable elements
 - * @package phpDocumentor
 - * @subpackage ParserElements
 - * @since 1.1
 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $
 - */
 -
 -/**
 - * all elements except {@link parserPackagePage} descend from this abstract class
 - * @abstract
 - * @package phpDocumentor
 - * @subpackage ParserElements
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $
 - */
 -class parserElement extends parserBase
 -{
 -    /**
 -     * @var mixed either false or a {@link parserDocBlock}
 -     */
 -    var $docblock = false;
 -    /**
 -     * name of this element, or include type if element is a {@link parserInclude}
 -     */
 -    var $name;
 -    
 -    /**
 -     * @var mixed either false or an array of paths to files with conflicts
 -     */
 -    var $conflicts = false;
 -    
 -    /**
 -     * location of this element (filename)
 -     * @var string
 -     */
 -    var $file = '';
 -    
 -    /**
 -     * full path location of this element (filename)
 -     * @var string
 -     */
 -    var $path = '';
 -    
 -    /**
 -     * line number on file where this element stops
 -     * @since 1.2
 -     * @var false|integer
 -     */
 -    var $endlinenumber = 0;
 -    
 -    /**
 -     * Line number in the source on which this element appears
 -     * @since 1.2
 -     * @var false|integer
 -     */
 -    var $linenumber = false;
 -    
 -    /**
 -     * @param parserDocBlock
 -     */
 -    function setDocBlock($docblock)
 -    {
 -        $this->docblock = $docblock;
 -    }
 -    
 -    /**
 -     * @param string
 -     */
 -    function setName($name)
 -    {
 -        $this->name = trim($name);
 -    }
 -    
 -    /**
 -     * Set starting line number
 -     * @param integer
 -     */
 -    function setLineNumber($number)
 -    {
 -        $this->linenumber = $number;
 -    }
 -    
 -    /**
 -     * Sets the ending line number of elements
 -     * @param integer
 -     */
 -    function setEndLineNumber($l)
 -    {
 -        $this->endlinenumber = $l;
 -    }
 -    
 -    /**
 -     * @return integer
 -     */
 -    function getLineNumber()
 -    {
 -        return $this->linenumber;
 -    }
 -    
 -    /**
 -     * @return integer
 -     */
 -    function getEndLineNumber()
 -    {
 -        return $this->endlinenumber;
 -    }
 -    
 -    /** @return string package containing this element */
 -    function getPackage()
 -    {
 -        if ($this->docblock)
 -        {
 -            return $this->docblock->package;
 -        } else return $GLOBALS['phpDocumentor_DefaultPackageName'];
 -    }
 -    
 -    /** @param string */
 -    function setFile($file)
 -    {
 -        $this->file = $file;
 -    }
 -    
 -    /** @param string */
 -    function setPath($file)
 -    {
 -        // look for special windows case
 -        if(SMART_PATH_DELIMITER === '\\')
 -            $this->path = strtr($file,'/','\\');
 -        else
 -            $this->path = $file;
 -        $this->path = $file;
 -    }
 -    
 -    /**
 -     * @return string
 -     */
 -    function getName()
 -    {
 -        if (!isset($this->name)) return false;
 -        return $this->name;
 -    }
 -    
 -    /**
 -     * @return string
 -     */
 -    function getFile()
 -    {
 -        if (!isset($this->file)) return false;
 -        return $this->file;
 -    }
 -    
 -    /**
 -     * @return string
 -     */
 -    function getPath()
 -    {
 -        if (!isset($this->path)) return false;
 -        return $this->path;
 -    }
 -}
 -
 -/**
 - * @package phpDocumentor
 - * @subpackage ParserElements
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $
 - */
 -class parserInclude extends parserElement
 -{
 -    /**
 -     * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah'
 -     * @var string always 'include'
 -     */
 -    var $type = 'include';
 -}
 -
 -/**
 - * @package phpDocumentor
 - * @subpackage ParserElements
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.1
 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $
 - */
 -class parserGlobal extends parserElement
 -{
 -    /**
 -     * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah'
 -     * @var string always 'global'
 -     */
 -    var $type = 'global';
 -    
 -    /**
 -     * Name of the global's data type
 -     * @var string
 -     */
 -    var $datatype = 'mixed';
 -
 -    /**
 -     * quick way to link to this element
 -     * @return mixed converter-specific link to this global variable
 -     * @param Converter
 -     * @param string text to display for the link or false for default text
 -     */
 -    function getLink(&$c, $text = false, $returnobj = false)
 -    {
 -        if ($returnobj)
 -        {
 -            return $c->getLink('global ' . $this->name, $this->docblock->package);
 -        }
 -        return $c->getGlobalLink($this->name, $this->docblock->package, $this->path, $text);
 -    }
 -
 -    /**
 -     * Returns all global variables in other packages that have the same name as this global variable
 -     * @return mixed false or an array Format: (package => {@link parserGlobal} of conflicting global variable)
 -     * @param Converter
 -     */
 -    function getConflicts(&$c)
 -    {
 -        $a = $c->proceduralpages->getGlobalConflicts($this->name);
 -        unset($a[$this->docblock->package]);
 -        return $a;
 -    }
 -    
 -    /**
 -     * Sets the name of the global variable's type
 -     * @param string
 -     */
 -    function setDataType($type)
 -    {
 -        $this->datatype = $type;
 -    }
 -    
 -    /**
 -     * Retrieve converter-specific representation of the data type
 -     *
 -     * If the data type is a documented class name, then this function will
 -     * return a Converter-specific link to that class's documentation, so users
 -     * can click/browse to the documentation directly from the global variable
 -     * declaration
 -     * @return string
 -     * @param Converter
 -     */
 -    function getDataType(&$converter)
 -    {
 -        $converted_datatype = $this->datatype;
 -        if (strpos($this->datatype,'|'))
 -        {
 -            $types = explode('|',$this->datatype);
 -            foreach($types as $returntype)
 -            {
 -                $a = $converter->getLink($returntype);
 -                if (is_object($a) && phpDocumentor_get_class($a) == 'classlink')
 -                {
 -                    if (!empty($my_types)) $my_types .= '|';
 -                    $my_types .= $converter->returnSee($a,$converter->type_adjust($returntype));
 -                } else
 -                {
 -                    if (!empty($my_types)) $my_types .= '|';
 -                    $my_types .= $converter->type_adjust($returntype);
 -                }
 -            }
 -            $converted_datatype = $my_types;
 -        } else
 -        {
 -            $a = $converter->getLink($this->datatype);
 -            if (is_object($a) && phpDocumentor_get_class($a) == 'classlink')
 -            {
 -                $converted_datatype = $converter->returnSee($a,$converter->type_adjust($this->datatype));
 -            } else
 -            {
 -                $converted_dataype = $converter->type_adjust($this->datatype);
 -            }
 -        }
 -        return $converted_datatype;
 -    }
 -
 -}
 -
 -/**
 - * @package phpDocumentor
 - * @subpackage ParserElements
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $
 - */
 -class parserFunction extends parserElement
 -{
 -    /**
 -     * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah'
 -     * @var string always 'function'
 -     */
 -    var $type = 'function';
 -    /**
 -     * parameters parsed from function definition.
 -     *
 -     * param name may be null, in which case, updateParams() must be called from the Converter
 -     * @var array Format: array(param name => default value parsed from function definition)
 -     * @see updateParams()
 -     */
 -    var $params = false;
 -    /**
 -     * Function returns a reference to an element, instead of a value
 -     *
 -     * set to true if function is declared as:
 -     * <code>
 -     * function &func(...
 -     * </code>
 -     * @var boolean
 -     */
 -    var $returnsreference = false;
 -    /**
 -     * global declarations parsed from function definition
 -     *
 -     * @var array Format: array(globalname1, globalname2,....)
 -     */
 -    var $globals = false;
 -    /**
 -     * static variable declarations parsed from function definition
 -     * @var array Format: array(array('name' => staticvar1,'val' => '' or default val of staticvar1),...)
 -     */
 -    var $statics = false;
 -    
 -    var $source = '';
 -    /**
 -     * @param string
 -     * @param string default value parsed from function definition
 -     * @param boolean indicates whether this parameter has a default value
 -     */
 -    function addParam($name, $value, $has_default = true)
 -    {
 -        $this->params[$name] = array($value, $has_default);
 -    }
 -    
 -    /**
 -     * Set the source code.  Always array in PHP 4.3.0+
 -     * @param string|array
 -     */
 -    function addSource($source)
 -    {
 -        $this->source = $source;
 -    }
 -    
 -    /**
 -     * Determine whether the source code has been requested via {@}source}
 -     * @return boolean
 -     */
 -    function hasSource()
 -    {
 -        if (is_array($this->source)) return true;
 -        return strlen($this->source);
 -    }
 -    
 -    /**
 -     * @return string|array source code ready for highlighting
 -     */
 -    function getSource()
 -    {
 -        return $this->source;
 -    }
 -    
 -    /**
 -     * quick way to link to this element
 -     * @return mixed converter-specific link to this function
 -     * @param Converter
 -     * @param string text to display for the link or false for default text
 -     */
 -    function getLink($c, $text = false, $returnobj = false)
 -    {
 -        if ($returnobj)
 -        {
 -            return $c->getLink('function ' . $this->name, $this->docblock->package);
 -        }
 -        return $c->getFunctionLink($this->name, $this->docblock->package, $this->path, $text);
 -    }
 -
 -    /**
 -     * Returns all functions in other packages that have the same name as this function
 -     * @return mixed false or an array Format: (package => {@link parserFunction} of conflicting functions)
 -     * @param Converter
 -     */
 -    function getConflicts(&$c)
 -    {
 -        $a = $c->proceduralpages->getFuncConflicts($this->name);
 -        unset($a[$this->docblock->package]);
 -        return $a;
 -    }
 -    
 -    /**
 -     * Add all "global $var, $var2" declarations to this function
 -     * @param array $globals Format: array(globalname1, globalname2,....)
 -     */
 -    function addGlobals($globals)
 -    {
 -        $this->globals = $globals;
 -    }
 -
 -    /**
 -     * Add all "static $var, $var2 = 6" declarations to this function
 -     * @param array Format: array(varname1, varname2,...)
 -     * @param array Format: array(default val of var 1, default val of var 2,...) if var 1 has no default, array(default val of var 2,...)
 -     */
 -    function addStatics($static,$vals)
 -    {
 -        if (count($static))
 -        {
 -            $this->statics = array();
 -            for($i=0;$i<count($static);$i++)
 -            {
 -                if (isset($static[$i]))
 -                {
 -                    $a = '';
 -                    if (isset($vals[$i])) $a = $vals[$i];
 -                    $this->statics[] = array('name' => $static[$i],'val' => $a);
 -                }
 -            }
 -        }
 -    }
 -
 -    /**
 -     * @return string default value of param $name
 -     * @param string
 -     */
 -    function getParam ($name)
 -    {
 -        if (!isset($this->params[$name])) return false;
 -        $test = $this->params[$name];
 -        if ($test[1])
 -        {
 -            return $this->params[$name];
 -        } else
 -        {
 -            return false;
 -        }
 -    }
 -
 -    /**
 -     * @return array format: array(array(paramname, default value),...)
 -     */
 -    function listParams ()
 -    {
 -        if (isset($this->params))
 -        {
 -            $ret = array();
 -            if ($this->params)
 -            foreach($this->params as $key => $val)
 -            {
 -                if ($val[1])
 -                {
 -                    $arr = array($key,$val[0]);
 -                    if (isset($val[2]))
 -                    {
 -                        $arr[2] = $val[2];
 -                    }
 -                    $ret[] = $arr;
 -                } else
 -                {
 -                    $arr = array($key,false);
 -                    if (isset($val[2]))
 -                    {
 -                        $arr[2] = $val[2];
 -                    }
 -                    $ret[] = $arr;
 -                }
 -            }
 -            return $ret;
 -        } else {
 -            return array();
 -        }
 -    }
 -    
 -    /**
 -     * @return array format: array(array(index, globalname),...)
 -     */
 -    function listGlobals ()
 -    {
 -        if (isset($this->globals))
 -        {
 -            $ret = array();
 -            if ($this->globals)
 -            foreach($this->globals as $key => $val)
 -            {
 -                $ret[] = array($key,$val);
 -            }
 -            return $ret;
 -        } else {
 -            return array();
 -        }
 -    }
 -    
 -    /**
 -     * @return array format: array(array(static var name, static var default value),...)
 -     */
 -    function listStatics ()
 -    {
 -        if (isset($this->statics))
 -        {
 -            $ret = array();
 -            if ($this->statics)
 -            foreach($this->statics as $key => $val)
 -            {
 -                $ret[] = array($val['name'],$val['val']);
 -            }
 -            return $ret;
 -        } else {
 -            return array();
 -        }
 -    }
 -    
 -    /**
 -     * sets {@link $returnsreference} to true
 -     */
 -    function setReturnsReference()
 -    {
 -        $this->returnsreference = true;
 -    }
 -    
 -    /**
 -     * @return boolean returns value of {@link $returnsreference}
 -     */
 -    function getReturnsReference()
 -    {
 -        return $this->returnsreference;
 -    }
 -    
 -    /**
 -     * Get a human-friendly description of the function call
 -     *
 -     * takes declaration like:
 -     * <code>
 -     * /** @returns string ... {rest of docblock}
 -     * function &func($param1, $param2 = 6,
 -     *                $param3 = array('20',9 => "heroo"))
 -     * {...}
 -     * </code>
 -     * and returns:
 -     * string &func( $param1, [$param2 = 6], [$param3 = array('20',9 => "heroo")] )
 -     * @return string stylized function declaration
 -     */
 -    function getFunctionCall()
 -    {
 -        $a = '';
 -        if ($this->getReturnsReference()) $a = '&';
 -        $function_call = $a.$this->getName() . " ( ";
 -        $tmp = 0;
 -        foreach($this->listParams() as $param)
 -        {
 -            if ($tmp == 0)
 -            {
 -                $tmp = 1;
 -            } else {
 -                $function_call .= ", ";
 -            }
 -            if ($param[1] !== false)
 -            {
 -                $function_call .= "[$param[0] = $param[1]]";
 -            } else {
 -                $function_call .= $param[0];
 -            }
 -            $update_params[] = $param[0];
 -        }
 -        $function_call .= " )";
 -        return $function_call;
 -    }
 -    
 -    /**
 -     * Like getFunctionCall(), but has no English or pre-determined formatting.
 -     *
 -     * Much more flexible.
 -     * @return array Format:
 -     * <code>
 -     * array('name' => function name,
 -     *       'returnsref' => boolean if declared as "function &name()"
 -     *       'params' => array('type' => data type of parameter,
 -     *                         'description' => from @param tag,
 -     *                         'name' => variable name,
 -     *                         'default' => default value if any))
 -     * </code>
 -     * @see getFunctionCall()
 -     */
 -    function getIntricateFunctionCall($converter,$paramtags)
 -    {
 -        $a = array();
 -        if ($this->getReturnsReference()) $a['returnsref'] = true;
 -        $a['name'] = $converter->type_adjust($this->getName());
 -        $c = $this->listParams();
 -        foreach($c as $param)
 -        {
 -            $b = array();
 -            $b['type'] = 'mixed';
 -            if (isset($paramtags[$param[0]]))
 -            {
 -                $b['type'] = $paramtags[$param[0]]['datatype'];
 -                $b['description'] = $paramtags[$param[0]]['data'];
 -                unset($paramtags[$param[0]]);
 -            } elseif(isset($paramtags[substr($param[0],1)]))
 -            {
 -                $b['type'] = $paramtags[substr($param[0],1)]['datatype'];
 -                $b['description'] = $paramtags[substr($param[0],1)]['data'];
 -                unset($paramtags[substr($param[0],1)]);
 -            }
 -            if (isset($param[2]))
 -            {
 -                $b['type'] = $param[2];
 -            }
 -            $b['name'] = $param[0];
 -            $b['default'] = $param[1];
 -            $b['hasdefault'] = ($param[1] !== false);
 -            $a['params'][] = $b;
 -        }
 -        // @param tags that don't correspond to actual parameters (like extra function values)
 -        if (count($paramtags))
 -        {
 -            foreach($paramtags as $param)
 -            {
 -                $b = array();
 -                $b['type'] = $param['datatype'];
 -                $b['description'] = $param['data'];
 -                $b['name'] = $param['var'];
 -                $b['default'] = '';
 -                $b['hasdefault'] = false;
 -                $a['params'][] = $b;
 -            }
 -        }
 -        return $a;
 -    }
 -}
 -
 -/**
 - * @package phpDocumentor
 - * @subpackage ParserElements
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $
 - */
 -class parserClass extends parserElement
 -{
 -    /**
 -     * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah'
 -     * @var string always 'class'
 -     */
 -    var $type = 'class';
 -    /** @var string
 -     * @see parserPage::$sourceLocation */
 -    var $sourceLocation = '';
 -    /**
 -     * @var mixed false or contents of extends clause in class declaration
 -     */
 -    var $extends = false;
 -    /**
 -     * @var array a list of interfaces this class implements
 -     */
 -    var $_implements = array();
 -    /**
 -     * @var array a list of interfaces this class implements
 -     * @access private
 -     */
 -    var $_modifiers = false;
 -    /**
 -     * @var boolean determines whether a class is considered to be an interface
 -     * @access private
 -     */
 -    var $_isInterface = false;
 -    /**
 -     * Format: array(file, parent) where parent class is found or false if no parent
 -     * @var mixed
 -     */
 -    var $parent = false;
 -    /**
 -     * Used to determine whether a class should be ignored or not.  Helps maintain integrity of parsing
 -     * @var boolean
 -     * @see Classes::getParentClass()
 -     */
 -    var $ignore = false;
 -
 -    /**
 -     * @var string same as {@link parserElement::$path}
 -     */
 -    var $curfile = false;
 -    /**
 -     * @var tutorialLink|false either a link to the tutorial associated with this class, or false
 -     */
 -    var $tutorial = false;
 -    
 -    /**
 -     * Return name of the class that contains this method
 -     * @return string
 -     */
 -    function getModifiers()
 -    {
 -        return $this->_modifiers;
 -    }
 -    
 -    /**
 -     * Return name of the class that contains this method
 -     * @return string
 -     */
 -    function setModifiers($m)
 -    {
 -        $this->_modifiers = $m;
 -    }
 -    
 -    /**
 -     * @param parserTutorial
 -     * @param Converter
 -     */
 -    function addTutorial($t,&$c)
 -    {
 -        $this->tutorial = new tutorialLink;
 -        $this->tutorial->addLink('',$t->path,$t->name,$t->package,$t->subpackage,$t->getTitle($c));
 -    }
 -    
 -    /**
 -     * Get the associated tutorial for this class, if any
 -     * @tutorial tutorials.pkg
 -     * @return parserTutorial
 -     */
 -    function getTutorial()
 -    {
 -        return $this->tutorial;
 -    }
 -    
 -    /**
 -     * Returns all classes in other packages that have the same name as this class
 -     * @return mixed false or an array Format: (package => {@link parserClass} of conflicting classes)
 -     * @param Converter
 -     */
 -    function getConflicts(&$c)
 -    {
 -        $a = $c->classes->getConflicts($this->name);
 -        unset($a[$this->docblock->package]);
 -        return $a;
 -    }
 -    
 -    /**
 -     * quick way to link to this element
 -     * @return mixed converter-specific link to this class
 -     * @param Converter
 -     * @param string text to display for the link or false for default text
 -     */
 -    function getLink($c, $text = false, $returnobj = false)
 -    {
 -        if ($returnobj)
 -        {
 -            return $c->getLink('object ' . $this->name, $this->docblock->package);
 -        }
 -        return $c->getClassLink($this->name, $this->docblock->package, $this->curfile, $text);
 -    }
 -
 -    /**
 -     * @param string parent class name
 -     * @param string parent class file
 -     * @param Classes {@link Classes} object currently calling setParent
 -     * @see Classes::setClassParent()
 -     */
 -    
 -    function setParent($p,$f, &$c)
 -    {
 -        $this->parent = array($f, $p);
 -        $p = $c->getClass($p, $f);
 -        // inherit package if no @package tag is in the docblock, fixes 591396
 -        if (!$this->docblock->getExplicitPackage())
 -        {
 -            $this->docblock->package = $p->docblock->package;
 -        }
 -        if ($this->docblock->package == $p->docblock->package)
 -        {
 -            if ($this->docblock->subpackage == '')
 -            $this->docblock->subpackage = $p->docblock->subpackage;
 -        }
 -        $author = $p->docblock->getKeyword('author');
 -        $version = $p->docblock->getKeyword('version');
 -        $copyright = $p->docblock->getKeyword('copyright');
 -        // inherit tags
 -        if (!$this->docblock->getKeyword('author'))
 -        {
 -            if ($author && !is_array($author)) $author = array($author);
 -            if ($author) $this->docblock->tags['author'] = $author;
 -        }
 -        if (!$this->docblock->getKeyword('version'))
 -        {
 -            if ($version && !is_array($version)) $version = array($version);
 -            if ($version) $this->docblock->tags['version'] = $version;
 -        }
 -        if (!$this->docblock->getKeyword('copyright'))
 -        {
 -            if ($copyright && !is_array($copyright)) $copyright = array($copyright);
 -            if ($copyright) $this->docblock->tags['copyright'] = $copyright;
 -        }
 -        if (!$this->docblock->sdesc)
 -        {
 -            $this->docblock->setShortDesc($p->docblock);
 -            $this->docblock->setDesc($p->docblock);
 -        } else
 -        {
 -            if ($this->docblock->hasInheritDoc())
 -            {
 -                $this->docblock->replaceInheritDoc($p->docblock);
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * @param string $par parent class name (used by {@link Classes::setClassParent()} if parent class not found
 -     */
 -    function setParentNoClass($par)
 -    {
 -        $this->parent = $par;
 -    }
 -    
 -    /**
 -     * Use this method to set the type of class to be an interface
 -     */
 -    function setInterface()
 -    {
 -        $this->_isInterface = true;
 -    }
 -    
 -    /**
 -     * @return boolean true if this is an interface class
 -     */
 -    function isInterface()
 -    {
 -        return $this->_isInterface;
 -    }
 -    
 -    /**
 -     * Use this method to set access modifiers for a class
 -     * @param array 
 -     */
 -    function setAccessModifiers($modifiers)
 -    {
 -        $this->_modifiers = $modifiers;
 -    }
 -    
 -    /**
 -     * retrieve object that represents the parent class
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @return mixed returns the {@link parserClass} representation of the parent class, or false if no parent class
 -     */
 -    function &getParent(&$c)
 -    {
 -        $a = false;
 -        if (!$this->parent) return $a;
 -        if (is_array($this->parent))
 -        {
 -            return $c->classes->getClass($this->parent[1],$this->parent[0]);
 -        } else return $this->parent;
 -    }
 -    
 -    /**
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @return array returns a simple array of method objects
 -     */
 -    function getMethods(&$c)
 -    {
 -        return $c->classes->getMethods($this->name,$this->curfile);
 -    }
 -    
 -    /**
 -     * @return mixed {@link parserMethod} or false if not found
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @param string method name in this class
 -     */
 -    function getMethod(&$c, $name)
 -    {
 -        return $c->classes->getMethod($this->name,$this->curfile,$name);
 -    }
 -    
 -    /**
 -     * @return mixed {@link parserVar} or false if not found
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @param string var name in this class
 -     */
 -    function getVar(&$c, $name)
 -    {
 -        return $c->classes->getVar($this->name,$this->curfile,$name);
 -    }
 -    
 -    /**
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @return array returns a simple array of method name strings
 -     */
 -    function getMethodNames(&$c)
 -    {
 -        if (!$c->classes->hasMethods($this->curfile, $this->name)) return array();
 -        $arr = array();
 -        $arr1 = $this->getMethods($c);
 -        for($i=0; $i < count($arr1); $i++)
 -        {
 -            $arr[] = $arr1[$i]->name;
 -        }
 -        return $arr;
 -    }
 -    
 -    /**
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @param string method name
 -     * @return boolean whether this class has a method of name $name
 -     */
 -    function hasMethod(&$c,$name)
 -    {
 -        return $c->classes->hasMethod($this->name, $this->curfile, $name);
 -    }
 -    
 -    /**
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @param string var name
 -     * @return boolean whether this class has a var of name $name
 -     */
 -    function hasVar(&$c,$name)
 -    {
 -        return $c->classes->hasVar($this->name, $this->curfile, $name);
 -    }
 -    
 -    /**
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @param string class constant name
 -     * @return boolean whether this class has a constant of name $name
 -     */
 -    function hasConst(&$c,$name)
 -    {
 -        return $c->classes->hasConst($this->name, $this->curfile, $name);
 -    }
 -    
 -    /**
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @return array returns a simple array of var objects
 -     */
 -    function getVars(&$c)
 -    {
 -        return $c->classes->getVars($this->name,$this->curfile);
 -    }
 -    
 -    /**
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @return array returns a simple array of const objects
 -     */
 -    function getConsts(&$c)
 -    {
 -        return $c->classes->getConsts($this->name,$this->curfile);
 -    }
 -    
 -    /**
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @return array returns a simple array of var name strings
 -     */
 -    function getVarNames(&$c)
 -    {
 -        if (!$c->classes->hasVars($this->curfile, $this->name)) return array();
 -        $arr = array();
 -        $arr1 = $this->getVars($c);
 -        for($i=0; $i < count($arr1); $i++)
 -        {
 -            $arr[] = $arr1[$i]->name;
 -        }
 -        return $arr;
 -    }
 -    
 -    /**
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @return array returns a simple array of const name strings
 -     */
 -    function getConstNames(&$c)
 -    {
 -        if (!$c->classes->hasConsts($this->curfile, $this->name)) return array();
 -        $arr = array();
 -        $arr1 = $this->getConsts($c);
 -        for($i=0; $i < count($arr1); $i++)
 -        {
 -            $arr[] = $arr1[$i]->name;
 -        }
 -        return $arr;
 -    }
 -    
 -    /**
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @param boolean determines whether overriden methods should be included in the list of inherited methods
 -     * @return array returns an array of methods by parent classname array(name => array(method1,method2..),name2 => array(method1....))
 -     */
 -    function getInheritedMethods(&$c,$override = false)
 -    {
 -        $x = $this;
 -        $methods = array();
 -        $arr = array();
 -        while ($x->parent && is_array($x->parent))
 -        {
 -            $methods = array_merge($methods,$x->getMethodNames($c));
 -            $par = $x->getParent($c);
 -            $parmethodnames = $par->getMethodNames($c);
 -            $parmethods = $par->getMethods($c);
 -            for($i=0; $i<count($parmethodnames); $i++)
 -            {
 -                if ($override)
 -                {
 -                    if (!in_array($parmethodnames[$i],$methods))
 -                    {
 -                        // fix for bug 587733
 -                        if ($parmethods[$i]->docblock && $parmethods[$i]->docblock->hasaccess && !$c->parseprivate && $parmethods[$i]->docblock->tags['access'][0]->value == 'private')
 -                        {
 -                            continue;
 -                        }
 -                        $methods[] = $parmethodnames[$i];
 -                        $arr[$par->getName()]['methods'][] = $parmethods[$i];
 -                        $arr[$par->getName()]['file'] = $par->curfile;
 -                    }
 -                } else
 -                {
 -                    // fix for bug 587733
 -                    if ($parmethods[$i]->docblock && $parmethods[$i]->docblock->hasaccess && !$c->parseprivate && $parmethods[$i]->docblock->tags['access'][0]->value == 'private')
 -                    {
 -                        continue;
 -                    }
 -                    $arr[$par->getName()]['methods'][] = $parmethods[$i];
 -                    $arr[$par->getName()]['file'] = $par->curfile;
 -                }
 -            }
 -            $x = &$par;
 -        }
 -        return $arr;
 -    }
 -    
 -    /**
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @param boolean determines whether overriden vars should be included in the list of inherited vars
 -     * @return array returns an array of vars by parent classname array(name => array(var1,var1..),name2 => array(var1....))
 -     */
 -    function getInheritedVars(&$c,$override = true, $vars = false)
 -    {
 -        $x = $this;
 -        $vars = array();
 -        $arr = array();
 -        while ($x->parent && is_array($x->parent))
 -        {
 -            $vars = array_merge($vars,$x->getVarNames($c));
 -            $par = $x->getParent($c);
 -            $parvarnames = $par->getVarNames($c);
 -            $parvars = $par->getVars($c);
 -            for($i=0; $i<count($parvarnames); $i++)
 -            {
 -                if ($override)
 -                {
 -                    if (!in_array($parvarnames[$i],$vars))
 -                    {
 -                        // fix for bug 587733
 -                        if ($parvars[$i]->docblock && $parvars[$i]->docblock->hasaccess && !$c->parseprivate && $parvars[$i]->docblock->tags['access'][0]->value == 'private')
 -                        {
 -                            continue;
 -                        }
 -                        $vars[] = $parvarnames[$i];
 -                        $arr[$par->getName()]['vars'][] = $parvars[$i];
 -                        $arr[$par->getName()]['file'] = $par->curfile;
 -                    }
 -                } else
 -                {
 -                    // fix for bug 587733
 -                    if ($parvars[$i]->docblock && $parvars[$i]->docblock->hasaccess && !$c->parseprivate && $parvars[$i]->docblock->tags['access'][0]->value == 'private')
 -                    {
 -                        continue;
 -                    }
 -                    $arr[$par->getName()]['vars'][] = $parvars[$i];
 -                    $arr[$par->getName()]['file'] = $par->curfile;
 -                }
 -            }
 -            $x = &$par;
 -        }
 -        return $arr;
 -    }
 -    
 -    /**
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @param boolean determines whether overriden vars should be included in the list of inherited vars
 -     * @return array returns an array of consts by parent classname array(name => array(const1,const2..),name2 => array(const1....))
 -     */
 -    function getInheritedConsts(&$c,$override = false, $consts = false)
 -    {
 -        $x = $this;
 -        $consts = array();
 -        $arr = array();
 -        while ($x->parent && is_array($x->parent))
 -        {
 -            $consts = array_merge($consts,$x->getConstNames($c));
 -            $par = $x->getParent($c);
 -            $parvarnames = $par->getConstNames($c);
 -            $parvars = $par->getConsts($c);
 -            for($i=0; $i<count($parvarnames); $i++)
 -            {
 -                if ($override)
 -                {
 -                    if (!in_array($parvarnames[$i],$consts))
 -                    {
 -                        // fix for bug 587733
 -                        if ($parvars[$i]->docblock && $parvars[$i]->docblock->hasaccess && !$c->parseprivate && $parvars[$i]->docblock->tags['access'][0]->value == 'private')
 -                        {
 -                            continue;
 -                        }
 -                        $consts[] = $parvarnames[$i];
 -                        $arr[$par->getName()]['consts'][] = $parvars[$i];
 -                        $arr[$par->getName()]['file'] = $par->curfile;
 -                    }
 -                } else
 -                {
 -                    // fix for bug 587733
 -                    if ($parvars[$i]->docblock && $parvars[$i]->docblock->hasaccess && !$c->parseprivate && $parvars[$i]->docblock->tags['access'][0]->value == 'private')
 -                    {
 -                        continue;
 -                    }
 -                    $arr[$par->getName()]['consts'][] = $parvars[$i];
 -                    $arr[$par->getName()]['file'] = $par->curfile;
 -                }
 -            }
 -            $x = &$par;
 -        }
 -        return $arr;
 -    }
 -    
 -    /**
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @return array Format: array(parentclassname => parserClass/false if no parent, parentclassname2 => ...)
 -     */
 -    function getParentClassTree(&$c)
 -    {
 -        $result = array();
 -        $result[$this->name] = $arr = $this->getParent($c);
 -        if (is_string($arr)) $result[$arr] = false;
 -        while ($arr && is_object($arr))
 -        {
 -            $result[$arr->name] = $arr->getParent($c);
 -            $arr = $arr->getParent($c);
 -            if (is_string($arr)) $result[$arr] = false;
 -        }
 -        return $result;
 -    }
 -    
 -    /**
 -     * returns a list of all child classes of this class
 -     * @param Converter this function will not work before the Conversion stage of parsing
 -     * @return array Format: array(parserClass child1,parserClass child2,...)
 -     */
 -    function getChildClassList(&$c)
 -    {
 -        $list = array();
 -        $kids = $c->classes->getDefiniteChildren($this->name,$this->curfile);
 -        if ($kids)
 -        {
 -            foreach($kids as $chile => $file)
 -            {
 -                $list[] = $c->classes->getClass($chile,$file);
 -            }
 -        }
 -        return $list;
 -    }
 -    
 -    /**
 -     * @param string
 -     * @see $sourceLocation
 -     */
 -    function setSourceLocation($sl)
 -    {
 -        $this->sourceLocation = $sl;
 -    }
 -    
 -    /**
 -     * @param Converter
 -     * @param boolean
 -     * @return string
 -     * @see $sourceLocation
 -     */
 -    function getSourceLocation($c,$pearize = false)
 -    {
 -        global $_phpDocumentor_options;
 -        if (!isset($this->sourceLocation)) return false;
 -        if ($pearize)
 -        {
 -            $sl = $this->sourceLocation;
 -            if (strpos($sl,'pear/'))
 -            {
 -                $sl = substr($sl,strpos($sl,'pear/') + 5);
 -                return $sl;
 -            } else
 -            {
 -                return $sl;
 -            }
 -            return $sl;
 -        }
 -        return $this->sourceLocation;
 -    }
 -    
 -    /**
 -     * @param string
 -     * @see $extends
 -     */
 -    function setExtends($extends)
 -    {
 -        $this->extends = $extends;
 -    }
 -    
 -    /**
 -     * @param string
 -     */
 -    function addImplements($implements)
 -    {
 -        $this->_implements[] = $implements;
 -    }
 -    
 -    /**
 -     * @return array
 -     */
 -    function getImplements()
 -    {
 -        return $this->_implements;
 -    }
 -    
 -    /**
 -     * @return boolean
 -     * @see $extends
 -     */
 -    function getExtends()
 -    {
 -        if (!isset($this->extends)) return false;
 -        return $this->extends;
 -    }
 -}
 -
 -/**
 - * @package phpDocumentor
 - * @subpackage ParserElements
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $
 - */
 -class parserVar extends parserElement
 -{
 -    /**
 -     * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah'
 -     * @var string always 'var'
 -     */
 -    var $type = 'var';
 -    /** @var string class that contains this var */
 -    var $class = '';
 -    /** @var array */
 -    var $_modifiers;
 -    
 -    /**
 -     * @param string
 -     */
 -    function parserVar($class)
 -    {
 -        $this->class = $class;
 -    }
 -    
 -    /**
 -     * Retrieve the class name
 -     * @return string Class name that this var belongs to
 -     */
 -    function getClass()
 -    {
 -        return $this->class;
 -    }
 -    
 -    /**
 -     * Return name of the class that contains this method
 -     * @return string
 -     */
 -    function getModifiers()
 -    {
 -        return $this->_modifiers;
 -    }
 -    
 -    /**
 -     * Return name of the class that contains this method
 -     * @return string
 -     */
 -    function setModifiers($m)
 -    {
 -        $this->_modifiers = $m;
 -    }
 -
 -    /**
 -     * quick way to link to this element
 -     * @return mixed converter-specific link to this var
 -     * @param Converter $c
 -     * @param string $text text to display for the link or false for default text
 -     */
 -    function getLink($c, $text = false, $returnobj = false)
 -    {
 -        if ($returnobj)
 -        {
 -            return $c->getLink($this->class . '::' . $this->name, $this->docblock->package);
 -        }
 -        return $c->getVarLink($this->name, $this->class, $this->docblock->package, false, $text);
 -    }
 -
 -    /**
 -     * @param Converter
 -     * @return mixed {@link parserVar} representing var this var overrides from the parent class, or false if none
 -     */
 -    function getOverrides(&$c)
 -    {
 -        $class = $c->classes->getClass($this->class,$this->path);
 -        $par = $class->getParent($c);
 -        
 -        while (is_object($par))
 -        {
 -          if ($par->hasVar($c,$this->name))
 -					{
 -						$var = $par->getVar($c,$this->name);
 -						if (!($var->docblock && $var->docblock->hasaccess && !$c->parseprivate && $var->docblock->tags['access'][0]->value == 'private'))
 -							return $var;
 -					}
 -          $par = $par->getParent($c);
 -        }
 -        
 -        return false;
 -    }
 -
 -    /**
 -     * @param Converter
 -     * @return array an array of parserVars from ALL child classes that override this var
 -     */
 -    function getOverridingVars(&$c)
 -    {
 -        $class = $c->classes->getClass($this->class,$this->path);
 -
 -				return $this->getOverridingVarsForClass($c, $class);
 -    }
 -
 -    /**
 -     * @param Converter
 -		 * @param parserClass
 -     * @return array an array of parserVars from ALL child classes that override this var in the given class
 -     */
 -		function getOverridingVarsForClass(&$c, &$class)
 -		{
 -			$vars = array();
 -			if (!$class) return $meths;
 -			$kids = $class->getChildClassList($c);
 -			for($i=0; $i<count($kids); $i++)
 -			{
 -					if ($kids[$i]->hasVar($c, $this->name))
 -					{
 -						$var = $kids[$i]->getVar($c,$this->name);
 -						if (!($var->docblock && $var->docblock->hasaccess && !$c->parseprivate && $var->docblock->tags['access'][0]->value == 'private'))
 -							$vars[] = $var;
 -					}
 -
 -					$vars = array_merge($vars, $this->getOverridingVarsForClass($c, $kids[$i]));
 -			}
 -			return $vars;
 -		}
 -}
 -
 -/**
 - * @package phpDocumentor
 - * @subpackage ParserElements
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.2.4
 - */
 -class parserConst extends parserElement
 -{
 -    /**
 -     * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah'
 -     * @var string always 'const'
 -     */
 -    var $type = 'const';
 -    /** @var string class that contains this var */
 -    var $class = '';
 -    
 -    /**
 -     * @param string
 -     */
 -    function parserConst($class)
 -    {
 -        $this->class = $class;
 -    }
 -    
 -    /**
 -     * Retrieve the class name
 -     * @return string Class name that this var belongs to
 -     */
 -    function getClass()
 -    {
 -        return $this->class;
 -    }
 -
 -    /**
 -     * quick way to link to this element
 -     * @return mixed converter-specific link to this var
 -     * @param Converter $c
 -     * @param string $text text to display for the link or false for default text
 -     */
 -    function getLink($c, $text = false, $returnobj = false)
 -    {
 -        if ($returnobj)
 -        {
 -            return $c->getLink($this->class . '::'. $this->name, $this->docblock->package);
 -        }
 -        return $c->getConstLink($this->name, $this->class, $this->docblock->package, false, $text);
 -    }
 -}
 -
 -/**
 - * @package phpDocumentor
 - * @subpackage ParserElements
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $
 - */
 -class parserMethod extends parserFunction
 -{
 -    /**
 -     * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah'
 -     * @var string always 'method'
 -     */
 -    var $type = 'method';
 -    /** @var boolean whether this method is a constructor */
 -    var $isConstructor = false;
 -    /** @var boolean whether this method is a destructor by PEAR standards */
 -    var $isDestructor = false;
 -    /** @var string class that contains this method */
 -    var $class = '';
 -    var $_modifiers = array();
 -    
 -    /**
 -     * @param string
 -     */
 -    function parserMethod($class)
 -    {
 -        $this->class = $class;
 -    }
 -    
 -    /**
 -     * @param string
 -     * @param string default value parsed from function definition
 -     * @param boolean indicates whether this parameter has a default value
 -     * @param null|string class type hint
 -     */
 -    function addParam($name, $value, $has_default = true, $typehint = null)
 -    {
 -        $this->params[$name] = array($value, $has_default);
 -        if (isset($typehint))
 -        {
 -            $this->params[$name][2] = $typehint;
 -        }
 -    }
 -    
 -    /**
 -     * adds "constructor " to start of function call if {@link $isConstructor} is true
 -     * @return string
 -     * @see parent::getFunctionCall()
 -     */
 -    function getFunctionCall()
 -    {
 -        $a = parserFunction::getFunctionCall();
 -        if ($this->isConstructor) $a = "constructor $a";
 -        return $a;
 -    }
 -    
 -    function getIntricateFunctionCall($converter,$paramtags)
 -    {
 -        $a = parserFunction::getIntricateFunctionCall($converter,$paramtags);
 -        if ($this->isConstructor) $a['constructor'] = true;
 -        if ($this->isDestructor) $a['destructor'] = true;
 -        return $a;
 -    }
 -    
 -    /**
 -     * Return name of the class that contains this method
 -     * @return string
 -     */
 -    function getClass()
 -    {
 -        return $this->class;
 -    }
 -    
 -    /**
 -     * Return name of the class that contains this method
 -     * @return string
 -     */
 -    function getModifiers()
 -    {
 -        return $this->_modifiers;
 -    }
 -    
 -    /**
 -     * Return name of the class that contains this method
 -     * @return string
 -     */
 -    function setModifiers($m)
 -    {
 -        $this->_modifiers = $m;
 -    }
 -    
 -    /**
 -     * @param Converter
 -     * @return mixed {@link parserMethod} representing method this method overrides from the parent class, or false if none
 -     */
 -    function getOverrides(&$c)
 -    {
 -        $class = $c->classes->getClass($this->class,$this->path);
 -        
 -        $par = $class->getParent($c);
 -        
 -        while (is_object($par))
 -        {
 -          if ($par->hasMethod($c,$this->name))
 -					{
 -						$meth = $par->getMethod($c,$this->name);
 -						if (!($meth->docblock && $meth->docblock->hasaccess && !$c->parseprivate && $meth->docblock->tags['access'][0]->value == 'private'))
 -							return $meth;
 -					}
 -
 -          $par = $par->getParent($c);
 -        }
 -        
 -        return false;
 -    }
 -    
 -    /**
 -     * quick way to link to this element
 -     * @return mixed converter-specific link to this method
 -     * @param Converter $c
 -     * @param string $text text to display for the link or false for default text
 -     */
 -    function getLink($c, $text = false, $returnobj = false)
 -    {
 -        if ($returnobj)
 -        {
 -            return $c->getLink($this->class . '::' . $this->name . '()', $this->docblock->package);
 -        }
 -        return $c->getMethodLink($this->name, $this->class, $this->docblock->package, false, $text);
 -    }
 -
 -    /**
 -     * Use this method to tell the parser that this method is the class constructor
 -     */
 -    function setConstructor()
 -    {
 -        $this->isConstructor = true;
 -    }
 -    
 -    /**
 -     * Use this method to tell the parser that this method is the class constructor
 -     */
 -    function setDestructor()
 -    {
 -        $this->isDestructor = true;
 -    }
 -    
 -    /**
 -     * @param Converter
 -     * @return array an array of parserMethods from child classes that override this method
 -     */
 -    function getOverridingMethods(&$c)
 -    {
 -        $class = $c->classes->getClass($this->class,$this->path);
 -
 -				return $this->getOverridingMethodsForClass($c, $class);
 -    }
 -
 -    /**
 -     * @param Converter
 -		 * @param parserClass
 -     * @return array an array of parserMethods from ALL child classes that override this method in the given class
 -     */
 -		function getOverridingMethodsForClass(&$c, &$class)
 -		{
 -			$meths = array();
 -			if (!$class) return $meths;
 -			$kids = $class->getChildClassList($c);
 -			for($i=0; $i<count($kids); $i++)
 -			{
 -					if ($kids[$i]->hasMethod($c, $this->name))
 -					{
 -						$meth = $kids[$i]->getMethod($c,$this->name);
 -						if (!($meth->docblock && $meth->docblock->hasaccess && !$c->parseprivate && $meth->docblock->tags['access'][0]->value == 'private'))
 -							$meths[] = $meth;
 -					}
 -
 -					$meths = array_merge($meths, $this->getOverridingMethodsForClass($c, $kids[$i]));
 -			}
 -			return $meths;
 -		}
 -}
 -
 -/**
 - * @package phpDocumentor
 - * @subpackage ParserElements
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $
 - */
 -class parserDefine extends parserElement
 -{
 -    /**
 -     * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah'
 -     * @var string always 'define'
 -     */
 -    var $type = 'define';
 -
 -    /**
 -     * quick way to link to this element
 -     * @return mixed converter-specific link to this define
 -     * @param Converter $c
 -     * @param string $text text to display for the link or false for default text
 -     */
 -    function getLink($c, $text = false, $returnobj = false)
 -    {
 -        if ($returnobj)
 -        {
 -            return $c->getLink('constant ' . $this->name, $this->docblock->package);
 -        }
 -        return $c->getDefineLink($this->name, $this->docblock->package, false, $text);
 -    }
 -
 -    /**
 -     * Returns all defines in other packages that have the same name as this define
 -     * @return mixed false or an array Format: (package => {@link parserDefine} of conflicting defines)
 -     * @param Converter
 -     */
 -    function getConflicts(&$c)
 -    {
 -        $a = $c->proceduralpages->getDefineConflicts($this->name);
 -        unset($a[$this->docblock->package]);
 -        return $a;
 -    }
 -    
 -}
 -
 -/**
 - * @package phpDocumentor
 - * @subpackage ParserElements
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.0rc1
 - * @version $Id: ParserElements.inc,v 1.2 2005/11/28 07:27:59 cellog Exp $
 - */
 -class parserPackagePage extends parserStringWithInlineTags
 -{
 -    /**
 -     * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah'
 -     * @var string always 'packagepage'
 -     */
 -    var $type = 'packagepage';
 -    /** @var string */
 -    var $package = 'default';
 -    
 -    /**
 -     * @param string
 -     */
 -    function parserPackagePage($package)
 -    {
 -        $this->package = $package;
 -    }
 -    
 -    /**
 -     * @param Converter
 -     */
 -    function Convert(&$c)
 -    {
 -        return parent::Convert($c,false);
 -    }
 -}
 -
 -/**
 - * @package phpDocumentor
 - * @subpackage ParserElements
 - * @since 1.2
 - */
 -class parserTutorial extends parserPackagePage
 -{
 -    /**
 -     * Type is used by many functions to skip the hassle of if phpDocumentor_get_class($blah) == 'parserBlah'
 -     * @var string always 'tutorial'
 -     */
 -    var $type = 'tutorial';
 -    /** @var string */
 -    var $package = 'default';
 -    /**
 -     * Either cls, pkg, or proc
 -     * @var string
 -     */
 -    var $tutorial_type;
 -    /**
 -     * The documentable element this tutorial is linked to
 -     *
 -     * Can be a parserData, parserClass, or nothing for package/subpackage docs
 -     */
 -    var $linked_element;
 -    /**
 -     * path to the tutorial page
 -     * @var string
 -     */
 -    var $path;
 -    /**
 -     * filename minus extension of this tutorial (used for @tutorial tag)
 -     * @var string
 -     */
 -    var $name;
 -    /** @var boolean */
 -    var $_xml = true;
 -    /**
 -     * output from tutorialname.ext.ini
 -     *
 -     * an array generated by {@link phpDocumentor_parse_ini_file()} containing
 -     * an index 'Linked Tutorials' with an array of tutorial names in the order
 -     * they should appear.  This is used to generate a linked list of tutorials like
 -     * {@tutorial phpDocumentor/tags.pkg}
 -     * @var array
 -     */
 -    var $ini = false;
 -    /**
 -     * link to the next tutorial in a document series, or false if none
 -     * @var tutorialLink
 -     */
 -    var $next = false;
 -    /**
 -     * link to the previous tutorial in a document series, or false if none
 -     * @var tutorialLink
 -     */
 -    var $prev = false;
 -    /**
 -     * link to the parent tutorial in a document series, or false if none
 -     *
 -     * This is used to generate an "Up" or "Home" link like the php manual.
 -     * The parent is defined as a tutorial that has a parenttutorialname.ext.ini
 -     * file and is not contained by any other tutorial's tutorialname.ext.ini
 -     * @var tutorialLink
 -     */
 -    var $parent = false;
 -    /**
 -     * links to the child tutorials, or false if none
 -     * @var array
 -     */
 -    var $children = false;
 -    
 -    /**
 -     * @param parserXMLDocBookTag top-level tag (<refentry> for 1.2.0)
 -     * @param information about the tutorial file.  Format:
 -     *
 -     * <pre>
 -     * array('tutename' => tutorial name,
 -     *       'path' => relative path of tutorial to tutorials/ directory
 -     *       'ini' => contents of the tutorial .ini file, if any)
 -     * </pre>
 -     */
 -    function parserTutorial($data, $info)
 -    {
 -        $this->value = $data;
 -        $this->package = $info['package'];
 -        $this->subpackage = $info['subpackage'];
 -        $this->tutorial_type = $info['tutetype'];
 -        $this->name = $info['tutename'];
 -        $this->path = $info['path'];
 -        $this->ini = $info['ini'];
 -    }
 -    
 -    /**
 -     * Retrieve the title of the tutorial, or of any subsection
 -     * @param Converter
 -     * @param string which subsection to retrieve the title from, if any
 -     * @uses parserXMLDocBookTag::getSubSection() retrieve the subsection to
 -     *       to get a title from
 -     */
 -    function getTitle(&$c,$subsection = '')
 -    {
 -        if (!empty($subsection))
 -        {
 -            $z = $this->value->getSubSection($c,$subsection);
 -            if (!$z)
 -            {
 -                addWarning(PDERROR_TUTORIAL_SUBSECTION_NOT_FOUND,$this->name,$subsection);
 -                return $subsection;
 -            }
 -            return $z->getTitle($c);
 -        }
 -        return $this->value->getTitle($c);
 -    }
 -    
 -    /**
 -     * @param Converter
 -     * @param boolean determines whether character data is postprocessed to be
 -     *                Converter-friendly or not.
 -     */
 -    function Convert(&$c, $postprocess = true)
 -    {
 -        return $this->value->Convert($c, $postprocess);
 -    }
 -    
 -    /**
 -     * @uses $parent creates a link to the documentation for the parent tutorial
 -     * @param parserTutorial
 -     * @param Converter
 -     */
 -    function setParent($parent,&$c)
 -    {
 -        $this->parent = new tutorialLink;
 -        $this->parent->addLink('', $parent->path, $parent->name, $parent->package, $parent->subpackage, $parent->getTitle($c));
 -    }
 -    
 -    /**
 -     * @param array array of parserTutorials that have child tutorials
 -     */
 -    function isChildOf($parents)
 -    {
 -        foreach($parents as $i => $parent)
 -        {
 -            if ($parent->path == $this->path) continue;
 -            if ($parent->ini && ($parent->package == $this->package) && ($parent->subpackage == $this->subpackage) && ($parent->tutorial_type == $this->tutorial_type))
 -            {
 -                foreach($parent->ini['Linked Tutorials'] as $child)
 -                {
 -                    if ($child . '.' . $this->tutorial_type == $this->name) return true;
 -                }
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * Retrieve converter-specific link to the parent tutorial's documentation
 -     * @param Converter
 -     */
 -    function getParent(&$c)
 -    {
 -        if (!$this->parent) return false;
 -        return $c->returnSee($this->parent);
 -    }
 -    
 -    /**
 -     * @uses $next creates a link to the documentation for the next tutorial
 -     * @param parserTutorial
 -     * @param Converter
 -     */
 -    function setNext($next,&$c)
 -    {
 -        if (phpDocumentor_get_class($next) == 'tutoriallink') return $this->next = $next;
 -        $this->next = new tutorialLink;
 -        $this->next->addLink('', $next->path, $next->name, $next->package, $next->subpackage, $next->getTitle($c));
 -    }
 -    
 -    /**
 -     * Retrieve converter-specific link to the next tutorial's documentation
 -     * @param Converter
 -     */
 -    function getNext(&$c)
 -    {
 -        if (!$this->next) return false;
 -        return $c->returnSee($this->next);
 -    }
 -    
 -    /**
 -     * @uses $prev creates a link to the documentation for the previous tutorial
 -     * @param parserTutorial
 -     * @param Converter
 -     */
 -    function setPrev($prev,&$c)
 -    {
 -        if (phpDocumentor_get_class($prev) == 'tutoriallink') return $this->prev = $prev;
 -        $this->prev = new tutorialLink;
 -        $this->prev->addLink('', $prev->path, $prev->name, $prev->package, $prev->subpackage, $prev->getTitle($c));
 -    }
 -    
 -    /**
 -     * Retrieve converter-specific link to the previous tutorial's documentation
 -     * @param Converter
 -     */
 -    function getPrev(&$c)
 -    {
 -        if (!$this->prev) return false;
 -        return $c->returnSee($this->prev);
 -    }
 -    
 -    /**
 -     * Get a link to this tutorial, or to any subsection of this tutorial
 -     * @param Converter
 -     * @param boolean if true, returns a {@link tutorialLink} instead of a string
 -     * @param string section name to link to
 -     * @return string|tutorialLink
 -     */
 -    function getLink(&$c,$pure = false,$section = '')
 -    {
 -        $link = new tutorialLink;
 -        $link->addLink($section, $this->path, $this->name, $this->package, $this->subpackage, $this->getTitle($c), $this->category);
 -        if ($pure) return $link;
 -        return $c->returnSee($link);
 -    }
 -}
 -
 -?>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/ProceduralPages.inc b/buildscripts/PhpDocumentor/phpDocumentor/ProceduralPages.inc deleted file mode 100644 index a26fbacc..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/ProceduralPages.inc +++ /dev/null @@ -1,782 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * Intermediate procedural page parsing structure.
 - * This structure parses defines, functions, and global variables by file,
 - * and then iterates over the elements to document conflicts.
 - * @package phpDocumentor
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.1
 - * @version $Id: ProceduralPages.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
 - */
 -/**
 - * Intermediate procedural page parsing structure.
 - * This structure parses defines, functions, and global variables by file,
 - * and then iterates over the elements to document conflicts.
 - * @package phpDocumentor
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.1
 - * @version $Id: ProceduralPages.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
 - */
 -class ProceduralPages
 -{
 -    /**
 -     * file being parsed, used in every add function to match up elements with the file that contains them
 -     * @see addClass(), addMethod(), addVar(), nextFile()
 -     * @var string
 -     */
 -    var $curfile;
 -    /**
 -     * array of all procedural pages ordered by name
 -     * Format:
 -     * array(name => array(fullpath => parserPage,fullpath => parserPage2 [if there are name conflicts],...))
 -     * @var array
 -     */
 -    var $pages = array();
 -    /**
 -     * array of all procedural pages ordered by name that have been ignored via -po or @access private or @ignore
 -     * Format:
 -     * array(name => array(fullpath => parserPage,fullpath => parserPage2 [if there are name conflicts],...))
 -     * @var array
 -     */
 -    var $ignorepages = array();
 -    /**
 -     * array of all procedural page names ordered by full path to the file
 -     * Format:
 -     * array(fullpath => name)
 -     * @var array
 -     */
 -    var $pathpages = array();
 -    /**
 -     * array of parsed includes organized by the full path of the file that contains the include.
 -     * Format:
 -     * array(full path => array(includename => {@link parserInclude}))
 -     * @var array
 -     */
 -    var $includesbyfile = array();
 -    /**
 -     * array of parsed functions organized by the full path of the file that contains the function.
 -     * Format:
 -     * array(full path => array(functionname => {@link parserFunction}))
 -     * @var array
 -     */
 -    var $functionsbyfile = array();
 -    /**
 -     * array of parsed defines organized by the full path of the file that contains the define.
 -     * Format:
 -     * array(full path => array(definename => {@link parserDefine}))
 -     * @var array
 -     */
 -    var $definesbyfile = array();
 -    /**
 -     * array of parsed global variables organized by the full path of the file that contains the global variable definition.
 -     * Format:
 -     * array(full path => array(globalname => {@link parserGlobal}))
 -     * @var array
 -     */
 -    var $globalsbyfile = array();
 -    /**
 -     * array of file names organized by functions that are in the file.
 -     * This structure is designed to handle name conflicts.  Two files can contain functions with the same name, and this array will
 -     * record both filenames to help control namespace errors
 -     * Format:
 -     * array(functionname => array(full path of file containing functionname, full path of file 2 containing functionname...)
 -     * @var array
 -     */
 -    var $functionsbynamefile = array();
 -    /**
 -     * array of file names organized by defines that are in the file.
 -     * This structure is designed to handle name conflicts.  Two files can contain defines with the same name, and this array will
 -     * record both filenames to help control namespace errors
 -     * Format:
 -     * array(definename => array(full path of file containing definename, full path of file 2 containing definename...)
 -     * @var array
 -     */
 -    var $definesbynamefile = array();
 -    /**
 -     * array of file names organized by global variables that are in the file.
 -     * This structure is designed to handle name conflicts.  Two files can contain global variables with the same name, and this array will
 -     * record both filenames to help control namespace errors
 -     * Format:
 -     * array(global variablename => array(full path of file containing global variablename, full path of file 2 containing global variablename...)
 -     * @var array
 -     */
 -    var $globalsbynamefile = array();
 -    /**
 -     * array of packages ordered by full path
 -     * Format:
 -     * array(fullpath => array(packagename,subpackagename))
 -     * @var array
 -     */
 -    var $pagepackages = array();
 -    /**
 -     * array of packages assigned to classes in a file, ordered by fullpath
 -     * Format:
 -     * array(fullpath => array(packagename => array(subpackagename => 1,subpackagename => 1,..),packagename2 =>...)
 -     * @var array
 -     */
 -    var $pageclasspackages = array();
 -    /**
 -     * Namespace conflicts within all documented packages of functions
 -     * Format:
 -     * array(functionname => array(full path, full path,...))
 -     * @var array
 -     */
 -    var $functionconflicts = array();
 -    /**
 -     * Namespace conflicts within all documented pages
 -     * Format:
 -     * array(pagename => array(fullpath, fullpath,...))
 -     * @var array
 -     */
 -    var $pageconflicts = array();
 -    /**
 -     * Namespace conflicts within all documented packages of functions
 -     * Format:
 -     * array(functionname => array(full path, full path,...))
 -     * @var array
 -     */
 -    var $defineconflicts = array();
 -    /**
 -     * Namespace conflicts within all documented packages of functions
 -     * Format:
 -     * array(functionname => array(full path, full path,...))
 -     * @var array
 -     */
 -    var $globalconflicts = array();
 -    /** @access private
 -     * @var array */
 -    var $revcpbf = array();
 -    /** @access private
 -     * @var boolean */
 -    var $packagesetup = false;
 -
 -    /**
 -     * sets up the {@link $pages} array
 -     * @param parserPage &$element
 -     */
 -    function addPage(&$element)
 -    {
 -        $this->curfile = $element->getPath();
 -        $this->pages[$element->getFile()][$element->getPath()] = $element;
 -        $this->pathpages[$this->curfile] = $element->getFile();
 -        $this->addPagePackage($this->curfile, $element->package, $element->subpackage);
 -    }
 -    
 -    /**
 -     * moves a page from the {@link $pages} array to the {@link $ignorepages} array
 -     * @param parserPage &$element
 -     */
 -    function ignorePage(&$element)
 -    {
 -        $this->ignorepages[$element->getFile()][$element->getPath()] = $this->pages[$element->getFile()][$element->getPath()];
 -        unset($this->pages[$element->getFile()][$element->getPath()]);
 -    }
 -
 -    function getPathInfo($path,&$c)
 -    {
 -        $path = str_replace('/',SMART_PATH_DELIMITER,$path);
 -        $info = array();
 -        if (!isset($this->pathpages[$path])) return false;
 -        $p = $this->pages[$this->pathpages[$path]][$path];
 -        $p->name = $c->getPageName($p);
 -        $info['package'] = $p->package;
 -        $info['subpackage'] = $p->subpackage;
 -        $info['name'] = $p->getFile();
 -        $info['source_loc'] = $p->getSourceLocation($c);
 -        $x = new pageLink;
 -        $x->addLink($p->path,$p->name,$p->file,$p->package, $p->subpackage);
 -        $info['docs'] = $c->returnSee($x);
 -        return $info;
 -    }
 -    
 -    /**
 -     * Change a page's name from its file to alias $name
 -     *
 -     * This function is used to handle a @name tag in a page-level DocBlock
 -     * @param string $name
 -     */
 -    function setName($name)
 -    {
 -        $this->pages[$name][$this->curfile] = $this->pages[$this->pathpages[$this->curfile]][$this->curfile];
 -        $this->pages[$name][$this->curfile]->file = $name;
 -        unset($this->pages[$this->pathpages[$this->curfile]][$this->curfile]);
 -        $this->pathpages[$this->curfile] = $name;
 -    }
 -    
 -    /**
 -     * Changes the package of the page represented by $path
 -     *
 -     * changes package in both the {@link $pages} array and the {@link pagepackages} array
 -     * @param string $path full path
 -     * @param string $package
 -     * @param string $subpackage
 -     */
 -    function addPagePackage($path,$package,$subpackage)
 -    {
 -        $this->pages[$this->pathpages[$path]][$path]->package = $package;
 -        $this->pages[$this->pathpages[$path]][$path]->subpackage = $subpackage;
 -        $this->pagepackages[$path] = array($package, $subpackage);
 -        if (isset($this->includesbyfile[$path]))
 -        {
 -            foreach($this->includesbyfile[$path] as $i => $el)
 -            {
 -                $el->package = $package;
 -                $el->subpackage = $subpackage;
 -                $this->includesbyfile[$path][$i] = $el;
 -            }
 -        }
 -        if (isset($this->functionsbyfile[$path]))
 -        {
 -            foreach($this->functionsbyfile[$path] as $i => $el)
 -            {
 -                $el->package = $package;
 -                $el->subpackage = $subpackage;
 -                $this->functionsbyfile[$path][$i] = $el;
 -            }
 -        }
 -        if (isset($this->definesbyfile[$path]))
 -        {
 -            foreach($this->definesbyfile[$path] as $i => $el)
 -            {
 -                $el->package = $package;
 -                $el->subpackage = $subpackage;
 -                $this->definesbyfile[$path][$i] = $el;
 -            }
 -        }
 -        if (isset($this->globalsbyfile[$path]))
 -        {
 -            foreach($this->globalsbyfile[$path] as $i => $el)
 -            {
 -                $el->package = $package;
 -                $el->subpackage = $subpackage;
 -                $this->globalsbyfile[$path][$i] = $el;
 -            }
 -        }
 -    }
 -
 -    /**
 -     * sets up the {@link $includesbyfile} array using {@link $curfile}
 -     * @param parserInclude &$element
 -     */
 -    function addInclude(&$element)
 -    {
 -        $this->includesbyfile[$this->curfile][] = $element;
 -    }
 -
 -    /**
 -     * sets up the {@link $functionsbyfile} array using {@link $curfile}
 -     * @param parserFunction &$element
 -     */
 -    function addFunction(&$element)
 -    {
 -        if (isset($this->functionsbyfile[$this->curfile]))
 -        {
 -            foreach($this->functionsbyfile[$this->curfile] as $i => $function)
 -            {
 -                if ($function->getName() == $element->getName())
 -                {
 -                    addWarning(PDERROR_ELEMENT_IGNORED,'function',$element->getName(),$this->curfile);
 -                    return;
 -                }
 -            }
 -        }
 -        $this->functionsbyfile[$this->curfile][] = $element;
 -        $this->functionsbynamefile[$element->getName()][] = $this->curfile;
 -    }
 -
 -    /**
 -     * sets up the {@link $globalsbyfile} array using {@link $curfile}
 -     * @param parserGlobal &$element
 -     */
 -    function addGlobal(&$element)
 -    {
 -        if (isset($this->globalsbyfile[$this->curfile]))
 -        {
 -            foreach($this->globalsbyfile[$this->curfile] as $i => $global)
 -            {
 -                if ($global->getName() == $element->getName())
 -                {
 -                    addWarning(PDERROR_ELEMENT_IGNORED,'global variable',$element->getName(),$this->curfile);
 -                    return;
 -                }
 -            }
 -        }
 -        $this->globalsbyfile[$this->curfile][] = $element;
 -        $this->globalsbynamefile[$element->getName()][] = $this->curfile;
 -    }
 -
 -    /**
 -     * sets up the {@link $definesbyfile} array using {@link $curfile}
 -     * @param parserDefine &$element
 -     */
 -    function addDefine(&$element)
 -    {
 -        if (isset($this->definesbyfile[$this->curfile]))
 -        {
 -            foreach($this->definesbyfile[$this->curfile] as $i => $define)
 -            {
 -                if ($define->getName() == $element->getName())
 -                {
 -                    addWarning(PDERROR_ELEMENT_IGNORED,'define',$element->getName(),$this->curfile);
 -                    return;
 -                }
 -            }
 -        }
 -        $this->definesbyfile[$this->curfile][] = $element;
 -        $this->definesbynamefile[$element->getName()][] = $this->curfile;
 -    }
 -    
 -    /**
 -     * Used to align an element with the package of its parent page prior to Conversion.
 -     * @param parserElement &$element
 -     */
 -    function replaceElement(&$element)
 -    {
 -        if ($element->type == 'define')
 -        {
 -            foreach($this->definesbyfile[$element->getPath()] as $i => $el)
 -            {
 -                if ($el->getName() == $element->getName())
 -                {
 -                    $this->definesbyfile[$element->getPath()][$i] = &$element;
 -                }
 -            }
 -        } elseif ($element->type == 'global')
 -        {
 -            foreach($this->globalsbyfile[$element->getPath()] as $i => $el)
 -            {
 -                if ($el->getName() == $element->getName())
 -                {
 -                    $this->globalsbyfile[$element->getPath()][$i] = &$element;
 -                }
 -            }
 -        } elseif ($element->type == 'include')
 -        {
 -            foreach($this->includesbyfile[$element->getPath()] as $i => $el)
 -            {
 -                if ($el->getName() == $element->getName())
 -                {
 -                    $this->includesbyfile[$element->getPath()][$i] = &$element;
 -                }
 -            }
 -        } elseif ($element->type == 'function')
 -        {
 -            foreach($this->functionsbyfile[$element->getPath()] as $i => $el)
 -            {
 -                if ($el->getName() == $element->getName())
 -                {
 -                    $this->functionsbyfile[$element->getPath()][$i] = &$element;
 -                }
 -            }
 -        }
 -    }
 -
 -    /**
 -     * adds a package from a class to the current file
 -     * @param string $file    full path to the file that contains the class
 -     * @param string $package package name
 -     */
 -    function addClassPackageToFile($file,$package,$subpackage)
 -    {
 -        // don't care about default
 -//        if ($package == $GLOBALS['phpDocumentor_DefaultPackageName'])
 -//        $this->revcpbf[$file][$package][$subpackage] = 1;
 -        if (!isset($this->revcpbf[$file][$package][$subpackage]))
 -        {
 -            $this->pageclasspackages[$file][$package][$subpackage] = 1;
 -        }
 -        $this->revcpbf[$file][$package][$subpackage] = 1;
 -    }
 -    
 -    /**
 -     * if there is one class package in a file, the parent path inherits the package if its package is default.
 -     * helps with -po to avoid dumb bugs
 -     */
 -    function setupPagePackages()
 -    {
 -        if ($this->packagesetup) return;
 -        foreach($this->pageclasspackages as $fullpath => $packages)
 -        {
 -            if (isset($this->pagepackages[$fullpath]))
 -            {
 -                if ($this->pagepackages[$fullpath][0] == $GLOBALS['phpDocumentor_DefaultPackageName'])
 -                {
 -                    if (count($packages) == 1)
 -                    {
 -                        list($package,$subpackage) = each($packages);
 -                        if (count($subpackage) == 1) list($subpackage,) = each($subpackage);
 -                        else $subpackage = '';
 -                        $this->addPagePackage($fullpath,$package,$subpackage);
 -                    }
 -                }
 -            }
 -        }
 -        $this->packagesetup = true;
 -    }
 -    
 -    /**
 -     * extracts function, define, and global variable name conflicts within the same package and between different
 -     * packages.  No two elements with the same name are allowed in the same package, to keep automatic linking 
 -     * possible.
 -     * @access private
 -     */
 -    function setupConflicts(&$render)
 -    {
 -        
 -        foreach($this->functionsbynamefile as $function => $paths)
 -        {
 -            if (count($paths) - 1)
 -            { //conflict
 -                $package = array();
 -                foreach($paths as $path)
 -                {
 -                    // create a list of conflicting functions in each package
 -                    $package[$this->pagepackages[$path][0]][] = $path;
 -                }
 -                foreach($package as $pathpackages)
 -                {
 -                    // if at least 2 functions exist in the same package, delete all but the first one and add warnings
 -                    if (count($pathpackages) - 1)
 -                    {
 -                        for($i=1; $i < count($pathpackages); $i++)
 -                        {
 -                            addWarning(PDERROR_ELEMENT_IGNORED,'function',$function,$pathpackages[$i]);
 -                            foreach($this->functionsbyfile[$pathpackages[$i]] as $j => $blah)
 -                            {
 -                                if ($this->functionsbyfile[$pathpackages[$i]][$j]->getName() == $function)
 -                                unset($this->functionsbyfile[$pathpackages[$i]][$j]);
 -                            }
 -                            $oth = array_flip($paths);
 -                            unset($paths[$oth[$pathpackages[$i]]]);
 -                        }
 -                    }
 -                }
 -                $this->functionconflicts[$function] = $paths;
 -            }
 -        }
 -
 -        foreach($this->definesbynamefile as $define => $paths)
 -        {
 -            if (count($paths) - 1)
 -            { //conflict
 -                $package = array();
 -                foreach($paths as $path)
 -                {
 -                    // create a list of conflicting functions in each package
 -                    $package[$this->pagepackages[$path][0]][] = $path;
 -                }
 -                foreach($package as $pathpackages)
 -                {
 -                    // if at least 2 functions exist in the same package, delete all but the first one and add warnings
 -                    if (count($pathpackages) - 1)
 -                    {
 -                        for($i=1; $i < count($pathpackages); $i++)
 -                        {
 -                            addWarning(PDERROR_ELEMENT_IGNORED,'define',$define,$pathpackages[$i]);
 -                            foreach($this->definesbyfile[$pathpackages[$i]] as $j => $blah)
 -                            {
 -                                if ($this->definesbyfile[$pathpackages[$i]][$j]->getName() == $define)
 -                                unset($this->definesbyfile[$pathpackages[$i]][$j]);
 -                            }
 -                            $oth = array_flip($paths);
 -                            unset($paths[$oth[$pathpackages[$i]]]);
 -                        }
 -                    }
 -                }
 -                $this->defineconflicts[$define] = $paths;
 -            }
 -        }
 -
 -        foreach($this->globalsbynamefile as $global => $paths)
 -        {
 -            if (count($paths) - 1)
 -            { //conflict
 -                $package = array();
 -                foreach($paths as $path)
 -                {
 -                    // create a list of conflicting functions in each package
 -                    $package[$this->pagepackages[$path][0]][] = $path;
 -                }
 -                foreach($package as $pathpackages)
 -                {
 -                    // if at least 2 functions exist in the same package, delete all but the first one and add warnings
 -                    if (count($pathpackages) - 1)
 -                    {
 -                        for($i=1; $i < count($pathpackages); $i++)
 -                        {
 -                            addWarning(PDERROR_ELEMENT_IGNORED,'global variable',$global,$pathpackages[$i]);
 -                            foreach($this->globalsbyfile[$pathpackages[$i]] as $j => $blah)
 -                            {
 -                                if ($this->globalsbyfile[$pathpackages[$i]][$j]->getName() == $global)
 -                                unset($this->globalsbyfile[$pathpackages[$i]][$j]);
 -                            }
 -                            $oth = array_flip($paths);
 -                            unset($paths[$oth[$pathpackages[$i]]]);
 -                        }
 -                    }
 -                }
 -                $this->globalconflicts[$global] = $paths;
 -            }
 -        }
 -        
 -        foreach($this->pages as $name => $pages)
 -        {
 -            if (count($pages) - 1)
 -            { // possible conflict
 -                
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * called by {@link parserFunction::getConflicts()} to get inter-package conflicts, should not be called directly
 -     * @access private
 -     * @return array Format: (package => {@link parserFunction} of conflicting function)
 -     */
 -    function getFuncConflicts($name)
 -    {
 -        if (!isset($this->functionconflicts[$name])) return false;
 -        $a = array();
 -        foreach($this->functionconflicts[$name] as $conflict)
 -        {
 -            foreach($this->functionsbyfile[$conflict] as $i => $func)
 -            {
 -                if ($func->getName() == $name)
 -                $a[$this->functionsbyfile[$conflict][$i]->docblock->package] = $this->functionsbyfile[$conflict][$i];
 -            }
 -        }
 -        return $a;
 -    }
 -    
 -    /**
 -     * called by {@link parserGlobal::getConflicts()} to get inter-package conflicts, should not be called directly
 -     * @access private
 -     * @return array Format: (package => {@link parserGlobal} of conflicting global variable)
 -     */
 -    function getGlobalConflicts($name)
 -    {
 -        if (!isset($this->globalconflicts[$name])) return false;
 -        $a = array();
 -        foreach($this->globalconflicts[$name] as $conflict)
 -        {
 -            foreach($this->globalsbyfile[$conflict] as $i => $func)
 -            {
 -                if ($func->getName() == $name)
 -                $a[$this->globalsbyfile[$conflict][$i]->docblock->package] = $this->globalsbyfile[$conflict][$i];
 -            }
 -        }
 -        return $a;
 -    }
 -    
 -    /**
 -     * called by {@link parserDefine::getConflicts()} to get inter-package conflicts, should not be called directly
 -     * @access private
 -     * @return array Format: (package => {@link parserDefine} of conflicting define)
 -     */
 -    function getDefineConflicts($name)
 -    {
 -        if (!isset($this->defineconflicts[$name])) return false;
 -        $a = array();
 -        foreach($this->defineconflicts[$name] as $conflict)
 -        {
 -            foreach($this->definesbyfile[$conflict] as $i => $func)
 -            {
 -                if ($func->getName() == $name)
 -                $a[$this->definesbyfile[$conflict][$i]->docblock->package] = $this->definesbyfile[$conflict][$i];
 -            }
 -        }
 -        return $a;
 -    }
 -    
 -    /**
 -     * Adjusts packages of all pages and removes name conflicts within a package
 -     *
 -     * Automatic linking requires that each linkable name have exactly one element associated with it.  In other words, there
 -     * cannot be two functions named foo() in the same package.  This also adheres to php rules with one exception:
 -     *
 -     * <code>
 -     * if ($test == 3)
 -     * {
 -     *    define('whatever','this thing');
 -     * } else
 -     * {
 -     *    define('whatever','this other thing');
 -     * }
 -     * </code>
 -     *
 -     * phpDocumentor is not aware of conditional control structures because it would slow things down considerably.
 -     * So, what phpDocumentor does is automatically ignore the second define and raise a warning.  The warning can
 -     * be eliminated with an @ignore tag on the second element like so:
 -     *
 -     * <code>
 -     * if ($test == 3)
 -     * {
 -     *    define('whatever','this thing');
 -     * } else
 -     * {
 -     *    /** @ignore {@*}
 -     *    define('whatever','this other thing');
 -     * }
 -     * </code>
 -     *
 -     * if there are two files that contain the same procedural elements in the same package (for example, 
 -     * a common configuration file common.php), they will also be ignored as if they were in the same file.  The
 -     * reasoning behind this is simple.  A package is an indivisible set of files and classes that a user will
 -     * include in their code.  Name conflicts must be avoided to allow successful execution.
 -     *
 -     * This function also plays the all-important role of calling {@link phpDocumentor_IntermediateParser::addElementToPage()} in
 -     * order to add processed elements to their pages for Conversion.
 -     * @param phpDocumentor_IntermediateParser &$render
 -     */
 -    function setupPages(&$render)
 -    {
 -        global $_phpDocumentor_setting;
 -        phpDocumentor_out("\nProcessing Procedural Page Element Name Conflicts\n\n");
 -        flush();
 -        $this->setupPagePackages();
 -        $this->setupConflicts($render);
 -//        phpDocumentor_out("\nProcessing Procedural Pages\n\n");
 -        foreach($this->pathpages as $path => $name)
 -        {
 -//            phpDocumentor_out("Processing $path\n");
 -            $a = $this->pagepackages[$path];
 -            $b = &$this->pages[$name][$path];
 -            $render->addPage($b, $path);
 -            $render->addUses($b, $path);
 -            if (isset($this->includesbyfile[$path]))
 -            foreach($this->includesbyfile[$path] as $include)
 -            {
 -                $include->docblock->package = $a[0];
 -                $include->docblock->subpackage = $a[1];
 -                $render->addElementToPage($include,$path);
 -            }
 -    
 -            if (isset($this->functionsbyfile[$path]))
 -            foreach($this->functionsbyfile[$path] as $function)
 -            {
 -                $function->docblock->package = $a[0];
 -                $function->docblock->subpackage = $a[1];
 -                $render->addElementToPage($function,$path);
 -                $render->addUses($function,$path);
 -            }
 -    
 -            if (isset($this->definesbyfile[$path]))
 -            foreach($this->definesbyfile[$path] as $define)
 -            {
 -                $define->docblock->package = $a[0];
 -                $define->docblock->subpackage = $a[1];
 -                $render->addElementToPage($define,$path);
 -                $render->addUses($define,$path);
 -            }
 -    
 -            if (isset($this->globalsbyfile[$path]))
 -            foreach($this->globalsbyfile[$path] as $global)
 -            {
 -                $global->docblock->package = $a[0];
 -                $global->docblock->subpackage = $a[1];
 -                $render->addElementToPage($global,$path);
 -                $render->addUses($global,$path);
 -            }
 -        }
 -    }
 -    
 -    function setParseBase($pbase)
 -    {
 -        $this->_parsedbase = $pbase;
 -    }
 -    
 -    /**
 -     * @return false|parserPage returns matched parserPage if found
 -     */
 -    function pathMatchesParsedFile($path, $infile)
 -    {
 -        $test = $this->getRealPath($path, $infile);
 -        if (is_string($test))
 -        {
 -            if (isset($this->pathpages[$test]))
 -                return $this->pages[$this->pathpages[$test]][$test];
 -            if (PHPDOCUMENTOR_WINDOWS) $test = str_replace('/','\\',$test);
 -            if (isset($this->pathpages[$test]))
 -            {
 -                $a = $this->pages[$this->pathpages[$test]][$test];
 -                if (is_array($a->packageOutput) && !in_array($a->package, $a->packageOutput))
 -                    return false;
 -                return $this->pages[$this->pathpages[$test]][$test];
 -            }
 -        } else
 -        {
 -            foreach($test as $file)
 -            {
 -                if (isset($this->pathpages[$file]))
 -                    return $this->pages[$this->pathpages[$file]][$file];
 -                if (PHPDOCUMENTOR_WINDOWS) $file = str_replace('/','\\',$file);
 -                if (isset($this->pathpages[$file]))
 -                {
 -                    $a = $this->pages[$this->pathpages[$file]][$file];
 -                    if (is_array($a->packageOutput) && !in_array($a->package, $a->packageOutput))
 -                        return false;
 -                    return $this->pages[$this->pathpages[$file]][$file];
 -                }
 -            }
 -        }
 -        return false;
 -    }
 -    
 -    /**
 -     * @param string include() statement path to check
 -     * @param string full path of file the statement is in
 -     * @param string full path to base directory of parsing, used for .
 -     * @return array|string returns an array of possible file locations or
 -     *                      a string if there is an exact match
 -     */
 -    function getRealPath($path, $file)
 -    {
 -        $curdir = str_replace('\\','/',dirname($file));
 -        $path = str_replace('\\','/',$path);
 -        if (strpos($path,':') !== false)
 -        { // windows, and we have a drive letter
 -            return $path;
 -        } elseif(strpos($path,'/') === 0)
 -        {
 -            return $path;
 -        }
 -        // not an absolute path
 -        $path = explode('/',$path);
 -        if ($path[0] == '.')
 -        {
 -            $path[0] = dirname($file);
 -            return join($path,'/');
 -        } elseif ($path[0] == '..')
 -        {
 -            $dirfile = explode('/',dirname(str_replace('\\','/',$file)));
 -            array_pop($dirfile); // remove the current directory
 -            if (!count($dirfile)) return false; // we were at a top-level dir!
 -            $path[0] = join($dirfile,'/'); // replace .. with parent dirname
 -            return join($path,'/');
 -        } else
 -        {
 -            $path = join($path,'/');
 -            return array($curdir . PATH_DELIMITER . $path,
 -                         str_replace('\\','/',PHPDOCUMENTOR_BASE) . PATH_DELIMITER . $path);
 -        }
 -    }
 -}
 -?>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Publisher.inc b/buildscripts/PhpDocumentor/phpDocumentor/Publisher.inc deleted file mode 100644 index 7e038021..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Publisher.inc +++ /dev/null @@ -1,84 +0,0 @@ -<?php
 -//
 -// +------------------------------------------------------------------------+
 -// | phpDocumentor                                                          |
 -// +------------------------------------------------------------------------+
 -// | Publisher Copyright 2000-2003 Kellin                                   |
 -// | Email passionplay@hotmail.com                                          |
 -// | 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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * a class for handling the publishing of data
 - *
 - * @author Kellin <passionplay@hotmail.com>
 - * @author Joshua Eichorn <jeichorn@phpdoc.org>
 - * @version	$Id: Publisher.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
 - * @package 	phpDocumentor
 - */
 -/**
 - * a class for handling the publishing of data
 - *
 - * @author Kellin <passionplay@hotmail.com>
 - * @author Joshua Eichorn <jeichorn@phpdoc.org>
 - * @version	$Id: Publisher.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
 - * @package 	phpDocumentor
 - */
 -class Publisher
 -{
 -    /**#@+
 -     * @var array
 -     */
 -	/**
 -     * Array of references objects that have Subscribed to this publisher
 -     */
 -	var $subscriber	=	array();
 -
 -	var $tokens	=	array();
 -
 -	var $pushEvent	=	array();
 -	var $popEvent	=	array();
 -    /**#@-*/
 -
 -
 -	/**
 -     * Adds a subscriber to the {@link $subscriber} array().
 -     * if $event is '*', the publisher will use $object as the default event handler
 -     * @param integer $event see {@link Parser.inc} PARSER_EVENT_* constants
 -     * @param class $object any class that has a HandleEvent() method like {@link phpDocumentor_IntermediateParser::HandleEvent()} or {@link Classes::HandleEvent()}
 -     */
 -	function subscribe($event, &$object)
 -	{
 -		$this->subscriber[$event] =& $object;
 -	}
 -
 -	/**
 -     * @param integer $event see {@link Parser.inc} PARSER_EVENT_* constants
 -     * @param mixed $data anything the subscribed event handler is expecting
 -     */
 -	function publishEvent($event,$data)
 -	{
 -		
 -		// see if there is a specific event handler
 -		if (!empty($this->subscriber[$event]))
 -		{
 -			$this->subscriber[$event]->HandleEvent($event,$data);
 -		} 
 -		 else if (isset($this->subscriber['*']) && is_object($this->subscriber['*'])) // check to see if a generic handler exists
 -		{
 -			$this->subscriber['*']->HandleEvent($event,$data);
 -		}
 -	}	
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Setup.inc.php b/buildscripts/PhpDocumentor/phpDocumentor/Setup.inc.php deleted file mode 100644 index b53634de..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Setup.inc.php +++ /dev/null @@ -1,785 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * This was all in phpdoc.inc, and now encapsulates the complexity
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @version $Revision: 1.6 $
 - * @package phpDocumentor
 - * @since 1.2
 - */
 -error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT);
 -/** common settings */
 -include_once("phpDocumentor/common.inc.php");
 -
 -include_once("phpDocumentor/Io.inc");
 -include_once("phpDocumentor/Publisher.inc");
 -include_once("phpDocumentor/Classes.inc");
 -include_once("phpDocumentor/ProceduralPages.inc");
 -include_once("phpDocumentor/IntermediateParser.inc");
 -include_once("phpDocumentor/WordParser.inc");
 -include_once("phpDocumentor/EventStack.inc");
 -include_once("phpDocumentor/ParserData.inc");
 -include_once("phpDocumentor/InlineTags.inc");
 -include_once("phpDocumentor/DocBlockTags.inc");
 -include_once("phpDocumentor/DescHTML.inc");
 -include_once("phpDocumentor/ParserDocBlock.inc");
 -include_once("phpDocumentor/ParserElements.inc");
 -include_once("phpDocumentor/Parser.inc");
 -include_once("phpDocumentor/phpDocumentorTWordParser.inc");
 -include_once("phpDocumentor/phpDocumentorTParser.inc");
 -include_once("phpDocumentor/HighlightParser.inc");
 -include_once("phpDocumentor/TutorialHighlightParser.inc");
 -include_once("phpDocumentor/ParserDescCleanup.inc");
 -include_once("phpDocumentor/PackagePageElements.inc");
 -include_once("phpDocumentor/XMLpackagePageParser.inc");
 -include_once("phpDocumentor/LinkClasses.inc");
 -include_once("phpDocumentor/Converter.inc");
 -include_once("phpDocumentor/Errors.inc");
 -if (isset($_GET))
 -{
 -/**
 - * $interface is either 'web' or is not set at all
 - * @global array $interface
 - */
 -    if (isset($_GET['interface'])) $interface = $_GET['interface'];
 -/**
 - * $_phpDocumentor_setting is either the value from the web interface, or is set up by {@link Io::parseArgv()}
 - * @global array $_phpDocumentor_setting
 - */
 -    if (isset($_GET['setting'])) $_phpDocumentor_setting = $_GET['setting'];
 -}
 -
 -/**
 - * default package name, set using -dn --defaultpackagename
 - * @global string $GLOBALS['phpDocumentor_DefaultPackageName']
 - * @name $phpDocumentor_DefaultPackageName
 - */
 -$GLOBALS['phpDocumentor_DefaultPackageName'] = 'default';
 -
 -/**
 - * default package name, set using -dn --defaultcategoryname
 - * @global string $GLOBALS['phpDocumentor_DefaultCategoryName']
 - * @name $phpDocumentor_DefaultCategoryName
 - */
 -$GLOBALS['phpDocumentor_DefaultCategoryName'] = 'default';
 -
 -/**
 - * @package phpDocumentor
 - */
 -class phpDocumentor_setup
 -{
 -    /**
 -     * The main parser
 -     * @var Parser|phpDocumentorTParser
 -     */
 -    var $parse;
 -    /**
 -     * Used to parse command-line options
 -     * @var Io
 -     */
 -    var $setup;
 -    /**
 -     * Used to organize output from the Parser before Conversion
 -     * @var phpDocumentor_IntermediateParser
 -     */
 -    var $render = false;
 -    /**
 -     * Packages to create documentation for
 -     * @var string
 -     */
 -    var $packages = false;
 -    /**
 -     * contents of --filename commandline
 -     * @tutorial phpDocumentor.howto.pkg#using.command-line.filename
 -     * @var string
 -     */
 -    var $files = '';
 -    /**
 -     * contents of --directory commandline
 -     * @tutorial phpDocumentor.howto.pkg#using.command-line.directory
 -     * @var string
 -     */
 -    var $dirs = '';
 -    /**
 -     * contents of --hidden commandline
 -     * @tutorial phpDocumentor.howto.pkg#using.command-line.hidden
 -     * @var boolean
 -     */
 -    var $hidden = false;
 -    /**
 -     * time that parsing was started, used for informative timing of output
 -     * @access private
 -     */
 -    var $parse_start_time;
 -    /**
 -     * contents of --ignore commandline
 -     * @tutorial phpDocumentor.howto.pkg#using.command-line.ignore
 -     * @var string
 -     */
 -    var $ignore_files = array();
 -    /**
 -     * Checks PHP version, makes sure it is 4.2.0+, and chooses the
 -     * phpDocumentorTParser if version is 4.3.0+
 -     * @uses parseIni()
 -     */
 -    function phpDocumentor_setup()
 -    {
 -        global $_phpDocumentor_cvsphpfile_exts;
 -        if (!function_exists('is_a'))
 -        {
 -            print "phpDocumentor requires PHP version 4.2.0 or greater to function";
 -            exit;
 -        }
 -	
 -        // set runtime to a large value since this can take quite a while
 -        // we can only set_time_limit when not in safe_mode bug #912064
 -        if (!ini_get('safe_mode'))
 -        {
 -            set_time_limit(0);    // unlimited runtime
 -        } else
 -        {
 -            phpDocumentor_out("time_limit cannot be set since your in safe_mode, please edit time_limit in your php.ini to allow enough time for phpDocumentor to run"); 
 -        }
 -        ini_set("memory_limit","1024M");
 -
 -        $phpver = phpversion();
 -        $phpdocver = PHPDOCUMENTOR_VER;
 -        if (isset($_GET['interface'])) {
 -            $phpver = "<b>$phpver</b>";
 -            $phpdocver = "<b>$phpdocver</b>";
 -        }
 -        phpDocumentor_out("PHP Version $phpver\n");
 -        phpDocumentor_out("phpDocumentor version $phpdocver\n\n");
 -
 -        $this->parseIni();
 -        // create new classes
 -        $this->setup = new Io;
 -        if (tokenizer_ext)
 -        {
 -            phpDocumentor_out("using tokenizer Parser\n");
 -            $this->parse = new phpDocumentorTParser;
 -        } else
 -        {
 -            phpDocumentor_out("using default (slower) Parser - get PHP 4.3.0+
 -and load the tokenizer extension for faster parsing (your version is ".phpversion()."\n");
 -            $this->parse = new Parser;
 -        }
 -    }
 -    
 -    /**
 -     * Get phpDocumentor settings from a user configuration file
 -     * @param string user configuration file
 -     */
 -    function readConfigFile($file)
 -    {
 -        global $_phpDocumentor_setting, $_phpDocumentor_options;
 -        // security
 -        $file = str_replace(array('..','.ini','\\'),array('','','/'),$file);
 -        if (is_file($file . '.ini'))
 -        {
 -            $_phpDocumentor_setting = phpDocumentor_parse_ini_file($file.'.ini');
 -        } else
 -        {
 -            if ('@DATA-DIR@' != '@'.'DATA-DIR@')
 -            {
 -                $configdir = str_replace('\\','/', '@DATA-DIR@/PhpDocumentor') . PATH_DELIMITER . 'user' . PATH_DELIMITER;
 -            } else {
 -                $configdir = str_replace('\\','/',$GLOBALS['_phpDocumentor_install_dir']) . PATH_DELIMITER . 'user' . PATH_DELIMITER;
 -            }
 -            if (isset($_phpDocumentor_options['userdir'])) $configdir = $_phpDocumentor_options['userdir'];
 -            if (substr($configdir,-1) != '/')
 -            {
 -                $configdir .= '/';
 -            }
 -            $_phpDocumentor_setting = phpDocumentor_parse_ini_file( $configdir . $file . '.ini');
 -            if (empty($_phpDocumentor_setting['defaultpackagename']))
 -            {
 -                $_phpDocumentor_setting['defaultpackagename'] = 'default';
 -            }
 -        }
 -        // don't want a loop condition!
 -        unset($_phpDocumentor_setting['useconfig']);
 -        $this->readCommandLineSettings();
 -    }
 -    
 -    /**
 -     * Get phpDocumentor settings from command-line or web interface
 -     */
 -    function readCommandLineSettings()
 -    {
 -        global $_phpDocumentor_setting,$interface,$_phpDocumentor_RIC_files;
 -        // subscribe $render class to $parse class events
 -        if (!isset($interface) && !isset($_GET['interface']) && !isset($_phpDocumentor_setting))
 -        {
 -            // Parse the argv settings
 -            $_phpDocumentor_setting = $this->setup->parseArgv();
 -        }
 -        if (isset($_phpDocumentor_setting['useconfig']) && !empty($_phpDocumentor_setting['useconfig'])) return $this->readConfigFile($_phpDocumentor_setting['useconfig']);
 -        if (!isset($_phpDocumentor_setting['junk'])) $_phpDocumentor_setting['junk'] = '';
 -        if (!isset($_phpDocumentor_setting['title'])) $_phpDocumentor_setting['title'] = 'Generated Documentation';
 -        $temp_title = $_phpDocumentor_setting['title'];
 -        $this->render = new phpDocumentor_IntermediateParser($temp_title);
 -        if (isset($_phpDocumentor_setting['help']) || $_phpDocumentor_setting['junk'] == "-h" || $_phpDocumentor_setting['junk'] == "--help")
 -        {
 -            echo $this->setup->displayHelpMsg();
 -            die();
 -        }
 -        
 -        if (isset($_phpDocumentor_setting['hidden'])) $this->hidden = true;
 -        
 -        // set to parse elements marked private with @access private
 -        if (isset($_phpDocumentor_setting['parseprivate']) && $_phpDocumentor_setting['parseprivate'] == 'on')
 -        {
 -            $this->render->setParsePrivate(true);
 -        }
 -        
 -        if (isset($_phpDocumentor_setting['ignoretags']))
 -        {
 -            $ignoretags = explode(',', $_phpDocumentor_setting['ignoretags']);
 -            $ignoretags = array_map('trim', $ignoretags);
 -            $tags = array();
 -            foreach($ignoretags as $tag)
 -            {
 -                if (!in_array($tag,array('@global', '@access', '@package', '@ignore', '@name', '@param', '@return', '@staticvar', '@var')))
 -                    $tags[] = $tag;
 -            }
 -            $_phpDocumentor_setting['ignoretags'] = $tags;
 -        }
 -        
 -        if (isset($_phpDocumentor_setting['readmeinstallchangelog']))
 -        {
 -            $_phpDocumentor_setting['readmeinstallchangelog'] = explode(',',str_replace(' ','',$_phpDocumentor_setting['readmeinstallchangelog']));
 -            $rics = array();
 -            foreach($_phpDocumentor_setting['readmeinstallchangelog'] as $ric)
 -            {
 -                $rics[] = strtoupper(trim($ric));
 -            }
 -            $_phpDocumentor_RIC_files = $rics;
 -        }
 -        
 -        if (isset($_phpDocumentor_setting['javadocdesc']) && $_phpDocumentor_setting['javadocdesc'] == 'on')
 -        {
 -            $this->parse->eventHandlers[PARSER_EVENT_DOCBLOCK] = 'JavaDochandleDocblock';
 -        }
 -        if (tokenizer_ext)
 -        {
 -            if (isset($_phpDocumentor_setting['sourcecode']) && $_phpDocumentor_setting['sourcecode'] == 'on')
 -            {
 -                $_phpDocumentor_setting['sourcecode'] = true;
 -            } else
 -            {
 -                $_phpDocumentor_setting['sourcecode'] = false;
 -            }
 -        } else
 -        {
 -            if (isset($_phpDocumentor_setting['sourcecode']) && $_phpDocumentor_setting['sourcecode'] == 'on')
 -            {
 -                addWarning(PDERROR_SOURCECODE_IGNORED);
 -            }
 -            $_phpDocumentor_setting['sourcecode'] = false;
 -        }
 -        if (isset($_phpDocumentor_setting['converterparams']))
 -        {
 -            $_phpDocumentor_setting['converterparams'] = explode($_phpDocumentor_setting['converterparams']);
 -            foreach($_phpDocumentor_setting['converterparams'] as $i => $p)
 -            {
 -                $_phpDocumentor_setting['converterparams'][$i] = trim($p);
 -            }
 -        }
 -        if (isset($_phpDocumentor_setting['customtags']) && !empty($_phpDocumentor_setting['customtags']))
 -        {
 -            $c = explode(',',$_phpDocumentor_setting['customtags']);
 -            for($i=0;$i<count($c); $i++)
 -            {
 -                $GLOBALS['_phpDocumentor_tags_allowed'][] = trim($c[$i]);
 -            }
 -        }
 -        if (isset($_phpDocumentor_setting['pear']))
 -        {
 -            if ($_phpDocumentor_setting['pear'] === 'off') $_phpDocumentor_setting['pear'] = false;
 -            if ($_phpDocumentor_setting['pear'] === 'on') $_phpDocumentor_setting['pear'] = true;
 -        }
 -        if (!isset($_phpDocumentor_setting['pear'])) $_phpDocumentor_setting['pear'] = false;
 -        // set to change the default package name from "default" to whatever you want
 -        if (isset($_phpDocumentor_setting['defaultpackagename']))
 -        {
 -            $GLOBALS['phpDocumentor_DefaultPackageName'] = trim($_phpDocumentor_setting['defaultpackagename']);
 -        }
 -        // set to change the default category name from "default" to whatever you want
 -        if (isset($_phpDocumentor_setting['defaultcategoryname']))
 -        {
 -            $GLOBALS['phpDocumentor_DefaultCategoryName'] = trim($_phpDocumentor_setting['defaultcategoryname']);
 -        }
 -        
 -        // set the mode (quiet or verbose)
 -        if ( isset($_phpDocumentor_setting['quiet']) || strcasecmp($_phpDocumentor_setting['junk'], "-q") == 0 || strcasecmp($_phpDocumentor_setting['junk'], "--quiet") == 0) 
 -        {
 -            if (isset($_phpDocumentor_setting['quiet']) && $_phpDocumentor_setting['quiet'] != 'on');
 -            else
 -            $this->render->setQuietMode(true);
 -        }
 -        
 -        // Setup the different classes
 -        if (isset($_phpDocumentor_setting['templatebase']))
 -        {
 -            $this->render->setTemplateBase($_phpDocumentor_setting['templatebase']);
 -        }
 -        if (isset($_phpDocumentor_setting['target']) && !empty($_phpDocumentor_setting['target']))
 -        {
 -            $this->render->setTargetDir($_phpDocumentor_setting['target']);
 -        }
 -        else
 -        {
 -            echo "a target directory must be specified\n try phpdoc -h\n";
 -            die();
 -        }
 -        if (!empty($_phpDocumentor_setting['packageoutput']))
 -        {
 -            $this->packages = explode(",",$_phpDocumentor_setting['packageoutput']);
 -            foreach($this->packages as $p => $v)
 -            {
 -                $this->packages[$p] = trim($v);
 -            }
 -        }
 -        if (!empty($_phpDocumentor_setting['filename']))
 -        $this->files = $_phpDocumentor_setting['filename'];
 -        if (!empty($_phpDocumentor_setting['directory']))
 -        $this->dirs = $_phpDocumentor_setting['directory'];
 -    }
 -    
 -    function checkIgnoreTag($tagname, $inline = false)
 -    {
 -        global $_phpDocumentor_setting;
 -        $tagname = '@'.$tagname;
 -        if (!isset($_phpDocumentor_setting['ignoretags'])) return false;
 -        if ($inline) $tagname = '{'.$tagname.'}';
 -        return in_array($tagname, $_phpDocumentor_setting['ignoretags']);
 -    }
 -    
 -    function setJavadocDesc()
 -    {
 -           $this->parse->eventHandlers[PARSER_EVENT_DOCBLOCK] = 'JavaDochandleDocblock';
 -    }
 -    
 -    function setParsePrivate()
 -    {
 -        $this->render->setParserPrivate(true);
 -    }
 -    
 -    function setQuietMode()
 -    {
 -        $this->render->setQuietMode(true);
 -    }
 -    
 -    function setTargetDir($target)
 -    {
 -        $this->render->setTargetDir($target);
 -    }
 -    
 -    function setTemplateBase($dir)
 -    {
 -        $this->render->setTemplateBase($dir);
 -    }
 -    
 -    function setPackageOutput($po)
 -    {
 -        $this->packages = explode(",",$po);
 -    }
 -    
 -    function setTitle($ti)
 -    {
 -        $this->render = new phpDocumentor_IntermediateParser($ti);
 -    }
 -    
 -    function setFilesToParse($files)
 -    {
 -        $this->files = $files;
 -    }
 -    
 -    function setDirectoriesToParse($dirs)
 -    {
 -        $this->dirs = $dirs;
 -    }
 -    
 -    function parseHiddenFiles()
 -    {
 -        $this->hidden = true;
 -    }
 -    
 -    function setIgnore($ig)
 -    {
 -        if (strstr($ig,","))
 -        {
 -            $this->ignore_files = explode(",",$ig);
 -        } else {
 -            if (!empty($ig))
 -            $this->ignore_files = array($ig);
 -        }
 -        $this->ignore_files = array_map('trim', $this->ignore_files);
 -    }
 -    
 -    function createDocs($title = false)
 -    {
 -        $this->parse_start_time = time();
 -        global $_phpDocumentor_setting;
 -        if (!$this->render)
 -        {
 -            $this->render = new phpDocumentor_IntermediateParser($title);
 -        }
 -        // setup ignore  list
 -        $this->ignore_files =array();
 -        if(isset($_phpDocumentor_setting['ignore']))
 -        {
 -            $this->setIgnore($_phpDocumentor_setting['ignore']);
 -        }
 -        $this->parse->subscribe("*",$this->render);
 -        // parse the directory
 -        if (!empty($this->files))
 -        {
 -            $files = explode(",",$this->files);
 -            foreach($files as $file)
 -            {
 -                $file = trim($file);
 -                $test = $this->setup->getAllFiles($file);
 -                if ($test)
 -                {
 -                    foreach($test as $file)
 -                    {
 -                        $file = trim($file);
 -                        $dir = realpath(dirname($file));
 -                        $dir = strtr($dir, "\\", "/");
 -                        $dir = str_replace('//','/',$dir);
 -                        // strip trailing directory seperator
 -                        if (substr($dir,-1) == "/" || substr($dir,-1) == "\\")
 -                        {
 -                            $dir = substr($dir,0,-1);
 -                        }
 -                        $file = strtr(realpath($file), "\\", "/");
 -                        $file = str_replace('//','/',$file);
 -
 -                        if (!$this->setup->checkIgnore(basename($file),dirname($file),$this->ignore_files))
 -                        {
 -                            $filelist[] = str_replace('\\','/',$file);
 -                        } else {
 -                            phpDocumentor_out("File $file Ignored\n");
 -                            flush();
 -                        }
 -                    }
 -                } else
 -                {
 -                    $dir = realpath(dirname(realpath($file)));
 -                    $dir = strtr($dir, "\\", "/");
 -                    $dir = str_replace('//','/',$dir);
 -                    // strip trailing directory seperator
 -                    if (substr($dir,-1) == "/" || substr($dir,-1) == "\\")
 -                    {
 -                        $dir = substr($dir,0,-1);
 -                    }
 -                    $base = count(explode("/",$dir));
 -                    $file = strtr(realpath($file), "\\", "/");
 -                    $file = str_replace('//','/',$file);
 -                    flush();
 -
 -                    if (!$this->setup->checkIgnore(basename($file),dirname($file),$this->ignore_files))
 -                    {
 -                        $filelist[] = str_replace('\\','/',$file);
 -                    } else {
 -                        phpDocumentor_out("File $file Ignored\n");
 -                        flush();
 -                    }
 -                }
 -            }
 -        }
 -        if (!empty($this->dirs))
 -        {
 -            $dirs = explode(",",$this->dirs);
 -            foreach($dirs as $dir)
 -            {
 -                $dir = trim(realpath($dir));
 -                $dir = strtr($dir, "\\", "/");
 -                $dir = str_replace('//','/',$dir);
 -                // strip trailing directory seperator
 -                if (substr($dir,-1) == "/" || substr($dir,-1) == "\\")
 -                {
 -                    $dir = substr($dir,0,-1);
 -                }
 -                $files = $this->setup->dirList($dir,$this->hidden);
 -                if (is_array($files))
 -                {
 -                    foreach($files as $file)
 -                    {
 -                        // Make sure the file isn't a hidden file
 -                        $file = strtr($file, "\\", "/");
 -                        if (substr(basename($file),0,1) != ".")
 -                        {
 -                            if (!$this->setup->checkIgnore(basename($file),str_replace('\\','/',dirname($file)),$this->ignore_files))
 -                            {
 -                                $filelist[] = str_replace('\\','/',$file);
 -                            } else {
 -                                phpDocumentor_out("File $file Ignored\n");
 -                                flush();
 -                            }
 -                        }
 -                    }
 -                }
 -            }
 -        }
 -        if (isset($filelist))
 -        {
 -            if (PHPDOCUMENTOR_WINDOWS)
 -            {
 -                // case insensitive array_unique
 -                usort($filelist,'strnatcasecmp');
 -                reset($filelist);
 -                
 -                $newarray = array();
 -                $i = 0;
 -                
 -                $element = current($filelist);
 -                for ($n=0;$n<sizeof($filelist);$n++)
 -                {
 -                    if (strtolower(next($filelist)) != strtolower($element))
 -                    {
 -                        $newarray[$i] = $element;
 -                        $element = current($filelist);
 -                        $i++;
 -                    }
 -                }
 -                $filelist = $newarray; 
 -            } else $filelist = array_unique($filelist);
 -
 -            $base = count(explode("/",$source_base = $this->setup->getBase($filelist)));
 -            define("PHPDOCUMENTOR_BASE",$source_base);
 -            list($filelist,$ric) = $this->setup->getReadmeInstallChangelog($source_base, $filelist);
 -            phpDocumentor_out("\n\nGrabbing README/INSTALL/CHANGELOG\n");
 -            flush();
 -            foreach($ric as $file)
 -            {
 -                phpDocumentor_out(basename($file).'...');
 -                flush();
 -                $fp = fopen($file,'r');
 -                $contents = fread($fp,filesize($file));
 -                $this->render->HandleEvent(PHPDOCUMENTOR_EVENT_README_INSTALL_CHANGELOG, array(basename($file),$contents));
 -                fclose($fp);
 -            }
 -            phpDocumentor_out("\ndone\n");
 -            flush();
 -            list($filelist,$tutorials) = $this->setup->getTutorials($filelist);
 -            phpDocumentor_out("\n\nTutorial/Extended Documentation Parsing Stage\n\n");
 -            flush();
 -            if (count($tutorials))
 -            {
 -                $tuteparser = new XMLPackagePageParser;
 -                $tuteparser->subscribe('*',$this->render);
 -                foreach($tutorials as $tutorial)
 -                {
 -                    switch($tutorial['tutetype'])
 -                    {
 -                        case 'pkg' :
 -                        case 'cls' :
 -                        case 'proc' :
 -                        switch($tutorial['tutetype'])
 -                        {
 -                            case 'pkg' :
 -                                $ptext = 'Package-level Docs ';
 -                                if (!empty($tutorial['subpackage']))
 -                                $ptext = 'Sub-Package Docs ';
 -                            break;
 -                            case 'cls' :
 -                                $ptext = 'Class-level Docs ';
 -                            break;
 -                            case 'proc' :
 -                                $ptext = 'Procedural-level Docs ';
 -                            break;
 -                        }
 -                        $fp = @fopen($tutorial['path'],"r");
 -                        if ($fp)
 -                        {
 -                            $ret = fread($fp,filesize($tutorial['path']));
 -                            // fix 1151650
 -                            if (stristr($ret, "utf-8") !== "")
 -                            {
 -                                $ret = utf8_decode($ret);
 -                            }
 -                            fclose($fp);
 -                            unset($fp);
 -                            phpDocumentor_out('Parsing '.$ptext.$tutorial['path'].'...');
 -                            flush();
 -                            $tuteparser->parse($ret,$tutorial);
 -                            phpDocumentor_out("done\n");
 -                            flush();
 -                        } else
 -                        {
 -                            phpDocumentor_out('Error '.$ptext.$tutorial['path'].' doesn\'t exist'."\n");
 -                            flush();
 -                        }
 -                        default :
 -                        break;
 -                    }
 -                }
 -            }
 -            phpDocumentor_out("done\n");
 -            flush();
 -            phpDocumentor_out("\n\nGeneral Parsing Stage\n\n");
 -            flush();
 -            foreach($filelist as $file)
 -            {
 -                phpDocumentor_out("Reading file $file");
 -                flush();
 -                $this->parse->parse($a = $this->setup->readPhpFile($file, $this->render->quietMode),$file,$base,$this->packages);
 -    
 -            }
 -            $b = (time() - $this->parse_start_time);
 -            phpDocumentor_out("done\n");
 -            flush();
 -            // render output
 -            phpDocumentor_out("\nConverting From Abstract Parsed Data\n");
 -            flush();
 -            $this->render->output();
 -            $a = (time() - $this->parse_start_time);
 -            $c = ($a - $b);
 -            phpDocumentor_out("\nParsing time: $b seconds\n");
 -            phpDocumentor_out("\nConversion time: $c seconds\n");
 -            phpDocumentor_out("\nTotal Documentation Time: $a seconds\n");
 -            phpDocumentor_out("done\n");
 -            flush();
 -        } else
 -        {
 -            print "ERROR: nothing parsed";
 -            exit;
 -        }
 -    }
 -    /**
 -     * Parse configuration file phpDocumentor.ini
 -     */
 -    function parseIni()
 -    {
 -        phpDocumentor_out("Parsing configuration file phpDocumentor.ini...");
 -        flush();
 -        if ('@DATA-DIR@' != '@'.'DATA-DIR@')
 -        {
 -            $options = phpDocumentor_parse_ini_file(str_replace('\\','/', '@DATA-DIR@/PhpDocumentor') . PATH_DELIMITER . 'phpDocumentor.ini',true);
 -        } else {
 -            $options = phpDocumentor_parse_ini_file(str_replace('\\','/',$GLOBALS['_phpDocumentor_install_dir']) . PATH_DELIMITER . 'phpDocumentor.ini',true);
 -        }
 -
 -        if (!$options)
 -        {
 -            print "ERROR: cannot open phpDocumentor.ini in directory " . $GLOBALS['_phpDocumentor_install_dir']."\n";
 -            print "-Is phpdoc in either the path or include_path in your php.ini file?";
 -            exit;
 -        }
 -        
 -        foreach($options as $var => $values)
 -        {
 -            if ($var != 'DEBUG')
 -            {
 -//                phpDocumentor_out("\n$var");
 -                if ($var != '_phpDocumentor_setting' && $var != '_phpDocumentor_options' && $var != '_phpDocumentor_install_dir' ) $values = array_values($values);
 -//                fancy_debug("\n$var",$values);
 -                $GLOBALS[$var] = $values;
 -            }
 -        }
 -        phpDocumentor_out("\ndone\n");
 -        flush();
 -        /** Debug Constant */
 -        define("PHPDOCUMENTOR_DEBUG",$options['DEBUG']['PHPDOCUMENTOR_DEBUG']);
 -        define("PHPDOCUMENTOR_KILL_WHITESPACE",$options['DEBUG']['PHPDOCUMENTOR_KILL_WHITESPACE']);
 -        $GLOBALS['_phpDocumentor_cvsphpfile_exts'] = $GLOBALS['_phpDocumentor_phpfile_exts'];
 -        foreach($GLOBALS['_phpDocumentor_cvsphpfile_exts'] as $key => $val)
 -        {
 -            $GLOBALS['_phpDocumentor_cvsphpfile_exts'][$key] = "$val,v";
 -        }
 -        // none of this stuff is used anymore
 -        if (isset($GLOBALS['_phpDocumentor_html_allowed']))
 -        {
 -            $___htmltemp = array_flip($GLOBALS['_phpDocumentor_html_allowed']);
 -            $___html1 = array();
 -            foreach($___htmltemp as $tag => $trans)
 -            {
 -                $___html1['<'.$tag.'>'] = htmlentities('<'.$tag.'>');
 -                $___html1['</'.$tag.'>'] = htmlentities('</'.$tag.'>');
 -            }
 -            $GLOBALS['phpDocumentor___html'] = array_flip($___html1);
 -        }
 -    }
 -    
 -    function setupConverters($output = false)
 -    {
 -        global $_phpDocumentor_setting;
 -        if ($output)
 -        {
 -            $_phpDocumentor_setting['output'] = $output;
 -        }
 -        if (isset($_phpDocumentor_setting['output']) && !empty($_phpDocumentor_setting['output']))
 -        {
 -            $c = explode(',',$_phpDocumentor_setting['output']);
 -            for($i=0; $i< count($c); $i++)
 -            {
 -                $c[$i] = explode(':',$c[$i]);
 -                $a = $c[$i][0];
 -                $b = false;
 -                $d = 'default/';
 -                if (count($c[$i]) > 1)
 -                {
 -                    $a = $c[$i][0];
 -                    $b = $c[$i][1];
 -                    if (isset($c[$i][2]))
 -                    {
 -                        $d = $c[$i][2];
 -                        $d = str_replace("\\","/",$d);
 -                        if (substr($d,-1) != "/")
 -                        {
 -                            $d .= "/";
 -                        }
 -                    }
 -                    else $d = 'default/';
 -                }
 -                if (strtoupper(trim($a)) == 'HTML' && (trim($b) == 'default'))
 -                {
 -                    phpDocumentor_out("WARNING: HTMLdefaultConverter is deprecated, using HTMLframesConverter.\n");
 -                    phpDocumentor_out("WARNING: template output is identical, HTMLframes is more flexible.\n");
 -                    phpDocumentor_out("WARNING: please adjust your usage\n");
 -                    flush();
 -                    $b = 'frames'; // change default to frames.
 -                }
 -                $this->render->addConverter(strtoupper(trim($a)),trim($b),trim($d));
 -            }
 -        } else
 -        {
 -            $this->render->addConverter('HTML','frames','default/');
 -        }
 -        if (empty($this->render->converters)) addErrorDie(PDERROR_NO_CONVERTERS);
 -    }
 -}
 -
 -/**
 - * Print parse information if quiet setting is off
 - */
 -function phpDocumentor_out($string)
 -{
 -    global $_phpDocumentor_setting;
 -    if (!isset($_phpDocumentor_setting['quiet']) || !$_phpDocumentor_setting['quiet'])
 -    {
 -        print $string;
 -    }
 -
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/BUGS b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/BUGS deleted file mode 100644 index fcbe48af..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/BUGS +++ /dev/null @@ -1,7 +0,0 @@ -Smarty is supported only in PHP 4.0.6 or later.
 -
 -Smarty versions previous to 2.0 require the PEAR libraries. Be sure to include
 -the path to the PEAR libraries in your php include_path. Config_file.class.php
 -uses the PEAR library for its error handling routines. PEAR comes with the PHP
 -distribution. Unix users check /usr/local/lib/php, windows users check
 -C:/php/pear.
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/COPYING.lib b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/COPYING.lib deleted file mode 100644 index 3b204400..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/COPYING.lib +++ /dev/null @@ -1,458 +0,0 @@ -		  GNU LESSER GENERAL PUBLIC LICENSE -		       Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. -     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL.  It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - -			    Preamble - -  The licenses for most software are designed to take away your -freedom to share and change it.  By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - -  This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it.  You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - -  When we speak of free software, we are referring to freedom of use, -not price.  Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - -  To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights.  These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - -  For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you.  You must make sure that they, too, receive or can get the source -code.  If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it.  And you must show them these terms so they know their rights. - -  We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - -  To protect each distributor, we want to make it very clear that -there is no warranty for the free library.  Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - -  Finally, software patents pose a constant threat to the existence of -any free program.  We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder.  Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - -  Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License.  This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License.  We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - -  When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library.  The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom.  The Lesser General -Public License permits more lax criteria for linking other code with -the library. - -  We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License.  It also provides other free software developers Less -of an advantage over competing non-free programs.  These disadvantages -are the reason we use the ordinary General Public License for many -libraries.  However, the Lesser license provides advantages in certain -special circumstances. - -  For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard.  To achieve this, non-free programs must be -allowed to use the library.  A more frequent case is that a free -library does the same job as widely used non-free libraries.  In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - -  In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software.  For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - -  Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - -  The precise terms and conditions for copying, distribution and -modification follow.  Pay close attention to the difference between a -"work based on the library" and a "work that uses the library".  The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - -		  GNU LESSER GENERAL PUBLIC LICENSE -   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -  0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - -  A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - -  The "Library", below, refers to any such software library or work -which has been distributed under these terms.  A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language.  (Hereinafter, translation is -included without limitation in the term "modification".) - -  "Source code" for a work means the preferred form of the work for -making modifications to it.  For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - -  Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope.  The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it).  Whether that is true depends on what the Library does -and what the program that uses the Library does. -   -  1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - -  You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - -  2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - -    a) The modified work must itself be a software library. - -    b) You must cause the files modified to carry prominent notices -    stating that you changed the files and the date of any change. - -    c) You must cause the whole of the work to be licensed at no -    charge to all third parties under the terms of this License. - -    d) If a facility in the modified Library refers to a function or a -    table of data to be supplied by an application program that uses -    the facility, other than as an argument passed when the facility -    is invoked, then you must make a good faith effort to ensure that, -    in the event an application does not supply such function or -    table, the facility still operates, and performs whatever part of -    its purpose remains meaningful. - -    (For example, a function in a library to compute square roots has -    a purpose that is entirely well-defined independent of the -    application.  Therefore, Subsection 2d requires that any -    application-supplied function or table used by this function must -    be optional: if the application does not supply it, the square -    root function must still compute square roots.) - -These requirements apply to the modified work as a whole.  If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works.  But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - -  3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library.  To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License.  (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.)  Do not make any other change in -these notices. - -  Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - -  This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - -  4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - -  If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - -  5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library".  Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - -  However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library".  The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - -  When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library.  The -threshold for this to be true is not precisely defined by law. - -  If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work.  (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - -  Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - -  6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - -  You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License.  You must supply a copy of this License.  If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License.  Also, you must do one -of these things: - -    a) Accompany the work with the complete corresponding -    machine-readable source code for the Library including whatever -    changes were used in the work (which must be distributed under -    Sections 1 and 2 above); and, if the work is an executable linked -    with the Library, with the complete machine-readable "work that -    uses the Library", as object code and/or source code, so that the -    user can modify the Library and then relink to produce a modified -    executable containing the modified Library.  (It is understood -    that the user who changes the contents of definitions files in the -    Library will not necessarily be able to recompile the application -    to use the modified definitions.) - -    b) Use a suitable shared library mechanism for linking with the -    Library.  A suitable mechanism is one that (1) uses at run time a -    copy of the library already present on the user's computer system, -    rather than copying library functions into the executable, and (2) -    will operate properly with a modified version of the library, if -    the user installs one, as long as the modified version is -    interface-compatible with the version that the work was made with. - -    c) Accompany the work with a written offer, valid for at -    least three years, to give the same user the materials -    specified in Subsection 6a, above, for a charge no more -    than the cost of performing this distribution. - -    d) If distribution of the work is made by offering access to copy -    from a designated place, offer equivalent access to copy the above -    specified materials from the same place. - -    e) Verify that the user has already received a copy of these -    materials or that you have already sent this user a copy. - -  For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it.  However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - -  It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system.  Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - -  7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - -    a) Accompany the combined library with a copy of the same work -    based on the Library, uncombined with any other library -    facilities.  This must be distributed under the terms of the -    Sections above. - -    b) Give prominent notice with the combined library of the fact -    that part of it is a work based on the Library, and explaining -    where to find the accompanying uncombined form of the same work. - -  8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License.  Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License.  However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - -  9. You are not required to accept this License, since you have not -signed it.  However, nothing else grants you permission to modify or -distribute the Library or its derivative works.  These actions are -prohibited by law if you do not accept this License.  Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - -  10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions.  You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - -  11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License.  If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all.  For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices.  Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - -  12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded.  In such case, this License incorporates the limitation as if -written in the body of this License. - -  13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number.  If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation.  If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - -  14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission.  For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this.  Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - -			    NO WARRANTY - -  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - -		     END OF TERMS AND CONDITIONS diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/ChangeLog b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/ChangeLog deleted file mode 100644 index 6dcda589..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/ChangeLog +++ /dev/null @@ -1,5421 +0,0 @@ -2003-11-18  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      move Smarty::quote_replace() to Smarty_Compiler::_quote_replace()
 -
 -    * libs/Smarty.class.php:
 -      removed extract-calls from _include()- and _eval()-wrappers
 -      variables passed with {include_php} have to accessed as members of $params
 -      now
 -
 -2003-11-17  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/designers.sgml:
 -      fixed typo
 -
 -2003-11-13  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Config_File.class.php:
 -      fix occasional notice
 -
 -2003-11-13  andreas halter  <phpcvs@andreashalter.ch>
 -
 -    * docs/de/designers.sgml:
 -      - added cat modifier, thanks messju :-)
 -
 -2003-11-13  Monte Ohrt  <monte@ispi.net>
 -
 -    * (Smarty_2_6_0-RC3)
 -      NEWS
 -      libs/Config_File.class.php
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      commit RC3 tags
 -
 -2003-11-13  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      fix handling of $var.key inside []
 -
 -    * libs/Smarty.class.php:
 -      fix unnecessary loading of core.load_resource_plugin.php
 -
 -    * (Smarty_2_6_0-RC3)
 -      docs/fr/designers.sgml:
 -      fixed example of html_table
 -
 -2003-11-11  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/core/core.process_cached_inserts.php:
 -      fix handling of assign inside {insert}-tags
 -
 -2003-11-06  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/core/core.read_cache_file.php:
 -      added $exp_time-parameter
 -
 -    * docs/programmers.sgml:
 -      added $exp_time to cache_handler_func-example
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.write_cache_file.php:
 -      added $exp_time-parameter of clear_cache() and clear_all_cache() to
 -      cache_handler_func.
 -
 -2003-11-05  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Config_File.class.php:
 -      fix handling if [...] inside triple-quotes in config-files
 -
 -2003-11-04  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php:
 -      fixed little bug in _parse_resource_name() (jlgunter, messju)
 -
 -2003-11-03  andreas halter  <phpcvs@andreashalter.ch>
 -
 -    * docs/designers.sgml
 -      docs/de/designers.sgml
 -      docs/fr/designers.sgml:
 -      - changed Smarty.php.class occurences to Smarty.class.php
 -
 -2003-10-29  boots  <jayboots@yahoo.com>
 -
 -    * docs/appendixes.sgml
 -      docs/designers.sgml
 -      docs/manual.sgml
 -      docs/programmers.sgml
 -      docs/de/appendixes.sgml
 -      docs/de/designers.sgml
 -      docs/de/programmers.sgml
 -      docs/fr/appendixes.sgml
 -      docs/fr/designers.sgml
 -      docs/fr/getting-started.sgml
 -      docs/fr/manual.sgml
 -      docs/fr/preface.sgml
 -      docs/fr/programmers.sgml:
 -      Fixes to documentation syntax so that all content can be processed used
 -      xsltproc docbook-xsl tools. In particular, fixes unescaped entities,
 -      broken tags, unquoted attributes.
 -
 -2003-10-27  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      fix handling of simple-math-operators inside modifiers
 -
 -2003-10-25  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      removed unused property _output_type
 -      removed unused param $tag_attrs of _parse_var_props()
 -      cleaned up alignment of class-properties
 -
 -2003-10-23  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      removed notice in php-tag handling in Smarty_Compiler::_compile_file()
 -
 -    * libs/Smarty_Compiler.class.php:
 -      removed two occasional E_NOTICES from
 -      Smarty_Compiler::_compile_include_php_tag()
 -
 -    * NEWS
 -      libs/core/core.create_dir_structure.php:
 -      fix handling of trailing-slashes in open_basedir in
 -      smarty_core_create_dir_structure()
 -
 -2003-10-20  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      elements inside `` are bracketed now inside the compiled-tpl. this
 -      fixes some issues with simple-math inside backticks.
 -
 -2003-10-16  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml:
 -      update overlib docs, no working examples
 -
 -2003-10-12  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.is_secure.php:
 -      move check for template_dir in secure_dir-array into core.is_secure.php
 -      
 -      this makes template_exists() work correctly with security=true even if
 -      template_dir is not inside the secure_dir-array
 -
 -2003-10-11  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/plugins/shared.make_timestamp.php:
 -      tightened check for YYYYMMDDHHMMSS-format. thanks konstantin for
 -      pointing this out.
 -      
 -      removed a few tabs.
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fix precedence of simple-math-operators before modifiers.
 -      thanks dominik!
 -
 -    * libs/Config_File.class.php
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php
 -      libs/core/core.assemble_plugin_filepath.php
 -      libs/core/core.assign_smarty_interface.php
 -      libs/core/core.create_dir_structure.php
 -      libs/core/core.display_debug_console.php
 -      libs/core/core.get_include_path.php
 -      libs/core/core.get_microtime.php
 -      libs/core/core.get_php_resource.php
 -      libs/core/core.is_secure.php
 -      libs/core/core.is_trusted.php
 -      libs/core/core.load_plugins.php
 -      libs/core/core.load_resource_plugin.php
 -      libs/core/core.process_cached_inserts.php
 -      libs/core/core.process_compiled_include.php
 -      libs/core/core.read_cache_file.php
 -      libs/core/core.rm_auto.php
 -      libs/core/core.rmdir.php
 -      libs/core/core.run_insert_handler.php
 -      libs/core/core.smarty_include_php.php
 -      libs/core/core.write_compiled_include.php
 -      libs/core/core.write_compiled_resource.php
 -      libs/core/core.write_file.php:
 -      removed tabs from the main and the core/*.php files
 -
 -2003-10-08  Monte Ohrt  <monte@ispi.net>
 -
 -    * (Smarty_2_6_0-RC2)
 -      NEWS
 -      libs/Config_File.class.php
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      update version numbers to RC2
 -
 -2003-09-18  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/designers.sgml
 -      docs/de/designers.sgml:
 -      fixed description of cycle's advance-attribute
 -
 -2003-09-16  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      apply modifiers only once to section-loop and foreach-from attributes
 -
 -2003-09-15  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php
 -      libs/core/core.write_cache_paths_file.php:
 -      backed out _smarty_cached_paths-file-handling
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.rm_auto.php:
 -      fixed clear_compiled_tpl with explicit $tpl_file given
 -      fixed return value of smarty_core_rm_auto() + Smarty::_unlink()
 -
 -    * libs/Smarty.class.php:
 -      little fix in _get_auto_filename()
 -
 -2003-09-14  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.assemble_auto_filename.php:
 -      removed auto-filenames from path-cache. merged assemble_auto_filename
 -      back into Smarty::_get_auto_filename()
 -
 -2003-09-12  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fixed quoting of modifier parameters
 -
 -    * NEWS
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php
 -      libs/core/core.get_php_resource.php
 -      libs/core/core.load_plugins.php
 -      libs/core/core.load_resource_plugin.php:
 -      remove Smarty::_plugin_implementation_exists() - use php's native
 -      is_callable()
 -
 -2003-09-11  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php:
 -      silenced two notices acces HTTP_SERVER_VARS
 -
 -2003-09-10  andreas halter  <phpcvs@andreashalter.ch>
 -
 -    * docs/de/designers.sgml
 -      docs/de/getting-started.sgml
 -      docs/de/programmers.sgml:
 -      - minor fixes (2 rep), slight wording changes
 -      - jade transform problem fixed
 -
 -2003-09-08  andreas halter  <phpcvs@andreashalter.ch>
 -
 -    * docs/de/designers.sgml
 -      docs/de/getting-started.sgml
 -      docs/de/manual.sgml
 -      docs/de/preface.sgml
 -      docs/de/programmers.sgml:
 -      all updated for 2.6.0 release, translated everything from 2_5_0 branch to
 -      20030908
 -
 -2003-09-04  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php:
 -      proper checking for files in  _fetch_resource_info()
 -
 -2003-09-02  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      ignore {strip}/{/strip) inside {strip}-blocks
 -
 -    * libs/plugins/function.mailto.php:
 -      fixed 2 notices in smarty_function_mailto()
 -
 -2003-09-01  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php:
 -      re-include cache_paths on multiple calls to fetch() to avoid
 -      inconsistencies
 -      at multiple calls to fetch() in one script
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fixed handling of \r in {strip}
 -      renamed $_trailing_lf to $_additional_newline
 -
 -    * libs/Smarty_Compiler.class.php:
 -      the weekly fix for {strip} :)
 -
 -    * docs/designers.sgml:
 -      fixed example for simple math.
 -
 -2003-08-29  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/core/core.assign_smarty_interface.php
 -      libs/core/core.display_debug_console.php
 -      libs/plugins/function.assign.php
 -      libs/plugins/function.html_options.php
 -      libs/plugins/function.html_table.php:
 -      fixed PHPDocumentor-comments (thanks Konstantin)
 -
 -    * libs/core/core.rmdir.php:
 -      made rmdir a bit more optimistic. especially it now removes
 -      directories correctly that where created accidently by "safe_mode=On
 -      && $use_sub_dirs=true"
 -
 -2003-08-27  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      fixed removal of leading/trailing newlines in {strip}-blocks
 -
 -2003-08-25  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * INSTALL:
 -      added note emphasizing the introduction of "libs/" with 2.5.0
 -
 -    * NEWS
 -      libs/plugins/modifier.escape.php:
 -      fixed proper escaping of " and ' with escape:javascript
 -
 -2003-08-22  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/core/core.assemble_plugin_filepath.php:
 -      fixed bug in traversal of $smarty->plugins_dir-array in
 -      smarty_core_assemble_plugin_filepath(). the first matching plugin in
 -      the path should be used, not the last one.
 -
 -    * libs/core/core.read_cache_file.php:
 -      discard $_cache_info when the cache should be regenerated
 -
 -2003-08-20  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php
 -      libs/plugins/block.strip.php:
 -      reverted {strip} from a block-plugin back into the compiler
 -
 -    * docs/programmers.sgml:
 -      fixed examples for register_function() and register_block()
 -
 -    * libs/Smarty.class.php:
 -      made template_exists() quiet when the template does not exist (thanks
 -      to konstatin for pointing this out)
 -
 -2003-08-18  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/getting-started.sgml:
 -      fix example title
 -
 -    * docs/README
 -      docs/getting-started.sgml:
 -      change installation wording confusion
 -
 -2003-08-18  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.read_cache_file.php:
 -      fixed unnecessary load of source in template_exists() and the
 -      compile-check of smarty_core_read_cache_file()
 -
 -    * libs/Smarty_Compiler.class.php:
 -      allow section-, array- and object-dereference in $smarty-references
 -
 -2003-08-15  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/designers.sgml:
 -      added parameter-descriptions for count_characters (thanks Konstantin
 -      A. Pelepelin)
 -      
 -      fixed docs for {html_checkboxes}
 -
 -2003-08-14  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.read_cache_file.php:
 -      fixed timestamp-check of config-files in smarty_core_read_cache_file()
 -
 -    * libs/Smarty.class.php:
 -      fixed typecasting for arrays in _parse_resource_name()
 -
 -    * NEWS
 -      libs/plugins/function.config_load.php:
 -      fixes in config_load:
 -      - handling of section-attribute
 -      - reusing the same config-file multiple times
 -      - serialization of config-data for php<4.2.0 (no var_export)
 -      
 -      many thanks to atu for pointing this out and for testing
 -
 -2003-08-13  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.smarty_include_php.php:
 -      fixed problem with vars as attributes in {include_php}
 -
 -2003-08-13  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/README:
 -      commit README file for documentation compiling
 -
 -2003-08-13  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/debug.tpl
 -      libs/plugins/modifier.debug_print_var.php:
 -      removed '\r' from debug_print_vars' output
 -      properly escape vars in javascript-version of debug.tpl
 -
 -2003-08-11  Monte Ohrt  <monte@ispi.net>
 -
 -    * (Smarty_2_6_0_RC1)
 -      NEWS
 -      docs/designers.sgml
 -      docs/html.dsl
 -      docs/php.dsl
 -      libs/Config_File.class.php
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      get ready for 2.6.0-RC1 release
 -
 -2003-08-10  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      fixed status-header for cache_modified_check under cgi-sapi
 -
 -2003-08-09  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/core/core.is_secure.php
 -      libs/core/core.is_trusted.php:
 -      synced secure_dir-checking with trusted_dir-checking
 -
 -    * libs/core/core.is_secure.php:
 -      tightenend path checking in smarty_core_is_secure()
 -
 -2003-08-08  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php:
 -      fix: proper nesting of $smarty->_cache_including flag in cascaded
 -      cached/not-cached/fetched/inserted/foo-templates
 -
 -    * libs/debug.tpl:
 -      better escaping for $_debug_tpls[templates].filenames
 -
 -    * libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      removed redundant $smarty from Smarty::_smarty_include()
 -
 -    * libs/debug.tpl:
 -      proper escaping of filenames in debug-console (thanks to prossel).
 -
 -2003-08-07  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/programmers.sgml:
 -      added docs for block-methods of registered objects
 -
 -    * docs/programmers.sgml:
 -      fixed typo in example for registered objects
 -
 -    * docs/designers.sgml:
 -      fixed exampls of html_image and html_checkboxes
 -
 -    * libs/plugins/function.debug.php:
 -      fixed {debug} and removed tabs in function.debug.php
 -
 -    * docs/programmers.sgml:
 -      fixed example for register_object
 -
 -    * docs/designers.sgml
 -      docs/programmers.sgml:
 -      updated docs for capture, html_table, html_image and register_object
 -
 -2003-08-07  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml
 -      docs/programmers.sgml:
 -      add math and default_resource_type to docs
 -
 -    * docs/getting-started.sgml:
 -      add core to example, add tech note
 -
 -2003-08-07  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/manual.sgml
 -      docs/fr/manual.sgml:
 -      upd copyright in the docs
 -
 -2003-08-07  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/getting-started.sgml:
 -      added core directory to install instructions
 -
 -2003-08-07  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/designers.sgml
 -      docs/programmers.sgml:
 -      added docs for php-functions as modifiers
 -
 -    * libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      better caching of attributes for $cacheable=false-plugins
 -
 -    * docs/programmers.sgml:
 -      added section "caching.cacheable" to the docs, explaining the usage of
 -      the $cacheable-flag of the register_(block|compiler|function)-functions
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fixed output of custom-functions with cached attributes
 -
 -    * docs/programmers.sgml:
 -      docs update on callbacks to the register_*-functions
 -
 -2003-08-06  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php
 -      libs/core/core.process_compiled_include.php:
 -      added optional parameter $cache_attrs to register_function() and
 -      register_block(). $cache_attrs is an array containing attribute- names
 -      that should be cached on calls to functions that have $cacheable set
 -      to false.
 -
 -    * libs/Smarty.class.php:
 -      fixed bug in _run_mod_handler
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fixed bug with autoload-handling of modifiers. thanks ándre.
 -
 -2003-08-05  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Config_File.class.php
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      updated copyright notice
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.load_plugins.php:
 -      fixed bug that occurred when using the same not-cacheable plugin in
 -      multiple includes
 -
 -    * docs/programmers.sgml:
 -      docs-update for plugins.writing
 -
 -2003-08-04  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/designers.sgml
 -      docs/programmers.sgml:
 -      updated docs for register_block_function(), block-functions,
 -      $request_use_auto_globals and html_checkboxes
 -
 -2003-07-31  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      enabled registration of class-methods as callbacks for the
 -      register_*-functions
 -      
 -      use: array('classname', 'method_name')) as callback
 -
 -2003-07-29  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      modifiers are resolved at compile-time now. _run_mod_handler() is
 -      still used for modifiers with map_array=true (== no preceeding '@')
 -
 -    * libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php
 -      libs/core/core.smarty_include.php:
 -      moved _smarty_include() back into Smarty.class.php
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.load_plugins.php:
 -      prevent unnecessary calls to _read_file() in _is_compiled()
 -      converted method-call to internal function-call in
 -      smarty_core_load_plugins()
 -
 -2003-07-28  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      quote smarty-header properly to prevent resource-names from escaping from
 -      the comment
 -
 -2003-07-25  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/core/core.create_dir_structure.php:
 -      weakend race-condition and removed bogus error-message caused by that
 -      in smarty_core_create_dir_structure().
 -
 -2003-07-23  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.display_debug_console.php
 -      libs/core/core.fetch_resource_info.php
 -      libs/core/core.get_php_resource.php
 -      libs/core/core.parse_resource_name.php
 -      libs/core/core.process_cached_inserts.php
 -      libs/core/core.read_cache_file.php
 -      libs/core/core.run_insert_handler.php
 -      libs/core/core.smarty_include.php
 -      libs/core/core.smarty_include_php.php
 -      libs/plugins/function.eval.php:
 -      moved  _fetch_resource_info and _parse_resource_name back into
 -      Smarty.class.php
 -      renamed smarty_include and smarty_eval wrappers to _include and _eval
 -
 -2003-07-17  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/core/core.process_compiled_include.php
 -      libs/core/core.read_cache_file.php:
 -      improved checking of compiled_include against cached-template with
 -      non-cached-chunks
 -
 -    * libs/core/core.write_compiled_include.php:
 -      fixed too short open-tag
 -
 -    * libs/plugins/function.eval.php:
 -      fixed assign parameter for eval (must have gotton lost on its way to 2.5.0)
 -      cleaned up indentiation
 -
 -2003-07-03  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      resurrected $foo->$bar syntax
 -
 -    * libs/Smarty_Compiler.class.php:
 -      i'm so stupid. kick me.
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fixed initialisation of $this->_plugins in compile_block_tag()
 -
 -2003-07-03  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/Config_File.class.php:
 -      add preg_quote delimiter
 -
 -2003-07-03  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      applied fix for {$var1->p1|modifier:$var2->p2}-syntax - thanks Dominik
 -
 -2003-07-02  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fixed duplicate generation of arg-list in _compile_block_tag()
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fixed off-by-one-error in nocache-tag-handling
 -
 -2003-06-30  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      backed out errornously committed support for $foo->$bar
 -
 -    * libs/core/core.write_file.php:
 -      fixed indentiation, silenced occasional warning
 -
 -    * libs/plugins/function.html_image.php:
 -      match first character of file-attribute against "/" instead of
 -      DIRECTORY_SEPARATOR since it is a url-path and not a file-path.
 -
 -    * libs/Smarty_Compiler.class.php
 -      libs/core/core.write_file.php
 -      libs/plugins/function.html_image.php:
 -      libs/plugins/function.html_image.php
 -
 -    * libs/Smarty_Compiler.class.php:
 -      re-fixed cacheable_state-handling
 -
 -    * libs/core/core.display_debug_console.php
 -      libs/core/core.process_cached_inserts.php
 -      libs/core/core.process_compiled_include.php
 -      libs/core/core.run_insert_handler.php:
 -      extincting $this out of smarty_core_*-functions
 -
 -    * libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      fixed handling of nocache-state
 -
 -2003-06-29  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.smarty_include.php
 -      libs/core/core.smarty_include_php.php
 -      libs/plugins/function.eval.php:
 -      removed $this from smarty_include and smarty_include_php
 -      added cleaner handling of $this to {eval}
 -
 -    * libs/core/core.load_resource_plugin.php:
 -      fixed inlude_once-call
 -
 -    * docs/de/designers.sgml
 -      docs/fr/designers.sgml:
 -      fixed examples of html_radios and html_checkboxes in german and french docs
 -
 -2003-06-25  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/core/core.assemble_auto_filename.php
 -      libs/core/core.write_cache_paths_file.php:
 -      fix typo, fix write_cache_paths logic
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.assemble_auto_filename.php:
 -      fix SMARTY_COMPILE_DIR_SEP problem, make local var
 -
 -2003-06-24  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.assemble_auto_filename.php
 -      libs/core/core.write_cache_paths_file.php:
 -      fixed cache_paths bug, simplified filename assembly logic
 -
 -2003-06-24  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/plugins/function.html_image.php:
 -      added parsing of forgotton param "basedir"
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fixed $smarty.get-reference
 -
 -    * libs/plugins/block.textformat.php:
 -      removed warning
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fixed value of _cacheable_state on compiler-startup
 -
 -2003-06-23  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php
 -      libs/core/core.write_cache_paths_file.php:
 -      make cache_path per resource, fix a couple directory path issues
 -
 -2003-06-23  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      removed warning when compiling empty template
 -
 -    * libs/core/core.write_compiled_include.php:
 -      fixed bug in write_compiled_include
 -
 -    * libs/core/core.assemble_plugin_filepath.php:
 -      fixed warning
 -
 -2003-06-22  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/plugins/function.eval.php:
 -      fixed propagation of $this into evald code in smarty_function_eval()
 -
 -    * libs/core/core.write_cache_paths_file.php
 -      libs/core/core.write_compiled_include.php:
 -      fix in compiled-include-handling
 -
 -    * libs/core/core.assemble_auto_filename.php
 -      libs/core/core.assemble_plugin_filepath.php
 -      libs/core/core.assign_smarty_interface.php
 -      libs/core/core.create_dir_structure.php
 -      libs/core/core.fetch_resource_info.php
 -      libs/core/core.get_include_path.php
 -      libs/core/core.get_microtime.php
 -      libs/core/core.get_php_resource.php
 -      libs/core/core.is_secure.php
 -      libs/core/core.is_trusted.php
 -      libs/core/core.load_plugins.php
 -      libs/core/core.load_resource_plugin.php
 -      libs/core/core.parse_resource_name.php
 -      libs/core/core.read_cache_file.php
 -      libs/core/core.rm_auto.php
 -      libs/core/core.rmdir.php
 -      libs/core/core.write_cache_file.php
 -      libs/core/core.write_cache_paths_file.php
 -      libs/core/core.write_compiled_include.php
 -      libs/core/core.write_compiled_resource.php
 -      libs/core/core.write_file.php
 -      libs/plugins/modifier.date_format.php:
 -      started moving from $this to $smarty in core.*.php
 -
 -2003-06-21  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/core/core.create_dir_structure.php
 -      libs/core/core.write_file.php
 -      libs/plugins/function.config_load.php:
 -      fix more dir paths
 -
 -    * NEWS
 -      libs/Smarty.class.php
 -      libs/core/core.assemble_auto_filename.php
 -      libs/core/core.assemble_plugin_filepath.php
 -      libs/core/core.fetch_resource_info.php
 -      libs/core/core.get_php_resource.php
 -      libs/core/core.parse_resource_name.php
 -      libs/core/core.process_cached_inserts.php
 -      libs/core/core.read_cache_file.php
 -      libs/core/core.rm_auto.php
 -      libs/core/core.rmdir.php
 -      libs/core/core.run_insert_handler.php
 -      libs/core/core.smarty_include.php
 -      libs/core/core.smarty_include_php.php
 -      libs/core/core.write_cache_file.php
 -      libs/core/core.write_cache_paths_file.php
 -      libs/core/core.write_compiled_include.php
 -      libs/core/core.write_compiled_resource.php
 -      libs/core/core.write_file.php
 -      libs/plugins/function.config_load.php
 -      libs/plugins/function.fetch.php
 -      libs/plugins/function.html_image.php:
 -      fix filepaths to core files to use DIRECTORY_SEPARATOR
 -
 -2003-06-21  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fixed {plugin|modifier} syntax
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.write_compiled_include.php:
 -      fixed compiled include handling
 -
 -2003-06-21  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php
 -      libs/core/core.assemble_auto_filename.php
 -      libs/core/core.assemble_plugin_filepath.php
 -      libs/core/core.write_cache_paths_file.php:
 -      added filepath caching
 -
 -2003-06-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      update more varnames
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.display_debug_console.php
 -      libs/core/core.fetch_file_info.php
 -      libs/core/core.fetch_resource_info.php
 -      libs/core/core.get_php_resource.php
 -      libs/core/core.parse_file_path.php
 -      libs/core/core.parse_resource_name.php
 -      libs/core/core.process_cached_inserts.php
 -      libs/core/core.read_cache_file.php
 -      libs/core/core.run_insert_handler.php
 -      libs/core/core.smarty_include.php
 -      libs/core/core.smarty_include_php.php
 -      libs/core/core.write_compiled_resource.php
 -      libs/core/core.write_compiled_template.php
 -      libs/plugins/function.config_load.php:
 -      refactored var naming to better reflect "resource" instead of "file" where
 -      appropriate
 -
 -2003-06-19  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php:
 -      updated version-number to 2.5.0-cvs
 -
 -    * libs/core/core.write_cache_file.php:
 -      omit is-cache_dir-writable-check if a cache_handler_function is in use
 -
 -    * libs/core/core.smarty_include_php.php:
 -      fixed comments in smarty_include_php
 -
 -2003-06-19  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php
 -      libs/core/core.display_debug_console.php
 -      libs/core/core.smarty_include.php
 -      libs/plugins/function.eval.php:
 -      split up _compile_template to _compile_file and _compile_source, fix eval
 -      function
 -      VS: ----------------------------------------------------------------------
 -
 -    * libs/plugins/function.config_load.php:
 -      fix logic for _is_compiled()
 -
 -2003-06-19  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      added optional assign-attribute to {capture}-tag
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      added $cacheable-parameter to register_compiler_function()
 -
 -2003-06-18  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php
 -      libs/core/core.load_plugins.php
 -      libs/core/core.process_compiled_include.php
 -      libs/core/core.read_cache_file.php
 -      libs/core/core.write_cache_file.php
 -      libs/core/core.write_compiled_include.php:
 -      added $cacheable-parameter to register_function() and register_block()
 -
 -    * libs/Smarty.class.php:
 -      append '.php' to all compiled templates regardless of the settings of
 -      $use_sub_dirs
 -
 -    * libs/Smarty.class.php
 -      libs/core/core.read_cache_file.php:
 -      fixed $file_path-parameters  passed to smarty_core_fetch_file_info()
 -
 -2003-06-17  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS:
 -      fix name
 -
 -    * libs/Smarty_Compiler.class.php:
 -      change varnames to follow coding methods
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      add math patch to core
 -
 -2003-06-17  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/core/core.smarty_include.php:
 -      switched _process_template() to _is_compiled()-logic
 -
 -2003-06-17  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/Smarty.class.php:
 -      fix _is_compiled logic
 -
 -    * NEWS:
 -      update news file
 -
 -    * libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      fix _run_mod_handler routine
 -
 -    * libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php
 -      libs/core/core.display_debug_console.php
 -      libs/core/core.fetch_file_info.php
 -      libs/core/core.parse_file_path.php
 -      libs/core/core.write_compiled_template.php
 -      libs/plugins/function.config_load.php:
 -      fix path problems, rename some varibles from "template" to "file"
 -
 -2003-06-16  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/core/core.fetch_file_info.php
 -      libs/core/core.fetch_template_info.php:
 -      rename file, commit
 -
 -    * libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php
 -      libs/core/core.parse_file_path.php
 -      libs/core/core.read_cache_file.php
 -      libs/plugins/block.strip.php
 -      libs/plugins/block.textformat.php
 -      libs/plugins/compiler.config_load.php
 -      libs/plugins/function.config_load.php
 -      libs/plugins/function.eval.php
 -      libs/plugins/function.fetch.php
 -      libs/plugins/function.html_image.php:
 -      fix config_load, compile fetched arrays to compile_dir, switch display
 -      back to runtime. clean up var names and function names,  split up compile
 -      testing and compiling to separate funcs, rename some template_* functions
 -      to
 -      file_* functions and update logic so they can be used for file resources
 -      other than templates.
 -
 -2003-06-16  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fixed little bug in _compile_custom_tag()
 -
 -2003-06-16  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php
 -      libs/core/core.assign_smarty_interface.php
 -      libs/core/core.create_dir_structure.php
 -      libs/core/core.display_debug_console.php
 -      libs/core/core.fetch_template_info.php
 -      libs/core/core.get_include_path.php
 -      libs/core/core.get_microtime.php
 -      libs/core/core.get_php_resource.php
 -      libs/core/core.is_secure.php
 -      libs/core/core.is_trusted.php
 -      libs/core/core.load_plugins.php
 -      libs/core/core.load_resource_plugin.php
 -      libs/core/core.parse_file_path.php
 -      libs/core/core.process_cached_inserts.php
 -      libs/core/core.read_cache_file.php
 -      libs/core/core.rm_auto.php
 -      libs/core/core.rmdir.php
 -      libs/core/core.run_insert_handler.php
 -      libs/core/core.smarty_include.php
 -      libs/core/core.smarty_include_php.php
 -      libs/core/core.write_cache_file.php
 -      libs/core/core.write_compiled_template.php
 -      libs/core/core.write_file.php
 -      libs/plugins/core.assign_smarty_interface.php
 -      libs/plugins/core.create_dir_structure.php
 -      libs/plugins/core.display_debug_console.php
 -      libs/plugins/core.fetch_template_info.php
 -      libs/plugins/core.get_include_path.php
 -      libs/plugins/core.get_microtime.php
 -      libs/plugins/core.get_php_resource.php
 -      libs/plugins/core.is_secure.php
 -      libs/plugins/core.is_trusted.php
 -      libs/plugins/core.load_plugins.php
 -      libs/plugins/core.load_resource_plugin.php
 -      libs/plugins/core.parse_file_path.php
 -      libs/plugins/core.process_cached_inserts.php
 -      libs/plugins/core.read_cache_file.php
 -      libs/plugins/core.rm_auto.php
 -      libs/plugins/core.rmdir.php
 -      libs/plugins/core.run_insert_handler.php
 -      libs/plugins/core.smarty_include.php
 -      libs/plugins/core.smarty_include_php.php
 -      libs/plugins/core.write_cache_file.php
 -      libs/plugins/core.write_compiled_template.php
 -      libs/plugins/core.write_file.php:
 -      move core files into their own directory under SMARTY_DIR,
 -      remove abstraction function _execute_core_function
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fix newline handling for template for all template tags
 -
 -2003-06-11  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/plugins/compiler.config_load.php:
 -      add compiler function to cvs repository
 -
 -2003-06-11  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      added config-option "request_use_auto_globals" to make auto-globals be
 -      used as request vars instead of HTTP_*_VARS
 -
 -2003-06-11  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php
 -      libs/plugins/function.config_load.php:
 -      make config vars compile statically
 -
 -2003-06-11  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      backed out newlines patch
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      removed newlines in compiled templates after closing tags
 -
 -2003-06-10  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/de/designers.sgml:
 -      fixed german note on html_image and disk-access
 -
 -2003-06-10  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/plugins/core.parse_file_path.php:
 -      fix bug with resource_type resolving
 -
 -2003-06-09  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml:
 -      replace example with more practical one
 -
 -2003-06-08  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      added block-methods for registered objects
 -
 -2003-06-07  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/programmers.sgml:
 -      fixed bug in documentation for $smarty->default_modifiers
 -
 -2003-06-06  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/plugins/core.parse_file_path.php:
 -      fix problem with new default_resource_type changes
 -
 -    * NEWS:
 -      update NEWS file info
 -
 -    * NEWS
 -      libs/Smarty.class.php
 -      libs/plugins/core.parse_file_path.php:
 -      add default_resource_type, ignore 1 char resource names
 -
 -    * NEWS
 -      libs/Config_File.class.php:
 -      fix bug where config file starts with hidden section
 -
 -2003-06-04  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      -** empty log message ***
 -
 -2003-06-03  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/plugins/function.html_image.php:
 -      fix example in code comments
 -
 -2003-06-03  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/plugins/function.counter.php:
 -      fixed behaviour of start=... for {counter}
 -
 -2003-06-02  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/plugins/function.counter.php:
 -      fixed assign for {counter}
 -
 -2003-05-30  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/plugins/core.write_cache_file.php
 -      libs/plugins/core.write_compiled_template.php:
 -      add discrete error checking pertaining to $cache_dir
 -      and $compile_dir, their existance and writability
 -
 -2003-05-28  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/plugins/function.html_table.php:
 -      added params vdir, hdir and inner to html_table to allow looping over
 -      the data in various directions
 -
 -2003-05-28  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/plugins/core.compile_template.php
 -      libs/plugins/core.display_debug_console.php:
 -      fix problem with security and debug.tpl file
 -
 -2003-05-23  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS:
 -      upd NEWS file
 -
 -    * libs/Smarty_Compiler.class.php:
 -      allow spaces in literal tags
 -
 -2003-05-22  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/fr/programmers.sgml:
 -      fix special chars
 -
 -2003-05-19  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      speed up compiled templates, hardcode plugin filepaths instead of
 -      recalculate at runtime
 -
 -2003-05-19  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/designers.sgml:
 -      fixed example of {html_image}
 -
 -    * docs/designers.sgml:
 -      fixed typo
 -
 -2003-05-12  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php
 -      libs/plugins/core.read_cache_file.php
 -      libs/plugins/core.smarty_include.php
 -      libs/plugins/function.config_load.php:
 -      fixed multiple redundant occurrences for 'config' and 'template' in
 -      $smarty->_cache_info
 -
 -2003-05-10  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/plugins/core.create_dir_structure.php:
 -      refurbished create_dir_structure to use '/' internally
 -
 -    * libs/plugins/core.create_dir_structure.php:
 -      fixed windows absolute-paths in smarty_core_create_dir_structure()
 -
 -    * libs/plugins/core.create_dir_structure.php:
 -      fixed error-message
 -
 -2003-05-09  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fixed warning due to missing param to _execute_core_function()
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fixed quoting in _compile_include_php
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fixed quoting of "file"-parameter in _compile_include_tag()
 -
 -2003-05-08  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/programmers.sgml:
 -      fix typo
 -
 -    * libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php
 -      libs/plugins/core.compile_template.php
 -      libs/plugins/core.create_dir_structure.php
 -      libs/plugins/core.fetch_template_info.php
 -      libs/plugins/core.get_include_path.php
 -      libs/plugins/core.get_microtime.php
 -      libs/plugins/core.get_php_resource.php
 -      libs/plugins/core.is_secure.php
 -      libs/plugins/core.is_trusted.php
 -      libs/plugins/core.load_plugins.php
 -      libs/plugins/core.load_resource_plugin.php
 -      libs/plugins/core.parse_file_path.php
 -      libs/plugins/core.process_cached_inserts.php
 -      libs/plugins/core.read_cache_file.php
 -      libs/plugins/core.rm_auto.php
 -      libs/plugins/core.rmdir.php
 -      libs/plugins/core.run_insert_handler.php
 -      libs/plugins/core.smarty_include.php
 -      libs/plugins/core.smarty_include_php.php
 -      libs/plugins/core.write_cache_file.php
 -      libs/plugins/core.write_compiled_template.php
 -      libs/plugins/core.write_file.php
 -      libs/plugins/function.config_load.php
 -      libs/plugins/function.fetch.php
 -      libs/plugins/function.html_image.php:
 -      abstract more private functions to plugin directory
 -
 -    * libs/Config_File.class.php:
 -      only add DIRECTORY_SEPARATOR if it isn't already present
 -
 -    * libs/Config_File.class.php:
 -      fix directory separator code, use DIRECTORY_SEPARATOR
 -
 -2003-05-08  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/designers.sgml:
 -      fixed example of html_checkboxes
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      fixed bug in _create_dir_structure() when used with
 -      open_basedir-restriction and relative paths
 -
 -    * docs/designers.sgml:
 -      fixed example for html_radios
 -
 -2003-05-07  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php
 -      libs/plugins/core.assign_smarty_interface.php
 -      libs/plugins/core.display_debug_console.php
 -      libs/plugins/function.display_debug_console.php:
 -      abstracted display_debug_console and assign_smarty_interface to plugin dir
 -      as a test
 -
 -    * libs/Smarty.class.php
 -      libs/plugins/function.display_debug_console.php:
 -      correct misc varnames, abstract debug console display to plugin function
 -
 -    * libs/plugins/modifier.escape.php:
 -      fix typo
 -
 -2003-05-05  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      add % to math
 -
 -    * libs/Smarty.class.php:
 -      clean up comments, formatting
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      keep DIR_SEP for 3rd party compatability
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      remove DIR_SEP, use DIRECTORY_SEPARATOR exclusively
 -
 -    * libs/Smarty_Compiler.class.php:
 -      remove ++ and -- math operators on template vars
 -
 -2003-05-04  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      removed unused parameter $quote from Smarty_Compiler::_parse_attrs()
 -
 -    * libs/plugins/function.html_image.php:
 -      fixed DIR_SEP in html_image-plugin
 -
 -2003-05-04  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      rename DIR_SEP to SMARTY_DIR_SEP to avoid varname collisions
 -
 -2003-05-04  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/plugins/function.html_image.php:
 -      changed "link" to "href" in html_image. "link" is still working but
 -      deprecated
 -      html_image always renders an alt-tag now (default alt="")
 -      cleaned up indentiation of function.html_image.php
 -
 -2003-05-03  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/debug.tpl:
 -      fix typo
 -
 -2003-05-02  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/plugins/function.counter.php:
 -      fixed assign attribute for multiple counters
 -
 -2003-05-02  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      allow math on negative number
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      added simple math operators to variables
 -
 -2003-05-02  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/designers.sgml:
 -      fixed typos
 -
 -2003-04-30  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/fr/appendixes.sgml
 -      docs/fr/common.dsl
 -      docs/fr/designers.sgml
 -      docs/fr/getting-started.sgml
 -      docs/fr/html-common.dsl
 -      docs/fr/html.dsl
 -      docs/fr/manual.sgml
 -      docs/fr/php.dsl
 -      docs/fr/preface.sgml
 -      docs/fr/programmers.sgml:
 -      add frech docs to cvs repository
 -
 -2003-04-29  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      reverted patch for case-insensitive tag-names
 -
 -2003-04-28  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/programmers.sgml:
 -      reverted back to humerous redundancy in the docs :). although we all
 -      know we are here to generate template-based output, and not to have
 -      fun ;-)
 -
 -    * docs/getting-started.sgml:
 -      fixed default user and group for max os x installation
 -
 -    * libs/Smarty.class.php:
 -      made $function[2] and $function[3] options for register_resource
 -
 -    * libs/Smarty.class.php:
 -      fixed issue with object-callback when fetching a php-resource
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      enabled array(&$obj. 'source', 'timestamp', 'secure', 'trusted') as
 -      callback for register_resource()
 -      
 -      enabled array(&$obj, 'method') as callback for
 -      $default_template_handler_func
 -
 -2003-04-27  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/designers.sgml
 -      docs/programmers.sgml:
 -      fixed some typos, thank to mehdi
 -
 -    * libs/plugins/function.counter.php:
 -      prevent assign from overruling print-attribute in function.counter.php
 -
 -    * libs/plugins/function.counter.php:
 -      fixed problem with counter and assign
 -
 -    * libs/Smarty.class.php:
 -      fixed notice in  _load_plugins()
 -
 -    * NEWS
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      made plugin-names case-insensitive. this affects
 -      compiler/block/custom-functions and modifers.
 -
 -2003-04-26  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      remove unnecessary close/open tags from compiled templates
 -
 -2003-04-26  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/designers.sgml:
 -      added documentation for foreach.property.*
 -
 -2003-04-24  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * docs/designers.sgml:
 -      fixed example table_attr and tr_attr in html_table-example
 -
 -2003-04-21  Greg Beaver  <greg@chiaraquartet.net>
 -
 -    * libs/Smarty.class.php:
 -      fixed small bug in doc comments
 -
 -2003-04-21  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/plugins/function.html_image.php:
 -      fixed errornous creation of '//' in image_path in html_image
 -
 -2003-04-21  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/plugins/modifier.debug_print_var.php:
 -      fix htmlspecialchars() conflict
 -
 -    * NEWS
 -      libs/plugins/modifier.debug_print_var.php:
 -      fix escapement of special chars in key values of debug console
 -
 -    * NEWS
 -      libs/plugins/function.config_load.php:
 -      fixed debug timing logic for config_load
 -
 -    * docs/designers.sgml:
 -      fix example text
 -
 -
 -2003-04-20  Greg Beaver <cellog@users.sourceforge.net>
 -    * plugins/*
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      Config_File.class.php:
 -      updated all doc comments to phpDocumentor format (whew!)
 -
 -2003-04-06  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/plugins/function.math.php:
 -      allowed "_" in the name of variable-parameters to {math}-function
 -
 -2003-04-04  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      docs/designers.sgml
 -      libs/Smarty_Compiler.class.php:
 -      change backtic syntax from $`foo` to `$foo`
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      recognize $foo[][] syntax in embedded quotes without backticks
 -
 -2003-04-03  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      name=123 is passed as an integer (not a string) to plugins now
 -
 -2003-04-01  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      added CVS $Id: ChangeLog,v 1.1 2005/10/17 18:37:38 jeichorn Exp $
 -
 -2003-03-31  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php:
 -      added missing compile_id inside Smarty_Compiler
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fixed flaw when generating an error for missing postfilter
 -
 -2003-03-31  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/getting-started.sgml
 -      docs/programmers.sgml:
 -      fix typos
 -
 -2003-03-27  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/plugins/modifier.debug_print_var.php:
 -      $length is now propagated to sub-values in debug_print_var
 -
 -2003-03-26  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS:
 -      update header
 -
 -    * RELEASE_NOTES:
 -      commit changes to release notes
 -
 -    * (Smarty_2_5_0_RC2)
 -      libs/Config_File.class.php
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      committing RC2
 -
 -2003-03-24  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      made clear_cache() ignore compile_id when clearing cache_groups
 -
 -    * libs/plugins/function.popup.php:
 -      made onmouseout XHTML-compatible in function.popup.php
 -
 -2003-03-21  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      applied new var-names to fetch()
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      renamed $localvars to $_localvars in cache-file-handling-functions,
 -      added _get_auto_id()-function
 -
 -2003-03-21  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/plugins/function.mailto.php
 -      libs/plugins/function.popup.php:
 -      update functions for XHTML compatability
 -
 -2003-03-21  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * libs/Smarty.class.php:
 -      fixed wrong $auto_id in _read_cache_file()
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      swapped compile_id and cache_id in read_cache_file and write_cache_file
 -
 -    * libs/Smarty.class.php:
 -      reverted patch for ignoring compile-id back to -r1.364, due to problems
 -
 -    * NEWS
 -      libs/plugins/function.html_checkboxes.php
 -      libs/plugins/function.html_radios.php:
 -      html_radios and html_checkboxes accept "selected" instead of "checked"
 -      optionally now
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      swapped compile_id and cache_id for cache-file-handling again
 -
 -2003-03-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fix notice when no parameter is passed to default
 -
 -2003-03-20  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      removed notice of undefined var in _rm_auto()
 -
 -2003-03-19  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/plugins/function.html_checkboxes.php
 -      libs/plugins/function.html_radios.php
 -      libs/plugins/function.html_table.php:
 -      fix a few error messages, follow consistancy format plugin_name: errormsg
 -
 -    * libs/plugins/function.html_radios.php:
 -      update error messages
 -
 -    * NEWS
 -      libs/plugins/function.html_radios.php:
 -      add a warning when an array is passed as the 'checked' value of html_radios
 -
 -2003-03-19  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      fixed errormessage in _compile_smarty_ref()
 -
 -    * NEWS
 -      docs/designers.sgml:
 -      updated docs for html_image
 -
 -2003-03-18  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      cleaned up calls to readdir()
 -
 -    * libs/plugins/function.html_options.php:
 -      fixed label for optgroup in html_options
 -
 -2003-03-18  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      fix (newly introduced) bug with passing multiple modifiers to a parameter
 -
 -2003-03-18  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      docs/designers.sgml:
 -      updated docs for html_checkboxes, html_options and html_radios
 -
 -    * libs/plugins/function.html_options.php:
 -      fixed wrong default-"name" in function.html_options.php
 -
 -    * NEWS
 -      libs/plugins/function.html_checkboxes.php
 -      libs/plugins/function.html_radios.php:
 -      renamed "checkbox" and "radios" to "options" in {html_checkboxes} and
 -      {html_radios}
 -
 -    * libs/plugins/outputfilter.trimwhitespace.php:
 -      tried to optimize re-replacement in outputfilter.trimwhitespace.php a
 -      little
 -
 -    * libs/plugins/outputfilter.trimwhitespace.php:
 -      fixed greedy str_replace in outputfilter.trimwhitespace.php
 -
 -    * NEWS
 -      libs/plugins/function.html_checkboxes.php
 -      libs/plugins/function.html_options.php
 -      libs/plugins/function.html_radios.php:
 -      html_options, html_checkboxes and html_radios now pass-thru all unknown
 -      paramters
 -
 -2003-03-17  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/plugins/function.html_options.php:
 -      html_options passthru all unknown paramters now
 -
 -2003-03-17  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      libs/plugins/function.html_image.php:
 -      Fix link bug in html_image function, also make output XHTML compatible
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fix issue of embedded var and escaped double quotes
 -
 -2003-03-15  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      back out "@" logic, apply only to default modifier special case
 -
 -    * libs/Smarty_Compiler.class.php:
 -      fix @ logic, only use upon an echo
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      append "@" to template var echoes to supress possible notices
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      append "@" to _run_mod_handler to supress warnings
 -
 -2003-03-14  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      fix problem with escaped double quotes
 -
 -    * NEWS
 -      libs/plugins/function.html_radios.php:
 -      fixed html_options to not return an array
 -
 -2003-03-12  Messju Mohr  <messju@lammfellpuschen.de>
 -
 -    * NEWS
 -      libs/plugins/modifier.truncate.php:
 -      fixed length in modifier.truncate.php
 -
 -    * NEWS
 -      libs/plugins/outputfilter.trimwhitespace.php:
 -      fixed handling of '$'-signs in trimwhitespace outputfilter (messju)
 -
 -2003-03-12  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/programmers.sgml:
 -      update technical explanation of assign_by_ref and append_by_ref
 -
 -2003-03-11  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      fix config file recompiling code
 -
 -2003-03-07  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/plugins/function.html_image.php:
 -      change E_USER_ERROR to E_USER_NOTICE
 -
 -    * libs/plugins/function.html_image.php:
 -      suppress warning in html_image
 -
 -    * NEWS
 -      libs/plugins/function.html_image.php:
 -      update changes to html_image
 -
 -2003-03-06  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml
 -      docs/de/appendixes.sgml
 -      docs/de/common.dsl
 -      docs/de/designers.sgml
 -      docs/de/getting-started.sgml
 -      docs/de/html-common.dsl
 -      docs/de/html.dsl
 -      docs/de/manual.sgml
 -      docs/de/preface.sgml
 -      docs/de/programmers.sgml:
 -      add german docs to dist
 -
 -    * NEWS:
 -      update news file
 -
 -    * libs/plugins/function.html_image.php:
 -      fix width/height parameter index
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      get rid of unsetting name and script attributes to insert tags
 -
 -2003-03-05  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      RELEASE_NOTES:
 -      update NEWS file
 -
 -    * libs/plugins/modifier.string_format.php:
 -      fix argument order, erroneously swapped a while back
 -
 -    * (Smarty_2_5_0_RC1)
 -      NEWS
 -      README
 -      RELEASE_NOTES
 -      libs/Config_File.class.php
 -      libs/Smarty.class.php
 -      libs/Smarty_Compiler.class.php:
 -      commit final changes for 2.5.0-RC1
 -
 -2003-03-04  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/programmers.sgml:
 -      remove $show_info_header and $show_info_include property vars from docs
 -
 -2003-03-03  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      libs/plugins/function.popup.php:
 -      fixed PHP notice
 -
 -2003-02-28  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/Smarty_Compiler.class.php:
 -      simplify smarty.const.foo and smarty.const.$foo logic
 -
 -    * libs/Smarty_Compiler.class.php:
 -      only allow $foo syntax in embedded quotes, unless escaped with backticks
 -      then allow any dollar var
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      fix "once" var compiling to work with new attr compiling methods for
 -      include_php
 -
 -    * FAQ
 -      NEWS
 -      README
 -      docs/designers.sgml
 -      docs/getting-started.sgml
 -      libs/Smarty_Compiler.class.php
 -      libs/plugins/function.html_checkboxes.php
 -      libs/plugins/function.html_image.php
 -      libs/plugins/function.html_options.php
 -      libs/plugins/function.html_radios.php
 -      libs/plugins/function.html_select_date.php
 -      libs/plugins/function.html_select_time.php
 -      libs/plugins/function.html_table.php:
 -      fix $smarty.const.foo compiling, clean up double quoted strings,
 -      allow full dollar var syntax in quotes again
 -
 -2003-02-27  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml
 -      docs/programmers.sgml
 -      libs/Smarty_Compiler.class.php:
 -      update docs, fix smarty var compiling, allow any $smarty.*.$foo syntax,
 -      add $`foobar` for embedded variables
 -
 -    * libs/plugins/function.html_image.php:
 -      update functionality
 -
 -2003-02-26  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      libs/plugins/modifier.nl2br.php:
 -      add nl2br modifier
 -
 -    * libs/plugins/function.html_image.php:
 -      add link parameter
 -
 -2003-02-24  Monte Ohrt  <monte@ispi.net>
 -
 -    * libs/Smarty.class.php
 -      libs/plugins/function.html_image.php:
 -      fix rename problem in windows, unlink first
 -
 -    * libs/plugins/function.html_checkboxes.php
 -      libs/plugins/function.html_image.php
 -      libs/plugins/function.html_options.php
 -      libs/plugins/function.html_radios.php
 -      libs/plugins/shared.escape_special_chars.php:
 -      update functions with separate escape_special_chars routine
 -
 -    * NEWS
 -      libs/plugins/function.html_checkboxes.php
 -      libs/plugins/function.html_radios.php:
 -      commit checkboxes, update radios
 -
 -    * NEWS
 -      libs/Smarty.class.php
 -      libs/plugins/function.html_image.php:
 -      fix bug with get_registered_object
 -
 -    * NEWS
 -      libs/plugins/modifier.cat.php:
 -      added cat modifier to distribution
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      added << >> <> support to IF statements
 -
 -    * libs/plugins/function.html_radios.php:
 -      apply patch to initial html_radios function
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      fix _assign_smarty_interface to not overwrite keys other than 'request'
 -
 -    * NEWS
 -      libs/plugins/function.html_radios.php:
 -      added html_radios to distribution
 -
 -    * NEWS
 -      libs/plugins/modifier.string_format.php:
 -      fixed arg order of string_format
 -
 -    * NEWS
 -      libs/Smarty.class.php:
 -      use tmp file for file writes, avoid race condition
 -
 -    * NEWS
 -      libs/Smarty_Compiler.class.php:
 -      add $smarty.config.foo var, handle embedded smarty var correctly
 -
 -    * NEWS
 -      libs/plugins/function.fetch.php:
 -      silence warnings in fetch plugin
 -
 -2003-02-21  Monte Ohrt  <monte@ispi.net>
 -
 -    * INSTALL:
 -      update wording
 -
 -    * INSTALL:
 -      update install instructions
 -
 -    * AUTHORS
 -      BUGS
 -      CREDITS
 -      QUICKSTART
 -      README
 -      RESOURCES
 -      TESTIMONIALS:
 -      remove some files already in docs or elsewhere
 -
 -    * demo/index.php:
 -      add templates_c to repository
 -
 -    * index.php:
 -      move demo files to demo directory
 -
 -    * Config_File.class.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      debug.tpl:
 -      moved lib files under libs directory
 -
 -2003-02-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.class.php:
 -      add get_config_vars() method, update get_template_vars() functionality
 -
 -    * NEWS
 -      Smarty.class.php:
 -      fix minor logic in _fetch_template_info()
 -
 -    * NEWS
 -      Smarty.class.php:
 -      support merging appended vars
 -
 -    * NEWS
 -      Smarty.class.php:
 -      fix cache groups behavior with compile_id set
 -
 -2003-02-19  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php:
 -      back out third parameter, extend functionality of append
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -      update imbedded vars, allow special $smarty vars
 -
 -    * plugins/function.html_table.php:
 -      add plugin html_table
 -
 -    * NEWS
 -      Smarty.class.php:
 -      support appending key=>val pairs
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -      change embedded variable logic to only recognize $foo and $foo[0][bar]
 -      syntax
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -      allow null as function attribute value
 -
 -2003-02-18  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -      support foo->bar[index] syntax
 -
 -    * Smarty_Compiler.class.php:
 -      allow $foo->bar[0] syntax
 -
 -2003-02-17  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/modifier.escape.php:
 -      fix syntax error from previous commit
 -
 -    * NEWS
 -      Smarty.class.php:
 -      add error msgs to get_registered_object
 -
 -    * Smarty.class.php:
 -      add function for getting reference to registered object
 -
 -    * Smarty_Compiler.class.php:
 -      back out patches for object and objref calls on $smarty var
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -      treat unrecognized param attribute syntax as a string
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -      support $smarty.const.$foo syntax
 -
 -    * NEWS
 -      debug.tpl
 -      plugins/modifier.count_words.php
 -      plugins/modifier.escape.php:
 -      fix E_NOTICE messages
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -      add @ and === to if tokens, few param cleanups
 -
 -2003-02-16  Greg Beaver  <greg@chiaraquartet.net>
 -
 -    * ChangeLog
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -      many more phpdoc comment upgrades
 -
 -2003-02-15  Greg Beaver <cellog@sourceforge.net>
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php
 -      continue cleaning of phpdoc comments.  All that is needed is the
 -      addition of @return tags and perhaps a bit more verbose comments
 -      and they are finished.
 -
 -2003-02-14  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.class.php:
 -      enable config_load error messages
 -
 -    * NEWS
 -      plugins/function.html_options.php:
 -      fix html_options to not escape already escaped entities
 -
 -    * NEWS
 -      Smarty.class.php:
 -      send Last-Modified header on cache creation, misc tab/spacing cleanup
 -
 -2003-02-13  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php
 -      docs/designers.sgml:
 -      allow dash in plain text
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -      check strict syntax of function attributes
 -
 -2003-02-12  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -      dropped support for modifiers on object parameters,
 -      added support for objects as modifier parameters
 -
 -    * NEWS
 -      Smarty_Compiler.class.php
 -      docs/designers.sgml:
 -      fix bug with decimal numbers in if statements, misc doc updates
 -
 -2003-02-11  Monte Ohrt  <monte@ispi.net>
 -
 -    * (Smarty_2_4_2)
 -      Config_File.class.php
 -      NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -      update version numbers
 -
 -2003-02-10  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -      add support for $foo->$bar syntax
 -
 -    * NEWS:
 -      update NEWS file
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -      support full var syntax in quoted text, fix problem with const var access,
 -      clean up some more regex code, fix object problem with no properties
 -
 -2003-02-06  Monte Ohrt  <monte@ispi.net>
 -
 -    * (Smarty_2_4_1)
 -      Config_File.class.php
 -      NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -      committed 2.4.1 changes
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -      ignore case in IF statements
 -
 -2003-02-05  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -      treat undefined constants as null
 -
 -    * NEWS
 -      Smarty.class.php:
 -      fix problem with inserts and nested fetches
 -
 -    * Smarty_Compiler.class.php:
 -      fix "if" regex for math tokens
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      docs/getting-started.sgml:
 -      added support for extracting params to include_php
 -
 -2003-02-04  Monte Ohrt  <monte@ispi.net>
 -
 -    * RELEASE_NOTES:
 -      reformat text
 -
 -2003-02-03  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS:
 -      update news file
 -
 -2003-02-03  Greg Beaver  <greg@chiaraquartet.net>
 -
 -    * ChangeLog
 -      Smarty.class.php:
 -      begin fixing phpdoc comments in Smarty.class.php
 -
 -    * ChangeLog
 -      Config_File.class.php:
 -      fixed phpdoc comments
 -
 -2003-02-03  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php:
 -      allow $foo->bar[$x].foo syntax
 -
 -    * Smarty_Compiler.class.php
 -      index.php
 -      configs/test.conf
 -      templates/index.tpl:
 -      fix accidental commit
 -
 -    * index.php
 -      configs/test.conf
 -      templates/index.tpl:
 -      allow $foo->bar[$j].blah type of syntax
 -
 -2003-02-02  Greg Beaver  <cellog@php.net>
 -
 -    * Smarty.class.php
 -      begin fixing of phpdoc comments
 -
 -    * Config_File.class.php
 -      fix phpdoc comments, add phpDocumentor docblock templates
 -
 -2003-02-02  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php
 -      docs/html.dsl
 -      docs/php.dsl:
 -      fix version number
 -
 -    * (Smarty_2_4_0)
 -      Config_File.class.php
 -      NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      docs/appendixes.sgml
 -      docs/designers.sgml
 -      docs/programmers.sgml:
 -      update Smarty version numbers
 -
 -2003-01-30  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty_Compiler.class.php
 -      TODO:
 -      fix order of php tag comparisons
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -      fix known php tag handling problems
 -
 -2003-01-29  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php:
 -      change comments to phpdoc style
 -
 -2003-01-28  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php
 -      docs/programmers.sgml:
 -      make separate var for compiler file
 -
 -    * plugins/function.fetch.php:
 -      fix error call
 -
 -2003-01-25  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php:
 -      add support for restriction to registered methods
 -
 -    * plugins/outputfilter.trimwhitespace.php:
 -      update with textarea support
 -
 -2003-01-24  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php:
 -      fix compiling problem with {foreach} tags
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php:
 -      put objects in own array, add object param format support, change
 -      object syntax from foo.bar to foo->bar
 -
 -2003-01-23  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -      add support for object registration
 -
 -2003-01-22  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php:
 -      add file & line number of calling error to error message
 -
 -2003-01-21  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php:
 -      put php style object syntax back in
 -
 -2003-01-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php:
 -      move security settings to fetch function for template_dir
 -
 -    * NEWS
 -      Smarty.class.php:
 -      fix debug template and security, add template_dir to secure_dir at runtime
 -
 -2003-01-17  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -      added new object support without new template syntax
 -
 -2003-01-15  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -      fix if statement syntax for negative integers, fix issue with directories
 -      named '0'
 -
 -2003-01-08  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php
 -      plugins/function.counter.php
 -      plugins/function.cycle.php
 -      plugins/function.debug.php
 -      plugins/function.eval.php
 -      plugins/function.fetch.php
 -      plugins/function.html_options.php
 -      plugins/function.html_select_date.php
 -      plugins/function.html_select_time.php
 -      plugins/function.mailto.php
 -      plugins/function.math.php
 -      plugins/function.popup.php
 -      plugins/function.popup_init.php:
 -      update plugins to return values instead of echo, fix config file cache
 -      to include global config variables in cache file
 -
 -    * Smarty_Compiler.class.php:
 -      fix bug with >= tests in if statements, comment out full object support
 -
 -2003-01-06  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      docs/html.dsl
 -      plugins/modifier.escape.php:
 -      add javascript escape parameter to escape modifier
 -
 -2003-01-02  Monte Ohrt  <monte@ispi.net>
 -
 -    * templates/header.tpl:
 -      move the title into head where it should be
 -
 -2002-12-24  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php:
 -      added correct line numbers to smarty syntax error messages
 -
 -    * docs/programmers.sgml:
 -      update append documentation, make more clear on its function
 -
 -    * Smarty_Compiler.class.php:
 -      fix modifier matching regexp
 -
 -2002-12-23  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php:
 -      support nested function calls in IF statements
 -
 -2002-12-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php:
 -      few more fixes, spaces around function parameters
 -
 -    * Smarty_Compiler.class.php:
 -      fix misc syntax issues with {if} tags
 -
 -2002-12-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php:
 -      fix misc syntax issues with {if} tags
 -
 -2002-12-19  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php:
 -      commit updates, passes all smoke tests
 -
 -    * NEWS:
 -      update NEWS file
 -
 -    * Smarty_Compiler.class.php:
 -      fixed literal string not in quotes as parameters
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -      fix misc syntax issues, add ability to pass modifiers to functions
 -
 -2002-12-18  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS:
 -      update NEWS
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -      update compiler code, clean up regex, add new syntax features
 -
 -2002-12-16  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS:
 -      update NEWS file
 -
 -    * Smarty_Compiler.class.php:
 -      commit updates for objects
 -
 -2002-12-14  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php:
 -      fix bug with compiling config files with caching on
 -
 -2002-12-13  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php:
 -      fix problem with matching single quoted strings
 -
 -    * Smarty_Compiler.class.php:
 -      update embedded variable logic, get rid of ."" at end of output
 -
 -    * NEWS
 -      docs/designers.sgml
 -      plugins/function.html_select_date.php:
 -      add day_value_format to html_select_date
 -
 -2002-12-12  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/modifier.debug_print_var.php:
 -      fix bug, double escaped values in display
 -
 -    * Smarty.class.php:
 -      move debug test back into fetch()
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      plugins/outputfilter.trimwhitespace.php:
 -      assigned vars are no longer in global name space, few debug cleanups
 -
 -2002-12-11  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/function.popup.php:
 -      fix error in newline code
 -
 -    * plugins/function.popup.php:
 -      fix popup to allow newlines in text data
 -
 -2002-12-10  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php:
 -      fix plugin error logic
 -
 -    * docs/designers.sgml
 -      docs/programmers.sgml:
 -      edit examples, make more verbose
 -
 -    * NEWS
 -      plugins/function.html_options.php:
 -      escape html entities in the option values and output
 -
 -    * NEWS
 -      plugins/function.html_options.php:
 -      fixed bug with label of html_options
 -
 -2002-12-09  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php:
 -      add support for var_export()
 -
 -    * Config_File.class.php
 -      Smarty.class.php:
 -      clean up code, respect force_compile and compile_check flags
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      docs/designers.sgml
 -      plugins/function.mailto.php:
 -      add caching feature to config loading, document update, add mailto plugin
 -
 -2002-12-08  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/function.fetch.php:
 -      fix query part of URL
 -
 -2002-12-05  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml:
 -      fix typos
 -
 -2002-11-22  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php:
 -      patch for warning message
 -
 -2002-11-21  Monte Ohrt  <monte@ispi.net>
 -
 -    * RELEASE_NOTES
 -      Smarty.class.php:
 -      get rid of testing for a set value with assign function, just set to
 -      whatever is passed into the template
 -
 -    * docs/programmers.sgml:
 -      fix typo
 -
 -2002-11-19  Monte Ohrt  <monte@ispi.net>
 -
 -    * Config_File.class.php
 -      NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -      commit changes, ready for 2.3.1 release
 -
 -2002-11-01  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/function.html_options.php:
 -    added label attribute to all option outputs, cover w3c spec.
 -
 -    * NEWS: update NEWS file
 -
 -    * docs/designers.sgml: update docs for optgroup output
 -
 -    * plugins/function.html_options.php:
 -    make html_options work with optgroup, make func modular and recursive.
 -
 -2002-10-29  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.class.php: set mtime on compile files so they match source files
 -
 -2002-10-18  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.class.php: added proper support for open_basedir setting
 -
 -    * docs/designers.sgml: clear up docs on index, iteration and rownum
 -
 -2002-10-16  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/modifier.default.php: fix warning message in default modifier
 -
 -2002-09-25  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml
 -      plugins/modifier.strip.php
 -      NEWS: added strip variable modifier
 -
 -2002-09-24  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -    * Smarty_Compiler.class.php:
 -    Fix to be able to use $smarty.x variables as arrays.
 -
 -2002-09-23  Monte Ohrt  <monte@ispi.net>
 -
 -    * Config_File.class.php:
 -    add support for mac/dos formatted config files (fix newlines)
 -
 -    * docs/programmers.sgml: add optional tags to clear_cache parameters
 -
 -    * docs/designers.sgml:
 -    fix error with include_php description, add $this to description
 -
 -2002-09-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      docs/getting-started.sgml: fixed errors with example setup docs
 -
 -2002-09-16  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/block.textformat.php
 -      docs/designers.sgml
 -      NEWS: add textformat block function
 -
 -2002-09-10  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml:
 -    add assign attribute to cycle function documentation
 -
 -    * docs/designers.sgml
 -      docs/programmers.sgml: fix typos
 -
 -2002-09-09  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/function.debug.php
 -      templates/header.tpl:
 -    fix header in debug template, fix typo in header.tpl example
 -
 -2002-08-15  mohrt  <mohrt@pb1.pair.com>
 -
 -    * docs/programmers.sgml: fix typos
 -
 -2002-08-08  mohrt  <mohrt@pb1.pair.com>
 -
 -    * RELEASE_NOTES
 -      Smarty.class.php:
 -    supress warnings from unlink() and is_dir(), let error handler deal with it
 -
 -2002-08-07  mohrt  <mohrt@pb1.pair.com>
 -
 -    * docs/appendixes.sgml
 -      docs/designers.sgml
 -      docs/programmers.sgml
 -      Config_File.class.php
 -      NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.class.php
 -      Smarty_Compiler.class.php: update files with new version numbers
 -
 -2002-08-02  mohrt  <mohrt@pb1.pair.com>
 -
 -    * NEWS: update NEWS file with credits
 -
 -    * NEWS
 -      Smarty.class.php: added assign_by_ref() and append_by_ref() functions
 -
 -2002-08-01  mohrt  <mohrt@pb1.pair.com>
 -
 -    * TODO
 -      NEWS
 -      Smarty.class.php:
 -    changed default warning type for plugin errors from E_USER_WARNING to E_USER_ERROR
 -
 -2002-07-29  mohrt  <mohrt@pb1.pair.com>
 -
 -    * plugins/function.html_select_time.php
 -      docs/designers.sgml
 -      NEWS: added paramters to html_select_time plugin
 -
 -2002-07-25  Andrei Zmievski  <andrei@pb1.pair.com>
 -
 -    * TODO: *** empty log message ***
 -
 -2002-07-24  mohrt  <mohrt@pb1.pair.com>
 -
 -    * QUICKSTART: update QUICKSTART guide
 -
 -    * NEWS
 -      debug.tpl
 -      plugins/modifier.debug_print_var.php:
 -    update debug console to show objects, fix warning in debug.tpl
 -
 -2002-07-23  mohrt  <mohrt@pb1.pair.com>
 -
 -    * docs/programmers.sgml: fix load_filter examples
 -
 -    * Config_File.class.php
 -      NEWS: fix error when there are no sections in config file
 -
 -2002-07-19  mohrt  <mohrt@pb1.pair.com>
 -
 -    * docs/getting-started.sgml: fix error in install guide
 -
 -2002-07-18  mohrt  <mohrt@pb1.pair.com>
 -
 -    * Smarty_Compiler.class.php:
 -    correct the expression match for smarty:nodefaults
 -
 -2002-07-17  mohrt  <mohrt@pb1.pair.com>
 -
 -    * Smarty_Compiler.class.php: fix default modifier to work with config vars
 -
 -    * Smarty_Compiler.class.php: got args to strstr backwards...
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -    change default modifiers to array instead of string
 -
 -    * Smarty_Compiler.class.php
 -      docs/designers.sgml
 -      Smarty.class.php: add default modifier logic, minor doc updates
 -
 -    * NEWS
 -      Smarty.class.php
 -      plugins/function.popup_init.php:
 -    make popup_init xhtml compliant, minor variable name changes for consistancy
 -
 -2002-07-16  mohrt  <mohrt@pb1.pair.com>
 -
 -    * NEWS: update NEWS file
 -
 -    * plugins/function.debug.php
 -      Smarty.class.php
 -      debug.tpl
 -      NEWS:
 -    fix problem with filenames on windows, add ability to supply expire time in seconds when clearing cache or compiled files
 -
 -2002-07-15  mohrt  <mohrt@pb1.pair.com>
 -
 -    * Smarty.class.php:
 -    fixed problem with insert tags when loading function from script attribute
 -    and caching enabled (Monte)
 -
 -2002-07-14  mohrt  <mohrt@pb1.pair.com>
 -
 -    * NEWS
 -      Smarty.class.php: fix bug with debug_tpl file path for Windows
 -
 -2002-07-12  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: fix append function with array/string issue
 -
 -2002-07-11  Monte Ohrt  <monte@ispi.net>
 -
 -    * RELEASE_NOTES: update release notes
 -
 -    * NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      Config_File.class.php: update files to 2.2.0 tags, get ready for release
 -
 -2002-07-09  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.class.php: make debug.tpl work with any delimiter
 -
 -    * NEWS
 -      Smarty.class.php:
 -    change tests in append and assign to != '' instead of empty(), which is more accurate
 -
 -2002-07-08  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml: minor doc update
 -
 -    * Smarty.class.php:
 -    cast var as an array, simplify and get rid of PHP warning messages
 -
 -2002-07-03  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: one more N
 -
 -    * Smarty.class.php:
 -    prepend "N" to filenames to avoid possible OS issues with dir names starting with "-"
 -
 -    * Smarty.class.php: only set $debug_tpl in constructor if empty
 -
 -    * Smarty.class.php
 -      docs/designers.sgml
 -      docs/getting-started.sgml
 -      docs/programmers.sgml:
 -    make use_sub_dirs go back to crc32 for subdir separation
 -
 -2002-06-29  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/function.eval.php: do nothing if $val is empty
 -
 -    * TODO
 -      plugins/function.eval.php
 -      plugins/function.popup_init.php:
 -    add zindex to popup init, fix error message for eval.
 -
 -2002-06-27  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php:
 -    only loop through relative paths for PHP include_path, remove $_relative variable
 -
 -    * Smarty_Compiler.class.php: added {$smarty.version} variable
 -
 -2002-06-26  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/appendixes.sgml
 -      docs/designers.sgml
 -      docs/getting-started.sgml
 -      docs/programmers.sgml
 -      Smarty.class.php:
 -    update plugin loading logic, look in SMARTY_DIR, then cwd. If all fail, then retry all with include_path
 -
 -    * templates/header.tpl
 -      Smarty.class.php: update get_include_path, get _path_array only once
 -
 -    * Smarty.class.php: fix get_include_path function for windows
 -
 -    * Smarty.class.php: update plugin search logic
 -
 -    * Smarty.class.php: only search include_path if relative path
 -
 -    * plugins/function.html_select_date.php
 -      plugins/function.html_select_time.php
 -      plugins/modifier.date_format.php
 -      Smarty_Compiler.class.php
 -      NEWS
 -      Smarty.class.php: allow plugins_dir to be an array of directories
 -
 -2002-06-25  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/programmers.sgml
 -      docs/getting-started.sgml: update installation docs
 -
 -    * debug.tpl
 -      docs/getting-started.sgml
 -      templates/debug.tpl
 -      NEWS
 -      Smarty.class.php: move debug.tpl to SMARTY_DIR, add to constructor
 -
 -2002-06-24  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/function.assign_debug_info.php
 -      NEWS: fixed warning message in function.assign_debug_info
 -
 -    * Smarty.class.php: update include_path fixes
 -
 -    * NEWS:
 -    fixed $template_dir, $compile_dir, $cache_dir, $config_dir to respect include_path
 -
 -2002-06-23  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/shared.make_timestamp.php:
 -    update timestamp plugin to work when passed a timestamp
 -
 -2002-06-19  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS: update NEWS file
 -
 -    * plugins/modifier.date_format.php
 -      docs/designers.sgml:
 -    update date_format, allow optional 2nd paramater as default date if passed date is empty. update docs.
 -
 -    * plugins/modifier.date_format.php:
 -    fix date_format modifier, return nothing if given empty string
 -
 -2002-06-18  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      plugins/function.cycle.php:
 -    gave $reset a default value in cycle function
 -
 -    * plugins/function.html_select_date.php
 -      plugins/shared.make_timestamp.php
 -      NEWS:
 -    corrected warnings in html_select_time function, made make timestamp always return a timestamp
 -
 -2002-06-17  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: swapped around cache_id and compile_id order
 -
 -2002-06-14  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/programmers.sgml
 -      plugins/function.popup_init.php
 -      Smarty.class.php:
 -    change directory delimiter to "^" for cache and compile files
 -
 -2002-06-13  Andrei Zmievski  <andrei@php.net>
 -
 -    * TODO: done.
 -
 -    * Smarty_Compiler.class.php:
 -    Optimize the calculation of section 'total' property.
 -
 -2002-06-11  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.class.php:
 -    added support for subdir exclusion, deletion by full or partial cache_id and compile_id, change file format to urlencoded values instead of crc32
 -
 -2002-06-07  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: fix bug with last_modified_check code
 -
 -    * NEWS
 -      Smarty.class.php:
 -    updated $GLOBALS refererence for HTTP_IF_MODIFIED_SINCE
 -
 -2002-06-06  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml
 -      overlib.js:
 -    remove overlib.js file from distribution, update plugin and docs
 -
 -2002-06-05  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml
 -      NEWS
 -      Smarty.class.php: fix 304 Not Modified, don't send content
 -
 -2002-06-03  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/function.cycle.php: update version number
 -
 -    * plugins/function.cycle.php
 -      NEWS:
 -    fixed cycle function to respect delimiter setting after initial setting
 -
 -    * Smarty.class.php
 -      NEWS:
 -    update $GLOBALS references to work properly with track_globals settings
 -
 -    * plugins/function.math.php: fixed bug with call $assign
 -
 -    * docs/appendixes.sgml
 -      docs/designers.sgml
 -      plugins/function.html_options.php
 -      plugins/function.html_select_time.php
 -      NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -    optimized for loops with count() function calls
 -
 -2002-06-01  Andrei Zmievski  <andrei@php.net>
 -
 -    * TODO: *** empty log message ***
 -
 -2002-05-21  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS: update NEWS file
 -
 -    * plugins/function.html_select_date.php
 -      RESOURCES
 -      docs/designers.sgml
 -      Config_File.class.php:
 -    update html_select_date with month_value_format attribute for controlling the format of the month values.
 -
 -2002-05-17  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -    Made it possible to use simple variables inside [] for indexing.
 -
 -2002-05-16  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml
 -      docs/getting-started.sgml
 -      NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      TESTIMONIALS: add "once" attribute to php_include, update docs
 -
 -2002-05-09  Andrei Zmievski  <andrei@ispi.net>
 -
 -    * NEWS
 -      TODO: *** empty log message ***
 -
 -2002-05-07  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/function.cycle.php: remove \n from cycle function
 -
 -    * docs/designers.sgml
 -      plugins/function.cycle.php
 -      README
 -      RELEASE_NOTES
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      NEWS:
 -    update cycle function to handle array as input, update files to 2.1.1
 -
 -2002-05-06  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/function.fetch.php:
 -    update fetch function with more error checking
 -
 -2002-05-03  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml
 -      plugins/function.counter.php:
 -    update counter to use name instead of id (id still works though)
 -
 -    * plugins/function.cycle.php
 -      docs/designers.sgml: rename id to name for cycle function
 -
 -    * plugins/function.cycle.php:
 -    update cycle function to allow blank values parameter after initialized
 -
 -    * plugins/function.cycle.php: fix syntax error
 -
 -2002-05-02  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/function.cycle.php: ugh, another typo
 -
 -    * plugins/function.cycle.php: update comments
 -
 -    * docs/designers.sgml
 -      plugins/function.cycle.php
 -      NEWS: added function cycle
 -
 -    * FAQ
 -      Smarty.class.php: fix register_outputfilter function
 -
 -2002-05-01  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml
 -      NEWS
 -      Smarty.class.php: fixed bug with resource testing and include_path
 -
 -2002-04-30  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.class.php
 -      Smarty_Compiler.class.php: update files for 2.1.0 release
 -
 -2002-04-30  Andrei Zmievski  <andrei@ispi.net>
 -
 -    * plugins/function.fetch.php
 -      docs/programmers.sgml
 -      Smarty.class.php: Fix.
 -
 -2002-04-29  Andrei Zmievski  <andrei@ispi.net>
 -
 -    * docs/programmers.sgml
 -      docs/designers.sgml: A whole bunch of docs.
 -
 -2002-04-26  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ
 -      QUICKSTART
 -      docs/programmers.sgml: update FAQ, QUICKSTART, small doc syntax fix
 -
 -2002-04-24  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/programmers.sgml
 -      templates/debug.tpl
 -      Smarty.class.php: changed doc structure a bit
 -
 -2002-04-16  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: Add register/unregister API for output filters.
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      TODO:
 -    Changed the way filters are loaded, which now has to be done explicitly,
 -    either through load_filter() API or by filling in $autoload_filters variable.
 -    Also renamed internal variable to avoid namespace pollution.
 -
 -2002-04-15  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php:
 -    Fixed _get_php_resource() to take include_path into account.
 -
 -2002-04-15  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml:
 -    update docs, get modifiers and functions into index for easy access
 -
 -    * docs/programmers.sgml
 -      NEWS
 -      Smarty.class.php: update caching documentation
 -
 -2002-04-15  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -    * Smarty.class.php: Only turn down error notices if $debugging is false.
 -
 -2002-04-15  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS: update NEWS file
 -
 -    * plugins/function.html_select_date.php:
 -    fixed logic so this works right when field_separator = "/"
 -
 -    * plugins/function.html_select_date.php:
 -    fix regular expression for matching date
 -
 -2002-04-13  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml: updated html_select_date docs to reflect changes
 -
 -    * NEWS
 -      plugins/function.html_select_date.php:
 -    added YYYY-MM-DD support to html_select_date
 -
 -2002-04-12  Andrei Zmievski  <andrei@php.net>
 -
 -    * TESTIMONIALS: New entry.
 -
 -2002-04-12  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/modifier.strip_tags.php: back out changes to strip_tags
 -
 -    * docs/programmers.sgml: update docs regarding cache_lifetime
 -
 -    * plugins/modifier.strip_tags.php
 -      Smarty.class.php:
 -    update cache_lifetime logic: -1 = never expire, 0 = always expire
 -
 -2002-04-11  Andrei Zmievski  <andrei@php.net>
 -
 -    * BUGS
 -      FAQ
 -      INSTALL
 -      NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      docs/getting-started.sgml:
 -    Fixed directory separtor issue. Requiring PHP 4.0.6 now.
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -    Added ability to use simple variables for array indices or object properties.
 -
 -    * TESTIMONIALS: Another one.
 -
 -    * TESTIMONIALS: Adding one from Mark P.
 -
 -2002-04-05  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php
 -      NEWS
 -      Smarty.class.php: Make it possible to unregister pre/postfilter plugins.
 -
 -2002-04-05  Monte Ohrt  <monte@ispi.net>
 -
 -    * INSTALL: Remove addons file from INSTALL instructions
 -
 -2002-04-04  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml: update doc error
 -
 -    * docs/designers.sgml
 -      plugins/modifier.escape.php
 -      NEWS
 -      Smarty.class.php: added htmlall attribute to escape modifier
 -
 -2002-04-03  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php: Fixed undefined offset warning in {if} tag.
 -
 -    * Smarty.class.php
 -      NEWS: Added template_exists() API.
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php
 -      NEWS:
 -    - Added $smarty.template variable.
 -    - Fixed {include_php} tag when dynamic values were used for 'file' attribute.
 -
 -    * Config_File.class.php: Separator setting fix.
 -
 -2002-03-28  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ
 -      README: add digest address
 -
 -    * FAQ
 -      README
 -      Smarty.class.php: update mailing list addresses
 -
 -2002-03-28  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -    * plugins/function.html_select_date.php
 -      plugins/function.html_select_time.php
 -      plugins/modifier.date_format.php:
 -    Fix for when plugins directory is not the default one.
 -
 -2002-03-28  Andrei Zmievski  <andrei@ispi.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -    * plugins/function.html_select_date.php
 -      plugins/function.html_select_time.php
 -      plugins/modifier.date_format.php:
 -    Fix for when plugins directory is not the default one.
 -
 -2002-03-27  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ: update FAQ page
 -
 -2002-03-26  Andrei Zmievski  <andrei@ispi.net>
 -
 -    * CREDITS
 -      NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      TODO: Block functions changes.
 -
 -    * Config_File.class.php: *** empty log message ***
 -
 -2002-03-25  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php: Initial implementation of block functions.
 -
 -2002-03-22  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml: fix documentation error in capture
 -
 -2002-03-22  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: *** empty log message ***
 -
 -    * Smarty.class.php: Turn off notices.
 -
 -2002-03-21  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php: Make _current_file available to prefilters.
 -
 -    * NEWS
 -      Smarty.class.php:
 -    Made is possible to assign variables in pre/postfilters.
 -
 -2002-03-20  Andrei Zmievski  <andrei@php.net>
 -
 -    * plugins/function.html_select_date.php: Fixed +/- functionality.
 -
 -    * NEWS: *** empty log message ***
 -
 -2002-03-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * Config_File.class.php
 -      NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.class.php
 -      Smarty_Compiler.class.php: update version numbers
 -
 -    * plugins/function.html_select_date.php
 -      plugins/function.html_select_time.php
 -      plugins/modifier.date_format.php:
 -    move .make_timestamp.php to shared.make_timestamp.php
 -
 -    * NEWS
 -      Smarty.class.php
 -      docs/designers.sgml
 -      plugins/function.fetch.php
 -      plugins/function.html_select_date.php:
 -    update file generation, replace crc32() '-' with 'N'
 -
 -2002-03-20  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php: *** empty log message ***
 -
 -2002-03-19  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php:
 -    Fix plugin behavior for inserts with script attribute.
 -
 -    * NEWS: *** empty log message ***
 -
 -    * Smarty_Compiler.class.php: Fix bug with $smarty.cookies.
 -
 -    * TESTIMONIALS: *** empty log message ***
 -
 -2002-03-15  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      docs/designers.sgml: update Changelog
 -
 -    * plugins/modifier.indent.php
 -      plugins/modifier.wordwrap.php: add wordwrap and indent to repository
 -
 -2002-03-14  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php:
 -    remove show_info_include and show_info_header functions
 -
 -2002-03-13  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/function.fetch.php: update fetch function
 -
 -    * plugins/function.fetch.php: update fetch function with new parameters
 -
 -2002-03-12  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml: update doc tables
 -
 -    * docs/designers.sgml: update docs columns
 -
 -    * docs/getting-started.sgml
 -      docs/appendixes.sgml: update docs
 -
 -    * TESTIMONIALS
 -      docs/appendixes.sgml: update syntax error in docs, add to testimonials
 -
 -2002-03-04  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ
 -      README: update FAQ, README with digest mode info
 -
 -2002-03-02  Monte Ohrt  <monte@ispi.net>
 -
 -    * QUICKSTART: update quickstart
 -
 -    * Smarty.class.php:
 -    change behavior so cache_lifetime = 0 never expires (instead of always regenerate)
 -
 -2002-03-01  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml: update doc example
 -
 -2002-03-01  Andrei Zmievski  <andrei@php.net>
 -
 -    * CREDITS
 -      RELEASE_NOTES
 -      TODO
 -      NEWS: *** empty log message ***
 -
 -2002-03-01  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/appendixes.sgml
 -      docs/designers.sgml
 -      docs/getting-started.sgml
 -      docs/programmers.sgml: update document id tags
 -
 -    * docs.sgml: remove docs.sgml
 -
 -    * RESOURCES
 -      Smarty.class.php: update resources
 -
 -2002-02-28  Andrei Zmievski  <andrei@php.net>
 -
 -    * TESTIMONIALS
 -      docs/appendixes.sgml
 -      docs/designers.sgml
 -      docs/programmers.sgml: *** empty log message ***
 -
 -2002-02-27  Andrei Zmievski  <andrei@php.net>
 -
 -    * plugins/function.eval.php
 -      docs/designers.sgml: *** empty log message ***
 -
 -2002-02-27  Monte Ohrt  <monte@ispi.net>
 -
 -    * plugins/function.eval.php: added eval function to plugin dir
 -
 -2002-02-27  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -2002-02-27  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs/designers.sgml: fix syntax error
 -
 -    * docs/appendixes.sgml
 -      docs/designers.sgml
 -      docs/getting-started.sgml
 -      docs/programmers.sgml: convert technical notes to docbook format
 -
 -    * NEWS
 -      docs/designers.sgml: added "eval" plugin docs
 -
 -2002-02-26  Andrei Zmievski  <andrei@php.net>
 -
 -    * docs/programmers.sgml
 -      docs/designers.sgml
 -      docs/appendixes.sgml
 -      docs/getting-started.sgml
 -      docs/html-common.dsl
 -      docs/.cvsignore: *** empty log message ***
 -
 -    * docs/appendixes.sgml
 -      docs/common.dsl
 -      docs/designers.sgml
 -      docs/getting-started.sgml
 -      docs/html-common.dsl
 -      docs/html.dsl
 -      docs/manual.sgml
 -      docs/preface.sgml
 -      docs/programmers.sgml: Split up docs.
 -
 -2002-02-25  Andrei Zmievski  <andrei@php.net>
 -
 -    * docs.sgml: *** empty log message ***
 -
 -2002-02-22  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml: update docs
 -
 -2002-02-22  Andrei Zmievski  <andrei@php.net>
 -
 -    * docs.sgml
 -      AUTHORS
 -      NEWS: *** empty log message ***
 -
 -2002-02-21  Monte Ohrt  <monte@ispi.net>
 -
 -    * Config_File.class.php
 -      NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      docs.sgml: update misc changes
 -
 -2002-02-21  Andrei Zmievski  <andrei@php.net>
 -
 -    * docs.sgml: *** empty log message ***
 -
 -2002-02-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml: misc updates
 -
 -2002-02-20  Andrei Zmievski  <andrei@php.net>
 -
 -    * docs.sgml: *** empty log message ***
 -
 -    * Smarty.class.php
 -      plugins/function.assign.php
 -      plugins/function.assign_debug_info.php
 -      plugins/function.counter.php
 -      plugins/function.fetch.php
 -      plugins/function.math.php
 -      plugins/function.popup.php
 -      plugins/function.popup_init.php
 -      plugins/modifier.escape.php: Fixup some naming.
 -
 -2002-02-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml: update docs
 -
 -2002-02-20  Andrei Zmievski  <andrei@php.net>
 -
 -    * docs.sgml: *** empty log message ***
 -
 -2002-02-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      docs.sgml
 -      plugins/modifier.escape.php:
 -    removed global vars from fetch function, added attrs to escape modifier
 -
 -    * docs.sgml: add plugin chapter outline
 -
 -2002-02-19  Monte Ohrt  <monte@ispi.net>
 -
 -    * README
 -      RELEASE_NOTES
 -      RESOURCES
 -      Smarty.class.php
 -      docs.sgml
 -      BUGS
 -      FAQ
 -      INSTALL
 -      QUICKSTART: update docs
 -
 -2002-02-19  Andrei Zmievski  <andrei@php.net>
 -
 -    * docs.sgml: Updated resources docs.
 -
 -    * README: *** empty log message ***
 -
 -    * docs.sgml: Updated description of {$smarty} variable.
 -
 -    * BUGS
 -      FAQ
 -      INSTALL
 -      QUICKSTART
 -      RELEASE_NOTES
 -      docs.sgml: Remove PEAR notes.
 -
 -2002-02-18  Andrei Zmievski  <andrei@php.net>
 -
 -    * Config_File.class.php
 -      NEWS: Removed dependency on PEAR.
 -
 -2002-02-18  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      docs.sgml
 -      plugins/function.popup_init.php: add src attribute to popup_init
 -
 -2002-02-15  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php
 -      plugins/modifier.debug_print_var.php
 -      NEWS
 -      Smarty.class.php: Performance enhancements.
 -
 -2002-02-06  Andrei Zmievski  <andrei@php.net>
 -
 -    * plugins/function.html_options.php:
 -    Fix html_options output to be XHTML compatible.
 -
 -2002-02-05  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php: Fix up plugin inclusion.
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php
 -      TODO
 -      plugins/function.html_select_date.php
 -      plugins/function.html_select_time.php
 -      plugins/modifier.date_format.php: Fix plugin directory access.
 -
 -2002-02-04  Andrei Zmievski  <andrei@php.net>
 -
 -    * .cvsignore
 -      Smarty_Compiler.class.php: *** empty log message ***
 -
 -2002-01-31  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -    * Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      TODO
 -      plugins/function.assign.php
 -      plugins/function.assign_debug_info.php
 -      plugins/function.counter.php
 -      plugins/function.fetch.php
 -      plugins/function.html_options.php
 -      plugins/function.html_select_date.php
 -      plugins/function.html_select_time.php
 -      plugins/function.math.php
 -      plugins/function.popup.php
 -      plugins/function.popup_init.php
 -      plugins/modifier.capitalize.php
 -      plugins/modifier.count_characters.php
 -      plugins/modifier.count_paragraphs.php
 -      plugins/modifier.count_sentences.php
 -      plugins/modifier.count_words.php
 -      plugins/modifier.date_format.php
 -      plugins/modifier.debug_print_var.php
 -      plugins/modifier.default.php
 -      plugins/modifier.escape.php
 -      plugins/modifier.lower.php
 -      plugins/modifier.regex_replace.php
 -      plugins/modifier.replace.php
 -      plugins/modifier.spacify.php
 -      plugins/modifier.string_format.php
 -      plugins/modifier.strip_tags.php
 -      plugins/modifier.truncate.php
 -      plugins/modifier.upper.php
 -      plugins/shared.make_timestamp.php
 -      templates/index.tpl
 -      AUTHORS
 -      CREDITS
 -      Config_File.class.php
 -      README: Implemented plugin architecture.
 -
 -    * NEWS: *** empty log message ***
 -
 -2002-01-30  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.addons.php
 -      Smarty.class.php
 -      docs.sgml: added modifiers wordwrap and indent
 -
 -2002-01-28  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php
 -      docs.sgml:
 -    add support for is-modified-since headers, adjust a doc example
 -
 -2002-01-24  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: cleanup formatting
 -
 -    * NEWS
 -      Smarty.class.php
 -      docs.sgml: update ChangeLog, remove insert_tag_check parameter
 -
 -2002-01-24  Andrei Zmievski  <andrei@php.net>
 -
 -    * plugins/standard.plugin.php: *** empty log message ***
 -
 -2002-01-24  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: fix syntax error
 -
 -    * Smarty.class.php: removed unneccesary test from fetch()
 -
 -2002-01-23  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.addons.php: update overlib fixes
 -
 -    * NEWS: update changelog
 -
 -    * FAQ
 -      NEWS
 -      RESOURCES
 -      Smarty.addons.php: updated overlib fixes
 -
 -2001-12-31  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php: Fixed compile_id problem.
 -
 -2001-12-28  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -    fixed problem with using assigned var with include_php filepath
 -
 -2001-12-21  Monte Ohrt  <monte@ispi.net>
 -
 -    * RESOURCES: update RESOURCES
 -
 -2001-12-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ
 -      README: update FAQ
 -
 -2001-12-18  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php
 -      docs.sgml
 -      Config_File.class.php
 -      NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.addons.php
 -      Smarty.class.php: update version numbers
 -
 -2001-12-18  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php: Fixed clear_cache().
 -
 -2001-12-14  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.addons.php:
 -    fixed bug in smarty_make_timestamp introduced in PHP 4.1.0
 -
 -2001-12-13  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      docs.sgml: update default function args, fix cached insert debug timing
 -
 -2001-12-12  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml: fix syntax error in documentation
 -
 -    * Smarty.class.php: update default template handling functionality
 -
 -2001-12-11  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php: update file fetching logic
 -
 -2001-12-11  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php: Added 'script' attribute to {insert..}.
 -
 -2001-12-10  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.class.php: added default template function handler
 -
 -    * Config_File.class.php
 -      NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php: update version numbers in files to 1.5.1
 -
 -2001-12-10  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php: Removed error message from the _read_file() method.
 -
 -    * Smarty.class.php: Fix check for compile and cache IDs.
 -
 -2001-12-06  Monte Ohrt  <monte@ispi.net>
 -
 -    * QUICKSTART: fix spelling error in QUICKSTART
 -
 -    * docs.sgml: fixed spelling errors in documenation
 -
 -    * Smarty_Compiler.class.php
 -      docs.sgml
 -      Config_File.class.php
 -      NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.addons.php
 -      Smarty.class.php: commit 1.5.0 release
 -
 -    * RESOURCES
 -      docs.sgml: added RESOURCES file
 -
 -2001-12-05  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php: Refactor.
 -
 -2001-12-05  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty_Compiler.class.php
 -      docs.sgml: added assign to include and php_include
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php
 -      docs.sgml: *** empty log message ***
 -
 -2001-12-04  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty_Compiler.class.php: Formatting.
 -
 -2001-12-04  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php
 -      NEWS
 -      Smarty.class.php: update ChangeLog
 -
 -2001-12-04  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php: Formatting.
 -
 -2001-12-04  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: removed SMARTY_DIR setting in constructor
 -
 -    * Smarty.class.php: fix Smarty.class.php indention error
 -
 -    * Smarty.class.php: update trusted logic
 -
 -2001-12-03  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php:
 -    fix up is_secure, is_trusted, make _parse_tpl_path function
 -
 -    * Smarty.class.php: fix problem with testing SMARTY_DIR as empty
 -
 -    * NEWS
 -      docs.sgml: update documentation, change log
 -
 -    * Smarty.class.php:
 -    update constructor to check for SMARTY_DIR before assigning
 -
 -2001-12-03  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php: *** empty log message ***
 -
 -2001-12-03  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ
 -      INSTALL
 -      RELEASE_NOTES: update a few files
 -
 -    * NEWS
 -      QUICKSTART
 -      Smarty.class.php
 -      docs.sgml: added trusted_dir functionality, cleaned up secure_dir logic
 -
 -2001-12-03  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -    * NEWS
 -      Smarty.class.php: - Introduced $compile_id class variable.
 -    - Fixed a situation where if $cache_id and $compile_id were both null
 -      they were passed to auto functions as empty string instead of null.
 -
 -2001-11-30  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.class.php:
 -    change variable names in fetch() fuction to smarty_* to avoid namespace conflicts
 -
 -    * NEWS
 -      Smarty.class.php: fixed bug in _rm_auto with catenated null values
 -
 -2001-11-29  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty_Compiler.class.php: Added $smarty.section.* syntax.
 -
 -    * Smarty_Compiler.class.php: Made 'name' attribute optional for {foreach}.
 -
 -2001-11-29  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php
 -      index.php: remove assign "now" in index.tpl
 -
 -2001-11-29  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.addons.php
 -      Smarty.class.php: Fix formatting.
 -
 -2001-11-28  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      docs.sgml:
 -    removed return statements from _read_cache_file (how did they get in there?)
 -
 -2001-11-27  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml
 -      NEWS
 -      Smarty.addons.php
 -      Smarty.class.php:
 -    fixed bugs and added assign attribute to several functions
 -
 -2001-11-27  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: Some rewording.
 -
 -    * Smarty_Compiler.class.php: Fix $smarty.capture access.
 -
 -    * TODO: *** empty log message ***
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -    Made {config_load ..} merge globals from each config file only once per scope.
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php: - Added {foreach ...}.
 -    - Made certain $smarty.* references handled at compilation time.
 -
 -2001-11-26  Monte Ohrt  <monte@ispi.net>
 -
 -    * Config_File.class.php
 -      NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      docs.sgml: commit cache handler functionality
 -
 -2001-11-20  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.addons.php
 -      Smarty_Compiler.class.php: Various fixes and additions.
 -
 -    * NEWS
 -      index.php: *** empty log message ***
 -
 -2001-11-05  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: changed _read_file parameter from $end to $lines
 -
 -    * NEWS
 -      Smarty.class.php: fixed is_cache, make cache reading more efficient
 -
 -2001-11-02  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ
 -      NEWS: update FAQ with mailing list Reply-To header FAQ
 -
 -    * NEWS
 -      Smarty.class.php
 -      index.php: supress fopen errors, return false if cache file won't load
 -
 -2001-11-01  Monte Ohrt  <monte@ispi.net>
 -
 -    * QUICKSTART
 -      docs.sgml
 -      index.php: update QUICKSTART guide with index key example
 -
 -    * Config_File.class.php
 -      NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      docs.sgml: commit all updates for 1.4.6
 -
 -2001-11-01  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -2001-10-30  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.addons.php: fix assign function problem with empty value passed
 -
 -    * NEWS
 -      Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      templates/debug.tpl:
 -    fixed bug in assign function when passing an empty value
 -
 -2001-10-26  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.addons.php
 -      Smarty.class.php
 -      index.php: fix minor typo in debug code
 -
 -2001-10-26  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: Typo.
 -
 -2001-10-26  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.addons.php:
 -    update debug console output, handle html encoding correctly
 -
 -2001-10-26  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.addons.php
 -      templates/debug.tpl: Debug formatting.
 -
 -    * Smarty.class.php: Disable rmdir warning.
 -
 -2001-10-26  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.addons.php
 -      Smarty.class.php
 -      templates/debug.tpl: update debugging to expand array variables
 -
 -    * Smarty.class.php
 -      docs.sgml:
 -    update docs for fetching only timestamp with custom template source functions
 -
 -    * Smarty.addons.php: fix debug console error
 -
 -2001-10-26  Andrei Zmievski  <andrei@php.net>
 -
 -    * docs.sgml: Typos.
 -
 -    * Smarty.addons.php: Cleanup whitespace.
 -
 -    * Smarty_Compiler.class.php: Clean up whitespace.
 -
 -    * Smarty.class.php: Cleaning up code, formatting mostly.
 -
 -    * NEWS: *** empty log message ***
 -
 -2001-10-25  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      docs.sgml: update documentation to current version
 -
 -    * NEWS
 -      Smarty.addons.php:
 -    updated fetch to give proper warning when fetching unreadable or nonexistant files
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -    fixed problem with newline at the end of compiled templates
 -
 -    * NEWS
 -      Smarty.class.php: recompile cache if config file gets modified too.
 -
 -    * NEWS
 -      Smarty.class.php:
 -    added feature to regenerate cache if compile_check is enabled and an
 -    involved template is modified
 -
 -2001-10-23  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: fix indent for insert tags in debug console
 -
 -    * templates/debug.tpl: update debug.tpl file format
 -
 -    * NEWS
 -      Smarty.addons.php
 -      Smarty.class.php
 -      templates/debug.tpl:
 -    update execution time debugging, move into include list
 -
 -2001-10-10  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -    fixed up execution time output in debug console
 -
 -2001-10-09  Andrei Zmievski  <andrei@php.net>
 -
 -    * Config_File.class.php
 -      NEWS
 -      Smarty.class.php
 -      TODO: Added support for hidden config vars.
 -
 -2001-10-04  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.addons.php
 -      Smarty.class.php
 -      templates/debug.tpl: added execution times to debug console
 -
 -2001-10-02  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php: Add space.
 -
 -2001-10-01  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: Fix reference to compile_id.
 -
 -2001-09-28  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php: Added postfilter functions.
 -
 -2001-09-26  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      docs.sgml: Rename to clear_compiled_tpl().
 -
 -2001-09-25  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -    Fixed line number reporting when removing comments.
 -
 -2001-09-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      RELEASE_NOTES
 -      Smarty.addons.php: made html_options output xhtml compatible
 -
 -2001-09-19  Monte Ohrt  <monte@ispi.net>
 -
 -    * Config_File.class.php
 -      NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      templates/debug.tpl: updated version numbers
 -
 -2001-09-16  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ
 -      NEWS
 -      docs.sgml: fix doc error with insert function
 -
 -2001-09-06  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -2001-08-31  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS: update ChangeLog
 -
 -    * overlib.js
 -      Smarty.addons.php
 -      Smarty.class.php
 -      docs.sgml:
 -    update overlib to 3.50, adjust addon code so that the overlib.js file isn't modified
 -
 -2001-08-31  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: - compile_id changes
 -
 -    * NEWS
 -      Smarty.addons.php: - compile_id support
 -    - new options for html_select_date
 -
 -2001-08-23  Andrei Zmievski  <andrei@php.net>
 -
 -    * TODO: *** empty log message ***
 -
 -2001-08-10  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -    Modified to pass Smarty object as second parameter to insert functions.
 -    Also moved _smarty_mod_handler() and _smarty_insert_handler() into the class.
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -    Passing Smarty as second parameter to prefilter functions.
 -
 -2001-08-09  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -2001-08-09  Monte Ohrt  <monte@ispi.net>
 -
 -    * templates/index.tpl
 -      Smarty.class.php: add smarty.now variable to template
 -
 -2001-08-06  Monte Ohrt  <monte@ispi.net>
 -
 -    * templates/index.tpl: change config_load section back to setup
 -
 -2001-08-06  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.addons.php: Optimize a bit.
 -
 -2001-08-04  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml: update capture documentation
 -
 -2001-08-03  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ
 -      NEWS
 -      Smarty.class.php:
 -    fix bug with URL controlled debugging, works now (Monte)
 -
 -2001-08-01  Andrei Zmievski  <andrei@php.net>
 -
 -    * Config_File.class.php: *** empty log message ***
 -
 -    * Smarty_Compiler.class.php
 -      Smarty.class.php: - Fixed some E_NOTICE stuff in compiler.
 -    - Generalized assign_smarty_interface() a bit.
 -
 -2001-07-24  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty_Compiler.class.php
 -      TODO: See ChangeLog for details.
 -
 -2001-07-20  Andrei Zmievski  <andrei@php.net>
 -
 -    * Config_File.class.php: Booleanize case-insensitively.
 -
 -2001-07-17  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS: update ChangeLog
 -
 -    * Smarty.class.php
 -      docs.sgml: put SMARTY_DIR on Config_File require
 -
 -2001-07-11  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml
 -      FAQ
 -      NEWS
 -      Smarty.class.php:
 -    updated security to not include insecure docs, only warning
 -
 -2001-07-10  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: Adding 'sizeof' as an allowed {if} function.
 -
 -2001-07-06  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -2001-07-06  Monte Ohrt  <monte@ispi.net>
 -
 -    * Config_File.class.php
 -      NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php: update version number to 1.4.4
 -
 -    * NEWS
 -      Smarty.addons.php
 -      Smarty_Compiler.class.php
 -      docs.sgml
 -      templates/header.tpl
 -      templates/index.tpl: update documenatation, template examples
 -
 -2001-07-03  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php: Implemented access to request vars via $smarty var.
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -    Fixed a bug with parsing function arguments in {if} tags.
 -
 -2001-06-30  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS: update ChangeLog
 -
 -2001-06-29  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.addons.php
 -      Smarty.class.php
 -      docs.sgml
 -      overlib.js:
 -    moved overlib to separate file, added SMARTY_DIR, documented. added much documentation
 -
 -2001-06-29  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      RELEASE_NOTES
 -      TODO: *** empty log message ***
 -
 -2001-06-29  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.addons.php
 -      Smarty.class.php
 -      docs.sgml
 -      index.php
 -      templates/debug.tpl
 -      templates/header.tpl
 -      templates/index.tpl: update release notes
 -
 -2001-06-27  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php: *** empty log message ***
 -
 -    * NEWS
 -      Smarty_Compiler.class.php: Implemented 'step' section attribute.
 -
 -    * Smarty_Compiler.class.php: Negative values of 'max' will mean no max.
 -
 -    * AUTHORS
 -      NEWS: *** empty log message ***
 -
 -2001-06-26  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      index.php: Added 'max' and 'start' section attributes.
 -    Added 'total' and 'iteration' section properties.
 -
 -2001-06-25  Andrei Zmievski  <andrei@php.net>
 -
 -    * Config_File.class.php
 -      RELEASE_NOTES
 -      Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php: Update version numbers.
 -
 -2001-06-23  Andrei Zmievski  <andrei@php.net>
 -
 -    * TODO: *** empty log message ***
 -
 -2001-06-21  Andrei Zmievski  <andrei@php.net>
 -
 -    * Config_File.class.php
 -      NEWS: Fixed booleanization bug.
 -
 -2001-06-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml:
 -    update documents to reflect changes to cached content & debugging
 -
 -2001-06-20  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.addons.php
 -      Smarty.class.php: Remove debug output for cached and fetched cases.
 -
 -2001-06-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: update include_info to false
 -
 -    * Smarty.class.php
 -      docs.sgml
 -      index.php
 -      templates/footer.tpl:
 -    moved debug logic into Smarty completely, created flags for it
 -
 -2001-06-19  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.addons.php
 -      Smarty.class.php
 -      templates/debug.tpl: *** empty log message ***
 -
 -    * NEWS
 -      Smarty.class.php: Remove unneeded debug functions.
 -
 -2001-06-19  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.addons.php
 -      Smarty.class.php
 -      docs.sgml
 -      templates/debug.tpl
 -      templates/footer.tpl: commit updates, add debug template
 -
 -2001-06-19  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php
 -      TODO:
 -    Moved config loading code inside main class, the compiled template now
 -    simply calls that method.
 -
 -2001-06-15  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      templates/index.tpl: * moved config array into class itself
 -    * added 'scope' attribute for config_load
 -
 -    * Smarty_Compiler.class.php
 -      Smarty.addons.php
 -      Smarty.class.php: Finishing up secure mode.
 -
 -2001-06-15  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS: update ChangeLog
 -
 -    * Smarty_Compiler.class.php: cleaned up logic of if statement security
 -
 -    * Smarty_Compiler.class.php: update if logic to cover more situations
 -
 -    * Smarty_Compiler.class.php
 -      docs.sgml: update if statement security feature
 -
 -2001-06-14  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.addons.php
 -      Smarty.class.php: *** empty log message ***
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -    Fixed a bug with quoted strings inside if statements.
 -
 -2001-06-13  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.addons.php
 -      Smarty.class.php: added secure_dir array for multiple secure directories
 -
 -    * Smarty.addons.php: update fetch funtion to respect security setting
 -
 -    * NEWS
 -      Smarty.addons.php
 -      Smarty.class.php
 -      docs.sgml: update documentation, changelog
 -
 -    * Smarty.addons.php
 -      Smarty.class.php: moved _extract setting to assign functions
 -
 -    * Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -    added assign/unassign custom functions, ability to re-extract tpl_vars
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php
 -      docs.sgml
 -      index.php: commit security features
 -
 -2001-06-11  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: Version variable typo.
 -
 -2001-06-05  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php:
 -    Create config object in fetch() or just set the config path if it already
 -    exists.
 -
 -2001-06-04  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: *** empty log message ***
 -
 -    * NEWS
 -      Smarty_Compiler.class.php:
 -    Fixed a problem with $<number> inside strip tags.
 -
 -2001-05-31  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -    * Config_File.class.php: Allow empty config_path.
 -
 -2001-05-29  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php
 -      docs.sgml
 -      NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.addons.php
 -      Smarty.class.php: update version numbers
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      docs.sgml: moved version variable to internal variable
 -
 -2001-05-22  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php:
 -    Moved $_smarty_sections and $_smarty_conf_obj into Smarty class.
 -
 -2001-05-18  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS: update ChangeLog
 -
 -    * FAQ
 -      QUICKSTART: update FAQ, QUICKSTART for windows include_path setup
 -
 -    * configs/test.conf: added configs directory to cvs
 -
 -2001-05-18  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: Use compiler_class for including the file.
 -
 -2001-05-18  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml: fix typo
 -
 -2001-05-16  Monte Ohrt  <monte@ispi.net>
 -
 -    * README
 -      RELEASE_NOTES
 -      Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php: update files to version 1.4.1
 -
 -    * NEWS: update ChangeLog
 -
 -2001-05-15  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -    * index.php: forget that!
 -
 -    * NEWS
 -      Smarty_Compiler.class.php
 -      index.php: Fixed a few E_NOTICE warnings.
 -
 -2001-05-09  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      RELEASE_NOTES
 -      Smarty.addons.php
 -      Smarty.class.php
 -      docs.sgml: update dates versions
 -
 -2001-05-09  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -    * Smarty.class.php:
 -    Use absolute paths when requiring/including Smart components.
 -
 -    * NEWS: *** empty log message ***
 -
 -    * Smarty.class.php: Use write mode instead of append.
 -
 -2001-05-02  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty_Compiler.class.php: Fix indexing by section properties.
 -
 -2001-05-02  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS: update changelog
 -
 -    * Smarty.class.php: remove period from syntax error
 -
 -2001-05-02  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php: Double-quote the attribute values by default.
 -
 -2001-04-30  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php
 -      NEWS: added simple {capture} logic
 -
 -2001-04-30  Andrei Zmievski  <andrei@php.net>
 -
 -    * TODO: *** empty log message ***
 -
 -    * Smarty_Compiler.class.php
 -      Smarty.class.php: Fix passing config vars to included files.
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php: Fix inclusion again.
 -
 -2001-04-30  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ
 -      RELEASE_NOTES
 -      Smarty.class.php
 -      misc/fix_vars.php
 -      NEWS: update paths for windows (c:)
 -
 -2001-04-28  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php: Fix passing variables to included files.
 -
 -    * templates/index.tpl: *** empty log message ***
 -
 -2001-04-27  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php: Fix includes.
 -
 -2001-04-26  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php
 -      docs.sgml
 -      Smarty.class.php: Formatting mostly.
 -
 -    * Smarty_Compiler.class.php
 -      Config_File.class.php: *** empty log message ***
 -
 -2001-04-26  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php
 -      docs.sgml
 -      FAQ
 -      NEWS
 -      QUICKSTART
 -      RELEASE_NOTES
 -      Smarty.class.php: update docs with new changes
 -
 -2001-04-26  Andrei Zmievski  <andrei@php.net>
 -
 -    * RELEASE_NOTES: *** empty log message ***
 -
 -    * docs.sgml
 -      templates/index.tpl
 -      NEWS
 -      Smarty_Compiler.class.php: Added ability to reference object properties.
 -
 -2001-04-25  Andrei Zmievski  <andrei@php.net>
 -
 -    * README
 -      Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      docs.sgml
 -      AUTHORS
 -      Config_File.class.php
 -      CREDITS
 -      RELEASE_NOTES
 -      NEWS: *** empty log message ***
 -
 -    * docs.sgml: Docs on new parameter to custom functions.
 -
 -    * NEWS: *** empty log message ***
 -
 -    * Smarty_Compiler.class.php:
 -    Changing the way tpl vars are referenced and passing smarty object
 -    to custom functions.
 -
 -    * RELEASE_NOTES
 -      docs.sgml: Fixing docs a bit.
 -
 -2001-04-24  Andrei Zmievski  <andrei@php.net>
 -
 -    * docs.sgml: Docs for $compiler_class and compiler functions.
 -
 -    * templates/index.tpl: *** empty log message ***
 -
 -    * Smarty_Compiler.class.php: Remove debugging.
 -
 -2001-04-24  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml: update compiler function docs
 -
 -2001-04-24  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      templates/index.tpl: Added compiler function support.
 -
 -2001-04-24  Monte Ohrt  <monte@ispi.net>
 -
 -    * RELEASE_NOTES
 -      Smarty.class.php:
 -    update notes, change show_info_header to false by default
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php
 -      docs.sgml
 -      CREDITS
 -      FAQ
 -      NEWS
 -      README
 -      RELEASE_NOTES: update documenation, bug fixes
 -
 -2001-04-24  Andrei Zmievski  <andrei@php.net>
 -
 -    * misc/fix_vars.php: Hopefully fix for sure.
 -
 -2001-04-23  Monte Ohrt  <monte@ispi.net>
 -
 -    * misc/fix_vars.php: uncomment copy/unlink
 -
 -2001-04-23  Andrei Zmievski  <andrei@php.net>
 -
 -    * misc/fix_vars.php: Do it more thoroughly.
 -
 -    * misc/fix_vars.php: check for }
 -
 -2001-04-22  Andrei Zmievski  <andrei@php.net>
 -
 -    * misc/fix_vars.php: Fix variable parsing.
 -
 -2001-04-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * misc/fix_vars.php: fix problem with 4.0.5-dev and preg_replace_callback
 -
 -2001-04-19  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php
 -      docs.sgml
 -      misc/fix_vars.php
 -      NEWS
 -      RELEASE_NOTES
 -      Smarty.class.php: update notes/documentation
 -
 -    * NEWS
 -      README
 -      RELEASE_NOTES
 -      Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      docs.sgml: update files for 1.4.0 release
 -
 -2001-04-16  Andrei Zmievski  <andrei@php.net>
 -
 -    * misc/fix_vars.php: Added fix_vars.php script.
 -
 -2001-04-16  Monte Ohrt  <monte@ispi.net>
 -
 -    * QUICKSTART
 -      RELEASE_NOTES
 -      docs.sgml
 -      templates/index.tpl:
 -    update RELEASE_NOTES & scripts with new section var syntax
 -
 -2001-04-13  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php: * Implement new variable format parser.
 -    * Optimizing config load a bit.
 -
 -2001-04-13  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ
 -      NEWS
 -      RELEASE_NOTES
 -      Smarty.class.php:
 -    added $check_cached_insert_tags to speed up cached pages if
 -          {insert ...} is not used (Monte)
 -
 -2001-04-12  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      RELEASE_NOTES: *** empty log message ***
 -
 -    * Smarty_Compiler.class.php: Remove redundant functions.
 -
 -    * Smarty.class.php: Formatting.
 -
 -2001-04-12  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: update file: parsing
 -
 -    * Smarty.class.php
 -      docs.sgml: update documentation
 -
 -2001-04-12  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php
 -      TODO: *** empty log message ***
 -
 -2001-04-11  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ
 -      QUICKSTART
 -      RELEASE_NOTES: added RELEASE_NOTES file to cvs
 -
 -    * NEWS
 -      docs.sgml: update ChangeLog, update documentation
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php
 -      templates/index.tpl:
 -    update Smarty to compile at run-time. added ability to get files from
 -    absolute paths, added work around for LOCK_EX and windows, changed a few
 -    file permissions to be more secure.
 -
 -2001-03-29  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.addons.php:
 -    allow arbitrary date strings instead of just timestamps
 -
 -2001-03-28  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php
 -      docs.sgml
 -      FAQ
 -      NEWS
 -      README
 -      Smarty.addons.php:
 -    update version in class, update docs for count_ and new vars
 -
 -    * templates/index.tpl
 -      docs.sgml: update docs, example template
 -
 -2001-03-28  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php: Some variable renaming.
 -
 -2001-03-23  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php
 -      NEWS: Fixed nested include infinite repeat bug.
 -
 -2001-03-23  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: fix version number
 -
 -    * Smarty.class.php
 -      NEWS: added optional HTML header to output
 -
 -2001-03-22  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php: Fixed inclusion of dynamic files.
 -
 -2001-03-16  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty_Compiler.class.php: Fixing the config_load scoping.
 -
 -    * Smarty_Compiler.class.php: making config variables global for now.
 -
 -2001-03-15  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -    * Smarty_Compiler.class.php:
 -    * Includes are now always done via generated function call to protect
 -      namespace.
 -    * config_load now always uses global config object to improve
 -      performance.
 -
 -2001-03-13  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml: update math documentation with format attribute
 -
 -2001-03-11  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml
 -      NEWS
 -      Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php: update math function with format attribute
 -
 -2001-03-10  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.addons.php: *** empty log message ***
 -
 -    * NEWS
 -      Smarty.addons.php
 -      Smarty.class.php: Added html_select_time custom function.
 -
 -2001-03-08  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php
 -      NEWS
 -      README
 -      Smarty.addons.php: rename 1.3.1b to 1.3.1pl1
 -
 -    * NEWS
 -      Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php: update version numbers, changelog
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php:
 -    moved _syntax_error to Smarty_Compiler.class.php
 -
 -    * Smarty.class.php
 -      docs.sgml:
 -    missing _syntax_error function recovered. fixed minor syntax in docs
 -
 -2001-03-07  Monte Ohrt  <monte@ispi.net>
 -
 -    * QUICKSTART
 -      README
 -      Smarty.addons.php
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      BUGS
 -      INSTALL
 -      NEWS: update everything to 1.3.1
 -
 -2001-03-03  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty_Compiler.class.php
 -      Smarty.class.php: fixed bug with cached insert tags
 -
 -2001-03-02  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php
 -      Smarty_Compiler.class.php:
 -    fix cache fuctions with separated compiled class
 -
 -    * FAQ
 -      NEWS
 -      docs.sgml: update changelog
 -
 -2001-03-02  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty_Compiler.class.php: Added 'first' and 'last' section properties.
 -
 -2001-03-02  Monte Ohrt  <monte@ispi.net>
 -
 -    * TODO: remove compiling separation TODO
 -
 -    * Smarty_Compiler.class.php
 -      Smarty.addons.php
 -      Smarty.class.php: update function headers
 -
 -    * templates/index.tpl
 -      NEWS
 -      Smarty.class.php
 -      Smarty_Compiler.class.php
 -      index.php: split out compiling code for faster execution
 -
 -    * Smarty.class.php: fixed a few warning messages
 -
 -    * Smarty.addons.php
 -      Smarty.class.php
 -      docs.sgml
 -      NEWS: added fetch, unregister mod/fun, updated docs
 -
 -2001-03-01  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.addons.php: added "int" to available list
 -
 -    * docs.sgml
 -      FAQ
 -      Smarty.class.php: update FAQ, add math functions & update documetation
 -
 -    * index.php
 -      Smarty.addons.php
 -      Smarty.class.php
 -      docs.sgml: fixed literal tags and other optional delimiters
 -
 -2001-02-26  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php:
 -    Added index_prev, index_next section properties and ability to
 -    index by them.
 -
 -    * NEWS
 -      Smarty.addons.php
 -      Smarty.class.php: Reverting the plugins patch - needs more thought.
 -
 -    * Smarty.class.php: Fixing plugin loading.
 -
 -2001-02-23  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.addons.php
 -      Smarty.class.php
 -      plugins/standard.plugin.php
 -      NEWS: Added plugin functionality.
 -
 -2001-02-22  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml
 -      templates/index.tpl
 -      NEWS
 -      README
 -      Smarty.class.php: fixed issue with php tags executed in literal blocks
 -
 -2001-02-21  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS: update changelog for LGPL change
 -
 -    * Smarty.class.php
 -      docs.sgml
 -      README
 -      Smarty.addons.php: updated version numbers to 1.3.0
 -
 -    * NEWS
 -      templates/index.tpl: update changelog, rearrange index.tpl file
 -
 -2001-02-21  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php: *** empty log message ***
 -
 -2001-02-21  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml: update parameters for is_cached and fetch
 -
 -2001-02-21  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php: *** empty log message ***
 -
 -2001-02-21  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS
 -      Smarty.addons.php
 -      docs.sgml: update docs, remove header function from addons
 -
 -2001-02-20  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ
 -      NEWS: update changelog
 -
 -    * TODO: update todo
 -
 -    * TODO: update todo list
 -
 -    * Smarty.class.php: update php tag handling logic
 -
 -2001-02-19  Monte Ohrt  <monte@ispi.net>
 -
 -    * index.php
 -      Config_File.class.php
 -      FAQ
 -      Smarty.class.php
 -      docs.sgml: fixed <?php tag at beginning of files, updated docs
 -
 -2001-02-19  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.addons.php: *** empty log message ***
 -
 -2001-02-13  Andrei Zmievski  <andrei@php.net>
 -
 -    * TODO: *** empty log message ***
 -
 -2001-02-12  Andrei Zmievski  <andrei@php.net>
 -
 -    * templates/index.tpl
 -      Smarty.class.php: *** empty log message ***
 -
 -2001-02-10  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: remove  unneeded preg_match
 -
 -    * Smarty.class.php: remove comment
 -
 -    * Smarty.class.php: updated php escape to handle <script language="php">
 -
 -    * NEWS
 -      Smarty.class.php: fix php tag escapement logic
 -
 -    * NEWS: commit changelog
 -
 -    * docs.sgml: update header docs
 -
 -    * docs.sgml
 -      Smarty.addons.php
 -      Smarty.class.php: added header custom function
 -
 -2001-02-09  Monte Ohrt  <monte@ispi.net>
 -
 -    * index.php
 -      templates/header.tpl
 -      templates/index.tpl
 -      INSTALL
 -      QUICKSTART
 -      docs.sgml: update documentation, add examples to test script.
 -
 -2001-02-08  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: *** empty log message ***
 -
 -2001-02-08  Monte Ohrt  <monte@ispi.net>
 -
 -    * COPYING.lib: added COPYING.lib
 -
 -    * COPYING
 -      Config_File.class.php
 -      Smarty.addons.php
 -      Smarty.class.php
 -      docs.sgml: changed license to LGPL for commercial use
 -
 -    * docs.sgml
 -      Smarty.class.php: fix clear_assign syntax error
 -
 -2001-02-07  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: added ability to pass array to clear_assign
 -
 -    * index.php
 -      templates/index.tpl
 -      docs.sgml:
 -    update documentation, remove tests from index file and template
 -
 -2001-02-07  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php: Adding file locking.
 -
 -    * templates/index.tpl
 -      Smarty.addons.php
 -      Smarty.class.php
 -      index.php: More cache work.
 -
 -2001-02-06  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml
 -      Smarty.class.php:
 -    change register_ function names, update documents with tables
 -
 -2001-02-06  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      templates/index.tpl: Reworking and optimizing the cache system.
 -
 -    * Smarty.class.php: Restoring ?> in patterns.
 -
 -2001-02-05  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php
 -      docs.sgml: update cache directory creation logic
 -
 -2001-02-05  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: Removing once-only subpattern for now..
 -
 -    * Smarty.class.php: Fix modifier arg parsing.
 -
 -2001-02-02  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      Smarty.class.php
 -      templates/index.tpl: See changelog.
 -
 -2001-02-01  Andrei Zmievski  <andrei@php.net>
 -
 -    * README: *** empty log message ***
 -
 -    * Smarty.class.php: Use 'echo' instead of 'print'.
 -
 -    * Smarty.addons.php: *** empty log message ***
 -
 -2001-02-01  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: rearranged variables at top of script
 -
 -2001-02-01  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: Retabbing.
 -
 -    * templates/index.tpl
 -      Smarty.class.php
 -      index.php: *** empty log message ***
 -
 -2001-02-01  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: update caching logic
 -
 -    * Smarty.class.php: fixed clear_all_cache bugs
 -
 -    * Smarty.class.php: fix .cache check
 -
 -    * docs.sgml
 -      FAQ
 -      Smarty.class.php: update .che to .cache
 -
 -    * FAQ
 -      Smarty.class.php
 -      docs.sgml: updated docs for caching, added clear_all_cache() directive
 -
 -2001-01-31  Monte Ohrt  <monte@ispi.net>
 -
 -    * index.php
 -      templates/index.tpl
 -      docs.sgml: upated docs for date_format and html_options
 -
 -2001-01-31  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -    * Smarty.addons.php
 -      index.php: Added ability to pass 'options' attribute to html_options.
 -
 -    * Smarty.addons.php
 -      Smarty.class.php
 -      docs.sgml
 -      index.php
 -      templates/index.tpl
 -      Config_File.class.php
 -      NEWS
 -      README: Reworking, simplifying, and speeding up cache implementation.
 -    Fixing the infelicity where you couldn't have '|' and ':' inside
 -    quoted modifier arguments.
 -
 -2001-01-31  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php
 -      index.php
 -      templates/index.tpl: removed DEBUG lines
 -
 -2001-01-30  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: changed default expire to 3600
 -
 -    * Config_File.class.php
 -      NEWS
 -      README
 -      Smarty.addons.php
 -      Smarty.class.php: updated version numbers
 -
 -    * docs.sgml
 -      NEWS
 -      Smarty.class.php:
 -    added caching, force compile, force cache, misc performance updates
 -
 -2001-01-30  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS: *** empty log message ***
 -
 -    * Smarty.class.php
 -      templates/index.tpl: Remove debug message.
 -
 -    * Smarty.class.php
 -      templates/index.tpl: Fixing the compile directory mayhem...
 -
 -    * Smarty.class.php:
 -    Fix problem with {strip} around {section} and {include}
 -
 -    * Smarty.addons.php: *** empty log message ***
 -
 -2001-01-29  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ
 -      NEWS
 -      README
 -      Smarty.class.php: fixed PHP_VERSION check, misc doc updates
 -
 -    * index.php
 -      Config_File.class.php
 -      NEWS
 -      QUICKSTART
 -      README
 -      Smarty.addons.php
 -      Smarty.class.php
 -      docs.sgml: updated for 1.2.1 compile_dir changes, misc doc updates
 -
 -2001-01-26  Monte Ohrt  <monte@ispi.net>
 -
 -    * BUGS
 -      README: update BUGS and README files
 -
 -    * FAQ: updated FAQ
 -
 -    * Config_File.class.php
 -      FAQ
 -      NEWS
 -      README
 -      Smarty.addons.php
 -      docs.sgml
 -      templates/index.tpl
 -      AUTHORS: update again
 -
 -2001-01-26  Andrei Zmievski  <andrei@php.net>
 -
 -    * docs.sgml
 -      NEWS
 -      README
 -      Smarty.class.php
 -      templates/index.tpl: *** empty log message ***
 -
 -    * Smarty.class.php
 -      index.php
 -      templates/index.tpl: Added ability to index by key.
 -
 -2001-01-25  Monte Ohrt  <monte@ispi.net>
 -
 -    * NEWS: update changelog
 -
 -    * README
 -      Smarty.addons.php
 -      Smarty.class.php
 -      docs.sgml
 -      AUTHORS: updated versions to 1.1.0
 -
 -    * docs.sgml
 -      templates/index.tpl
 -      Config_File.class.php
 -      Smarty.addons.php
 -      Smarty.class.php: update copyright notice
 -
 -    * Config_File.class.php
 -      Smarty.addons.php
 -      Smarty.class.php
 -      docs.sgml: added misc info
 -
 -2001-01-24  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.addons.php
 -      index.php
 -      templates/index.tpl
 -      Config_File.class.php: initial commit
 -
 -2001-01-23  Monte Ohrt  <monte@ispi.net>
 -
 -    * docs.sgml: fix typo
 -
 -2001-01-22  Monte Ohrt  <monte@ispi.net>
 -
 -    * doc.sgm
 -      docs.sgml: updated docs, renamed file
 -
 -    * FAQ: updated FAQ
 -
 -    * NEWS
 -      README: updated Changelog and Readme
 -
 -    * doc.sgm: updated doc.sgm error
 -
 -    * AUTHORS
 -      COPYING
 -      INSTALL
 -      NEWS
 -      QUICKSTART: misc doc changes, added AUTHORS, COPYING
 -
 -2001-01-22  Andrei Zmievski  <andrei@php.net>
 -
 -    * NEWS
 -      templates/index.tpl: *** empty log message ***
 -
 -    * Smarty.class.php
 -      templates/index.tpl:
 -    Fixed bug that wouldn't let you do specify non-array values for 'loop'
 -    attribute.
 -
 -2001-01-22  Monte Ohrt  <monte@ispi.net>
 -
 -    * QUICKSTART: updated QUICKSTART
 -
 -    * BUGS
 -      FAQ
 -      INSTALL
 -      README
 -      doc.sgm: added BUGS and INSTALL, updated docs, FAQ, README
 -
 -2001-01-21  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ
 -      doc.sgm: updates to FAQ and docs
 -
 -2001-01-19  Monte Ohrt  <monte@ispi.net>
 -
 -    * FAQ: initial commit of FAQ
 -
 -    * QUICKSTART
 -      README
 -      doc.sgm
 -      index.php:
 -    updated README, doc.sgm with preg_replace() parameter issue. also removed "./" from index.php file
 -
 -    * NEWS: initial commit of changelog
 -
 -    * doc.sgm
 -      QUICKSTART: update quickstart text
 -
 -2001-01-19  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: Fix the compiled template check.
 -
 -2001-01-18  Andrei Zmievski  <andrei@php.net>
 -
 -    * doc.sgm: *** empty log message ***
 -
 -2001-01-18  Monte Ohrt  <monte@ispi.net>
 -
 -    * index.php
 -      templates/index.tpl
 -      QUICKSTART
 -      Smarty.addons.php
 -      Smarty.class.php
 -      doc.sgm: update changes
 -
 -2001-01-18  Andrei Zmievski  <andrei@php.net>
 -
 -    * QUICKSTART
 -      Smarty.addons.php: *** empty log message ***
 -
 -2001-01-18  Monte Ohrt  <monte@ispi.net>
 -
 -    * QUICKSTART
 -      doc.sgm: add QUICKSTART, update docs for default modifier
 -
 -    * Smarty.addons.php
 -      Smarty.class.php: added default modifier
 -
 -    * README
 -      Smarty.addons.php
 -      Smarty.class.php
 -      doc.sgm
 -      templates/index.tpl: added dislaimers
 -
 -2001-01-18  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: *** empty log message ***
 -
 -2001-01-16  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php
 -      templates/index.tpl: Implement 'div by'.
 -
 -2001-01-12  Monte Ohrt  <monte@ispi.net>
 -
 -    * doc.sgm: update docs
 -
 -    * doc.sgm: doc changes
 -
 -    * doc.sgm: update docs
 -
 -2001-01-12  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php
 -      doc.sgm: *** empty log message ***
 -
 -    * Smarty.class.php: Fix template traversal.
 -
 -2001-01-11  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: *** empty log message ***
 -
 -2001-01-09  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.addons.php
 -      Smarty.class.php: *** empty log message ***
 -
 -2001-01-09  Monte Ohrt  <monte@ispi.net>
 -
 -    * doc.sgm: update manual
 -
 -2001-01-05  Monte Ohrt  <monte@ispi.net>
 -
 -    * doc.sgm
 -      Smarty.addons.php: commit changes
 -
 -2001-01-04  Monte Ohrt  <monte@ispi.net>
 -
 -    * doc.sgm
 -      templates/index.tpl
 -      Smarty.class.php: update changes
 -
 -    * index.php
 -      Smarty.addons.php
 -      doc.sgm: add documentation
 -
 -2001-01-02  Monte Ohrt  <monte@ispi.net>
 -
 -    * index.php
 -      templates/index.tpl
 -      Smarty.addons.php
 -      Smarty.class.php: prepend insert_ to insert tag functions
 -
 -    * Smarty.class.php
 -      index.php
 -      templates/index.tpl: remove caching logic
 -
 -    * README
 -      Smarty.class.php
 -      index.php
 -      templates/index.tpl: update changes
 -
 -2000-12-27  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php
 -      templates/header.tpl
 -      templates/index.tpl
 -      Smarty.addons.php: *** empty log message ***
 -
 -2000-12-21  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php: Fix access to template variables.
 -
 -    * Smarty.class.php
 -      templates/header.tpl:
 -    Added support for passing variables to included files.
 -
 -2000-12-20  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php:
 -    Added support for inserting results of function processing a template.
 -
 -2000-12-18  Monte Ohrt  <monte@ispi.net>
 -
 -    * Smarty.class.php: added string_format function
 -
 -    * Smarty.addons.php: update format to string_format
 -
 -    * README
 -      Smarty.addons.php
 -      Smarty.class.php: added format addon function
 -
 -2000-12-13  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.addons.php
 -      Smarty.class.php: Fix sectionelse.
 -
 -2000-12-07  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.addons.php
 -      Smarty.class.php
 -      templates/index.tpl: *** empty log message ***
 -
 -2000-12-04  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php
 -      templates/index.tpl
 -      Smarty.addons.php: *** empty log message ***
 -
 -2000-11-27  Andrei Zmievski  <andrei@php.net>
 -
 -    * templates/index.tpl
 -      Smarty.class.php: *** empty log message ***
 -
 -2000-11-22  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php
 -      templates/index.tpl: *** empty log message ***
 -
 -2000-11-21  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php
 -      templates/index.tpl
 -      Smarty.addons.php: *** empty log message ***
 -
 -2000-11-20  Andrei Zmievski  <andrei@php.net>
 -
 -    * templates/index.tpl
 -      Smarty.class.php
 -      Smarty.addons.php
 -      index.php: *** empty log message ***
 -
 -    * Smarty.class.php
 -      index.php
 -      templates/index.tpl: Made sections work mostly.
 -
 -2000-11-19  Andrei Zmievski  <andrei@php.net>
 -
 -    * index.php
 -      templates/index.tpl: *** empty log message ***
 -
 -2000-11-17  Andrei Zmievski  <andrei@php.net>
 -
 -    * Smarty.class.php
 -      Smarty.addons.php: *** empty log message ***
 -
 -2000-11-15  Monte Ohrt  <monte@ispi.net>
 -
 -    * index.php
 -      templates/footer.tpl
 -      templates/header.tpl
 -      templates/index.tpl: added template files to cvs dir
 -
 -    * README
 -      Smarty.class.php: commit changes
 -
 -2000-08-08  Monte Ohrt  <monte@ispi.net>
 -
 -    * README
 -      Smarty.class.php: update include path bug
 -
 -    * README: add README file
 -
 -    * Smarty.class.php: New file.
 -
 -    * Smarty.class.php: initial import
 -
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/FAQ b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/FAQ deleted file mode 100644 index b82d39cf..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/FAQ +++ /dev/null @@ -1,284 +0,0 @@ -QUESTION INDEX
 ---------------
 -
 -GENERAL
 -
 -Q: What is Smarty?
 -Q: What's the difference between Smarty and other template engines?
 -Q: What do you mean "Compiled PHP Scripts" ?
 -Q: Why can't I just use PHPA (http://php-accelerator.co.uk) or Zend Cache?
 -Q: Why does smarty have a built in cache? Wouldn't it be better to handle this
 -   in a separate class?
 -Q: Is Smarty faster than <insert other PHP template engine>?
 -Q: How can I be sure to get the best performance from Smarty?
 -Q: Do you have a mailing list?
 -Q: Can you change the mailing list so reply-to sends to the list and not the
 -   user?
 -
 -TROUBLESHOOTING
 -
 -Q: Smarty doesn't work.
 -Q: I get the following error when running Smarty:
 -   Warning:  Smarty error: problem creating directory "templates_c/239/239105369"
 -   in /path/to/Smarty.class.php on line 542
 -Q: I get the following error when running Smarty:
 -   Warning: Wrong parameter count for preg_replace() in
 -   Smarty.class.php on line 371
 -Q: I get this error when passing variables to {include}:
 -   Fatal error: Call to undefined function: get_defined_vars() in
 -   /path/to/Smarty/templates_c/index.tpl.php on line 8
 -Q: I get PHP errors in my {if} tag logic.
 -Q: I'm changing my php code and/or templates, and my results are not getting
 -   updated.
 -Q: I'm running Windows 2000 and I get blank content. My compiled PHP files are
 -   also zero length.
 -Q: The template goes into an infinite loop when I include included templates
 -   that pass local variables
 -Q: Javascript is causing Smarty errors in my templates.
 -Q: I get "SAFE MODE Restriction in effect. ..."-errors when running smarty.
 -
 -MISC
 -
 -Q: Can I use Macromedia's Dreamweaver to edit my templates?
 -Q: Dreamweaver is urlencoding the template delimiters when they are in a SRC or
 -   HREF link. How do I get around this?
 -
 -HOWTO
 -
 -Q: How do I generate different cache files per template based on arguments
 -   passed to the page?
 -Q: How do I pass a template variable as a parameter? {function param={$varname}}
 -   does not work.
 -Q: How do I include cached template(s) within a non-cached template?
 -
 -
 -GENERAL
 --------
 -
 -Q: What is Smarty?
 -A: Smarty is a template engine for PHP... but be aware this isn't just another
 -   PHP template engine. It's much more than that.
 -
 -Q: What's the difference between Smarty and other template engines?
 -A: Most other template engines for PHP provide basic variable substitution and
 -   dynamic block functionality. Smarty takes a step further to be a "smart"
 -   template engine, adding features such as configuration files, template
 -   functions, variable modifiers (see the docs!) and making all of this
 -   functionality as easy as possible to use for both programmers and template
 -   designers. Smarty also compiles the templates into PHP scripts, eliminating
 -   the need to parse the templates on every invocation, making Smarty extremely
 -   scalable and manageable for large application needs.
 -
 -Q: What do you mean "Compiled PHP Scripts" ?
 -A: Smarty reads the template files and creates PHP scripts from them. Once
 -   these PHP scripts are created, Smarty executes these, never having to parse
 -   the template files again. If you change a template file, Smarty will
 -   recreate the PHP script for it. All this is done automatically by Smarty.
 -   Template designers never need to mess with the generated PHP scripts or even
 -   know of their existance. (NOTE: you can turn off this compile checking step
 -   in Smarty for increased performance.)
 -
 -Q: Why can't I just use PHPA (http://php-accelerator.co.uk) or Zend Cache?
 -A: You certainly can, and we highly recommend it! What PHPA does is caches
 -   compiled bytecode of your PHP scripts in shared memory or in a file. This
 -   speeds up server response and saves the compilation step. Smarty creates PHP
 -   scripts, which PHPA will cache nicely. Now, Smarty's built-in cache is
 -   something completely different. It caches the _output_ of the template
 -   contents. For example, if you have a template that requires several database
 -   queries, Smarty can cache this output, saving the need to call the database
 -   every time. Smarty and PHPA (or Zend Cache) complement each other nicely. If
 -   performance is of the utmost importance, we would recommend using one of
 -   these with any PHP application, using Smarty or not. As you can see in the
 -   benchmarks, Smartys performance _really_ excels in combination with a PHP
 -   accelerator.
 -
 -Q: Why does Smarty have a built in cache? Wouldn't it be better to handle this
 -   in a separate class?
 -A: Smarty's caching functionality is tightly integrated with the template
 -   engine, making it quite a bit more flexible than a simple caching wrapper.
 -   For instance, you can cache select portions of a template page. Let's say
 -   you have a polling box on your site. With Smarty, you can leave the poll
 -   dynamic and cache the rest of the page. You can also pass templates
 -   multiple cache ids, meaning that a template can have several caches
 -   depending on URL, cookies, etc.
 -
 -Q: Is Smarty faster than <insert other PHP template engine>?
 -A: See the benchmark page for some performance comparisons. Smarty's approach
 -   to templates is a bit different from some languages: it compiles templates
 -   into PHP scripts instead of parsing them on each invocation. This usually
 -   results in great performance gains, especially with complex templates.
 -   Coupled with the built-in caching of Smarty templates, the performance is
 -   outstanding.
 -
 -Q: How can I be sure to get the best performance from Smarty?
 -A: Be sure you set $compile_check=false once your templates are initially
 -   compiled. This will skip the unneeded step of testing if the template has
 -   changed since it was last compiled. If you have complex pages that don't
 -   change too often, turn on the caching engine and adjust your application so
 -   it doesn't do unnecessary work (like db calls) if a cached page is
 -   available. See the documentation for examples.
 -   
 -Q: Do you have a mailing list?
 -A:  We have a few mailing lists. "general" for you to share your ideas or ask
 -	questions, "dev" for those interested in the development efforts of Smarty,
 -	and "cvs" for those that would like to track the updates made in the cvs
 -	repository.
 -
 -    send a blank e-mail message to:
 -      smarty-general-subscribe@lists.php.net (subscribe to the general list)
 -      smarty-general-unsubscribe@lists.php.net (unsubscribe from the general list)
 -      smarty-general-digest-subscribe@lists.php.net (subscribe to digest)
 -      smarty-general-digest-unsubscribe@lists.php.net (unsubscribe from digest)
 -      smarty-dev-subscribe@lists.php.net (subscribe to the dev list)
 -      smarty-dev-unsubscribe@lists.php.net (unsubscribe from the dev list)
 -      smarty-cvs-subscribe@lists.php.net (subscribe to the cvs list)
 -      smarty-cvs-unsubscribe@lists.php.net (unsubscribe from the cvs list)
 -    You can also browse the mailing list archives at
 -    http://marc.theaimsgroup.com/?l=smarty&r=1&w=2
 -
 -
 -
 -Q: Can you change the mailing list so Reply-To sends to the list and not the
 -   user?
 -A: Yes we could, but no we won't. Use "Reply-All" in your e-mail client to send
 -   to the list. http://www.unicom.com/pw/reply-to-harmful.html
 -
 -TROUBLESHOOTING
 ----------------
 -
 -Q: Smarty doesn't work.
 -A: You must be using PHP 4.0.6 or later if you use any version of Smarty
 -   past 2.0.1. Read the BUGS file for more info.
 -
 -Q: I get the following error when running Smarty:
 -   Warning:  Smarty error: problem creating directory "templates_c/239/239105369"
 -   in /path/to/Smarty.class.php on line 542
 -A: Your web server user does not have permission to write to the templates_c
 -   directory, or is unable to create the templates_c directory. Be sure the
 -   templates_c directory exists in the location defined in Smarty.class.php,
 -   and the web server user can write to it. If you do not know the web server
 -   user, chmod 777 the templates_c directory, reload the page, then check the
 -   file ownership of the files created in templates_c. Or, you can check the
 -   httpd.conf (usually in /usr/local/apache/conf) file for this setting:
 -   User nobody
 -   Group nobody
 -
 -Q: I get the following error when running Smarty: Warning: Wrong parameter
 -   count for preg_replace() in Smarty.class.php on line 371
 -A: preg_replace had a parameter added in PHP 4.0.2 that Smarty
 -   requires. Upgrade to at least 4.0.6 to fix all known PHP issues with
 -   Smarty.
 -
 -Q: I get this error when passing variables to {include}:
 -   Fatal error: Call to undefined function: get_defined_vars() in
 -   /path/to/Smarty/templates_c/index.tpl.php on line 8
 -A: get_defined_vars() was added to PHP 4.0.4. If you plan on passing
 -   variables to included templates, you will need PHP 4.0.6 or later.
 -
 -Q: I get PHP errors in my {if} tag logic.
 -A: All conditional qualifiers must be separated by spaces. This syntax will not
 -   work: {if $name=="Wilma"} You must instead do this: {if $name == "Wilma"}.
 -   The reason for this is syntax ambiguity. Both "==" and "eq" are equivalent
 -   in the template parser, so something like {if $nameeq"Wilma"} wouldn't be
 -   parsable by the tokenizer.
 -
 -Q: I'm changing my php code and/or templates, and my results are not getting
 -   updated.
 -A: This may be the result of your compile or cache settings. If you are
 -   changing your php code, your templates will not necessarily get recompiled
 -   to reflect the changes. Use $force_compile during develpment to avoid these
 -   situations. Also turn off caching during development when you aren't
 -   specifically testing it. You can also remove everything from your
 -   compile_dir and cache_dir and reload the page to be sure everything gets
 -   regenerated.
 -
 -Q: I'm running Windows 2000 and I get blank content. My compiled PHP files are
 -   also zero length.
 -A: There seems to be a problem with some W2k machines and exclusive file
 -   locking. Comment out the flock() call in _write_file to get around this,
 -   although be aware this could possibly cause a problem with simultaneous
 -   writes to a file, especially with caching turned on. NOTE: As of Smarty
 -   1.4.0, a workaround was put in place that should solve this.
 -
 -Q: The template goes into an infinite loop when I include included templates
 -   that pass local variables
 -A: This was fixed in 1.3.2 (new global attribute)
 -
 -Q: Javascript is causing Smarty errors in my templates.
 -A: Surround your javascript with {literal}{/literal} tags. See the docs.
 -
 -Q: I get "SAFE MODE Restriction in effect. ..."-errors when running smarty.
 -A: Use $smarty->use_sub_dirs = false when running php in safe mode.
 -
 -MISC
 -----
 -
 -Q: Can I use Macromedia's Dreamweaver to edit my templates?
 -A: Certainly. You might want to change your tag delimiters from {} to something
 -   that resembles valid HTML, like <!--{ }--> or <{ }> or something similar.
 -   This way the editor won't view the template tags as errors.
 -
 -Q: Dreamweaver is urlencoding the template delimiters when they are in a SRC or
 -   HREF link. How do I get around this?
 -A: In Edit - Properties - Rewrite HTML you can specify if Dreamweaver should
 -   change special letters to %-equivalent or not. The default is on which
 -   produces this error.
 -
 -HOWTO
 ------
 -   
 -Q: How do I generate different cache files per template based on arguments
 -   passed to the page?
 -A: Use your $REQUEST_URI as the cache_id when fetching the page:
 -
 -   global $REQUEST_URI; // if not already present
 -   $smarty->display('index.tpl',$REQUEST_URI);
 -
 -   This will create a separate cache file for each unique URL when you call
 -   index.tpl. See the documentation for display() and fetch()
 -
 -Q: How do I pass a template variable as a parameter? {function param={$varname}}
 -   does not work.
 -A: {function param=$varname} (You cannot nest template delimiters.)
 -
 -Q: How do I include cached template(s) within a non-cached template?
 -A: One way to do it:
 -
 -   $smarty->caching = true;
 -   $tpl1 = $smarty->fetch("internal1.tpl");
 -   $tpl2 = $smarty->fetch("internal2.tpl");
 -   $tpl3 = $smarty->fetch("internal3.tpl");
 -
 -   $smarty->assign("tpl1_contents",$tpl1);
 -   $smarty->assign("tpl2_contents",$tpl2);
 -   $smarty->assign("tpl3_contents",$tpl3);
 -
 -   $smarty->caching = false;
 -   $smarty->display('index.tpl');
 -
 -   index.tpl
 -   ---------
 -
 -   <table>
 -           <tr>
 -                   <td>{$tpl1_contents}</td>
 -                   <td>{$tpl2_contents}</td>
 -                   <td>{$tpl3_contents}</td>
 -           </tr>
 -   </table>
 -
 -
 -
 -
 -   Another approach:
 -
 -   You could write a custom insert function to fetch your internal
 -   templates:
 -
 -   <table>
 -           <tr>
 -                   <td>{insert name=fetch_tpl tpl="internal1.tpl"}</td>
 -                   <td>{insert name=fetch_tpl tpl="internal2.tpl"}</td>
 -                   <td>{insert name=fetch_tpl tpl="internal3.tpl"}</td>
 -           </tr>
 -   </table>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/INSTALL b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/INSTALL deleted file mode 100644 index 0df4341b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/INSTALL +++ /dev/null @@ -1,29 +0,0 @@ -REQUIREMENTS:
 -
 -Smarty requires PHP 4.0.6 or later.
 -See the on-line documentation for complete install instructions.
 -
 -INSTALLATION (quick):
 -
 -* copy the files under the libs/ directory to a directory that is in your PHP
 -  include_path, or set the SMARTY_DIR constant and put them in this directory.
 -  (if you upgrade from versions before 2.5.0 be aware that up to Smarty 2.4.2
 -  all necessary files where in the distribution's root directory, but are now
 -  in libs/.)
 -
 -* for each application using Smarty, create a "templates", "configs", and a
 -  "templates_c" directory, be sure to set the appropriate directory settings in
 -  Smarty for them. If they are located in the same directory as your
 -  application, they shouldn't need to be modified. Be sure the "templates_c"
 -  directory is writable by your web server user (usually nobody). chown
 -  nobody:nobody templates_c; chmod 700 templates_c You can also chmod 777 this
 -  directory, but be aware of security issues for multi-user systems. If you are
 -  using Smarty's built-in caching, create a "cache" directory and also chown
 -  nobody:nobody.
 -
 -* setup your php and template files. A good working example is in the on-line
 -  documentation.
 -
 -* TECHNICAL NOTE: If you do not have access to the php.ini file, you can change
 -  non-server settings (such as your include_path) with the ini_set() command.
 -  example: ini_set("include_path",".:/usr/local/lib/php");
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/NEWS b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/NEWS deleted file mode 100644 index 76302980..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/NEWS +++ /dev/null @@ -1,733 +0,0 @@ -Version 2.6.0 (Nov 19, 2003)
 -----------------------------
 -
 -  - move Smarty::quote_replace() to Smarty_Compiler::_quote_replace() (messju)
 -  - remove import of of attributes of {include_php} to php's namespace.
 -    use $params[name] instead (messju)
 -
 -Version 2.6.0-RC3 (Nov 13, 2003)
 ---------------------------------
 -
 -  - fix handling of $var.key inside [] (messju)
 -  - fix handling of assign inside {insert}-tags (messju)
 -  - fix handling if [...] inside triple-quotes in config-files (messju)
 -  - fix handling of simple-math-operators inside modifiers (Dominik, messju)
 -  - fix handling of trailing-slashes in open_basedir in
 -    smarty_core_create_dir_structure() (packman, messju)
 -
 -Version 2.6.0-RC2 (Oct 8, 2003)
 --------------------------------
 -
 -  - apply modifiers only once to section-loop and foreach-from attrs (messju)
 -  - remove use of _smarty_cached_paths-files (messju)
 -  - remove Smarty::_plugin_implementation_exists() - use is_callable() (messju)
 -  - ignore {strip}/{/strip) inside {strip}-blocks (messju)
 -  - fixed removal of leading/trailing newlines in {strip}-blocks (messju)
 -  - fixed proper escaping of " and ' with escape:javascript (messju)
 -  - fixed bug in traversal of $smarty->plugins_dir-array. now the
 -    first matching plugin is taken (messju)
 -  - moved {strip} back into the compiler (messju)
 -  - fixed config_load: handling of section-attribute and use of
 -    multiple config-files in one template (atu, messju)
 -
 -Version 2.6.0-RC1 (August 11, 2003)
 ------------------------------------
 -
 -  - fixed status-header for cache_modified_check under cgi-sapi (messju)
 -  - added optional parameter $cache_attrs to register_function() and
 -    register_block(). $cache_attrs is an array containing attribute-
 -    names that should be cached on calls to functions that have
 -    $cacheable set to false. (messju)
 -  - enabled registration of class-methods as callbacks for the register_*-
 -    functions (use: array('classname', 'method_name')) as callback) (messju)
 -  - added filepath caching (Monte)
 -  - added optional assign-attribute to {capture}-tag (messju)
 -  - added $cacheable-parameter to register_compiler_function() (messju)
 -  - added $cacheable-parameter with default=true to register_function()
 -    and register_block() (messju)
 -  - add math speedup to core (Dominik, Monte)
 -  - fix newlines for tags without template output (Monte)
 -  - added config-option "request_use_auto_globals" to make auto-globals be
 -    used as request vars instead of HTTP_*_VARS (messju)
 -  - speed up config_load, simplify compiling (Monte)
 -  - added block-methods for registered objects (Bharat Mediratta, messju)
 -  - ignore one char resource names like c:foo.tpl (Monte)
 -  - added default_resource_type feature (Monte)
 -  - fix bug where config file starts with hidden section (boots, Monte)
 -  - add discrete error checking pertaining to $cache_dir
 -    and $compile_dir, their existance and writability (Monte)
 -  - fixed behaviour of start=... for {counter} (messju)
 -  - fixed assign for {counter} (messju)
 -  - added params vdir, hdir and inner to html_table to allow looping
 -    over the data in various directions (messju)
 -  - allow spaces in literal tags (Paul Lockaby, Monte)
 -  - speed up compiled templates, hardcode plugin filepaths
 -    instead of dynamically calculate at runtime. (Monte)
 -  - abstract many core components from Smarty.class.php,
 -    speeding up core class instantiation (Monte)
 -  - fixed bug in _create_dir_structure() when used with open_basedir-
 -    restriction and relative paths (messju)
 -  - use DIRECTORY_SEPARATOR exclusively, keep DIR_SEP for BC (Monte)
 -  - changed "link" to "href" in html_image. "link" is still working
 -    but deprecated (messju)
 -  - html_image always renders an alt-tag now (default alt="") (messju)
 -  - fixed assign attribute for multiple counters (messju)
 -  - added simple math operators to variables (Monte)
 -  - enabled array(&$obj. 'source', 'timestamp', 'secure', 'trusted')
 -    as callback for register_resource() (messju);
 -  - enabled array(&$obj, 'method') as callback for
 -    $default_template_handler_func (messju)
 -  - remove unnecessary close/open tags from compiled templates
 -    (Monte)
 -  - fixed errornous creation of '//' in image_path in html_image (messju)
 -  - fix escapement of special chars for key vals in debug
 -    console (Monte)
 -  - fixed debug timing logic for config_load (Tom Sommer, Monte)
 -  - all in-code doc comments converted to phpDocumentor format (Greg)
 -  - moved strip from smarty core to plugin (Monte)
 -  - moved config_load from smarty core to plugin (Monte)
 -  - added &$repeat-parameter to block-functions (messju)
 -  - enabled hex-constants in function.math.php (messju)
 -  - enabled hex-constants (0x...) as function-attributes, inside if-statements
 -    and as modifier-parameters (messju)
 -  - fixed bug with passing $smarty as reference in Smarty.compiler.class
 -    (messju)
 -  - corrected output with {strip} and PHP tag newlines (Monte)
 -  - added possibility to register function-callbacks as "array(&$obj, 'method)"
 -    this affects register_function(), -block, -compiler_function, -modifier, 
 -    -prefilter, -postfilter, -outputfilter-functions() and $cache_handler_func
 -    (messju)
 -  - added <labels> to html_checkboxes and html_radios (Philippe, messju)
 -  - added "labels"-options to turn off labels in html_checkboxes and _radios
 -    (messju)
 -
 -Version 2.5.0 (April 11, 2003)
 -------------------------------
 -
 -   - fixed bug with default modifier when passing integer 0
 -     (Monte)
 -   - change backtic syntax from $`foo` to `$foo` (Monte)
 -   - recognize $foo[][] syntax inside embedded quotes without
 -     backtics (Monte)
 -   - name=123 is passed as an integer (not a string) to plugins now (messju)
 -   - $length is now propagated to sub-values in debug_print_var (messju) 
 -
 -Version 2.5.0-RC2 (March 26, 2003)
 -----------------------------------
 -
 -    - made clear_cache() ignore compile_id, when clearing cache-groups (this
 -      is when no $tpl_file is supplied) (messju)
 -    - made onmouseout XHTML-compliant in function.popup.php (messju)
 -    - applied local-var-naming-scheme to fetch() (messju)
 -    - renamed $localvars to $_localvars in cache-file-handling-functions,
 -      added _get_auto_id()-function (messju)
 -    - swapped compile_id and cache_id in read_cache_file and write_cache_file
 -      (messju)
 -    - reverted patch for cache-file-handling (messju)
 -    - made html_radios and html_checkboxes accept "selected" instead
 -      of "checked" optionally. (messju)
 -    - made compile_id ignored in clear_cache, made order of
 -      auto_file_name $cache_id.$compile_id again, applied the the new
 -      variable-naming-scheme for cache_file_handing functions (messju)
 -    - removed notice of undefined var in _rm_auto() (messju)
 -    - added warning message when an array is passed as
 -      the "checked" value of html_radios (Monte)
 -    - fixed errormessage in _compile_smarty_ref() (messju)
 -    - updated docs for html_image "name" -> "file" (messju)
 -    - fixed bug with html_options-optgroups (Nichlas Löfdahl, messju)
 -    - cleaned up calls to readdir() (messju)
 -    - fixed bug with passing multiple modifiers to a parameter
 -      (Monte)
 -    - updated docs for html_checkboxes, html_options and html_radios (messju)
 -    - fixed wrong default "name" attribute for html_options (messju)
 -    - html_checkboxes now expect the options as attribute "options" instead
 -      of "checkboxes. html_radios expect "options" instead of "radios".
 -      cleaned up indentiation (messju)
 -    - fixed too greedy str_replace in trimwhitespace outputfilter (messju)
 -    - html_checkboxes and html_radios passthru all unknown paramters now
 -      additionally their output is now XHTML compliant (messju)
 -    - html_options passthru all unknown paramters now (messju)
 -    - fix link functionality of html_image, also make
 -      output XHTML compatible (Hinrich Donner, Monte)
 -    - append "@" to default modifier vars/args
 -      supress possible warnings (Monte)
 -    - fix problem with escaped double quotes (Monte)
 -    - fix html_radios to not return an array (Monte)
 -    - fixed length in modifier.truncate.php (messju)
 -    - fixed handling of '$'-signs in trimwhitespace outputfilter (messju)
 -    - fix bug that makes config files recompile every time
 -      (Nagger, Monte)
 -    - add dpi functionality to html_image, change "name"
 -      parameter to "file" (Thomas Shulz, Monte)
 -    - fix height/width parameter index in html_image (Gerard,
 -      Monte)
 -    - get rid of unsetting name and script attributes
 -      to insert tag (Thomas Schulz, Monte)
 -    - changed argument order of string_format modifier back,
 -      was right in the first place (Monte)
 -
 -Version 2.5.0-RC1 (March 5, 2003)
 ----------------------------------
 -
 -    - fixed notice in popup function (Nagger, Monte)
 -    - fix "once" var compiling for include_php (Monte)
 -    - added nl2br modifier to distribution (Monte)
 -    - added html_image to distribution (Monte)
 -    - added cat modifier to distribution (Monte)
 -    - added html_table to distribution (Monte)
 -    - added << >> <> support to if statments (SMK, Monte)
 -    - fix _assign_smarty_interface to not overwrite keys
 -      other than 'request' (Jerome Poudevigne, Monte)
 -    - added html_checkboxes to distribution (Christopher Kvarme, Monte)
 -    - added html_radios to distribution (Christopher Kvarme, Monte)
 -    - fixed string_format modifier args (wrong order) (Paul
 -      Lockaby, Monte)
 -    - use tmp file for file writes, avoid file lock race (Monte)
 -    - support syntax "$`smarty.config.foo`.tpl" for embedded
 -      vars in quotes, and allow full dollar var syntax (Monte)
 -    - add $smarty.config.varname variable for accessing config vars (Paul
 -      Lockaby, Monte)
 -    - silence PHP warnings in function.fetch.php (Eduardo,
 -      Monte)
 -    - added get_config_vars(), same basic functionality as
 -      get_template_vars() (Monte)
 -    - update get_template_vars() to be able to get
 -      individual vars (Monte)
 -    - fix minor logic in _fetch_template_info (Dennis Gearon,
 -      Monte)
 -    - fix cache groups with compile_id set (Monte)
 -    - add support for merging appended vars (messju, Monte)
 -    - allow null as function attribute value
 -      (André Rabold, Monte)
 -    - support $foo->bar[index] syntax (Monte)
 -    - add get_registered_object function (messju, Monte)
 -    - treat unrecognized param attribute syntax as string (Monte)
 -    - support $smarty.const.$foo syntax (messju, Monte)
 -    - remove E_NOTICE warnings from debug.tpl,
 -      escape modifier (Kanstantin, Monte)
 -    - don't count non-ascii chars in count_words modifier
 -      (Kanstantin, Monte)
 -    - clean up param calls to _parse_var and _parse_attrs (Monte)
 -    - define $template_source var, elude possible warning
 -      (Monte)
 -    - fix syntax problem with evaluating PHP constants (Monte)
 -    - add @ and === as valid if statement tokens (Monte)
 -    - enable error messages for config_load errors,
 -      use $this->config_class for loading class name (Monte)
 -    - fix html_options to not escape already escaped entities (Monte)
 -    - send Last-Modified header on cache creation (Monte)
 -    - check strict syntax of function attributes (Monte) 
 -    - dropped support for modifers on object parameters,
 -      added support for objects as modifier parameters (Monte)
 -    - fixed bug with decimal numbers in if statements (Monte)
 -
 -Version 2.4.2 (Feb 11, 2003)
 -----------------------------
 -    - support embedded variables in objects (Monte)
 -    - fix bug with objects with no properties (M Mohr, Monte)
 -    - support full dollar var syntax in quoted text (Monte)
 -    - fixed bug in $smarty.const.FOO introduced in 2.4.1 (M
 -      Mohr, Monte)
 -
 -Version 2.4.1 (Feb 6, 2003)
 ----------------------------
 -
 -    - ignore case in IF statements (Rainer Collet, Monte)
 -    - treat undefined constants as null (Ferdinand Beyer, Monte)
 -    - fix problem with inserts and nested fetches
 -      (Rainer Collet, Monte)
 -    - added support for passing params to include_php
 -      (Tim Riley, Monte)
 -    - added support for math operators in if statements (Monte)
 -    - added support for $foo->bar[$x].blah syntax (Monte)
 -
 -Version 2.4.0 (Feb 2, 2003)
 ----------------------------
 -
 -    - fix known problems with php tag handling in templates
 -      (recursion, echoing xml tags) (Monte)
 -    - add support for object registration (Monte)
 -    - add debug template to secure_dir, add template_dir
 -      to secure_dir by default (Ferdinand Beyer, Monte)
 -    - added support for assigned object access (Monte)
 -    - fixed bug with directories named '0' (Frank Bauer, Monte)
 -    - add javascript parameter to escape modifier (Monte)
 -    - added calling function line numbers to syntax error
 -      messages in compiler (Monte)
 -    - added support for modifiers to function calls (Monte)
 -    - support return value for custom functions
 -      instead of echoing (but echo still works) (Monte)
 -    - added direct access to constants
 -      via $smarty.const.FOO (Monte)
 -    - added support for passing modifiers
 -      to static values (Monte)
 -    - fix up regex code in compiler, more accurate and
 -      maintainable (Monte)
 -    - added day_value_format to html_select_date (Marcus
 -      Bointon, Monte)
 -    - assigned variables are no longer in global
 -      namespace, saving extract() calls and speeding
 -      up fetch() and display() linearly with no. of
 -      assigned variables (Monte)
 -    - added trimwhitespace output filter to dist. (Monte)
 -    - fix popup function to allow newlines in text (Monte)
 -    - escape html entities in html_options (Monte)
 -    - fixed bug with label for html_options (Monte)
 -    - added config_load API function (Monte)
 -    - added caching to config file loading (Monte)
 -    - added "extra" parameter to mailto function (Monte,
 -      Massimiliano Perantoni)
 -    - added mailto plugin to dist.  (Monte)
 -
 -Version 2.3.1 (Nov 19, 2002)
 -----------------------------
 -
 -    - added optgroup support to html_options (Monte, Robert
 -      Amos)
 -    - set mtime on compile files so they match source
 -      files (Monte, Peter Bowen)
 -    - added proper support for open_basedir setting
 -      (Monte, Alessandro Astarita)
 -    - added strip variable modifier, updated docs (Monte)
 -    - fixed access to $smarty.x variables as arrays. (Andrei)
 -    - fixed errors with example setup docs (Monte, Matthew
 -      Hagerty)
 -    - added textformat block function (Monte)
 -
 -Version 2.3.0 (Aug 7, 2002)
 ----------------------------
 -
 -    - added assign_by_ref() and append_by_ref() functions
 -      (Bob Silva, Monte)
 -    - changed default warning type for plugin errors from
 -      E_USER_WARNING to E_USER_ERROR (Monte)
 -    - added $all_extra, $hour_extra, $minute_extra,
 -      $second_extra and $meridian_extra parameters to
 -      html_select_time function (Rainer Collet, Monte)
 -    - update debug console to print objects (Simon Willison,
 -      Monte)
 -    - fix Config_File class to not error when there are no
 -      sections (Peter Kmet, Monte)
 -    - add default modifier logic (Monte)
 -    - updated popup_init to be xhtml compliant (Tom Oram, Monte)
 -    - fix filename bug with windows (Gary Loescher, Monte)
 -    - add ability to supply expire time in seconds when clearing
 -      cache or compile files (Monte)
 -    - add {debug} plugin to distribution (Monte)
 -    - fixed bug with insert tags, loading from "script" attribute
 -      when caching is enabled (Monte)
 -    - fix bug with debug_tpl file path with Windows (.SMK., Monte)
 -    - fix append() function with string/array problem (Monte)
 -
 -Version 2.2.0 (July 11, 2002)
 ------------------------------
 -
 -    - make debug.tpl work with any delimiter (Monte)
 -    - change logic in assign() and append() to test var names
 -      against != '' instead of empty() (Monte)
 -    - fix PHP notice in append() function (Monte)
 -    - allow $plugins_dir to be an array of directories
 -      (Andreas Kossmeier, Monte)
 -    - move debug.tpl to SMARTY_DIR, add to constructor (Monte)
 -    - fixed warning message in function.assign_debug_info (Monte)
 -    - fixed $template_dir, $compile_dir, $cache_dir, $config_dir,
 -      $plugin_dir to respect include_path (Monte)
 -    - fixed warning message with output filter array (Monte)
 -    - add optional 2nd parameter to date_format, used as
 -      the default date if the passed date is empty (Monte)
 -    - gave $reset a default value in cycle plugin (Monte)
 -    - fixed warnings with html_select_date and timestamp
 -      functions (Monte)
 -    - added support for sub directory exlusion format (Monte)
 -    - added support for grouping by cache_id, compile_id
 -      and segments thereof (Monte)
 -    - changed cache and compile files to human readable
 -      format (Monte)
 -    - remove overlib.js file from distribution (Monte)
 -    - fixed bug with 304 Not Modified response sending
 -      content (Monte)
 -    - fixed cycle function to respect delimiter after
 -      initial setting (Monte)
 -    - update $GLOBALS references to work properly with
 -      track_globals settings (Michal Prinke, Monte)
 -    - fixed bug in math function with call to assign
 -      (Grigory V. Kareev, Monte)
 -    - optimized for loops with count() function calls (Monte)
 -    - add month_value_format attribute to html_select_date
 -      plugin (Gary Loescher, Monte) 
 -    - made it possible to use simple variables inside [] for
 -      indexing. (Andrei)
 -    - added "once" attribute to {include_php}. (Monte)
 -
 -Version 2.1.1
 --------------
 -    - added cycle function. (Monte)
 -    - fixed bug with resource testing, and include_path. (Monte)
 -    - fixed a bug with register_outputfilter function. (Monte)
 -
 -Version 2.1.0
 --------------
 -
 -    - introduced output filters. (Andrei)
 -    - changed the way filters are loaded, added load_filter()
 -      API function and $autoload_filters variable. (Andrei)
 -    - added caching logic for expire times per cache file
 -      (Norbert Rocher, Monte)
 -    - fixed html_select_date when field separator is "/"
 -      (Roberto Berto, Monte)
 -    - added YYYY-MM-DD format support to html_select_date
 -      (Jan Rosier, Monte)
 -    - fixed cache_lifetime logic bug, also made -1 = never
 -      expire (Monte)
 -    - fixed directory separator issue for Windows. (Andrei)
 -    - added ability to use simple variables as array indices or
 -      object properties. (Andrei)
 -    - added ability to unregister pre/postfilters plugins at
 -      runtime. (Andrei)
 -    - added 'htmlall' attribute to escape modifier. (Monte)
 -    - added template_exists() API function. (Andrei)
 -    - fixed a problem with using dynamic values for 'file'
 -      attribute of {include_php} tag. (Andrei)
 -    - added $smarty.template variable. (Andrei)
 -    - fixed several plugins that would not work if the plugin
 -      directory was not the default one. (Andrei)
 -    - implemented support for block functions. (Andrei)
 -    - made it possible to assign variables in pre/postfilter
 -      plugins. (Andrei)
 -
 -Version 2.0.1
 --------------
 -    - rename plugin .make_timestamp.php to shared.make_timestamp.php.
 -      (Monte)
 -    - changed crc32() generated values, replace '-' with 'N'. (Monte)
 -    - added support for +/- N syntax in html_select_date year values.
 -      (Monte)
 -    - fixed behavior of inserts with script attribute. (Andrei)
 -    - fixed bug with $smarty.cookies and $smarty.server. (Andrei)
 -    - wordwrap and indent are missing from 2.0 release, now fixed.
 -      (Monte)
 -    - removed show_info_header and show_info_include variables. (Monte)
 -
 -Version 2.0.0
 --------------
 -    - added "eval" function plugin for evaluating variables as
 -      templates. (Monte)
 -    - removed $tpl_file_ext class variable, no longer used. (Monte)
 -    - added "hex" and "hexentity" escape types to escape modifier.
 -      (Monte)
 -    - removed dependency on PEAR. (Andrei)
 -    - update popup_init to accept src attribute. (Monte, Duncan Forrest)
 -    - implemented several optimizations, speeding up Smarty
 -      significantly in most cases. (Andrei,Monte)
 -    - implemented plugin architecture. (Andrei)
 -    - added wordwrap and indent modifiers. (Monte)
 -    - added support for 'If-Modified-Since' headers for cached content.
 -      (Monte)
 -    - removed insert_tag_check class variable, no longer needed. (Monte)
 -    - optimized cache fetches by scanning for insert tags only if they
 -      exist. (Monte)
 -    - fixed bugs in overlib. (Monte, Duncan Forrest)
 -    - fixed a problem with compile_id usage. (Andrei)
 -    - fixed problem with using assigned vars with {include_php ...}
 -      filepath. (Monte)
 -
 -Version 1.5.2
 --------------
 -    - added Smarty object as fifth argument for template resource functions.
 -      (Monte)
 -    - fixed a bug with incorrectly combined cache and compile id in
 -      clear_cache(). (Andrei)
 -    - fixed bug in smarty_make_timestamp introduced in PHP 4.1.0. (Monte)
 -    - fixed bug with cached insert debug timing. (Monte)
 -    - added 'script' attribute to {insert..} which specifies the script that
 -      the insert function can be found in. (Andrei)
 -    - added default template function handler. (Monte)
 -
 -Version 1.5.1
 --------------
 -    - removed error message from the generic _read_file() method, the caller
 -      should take care of that. (Andrei)
 -    - fixed a bug with incorrectly combined cache and compile id. (Andrei)
 -
 -Version 1.5.0
 --------------
 -    - added include_php built-in function, documented. (Monte)
 -    - added trusted_dir functionality, documented. (Monte)
 -    - consolidated secure_dir tests to one function. (Monte)
 -    - prepended _smarty_ to variable names in fetch() class function to avoid
 -      namespace conflicts. (Monte)
 -    - introduced $compile_id class variable that can be used to set persistent
 -      compile identifier across multiple display calls, documented. (Andrei)
 -    - fixed bug with concatenated null cache and compile identifiers. (Andrei)
 -    - added $smarty.section.* syntax for accessing section properties,
 -      documented. (Andrei)
 -    - added custom cache handling function ability, documented. (Monte)
 -    - added assign attribute to include, include_php, insert, fetch, math, and
 -      counter functions, documented. (Monte)
 -    - fixed bug with fetch testing for local file when http address. (Monte)
 -    - fixed bug with counter and skipval setting. (Monte)
 -    - made {config_load ...} merge globals from each config file only once per
 -      scope, thus avoiding several problems. (Andrei)
 -    - added {foreach ...} tag that can be used to iterate through
 -      non-sequential and associative arrays, documented. (Andrei)
 -    - speeded up section property access a bit. (Andrei)
 -    - removed $smarty variable from storage used by normal template variables,
 -      to prevent any problems. (Andrei)
 -    - fixed a bug that could cause parse error with quotes inside literal
 -      blocks. (Andrei, Alexander Belonosov)
 -    - added 'field_array' attribute to html_select_time function, documented.
 -      (Andrei, Michael Caplan)
 -    - documented {section} "max" attribute. (Monte)
 -    - fixed notice message in Smarty_Compiler.class.php. (Monte)
 -    - fixed bug with clear_cache introduced in 1.4.6, third parameter should
 -      default to null. (Monte)
 -    - updated Config_File class to support '\' path separator in OS/2. (Monte,
 -      Francesco Cipriani)
 -    - removed secure_ext setting (not used). (Monte)
 -    - made cache reading process more efficient. (Monte)
 -    - fixed bug, is_cached() now supports new 1.4.6 caching behavior. (Monte)
 -    - update FAQ with mailing list Reply-To header FAQ. (Monte)
 -    - supress error messages for fopen(), fix cache to regenerate if cache
 -      file is not available (i.e. cluster race condition). (Monte)
 -    - added index key example to QUICKSTART guide. (Monte)
 -
 -Version 1.4.6
 --------------
 -    - fixed bug with {assign ...} when passing an empty value. (Monte)
 -    - add more warning message fixes. (Monte, Tara Johnson)
 -    - documentation updates. (Monte)
 -    - update fetch function to give proper warning when fetching a non-readable
 -      or non-existant file. (Monte)
 -    - fixed problem with newline at the end of included templates (Monte, Andrei)
 -    - added feature to regenerate cache if compile_check is enabled and an
 -      involved template or config file gets modified. (Monte)
 -    - added DEBUG execution times to included files: REQUIRES updated debug.tpl
 -      file! (Monte)
 -    - added support for hidden config variables that cannot be read by
 -      templates. (Andrei)
 -    - added execution time to DEBUG console, total and inserts. (Monte)
 -    - fixed bug where DEBUG console would not appear with cached content. (Monte)
 -    - added support for postfilter functions that are applied to compiled
 -      template right after compilation. (Andrei)
 -    - fixed the name of clear_compile_tpl() API function to clear_compiled_tpl.
 -      (Andrei)
 -    - added fix for removing comments so that the line numbers are reported
 -      correctly in case of errors. (patch from Anders Janson)
 -    - made html_options output xhtml compatible code. (Monte, Arnaud Limbourg)
 -
 -Version 1.4.5
 --------------
 -    - update FAQ with index of questions at the top
 -    - update overlib to 3.50, adjust addon code so that the overlib.js
 -      file isn't modified, and not using the mini one. (Monte)
 -    - added many more options to html_select_date. (Alexander Skwar, Andrei)
 -    - added support for generating different compiled templates from the same
 -      source template. (Hans-Peter Oeri, Andrei)
 -    - modified Smarty to pass itself to insert functions as the second
 -      parameter. (Andrei)
 -    - modified Smarty to pass itself to prefilter functions as the second
 -      parameter. (Andrei)
 -    - fixed syntax error when including a non-existant template with security
 -      enabled. (Monte)
 -    - fixed comments handling to allow commenting out template blocks. (Andrei)
 -    - implemented named capture buffers, with results accessible via
 -      $smarty.capture.<name>. (Andrei)
 -    - added ability to index arrays directly by numbers. (Andrei)
 -    - fixed bug with SMARTY_DIR not prepended to Config_File include. (Monte)
 -
 -Version 1.4.4
 --------------
 -    - fixed problem with including insecure templates with security enabled.
 -      (Monte)
 -    - numerous documentation updates. (Monte) 
 -    - added ENT_QUOTES to escapement of html. (Monte, Sam Beckwith)
 -    - implemented access to request variables via auto-assigned $smarty
 -      template variable. (Andrei)
 -    - fixed a bug with parsing function arguments inside {if} tags if a comma
 -      was present. (Andrei)
 -    - updated debug console with config file vars. (Monte)
 -    - added SMARTY_DIR constant as an alternative to relying on include_path.
 -      (Monte)
 -    - added popup_init and popup functions (requires overlib.js). (Monte)
 -    - updated debug console with config file vars. (Monte)
 -    - added debugging url control. (Monte)
 -    - added 'quotes' type to escape modifier. (Monte, Mike Krus)
 -    - added 'total' and 'iteration' section properties. (Andrei)
 -    - added 'start', 'max', and 'step' section attributes/properties. (Andrei)
 -    - fixed a bug with security checking of functions inside {if} tags.
 -      (Andrei)
 -    - fixed a bug in Config_File that would incorrectly booleanize values that
 -      weren't really booleans. (Andrei)
 -
 -Version 1.4.3
 --------------
 -    - added regex_replace modifier, documented. (Monte)
 -    - added debugging console feature and custom function assign_debug_info,
 -      documented. (Monte)
 -    - added 'scope' attribute for {config_load}, 'global' is now deprecated but
 -      is still supported. (Andrei)
 -    - reduced template symbol table pollution by moving config array into the
 -      class itself. (Andrei)
 -    - fixed a bug with passing quoted arguments to modifiers inside {if}
 -      statements. (Andrei, Sam Beckwith)
 -    - added security features for third party template editing, documented
 -      (Monte)
 -    - added assign custom function, documented. (Monte)
 -    - fixed bug with template header using version instead of _version. (Monte)
 -    - fixed a problem with putting $ followed by numbers inside {strip} and
 -      {/strip} tags. (Andrei)
 -    - fixed Config_File class to allow empty config paths (defaults to current
 -      directory). (Andrei)
 -
 -Version 1.4.2
 --------------
 -    - move $version to internal variable, remove from docs. (Monte)
 -    - cleaned up compiled templates global scope by moving some variables into
 -      the class itself. (Andrei)
 -    - fixed a bug that would not allow referring to a section in the including
 -      file from the included file. (Andrei)
 -    - configs directory missing from 1.4.1 release, added back in. (Monte)
 -    - added windows include_path setup instructions to FAQ & QUICKSTART.
 -      (Monte)
 -
 -Version 1.4.1
 --------------
 -    - fix LOCK_EX logic for all windows platforms (Monte)
 -    - fixed indexing by section properties with the new syntax. (Andrei)
 -    - updated Smarty to use absolute paths when requiring/including Smarty
 -      components. (Andrei, John Lim)
 -
 -Version 1.4.0
 --------------
 -    - added {capture}{/capture} function, documented (Monte)
 -    - added {counter} function, documented (Monte) 
 -
 -Version 1.4.0b2
 ----------------
 -    - fixed issue in Config_File.class with referencing blank sections (Andrei)
 -    - fixed problem with passing variables to included files (Andrei)
 -    - fixed resource path recognition for windows (Monte)
 -
 -Version 1.4.0b1
 ----------------
 -    - added "componentized templates" tip into documentation (Monte)
 -    - added {php}{/php} tags for embedding php code into templates (Monte)
 -    - changed default value of $show_info_header to false (Monte)
 -    - implemented '->' syntax for accessing properties of objects passed to the
 -      template. (Andrei)
 -    - allowed custom functions to receive Smarty object as the second
 -      parameter; this can be used to dynamically change template variables, for
 -      example. (Andrei)
 -    - added custom compiler functions support, register_compiler_function() and
 -      unregister_compiler_function() API functions. (Andrei, Ivo Jansch).
 -    - updated GLOBAL_ASSIGN to take SCRIPT_NAME from HTTP_SERVER_VARS
 -      instead of global variable. You can also assign several variables
 -      in one shot with an array. (Monte, Roman Neuhauser)
 -    - added template prefilters, register_prefilter() and
 -      unregister_prefilter() API functions. (Monte)
 -    - added RELEASE_NOTES file to distribution. (Monte)
 -    - moved CREDITS out of manual into its own file. (Monte)
 -    - added register_resource() and unregister_resource() API functions. (Monte)
 -    - changed the syntax of indexing template variables, thus supporting
 -      structures of arbitrary complexity; supplied fix_vars.php script to fix
 -      old syntax. (Andrei)
 -    - added $insert_tag_check to speed up cached pages if {insert ...} is not
 -      used. (Monte)
 -    - added $compiler_class variable to allow specifying a different compiler
 -      class. (Andrei)
 -    - changed Smarty to compile templates at runtime, allowing for arbitrary
 -      template resources. (Monte)
 -    - added fix for LOCK_EX under Windows and changed a couple of file
 -      permissions for security. (Monte, Fernando Nunes)
 -    - allow arbitrary date strings to date_format, html_select_date and
 -      html_select_time (Monte)
 -
 -Version 1.3.2
 --------------
 -    - fixed a bug that caused some nested includes to loop infinitely. (Andrei)
 -    - added optional HTML header to output. (Monte)
 -    - significantly improved config_load performance. (Andrei)
 -    - added format attribute to math function. (Monte)
 -    - added html_select_time custom function. (Andrei)
 -    - fixed minor PHP warning when attempting to unset an unset variable
 -      (Monte)
 -    - added count_characters, count_words, count_sentences, count_paragraphs
 -      modifiers (Monte)
 -
 -Version 1.3.1pl1
 ---------------
 -    - bug fix, recovered missing _syntax_error function (Monte)
 -
 -Version 1.3.1
 --------------
 -    - document first, last, index_prev, index_next (Monte)
 -    - added 'first' and 'last' section properties. (Andrei)
 -    - split out compiling code to separate class for faster template execution
 -      time (Monte)
 -    - fixed a couple of minor PHP warnings (Monte)
 -    - added and documented unregister_modifier() and unregister_function() API
 -      calls. (Monte)
 -    - added and documented 'fetch' and 'math' functions. (Monte)
 -    - added ability to index looped variables by section properties, e.g.
 -      $foo.index_prev/bar. (Andrei)
 -    - added index_prev and index_next section properties. (Andrei)
 -    - fixed issue with php executing in literal blocks. (Monte)
 -
 -Version 1.3.0
 --------------
 -    - moved license from GPL to LGPL (Monte)
 -    - implemented workaround for PHP "feature" that eats carriage returns
 -      if the PHP tag is at the end of the line. (Andrei)
 -    - removed $allow_php, added $php_handling logic (Monte)
 -    - added file locking to prevent reader/writer problem. (Andrei)
 -    - made Smarty catch unimplemented modifiers and custom functions and output
 -      error messages during compilation instead of failing during run time.
 -      (Andrei)
 -    - removed short-tags at the top of the smarty scripts (Monte)
 -    - added register_function() and register_modifier() API calls to make
 -      registering stuff easier. (Andrei)
 -    - added template results caching capability. (Monte, Andrei)
 -    - added optional 'options' attribute to html_options custom function
 -      that allows passing associative arrays for values/output. (Andrei)
 -    - modifier arguments can now contain '|' and ':' characters inside quoted
 -      strings. (Andrei)
 -
 -Version 1.2.2
 --------------
 -    - fixed bug that would not respect nested template directories and would
 -      put all compiled files into top-level one. (Andrei)
 -    - fixed bug using $PHP_VERSION instead of environment var PHP_VERSION.
 -      (Monte)
 -    - a couple small warning fixes. (Monte)
 -
 -Version 1.2.1
 --------------
 -    - added $compile_dir, removed $compile_dir_ext, simplified usage. (Monte)
 -    - added tips & tricks chapter to documentation. (Monte)
 -    - misc documentation updates. (Monte)
 -
 -Version 1.2.0
 --------------
 -    - updated documentation (Monte)
 -    - added file and line number information to syntax error messages. (Andrei)
 -    - added ability to index template vars by a key. (Andrei)
 -
 -Version 1.1.0
 --------------
 -    - misc documentation changes, official stable release
 -
 -Version 1.0b
 -------------
 -    - fixed the bug that prevented using non-array values for 'loop' attribute.
 -      (Andrei)
 -    - many misc documentation changes & additions (Monte)
 -
 -Version 1.0a
 -------------
 -    - fixed bug that caused templates to recompile every time (Monte)
 -
 -Version 1.0
 -------------
 -    - initial release
 -
 -/* vim: set et tw=64 ft=changelog: */
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/README b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/README deleted file mode 100644 index db3cf4e5..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/README +++ /dev/null @@ -1,80 +0,0 @@ -NAME:
 -
 -    Smarty - the PHP compiling template engine
 -
 -VERSION: 2.5.0
 -
 -AUTHORS:
 -    
 -    Monte Ohrt <monte@ispi.net>
 -    Andrei Zmievski <andrei@php.net>
 -
 -MAILING LISTS:
 -
 -    We have a few mailing lists. "general" for you to share your ideas or ask
 -	questions, "dev" for those interested in the development efforts of Smarty,
 -	and "cvs" for those that would like to track the updates made in the cvs
 -	repository.
 -
 -    send a blank e-mail message to:
 -      smarty-general-subscribe@lists.php.net (subscribe to the general list)
 -      smarty-general-unsubscribe@lists.php.net (unsubscribe from the general list)
 -      smarty-general-digest-subscribe@lists.php.net (subscribe to digest)
 -      smarty-general-digest-unsubscribe@lists.php.net (unsubscribe from digest)
 -      smarty-dev-subscribe@lists.php.net (subscribe to the dev list)
 -      smarty-dev-unsubscribe@lists.php.net (unsubscribe from the dev list)
 -      smarty-cvs-subscribe@lists.php.net (subscribe to the cvs list)
 -      smarty-cvs-unsubscribe@lists.php.net (unsubscribe from the cvs list)
 -    You can also browse the mailing list archives at
 -    http://marc.theaimsgroup.com/?l=smarty&r=1&w=2
 -
 -SYNOPSIS:
 -
 -    require("Smarty.class.php");
 -
 -    $smarty = new Smarty;
 -
 -    $smarty->assign("Title","My Homepage");
 -    $smarty->assign("Names",array("John","Gary","Gregg","James"));
 -
 -    $smarty->display("index.tpl");
 -
 -
 -DESCRIPTION:
 -
 -    What is Smarty?
 -
 -    Smarty is a template engine for PHP. Many other template engines for PHP
 -    provide basic variable substitution and dynamic block functionality.
 -    Smarty takes a step further to be a "smart" template engine, adding
 -    features such as configuration files, template functions, and variable
 -    modifiers, and making all of this functionality as easy as possible to
 -    use for both programmers and template designers. Smarty also converts
 -    the templates into PHP scripts, eliminating the need to parse the
 -    templates on every invocation. This makes Smarty extremely scalable and
 -    manageable for large application needs.
 -
 -    Some of Smarty's features:
 -
 -    * it is extremely fast
 -    * no template parsing overhead, only compiles once.
 -	* it is smart about recompiling only the template files that have
 -	  changed.
 -    * the template language is remarkably extensible via the plugin
 -      architecture.
 -    * configurable template delimiter tag syntax, so you can use
 -      {}, {{}}, <!--{}-->, or whatever you like.
 -    * built-in caching of template output.
 -    * arbitrary template sources (filesystem, databases, etc.)
 -    * template if/elseif/else/endif constructs are passed to the PHP parser,
 -      so the if syntax can be as simple or as complex as you like.
 -    * unlimited nesting of sections, conditionals, etc. allowed
 -    * it is possible to embed PHP code right in your template files,
 -      although not recommended and doubtfully needed since the engine
 -      is so customizable.
 -    * and many more.
 -
 -COPYRIGHT:
 -    Copyright (c) 2001,2002 ispi of Lincoln, Inc. All rights reserved.
 -    This software is released under the GNU Lesser General Public License.
 -    Please read the disclaimer at the top of the Smarty.class.php file.
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/RELEASE_NOTES b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/RELEASE_NOTES deleted file mode 100644 index 7fa1b4b1..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/RELEASE_NOTES +++ /dev/null @@ -1,423 +0,0 @@ -2.5.0
 ------
 -
 -Very minor adjustments since RC2, see the NEWS file for details.
 -
 -2.5.0-RC2
 ----------
 -
 -Many fixes since the RC1 release. This one is as close to production quality as
 -they come, so this will be the last release before 2.5.0. The SGML documentation
 -files have also been removed from the tarball. If you want them, get them from
 -the CVS repository.
 -
 -2.5.0-RC1
 ----------
 -
 -Release Candidate 1. All $smarty vars can now be dynamic, such as
 -$smarty.get.$foo. A new class function get_function_object() gets you a
 -reference to an assigned object, useful within your own custom functions.
 -append() can now merge as well as append with a third optional attribute. A new
 -class function get_config_vars() was added, and get_template_vars() can now be
 -used to get individual vars. Full variable syntax is now supported within
 -double quotes via a backtick (`) syntax. Files created by smarty are now
 -written to a tmp file then renamed to avoid file lock retention. html_radios,
 -html_checkboxes, html_table, html_image, nl2br functions added, see the NEWS
 -file for full details.
 -
 -2.4.2
 ------
 -Another point release. Added support for dynamic object reference syntax
 -($foo->$bar), support for full variable syntax within quotes ("$foo[0].bar"),
 -and other minor fixes. See the NEWS file for full details.
 -
 -2.4.1
 ------
 -
 -This is basically a point release, cleaning up a few things caught
 -in the 2.4.0 release. See the NEWS file for full details.
 -
 -2.4.0
 ------
 -
 -Smarty now supports the ability to access objects within the templates. Two
 -methods are available, one which closely follows Smartys conventions, and
 -another that follows more traditional object syntax for those familiar with
 -PHP.
 -
 -The internal compiling engine has also undergone some major work. The regex
 -parsing was rewritten to be much more strict, more secure and more
 -maintainable. Config files are now compiled, which can speed up pages quite a
 -bit that use config files extensively. Assigned variables are no longer
 -extracted to PHP namespace, saving an extract call for every template. There is
 -now support for applying modifiers to static values and functions. You can now
 -access constants with $smarty.const.VAR.  See the NEWS file for complete
 -changes.
 - 
 -2.3.1
 ------
 -
 -The mtime on compiled files will now match the source files, in the case where
 -the source file may not get the current timestamp, recompiling will still work
 -as expected. Proper support for open_basedir has been added, so Smarty should
 -work correctly in safe mode. Added a few new features such as textformat block
 -function, strip variable modifier and optgroup support for html_options. Also
 -other minor bug fixes, see the Change Log.
 -
 -2.3.0
 ------
 -
 -Smarty now has a {debug} template function that brings up the debugging console
 -right where {debug} is called, regardless of $debugging settings. This works a
 -little different than turning on $debugging in the sense that it shows all the
 -template variables available at the time {debug} is called, including local
 -scope vars. It does not show the templates names however, since this
 -executed during runtime of the template.
 -
 -You can now supply an expire time when clearing cache or compile files. This is
 -mostly useful for removing stale files via the API.
 -
 -Plugins now stop execution upon error, instead of outputting a warning and
 -continuing.
 -
 -Two new API functions, assign_by_ref() and append_by_ref() were added. They
 -allow assigning template variables by reference. This can make a significant
 -performance gain, especially if you are assigning large arrays of data. PHP 5.0
 -will do this implicitly, so these functions are basically workarounds.
 -
 -Several misc bug fixes, see the Change Log for information.
 -
 -
 -2.2.0
 ------
 -
 -Smarty now allows an array of paths for the $plugin_dir class variable. The
 -directories will be searched in the order they are given, so for efficiency keep
 -the most-used plugins at the top. Also, absolute paths to the plugin directories are
 -more efficient than relying on the PHP include_path.
 -
 -Cache files can now be grouped with the cache_id. See the documentation under
 -the new "Caching" section for details. compile_id also respects the same
 -grouping syntax. The cache/compile file structure changed, so be sure to clear
 -out all your cache and compile files when upgrading Smarty. Also if you are
 -using PHP-accelerator, restart apache. I've seen some quirky things happen if
 -the phpa files do not get cleared (known issue with phpa and parent
 -class-member changes, so just clear 'em.)
 -
 -Smarty now correctly respects the PHP include_path for $template_dir, $compile_dir,
 -$cache_dir, $config_dir and $plugin_dir. Be aware that relying on the
 -include_path is an overhead, try to use absolute pathnames when possible
 -(or relative to working directory.)
 -
 -Documentation has been updated and rearranged a bit. Most notably, the
 -installation instructions are completely revamped, and a new Caching section
 -explains Smarty's caching in detail along with the new grouping functionality.
 -
 -Many misc. bug fixes and enhancements, see the full ChangeLog (NEWS file) for
 -details.
 -
 -2.1.1
 ------
 -
 -There was a bug with template paths and the include_path, this has been fixed.
 -Also register_outputfilter() did not work, this is fixed. A new template
 -function named "cycle" has been added to the distribution, nice for cycling
 -through a list (or array) of values.
 -
 -2.1.0
 ------
 -
 -This release has quite a few new features and fixes. Most notable are the
 -introduction of block functions, so you can write plugins that work on a block
 -of text with {func}{/func} notation. Also output filters were added, so you can
 -apply a function against the output of your templates. This differs from the 
 -postfilter function, which works on the compiled template at compile time, and
 -output filters work on the template output at runtime.
 -
 -Many other features and bug fixes are noted in the NEWS file.
 -
 -
 -2.0.1
 ------
 -
 -This is a point release, fixing a few bugs and cleaning things up. A plugin
 -was renamed, the dash "-" was removed from compiled template and cached file
 -names. If you're upgrading, you might want to clear them out first.  See the
 -ChangeLog for details.
 -
 -2.0.0
 ------
 -
 -This release is a huge milestone for Smarty. Most notable new things are a
 -plugin architecture, removal of PEAR dependency, and optimizations that
 -drastically improve the performance of Smarty in most cases.
 -
 -The plugin architecture allows modifiers, custom functions, compiler functions,
 -prefilters, postfilters, resources, and insert functions to be added by
 -simply dropping a file into the plugins directory. Once dropped in, they are
 -automatically registered by the template engine. This makes user-contributed
 -plugins easy to manage, as well as the internal workings of Smarty easy to
 -control and customize. This new architecture depends on the __FILE__ constant,
 -which contains the full path to the executing script. Some older versions of
 -PHP incorrectly gave the script name and not the full filesystem path. Be sure
 -your version of PHP populates __FILE__ correctly. If you use custom template
 -resource functions, the format of these changed with the plugin architecture.
 -Be sure to update your functions accordingly. See the template resource section
 -of the documentation.
 -
 -The PEAR dependancy was removed from Smarty. The Config_File class that comes
 -with Smarty was actually what needed PEAR for error handling which Smarty didn't
 -use, but now everything is self-contained.
 -
 -Performance improvements are graphed on the benchmark page, you will see that
 -overall performance has been sped up by as much as 80% in some cases.
 -
 -Smarty-cached pages now support If-Modified-Since headers, meaning that if a
 -cached template page has not changed since the last request, a "304 Not
 -Modified" header will be sent instead of resending the same page. This is
 -disabled by default, change the setting of $cache_modified_check.
 -
 -
 -1.5.2
 ------
 -
 -Mostly bug fixes, added a default template resource handler.
 -
 -
 -1.5.1
 ------
 -
 -Critical bug fix release. If you use caching, you'll need to upgrade.
 -
 -
 -1.5.0
 ------
 -
 -Several feature enhancements were made to this version, most notably the
 -{foreach ...} command which is an alternative to {section ...} with an easier
 -syntax for looping through a single array of values. Several functions were
 -enhanced so that the output can be automatically assigned to a template
 -variable instead of displayed (assign attribute). Cache files can now be
 -controlled with a custom function as an alternative to the built-in file based
 -method. Many code cleanups and bug fixed went into this release as well.
 -
 -
 -1.4.6
 ------
 -
 -The behavior with caching and compile_check has been slightly enhanced. If
 -caching is enabled AND compile_check is enabled, the cache will immediately get
 -regenerated if _any_ involved template or config file is updated. This imposes
 -a slight performance hit because it must check all the files for changes, so be
 -sure to run live sites with caching enabled and compile_check disabled for best
 -performance. If you update a template or config file, simply turn on
 -compile_check, load the page, then turn it back off. This will update the cache
 -file with the new content. This is accomplished by maintaining a list of
 -included/loaded templates and config files at the beginning of the cache file.
 -Therefore it is advisable to remove all cache files after upgrading to 1.4.6
 -(although not absolutely necessary, old cache files will regenerate)
 -
 -The debug console now has script timing and array values printed. You MUST
 -update your debug.tpl file with this version of Smarty. Also, the new debug.tpl
 -will not work with older versions of Smarty.
 -
 -
 -1.4.5
 ------
 -
 -Mostly bug fixes and minor improvements. Added compile id for separate compiled
 -versions of the same script. The directory format and filename convention for
 -the files in templates_c has changed, so you may want to remove all of the
 -existing ones before you upgrade.
 -
 -
 -1.4.4
 ------
 -
 -A few bug fixes, new section looping attributes and properties, debugging
 -console function for control via URL, and overLib integration and access
 -to request variables from within the template.
 -
 -
 -1.4.3
 ------
 -
 -This release has a few bug fixes and several enhancements. Smarty now supports
 -template security for third-party template editing. These features disallow the
 -ability for someone to execute commands or PHP code from the template language.
 -Smarty also now has a built-in debugging console, which is a javascript pop-up
 -window that displays all the included template names and assigned variables.
 -
 -
 -1.4.2
 ------
 -
 -This was mostly one bug fix with variable scoping within included templates
 -and a few documentation changes and updates. See the ChangeLog file for full
 -details.
 -
 -
 -1.4.1
 ------
 -
 -It seems that the EX_LOCK logic from the previous release didn't fix all the
 -problems with windows platforms. Hopefully this one does. It basically
 -disables file locking on windows, so there is a potential that two programs
 -could write over the same file at the same time, fyi.
 -
 -The reset is minor bug fixes, please refer to the ChangeLog file.
 -
 -
 -1.4.0
 ------
 -
 -IMPORTANT NOTICE
 -
 -Smarty now has a new syntax for accessing elements within section loops. The
 -new syntax is easier to use and nicely handles data structures of any
 -complexity. Consequently, this breaks the old syntax.
 -
 -Here is an example of the syntax change:
 -
 -old syntax:
 -{$sec1/sec2/sec3/customer.phone}
 -
 -new syntax:
 -{$customer[$sec1][$sec2][$sec3].phone}
 -
 -The section names used to come first, followed by the variable name. Now the
 -variable name always comes first, followed by the section names in brackets.
 -You can access variable indexes anywhere, depending on how you passed the
 -variables in.
 -
 -To fix your current templates, we have provided a script that will adjust the
 -syntax for you. Located in misc/fix_vars.php, run this script from the the
 -command line, giving each template as an argument. Be sure to use absolute
 -pathnames, or pathnames relative to the executing script. Probably the easiest
 -way to do this is to copy the fix_vars.php script into your template directory
 -and run 'php -q fix_vars.php *.tpl' Be sure you have proper write permission,
 -and backup your scripts first to be safe! The examples in the 1.4.0
 -documentation have been updated to reflect the changes.
 -
 -cd /path/to/templates
 -cp /path/to/fix_vars.php .
 -find . -name "*.tpl" -exec php -q ./fix_vars.php {} \;
 -
 -NEW AND IMPROVED COMPILATION PROCESS
 -
 -Smarty 1.4.0 also has a new compilation process. Instead of compiling all the
 -templates up front, it now compiles them at runtime. This has several
 -advantages. First of all, there is no longer a need to have a single template
 -directory. You can now have arbitrary template sources, such as multiple
 -directories or even database calls. This also speeds the performance of Smarty
 -when $compile_check is enabled, since it is only checking the template that is
 -being executed instead of everything found in the template directory. The
 -$tpl_file_ext is no longer needed, but kept for backward compatability.
 -Templates can now be named anything you like with any extension.
 -
 -MINOR FIXES
 -
 -A workaround for LOCK_EX on Windows systems was added, and changed a couple of
 -file permissions for better security on public servers.
 -
 -$show_info_header is now defaulted to false instead of true. This header causes
 -problems when displaying content other than HTML, so now you must explicitly
 -set this flag to true to show the header information (or change the default in
 -your copy of Smarty.)
 -
 -Documentation is written in docbook format. I updated the docbook -> HTML
 -generating software & style-sheets, and consequently the examples are no longer
 -in a different background color. If anyone wants to contribute a better
 -stylesheet or help with documentation, drop me a line. <monte@ispi.net>
 -
 -CHANGES/ENHANCEMENTS/UPDATES
 -
 -date_format, html_select_date and html_select_time used to require a unix
 -timestamp as the format of the date passed into the template. Smarty is now a
 -bit smarter at this. It will take a unix timestamp, a mysql timestamp, or any
 -date string that is parsable by strtotime, such as 10/01/2001 or 2001-10-01,
 -etc. Just give some formats a try and see what works.
 -
 -Smarty now has template prefilters, meaning that you can run your templates
 -through custom functions before they are compiled. This is good for things like
 -removing unwanted comments, keeping an eye on words or functionality people are
 -putting in templates, translating XML -> HTML, etc. See the register_prefilter
 -documentation for more info.
 -
 -Another addition are the so-called compiler functions. These are custom
 -functions registered by the user that are executed at compilation time of the
 -template. They can be used to inject PHP code or time-sensitive static content
 -into the compiled template.
 -
 -The run-time custom functions are now passed the Smarty object as the second
 -parameter. This can be used, for example, to assign or clear template variables
 -from inside the custom function.
 -
 -clear_compile_dir() was added for clearing out compiled versions of your
 -templates. Not something normally needed, but you may have a need for this if
 -you have $compile_check set to false and you periodically update templates via
 -some automated process. As of 1.4.0, uncompiled templates _always_ get
 -compiled regardless of $compile_check setting, although they won't be checked
 -for recompile if $compile_check is set to false.
 -
 -You can now refer to properties of objects assigned from PHP by using the '->'
 -symbol and specifying the property name after it, e.g. $foo->bar.
 -
 -{php}{/php} tags were added to embed php into the templates. Not normally
 -needed, but some circumstances may call for it. Check out the "componentized
 -templates" tip in the documentation for an example.
 -
 -{capture}{/capture} and {counter} functions were added. See the documentation
 -for a complete description and examples.
 -
 -UPGRADE NOTES
 -
 -The format of the files created in the $compile_dir are now a bit different.
 -The compiled template filename is the template resource name url-encoded.
 -Therefore, all compiled files are now in the top directory of $compile_dir.
 -This was done to make way for arbitrary template resources. Each compiled
 -template also has a header that states what template resource was used to
 -create it. From a unix command prompt, you can use "head -2 *" to see the first
 -two lines of each file.
 -
 -When upgrading to 1.4.0, you will want to clear out all your old files in the
 -$compile_dir. If you have $compile_check set to false and the compiled template
 -does not yet exist, it will compile it regardless of this setting. This way you
 -can clear out the $compile_dir and not worry about setting $compile_check to
 -true to get the inital compilation under way.
 -
 -
 -1.3.2
 ------
 -
 -Smarty now has (an optional) header prepended to the output of the Smarty
 -templates. This displays the Smarty version and the date/time when the page was
 -generated. This is useful for debugging your cache routines, and purely
 -informational so there is evidence that the page was generated by Smarty. Set
 -$show_info_header to false to disable it.
 -
 -{config_load ...} performance was tuned by placing the loaded variables into a
 -global array, so basically a config file is read from the file system and
 -placed into a php array structure only once, no matter how many times it is
 -called in any of the templates. The scope of the loaded variables has changed a
 -bit as well. Variables loaded by config_load used to be treated as global
 -variables, meaning that parent templates (templates that included the current
 -template) could see them. Now the default behavior is such that loaded
 -variables are only visible by the current template and child templates (all
 -templates included after the {config_load ...} is called.) To mimic the
 -original behavior, provide the attribute "global=yes" like so: {config_load
 -file="mystuff.conf" global=yes}. Now when you load in mystuff.conf, the
 -variables will be visible to parent templates (merged with any existing config
 -variables.)
 -
 -A formatting attribute was added to the {math ...} function, adding the ability
 -to control the format of the output. Use the same formatting syntax as the PHP
 -function sprintf().
 -
 -{html_select_time ...} was added, a custom function that works much like
 -{html_select_date ...} except it displays time elements instead of dates.
 -
 -A few custom modifiers were added: count_characters, count_words,
 -count_sentences, count_paragraphs. All pretty self-explanatory.
 -
 -/* vim: set et: */
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/TODO b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/TODO deleted file mode 100644 index 183dd7ae..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/TODO +++ /dev/null @@ -1,12 +0,0 @@ -* handle asp style tags in $php_handler
 -* support implementations of prefiltes, mods, and others as class methods.
 -* ability to concatenate values/strings together
 -* fix all E_NOTICE warnings
 -* make simple math easier
 -* caching all but parts of the template
 -* change plugins so $smarty variable always comes first
 -* get cache ttl with function call
 -FIX: make inserts use normal functions before plugins
 -UPD: change it so that if template comes from some resource,
 -     that resource stays as the default, no need to specify it
 -     in includes.
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Config_File.class.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Config_File.class.php deleted file mode 100644 index 2b99af21..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Config_File.class.php +++ /dev/null @@ -1,365 +0,0 @@ -<?php
 -
 -/**
 - * Config_File class.
 - *
 - * 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
 - *
 - * You may contact the author of Config_File by e-mail at:
 - * {@link andrei@php.net}
 - *
 - * The latest version of Config_File can be obtained from:
 - * http://smarty.php.net/
 - *
 - * @link http://smarty.php.net/
 - * @version 2.6.0
 - * @copyright Copyright: 2001-2003 ispi of Lincoln, Inc.
 - * @author Andrei Zmievski <andrei@php.net>
 - * @access public
 - * @package Smarty
 - */
 -
 -/* $Id: Config_File.class.php,v 1.1 2005/10/17 18:37:39 jeichorn Exp $ */
 -/**
 - * Config file reading class
 - * @package Smarty
 - */
 -class Config_File {
 -    /**#@+
 -     * Options
 -     * @var boolean
 -     */
 -    /**
 -     * Controls whether variables with the same name overwrite each other.
 -     */
 -    var $overwrite        =    true;
 -
 -    /**
 -     * Controls whether config values of on/true/yes and off/false/no get
 -     * converted to boolean values automatically.
 -     */
 -    var $booleanize        =    true;
 -
 -    /**
 -     * Controls whether hidden config sections/vars are read from the file.
 -     */
 -    var $read_hidden     =    true;
 -
 -    /**
 -     * Controls whether or not to fix mac or dos formatted newlines.
 -     * If set to true, \r or \r\n will be changed to \n.
 -     */
 -    var $fix_newlines =    true;
 -    /**#@-*/
 -
 -    /** @access private */
 -    var $_config_path    = "";
 -    var $_config_data    = array();
 -    /**#@-*/
 -
 -    /**
 -     * Constructs a new config file class.
 -     *
 -     * @param string $config_path (optional) path to the config files
 -     */
 -    function Config_File($config_path = NULL)
 -    {
 -        if (isset($config_path))
 -            $this->set_path($config_path);
 -    }
 -
 -
 -    /**
 -     * Set the path where configuration files can be found.
 -     *
 -     * @param string $config_path path to the config files
 -     */
 -    function set_path($config_path)
 -    {
 -        if (!empty($config_path)) {
 -            if (!is_string($config_path) || !file_exists($config_path) || !is_dir($config_path)) {
 -                $this->_trigger_error_msg("Bad config file path '$config_path'");
 -                return;
 -            }
 -            if(substr($config_path, -1) != DIRECTORY_SEPARATOR) {
 -                $config_path .= DIRECTORY_SEPARATOR;
 -            }
 -
 -            $this->_config_path = $config_path;
 -        }
 -    }
 -
 -
 -    /**
 -     * Retrieves config info based on the file, section, and variable name.
 -     *
 -     * @param string $file_name config file to get info for
 -     * @param string $section_name (optional) section to get info for
 -     * @param string $var_name (optional) variable to get info for
 -     * @return string|array a value or array of values
 -     */
 -    function &get($file_name, $section_name = NULL, $var_name = NULL)
 -    {
 -        if (empty($file_name)) {
 -            $this->_trigger_error_msg('Empty config file name');
 -            return;
 -        } else {
 -            $file_name = $this->_config_path . $file_name;
 -            if (!isset($this->_config_data[$file_name]))
 -                $this->load_file($file_name, false);
 -        }
 -
 -        if (!empty($var_name)) {
 -            if (empty($section_name)) {
 -                return $this->_config_data[$file_name]["vars"][$var_name];
 -            } else {
 -                if(isset($this->_config_data[$file_name]["sections"][$section_name]["vars"][$var_name]))
 -                    return $this->_config_data[$file_name]["sections"][$section_name]["vars"][$var_name];
 -                else
 -                    return array();
 -            }
 -        } else {
 -            if (empty($section_name)) {
 -                return (array)$this->_config_data[$file_name]["vars"];
 -            } else {
 -                if(isset($this->_config_data[$file_name]["sections"][$section_name]["vars"]))
 -                    return (array)$this->_config_data[$file_name]["sections"][$section_name]["vars"];
 -                else
 -                    return array();
 -            }
 -        }
 -    }
 -
 -
 -    /**
 -     * Retrieves config info based on the key.
 -     *
 -     * @param $file_name string config key (filename/section/var)
 -     * @return string|array same as get()
 -     * @uses get() retrieves information from config file and returns it
 -     */
 -    function &get_key($config_key)
 -    {
 -        list($file_name, $section_name, $var_name) = explode('/', $config_key, 3);
 -        $result = &$this->get($file_name, $section_name, $var_name);
 -        return $result;
 -    }
 -
 -    /**
 -     * Get all loaded config file names.
 -     *
 -     * @return array an array of loaded config file names
 -     */
 -    function get_file_names()
 -    {
 -        return array_keys($this->_config_data);
 -    }
 -
 -
 -    /**
 -     * Get all section names from a loaded file.
 -     *
 -     * @param string $file_name config file to get section names from
 -     * @return array an array of section names from the specified file
 -     */
 -    function get_section_names($file_name)
 -    {
 -        $file_name = $this->_config_path . $file_name;
 -        if (!isset($this->_config_data[$file_name])) {
 -            $this->_trigger_error_msg("Unknown config file '$file_name'");
 -            return;
 -        }
 -
 -        return array_keys($this->_config_data[$file_name]["sections"]);
 -    }
 -
 -
 -    /**
 -     * Get all global or section variable names.
 -     *
 -     * @param string $file_name config file to get info for
 -     * @param string $section_name (optional) section to get info for
 -     * @return array an array of variables names from the specified file/section
 -     */
 -    function get_var_names($file_name, $section = NULL)
 -    {
 -        if (empty($file_name)) {
 -            $this->_trigger_error_msg('Empty config file name');
 -            return;
 -        } else if (!isset($this->_config_data[$file_name])) {
 -            $this->_trigger_error_msg("Unknown config file '$file_name'");
 -            return;
 -        }
 -
 -        if (empty($section))
 -            return array_keys($this->_config_data[$file_name]["vars"]);
 -        else
 -            return array_keys($this->_config_data[$file_name]["sections"][$section]["vars"]);
 -    }
 -
 -
 -    /**
 -     * Clear loaded config data for a certain file or all files.
 -     *
 -     * @param string $file_name file to clear config data for
 -     */
 -    function clear($file_name = NULL)
 -    {
 -        if ($file_name === NULL)
 -            $this->_config_data = array();
 -        else if (isset($this->_config_data[$file_name]))
 -            $this->_config_data[$file_name] = array();
 -    }
 -
 -
 -    /**
 -     * Load a configuration file manually.
 -     *
 -     * @param string $file_name file name to load
 -     * @param boolean $prepend_path whether current config path should be
 -     *                              prepended to the filename
 -     */
 -    function load_file($file_name, $prepend_path = true)
 -    {
 -        if ($prepend_path && $this->_config_path != "")
 -            $config_file = $this->_config_path . $file_name;
 -        else
 -            $config_file = $file_name;
 -
 -        ini_set('track_errors', true);
 -        $fp = @fopen($config_file, "r");
 -        if (!is_resource($fp)) {
 -            $this->_trigger_error_msg("Could not open config file '$config_file'");
 -            return false;
 -        }
 -
 -        $contents = fread($fp, filesize($config_file));
 -        fclose($fp);
 -
 -        if($this->fix_newlines) {
 -            // fix mac/dos formatted newlines
 -            $contents = preg_replace('!\r\n?!',"\n",$contents);
 -        }
 -
 -        $config_data = array();
 -
 -        /* replace all multi-line values by placeholders */
 -        if (preg_match_all('/"""(.*)"""/Us', $contents, $match)) {
 -            $_triple_quotes = $match[1];
 -            $_i = 0;
 -            $contents = preg_replace('/""".*"""/Use', '"\x1b\x1b\x1b".$_i++."\x1b\x1b\x1b"', $contents);
 -        } else {
 -            $_triple_quotes = null;
 -        }
 -
 -        /* Get global variables first. */
 -        if ($contents{0} != '[' && preg_match("/^(.*?)(\n\[|\Z)/s", $contents, $match))
 -            $config_data["vars"] = $this->_parse_config_block($match[1], $_triple_quotes);
 -
 -        /* Get section variables. */
 -        $config_data["sections"] = array();
 -        preg_match_all("/^\[(.*?)\]/m", $contents, $match);
 -        foreach ($match[1] as $section) {
 -            if ($section{0} == '.' && !$this->read_hidden)
 -                continue;
 -            if (preg_match("/\[".preg_quote($section, '/')."\](.*?)(\n\[|\Z)/s", $contents, $match))
 -                if ($section{0} == '.')
 -                    $section = substr($section, 1);
 -                $config_data["sections"][$section]["vars"] = $this->_parse_config_block($match[1], $_triple_quotes);
 -        }
 -
 -        $this->_config_data[$config_file] = $config_data;
 -
 -        return true;
 -    }
 -
 -    /**#@+ @access private */
 -    /**
 -     * @var string $config_block
 -     */
 -    function _parse_config_block($config_block, $triple_quotes)
 -    {
 -        $vars = array();
 -
 -        /* First we grab the multi-line values. */
 -        if (preg_match_all("/^([^=\n]+)=\s*\x1b\x1b\x1b(\d+)\x1b\x1b\x1b\s*$/ms", $config_block, $match, PREG_SET_ORDER)) {
 -            for ($i = 0; $i < count($match); $i++) {
 -                $this->_set_config_var($vars, trim($match[$i][1]), $triple_quotes[$match[$i][2]], false);
 -            }
 -            $config_block = preg_replace("/^[^=\n]+=\s*\x1b\x1b\x1b\d+\x1b\x1b\x1b\s*$/ms", "", $config_block);
 -        }
 -
 -
 -        $config_lines = preg_split("/\n+/", $config_block);
 -
 -        foreach ($config_lines as $line) {
 -            if (preg_match("/^\s*(\.?\w+)\s*=(.*)/", $line, $match)) {
 -                $var_value = preg_replace('/^([\'"])(.*)\1$/', '\2', trim($match[2]));
 -                $this->_set_config_var($vars, trim($match[1]), $var_value, $this->booleanize);
 -            }
 -        }
 -
 -        return $vars;
 -    }
 -
 -    /**
 -     * @param array &$container
 -     * @param string $var_name
 -     * @param mixed $var_value
 -     * @param boolean $booleanize determines whether $var_value is converted to
 -     *                            to true/false
 -     */
 -    function _set_config_var(&$container, $var_name, $var_value, $booleanize)
 -    {
 -        if ($var_name{0} == '.') {
 -            if (!$this->read_hidden)
 -                return;
 -            else
 -                $var_name = substr($var_name, 1);
 -        }
 -
 -        if (!preg_match("/^[a-zA-Z_]\w*$/", $var_name)) {
 -            $this->_trigger_error_msg("Bad variable name '$var_name'");
 -            return;
 -        }
 -
 -        if ($booleanize) {
 -            if (preg_match("/^(on|true|yes)$/i", $var_value))
 -                $var_value = true;
 -            else if (preg_match("/^(off|false|no)$/i", $var_value))
 -                $var_value = false;
 -        }
 -
 -        if (!isset($container[$var_name]) || $this->overwrite)
 -            $container[$var_name] = $var_value;
 -        else {
 -            settype($container[$var_name], 'array');
 -            $container[$var_name][] = $var_value;
 -        }
 -    }
 -
 -    /**
 -     * @uses trigger_error() creates a PHP warning/error
 -     * @param string $error_msg
 -     * @param integer $error_type one of
 -     */
 -    function _trigger_error_msg($error_msg, $error_type = E_USER_WARNING)
 -    {
 -        trigger_error("Config_File error: $error_msg", $error_type);
 -    }
 -    /**#@-*/
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Smarty.class.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Smarty.class.php deleted file mode 100644 index 1909acab..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Smarty.class.php +++ /dev/null @@ -1,2010 +0,0 @@ -<?php
 -
 -/**
 - * Project:     Smarty: the PHP compiling template engine
 - * File:        Smarty.class.php
 - *
 - * 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
 - *
 - * For questions, help, comments, discussion, etc., please join the
 - * Smarty mailing list. Send a blank e-mail to
 - * smarty-general-subscribe@lists.php.net
 - *
 - * You may contact the authors of Smarty by e-mail at:
 - * monte@ispi.net
 - * andrei@php.net
 - *
 - * Or, write to:
 - * Monte Ohrt
 - * Director of Technology, ispi
 - * 237 S. 70th suite 220
 - * Lincoln, NE 68510
 - *
 - * The latest version of Smarty can be obtained from:
 - * http://smarty.php.net/
 - *
 - * @link http://smarty.php.net/
 - * @copyright 2001-2003 ispi of Lincoln, Inc.
 - * @author Monte Ohrt <monte@ispi.net>
 - * @author Andrei Zmievski <andrei@php.net>
 - * @package Smarty
 - * @version 2.6.0
 - */
 -
 -/* $Id: Smarty.class.php,v 1.1 2005/10/17 18:37:39 jeichorn Exp $ */
 -
 -/**
 - * DIR_SEP isn't used anymore, but third party apps might
 - */
 -if(!defined('DIR_SEP')) {
 -    define('DIR_SEP', DIRECTORY_SEPARATOR);
 -}
 -
 -/**
 - * set SMARTY_DIR to absolute path to Smarty library files.
 - * if not defined, include_path will be used. Sets SMARTY_DIR only if user
 - * application has not already defined it.
 - */
 -
 -if (!defined('SMARTY_DIR')) {
 -    define('SMARTY_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR);
 -}
 -
 -define('SMARTY_PHP_PASSTHRU',   0);
 -define('SMARTY_PHP_QUOTE',      1);
 -define('SMARTY_PHP_REMOVE',     2);
 -define('SMARTY_PHP_ALLOW',      3);
 -
 -/**
 - * @package Smarty
 - */
 -class Smarty
 -{
 -    /**#@+
 -     * Smarty Configuration Section
 -     */
 -
 -    /**
 -     * The name of the directory where templates are located.
 -     *
 -     * @var string
 -     */
 -    var $template_dir    =  'templates';
 -
 -    /**
 -     * The directory where compiled templates are located.
 -     *
 -     * @var string
 -     */
 -    var $compile_dir     =  'templates_c';
 -
 -    /**
 -     * The directory where config files are located.
 -     *
 -     * @var string
 -     */
 -    var $config_dir      =  'configs';
 -
 -    /**
 -     * An array of directories searched for plugins.
 -     *
 -     * @var array
 -     */
 -    var $plugins_dir     =  array('plugins');
 -
 -    /**
 -     * If debugging is enabled, a debug console window will display
 -     * when the page loads (make sure your browser allows unrequested
 -     * popup windows)
 -     *
 -     * @var boolean
 -     */
 -    var $debugging       =  false;
 -
 -    /**
 -     * This is the path to the debug console template. If not set,
 -     * the default one will be used.
 -     *
 -     * @var string
 -     */
 -    var $debug_tpl       =  '';
 -
 -    /**
 -     * This determines if debugging is enable-able from the browser.
 -     * <ul>
 -     *  <li>NONE => no debugging control allowed</li>
 -     *  <li>URL => enable debugging when SMARTY_DEBUG is found in the URL.</li>
 -     * </ul>
 -     * @link http://www.foo.dom/index.php?SMARTY_DEBUG
 -     * @var string
 -     */
 -    var $debugging_ctrl  =  'NONE';
 -
 -    /**
 -     * This tells Smarty whether to check for recompiling or not. Recompiling
 -     * does not need to happen unless a template or config file is changed.
 -     * Typically you enable this during development, and disable for
 -     * production.
 -     *
 -     * @var boolean
 -     */
 -    var $compile_check   =  true;
 -
 -    /**
 -     * This forces templates to compile every time. Useful for development
 -     * or debugging.
 -     *
 -     * @var boolean
 -     */
 -    var $force_compile   =  false;
 -
 -    /**
 -     * This enables template caching.
 -     * <ul>
 -     *  <li>0 = no caching</li>
 -     *  <li>1 = use class cache_lifetime value</li>
 -     *  <li>2 = use cache_lifetime in cache file</li>
 -     * </ul>
 -     * @var integer
 -     */
 -    var $caching         =  0;
 -
 -    /**
 -     * The name of the directory for cache files.
 -     *
 -     * @var string
 -     */
 -    var $cache_dir       =  'cache';
 -
 -    /**
 -     * This is the number of seconds cached content will persist.
 -     * <ul>
 -     *  <li>0 = always regenerate cache</li>
 -     *  <li>-1 = never expires</li>
 -     * </ul>
 -     *
 -     * @var integer
 -     */
 -    var $cache_lifetime  =  3600;
 -
 -    /**
 -     * Only used when $caching is enabled. If true, then If-Modified-Since headers
 -     * are respected with cached content, and appropriate HTTP headers are sent.
 -     * This way repeated hits to a cached page do not send the entire page to the
 -     * client every time.
 -     *
 -     * @var boolean
 -     */
 -    var $cache_modified_check = false;
 -
 -    /**
 -     * This determines how Smarty handles "<?php ... ?>" tags in templates.
 -     * possible values:
 -     * <ul>
 -     *  <li>SMARTY_PHP_PASSTHRU -> print tags as plain text</li>
 -     *  <li>SMARTY_PHP_QUOTE    -> escape tags as entities</li>
 -     *  <li>SMARTY_PHP_REMOVE   -> remove php tags</li>
 -     *  <li>SMARTY_PHP_ALLOW    -> execute php tags</li>
 -     * </ul>
 -     *
 -     * @var integer
 -     */
 -    var $php_handling    =  SMARTY_PHP_PASSTHRU;
 -
 -    /**
 -     * This enables template security. When enabled, many things are restricted
 -     * in the templates that normally would go unchecked. This is useful when
 -     * untrusted parties are editing templates and you want a reasonable level
 -     * of security. (no direct execution of PHP in templates for example)
 -     *
 -     * @var boolean
 -     */
 -    var $security       =   false;
 -
 -    /**
 -     * This is the list of template directories that are considered secure. This
 -     * is used only if {@link $security} is enabled. One directory per array
 -     * element.  {@link $template_dir} is in this list implicitly.
 -     *
 -     * @var array
 -     */
 -    var $secure_dir     =   array();
 -
 -    /**
 -     * These are the security settings for Smarty. They are used only when
 -     * {@link $security} is enabled.
 -     *
 -     * @var array
 -     */
 -    var $security_settings  = array(
 -                                    'PHP_HANDLING'    => false,
 -                                    'IF_FUNCS'        => array('array', 'list',
 -                                                               'isset', 'empty',
 -                                                               'count', 'sizeof',
 -                                                               'in_array', 'is_array',
 -                                                               'true','false'),
 -                                    'INCLUDE_ANY'     => false,
 -                                    'PHP_TAGS'        => false,
 -                                    'MODIFIER_FUNCS'  => array('count'),
 -                                    'ALLOW_CONSTANTS' => false
 -                                   );
 -
 -    /**
 -     * This is an array of directories where trusted php scripts reside.
 -     * {@link $security} is disabled during their inclusion/execution.
 -     *
 -     * @var array
 -     */
 -    var $trusted_dir        = array();
 -
 -    /**
 -     * The left delimiter used for the template tags.
 -     *
 -     * @var string
 -     */
 -    var $left_delimiter  =  '{';
 -
 -    /**
 -     * The right delimiter used for the template tags.
 -     *
 -     * @var string
 -     */
 -    var $right_delimiter =  '}';
 -
 -    /**
 -     * The order in which request variables are registered, similar to
 -     * variables_order in php.ini E = Environment, G = GET, P = POST,
 -     * C = Cookies, S = Server
 -     *
 -     * @var string
 -     */
 -    var $request_vars_order    = "EGPCS";
 -
 -    /**
 -     * Indicates wether $HTTP_*_VARS[] (request_use_auto_globals=false)
 -     * are uses as request-vars or $_*[]-vars. note: if
 -     * request_use_auto_globals is true, then $request_vars_order has
 -     * no effect, but the php-ini-value "gpc_order"
 -     *
 -     * @var boolean
 -     */
 -    var $request_use_auto_globals      = false;
 -
 -    /**
 -     * Set this if you want different sets of compiled files for the same
 -     * templates. This is useful for things like different languages.
 -     * Instead of creating separate sets of templates per language, you
 -     * set different compile_ids like 'en' and 'de'.
 -     *
 -     * @var string
 -     */
 -    var $compile_id            = null;
 -
 -    /**
 -     * This tells Smarty whether or not to use sub dirs in the cache/ and
 -     * templates_c/ directories. sub directories better organized, but
 -     * may not work well with PHP safe mode enabled.
 -     *
 -     * @var boolean
 -     *
 -     */
 -    var $use_sub_dirs          = true;
 -
 -    /**
 -     * This is a list of the modifiers to apply to all template variables.
 -     * Put each modifier in a separate array element in the order you want
 -     * them applied. example: <code>array('escape:"htmlall"');</code>
 -     *
 -     * @var array
 -     */
 -    var $default_modifiers        = array();
 -
 -    /**
 -     * This is the resource type to be used when not specified
 -     * at the beginning of the resource path. examples:
 -     * $smarty->display('file:index.tpl');
 -     * $smarty->display('db:index.tpl');
 -     * $smarty->display('index.tpl'); // will use default resource type
 -     * {include file="file:index.tpl"}
 -     * {include file="db:index.tpl"}
 -     * {include file="index.tpl"} {* will use default resource type *}
 -     *
 -     * @var array
 -     */
 -    var $default_resource_type    = 'file';
 -
 -    /**
 -     * The function used for cache file handling. If not set, built-in caching is used.
 -     *
 -     * @var null|string function name
 -     */
 -    var $cache_handler_func   = null;
 -
 -    /**
 -     * These are the variables from the globals array that are
 -     * assigned to all templates automatically. This isn't really
 -     * necessary any more, you can use the $smarty var to access them
 -     * directly.
 -     *
 -     * @var array
 -     */
 -    var $global_assign   =  array('HTTP_SERVER_VARS' => array('SCRIPT_NAME'));
 -
 -    /**
 -     * The value of "undefined". Leave it alone :-)
 -     *
 -     * @var null
 -     */
 -    var $undefined       =  null;
 -
 -    /**
 -     * This indicates which filters are automatically loaded into Smarty.
 -     *
 -     * @var array array of filter names
 -     */
 -    var $autoload_filters = array();
 -
 -    /**#@+
 -     * @var boolean
 -     */
 -    /**
 -     * This tells if config file vars of the same name overwrite each other or not.
 -     * if disabled, same name variables are accumulated in an array.
 -     */
 -    var $config_overwrite = true;
 -
 -    /**
 -     * This tells whether or not to automatically booleanize config file variables.
 -     * If enabled, then the strings "on", "true", and "yes" are treated as boolean
 -     * true, and "off", "false" and "no" are treated as boolean false.
 -     */
 -    var $config_booleanize = true;
 -
 -    /**
 -     * This tells whether hidden sections [.foobar] are readable from the
 -     * tempalates or not. Normally you would never allow this since that is
 -     * the point behind hidden sections: the application can access them, but
 -     * the templates cannot.
 -     */
 -    var $config_read_hidden = false;
 -
 -    /**
 -     * This tells whether or not automatically fix newlines in config files.
 -     * It basically converts \r (mac) or \r\n (dos) to \n
 -     */
 -    var $config_fix_newlines = true;
 -    /**#@-*/
 -
 -    /**
 -     * If a template cannot be found, this PHP function will be executed.
 -     * Useful for creating templates on-the-fly or other special action.
 -     *
 -     * @var string function name
 -     */
 -    var $default_template_handler_func = '';
 -
 -    /**
 -     * The file that contains the compiler class. This can a full
 -     * pathname, or relative to the php_include path.
 -     *
 -     * @var string
 -     */
 -    var $compiler_file        =    'Smarty_Compiler.class.php';
 -
 -    /**
 -     * The class used for compiling templates.
 -     *
 -     * @var string
 -     */
 -    var $compiler_class        =   'Smarty_Compiler';
 -
 -    /**
 -     * The class used to load config vars.
 -     *
 -     * @var string
 -     */
 -    var $config_class          =   'Config_File';
 -
 -/**#@+
 - * END Smarty Configuration Section
 - * There should be no need to touch anything below this line.
 - * @access private
 - */
 -    /**
 -     * error messages. true/false
 -     *
 -     * @var boolean
 -     */
 -    var $_error_msg            = false;
 -
 -    /**
 -     * where assigned template vars are kept
 -     *
 -     * @var array
 -     */
 -    var $_tpl_vars             = array();
 -
 -    /**
 -     * stores run-time $smarty.* vars
 -     *
 -     * @var null|array
 -     */
 -    var $_smarty_vars          = null;
 -
 -    /**
 -     * keeps track of sections
 -     *
 -     * @var array
 -     */
 -    var $_sections             = array();
 -
 -    /**
 -     * keeps track of foreach blocks
 -     *
 -     * @var array
 -     */
 -    var $_foreach              = array();
 -
 -    /**
 -     * keeps track of tag hierarchy
 -     *
 -     * @var array
 -     */
 -    var $_tag_stack            = array();
 -
 -    /**
 -     * configuration object
 -     *
 -     * @var Config_file
 -     */
 -    var $_conf_obj             = null;
 -
 -    /**
 -     * loaded configuration settings
 -     *
 -     * @var array
 -     */
 -    var $_config               = array(array('vars'  => array(), 'files' => array()));
 -
 -    /**
 -     * md5 checksum of the string 'Smarty'
 -     *
 -     * @var string
 -     */
 -    var $_smarty_md5           = 'f8d698aea36fcbead2b9d5359ffca76f';
 -
 -    /**
 -     * Smarty version number
 -     *
 -     * @var string
 -     */
 -    var $_version              = '2.6.0';
 -
 -    /**
 -     * current template inclusion depth
 -     *
 -     * @var integer
 -     */
 -    var $_inclusion_depth      = 0;
 -
 -    /**
 -     * for different compiled templates
 -     *
 -     * @var string
 -     */
 -    var $_compile_id           = null;
 -
 -    /**
 -     * text in URL to enable debug mode
 -     *
 -     * @var string
 -     */
 -    var $_smarty_debug_id      = 'SMARTY_DEBUG';
 -
 -    /**
 -     * debugging information for debug console
 -     *
 -     * @var array
 -     */
 -    var $_smarty_debug_info    = array();
 -
 -    /**
 -     * info that makes up a cache file
 -     *
 -     * @var array
 -     */
 -    var $_cache_info           = array();
 -
 -    /**
 -     * default file permissions
 -     *
 -     * @var integer
 -     */
 -    var $_file_perms           = 0644;
 -
 -    /**
 -     * default dir permissions
 -     *
 -     * @var integer
 -     */
 -    var $_dir_perms               = 0771;
 -
 -    /**
 -     * registered objects
 -     *
 -     * @var array
 -     */
 -    var $_reg_objects           = array();
 -
 -    /**
 -     * table keeping track of plugins
 -     *
 -     * @var array
 -     */
 -    var $_plugins              = array(
 -                                       'modifier'      => array(),
 -                                       'function'      => array(),
 -                                       'block'         => array(),
 -                                       'compiler'      => array(),
 -                                       'prefilter'     => array(),
 -                                       'postfilter'    => array(),
 -                                       'outputfilter'  => array(),
 -                                       'resource'      => array(),
 -                                       'insert'        => array());
 -
 -
 -    /**
 -     * cache serials
 -     *
 -     * @var array
 -     */
 -    var $_cache_serials = array();
 -
 -    /**
 -     * name of optional cache include file
 -     *
 -     * @var string
 -     */
 -    var $_cache_include = null;
 -
 -    /**
 -     * indicate if the current code is used in a compiled
 -     * include
 -     *
 -     * @var string
 -     */
 -    var $_cache_including = false;
 -
 -    /**#@-*/
 -    /**
 -     * The class constructor.
 -     *
 -     * @uses $global_assign uses {@link assign()} to assign each corresponding
 -     *                      value from $GLOBALS to the template vars
 -     */
 -    function Smarty()
 -    {
 -        foreach ($this->global_assign as $key => $var_name) {
 -            if (is_array($var_name)) {
 -                foreach ($var_name as $var) {
 -                    if (isset($GLOBALS[$key][$var])) {
 -                        $this->assign($var, $GLOBALS[$key][$var]);
 -                    } else {
 -                        $this->assign($var, $this->undefined);
 -                    }
 -                }
 -            } else {
 -                if (isset($GLOBALS[$var_name])) {
 -                    $this->assign($var_name, $GLOBALS[$var_name]);
 -                } else {
 -                    $this->assign($var_name, $this->undefined);
 -                }
 -            }
 -        }
 -    }
 -
 -
 -    /**
 -     * assigns values to template variables
 -     *
 -     * @param array|string $tpl_var the template variable name(s)
 -     * @param mixed $value the value to assign
 -     */
 -    function assign($tpl_var, $value = null)
 -    {
 -        if (is_array($tpl_var)){
 -            foreach ($tpl_var as $key => $val) {
 -                if ($key != '') {
 -                    $this->_tpl_vars[$key] = $val;
 -                }
 -            }
 -        } else {
 -            if ($tpl_var != '')
 -                $this->_tpl_vars[$tpl_var] = $value;
 -        }
 -    }
 -
 -    /**
 -     * assigns values to template variables by reference
 -     *
 -     * @param string $tpl_var the template variable name
 -     * @param mixed $value the referenced value to assign
 -     */
 -    function assign_by_ref($tpl_var, &$value)
 -    {
 -        if ($tpl_var != '')
 -            $this->_tpl_vars[$tpl_var] = &$value;
 -    }
 -
 -    /**
 -     * appends values to template variables
 -     *
 -     * @param array|string $tpl_var the template variable name(s)
 -     * @param mixed $value the value to append
 -     */
 -    function append($tpl_var, $value=null, $merge=false)
 -    {
 -        if (is_array($tpl_var)) {
 -            // $tpl_var is an array, ignore $value
 -            foreach ($tpl_var as $_key => $_val) {
 -                if ($_key != '') {
 -                    if(!@is_array($this->_tpl_vars[$_key])) {
 -                        settype($this->_tpl_vars[$_key],'array');
 -                    }
 -                    if($merge && is_array($_val)) {
 -                        foreach($_val as $_mkey => $_mval) {
 -                            $this->_tpl_vars[$_key][$_mkey] = $_mval;
 -                        }
 -                    } else {
 -                        $this->_tpl_vars[$_key][] = $_val;
 -                    }
 -                }
 -            }
 -        } else {
 -            if ($tpl_var != '' && isset($value)) {
 -                if(!@is_array($this->_tpl_vars[$tpl_var])) {
 -                    settype($this->_tpl_vars[$tpl_var],'array');
 -                }
 -                if($merge && is_array($value)) {
 -                    foreach($value as $_mkey => $_mval) {
 -                        $this->_tpl_vars[$tpl_var][$_mkey] = $_mval;
 -                    }
 -                } else {
 -                    $this->_tpl_vars[$tpl_var][] = $value;
 -                }
 -            }
 -        }
 -    }
 -
 -    /**
 -     * appends values to template variables by reference
 -     *
 -     * @param string $tpl_var the template variable name
 -     * @param mixed $value the referenced value to append
 -     */
 -    function append_by_ref($tpl_var, &$value, $merge=false)
 -    {
 -        if ($tpl_var != '' && isset($value)) {
 -            if(!@is_array($this->_tpl_vars[$tpl_var])) {
 -             settype($this->_tpl_vars[$tpl_var],'array');
 -            }
 -            if ($merge && is_array($value)) {
 -                foreach($value as $_key => $_val) {
 -                    $this->_tpl_vars[$tpl_var][$_key] = &$value[$_key];
 -                }
 -            } else {
 -                $this->_tpl_vars[$tpl_var][] = &$value;
 -            }
 -        }
 -    }
 -
 -
 -    /**
 -     * clear the given assigned template variable.
 -     *
 -     * @param string $tpl_var the template variable to clear
 -     */
 -    function clear_assign($tpl_var)
 -    {
 -        if (is_array($tpl_var))
 -            foreach ($tpl_var as $curr_var)
 -                unset($this->_tpl_vars[$curr_var]);
 -        else
 -            unset($this->_tpl_vars[$tpl_var]);
 -    }
 -
 -
 -    /**
 -     * Registers custom function to be used in templates
 -     *
 -     * @param string $function the name of the template function
 -     * @param string $function_impl the name of the PHP function to register
 -     */
 -    function register_function($function, $function_impl, $cacheable=true, $cache_attrs=null)
 -    {
 -        $this->_plugins['function'][$function] =
 -            array($function_impl, null, null, false, $cacheable, $cache_attrs);
 -
 -    }
 -
 -    /**
 -     * Unregisters custom function
 -     *
 -     * @param string $function name of template function
 -     */
 -    function unregister_function($function)
 -    {
 -        unset($this->_plugins['function'][$function]);
 -    }
 -
 -    /**
 -     * Registers object to be used in templates
 -     *
 -     * @param string $object name of template object
 -     * @param object &$object_impl the referenced PHP object to register
 -     * @param null|array $allowed list of allowed methods (empty = all)
 -     * @param boolean $smarty_args smarty argument format, else traditional
 -     * @param null|array $block_functs list of methods that are block format
 -     */
 -    function register_object($object, &$object_impl, $allowed = array(), $smarty_args = true, $block_methods = array())
 -    {
 -        settype($allowed, 'array');
 -        settype($smarty_args, 'boolean');
 -        $this->_reg_objects[$object] =
 -            array(&$object_impl, $allowed, $smarty_args, $block_methods);
 -    }
 -
 -    /**
 -     * Unregisters object
 -     *
 -     * @param string $object name of template object
 -     */
 -    function unregister_object($object)
 -    {
 -        unset($this->_reg_objects[$object]);
 -    }
 -
 -
 -    /**
 -     * Registers block function to be used in templates
 -     *
 -     * @param string $block name of template block
 -     * @param string $block_impl PHP function to register
 -     */
 -    function register_block($block, $block_impl, $cacheable=true, $cache_attrs=null)
 -    {
 -        $this->_plugins['block'][$block] =
 -            array($block_impl, null, null, false, $cacheable, $cache_attrs);
 -    }
 -
 -    /**
 -     * Unregisters block function
 -     *
 -     * @param string $block name of template function
 -     */
 -    function unregister_block($block)
 -    {
 -        unset($this->_plugins['block'][$block]);
 -    }
 -
 -    /**
 -     * Registers compiler function
 -     *
 -     * @param string $function name of template function
 -     * @param string $function_impl name of PHP function to register
 -     */
 -    function register_compiler_function($function, $function_impl, $cacheable=true)
 -    {
 -        $this->_plugins['compiler'][$function] =
 -            array($function_impl, null, null, false, $cacheable);
 -    }
 -
 -    /**
 -     * Unregisters compiler function
 -     *
 -     * @param string $function name of template function
 -     */
 -    function unregister_compiler_function($function)
 -    {
 -        unset($this->_plugins['compiler'][$function]);
 -    }
 -
 -    /**
 -     * Registers modifier to be used in templates
 -     *
 -     * @param string $modifier name of template modifier
 -     * @param string $modifier_impl name of PHP function to register
 -     */
 -    function register_modifier($modifier, $modifier_impl)
 -    {
 -        $this->_plugins['modifier'][$modifier] =
 -            array($modifier_impl, null, null, false);
 -    }
 -
 -    /**
 -     * Unregisters modifier
 -     *
 -     * @param string $modifier name of template modifier
 -     */
 -    function unregister_modifier($modifier)
 -    {
 -        unset($this->_plugins['modifier'][$modifier]);
 -    }
 -
 -    /**
 -     * Registers a resource to fetch a template
 -     *
 -     * @param string $type name of resource
 -     * @param array $functions array of functions to handle resource
 -     */
 -    function register_resource($type, $functions)
 -    {
 -        if (count($functions)==4) {
 -            $this->_plugins['resource'][$type] =
 -                array($functions, false);
 -
 -        } elseif (count($functions)==5) {
 -            $this->_plugins['resource'][$type] =
 -                array(array(array(&$functions[0], $functions[1])
 -                            ,array(&$functions[0], $functions[2])
 -                            ,array(&$functions[0], $functions[3])
 -                            ,array(&$functions[0], $functions[4]))
 -                      ,false);
 -
 -        } else {
 -            $this->trigger_error("malformed function-list for '$type' in register_resource");
 -
 -        }
 -    }
 -
 -    /**
 -     * Unregisters a resource
 -     *
 -     * @param string $type name of resource
 -     */
 -    function unregister_resource($type)
 -    {
 -        unset($this->_plugins['resource'][$type]);
 -    }
 -
 -    /**
 -     * Registers a prefilter function to apply
 -     * to a template before compiling
 -     *
 -     * @param string $function name of PHP function to register
 -     */
 -    function register_prefilter($function)
 -    {
 -    $_name = (is_array($function)) ? $function[1] : $function;
 -        $this->_plugins['prefilter'][$_name]
 -            = array($function, null, null, false);
 -    }
 -
 -    /**
 -     * Unregisters a prefilter function
 -     *
 -     * @param string $function name of PHP function
 -     */
 -    function unregister_prefilter($function)
 -    {
 -        unset($this->_plugins['prefilter'][$function]);
 -    }
 -
 -    /**
 -     * Registers a postfilter function to apply
 -     * to a compiled template after compilation
 -     *
 -     * @param string $function name of PHP function to register
 -     */
 -    function register_postfilter($function)
 -    {
 -    $_name = (is_array($function)) ? $function[1] : $function;
 -        $this->_plugins['postfilter'][$_name]
 -            = array($function, null, null, false);
 -    }
 -
 -    /**
 -     * Unregisters a postfilter function
 -     *
 -     * @param string $function name of PHP function
 -     */
 -    function unregister_postfilter($function)
 -    {
 -        unset($this->_plugins['postfilter'][$function]);
 -    }
 -
 -    /**
 -     * Registers an output filter function to apply
 -     * to a template output
 -     *
 -     * @param string $function name of PHP function
 -     */
 -    function register_outputfilter($function)
 -    {
 -    $_name = (is_array($function)) ? $function[1] : $function;
 -        $this->_plugins['outputfilter'][$_name]
 -            = array($function, null, null, false);
 -    }
 -
 -    /**
 -     * Unregisters an outputfilter function
 -     *
 -     * @param string $function name of PHP function
 -     */
 -    function unregister_outputfilter($function)
 -    {
 -        unset($this->_plugins['outputfilter'][$function]);
 -    }
 -
 -    /**
 -     * load a filter of specified type and name
 -     *
 -     * @param string $type filter type
 -     * @param string $name filter name
 -     */
 -    function load_filter($type, $name)
 -    {
 -        switch ($type) {
 -            case 'output':
 -                $_params = array('plugins' => array(array($type . 'filter', $name, null, null, false)));
 -                require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');
 -                smarty_core_load_plugins($_params, $this);
 -                break;
 -
 -            case 'pre':
 -            case 'post':
 -                if (!isset($this->_plugins[$type . 'filter'][$name]))
 -                    $this->_plugins[$type . 'filter'][$name] = false;
 -                break;
 -        }
 -    }
 -
 -    /**
 -     * clear cached content for the given template and cache id
 -     *
 -     * @param string $tpl_file name of template file
 -     * @param string $cache_id name of cache_id
 -     * @param string $compile_id name of compile_id
 -     * @param string $exp_time expiration time
 -     * @return boolean
 -     */
 -    function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null)
 -    {
 -
 -        if (!isset($compile_id))
 -            $compile_id = $this->compile_id;
 -
 -    if (!isset($tpl_file))
 -        $compile_id = null;
 -
 -    $_auto_id = $this->_get_auto_id($cache_id, $compile_id);
 -
 -        if (!empty($this->cache_handler_func)) {
 -            return call_user_func_array($this->cache_handler_func,
 -                                  array('clear', &$this, &$dummy, $tpl_file, $cache_id, $compile_id, $exp_time));
 -        } else {
 -            $_params = array('auto_base' => $this->cache_dir,
 -                            'auto_source' => $tpl_file,
 -                            'auto_id' => $_auto_id,
 -                            'exp_time' => $exp_time);
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rm_auto.php');
 -            return smarty_core_rm_auto($_params, $this);
 -        }
 -
 -    }
 -
 -
 -    /**
 -     * clear the entire contents of cache (all templates)
 -     *
 -     * @param string $exp_time expire time
 -     * @return boolean results of {@link smarty_core_rm_auto()}
 -     */
 -    function clear_all_cache($exp_time = null)
 -    {
 -        if (!empty($this->cache_handler_func)) {
 -            $dummy = null;
 -            call_user_func_array($this->cache_handler_func,
 -                           array('clear', &$this, &$dummy, null, null, null, $exp_time));
 -        } else {
 -            $_params = array('auto_base' => $this->cache_dir,
 -                            'auto_source' => null,
 -                            'auto_id' => null,
 -                            'exp_time' => $exp_time);
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rm_auto.php');
 -            return smarty_core_rm_auto($_params, $this);
 -        }
 -    }
 -
 -
 -    /**
 -     * test to see if valid cache exists for this template
 -     *
 -     * @param string $tpl_file name of template file
 -     * @param string $cache_id
 -     * @param string $compile_id
 -     * @return string|false results of {@link _read_cache_file()}
 -     */
 -    function is_cached($tpl_file, $cache_id = null, $compile_id = null)
 -    {
 -        if (!$this->caching)
 -            return false;
 -
 -        if (!isset($compile_id))
 -            $compile_id = $this->compile_id;
 -
 -        $_params = array(
 -            'tpl_file' => $tpl_file,
 -            'cache_id' => $cache_id,
 -            'compile_id' => $compile_id
 -        );
 -        require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.read_cache_file.php');
 -        return smarty_core_read_cache_file($_params, $this);
 -    }
 -
 -
 -    /**
 -     * clear all the assigned template variables.
 -     *
 -     */
 -    function clear_all_assign()
 -    {
 -        $this->_tpl_vars = array();
 -    }
 -
 -    /**
 -     * clears compiled version of specified template resource,
 -     * or all compiled template files if one is not specified.
 -     * This function is for advanced use only, not normally needed.
 -     *
 -     * @param string $tpl_file
 -     * @param string $compile_id
 -     * @param string $exp_time
 -     * @return boolean results of {@link smarty_core_rm_auto()}
 -     */
 -    function clear_compiled_tpl($tpl_file = null, $compile_id = null, $exp_time = null)
 -    {
 -        if (!isset($compile_id)) {
 -            $compile_id = $this->compile_id;
 -        }
 -        $_params = array('auto_base' => $this->compile_dir,
 -                        'auto_source' => $tpl_file,
 -                        'auto_id' => $compile_id,
 -                        'exp_time' => $exp_time,
 -                        'extensions' => array('.inc', '.php'));
 -        require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rm_auto.php');
 -        return smarty_core_rm_auto($_params, $this);
 -    }
 -
 -    /**
 -     * Checks whether requested template exists.
 -     *
 -     * @param string $tpl_file
 -     * @return boolean
 -     */
 -    function template_exists($tpl_file)
 -    {
 -        $_params = array('resource_name' => $tpl_file, 'quiet'=>true, 'get_source'=>false);
 -        return $this->_fetch_resource_info($_params);
 -    }
 -
 -    /**
 -     * Returns an array containing template variables
 -     *
 -     * @param string $name
 -     * @param string $type
 -     * @return array
 -     */
 -    function &get_template_vars($name=null)
 -    {
 -        if(!isset($name)) {
 -            return $this->_tpl_vars;
 -        }
 -        if(isset($this->_tpl_vars[$name])) {
 -            return $this->_tpl_vars[$name];
 -        }
 -    }
 -
 -    /**
 -     * Returns an array containing config variables
 -     *
 -     * @param string $name
 -     * @param string $type
 -     * @return array
 -     */
 -    function &get_config_vars($name=null)
 -    {
 -        if(!isset($name) && is_array($this->_config[0])) {
 -            return $this->_config[0]['vars'];
 -        } else if(isset($this->_config[0]['vars'][$name])) {
 -            return $this->_config[0]['vars'][$name];
 -        }
 -    }
 -
 -    /**
 -     * trigger Smarty error
 -     *
 -     * @param string $error_msg
 -     * @param integer $error_type
 -     */
 -    function trigger_error($error_msg, $error_type = E_USER_WARNING)
 -    {
 -        trigger_error("Smarty error: $error_msg", $error_type);
 -    }
 -
 -
 -    /**
 -     * executes & displays the template results
 -     *
 -     * @param string $resource_name
 -     * @param string $cache_id
 -     * @param string $compile_id
 -     */
 -    function display($resource_name, $cache_id = null, $compile_id = null)
 -    {
 -        $this->fetch($resource_name, $cache_id, $compile_id, true);
 -    }
 -
 -    /**
 -     * executes & returns or displays the template results
 -     *
 -     * @param string $resource_name
 -     * @param string $cache_id
 -     * @param string $compile_id
 -     * @param boolean $display
 -     */
 -    function fetch($resource_name, $cache_id = null, $compile_id = null, $display = false)
 -    {
 -        static $_cache_info = array();
 -
 -        $_smarty_old_error_level = $this->debugging ? error_reporting() : error_reporting(error_reporting() & ~E_NOTICE);
 -
 -        if (!$this->debugging && $this->debugging_ctrl == 'URL'
 -               && @strstr($GLOBALS['HTTP_SERVER_VARS']['QUERY_STRING'], $this->_smarty_debug_id)) {
 -            // enable debugging from URL
 -            $this->debugging = true;
 -        }
 -
 -        if ($this->debugging) {
 -            // capture time for debugging info
 -            $_params = array();
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
 -            $_debug_start_time = smarty_core_get_microtime($_params, $this);
 -            $this->_smarty_debug_info[] = array('type'      => 'template',
 -                                                'filename'  => $resource_name,
 -                                                'depth'     => 0);
 -            $_included_tpls_idx = count($this->_smarty_debug_info) - 1;
 -        }
 -
 -        if (!isset($compile_id)) {
 -            $compile_id = $this->compile_id;
 -        }
 -
 -        $this->_compile_id = $compile_id;
 -        $this->_inclusion_depth = 0;
 -
 -        if ($this->caching) {
 -            // save old cache_info, initialize cache_info
 -            array_push($_cache_info, $this->_cache_info);
 -            $this->_cache_info = array();
 -            $_params = array(
 -                'tpl_file' => $resource_name,
 -                'cache_id' => $cache_id,
 -                'compile_id' => $compile_id,
 -                'results' => null
 -            );
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.read_cache_file.php');
 -            if (smarty_core_read_cache_file($_params, $this)) {
 -                $_smarty_results = $_params['results'];
 -                if (@count($this->_cache_info['insert_tags'])) {
 -                    $_params = array('plugins' => $this->_cache_info['insert_tags']);
 -                    require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');
 -                    smarty_core_load_plugins($_params, $this);
 -                    $_params = array('results' => $_smarty_results);
 -                    require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.process_cached_inserts.php');
 -                    $_smarty_results = smarty_core_process_cached_inserts($_params, $this);
 -                }
 -                if (@count($this->_cache_info['cache_serials'])) {
 -                    $_params = array('results' => $_smarty_results);
 -                    require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.process_compiled_include.php');
 -                    $_smarty_results = smarty_core_process_compiled_include($_params, $this);
 -                }
 -
 -
 -                if ($display) {
 -                    if ($this->debugging)
 -                    {
 -                        // capture time for debugging info
 -                        $_params = array();
 -                        require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
 -                        $this->_smarty_debug_info[$_included_tpls_idx]['exec_time'] = smarty_core_get_microtime($_params, $this) - $_debug_start_time;
 -                        require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.display_debug_console.php');
 -                        $_smarty_results .= smarty_core_display_debug_console($_params, $this);
 -                    }
 -                    if ($this->cache_modified_check) {
 -                        $_last_modified_date = @substr($GLOBALS['HTTP_SERVER_VARS']['HTTP_IF_MODIFIED_SINCE'], 0, strpos($GLOBALS['HTTP_SERVER_VARS']['HTTP_IF_MODIFIED_SINCE'], 'GMT') + 3);
 -                        $_gmt_mtime = gmdate('D, d M Y H:i:s', $this->_cache_info['timestamp']).' GMT';
 -                        if (@count($this->_cache_info['insert_tags']) == 0
 -                            && !$this->_cache_serials
 -                            && $_gmt_mtime == $_last_modified_date) {
 -                            if (php_sapi_name()=='cgi')
 -                                header("Status: 304 Not Modified");
 -                            else
 -                                header("HTTP/1.1 304 Not Modified");
 -
 -                        } else {
 -                            header("Last-Modified: ".$_gmt_mtime);
 -                            echo $_smarty_results;
 -                        }
 -                    } else {
 -                            echo $_smarty_results;
 -                    }
 -                    error_reporting($_smarty_old_error_level);
 -                    // restore initial cache_info
 -                    $this->_cache_info = array_pop($_cache_info);
 -                    return true;
 -                } else {
 -                    error_reporting($_smarty_old_error_level);
 -                    // restore initial cache_info
 -                    $this->_cache_info = array_pop($_cache_info);
 -                    return $_smarty_results;
 -                }
 -            } else {
 -                $this->_cache_info['template'][$resource_name] = true;
 -                if ($this->cache_modified_check) {
 -                    header("Last-Modified: ".gmdate('D, d M Y H:i:s', time()).' GMT');
 -                }
 -            }
 -        }
 -
 -        // load filters that are marked as autoload
 -        if (count($this->autoload_filters)) {
 -            foreach ($this->autoload_filters as $_filter_type => $_filters) {
 -                foreach ($_filters as $_filter) {
 -                    $this->load_filter($_filter_type, $_filter);
 -                }
 -            }
 -        }
 -
 -        $_smarty_compile_path = $this->_get_compile_path($resource_name);
 -
 -        // if we just need to display the results, don't perform output
 -        // buffering - for speed
 -        $_cache_including = $this->_cache_including;
 -        $this->_cache_including = false;
 -        if ($display && !$this->caching && count($this->_plugins['outputfilter']) == 0) {
 -            if ($this->_is_compiled($resource_name, $_smarty_compile_path)
 -                    || $this->_compile_resource($resource_name, $_smarty_compile_path))
 -            {
 -                include($_smarty_compile_path);
 -            }
 -        } else {
 -            ob_start();
 -            if ($this->_is_compiled($resource_name, $_smarty_compile_path)
 -                    || $this->_compile_resource($resource_name, $_smarty_compile_path))
 -            {
 -                include($_smarty_compile_path);
 -            }
 -            $_smarty_results = ob_get_contents();
 -            ob_end_clean();
 -
 -            foreach ((array)$this->_plugins['outputfilter'] as $_output_filter) {
 -                $_smarty_results = call_user_func_array($_output_filter[0], array($_smarty_results, &$this));
 -            }
 -        }
 -
 -        if ($this->caching) {
 -            $_params = array('tpl_file' => $resource_name,
 -                        'cache_id' => $cache_id,
 -                        'compile_id' => $compile_id,
 -                        'results' => $_smarty_results);
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_cache_file.php');
 -            smarty_core_write_cache_file($_params, $this);
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.process_cached_inserts.php');
 -            $_smarty_results = smarty_core_process_cached_inserts($_params, $this);
 -
 -            if ($this->_cache_serials) {
 -                // strip nocache-tags from output
 -                $_smarty_results = preg_replace('!(\{/?nocache\:[0-9a-f]{32}#\d+\})!s'
 -                                                ,''
 -                                                ,$_smarty_results);
 -            }
 -            // restore initial cache_info
 -            $this->_cache_info = array_pop($_cache_info);
 -        }
 -        $this->_cache_including = $_cache_including;
 -
 -        if ($display) {
 -            if (isset($_smarty_results)) { echo $_smarty_results; }
 -            if ($this->debugging) {
 -                // capture time for debugging info
 -                $_params = array();
 -                require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
 -                $this->_smarty_debug_info[$_included_tpls_idx]['exec_time'] = (smarty_core_get_microtime($_params, $this) - $_debug_start_time);
 -                require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.display_debug_console.php');
 -                echo smarty_core_display_debug_console($_params, $this);
 -            }
 -            error_reporting($_smarty_old_error_level);
 -            return;
 -        } else {
 -            error_reporting($_smarty_old_error_level);
 -            if (isset($_smarty_results)) { return $_smarty_results; }
 -        }
 -    }
 -
 -    /**
 -     * load configuration values
 -     *
 -     * @param string $file
 -     * @param string $section
 -     * @param string $scope
 -     */
 -    function config_load($file, $section = null, $scope = 'global')
 -    {
 -        require_once($this->_get_plugin_filepath('function', 'config_load'));
 -        smarty_function_config_load(array('file' => $file, 'section' => $section, 'scope' => $scope), $this);
 -    }
 -
 -    /**
 -     * return a reference to a registered object
 -     *
 -     * @param string $name
 -     * @return object
 -     */
 -    function &get_registered_object($name) {
 -        if (!isset($this->_reg_objects[$name]))
 -        $this->_trigger_fatal_error("'$name' is not a registered object");
 -
 -        if (!is_object($this->_reg_objects[$name][0]))
 -        $this->_trigger_fatal_error("registered '$name' is not an object");
 -
 -        return $this->_reg_objects[$name][0];
 -    }
 -
 -    /**
 -     * clear configuration values
 -     *
 -     * @param string $var
 -     */
 -    function clear_config($var = null)
 -    {
 -        if(!isset($var)) {
 -            // clear all values
 -            $this->_config = array(array('vars'  => array(),
 -                                         'files' => array()));
 -        } else {
 -            unset($this->_config[0]['vars'][$var]);
 -        }
 -    }
 -
 -    /**
 -     * get filepath of requested plugin
 -     *
 -     * @param string $type
 -     * @param string $name
 -     * @return string|false
 -     */
 -    function _get_plugin_filepath($type, $name)
 -    {
 -        $_params = array('type' => $type, 'name' => $name);
 -        require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.assemble_plugin_filepath.php');
 -        return smarty_core_assemble_plugin_filepath($_params, $this);
 -    }
 -
 -   /**
 -     * test if resource needs compiling
 -     *
 -     * @param string $resource_name
 -     * @param string $compile_path
 -     * @return boolean
 -     */
 -    function _is_compiled($resource_name, $compile_path)
 -    {
 -        if (!$this->force_compile && file_exists($compile_path)) {
 -            if (!$this->compile_check) {
 -                // no need to check compiled file
 -                return true;
 -            } else {
 -                // get file source and timestamp
 -                $_params = array('resource_name' => $resource_name, 'get_source'=>false);
 -                if (!$this->_fetch_resource_info($_params, $this)) {
 -                    return false;
 -                }
 -                if ($_params['resource_timestamp'] <= filemtime($compile_path)) {
 -                    // template not expired, no recompile
 -                    return true;
 -                } else {
 -                    // compile template
 -                    return false;
 -                }
 -            }
 -        } else {
 -            // compiled template does not exist, or forced compile
 -            return false;
 -        }
 -    }
 -
 -   /**
 -     * compile the template
 -     *
 -     * @param string $resource_name
 -     * @param string $compile_path
 -     * @return boolean
 -     */
 -    function _compile_resource($resource_name, $compile_path)
 -    {
 -
 -        $_params = array('resource_name' => $resource_name);
 -        if (!$this->_fetch_resource_info($_params)) {
 -            return false;
 -        }
 -
 -        $_source_content = $_params['source_content'];
 -        $_resource_timestamp = $_params['resource_timestamp'];
 -        $_cache_include    = substr($compile_path, 0, -4).'.inc';
 -
 -        if ($this->_compile_source($resource_name, $_source_content, $_compiled_content, $_cache_include)) {
 -            // if a _cache_serial was set, we also have to write an include-file:
 -            if ($this->_cache_include_info) {
 -                require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_compiled_include.php');
 -                smarty_core_write_compiled_include(array_merge($this->_cache_include_info, array('compiled_content'=>$_compiled_content)),  $this);
 -            }
 -
 -            $_params = array('compile_path'=>$compile_path, 'compiled_content' => $_compiled_content, 'resource_timestamp' => $_resource_timestamp);
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_compiled_resource.php');
 -            smarty_core_write_compiled_resource($_params, $this);
 -
 -            return true;
 -        } else {
 -            $this->trigger_error($smarty_compiler->_error_msg);
 -            return false;
 -        }
 -
 -    }
 -
 -   /**
 -     * compile the given source
 -     *
 -     * @param string $resource_name
 -     * @param string $source_content
 -     * @param string $compiled_content
 -     * @return boolean
 -     */
 -    function _compile_source($resource_name, &$source_content, &$compiled_content, $cache_include_path=null)
 -    {
 -        if (file_exists(SMARTY_DIR . $this->compiler_file)) {
 -            require_once(SMARTY_DIR . $this->compiler_file);
 -        } else {
 -            // use include_path
 -            require_once($this->compiler_file);
 -        }
 -
 -
 -        $smarty_compiler = new $this->compiler_class;
 -
 -        $smarty_compiler->template_dir      = $this->template_dir;
 -        $smarty_compiler->compile_dir       = $this->compile_dir;
 -        $smarty_compiler->plugins_dir       = $this->plugins_dir;
 -        $smarty_compiler->config_dir        = $this->config_dir;
 -        $smarty_compiler->force_compile     = $this->force_compile;
 -        $smarty_compiler->caching           = $this->caching;
 -        $smarty_compiler->php_handling      = $this->php_handling;
 -        $smarty_compiler->left_delimiter    = $this->left_delimiter;
 -        $smarty_compiler->right_delimiter   = $this->right_delimiter;
 -        $smarty_compiler->_version          = $this->_version;
 -        $smarty_compiler->security          = $this->security;
 -        $smarty_compiler->secure_dir        = $this->secure_dir;
 -        $smarty_compiler->security_settings = $this->security_settings;
 -        $smarty_compiler->trusted_dir       = $this->trusted_dir;
 -        $smarty_compiler->_reg_objects      = &$this->_reg_objects;
 -        $smarty_compiler->_plugins          = &$this->_plugins;
 -        $smarty_compiler->_tpl_vars         = &$this->_tpl_vars;
 -        $smarty_compiler->default_modifiers = $this->default_modifiers;
 -        $smarty_compiler->compile_id        = $this->_compile_id;
 -        $smarty_compiler->_config            = $this->_config;
 -        $smarty_compiler->request_use_auto_globals  = $this->request_use_auto_globals;
 -
 -        $smarty_compiler->_cache_serial = null;
 -        $smarty_compiler->_cache_include = $cache_include_path;
 -
 -
 -        $_results = $smarty_compiler->_compile_file($resource_name, $source_content, $compiled_content);
 -
 -        if ($smarty_compiler->_cache_serial) {
 -            $this->_cache_include_info = array(
 -                'cache_serial'=>$smarty_compiler->_cache_serial
 -                ,'plugins_code'=>$smarty_compiler->_plugins_code
 -                ,'include_file_path' => $cache_include_path);
 -
 -        } else {
 -            $this->_cache_include_info = null;
 -
 -        }
 -
 -        return $_results;
 -    }
 -
 -    /**
 -     * Get the compile path for this resource
 -     *
 -     * @param string $resource_name
 -     * @return string results of {@link _get_auto_filename()}
 -     */
 -    function _get_compile_path($resource_name)
 -    {
 -        return $this->_get_auto_filename($this->compile_dir, $resource_name,
 -                                         $this->_compile_id) . '.php';
 -    }
 -
 -    /**
 -     * fetch the template info. Gets timestamp, and source
 -     * if get_source is true
 -     *
 -     * sets $source_content to the source of the template, and
 -     * $resource_timestamp to its time stamp
 -     * @param string $resource_name
 -     * @param string $source_content
 -     * @param integer $resource_timestamp
 -     * @param boolean $get_source
 -     * @param boolean $quiet
 -     * @return boolean
 -     */
 -
 -    function _fetch_resource_info(&$params)
 -    {
 -        if(!isset($params['get_source'])) { $params['get_source'] = true; }
 -        if(!isset($params['quiet'])) { $params['quiet'] = false; }
 -
 -        $_return = false;
 -        $_params = array('resource_name' => $params['resource_name']) ;
 -        if (isset($params['resource_base_path']))
 -            $_params['resource_base_path'] = $params['resource_base_path'];
 -
 -        if ($this->_parse_resource_name($_params)) {
 -            $_resource_type = $_params['resource_type'];
 -            $_resource_name = $_params['resource_name'];
 -            switch ($_resource_type) {
 -                case 'file':
 -                    if ($params['get_source']) {
 -                        $params['source_content'] = $this->_read_file($_resource_name);
 -                    }
 -                    $params['resource_timestamp'] = filemtime($_resource_name);
 -                    $_return = is_file($_resource_name);
 -                    break;
 -
 -                default:
 -                    // call resource functions to fetch the template source and timestamp
 -                    if ($params['get_source']) {
 -                        $_source_return = isset($this->_plugins['resource'][$_resource_type]) &&
 -                            call_user_func_array($this->_plugins['resource'][$_resource_type][0][0],
 -                                                 array($_resource_name, &$params['source_content'], &$this));
 -                    } else {
 -                        $_source_return = true;
 -                    }
 -
 -                    $_timestamp_return = isset($this->_plugins['resource'][$_resource_type]) &&
 -                        call_user_func_array($this->_plugins['resource'][$_resource_type][0][1],
 -                                             array($_resource_name, &$params['resource_timestamp'], &$this));
 -
 -                    $_return = $_source_return && $_timestamp_return;
 -                    break;
 -            }
 -        }
 -
 -        if (!$_return) {
 -            // see if we can get a template with the default template handler
 -            if (!empty($this->default_template_handler_func)) {
 -                if (!is_callable($this->default_template_handler_func)) {
 -                    $this->trigger_error("default template handler function \"$this->default_template_handler_func\" doesn't exist.");
 -                } else {
 -                    $_return = call_user_func_array(
 -                        $this->default_template_handler_func,
 -                        array($_params['resource_type'], $_params['resource_name'], &$params['source_content'], &$params['resource_timestamp'], &$this));
 -                }
 -            }
 -        }
 -
 -        if (!$_return) {
 -            if (!$params['quiet']) {
 -                $this->trigger_error('unable to read resource: "' . $params['resource_name'] . '"');
 -            }
 -        } else if ($_return && $this->security) {
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.is_secure.php');
 -            if (!smarty_core_is_secure($_params, $this)) {
 -                if (!$params['quiet'])
 -                    $this->trigger_error('(secure mode) accessing "' . $params['resource_name'] . '" is not allowed');
 -                $params['source_content'] = null;
 -                $params['resource_timestamp'] = null;
 -                return false;
 -            }
 -        }
 -        return $_return;
 -    }
 -
 -
 -    /**
 -     * parse out the type and name from the resource
 -     *
 -     * @param string $resource_base_path
 -     * @param string $resource_name
 -     * @param string $resource_type
 -     * @param string $resource_name
 -     * @return boolean
 -     */
 -
 -    function _parse_resource_name(&$params)
 -    {
 -
 -        // split tpl_path by the first colon
 -        $_resource_name_parts = explode(':', $params['resource_name'], 2);
 -
 -        if (count($_resource_name_parts) == 1) {
 -            // no resource type given
 -            $params['resource_type'] = $this->default_resource_type;
 -            $params['resource_name'] = $_resource_name_parts[0];
 -        } else {
 -            if(strlen($_resource_name_parts[0]) == 1) {
 -                // 1 char is not resource type, but part of filepath
 -                $params['resource_type'] = $this->default_resource_type;
 -                $params['resource_name'] = $params['resource_name'];
 -            } else {
 -                $params['resource_type'] = $_resource_name_parts[0];
 -                $params['resource_name'] = $_resource_name_parts[1];
 -            }
 -        }
 -
 -        if ($params['resource_type'] == 'file') {
 -            if (!preg_match("/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/", $params['resource_name'])) {
 -                // relative pathname to $params['resource_base_path']
 -                // use the first directory where the file is found
 -                if (isset($params['resource_base_path'])) {
 -                    $_resource_base_path = (array)$params['resource_base_path'];
 -                } else {
 -                    $_resource_base_path = (array)$this->template_dir;
 -                    $_resource_base_path[] = '.';
 -                }
 -                foreach ($_resource_base_path as $_curr_path) {
 -                    $_fullpath = $_curr_path . DIRECTORY_SEPARATOR . $params['resource_name'];
 -                    if (file_exists($_fullpath) && is_file($_fullpath)) {
 -                        $params['resource_name'] = $_fullpath;
 -                        return true;
 -                    }
 -                    // didn't find the file, try include_path
 -                    $_params = array('file_path' => $_fullpath);
 -                    require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
 -                    if(smarty_core_get_include_path($_params, $this)) {
 -                        $params['resource_name'] = $_params['new_file_path'];
 -                        return true;
 -                    }
 -                }
 -                return false;
 -            }
 -        } elseif (empty($this->_plugins['resource'][$params['resource_type']])) {
 -            $_params = array('type' => $params['resource_type']);
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_resource_plugin.php');
 -            smarty_core_load_resource_plugin($_params, $this);
 -        }
 -
 -        return true;
 -    }
 -
 -
 -    /**
 -     * Handle modifiers
 -     *
 -     * @param string|null $modifier_name
 -     * @param array|null $map_array
 -     * @return string result of modifiers
 -     */
 -    function _run_mod_handler()
 -    {
 -        $_args = func_get_args();
 -        list($_modifier_name, $_map_array) = array_splice($_args, 0, 2);
 -        list($_func_name, $_tpl_file, $_tpl_line) =
 -            $this->_plugins['modifier'][$_modifier_name];
 -
 -        $_var = $_args[0];
 -        foreach ($_var as $_key => $_val) {
 -            $_args[0] = $_val;
 -            $_var[$_key] = call_user_func_array($_func_name, $_args);
 -        }
 -        return $_var;
 -    }
 -
 -    /**
 -     * Remove starting and ending quotes from the string
 -     *
 -     * @param string $string
 -     * @return string
 -     */
 -    function _dequote($string)
 -    {
 -        if (($string{0} == "'" || $string{0} == '"') &&
 -            $string{strlen($string)-1} == $string{0})
 -            return substr($string, 1, -1);
 -        else
 -            return $string;
 -    }
 -
 -
 -    /**
 -     * read in a file from line $start for $lines.
 -     * read the entire file if $start and $lines are null.
 -     *
 -     * @param string $filename
 -     * @param integer $start
 -     * @param integer $lines
 -     * @return string
 -     */
 -    function _read_file($filename, $start=null, $lines=null)
 -    {
 -        if (!($fd = @fopen($filename, 'r'))) {
 -            return false;
 -        }
 -        flock($fd, LOCK_SH);
 -        if ($start == null && $lines == null) {
 -            // read the entire file
 -            $contents = fread($fd, filesize($filename));
 -        } else {
 -            if ( $start > 1 ) {
 -                // skip the first lines before $start
 -                for ($loop=1; $loop < $start; $loop++) {
 -                    fgets($fd, 65536);
 -                }
 -            }
 -            if ( $lines == null ) {
 -                // read the rest of the file
 -                while (!feof($fd)) {
 -                    $contents .= fgets($fd, 65536);
 -                }
 -            } else {
 -                // read up to $lines lines
 -                for ($loop=0; $loop < $lines; $loop++) {
 -                    $contents .= fgets($fd, 65536);
 -                    if (feof($fd)) {
 -                        break;
 -                    }
 -                }
 -            }
 -        }
 -        fclose($fd);
 -        return $contents;
 -    }
 -
 -    /**
 -     * get a concrete filename for automagically created content
 -     *
 -     * @param string $auto_base
 -     * @param string $auto_source
 -     * @param string $auto_id
 -     * @return string
 -     * @staticvar string|null
 -     * @staticvar string|null
 -     */
 -    function _get_auto_filename($auto_base, $auto_source = null, $auto_id = null)
 -    {
 -        $_compile_dir_sep =  $this->use_sub_dirs ? DIRECTORY_SEPARATOR : '^';
 -
 -        if(@is_dir($auto_base)) {
 -            $_return = $auto_base . DIRECTORY_SEPARATOR;
 -        } else {
 -            // auto_base not found, try include_path
 -            $_params = array('file_path' => $auto_base);
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
 -            smarty_core_get_include_path($_params, $this);
 -            $_return = isset($_params['new_file_path']) ? $_params['new_file_path'] . DIRECTORY_SEPARATOR : null;
 -        }
 -
 -        if(isset($auto_id)) {
 -            // make auto_id safe for directory names
 -            $auto_id = str_replace('%7C',$_compile_dir_sep,(urlencode($auto_id)));
 -            // split into separate directories
 -            $_return .= $auto_id . $_compile_dir_sep;
 -        }
 -
 -        if(isset($auto_source)) {
 -            // make source name safe for filename
 -            $_filename = urlencode(basename($auto_source));
 -            $_crc32 = crc32($auto_source) . $_compile_dir_sep;
 -            // prepend %% to avoid name conflicts with
 -            // with $params['auto_id'] names
 -            $_crc32 = '%%' . substr($_crc32,0,3) . $_compile_dir_sep . '%%' . $_crc32;
 -            $_return .= $_crc32 . $_filename;
 -        }
 -
 -        return $_return;
 -    }
 -
 -    /**
 -     * unlink a file, possibly using expiration time
 -     *
 -     * @param string $resource
 -     * @param integer $exp_time
 -     */
 -    function _unlink($resource, $exp_time = null)
 -    {
 -        if(isset($exp_time)) {
 -            if(time() - @filemtime($resource) >= $exp_time) {
 -                return @unlink($resource);
 -            }
 -        } else {
 -            return @unlink($resource);
 -        }
 -    }
 -
 -    /**
 -     * returns an auto_id for auto-file-functions
 -     *
 -     * @param string $cache_id
 -     * @param string $compile_id
 -     * @return string|null
 -     */
 -    function _get_auto_id($cache_id=null, $compile_id=null) {
 -    if (isset($cache_id))
 -        return (isset($compile_id)) ? $cache_id . '|' . $compile_id  : $cache_id;
 -    elseif(isset($compile_id))
 -        return $compile_id;
 -    else
 -        return null;
 -    }
 -
 -    /**
 -     * trigger Smarty plugin error
 -     *
 -     * @param string $error_msg
 -     * @param string $tpl_file
 -     * @param integer $tpl_line
 -     * @param string $file
 -     * @param integer $line
 -     * @param integer $error_type
 -     */
 -    function _trigger_fatal_error($error_msg, $tpl_file = null, $tpl_line = null,
 -            $file = null, $line = null, $error_type = E_USER_ERROR)
 -    {
 -        if(isset($file) && isset($line)) {
 -            $info = ' ('.basename($file).", line $line)";
 -        } else {
 -            $info = null;
 -        }
 -        if (isset($tpl_line) && isset($tpl_file)) {
 -            trigger_error("Smarty error: [in " . $tpl_file . " line " .
 -                          $tpl_line . "]: $error_msg$info", $error_type);
 -        } else {
 -            trigger_error("Smarty error: $error_msg$info", $error_type);
 -        }
 -    }
 -
 -
 -    /**
 -     * callback function for preg_replace, to call a non-cacheable block
 -     * @return string
 -     */
 -    function _process_compiled_include_callback($match) {
 -        $_func = '_smarty_tplfunc_'.$match[2].'_'.$match[3];
 -        ob_start();
 -        $_func($this);
 -        $_ret = ob_get_contents();
 -        ob_end_clean();
 -        return $_ret;
 -    }
 -
 -
 -    /**
 -     * called for included templates
 -     *
 -     * @param string $_smarty_include_tpl_file
 -     * @param string $_smarty_include_vars
 -     */
 -
 -    // $_smarty_include_tpl_file, $_smarty_include_vars
 -
 -    function _smarty_include($params)
 -    {
 -        if ($this->debugging) {
 -            $_params = array();
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
 -            $debug_start_time = smarty_core_get_microtime($_params, $this);
 -            $this->_smarty_debug_info[] = array('type'      => 'template',
 -                                                  'filename'  => $params['smarty_include_tpl_file'],
 -                                                  'depth'     => ++$this->_inclusion_depth);
 -            $included_tpls_idx = count($this->_smarty_debug_info) - 1;
 -        }
 -
 -        $this->_tpl_vars = array_merge($this->_tpl_vars, $params['smarty_include_vars']);
 -
 -        // config vars are treated as local, so push a copy of the
 -        // current ones onto the front of the stack
 -        array_unshift($this->_config, $this->_config[0]);
 -
 -        $_smarty_compile_path = $this->_get_compile_path($params['smarty_include_tpl_file']);
 -
 -
 -        if ($this->_is_compiled($params['smarty_include_tpl_file'], $_smarty_compile_path)
 -            || $this->_compile_resource($params['smarty_include_tpl_file'], $_smarty_compile_path))
 -        {
 -            include($_smarty_compile_path);
 -        }
 -
 -        // pop the local vars off the front of the stack
 -        array_shift($this->_config);
 -
 -        $this->_inclusion_depth--;
 -
 -        if ($this->debugging) {
 -            // capture time for debugging info
 -            $_params = array();
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
 -            $this->_smarty_debug_info[$included_tpls_idx]['exec_time'] = smarty_core_get_microtime($_params, $this) - $debug_start_time;
 -        }
 -
 -        if ($this->caching) {
 -            $this->_cache_info['template'][$params['smarty_include_tpl_file']] = true;
 -        }
 -    }
 -
 -
 -    /**
 -     * get or set an array of cached attributes for function that is
 -     * not cacheable
 -     * @return array
 -     */
 -    function &_smarty_cache_attrs($cache_serial, $count) {
 -        $_cache_attrs =& $this->_cache_info['cache_attrs'][$cache_serial][$count];
 -
 -        if ($this->_cache_including) {
 -            /* return next set of cache_attrs */
 -            $_return =& current($_cache_attrs);
 -            next($_cache_attrs);
 -            return $_return;
 -
 -        } else {
 -            /* add a reference to a new set of cache_attrs */
 -            $_cache_attrs[] = array();
 -            return $_cache_attrs[count($_cache_attrs)-1];
 -
 -        }
 -
 -    }
 -
 -
 -    /**
 -     * wrapper for include() retaining $this
 -     * @return mixed
 -     */
 -    function _include($filename, $once=false, $params=null)
 -    {
 -        if ($once) {
 -            return include_once($filename);
 -        } else {
 -            return include($filename);
 -        }
 -    }
 -
 -
 -    /**
 -     * wrapper for eval() retaining $this
 -     * @return mixed
 -     */
 -    function _eval($code, $params=null)
 -    {
 -        return eval($code);
 -    }
 -    /**#@-*/
 -
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Smarty_Compiler.class.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Smarty_Compiler.class.php deleted file mode 100644 index 263591fc..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/Smarty_Compiler.class.php +++ /dev/null @@ -1,2123 +0,0 @@ -<?php
 -
 -/**
 - * Project:     Smarty: the PHP compiling template engine
 - * File:        Smarty_Compiler.class.php
 - *
 - * 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
 - *
 - * You may contact the authors of Smarty by e-mail at:
 - * monte@ispi.net
 - * andrei@php.net
 - *
 - * Or, write to:
 - * Monte Ohrt
 - * Director of Technology, ispi
 - * 237 S. 70th suite 220
 - * Lincoln, NE 68510
 - *
 - * The latest version of Smarty can be obtained from:
 - * http://smarty.php.net/
 - *
 - * @link http://smarty.php.net/
 - * @author Monte Ohrt <monte@ispi.net>
 - * @author Andrei Zmievski <andrei@php.net>
 - * @version 2.6.0
 - * @copyright 2001-2003 ispi of Lincoln, Inc.
 - * @package Smarty
 - */
 -
 -/* $Id: Smarty_Compiler.class.php,v 1.1 2005/10/17 18:37:39 jeichorn Exp $ */
 -
 -/**
 - * Template compiling class
 - * @package Smarty
 - */
 -class Smarty_Compiler extends Smarty {
 -
 -    // internal vars
 -    /**#@+
 -     * @access private
 -     */
 -    var $_sectionelse_stack     =   array();    // keeps track of whether section had 'else' part
 -    var $_foreachelse_stack     =   array();    // keeps track of whether foreach had 'else' part
 -    var $_literal_blocks        =   array();    // keeps literal template blocks
 -    var $_php_blocks            =   array();    // keeps php code blocks
 -    var $_current_file          =   null;       // the current template being compiled
 -    var $_current_line_no       =   1;          // line number for error messages
 -    var $_capture_stack         =   array();    // keeps track of nested capture buffers
 -    var $_plugin_info           =   array();    // keeps track of plugins to load
 -    var $_init_smarty_vars      =   false;
 -    var $_permitted_tokens      =   array('true','false','yes','no','on','off','null');
 -    var $_db_qstr_regexp        =   null;        // regexps are setup in the constructor
 -    var $_si_qstr_regexp        =   null;
 -    var $_qstr_regexp           =   null;
 -    var $_func_regexp           =   null;
 -    var $_var_bracket_regexp    =   null;
 -    var $_dvar_guts_regexp      =   null;
 -    var $_dvar_regexp           =   null;
 -    var $_cvar_regexp           =   null;
 -    var $_svar_regexp           =   null;
 -    var $_avar_regexp           =   null;
 -    var $_mod_regexp            =   null;
 -    var $_var_regexp            =   null;
 -    var $_parenth_param_regexp  =   null;
 -    var $_func_call_regexp      =   null;
 -    var $_obj_ext_regexp        =   null;
 -    var $_obj_start_regexp      =   null;
 -    var $_obj_params_regexp     =   null;
 -    var $_obj_call_regexp       =   null;
 -    var $_cacheable_state       =   0;
 -    var $_cache_attrs_count     =   0;
 -    var $_nocache_count         =   0;
 -    var $_cache_serial          =   null;
 -    var $_cache_include         =   null;
 -
 -    var $_strip_depth           =   0;
 -    var $_additional_newline    =   "\n";
 -
 -    /**#@-*/
 -    /**
 -     * The class constructor.
 -     */
 -    function Smarty_Compiler()
 -    {
 -        // matches double quoted strings:
 -        // "foobar"
 -        // "foo\"bar"
 -        $this->_db_qstr_regexp = '"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"';
 -
 -        // matches single quoted strings:
 -        // 'foobar'
 -        // 'foo\'bar'
 -        $this->_si_qstr_regexp = '\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\'';
 -
 -        // matches single or double quoted strings
 -        $this->_qstr_regexp = '(?:' . $this->_db_qstr_regexp . '|' . $this->_si_qstr_regexp . ')';
 -
 -        // matches bracket portion of vars
 -        // [0]
 -        // [foo]
 -        // [$bar]
 -        $this->_var_bracket_regexp = '\[\$?[\w\.]+\]';
 -
 -        // matches $ vars (not objects):
 -        // $foo
 -        // $foo.bar
 -        // $foo.bar.foobar
 -        // $foo[0]
 -        // $foo[$bar]
 -        // $foo[5][blah]
 -        // $foo[5].bar[$foobar][4]
 -        $this->_dvar_math_regexp = '[\+\-\*\/\%]';
 -        $this->_dvar_math_var_regexp = '[\$\w\.\+\-\*\/\%\d\>\[\]]';
 -        $this->_dvar_num_var_regexp = '\-?\d+(?:\.\d+)?' . $this->_dvar_math_var_regexp;
 -        $this->_dvar_guts_regexp = '\w+(?:' . $this->_var_bracket_regexp
 -                . ')*(?:\.\$?\w+(?:' . $this->_var_bracket_regexp . ')*)*(?:' . $this->_dvar_math_regexp . '(?:\-?\d+(?:\.\d+)?|' . $this->_dvar_math_var_regexp . ')*)?';
 -        $this->_dvar_regexp = '\$' . $this->_dvar_guts_regexp;
 -
 -        // matches config vars:
 -        // #foo#
 -        // #foobar123_foo#
 -        $this->_cvar_regexp = '\#\w+\#';
 -
 -        // matches section vars:
 -        // %foo.bar%
 -        $this->_svar_regexp = '\%\w+\.\w+\%';
 -
 -        // matches all valid variables (no quotes, no modifiers)
 -        $this->_avar_regexp = '(?:' . $this->_dvar_regexp . '|'
 -           . $this->_cvar_regexp . '|' . $this->_svar_regexp . ')';
 -
 -        // matches valid variable syntax:
 -        // $foo
 -        // $foo
 -        // #foo#
 -        // #foo#
 -        // "text"
 -        // "text"
 -        $this->_var_regexp = '(?:' . $this->_avar_regexp . '|' . $this->_qstr_regexp . ')';
 -
 -        // matches valid object call (no objects allowed in parameters):
 -        // $foo->bar
 -        // $foo->bar()
 -        // $foo->bar("text")
 -        // $foo->bar($foo, $bar, "text")
 -        // $foo->bar($foo, "foo")
 -        // $foo->bar->foo()
 -        // $foo->bar->foo->bar()
 -        $this->_obj_ext_regexp = '\->(?:\$?' . $this->_dvar_guts_regexp . ')';
 -        $this->_obj_params_regexp = '\((?:\w+|'
 -                . $this->_var_regexp . '(?:\s*,\s*(?:(?:\w+|'
 -                . $this->_var_regexp . ')))*)?\)';
 -        $this->_obj_start_regexp = '(?:' . $this->_dvar_regexp . '(?:' . $this->_obj_ext_regexp . ')+)';
 -        $this->_obj_call_regexp = '(?:' . $this->_obj_start_regexp . '(?:' . $this->_obj_params_regexp . ')?)';
 -
 -        // matches valid modifier syntax:
 -        // |foo
 -        // |@foo
 -        // |foo:"bar"
 -        // |foo:$bar
 -        // |foo:"bar":$foobar
 -        // |foo|bar
 -        // |foo:$foo->bar
 -        $this->_mod_regexp = '(?:\|@?\w+(?::(?>-?\w+|'
 -           . $this->_obj_call_regexp . '|' . $this->_avar_regexp . '|' . $this->_qstr_regexp .'))*)';
 -
 -        // matches valid function name:
 -        // foo123
 -        // _foo_bar
 -        $this->_func_regexp = '[a-zA-Z_]\w*';
 -
 -        // matches valid registered object:
 -        // foo->bar
 -        $this->_reg_obj_regexp = '[a-zA-Z_]\w*->[a-zA-Z_]\w*';
 -
 -        // matches valid parameter values:
 -        // true
 -        // $foo
 -        // $foo|bar
 -        // #foo#
 -        // #foo#|bar
 -        // "text"
 -        // "text"|bar
 -        // $foo->bar
 -        $this->_param_regexp = '(?:\s*(?:' . $this->_obj_call_regexp . '|'
 -           . $this->_var_regexp  . '|\w+)(?>' . $this->_mod_regexp . '*)\s*)';
 -
 -        // matches valid parenthesised function parameters:
 -        //
 -        // "text"
 -        //    $foo, $bar, "text"
 -        // $foo|bar, "foo"|bar, $foo->bar($foo)|bar
 -        $this->_parenth_param_regexp = '(?:\((?:\w+|'
 -                . $this->_param_regexp . '(?:\s*,\s*(?:(?:\w+|'
 -                . $this->_param_regexp . ')))*)?\))';
 -
 -        // matches valid function call:
 -        // foo()
 -        // foo_bar($foo)
 -        // _foo_bar($foo,"bar")
 -        // foo123($foo,$foo->bar(),"foo")
 -        $this->_func_call_regexp = '(?:' . $this->_func_regexp . '\s*(?:'
 -           . $this->_parenth_param_regexp . '))';
 -    }
 -
 -    /**
 -     * compile a resource
 -     *
 -     * sets $compiled_content to the compiled source
 -     * @param string $resource_name
 -     * @param string $source_content
 -     * @param string $compiled_content
 -     * @return true
 -     */
 -    function _compile_file($resource_name, $source_content, &$compiled_content)
 -    {
 -
 -        if ($this->security) {
 -            // do not allow php syntax to be executed unless specified
 -            if ($this->php_handling == SMARTY_PHP_ALLOW &&
 -                !$this->security_settings['PHP_HANDLING']) {
 -                $this->php_handling = SMARTY_PHP_PASSTHRU;
 -            }
 -        }
 -
 -        $this->_load_filters();
 -
 -        $this->_current_file = $resource_name;
 -        $this->_current_line_no = 1;
 -        $ldq = preg_quote($this->left_delimiter, '!');
 -        $rdq = preg_quote($this->right_delimiter, '!');
 -
 -        // run template source through prefilter functions
 -        if (count($this->_plugins['prefilter']) > 0) {
 -            foreach ($this->_plugins['prefilter'] as $filter_name => $prefilter) {
 -                if ($prefilter === false) continue;
 -                if ($prefilter[3] || is_callable($prefilter[0])) {
 -                    $source_content = call_user_func_array($prefilter[0],
 -                                                            array($source_content, &$this));
 -                    $this->_plugins['prefilter'][$filter_name][3] = true;
 -                } else {
 -                    $this->_trigger_fatal_error("[plugin] prefilter '$filter_name' is not implemented");
 -                }
 -            }
 -        }
 -
 -        /* Annihilate the comments. */
 -        $source_content = preg_replace("!({$ldq})\*(.*?)\*({$rdq})!se",
 -                                        "'\\1*'.str_repeat(\"\n\", substr_count('\\2', \"\n\")) .'*\\3'",
 -                                        $source_content);
 -
 -        /* Pull out the literal blocks. */
 -        preg_match_all("!{$ldq}\s*literal\s*{$rdq}(.*?){$ldq}\s*/literal\s*{$rdq}!s", $source_content, $_match);
 -        $this->_literal_blocks = $_match[1];
 -        $source_content = preg_replace("!{$ldq}\s*literal\s*{$rdq}(.*?){$ldq}\s*/literal\s*{$rdq}!s",
 -                                        $this->_quote_replace($this->left_delimiter.'literal'.$this->right_delimiter), $source_content);
 -
 -        /* Pull out the php code blocks. */
 -        preg_match_all("!{$ldq}php{$rdq}(.*?){$ldq}/php{$rdq}!s", $source_content, $_match);
 -        $this->_php_blocks = $_match[1];
 -        $source_content = preg_replace("!{$ldq}php{$rdq}(.*?){$ldq}/php{$rdq}!s",
 -                                        $this->_quote_replace($this->left_delimiter.'php'.$this->right_delimiter), $source_content);
 -
 -        /* Gather all template tags. */
 -        preg_match_all("!{$ldq}\s*(.*?)\s*{$rdq}!s", $source_content, $_match);
 -        $template_tags = $_match[1];
 -        /* Split content by template tags to obtain non-template content. */
 -        $text_blocks = preg_split("!{$ldq}.*?{$rdq}!s", $source_content);
 -
 -        /* loop through text blocks */
 -        for ($curr_tb = 0, $for_max = count($text_blocks); $curr_tb < $for_max; $curr_tb++) {
 -            /* match anything resembling php tags */
 -            if (preg_match_all('!(<\?(?:\w+|=)?|\?>|language\s*=\s*[\"\']?php[\"\']?)!is', $text_blocks[$curr_tb], $sp_match)) {
 -                /* replace tags with placeholders to prevent recursive replacements */
 -                $sp_match[1] = array_unique($sp_match[1]);
 -                usort($sp_match[1], '_smarty_sort_length');
 -                for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++) {
 -                    $text_blocks[$curr_tb] = str_replace($sp_match[1][$curr_sp],'%%%SMARTYSP'.$curr_sp.'%%%',$text_blocks[$curr_tb]);
 -                }
 -                /* process each one */
 -                for ($curr_sp = 0, $for_max2 = count($sp_match[1]); $curr_sp < $for_max2; $curr_sp++) {
 -                    if ($this->php_handling == SMARTY_PHP_PASSTHRU) {
 -                        /* echo php contents */
 -                        $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', '<?php echo \''.str_replace("'", "\'", $sp_match[1][$curr_sp]).'\'; ?>'."\n", $text_blocks[$curr_tb]);
 -                    } else if ($this->php_handling == SMARTY_PHP_QUOTE) {
 -                        /* quote php tags */
 -                        $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', htmlspecialchars($sp_match[1][$curr_sp]), $text_blocks[$curr_tb]);
 -                    } else if ($this->php_handling == SMARTY_PHP_REMOVE) {
 -                        /* remove php tags */
 -                        $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', '', $text_blocks[$curr_tb]);
 -                    } else {
 -                        /* SMARTY_PHP_ALLOW, but echo non php starting tags */
 -                        $sp_match[1][$curr_sp] = preg_replace('%(<\?(?!php|=|$))%i', '<?php echo \'\\1\'?>'."\n", $sp_match[1][$curr_sp]);
 -                        $text_blocks[$curr_tb] = str_replace('%%%SMARTYSP'.$curr_sp.'%%%', $sp_match[1][$curr_sp], $text_blocks[$curr_tb]);
 -                    }
 -                }
 -            }
 -        }
 -
 -        /* Compile the template tags into PHP code. */
 -        $compiled_tags = array();
 -        for ($i = 0, $for_max = count($template_tags); $i < $for_max; $i++) {
 -            $this->_current_line_no += substr_count($text_blocks[$i], "\n");
 -            $compiled_tags[] = $this->_compile_tag($template_tags[$i]);
 -            $this->_current_line_no += substr_count($template_tags[$i], "\n");
 -        }
 -
 -        $compiled_content = '';
 -
 -        /* Interleave the compiled contents and text blocks to get the final result. */
 -        for ($i = 0, $for_max = count($compiled_tags); $i < $for_max; $i++) {
 -            if ($compiled_tags[$i] == '') {
 -                // tag result empty, remove first newline from following text block
 -                $text_blocks[$i+1] = preg_replace('!^(\r\n|\r|\n)!', '', $text_blocks[$i+1]);
 -            }
 -            $compiled_content .= $text_blocks[$i].$compiled_tags[$i];
 -        }
 -        $compiled_content .= $text_blocks[$i];
 -
 -        /* Reformat data between 'strip' and '/strip' tags, removing spaces, tabs and newlines. */
 -        if (preg_match_all("!{$ldq}strip{$rdq}.*?{$ldq}/strip{$rdq}!s", $compiled_content, $_match)) {
 -            $strip_tags = $_match[0];
 -            $strip_tags_modified = preg_replace("!{$ldq}/?strip{$rdq}|[\t ]+$|^[\t ]+!m", '', $strip_tags);
 -            $strip_tags_modified = preg_replace('![\r\n]+!m', '', $strip_tags_modified);
 -            for ($i = 0, $for_max = count($strip_tags); $i < $for_max; $i++)
 -                $compiled_content = preg_replace("!{$ldq}strip{$rdq}.*?{$ldq}/strip{$rdq}!s",
 -                                                  $this->_quote_replace($strip_tags_modified[$i]),
 -                                                  $compiled_content, 1);
 -        }
 -
 -        // remove \n from the end of the file, if any
 -        if (($_len=strlen($compiled_content)) && ($compiled_content{$_len - 1} == "\n" )) {
 -            $compiled_content = substr($compiled_content, 0, -1);
 -        }
 -
 -        if (!empty($this->_cache_serial)) {
 -            $compiled_content = "<?php \$this->_cache_serials['".$this->_cache_include."'] = '".$this->_cache_serial."'; ?>" . $compiled_content;
 -        }
 -
 -        // remove unnecessary close/open tags
 -        $compiled_content = preg_replace('!\?>\n?<\?php!', '', $compiled_content);
 -
 -        // run compiled template through postfilter functions
 -        if (count($this->_plugins['postfilter']) > 0) {
 -            foreach ($this->_plugins['postfilter'] as $filter_name => $postfilter) {
 -                if ($postfilter === false) continue;
 -                if ($postfilter[3] || is_callable($postfilter[0])) {
 -                    $compiled_content = call_user_func_array($postfilter[0],
 -                                                              array($compiled_content, &$this));
 -                    $this->_plugins['postfilter'][$filter_name][3] = true;
 -                } else {
 -                    $this->_trigger_fatal_error("Smarty plugin error: postfilter '$filter_name' is not implemented");
 -                }
 -            }
 -        }
 -
 -        // put header at the top of the compiled template
 -        $template_header = "<?php /* Smarty version ".$this->_version.", created on ".strftime("%Y-%m-%d %H:%M:%S")."\n";
 -        $template_header .= "         compiled from ".strtr(urlencode($resource_name), array('%2F'=>'/', '%3A'=>':'))." */ ?>\n";
 -
 -        /* Emit code to load needed plugins. */
 -        $this->_plugins_code = '';
 -        if (count($this->_plugin_info)) {
 -            $_plugins_params = "array('plugins' => array(";
 -            foreach ($this->_plugin_info as $plugin_type => $plugins) {
 -                foreach ($plugins as $plugin_name => $plugin_info) {
 -                    $_plugins_params .= "array('$plugin_type', '$plugin_name', '$plugin_info[0]', $plugin_info[1], ";
 -                    $_plugins_params .= $plugin_info[2] ? 'true),' : 'false),';
 -                }
 -            }
 -            $_plugins_params .= '))';
 -            $plugins_code = "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');\nsmarty_core_load_plugins($_plugins_params, \$this); ?>\n";
 -            $template_header .= $plugins_code;
 -            $this->_plugin_info = array();
 -            $this->_plugins_code = $plugins_code;
 -        }
 -
 -        if ($this->_init_smarty_vars) {
 -            $template_header .= "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.assign_smarty_interface.php');\nsmarty_core_assign_smarty_interface(null, \$this); ?>\n";
 -            $this->_init_smarty_vars = false;
 -        }
 -
 -        $compiled_content = $template_header . $compiled_content;
 -
 -        return true;
 -    }
 -
 -    /**
 -     * Compile a template tag
 -     *
 -     * @param string $template_tag
 -     * @return string
 -     */
 -    function _compile_tag($template_tag)
 -    {
 -        /* Matched comment. */
 -        if ($template_tag{0} == '*' && $template_tag{strlen($template_tag) - 1} == '*')
 -            return '';
 -
 -        /* Split tag into two three parts: command, command modifiers and the arguments. */
 -        if(! preg_match('/^(?:(' . $this->_obj_call_regexp . '|' . $this->_var_regexp
 -                . '|\/?' . $this->_reg_obj_regexp . '|\/?' . $this->_func_regexp . ')(' . $this->_mod_regexp . '*))
 -                      (?:\s+(.*))?$
 -                    /xs', $template_tag, $match)) {
 -            $this->_syntax_error("unrecognized tag: $template_tag", E_USER_ERROR, __FILE__, __LINE__);
 -        }
 -
 -        $tag_command = $match[1];
 -        $tag_modifier = isset($match[2]) ? $match[2] : null;
 -        $tag_args = isset($match[3]) ? $match[3] : null;
 -
 -        if (preg_match('!^' . $this->_obj_call_regexp . '|' . $this->_var_regexp . '$!', $tag_command)) {
 -            /* tag name is a variable or object */
 -            $_return = $this->_parse_var_props($tag_command . $tag_modifier, $this->_parse_attrs($tag_args));
 -            if(isset($_tag_attrs['assign'])) {
 -                return "<?php \$this->assign('" . $this->_dequote($_tag_attrs['assign']) . "', $_return ); ?>\n";
 -            } else {
 -                return "<?php echo $_return; ?>" . $this->_additional_newline;
 -            }
 -        }
 -
 -        /* If the tag name is a registered object, we process it. */
 -        if (preg_match('!^\/?' . $this->_reg_obj_regexp . '$!', $tag_command)) {
 -            return $this->_compile_registered_object_tag($tag_command, $this->_parse_attrs($tag_args), $tag_modifier);
 -        }
 -
 -        switch ($tag_command) {
 -            case 'include':
 -                return $this->_compile_include_tag($tag_args);
 -
 -            case 'include_php':
 -                return $this->_compile_include_php_tag($tag_args);
 -
 -            case 'if':
 -                return $this->_compile_if_tag($tag_args);
 -
 -            case 'else':
 -                return '<?php else: ?>';
 -
 -            case 'elseif':
 -                return $this->_compile_if_tag($tag_args, true);
 -
 -            case '/if':
 -                return '<?php endif; ?>';
 -
 -            case 'capture':
 -                return $this->_compile_capture_tag(true, $tag_args);
 -
 -            case '/capture':
 -                return $this->_compile_capture_tag(false);
 -
 -            case 'ldelim':
 -                return $this->left_delimiter;
 -
 -            case 'rdelim':
 -                return $this->right_delimiter;
 -
 -            case 'section':
 -                array_push($this->_sectionelse_stack, false);
 -                return $this->_compile_section_start($tag_args);
 -
 -            case 'sectionelse':
 -                $this->_sectionelse_stack[count($this->_sectionelse_stack)-1] = true;
 -                return "<?php endfor; else: ?>";
 -
 -            case '/section':
 -                if (array_pop($this->_sectionelse_stack))
 -                    return "<?php endif; ?>";
 -                else
 -                    return "<?php endfor; endif; ?>";
 -
 -            case 'foreach':
 -                array_push($this->_foreachelse_stack, false);
 -                return $this->_compile_foreach_start($tag_args);
 -                break;
 -
 -            case 'foreachelse':
 -                $this->_foreachelse_stack[count($this->_foreachelse_stack)-1] = true;
 -                return "<?php endforeach; unset(\$_from); else: ?>";
 -
 -            case '/foreach':
 -                if (array_pop($this->_foreachelse_stack))
 -                    return "<?php endif; ?>";
 -                else
 -                    return "<?php endforeach; unset(\$_from); endif; ?>";
 -
 -            case 'strip':
 -            case '/strip':
 -                if ($tag_command{0}=='/') {
 -                    if (--$this->_strip_depth==0) { /* outermost closing {/strip} */
 -                        $this->_additional_newline = "\n";
 -                        return $this->left_delimiter.$tag_command.$this->right_delimiter;
 -                    }
 -                } else {
 -                    if ($this->_strip_depth++==0) { /* outermost opening {strip} */
 -                        $this->_additional_newline = "";
 -                        return $this->left_delimiter.$tag_command.$this->right_delimiter;
 -                    }
 -                }
 -                return '';
 -
 -            case 'literal':
 -                list (,$literal_block) = each($this->_literal_blocks);
 -                $this->_current_line_no += substr_count($literal_block, "\n");
 -                return "<?php echo '".str_replace("'", "\'", str_replace("\\", "\\\\", $literal_block))."'; ?>" . $this->_additional_newline;
 -
 -            case 'php':
 -                if ($this->security && !$this->security_settings['PHP_TAGS']) {
 -                    $this->_syntax_error("(secure mode) php tags not permitted", E_USER_WARNING, __FILE__, __LINE__);
 -                    return;
 -                }
 -                list (,$php_block) = each($this->_php_blocks);
 -                $this->_current_line_no += substr_count($php_block, "\n");
 -                return '<?php '.$php_block.' ?>';
 -
 -            case 'insert':
 -                return $this->_compile_insert_tag($tag_args);
 -
 -            default:
 -                if ($this->_compile_compiler_tag($tag_command, $tag_args, $output)) {
 -                    return $output;
 -                } else if ($this->_compile_block_tag($tag_command, $tag_args, $tag_modifier, $output)) {
 -                    return $output;
 -                } else {
 -                    return $this->_compile_custom_tag($tag_command, $tag_args, $tag_modifier);
 -                }
 -        }
 -    }
 -
 -
 -    /**
 -     * compile the custom compiler tag
 -     *
 -     * sets $output to the compiled custom compiler tag
 -     * @param string $tag_command
 -     * @param string $tag_args
 -     * @param string $output
 -     * @return boolean
 -     */
 -    function _compile_compiler_tag($tag_command, $tag_args, &$output)
 -    {
 -        $found = false;
 -        $have_function = true;
 -
 -        /*
 -         * First we check if the compiler function has already been registered
 -         * or loaded from a plugin file.
 -         */
 -        if (isset($this->_plugins['compiler'][$tag_command])) {
 -            $found = true;
 -            $plugin_func = $this->_plugins['compiler'][$tag_command][0];
 -            if (!is_callable($plugin_func)) {
 -                $message = "compiler function '$tag_command' is not implemented";
 -                $have_function = false;
 -            }
 -        }
 -        /*
 -         * Otherwise we need to load plugin file and look for the function
 -         * inside it.
 -         */
 -        else if ($plugin_file = $this->_get_plugin_filepath('compiler', $tag_command)) {
 -            $found = true;
 -
 -            include_once $plugin_file;
 -
 -            $plugin_func = 'smarty_compiler_' . $tag_command;
 -            if (!is_callable($plugin_func)) {
 -                $message = "plugin function $plugin_func() not found in $plugin_file\n";
 -                $have_function = false;
 -            } else {
 -                $this->_plugins['compiler'][$tag_command] = array($plugin_func, null, null, null, true);
 -            }
 -        }
 -
 -        /*
 -         * True return value means that we either found a plugin or a
 -         * dynamically registered function. False means that we didn't and the
 -         * compiler should now emit code to load custom function plugin for this
 -         * tag.
 -         */
 -        if ($found) {
 -            if ($have_function) {
 -                $output = call_user_func_array($plugin_func, array($tag_args, &$this));
 -                if($output != '') {
 -                $output = '<?php ' . $this->_push_cacheable_state('compiler', $tag_command)
 -                                   . $output
 -                                   . $this->_pop_cacheable_state('compiler', $tag_command) . ' ?>';
 -                }
 -            } else {
 -                $this->_syntax_error($message, E_USER_WARNING, __FILE__, __LINE__);
 -            }
 -            return true;
 -        } else {
 -            return false;
 -        }
 -    }
 -
 -
 -    /**
 -     * compile block function tag
 -     *
 -     * sets $output to compiled block function tag
 -     * @param string $tag_command
 -     * @param string $tag_args
 -     * @param string $tag_modifier
 -     * @param string $output
 -     * @return boolean
 -     */
 -    function _compile_block_tag($tag_command, $tag_args, $tag_modifier, &$output)
 -    {
 -        if ($tag_command{0} == '/') {
 -            $start_tag = false;
 -            $tag_command = substr($tag_command, 1);
 -        } else
 -            $start_tag = true;
 -
 -        $found = false;
 -        $have_function = true;
 -
 -        /*
 -         * First we check if the block function has already been registered
 -         * or loaded from a plugin file.
 -         */
 -        if (isset($this->_plugins['block'][$tag_command])) {
 -            $found = true;
 -            $plugin_func = $this->_plugins['block'][$tag_command][0];
 -            if (!is_callable($plugin_func)) {
 -                $message = "block function '$tag_command' is not implemented";
 -                $have_function = false;
 -            }
 -        }
 -        /*
 -         * Otherwise we need to load plugin file and look for the function
 -         * inside it.
 -         */
 -        else if ($plugin_file = $this->_get_plugin_filepath('block', $tag_command)) {
 -            $found = true;
 -
 -            include_once $plugin_file;
 -
 -            $plugin_func = 'smarty_block_' . $tag_command;
 -            if (!function_exists($plugin_func)) {
 -                $message = "plugin function $plugin_func() not found in $plugin_file\n";
 -                $have_function = false;
 -            } else {
 -                $this->_plugins['block'][$tag_command] = array($plugin_func, null, null, null, true);
 -
 -            }
 -        }
 -
 -        if (!$found) {
 -            return false;
 -        } else if (!$have_function) {
 -            $this->_syntax_error($message, E_USER_WARNING, __FILE__, __LINE__);
 -            return true;
 -        }
 -
 -        /*
 -         * Even though we've located the plugin function, compilation
 -         * happens only once, so the plugin will still need to be loaded
 -         * at runtime for future requests.
 -         */
 -        $this->_add_plugin('block', $tag_command);
 -
 -        if ($start_tag) {
 -            $output = '<?php ' . $this->_push_cacheable_state('block', $tag_command);
 -            $attrs = $this->_parse_attrs($tag_args);
 -            $arg_list = $this->_compile_arg_list('block', $tag_command, $attrs, $_cache_attrs='');
 -            $output .= "$_cache_attrs\$_params = \$this->_tag_stack[] = array('$tag_command', array(".implode(',', $arg_list).')); ';
 -            $output .= $this->_compile_plugin_call('block', $tag_command).'($_params[1], null, $this, $_block_repeat=true); unset($_params);';
 -            $output .= 'while ($_block_repeat) { ob_start(); ?>';
 -        } else {
 -            $output = '<?php $this->_block_content = ob_get_contents(); ob_end_clean(); ';
 -            $_out_tag_text = $this->_compile_plugin_call('block', $tag_command).'($this->_tag_stack[count($this->_tag_stack)-1][1], $this->_block_content, $this, $_block_repeat=false)';
 -            if ($tag_modifier != '') {
 -                $this->_parse_modifiers($_out_tag_text, $tag_modifier);
 -            }
 -            $output .= 'echo '.$_out_tag_text.'; } ';
 -            $output .= " array_pop(\$this->_tag_stack); " . $this->_pop_cacheable_state('block', $tag_command) . '?>';
 -        }
 -
 -        return true;
 -    }
 -
 -
 -    /**
 -     * compile custom function tag
 -     *
 -     * @param string $tag_command
 -     * @param string $tag_args
 -     * @param string $tag_modifier
 -     * @return string
 -     */
 -    function _compile_custom_tag($tag_command, $tag_args, $tag_modifier)
 -    {
 -        $this->_add_plugin('function', $tag_command);
 -
 -        $_cacheable_state = $this->_push_cacheable_state('function', $tag_command);
 -        $attrs = $this->_parse_attrs($tag_args);
 -        $arg_list = $this->_compile_arg_list('function', $tag_command, $attrs, $_cache_attrs='');
 -
 -        $_return = $this->_compile_plugin_call('function', $tag_command).'(array('.implode(',', $arg_list)."), \$this)";
 -        if($tag_modifier != '') {
 -            $this->_parse_modifiers($_return, $tag_modifier);
 -        }
 -
 -        if($_return != '') {
 -            $_return =  '<?php ' . $_cacheable_state . $_cache_attrs . 'echo ' . $_return . ';'
 -                . $this->_pop_cacheable_state('function', $tag_command) . "?>" . $this->_additional_newline;
 -        }
 -
 -        return $_return;
 -    }
 -
 -    /**
 -     * compile a registered object tag
 -     *
 -     * @param string $tag_command
 -     * @param array $attrs
 -     * @param string $tag_modifier
 -     * @return string
 -     */
 -    function _compile_registered_object_tag($tag_command, $attrs, $tag_modifier)
 -    {
 -        if ($tag_command{0} == '/') {
 -            $start_tag = false;
 -            $tag_command = substr($tag_command, 1);
 -        } else {
 -            $start_tag = true;
 -        }
 -
 -        list($object, $obj_comp) = explode('->', $tag_command);
 -
 -        $arg_list = array();
 -        if(count($attrs)) {
 -            $_assign_var = false;
 -            foreach ($attrs as $arg_name => $arg_value) {
 -                if($arg_name == 'assign') {
 -                    $_assign_var = $arg_value;
 -                    unset($attrs['assign']);
 -                    continue;
 -                }
 -                if (is_bool($arg_value))
 -                    $arg_value = $arg_value ? 'true' : 'false';
 -                $arg_list[] = "'$arg_name' => $arg_value";
 -            }
 -        }
 -
 -        if($this->_reg_objects[$object][2]) {
 -            // smarty object argument format
 -            $args = "array(".implode(',', (array)$arg_list)."), \$this";
 -        } else {
 -            // traditional argument format
 -            $args = implode(',', array_values($attrs));
 -            if (empty($args)) {
 -                $args = 'null';
 -            }
 -        }
 -
 -        $prefix = '';
 -        $postfix = '';
 -        $newline = '';
 -        if(!is_object($this->_reg_objects[$object][0])) {
 -            $this->_trigger_fatal_error("registered '$object' is not an object");
 -        } elseif(!empty($this->_reg_objects[$object][1]) && !in_array($obj_comp, $this->_reg_objects[$object][1])) {
 -            $this->_trigger_fatal_error("'$obj_comp' is not a registered component of object '$object'");
 -        } elseif(method_exists($this->_reg_objects[$object][0], $obj_comp)) {
 -            // method
 -            if(in_array($obj_comp, $this->_reg_objects[$object][3])) {
 -                // block method
 -                if ($start_tag) {
 -                    $prefix = "\$this->_tag_stack[] = array('$obj_comp', $args); ";
 -                    $prefix .= "\$this->_reg_objects['$object'][0]->$obj_comp(\$this->_tag_stack[count(\$this->_tag_stack)-1][1], null, \$this, \$_block_repeat=true); ";
 -                    $prefix .= "while (\$_block_repeat) { ob_start();";
 -                    $return = null;
 -                    $postfix = '';
 -            } else {
 -                    $prefix = "\$this->_obj_block_content = ob_get_contents(); ob_end_clean(); ";
 -                    $return = "\$this->_reg_objects['$object'][0]->$obj_comp(\$this->_tag_stack[count(\$this->_tag_stack)-1][1], \$this->_obj_block_content, \$this, \$_block_repeat=false)";
 -                    $postfix = "} array_pop(\$this->_tag_stack);";
 -                }
 -            } else {
 -                // non-block method
 -                $return = "\$this->_reg_objects['$object'][0]->$obj_comp($args)";
 -            }
 -        } else {
 -            // property
 -            $return = "\$this->_reg_objects['$object'][0]->$obj_comp";
 -        }
 -
 -        if($return != null) {
 -            if($tag_modifier != '') {
 -                $this->_parse_modifiers($return, $tag_modifier);
 -            }
 -
 -            if(!empty($_assign_var)) {
 -                $output = "\$this->assign('" . $this->_dequote($_assign_var) ."',  $return);";
 -            } else {
 -                $output = 'echo ' . $return . ';';
 -                $newline = $this->_additional_newline;
 -            }
 -        } else {
 -            $output = '';
 -        }
 -
 -        return '<?php ' . $prefix . $output . $postfix . "?>" . $newline;
 -    }
 -
 -    /**
 -     * Compile {insert ...} tag
 -     *
 -     * @param string $tag_args
 -     * @return string
 -     */
 -    function _compile_insert_tag($tag_args)
 -    {
 -        $attrs = $this->_parse_attrs($tag_args);
 -        $name = $this->_dequote($attrs['name']);
 -
 -        if (empty($name)) {
 -            $this->_syntax_error("missing insert name", E_USER_ERROR, __FILE__, __LINE__);
 -        }
 -
 -        if (!empty($attrs['script'])) {
 -            $delayed_loading = true;
 -        } else {
 -            $delayed_loading = false;
 -        }
 -
 -        foreach ($attrs as $arg_name => $arg_value) {
 -            if (is_bool($arg_value))
 -                $arg_value = $arg_value ? 'true' : 'false';
 -            $arg_list[] = "'$arg_name' => $arg_value";
 -        }
 -
 -        $this->_add_plugin('insert', $name, $delayed_loading);
 -
 -        $_params = "array('args' => array(".implode(', ', (array)$arg_list)."))";
 -
 -        return "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.run_insert_handler.php');\necho smarty_core_run_insert_handler($_params, \$this); ?>" . $this->_additional_newline;
 -    }
 -
 -    /**
 -     * Compile {include ...} tag
 -     *
 -     * @param string $tag_args
 -     * @return string
 -     */
 -    function _compile_include_tag($tag_args)
 -    {
 -        $attrs = $this->_parse_attrs($tag_args);
 -        $arg_list = array();
 -
 -        if (empty($attrs['file'])) {
 -            $this->_syntax_error("missing 'file' attribute in include tag", E_USER_ERROR, __FILE__, __LINE__);
 -        }
 -
 -        foreach ($attrs as $arg_name => $arg_value) {
 -            if ($arg_name == 'file') {
 -                $include_file = $arg_value;
 -                continue;
 -            } else if ($arg_name == 'assign') {
 -                $assign_var = $arg_value;
 -                continue;
 -            }
 -            if (is_bool($arg_value))
 -                $arg_value = $arg_value ? 'true' : 'false';
 -            $arg_list[] = "'$arg_name' => $arg_value";
 -        }
 -
 -        $output = '<?php ';
 -
 -        if (isset($assign_var)) {
 -            $output .= "ob_start();\n";
 -        }
 -
 -        $output .=
 -            "\$_smarty_tpl_vars = \$this->_tpl_vars;\n";
 -
 -
 -        $_params = "array('smarty_include_tpl_file' => " . $include_file . ", 'smarty_include_vars' => array(".implode(',', (array)$arg_list)."))";
 -        $output .= "\$this->_smarty_include($_params);\n" .
 -        "\$this->_tpl_vars = \$_smarty_tpl_vars;\n" .
 -        "unset(\$_smarty_tpl_vars);\n";
 -
 -        if (isset($assign_var)) {
 -            $output .= "\$this->assign(" . $assign_var . ", ob_get_contents()); ob_end_clean();\n";
 -        }
 -
 -        $output .= ' ?>';
 -
 -        return $output;
 -
 -    }
 -
 -    /**
 -     * Compile {include ...} tag
 -     *
 -     * @param string $tag_args
 -     * @return string
 -     */
 -    function _compile_include_php_tag($tag_args)
 -    {
 -        $attrs = $this->_parse_attrs($tag_args);
 -
 -        if (empty($attrs['file'])) {
 -            $this->_syntax_error("missing 'file' attribute in include_php tag", E_USER_ERROR, __FILE__, __LINE__);
 -        }
 -
 -        $assign_var = (empty($attrs['assign'])) ? '' : $this->_dequote($attrs['assign']);
 -        $once_var = (empty($attrs['once']) || $attrs['once']=='false') ? 'false' : 'true';
 -
 -        foreach($attrs as $arg_name => $arg_value) {
 -            if($arg_name != 'file' AND $arg_name != 'once' AND $arg_name != 'assign') {
 -                if(is_bool($arg_value))
 -                    $arg_value = $arg_value ? 'true' : 'false';
 -                $arg_list[] = "'$arg_name' => $arg_value";
 -            }
 -        }
 -
 -        $_params = "array('smarty_file' => " . $attrs['file'] . ", 'smarty_assign' => '$assign_var', 'smarty_once' => $once_var, 'smarty_include_vars' => array(".implode(',', (array)$arg_list)."))";
 -
 -        return "<?php require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.smarty_include_php.php');\nsmarty_core_smarty_include_php($_params, \$this); ?>" . $this->_additional_newline;
 -    }
 -
 -
 -    /**
 -     * Compile {section ...} tag
 -     *
 -     * @param string $tag_args
 -     * @return string
 -     */
 -    function _compile_section_start($tag_args)
 -    {
 -        $attrs = $this->_parse_attrs($tag_args);
 -        $arg_list = array();
 -
 -        $output = '<?php ';
 -        $section_name = $attrs['name'];
 -        if (empty($section_name)) {
 -            $this->_syntax_error("missing section name", E_USER_ERROR, __FILE__, __LINE__);
 -        }
 -
 -        $output .= "if (isset(\$this->_sections[$section_name])) unset(\$this->_sections[$section_name]);\n";
 -        $section_props = "\$this->_sections[$section_name]";
 -
 -        foreach ($attrs as $attr_name => $attr_value) {
 -            switch ($attr_name) {
 -                case 'loop':
 -                    $output .= "{$section_props}['loop'] = is_array(\$_loop=$attr_value) ? count(\$_loop) : max(0, (int)\$_loop); unset(\$_loop);\n";
 -                    break;
 -
 -                case 'show':
 -                    if (is_bool($attr_value))
 -                        $show_attr_value = $attr_value ? 'true' : 'false';
 -                    else
 -                        $show_attr_value = "(bool)$attr_value";
 -                    $output .= "{$section_props}['show'] = $show_attr_value;\n";
 -                    break;
 -
 -                case 'name':
 -                    $output .= "{$section_props}['$attr_name'] = $attr_value;\n";
 -                    break;
 -
 -                case 'max':
 -                case 'start':
 -                    $output .= "{$section_props}['$attr_name'] = (int)$attr_value;\n";
 -                    break;
 -
 -                case 'step':
 -                    $output .= "{$section_props}['$attr_name'] = ((int)$attr_value) == 0 ? 1 : (int)$attr_value;\n";
 -                    break;
 -
 -                default:
 -                    $this->_syntax_error("unknown section attribute - '$attr_name'", E_USER_ERROR, __FILE__, __LINE__);
 -                    break;
 -            }
 -        }
 -
 -        if (!isset($attrs['show']))
 -            $output .= "{$section_props}['show'] = true;\n";
 -
 -        if (!isset($attrs['loop']))
 -            $output .= "{$section_props}['loop'] = 1;\n";
 -
 -        if (!isset($attrs['max']))
 -            $output .= "{$section_props}['max'] = {$section_props}['loop'];\n";
 -        else
 -            $output .= "if ({$section_props}['max'] < 0)\n" .
 -                       "    {$section_props}['max'] = {$section_props}['loop'];\n";
 -
 -        if (!isset($attrs['step']))
 -            $output .= "{$section_props}['step'] = 1;\n";
 -
 -        if (!isset($attrs['start']))
 -            $output .= "{$section_props}['start'] = {$section_props}['step'] > 0 ? 0 : {$section_props}['loop']-1;\n";
 -        else {
 -            $output .= "if ({$section_props}['start'] < 0)\n" .
 -                       "    {$section_props}['start'] = max({$section_props}['step'] > 0 ? 0 : -1, {$section_props}['loop'] + {$section_props}['start']);\n" .
 -                       "else\n" .
 -                       "    {$section_props}['start'] = min({$section_props}['start'], {$section_props}['step'] > 0 ? {$section_props}['loop'] : {$section_props}['loop']-1);\n";
 -        }
 -
 -        $output .= "if ({$section_props}['show']) {\n";
 -        if (!isset($attrs['start']) && !isset($attrs['step']) && !isset($attrs['max'])) {
 -            $output .= "    {$section_props}['total'] = {$section_props}['loop'];\n";
 -        } else {
 -            $output .= "    {$section_props}['total'] = min(ceil(({$section_props}['step'] > 0 ? {$section_props}['loop'] - {$section_props}['start'] : {$section_props}['start']+1)/abs({$section_props}['step'])), {$section_props}['max']);\n";
 -        }
 -        $output .= "    if ({$section_props}['total'] == 0)\n" .
 -                   "        {$section_props}['show'] = false;\n" .
 -                   "} else\n" .
 -                   "    {$section_props}['total'] = 0;\n";
 -
 -        $output .= "if ({$section_props}['show']):\n";
 -        $output .= "
 -            for ({$section_props}['index'] = {$section_props}['start'], {$section_props}['iteration'] = 1;
 -                 {$section_props}['iteration'] <= {$section_props}['total'];
 -                 {$section_props}['index'] += {$section_props}['step'], {$section_props}['iteration']++):\n";
 -        $output .= "{$section_props}['rownum'] = {$section_props}['iteration'];\n";
 -        $output .= "{$section_props}['index_prev'] = {$section_props}['index'] - {$section_props}['step'];\n";
 -        $output .= "{$section_props}['index_next'] = {$section_props}['index'] + {$section_props}['step'];\n";
 -        $output .= "{$section_props}['first']      = ({$section_props}['iteration'] == 1);\n";
 -        $output .= "{$section_props}['last']       = ({$section_props}['iteration'] == {$section_props}['total']);\n";
 -
 -        $output .= "?>";
 -
 -        return $output;
 -    }
 -
 -
 -    /**
 -     * Compile {foreach ...} tag.
 -     *
 -     * @param string $tag_args
 -     * @return string
 -     */
 -    function _compile_foreach_start($tag_args)
 -    {
 -        $attrs = $this->_parse_attrs($tag_args);
 -        $arg_list = array();
 -
 -        if (empty($attrs['from'])) {
 -            $this->_syntax_error("missing 'from' attribute", E_USER_ERROR, __FILE__, __LINE__);
 -        }
 -
 -        if (empty($attrs['item'])) {
 -            $this->_syntax_error("missing 'item' attribute", E_USER_ERROR, __FILE__, __LINE__);
 -        }
 -
 -        $from = $attrs['from'];
 -        $item = $this->_dequote($attrs['item']);
 -        if (isset($attrs['name']))
 -            $name = $attrs['name'];
 -
 -        $output = '<?php ';
 -        if (isset($name)) {
 -            $output .= "if (isset(\$this->_foreach[$name])) unset(\$this->_foreach[$name]);\n";
 -            $foreach_props = "\$this->_foreach[$name]";
 -        }
 -
 -        $key_part = '';
 -
 -        foreach ($attrs as $attr_name => $attr_value) {
 -            switch ($attr_name) {
 -                case 'key':
 -                    $key  = $this->_dequote($attrs['key']);
 -                    $key_part = "\$this->_tpl_vars['$key'] => ";
 -                    break;
 -
 -                case 'name':
 -                    $output .= "{$foreach_props}['$attr_name'] = $attr_value;\n";
 -                    break;
 -            }
 -        }
 -
 -        if (isset($name)) {
 -            $output .= "{$foreach_props}['total'] = count(\$_from = (array)$from);\n";
 -            $output .= "{$foreach_props}['show'] = {$foreach_props}['total'] > 0;\n";
 -            $output .= "if ({$foreach_props}['show']):\n";
 -            $output .= "{$foreach_props}['iteration'] = 0;\n";
 -            $output .= "    foreach (\$_from as $key_part\$this->_tpl_vars['$item']):\n";
 -            $output .= "        {$foreach_props}['iteration']++;\n";
 -            $output .= "        {$foreach_props}['first'] = ({$foreach_props}['iteration'] == 1);\n";
 -            $output .= "        {$foreach_props}['last']  = ({$foreach_props}['iteration'] == {$foreach_props}['total']);\n";
 -        } else {
 -            $output .= "if (count(\$_from = (array)$from)):\n";
 -            $output .= "    foreach (\$_from as $key_part\$this->_tpl_vars['$item']):\n";
 -        }
 -        $output .= '?>';
 -
 -        return $output;
 -    }
 -
 -
 -    /**
 -     * Compile {capture} .. {/capture} tags
 -     *
 -     * @param boolean $start true if this is the {capture} tag
 -     * @param string $tag_args
 -     * @return string
 -     */
 -
 -    function _compile_capture_tag($start, $tag_args = '')
 -    {
 -        $attrs = $this->_parse_attrs($tag_args);
 -
 -        if ($start) {
 -            if (isset($attrs['name']))
 -                $buffer = $attrs['name'];
 -            else
 -                $buffer = "'default'";
 -
 -            if (isset($attrs['assign']))
 -                $assign = $attrs['assign'];
 -            else
 -                $assign = null;
 -            $output = "<?php ob_start(); ?>";
 -            $this->_capture_stack[] = array($buffer, $assign);
 -        } else {
 -            list($buffer, $assign) = array_pop($this->_capture_stack);
 -            $output = "<?php \$this->_smarty_vars['capture'][$buffer] = ob_get_contents(); ";
 -            if (isset($assign)) {
 -                $output .= " \$this->assign($assign, ob_get_contents());";
 -            }
 -            $output .= "ob_end_clean(); ?>";
 -        }
 -
 -        return $output;
 -    }
 -
 -    /**
 -     * Compile {if ...} tag
 -     *
 -     * @param string $tag_args
 -     * @param boolean $elseif if true, uses elseif instead of if
 -     * @return string
 -     */
 -    function _compile_if_tag($tag_args, $elseif = false)
 -    {
 -
 -        /* Tokenize args for 'if' tag. */
 -        preg_match_all('/(?>
 -                ' . $this->_obj_call_regexp . '(?:' . $this->_mod_regexp . '*)? | # valid object call
 -                ' . $this->_var_regexp . '(?:' . $this->_mod_regexp . '*)?    | # var or quoted string
 -                \-?0[xX][0-9a-fA-F]+|\-?\d+(?:\.\d+)?|\.\d+|!==|===|==|!=|<>|<<|>>|<=|>=|\&\&|\|\||\(|\)|,|\!|\^|=|\&|\~|<|>|\||\%|\+|\-|\/|\*|\@    | # valid non-word token
 -                \b\w+\b                                                        | # valid word token
 -                \S+                                                           # anything else
 -                )/x', $tag_args, $match);
 -
 -        $tokens = $match[0];
 -
 -        // make sure we have balanced parenthesis
 -        $token_count = array_count_values($tokens);
 -        if(isset($token_count['(']) && $token_count['('] != $token_count[')']) {
 -            $this->_syntax_error("unbalanced parenthesis in if statement", E_USER_ERROR, __FILE__, __LINE__);
 -        }
 -
 -        $is_arg_stack = array();
 -
 -        for ($i = 0; $i < count($tokens); $i++) {
 -
 -            $token = &$tokens[$i];
 -
 -            switch (strtolower($token)) {
 -                case '!':
 -                case '%':
 -                case '!==':
 -                case '==':
 -                case '===':
 -                case '>':
 -                case '<':
 -                case '!=':
 -                case '<>':
 -                case '<<':
 -                case '>>':
 -                case '<=':
 -                case '>=':
 -                case '&&':
 -                case '||':
 -                case '|':
 -                case '^':
 -                case '&':
 -                case '~':
 -                case ')':
 -                case ',':
 -                case '+':
 -                case '-':
 -                case '*':
 -                case '/':
 -                case '@':
 -                    break;
 -
 -                case 'eq':
 -                    $token = '==';
 -                    break;
 -
 -                case 'ne':
 -                case 'neq':
 -                    $token = '!=';
 -                    break;
 -
 -                case 'lt':
 -                    $token = '<';
 -                    break;
 -
 -                case 'le':
 -                case 'lte':
 -                    $token = '<=';
 -                    break;
 -
 -                case 'gt':
 -                    $token = '>';
 -                    break;
 -
 -                case 'ge':
 -                case 'gte':
 -                    $token = '>=';
 -                    break;
 -
 -                case 'and':
 -                    $token = '&&';
 -                    break;
 -
 -                case 'or':
 -                    $token = '||';
 -                    break;
 -
 -                case 'not':
 -                    $token = '!';
 -                    break;
 -
 -                case 'mod':
 -                    $token = '%';
 -                    break;
 -
 -                case '(':
 -                    array_push($is_arg_stack, $i);
 -                    break;
 -
 -                case 'is':
 -                    /* If last token was a ')', we operate on the parenthesized
 -                       expression. The start of the expression is on the stack.
 -                       Otherwise, we operate on the last encountered token. */
 -                    if ($tokens[$i-1] == ')')
 -                        $is_arg_start = array_pop($is_arg_stack);
 -                    else
 -                        $is_arg_start = $i-1;
 -                    /* Construct the argument for 'is' expression, so it knows
 -                       what to operate on. */
 -                    $is_arg = implode(' ', array_slice($tokens, $is_arg_start, $i - $is_arg_start));
 -
 -                    /* Pass all tokens from next one until the end to the
 -                       'is' expression parsing function. The function will
 -                       return modified tokens, where the first one is the result
 -                       of the 'is' expression and the rest are the tokens it
 -                       didn't touch. */
 -                    $new_tokens = $this->_parse_is_expr($is_arg, array_slice($tokens, $i+1));
 -
 -                    /* Replace the old tokens with the new ones. */
 -                    array_splice($tokens, $is_arg_start, count($tokens), $new_tokens);
 -
 -                    /* Adjust argument start so that it won't change from the
 -                       current position for the next iteration. */
 -                    $i = $is_arg_start;
 -                    break;
 -
 -                default:
 -                    if(preg_match('!^' . $this->_func_regexp . '$!', $token) ) {
 -                            // function call
 -                            if($this->security &&
 -                               !in_array($token, $this->security_settings['IF_FUNCS'])) {
 -                                $this->_syntax_error("(secure mode) '$token' not allowed in if statement", E_USER_ERROR, __FILE__, __LINE__);
 -                            }
 -                    } elseif(preg_match('!^' . $this->_obj_call_regexp . '|' . $this->_var_regexp . '(?:' . $this->_mod_regexp . '*)$!', $token)) {
 -                        // object or variable
 -                        $token = $this->_parse_var_props($token);
 -                    } elseif(is_numeric($token)) {
 -                        // number, skip it
 -                    } else {
 -                        $this->_syntax_error("unidentified token '$token'", E_USER_ERROR, __FILE__, __LINE__);
 -                    }
 -                    break;
 -            }
 -        }
 -
 -        if ($elseif)
 -            return '<?php elseif ('.implode(' ', $tokens).'): ?>';
 -        else
 -            return '<?php if ('.implode(' ', $tokens).'): ?>';
 -    }
 -
 -
 -    function _compile_arg_list($type, $name, $attrs, &$cache_code) {
 -        $arg_list = array();
 -
 -        if (isset($type) && isset($name)
 -            && isset($this->_plugins[$type])
 -            && isset($this->_plugins[$type][$name])
 -            && empty($this->_plugins[$type][$name][4])
 -            && is_array($this->_plugins[$type][$name][5])
 -            ) {
 -            /* we have a list of parameters that should be cached */
 -            $_cache_attrs = $this->_plugins[$type][$name][5];
 -            $_count = $this->_cache_attrs_count++;
 -            $cache_code = "\$_cache_attrs =& \$this->_smarty_cache_attrs('$this->_cache_serial','$_count');";
 -
 -        } else {
 -            /* no parameters are cached */
 -            $_cache_attrs = null;
 -        }
 -
 -        foreach ($attrs as $arg_name => $arg_value) {
 -            if (is_bool($arg_value))
 -                $arg_value = $arg_value ? 'true' : 'false';
 -            if (is_null($arg_value))
 -                $arg_value = 'null';
 -            if ($_cache_attrs && in_array($arg_name, $_cache_attrs)) {
 -                $arg_list[] = "'$arg_name' => (\$this->_cache_including) ? \$_cache_attrs['$arg_name'] : (\$_cache_attrs['$arg_name']=$arg_value)";
 -            } else {
 -                $arg_list[] = "'$arg_name' => $arg_value";
 -            }
 -        }
 -        return $arg_list;
 -    }
 -
 -    /**
 -     * Parse is expression
 -     *
 -     * @param string $is_arg
 -     * @param array $tokens
 -     * @return array
 -     */
 -    function _parse_is_expr($is_arg, $tokens)
 -    {
 -        $expr_end = 0;
 -        $negate_expr = false;
 -
 -        if (($first_token = array_shift($tokens)) == 'not') {
 -            $negate_expr = true;
 -            $expr_type = array_shift($tokens);
 -        } else
 -            $expr_type = $first_token;
 -
 -        switch ($expr_type) {
 -            case 'even':
 -                if (@$tokens[$expr_end] == 'by') {
 -                    $expr_end++;
 -                    $expr_arg = $tokens[$expr_end++];
 -                    $expr = "!(($is_arg / $expr_arg) % " . $this->_parse_var_props($expr_arg) . ")";
 -                } else
 -                    $expr = "!($is_arg % 2)";
 -                break;
 -
 -            case 'odd':
 -                if (@$tokens[$expr_end] == 'by') {
 -                    $expr_end++;
 -                    $expr_arg = $tokens[$expr_end++];
 -                    $expr = "(($is_arg / $expr_arg) % ". $this->_parse_var_props($expr_arg) . ")";
 -                } else
 -                    $expr = "($is_arg % 2)";
 -                break;
 -
 -            case 'div':
 -                if (@$tokens[$expr_end] == 'by') {
 -                    $expr_end++;
 -                    $expr_arg = $tokens[$expr_end++];
 -                    $expr = "!($is_arg % " . $this->_parse_var_props($expr_arg) . ")";
 -                } else {
 -                    $this->_syntax_error("expecting 'by' after 'div'", E_USER_ERROR, __FILE__, __LINE__);
 -                }
 -                break;
 -
 -            default:
 -                $this->_syntax_error("unknown 'is' expression - '$expr_type'", E_USER_ERROR, __FILE__, __LINE__);
 -                break;
 -        }
 -
 -        if ($negate_expr) {
 -            $expr = "!($expr)";
 -        }
 -
 -        array_splice($tokens, 0, $expr_end, $expr);
 -
 -        return $tokens;
 -    }
 -
 -
 -    /**
 -     * Parse attribute string
 -     *
 -     * @param string $tag_args
 -     * @return array
 -     */
 -    function _parse_attrs($tag_args)
 -    {
 -
 -        /* Tokenize tag attributes. */
 -        preg_match_all('/(?:' . $this->_obj_call_regexp . '|' . $this->_qstr_regexp . ' | (?>[^"\'=\s]+)
 -                         )+ |
 -                         [=]
 -                        /x', $tag_args, $match);
 -        $tokens       = $match[0];
 -
 -        $attrs = array();
 -        /* Parse state:
 -            0 - expecting attribute name
 -            1 - expecting '='
 -            2 - expecting attribute value (not '=') */
 -        $state = 0;
 -
 -        foreach ($tokens as $token) {
 -            switch ($state) {
 -                case 0:
 -                    /* If the token is a valid identifier, we set attribute name
 -                       and go to state 1. */
 -                    if (preg_match('!^\w+$!', $token)) {
 -                        $attr_name = $token;
 -                        $state = 1;
 -                    } else
 -                        $this->_syntax_error("invalid attribute name: '$token'", E_USER_ERROR, __FILE__, __LINE__);
 -                    break;
 -
 -                case 1:
 -                    /* If the token is '=', then we go to state 2. */
 -                    if ($token == '=') {
 -                        $state = 2;
 -                    } else
 -                        $this->_syntax_error("expecting '=' after attribute name '$last_token'", E_USER_ERROR, __FILE__, __LINE__);
 -                    break;
 -
 -                case 2:
 -                    /* If token is not '=', we set the attribute value and go to
 -                       state 0. */
 -                    if ($token != '=') {
 -                        /* We booleanize the token if it's a non-quoted possible
 -                           boolean value. */
 -                        if (preg_match('!^(on|yes|true)$!', $token)) {
 -                            $token = 'true';
 -                        } else if (preg_match('!^(off|no|false)$!', $token)) {
 -                            $token = 'false';
 -                        } else if ($token == 'null') {
 -                            $token = 'null';
 -                        } else if (preg_match('!^-?([0-9]+|0[xX][0-9a-fA-F]+)$!', $token)) {
 -                            /* treat integer literally */
 -                        } else if (!preg_match('!^' . $this->_obj_call_regexp . '|' . $this->_var_regexp . '(?:' . $this->_mod_regexp . ')*$!', $token)) {
 -                            /* treat as a string, double-quote it escaping quotes */
 -                            $token = '"'.addslashes($token).'"';
 -                        }
 -
 -                        $attrs[$attr_name] = $token;
 -                        $state = 0;
 -                    } else
 -                        $this->_syntax_error("'=' cannot be an attribute value", E_USER_ERROR, __FILE__, __LINE__);
 -                    break;
 -            }
 -            $last_token = $token;
 -        }
 -
 -        if($state != 0) {
 -            if($state == 1) {
 -                $this->_syntax_error("expecting '=' after attribute name '$last_token'", E_USER_ERROR, __FILE__, __LINE__);
 -            } else {
 -                $this->_syntax_error("missing attribute value", E_USER_ERROR, __FILE__, __LINE__);
 -            }
 -        }
 -
 -        $this->_parse_vars_props($attrs);
 -
 -        return $attrs;
 -    }
 -
 -    /**
 -     * compile multiple variables and section properties tokens into
 -     * PHP code
 -     *
 -     * @param array $tokens
 -     */
 -    function _parse_vars_props(&$tokens)
 -    {
 -        foreach($tokens as $key => $val) {
 -            $tokens[$key] = $this->_parse_var_props($val);
 -        }
 -    }
 -
 -    /**
 -     * compile single variable and section properties token into
 -     * PHP code
 -     *
 -     * @param string $val
 -     * @param string $tag_attrs
 -     * @return string
 -     */
 -    function _parse_var_props($val)
 -    {
 -        $val = trim($val);
 -
 -        if(preg_match('!^(' . $this->_obj_call_regexp . '|' . $this->_dvar_regexp . ')(' . $this->_mod_regexp . '*)$!', $val, $match)) {
 -                // $ variable or object
 -                $return = $this->_parse_var($match[1]);
 -                if($match[2] != '') {
 -                    $this->_parse_modifiers($return, $match[2]);
 -                }
 -                return $return;
 -            }
 -        elseif(preg_match('!^' . $this->_db_qstr_regexp . '(?:' . $this->_mod_regexp . '*)$!', $val)) {
 -                // double quoted text
 -                preg_match('!^(' . $this->_db_qstr_regexp . ')('. $this->_mod_regexp . '*)$!', $val, $match);
 -                $return = $this->_expand_quoted_text($match[1]);
 -                if($match[2] != '') {
 -                    $this->_parse_modifiers($return, $match[2]);
 -                }
 -                return $return;
 -            }
 -        elseif(preg_match('!^' . $this->_si_qstr_regexp . '(?:' . $this->_mod_regexp . '*)$!', $val)) {
 -                // single quoted text
 -                preg_match('!^(' . $this->_si_qstr_regexp . ')('. $this->_mod_regexp . '*)$!', $val, $match);
 -                if($match[2] != '') {
 -                    $this->_parse_modifiers($match[1], $match[2]);
 -                    return $match[1];
 -                }
 -            }
 -        elseif(preg_match('!^' . $this->_cvar_regexp . '(?:' . $this->_mod_regexp . '*)$!', $val)) {
 -                // config var
 -                return $this->_parse_conf_var($val);
 -            }
 -        elseif(preg_match('!^' . $this->_svar_regexp . '(?:' . $this->_mod_regexp . '*)$!', $val)) {
 -                // section var
 -                return $this->_parse_section_prop($val);
 -            }
 -        elseif(!in_array($val, $this->_permitted_tokens) && !is_numeric($val)) {
 -            // literal string
 -            return $this->_expand_quoted_text('"' . $val .'"');
 -        }
 -        return $val;
 -    }
 -
 -    /**
 -     * expand quoted text with embedded variables
 -     *
 -     * @param string $var_expr
 -     * @return string
 -     */
 -    function _expand_quoted_text($var_expr)
 -    {
 -        // if contains unescaped $, expand it
 -        if(preg_match_all('%(?:\`(?<!\\\\)\$' . $this->_dvar_guts_regexp . '\`)|(?:(?<!\\\\)\$\w+(\[[a-zA-Z0-9]+\])*)%', $var_expr, $_match)) {
 -            $_match = $_match[0];
 -            rsort($_match);
 -            reset($_match);
 -            foreach($_match as $_var) {
 -                $var_expr = str_replace ($_var, '".(' . $this->_parse_var(str_replace('`','',$_var)) . ')."', $var_expr);
 -            }
 -            $_return = preg_replace('%\.""|(?<!\\\\)""\.%', '', $var_expr);
 -        } else {
 -            $_return = $var_expr;
 -        }
 -        // replace double quoted literal string with single quotes
 -        $_return = preg_replace('!^"([\s\w]+)"$!',"'\\1'",$_return);
 -        return $_return;
 -    }
 -
 -    /**
 -     * parse variable expression into PHP code
 -     *
 -     * @param string $var_expr
 -     * @param string $output
 -     * @return string
 -     */
 -    function _parse_var($var_expr)
 -    {
 -        $_has_math = false;
 -        $_math_vars = preg_split('!('.$this->_dvar_math_regexp.'|'.$this->_qstr_regexp.')!', $var_expr, -1, PREG_SPLIT_DELIM_CAPTURE);
 -
 -        if(count($_math_vars) > 1) {
 -            $_first_var = "";
 -            $_complete_var = "";
 -            // simple check if there is any math, to stop recursion (due to modifiers with "xx % yy" as parameter)
 -            foreach($_math_vars as $_k => $_math_var) {
 -                $_math_var = $_math_vars[$_k];
 -
 -                if(!empty($_math_var) || is_numeric($_math_var)) {
 -                    // hit a math operator, so process the stuff which came before it
 -                    if(preg_match('!^' . $this->_dvar_math_regexp . '$!', $_math_var)) {
 -                        $_has_math = true;
 -                        if(!empty($_complete_var) || is_numeric($_complete_var)) {
 -                            $_output .= $this->_parse_var($_complete_var);
 -                        }
 -
 -                        // just output the math operator to php
 -                        $_output .= $_math_var;
 -
 -                        if(empty($_first_var))
 -                            $_first_var = $_complete_var;
 -
 -                        $_complete_var = "";
 -                    } else {
 -                        // fetch multiple -> (like $foo->bar->baz ) which wouldn't get fetched else, because it would only get $foo->bar and treat the ->baz as "-" ">baz" then
 -                        for($_i = $_k + 1; $_i <= count($_math_vars); $_i += 2) {
 -                            // fetch -> because it gets splitted at - and move it back together
 -                            if( /* prevent notice */ (isset($_math_vars[$_i]) && isset($_math_vars[$_i+1])) && ($_math_vars[$_i] === '-' && $_math_vars[$_i+1]{0} === '>')) {
 -                                $_math_var .= $_math_vars[$_i].$_math_vars[$_i+1];
 -                                $_math_vars[$_i] = $_math_vars[$_i+1] = '';
 -                            } else {
 -                                break;
 -                            }
 -                        }
 -                        $_complete_var .= $_math_var;
 -                    }
 -                }
 -            }
 -            if($_has_math) {
 -                if(!empty($_complete_var) || is_numeric($_complete_var))
 -                    $_output .= $this->_parse_var($_complete_var, true);
 -
 -                // get the modifiers working (only the last var from math + modifier is left)
 -                $var_expr = $_complete_var;
 -            }
 -        }
 -
 -        // prevent cutting of first digit in the number (we _definitly_ got a number if the first char is a digit)
 -        if(is_numeric($var_expr{0}))
 -            $_var_ref = $var_expr;
 -        else
 -            $_var_ref = substr($var_expr, 1);
 -
 -        if(!$_has_math) {
 -            // get [foo] and .foo and ->foo and (...) pieces
 -            preg_match_all('!(?:^\w+)|' . $this->_obj_params_regexp . '|(?:' . $this->_var_bracket_regexp . ')|->\$?\w+|\.\$?\w+|\S+!', $_var_ref, $match);
 -
 -            $_indexes = $match[0];
 -            $_var_name = array_shift($_indexes);
 -
 -            /* Handle $smarty.* variable references as a special case. */
 -            if ($_var_name == 'smarty') {
 -                /*
 -                 * If the reference could be compiled, use the compiled output;
 -                 * otherwise, fall back on the $smarty variable generated at
 -                 * run-time.
 -                 */
 -                if (($smarty_ref = $this->_compile_smarty_ref($_indexes)) !== null) {
 -                    $_output = $smarty_ref;
 -                } else {
 -                    $_var_name = substr(array_shift($_indexes), 1);
 -                    $_output = "\$this->_smarty_vars['$_var_name']";
 -                }
 -            } elseif(is_numeric($_var_name) && is_numeric($var_expr{0})) {
 -                // because . is the operator for accessing arrays thru inidizes we need to put it together again for floating point numbers
 -                if(count($_indexes) > 0)
 -                {
 -                    $_var_name .= implode("", $_indexes);
 -                    $_indexes = array();
 -                }
 -                $_output = $_var_name;
 -            } else {
 -                $_output = "\$this->_tpl_vars['$_var_name']";
 -            }
 -
 -            foreach ($_indexes as $_index) {
 -                if ($_index{0} == '[') {
 -                    $_index = substr($_index, 1, -1);
 -                    if (is_numeric($_index)) {
 -                        $_output .= "[$_index]";
 -                    } elseif ($_index{0} == '$') {
 -                        if (strpos($_index, '.') !== false) {
 -                            $_output .= '[' . $this->_parse_var($_index) . ']';
 -                        } else {
 -                            $_output .= "[\$this->_tpl_vars['" . substr($_index, 1) . "']]";
 -                        }
 -                    } else {
 -                        $_var_parts = explode('.', $_index);
 -                        $_var_section = $_var_parts[0];
 -                        $_var_section_prop = isset($_var_parts[1]) ? $_var_parts[1] : 'index';
 -                        $_output .= "[\$this->_sections['$_var_section']['$_var_section_prop']]";
 -                    }
 -                } else if ($_index{0} == '.') {
 -                    if ($_index{1} == '$')
 -                        $_output .= "[\$this->_tpl_vars['" . substr($_index, 2) . "']]";
 -                    else
 -                        $_output .= "['" . substr($_index, 1) . "']";
 -                } else if (substr($_index,0,2) == '->') {
 -                    if(substr($_index,2,2) == '__') {
 -                        $this->_syntax_error('call to internal object members is not allowed', E_USER_ERROR, __FILE__, __LINE__);
 -                    } elseif($this->security && substr($_index, 2, 1) == '_') {
 -                        $this->_syntax_error('(secure) call to private object member is not allowed', E_USER_ERROR, __FILE__, __LINE__);
 -                    } elseif ($_index{2} == '$') {
 -                        if ($this->security) {
 -                            $this->_syntax_error('(secure) call to dynamic object member is not allowed', E_USER_ERROR, __FILE__, __LINE__);
 -                        } else {
 -                            $_output .= '->{(($_var=$this->_tpl_vars[\''.substr($_index,3).'\']) && substr($_var,0,2)!=\'__\') ? $_var : $this->trigger_error("cannot access property \\"$_var\\"")}';
 -                        }
 -                    } else {
 -                        $_output .= $_index;
 -                    }
 -                } elseif ($_index{0} == '(') {
 -                    $_index = $this->_parse_parenth_args($_index);
 -                    $_output .= $_index;
 -                } else {
 -                    $_output .= $_index;
 -                }
 -            }
 -        }
 -
 -        return $_output;
 -    }
 -
 -    /**
 -     * parse arguments in function call parenthesis
 -     *
 -     * @param string $parenth_args
 -     * @return string
 -     */
 -    function _parse_parenth_args($parenth_args)
 -    {
 -        preg_match_all('!' . $this->_param_regexp . '!',$parenth_args, $match);
 -        $match = $match[0];
 -        rsort($match);
 -        reset($match);
 -        $orig_vals = $match;
 -        $this->_parse_vars_props($match);
 -        return str_replace($orig_vals, $match, $parenth_args);
 -    }
 -
 -    /**
 -     * parse configuration variable expression into PHP code
 -     *
 -     * @param string $conf_var_expr
 -     */
 -    function _parse_conf_var($conf_var_expr)
 -    {
 -        $parts = explode('|', $conf_var_expr, 2);
 -        $var_ref = $parts[0];
 -        $modifiers = isset($parts[1]) ? $parts[1] : '';
 -
 -        $var_name = substr($var_ref, 1, -1);
 -
 -        $output = "\$this->_config[0]['vars']['$var_name']";
 -
 -        $this->_parse_modifiers($output, $modifiers);
 -
 -        return $output;
 -    }
 -
 -    /**
 -     * parse section property expression into PHP code
 -     *
 -     * @param string $section_prop_expr
 -     * @return string
 -     */
 -    function _parse_section_prop($section_prop_expr)
 -    {
 -        $parts = explode('|', $section_prop_expr, 2);
 -        $var_ref = $parts[0];
 -        $modifiers = isset($parts[1]) ? $parts[1] : '';
 -
 -        preg_match('!%(\w+)\.(\w+)%!', $var_ref, $match);
 -        $section_name = $match[1];
 -        $prop_name = $match[2];
 -
 -        $output = "\$this->_sections['$section_name']['$prop_name']";
 -
 -        $this->_parse_modifiers($output, $modifiers);
 -
 -        return $output;
 -    }
 -
 -
 -    /**
 -     * parse modifier chain into PHP code
 -     *
 -     * sets $output to parsed modified chain
 -     * @param string $output
 -     * @param string $modifier_string
 -     */
 -    function _parse_modifiers(&$output, $modifier_string)
 -    {
 -        preg_match_all('!\|(@?\w+)((?>:(?:'. $this->_qstr_regexp . '|[^|]+))*)!', '|' . $modifier_string, $_match);
 -        list(, $_modifiers, $modifier_arg_strings) = $_match;
 -
 -        for ($_i = 0, $_for_max = count($_modifiers); $_i < $_for_max; $_i++) {
 -            $_modifier_name = $_modifiers[$_i];
 -
 -            if($_modifier_name == 'smarty') {
 -                // skip smarty modifier
 -                continue;
 -            }
 -
 -            preg_match_all('!:(' . $this->_qstr_regexp . '|[^:]+)!', $modifier_arg_strings[$_i], $_match);
 -            $_modifier_args = $_match[1];
 -
 -            if ($_modifier_name{0} == '@') {
 -                $_map_array = false;
 -                $_modifier_name = substr($_modifier_name, 1);
 -            } else {
 -                $_map_array = true;
 -            }
 -
 -            $this->_add_plugin('modifier', $_modifier_name);
 -            if (empty($this->_plugins['modifier'][$_modifier_name])
 -                && !$this->_get_plugin_filepath('modifier', $_modifier_name)
 -                && function_exists($_modifier_name)) {
 -                if ($this->security && !in_array($_modifier_name, $this->security_settings['MODIFIER_FUNCS'])) {
 -                    $this->_trigger_fatal_error("[plugin] (secure mode) modifier '$_modifier_name' is not allowed" , $_tpl_file, $_tpl_line, __FILE__, __LINE__);
 -                } else {
 -                    $this->_plugins['modifier'][$_modifier_name] = array($_modifier_name,  null, null, false);
 -                }
 -            }
 -
 -            $this->_parse_vars_props($_modifier_args);
 -
 -            if($_modifier_name == 'default') {
 -                // supress notifications of default modifier vars and args
 -                if($output{0} == '$') {
 -                    $output = '@' . $output;
 -                }
 -                if(isset($_modifier_args[0]) && $_modifier_args[0]{0} == '$') {
 -                    $_modifier_args[0] = '@' . $_modifier_args[0];
 -                }
 -            }
 -            if (count($_modifier_args) > 0)
 -                $_modifier_args = ', '.implode(', ', $_modifier_args);
 -            else
 -                $_modifier_args = '';
 -
 -            if ($_map_array) {
 -                $output = "((is_array(\$_tmp=$output)) ? \$this->_run_mod_handler('$_modifier_name', true, \$_tmp$_modifier_args) : " . $this->_compile_plugin_call('modifier', $_modifier_name) . "(\$_tmp$_modifier_args))";
 -
 -            } else {
 -
 -                $output = $this->_compile_plugin_call('modifier', $_modifier_name)."($output$_modifier_args)";
 -
 -            }
 -        }
 -    }
 -
 -
 -    /**
 -     * add plugin
 -     *
 -     * @param string $type
 -     * @param string $name
 -     * @param boolean? $delayed_loading
 -     */
 -    function _add_plugin($type, $name, $delayed_loading = null)
 -    {
 -        if (!isset($this->_plugin_info[$type])) {
 -            $this->_plugin_info[$type] = array();
 -        }
 -        if (!isset($this->_plugin_info[$type][$name])) {
 -            $this->_plugin_info[$type][$name] = array($this->_current_file,
 -                                                      $this->_current_line_no,
 -                                                      $delayed_loading);
 -        }
 -    }
 -
 -
 -    /**
 -     * Compiles references of type $smarty.foo
 -     *
 -     * @param string $indexes
 -     * @return string
 -     */
 -    function _compile_smarty_ref(&$indexes)
 -    {
 -        /* Extract the reference name. */
 -        $_ref = substr($indexes[0], 1);
 -        foreach($indexes as $_index_no=>$_index) {
 -            if ($_index{0} != '.' && $_index_no<2 || !preg_match('!^(\.|\[|->)!', $_index)) {
 -                $this->_syntax_error('$smarty' . implode('', array_slice($indexes, 0, 2)) . ' is an invalid reference', E_USER_ERROR, __FILE__, __LINE__);
 -            }
 -        }
 -
 -        switch ($_ref) {
 -            case 'now':
 -                $compiled_ref = 'time()';
 -                $_max_index = 1;
 -                break;
 -
 -            case 'foreach':
 -            case 'section':
 -                array_shift($indexes);
 -                $_var = $this->_parse_var_props(substr($indexes[0], 1));
 -                if ($_ref == 'foreach')
 -                    $compiled_ref = "\$this->_foreach[$_var]";
 -                else
 -                    $compiled_ref = "\$this->_sections[$_var]";
 -                break;
 -
 -            case 'get':
 -                $compiled_ref = ($this->request_use_auto_globals) ? '$_GET' : "\$GLOBALS['HTTP_GET_VARS']";
 -                break;
 -
 -            case 'post':
 -                $compiled_ref = ($this->request_use_auto_globals) ? '$_POST' : "\$GLOBALS['HTTP_POST_VARS']";
 -                break;
 -
 -            case 'cookies':
 -                $compiled_ref = ($this->request_use_auto_globals) ? '$_COOKIE' : "\$GLOBALS['HTTP_COOKIE_VARS']";
 -                break;
 -
 -            case 'env':
 -                $compiled_ref = ($this->request_use_auto_globals) ? '$_ENV' : "\$GLOBALS['HTTP_ENV_VARS']";
 -                break;
 -
 -            case 'server':
 -                $compiled_ref = ($this->request_use_auto_globals) ? '$_SERVER' : "\$GLOBALS['HTTP_SERVER_VARS']";
 -                break;
 -
 -            case 'session':
 -                $compiled_ref = ($this->request_use_auto_globals) ? '$_SESSION' : "\$GLOBALS['HTTP_SESSION_VARS']";
 -                break;
 -
 -            /*
 -             * These cases are handled either at run-time or elsewhere in the
 -             * compiler.
 -             */
 -            case 'request':
 -                if ($this->request_use_auto_globals) {
 -                    $compiled_ref = '$_REQUEST';
 -                    break;
 -                } else {
 -                    $this->_init_smarty_vars = true;
 -                }
 -                return null;
 -
 -            case 'capture':
 -                return null;
 -
 -            case 'template':
 -                $compiled_ref = "'$this->_current_file'";
 -                $_max_index = 1;
 -                break;
 -
 -            case 'version':
 -                $compiled_ref = "'$this->_version'";
 -                $_max_index = 1;
 -                break;
 -
 -            case 'const':
 -                array_shift($indexes);
 -                $_val = $this->_parse_var_props(substr($indexes[0],1));
 -                $compiled_ref = '@constant(' . $_val . ')';
 -                $_max_index = 1;
 -                break;
 -
 -            case 'config':
 -                $compiled_ref = "\$this->_config[0]['vars']";
 -                $_max_index = 2;
 -                break;
 -
 -            default:
 -                $this->_syntax_error('$smarty.' . $_ref . ' is an unknown reference', E_USER_ERROR, __FILE__, __LINE__);
 -                break;
 -        }
 -
 -        if (isset($_max_index) && count($indexes) > $_max_index) {
 -            $this->_syntax_error('$smarty' . implode('', $indexes) .' is an invalid reference', E_USER_ERROR, __FILE__, __LINE__);
 -        }
 -
 -        array_shift($indexes);
 -        return $compiled_ref;
 -    }
 -
 -    /**
 -     * compiles call to plugin of type $type with name $name
 -     * returns a string containing the function-name or method call
 -     * without the paramter-list that would have follow to make the
 -     * call valid php-syntax
 -     *
 -     * @param string $type
 -     * @param string $name
 -     * @return string
 -     */
 -    function _compile_plugin_call($type, $name) {
 -        if (isset($this->_plugins[$type][$name])) {
 -            /* plugin loaded */
 -            if (is_array($this->_plugins[$type][$name][0])) {
 -                return ((is_object($this->_plugins[$type][$name][0][0])) ?
 -                        "\$this->_plugins['$type']['$name'][0][0]->"    /* method callback */
 -                        : (string)($this->_plugins[$type][$name][0][0]).'::'    /* class callback */
 -                       ). $this->_plugins[$type][$name][0][1];
 -
 -            } else {
 -                /* function callback */
 -                return $this->_plugins[$type][$name][0];
 -
 -            }
 -        } else {
 -            /* plugin not loaded -> auto-loadable-plugin */
 -            return 'smarty_'.$type.'_'.$name;
 -
 -        }
 -    }
 -
 -    /**
 -     * load pre- and post-filters
 -     */
 -    function _load_filters()
 -    {
 -        if (count($this->_plugins['prefilter']) > 0) {
 -            foreach ($this->_plugins['prefilter'] as $filter_name => $prefilter) {
 -                if ($prefilter === false) {
 -                    unset($this->_plugins['prefilter'][$filter_name]);
 -                    $_params = array('plugins' => array(array('prefilter', $filter_name, null, null, false)));
 -                    require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');
 -                    smarty_core_load_plugins($_params, $this);
 -                }
 -            }
 -        }
 -        if (count($this->_plugins['postfilter']) > 0) {
 -            foreach ($this->_plugins['postfilter'] as $filter_name => $postfilter) {
 -                if ($postfilter === false) {
 -                    unset($this->_plugins['postfilter'][$filter_name]);
 -                    $_params = array('plugins' => array(array('postfilter', $filter_name, null, null, false)));
 -                    require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.load_plugins.php');
 -                    smarty_core_load_plugins($_params, $this);
 -                }
 -            }
 -        }
 -    }
 -
 -
 -    /**
 -     * Quote subpattern references
 -     *
 -     * @param string $string
 -     * @return string
 -     */
 -    function _quote_replace($string)
 -    {
 -        return preg_replace('![\\$]\d!', '\\\\\\0', $string);
 -    }
 -
 -    /**
 -     * display Smarty syntax error
 -     *
 -     * @param string $error_msg
 -     * @param integer $error_type
 -     * @param string $file
 -     * @param integer $line
 -     */
 -    function _syntax_error($error_msg, $error_type = E_USER_ERROR, $file=null, $line=null)
 -    {
 -        if(isset($file) && isset($line)) {
 -            $info = ' ('.basename($file).", line $line)";
 -        } else {
 -            $info = null;
 -        }
 -        trigger_error('Smarty: [in ' . $this->_current_file . ' line ' .
 -                      $this->_current_line_no . "]: syntax error: $error_msg$info", $error_type);
 -    }
 -
 -
 -    /**
 -     * check if the compilation changes from cacheable to
 -     * non-cacheable state with the beginning of the current
 -     * plugin. return php-code to reflect the transition.
 -     * @return string
 -     */
 -    function _push_cacheable_state($type, $name) {
 -        $_cacheable = !isset($this->_plugins[$type][$name]) || $this->_plugins[$type][$name][4];
 -        if ($_cacheable
 -            || 0<$this->_cacheable_state++) return '';
 -        if (!isset($this->_cache_serial)) $this->_cache_serial = md5(uniqid('Smarty'));
 -        $_ret = 'if ($this->caching) { echo \'{nocache:'
 -            . $this->_cache_serial . '#' . $this->_nocache_count
 -            . '}\';}';
 -        return $_ret;
 -    }
 -
 -
 -    /**
 -     * check if the compilation changes from non-cacheable to
 -     * cacheable state with the end of the current plugin return
 -     * php-code to reflect the transition.
 -     * @return string
 -     */
 -    function _pop_cacheable_state($type, $name) {
 -        $_cacheable = !isset($this->_plugins[$type][$name]) || $this->_plugins[$type][$name][4];
 -        if ($_cacheable
 -            || --$this->_cacheable_state>0) return '';
 -        return 'if ($this->caching) { echo \'{/nocache:'
 -            . $this->_cache_serial . '#' . ($this->_nocache_count++)
 -            . '}\';}';
 -    }
 -
 -}
 -
 -/**
 - * compare to values by their string length
 - *
 - * @access private
 - * @param string $a
 - * @param string $b
 - * @return 0|-1|1
 - */
 -function _smarty_sort_length($a, $b)
 -{
 -    if($a == $b)
 -        return 0;
 -
 -    if(strlen($a) == strlen($b))
 -        return ($a > $b) ? -1 : 1;
 -
 -    return (strlen($a) > strlen($b)) ? -1 : 1;
 -}
 -
 -
 -/* vim: set et: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.assemble_plugin_filepath.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.assemble_plugin_filepath.php deleted file mode 100644 index 4c40ae90..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.assemble_plugin_filepath.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * assemble filepath of requested plugin
 - *
 - * @param string $type
 - * @param string $name
 - * @return string|false
 - */
 -function smarty_core_assemble_plugin_filepath($params, &$smarty)
 -{
 -
 -    $_plugin_filename = $params['type'] . '.' . $params['name'] . '.php';
 -    $_return = false;
 -
 -    foreach ((array)$smarty->plugins_dir as $_plugin_dir) {
 -
 -        $_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
 -
 -        // see if path is relative
 -        if (!preg_match("/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/", $_plugin_dir)) {
 -            $_relative_paths[] = $_plugin_dir;
 -            // relative path, see if it is in the SMARTY_DIR
 -            if (@is_readable(SMARTY_DIR . $_plugin_filepath)) {
 -                $_return = SMARTY_DIR . $_plugin_filepath;
 -                break;
 -            }
 -        }
 -        // try relative to cwd (or absolute)
 -        if (@is_readable($_plugin_filepath)) {
 -            $_return = $_plugin_filepath;
 -            break;
 -        }
 -    }
 -
 -    if($_return === false) {
 -        // still not found, try PHP include_path
 -        if(isset($_relative_paths)) {
 -            foreach ((array)$_relative_paths as $_plugin_dir) {
 -
 -                $_plugin_filepath = $_plugin_dir . DIRECTORY_SEPARATOR . $_plugin_filename;
 -
 -                $_params = array('file_path' => $_plugin_filepath);
 -                require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
 -                if(smarty_core_get_include_path($_params, $smarty)) {
 -                    return $_params['new_file_path'];
 -                }
 -            }
 -        }
 -    }
 -
 -    return $_return;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.assign_smarty_interface.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.assign_smarty_interface.php deleted file mode 100644 index 500ba9a9..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.assign_smarty_interface.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Smarty assign_smarty_interface core plugin
 - *
 - * Type:     core<br>
 - * Name:     assign_smarty_interface<br>
 - * Purpose:  assign the $smarty interface variable
 - * @param array Format: null
 - * @param Smarty
 - */
 -function smarty_core_assign_smarty_interface($params, &$smarty)
 -{
 -        if (isset($smarty->_smarty_vars) && isset($smarty->_smarty_vars['request'])) {
 -            return;
 -        }
 -
 -        $_globals_map = array('g'  => 'HTTP_GET_VARS',
 -                             'p'  => 'HTTP_POST_VARS',
 -                             'c'  => 'HTTP_COOKIE_VARS',
 -                             's'  => 'HTTP_SERVER_VARS',
 -                             'e'  => 'HTTP_ENV_VARS');
 -
 -        $_smarty_vars_request  = array();
 -
 -        foreach (preg_split('!!', strtolower($smarty->request_vars_order)) as $_c) {
 -            if (isset($_globals_map[$_c])) {
 -                $_smarty_vars_request = array_merge($_smarty_vars_request, $GLOBALS[$_globals_map[$_c]]);
 -            }
 -        }
 -        $_smarty_vars_request = @array_merge($_smarty_vars_request, $GLOBALS['HTTP_SESSION_VARS']);
 -
 -        $smarty->_smarty_vars['request'] = $_smarty_vars_request;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.create_dir_structure.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.create_dir_structure.php deleted file mode 100644 index b57d50ea..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.create_dir_structure.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * create full directory structure
 - *
 - * @param string $dir
 - */
 -
 -// $dir
 -
 -function smarty_core_create_dir_structure($params, &$smarty)
 -{
 -    if (!file_exists($params['dir'])) {
 -        $_open_basedir_ini = ini_get('open_basedir');
 -
 -        if (DIRECTORY_SEPARATOR=='/') {
 -            /* unix-style paths */
 -            $_dir = $params['dir'];
 -            $_dir_parts = preg_split('!/+!', $_dir, -1, PREG_SPLIT_NO_EMPTY);
 -            $_new_dir = ($_dir{0}=='/') ? '/' : getcwd().'/';
 -            if($_use_open_basedir = !empty($_open_basedir_ini)) {
 -                $_open_basedirs = explode(':', $_open_basedir_ini);
 -            }
 -
 -        } else {
 -            /* other-style paths */
 -            $_dir = str_replace('\\','/', $params['dir']);
 -            $_dir_parts = preg_split('!/+!', $_dir, -1, PREG_SPLIT_NO_EMPTY);
 -            if (preg_match('!^((//)|([a-zA-Z]:/))!', $_dir, $_root_dir)) {
 -                /* leading "//" for network volume, or "[letter]:/" for full path */
 -                $_new_dir = $_root_dir[1];
 -                /* remove drive-letter from _dir_parts */
 -                if (isset($_root_dir[3])) array_shift($_dir_parts);
 -
 -            } else {
 -                $_new_dir = str_replace('\\', '/', getcwd()).'/';
 -
 -            }
 -
 -            if($_use_open_basedir = !empty($_open_basedir_ini)) {
 -                $_open_basedirs = explode(';', str_replace('\\', '/', $_open_basedir_ini));
 -            }
 -
 -        }
 -
 -        /* all paths use "/" only from here */
 -        foreach ($_dir_parts as $_dir_part) {
 -            $_new_dir .= $_dir_part;
 -
 -            if ($_use_open_basedir) {
 -                // do not attempt to test or make directories outside of open_basedir
 -                $_make_new_dir = false;
 -                foreach ($_open_basedirs as $_open_basedir) {
 -                    if (substr($_new_dir, 0, strlen($_open_basedir)) == $_open_basedir) {
 -                        $_make_new_dir = true;
 -                        break;
 -                    }
 -                }
 -            } else {
 -                $_make_new_dir = true;
 -            }
 -
 -            if ($_make_new_dir && !file_exists($_new_dir) && !@mkdir($_new_dir, $smarty->_dir_perms) && !is_dir($_new_dir)) {
 -                $smarty->trigger_error("problem creating directory '" . $_new_dir . "'");
 -                return false;
 -            }
 -            $_new_dir .= '/';
 -        }
 -    }
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.display_debug_console.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.display_debug_console.php deleted file mode 100644 index 252c4478..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.display_debug_console.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Smarty debug_console function plugin
 - *
 - * Type:     core<br>
 - * Name:     display_debug_console<br>
 - * Purpose:  display the javascript debug console window
 - * @param array Format: null
 - * @param Smarty
 - */
 -function smarty_core_display_debug_console($params, &$smarty)
 -{
 -    // we must force compile the debug template in case the environment
 -    // changed between separate applications.
 -
 -    if(empty($smarty->debug_tpl)) {
 -        // set path to debug template from SMARTY_DIR
 -        $smarty->debug_tpl = SMARTY_DIR . 'debug.tpl';
 -        if($smarty->security && is_file($smarty->debug_tpl)) {
 -            $smarty->secure_dir[] = dirname(realpath($smarty->debug_tpl));
 -        }
 -    }
 -
 -    $_ldelim_orig = $smarty->left_delimiter;
 -    $_rdelim_orig = $smarty->right_delimiter;
 -
 -    $smarty->left_delimiter = '{';
 -    $smarty->right_delimiter = '}';
 -
 -    $_compile_id_orig = $smarty->_compile_id;
 -    $smarty->_compile_id = null;
 -
 -    $_compile_path = $smarty->_get_compile_path($smarty->debug_tpl);
 -    if ($smarty->_compile_resource($smarty->debug_tpl, $_compile_path))
 -    {
 -        ob_start();
 -        $smarty->_include($_compile_path);
 -        $_results = ob_get_contents();
 -        ob_end_clean();
 -    } else {
 -        $_results = '';
 -    }
 -
 -    $smarty->_compile_id = $_compile_id_orig;
 -
 -    $smarty->left_delimiter = $_ldelim_orig;
 -    $smarty->right_delimiter = $_rdelim_orig;
 -
 -    return $_results;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.get_include_path.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.get_include_path.php deleted file mode 100644 index 855eed30..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.get_include_path.php +++ /dev/null @@ -1,44 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Get path to file from include_path
 - *
 - * @param string $file_path
 - * @param string $new_file_path
 - * @return boolean
 - * @staticvar array|null
 - */
 -
 -//  $file_path, &$new_file_path
 -
 -function smarty_core_get_include_path(&$params, &$smarty)
 -{
 -    static $_path_array = null;
 -
 -    if(!isset($_path_array)) {
 -        $_ini_include_path = ini_get('include_path');
 -
 -        if(strstr($_ini_include_path,';')) {
 -            // windows pathnames
 -            $_path_array = explode(';',$_ini_include_path);
 -        } else {
 -            $_path_array = explode(':',$_ini_include_path);
 -        }
 -    }
 -    foreach ($_path_array as $_include_path) {
 -        if (file_exists($_include_path . DIRECTORY_SEPARATOR . $params['file_path'])) {
 -               $params['new_file_path'] = $_include_path . DIRECTORY_SEPARATOR . $params['file_path'];
 -            return true;
 -        }
 -    }
 -    return false;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.get_microtime.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.get_microtime.php deleted file mode 100644 index 3c998a71..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.get_microtime.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Get seconds and microseconds
 - * @return double
 - */
 -function smarty_core_get_microtime($params, &$smarty)
 -{
 -    $mtime = microtime();
 -    $mtime = explode(" ", $mtime);
 -    $mtime = (double)($mtime[1]) + (double)($mtime[0]);
 -    return ($mtime);
 -}
 -
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.get_php_resource.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.get_php_resource.php deleted file mode 100644 index 5279ad21..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.get_php_resource.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Retrieves PHP script resource
 - *
 - * sets $php_resource to the returned resource
 - * @param string $resource
 - * @param string $resource_type
 - * @param  $php_resource
 - * @return boolean
 - */
 -
 -function smarty_core_get_php_resource(&$params, &$smarty)
 -{
 -
 -    $params['resource_base_path'] = $smarty->trusted_dir;
 -    $smarty->_parse_resource_name($params, $smarty);
 -
 -    /*
 -     * Find out if the resource exists.
 -     */
 -
 -    if ($params['resource_type'] == 'file') {
 -        $_readable = false;
 -        if(file_exists($params['resource_name']) && is_readable($params['resource_name'])) {
 -            $_readable = true;
 -        } else {
 -            // test for file in include_path
 -            $_params = array('file_path' => $params['resource_name']);
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
 -            if(smarty_core_get_include_path($_params, $smarty)) {
 -                $_include_path = $_params['new_file_path'];
 -                $_readable = true;
 -            }
 -        }
 -    } else if ($params['resource_type'] != 'file') {
 -        $_template_source = null;
 -        $_readable = is_callable($smarty->_plugins['resource'][$params['resource_type']][0][0])
 -            && call_user_func_array($smarty->_plugins['resource'][$params['resource_type']][0][0],
 -                                    array($params['resource_name'], &$_template_source, &$smarty));
 -    }
 -
 -    /*
 -     * Set the error function, depending on which class calls us.
 -     */
 -    if (method_exists($smarty, '_syntax_error')) {
 -        $_error_funcc = '_syntax_error';
 -    } else {
 -        $_error_funcc = 'trigger_error';
 -    }
 -
 -    if ($_readable) {
 -        if ($smarty->security) {
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.is_trusted.php');
 -            if (!smarty_core_is_trusted($params, $smarty)) {
 -                $smarty->$_error_funcc('(secure mode) ' . $params['resource_type'] . ':' . $params['resource_name'] . ' is not trusted');
 -                return false;
 -            }
 -        }
 -    } else {
 -        $smarty->$_error_funcc($params['resource_type'] . ':' . $params['resource_name'] . ' is not readable');
 -        return false;
 -    }
 -
 -    if ($params['resource_type'] == 'file') {
 -        $params['php_resource'] = $params['resource_name'];
 -    } else {
 -        $params['php_resource'] = $_template_source;
 -    }
 -    return true;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.is_secure.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.is_secure.php deleted file mode 100644 index d6358208..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.is_secure.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * determines if a resource is secure or not.
 - *
 - * @param string $resource_type
 - * @param string $resource_name
 - * @return boolean
 - */
 -
 -//  $resource_type, $resource_name
 -
 -function smarty_core_is_secure($params, &$smarty)
 -{
 -    static $check_template_dir = true;
 -
 -    if (!$smarty->security || $smarty->security_settings['INCLUDE_ANY']) {
 -        return true;
 -    }
 -
 -    $_smarty_secure = false;
 -    if ($params['resource_type'] == 'file') {
 -        if($check_template_dir) {
 -            if (!in_array($smarty->template_dir, $smarty->secure_dir))
 -                // add template_dir to secure_dir array
 -                array_unshift($smarty->secure_dir, $smarty->template_dir);
 -            $check_template_dir = false;
 -        }
 -        if (!empty($smarty->secure_dir)) {
 -            $_rp = realpath($params['resource_name']);
 -            foreach ((array)$smarty->secure_dir as $curr_dir) {
 -                if ( !empty($curr_dir) && is_readable ($curr_dir)) {
 -                    $_cd = realpath($curr_dir);
 -                    if (strncmp($_rp, $_cd, strlen($_cd)) == 0
 -                        && $_rp{strlen($_cd)} == DIRECTORY_SEPARATOR ) {
 -                        $_smarty_secure = true;
 -                        break;
 -                    }
 -                }
 -            }
 -        }
 -    } else {
 -        // resource is not on local file system
 -        $_smarty_secure = call_user_func_array(
 -            $smarty->_plugins['resource'][$params['resource_type']][0][2],
 -            array($params['resource_name'], &$_smarty_secure, &$smarty));
 -    }
 -
 -    return $_smarty_secure;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.is_trusted.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.is_trusted.php deleted file mode 100644 index 478d3d30..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.is_trusted.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**#@+
 - * @access private
 - */
 -/**
 - * determines if a resource is trusted or not
 - *
 - * @param string $resource_type
 - * @param string $resource_name
 - * @return boolean
 - */
 -
 - // $resource_type, $resource_name
 -
 -function smarty_core_is_trusted($params, &$smarty)
 -{
 -    $_smarty_trusted = false;
 -    if ($params['resource_type'] == 'file') {
 -        if (!empty($smarty->trusted_dir)) {
 -            $_rp = realpath($params['resource_name']);
 -            foreach ((array)$smarty->trusted_dir as $curr_dir) {
 -                if (!empty($curr_dir) && is_readable ($curr_dir)) {
 -                    $_cd = realpath($curr_dir);
 -                    if (strncmp($_rp, $_cd, strlen($_cd)) == 0
 -                        && $_rp{strlen($_cd)} == DIRECTORY_SEPARATOR ) {
 -                        $_smarty_trusted = true;
 -                        break;
 -                    }
 -                }
 -            }
 -        }
 -
 -    } else {
 -        // resource is not on local file system
 -        $_smarty_trusted = call_user_func_array($smarty->_plugins['resource'][$params['resource_type']][0][3],
 -                                                array($params['resource_name'], $smarty));
 -    }
 -
 -    return $_smarty_trusted;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.load_plugins.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.load_plugins.php deleted file mode 100644 index 6f412ec9..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.load_plugins.php +++ /dev/null @@ -1,125 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Load requested plugins
 - *
 - * @param array $plugins
 - */
 -
 -// $plugins
 -
 -function smarty_core_load_plugins($params, &$smarty)
 -{
 -
 -    foreach ($params['plugins'] as $_plugin_info) {
 -        list($_type, $_name, $_tpl_file, $_tpl_line, $_delayed_loading) = $_plugin_info;
 -        $_plugin = &$smarty->_plugins[$_type][$_name];
 -
 -        /*
 -         * We do not load plugin more than once for each instance of Smarty.
 -         * The following code checks for that. The plugin can also be
 -         * registered dynamically at runtime, in which case template file
 -         * and line number will be unknown, so we fill them in.
 -         *
 -         * The final element of the info array is a flag that indicates
 -         * whether the dynamically registered plugin function has been
 -         * checked for existence yet or not.
 -         */
 -        if (isset($_plugin)) {
 -            if (empty($_plugin[3])) {
 -                if (!is_callable($_plugin[0])) {
 -                    $smarty->_trigger_fatal_error("[plugin] $_type '$_name' is not implemented", $_tpl_file, $_tpl_line, __FILE__, __LINE__);
 -                } else {
 -                    $_plugin[1] = $_tpl_file;
 -                    $_plugin[2] = $_tpl_line;
 -                    $_plugin[3] = true;
 -                    if (!isset($_plugin[4])) $_plugin[4] = true; /* cacheable */
 -                }
 -            }
 -            continue;
 -        } else if ($_type == 'insert') {
 -            /*
 -             * For backwards compatibility, we check for insert functions in
 -             * the symbol table before trying to load them as a plugin.
 -             */
 -            $_plugin_func = 'insert_' . $_name;
 -            if (function_exists($_plugin_func)) {
 -                $_plugin = array($_plugin_func, $_tpl_file, $_tpl_line, true, false);
 -                continue;
 -            }
 -        }
 -
 -        $_plugin_file = $smarty->_get_plugin_filepath($_type, $_name);
 -
 -        if (! $_found = ($_plugin_file != false)) {
 -            $_message = "could not load plugin file '$_type.$_name.php'\n";
 -        }
 -
 -        /*
 -         * If plugin file is found, it -must- provide the properly named
 -         * plugin function. In case it doesn't, simply output the error and
 -         * do not fall back on any other method.
 -         */
 -        if ($_found) {
 -            include_once $_plugin_file;
 -
 -            $_plugin_func = 'smarty_' . $_type . '_' . $_name;
 -            if (!function_exists($_plugin_func)) {
 -                $smarty->_trigger_fatal_error("[plugin] function $_plugin_func() not found in $_plugin_file", $_tpl_file, $_tpl_line, __FILE__, __LINE__);
 -                continue;
 -            }
 -        }
 -        /*
 -         * In case of insert plugins, their code may be loaded later via
 -         * 'script' attribute.
 -         */
 -        else if ($_type == 'insert' && $_delayed_loading) {
 -            $_plugin_func = 'smarty_' . $_type . '_' . $_name;
 -            $_found = true;
 -        }
 -
 -        /*
 -         * Plugin specific processing and error checking.
 -         */
 -        if (!$_found) {
 -            if ($_type == 'modifier') {
 -                /*
 -                 * In case modifier falls back on using PHP functions
 -                 * directly, we only allow those specified in the security
 -                 * context.
 -                 */
 -                if ($smarty->security && !in_array($_name, $smarty->security_settings['MODIFIER_FUNCS'])) {
 -                    $_message = "(secure mode) modifier '$_name' is not allowed";
 -                } else {
 -                    if (!function_exists($_name)) {
 -                        $_message = "modifier '$_name' is not implemented";
 -                    } else {
 -                        $_plugin_func = $_name;
 -                        $_found = true;
 -                    }
 -                }
 -            } else if ($_type == 'function') {
 -                /*
 -                 * This is a catch-all situation.
 -                 */
 -                $_message = "unknown tag - '$_name'";
 -            }
 -        }
 -
 -        if ($_found) {
 -            $smarty->_plugins[$_type][$_name] = array($_plugin_func, $_tpl_file, $_tpl_line, true, true);
 -        } else {
 -            // output error
 -            $smarty->_trigger_fatal_error('[plugin] ' . $_message, $_tpl_file, $_tpl_line, __FILE__, __LINE__);
 -        }
 -    }
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.load_resource_plugin.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.load_resource_plugin.php deleted file mode 100644 index 8a084f1b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.load_resource_plugin.php +++ /dev/null @@ -1,74 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * load a resource plugin
 - *
 - * @param string $type
 - */
 -
 -// $type
 -
 -function smarty_core_load_resource_plugin($params, &$smarty)
 -{
 -    /*
 -     * Resource plugins are not quite like the other ones, so they are
 -     * handled differently. The first element of plugin info is the array of
 -     * functions provided by the plugin, the second one indicates whether
 -     * all of them exist or not.
 -     */
 -
 -    $_plugin = &$smarty->_plugins['resource'][$params['type']];
 -    if (isset($_plugin)) {
 -        if (!$_plugin[1] && count($_plugin[0])) {
 -            $_plugin[1] = true;
 -            foreach ($_plugin[0] as $_plugin_func) {
 -                if (!is_callable($_plugin_func)) {
 -                    $_plugin[1] = false;
 -                    break;
 -                }
 -            }
 -        }
 -
 -        if (!$_plugin[1]) {
 -            $smarty->_trigger_fatal_error("[plugin] resource '" . $params['type'] . "' is not implemented", null, null, __FILE__, __LINE__);
 -        }
 -
 -        return;
 -    }
 -
 -    $_plugin_file = $smarty->_get_plugin_filepath('resource', $params['type']);
 -    $_found = ($_plugin_file != false);
 -
 -    if ($_found) {            /*
 -         * If the plugin file is found, it -must- provide the properly named
 -         * plugin functions.
 -         */
 -        include_once($_plugin_file);
 -
 -        /*
 -         * Locate functions that we require the plugin to provide.
 -         */
 -        $_resource_ops = array('source', 'timestamp', 'secure', 'trusted');
 -        $_resource_funcs = array();
 -        foreach ($_resource_ops as $_op) {
 -            $_plugin_func = 'smarty_resource_' . $params['type'] . '_' . $_op;
 -            if (!function_exists($_plugin_func)) {
 -                $smarty->_trigger_fatal_error("[plugin] function $_plugin_func() not found in $_plugin_file", null, null, __FILE__, __LINE__);
 -                return;
 -            } else {
 -                $_resource_funcs[] = $_plugin_func;
 -            }
 -        }
 -
 -        $smarty->_plugins['resource'][$params['type']] = array($_resource_funcs, true);
 -    }
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.process_cached_inserts.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.process_cached_inserts.php deleted file mode 100644 index 42c32698..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.process_cached_inserts.php +++ /dev/null @@ -1,71 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Replace cached inserts with the actual results
 - *
 - * @param string $results
 - * @return string
 - */
 -function smarty_core_process_cached_inserts($params, &$smarty)
 -{
 -    preg_match_all('!'.$smarty->_smarty_md5.'{insert_cache (.*)}'.$smarty->_smarty_md5.'!Uis',
 -                   $params['results'], $match);
 -    list($cached_inserts, $insert_args) = $match;
 -
 -    for ($i = 0, $for_max = count($cached_inserts); $i < $for_max; $i++) {
 -        if ($smarty->debugging) {
 -            $_params = array();
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
 -            $debug_start_time = smarty_core_get_microtime($_params, $smarty);
 -        }
 -
 -        $args = unserialize($insert_args[$i]);
 -        $name = $args['name'];
 -
 -        if (isset($args['script'])) {
 -            $_params = array('resource_name' => $smarty->_dequote($args['script']));
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_php_resource.php');
 -            if(!smarty_core_get_php_resource($_params, $smarty)) {
 -                return false;
 -            }
 -            $resource_type = $_params['resource_type'];
 -            $php_resource = $_params['php_resource'];
 -
 -
 -            if ($resource_type == 'file') {
 -                $smarty->_include($php_resource, true);
 -            } else {
 -                $smarty->_eval($php_resource);
 -            }
 -        }
 -
 -        $function_name = $smarty->_plugins['insert'][$name][0];
 -        if (empty($args['assign'])) {
 -            $replace = $function_name($args, $smarty);
 -        } else {
 -            $smarty->assign($args['assign'], $function_name($args, $smarty));
 -            $replace = '';
 -        }
 -
 -        $params['results'] = str_replace($cached_inserts[$i], $replace, $params['results']);
 -        if ($smarty->debugging) {
 -            $_params = array();
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
 -            $smarty->_smarty_debug_info[] = array('type'      => 'insert',
 -                                                'filename'  => 'insert_'.$name,
 -                                                'depth'     => $smarty->_inclusion_depth,
 -                                                'exec_time' => smarty_core_get_microtime($_params, $smarty) - $debug_start_time);
 -        }
 -    }
 -
 -    return $params['results'];
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.process_compiled_include.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.process_compiled_include.php deleted file mode 100644 index 52ecc642..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.process_compiled_include.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Replace nocache-tags by results of the corresponding non-cacheable
 - * functions and return it
 - *
 - * @param string $compiled_tpl
 - * @param string $cached_source
 - * @return string
 - */
 -
 -function smarty_core_process_compiled_include($params, &$smarty)
 -{
 -    $_cache_including = $smarty->_cache_including;
 -    $smarty->_cache_including = true;
 -
 -    $_return = $params['results'];
 -    foreach ($smarty->_cache_serials as $_include_file_path=>$_cache_serial) {
 -        $_return = preg_replace_callback('!(\{nocache\:('.$_cache_serial.')#(\d+)\})!s',
 -                                         array(&$smarty, '_process_compiled_include_callback'),
 -                                         $_return);
 -    }
 -    $smarty->_cache_including = $_cache_including;
 -    return $_return;
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.read_cache_file.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.read_cache_file.php deleted file mode 100644 index 60ec924e..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.read_cache_file.php +++ /dev/null @@ -1,111 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * read a cache file, determine if it needs to be
 - * regenerated or not
 - *
 - * @param string $tpl_file
 - * @param string $cache_id
 - * @param string $compile_id
 - * @param string $results
 - * @return boolean
 - */
 -
 -//  $tpl_file, $cache_id, $compile_id, &$results
 -
 -function smarty_core_read_cache_file(&$params, &$smarty)
 -{
 -    static  $content_cache = array();
 -
 -    if ($smarty->force_compile) {
 -        // force compile enabled, always regenerate
 -        return false;
 -    }
 -
 -    if (isset($content_cache[$params['tpl_file'].','.$params['cache_id'].','.$params['compile_id']])) {
 -        list($params['results'], $smarty->_cache_info) = $content_cache[$params['tpl_file'].','.$params['cache_id'].','.$params['compile_id']];
 -        return true;
 -    }
 -
 -    if (!empty($smarty->cache_handler_func)) {
 -        // use cache_handler function
 -        call_user_func_array($smarty->cache_handler_func,
 -                             array('read', &$smarty, &$params['results'], $params['tpl_file'], $params['cache_id'], $params['compile_id'], null));
 -    } else {
 -        // use local cache file
 -        $_auto_id = $smarty->_get_auto_id($params['cache_id'], $params['compile_id']);
 -        $_cache_file = $smarty->_get_auto_filename($smarty->cache_dir, $params['tpl_file'], $_auto_id);
 -        $params['results'] = $smarty->_read_file($_cache_file);
 -    }
 -
 -    if (empty($params['results'])) {
 -        // nothing to parse (error?), regenerate cache
 -        return false;
 -    }
 -
 -    $cache_split = explode("\n", $params['results'], 2);
 -    $cache_header = $cache_split[0];
 -
 -    $_cache_info = unserialize($cache_header);
 -
 -    if ($smarty->caching == 2 && isset ($_cache_info['expires'])){
 -        // caching by expiration time
 -        if ($_cache_info['expires'] > -1 && (time() > $_cache_info['expires'])) {
 -            // cache expired, regenerate
 -            return false;
 -        }
 -    } else {
 -        // caching by lifetime
 -        if ($smarty->cache_lifetime > -1 && (time() - $_cache_info['timestamp'] > $smarty->cache_lifetime)) {
 -            // cache expired, regenerate
 -            return false;
 -        }
 -    }
 -
 -    if ($smarty->compile_check) {
 -        $_params = array('get_source' => false, 'quiet'=>true);
 -        foreach (array_keys($_cache_info['template']) as $_template_dep) {
 -            $_params['resource_name'] = $_template_dep;
 -            if (!$smarty->_fetch_resource_info($_params) || $_cache_info['timestamp'] < $_params['resource_timestamp']) {
 -                // template file has changed, regenerate cache
 -                return false;
 -            }
 -        }
 -
 -        if (isset($_cache_info['config'])) {
 -            $_params = array('resource_base_path' => $smarty->config_dir, 'get_source' => false, 'quiet'=>true);
 -            foreach (array_keys($_cache_info['config']) as $_config_dep) {
 -                $_params['resource_name'] = $_config_dep;
 -                if (!$smarty->_fetch_resource_info($_params) || $_cache_info['timestamp'] < $_params['resource_timestamp']) {
 -                    // config file has changed, regenerate cache
 -                    return false;
 -                }
 -            }
 -        }
 -    }
 -
 -    foreach ($_cache_info['cache_serials'] as $_include_file_path=>$_cache_serial) {
 -        if (empty($smarty->_cache_serials[$_include_file_path])) {
 -            $smarty->_include($_include_file_path, true);
 -        }
 -
 -        if ($smarty->_cache_serials[$_include_file_path] != $_cache_serial) {
 -            /* regenerate */
 -            return false;
 -        }
 -    }
 -    $params['results'] = $cache_split[1];
 -    $content_cache[$params['tpl_file'].','.$params['cache_id'].','.$params['compile_id']] = array($params['results'], $_cache_info);
 -
 -    $smarty->_cache_info = $_cache_info;
 -    return true;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.rm_auto.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.rm_auto.php deleted file mode 100644 index d3cbfe28..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.rm_auto.php +++ /dev/null @@ -1,71 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * delete an automagically created file by name and id
 - *
 - * @param string $auto_base
 - * @param string $auto_source
 - * @param string $auto_id
 - * @param integer $exp_time
 - * @return boolean
 - */
 -
 -// $auto_base, $auto_source = null, $auto_id = null, $exp_time = null
 -
 -function smarty_core_rm_auto($params, &$smarty)
 -{
 -    if (!@is_dir($params['auto_base']))
 -      return false;
 -
 -    if(!isset($params['auto_id']) && !isset($params['auto_source'])) {
 -        $_params = array(
 -            'dirname' => $params['auto_base'],
 -            'level' => 0,
 -            'exp_time' => $params['exp_time']
 -        );
 -        require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rmdir.php');
 -        $_res = smarty_core_rmdir($_params, $smarty);
 -    } else {
 -        $_tname = $smarty->_get_auto_filename($params['auto_base'], $params['auto_source'], $params['auto_id']);
 -
 -        if(isset($params['auto_source'])) {
 -            if (isset($params['extensions'])) {
 -                $_res = false;
 -                foreach ((array)$params['extensions'] as $_extension)
 -                    $_res |= $smarty->_unlink($_tname.$_extension, $params['exp_time']);
 -            } else {
 -                $_res = $smarty->_unlink($_tname, $params['exp_time']);
 -            }
 -        } elseif ($smarty->use_sub_dirs) {
 -            $_params = array(
 -                'dirname' => $_tname,
 -                'level' => 1,
 -                'exp_time' => $params['exp_time']
 -            );
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rmdir.php');
 -            $_res = smarty_core_rmdir($_params, $smarty);
 -        } else {
 -            // remove matching file names
 -            $_handle = opendir($params['auto_base']);
 -            $_res = true;
 -            while (false !== ($_filename = readdir($_handle))) {
 -                if($_filename == '.' || $_filename == '..') {
 -                    continue;
 -                } elseif (substr($params['auto_base'] . DIRECTORY_SEPARATOR . $_filename, 0, strlen($_tname)) == $_tname) {
 -                    $_res &= (bool)$smarty->_unlink($params['auto_base'] . DIRECTORY_SEPARATOR . $_filename, $params['exp_time']);
 -                }
 -            }
 -        }
 -    }
 -
 -    return $_res;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.rmdir.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.rmdir.php deleted file mode 100644 index f149469d..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.rmdir.php +++ /dev/null @@ -1,55 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * delete a dir recursively (level=0 -> keep root)
 - * WARNING: no tests, it will try to remove what you tell it!
 - *
 - * @param string $dirname
 - * @param integer $level
 - * @param integer $exp_time
 - * @return boolean
 - */
 -
 -//  $dirname, $level = 1, $exp_time = null
 -
 -function smarty_core_rmdir($params, &$smarty)
 -{
 -   if(!isset($params['level'])) { $params['level'] = 1; }
 -   if(!isset($params['exp_time'])) { $params['exp_time'] = null; }
 -
 -   if($_handle = @opendir($params['dirname'])) {
 -
 -        while (false !== ($_entry = readdir($_handle))) {
 -            if ($_entry != '.' && $_entry != '..') {
 -                if (@is_dir($params['dirname'] . DIRECTORY_SEPARATOR . $_entry)) {
 -                    $_params = array(
 -                        'dirname' => $params['dirname'] . DIRECTORY_SEPARATOR . $_entry,
 -                        'level' => $params['level'] + 1,
 -                        'exp_time' => $params['exp_time']
 -                    );
 -                    require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.rmdir.php');
 -                    smarty_core_rmdir($_params, $smarty);
 -                }
 -                else {
 -                    $smarty->_unlink($params['dirname'] . DIRECTORY_SEPARATOR . $_entry, $params['exp_time']);
 -                }
 -            }
 -        }
 -        closedir($_handle);
 -   }
 -
 -   if ($params['level']) {
 -       return @rmdir($params['dirname']);
 -   }
 -   return (bool)$_handle;
 -
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.run_insert_handler.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.run_insert_handler.php deleted file mode 100644 index a40f8b24..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.run_insert_handler.php +++ /dev/null @@ -1,71 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Handle insert tags
 - *
 - * @param array $args
 - * @return string
 - */
 -function smarty_core_run_insert_handler($params, &$smarty)
 -{
 -
 -    require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
 -    if ($smarty->debugging) {
 -        $_params = array();
 -        $_debug_start_time = smarty_core_get_microtime($_params, $smarty);
 -    }
 -
 -    if ($smarty->caching) {
 -        $_arg_string = serialize($params['args']);
 -        $_name = $params['args']['name'];
 -        if (!isset($smarty->_cache_info['insert_tags'][$_name])) {
 -            $smarty->_cache_info['insert_tags'][$_name] = array('insert',
 -                                                             $_name,
 -                                                             $smarty->_plugins['insert'][$_name][1],
 -                                                             $smarty->_plugins['insert'][$_name][2],
 -                                                             !empty($params['args']['script']) ? true : false);
 -        }
 -        return $smarty->_smarty_md5."{insert_cache $_arg_string}".$smarty->_smarty_md5;
 -    } else {
 -        if (isset($params['args']['script'])) {
 -            $_params = array('resource_name' => $smarty->_dequote($params['args']['script']));
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_php_resource.php');
 -            if(!smarty_core_get_php_resource($_params, $smarty)) {
 -                return false;
 -            }
 -
 -            if ($_params['resource_type'] == 'file') {
 -                $smarty->_include($_params['php_resource'], true);
 -            } else {
 -                $smarty->_eval($_params['php_resource']);
 -            }
 -            unset($params['args']['script']);
 -        }
 -
 -        $_funcname = $smarty->_plugins['insert'][$params['args']['name']][0];
 -        $_content = $_funcname($params['args'], $smarty);
 -        if ($smarty->debugging) {
 -            $_params = array();
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
 -            $smarty->_smarty_debug_info[] = array('type'      => 'insert',
 -                                                'filename'  => 'insert_'.$params['args']['name'],
 -                                                'depth'     => $smarty->_inclusion_depth,
 -                                                'exec_time' => smarty_core_get_microtime($_params, $smarty) - $_debug_start_time);
 -        }
 -
 -        if (!empty($params['args']["assign"])) {
 -            $smarty->assign($params['args']["assign"], $_content);
 -        } else {
 -            return $_content;
 -        }
 -    }
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.smarty_include_php.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.smarty_include_php.php deleted file mode 100644 index 9efc46ac..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.smarty_include_php.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * called for included php files within templates
 - *
 - * @param string $smarty_file
 - * @param string $smarty_assign variable to assign the included template's
 - *               output into
 - * @param boolean $smarty_once uses include_once if this is true
 - * @param array $smarty_include_vars associative array of vars from
 - *              {include file="blah" var=$var}
 - */
 -
 -//  $file, $assign, $once, $_smarty_include_vars
 -
 -function smarty_core_smarty_include_php($params, &$smarty)
 -{
 -    $_params = array('resource_name' => $params['smarty_file']);
 -    require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_php_resource.php');
 -    smarty_core_get_php_resource($_params, $smarty);
 -    $_smarty_resource_type = $_params['resource_type'];
 -    $_smarty_php_resource = $_params['php_resource'];
 -
 -    if (!empty($params['smarty_assign'])) {
 -        ob_start();
 -        if ($_smarty_resource_type == 'file') {
 -            $smarty->_include($_smarty_php_resource, $params['smarty_once'], $params['smarty_include_vars']);
 -        } else {
 -            $smarty->_eval($_smarty_php_resource, $params['smarty_include_vars']);
 -        }
 -        $smarty->assign($params['smarty_assign'], ob_get_contents());
 -        ob_end_clean();
 -    } else {
 -        if ($_smarty_resource_type == 'file') {
 -            $smarty->_include($_smarty_php_resource, $params['smarty_once'], $params['smarty_include_vars']);
 -        } else {
 -            $smarty->_eval($_smarty_php_resource, $params['smarty_include_vars']);
 -        }
 -    }
 -}
 -
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_cache_file.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_cache_file.php deleted file mode 100644 index 47f1b8ec..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_cache_file.php +++ /dev/null @@ -1,73 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Prepend the cache information to the cache file
 - * and write it
 - *
 - * @param string $tpl_file
 - * @param string $cache_id
 - * @param string $compile_id
 - * @param string $results
 - * @return true|null
 - */
 -
 - // $tpl_file, $cache_id, $compile_id, $results
 -
 -function smarty_core_write_cache_file($params, &$smarty)
 -{
 -
 -    // put timestamp in cache header
 -    $smarty->_cache_info['timestamp'] = time();
 -    if ($smarty->cache_lifetime > -1){
 -        // expiration set
 -        $smarty->_cache_info['expires'] = $smarty->_cache_info['timestamp'] + $smarty->cache_lifetime;
 -    } else {
 -        // cache will never expire
 -        $smarty->_cache_info['expires'] = -1;
 -    }
 -
 -    // collapse {nocache...}-tags
 -    $params['results'] = preg_replace('!((\{nocache\:([0-9a-f]{32})#(\d+)\})'
 -                                      .'.*'
 -                                      .'{/nocache\:\\3#\\4\})!Us'
 -                                      ,'\\2'
 -                                      ,$params['results']);
 -    $smarty->_cache_info['cache_serials'] = $smarty->_cache_serials;
 -
 -    // prepend the cache header info into cache file
 -    $params['results'] = serialize($smarty->_cache_info)."\n".$params['results'];
 -
 -    if (!empty($smarty->cache_handler_func)) {
 -        // use cache_handler function
 -        call_user_func_array($smarty->cache_handler_func,
 -                             array('write', &$smarty, &$params['results'], $params['tpl_file'], $params['cache_id'], $params['compile_id'], null));
 -    } else {
 -        // use local cache file
 -
 -        if(!@is_writable($smarty->cache_dir)) {
 -            // cache_dir not writable, see if it exists
 -            if(!@is_dir($smarty->cache_dir)) {
 -                $smarty->trigger_error('the $cache_dir \'' . $smarty->cache_dir . '\' does not exist, or is not a directory.', E_USER_ERROR);
 -                return false;
 -            }
 -            $smarty->trigger_error('unable to write to $cache_dir \'' . realpath($smarty->cache_dir) . '\'. Be sure $cache_dir is writable by the web server user.', E_USER_ERROR);
 -            return false;
 -        }
 -
 -        $_auto_id = $smarty->_get_auto_id($params['cache_id'], $params['compile_id']);
 -        $_cache_file = $smarty->_get_auto_filename($smarty->cache_dir, $params['tpl_file'], $_auto_id);
 -        $_params = array('filename' => $_cache_file, 'contents' => $params['results'], 'create_dirs' => true);
 -        require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_file.php');
 -        smarty_core_write_file($_params, $smarty);
 -        return true;
 -    }
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_include.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_include.php deleted file mode 100644 index 4124f355..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_include.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Extract non-cacheable parts out of compiled template and write it
 - *
 - * @param string $compile_path
 - * @param string $template_compiled
 - * @param integer $template_timestamp
 - * @return boolean
 - */
 -
 -function smarty_core_write_compiled_include($params, &$smarty)
 -{
 -    $_tag_start = 'if \(\$this->caching\) \{ echo \'\{nocache\:('.$params['cache_serial'].')#(\d+)\}\';\}';
 -    $_tag_end   = 'if \(\$this->caching\) \{ echo \'\{/nocache\:(\\2)#(\\3)\}\';\}';
 -
 -    preg_match_all('!('.$_tag_start.'(.*)'.$_tag_end.')!Us',
 -                   $params['compiled_content'], $_match_source, PREG_SET_ORDER);
 -
 -    // no nocache-parts found: done
 -    if (count($_match_source)==0) return;
 -
 -    // convert the matched php-code to functions
 -    $_include_compiled = "<?php /* funky header here */\n\n";
 -
 -    $_compile_path = $params['include_file_path'];
 -
 -    $smarty->_cache_serials[$_compile_path] = $params['cache_serial'];
 -    $_include_compiled .= "\$this->_cache_serials['".$_compile_path."'] = '".$params['cache_serial']."';\n\n?>";
 -
 -    $_include_compiled .= $params['plugins_code'];
 -    $_include_compiled .= "<?php";
 -    for ($_i = 0, $_for_max = count($_match_source); $_i < $_for_max; $_i++) {
 -        $_match =& $_match_source[$_i];
 -        $_include_compiled .= "
 -function _smarty_tplfunc_$_match[2]_$_match[3](&\$this)
 -{
 -$_match[4]
 -}
 -
 -";
 -    }
 -    $_include_compiled .= "\n\n?>\n";
 -
 -    $_params = array('filename' => $_compile_path,
 -                     'contents' => $_include_compiled, 'create_dirs' => true);
 -
 -    require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_file.php');
 -    smarty_core_write_file($_params, $smarty);
 -    return true;
 -}
 -
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_resource.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_resource.php deleted file mode 100644 index cd5cfb56..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_compiled_resource.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * write the compiled resource
 - *
 - * @param string $compile_path
 - * @param string $compiled_content
 - * @param integer $resource_timestamp
 - * @return true
 - */
 -function smarty_core_write_compiled_resource($params, &$smarty)
 -{
 -    if(!@is_writable($smarty->compile_dir)) {
 -        // compile_dir not writable, see if it exists
 -        if(!@is_dir($smarty->compile_dir)) {
 -            $smarty->trigger_error('the $compile_dir \'' . $smarty->compile_dir . '\' does not exist, or is not a directory.', E_USER_ERROR);
 -            return false;
 -        }
 -        $smarty->trigger_error('unable to write to $compile_dir \'' . realpath($smarty->compile_dir) . '\'. Be sure $compile_dir is writable by the web server user.', E_USER_ERROR);
 -        return false;
 -    }
 -
 -    $_params = array('filename' => $params['compile_path'], 'contents' => $params['compiled_content'], 'create_dirs' => true);
 -    require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_file.php');
 -    smarty_core_write_file($_params, $smarty);
 -    touch($params['compile_path'], $params['resource_timestamp']);
 -    return true;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_file.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_file.php deleted file mode 100644 index 534a3828..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/core/core.write_file.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * write out a file to disk
 - *
 - * @param string $filename
 - * @param string $contents
 - * @param boolean $create_dirs
 - * @return boolean
 - */
 -function smarty_core_write_file($params, &$smarty)
 -{
 -    $_dirname = dirname($params['filename']);
 -
 -    if ($params['create_dirs']) {
 -        $_params = array('dir' => $_dirname);
 -        require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.create_dir_structure.php');
 -        smarty_core_create_dir_structure($_params, $smarty);
 -    }
 -
 -    // write to tmp file, then rename it to avoid
 -    // file locking race condition
 -    $_tmp_file = $_dirname . DIRECTORY_SEPARATOR . uniqid('');
 -
 -    if (!($fd = @fopen($_tmp_file, 'w'))) {
 -        $smarty->trigger_error("problem writing temporary file '$_tmp_file'");
 -        return false;
 -    }
 -
 -    fwrite($fd, $params['contents']);
 -    fclose($fd);
 -    if(file_exists($params['filename'])) {
 -        @unlink($params['filename']);
 -    }
 -    @rename($_tmp_file, $params['filename']);
 -    @chmod($params['filename'], $smarty->_file_perms);
 -
 -    return true;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/debug.tpl b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/debug.tpl deleted file mode 100644 index ab717db7..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/debug.tpl +++ /dev/null @@ -1,64 +0,0 @@ -{* Smarty *}
 -
 -{* debug.tpl, last updated version 2.0.1 *}
 -
 -{assign_debug_info}
 -
 -{if isset($_smarty_debug_output) and $_smarty_debug_output eq "html"}
 -	<table border=0 width=100%>
 -	<tr bgcolor=#cccccc><th colspan=2>Smarty Debug Console</th></tr>
 -	<tr bgcolor=#cccccc><td colspan=2><b>included templates & config files (load time in seconds):</b></td></tr>
 -	{section name=templates loop=$_debug_tpls}
 -		<tr bgcolor={if %templates.index% is even}#eeeeee{else}#fafafa{/if}><td colspan=2><tt>{section name=indent loop=$_debug_tpls[templates].depth}   {/section}<font color={if $_debug_tpls[templates].type eq "template"}brown{elseif $_debug_tpls[templates].type eq "insert"}black{else}green{/if}>{$_debug_tpls[templates].filename|escape:html}</font>{if isset($_debug_tpls[templates].exec_time)} <font size=-1><i>({$_debug_tpls[templates].exec_time|string_format:"%.5f"}){if %templates.index% eq 0} (total){/if}</i></font>{/if}</tt></td></tr>
 -	{sectionelse}
 -		<tr bgcolor=#eeeeee><td colspan=2><tt><i>no templates included</i></tt></td></tr>	
 -	{/section}
 -	<tr bgcolor=#cccccc><td colspan=2><b>assigned template variables:</b></td></tr>
 -	{section name=vars loop=$_debug_keys}
 -		<tr bgcolor={if %vars.index% is even}#eeeeee{else}#fafafa{/if}><td valign=top><tt><font color=blue>{ldelim}${$_debug_keys[vars]}{rdelim}</font></tt></td><td nowrap><tt><font color=green>{$_debug_vals[vars]|@debug_print_var}</font></tt></td></tr>
 -	{sectionelse}
 -		<tr bgcolor=#eeeeee><td colspan=2><tt><i>no template variables assigned</i></tt></td></tr>	
 -	{/section}
 -	<tr bgcolor=#cccccc><td colspan=2><b>assigned config file variables (outer template scope):</b></td></tr>
 -	{section name=config_vars loop=$_debug_config_keys}
 -		<tr bgcolor={if %config_vars.index% is even}#eeeeee{else}#fafafa{/if}><td valign=top><tt><font color=maroon>{ldelim}#{$_debug_config_keys[config_vars]}#{rdelim}</font></tt></td><td><tt><font color=green>{$_debug_config_vals[config_vars]|@debug_print_var}</font></tt></td></tr>
 -	{sectionelse}
 -		<tr bgcolor=#eeeeee><td colspan=2><tt><i>no config vars assigned</i></tt></td></tr>	
 -	{/section}
 -	</table>
 -</BODY></HTML>
 -{else}
 -<SCRIPT language=javascript>
 -	if( self.name == '' ) {ldelim}
 -	   var title = 'Console';
 -	{rdelim}
 -	else {ldelim}
 -	   var title = 'Console_' + self.name;
 -	{rdelim}
 -	_smarty_console = window.open("",title.value,"width=680,height=600,resizable,scrollbars=yes");
 -	_smarty_console.document.write("<HTML><TITLE>Smarty Debug Console_"+self.name+"</TITLE><BODY bgcolor=#ffffff>");
 -	_smarty_console.document.write("<table border=0 width=100%>");
 -	_smarty_console.document.write("<tr bgcolor=#cccccc><th colspan=2>Smarty Debug Console</th></tr>");
 -	_smarty_console.document.write("<tr bgcolor=#cccccc><td colspan=2><b>included templates & config files (load time in seconds):</b></td></tr>");
 -	{section name=templates loop=$_debug_tpls}
 -		_smarty_console.document.write("<tr bgcolor={if %templates.index% is even}#eeeeee{else}#fafafa{/if}><td colspan=2><tt>{section name=indent loop=$_debug_tpls[templates].depth}   {/section}<font color={if $_debug_tpls[templates].type eq "template"}brown{elseif $_debug_tpls[templates].type eq "insert"}black{else}green{/if}>{$_debug_tpls[templates].filename|escape:html|escape:javascript}</font>{if isset($_debug_tpls[templates].exec_time)} <font size=-1><i>({$_debug_tpls[templates].exec_time|string_format:"%.5f"}){if %templates.index% eq 0} (total){/if}</i></font>{/if}</tt></td></tr>");
 -	{sectionelse}
 -		_smarty_console.document.write("<tr bgcolor=#eeeeee><td colspan=2><tt><i>no templates included</i></tt></td></tr>");	
 -	{/section}
 -	_smarty_console.document.write("<tr bgcolor=#cccccc><td colspan=2><b>assigned template variables:</b></td></tr>");
 -	{section name=vars loop=$_debug_keys}
 -		_smarty_console.document.write("<tr bgcolor={if %vars.index% is even}#eeeeee{else}#fafafa{/if}><td valign=top><tt><font color=blue>{ldelim}${$_debug_keys[vars]}{rdelim}</font></tt></td><td nowrap><tt><font color=green>{$_debug_vals[vars]|@debug_print_var|escape:javascript}</font></tt></td></tr>");
 -	{sectionelse}
 -		_smarty_console.document.write("<tr bgcolor=#eeeeee><td colspan=2><tt><i>no template variables assigned</i></tt></td></tr>");	
 -	{/section}
 -	_smarty_console.document.write("<tr bgcolor=#cccccc><td colspan=2><b>assigned config file variables (outer template scope):</b></td></tr>");
 -	{section name=config_vars loop=$_debug_config_keys}
 -		_smarty_console.document.write("<tr bgcolor={if %config_vars.index% is even}#eeeeee{else}#fafafa{/if}><td valign=top><tt><font color=maroon>{ldelim}#{$_debug_config_keys[config_vars]}#{rdelim}</font></tt></td><td><tt><font color=green>{$_debug_config_vals[config_vars]|@debug_print_var|escape:javascript}</font></tt></td></tr>");
 -	{sectionelse}
 -		_smarty_console.document.write("<tr bgcolor=#eeeeee><td colspan=2><tt><i>no config vars assigned</i></tt></td></tr>");	
 -	{/section}
 -	_smarty_console.document.write("</table>");
 -	_smarty_console.document.write("</BODY></HTML>");
 -	_smarty_console.document.close();
 -</SCRIPT>
 -{/if}
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.strip.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.strip.php deleted file mode 100644 index a25df360..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.strip.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Smarty {strip}{/strip} block plugin
 - *
 - * Type:     block function<br>
 - * Name:     strip<br>
 - * Purpose:  strip unwanted white space from text<br>
 - * @link http://smarty.php.net/manual/en/language.function.strip.php {strip}
 - *       (Smarty online manual)
 - * @param array unused, no parameters for this block
 - * @param string content of {strip}{/strip} tags
 - * @param Smarty clever method emulation
 - * @return string $content stripped of whitespace
 - */
 -function smarty_block_strip($params, $content, &$this)
 -{
 -	/* Reformat data between 'strip' and '/strip' tags, removing spaces, tabs and newlines. */
 -	$_strip_search = array(
 -		"![\t ]+$|^[\t ]+!m", // remove leading/trailing space chars
 -		'%[\r\n]+%m'); // remove CRs and newlines
 -	$_strip_replace = array(
 -		'',
 -		'');
 -	return preg_replace($_strip_search, $_strip_replace, $content);
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.textformat.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.textformat.php deleted file mode 100644 index f3462c21..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/block.textformat.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Smarty {textformat}{/textformat} block plugin
 - *
 - * Type:     block function<br>
 - * Name:     textformat<br>
 - * Purpose:  format text a certain way with preset styles
 - *           or custom wrap/indent settings<br>
 - * @link http://smarty.php.net/manual/en/language.function.textformat.php {textformat}
 - *       (Smarty online manual)
 - * @param array
 - * <pre>
 - * Params:   style: string (email)
 - *           indent: integer (0)
 - *           wrap: integer (80)
 - *           wrap_char string ("\n")
 - *           indent_char: string (" ")
 - *           wrap_boundary: boolean (true)
 - * </pre>
 - * @param string contents of the block
 - * @param Smarty clever simulation of a method
 - * @return string string $content re-formatted
 - */
 -function smarty_block_textformat($params, $content, &$smarty)
 -{
 -	$style = null;
 -	$indent = 0;
 -	$indent_first = 0;
 -	$indent_char = ' ';
 -	$wrap = 80;
 -	$wrap_char = "\n";
 -	$wrap_cut = false;
 -	$assign = null;
 -	
 -	if($content == null) {
 -		return true;
 -	}
 -
 -    extract($params);
 -
 -	if($style == 'email') {
 -		$wrap = 72;
 -	}	
 -	
 -	// split into paragraphs	
 -	$paragraphs = preg_split('![\r\n][\r\n]!',$content);
 -	$output = '';
 -
 -	foreach($paragraphs as $paragraph) {
 -		if($paragraph == '') {
 -			continue;
 -		}
 -		// convert mult. spaces & special chars to single space
 -		$paragraph = preg_replace(array('!\s+!','!(^\s+)|(\s+$)!'),array(' ',''),$paragraph);
 -		// indent first line
 -		if($indent_first > 0) {
 -			$paragraph = str_repeat($indent_char,$indent_first) . $paragraph;
 -		}
 -		// wordwrap sentences
 -		$paragraph = wordwrap($paragraph, $wrap - $indent, $wrap_char, $wrap_cut);
 -		// indent lines
 -		if($indent > 0) {
 -			$paragraph = preg_replace('!^!m',str_repeat($indent_char,$indent),$paragraph);
 -		}
 -		$output .= $paragraph . $wrap_char . $wrap_char;
 -	}
 -				
 -	if($assign != null) {
 -		$smarty->assign($assign,$output);
 -	} else {
 -		return $output;
 -	}
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign.php deleted file mode 100644 index c04be8bc..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign.php +++ /dev/null @@ -1,38 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Smarty {assign} function plugin
 - *
 - * Type:     function<br>
 - * Name:     assign<br>
 - * Purpose:  assign a value to a template variable
 - * @link http://smarty.php.net/manual/en/language.custom.functions.php#LANGUAGE.FUNCTION.ASSIGN {assign}
 - *       (Smarty online manual)
 - * @param array Format: array('var' => variable name, 'value' => value to assign)
 - * @param Smarty
 - */
 -function smarty_function_assign($params, &$smarty)
 -{
 -    extract($params);
 -
 -    if (empty($var)) {
 -        $smarty->trigger_error("assign: missing 'var' parameter");
 -        return;
 -    }
 -
 -    if (!in_array('value', array_keys($params))) {
 -        $smarty->trigger_error("assign: missing 'value' parameter");
 -        return;
 -    }
 -
 -    $smarty->assign($var, $value);
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign_debug_info.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign_debug_info.php deleted file mode 100644 index 59ddaa16..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.assign_debug_info.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Smarty {assign_debug_info} function plugin
 - *
 - * Type:     function<br>
 - * Name:     assign_debug_info<br>
 - * Purpose:  assign debug info to the template<br>
 - * @param array unused in this plugin, this plugin uses {@link Smarty::$_config},
 - *              {@link Smarty::$_tpl_vars} and {@link Smarty::$_smarty_debug_info}
 - * @param Smarty
 - */
 -function smarty_function_assign_debug_info($params, &$smarty)
 -{
 -    $assigned_vars = $smarty->_tpl_vars;
 -    ksort($assigned_vars);
 -    if (@is_array($smarty->_config[0])) {
 -        $config_vars = $smarty->_config[0];
 -        ksort($config_vars);
 -        $smarty->assign("_debug_config_keys", array_keys($config_vars));
 -        $smarty->assign("_debug_config_vals", array_values($config_vars));
 -    }   
 -    
 -    $included_templates = $smarty->_smarty_debug_info;
 -    
 -    $smarty->assign("_debug_keys", array_keys($assigned_vars));
 -    $smarty->assign("_debug_vals", array_values($assigned_vars));
 -    
 -    $smarty->assign("_debug_tpls", $included_templates);
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.config_load.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.config_load.php deleted file mode 100644 index d9d65b95..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.config_load.php +++ /dev/null @@ -1,130 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Smarty {config_load} function plugin
 - *
 - * Type:     function<br>
 - * Name:     config_load<br>
 - * Purpose:  load config file vars
 - * @link http://smarty.php.net/manual/en/language.function.config.load.php {config_load}
 - *       (Smarty online manual)
 - * @param array Format:
 - * <pre>
 - * array('file' => required config file name,
 - *       'section' => optional config file section to load
 - *       'scope' => local/parent/global
 - *       'global' => overrides scope, setting to parent if true)
 - * </pre>
 - * @param Smarty
 - */
 -function smarty_function_config_load($params, &$smarty)
 -{
 -        if ($smarty->debugging) {
 -			$_params = array();
 -            require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
 -            $_debug_start_time = smarty_core_get_microtime($_params, $smarty);
 -        }
 -
 -		$_file = isset($params['file']) ? $smarty->_dequote($params['file']) : null;
 -		$_section = isset($params['section']) ? $smarty->_dequote($params['section']) : null;
 -		$_scope = isset($params['scope']) ? $smarty->_dequote($params['scope']) : 'global';
 -		$_global = isset($params['global']) ? $smarty->_dequote($params['global']) : false;
 -
 -        if (!isset($_file) || strlen($_file) == 0) {
 -            $smarty->_syntax_error("missing 'file' attribute in config_load tag", E_USER_ERROR, __FILE__, __LINE__);
 -        }
 -
 -        if (isset($_scope)) {
 -            if ($_scope != 'local' &&
 -                $_scope != 'parent' &&
 -                $_scope != 'global') {
 -                $smarty->_syntax_error("invalid 'scope' attribute value", E_USER_ERROR, __FILE__, __LINE__);
 -            }
 -        } else {
 -            if ($_global) {
 -                $_scope = 'parent';
 -			} else {
 -                $_scope = 'local';
 -			}
 -        }		
 -			
 -        if(@is_dir($smarty->config_dir)) {
 -            $_config_dir = $smarty->config_dir;            
 -        } else {
 -            // config_dir not found, try include_path
 -			$_params = array('file_path' => $smarty->config_dir);
 -			require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_include_path.php');
 -            smarty_core_get_include_path($_params, $smarty);
 -			$_config_dir = $_params['new_file_path'];
 -        }
 -
 -		$_file_path = $_config_dir . DIRECTORY_SEPARATOR . $_file;
 -        if (isset($_section)) 
 -            $_compile_file = $smarty->_get_compile_path($_file_path.'|'.$_section);
 -        else
 -            $_compile_file = $smarty->_get_compile_path($_file_path);
 -		
 -		if($smarty->force_compile
 -				|| !file_exists($_compile_file)
 -				|| ($smarty->compile_check
 -					&& !$smarty->_is_compiled($_file_path, $_compile_file))) {
 -			// compile config file
 -        	if(!is_object($smarty->_conf_obj)) {
 -            	require_once SMARTY_DIR . $smarty->config_class . '.class.php';
 -            	$smarty->_conf_obj = new $smarty->config_class($_config_dir);
 -            	$smarty->_conf_obj->overwrite = $smarty->config_overwrite;
 -            	$smarty->_conf_obj->booleanize = $smarty->config_booleanize;
 -            	$smarty->_conf_obj->read_hidden = $smarty->config_read_hidden;
 -            	$smarty->_conf_obj->fix_newlines = $smarty->config_fix_newlines;
 -            	$smarty->_conf_obj->set_path = $_config_dir;
 -        	}
 -        	$_config_vars = array_merge($smarty->_conf_obj->get($_file),
 -                	$smarty->_conf_obj->get($_file, $_section));
 -			if(function_exists('var_export')) {
 -				$_output = '<?php $_config_vars = ' . var_export($_config_vars, true) . '; ?>';
 -			} else {
 -				$_output = '<?php $_config_vars = unserialize(\'' . strtr(serialize($_config_vars),array('\''=>'\\\'', '\\'=>'\\\\')) . '\'); ?>';
 -			}
 -			$_params = (array('compile_path' => $_compile_file, 'compiled_content' => $_output, 'resource_timestamp' => filemtime($_file_path)));
 -			require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.write_compiled_resource.php');
 -			smarty_core_write_compiled_resource($_params, $smarty);
 -		} else {
 -            include($_compile_file);
 -		}
 -
 -        if ($smarty->caching) {
 -            $smarty->_cache_info['config'][$_file] = true;
 -        }
 -
 -        $smarty->_config[0]['vars'] = @array_merge($smarty->_config[0]['vars'], $_config_vars);
 -        $smarty->_config[0]['files'][$_file] = true;
 -        
 -        if ($_scope == 'parent') {
 -                $smarty->_config[1]['vars'] = @array_merge($smarty->_config[1]['vars'], $_config_vars);
 -                $smarty->_config[1]['files'][$_file] = true;
 -        } else if ($_scope == 'global') {
 -            for ($i = 1, $for_max = count($smarty->_config); $i < $for_max; $i++) {
 -                    $smarty->_config[$i]['vars'] = @array_merge($smarty->_config[$i]['vars'], $_config_vars);
 -                    $smarty->_config[$i]['files'][$_file] = true;
 -            }
 -        }
 -		
 -        if ($smarty->debugging) {
 -			$_params = array();
 -			require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.get_microtime.php');
 -            $smarty->_smarty_debug_info[] = array('type'      => 'config',
 -                                                'filename'  => $_file.' ['.$_section.'] '.$_scope,
 -                                                'depth'     => $smarty->_inclusion_depth,
 -                                                'exec_time' => smarty_core_get_microtime($_params, $smarty) - $_debug_start_time);
 -        }
 -	
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.counter.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.counter.php deleted file mode 100644 index 8d17d2bb..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.counter.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty {counter} function plugin
 - *
 - * Type:     function<br>
 - * Name:     counter<br>
 - * Purpose:  print out a counter value
 - * @link http://smarty.php.net/manual/en/language.function.counter.php {counter}
 - *       (Smarty online manual)
 - * @param array parameters
 - * @param Smarty
 - * @return string|null
 - */
 -function smarty_function_counter($params, &$smarty)
 -{
 -    static $counters = array();
 -
 -    extract($params);
 -
 -    if (!isset($name)) {
 -		if(isset($id)) {
 -			$name = $id;
 -		} else {		
 -        	$name = "default";
 -		}
 -	}
 -
 -    if (!isset($counters[$name])) {
 -        $counters[$name] = array(
 -            'start'=>1,
 -            'skip'=>1,
 -            'direction'=>'up',
 -            'count'=>1
 -            );
 -    }
 -    $counter =& $counters[$name];
 -
 -    if (isset($start)) {
 -        $counter['start'] = $counter['count'] = $start;
 -    }
 -
 -    if (!empty($assign)) {
 -        $counter['assign'] = $assign;
 -    }
 -
 -    if (isset($counter['assign'])) {
 -        $smarty->assign($counter['assign'], $counter['count']);
 -    }
 -    
 -    if (isset($print)) {
 -        $print = (bool)$print;
 -    } else {
 -        $print = empty($counter['assign']);
 -    }
 -
 -    if ($print) {
 -        $retval = $counter['count'];
 -	} else {
 -		$retval = null;
 -	}
 -
 -    if (isset($skip)) {
 -        $counter['skip'] = $skip;
 -    }
 -    
 -    if (isset($direction)) {
 -        $counter['direction'] = $direction;
 -    }
 -
 -    if ($counter['direction'] == "down")
 -        $counter['count'] -= $counter['skip'];
 -    else
 -        $counter['count'] += $counter['skip'];
 -	
 -	return $retval;
 -	
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.cycle.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.cycle.php deleted file mode 100644 index c2e899d0..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.cycle.php +++ /dev/null @@ -1,119 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Smarty {cycle} function plugin
 - *
 - * Type:     function<br>
 - * Name:     cycle<br>
 - * Date:     May 3, 2002<br>
 - * Purpose:  cycle through given values<br>
 - * Input:
 - *         - name = name of cycle (optional)
 - *         - values = comma separated list of values to cycle,
 - *                    or an array of values to cycle
 - *                    (this can be left out for subsequent calls)
 - *         - reset = boolean - resets given var to true
 - *         - print = boolean - print var or not. default is true
 - *         - advance = boolean - whether or not to advance the cycle
 - *         - delimiter = the value delimiter, default is ","
 - *         - assign = boolean, assigns to template var instead of
 - *                    printed.
 - * 
 - * Examples:<br>
 - * <pre>
 - * {cycle values="#eeeeee,#d0d0d0d"}
 - * {cycle name=row values="one,two,three" reset=true}
 - * {cycle name=row}
 - * </pre>
 - * @link http://smarty.php.net/manual/en/language.function.cycle.php {cycle}
 - *       (Smarty online manual)
 - * @author Monte Ohrt <monte@ispi.net>
 - * @author credit to Mark Priatel <mpriatel@rogers.com>
 - * @author credit to Gerard <gerard@interfold.com>
 - * @author credit to Jason Sweat <jsweat_php@yahoo.com>
 - * @version  1.3
 - * @param array
 - * @param Smarty
 - * @return string|null
 - */
 -function smarty_function_cycle($params, &$smarty)
 -{
 -    static $cycle_vars;
 -    
 -    extract($params);
 -
 -    if (empty($name)) {
 -        $name = 'default';
 -    }
 -
 -    if (!isset($print)) {
 -        $print = true;
 -    }
 -
 -    if (!isset($advance)) {
 -        $advance = true;        
 -    }    
 -
 -    if (!isset($reset)) {
 -        $reset = false;        
 -    }        
 -            
 -    if (!in_array('values', array_keys($params))) {
 -        if(!isset($cycle_vars[$name]['values'])) {
 -            $smarty->trigger_error("cycle: missing 'values' parameter");
 -            return;
 -        }
 -    } else {
 -        if(isset($cycle_vars[$name]['values'])
 -            && $cycle_vars[$name]['values'] != $values ) {
 -            $cycle_vars[$name]['index'] = 0;
 -        }
 -        $cycle_vars[$name]['values'] = $values;
 -    }
 -
 -    if (isset($delimiter)) {
 -        $cycle_vars[$name]['delimiter'] = $delimiter;
 -    } elseif (!isset($cycle_vars[$name]['delimiter'])) {
 -        $cycle_vars[$name]['delimiter'] = ',';        
 -    }
 -    
 -    if(!is_array($cycle_vars[$name]['values'])) {
 -        $cycle_array = explode($cycle_vars[$name]['delimiter'],$cycle_vars[$name]['values']);
 -    } else {
 -        $cycle_array = $cycle_vars[$name]['values'];    
 -    }
 -    
 -    if(!isset($cycle_vars[$name]['index']) || $reset ) {
 -        $cycle_vars[$name]['index'] = 0;
 -    }
 -    
 -    if (isset($assign)) {
 -        $print = false;
 -        $smarty->assign($assign, $cycle_array[$cycle_vars[$name]['index']]);
 -    }
 -        
 -    if($print) {
 -        $retval = $cycle_array[$cycle_vars[$name]['index']];
 -    } else {
 -        $retval = null;
 -    }
 -
 -    if($advance) {
 -        if ( $cycle_vars[$name]['index'] >= count($cycle_array) -1 ) {
 -            $cycle_vars[$name]['index'] = 0;            
 -        } else {
 -            $cycle_vars[$name]['index']++;
 -        }
 -    }
 -    
 -    return $retval;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.debug.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.debug.php deleted file mode 100644 index 5fe02f30..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.debug.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty {debug} function plugin
 - *
 - * Type:     function<br>
 - * Name:     debug<br>
 - * Date:     July 1, 2002<br>
 - * Purpose:  popup debug window
 - * @link http://smarty.php.net/manual/en/language.function.debug.php {debug}
 - *       (Smarty online manual)
 - * @author   Monte Ohrt <monte@ispi.net>
 - * @version  1.0
 - * @param array
 - * @param Smarty
 - * @return string output from {@link Smarty::_generate_debug_output()}
 - */
 -function smarty_function_debug($params, &$smarty)
 -{
 -    if($params['output']) {
 -        $smarty->assign('_smarty_debug_output',$params['output']);
 -    }
 -    require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.display_debug_console.php');
 -    return smarty_core_display_debug_console(null, $smarty);
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.eval.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.eval.php deleted file mode 100644 index e6943876..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.eval.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty {eval} function plugin
 - *
 - * Type:     function<br>
 - * Name:     eval<br>
 - * Purpose:  evaluate a template variable as a template<br>
 - * @link http://smarty.php.net/manual/en/language.function.eval.php {eval}
 - *       (Smarty online manual)
 - * @param array
 - * @param Smarty
 - */
 -function smarty_function_eval($params, &$smarty)
 -{
 -
 -    if (!isset($params['var'])) {
 -        $smarty->trigger_error("eval: missing 'var' parameter");
 -        return;
 -    }
 -
 -    if($params['var'] == '') {
 -        return;
 -    }
 -
 -    $smarty->_compile_source('evaluated template', $params['var'], $_var_compiled);
 -
 -    ob_start();
 -    $smarty->_eval('?>' . $_var_compiled);
 -    $_contents = ob_get_contents();
 -    ob_end_clean();
 -
 -    if (!empty($params['assign'])) {
 -        $smarty->assign($params['assign'], $_contents);
 -    } else {
 -        return $_contents;
 -    }
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.fetch.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.fetch.php deleted file mode 100644 index 082c3483..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.fetch.php +++ /dev/null @@ -1,217 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty {fetch} plugin
 - *
 - * Type:     function<br>
 - * Name:     fetch<br>
 - * Purpose:  fetch file, web or ftp data and display results
 - * @link http://smarty.php.net/manual/en/language.function.fetch.php {fetch}
 - *       (Smarty online manual)
 - * @param array
 - * @param Smarty
 - * @return string|null if the assign parameter is passed, Smarty assigns the
 - *                     result to a template variable
 - */
 -function smarty_function_fetch($params, &$smarty)
 -{
 -    if (empty($params['file'])) {
 -        $smarty->_trigger_fatal_error("[plugin] parameter 'file' cannot be empty");
 -        return;
 -    }
 -
 -    if ($smarty->security && !preg_match('!^(http|ftp)://!i', $params['file'])) {
 -		$_params = array('resource_type' => 'file', 'resource_name' => $params['file']);
 -		require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.is_secure.php');
 -		if(!smarty_core_is_secure($_params, $smarty)) {
 -            $smarty->_trigger_fatal_error('[plugin] (secure mode) fetch \'' . $params['file'] . '\' is not allowed');
 -            return;			
 -		}
 -		
 -		// fetch the file
 -		if($fp = @fopen($params['file'],'r')) {
 -			while(!feof($fp)) {
 -				$content .= fgets ($fp,4096);
 -			}
 -			fclose($fp);
 -		} else {
 -            $smarty->_trigger_fatal_error('[plugin] fetch cannot read file \'' . $params['file'] . '\'');
 -            return;			
 -		}
 -    } else {
 -		// not a local file
 -		if(preg_match('!^http://!i',$params['file'])) {
 -			// http fetch
 -			if($uri_parts = parse_url($params['file'])) {
 -				// set defaults
 -				$host = $server_name = $uri_parts['host'];
 -				$timeout = 30;
 -				$accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*";
 -				$agent = "Smarty Template Engine ".$smarty->_version;
 -				$referer = "";
 -				$uri = !empty($uri_parts['path']) ? $uri_parts['path'] : '/';
 -				$uri .= !empty($uri_parts['query']) ? '?' . $uri_parts['query'] : '';
 -				$_is_proxy = false;
 -				if(empty($uri_parts['port'])) {
 -					$port = 80;
 -				} else {
 -					$port = $uri_parts['port'];
 -				}
 -				if(empty($uri_parts['user'])) {
 -					$user = '';
 -				}				
 -				// loop through parameters, setup headers
 -				foreach($params as $param_key => $param_value) {			
 -					switch($param_key) {
 -						case "file":
 -						case "assign":
 -						case "assign_headers":
 -							break;
 -						case "user":
 -							if(!empty($param_value)) {
 -								$user = $param_value;
 -							}
 -							break;
 -						case "pass":
 -							if(!empty($param_value)) {
 -								$pass = $param_value;
 -							}
 -							break;
 -						case "accept":
 -							if(!empty($param_value)) {
 -								$accept = $param_value;
 -							}
 -							break;
 -						case "header":
 -							if(!empty($param_value)) {
 -								if(!preg_match('![\w\d-]+: .+!',$param_value)) {
 -            						$smarty->_trigger_fatal_error("[plugin] invalid header format '".$param_value."'");
 -            						return;									
 -								} else {
 -									$extra_headers[] = $param_value;
 -								}
 -							}
 -							break;
 -						case "proxy_host":
 -							if(!empty($param_value)) {
 -								$proxy_host = $param_value;
 -							}
 -							break;
 -						case "proxy_port":
 -							if(!preg_match('!\D!', $param_value)) {
 -								$proxy_port = (int) $param_value;
 -							} else {
 -            					$smarty->_trigger_fatal_error("[plugin] invalid value for attribute '".$param_key."'");
 -            					return;									
 -							}
 -							break;
 -						case "agent":
 -							if(!empty($param_value)) {
 -								$agent = $param_value;
 -							}
 -							break;
 -						case "referer":
 -							if(!empty($param_value)) {
 -								$referer = $param_value;
 -							}
 -							break;
 -						case "timeout":
 -							if(!preg_match('!\D!', $param_value)) {
 -								$timeout = (int) $param_value;
 -							} else {
 -            					$smarty->_trigger_fatal_error("[plugin] invalid value for attribute '".$param_key."'");
 -            					return;									
 -							}
 -							break;
 -						default:
 -            				$smarty->_trigger_fatal_error("[plugin] unrecognized attribute '".$param_key."'");
 -            				return;
 -					}			
 -				}
 -				if(!empty($proxy_host) && !empty($proxy_port)) {
 -					$_is_proxy = true;
 -					$fp = fsockopen($proxy_host,$proxy_port,$errno,$errstr,$timeout);
 -				} else {
 -					$fp = fsockopen($server_name,$port,$errno,$errstr,$timeout);
 -				}
 -
 -				if(!$fp) {
 -            		$smarty->_trigger_fatal_error("[plugin] unable to fetch: $errstr ($errno)");
 -            		return;				
 -				} else {
 -					if($_is_proxy) {
 -						fputs($fp, 'GET ' . $params['file'] . " HTTP/1.0\r\n");						
 -					} else {
 -						fputs($fp, "GET $uri HTTP/1.0\r\n");
 -					}
 -					if(!empty($host)) {
 -						fputs($fp, "Host: $host\r\n");
 -					}
 -					if(!empty($accept)) {
 -						fputs($fp, "Accept: $accept\r\n");
 -					}
 -					if(!empty($agent)) {
 -						fputs($fp, "User-Agent: $agent\r\n");
 -					}
 -					if(!empty($referer)) {
 -						fputs($fp, "Referer: $referer\r\n");
 -					}
 -					if(isset($extra_headers) && is_array($extra_headers)) {
 -						foreach($extra_headers as $curr_header) {
 -							fputs($fp, $curr_header."\r\n");
 -						}
 -					}
 -					if(!empty($user) && !empty($pass)) {
 -						fputs($fp, "Authorization: BASIC ".base64_encode("$user:$pass")."\r\n");						
 -					}
 -
 -					$content = '';					
 -					fputs($fp, "\r\n");
 -					while(!feof($fp)) {
 -						$content .= fgets($fp,4096);
 -					}
 -					fclose($fp);					
 -					$csplit = split("\r\n\r\n",$content,2);
 -
 -					$content = $csplit[1];
 -					
 -					if(!empty($params['assign_headers'])) {
 -						$smarty->assign($params['assign_headers'],split("\r\n",$csplit[0]));
 -					}
 -				}
 -			} else {
 -            		$smarty->_trigger_fatal_error("[plugin] unable to parse URL, check syntax");
 -            		return;
 -			}
 -		} else {
 -			// ftp fetch
 -			if($fp = @fopen($params['file'],'r')) {
 -				while(!feof($fp)) {
 -					$content .= fgets ($fp,4096);
 -				}
 -				fclose($fp);
 -			} else {
 -            	$smarty->_trigger_fatal_error('[plugin] fetch cannot read file \'' . $params['file'] .'\'');
 -            	return;			
 -			}
 -		}
 -		
 -	}
 -
 -
 -    if (!empty($params['assign'])) {
 -        $smarty->assign($params['assign'],$content);
 -    } else {
 -        return $content;
 -    }
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_checkboxes.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_checkboxes.php deleted file mode 100644 index 6b32c594..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_checkboxes.php +++ /dev/null @@ -1,135 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty {html_checkboxes} function plugin
 - *
 - * File:       function.html_checkboxes.php<br>
 - * Type:       function<br>
 - * Name:       html_checkboxes<br>
 - * Date:       24.Feb.2003<br>
 - * Purpose:    Prints out a list of checkbox input types<br>
 - * Input:<br>
 - *           - name       (optional) - string default "checkbox"
 - *           - values     (required) - array
 - *           - options    (optional) - associative array
 - *           - checked    (optional) - array default not set
 - *           - separator  (optional) - ie <br> or  
 - *           - output     (optional) - without this one the buttons don't have names
 - * Examples:
 - * <pre>
 - * {html_checkboxes values=$ids output=$names}
 - * {html_checkboxes values=$ids name='box' separator='<br>' output=$names}
 - * {html_checkboxes values=$ids checked=$checked separator='<br>' output=$names}
 - * </pre>
 - * @link http://smarty.php.net/manual/en/language.function.html.checkboxes.php {html_checkboxes}
 - *      (Smarty online manual)
 - * @author     Christopher Kvarme <christopher.kvarme@flashjab.com>
 - * @author credits to Monte Ohrt <monte@ispi.net>
 - * @version    1.0
 - * @param array
 - * @param Smarty
 - * @return string
 - * @uses smarty_function_escape_special_chars()
 - */
 -function smarty_function_html_checkboxes($params, &$smarty)
 -{
 -   require_once $smarty->_get_plugin_filepath('shared','escape_special_chars');
 -
 -   $name = 'checkbox';
 -   $values = null;
 -   $options = null;
 -   $selected = null;
 -   $separator = '';
 -   $labels = true;
 -   $output = null;
 - 
 -   $extra = '';
 -   
 -   foreach($params as $_key => $_val) {
 -      switch($_key) {
 -      case 'name':
 -      case 'separator':
 -         $$_key = $_val;
 -         break;
 -
 -      case 'labels':
 -         $$_key = (bool)$_val;
 -         break;
 -
 -      case 'options':
 -         $$_key = (array)$_val;
 -         break;
 -
 -      case 'values':
 -      case 'output':
 -         $$_key = array_values((array)$_val);
 -	 break;
 -
 -      case 'checked':
 -      case 'selected':
 -         $selected = array_values((array)$_val);
 -         break;
 -
 -      case 'checkboxes':
 -         $smarty->trigger_error('html_checkboxes: the use of the "checkboxes" attribute is deprecated, use "options" instead', E_USER_WARNING);
 -         $options = (array)$_val;
 -         break;
 -
 -      default:
 -		if(!is_array($_val)) {
 -			$extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
 -		} else {
 -			$smarty->trigger_error("html_checkboxes: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
 -		}
 -         break;
 -      }
 -   }
 -
 -   if (!isset($options) && !isset($values))
 -      return ''; /* raise error here? */
 -
 -   settype($selected, 'array');
 -   $_html_result = '';
 -
 -   if (is_array($options)) {
 -
 -      foreach ($options as $_key=>$_val)
 -         $_html_result .= smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
 -
 -
 -   } else {
 -      foreach ($values as $_i=>$_key) {
 -         $_val = isset($output[$_i]) ? $output[$_i] : '';
 -         $_html_result .= smarty_function_html_checkboxes_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
 -      }
 -
 -   }
 -
 -   return $_html_result;
 -
 -}
 -
 -function smarty_function_html_checkboxes_output($name, $value, $output, $selected, $extra, $separator, $labels) {
 -   $_output = '';
 -   if ($labels) $_output .= '<label>';
 -   $_output .= '<input type="checkbox" name="'
 -      . smarty_function_escape_special_chars($name) . '[]" value="'
 -      . smarty_function_escape_special_chars($value) . '"';
 -
 -   if (in_array($value, $selected)) {
 -      $_output .= ' checked="checked"';
 -   }
 -   $_output .= $extra . ' />' . $output;
 -   if ($labels) $_output .= '</label>';
 -   $_output .=  $separator . "\n";
 -
 -   return $_output;
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_image.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_image.php deleted file mode 100644 index 5ddbe4a1..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_image.php +++ /dev/null @@ -1,143 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty {html_image} function plugin
 - *
 - * Type:     function<br>
 - * Name:     html_image<br>
 - * Date:     Feb 24, 2003<br>
 - * Purpose:  format HTML tags for the image<br>
 - * Input:<br>
 - *         - file = file (and path) of image (required)
 - *         - border = border width (optional, default 0)
 - *         - height = image height (optional, default actual height)
 - *         - image =image width (optional, default actual width)
 - *         - basedir = base directory for absolute paths, default
 - *                     is environment variable DOCUMENT_ROOT
 - *
 - * Examples: {html_image file="images/masthead.gif"}
 - * Output:   <img src="images/masthead.gif" border=0 width=400 height=23>
 - * @link http://smarty.php.net/manual/en/language.function.html.image.php {html_image}
 - *      (Smarty online manual)
 - * @author   Monte Ohrt <monte@ispi.net>
 - * @author credits to Duda <duda@big.hu> - wrote first image function
 - *           in repository, helped with lots of functionality
 - * @version  1.0
 - * @param array
 - * @param Smarty
 - * @return string
 - * @uses smarty_function_escape_special_chars()
 - */
 -function smarty_function_html_image($params, &$smarty)
 -{
 -    require_once $smarty->_get_plugin_filepath('shared','escape_special_chars');
 -    
 -    $alt = '';
 -    $file = '';
 -    $border = 0;
 -    $height = '';
 -    $width = '';
 -    $extra = '';
 -    $prefix = '';
 -    $suffix = '';
 -    $basedir = isset($GLOBALS['HTTP_SERVER_VARS']['DOCUMENT_ROOT'])
 -        ? $GLOBALS['HTTP_SERVER_VARS']['DOCUMENT_ROOT'] : '';
 -    if(strstr($GLOBALS['HTTP_SERVER_VARS']['HTTP_USER_AGENT'], 'Mac')) {
 -        $dpi_default = 72;
 -    } else {
 -        $dpi_default = 96;
 -    }
 -
 -    foreach($params as $_key => $_val) {
 -        switch($_key) {
 -            case 'file':
 -            case 'border':
 -            case 'height':
 -            case 'width':
 -            case 'dpi':
 -            case 'basedir':
 -                $$_key = $_val;
 -                break;
 -
 -            case 'alt':
 -                if(!is_array($_val)) {
 -                    $$_key = smarty_function_escape_special_chars($_val);
 -                } else {
 -                    $smarty->trigger_error("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
 -                }
 -                break;
 -
 -            case 'link':
 -            case 'href':
 -                $prefix = '<a href="' . $_val . '">';
 -                $suffix = '</a>';
 -                break;
 -
 -            default:
 -                if(!is_array($_val)) {
 -                    $extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
 -                } else {
 -                    $smarty->trigger_error("html_image: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
 -                }
 -                break;
 -        }
 -    }
 -
 -    if (empty($file)) {
 -        $smarty->trigger_error("html_image: missing 'file' parameter", E_USER_NOTICE);
 -        return;
 -    }
 -
 -    if (substr($file,0,1) == '/') {
 -        $_image_path = $basedir . $file;
 -    } else {
 -        $_image_path = $file;
 -    }
 -
 -    if(!isset($params['width']) || !isset($params['height'])) {
 -        if(!$_image_data = @getimagesize($_image_path)) {
 -            if(!file_exists($_image_path)) {
 -                $smarty->trigger_error("html_image: unable to find '$_image_path'", E_USER_NOTICE);
 -                return;
 -            } else if(!is_readable($_image_path)) {
 -                $smarty->trigger_error("html_image: unable to read '$_image_path'", E_USER_NOTICE);
 -                return;
 -            } else {
 -                $smarty->trigger_error("html_image: '$_image_path' is not a valid image file", E_USER_NOTICE);
 -                return;
 -            }
 -        }
 -        $_params = array('resource_type' => 'file', 'resource_name' => $_image_path);
 -        require_once(SMARTY_DIR . 'core' . DIRECTORY_SEPARATOR . 'core.is_secure.php');
 -        if(!$smarty->security && !smarty_core_is_secure($_params, $smarty)) {
 -            $smarty->trigger_error("html_image: (secure) '$_image_path' not in secure directory", E_USER_NOTICE);
 -            return;
 -        }
 -
 -        if(!isset($params['width'])) {
 -            $width = $_image_data[0];
 -        }
 -        if(!isset($params['height'])) {
 -            $height = $_image_data[1];
 -        }
 -
 -    }
 -
 -    if(isset($params['dpi'])) {
 -        $_resize = $dpi_default/$params['dpi'];
 -        $width = round($width * $_resize);
 -        $height = round($height * $_resize);
 -    }
 -
 -    return $prefix . '<img src="'.$file.'" alt="'.$alt.'" border="'.$border.'" width="'.$width.'" height="'.$height.'"'.$extra.' />' . $suffix;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_options.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_options.php deleted file mode 100644 index dfc38c83..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_options.php +++ /dev/null @@ -1,118 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty {html_options} function plugin
 - *
 - * Type:     function<br>
 - * Name:     html_options<br>
 - * Input:<br>
 - *           - name       (optional) - string default "select"
 - *           - values     (required if no options supplied) - array
 - *           - options    (required if no values supplied) - associative array
 - *           - selected   (optional) - string default not set
 - *           - output     (required if not options supplied) - array
 - * Purpose:  Prints the list of <option> tags generated from
 - *           the passed parameters
 - * @link http://smarty.php.net/manual/en/language.function.html.options.php {html_image}
 - *      (Smarty online manual)
 - * @param array
 - * @param Smarty
 - * @return string
 - * @uses smarty_function_escape_special_chars()
 - */
 -function smarty_function_html_options($params, &$smarty)
 -{
 -   require_once $smarty->_get_plugin_filepath('shared','escape_special_chars');
 -  
 -   $name = null;
 -   $values = null;
 -   $options = null;
 -   $selected = array();
 -   $output = null;
 -
 -   $extra = '';
 -  
 -	foreach($params as $_key => $_val) {	
 -		switch($_key) {
 -			case 'name':
 -			$$_key = (string)$_val;
 -			break;
 -
 -		case 'options':
 -			$$_key = (array)$_val;
 -			break;
 -
 -		case 'selected':
 -		case 'values':
 -		case 'output':
 -			$$_key = array_values((array)$_val);      
 -			break;
 -
 -		default:
 -			if(!is_array($_val)) {
 -				$extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
 -			} else {
 -				$smarty->trigger_error("html_options: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
 -			}
 -			break;					
 -		}
 -	}
 -
 -   if (!isset($options) && !isset($values))
 -      return ''; /* raise error here? */
 -
 -   $_html_result = '';
 -
 -   if (is_array($options)) {
 -
 -      foreach ($options as $_key=>$_val)
 -	 $_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected);      
 -    
 -   } else {  
 -
 -      foreach ((array)$values as $_i=>$_key) {
 -	 $_val = isset($output[$_i]) ? $output[$_i] : '';
 -	 $_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected);      
 -      }
 -
 -   }
 -
 -   if(!empty($name)) {
 -      $_html_result = '<select name="' . $name . '"' . $extra . '>' . "\n" . $_html_result . '</select>' . "\n";
 -   }
 -
 -   return $_html_result;
 -
 -}
 -
 -function smarty_function_html_options_optoutput($key, $value, $selected) {
 -   if(!is_array($value)) {
 -      $_html_result = '<option label="' . smarty_function_escape_special_chars($value) . '" value="' . 
 -	 smarty_function_escape_special_chars($key) . '"';
 -      if (in_array($key, $selected))
 -	 $_html_result .= ' selected="selected"';
 -      $_html_result .= '>' . smarty_function_escape_special_chars($value) . '</option>' . "\n";
 -   } else {
 -      $_html_result = smarty_function_html_options_optgroup($key, $value, $selected);
 -   }
 -   return $_html_result;	
 -}
 -
 -function smarty_function_html_options_optgroup($key, $values, $selected) {
 -   $optgroup_html = '<optgroup label="' . smarty_function_escape_special_chars($key) . '">' . "\n";
 -   foreach ($values as $key => $value) {
 -      $optgroup_html .= smarty_function_html_options_optoutput($key, $value, $selected);
 -   }
 -   $optgroup_html .= "</optgroup>\n";
 -   return $optgroup_html;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_radios.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_radios.php deleted file mode 100644 index f5052391..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_radios.php +++ /dev/null @@ -1,138 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty {html_radios} function plugin
 - *
 - * File:       function.html_radios.php<br>
 - * Type:       function<br>
 - * Name:       html_radios<br>
 - * Date:       24.Feb.2003<br>
 - * Purpose:    Prints out a list of radio input types<br>
 - * Input:<br>
 - *           - name       (optional) - string default "radio"
 - *           - values     (required) - array
 - *           - options    (optional) - associative array
 - *           - checked    (optional) - array default not set
 - *           - separator  (optional) - ie <br> or  
 - *           - output     (optional) - without this one the buttons don't have names
 - * Examples:
 - * <pre>
 - * {html_radios values=$ids output=$names}
 - * {html_radios values=$ids name='box' separator='<br>' output=$names}
 - * {html_radios values=$ids checked=$checked separator='<br>' output=$names}
 - * </pre>
 - * @link http://smarty.php.net/manual/en/language.function.html.radios.php {html_radios}
 - *      (Smarty online manual)
 - * @author     Christopher Kvarme <christopher.kvarme@flashjab.com>
 - * @author credits to Monte Ohrt <monte@ispi.net>
 - * @version    1.0
 - * @param array
 - * @param Smarty
 - * @return string
 - * @uses smarty_function_escape_special_chars()
 - */
 -function smarty_function_html_radios($params, &$smarty)
 -{
 -   require_once $smarty->_get_plugin_filepath('shared','escape_special_chars');
 -   
 -   $name = 'radio';
 -   $values = null;
 -   $options = null;
 -   $selected = null;
 -   $separator = '';
 -   $labels = true;
 -   $output = null;
 -   $extra = '';
 -
 -   foreach($params as $_key => $_val) {
 -		switch($_key) {
 -		case 'name':
 -		case 'separator':
 -		    $$_key = (string)$_val;
 -		    break;
 -
 -		case 'checked':
 -		case 'selected':
 -			if(is_array($_val)) {
 -				$smarty->trigger_error('html_radios: the "' . $_key . '" attribute cannot be an array', E_USER_WARNING);
 -			} else {
 -				$selected = (string)$_val;
 -			}
 -			break;
 -
 -        case 'labels':
 -            $$_key = (bool)$_val;
 -            break;
 -
 -		case 'options':
 -			$$_key = (array)$_val;
 -			break;
 -
 -		case 'values':
 -		case 'output':
 -			$$_key = array_values((array)$_val);
 -			break;
 -
 -		case 'radios':
 -			$smarty->trigger_error('html_radios: the use of the "radios" attribute is deprecated, use "options" instead', E_USER_WARNING);
 -			$options = (array)$_val;
 -			break;
 -
 -
 -		default:
 -			if(!is_array($_val)) {
 -				$extra .= ' '.$_key.'="'.smarty_function_escape_special_chars($_val).'"';
 -			} else {
 -				$smarty->trigger_error("html_radios: extra attribute '$_key' cannot be an array", E_USER_NOTICE);
 -			}
 -			break;
 -		}
 -   }
 -
 -   if (!isset($options) && !isset($values))
 -      return ''; /* raise error here? */
 -
 -   $_html_result = '';
 -
 -   if (isset($options) && is_array($options)) {
 -
 -      foreach ((array)$options as $_key=>$_val)
 -	 $_html_result .= smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
 -
 -   } else {
 -
 -      foreach ((array)$values as $_i=>$_key) {
 -	 $_val = isset($output[$_i]) ? $output[$_i] : '';
 -	 $_html_result .= smarty_function_html_radios_output($name, $_key, $_val, $selected, $extra, $separator, $labels);
 -      }
 -
 -   }
 -
 -   return $_html_result;
 -
 -}
 -
 -function smarty_function_html_radios_output($name, $value, $output, $selected, $extra, $separator, $labels) {
 -   $_output = '';
 -   if ($labels) $_output .= '<label>';
 -   $_output .= '<input type="radio" name="'
 -      . smarty_function_escape_special_chars($name) . '" value="'
 -      . smarty_function_escape_special_chars($value) . '"';
 -
 -   if ($value==$selected) {
 -      $_output .= ' checked="checked"';
 -   }
 -   $_output .= $extra . ' />' . $output;
 -   if ($labels) $_output .= '</label>';
 -   $_output .=  $separator . "\n";
 -
 -   return $_output;
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_date.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_date.php deleted file mode 100644 index a607f555..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_date.php +++ /dev/null @@ -1,243 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Smarty {html_select_date} plugin
 - *
 - * Type:     function<br>
 - * Name:     html_select_date<br>
 - * Purpose:  Prints the dropdowns for date selection.
 - *
 - * ChangeLog:<br>
 - *           - 1.0 initial release
 - *           - 1.1 added support for +/- N syntax for begin
 - *                and end year values. (Monte)
 - *           - 1.2 added support for yyyy-mm-dd syntax for
 - *                time value. (Jan Rosier)
 - *           - 1.3 added support for choosing format for 
 - *                month values (Gary Loescher)
 - *           - 1.3.1 added support for choosing format for
 - *                day values (Marcus Bointon)
 - * @link http://smarty.php.net/manual/en/language.function.html.select.date.php {html_select_date}
 - *      (Smarty online manual)
 - * @version 1.3
 - * @author   Andrei Zmievski
 - * @param array
 - * @param Smarty
 - * @return string
 - */
 -function smarty_function_html_select_date($params, &$smarty)
 -{
 -    require_once $smarty->_get_plugin_filepath('shared','make_timestamp');
 -    require_once $smarty->_get_plugin_filepath('function','html_options');
 -    /* Default values. */
 -    $prefix          = "Date_";
 -    $start_year      = strftime("%Y");
 -    $end_year        = $start_year;
 -    $display_days    = true;
 -    $display_months  = true;
 -    $display_years   = true;
 -    $month_format    = "%B";
 -    /* Write months as numbers by default  GL */
 -    $month_value_format = "%m";
 -    $day_format      = "%02d";
 -    /* Write day values using this format MB */
 -    $day_value_format = "%d";
 -    $year_as_text    = false;
 -    /* Display years in reverse order? Ie. 2000,1999,.... */
 -    $reverse_years   = false;
 -    /* Should the select boxes be part of an array when returned from PHP?
 -       e.g. setting it to "birthday", would create "birthday[Day]",
 -       "birthday[Month]" & "birthday[Year]". Can be combined with prefix */
 -    $field_array     = null;
 -    /* <select size>'s of the different <select> tags.
 -       If not set, uses default dropdown. */
 -    $day_size        = null;
 -    $month_size      = null;
 -    $year_size       = null;
 -    /* Unparsed attributes common to *ALL* the <select>/<input> tags.
 -       An example might be in the template: all_extra ='class ="foo"'. */
 -    $all_extra       = null;
 -    /* Separate attributes for the tags. */
 -    $day_extra       = null;
 -    $month_extra     = null;
 -    $year_extra      = null;
 -    /* Order in which to display the fields.
 -       "D" -> day, "M" -> month, "Y" -> year. */
 -    $field_order      = 'MDY';
 -    /* String printed between the different fields. */
 -    $field_separator = "\n";
 -	$time = time();
 -
 -
 -    extract($params);
 -
 -  	// If $time is not in format yyyy-mm-dd
 -  	if (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $time)) {
 -  		// then $time is empty or unix timestamp or mysql timestamp
 -  		// using smarty_make_timestamp to get an unix timestamp and
 -  		// strftime to make yyyy-mm-dd
 -  		$time = strftime('%Y-%m-%d', smarty_make_timestamp($time));
 -  	}
 -  	// Now split this in pieces, which later can be used to set the select
 -  	$time = explode("-", $time);
 -  
 -  	// make syntax "+N" or "-N" work with start_year and end_year
 -  	if (preg_match('!^(\+|\-)\s*(\d+)$!', $end_year, $match)) {
 -  		if ($match[1] == '+') {
 -  			$end_year = strftime('%Y') + $match[2];
 -  		} else {
 -  			$end_year = strftime('%Y') - $match[2];
 -  		}
 -  	}
 -  	if (preg_match('!^(\+|\-)\s*(\d+)$!', $start_year, $match)) {
 -  		if ($match[1] == '+') {
 -  			$start_year = strftime('%Y') + $match[2];
 -  		} else {
 -  			$start_year = strftime('%Y') - $match[2];
 -  		}
 -  	}
 -  
 -    $field_order = strtoupper($field_order);
 -
 -    $html_result = $month_result = $day_result = $year_result = "";
 -
 -    if ($display_months) {
 -        $month_names = array();
 -        $month_values = array();
 -
 -        for ($i = 1; $i <= 12; $i++) {
 -            $month_names[] = strftime($month_format, mktime(0, 0, 0, $i, 1, 2000));
 -            $month_values[] = strftime($month_value_format, mktime(0, 0, 0, $i, 1, 2000));
 -        }
 -
 -        $month_result .= '<select name=';
 -        if (null !== $field_array){
 -            $month_result .= '"' . $field_array . '[' . $prefix . 'Month]"';
 -        } else {
 -            $month_result .= '"' . $prefix . 'Month"';
 -        }
 -        if (null !== $month_size){
 -            $month_result .= ' size="' . $month_size . '"';
 -        }
 -        if (null !== $month_extra){
 -            $month_result .= ' ' . $month_extra;
 -        }
 -        if (null !== $all_extra){
 -            $month_result .= ' ' . $all_extra;
 -        }
 -        $month_result .= '>'."\n";
 -        
 -        $month_result .= smarty_function_html_options(array('output'     => $month_names,
 -                                                            'values'     => $month_values,
 -                                                            'selected'   => $month_values[$time[1]-1],
 -                                                            'print_result' => false),
 -                                                      $smarty);
 -        
 -        $month_result .= '</select>';
 -    }
 -
 -    if ($display_days) {
 -        $days = array();
 -        for ($i = 1; $i <= 31; $i++) {
 -            $days[] = sprintf($day_format, $i);
 -            $day_values[] = sprintf($day_value_format, $i);
 -        }
 -
 -        $day_result .= '<select name=';
 -        if (null !== $field_array){
 -            $day_result .= '"' . $field_array . '[' . $prefix . 'Day]"';
 -        } else {
 -            $day_result .= '"' . $prefix . 'Day"';
 -        }
 -        if (null !== $day_size){
 -            $day_result .= ' size="' . $day_size . '"';
 -        }
 -        if (null !== $all_extra){
 -            $day_result .= ' ' . $all_extra;
 -        }
 -        if (null !== $day_extra){
 -            $day_result .= ' ' . $day_extra;
 -        }
 -        $day_result .= '>'."\n";
 -        $day_result .= smarty_function_html_options(array('output'     => $days,
 -                                                          'values'     => $day_values,
 -                                                          'selected'   => $time[2],
 -                                                          'print_result' => false),
 -                                                    $smarty);
 -        $day_result .= '</select>';
 -    }
 -
 -    if ($display_years) {
 -        if (null !== $field_array){
 -            $year_name = $field_array . '[' . $prefix . 'Year]';
 -        } else {
 -            $year_name = $prefix . 'Year';
 -        }
 -        if ($year_as_text) {
 -            $year_result .= '<input type="text" name="' . $year_name . '" value="' . $time[0] . '" size="4" maxlength="4"';
 -            if (null !== $all_extra){
 -                $year_result .= ' ' . $all_extra;
 -            }
 -            if (null !== $year_extra){
 -                $year_result .= ' ' . $year_extra;
 -            }
 -            $year_result .= '>';
 -        } else {
 -            $years = range((int)$start_year, (int)$end_year);
 -            if ($reverse_years) {
 -                rsort($years, SORT_NUMERIC);
 -            }
 -
 -            $year_result .= '<select name="' . $year_name . '"';
 -            if (null !== $year_size){
 -                $year_result .= ' size="' . $year_size . '"';
 -            }
 -            if (null !== $all_extra){
 -                $year_result .= ' ' . $all_extra;
 -            }
 -            if (null !== $year_extra){
 -                $year_result .= ' ' . $year_extra;
 -            }
 -            $year_result .= '>'."\n";
 -            $year_result .= smarty_function_html_options(array('output' => $years,
 -                                                               'values' => $years,
 -                                                               'selected'   => $time[0],
 -                                                               'print_result' => false),
 -                                                         $smarty);
 -            $year_result .= '</select>';
 -        }
 -    }
 -
 -    // Loop thru the field_order field
 -    for ($i = 0; $i <= 2; $i++){
 -      $c = substr($field_order, $i, 1);
 -      switch ($c){
 -        case 'D':
 -            $html_result .= $day_result;
 -            break;
 -
 -        case 'M':
 -            $html_result .= $month_result;
 -            break;
 -
 -        case 'Y':
 -            $html_result .= $year_result;
 -            break;
 -      }
 -      // Add the field seperator
 -	  if($i != 2) {
 -      	$html_result .= $field_separator;
 -  	  }
 -    }
 -
 -    return $html_result;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_time.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_time.php deleted file mode 100644 index 4643136b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_select_time.php +++ /dev/null @@ -1,163 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty {html_select_time} function plugin
 - *
 - * Type:     function<br>
 - * Name:     html_select_time<br>
 - * Purpose:  Prints the dropdowns for time selection
 - * @link http://smarty.php.net/manual/en/language.function.html.select.time.php {html_select_time}
 - *          (Smarty online manual)
 - * @param array
 - * @param Smarty
 - * @return string
 - * @uses smarty_make_timestamp()
 - */
 -function smarty_function_html_select_time($params, &$smarty)
 -{
 -    require_once $smarty->_get_plugin_filepath('shared','make_timestamp');
 -    require_once $smarty->_get_plugin_filepath('function','html_options');
 -    /* Default values. */
 -    $prefix             = "Time_";
 -    $time               = time();
 -    $display_hours      = true;
 -    $display_minutes    = true;
 -    $display_seconds    = true;
 -    $display_meridian   = true;
 -    $use_24_hours       = true;
 -    $minute_interval    = 1;
 -    $second_interval    = 1;
 -    /* Should the select boxes be part of an array when returned from PHP?
 -       e.g. setting it to "birthday", would create "birthday[Hour]",
 -       "birthday[Minute]", "birthday[Seconds]" & "birthday[Meridian]".
 -       Can be combined with prefix. */
 -    $field_array        = null;
 -    $all_extra          = null;
 -    $hour_extra         = null;
 -    $minute_extra       = null;
 -    $second_extra       = null;
 -    $meridian_extra     = null;
 -
 -    extract($params);
 -
 -    $time = smarty_make_timestamp($time);
 -
 -    $html_result = '';
 -
 -    if ($display_hours) {
 -        $hours       = $use_24_hours ? range(0, 23) : range(1, 12);
 -        $hour_fmt = $use_24_hours ? '%H' : '%I';
 -        for ($i = 0, $for_max = count($hours); $i < $for_max; $i++)
 -            $hours[$i] = sprintf('%02d', $hours[$i]);
 -        $html_result .= '<select name=';
 -        if (null !== $field_array) {
 -            $html_result .= '"' . $field_array . '[' . $prefix . 'Hour]"';
 -        } else {
 -            $html_result .= '"' . $prefix . 'Hour"';
 -        }
 -        if (null !== $hour_extra){
 -            $html_result .= ' ' . $hour_extra;
 -        }
 -        if (null !== $all_extra){
 -            $html_result .= ' ' . $all_extra;
 -        }
 -        $html_result .= '>'."\n";
 -        $html_result .= smarty_function_html_options(array('output'          => $hours,
 -                                                           'values'          => $hours,
 -                                                           'selected'      => strftime($hour_fmt, $time),
 -                                                           'print_result' => false),
 -                                                     $smarty);
 -        $html_result .= "</select>\n";
 -    }
 -
 -    if ($display_minutes) {
 -        $all_minutes = range(0, 59);
 -        for ($i = 0, $for_max = count($all_minutes); $i < $for_max; $i+= $minute_interval)
 -            $minutes[] = sprintf('%02d', $all_minutes[$i]);
 -        $selected = intval(floor(strftime('%M', $time) / $minute_interval) * $minute_interval);
 -        $html_result .= '<select name=';
 -        if (null !== $field_array) {
 -            $html_result .= '"' . $field_array . '[' . $prefix . 'Minute]"';
 -        } else {
 -            $html_result .= '"' . $prefix . 'Minute"';
 -        }
 -        if (null !== $minute_extra){
 -            $html_result .= ' ' . $minute_extra;
 -        }
 -        if (null !== $all_extra){
 -            $html_result .= ' ' . $all_extra;
 -        }
 -        $html_result .= '>'."\n";
 -        
 -        $html_result .= smarty_function_html_options(array('output'          => $minutes,
 -                                                           'values'          => $minutes,
 -                                                           'selected'      => $selected,
 -                                                           'print_result' => false),
 -                                                     $smarty);
 -        $html_result .= "</select>\n";
 -    }
 -
 -    if ($display_seconds) {
 -        $all_seconds = range(0, 59);
 -        for ($i = 0, $for_max = count($all_seconds); $i < $for_max; $i+= $second_interval)
 -            $seconds[] = sprintf('%02d', $all_seconds[$i]);
 -        $selected = intval(floor(strftime('%S', $time) / $second_interval) * $second_interval);
 -        $html_result .= '<select name=';
 -        if (null !== $field_array) {
 -            $html_result .= '"' . $field_array . '[' . $prefix . 'Second]"';
 -        } else {
 -            $html_result .= '"' . $prefix . 'Second"';
 -        }
 -        
 -        if (null !== $second_extra){
 -            $html_result .= ' ' . $second_extra;
 -        }
 -        if (null !== $all_extra){
 -            $html_result .= ' ' . $all_extra;
 -        }
 -        $html_result .= '>'."\n";
 -        
 -        $html_result .= smarty_function_html_options(array('output'          => $seconds,
 -                                                           'values'          => $seconds,
 -                                                           'selected'      => $selected,
 -                                                           'print_result' => false),
 -                                                     $smarty);
 -        $html_result .= "</select>\n";
 -    }
 -
 -    if ($display_meridian && !$use_24_hours) {
 -        $html_result .= '<select name=';
 -        if (null !== $field_array) {
 -            $html_result .= '"' . $field_array . '[' . $prefix . 'Meridian]"';
 -        } else {
 -            $html_result .= '"' . $prefix . 'Meridian"';
 -        }
 -        
 -        if (null !== $meridian_extra){
 -            $html_result .= ' ' . $meridian_extra;
 -        }
 -        if (null !== $all_extra){
 -            $html_result .= ' ' . $all_extra;
 -        }
 -        $html_result .= '>'."\n";
 -        
 -        $html_result .= smarty_function_html_options(array('output'          => array('AM', 'PM'),
 -                                                           'values'          => array('am', 'pm'),
 -                                                           'selected'      => strtolower(strftime('%p', $time)),
 -                                                           'print_result' => false),
 -                                                     $smarty);
 -        $html_result .= "</select>\n";
 -    }
 -
 -    return $html_result;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_table.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_table.php deleted file mode 100644 index ece9c8c5..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.html_table.php +++ /dev/null @@ -1,113 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty {html_table} function plugin
 - *
 - * Type:     function<br>
 - * Name:     html_table<br>
 - * Date:     Feb 17, 2003<br>
 - * Purpose:  make an html table from an array of data<br>
 - * Input:<br>
 - *         - loop = array to loop through
 - *         - cols = number of columns
 - *         - rows = number of rows
 - *         - table_attr = table attributes
 - *         - tr_attr = table row attributes (arrays are cycled)
 - *         - td_attr = table cell attributes (arrays are cycled)
 - *         - trailpad = value to pad trailing cells with
 - *         - vdir = vertical direction (default: "down", means top-to-bottom)
 - *         - hdir = horizontal direction (default: "right", means left-to-right)
 - *         - inner = inner loop (default "cols": print $loop line by line,
 - *                   $loop will be printed column by column otherwise)
 - *
 - *
 - * Examples:
 - * <pre>
 - * {table loop=$data}
 - * {table loop=$data cols=4 tr_attr='"bgcolor=red"'}
 - * {table loop=$data cols=4 tr_attr=$colors}
 - * </pre>
 - * @author   Monte Ohrt <monte@ispi.net>
 - * @version  1.0
 - * @link http://smarty.php.net/manual/en/language.function.html.table.php {html_table}
 - *          (Smarty online manual)
 - * @param array
 - * @param Smarty
 - * @return string
 - */
 -function smarty_function_html_table($params, &$smarty)
 -{
 -    $table_attr = 'border="1"';
 -    $tr_attr = '';
 -    $td_attr = '';
 -    $cols = 3;
 -    $rows = 3;
 -    $trailpad = ' ';
 -    $vdir = 'down';
 -    $hdir = 'right';
 -    $inner = 'cols';
 -
 -    extract($params);
 -
 -    if (!isset($loop)) {
 -        $smarty->trigger_error("html_table: missing 'loop' parameter");
 -        return;
 -    }
 -
 -    $loop_count = count($loop);
 -    if (empty($params['rows'])) {
 -        /* no rows specified */
 -        $rows = ceil($loop_count/$cols);
 -    } elseif (empty($params['cols'])) {
 -        if (!empty($params['rows'])) {
 -            /* no cols specified, but rows */
 -            $cols = ceil($loop_count/$rows);
 -        }
 -    }
 -
 -    $output = "<table $table_attr>\n";
 -
 -    for ($r=0; $r<$rows; $r++) {
 -        $output .= "<tr" . smarty_function_html_table_cycle('tr', $tr_attr, $r) . ">\n";
 -        $rx =  ($vdir == 'down') ? $r*$cols : ($rows-1-$r)*$cols;
 -
 -        for ($c=0; $c<$cols; $c++) {
 -            $x =  ($hdir == 'right') ? $rx+$c : $rx+$cols-1-$c;
 -            if ($inner!='cols') {
 -                /* shuffle x to loop over rows*/
 -                $x = floor($x/$cols) + ($x%$cols)*$rows;
 -            }
 -
 -            if ($x<$loop_count) {
 -                $output .= "<td" . smarty_function_html_table_cycle('td', $td_attr, $c) . ">" . $loop[$x] . "</td>\n";
 -            } else {
 -                $output .= "<td" . smarty_function_html_table_cycle('td', $td_attr, $c) . ">$trailpad</td>\n";
 -            }
 -        }
 -        $output .= "</tr>\n";
 -    }            
 -    $output .= "</table>\n";
 -    
 -    return $output;
 -}
 -
 -function smarty_function_html_table_cycle($name, $var, $no) {
 -    if(!is_array($var)) {
 -        $ret = $var;
 -    } else {
 -        $ret = $var[$no % count($var)];
 -    }
 -    
 -    return ($ret) ? ' '.$ret : '';
 -}
 -
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.mailto.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.mailto.php deleted file mode 100644 index 9273ba39..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.mailto.php +++ /dev/null @@ -1,140 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty {mailto} function plugin
 - *
 - * Type:     function<br>
 - * Name:     mailto<br>
 - * Date:     May 21, 2002
 - * Purpose:  automate mailto address link creation, and optionally
 - *           encode them.<br>
 - * Input:<br>
 - *         - address = e-mail address
 - *         - text = (optional) text to display, default is address
 - *         - encode = (optional) can be one of:
 - *                * none : no encoding (default)
 - *                * javascript : encode with javascript
 - *                * hex : encode with hexidecimal (no javascript)
 - *         - cc = (optional) address(es) to carbon copy
 - *         - bcc = (optional) address(es) to blind carbon copy
 - *         - subject = (optional) e-mail subject
 - *         - newsgroups = (optional) newsgroup(s) to post to
 - *         - followupto = (optional) address(es) to follow up to
 - *         - extra = (optional) extra tags for the href link
 - * 
 - * Examples:
 - * <pre>
 - * {mailto address="me@domain.com"}
 - * {mailto address="me@domain.com" encode="javascript"}
 - * {mailto address="me@domain.com" encode="hex"}
 - * {mailto address="me@domain.com" subject="Hello to you!"}
 - * {mailto address="me@domain.com" cc="you@domain.com,they@domain.com"}
 - * {mailto address="me@domain.com" extra='class="mailto"'}
 - * </pre>
 - * @link http://smarty.php.net/manual/en/language.function.mailto.php {mailto}
 - *          (Smarty online manual)
 - * @version  1.2
 - * @author	 Monte Ohrt <monte@ispi.net>
 - * @author credits to Jason Sweat (added cc, bcc and subject functionality)
 - * @param array
 - * @param Smarty
 - * @return string
 - */
 -function smarty_function_mailto($params, &$smarty)
 -{
 -    $extra = '';
 -    extract($params);
 -
 -    if (empty($address)) {
 -        $smarty->trigger_error("mailto: missing 'address' parameter");
 -        return;
 -    }
 -	
 -    if (empty($text)) {
 -		$text = $address;
 -    }
 -	
 -	// netscape and mozilla do not decode %40 (@) in BCC field (bug?)
 -	// so, don't encode it.
 -	
 -	$mail_parms = array();
 -	if (!empty($cc)) {
 -		$mail_parms[] = 'cc='.str_replace('%40','@',rawurlencode($cc));
 -	}
 -	
 -	if (!empty($bcc)) {
 -		$mail_parms[] = 'bcc='.str_replace('%40','@',rawurlencode($bcc));
 -	}
 -	
 -	if (!empty($subject)) {
 -		$mail_parms[] = 'subject='.rawurlencode($subject);
 -	}
 -
 -	if (!empty($newsgroups)) {
 -		$mail_parms[] = 'newsgroups='.rawurlencode($newsgroups);
 -	}
 -
 -	if (!empty($followupto)) {
 -		$mail_parms[] = 'followupto='.str_replace('%40','@',rawurlencode($followupto));
 -	}
 -	
 -    $mail_parm_vals = '';
 -	for ($i=0; $i<count($mail_parms); $i++) {
 -		$mail_parm_vals .= (0==$i) ? '?' : '&';
 -		$mail_parm_vals .= $mail_parms[$i];
 -	}
 -	$address .= $mail_parm_vals;
 -	
 -	if (empty($encode)) {
 -		$encode = 'none';
 -    } elseif (!in_array($encode,array('javascript','hex','none')) ) {
 -        $smarty->trigger_error("mailto: 'encode' parameter must be none, javascript or hex");
 -        return;		
 -	}
 -	
 -	if ($encode == 'javascript' ) {
 -		$string = 'document.write(\'<a href="mailto:'.$address.'" '.$extra.'>'.$text.'</a>\');';
 -		
 -		for ($x=0; $x < strlen($string); $x++) {
 -			$js_encode .= '%' . bin2hex($string[$x]);
 -		}
 -	
 -		return '<script type="text/javascript" language="javascript">eval(unescape(\''.$js_encode.'\'))</script>';
 -		
 -	} elseif ($encode == 'hex') {
 -
 -		preg_match('!^(.*)(\?.*)$!',$address,$match);
 -		if(!empty($match[2])) {
 -        	$smarty->trigger_error("mailto: hex encoding does not work with extra attributes. Try javascript.");
 -        	return;						
 -		}  
 -		for ($x=0; $x < strlen($address); $x++) {
 -			if(preg_match('!\w!',$address[$x])) {
 -				$address_encode .= '%' . bin2hex($address[$x]);
 -			} else {
 -				$address_encode .= $address[$x];				
 -			}
 -		}
 -		for ($x=0; $x < strlen($text); $x++) {
 -			$text_encode .= '&#x' . bin2hex($text[$x]).';';
 -		}
 -		
 -		return '<a href="mailto:'.$address_encode.'" '.$extra.'>'.$text_encode.'</a>';
 -		
 -	} else {
 -		// no encoding		
 -		return '<a href="mailto:'.$address.'" '.$extra.'>'.$text.'</a>';
 -
 -	}
 -	
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.math.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.math.php deleted file mode 100644 index d2b5d829..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.math.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty {math} function plugin
 - *
 - * Type:     function<br>
 - * Name:     math<br>
 - * Purpose:  handle math computations in template<br>
 - * @link http://smarty.php.net/manual/en/language.function.math.php {math}
 - *          (Smarty online manual)
 - * @param array
 - * @param Smarty
 - * @return string
 - */
 -function smarty_function_math($params, &$smarty)
 -{
 -    // be sure equation parameter is present
 -    if (empty($params['equation'])) {
 -        $smarty->trigger_error("math: missing equation parameter");
 -        return;
 -    }
 -
 -    $equation = $params['equation'];
 -
 -    // make sure parenthesis are balanced
 -    if (substr_count($equation,"(") != substr_count($equation,")")) {
 -        $smarty->trigger_error("math: unbalanced parenthesis");
 -        return;
 -    }
 -
 -    // match all vars in equation, make sure all are passed
 -    preg_match_all("!\!(0x)([a-zA-Z][a-zA-Z0-9_]*)!",$equation, $match);
 -    $allowed_funcs = array('int','abs','ceil','cos','exp','floor','log','log10',
 -                           'max','min','pi','pow','rand','round','sin','sqrt','srand','tan');
 -    foreach($match[2] as $curr_var) {
 -        if (!in_array($curr_var,array_keys($params)) && !in_array($curr_var, $allowed_funcs)) {
 -            $smarty->trigger_error("math: parameter $curr_var not passed as argument");
 -            return;
 -        }
 -    }
 -
 -    foreach($params as $key => $val) {
 -        if ($key != "equation" && $key != "format" && $key != "assign") {
 -            // make sure value is not empty
 -            if (strlen($val)==0) {
 -                $smarty->trigger_error("math: parameter $key is empty");
 -                return;
 -            }
 -            if (!is_numeric($val)) {
 -                $smarty->trigger_error("math: parameter $key: is not numeric");
 -                return;
 -            }
 -            $equation = preg_replace("/\b$key\b/",$val, $equation);
 -        }
 -    }
 -
 -    eval("\$smarty_math_result = ".$equation.";");
 -
 -    if (empty($params['format'])) {
 -        if (empty($params['assign'])) {
 -            return $smarty_math_result;
 -        } else {
 -            $smarty->assign($params['assign'],$smarty_math_result);
 -        }
 -    } else {
 -        if (empty($params['assign'])){
 -            printf($params['format'],$smarty_math_result);
 -        } else {
 -            $smarty->assign($params['assign'],sprintf($params['format'],$smarty_math_result));
 -        }
 -    }
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup.php deleted file mode 100644 index 0eb4fcb3..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup.php +++ /dev/null @@ -1,87 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty {popup} function plugin
 - *
 - * Type:     function<br>
 - * Name:     popup<br>
 - * Purpose:  make text pop up in windows via overlib
 - * @link http://smarty.php.net/manual/en/language.function.popup.php {popup}
 - *          (Smarty online manual)
 - * @param array
 - * @param Smarty
 - * @return string
 - */
 -function smarty_function_popup($params, &$smarty)
 -{
 -    extract($params);
 -
 -    if (empty($text) && !isset($inarray) && empty($function)) {
 -        $smarty->trigger_error("overlib: attribute 'text' or 'inarray' or 'function' required");
 -        return false;
 -    }
 -
 -    if (empty($trigger)) { $trigger = "onmouseover"; }
 -
 -    $retval = $trigger . '="return overlib(\''.preg_replace(array("!'!","![\r\n]!"),array("\'",'\r'),$text).'\'';
 -    if ($sticky) { $retval .= ",STICKY"; }
 -    if (!empty($caption)) { $retval .= ",CAPTION,'".str_replace("'","\'",$caption)."'"; }
 -    if (!empty($fgcolor)) { $retval .= ",FGCOLOR,'$fgcolor'"; }
 -    if (!empty($bgcolor)) { $retval .= ",BGCOLOR,'$bgcolor'"; }
 -    if (!empty($textcolor)) { $retval .= ",TEXTCOLOR,'$textcolor'"; }
 -    if (!empty($capcolor)) { $retval .= ",CAPCOLOR,'$capcolor'"; }
 -    if (!empty($closecolor)) { $retval .= ",CLOSECOLOR,'$closecolor'"; }
 -    if (!empty($textfont)) { $retval .= ",TEXTFONT,'$textfont'"; }
 -    if (!empty($captionfont)) { $retval .= ",CAPTIONFONT,'$captionfont'"; }
 -    if (!empty($closefont)) { $retval .= ",CLOSEFONT,'$closefont'"; }
 -    if (!empty($textsize)) { $retval .= ",TEXTSIZE,$textsize"; }
 -    if (!empty($captionsize)) { $retval .= ",CAPTIONSIZE,$captionsize"; }
 -    if (!empty($closesize)) { $retval .= ",CLOSESIZE,$closesize"; }
 -    if (!empty($width)) { $retval .= ",WIDTH,$width"; }
 -    if (!empty($height)) { $retval .= ",HEIGHT,$height"; }
 -    if (!empty($left)) { $retval .= ",LEFT"; }
 -    if (!empty($right)) { $retval .= ",RIGHT"; }
 -    if (!empty($center)) { $retval .= ",CENTER"; }
 -    if (!empty($above)) { $retval .= ",ABOVE"; }
 -    if (!empty($below)) { $retval .= ",BELOW"; }
 -    if (isset($border)) { $retval .= ",BORDER,$border"; }
 -    if (isset($offsetx)) { $retval .= ",OFFSETX,$offsetx"; }
 -    if (isset($offsety)) { $retval .= ",OFFSETY,$offsety"; }
 -    if (!empty($fgbackground)) { $retval .= ",FGBACKGROUND,'$fgbackground'"; }
 -    if (!empty($bgbackground)) { $retval .= ",BGBACKGROUND,'$bgbackground'"; }
 -    if (!empty($closetext)) { $retval .= ",CLOSETEXT,'".str_replace("'","\'",$closetext)."'"; }
 -    if (!empty($noclose)) { $retval .= ",NOCLOSE"; }
 -    if (!empty($status)) { $retval .= ",STATUS,'".str_replace("'","\'",$status)."'"; }
 -    if (!empty($autostatus)) { $retval .= ",AUTOSTATUS"; }
 -    if (!empty($autostatuscap)) { $retval .= ",AUTOSTATUSCAP"; }
 -    if (isset($inarray)) { $retval .= ",INARRAY,'$inarray'"; }
 -    if (isset($caparray)) { $retval .= ",CAPARRAY,'$caparray'"; }
 -    if (!empty($capicon)) { $retval .= ",CAPICON,'$capicon'"; }
 -    if (!empty($snapx)) { $retval .= ",SNAPX,$snapx"; }
 -    if (!empty($snapy)) { $retval .= ",SNAPY,$snapy"; }
 -    if (isset($fixx)) { $retval .= ",FIXX,$fixx"; }
 -    if (isset($fixy)) { $retval .= ",FIXY,$fixy"; }
 -    if (!empty($background)) { $retval .= ",BACKGROUND,'$background'"; }
 -    if (!empty($padx)) { $retval .= ",PADX,$padx"; }
 -    if (!empty($pady)) { $retval .= ",PADY,$pady"; }
 -    if (!empty($fullhtml)) { $retval .= ",FULLHTML"; }
 -    if (!empty($frame)) { $retval .= ",FRAME,'$frame'"; }
 -    if (isset($timeout)) { $retval .= ",TIMEOUT,$timeout"; }
 -    if (!empty($function)) { $retval .= ",FUNCTION,'$function'"; }
 -    if (isset($delay)) { $retval .= ",DELAY,$delay"; }
 -    if (!empty($hauto)) { $retval .= ",HAUTO"; }
 -    if (!empty($vauto)) { $retval .= ",VAUTO"; }
 -    $retval .= ');" onmouseout="nd();"';
 -	
 -	return $retval;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup_init.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup_init.php deleted file mode 100644 index e06de696..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.popup_init.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty {popup_init} function plugin
 - *
 - * Type:     function<br>
 - * Name:     popup_init<br>
 - * Purpose:  initialize overlib
 - * @link http://smarty.php.net/manual/en/language.function.popup.init.php {popup_init}
 - *          (Smarty online manual)
 - * @param array
 - * @param Smarty
 - * @return string
 - */
 -function smarty_function_popup_init($params, &$smarty)
 -{
 -	$zindex = 1000;
 -	
 -    if (!empty($params['zindex'])) {
 -		$zindex = $params['zindex'];
 -	}
 -	
 -    if (!empty($params['src'])) {
 -    	return '<div id="overDiv" style="position:absolute; visibility:hidden; z-index:'.$zindex.';"></div>' . "\n"
 -         . '<script type="text/javascript" language="JavaScript" src="'.$params['src'].'"></script>' . "\n";
 -    } else {
 -        $smarty->trigger_error("popup_init: missing src parameter");
 -    }
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.var_dump.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.var_dump.php deleted file mode 100644 index 382032c1..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/function.var_dump.php +++ /dev/null @@ -1,20 +0,0 @@ -<?php
 -/** @package Smarty
 -* @subpackage plugins */
 -
 -/**
 - * Smarty plugin
 - * -------------------------------------------------------------
 - * Type:     function
 - * Name:     assign
 - * Purpose:  assign a value to a template variable
 - * -------------------------------------------------------------
 - */
 -function smarty_function_var_dump($params, &$smarty)
 -{
 -    var_dump('<pre>',$params,'</pre>');
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.capitalize.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.capitalize.php deleted file mode 100644 index 464d5f84..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.capitalize.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty capitalize modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     capitalize<br>
 - * Purpose:  capitalize words in the string
 - * @link http://smarty.php.net/manual/en/language.modifiers.php#LANGUAGE.MODIFIER.CAPITALIZE
 - *      capitalize (Smarty online manual)
 - * @param string
 - * @return string
 - */
 -function smarty_modifier_capitalize($string)
 -{
 -	return ucwords($string);
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.cat.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.cat.php deleted file mode 100644 index 176ee7ae..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.cat.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty cat modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     cat<br>
 - * Date:     Feb 24, 2003
 - * Purpose:  catenate a value to a variable
 - * Input:    string to catenate
 - * Example:  {$var|cat:"foo"}
 - * @link http://smarty.php.net/manual/en/language.modifier.cat.php cat
 - *          (Smarty online manual)
 - * @author	 Monte Ohrt <monte@ispi.net>
 - * @version 1.0
 - * @param string
 - * @param string
 - * @return string
 - */
 -function smarty_modifier_cat($string, $cat)
 -{
 -	return $string . $cat;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_characters.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_characters.php deleted file mode 100644 index 2fb7c898..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_characters.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty count_characters modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     count_characteres<br>
 - * Purpose:  count the number of characters in a text
 - * @link http://smarty.php.net/manual/en/language.modifier.count.characters.php
 - *          count_characters (Smarty online manual)
 - * @param string
 - * @param boolean include whitespace in the character count
 - * @return integer
 - */
 -function smarty_modifier_count_characters($string, $include_spaces = false)
 -{
 -    if ($include_spaces)
 -       return(strlen($string));
 -
 -    return preg_match_all("/[^\s]/",$string, $match);
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_paragraphs.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_paragraphs.php deleted file mode 100644 index 5f6278fe..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_paragraphs.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty count_paragraphs modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     count_paragraphs<br>
 - * Purpose:  count the number of paragraphs in a text
 - * @link http://smarty.php.net/manual/en/language.modifier.count.paragraphs.php
 - *          count_paragraphs (Smarty online manual)
 - * @param string
 - * @return integer
 - */
 -function smarty_modifier_count_paragraphs($string)
 -{
 -    // count \r or \n characters
 -    return count(preg_split('/[\r\n]+/', $string));
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_sentences.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_sentences.php deleted file mode 100644 index 2f3ba65e..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_sentences.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty count_sentences modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     count_sentences
 - * Purpose:  count the number of sentences in a text
 - * @link http://smarty.php.net/manual/en/language.modifier.count.paragraphs.php
 - *          count_sentences (Smarty online manual)
 - * @param string
 - * @return integer
 - */
 -function smarty_modifier_count_sentences($string)
 -{
 -    // find periods with a word before but not after.
 -    return preg_match_all('/[^\s]\.(?!\w)/', $string, $match);
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_words.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_words.php deleted file mode 100644 index a686e4b4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.count_words.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty count_words modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     count_words<br>
 - * Purpose:  count the number of words in a text
 - * @link http://smarty.php.net/manual/en/language.modifier.count.words.php
 - *          count_words (Smarty online manual)
 - * @param string
 - * @return integer
 - */
 -function smarty_modifier_count_words($string)
 -{
 -    // split text by ' ',\r,\n,\f,\t
 -    $split_array = preg_split('/\s+/',$string);
 -    // count matches that contain alphanumerics
 -    $word_count = preg_grep('/[a-zA-Z0-9\\x80-\\xff]/', $split_array);
 -
 -    return count($word_count);
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.date_format.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.date_format.php deleted file mode 100644 index ab7e9045..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.date_format.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Include the {@link shared.make_timestamp.php} plugin
 - */
 -require_once $smarty->_get_plugin_filepath('shared','make_timestamp');
 -/**
 - * Smarty date_format modifier plugin
 - * 
 - * Type:     modifier<br>
 - * Name:     date_format<br>
 - * Purpose:  format datestamps via strftime<br>
 - * Input:<br>
 - *         - string: input date string
 - *         - format: strftime format for output
 - *         - default_date: default date if $string is empty
 - * @link http://smarty.php.net/manual/en/language.modifier.date.format.php
 - *          date_format (Smarty online manual)
 - * @param string
 - * @param string
 - * @param string
 - * @return string|void
 - * @uses smarty_make_timestamp()
 - */
 -function smarty_modifier_date_format($string, $format="%b %e, %Y", $default_date=null)
 -{
 -	if($string != '') {
 -    	return strftime($format, smarty_make_timestamp($string));
 -	} elseif (isset($default_date) && $default_date != '') {		
 -    	return strftime($format, smarty_make_timestamp($default_date));
 -	} else {
 -		return;
 -	}
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.debug_print_var.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.debug_print_var.php deleted file mode 100644 index 3158df00..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.debug_print_var.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty debug_print_var modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     debug_print_var<br>
 - * Purpose:  formats variable contents for display in the console
 - * @link http://smarty.php.net/manual/en/language.modifier.debug.print.var.php
 - *          debug_print_var (Smarty online manual)
 - * @param array|object
 - * @param integer
 - * @param integer
 - * @return string
 - */
 -function smarty_modifier_debug_print_var($var, $depth = 0, $length = 40)
 -{
 -	$_replace = array("\n"=>'<i>\n</i>', "\r"=>'<i>\r</i>', "\t"=>'<i>\t</i>');
 -    if (is_array($var)) {
 -        $results = "<b>Array (".count($var).")</b>";
 -        foreach ($var as $curr_key => $curr_val) {
 -            $return = smarty_modifier_debug_print_var($curr_val, $depth+1, $length);
 -            $results .= "<br>".str_repeat(' ', $depth*2)."<b>".strtr($curr_key, $_replace)."</b> => $return";
 -        }
 -        return $results;
 -    } else if (is_object($var)) {
 -        $object_vars = get_object_vars($var);
 -        $results = "<b>".get_class($var)." Object (".count($object_vars).")</b>";
 -        foreach ($object_vars as $curr_key => $curr_val) {
 -            $return = smarty_modifier_debug_print_var($curr_val, $depth+1, $length);
 -            $results .= "<br>".str_repeat(' ', $depth*2)."<b>$curr_key</b> => $return";
 -        }
 -        return $results;
 -    } else {
 -        if (empty($var) && $var != "0") {
 -            return '<i>empty</i>';
 -        }
 -        if (strlen($var) > $length ) {
 -            $results = substr($var, 0, $length-3).'...';
 -        } else {
 -            $results = $var;
 -        }
 -        $results = htmlspecialchars($results);
 -        $results = strtr($results, $_replace);
 -        return $results;
 -    }
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.default.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.default.php deleted file mode 100644 index 4f1f800a..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.default.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty default modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     default<br>
 - * Purpose:  designate default value for empty variables
 - * @link http://smarty.php.net/manual/en/language.modifier.default.php
 - *          default (Smarty online manual)
 - * @param string
 - * @param string
 - * @return string
 - */
 -function smarty_modifier_default($string, $default = '')
 -{
 -    if (!isset($string) || $string === '')
 -        return $default;
 -    else
 -        return $string;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.escape.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.escape.php deleted file mode 100644 index dc5ebc6f..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.escape.php +++ /dev/null @@ -1,63 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty escape modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     escape<br>
 - * Purpose:  Escape the string according to escapement type
 - * @link http://smarty.php.net/manual/en/language.modifier.escape.php
 - *          escape (Smarty online manual)
 - * @param string
 - * @param html|htmlall|url|quotes|hex|hexentity|javascript
 - * @return string
 - */
 -function smarty_modifier_escape($string, $esc_type = 'html')
 -{
 -    switch ($esc_type) {
 -        case 'html':
 -            return htmlspecialchars($string, ENT_QUOTES);
 -
 -        case 'htmlall':
 -            return htmlentities($string, ENT_QUOTES);
 -
 -        case 'url':
 -            return urlencode($string);
 -
 -        case 'quotes':
 -            // escape unescaped single quotes
 -            return preg_replace("%(?<!\\\\)'%", "\\'", $string);
 -
 -		case 'hex':
 -			// escape every character into hex
 -			$return = '';
 -			for ($x=0; $x < strlen($string); $x++) {
 -				$return .= '%' . bin2hex($string[$x]);
 -			}
 -			return $return;
 -            
 -		case 'hexentity':
 -			$return = '';
 -			for ($x=0; $x < strlen($string); $x++) {
 -				$return .= '&#x' . bin2hex($string[$x]) . ';';
 -			}
 -			return $return;
 -
 -        case 'javascript':
 -            // escape quotes and backslashes and newlines
 -            return strtr($string, array('\\'=>'\\\\',"'"=>"\\'",'"'=>'\\"',"\r"=>'\\r',"\n"=>'\\n'));
 -
 -        default:
 -            return $string;
 -    }
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.htmlentities.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.htmlentities.php deleted file mode 100644 index 72dcf7de..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.htmlentities.php +++ /dev/null @@ -1,18 +0,0 @@ -<?php
 -/** @package Smarty
 -* @subpackage plugins */
 -
 -/**
 - * Smarty plugin
 - * -------------------------------------------------------------
 - * Type:     modifier
 - * Name:     upper
 - * Purpose:  convert string to uppercase
 - * -------------------------------------------------------------
 - */
 -function smarty_modifier_htmlentities($string)
 -{
 -	return htmlentities($string);
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.indent.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.indent.php deleted file mode 100644 index 4a8b81c7..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.indent.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty indent modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     indent<br>
 - * Purpose:  indent lines of text
 - * @link http://smarty.php.net/manual/en/language.modifier.indent.php
 - *          indent (Smarty online manual)
 - * @param string
 - * @param integer
 - * @param string
 - * @return string
 - */
 -function smarty_modifier_indent($string,$chars=4,$char=" ")
 -{
 -	return preg_replace('!^!m',str_repeat($char,$chars),$string);
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.lower.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.lower.php deleted file mode 100644 index fecb7168..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.lower.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty lower modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     lower<br>
 - * Purpose:  convert string to lowercase
 - * @link http://smarty.php.net/manual/en/language.modifier.lower.php
 - *          lower (Smarty online manual)
 - * @param string
 - * @return string
 - */
 -function smarty_modifier_lower($string)
 -{
 -	return strtolower($string);
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.nl2br.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.nl2br.php deleted file mode 100644 index 2a5f238b..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.nl2br.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty plugin
 - *
 - * Type:     modifier<br>
 - * Name:     nl2br<br>
 - * Date:     Feb 26, 2003
 - * Purpose:  convert \r\n, \r or \n to <<br>>
 - * Input:<br>
 - *         - contents = contents to replace
 - *         - preceed_test = if true, includes preceeding break tags
 - *           in replacement
 - * Example:  {$text|nl2br}
 - * @link http://smarty.php.net/manual/en/language.modifier.nl2br.php
 - *          nl2br (Smarty online manual)
 - * @version  1.0
 - * @author	 Monte Ohrt <monte@ispi.net>
 - * @param string
 - * @return string
 - */
 -function smarty_modifier_nl2br($string)
 -{
 -    return nl2br($string);
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.rawurlencode.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.rawurlencode.php deleted file mode 100644 index d2d5e813..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.rawurlencode.php +++ /dev/null @@ -1,18 +0,0 @@ -<?php
 -/** @package Smarty
 -* @subpackage plugins */
 -
 -/**
 - * Smarty plugin
 - * -------------------------------------------------------------
 - * Type:     modifier
 - * Name:     rawurlencode
 - * Purpose:  encode string for use in PDFdefaultConverter TOC
 - * -------------------------------------------------------------
 - */
 -function smarty_modifier_rawurlencode($string)
 -{
 -	return rawurlencode($string);
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.regex_replace.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.regex_replace.php deleted file mode 100644 index a467dfba..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.regex_replace.php +++ /dev/null @@ -1,29 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty regex_replace modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     regex_replace<br>
 - * Purpose:  regular epxression search/replace
 - * @link http://smarty.php.net/manual/en/language.modifier.regex.replace.php
 - *          regex_replace (Smarty online manual)
 - * @param string
 - * @param string|array
 - * @param string|array
 - * @return string
 - */
 -function smarty_modifier_regex_replace($string, $search, $replace)
 -{
 -    return preg_replace($search, $replace, $string);
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.replace.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.replace.php deleted file mode 100644 index 590e11b4..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.replace.php +++ /dev/null @@ -1,29 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty replace modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     replace<br>
 - * Purpose:  simple search/replace
 - * @link http://smarty.php.net/manual/en/language.modifier.replace.php
 - *          replace (Smarty online manual)
 - * @param string
 - * @param string
 - * @param string
 - * @return string
 - */
 -function smarty_modifier_replace($string, $search, $replace)
 -{
 -    return str_replace($search, $replace, $string);
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.spacify.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.spacify.php deleted file mode 100644 index bcc5f941..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.spacify.php +++ /dev/null @@ -1,29 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty spacify modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     spacify<br>
 - * Purpose:  add spaces between characters in a string
 - * @link http://smarty.php.net/manual/en/language.modifier.spacify.php
 - *          spacify (Smarty online manual)
 - * @param string
 - * @param string
 - * @return string
 - */
 -function smarty_modifier_spacify($string, $spacify_char = ' ')
 -{
 -    return implode($spacify_char,
 -                   preg_split('//', $string, -1, PREG_SPLIT_NO_EMPTY));
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.string_format.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.string_format.php deleted file mode 100644 index 49903137..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.string_format.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty string_format modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     string_format<br>
 - * Purpose:  format strings via sprintf
 - * @link http://smarty.php.net/manual/en/language.modifier.string.format.php
 - *          string_format (Smarty online manual)
 - * @param string
 - * @param string
 - * @return string
 - */
 -function smarty_modifier_string_format($string, $format)
 -{
 -    return sprintf($format, $string);
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip.php deleted file mode 100644 index fc675582..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip.php +++ /dev/null @@ -1,33 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty strip modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     strip<br>
 - * Purpose:  Replace all repeated spaces, newlines, tabs
 - *           with a single space or supplied replacement string.<br>
 - * Example:  {$var|strip} {$var|strip:" "}
 - * Date:     September 25th, 2002
 - * @link http://smarty.php.net/manual/en/language.modifier.strip.php
 - *          strip (Smarty online manual)
 - * @author   Monte Ohrt <monte@ispi.net>
 - * @version  1.0
 - * @param string
 - * @param string
 - * @return string
 - */
 -function smarty_modifier_strip($text, $replace = ' ')
 -{
 -	return preg_replace('!\s+!', $replace, $text);
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip_tags.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip_tags.php deleted file mode 100644 index 516a87fc..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.strip_tags.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty strip_tags modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     strip_tags<br>
 - * Purpose:  strip html tags from text
 - * @link http://smarty.php.net/manual/en/language.modifier.strip.tags.php
 - *          strip_tags (Smarty online manual)
 - * @param string
 - * @param boolean
 - * @return string
 - */
 -function smarty_modifier_strip_tags($string, $replace_with_space = true)
 -{
 -    if ($replace_with_space)
 -        return preg_replace('!<[^>]*?>!', ' ', $string);
 -    else
 -        return strip_tags($string);
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.truncate.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.truncate.php deleted file mode 100644 index 775a20e8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.truncate.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty truncate modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     truncate<br>
 - * Purpose:  Truncate a string to a certain length if necessary,
 - *           optionally splitting in the middle of a word, and 
 - *           appending the $etc string.
 - * @link http://smarty.php.net/manual/en/language.modifier.truncate.php
 - *          truncate (Smarty online manual)
 - * @param string
 - * @param integer
 - * @param string
 - * @param boolean
 - * @return string
 - */
 -function smarty_modifier_truncate($string, $length = 80, $etc = '...',
 -                                  $break_words = false)
 -{
 -    if ($length == 0)
 -        return '';
 -
 -    if (strlen($string) > $length) {
 -        $length -= strlen($etc);	
 -        if (!$break_words)
 -	    $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));
 -      
 -        return substr($string, 0, $length).$etc;
 -    } else
 -        return $string;
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.upper.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.upper.php deleted file mode 100644 index 899f6bb9..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.upper.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty upper modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     upper<br>
 - * Purpose:  convert string to uppercase
 - * @link http://smarty.php.net/manual/en/language.modifier.upper.php
 - *          upper (Smarty online manual)
 - * @param string
 - * @return string
 - */
 -function smarty_modifier_upper($string)
 -{
 -	return strtoupper($string);
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.wordwrap.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.wordwrap.php deleted file mode 100644 index fe4407fc..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/modifier.wordwrap.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Smarty wordwrap modifier plugin
 - *
 - * Type:     modifier<br>
 - * Name:     wordwrap<br>
 - * Purpose:  wrap a string of text at a given length
 - * @link http://smarty.php.net/manual/en/language.modifier.wordwrap.php
 - *          wordwrap (Smarty online manual)
 - * @param string
 - * @param integer
 - * @param string
 - * @param boolean
 - * @return string
 - */
 -function smarty_modifier_wordwrap($string,$length=80,$break="\n",$cut=false)
 -{
 -	return wordwrap($string,$length,$break,$cut);
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/outputfilter.trimwhitespace.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/outputfilter.trimwhitespace.php deleted file mode 100644 index 1fa5fe17..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/outputfilter.trimwhitespace.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php
 -/**
 - * Smarty plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -/**
 - * Smarty trimwhitespace outputfilter plugin
 - *
 - * File:     outputfilter.trimwhitespace.php<br>
 - * Type:     outputfilter<br>
 - * Name:     trimwhitespace<br>
 - * Date:     Jan 25, 2003<br>
 - * Purpose:  trim leading white space and blank lines from
 - *           template source after it gets interpreted, cleaning
 - *           up code and saving bandwidth. Does not affect
 - *           <<PRE>></PRE> and <SCRIPT></SCRIPT> blocks.<br>
 - * Install:  Drop into the plugin directory, call 
 - *           <code>$smarty->load_filter('output','trimwhitespace');</code>
 - *           from application.
 - * @author   Monte Ohrt <monte@ispi.net>
 - * @author Contributions from Lars Noschinski <lars@usenet.noschinski.de>
 - * @version  1.3
 - * @param string
 - * @param Smarty
 - */
 - function smarty_outputfilter_trimwhitespace($source, &$smarty)
 - {
 -    // Pull out the script blocks
 -    preg_match_all("!<script[^>]+>.*?</script>!is", $source, $match);
 -    $_script_blocks = $match[0];
 -    $source = preg_replace("!<script[^>]+>.*?</script>!is",
 -    '@@@SMARTY:TRIM:SCRIPT@@@', $source);
 -
 -    // Pull out the pre blocks
 -    preg_match_all("!<pre>.*?</pre>!is", $source, $match);
 -    $_pre_blocks = $match[0];
 -    $source = preg_replace("!<pre>.*?</pre>!is",
 -    '@@@SMARTY:TRIM:PRE@@@', $source);
 -
 -    // Pull out the textarea blocks
 -    preg_match_all("!<textarea[^>]+>.*?</textarea>!is", $source, $match);
 -    $_textarea_blocks = $match[0];
 -    $source = preg_replace("!<textarea[^>]+>.*?</textarea>!is",
 -    '@@@SMARTY:TRIM:TEXTAREA@@@', $source);
 -
 -	// remove all leading spaces, tabs and carriage returns NOT
 -	// preceeded by a php close tag.
 -      	$source = trim(preg_replace('/((?<!\?>)\n)[\s]+/m', '\1', $source));
 -
 -	// replace script blocks
 -	smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:SCRIPT@@@",$_script_blocks, $source);
 -
 -	// replace pre blocks
 -	smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:PRE@@@",$_pre_blocks, $source);
 -
 -    // replace textarea blocks
 -	smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:TEXTAREA@@@",$_textarea_blocks, $source);
 -
 -	return $source; 
 - }
 -
 -function smarty_outputfilter_trimwhitespace_replace($search_str, $replace, &$subject) {
 -   $_len = strlen($search_str);
 -   $_pos = 0;
 -   for ($_i=0, $_count=count($replace); $_i<$_count; $_i++)
 -      if (($_pos=strpos($subject, $search_str, $_pos))!==false)
 -	 $subject = substr_replace($subject, $replace[$_i], $_pos, $_len);
 -      else
 -	 break;
 -   
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.escape_special_chars.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.escape_special_chars.php deleted file mode 100644 index 72b8a48c..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.escape_special_chars.php +++ /dev/null @@ -1,30 +0,0 @@ -<?php
 -/**
 - * Smarty shared plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * escape_special_chars common function
 - *
 - * Function: smarty_function_escape_special_chars<br>
 - * Purpose:  used by other smarty functions to escape
 - *           special chars except for already escaped ones
 - * @param string
 - * @return string
 - */
 -function smarty_function_escape_special_chars($string)
 -{
 -	if(!is_array($string))	{
 -		$string = preg_replace('!&(#?\w+);!', '%%%SMARTY_START%%%\\1%%%SMARTY_END%%%', $string);
 -		$string = htmlspecialchars($string);
 -		$string = str_replace(array('%%%SMARTY_START%%%','%%%SMARTY_END%%%'), array('&',';'), $string);
 -	}
 -	return $string;	
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.make_timestamp.php b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.make_timestamp.php deleted file mode 100644 index 25c7f5c8..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/libs/plugins/shared.make_timestamp.php +++ /dev/null @@ -1,43 +0,0 @@ -<?php
 -/**
 - * Smarty shared plugin
 - * @package Smarty
 - * @subpackage plugins
 - */
 -
 -
 -/**
 - * Function: smarty_make_timestamp<br>
 - * Purpose:  used by other smarty functions to make a timestamp
 - *           from a string.
 - * @param string
 - * @return string
 - */
 -function smarty_make_timestamp($string)
 -{
 -    if(empty($string)) {
 -        $string = "now";
 -    }
 -    $time = strtotime($string);
 -    if (is_numeric($time) && $time != -1)
 -        return $time;
 -
 -    // is mysql timestamp format of YYYYMMDDHHMMSS?
 -    if (preg_match('/^\d{14}$/', $string)) {
 -        $time = mktime(substr($string,8,2),substr($string,10,2),substr($string,12,2),
 -               substr($string,4,2),substr($string,6,2),substr($string,0,4));
 -
 -        return $time;
 -    }
 -
 -    // couldn't recognize it, try to return a time
 -    $time = (int) $string;
 -    if ($time > 0)
 -        return $time;
 -    else
 -        return time();
 -}
 -
 -/* vim: set expandtab: */
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.README b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.README deleted file mode 100644 index bea956fc..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.README +++ /dev/null @@ -1,6 +0,0 @@ -Feel free to put the smarty icon on your site.
 -You can cut-and-paste the following code, be sure
 -to adjust the path to the image:
 -
 -<a href="http://smarty.php.net/">
 -<img src="smarty_icon.gif" border="0" height="31" width="88" /></a>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.gif b/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.gif Binary files differdeleted file mode 100644 index 5d519699..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/Smarty-2.6.0/misc/smarty_icon.gif +++ /dev/null diff --git a/buildscripts/PhpDocumentor/phpDocumentor/TutorialHighlightParser.inc b/buildscripts/PhpDocumentor/phpDocumentor/TutorialHighlightParser.inc deleted file mode 100644 index ff7160ce..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/TutorialHighlightParser.inc +++ /dev/null @@ -1,491 +0,0 @@ -<?php
 -//
 -// +------------------------------------------------------------------------+
 -// | phpDocumentor                                                          |
 -// +------------------------------------------------------------------------+
 -// | Copyright (c) 2000-2004 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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -/**
 - * Source Code Highlighting
 - *
 - * The classes in this file are responsible for the dynamic @example, and
 - * <programlisting role="tutorial"> tags output.  Using the
 - * WordParser, the phpDocumentor_TutorialHighlightParser
 - * retrieves PHP tokens one by one from the array generated by
 - * {@link WordParser} source retrieval functions
 - * and then highlights them individually.
 - *
 - * It accomplishes this highlighting through the assistance of methods in
 - * the output Converter passed to its parse() method, and then returns the
 - * fully highlighted source as a string
 - * @tutorial tags.example.pkg, tags.filesource.pkg
 - * @package phpDocumentor
 - * @subpackage Parsers
 - * @since 1.3.0
 - */
 -
 -/**
 - * Highlights source code using {@link parse()}
 - * @package phpDocumentor
 - * @subpackage Parsers
 - */
 -class phpDocumentor_TutorialHighlightParser extends Parser
 -{
 -    /**#@+ @access private */
 -    /**
 -     * Highlighted source is built up in this string
 -     * @var string
 -     */
 -    var $_output;
 -    /**
 -     * contents of the current source code line as it is parsed
 -     * @var string
 -     */
 -    var $_line;
 -    /**
 -     * Used to retrieve highlighted tokens
 -     * @var Converter a descendant of Converter
 -     */
 -    var $_converter;
 -    /**
 -     * Path to file being highlighted, if this is from a @filesource tag
 -     * @var false|string full path
 -     */
 -    var $_filesourcepath;
 -    /**
 -     * @var array
 -     */
 -    var $eventHandlers = array(
 -                                TUTORIAL_EVENT_NOEVENTS => 'defaultHandler',
 -                                TUTORIAL_EVENT_ITAG => 'defaultHandler',
 -                                TUTORIAL_EVENT_ATTRIBUTE => 'attrHandler',
 -                                TUTORIAL_EVENT_OPENTAG => 'defaultHandler',
 -                                TUTORIAL_EVENT_CLOSETAG => 'defaultHandler',
 -                                TUTORIAL_EVENT_ENTITY => 'defaultHandler',
 -                                TUTORIAL_EVENT_COMMENT => 'defaultHandler',
 -                                TUTORIAL_EVENT_SINGLEQUOTE => 'defaultHandler',
 -                                TUTORIAL_EVENT_DOUBLEQUOTE => 'defaultHandler',
 -    );
 -    /**#@-*/
 -    
 -    /**
 -     * @uses Converter::SourceLine() encloses {@link $_line} in a
 -     *                               converter-specific format
 -     */
 -    function newLineNum()
 -    {
 -        $this->_line .= $this->_converter->flushHighlightCache();
 -        $this->_output .= $this->_converter->SourceLine($this->_pv_curline + 1, $this->_line, $this->_path);
 -        $this->_line = '';
 -    }
 -    
 -    /**
 -     * Start the parsing at a certain line number
 -     */
 -    function setLineNum($num)
 -    {
 -        $this->_wp->linenum = $num;
 -    }
 -    
 -    /**
 -     * Parse a new file
 -     *
 -     * The parse() method is a do...while() loop that retrieves tokens one by
 -     * one from the {@link $_event_stack}, and uses the token event array set up
 -     * by the class constructor to call event handlers.
 -     *
 -     * The event handlers each process the tokens passed to them, and use the
 -     * {@link _addoutput()} method to append the processed tokens to the
 -     * {@link $_line} variable.  The word parser calls {@link newLineNum()}
 -     * every time a line is reached.
 -     *
 -     * In addition, the event handlers use special linking functions
 -     * {@link _link()} and its cousins (_classlink(), etc.) to create in-code
 -     * hyperlinks to the documentation for source code elements that are in the
 -     * source code.
 -     *
 -     * @uses setupStates() initialize parser state variables
 -     * @uses configWordParser() pass $parse_data to prepare retrieval of tokens
 -     * @param    string
 -     * @param    Converter
 -     * @param    false|string full path to file with @filesource tag, if this
 -     *           is a @filesource parse
 -     * @param    false|integer starting line number from {@}source linenum}
 -     * @staticvar    integer    used for recursion limiting if a handler for
 -     *                          an event is not found
 -     * @return    bool
 -     */
 -    function parse ($parse_data, &$converter, $filesourcepath = false, $linenum = false)
 -    {
 -        static $endrecur = 0;
 -        $parse_data = str_replace(array("\r\n", "\t"), array("\n", '    '), $parse_data);
 -        $this->_converter = &$converter;
 -        $converter->startHighlight();
 -        $this->_path = $filesourcepath;
 -        $this->setupStates($parse_data);
 -
 -        $this->configWordParser(TUTORIAL_EVENT_NOEVENTS);
 -        if ($linenum !== false) $this->setLineNum($linenum);
 -        // initialize variables so E_ALL error_reporting doesn't complain
 -        $pevent = 0;
 -        $word = 0;
 -
 -        do
 -        {
 -            $lpevent = $pevent;
 -            $pevent = $this->_event_stack->getEvent();
 -            if ($lpevent != $pevent)
 -            {
 -                $this->_last_pevent = $lpevent;
 -                $this->configWordParser($pevent);
 -            }
 -            $this->_wp->setWhitespace(true);
 -
 -            $dbg_linenum = $this->_wp->linenum;
 -            $dbg_pos = $this->_wp->getPos();
 -            $this->_pv_last_word = $word;
 -            $this->_pv_curline = $this->_wp->linenum;
 -            $word = $this->_wp->getWord();
 -
 -            if (0)//PHPDOCUMENTOR_DEBUG == true)
 -            {
 -                echo "LAST: ";
 -                echo "|" . $this->_pv_last_word;
 -                echo "|\n";
 -                echo "PEVENT: " . $this->getParserEventName($pevent) . "\n";
 -                echo "LASTPEVENT: " . $this->getParserEventName($this->_last_pevent) . "\n";
 -//                echo "LINE: ".$this->_line."\n";
 -//                echo "OUTPUT: ".$this->_output."\n";
 -                echo $dbg_linenum.'-'.$dbg_pos . ": ";
 -                echo '|'.htmlspecialchars($word);
 -                echo "|\n";
 -                echo "-------------------\n\n\n";
 -                flush();
 -            }
 -            if (isset($this->eventHandlers[$pevent]))
 -            {
 -                $handle = $this->eventHandlers[$pevent];
 -                $this->$handle($word, $pevent);
 -            } else
 -            {
 -                debug('WARNING: possible error, no handler for event number '.$pevent);
 -                if ($endrecur++ == 25)
 -                {
 -                    die("FATAL ERROR, recursion limit reached");
 -                }
 -            }
 -        } while (!($word === false));
 -        if (strlen($this->_line)) $this->newLineNum();
 -        return $this->_output;
 -    }
 -    
 -    /**#@+
 -     * Event Handlers
 -     *
 -     * All Event Handlers use {@link checkEventPush()} and
 -     * {@link checkEventPop()} to set up the event stack and parser state.
 -     * @access private
 -     * @param string|array token value
 -     * @param integer parser event from {@link Parser.inc}
 -     */
 -    /**
 -     * Most tokens only need highlighting, and this method handles them
 -     */
 -    function defaultHandler($word, $pevent)
 -    {
 -        if ($word == "\n") {
 -            $this->newLineNum();
 -            return;
 -        }
 -        if ($this->checkEventPush($word, $pevent)) {
 -            $this->_wp->backupPos($word);
 -            return;
 -        }
 -        $this->_addoutput($word);
 -        $this->checkEventPop($word, $pevent);
 -    }
 -
 -    /**
 -     * Most tokens only need highlighting, and this method handles them
 -     */
 -    function attrHandler($word, $pevent)
 -    {
 -        if ($word == "\n") {
 -            $this->newLineNum();
 -            return;
 -        }
 -        if ($e = $this->checkEventPush($word, $pevent)) {
 -            if ($e == TUTORIAL_EVENT_SINGLEQUOTE || $e == TUTORIAL_EVENT_DOUBLEQUOTE) {
 -                $this->_addoutput($word);
 -            }
 -            return;
 -        }
 -        if ($this->checkEventPop($word, $pevent)) {
 -            $this->_wp->backupPos($word);
 -            return;
 -        }
 -        $this->_addoutput($word);
 -    }
 -    
 -    /**#@+
 -     * Output Methods
 -     * @access private
 -     */
 -    /**
 -     * This method adds output to {@link $_line}
 -     *
 -     * If a string with variables like "$test this" is present, then special
 -     * handling is used to allow processing of the variable in context.
 -     * @see _flush_save()
 -     */
 -    function _addoutput($word, $preformatted = false)
 -    {
 -        $type =
 -        array(
 -            TUTORIAL_EVENT_ATTRIBUTE => 'attribute',
 -            TUTORIAL_EVENT_SINGLEQUOTE => 'attributevalue',
 -            TUTORIAL_EVENT_DOUBLEQUOTE => 'attributevalue',
 -            TUTORIAL_EVENT_CLOSETAG => 'closetag',
 -            TUTORIAL_EVENT_ENTITY => 'entity',
 -            TUTORIAL_EVENT_ITAG => 'itag',
 -            TUTORIAL_EVENT_OPENTAG => 'opentag',
 -            TUTORIAL_EVENT_COMMENT => 'comment',
 -        );
 -        $a = $this->_event_stack->getEvent();
 -        if (in_array($a, array_keys($type))) {
 -            $this->_line .= $this->_converter->highlightTutorialSource($type[$a], $word);
 -        } else {
 -            $this->_line .= $this->_converter->flushHighlightCache();
 -            $this->_line .= $word;
 -        }
 -    }
 -    /**#@-*/
 -
 -    /**
 -     * tell the parser's WordParser {@link $wp} to set up tokens to parse words by.
 -     * tokens are word separators.  In English, a space or punctuation are examples of tokens.
 -     * In PHP, a token can be a ;, a parenthesis, or even the word "function"
 -     * @param    $value integer an event number
 -     * @see WordParser
 -     */
 -    
 -    function configWordParser($e)
 -    {
 -        $this->_wp->setSeperator($this->tokens[($e + 100)]);
 -    }
 -    /**
 -     * this function checks whether parameter $word is a token for pushing a new event onto the Event Stack.
 -     * @return mixed    returns false, or the event number
 -     */
 -    
 -    function checkEventPush($word,$pevent)
 -    {
 -        $e = false;
 -        if (isset($this->pushEvent[$pevent]))
 -        {
 -            if (isset($this->pushEvent[$pevent][strtolower($word)]))
 -            $e = $this->pushEvent[$pevent][strtolower($word)];
 -        }
 -        if ($e)
 -        {
 -            $this->_event_stack->pushEvent($e);
 -            return $e;
 -        } else {
 -            return false;
 -        }
 -    }
 -
 -    /**
 -     * this function checks whether parameter $word is a token for popping the current event off of the Event Stack.
 -     * @return mixed    returns false, or the event number popped off of the stack
 -     */
 -    
 -    function checkEventPop($word,$pevent)
 -    {
 -        if (!isset($this->popEvent[$pevent])) return false;
 -        if (in_array(strtolower($word),$this->popEvent[$pevent]))
 -        {
 -            return $this->_event_stack->popEvent();
 -        } else {
 -            return false;
 -        }
 -    }
 -
 -    /**
 -     * Initialize all parser state variables
 -     * @param boolean true if we are highlighting an inline {@}source} tag's
 -     *                output
 -     * @param false|string name of class we are going to start from
 -     * @uses $_wp sets to a new {@link phpDocumentor_HighlightWordParser}
 -     */
 -    function setupStates($parsedata)
 -    {
 -        $this->_output = '';
 -        $this->_line = '';
 -        unset($this->_wp);
 -        $this->_wp = new WordParser;
 -        $this->_wp->setup($parsedata);
 -        $this->_event_stack = new EventStack;
 -        $this->_event_stack->popEvent();
 -        $this->_event_stack->pushEvent(TUTORIAL_EVENT_NOEVENTS);
 -        $this->_pv_linenum = null;
 -        $this->_pv_next_word = false;
 -    }
 -
 -    /**
 -     * Initialize the {@link $tokenpushEvent, $wordpushEvent} arrays
 -     */
 -    function phpDocumentor_TutorialHighlightParser()
 -    {
 -        $this->allowableInlineTags = $GLOBALS['_phpDocumentor_inline_tutorial_tags_allowed'];
 -        $this->inlineTagHandlers = array('*' => 'handleDefaultInlineTag');
 -        $this->tokens[STATE_TUTORIAL_NOEVENTS]        = array("\n",'{@', '<!--', '</', '<', '&');
 -        $this->tokens[STATE_TUTORIAL_ITAG]        = array("\n","}");
 -        $this->tokens[STATE_TUTORIAL_OPENTAG]        = array("\n","\t"," ", '>', '/>');
 -        $this->tokens[STATE_TUTORIAL_CLOSETAG]        = array("\n",'>');
 -        $this->tokens[STATE_TUTORIAL_COMMENT]        = array("\n",'-->');
 -        $this->tokens[STATE_TUTORIAL_ENTITY]        = array("\n",';');
 -        $this->tokens[STATE_TUTORIAL_ATTRIBUTE]        = array("\n",'"',"'",'>','/>');
 -        $this->tokens[STATE_TUTORIAL_DOUBLEQUOTE]        = array("\n",'"','&','{@');
 -        $this->tokens[STATE_TUTORIAL_SINGLEQUOTE]        = array("\n","'",'&','{@');
 -/**************************************************************/
 -
 -        $this->pushEvent[TUTORIAL_EVENT_NOEVENTS] = 
 -            array(
 -                "{@" => TUTORIAL_EVENT_ITAG,
 -                '<' => TUTORIAL_EVENT_OPENTAG,
 -                '</' => TUTORIAL_EVENT_CLOSETAG,
 -                '&' => TUTORIAL_EVENT_ENTITY,
 -                '<!--' => TUTORIAL_EVENT_COMMENT,
 -            );
 -/**************************************************************/
 -
 -        $this->pushEvent[TUTORIAL_EVENT_OPENTAG] = 
 -            array(
 -                " " => TUTORIAL_EVENT_ATTRIBUTE,
 -                "\n" => TUTORIAL_EVENT_ATTRIBUTE,
 -            );
 -/**************************************************************/
 -
 -        $this->pushEvent[TUTORIAL_EVENT_ATTRIBUTE] = 
 -            array(
 -                "'" => TUTORIAL_EVENT_SINGLEQUOTE,
 -                '"' => TUTORIAL_EVENT_DOUBLEQUOTE,
 -            );
 -/**************************************************************/
 -
 -        $this->pushEvent[TUTORIAL_EVENT_SINGLEQUOTE] = 
 -            array(
 -                '&' => TUTORIAL_EVENT_ENTITY,
 -                '{@' => TUTORIAL_EVENT_ITAG,
 -            );
 -/**************************************************************/
 -
 -        $this->pushEvent[TUTORIAL_EVENT_DOUBLEQUOTE] = 
 -            array(
 -                '&' => TUTORIAL_EVENT_ENTITY,
 -                '{@' => TUTORIAL_EVENT_ITAG,
 -            );
 -/**************************************************************/
 -
 -        $this->popEvent[TUTORIAL_EVENT_ENTITY] = array(';');
 -/**************************************************************/
 -
 -        $this->popEvent[TUTORIAL_EVENT_SINGLEQUOTE] = array("'");
 -/**************************************************************/
 -
 -        $this->popEvent[TUTORIAL_EVENT_DOUBLEQUOTE] = array('"');
 -/**************************************************************/
 -
 -        $this->popEvent[TUTORIAL_EVENT_OPENTAG] = array('>', '/>');
 -/**************************************************************/
 -
 -        $this->popEvent[TUTORIAL_EVENT_CLOSETAG] = array('>');
 -/**************************************************************/
 -
 -        $this->popEvent[TUTORIAL_EVENT_COMMENT] = array('-->');
 -/**************************************************************/
 -
 -        $this->popEvent[TUTORIAL_EVENT_ATTRIBUTE] = array('>','/>');
 -/**************************************************************/
 -
 -        $this->popEvent[TUTORIAL_EVENT_ITAG] = array('}');
 -/**************************************************************/
 -    }
 -
 -    function getParserEventName ($value)
 -    {    
 -        $lookup = array(
 -            TUTORIAL_EVENT_NOEVENTS         => "TUTORIAL_EVENT_NOEVENTS",
 -            TUTORIAL_EVENT_ITAG         => "TUTORIAL_EVENT_ITAG",
 -            TUTORIAL_EVENT_OPENTAG         => "TUTORIAL_EVENT_OPENTAG",
 -            TUTORIAL_EVENT_ATTRIBUTE         => "TUTORIAL_EVENT_ATTRIBUTE",
 -            TUTORIAL_EVENT_CLOSETAG         => "TUTORIAL_EVENT_CLOSETAG",
 -            TUTORIAL_EVENT_ENTITY         => "TUTORIAL_EVENT_ENTITY",
 -            TUTORIAL_EVENT_COMMENT         => "TUTORIAL_EVENT_COMMENT",
 -            TUTORIAL_EVENT_SINGLEQUOTE         => "TUTORIAL_EVENT_SINGLEQUOTE",
 -            TUTORIAL_EVENT_DOUBLEQUOTE         => "TUTORIAL_EVENT_DOUBLEQUOTE",
 -        );
 -        if (isset($lookup[$value]))
 -        return $lookup[$value];
 -        else return $value;
 -    }
 -}
 -
 -
 -/** starting state */
 -define("TUTORIAL_EVENT_NOEVENTS"    ,    1);
 -/** currently in starting state */
 -define("STATE_TUTORIAL_NOEVENTS"    ,    101);
 -
 -/** used when an {@}inline tag} is found */
 -define("TUTORIAL_EVENT_ITAG"    ,    2);
 -/** currently parsing an {@}inline tag} */
 -define("STATE_TUTORIAL_ITAG"    ,    102);
 -
 -/** used when an open <tag> is found */
 -define("TUTORIAL_EVENT_OPENTAG"    ,    3);
 -/** currently parsing an open <tag> */
 -define("STATE_TUTORIAL_OPENTAG"    ,    103);
 -
 -/** used when a <tag attr="attribute"> is found */
 -define("TUTORIAL_EVENT_ATTRIBUTE"    ,    4);
 -/** currently parsing an open <tag> */
 -define("STATE_TUTORIAL_ATTRIBUTE"    ,    104);
 -
 -/** used when a close </tag> is found */
 -define("TUTORIAL_EVENT_CLOSETAG"    ,    5);
 -/** currently parsing a close </tag> */
 -define("STATE_TUTORIAL_CLOSETAG"    ,    105);
 -
 -/** used when an &entity; is found */
 -define("TUTORIAL_EVENT_ENTITY"    ,    6);
 -/** currently parsing an &entity; */
 -define("STATE_TUTORIAL_ENTITY"    ,    106);
 -
 -/** used when a <!-- comment --> is found */
 -define("TUTORIAL_EVENT_COMMENT"    ,    7);
 -/** currently parsing a <!-- comment --> */
 -define("STATE_TUTORIAL_COMMENT"    ,    107);
 -
 -/** used when a <!-- comment --> is found */
 -define("TUTORIAL_EVENT_SINGLEQUOTE"    ,    8);
 -/** currently parsing a <!-- comment --> */
 -define("STATE_TUTORIAL_SINGLEQUOTE"    ,    108);
 -
 -/** used when a <!-- comment --> is found */
 -define("TUTORIAL_EVENT_DOUBLEQUOTE"    ,    9);
 -/** currently parsing a <!-- comment --> */
 -define("STATE_TUTORIAL_DOUBLEQUOTE"    ,    109);
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/WordParser.inc b/buildscripts/PhpDocumentor/phpDocumentor/WordParser.inc deleted file mode 100644 index e0853370..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/WordParser.inc +++ /dev/null @@ -1,325 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * @author    Joshua Eichorn <jeichorn@phpdoc.org>
 - * @version    $Id: WordParser.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
 - * @package     phpDocumentor
 - * @subpackage WordParsers
 - */
 -/**
 - * Retrieves tokens from source code for use by the Parser
 - * @see Parser
 - * @author    Joshua Eichorn <jeichorn@phpdoc.org>
 - * @version    $Id: WordParser.inc,v 1.1 2005/10/17 18:36:57 jeichorn Exp $
 - * @package     phpDocumentor
 - * @subpackage WordParsers
 - */
 -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 source code
 -     */
 -    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
 -     * @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
 -     */
 -    function getPos()
 -    {
 -        return $this->pos;
 -    }
 -
 -    /**
 -     * Unused
 -     *
 -     * {@source}
 -     * @param integer starting position
 -     * @param integer length of block to retrieve
 -     */
 -    function getBlock($start,$len)
 -    {
 -        return substr($this->data,$start,$len);
 -    }
 -
 -    /**
 -     * @uses $wordseperators
 -     * @param array array of strings that separate tokens
 -     */
 -    function setSeperator(&$seps)
 -    {
 -        $this->wordseperators = &$seps;
 -    }
 -
 -    /**
 -     * Set the internal cursor within the source code
 -     * @param integer
 -     */
 -    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 token to back up to
 -     */
 -    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
 -     */
 -    function setWhitespace($val = false)
 -    {
 -        $this->returnWhiteSpace = $val;
 -    }
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/XMLpackagePageParser.inc b/buildscripts/PhpDocumentor/phpDocumentor/XMLpackagePageParser.inc deleted file mode 100644 index 59a3f557..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/XMLpackagePageParser.inc +++ /dev/null @@ -1,554 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * @package phpDocumentor
 - * @subpackage Parsers
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.2
 - */
 -/** when <programlisting> is found */
 -define('PHPDOCUMENTOR_PDP_EVENT_PROGRAMLISTING', 600);
 -/** when <programlisting> is found */
 -define('PHPDOCUMENTOR_PDP_STATE_PROGRAMLISTING', 700);
 -/** when a DocBook <tag> is found */
 -define('PHPDOCUMENTOR_PDP_EVENT_TAG', 601);
 -/** when a DocBook <tag> is found */
 -define('PHPDOCUMENTOR_PDP_STATE_TAG', 701);
 -/** when <![CDATA[ ]]> is found */
 -define('PHPDOCUMENTOR_PDP_EVENT_CDATA', 602);
 -/** when <![CDATA[ ]]> is found */
 -define('PHPDOCUMENTOR_PDP_STATE_CDATA', 702);
 -/** when tag attributes name="value" are found */
 -define('PHPDOCUMENTOR_PDP_EVENT_ATTRIBUTES', 603);
 -/** when tag attributes name="value" are found */
 -define('PHPDOCUMENTOR_PDP_STATE_ATTRIBUTES', 703);
 -/** when tag attributes name="value" are found */
 -define('PHPDOCUMENTOR_PDP_EVENT_ENTITY', 604);
 -/** when tag attributes name="value" are found */
 -define('PHPDOCUMENTOR_PDP_STATE_ENTITY', 704);
 -
 -/**
 - * Used to parse XML DocBook-based tutorials
 - * @package phpDocumentor
 - * @subpackage Parsers
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @since 1.2
 - */
 -class XMLPackagePageParser extends Parser
 -{
 -    /** @var array */
 -    var $eventHandlers = array(
 -                               PHPDOCUMENTOR_PDP_EVENT_TAG => 'handleTag',
 -                               PHPDOCUMENTOR_PDP_EVENT_ATTRIBUTES => 'handleAttributes',
 -                               PHPDOCUMENTOR_PDP_EVENT_CDATA => 'handleCData',
 -                               PARSER_EVENT_NOEVENTS => 'defaultHandler',
 -                               PARSER_EVENT_COMMENTBLOCK => 'ignoreHandler',
 -                               PARSER_EVENT_OUTPHP => 'ignoreHandler',
 -                               PARSER_EVENT_QUOTE => 'handleQuote',
 -                               PHPDOCUMENTOR_PDP_EVENT_ENTITY => 'handleEntity',
 -                               );
 -    
 -    /**
 -     * @var array
 -     */
 -    var $pars = array();
 -    
 -    var $refsect1id = false;
 -    var $refsect2id = false;
 -    var $refsect3id = false;
 -    /**
 -     * @var array the tag stack
 -     */
 -    var $context;
 -    /**#@+ @access private */
 -    var $_gettoc = false;
 -    var $_toc = array();
 -    var $_cursection = 0;
 -    /**#@-*/
 -    /**
 -     * Set up the wordparser
 -     *
 -     * {@source}
 -     * @uses ObjectWordParser
 -     */
 -    function XMLPackagePageParser()
 -    {
 -        $this->wp = new ObjectWordParser(true);
 -    }
 -    /**
 -     * Parse a new file
 -     *
 -     * @param    string    $parse_data
 -     * @param    array    $tutorial for format, see {@link Io::getTutorials()}
 -     * @staticvar    integer    used for recursion limiting if a handler for an event is not found
 -     * @return    bool
 -     * @uses parserTutorial using {@link Publisher::PublishEvent()}, a new tutorial
 -     *                      is created from the file parsed, and passed to the
 -     *                      Intermediate Parser
 -     */
 -    function parse ($parse_data, $tutorial)
 -    {
 -        $tempparse = new ppageParser;
 -        $parse_data = $tempparse->parse($parse_data,true,$tutorial['package'],$tutorial['subpackage'],
 -                                        basename($tutorial['path']),$tutorial['category'], $tutorial['path']);
 -        unset($tempparse);
 -        static $endrecur = 0;
 -        if (!is_array($parse_data) || count($parse_data) == 0)
 -        {
 -            return false;
 -        }
 -        $this->setupStates();
 -
 -        // initialize variables so E_ALL error_reporting doesn't complain
 -        $pevent = 0;
 -        $word = 0;
 -        $this->p_vars['start'] = true;
 -        $this->p_vars['event_stack'] = new EventStack;
 -
 -        $this->wp->setup($parse_data,false);
 -        $this->wp->setWhitespace(true);
 -        $this->context = array();
 -        if (isset($this->curtag)) unset($this->curtag);
 -
 -        do
 -        {
 -            $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: |" . $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: |$word|\n\n";
 -//                echo '"'.$this->p_vars['quote_data']."\"\n";
 -            }
 -            if (isset($this->eventHandlers[$pevent]))
 -            {
 -                $handle = $this->eventHandlers[$pevent];
 -                if ($word !== false) $this->$handle($word, $pevent);
 -            } else
 -            {
 -                debug('WARNING: possible error, no XMLPackagePageParser handler for event number '.$pevent);
 -                if ($endrecur++ == 25)
 -                {
 -                    die("FATAL ERROR, recursion limit reached");
 -                }
 -            }
 -            $this->p_vars['start'] = false;
 -        } while (!($word === false));
 -        if (count($this->_toc) && isset($this->p_vars['toc']))
 -        {
 -            $a = $this->curtag->getTOC($this->p_vars['toc']);
 -            $a->setTOC($this->_toc);
 -            $a->setPath($tutorial['path']);
 -            $this->curtag->setTOC($this->p_vars['toc'],$a);
 -        }
 -        $this->PublishEvent(PHPDOCUMENTOR_EVENT_TUTORIAL,new parserTutorial($this->curtag, $tutorial));
 -        return $this->curtag;
 -    }
 -    
 -    /**#@+
 -     * @access private
 -     * @param string|parserInlineTag token
 -     * @param integer parser event
 -     */
 -    function defaultHandler($word, $pevent)
 -    {
 -        if (is_string($word) && $this->checkEventPush($word, $pevent))
 -        {
 -            return;
 -        }
 -    }
 -    
 -    function ignoreHandler($word, $pevent)
 -    {
 -        $this->checkEventPop($word, $pevent);
 -    }
 -    
 -    /**
 -     * handler for QUOTE.
 -     * this handler recognizes strings defined with double quotation marks (") and handles them correctly
 -     * in any place that they legally appear in php code
 -     */
 -    
 -    function handleQuote($word, $pevent)
 -    {
 -        if ($this->p_flags['reset_quote_data'] === true)
 -        {
 -            $this->p_flags['reset_quote_data'] = false;
 -            $this->p_vars['quote_data'] = "";
 -        }
 -        if (!is_object($word)) $this->checkEventPush( $word, $pevent);
 -        if ($word != "\"")
 -        {
 -            if (is_object($word))
 -            {
 -                $this->p_vars['quote_data'] = $word;
 -            }
 -            else
 -            {
 -                if (!is_object($this->p_vars['quote_data']))
 -                $this->p_vars['quote_data'] .= $word;
 -            }
 -        }
 -        if (!is_object($word))
 -        {
 -            if ($word == '>')
 -            {
 -                if (is_object($this->p_vars['quote_data'])) $this->p_vars['quote_data'] = '{@id '.$this->p_vars['quote_data']->id.'}';
 -                addErrorDie(PDERROR_UNTERMINATED_ATTRIB,$this->curtag->name,$this->p_vars['attrname'],$this->p_vars['quote_data']);
 -            }
 -            if ($this->checkEventPop($word,$pevent))
 -            {
 -                $this->p_flags['reset_quote_data'] = true;
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * Handles all XML DocBook tags
 -     */
 -    function handleTag($word, $pevent)
 -    {
 -        if (isset($this->curtag) && $this->curtag->hasTitle() && $this->_gettoc && $this->_gettoc->name == $this->curtag->name)
 -        {
 -            if (isset($this->_toc[$this->_cursection]))
 -            {
 -                $this->_toc[$this->_cursection]['title'] = $this->curtag->_title;
 -                $this->_cursection++;
 -            }
 -            $this->_gettoc = false;
 -        }
 -        if ($this->p_vars['last_word'] == '<')
 -        { // get tag name
 -            $this->p_flags['begin_tag'] = true;
 -            array_push($this->context,$word);
 -//            if (isset($this->curtag)) debug("pushed ".$this->curtag->name);
 -            if (isset($this->curtag))
 -            {
 -                array_push($this->pars,$this->curtag);
 -            }
 -            $this->curtag = new parserXMLDocBookTag($word);
 -        } elseif ($this->p_vars['last_word'] == '</' || $word == '/>')
 -        {
 -            $tag = array_pop($this->context);
 -            if ($word == '/>') {
 -                // all is OK
 -                $this->checkEventPop($word, $pevent);
 -                $word = $tag;
 -            }
 -            if ($tag != $word)
 -            {
 -                addErrorDie(PDERROR_UNMATCHED_TUTORIAL_TAG,$tag,$word,$this->curtag->getString());
 -            }
 -            if (in_array($this->curtag->name, array('refentry', 'refsect1', 'refsect2', 'refsect3')))
 -            {
 -                if (!isset($this->curtag->_id))
 -                {
 -                    $title = '';
 -                    if (isset($this->curtag->_title))
 -                    {
 -                        $title = $this->curtag->_title->getString();
 -                    }
 -                    addWarning(PDERROR_NO_DOCBOOK_ID, $this->curtag->name, $title);
 -                }
 -            }
 -            $this->p_flags['begin_tag'] = false;
 -            $curtag = @array_pop($this->pars);
 -//            debug("popped $tag ".$curtag->name.' I am '.$this->curtag->name);
 -            if ($curtag)
 -            {
 -                if ($this->curtag->name == 'refsect1') $this->refsect1id = false;
 -                if ($this->curtag->name == 'refsect2') $this->refsect2id = false;
 -                if ($this->curtag->name == 'refsect3') $this->refsect3id = false;
 -                $curtag->add($this->curtag);
 -//                debug("added ".$this->curtag->name." to ".$curtag->name.' '.$curtag->id);
 -                $this->curtag = $curtag;
 -            } else
 -            {
 -//                debug("here");
 -            }
 -        } elseif (is_string($word))
 -        {
 -            if (!($e = $this->checkEventPush($word, $pevent)))
 -            {
 -                if ($this->checkEventPop($word, $pevent))
 -                {
 -                    if ($this->p_flags['begin_tag'])
 -                    {
 -                        $this->p_vars['event_stack']->pushEvent(PHPDOCUMENTOR_PDP_EVENT_TAG);
 -                        $this->p_vars['event_stack']->pushEvent(PHPDOCUMENTOR_PDP_EVENT_CDATA);
 -                        $this->p_vars['last_tag'] = array_pop($this->context);
 -                        array_push($this->context,$this->p_vars['last_tag']);
 -                        $this->p_flags['in_cdata'] = false;
 -                    }
 -                    return;
 -                }
 -            } else
 -            {
 -                $this->p_flags['start_attr'] = true;
 -                $this->p_flags['end_attr'] = false;
 -            }
 -        } else addErrorDie(PDERROR_CANT_HAVE_INLINE_IN_TAGNAME);
 -    }
 -    
 -    /**
 -     * Handle CData sections
 -     */
 -    function handleCData($word, $pevent)
 -    {
 -        if ($this->curtag->name == 'refentry' && phpDocumentor_get_class($word) == 'parsertocinlinetag')
 -        {
 -            $this->p_vars['toc'] = $this->curtag->getTOC();
 -        }
 -        if (is_string($word) && !$this->p_flags['in_cdata'])
 -        {
 -            if ($this->checkEventPop($word, $pevent))
 -            {
 -                return;
 -            }
 -            if ($this->checkEventPush($word, $pevent))
 -            {
 -                return;
 -            }
 -        }
 -        if ($word == '<![CDATA[')
 -        {
 -            $this->curtag->startCData();
 -            $this->p_flags['in_cdata'] = true;
 -        } elseif ($this->p_flags['in_cdata'] && $word == ']]>')
 -        {
 -            $this->curtag->endCData();
 -            $this->p_flags['in_cdata'] = false;
 -        } else
 -        {
 -            if ($this->p_flags['in_cdata'])
 -            $this->curtag->addCData($word);
 -            else
 -            $this->curtag->add($word);
 -        }
 -    }
 -    
 -    /**
 -     * Handle Entities like ”
 -     */
 -    function handleEntity($word, $pevent)
 -    {
 -        if (!$word)
 -        {
 -            if (!isset($this->p_vars['entity_name']))
 -                $this->p_vars['entity_name'] = '';
 -            addErrorDie(PDERROR_UNTERMINATED_ENTITY,$this->p_vars['entity_name']);
 -        }
 -        $e = $this->checkEventPop($word, $pevent);
 -        if ($word && !$e) $this->p_vars['entity_name'] = $word;
 -        if ($e)
 -        {
 -            $entity = new parserEntity($this->p_vars['entity_name']);
 -            unset($this->p_vars['entity_name']);
 -            $this->curtag->add($entity);
 -        }
 -    }
 -    
 -    /**
 -     * Handle Tag attributes name="value"
 -     */
 -    function handleAttributes($word, $pevent)
 -    {
 -        if ($this->checkEventPush($word, $pevent)) return;
 -        if ($word == '=')
 -        {
 -            $this->p_flags['start_attr'] = false;
 -            $this->p_vars['end_attr'] = true;
 -        } else
 -        {
 -            if ($this->p_flags['start_attr'])
 -            {
 -                $this->p_vars['attrname'] = $word;
 -            } else
 -            {
 -                if (isset($this->p_vars['attrname']))
 -                {
 -                    $value = $this->p_vars['quote_data'];
 -                    if (phpDocumentor_get_class($value) == 'parseridinlinetag')
 -                    { // "inherit" the parent section's id, so
 -                      // <refsect1 id="{@id test"}> <!-- id is 'test' -->
 -                      // ...
 -                      //  <refsect2 id="{@id me}"> <!-- id is 'test.me' -->
 -                      //  ...
 -                      //   <refsect3 id="{@id out}"> <!-- id is 'test.me.out' -->
 -                      //    <example id="{@id withexample}"> <!-- id is 'test.me.out.withexample' -->
 -                        $a = ($this->refsect1id ? $this->refsect1id . '.' : '');
 -                        $a .= ($this->refsect2id ? $this->refsect2id . '.' : '');
 -                        $a .= ($this->refsect3id ? $this->refsect3id . '.' : '');
 -                        if ($this->curtag->name == 'refsect1')
 -                        {
 -                            $this->refsect1id = $value->id;
 -                        }
 -                        if ($this->curtag->name == 'refsect2')
 -                        {
 -                            $this->refsect2id = $value->id;
 -                        }
 -                        if ($this->curtag->name == 'refsect3')
 -                        {
 -                            $this->refsect3id = $value->id;
 -                        }
 -//                            debug($value->id.' is now '.$a.$value->id);
 -                        $value->id = $a . $value->id;
 -                        if ($value->id != '')
 -                        {
 -                            if (isset($this->_toc[$this->_cursection]))
 -                            {
 -                                $this->_cursection++;
 -                            }
 -                            $this->_toc[$this->_cursection]['id'] = $value;
 -                            $this->_toc[$this->_cursection]['tag'] = new parserXMLDocBookTag($this->curtag->name);
 -//                            debug("set gettoc to ".$this->curtag->name .' '. $value->id);
 -                            $this->_gettoc = $this->curtag;
 -                        }
 -                    }
 -                    $this->curtag->addAttribute($this->p_vars['attrname'],$value);
 -                    unset($this->p_vars['attrname']);
 -                    $this->p_flags['end_attr'] = false;
 -                }
 -            }
 -        }
 -        if (is_string($word) && $this->checkEventPop($word, $pevent))
 -        {
 -            $this->p_flags['start_attr'] = true;
 -            $this->p_flags['end_attr'] = false;
 -            $this->wp->setPos($this->wp->getPos() - strlen($word));
 -        }
 -    }
 -    /**#@-*/
 -    
 -    /**
 -     * setup the parser tokens, and the pushEvent/popEvent arrays
 -     * @see $tokens, $pushEvent, $popEvent
 -     */
 -    
 -    function setupStates()
 -    {
 -        $this->_gettoc = false;
 -        $this->_toc = array();
 -        $this->_cursection = 0;
 -        if (isset($this->p_vars['toc'])) unset($this->p_vars['toc']);
 -        
 -        $this->tokens[STATE_NOEVENTS]                     = array('</','<','<!--','<?');
 -        $this->tokens[STATE_COMMENTBLOCK]                 = array('-->');
 -        $this->tokens[STATE_OUTPHP]                       = array('?>');
 -        $this->tokens[STATE_QUOTE]                        = array("\\\"","\\\\","\"",'>');
 -        $this->tokens[STATE_ESCAPE]                       = false;// this tells the word parser to just cycle
 -        $this->tokens[PHPDOCUMENTOR_PDP_STATE_TAG]        = array('>',' ','/>');
 -        $this->tokens[PHPDOCUMENTOR_PDP_STATE_CDATA]      = array('&','<!--','</','<![CDATA[','<',']]>');
 -        $this->tokens[PHPDOCUMENTOR_PDP_STATE_ATTRIBUTES] = array('=','>','/>','"');
 -        $this->tokens[PHPDOCUMENTOR_PDP_STATE_ENTITY]     = array(';');
 -
 -        // For each event word to event mapings
 -        $this->pushEvent[PARSER_EVENT_NOEVENTS] = 
 -            array(
 -                "<" => PHPDOCUMENTOR_PDP_EVENT_TAG,
 -                "</" => PHPDOCUMENTOR_PDP_EVENT_TAG,
 -                '<!--' => PARSER_EVENT_COMMENTBLOCK,
 -                '<?' => PARSER_EVENT_OUTPHP,
 -                '&' => PHPDOCUMENTOR_PDP_EVENT_ENTITY,
 -            );
 -##########################
 -
 -        $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_TAG] =
 -            array(
 -                ' ' => PHPDOCUMENTOR_PDP_EVENT_ATTRIBUTES,
 -            );
 -         
 -        $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_TAG] = array(">","/>");
 -##########################
 -        $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_ATTRIBUTES] =
 -            array(
 -                '"' => PARSER_EVENT_QUOTE,
 -            );
 -
 -        $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_ATTRIBUTES] = array(">","/>");
 -##########################
 -
 -        $this->popEvent[PARSER_EVENT_COMMENTBLOCK] = array("-->");
 -##########################
 -        $this->pushEvent[PARSER_EVENT_QUOTE] = 
 -            array(
 -                "\\"    => PARSER_EVENT_ESCAPE
 -            );
 -        $this->popEvent[PARSER_EVENT_QUOTE] = array("\"");
 -##########################
 -
 -        $this->popEvent[PARSER_EVENT_OUTPHP] = array("?>");
 -##########################
 -
 -        $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_ENTITY] = array(";");
 -##########################
 -
 -        $this->pushEvent[PHPDOCUMENTOR_PDP_EVENT_CDATA] =
 -            array(
 -                "<" => PHPDOCUMENTOR_PDP_EVENT_TAG,
 -                '<!--' => PARSER_EVENT_COMMENTBLOCK,
 -                '<?' => PARSER_EVENT_OUTPHP,
 -                '&' => PHPDOCUMENTOR_PDP_EVENT_ENTITY,
 -            );
 -        $this->popEvent[PHPDOCUMENTOR_PDP_EVENT_CDATA] = array("</");
 -    }
 -    
 -    /**
 -     * debugging function
 -     *
 -     * {@source}
 -     * @static
 -     */
 -    function getParserEventName ($value)
 -    {    
 -        $lookup = array(
 -            PARSER_EVENT_NOEVENTS         => "PARSER_EVENT_NOEVENTS",
 -            PHPDOCUMENTOR_PDP_EVENT_TAG        => "PHPDOCUMENTOR_PDP_EVENT_TAG",
 -            PHPDOCUMENTOR_PDP_EVENT_ATTRIBUTES        => "PHPDOCUMENTOR_PDP_EVENT_ATTRIBUTES",
 -            PHPDOCUMENTOR_PDP_EVENT_CDATA        => "PHPDOCUMENTOR_PDP_EVENT_CDATA",
 -            PHPDOCUMENTOR_PDP_EVENT_LIST    => "PHPDOCUMENTOR_PDP_EVENT_LIST",
 -            PARSER_EVENT_QUOTE  => "PARSER_EVENT_QUOTE",
 -            PHPDOCUMENTOR_PDP_EVENT_ENTITY => "PHPDOCUMENTOR_PDP_EVENT_ENTITY",
 -        );
 -        if (isset($lookup[$value]))
 -        return $lookup[$value];
 -        else return $value;
 -    }
 -}
 -?>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/clone.inc.php b/buildscripts/PhpDocumentor/phpDocumentor/clone.inc.php deleted file mode 100644 index fbc308ef..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/clone.inc.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php
 -
 -/**
 - * Clone an object in PHP 4
 - * @param object
 - * @return object
 - */
 -function phpDocumentor_clone($obj)
 -{
 -    return $obj;
 -}
 -
 -?>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/clone5.inc.php b/buildscripts/PhpDocumentor/phpDocumentor/clone5.inc.php deleted file mode 100644 index 20919a99..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/clone5.inc.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php
 -
 -/**
 - * Clone an object in PHP 5
 - * @param object
 - * @return object
 - * @ignore
 - */
 -function phpDocumentor_clone($obj)
 -{
 -    return clone $obj;
 -}
 -
 -?>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/common.inc.php b/buildscripts/PhpDocumentor/phpDocumentor/common.inc.php deleted file mode 100644 index f86ed5da..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/common.inc.php +++ /dev/null @@ -1,246 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * Common variables/functions used by other files in phpDocumentor
 - * @package phpDocumentor
 - * @filesource
 - */
 -/** phpDocumentor version */
 -if ('@VER@' != '@'.'VER@')
 -{
 -    define("PHPDOCUMENTOR_VER","@VER@");
 -} else {
 -    define("PHPDOCUMENTOR_VER","1.3.0RC4");
 -}
 -/** phpDocumentor version */
 -define("PHPDOCUMENTOR_WEBSITE","http://www.phpdoc.org");
 -define('SMART_PATH_DELIMITER', DIRECTORY_SEPARATOR ); // set the correct path delimiter
 -define('tokenizer_ext', extension_loaded('tokenizer') && version_compare(phpversion(),"4.3.0",">="));
 -// we just replace all the \ with / so that we can just operate on /
 -define('PATH_DELIMITER', '/' ); // set the correct path delimiter
 -define('PHPDOCUMENTOR_WINDOWS',substr(PHP_OS, 0, 3) == 'WIN');
 -define('_IN_PHP5', phpversion() == '5.0.0RC1-dev' || phpversion() == '5.0.0RC2-dev' ||
 -    version_compare(phpversion(), '5.0.0', 'ge'));
 -if (/*@donotremove@*/0)
 -{
 -    if (_IN_PHP5) {
 -        require_once 'PhpDocumentor/phpDocumentor/clone5.inc.php';
 -    } else {
 -        require_once 'PhpDocumentor/phpDocumentor/clone.inc.php';
 -    }
 -} else {
 -    if (_IN_PHP5) {
 -        require_once dirname(__FILE__) . '/clone5.inc.php';
 -    } else {
 -        require_once dirname(__FILE__) . '/clone.inc.php';
 -    }
 -}
 -if (isset($_SERVER['argv'])) {
 -    $argv = $_SERVER['argv'];
 -    $argc = $_SERVER['argc'];
 -}
 -
 -/** used in phpdoc.php and new_phpdoc.php */
 -function phpDocumentor_ConfigFileList($directory)
 -{
 -    $ret = array();
 -    if (@is_dir($directory))
 -    {
 -        $ret = array();
 -        $d = @dir($directory); // thanks to Jason E Sweat (jsweat@users.sourceforge.net) for fix
 -        while($d && $entry=$d->read())
 -        {
 -            $getentry = false;
 -            if (strcmp($entry,".") != 0 && strcmp($entry,"..") != 0)
 -            {
 -                if (substr($entry,0,1) != ".") $getentry = true;
 -            }
 -            if ($getentry == true)
 -            {
 -                if (strpos($entry,'.ini'))
 -                if (is_file($directory . PATH_DELIMITER . $entry))
 -                {
 -                    $ret[] = str_replace('.ini','',$entry);
 -                }
 -            }
 -        }
 -        if ($d) $d->close();
 -    } else
 -    {
 -    }
 -    return $ret;
 -}
 -
 -
 -/**
 - * Parse an .ini file
 - * 
 - * Works like {@link parse_ini_file}, except it will take a section like:
 - *
 - * <pre>
 - * [MYVAR]
 - * value1
 - * value2
 - * value3
 - * </pre>
 - *
 - * and return an associative array(MYVAR => array(value1, value2, value3))
 - * @return array
 - * @param string full path to the ini file
 - * @param boolean add an associative index for each section [in brackets]
 - */
 -function phpDocumentor_parse_ini_file($filename, $process_sections = false)
 -{
 -    $ini_array = array();
 -    $sec_name = "";
 -    $lines = @file($filename);
 -    if( !$lines) return $lines;
 -    foreach($lines as $line)
 -    {
 -        // code by Greg Beaver, ignore comments
 -        if ($line[0] == ';') continue;
 -        $line = trim($line);
 -        
 -        if($line == "")
 -        {
 -            continue;
 -        }
 -        if($line[0] == "[" && $line[strlen($line) - 1] == "]")
 -        {
 -            $sec_name = substr($line, 1, strlen($line) - 2);
 -        } else
 -        {
 -            if (strpos($line,"="))
 -            {
 -                $pos = strpos($line, "=");
 -                $property = trim(substr($line, 0, $pos));
 -                // code by Greg Beaver
 -                if (substr($property, 0, 1) == '"' && substr($property, -1) == '"') {
 -                    $property = stripcslashes(substr($property,1,count($property) - 2));
 -                }
 -                $value = trim(substr($line, $pos + 1));
 -                if ($value == 'false') $value = false;
 -                if ($value == 'true') $value = true;
 -                if (substr($value, 0, 1) == '"' && substr($value,-1) == '"')
 -                {
 -                    $value = stripcslashes(substr($value,1,count($value) - 2));
 -                }
 -                // done additions
 -                
 -                if($process_sections)
 -                {
 -                    if ($sec_name != '')
 -                    $ini_array[$sec_name][$property] = $value;
 -                    else
 -                    $ini_array[$property] = $value;
 -                } else
 -                {
 -                    $ini_array[$property] = $value;
 -                }
 -            } else
 -            {
 -                // code by Greg Beaver
 -                if (trim($line[0]) == ';') continue;
 -                if($process_sections)
 -                {
 -                    $ini_array[$sec_name][] = trim($line);
 -                }
 -                // done additions
 -            }
 -        }
 -    }
 -    return $ini_array;
 -}
 -
 -
 -if (!function_exists('array_key_exists'))
 -{
 -/** @ignore */
 -function array_key_exists($key, $search)
 -{
 -    foreach($search as $keys => $nul)
 -    {
 -        if ($key == $keys) return true;
 -    }
 -    return false;
 -}
 -}
 -if (!function_exists('is_a'))
 -{
 -/** @ignore */
 -function is_a($classname, $classquery)
 -{
 -    $father = get_parent_class($classname);
 -    if (strtolower($father) == strtolower($classquery))
 -    {
 -        return true;
 -    } elseif (!empty($father))
 -    {
 -        return is_a($father, $classquery);
 -    } else
 -    {
 -        return false;
 -    }
 -}
 -}
 -
 -
 -/** Debugging output */
 -function debug($s)
 -{
 -    echo "$s\n";
 -}
 -
 -/**
 - * Returns a formatted var_dump for debugging purposes.
 - * @param string $s string to display
 - * @param mixed $v variable to display with var_dump()
 - * @param mixed $v... unlimited number of additional variables to display with var_dump()
 - */
 -function fancy_debug($s,$v)
 -{
 -    if (isset($GLOBALS['dont_debug']) && $GLOBALS['dont_debug']) return;
 -    debug($s."\n\n</pre><blockquote><pre>");
 -    var_dump($v);
 -    if (func_num_args()>2)
 -    {
 -        for($i=2;$i<func_num_args();$i++)
 -        {
 -            $a = func_get_arg($i);
 -//            debug(" ");
 -            var_dump($a);
 -        }
 -    }
 -    debug("</pre></blockquote><pre>\n\n");
 -}
 -
 -/**
 - * Returns a lower-cased version of get_class for PHP 5
 - *
 - * get_class() returns case as declared in the file in PHP 5
 - */
 -function phpDocumentor_get_class($object)
 -{
 -	if(is_object($object))
 -	    return strtolower(get_class($object));
 -	return false;
 -}
 -
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/find_phpdoc.php b/buildscripts/PhpDocumentor/phpDocumentor/find_phpdoc.php deleted file mode 100644 index 031a4796..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/find_phpdoc.php +++ /dev/null @@ -1,32 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * Utility file: used to find location of phpDocumentor
 - * @filesource
 - * @package phpDocumentor
 - * @subpackage setup
 - */
 -/**
 - * Dummy value
 - */
 -//@include('');
 -// value used to test whether include worked
 -return 6;
 -?>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/phpDocumentorTParser.inc b/buildscripts/PhpDocumentor/phpDocumentor/phpDocumentorTParser.inc deleted file mode 100644 index 24a816e9..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/phpDocumentorTParser.inc +++ /dev/null @@ -1,2615 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * @package phpDocumentor
 - * @subpackage Parsers
 - * @author Gregory Beaver <cellog@users.sourceforge.net>
 - * @version $Revision: 1.2 $
 - */
 -/**
 - * Tokenizer-based parser for PHP source code
 - * @package phpDocumentor
 - * @subpackage Parsers
 - * @author Gregory Beaver <cellog@users.sourceforge.net>
 - * @version $Revision: 1.2 $
 - */
 -class phpDocumentorTParser extends Parser
 -{
 -    /**#@+
 -     * @access private
 -     */
 -    /**
 -     * @var EventStack
 -     */
 -    var $_event_stack;
 -    /**
 -     * last event triggered before the current event
 -     * @var integer
 -     */
 -    var $_last_pevent;
 -    /**
 -     * last word parsed
 -     * @var integer
 -     */
 -    var $_last_word;
 -    /**
 -     * full path of the currently parsed file
 -     * @var string
 -     */
 -    var $_path;
 -    /**#@-*/
 -    /**#@+
 -     * Parser Variables
 -     * @access private
 -     */
 -    var $_pv_class;
 -    var $_pv_cur_class;
 -    var $_pv_define;
 -    var $_pv_define_name;
 -    var $_pv_define_value;
 -    var $_pv_define_params_data;
 -    var $_pv_dtype;
 -    var $_pv_docblock;
 -    var $_pv_dtemplate;
 -    var $_pv_func;
 -    var $_pv_findglobal;
 -    var $_pv_global_name;
 -    var $_pv_global_val;
 -    var $_pv_globals;
 -    var $_pv_global_count;
 -    var $_pv_include_params_data;
 -    var $_pv_include_name;
 -    var $_pv_include_value;
 -    var $_pv_linenum;
 -    var $_pv_periodline;
 -    var $_pv_paren_count = 0;
 -    var $_pv_statics;
 -    var $_pv_static_count;
 -    var $_pv_static_val;
 -    var $_pv_quote_data;
 -    var $_pv_function_data;
 -    var $_pv_var;
 -    var $_pv_varname;
 -    var $_pv_var_value;
 -    /**#@-*/
 -    /**#@+
 -     * Parser Flags
 -     * @access private
 -     */
 -    var $_pf_definename_isset = false;
 -    var $_pf_includename_isset = false;
 -    var $_pf_get_source = false;
 -    var $_pf_getting_source = false;
 -    var $_pf_internal = false;
 -    var $_pf_in_class = false;
 -    var $_pf_in_define = false;
 -    var $_pf_in_global = false;
 -    var $_pf_in_include = false;
 -    var $_pf_in_var = false;
 -    var $_pf_funcparam_val = false;
 -    var $_pf_quote_active = false;
 -    var $_pf_reset_quote_data = true;
 -    var $_pf_useperiod = false;
 -    var $_pf_set_var_value = false;
 -    var $_pf_var_equals = false;
 -    /**#@-*/
 -    /**
 -     * relative path of the parsed file from the base parse directory
 -     * @var string
 -     */
 -    var $source_location;
 -    var $eventHandlers = array(
 -                                PARSER_EVENT_ARRAY => 'handleArray',
 -                                PARSER_EVENT_VAR_ARRAY => 'handleArray',
 -                                PARSER_EVENT_VAR_ARRAY_COMMENT => 'handleVarArrayComment',
 -                                PARSER_EVENT_CLASS => 'handleClass',
 -                                PARSER_EVENT_COMMENT => 'handleComment',
 -                                PARSER_EVENT_DOCBLOCK_TEMPLATE => 'handleDocBlockTemplate',
 -                                PARSER_EVENT_END_DOCBLOCK_TEMPLATE => 'handleEndDocBlockTemplate',
 -                                PARSER_EVENT_LOGICBLOCK => 'handleLogicBlock',
 -                                PARSER_EVENT_NOEVENTS => 'defaultHandler',
 -                                PARSER_EVENT_OUTPHP => 'defaultHandler',
 -                                PARSER_EVENT_DEFINE => 'handleDefine',
 -                                PARSER_EVENT_DEFINE_PARAMS => 'handleDefineParams',
 -                                PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS => 'handleDefineParamsParenthesis',
 -                                PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS => 'handleIncludeParamsParenthesis',
 -                                PARSER_EVENT_DOCBLOCK => 'handleDocBlock',
 -                                PARSER_EVENT_TAGS => 'handleTags',
 -                                PARSER_EVENT_DESC => 'handleDesc',
 -                                PARSER_EVENT_DOCKEYWORD => 'handleTag',
 -                                PARSER_EVENT_DOCKEYWORD_EMAIL => 'handleDockeywordEmail',
 -                                PARSER_EVENT_EOFQUOTE => 'handleHereDoc',
 -                                PARSER_EVENT_FUNCTION => 'handleFunction',
 -                                PARSER_EVENT_FUNCTION_PARAMS => 'handleFunctionParams',
 -                                PARSER_EVENT_FUNC_GLOBAL => 'handleFuncGlobal',
 -                                PARSER_EVENT_DEFINE_GLOBAL => 'handleGlobal',
 -                                PARSER_EVENT_GLOBAL_VALUE => 'handleGlobalValue',
 -                                PARSER_EVENT_INLINE_DOCKEYWORD => 'handleInlineDockeyword',
 -                                PARSER_EVENT_INCLUDE => 'handleInclude',
 -                                PARSER_EVENT_INCLUDE_PARAMS => 'handleIncludeParams',
 -                                PARSER_EVENT_QUOTE => 'handleQuote',
 -                                PARSER_EVENT_PHPCODE => 'handlePhpCode',
 -                                PARSER_EVENT_SINGLEQUOTE => 'handleSingleQuote',
 -                                PARSER_EVENT_STATIC_VAR => 'handleStaticVar',
 -                                PARSER_EVENT_STATIC_VAR_VALUE => 'handleStaticValue',
 -                                PARSER_EVENT_VAR => 'handleVar',
 -                                PARSER_EVENT_ACCESS_MODIFIER => 'handleAccessModifier',
 -                                PARSER_EVENT_IMPLEMENTS => 'handleImplements',
 -                                PARSER_EVENT_CLASS_CONSTANT => 'handleClassConstant',
 -    );
 -    
 -    var $inlineTagHandlers = array(
 -                                '*' => 'handleDefaultInlineTag',
 -                                'link' => 'handleLinkInlineTag',
 -                                );
 -    
 -    function phpDocumentorTParser()
 -    {
 -        $this->allowableTags = $GLOBALS['_phpDocumentor_tags_allowed'];
 -        $this->allowableInlineTags = $GLOBALS['_phpDocumentor_inline_doc_tags_allowed'];
 -        $this->subscribe(PHPDOCUMENTOR_EVENT_NEWLINENUM,$GLOBALS['phpDocumentor_errors']);
 -        $this->subscribe(PHPDOCUMENTOR_EVENT_NEWFILE,$GLOBALS['phpDocumentor_errors']);
 -        $this->tagHandlers['author'] = 'authorTagHandler';
 -        $this->tagHandlers['filesource'] = 'filesourceTagHandler';
 -        $this->setupEventStates();
 -    }
 -    
 -    /**
 -     * Parse a new file
 -     *
 -     * @param    string    $parse_data
 -     * @param    string    $path
 -     * @param    int    $base    number of directories to drop off the bottom when creating names using path
 -     * @staticvar    integer    used for recursion limiting if a handler for an event is not found
 -     * @return    bool
 -     */
 -    function parse (&$parse_data, $path, $base = 0, $packages = false)
 -    {
 -        global $_phpDocumentor_options;
 -        static $endrecur = 0;
 -        $this->setupStates();
 -        if (strlen($parse_data) == 0)
 -        {
 -            return false;
 -        }
 -
 -        $this->configWordParser($parse_data);
 -        // initialize variables so E_ALL error_reporting doesn't complain
 -        $pevent = 0;
 -        $word = 0;
 -
 -        $page = new ParserPage;
 -        $page->setSource($this->_wp->getFileSource());
 -        $page->setPath($path);
 -        $this->_path = $path;
 -        $page->setPackageOutput($packages);
 -        $page->setFile(basename($path));
 -        $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWFILE,basename($path));
 -        //$name = str_replace("/","_",dirname($path)) . "_" . array_shift(explode(".",$page->getFile()));
 -        // fc@fc.clever-soft.com 11/29/2001
 -        $name = str_replace(PATH_DELIMITER,"_",dirname($path)) . "_" .  str_replace(".","_",$page->getFile());
 -        $tmp = explode("_",$name);
 -        $name = str_replace(':','_',implode("_",array_slice($tmp,$base)));
 -        // if base is '', drive letter is present in windows
 -
 -        $page->setName($name);
 -        $temploc = $_phpDocumentor_options['Program_Root'] . PATH_DELIMITER. implode(PATH_DELIMITER,
 -            array_slice(explode(PATH_DELIMITER,$path),$base));
 -        
 -        if ($temploc == $_phpDocumentor_options['Program_Root'] . PATH_DELIMITER) $temploc .= $path;
 -        
 -        $this->source_location = $source_location = $temploc;
 -        $page->setSourceLocation($source_location);
 -
 -        $this->publishEvent(PHPDOCUMENTOR_EVENT_PAGE,$page);
 -        unset($page);
 -        do
 -        {
 -            $lpevent = $pevent;
 -            $pevent = $this->_event_stack->getEvent();
 -            if ($lpevent != $pevent)
 -            {
 -                $this->_last_pevent = $lpevent;
 -            }
 -
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWSTATE,($pevent + 100));
 -
 -            $this->_pv_last_word = $word;
 -            $word = $this->_wp->getWord();
 -            if (isset($this->_pv_findglobal) && $word == $this->_pv_findglobal)
 -            {
 -                $this->_last_pevent = $pevent;
 -                $this->_event_stack->pushEvent($pevent = PARSER_EVENT_DEFINE_GLOBAL);
 -            }
 -            // in wordparser, have to keep track of lines
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWLINENUM, $this->_wp->linenum);
 -            if ($this->_pf_get_source)
 -            {
 -                if ($word[0] == T_FUNCTION)
 -                {
 -                    $this->_wp->retrievesource($word);
 -                    $this->_pf_get_source = false;
 -                    $this->_pf_getting_source = true;
 -                }
 -            }
 -
 -            if (0)//PHPDOCUMENTOR_DEBUG == true)
 -            {
 -                echo "LAST: ";
 -                if (is_array($this->_pv_last_word))
 -                {
 -                    echo token_name($this->_pv_last_word[0]). ' => |'.htmlspecialchars($this->_pv_last_word[1]);
 -                } else echo "|" . $this->_pv_last_word;
 -                echo "|\n";
 -                echo "PEVENT: " . $this->getParserEventName($pevent) . "\n";
 -                echo "LASTPEVENT: " . $this->getParserEventName($this->_last_pevent) . "\n";
 -                echo $this->_wp->getPos() . ": ";
 -                if (is_array($word))
 -                {
 -                    echo token_name($word[0]).' => |'.htmlspecialchars($word[1]);
 -                } else echo '|'.htmlspecialchars($word);
 -                echo "|\n-------------------\n\n\n";
 -            }
 -            if (0)//$this->_pf_getting_source && ($pevent == PARSER_EVENT_DOCBLOCK) || ($pevent == PARSER_EVENT_NOEVENTS))
 -            {
 -                addError(PDERROR_SOURCE_TAG_FUNCTION_NOT_FOUND);
 -                // throw away source
 -                $this->_wp->getSource();
 -            }
 -            if (isset($this->eventHandlers[$pevent]))
 -            {
 -                $handle = $this->eventHandlers[$pevent];
 -                $this->$handle($word, $pevent);
 -            } else
 -            {
 -                debug('WARNING: possible error, no handler for event number '.$pevent);
 -                if ($endrecur++ == 25)
 -                {
 -                    die("FATAL ERROR, recursion limit reached");
 -                }
 -            }
 -        } while (!($word === false));
 -        $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWSTATE,PHPDOCUMENTOR_EVENT_END_PAGE);
 -    }
 -
 -    /**#@+
 -     * @access private
 -     */
 -    /**
 -     * handler for COMMENT
 -     */
 -    function handleComment($word, $pevent)
 -    {
 -        $this->_wp->backupPos();
 -        $this->_event_stack->popEvent();
 -    }
 -    /**
 -     * handler for PHPCODE.
 -     * this handler recognizes the <code><?</code> php processor directive, and begins parsing php code
 -     */
 -    
 -    function handlePhpCode($word, $pevent)
 -    {
 -        $e = $this->checkEventPush( $word, $pevent);
 -        if (isset($this->_pv_findglobal) && $e)
 -        {
 -            if ($e != PARSER_EVENT_DEFINE_GLOBAL && $e != PARSER_EVENT_ARRAY && $e != PARSER_EVENT_QUOTE && $e != PARSER_EVENT_SINGLEQUOTE && $e != PARSER_EVENT_COMMENT && $e != PARSER_EVENT_COMMENTBLOCK)
 -            {
 -                addError(PDERROR_GLOBAL_NOT_FOUND,$this->_pv_findglobal);
 -                $this->_wp->findGlobal(false);
 -                unset($this->_pv_findglobal);
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * handler for FUNC_GLOBAL.
 -     * this handler recognizes "global $var1, $var2" declarations in a function, and parses them
 -     */
 -    
 -    function handleFuncGlobal($word, $pevent)
 -    {
 -        if ($this->checkEventPop($word, $pevent))
 -        {
 -            return;
 -        }
 -        if (!$this->checkEventPush($word, $pevent))
 -        {
 -            if ($word == ',')
 -            { // another variable
 -                $this->_pv_global_count++;
 -            } else
 -            {
 -                if (!isset($this->_pv_globals[$this->_pv_global_count]))
 -                $this->_pv_globals[$this->_pv_global_count] = '';
 -//                if (!empty($this->_pv_globals[$this->_pv_global_count])) $this->_pv_global_count++;
 -                if (is_array($word)) $word = $word[1];
 -                $this->_pv_globals[$this->_pv_global_count] .= $word;
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * handler for STATIC_VAR.
 -     * this handler recognizes "static $var1, $var2 = 6" declarations in a function, and parses them
 -     */
 -    
 -    function handleStaticVar($word, $pevent)
 -    {
 -        if ($this->checkEventPop($word, $pevent))
 -        {
 -            $this->_pv_static_count++;
 -            return;
 -        }
 -        if (!$this->checkEventPush($word, $pevent))
 -        {
 -            if ($word == ',')
 -            {
 -                $this->_pv_static_count++;
 -                return;
 -            }
 -            if (!isset($this->_pv_statics[$this->_pv_static_count]))
 -            $this->_pv_statics[$this->_pv_static_count] = '';
 -            if (!empty($this->_pv_statics[$this->_pv_static_count])) $this->_pv_static_count++;
 -            if (is_array($word)) $word = $word[1];
 -            $this->_pv_statics[$this->_pv_static_count] = $word;
 -        }
 -    }
 -    
 -    /**
 -     * handler for STATIC_VAR_VALUE.
 -     * this handler parses the 6 in "static $var1, $var2 = 6"
 -     */
 -    
 -    function handleStaticValue($word, $pevent)
 -    {
 -        if ($this->checkEventPush($word, $pevent))
 -        {
 -            return;
 -        }
 -        if (!isset($this->_pv_static_val[$this->_pv_static_count])) $this->_pv_static_val[$this->_pv_static_count] = '';
 -        if ($this->_last_pevent == PARSER_EVENT_QUOTE)
 -        {
 -            $this->_pv_static_val[$this->_pv_static_count] .= $this->_pv_quote_data;
 -            unset($this->_pv_quote_data);
 -        }
 -        if ($this->_last_pevent == PARSER_EVENT_ARRAY)
 -        {
 -            $this->_pv_static_val[$this->_pv_static_count] .= $this->_pv_function_data;
 -            $this->_pv_function_data = '';
 -        }
 -        if ($this->checkEventPop($word, $pevent))
 -        {
 -            $this->_pv_static_val[$this->_pv_static_count] = trim($this->_pv_static_val[$this->_pv_static_count]);
 -            $this->_wp->backupPos($word);
 -            return;
 -        } else
 -        {
 -            if (is_array($word)) $word = $word[1];
 -            $this->_pv_static_val[$this->_pv_static_count] .= $word;
 -        }
 -    }
 -    
 -    /**
 -     * handler for LOGICBLOCK
 -     *
 -     * Logic Blocks are the stuff between { and } in a function/method.  A
 -     * logic block can clearly contain other logic blocks, as in:
 -     *
 -     * <code>
 -     * function test($a)
 -     * {
 -     *    if (testcondition)
 -     *    { // nested logic block
 -     *    }
 -     * }
 -     * </code>
 -     *
 -     * So, the exit portion of the logic block handler must check to see if the
 -     * logic block being exited is the top-level, and it does this by retrieving
 -     * the last event from the stack.  If it is a function (and not a logic block)
 -     * then it backs up the word parser so that the function will exit properly.
 -     *
 -     * {@source 11}
 -     */
 -    
 -    function handleLogicBlock($word, $pevent)
 -    {
 -        $a = $this->checkEventPush( $word, $pevent);
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $e = $this->_event_stack->popEvent();
 -            $this->_event_stack->pushEvent($e);
 -            if ($e == PARSER_EVENT_FUNCTION)
 -            {
 -                $this->_wp->backupPos(); 
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * handler for FUNCTION.
 -     * this handler recognizes function declarations, and parses them.  The body
 -     * of the function is parsed by handleLogicBlock()
 -     * @see handleLogicBlock()
 -     */
 -    
 -    function handleFunction($word, $pevent)
 -    {
 -        if ($e = $this->checkEventPush( $word, $pevent))
 -        {
 -            $this->_pv_function_data = '';
 -            if ($e == PARSER_EVENT_FUNCTION_PARAMS && !is_object($this->_pv_func))
 -            {
 -                addErrorDie(PDERROR_FUNCTION_HAS_NONAME);
 -            }
 -            if ($e == PARSER_EVENT_COMMENT || $e == PARSER_EVENT_COMMENTBLOCK || $e == PARSER_EVENT_FUNCTION_PARAMS) return;
 -        }
 -    
 -        if (!isset($this->_pv_func)) $this->_pv_func = false;
 -        if (! is_object($this->_pv_func)) 
 -        {
 -            $this->_pv_globals = array();
 -            $this->_pv_global_count = $this->_pv_static_count = 0;
 -            if ($this->_pf_in_class)
 -            {
 -                $this->_pv_func = new parserMethod($this->_pv_cur_class); 
 -            } else
 -            {
 -                $this->_pv_func = new parserFunction;
 -            }
 -            if (isset($this->_accessModifiers))
 -            {
 -                $this->_pv_func->setModifiers($this->_accessModifiers);
 -                unset($this->_accessModifiers);
 -            }
 -            $this->_pv_func->setLineNumber($this->_wp->linenum + 1);
 -            if (is_string($word) && $word == '&')
 -            $this->_pv_func->setReturnsReference();
 -            if (is_array($word) && $word[0] == T_STRING)
 -            $this->_pv_func->setName($word[1]);
 -        } else
 -        {
 -            if ($this->_pv_func->getReturnsReference())
 -            {
 -                if (is_array($word) && $word[0] == T_STRING)
 -                {
 -                    $this->_pv_func->setName($word[1]);
 -                }
 -            }
 -        }
 -        if ($this->checkEventPop($word,$pevent)) 
 -        {
 -            $this->_pv_func->setEndLineNumber($this->_wp->linenum + 1);
 -            $this->_pv_func->addGlobals($this->_pv_globals);
 -            $this->_pv_func->addStatics($this->_pv_statics,$this->_pv_static_val);
 -            $this->_pv_globals = array();
 -            $this->_pv_global_count = 0;
 -            if ($this->_pf_getting_source)
 -            {
 -                $x = $this->_wp->getSource();
 -                $this->_pv_func->addSource($x);
 -                $this->_pf_get_source = false;
 -                $this->_pf_getting_source = false;
 -            }
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_FUNCTION,$this->_pv_func); 
 -            $this->_pv_func = false; 
 -            unset($this->_pv_quote_data); // subtle bug fixed by this, sometimes string
 -                                          // from function body was picked up
 -                                          // by the next function as a default value
 -                                          // for a parameter!
 -        } 
 -    }
 -
 -    /**
 -     * Helper function for {@link handleFunctionParams()}
 -     *
 -     * This function adds a new parameter to the parameter list
 -     */
 -    function endFunctionParam($word)
 -    {
 -        if (isset($this->_pv_quote_data))
 -        {
 -            $this->_pv_function_data .= $this->_pv_quote_data;
 -            unset($this->_pv_quote_data);
 -        }
 -        if (isset($this->_pv_function_param))
 -        {
 -            $this->_pv_func->addParam($this->_pv_function_param,$this->_pv_function_data,
 -                $this->_pf_funcparam_val, $this->_pv_function_param_type);
 -            unset($this->_pv_function_param);
 -            $this->_pv_function_data = '';
 -            $this->_pf_funcparam_val = false;
 -            $this->_pv_function_param_type = null;
 -        }
 -    }
 -    /**
 -     * handler for FUNCTION_PARAMS.
 -     * this handler recognizes the parameters of a function within parentheses like function(param, param = default_value)
 -     * and parses them
 -     * @see endFunctionParam()
 -     */
 -    
 -    function handleFunctionParams($word, $pevent)
 -    {
 -        //echo $this->wp->getPos() . ": word=|$word|\t\t\tlastword=|".$this->_pv_last_word."|\n";
 -        //echo "function_param = '".$this->_pv_function_param."'\n";
 -        //echo "function_data = '".$this->_pv_function_data."'\n";
 -        $e1 = $this->checkEventPush( $word, $pevent); 
 -
 -        if (!$e1)
 -        {
 -            if ($word == ',' || $this->checkEventPop($word,$pevent))
 -            {
 -                $this->endFunctionParam($word);
 -            } elseif ($word == '=')
 -            {
 -                $this->_pf_funcparam_val = true;
 -            } else
 -            {
 -                if ($this->_pf_funcparam_val)
 -                {
 -                    if (isset($this->_pv_quote_data))
 -                    {
 -                        $this->_pv_function_data .= $this->_pv_quote_data;
 -                        unset($this->_pv_quote_data);
 -                    }
 -                    if (is_array($word)) $word = $word[1];
 -                    $this->_pv_function_data .= $word;
 -                } else
 -                {
 -                    if (!isset($this->_pv_function_param)) $this->_pv_function_param = '';
 -                    if (is_array($word))
 -                    {
 -                        if ($word[0] == T_STRING)
 -                        {
 -                            $this->_pv_function_param_type = $word[1];
 -                            return;
 -                        }
 -                        $word = $word[1];
 -                    }
 -                    $this->_pv_function_param .= $word;
 -                }
 -            }
 -        } elseif ($e1 == PARSER_EVENT_ARRAY)
 -        {
 -            $this->_wp->setWhiteSpace(true);
 -        }
 -    }
 -
 -    /**
 -     * handler for ARRAY.
 -     * this event handler parses arrays in default values of function and var definitions
 -     */
 -    
 -    function handleArray($word, $pevent)
 -    {
 -        $e = $this->checkEventPush( $word, $pevent);
 -        if ($e) return;
 -
 -        if (!isset($this->_pv_function_data) || (isset($this->_pv_function_data) && empty($this->_pv_function_data)))
 -        {
 -            $this->_pv_function_data = "array";
 -        }
 -
 -        if ($word == '(' && $this->_pv_paren_count++)
 -        { // need extra parentheses help
 -            $this->_event_stack->pushEvent($pevent);
 -        }
 -        if (is_array($word))
 -        {
 -            $this->_pv_function_data .= $word[1];
 -        } else
 -        $this->_pv_function_data .= $word;
 -        //echo "function_data = |$this->_pv_function_data|\n";
 -
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $this->_pv_paren_count--;
 -            $this->_wp->setWhiteSpace(false);
 -        }
 -    }
 -    
 -    /**
 -     * handler for HEREDOC in a function logic block.
 -     * this handler recognizes function declarations, and parses them.  The body
 -     * of the function is parsed by handleLogicBlock()
 -     * @see handleLogicBlock()
 -     */
 -    
 -    function handleHereDoc($word, $pevent)
 -    {
 -        if (is_array($this->_pv_last_word) && $this->_pv_last_word[0] == T_START_HEREDOC)
 -        {
 -            $save = $word;
 -            if (is_array($word)) $word = $word[1];
 -            $this->_pv_quote_data = $this->_pv_last_word[1] . $word;
 -            $this->_pf_quote_active = true;
 -        } elseif (!$this->_pf_quote_active)
 -        {
 -            $this->_pv_quote_data = $this->_pv_last_word[1];
 -            $this->_event_stack->popEvent();
 -            $this->_wp->backupPos();
 -            return;
 -        }
 -        $save = $word;
 -        if (is_array($word)) $word = $word[1];
 -        $this->_pv_quote_data .= $word;
 -        if ($this->checkEventPop($save, $pevent))
 -        {
 -            $this->_pf_quote_active = false;
 -        }
 -    }
 -
 -    /**
 -     * handler for QUOTE.
 -     * this handler recognizes strings defined with double quotation marks (")
 -     * and single quotation marks and handles them correctly
 -     * in any place that they legally appear in php code
 -     */
 -    
 -    function handleQuote($word, $pevent)
 -    {
 -        if ($this->_pv_last_word == '"' || $this->_pv_last_word == "'" && $this->_last_pevent != PARSER_EVENT_QUOTE)
 -        {
 -            $save = $word;
 -            if (is_array($word)) $word = $word[1];
 -            $this->_pv_quote_data = $this->_pv_last_word . $word;
 -            $this->_pf_quote_active = true;
 -            $this->checkEventPop($save, $pevent);
 -        } elseif (!$this->_pf_quote_active)
 -        {
 -            $this->_pv_quote_data = $this->_pv_last_word[1];
 -            $this->_event_stack->popEvent();
 -            $this->_wp->backupPos();
 -            return;
 -        }
 -        $save = $word;
 -        if (is_array($word)) $word = $word[1];
 -        $this->_pv_quote_data .= $word;
 -        if ($this->checkEventPop($save, $pevent))
 -        {
 -            $this->_pf_quote_active = false;
 -        }
 -    }
 -
 -    /**
 -     * handler for INCLUDE.
 -     * this handler recognizes include/require/include_once/include_once statements, and publishes the
 -     * data to Render
 -     */
 -    
 -    function handleInclude($word, $pevent)
 -    {
 -        if (!$this->_pf_in_include)
 -        {
 -            $this->_pv_linenum = $this->_wp->linenum;
 -        }
 -        $this->_pf_in_include = true;
 -        $a = $this->checkEventPush( $word, $pevent);
 -        if (!$this->_pf_includename_isset)
 -        {
 -            $this->_pf_includename_isset = true;
 -            $w = $this->_pv_last_word;
 -            if (is_array($w)) $w = $w[1];
 -            $this->_pv_include_name = $w;
 -            if ($a)
 -            $this->_pv_include_value = '';
 -            else
 -            {
 -                if (is_array($word)) $word = $word[1];
 -                $this->_pv_include_value = $word;
 -            }
 -            unset($this->_pv_quote_data);
 -        } else
 -        {
 -            if (!$a)
 -            {
 -                if (empty($this->_pv_include_params_data))
 -                {
 -                    if ($word != ';')
 -                    {
 -                        if (is_array($word)) $word = $word[1];
 -                        $this->_pv_include_value .= $word;
 -                    }
 -                }
 -            } else
 -            {
 -                $this->_pv_include_params_data = '';
 -            }
 -        }
 -
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $this->_pv_include = new parserInclude;
 -            $this->_pv_include->setLineNumber($this->_pv_linenum + 1);
 -            $this->_pf_in_include = false;
 -            $this->_pv_include->setName($this->_pv_include_name);
 -            $this->_pv_include->setValue($this->_pv_include_value);
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_INCLUDE,$this->_pv_include);
 -            $this->_pf_includename_isset = false;
 -            unset($this->_pv_include);
 -            unset($this->_pv_include_name);
 -            unset($this->_pv_include_value);
 -            unset($this->_pv_include_params_data);
 -        }
 -    }
 -    
 -    /**
 -     * handler for INCLUDE_PARAMS.
 -     * this handler parses the contents of ( ) in include/require/include_once/include_once statements
 -     */
 -    
 -    function handleIncludeParams($word, $pevent)
 -    {
 -        $e = $this->checkEventPush( $word, $pevent);
 -        if ($e == PARSER_EVENT_COMMENT) return;
 -        
 -        if(!isset($this->_pv_include_params_data)) $this->_pv_include_params_data = '';
 -        
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            if (!empty($this->_pv_include_params_data))
 -            $this->_pv_include_value = $this->_pv_include_params_data;
 -            else
 -            {
 -                $w = $this->_pv_last_word;
 -                if (is_array($w)) $w = $w[1];
 -                $this->_pv_include_value = $w;
 -            }
 -        }
 -        if (is_array($word)) $word = $word[1];
 -        $this->_pv_include_params_data .= $word;
 -    }
 -    
 -    /**
 -     * handler for INCLUDE_PARAMS_PARENTHESIS.
 -     * this handler takes all parenthetical statements within file in:
 -     * include statement include(file), and handles them properly
 -     */
 -    
 -    function handleIncludeParamsParenthesis($word, $pevent)
 -    {
 -        $this->checkEventPush( $word, $pevent);
 -        $this->checkEventPop( $word, $pevent);
 -        if (is_array($word)) $word = $word[1];
 -        $this->_pv_include_params_data .= $word;
 -    }
 -
 -    /**
 -     * handler for DEFINE.
 -     * handles define(constant, value); statements
 -     */
 -    
 -    function handleDefine($word, $pevent)
 -    {
 -        if (!$this->_pf_in_define)
 -        {
 -            $this->_pv_linenum = $this->_wp->linenum + 1;
 -        }
 -        $this->_pf_in_define = true;
 -        $this->checkEventPush( $word, $pevent);
 -
 -        $this->_pf_definename_isset = false;
 -        $this->_pv_define_params_data = '';
 -        unset($this->_pv_quote_data);
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $this->_pf_in_define = false;
 -            $this->_pv_define = new parserDefine;
 -            $this->_pv_define->setLineNumber($this->_pv_linenum);
 -            $this->_pv_define->setName($this->_pv_define_name);
 -            $this->_pv_define->setValue($this->_pv_define_value);
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_DEFINE,$this->_pv_define);
 -            $this->_pf_definename_isset = false;
 -            unset($this->_pv_define);
 -            unset($this->_pv_define_name);
 -            unset($this->_pv_define_value);
 -            $this->_pf_in_define = false;
 -            $this->_pv_define_params_data = '';
 -        }
 -    }
 -    
 -    /**
 -     * handler for DEFINE_PARAMS.
 -     * handles the parsing of constant and value in define(constant, value);
 -     */
 -    
 -    function handleDefineParams($word, $pevent)
 -    {
 -        $e = $this->checkEventPush( $word, $pevent);
 -        if ($e && $e != PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS) return;
 -        
 -        if(!isset($this->_pv_define_params_data)) $this->_pv_define_params_data = '';
 -        
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            if ($this->_last_pevent == PARSER_EVENT_QUOTE ||
 -                $this->_last_pevent == PARSER_EVENT_EOFQUOTE)
 -            {
 -                $this->_pv_define_params_data .= $this->_pv_quote_data;
 -                unset($this->_pv_quote_data);
 -            }
 -            if (is_array($word)) $word = $word[1];
 -            if (!empty($this->_pv_define_params_data))
 -            {
 -                //echo $this->_pv_define_params_data."\n";
 -                $this->_pv_define_value = $this->_pv_define_params_data;
 -            }
 -            else
 -            {
 -                $w = $this->_pv_last_word;
 -                if (is_array($this->_pv_last_word)) $w = $this->_pv_last_word[1];
 -                if (!empty($w))
 -                {
 -                    $this->_pv_define_value = $w;
 -                }
 -                else
 -                {
 -                    $this->_pv_define_value = "";
 -                    switch ($w) {
 -                        case 0:
 -                        $this->_pv_define_value = "0";
 -                        break;
 -                        case null:
 -                        $this->_pv_define_value = "null";
 -                        break;
 -                        case "":
 -                        $this->_pv_define_value = "";
 -                        break;
 -                    }
 -                }
 -            }
 -        }
 -        if ($this->_pf_definename_isset)
 -        {
 -            if (is_array($word)) $word = $word[1];
 -            $this->_pv_define_params_data .= $word;
 -        } else
 -        {
 -            if ($word != ",")
 -            {
 -                if (is_array($word)) $word = $word[1];
 -                $this->_pv_define_params_data .= $word;
 -            } else
 -            {
 -                if (substr($this->_pv_define_params_data,0,1) ==
 -                    substr($this->_pv_define_params_data,strlen($this->_pv_define_params_data) - 1) &&
 -                    in_array(substr($this->_pv_define_params_data,0,1),array('"',"'")))
 -                { // remove leading and ending quotation marks if there are only two
 -                    $a = substr($this->_pv_define_params_data,0,1);
 -                    $b = substr($this->_pv_define_params_data,1,strlen($this->_pv_define_params_data) - 2);
 -                    if (strpos($b,$a) === false)
 -                    {
 -                        $this->_pv_define_params_data = $b;
 -                    }
 -                }
 -                $this->_pf_definename_isset = true;
 -                $this->_pv_define_name = $this->_pv_define_params_data;
 -                $this->_pv_define_params_data = '';
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * handler for DEFINE_PARAMS_PARENTHESIS.
 -     * this handler takes all parenthetical statements within constant or value in:
 -     * define(constant, value) of a define statement, and handles them properly
 -     */
 -    
 -    function handleDefineParamsParenthesis($word, $pevent)
 -    {
 -        $e = $this->checkEventPush( $word, $pevent);
 -        $this->checkEventPop( $word, $pevent);
 -        if ($this->_last_pevent == PARSER_EVENT_QUOTE)
 -        {
 -            $this->_pv_define_params_data .= $this->_pv_quote_data;
 -            unset($this->_pv_quote_data);
 -        }
 -        if (is_array($word)) $word = $word[1];
 -        $this->_pv_define_params_data .= $word;
 -    }
 -
 -    /**
 -     * handler for IMPLEMENTS.
 -     * this handler parses a class statement's implements clause (PHP 5)
 -     */
 -    
 -    function handleImplements($word, $pevent)
 -    {
 -        if ($this->checkEventPop($word, $pevent))
 -        {
 -            $this->_wp->backupPos();
 -            return;
 -        }
 -        if (is_array($word) && $word[0] == T_STRING)
 -        {
 -            $this->_pv_class->addImplements($word[1]);
 -        }
 -    }
 -
 -    /**
 -     * handler for ACCESS_MODIFIER.
 -     * this handler parses public/private/protected/static/abstract PHP 5 modifiers
 -     */
 -    
 -    function handleAccessModifier($word, $pevent)
 -    {
 -        if (!isset($this->_accessModifiers))
 -        {
 -            $this->_accessModifiers = array();
 -        }
 -        $this->_wp->backupPos();
 -        $this->_event_stack->popEvent();
 -        if ($word[0] == T_VARIABLE) {
 -            // this is a PHP5-style variable with no "var"
 -            $this->_event_stack->pushEvent(PARSER_EVENT_VAR);
 -        }
 -        $this->_accessModifiers[] = strtolower($this->_pv_last_word[1]);
 -    }
 -
 -    /**
 -     * handler for CLASS.
 -     * this handler parses a class/interface statement
 -     */
 -    
 -    function handleClass($word, $pevent)
 -    {
 -        if (!$this->_pf_in_class)
 -        {
 -            $this->_pf_in_class = true;
 -            if ($this->_pv_last_word[0] == T_INTERFACE)
 -            {
 -                $this->_pf_interface = true;
 -            } else
 -            {
 -                $this->_pf_interface = false;
 -            }
 -        }
 -        $a = $this->checkEventPush( $word, $pevent);
 -
 -        if (!isset($this->_pv_class)) $this->_pv_class = false;
 -        if (!is_subclass_of($this->_pv_class,"parserBase"))
 -        {
 -            $this->_pv_class = new parserClass;
 -            if (isset($this->_accessModifiers))
 -            {
 -                $this->_pv_class->setModifiers($this->_accessModifiers);
 -                unset($this->_accessModifiers);
 -            }
 -            if ($this->_pf_interface)
 -            {
 -                $this->_pv_class->setInterface();
 -            }
 -            $this->_pv_class->setLineNumber($this->_wp->linenum + 1);
 -            $this->_pv_class->setname($word[1]);
 -            $this->_pv_cur_class = $word[1];
 -            $this->_pv_class->setSourceLocation($this->source_location);
 -        }
 -
 -        if (is_array($this->_pv_last_word) && $this->_pv_last_word[0] == T_EXTENDS)
 -        {
 -            // I don't know why I am so nice, this fixes 1150809
 -            if ($word[1] == $this->_pv_class->getName()) {
 -                addErrorDie(PDERROR_CANNOT_EXTEND_SELF, $word[1]);
 -            }
 -            $this->_pv_class->setExtends($word[1]);
 -        }
 -
 -        if ($word == "{")
 -        {
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_CLASS,$this->_pv_class);
 -        }
 -        //echo $this->wp->getPos() . ": |$word|\n";
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $this->_pv_class->setEndLineNumber($this->_wp->linenum + 1);
 -            $this->_pf_in_class = $this->_pf_interface = false;
 -            // throw an event when class is done
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWSTATE,STATE_END_CLASS);
 -            $this->_pv_class = false;
 -        }
 -    }
 -    
 -    /**
 -     * handler for VAR_ARRAY_COMMENT
 -     * if parsing a default value, add the comment to the text
 -     */
 -    function handleVarArrayComment($word, $pevent)
 -    {
 -        $this->_pv_function_data .= $this->_pv_last_word[1];
 -        return $this->handleComment($word, $pevent);
 -    }
 -
 -    /**
 -     * handler for VAR.
 -     * handle a var $varname = default_value; or var $varname; statement in a class definition
 -     */
 -    
 -    function handleVar($word, $pevent)
 -    {
 -        if (!$this->_pf_in_var)
 -        {
 -            $this->_pf_set_var_value = false;
 -            $this->_pv_var_value = '';
 -            $this->_pv_linenum = $this->_wp->linenum + 1;
 -        }
 -        $this->_pf_in_var = true;
 -        //echo $word."\n";
 -        $e = $this->checkEventPush( $word, $pevent);
 -        
 -        if (!isset($this->_pv_var)) $this->_pv_var = false;
 -        if ($word == '=' || $word == ';' || $word == ',')
 -        {
 -            $this->_wp->setWhitespace(true);
 -            $this->_pf_var_equals = true;
 -            $this->_pv_var = new parserVar($this->_pv_cur_class);
 -            $this->_pv_var->setName($this->_pv_varname);
 -        }
 -        if ($this->_last_pevent == PARSER_EVENT_VAR_ARRAY)
 -        {
 -            if (isset($this->_pv_function_data))
 -            $this->_pv_var->setValue($this->_pv_function_data);
 -            $this->_pf_set_var_value = true;
 -            unset($this->_pv_function_data);
 -        } elseif ($this->_pf_var_equals && $word != ';' && $word != '=' && $word != ',' && !$e)
 -        {
 -            if (is_array($word)) $word = $word[1];
 -            $this->_pv_var_value .= $word;
 -        }
 -        if ($word == ',')
 -        {
 -            if (!$this->_pf_set_var_value)
 -            $this->_pv_var->setValue($this->_pv_var_value);
 -            $this->_pf_set_var_value = false;
 -            unset($this->_pv_var_value);
 -            $this->_pv_var->setEndLineNumber($this->_wp->linenum + 1);
 -            $this->_pv_var->setLineNumber($this->_pv_linenum);
 -            if (isset($this->_accessModifiers))
 -            {
 -                $this->_pv_var->setModifiers($this->_accessModifiers);
 -                unset($this->_accessModifiers);
 -            }
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_VAR,$this->_pv_var);
 -            unset($this->_pv_var);
 -            $this->_pf_in_var = false;
 -            $this->_pf_var_equals = false;
 -            $this->_pv_varname = '';
 -            return;
 -        }
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $this->_wp->setWhitespace(false);
 -            if (!$this->_pf_set_var_value)
 -            $this->_pv_var->setValue($this->_pv_var_value);
 -            $this->_pf_set_var_value = false;
 -            unset($this->_pv_var_value);
 -            $this->_pv_var->setEndLineNumber($this->_wp->linenum + 1);
 -            $this->_pv_var->setLineNumber($this->_pv_linenum);
 -            if (isset($this->_accessModifiers))
 -            {
 -                $this->_pv_var->setModifiers($this->_accessModifiers);
 -                unset($this->_accessModifiers);
 -            }
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_VAR,$this->_pv_var);
 -            unset($this->_pv_var);
 -            $this->_pf_in_var = false;
 -            $this->_pf_var_equals = false;
 -            $this->_pv_varname = '';
 -            return;
 -        }
 -        if ($word[0] == T_VARIABLE)
 -        {
 -            $this->_pv_varname = $word[1];
 -        }
 -
 -    }
 -
 -    /**
 -     * handler for CLASS_CONSTANT.
 -     * handle a const constname = default_value; statement in a class definition
 -     */
 -    
 -    function handleClassConstant($word, $pevent)
 -    {
 -        if (!$this->_pf_in_const)
 -        {
 -            $this->_pf_set_const_value = false;
 -            $this->_pv_const_value = '';
 -            $this->_pv_linenum = $this->_wp->linenum + 1;
 -        }
 -        $this->_pf_in_const = true;
 -        //echo $word."\n";
 -        $e = $this->checkEventPush( $word, $pevent);
 -        
 -        if (!isset($this->_pv_const)) $this->_pv_const = false;
 -        if ($word == '=' || $word == ';' || $word == ',')
 -        {
 -            $this->_wp->setWhitespace(true);
 -            $this->_pf_const_equals = true;
 -            $this->_pv_const = new parserConst($this->_pv_cur_class);
 -            $this->_pv_const->setName($this->_pv_constname);
 -        }
 -        if ($this->_last_pevent == PARSER_EVENT_VAR_ARRAY)
 -        {
 -            if (isset($this->_pv_function_data))
 -            $this->_pv_const->setValue($this->_pv_function_data);
 -            $this->_pf_set_const_value = true;
 -            unset($this->_pv_function_data);
 -        } elseif ($this->_pf_const_equals && $word != ';' && $word != '=' && $word != ',' && !$e)
 -        {
 -            if (is_array($word)) $word = $word[1];
 -            $this->_pv_const_value .= $word;
 -        }
 -        if ($word == ',')
 -        {
 -            if (!$this->_pf_set_const_value)
 -            {
 -                $this->_pv_const->setValue($this->_pv_const_value);
 -            }
 -            $this->_pf_set_const_value = false;
 -            unset($this->_pv_const_value);
 -            $this->_pv_const->setEndLineNumber($this->_wp->linenum + 1);
 -            $this->_pv_const->setLineNumber($this->_pv_linenum);
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_CONST,$this->_pv_const);
 -            unset($this->_pv_const);
 -            $this->_pf_in_const = false;
 -            $this->_pf_const_equals = false;
 -            $this->_pv_constname = '';
 -            return;
 -        }
 -        if ($this->checkEventPop($word,$pevent))
 -        {
 -            $this->_wp->setWhitespace(false);
 -            if (!$this->_pf_set_const_value)
 -            $this->_pv_const->setValue($this->_pv_const_value);
 -            $this->_pf_set_const_value = false;
 -            unset($this->_pv_const_value);
 -            $this->_pv_const->setEndLineNumber($this->_wp->linenum + 1);
 -            $this->_pv_const->setLineNumber($this->_pv_linenum);
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_VAR,$this->_pv_const);
 -            unset($this->_pv_const);
 -            $this->_pf_in_const = false;
 -            $this->_pf_const_equals = false;
 -            $this->_pv_constname = '';
 -            return;
 -        }
 -        if ($word[0] == T_STRING && !$this->_pf_const_equals)
 -        {
 -            $this->_pv_constname = $word[1];
 -        }
 -
 -    }
 -    
 -    /**
 -     * Handler for the {@tutorial phpDocumentor.howto.pkg#using.command-line.javadocdesc}
 -     * command-line switch DocBlocks.
 -     */
 -    function JavaDochandleDocblock($word, $pevent)
 -    {
 -        $this->commonDocBlock($word, $pevent, 'handleJavaDocDesc');
 -    }
 -    
 -    /**
 -     * Handler for normal DocBlocks
 -     */
 -    function handleDocBlock($word, $pevent)
 -    {
 -        $this->commonDocBlock($word, $pevent, 'handleDesc');
 -    }
 -    
 -    /**
 -     * Common DocBlock Handler for both JavaDoc-format and normal DocBlocks
 -     */
 -    function commonDocBlock($word, $pevent, $deschandler)
 -    {
 -        $this->_wp->backupPos();
 -        $this->_event_stack->popEvent();
 -        $word = $this->_pv_last_word[1];
 -        $dtype = '_pv_docblock';
 -        if (strpos($word,'/**') !== 0)
 -        { // not a docblock
 -//            $this->_wp->backupPos();
 -            $this->_event_stack->pushEvent(PARSER_EVENT_COMMENT);
 -            return;
 -        }
 -        if ($word == '/**#@-*/')
 -        { // stop using docblock template
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_NEWSTATE,PHPDOCUMENTOR_EVENT_END_DOCBLOCK_TEMPLATE);
 -            unset($this->_pv_dtemplate);
 -            return;
 -        }
 -        if (strpos($word,'/**#@+') === 0)
 -        { // docblock template definition
 -            $dtype = '_pv_dtemplate';
 -            // strip /**#@+ and */
 -            $word = substr($word,6).'*';
 -            $word = trim(substr($word,0,strlen($word) - 3));
 -            if (strlen($word) && $word{0} != '*') {
 -                $word = "* $word";
 -            }
 -        } else
 -        {
 -            // strip /** and */
 -            $word = substr($word,2);
 -            $word = substr($word,0,strlen($word) - 2);
 -        }
 -        $lines = explode("\n",trim($word));
 -        $go = count($lines);
 -        for($i=0;$i<$go;$i++)
 -        {
 -            if (substr(trim($lines[$i]),0,1) != '*') unset($lines[$i]);
 -            else
 -            $lines[$i] = substr(trim($lines[$i]),1); // remove leading "* "
 -        }
 -        // remove empty lines
 -        $lines = explode("\n",trim(join("\n",$lines)));
 -        for($i = 0;$i<count($lines);$i++)
 -        {
 -            if (substr(trim($lines[$i]),0,1) == '@' && substr(trim($lines[$i]),0,2) != '@ ')
 -            {
 -                $tagindex = $i;
 -                $i = count($lines);
 -            }
 -        }
 -        if (isset($tagindex))
 -        {
 -            $tags = array_slice($lines,$tagindex);
 -            $desc = array_slice($lines,0,$tagindex);
 -        } else
 -        {
 -            $tags = array();
 -            $desc = $lines;
 -        }
 -//        var_dump($desc,$tags);
 -        $this->$dtype = new parserDocBlock;
 -        $this->$dtype->setLineNumber($this->_wp->_docblock_linenum + 1);
 -        $this->$dtype->setEndLineNumber($this->_wp->linenum);
 -        $this->_pv_dtype = $dtype;
 -        $this->$deschandler($desc);
 -        $this->handleTags($tags);
 -        if ($dtype == '_pv_docblock')
 -        {
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_DOCBLOCK,$this->$dtype);
 -            $this->$dtype = new parserDocBlock();
 -        } else
 -        {
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_DOCBLOCK_TEMPLATE,$this->$dtype);
 -        }
 -    }
 -    
 -    /**
 -     * Handles JavaDoc descriptions
 -     */
 -    function handleJavaDocDesc($desc)
 -    {
 -        unset($this->_pv_periodline);
 -        $this->_pf_useperiod = false;
 -        foreach($desc as $i => $line)
 -        {
 -            $line = trim($line);
 -            if (!isset($this->_pv_periodline) && substr($line,strlen($line) - 1) == '.')
 -            {
 -                $this->_pv_periodline = $i;
 -                $this->_pf_useperiod = true;
 -            }
 -        }
 -        if (!isset($this->_pv_periodline)) $this->_pv_periodline = 0;
 -
 -        $dtype = $this->_pv_dtype;
 -        if ($dtype == '_pv_docblock')
 -        {
 -            $save = $desc;
 -            // strip leading <p>
 -            if (strpos($desc[0],'<p>') === 0) $desc[0] = substr($desc[0],3);
 -            $sdesc = new parserDesc;
 -            $desci = '';
 -            for($i = 0; ($i <= $this->_pv_periodline) && ($i < count($desc)); $i++)
 -            {
 -                if (strpos($desc[$i],'.') !== false)
 -                {
 -                    $desci .= substr($desc[$i],0,strpos($desc[$i],'.') + 1);
 -                } else
 -                {
 -                    $desci .= $desc[$i];
 -                }
 -                $desci .= "\n";
 -            }
 -            $sdesc->add($this->getInlineTags($desci));
 -            $desc = $save;
 -        
 -            $my_desc = new parserDesc;
 -            if (isset($this->_pv_dtemplate))
 -            {
 -                // copy template values if not overridden
 -                if (!$this->_pv_docblock->getExplicitPackage())
 -                {
 -                    if ($p = $this->_pv_dtemplate->getKeyword('package'))
 -                    {
 -                        $this->_pv_docblock->addKeyword('package',$p);
 -                        $this->_pv_docblock->setExplicitPackage();
 -                    }
 -                    if ($p = $this->_pv_dtemplate->getKeyword('category'))
 -                    {
 -                        $this->_pv_docblock->addKeyword('category',$p);
 -                        $this->_pv_docblock->setExplicitCategory();
 -                    }
 -                    if ($p = $this->_pv_dtemplate->getKeyword('subpackage'))
 -                    {
 -                        $this->_pv_docblock->addKeyword('subpackage',$p);
 -                    }
 -                }
 -                $tags = $this->_pv_dtemplate->listTags();
 -                foreach($tags as $tag)
 -                {
 -                    $this->_pv_docblock->addTag($tag);
 -                }
 -                if (!count($this->_pv_docblock->params)) $this->_pv_docblock->params = $this->_pv_dtemplate->params;
 -                $my_desc->add($this->_pv_dtemplate->desc);
 -            }
 -//            echo "i = ".$this->_pv_periodline."; i < " . count($desc) . "\n";
 -            $desci = '';
 -            for($i = 0; $i < count($desc); $i++)
 -            {
 -                // the line will not be set if it doesn't start with a *
 -                if (isset($desc[$i]))
 -                {
 -                    $desci .= $desc[$i]."\n";
 -                }
 -            }
 -            $my_desc->add($this->getInlineTags($desci));
 -        } else
 -        {
 -            $sdesc = new parserDesc;
 -            $save = $desc;
 -            // strip leading <p>
 -            if (strpos($desc[0],'<p>') === 0) $desc[0] = substr($desc[0],3);
 -            $desci = '';
 -            for($i = 0; ($i <= $this->_pv_periodline) && ($i < count($desc)); $i++)
 -            {
 -                if (strpos($desc[$i],'.') !== false)
 -                {
 -                    $desci .= substr($desc[$i],0,strpos($desc[$i],'.') + 1);
 -                } else
 -                {
 -                    $desci .= $desc[$i];
 -                }
 -                $desci .= "\n";
 -            }
 -            $sdesc->add($this->getInlineTags($desci));
 -            $desc = $save;
 -        
 -            $my_desc = new parserDesc;
 -            $desci = '';
 -            for($i=0; $i < count($desc); $i++)
 -            {
 -                if (isset($desc[$i]))
 -                    $desci .= $desci[$i]."\n";
 -            }
 -            $my_desc->add($this->getInlineTags($desci));
 -        }
 -        
 -        if ($this->_pf_internal)
 -        {
 -            addError(PDERROR_INTERNAL_NOT_CLOSED);
 -            $this->_pf_internal = false;
 -        }
 -        $this->$dtype->setShortDesc($sdesc);
 -        $this->$dtype->setDesc($my_desc);
 -        unset($my_desc);
 -//        var_dump($this->$dtype);
 -//        exit;
 -    }
 -    
 -    /**
 -     * Process the Long Description of a DocBlock
 -     * @param array array of lines containing the description with leading
 -     *              asterisk "*" stripped off.
 -     */
 -    function handleDesc($desc)
 -    {
 -        unset($this->_pv_periodline);
 -        $this->_pf_useperiod = false;
 -        foreach($desc as $i => $line)
 -        {
 -            $line = trim($line);
 -            if (!isset($this->_pv_periodline) && substr($line,strlen($line) - 1) == '.')
 -            {
 -                $this->_pv_periodline = $i;
 -                $this->_pf_useperiod = true;
 -            }
 -        }
 -        if (!isset($this->_pv_periodline)) $this->_pv_periodline = 0;
 -        if ($this->_pv_periodline > 3)
 -        {
 -            $this->_pf_useperiod = false;
 -        } else
 -        {
 -            for($i = 0; $i < $this->_pv_periodline; $i++)
 -            {
 -                if (strlen($desc[$i]) == 0 && isset($desc[$i - 1]) && strlen($desc[$i - 1]))
 -                {
 -                    $this->_pv_periodline = $i;
 -                }
 -            }
 -        }
 -        for($i=0;$i <= $this->_pv_periodline && $i < count($desc);$i++)
 -        {
 -            if (!strlen(trim($desc[$i]))) $this->_pf_useperiod = false;
 -        }
 -        // figure out the shortdesc
 -        if ($this->_pf_useperiod === false)
 -        {
 -            // use the first non blank line for short desc
 -            for($i = 0; $i < count($desc); $i++)
 -            {
 -                if (strlen($desc[$i]) > 0)
 -                {
 -                    $this->_pv_periodline = $i;
 -                    $i = count($desc);
 -                }
 -            }
 -        
 -            // check to see if we are going to use a blank line to end the shortdesc
 -            // this can only be in the first 4 lines
 -            if (count($desc) > 4)
 -            {
 -                $max = 4;
 -            } else {
 -                $max = count($desc);
 -            }
 -        
 -            for($i = $this->_pv_periodline; $i < $max; $i++)
 -            {
 -                if (strlen(trim($desc[$i])) == 0)
 -                {
 -                    $this->_pv_periodline = $i;
 -                    $i = $max;
 -                }
 -            }
 -        }
 -
 -        $dtype = $this->_pv_dtype;
 -        if ($dtype == '_pv_docblock')
 -        {
 -            $sdesc = new parserDesc;
 -            $desci = '';
 -            for($i = 0; ($i <= $this->_pv_periodline) && ($i < count($desc)); $i++)
 -            {
 -                $desci .= $desc[$i]."\n";
 -            }
 -            $sdesc->add($this->getInlineTags($desci));
 -            $this->_pv_periodline++;
 -        
 -            $my_desc = new parserDesc;
 -            if (isset($this->_pv_dtemplate))
 -            {
 -                // copy template values if not overridden
 -                if (!$this->_pv_docblock->getExplicitPackage())
 -                {
 -                    if ($p = $this->_pv_dtemplate->getKeyword('package'))
 -                    {
 -                        $this->_pv_docblock->addKeyword('package',$p);
 -                        $this->_pv_docblock->setExplicitPackage();
 -                    }
 -                    if ($p = $this->_pv_dtemplate->getKeyword('category'))
 -                    {
 -                        $this->_pv_docblock->addKeyword('category',$p);
 -                        $this->_pv_docblock->setExplicitCategory();
 -                    }
 -                    if ($p = $this->_pv_dtemplate->getKeyword('subpackage'))
 -                    {
 -                        $this->_pv_docblock->addKeyword('subpackage',$p);
 -                    }
 -                }
 -                $tags = $this->_pv_dtemplate->listTags();
 -                foreach($tags as $tag)
 -                {
 -                    $this->_pv_docblock->addTag($tag);
 -                }
 -                if (!count($this->_pv_docblock->params)) $this->_pv_docblock->params = $this->_pv_dtemplate->params;
 -                $my_desc->add($this->_pv_dtemplate->sdesc);
 -                $my_desc->add($this->_pv_dtemplate->desc);
 -            }
 -//            echo "i = ".$this->_pv_periodline."; i < " . count($desc) . "\n";
 -            $desci = '';
 -            for($i = $this->_pv_periodline; $i < count($desc); $i++)
 -            {
 -                // the line will not be set if it doesn't start with a *
 -                if (isset($desc[$i]))
 -                $desci .= $desc[$i]."\n";
 -            }
 -            $my_desc->add($this->getInlineTags($desci));
 -        } else
 -        { // this is a docblock template
 -            $sdesc = new parserDesc;
 -            $desci = '';
 -            for($i = 0; ($i <= $this->_pv_periodline) && ($i < count($desc)); $i++)
 -            {
 -                if (isset($desc[$i]))
 -                    $desci .= $desc[$i]."\n";
 -            }
 -            $sdesc->add($this->getInlineTags($desci));
 -            $this->_pv_periodline++;
 -        
 -            $my_desc = new parserDesc;
 -            $desci = '';
 -            for($i=$this->_pv_periodline; $i < count($desc); $i++)
 -            {
 -                if (isset($desc[$i]))
 -                    $desci .= $desc[$i]."\n";
 -            }
 -            $my_desc->add($this->getInlineTags($desci));
 -        }
 -        if ($this->_pf_internal)
 -        {
 -            addError(PDERROR_INTERNAL_NOT_CLOSED);
 -            $this->_pf_internal = false;
 -        }
 -        $this->$dtype->setShortDesc($sdesc);
 -        $this->$dtype->setDesc($my_desc);
 -        unset($my_desc);
 -//            var_dump($this->$dtype);
 -//            exit;
 -    }
 -    
 -    /**
 -     * Process the tags of a DocBlock
 -     * @param array array of lines that contain all @tags
 -     */
 -    function handleTags($tags)
 -    {
 -        $newtags = array();
 -        $curtag = '';
 -        for($i=0;$i < count($tags);$i++)
 -        {
 -            if (strpos(trim($tags[$i]),'@') === 0) $tags[$i] = ltrim($tags[$i]);
 -            if (substr($tags[$i],0,1) == '@' && substr($tags[$i],0,2) != '@ ')
 -            { // start a new tag
 -                if (!empty($curtag))
 -                {
 -                    $newtags[] = $curtag;
 -                }
 -                $curtag = $tags[$i];
 -            } else $curtag .= "\n".$tags[$i];
 -        }
 -        if (!empty($curtag)) $newtags[] = $curtag;
 -        foreach($newtags as $tag)
 -        {
 -            $x = explode(' ',str_replace("\t",'    ',$tag));
 -            $tagname = substr(array_shift($x),1);
 -            $restoftag = $x;
 -            if (isset($this->tagHandlers[$tagname]))
 -            $handle = $this->tagHandlers[$tagname];
 -            else
 -            $handle = $this->tagHandlers['*'];
 -            $this->$handle($tagname,$restoftag);
 -        }
 -    }
 -    
 -    /**
 -     * Process all inline tags in text, and convert them to their abstract
 -     * object representations.
 -     * @param string|array complete code to search for inline tags, if an
 -     *                     array, it's an array of strings
 -     * @return parserStringWithInlineTags
 -     */
 -    function getInlineTags($value)
 -    {
 -        if (is_array($value)) $value = join("\n",$value);
 -        global $_phpDocumentor_setting;
 -        $priv = (isset($_phpDocumentor_setting['parseprivate']) && $_phpDocumentor_setting['parseprivate'] == 'on');
 -        $a = new parserStringWithInlineTags();
 -        if (!$priv && $this->_pf_internal)
 -        {
 -            if ($x = strpos($value,'}}'))
 -            {
 -                $x = strrpos($value,'}}');
 -                $value = substr($value,$x + 1);
 -                $this->_pf_internal = false;
 -            } else $value = '';
 -        } elseif ($this->_pf_internal)
 -        {
 -            if ($x = strpos($value,'}}'))
 -            {
 -                $x = strrpos($value,'}}');
 -                $value = substr($value,0,$x) . substr($value,$x+2);
 -            }
 -        }
 -        $save = $value;
 -        $value = explode('{@',$value);
 -        $newval = array();
 -        $a->add($value[0]);
 -        for($i=1;$i<count($value);$i++)
 -        {
 -            if (!$priv && $this->_pf_internal)
 -            { // ignore anything between {@internal and }}
 -                if (strpos($value[$i],'}}') !== false)
 -                {
 -                    $x = strrpos($value[$i],'}}');
 -                    $value[$i] = substr($value[$i],$x + 1);
 -                    $this->_pf_internal = false;
 -                    if (!$value[$i]) continue;
 -                    $a->add($value[$i]);
 -                    continue;
 -                } else continue;
 -            }
 -            if (substr($value[$i],0,1) == '}')
 -            {
 -                $a->add('{@'.substr($value[$i],1));
 -            } elseif (substr($value[$i],0,2) == '*}')
 -            { // used for inserting */ in code examples
 -                $a->add('*/'.substr($value[$i],2));
 -            } else
 -            {
 -                $save = $value[$i];
 -				$value[$i] = preg_split("/[\t ]/", str_replace("\t", '    ', $value[$i]));
 -                $word = trim(array_shift($value[$i]));
 -                $val = join(' ',$value[$i]);
 -                if (trim($word) == 'internal')
 -                {
 -                    $this->_pf_internal = true;
 -                    $value[$i] = substr($save,strlen('internal') + 1);
 -                    if (strpos($value[$i],'}}') !== false)
 -                    {
 -                        $x = strrpos($value[$i],'}}');
 -                        // strip internal and cycle as if it were normal text.
 -                        $startval = substr($value[$i],0,$x - 1);
 -                        if ($priv) $a->add($startval);
 -                        $value[$i] = substr($value[$i],$x + 1);
 -                        if (!$value[$i]) $value[$i] = '';
 -                        $this->_pf_internal = false;
 -                        $a->add($value[$i]);
 -                        continue;
 -                    } elseif ($priv) $a->add($value[$i]);
 -                    continue;
 -                }
 -                if (in_array(str_replace('}','',trim($word)),$this->allowableInlineTags))
 -                {
 -                    if (strpos($word,'}'))
 -                    {
 -                        $res = substr($word,strpos($word, '}'));
 -                        $word = str_replace('}','',trim($word));
 -                        $val = $res.$val;
 -                    }
 -                    if ($word == 'source')
 -                    {
 -                        $this->_pf_get_source = true;
 -                    }
 -                    $val = explode('}',$val);
 -                    if (count($val) == 1)
 -                    {
 -                           addError(PDERROR_UNTERMINATED_INLINE_TAG,$word,'',$save);
 -                    }
 -                    $rest = $val;
 -                    $val = array_shift($rest);
 -                    $rest = join('}',$rest);
 -                    if (isset($this->inlineTagHandlers[$word]))
 -                    $handle = $this->inlineTagHandlers[$word];
 -                    else
 -                    $handle = $this->inlineTagHandlers['*'];
 -                    $val = $this->$handle($word,$val);
 -                    $a->add($val);
 -                    if ($this->_pf_internal)
 -                    {
 -                        if (strpos($rest,'}}') !== false)
 -                        {
 -                            $value[$i] = $rest;
 -                            $x = strrpos($value[$i],'}}');
 -                            $startval = substr($value[$i],0,$x - 1);
 -                            if ($priv) $a->add($startval);
 -                            $value[$i] = substr($value[$i],$x + 1);
 -                            if (!$value[$i]) $value[$i] = '';
 -                            $this->_pf_internal = false;
 -                            $a->add($value[$i]);
 -                        } else $a->add($rest);
 -                    } else $a->add($rest);
 -                } else
 -                {
 -                    $val = $word.' '.$val;
 -                    $a->add('{@'.$val);
 -                }
 -            }
 -        }
 -        return $a;
 -    }
 -    /**#@-*/
 -    /**#@+
 -     * @param string name of the tag
 -     * @param string any parameters passed to the inline tag
 -     * @access private
 -     */
 -    /**
 -     * Most inline tags require no special processing
 -     * 
 -     */
 -    function handleDefaultInlineTag($name, $value)
 -    {
 -        $tag = 'parser'.ucfirst($name).'InlineTag';
 -        return new $tag($value,$value);
 -    }
 -    
 -    /**
 -     * Handle the inline {@}link} tag
 -     * @tutorial tags.inlinelink.pkg
 -     */
 -    function handleLinkInlineTag($name, $value)
 -    {
 -        // support hyperlinks of any protocol
 -        if (is_numeric(strpos($value,'://')) || (strpos(trim($value),'mailto:') === 0))
 -        {
 -            $value = str_replace('\\,', '###commanana####', $value);
 -            if (strpos($value,','))
 -            {
 -                $val = new parserLinkInlineTag($value,$value);
 -            } elseif (strpos(trim($value),' '))
 -            { // if there is more than 1 parameter, the stuff after the space is the hyperlink text
 -                $i1 = strpos(trim($value),' ') + 1;
 -                $link = substr(trim($value),0,$i1 - 1);
 -                $text = substr(trim($value),$i1);
 -                $val = new parserLinkInlineTag($link,$text);
 -            } else
 -            {
 -                $val = new parserLinkInlineTag($value,$value);
 -            }
 -        } else
 -        {
 -            $value = str_replace('\\,', '###commanana####', $value);
 -            if (!strpos($value,','))
 -            {
 -                $testp = explode('#',$value);
 -                if (count($testp) - 1)
 -                    $val = new parserLinkInlineTag($value,$testp[1]);
 -                else
 -                    $val = new parserLinkInlineTag($value,$value);
 -            } else
 -                $val = new parserLinkInlineTag($value,$value);
 -        }
 -        return $val;
 -    }
 -
 -    /**#@-*/
 -    /**#@+
 -     * @access private
 -     * @param string name of tag
 -     * @param array all words in the tag that were separated by a space ' '
 -     */
 -    /**
 -     * Most tags only need the value as a string
 -     * @uses getInlineTags() all tag handlers check their values for inline tags
 -     */
 -    function defaultTagHandler($name, $value)
 -    {
 -        $dtype = $this->_pv_dtype;
 -        $this->$dtype->addKeyword($name,$this->getInlineTags(join(' ',$value)));
 -    }
 -    
 -    /**
 -     * @tutorial tags.example.pkg
 -     * @uses parserDocBlock::addExample()
 -     */
 -    function exampleTagHandler($name, $value)
 -    {
 -        $dtype = $this->_pv_dtype;
 -        $this->$dtype->addExample($this->getInlineTags(join(' ',$value)), $this->_path);
 -    }
 -    
 -    /**
 -     * @tutorial tags.filesource.pkg
 -     * @uses phpDocumentorTWordParser::getFileSource() retrieves the source for
 -     *       use in the @filesource tag
 -     */
 -    function filesourceTagHandler($name, $value)
 -    {
 -        $dtype = $this->_pv_dtype;
 -        $this->$dtype->addFileSource($this->_path, $this->_wp->getFileSource());
 -    }
 -    
 -    /**
 -     * @tutorial tags.uses.pkg
 -     */
 -    function usesTagHandler($name, $value)
 -    {
 -        $dtype = $this->_pv_dtype;
 -        $seel = '';
 -        while ($seel == '' && count($value))
 -        {
 -            $seel = array_shift($value);
 -        }
 -        $this->$dtype->addUses($this->getInlineTags($seel), $this->getInlineTags(join(' ',$value)));
 -    }
 -    
 -    /**
 -     * @tutorial tags.author.pkg
 -     */
 -    function authorTagHandler($name, $value)
 -    {
 -        $dtype = $this->_pv_dtype;
 -        $value = join(' ',$value);
 -        if ((strpos($value,'<') !== false) && (strpos($value,'>') !== false))
 -        {
 -            $email = substr($value,strpos($value,'<') + 1,strpos($value,'>') - strpos($value,'<') - 1);
 -            $value = str_replace('<'.$email.'>','<{@link mailto:'.$email.' ' .
 -                        $email . '}>',$value);
 -        }
 -        $this->$dtype->addKeyword('author',$this->getInlineTags($value));
 -    }
 -    
 -    /**
 -     * @tutorial tags.package.pkg
 -     */
 -    function packageTagHandler($name, $value)
 -    {
 -        if (count($value) && empty($value[0]))
 -        {
 -            $found = false;
 -            for($i=0;$i<count($value) && !strlen($value[$i]);$i++);
 -            array_splice($value,0,$i);
 -        }
 -        $this->defaultTagHandler($name, $value);
 -        $dtype = $this->_pv_dtype;
 -        $this->$dtype->setExplicitPackage();
 -    }
 -    
 -    /**
 -     * @tutorial tags.category.pkg
 -     */
 -    function categoryTagHandler($name, $value)
 -    {
 -        if (count($value) && empty($value[0]))
 -        {
 -            $found = false;
 -            for($i=0;$i<count($value) && !strlen($value[$i]);$i++);
 -            array_splice($value,0,$i);
 -        }
 -        $this->defaultTagHandler($name, $value);
 -        $dtype = $this->_pv_dtype;
 -        $this->$dtype->setExplicitCategory();
 -    }
 -    
 -    /**
 -     * @tutorial tags.global.pkg
 -     */
 -    function globalTagHandler($name, $value)
 -    {
 -        $info = $this->retrieveType($value, true);
 -        if (!$info) addErrorDie(PDERROR_MALFORMED_TAG, '@global');
 -        $type = $info['type'];
 -        $var = $info['var'];
 -        $desc = $info['desc'];
 -        $dtype = $this->_pv_dtype;
 -        if (!$var && empty($desc))
 -        {
 -            if ($type{0} == '$') addError(PDERROR_MALFORMED_GLOBAL_TAG);
 -            return $this->$dtype->addFuncGlobal($type,new parserStringWithInlineTags);
 -        }
 -        if ($var)
 -        { // global define
 -            $this->_pv_global_type = $type;
 -            if (!empty($desc)) $var .= ' '.$desc;
 -            $this->findGlobal(trim($var));
 -        } elseif (!empty($desc))
 -        { // function global
 -            if ($type{0} == '$') addError(PDERROR_MALFORMED_GLOBAL_TAG);
 -            $this->$dtype->addFuncGlobal($type,$this->getInlineTags($desc));
 -        } else
 -        {
 -            addError(PDERROR_MALFORMED_GLOBAL_TAG);
 -        }
 -    }
 -    
 -    /**
 -     * @tutorial tags.staticvar.pkg
 -     */
 -    function staticvarTagHandler($name, $value)
 -    {
 -        $info = $this->retrieveType($value, true);
 -        if (!$info) addErrorDie(PDERROR_MALFORMED_TAG, '@staticvar');
 -        $type = $info['type'];
 -        $var = $info['var'];
 -        $desc = $info['desc'];
 -        $dtype = $this->_pv_dtype;
 -        if (!$var && empty($desc))
 -        {
 -            $this->$dtype->addStaticVar(null,$type,new parserStringWithInlineTags);
 -        } else
 -        {
 -            if ($var)
 -            {
 -                $this->$dtype->addStaticVar($var,$type,$this->getInlineTags($desc));
 -            } else
 -            {
 -                $this->$dtype->addStaticVar(null,$type,$this->getInlineTags($desc));
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * @tutorial tags.param.pkg
 -     */
 -    function paramTagHandler($name, $value)
 -    {
 -        $info = $this->retrieveType($value, true);
 -        //if (!$info) addErrorDie(PDERROR_MALFORMED_TAG, '@param');
 -	if (!$info) { addError(PDERROR_MALFORMED_TAG, '@param'); return; }
 -        $type = $info['type'];
 -        $var = $info['var'];
 -        $desc = $info['desc'];
 -        $dtype = $this->_pv_dtype;
 -        if (!$var && empty($desc))
 -        {
 -            $this->$dtype->addParam(null,$type,new parserStringWithInlineTags);
 -        } else
 -        {
 -            if ($var)
 -            {
 -                $this->$dtype->addParam($var,$type,$this->getInlineTags($desc));
 -            } else
 -            {
 -                $this->$dtype->addParam(null,$type,$this->getInlineTags($desc));
 -            }
 -        }
 -    }
 -    
 -    /**
 -     * @tutorial tags.return.pkg
 -     */
 -    function returnTagHandler($name, $value)
 -    {
 -        $info = $this->retrieveType($value, true);
 -        //if (!$info) addErrorDie(PDERROR_MALFORMED_TAG, '@return');
 -        if (!$info) { addError(PDERROR_MALFORMED_TAG, '@return'); return; }
 -        $type = $info['type'];
 -        $desc = $info['desc'];
 -        $dtype = $this->_pv_dtype;
 -        $this->$dtype->addReturn($type,$this->getInlineTags($desc));
 -    }
 -    
 -    /**
 -     * @tutorial tags.var.pkg
 -     */
 -    function varTagHandler($name, $value)
 -    {
 -        $info = $this->retrieveType($value, true);
 -        if (!$info) addErrorDie(PDERROR_MALFORMED_TAG, '@var');
 -        $type = $info['type'];
 -        $desc = $info['desc'];
 -        $dtype = $this->_pv_dtype;
 -        $this->$dtype->addVar($type,$this->getInlineTags($desc));
 -    }
 -    /**#@-*/
 -    /**#@+
 -     * @access private
 -     */
 -    
 -    /**
 -     * Retrieve the type portion of a @tag type description
 -     *
 -     * Tags like @param, @return and @var all have a PHP type portion in their
 -     * description.  Since the type may contain the expression "object blah"
 -     * where blah is a classname, it makes parsing out the type field complex.
 -     *
 -     * Even more complicated is the case where a tag variable can contain
 -     * multiple types, such as object blah|object blah2|false, and so this
 -     * method handles these cases.
 -     * @param array array of words that were separated by spaces
 -     * @param boolean flag to determine whether to check for the end of a
 -     *        type is defined by a $varname
 -     * @return array Format: array('type' => string, 'var' =>
 -     *                             false|string variable name, 'desc' => rest
 -     *                             of the tag)
 -     */
 -    function retrieveType($value, $checkforvar = false)
 -    {
 -        if (!count($value)) return false;
 -        $result = array();
 -        $types = '';
 -        // remove empty entries resulting from extra spaces between @tag and type
 -        $this->_removeWhiteSpace($value, 0);
 -        $index = 0;
 -        if (trim($value[0]) == 'object')
 -        {
 -            $types .= array_shift($value).' ';
 -            $this->_removeWhiteSpace($value, 0);
 -            if (!count($value))
 -            { // was just passed "object"
 -                $result = array('type' => rtrim($types),'desc' => '');
 -                if ($checkforvar) $result['var'] = false;
 -                return $result;
 -            }
 -            if ($value[0]{0} == '$' || substr($value[0],0,2) == '&$')
 -            { // was just passed "object" and the next thing is a variable name
 -                $result['var'] = $value[0];
 -                $result['type'] = 'object';
 -                array_shift($value);
 -                $result['desc'] = join(' ', $value);
 -                return $result;
 -            }
 -        }
 -        $done = false;
 -        do
 -        { // this loop checks for type|type|type and for
 -          // type|object classname|type|object classname2
 -            if (strpos($value[0], '|'))
 -            {
 -                $temptypes = explode('|', $value[0]);
 -                while(count($temptypes))
 -                {
 -                    $type = array_shift($temptypes);
 -                    $types .= $type;
 -                    if (count($temptypes)) $types .= '|';
 -                }
 -                if (trim($type) == 'object')
 -                {
 -                    $types .= ' ';
 -                    $this->_removeWhiteSpace($value,0);
 -                } else $done = true;
 -                array_shift($value);
 -                if (isset ($value[0]) && strlen($value[0]) && ($value[0]{0} == '$' || substr($value[0],0,2) == '&$'))
 -                { // was just passed "object" and the next thing is a variable name
 -                    $result['var'] = $value[0];
 -                    $result['type'] = $types;
 -                    array_shift($value);
 -                    $result['desc'] = join(' ', $value);
 -                    return $result;
 -                }
 -            } else
 -            {
 -                $types .= $value[0];
 -                array_shift($value);
 -                $done = true;
 -            }
 -        } while (!$done && count($value));
 -        $result['type'] = rtrim($types);
 -        $this->_removeWhiteSpace($value,0);
 -        if ($checkforvar)
 -        {
 -            if (!count($value))
 -            {
 -                $result['var'] = false;
 -            } else
 -            {
 -                if (substr($value[0],0,1) == '$' || substr($value[0],0,2) == '&$')
 -                {
 -                    $result['var'] = $value[0];
 -                    array_shift($value);
 -                } else $result['var'] = false;
 -            }
 -        }
 -        $result['desc'] = join(' ',$value);
 -        return $result;
 -    }
 -    
 -    /**
 -     * @param array array of string
 -     * @param integer index to seek non-whitespace to
 -     */
 -    function _removeWhiteSpace(&$value, $index)
 -    {
 -        if (count($value) > $index && empty($value[$index]))
 -        {
 -            $found = false;
 -            for($i=$index; $i<count($value) && !strlen($value[$i]); $i++);
 -            array_splice($value, $index, $i - $index);
 -        }
 -    }
 -    
 -    /**
 -     * Retrieve all the tokens that represent the definition of the global
 -     * variable.
 -     *
 -     * {@source}
 -     */
 -    function findGlobal($name)
 -    {
 -        $tokens = token_get_all('<?php '.$name);
 -        $tokens = array_slice($tokens,1);
 -        $this->_wp->findGlobal($tokens);
 -        $this->_pv_findglobal = $name;
 -    }
 -
 -    /**
 -     * handler for DEFINE_GLOBAL
 -     */
 -    function handleGlobal($word, $pevent)
 -    {
 -        if (isset($this->_pv_findglobal))
 -        {
 -            $this->_pv_global_name = $this->_pv_findglobal;
 -            unset($this->_pv_findglobal);
 -        }
 -        if (!$this->_pf_in_global)
 -        {
 -            $this->_pv_linenum = $this->_wp->linenum + 1;
 -        }
 -        $this->_pf_in_global = true;
 -        if($this->checkEventPush($word, $pevent))
 -        {
 -            $this->_wp->setWhitespace(true);
 -        }
 -        if ($this->checkEventPop($word, $pevent))
 -        {
 -            $this->_pf_in_global = false;
 -            $a = new parserGlobal;
 -            $a->setDataType($this->_pv_global_type);
 -            $this->_pv_global_type = '';
 -            $a->setLineNumber($this->_pv_linenum);
 -            $a->setName($this->_pv_global_name);
 -            if (isset($this->_pv_global_val))
 -            $a->setValue(trim($this->_pv_global_val));
 -            $this->publishEvent(PHPDOCUMENTOR_EVENT_GLOBAL,$a);
 -            unset($this->_pv_global_val);
 -            unset($this->_pv_global_type);
 -        }
 -    }
 -    
 -    /**
 -     * handler for GLOBAL_VALUE
 -     */
 -    function handleGlobalValue($word, $pevent)
 -    {
 -        if ($this->checkEventPush($word, $pevent)) return;
 -        $this->_wp->setWhitespace(true);
 -        if (!isset($this->_pv_global_val)) $this->_pv_global_val = '';
 -        if ($this->_last_pevent == PARSER_EVENT_ARRAY)
 -        {
 -            $this->_pv_global_val .= $this->_pv_function_data;
 -            $this->_pv_function_data = '';
 -        }
 -        if ($this->_last_pevent == PARSER_EVENT_QUOTE ||
 -            $this->_last_pevent == PARSER_EVENT_EOFQUOTE)
 -        {
 -            $this->_pv_global_val .= $this->_pv_quote_data;
 -            unset($this->_pv_quote_data);
 -        }
 -        if ($this->checkEventPop($word, $pevent))
 -        {
 -            $this->_wp->setWhitespace(false);
 -            $this->_wp->backupPos();
 -            return;
 -        }
 -        if (is_array($word)) $word = $word[1];
 -        $this->_pv_global_val .= $word;
 -    }
 -    
 -    /**#@-*/
 -    /**
 -     * this function checks whether parameter $word is a token for pushing a new event onto the Event Stack.
 -     * @return mixed    returns false, or the event number
 -     */
 -    
 -    function checkEventPush($word,$pevent)
 -    {
 -        if (is_array($word) && $word[0] == T_STRING) $word = $word[1];
 -        if (is_array($word))
 -        {
 -            $pushEvent = &$this->tokenpushEvent;
 -            $word = $word[0];
 -        } else
 -        {
 -            $pushEvent = &$this->wordpushEvent;
 -            $word = strtolower($word);
 -        }
 -        $e = false;
 -        if (isset($pushEvent[$pevent]))
 -        {
 -            if (isset($pushEvent[$pevent][$word]))
 -            $e = $pushEvent[$pevent][$word];
 -        }
 -        if ($e)
 -        {
 -            $this->_event_stack->pushEvent($e);
 -            return $e;
 -        } else {
 -            return false;
 -        }
 -    }
 -
 -    /**
 -     * this function checks whether parameter $word is a token for popping the current event off of the Event Stack.
 -     * @return mixed    returns false, or the event number popped off of the stack
 -     */
 -    
 -    function checkEventPop($word,$pevent)
 -    {
 -        if (is_array($word) && $word[0] == T_STRING) $word = $word[1];
 -        if (is_array($word))
 -        {
 -            $popEvent = &$this->tokenpopEvent;
 -            $word = $word[0];
 -        } else
 -        {
 -            $popEvent = &$this->wordpopEvent;
 -            $word = strtolower($word);
 -        }
 -        if (!isset($popEvent[$pevent])) return false;
 -        if (in_array($word,$popEvent[$pevent]))
 -        {
 -            return $this->_event_stack->popEvent();
 -        } else {
 -            return false;
 -        }
 -    }
 -
 -    function getToken($word)
 -    {
 -        if (is_array($word)) return $word[0];
 -        return false;
 -    }
 -    
 -    /**
 -     * setup the parser tokens, and the pushEvent/popEvent arrays
 -     * @see $tokens, $pushEvent, $popEvent
 -     */
 -    
 -    function setupStates()
 -    {
 -        unset($this->_wp);
 -        $this->_wp = new phpDocumentorTWordParser;
 -        $this->_pv_class = null;
 -        $this->_pv_cur_class = null;
 -        $this->_pv_define = null;
 -        $this->_pv_define_name = null;
 -        $this->_pv_define_value = null;
 -        $this->_pv_define_params_data = null;
 -        $this->_pv_dtype = null;
 -        $this->_pv_docblock = null;
 -        $this->_pv_dtemplate = null;
 -        $this->_pv_func = null;
 -        $this->_pv_findglobal = null;
 -        $this->_pv_global_name = null;
 -        $this->_pv_global_val = null;
 -        $this->_pv_globals = null;
 -        $this->_pv_global_count = null;
 -        $this->_pv_include_params_data = null;
 -        $this->_pv_include_name = null;
 -        $this->_pv_include_value = null;
 -        $this->_pv_linenum = null;
 -        $this->_pv_periodline = null;
 -        $this->_pv_paren_count = 0;
 -        $this->_pv_statics = null;
 -        $this->_pv_static_count = null;
 -        $this->_pv_static_val = null;
 -        $this->_pv_quote_data = null;
 -        $this->_pv_function_data = null;
 -        $this->_pv_var = null;
 -        $this->_pv_varname = null;
 -        $this->_pv_const = null;
 -        $this->_pv_constname = null;
 -        $this->_pv_function_param_type = null;
 -        $this->_pf_definename_isset = false;
 -        $this->_pf_includename_isset = false;
 -        $this->_pf_get_source = false;
 -        $this->_pf_getting_source = false;
 -        $this->_pf_in_class = false;
 -        $this->_pf_in_define = false;
 -        $this->_pf_in_global = false;
 -        $this->_pf_in_include = false;
 -        $this->_pf_in_var = false;
 -        $this->_pf_in_const = false;
 -        $this->_pf_funcparam_val = false;
 -        $this->_pf_quote_active = false;
 -        $this->_pf_reset_quote_data = true;
 -        $this->_pf_useperiod = false;
 -        $this->_pf_var_equals = false;
 -        $this->_pf_const_equals = false;
 -        $this->_event_stack = new EventStack;
 -    }
 -    
 -    /**
 -     * Creates the state arrays
 -     */
 -    function setupEventStates()
 -    {
 -        if (!defined('T_DOC_COMMENT'))
 -        {
 -            define('T_DOC_COMMENT', T_DOC_COMMENT);
 -        }
 -/**************************************************************/
 -
 -        $this->wordpushEvent[PARSER_EVENT_LOGICBLOCK] = 
 -            array(
 -                "{"    => PARSER_EVENT_LOGICBLOCK,
 -                '"'    => PARSER_EVENT_QUOTE,
 -            );
 -        $this->tokenpushEvent[PARSER_EVENT_LOGICBLOCK] =
 -            array(
 -                T_GLOBAL    => PARSER_EVENT_FUNC_GLOBAL,
 -                T_STATIC    => PARSER_EVENT_STATIC_VAR,
 -                T_START_HEREDOC   => PARSER_EVENT_EOFQUOTE,
 -                T_CURLY_OPEN    => PARSER_EVENT_LOGICBLOCK,
 -                T_DOLLAR_OPEN_CURLY_BRACES => PARSER_EVENT_LOGICBLOCK,
 -            );
 -
 -        $this->wordpopEvent[PARSER_EVENT_LOGICBLOCK] = array("}");
 -        $this->tokenpopEvent[PARSER_EVENT_LOGICBLOCK] = array(T_CURLY_OPEN);
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_NOEVENTS] = 
 -            array(
 -                T_OPEN_TAG => PARSER_EVENT_PHPCODE,
 -            );
 -
 -/**************************************************************/
 -
 -        $this->tokenpopEvent[PARSER_EVENT_EOFQUOTE] = array(T_END_HEREDOC);
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_PHPCODE] = 
 -            array(
 -                T_FUNCTION     => PARSER_EVENT_FUNCTION,
 -                T_ABSTRACT => PARSER_EVENT_ACCESS_MODIFIER,
 -                T_CLASS     => PARSER_EVENT_CLASS,
 -                T_INTERFACE => PARSER_EVENT_CLASS,
 -                T_INCLUDE_ONCE => PARSER_EVENT_INCLUDE,
 -                T_INCLUDE => PARSER_EVENT_INCLUDE,
 -                T_REQUIRE    => PARSER_EVENT_INCLUDE,
 -                T_REQUIRE_ONCE    => PARSER_EVENT_INCLUDE,
 -                T_COMMENT   => PARSER_EVENT_DOCBLOCK,
 -                T_DOC_COMMENT         => PARSER_EVENT_DOCBLOCK,
 -//                "/**#@+"    => PARSER_EVENT_DOCBLOCK_TEMPLATE,
 -//                "/**#@-*/"    => PARSER_EVENT_END_DOCBLOCK_TEMPLATE,
 -                T_CLOSE_TAG         => PARSER_EVENT_OUTPHP,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_PHPCODE] =
 -            array(
 -                "define"     => PARSER_EVENT_DEFINE,
 -            );
 -/**************************************************************/
 -
 -        $this->tokenpopEvent[PARSER_EVENT_OUTPHP] = array(T_OPEN_TAG);
 -/**************************************************************/
 -
 -        $this->wordpushEvent[PARSER_EVENT_FUNCTION] =
 -            array(
 -                '{'     => PARSER_EVENT_LOGICBLOCK,
 -                '('     => PARSER_EVENT_FUNCTION_PARAMS,
 -            );
 -        $this->tokenpushEvent[PARSER_EVENT_FUNCTION] =
 -            array(
 -                T_COMMENT   => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT => PARSER_EVENT_COMMENT,
 -            );
 -
 -        $this->wordpopEvent[PARSER_EVENT_FUNCTION] = array("}",';');
 -/**************************************************************/
 -
 -        $this->wordpopEvent[PARSER_EVENT_QUOTE] = array('"');
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_FUNCTION_PARAMS] =
 -            array(
 -                T_CONSTANT_ENCAPSED_STRING => PARSER_EVENT_QUOTE,
 -                T_ARRAY => PARSER_EVENT_ARRAY,
 -                T_COMMENT => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT => PARSER_EVENT_COMMENT,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_FUNCTION_PARAMS] =
 -            array(
 -                '"' => PARSER_EVENT_QUOTE,
 -                "'" => PARSER_EVENT_QUOTE,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_FUNCTION_PARAMS] = array(")");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_ARRAY] = 
 -            array(
 -                T_COMMENT  => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT     => PARSER_EVENT_COMMENT,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_ARRAY] = array(")");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_VAR_ARRAY] = 
 -            array(
 -                T_COMMENT  => PARSER_EVENT_VAR_ARRAY_COMMENT,
 -                T_DOC_COMMENT     => PARSER_EVENT_VAR_ARRAY_COMMENT,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_VAR_ARRAY] = array(")");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_FUNC_GLOBAL] =
 -            array(
 -                T_COMMENT   => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT    => PARSER_EVENT_COMMENT,
 -            );
 -
 -        $this->wordpopEvent[PARSER_EVENT_FUNC_GLOBAL] = array(";");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_STATIC_VAR] =
 -            array(
 -                T_CONSTANT_ENCAPSED_STRING  => PARSER_EVENT_QUOTE,
 -                T_COMMENT   => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT    => PARSER_EVENT_COMMENT,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_STATIC_VAR] =
 -            array(
 -                "="        => PARSER_EVENT_STATIC_VAR_VALUE,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_STATIC_VAR] = array(";");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_STATIC_VAR_VALUE] = 
 -            array(
 -                T_CONSTANT_ENCAPSED_STRING  => PARSER_EVENT_QUOTE,
 -                T_COMMENT   => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT    => PARSER_EVENT_COMMENT,
 -                T_ARRAY     => PARSER_EVENT_ARRAY,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_STATIC_VAR_VALUE] =
 -            array(
 -                '"' => PARSER_EVENT_QUOTE,
 -                "'" => PARSER_EVENT_QUOTE,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_STATIC_VAR_VALUE] = array(";",",");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_DEFINE] = 
 -            array(
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_CONSTANT_ENCAPSED_STRING        => PARSER_EVENT_QUOTE,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_DEFINE] = 
 -            array(
 -                "("     => PARSER_EVENT_DEFINE_PARAMS,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_DEFINE] = array(";");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_INCLUDE] = 
 -            array(
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT     => PARSER_EVENT_COMMENT,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_INCLUDE] = 
 -            array(
 -                "("     => PARSER_EVENT_INCLUDE_PARAMS,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_INCLUDE] = array(";");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_DEFINE_PARAMS] = 
 -            array(
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_START_HEREDOC => PARSER_EVENT_EOFQUOTE,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_DEFINE_PARAMS] = 
 -            array(
 -                "("    =>    PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS,
 -                '"' => PARSER_EVENT_QUOTE,
 -                "'" => PARSER_EVENT_QUOTE,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_DEFINE_PARAMS] = array(")");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_INCLUDE_PARAMS] = 
 -            array(
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT     => PARSER_EVENT_COMMENT,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_INCLUDE_PARAMS] = 
 -            array(
 -                "("    =>    PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_INCLUDE_PARAMS] = array(")");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS] =
 -            array(
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT     => PARSER_EVENT_COMMENT,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS] =
 -            array(
 -                "("    =>    PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS,
 -                '"' => PARSER_EVENT_QUOTE,
 -                "'" => PARSER_EVENT_QUOTE,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_DEFINE_PARAMS_PARENTHESIS] = array(")");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS] =
 -            array(
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT     => PARSER_EVENT_COMMENT,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS] =
 -            array(
 -                "("    =>    PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_INCLUDE_PARAMS_PARENTHESIS] = array(")");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_VAR] = 
 -            array(
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_ARRAY     => PARSER_EVENT_VAR_ARRAY,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_VAR] = array(";");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_CLASS_CONSTANT] = 
 -            array(
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_ARRAY     => PARSER_EVENT_VAR_ARRAY,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_CLASS_CONSTANT] = array(";");
 -/**************************************************************/
 -
 -        $this->wordpopEvent[PARSER_EVENT_IMPLEMENTS] = array('{');
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_CLASS] = 
 -            array(
 -                T_ABSTRACT      => PARSER_EVENT_ACCESS_MODIFIER,
 -                T_PUBLIC      => PARSER_EVENT_ACCESS_MODIFIER,
 -                T_PRIVATE      => PARSER_EVENT_ACCESS_MODIFIER,
 -                T_PROTECTED      => PARSER_EVENT_ACCESS_MODIFIER,
 -                T_STATIC      => PARSER_EVENT_ACCESS_MODIFIER,
 -                T_IMPLEMENTS      => PARSER_EVENT_IMPLEMENTS,
 -                T_CONST        => PARSER_EVENT_CLASS_CONSTANT,
 -                T_FUNCTION     => PARSER_EVENT_FUNCTION,
 -                T_VAR         => PARSER_EVENT_VAR,
 -                T_COMMENT         => PARSER_EVENT_DOCBLOCK,
 -                T_DOC_COMMENT         => PARSER_EVENT_DOCBLOCK,
 -                T_CLOSE_TAG        => PARSER_EVENT_OUTPHP,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_CLASS] = array("}");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_DEFINE_GLOBAL] = 
 -            array(
 -                T_COMMENT => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT => PARSER_EVENT_COMMENT,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_DEFINE_GLOBAL] = 
 -            array(
 -                "="    => PARSER_EVENT_GLOBAL_VALUE,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_DEFINE_GLOBAL] = array(";");
 -/**************************************************************/
 -
 -        $this->tokenpushEvent[PARSER_EVENT_GLOBAL_VALUE] = 
 -            array(
 -                T_ARRAY => PARSER_EVENT_ARRAY,
 -                T_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_DOC_COMMENT     => PARSER_EVENT_COMMENT,
 -                T_START_HEREDOC => PARSER_EVENT_EOFQUOTE,
 -            );
 -        $this->wordpushEvent[PARSER_EVENT_GLOBAL_VALUE] =
 -            array(
 -                '"' => PARSER_EVENT_QUOTE,
 -                "'" => PARSER_EVENT_QUOTE,
 -            );
 -        $this->wordpopEvent[PARSER_EVENT_GLOBAL_VALUE] = array(";");
 -    }
 -    
 -    function configWordParser(&$data)
 -    {
 -        $this->_wp->setup($data);
 -        $this->_wp->setWhitespace(false);
 -    }
 -}
 -?>
 diff --git a/buildscripts/PhpDocumentor/phpDocumentor/phpDocumentorTWordParser.inc b/buildscripts/PhpDocumentor/phpDocumentor/phpDocumentorTWordParser.inc deleted file mode 100644 index 36538408..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/phpDocumentorTWordParser.inc +++ /dev/null @@ -1,311 +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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -/**
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @package phpDocumentor
 - * @subpackage WordParsers
 - * @since 1.2
 - */
 -/**
 - * Like WordParser, but expects an array of tokens from the tokenizer instead
 - * of a string.
 - * @author Greg Beaver <cellog@users.sourceforge.net>
 - * @package phpDocumentor
 - * @subpackage WordParsers
 - * @since 1.2
 - */
 -class phpDocumentorTWordParser extends WordParser
 -{
 -    /**#@+
 -     * @access private
 -     */
 -    /**
 -     * tokenized array from {@link token_get_all()}
 -     * @var array
 -     */
 -    var $_all;
 -    /**
 -     * List of tokens that can contain a newline
 -     * @var array
 -     */
 -    var $_nl_check = array(
 -        T_WHITESPACE,
 -        T_ENCAPSED_AND_WHITESPACE,
 -        T_COMMENT,
 -        T_DOC_COMMENT,
 -        T_OPEN_TAG,
 -        T_CLOSE_TAG,
 -        T_INLINE_HTML);
 -    /**
 -     * @var array
 -     */
 -    var $_global_search;
 -    /**
 -     * current source line number (relative)
 -     * @var integer
 -     */
 -    var $_sourceline;
 -    /**
 -     * Source of the entire file, parsed into arrays of tokens on each line
 -     * @var array
 -     */
 -    var $_file_source = array();
 -    /**
 -     * Line number the last comment was on
 -     * @var integer
 -     */
 -    var $_docblock_linenum;
 -    /**#@-*/
 -    
 -    /**
 -     * Uses {@link token_get_all()} to tokenize the source code.
 -     * {@internal
 -     * Also, it divides the source tokens into separate lines for use by
 -     * the @filesource tag.
 -     *
 -     * {@source}}}
 -     * @var string source code
 -     */
 -    function setup(&$input)
 -    {
 -        $input = rtrim(ltrim($input, "\r\n"));
 -        $this->data = &$input;
 -        // fix php warnings on invalid source code
 -        $this->_all = @token_get_all($input);
 -        $this->_file_source = array();
 -        $this->addFileSource($this->_all);
 -        $this->_sourceline = 0;
 -        $this->pos = 0;
 -        $this->linenum = 0;
 -    }
 -    
 -    /**
 -     * @return array
 -     */
 -    function getSource()
 -    {
 -        $source = $this->source;
 -        $this->source = array();
 -        $this->getsource = false;
 -        return $source;
 -    }
 -    
 -    /**
 -     * @return array source code tokens split up by line number
 -     */
 -    function getFileSource()
 -    {
 -        return $this->_file_source;
 -    }
 -    
 -    /**
 -     * Begin retrieving source code
 -     * @access private
 -     * @param string word to add the beginning of source code
 -     */
 -    function retrievesource($word = '')
 -    {
 -        $this->source = array(array($word));
 -        $this->_sourceline = 0;
 -        $this->getsource = true;
 -    }
 -
 -    /**
 -     * Utility function to determine whether two tokens from the tokenizer are equal
 -     * @static
 -     */
 -    function tokenEquals($a, $b)
 -    {
 -        if (is_array($a)) $a = $a[1];
 -        if (is_array($b)) $b = $b[1];
 -        return $a == $b;
 -    }
 -    
 -    /**
 -     * Utility function to convert a series of tokens into a string
 -     * @static
 -     */
 -    function concatTokens($a)
 -    {
 -        $b = '';
 -        foreach($a as $c)
 -        {
 -            if (is_array($c)) $c = $c[1];
 -            $b .= $c;
 -        }
 -        return $b;
 -    }
 -    
 -    /**
 -     * Retrieve a token for the phpDocumentorTParser
 -     * {@internal
 -     * This method adds source code to the array for a function to be returned
 -     * to a {@}source} tag, and will return the token unless it is T_WHITESPACE
 -     * and {@link $returnWhiteSpace} is false.
 -     *
 -     * The global variable search is more complicated than it is in the
 -     * WordParser, as we have to compare an array of tokens to each other, and
 -     * that is what this code does}}
 -     * @return string|array token from tokenizer
 -     */
 -    function getWord()
 -    {
 -        if (!isset($this->_all[$this->pos])) return false;
 -        $oldlinenum = $this->linenum;
 -        $word = $this->_all[$this->pos++];
 -        // if we're looking for a global variable declaration, then this section
 -        // will search the upcoming tokens to see if they match the tokens
 -        // that define the global variable
 -        if (isset($this->_global_search))
 -        {
 -            $pos = $this->pos;
 -            $gpos = 0;
 -            $found = false;
 -            if ($this->tokenEquals($word,$this->_global_search[$gpos++]))
 -            {
 -                $found = true;
 -                for(;$gpos<count($this->_global_search);$gpos++,$pos++)
 -                {
 -                    if (!$this->tokenEquals($this->_global_search[$gpos],$this->_all[$pos])) $found = false;
 -                }
 -            }
 -            if ($found)
 -            {
 -                $a = $this->concatTokens($this->_global_search);
 -                $this->pos += count($this->_global_search) - 1;
 -                unset($this->_global_search);
 -                return $a;
 -            }
 -        }
 -        if ($this->getsource)
 -        {
 -            $this->addSource($word);
 -        }
 -        if (is_array($word))
 -        {
 -            if (in_array($word[0],$this->_nl_check))
 -            {
 -                $this->linenum += substr_count($word[1],"\n");
 -            }
 -            if ($word[0] == T_WHITESPACE && !$this->returnWhiteSpace) return $this->getWord();
 -            // seeing if we can get line numbers out of the beast
 -        }
 -        if (is_array($word) && $word[0] == T_COMMENT) $this->_docblock_linenum = $oldlinenum;
 -        return $word;
 -    }
 -    
 -    /**
 -     * Wrapper for {@link addSource()} used to retrieve the entire source code
 -     * organized by line number in setup()
 -     * @param array full file source code
 -     */
 -    function addFileSource($word)
 -    {
 -        $this->_sourceline = 0;
 -        foreach($word as $token)
 -        {
 -            $this->addSource($token, true);
 -        }
 -//        var_dump($this->_file_source);
 -    }
 -    
 -    /**
 -     * Generate source token arrays organized by line number
 -     *
 -     * This code will split up tokens that contain "\n" and add them to the
 -     * source code as separate tokens on different lines.
 -     * @param array|string token to add
 -     * @param boolean true if this should be added to {@link $_file_source}
 -     * @param array|string next token, for lookahead splitting
 -     * @uses _set_sars()
 -     */
 -    function addSource($word, $file = false)
 -    {
 -        if (is_array($word))
 -        {
 -            $lines = str_replace("\r", '', explode("\n",$word[1]));
 -            foreach($lines as $i => $line)
 -            {
 -                $this->_set_sars($file, array($word[0],$line));
 -                if ($i < count($lines) - 1)
 -                {
 -                    // increment sourceline
 -                    $this->_sourceline++;
 -                }
 -            }
 -        } else $this->_set_sars($file, $word);
 -    }
 -    
 -    /**
 -     * Add tokens to source code
 -     *
 -     * {@source}
 -     * @access private
 -     * @param boolean true if this is file source, otherwise it is function source
 -     * @param string|array token to add
 -     */
 -    function _set_sars($type,$word)
 -    {
 -        if ($type)
 -        {
 -            $this->_file_source[$this->_sourceline][] = $word;
 -        } else
 -        {
 -            $this->source[$this->_sourceline][] = $word;
 -        }
 -    }
 -    
 -    /**
 -     * Tell the phpDocumentorTWordParser to return the entire global variable
 -     * if it is found.
 -     * @uses $_global_search
 -     * @param array tokens that represent the global variable definition
 -     */
 -    function findGlobal($tokens)
 -    {
 -        if (!$tokens)
 -        {
 -            unset($this->_global_search);
 -        } else
 -        $this->_global_search = $tokens;
 -    }
 -    
 -    function backupPos()
 -    {
 -        $this->pos--;
 -        $word = $this->_all[$this->pos];
 -        if ($this->getsource)
 -        {
 -            unset($this->source[$this->_sourceline][count($this->source[$this->_sourceline]) - 1]);
 -            if (empty($this->source[$this->_sourceline])) unset($this->source[$this->_sourceline]);
 -            else $this->source[$this->_sourceline] = array_values($this->source[$this->_sourceline]);
 -        }
 -        if (is_array($word))
 -        {
 -            if ($word[0] == T_WHITESPACE && !$this->returnWhiteSpace) return $this->getWord();
 -            // seeing if we can get line numbers out of the beast
 -            if (in_array($word[0],$this->_nl_check))
 -            {
 -                $this->linenum -= substr_count($word[1],"\n");
 -            }
 -        }
 -    }
 -}
 -?>
\ No newline at end of file diff --git a/buildscripts/PhpDocumentor/phpDocumentor/phpdoc.inc b/buildscripts/PhpDocumentor/phpDocumentor/phpdoc.inc deleted file mode 100644 index 4eef3870..00000000 --- a/buildscripts/PhpDocumentor/phpDocumentor/phpdoc.inc +++ /dev/null @@ -1,45 +0,0 @@ -<?php
 -/**
 - * @package phpDocumentor
 - */
 -//
 -// +------------------------------------------------------------------------+
 -// | 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.                 |
 -// +------------------------------------------------------------------------+
 -//
 -
 -
 -// set up include path so we can find all files, no matter what
 -$a = explode('/',str_replace('\\','/',dirname(realpath(__FILE__))));
 -array_pop($a);
 -$GLOBALS['_phpDocumentor_install_dir'] = join('/',$a);
 -// add my directory to the include path, and make it first, should fix any errors
 -if (substr(PHP_OS, 0, 3) == 'WIN')
 -ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].';'.ini_get('include_path'));
 -else
 -ini_set('include_path',$GLOBALS['_phpDocumentor_install_dir'].':'.ini_get('include_path'));
 -
 -/**
 - * All command-line handling from previous version has moved to here
 - *
 - * Many settings also moved to phpDocumentor.ini
 - */
 -include("phpDocumentor/Setup.inc.php");
 -
 -$phpdoc = new phpDocumentor_setup;
 -$phpdoc->readCommandLineSettings();
 -$phpdoc->setupConverters();
 -$phpdoc->createDocs();
 -?>
  | 
