phpDocumentor phpDocumentor
Errors
[ class tree: phpDocumentor ] [ index: phpDocumentor ] [ all elements ]

Source for file Errors.inc

Documentation is available at Errors.inc

  1. <?php
  2. /**
  3.  * Error handling for phpDocumentor
  4.  *
  5.  * phpDocumentor :: automatic documentation generator
  6.  * 
  7.  * PHP versions 4 and 5
  8.  *
  9.  * Copyright (c) 2001-2006 Gregory Beaver
  10.  * 
  11.  * LICENSE:
  12.  * 
  13.  * This library is free software; you can redistribute it
  14.  * and/or modify it under the terms of the GNU Lesser General
  15.  * Public License as published by the Free Software Foundation;
  16.  * either version 2.1 of the License, or (at your option) any
  17.  * later version.
  18.  * 
  19.  * This library is distributed in the hope that it will be useful,
  20.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  21.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  22.  * Lesser General Public License for more details.
  23.  * 
  24.  * You should have received a copy of the GNU Lesser General Public
  25.  * License along with this library; if not, write to the Free Software
  26.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  27.  *
  28.  * @package    phpDocumentor
  29.  * @subpackage Errors
  30.  * @author     Greg Beaver <[email protected]>
  31.  * @copyright  2001-2006 Gregory Beaver
  32.  * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
  33.  * @version    CVS: $Id: Errors.inc,v 1.8 2006/08/16 17:08:32 cellog Exp $
  34.  * @filesource
  35.  * @link       http://www.phpdoc.org
  36.  * @link       http://pear.php.net/PhpDocumentor
  37.  * @see        parserDocBlock, parserInclude, parserPage, parserClass
  38.  * @see        parserDefine, parserFunction, parserMethod, parserVar
  39.  * @since      0.4
  40.  */
  41. /**
  42.  * warning triggered when inheritance could be from more than one class
  43.  */
  44. define("PDERROR_MULTIPLE_PARENT",1);
  45. /**
  46.  * warning triggered when parent class doesn't exist
  47.  */
  48. define("PDERROR_PARENT_NOT_FOUND",2);
  49. /**
  50.  * warning triggered when an {@inline tag} is not terminated (no } before the * / ending the comment)
  51.  */
  52. define("PDERROR_UNTERMINATED_INLINE_TAG",3);
  53. /**
  54.  * warning triggered when inheritance could be from more than one class
  55.  */
  56. define("PDERROR_CLASS_EXISTS",4);
  57. /**
  58.  * warning triggered when inheritance could be from more than one class
  59.  */
  60. define("PDERROR_INHERITANCE_CONFLICT",5);
  61. /**
  62.  * warning triggered when a converter is passed to {@link phpDocumentor_IntermediateParser::addConverter()} that is not a class
  63.  */
  64. define("PDERROR_CONVERTER_NOT_FOUND",6);
  65. /**
  66.  * warning triggered when a converter is passed to {@link phpDocumentor_IntermediateParser::addConverter()} that is not a class
  67.  */
  68. define("PDERROR_NO_CONVERTERS",7);
  69. /**
  70.  * warning triggered when the arguments to @access are neither public nor private
  71.  */
  72. define("PDERROR_ACCESS_WRONG_PARAM",8);
  73. /**
  74.  * warning triggered when there are multiple @access tags in a docblock
  75.  */
  76. define("PDERROR_MULTIPLE_ACCESS_TAGS",9);
  77. /**
  78.  * warning triggered when there are multiple @return tags in a docblock
  79.  */
  80. define("PDERROR_MULTIPLE_RETURN_TAGS",10);
  81. /**
  82.  * warning triggered when there are multiple @var tags in a docblock
  83.  */
  84. define("PDERROR_MULTIPLE_VAR_TAGS",11);
  85. /**
  86.  * warning triggered when there are multiple @package tags in a docblock
  87.  */
  88. define("PDERROR_MULTIPLE_PACKAGE_TAGS",12);
  89. /**
  90.  * warning triggered when there are multiple @subpackage tags in a docblock
  91.  */
  92. define("PDERROR_MULTIPLE_SUBPACKAGE_TAGS",13);
  93. /**
  94.  * warning triggered when the package or subpackage name is illegal
  95.  */
  96. define("PDERROR_ILLEGAL_PACKAGENAME",14);
  97. /**
  98.  * warning triggered when there a @package tag is used in a function, define, method, var or include
  99.  */
  100. define("PDERROR_OVERRIDDEN_PACKAGE_TAGS",15);
  101. /**
  102.  * warning triggered when there a @subpackage tag is used in a function, define, method, var or include
  103.  */
  104. define("PDERROR_OVERRIDDEN_SUBPACKAGE_TAGS",16);
  105. /**
  106.  * warning triggered when classes in the same package have the same name
  107.  */
  108. define("PDERROR_CLASS_CONFLICT",17);
  109. /**
  110.  * warning triggered when classes in the same package have the same name
  111.  */
  112. define("PDERROR_UNKNOWN_TAG",18);
  113. /**
  114.  * warning triggered when there are multiple @name tags in a docblock
  115.  */
  116. define("PDERROR_MULTIPLE_NAME_TAGS",19);
  117. /**
  118.  * warning triggered when there are multiple @name tags in a docblock
  119.  */
  120. define("PDERROR_PACKAGEOUTPUT_DELETES_PARENT_FILE",20);
  121. /**
  122.  * warning triggered when there are multiple @name tags in a docblock
  123.  */
  124. define("PDERROR_GLOBAL_NOT_FOUND",21);
  125. /**
  126.  * warning triggered when there are multiple @name tags in a docblock
  127.  */
  128. define("PDERROR_MULTIPLE_GLOBAL_TAGS",22);
  129. /**
  130.  * warning triggered when there are multiple @name tags in a docblock
  131.  */
  132. define("PDERROR_MALFORMED_GLOBAL_TAG",23);
  133. /**
  134.  * warning triggered when an @ignore tag is used in a DocBlock preceding a method, variable, include, or global variable
  135.  */
  136. define("PDERROR_IGNORE_TAG_IGNORED",24);
  137. /**
  138.  * warning triggered when a duplicate element is encountered that will be ignored by the documentor
  139.  */
  140. define("PDERROR_ELEMENT_IGNORED",25);
  141. /**
  142.  * warning triggered when an entire page is ignored because of @access private
  143.  */
  144. define("PDERROR_PARSEPRIVATE",26);
  145. /**
  146.  * warning triggered when an entire page is ignored because of @access private
  147.  */
  148. define("PDERROR_UNKNOWN_COMMANDLINE",27);
  149. /**
  150.  * warning triggered when an entire page is ignored because of @access private
  151.  */
  152. define("PDERROR_NEED_WHITESPACE",28);
  153. /**
  154.  * warning triggered when an entire page is ignored because of @access private
  155.  */
  156. define("PDERROR_CLASS_PARENT_NOT_FOUND",29);
  157. /**
  158.  * warning triggered when a getClassByPackage is called and can't find the class
  159.  */
  160. define("PDERROR_CLASS_NOT_IN_PACKAGE",30);
  161. /**
  162.  * warning triggered when a { @source } inline tag is used in a docblock not preceding a function
  163.  */
  164. define("PDERROR_SOURCE_TAG_FUNCTION_NOT_FOUND",31);
  165. /**
  166.  * warning triggered when a docblock template is never turned off with /**#@-* / (no space)
  167.  */
  168. define("PDERROR_DB_TEMPLATE_UNTERMINATED",32);
  169. /**
  170.  * warning triggered when a docblock has an unmatched &lt;ol&gt; or &lt;ul&gt;
  171.  */
  172. define("PDERROR_UNMATCHED_LIST_TAG",33);
  173. /**
  174.  * warning triggered when another tag is nested in &lt;b&gt; - not allowed in phpDocumentor
  175.  */
  176. define("PDERROR_CANT_NEST_IN_B",34);
  177. /**
  178.  * warning triggered when a docbook tag is not properly matched
  179.  */
  180. define("PDERROR_UNMATCHED_TUTORIAL_TAG",35);
  181. /**
  182.  * warning triggered when an inline tag is found inside an xml tag name in a package page
  183.  */
  184. define("PDERROR_CANT_HAVE_INLINE_IN_TAGNAME",36);
  185. /**
  186.  * warning triggered when a tutorial is referenced via @tutorial/{ @tutorial} and is not found
  187.  */
  188. define("PDERROR_TUTORIAL_NOT_FOUND",37);
  189. /**
  190.  * warning triggered when a tutorial lists itself as a child tutorial
  191.  */
  192. define("PDERROR_TUTORIAL_IS_OWN_CHILD",38);
  193. /**
  194.  * warning triggered when a tutorial's child lists the parent tutorial as a child tutorial
  195.  */
  196. define("PDERROR_TUTORIAL_IS_OWN_GRANDPA",39);
  197. /**
  198.  * warning triggered when a tutorial's child in the .ini file doesn't exist in the
  199.  * package and subpackage of the parent
  200.  */
  201. define("PDERROR_CHILD_TUTORIAL_NOT_FOUND",40);
  202. /**
  203.  * warning triggered when a <pdffunction:funcname /> tag is used in the PDF
  204.  * Converter and no funcname is present (<pdffunction: />)
  205.  */
  206. define("PDERROR_PDFFUNCTION_NO_FUNC",41);
  207. /**
  208.  * warning triggered when a <pdffunction:funcname /> tag is used in the PDF
  209.  * Converter and funcname is not a {@link Cezpdf} method
  210.  */
  211. define("PDERROR_PDF_METHOD_DOESNT_EXIST",42);
  212. /**
  213.  * warning triggered when a <pdffunction:funcname arg=$tempvar/> tag is used in the PDF
  214.  * Converter and "tempvar" is not set from the return of a previous pdffunction tag
  215.  */
  216. define("PDERROR_PDF_TEMPVAR_DOESNT_EXIST",43);
  217. /**
  218.  * warning triggered when a subsection's title is asked for, but the subsection is not found
  219.  */
  220. define("PDERROR_TUTORIAL_SUBSECTION_NOT_FOUND",44);
  221. /**
  222.  * warning triggered when a subsection's title is asked for, but the subsection is not found
  223.  */
  224. define("PDERROR_UNTERMINATED_ATTRIB",45);
  225. /**
  226.  * warning triggered when no @package tag is used in a page-level or class-level DocBlock
  227.  */
  228. define("PDERROR_NO_PACKAGE_TAG",46);
  229. /**
  230.  * warning triggered when no @access private tag is used in a global variable/method/var
  231.  * with _ as first char in name and --pear was specified
  232.  */
  233. define("PDERROR_PRIVATE_ASSUMED",47);
  234. /**
  235.  * warning triggered when an example's path from @example /path/to/example.php
  236.  * is not found
  237.  */
  238. define("PDERROR_EXAMPLE_NOT_FOUND",48);
  239. /**
  240.  * warning triggered when an example's path from @example /path/to/example.php
  241.  * is not found
  242.  */
  243. define("PDERROR_NO_CONVERTER_HANDLER",49);
  244. /**
  245.  * warning triggered when an example's path from @example /path/to/example.php
  246.  * is not found
  247.  */
  248. define("PDERROR_INLINETAG_IN_SEE",50);
  249. /**
  250.  * warning triggered when an id attribute in a tutorial docbook tag is not
  251.  * an {@}id} inline tag
  252.  */
  253. define("PDERROR_ID_MUST_BE_INLINE",51);
  254. /**
  255.  * warning triggered when an {@}internal}} tag is not closed
  256.  */
  257. define("PDERROR_INTERNAL_NOT_CLOSED",52);
  258. /**
  259.  * warning triggered when an {@}source} tag is found in a short description
  260.  */
  261. define("PDERROR_SOURCE_TAG_IGNORED",53);
  262. /**
  263.  * warning triggered when a child converter doesn't override getFormattedClassTrees()
  264.  */
  265. define("PDERROR_CONVERTER_OVR_GFCT",54);
  266. /**
  267.  * warning triggered when a package is already associated with a category, and
  268.  * a new association is found
  269.  */
  270. define("PDERROR_PACKAGECAT_SET",55);
  271. /**
  272.  * warning triggered when text in a docblock list is not contained in
  273.  * an <<li>> opening tag
  274.  */
  275. define("PDERROR_TEXT_OUTSIDE_LI",56);
  276. /**
  277.  * warning triggered when a DocBlock html tag is unclosed
  278.  */
  279. define("PDERROR_UNCLOSED_TAG",57);
  280. /**
  281.  * warning triggered by @filesource, if PHP < 4.3.0
  282.  */
  283. define("PDERROR_TAG_NOT_HANDLED",58);
  284. /**
  285.  * warning triggered by sourcecode="on", if PHP < 4.3.0
  286.  */
  287. define("PDERROR_SOURCECODE_IGNORED",59);
  288. /**
  289.  * warning triggered by an empty tag
  290.  */
  291. define("PDERROR_MALFORMED_TAG",60);
  292. /**
  293.  * warning triggered by more than 1 @category tag
  294.  */
  295. define("PDERROR_MULTIPLE_CATEGORY_TAGS",61);
  296. /**
  297.  * warning triggered by {@}inheritdoc} in a non-inheritable situation
  298.  */
  299. define("PDERROR_INHERITDOC_DONT_WORK_HERE",62);
  300. /**
  301.  * warning triggered by @example path/to/example with no title
  302.  */
  303. define("PDERROR_EMPTY_EXAMPLE_TITLE",63);
  304. /**
  305.  * warning triggered by non-existent template directory
  306.  */
  307. define("PDERROR_TEMPLATEDIR_DOESNT_EXIST",64);
  308. /**
  309.  * warning triggered by an unterminated entity in a tutorial
  310.  */
  311. define("PDERROR_UNTERMINATED_ENTITY",65);
  312. /**
  313.  * warning triggered by an unterminated entity in a tutorial
  314.  */
  315. define("PDERROR_BEAUTIFYING_FAILED",66);
  316. /**
  317.  * warning triggered by a function with no name
  318.  *
  319.  * <pre>
  320.  * function ($params)
  321.  * {
  322.  * }
  323.  * </pre>
  324.  * triggers this error
  325.  */
  326. define("PDERROR_FUNCTION_HAS_NONAME",67);
  327. /**
  328.  * warning triggered by a page-level docblock preceding a source element
  329.  *
  330.  * <code>
  331.  * <?php
  332.  * /**
  333.  *  * Page-level DocBlock
  334.  *  * @package pagepackage
  335.  *  *{@*} 
  336.  * include 'file.php';
  337.  * </code>
  338.  */
  339. define("PDERROR_DOCBLOCK_CONFLICT"68);
  340. /**
  341.  * warning triggered when a file does not contain a page-level docblock
  342.  */
  343. define("PDERROR_NO_PAGE_LEVELDOCBLOCK"69);
  344. /**
  345.  * warning triggered when the first docblock in a file with a @package tag
  346.  * precedes a class.  In this case, the class gets the docblock.
  347.  */
  348. define("PDERROR_DOCBLOCK_GOES_CLASS"70);
  349. /**
  350.  * warning triggered in tutorial parsing if there is a missing {@id} inline tag
  351.  */
  352. define("PDERROR_NO_DOCBOOK_ID"71);
  353. /**
  354.  * warning triggered if someone brilliant tries "class X extends X {"
  355.  */
  356. define("PDERROR_CANNOT_EXTEND_SELF"72);
  357. /**
  358.  * warning triggered by improper "@uses {@link blah}"
  359.  */
  360. define("PDERROR_DUMB_USES",73);
  361. /**
  362.  * warning triggered if <<ul>> is nested inside <<ul>> and not <<li>>
  363.  */
  364. define("PDERROR_UL_IN_UL"74);
  365. /**
  366.  * warning triggered if a command line option does not have a valid value passed in
  367.  */
  368. define("PDERROR_INVALID_VALUES"75);
  369. /**
  370.  * warning triggered when {@}internal}} is nested inside another {@}internal}}
  371.  */
  372. define("PDERROR_NESTED_INTERNAL"76);
  373. /**
  374.  * warning triggered when @todo is used on an include element
  375.  */
  376. define("PDERROR_NOTODO_INCLUDE"77);
  377.  
  378. /**
  379.  * Error messages for phpDocumentor parser warnings
  380.  * @global array $GLOBALS['phpDocumentor_warning_descrip'] 
  381.  * @name $phpDocumentor_warning_descrip
  382.  */
  383. $GLOBALS['phpDocumentor_warning_descrip'=
  384.     array(
  385.         PDERROR_MULTIPLE_PARENT => 'Class %s has multiple possible parents, package inheritance aborted',
  386.         PDERROR_PARENT_NOT_FOUND => 'Class %s parent %s not found',
  387.         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',
  388.         PDERROR_UNKNOWN_TAG => 'Unknown tag "@%s" used',
  389.         PDERROR_IGNORE_TAG_IGNORED => '@ignore tag used for %s element "%s" will be ignored',
  390.         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.',
  391.         PDERROR_PARSEPRIVATE => "entire page %s ignored because of @access private.\nChoose -pp to enable parsing of private elements",
  392.         PDERROR_CLASS_PARENT_NOT_FOUND => "class %s in package %s parent not found in @see parent::%s",
  393.         PDERROR_CLASS_NOT_IN_PACKAGE => "class %s was not found in package %s",
  394.         PDERROR_DB_TEMPLATE_UNTERMINATED => "docblock template never terminated with /**#@-*/",
  395.         PDERROR_PDF_METHOD_DOESNT_EXIST => '<pdffunction:%s /> called, but pdf method "%s" doesn\'t exist',
  396.         PDERROR_TUTORIAL_NOT_FOUND => "tutorial \"%s\" not found, does it exist?",
  397.         PDERROR_CHILD_TUTORIAL_NOT_FOUND => 'child tutorial "%s" listed in %s not found in parent package "%s" subpackage "%s"',
  398.         PDERROR_TUTORIAL_SUBSECTION_NOT_FOUND => 'tutorial %s subsection "%s" doesn\'t exist, but its title was asked for',
  399.         PDERROR_NO_PACKAGE_TAG => 'no @package tag was used in a DocBlock for %s %s',
  400.         PDERROR_PRIVATE_ASSUMED => '%s "%s" is assumed to be @access private because its name starts with _, but has no @access tag',
  401.         PDERROR_EXAMPLE_NOT_FOUND => 'example file "%s" does not exist',
  402.         PDERROR_SOURCE_TAG_IGNORED => '{@source} can only be used in the long description, not in the short description: "%s"',
  403.         PDERROR_PACKAGECAT_SET => 'package %s is already in category %s, will now replace with category %s',
  404.         PDERROR_SOURCECODE_IGNORED => 'sourcecode command-line option is ignored for PHP versions < 4.3.0',
  405.         PDERROR_INHERITDOC_DONT_WORK_HERE => '{@inheritdoc} can only be used in the docblock of a child class',
  406.         PDERROR_EMPTY_EXAMPLE_TITLE => 'Example file found at "%s" has no title, using "%s"',
  407.         PDERROR_DOCBLOCK_CONFLICT => 'Page-level DocBlock precedes "%s %s", use another DocBlock to document the source element',
  408.         PDERROR_NO_PAGE_LEVELDOCBLOCK => 'File "%s" has no page-level DocBlock, use @package in the first DocBlock to create one',
  409.         PDERROR_DOCBLOCK_GOES_CLASS => 'DocBlock would be page-level, but precedes class "%s", use another DocBlock to document the file',
  410.         PDERROR_NO_DOCBOOK_ID => 'Tutorial section %s "%s" has no id="{@id subsection}" tag ({@id} for refentry)',
  411.         PDERROR_BEAUTIFYING_FAILED => 'Beautifying failed: %s',
  412.         PDERROR_NOTODO_INCLUDE => '@todo on an include element is ignored (line %s, file %s)',
  413.         );
  414.  
  415.  
  416.  
  417. //********************************************************
  418.  
  419.  
  420.  
  421. /**
  422.  * Error messages for phpDocumentor parser errors
  423.  * @global array $GLOBALS['phpDocumentor_error_descrip'] 
  424.  * @name $phpDocumentor_error_descrip
  425.  */
  426. $GLOBALS['phpDocumentor_error_descrip'
  427.     array(
  428.         PDERROR_UNTERMINATED_INLINE_TAG => 'Inline tag {@%s} in tag %s is unterminated, "%s"',
  429.         PDERROR_CLASS_EXISTS => 'Class %s already exists in package "%s"',
  430.         PDERROR_CONVERTER_NOT_FOUND => 'Converter %s specified by --output command-line option is not a class',
  431.         PDERROR_NO_CONVERTERS => 'No Converters have been specified by --output command-line option',
  432.         PDERROR_ACCESS_WRONG_PARAM => '@access was passed neither "public" nor "private."  Was passed: "%s"',
  433.         PDERROR_MULTIPLE_ACCESS_TAGS => 'DocBlock has multiple @access tags, illegal. ignoring additional tag "@access %s"',
  434.         PDERROR_MULTIPLE_RETURN_TAGS => 'DocBlock has multiple @return tags, illegal. ignoring additional tag "@return %s %s"',
  435.         PDERROR_MULTIPLE_VAR_TAGS => 'DocBlock has multiple @var tags, illegal. ignoring additional tag "@var %s %s"',
  436.         PDERROR_MULTIPLE_PACKAGE_TAGS => 'DocBlock has multiple @package tags, illegal. ignoring additional tag "@package %s"',
  437.         PDERROR_MULTIPLE_SUBPACKAGE_TAGS => 'DocBlock has multiple @subpackage tags, illegal. ignoring additional tag "@subpackage %s"',
  438.         PDERROR_ILLEGAL_PACKAGENAME => '@%s tag has illegal %s name "%s"',
  439.         PDERROR_OVERRIDDEN_PACKAGE_TAGS => '%s %s\'s DocBlock has @package tag, illegal. ignoring tag "@package %s"',
  440.         PDERROR_OVERRIDDEN_SUBPACKAGE_TAGS => '"%s" %s\'s DocBlock has @subpackage tags, illegal. ignoring tag "@subpackage %s"',
  441.         PDERROR_CLASS_CONFLICT => 'class "%s" has multiple declarations in package %s, in file %s and file %s, documentation will have output errors!',
  442.         PDERROR_MULTIPLE_NAME_TAGS => 'DocBlock has multiple @name tags, illegal. ignoring additional tag "@name %s"',
  443.         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',
  444.         PDERROR_GLOBAL_NOT_FOUND => 'global variable %s specified in @global tag was never found',
  445.         PDERROR_MULTIPLE_GLOBAL_TAGS => '@global define tag already used for global variable "%s", ignoring @global %s',
  446.         PDERROR_MALFORMED_GLOBAL_TAG => 'incorrect @global syntax.  Should be @global vartype $varname or @global vartype description',
  447.         PDERROR_UNKNOWN_COMMANDLINE => 'Unknown command-line option "%s" encountered, use phpdoc -h for help',
  448.         PDERROR_NEED_WHITESPACE => 'phpDocumentor programmer error - wordparser whitespace set to false in handleDocBlock, notify developers.  You should never see this error',
  449.         PDERROR_SOURCE_TAG_FUNCTION_NOT_FOUND => '{@source} tag used in a docblock that isn\'t preceding a function',
  450.         PDERROR_UNMATCHED_LIST_TAG => 'unmatched ol or ul tag in DocBlock, parsing will be incorrect',
  451.         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)',
  452.         PDERROR_UNMATCHED_TUTORIAL_TAG => 'While parsing extended documentation, "%s" tag was matched with "%s" endtag, missing endtag'."\ntag contents:\"%s\"",
  453.         PDERROR_CANT_HAVE_INLINE_IN_TAGNAME => 'Can\'t have an inline tag inside a package page XML tag!',
  454.         PDERROR_TUTORIAL_IS_OWN_CHILD => 'Tutorial %s lists itself as its own child in %s, illegal',
  455.         PDERROR_TUTORIAL_IS_OWN_GRANDPA => 'Tutorial %s\'s child %s lists %s as its child in %s, illegal',
  456.         PDERROR_PDFFUNCTION_NO_FUNC => 'Invalid pdffunction syntax: "<pdffunction: />", should be "<pdffunction:functionname [arg="value"...]/>"',
  457.         PDERROR_PDF_TEMPVAR_DOESNT_EXIST => '<pdffunction:%s arg=%s /> called but temporary variable "%s" doesn\'t exist',
  458.         PDERROR_UNTERMINATED_ATTRIB => 'Tutorial tag %s attribute %s is unterminated, current value "%s"',
  459.         PDERROR_NO_CONVERTER_HANDLER => 'Handler for element of type "%s" called, but %s is not a method of %s',
  460.         PDERROR_INLINETAG_IN_SEE => 'Inline tags are not allowed in a @see tag',
  461.         PDERROR_ID_MUST_BE_INLINE => '<%s id="%s"> must be <%s id="{@id %s}">',
  462.         PDERROR_INTERNAL_NOT_CLOSED => '{@internal was never terminated with }}',
  463.         PDERROR_CONVERTER_OVR_GFCT => 'Converter "%s" must override getFormattedClassTrees() but doesn\'t',
  464.         PDERROR_TEXT_OUTSIDE_LI => 'Text cannot be outside of li tag in a DocBlock list, parsing will be incorrect',
  465.         PDERROR_UNCLOSED_TAG => 'Unclosed %s tag in DocBlock, parsing will be incorrect',
  466.         PDERROR_TAG_NOT_HANDLED => '"%s" tag is not available in PHP versions less than 4.3.0, tag ignored',
  467.         PDERROR_MALFORMED_TAG => '"%s" tag was used without any parameters, illegal',
  468.         PDERROR_MULTIPLE_CATEGORY_TAGS => 'package has multiple @category tags, ignoring "@category %s"',
  469.         PDERROR_TEMPLATEDIR_DOESNT_EXIST => 'template directory "%s" does not exist',
  470.         PDERROR_UNTERMINATED_ENTITY => 'entity &%s is unterminated',
  471.         PDERROR_FUNCTION_HAS_NONAME => 'function has no name (PHP error - test your file before parsing!)',
  472.         PDERROR_CANNOT_EXTEND_SELF => 'class %s cannot extend itself - TEST YOUR CODE BEFORE PARSING',
  473.         PDERROR_DUMB_USES => '@uses can only link to string data',
  474.         PDERROR_UL_IN_UL => 'ul/ol tags cannot be directly nested inside ul/ol, nest inside li',
  475.         PDERROR_INVALID_VALUES => 'command %s was passed "%s" but must be one of %s',
  476.         PDERROR_NESTED_INTERNAL => '{@internal}} cannot be nested inside {@internal}}',
  477.         );
  478.  
  479. /**
  480.  * encapsulates warning information
  481.  * @package phpDocumentor
  482.  * @subpackage Errors
  483.  */
  484. {
  485.     /**
  486.      * name of global variable that descriptors for this warning/error is kept
  487.      * @var string 
  488.      */
  489.     var $type = 'phpDocumentor_warning_descrip';
  490.     /**
  491.      * file this error occurred in
  492.      * @var string 
  493.      */
  494.     var $file = false;
  495.     /**
  496.      * line number of the file this error occurred in
  497.      * @var integer 
  498.      */
  499.     var $linenum;
  500.     /**
  501.      * error string
  502.      * @var string 
  503.      */
  504.     var $data;
  505.     /**
  506.      * error number
  507.      * @see Errors.inc
  508.      * @var string 
  509.      */
  510.     var $num;
  511.     /**
  512.      * @param string $file filename this error occurred in ({@link $file})
  513.      * @param integer $linenum line number this error occurred on ({@link $linenum})
  514.      * @param integer $num Error number defined in {@link Errors.inc}
  515.      * @param string $data... variable number of strings, up to 4, to sprintf based on the error number
  516.      */
  517.     function RecordWarning($file,$linenum,$num)
  518.     {
  519.         $this->file = $file;
  520.         $this->linenum = $linenum;
  521.         $a array('','','','');
  522.         if (func_num_args()>3)
  523.         {
  524.             for($i=3;$i<func_num_args();$i++)
  525.             {
  526.                 $a[$i 3func_get_arg($i);
  527.             }
  528.         }
  529.  
  530.         $this->num = $num;
  531.         $this->data = sprintf($GLOBALS[$this->type][$this->num],$a[0],$a[1],$a[2],$a[3]);
  532.         $this->output();
  533.     }
  534.     
  535.     /**
  536.      * prints the warning
  537.      */
  538.     function output($string false)
  539.     {
  540.         if ($string)
  541.         {
  542.             if ($this->file)
  543.             return "WARNING in $this->file on line $this->linenum$this->data\n";
  544.             else
  545.             return "WARNING$this->data\n";
  546.         }
  547.         if ($this->file)
  548.         phpDocumentor_out("WARNING in $this->file on line $this->linenum$this->data\n");
  549.         else
  550.         phpDocumentor_out("WARNING$this->data\n");
  551.         flush();
  552.     }
  553. }
  554.  
  555. /**
  556.  * encapsulates error information
  557.  * @package phpDocumentor
  558.  * @subpackage Errors
  559.  */
  560. class RecordError extends RecordWarning
  561. {
  562.     /**
  563.      * name of global variable that descriptors for this warning/error is kept
  564.      * @var string 
  565.      */
  566.     var $type = 'phpDocumentor_error_descrip';
  567.  
  568.     /**
  569.      * prints the error
  570.      */
  571.     function output($string false)
  572.     {
  573.         if ($string)
  574.         {
  575.             if ($this->file)
  576.             return "\n\tERROR in $this->file on line $this->linenum$this->data\n";
  577.             else
  578.             return "\n\tERROR$this->data\n";
  579.         }
  580.         if ($this->file)
  581.         phpDocumentor_out("\n\tERROR in $this->file on line $this->linenum$this->data\n");
  582.         else
  583.         phpDocumentor_out("\n\tERROR$this->data\n");
  584.         flush();
  585.     }
  586. }
  587.  
  588. /**
  589.  * contains all the errors/warnings
  590.  * @see $errors, $warnings
  591.  * @package phpDocumentor
  592.  * @subpackage Errors
  593.  */
  594. {
  595.     /**
  596.      * array of {@link RecordError}s
  597.      * @var array 
  598.      */
  599.     var $errors = array();
  600.     /**
  601.      * array of {@link RecordWarning}s
  602.      * @var array 
  603.      */
  604.     var $warnings = array();
  605.     /**
  606.      * @var string 
  607.      */
  608.     var $curfile = '';
  609.     /**
  610.      * @var integer 
  611.      */
  612.     var $linenum = 0;
  613.     
  614.     /**
  615.      * index in {@link $errors} of last error triggered
  616.      * @var integer|false
  617.      */
  618.     var $lasterror = false;
  619.     
  620.     /**
  621.      * index in {@link $warnings} of last warning triggered
  622.      * @var integer|false
  623.      */
  624.     var $lastwarning = false;
  625.     
  626.     /**
  627.      * This function subscribes to two events in the Parser in order to keep track of line number information and file name.
  628.      * @param integer $num parser-passed event (see {@link PHPDOCUMENTOR_EVENT_NEWLINENUM, PHPDOCUMENTOR_EVENT_NEWFILE})
  629.      * @param mixed $data either a line number if $num is PHPDOCUMENTOR_EVENT_NEWLINENUM or a file name if $num is PHPDOCUMENTOR_EVENT_NEWFILE
  630.      */
  631.     function handleEvent($num,$data)
  632.     {
  633.         switch($num)
  634.         {
  635.             case PHPDOCUMENTOR_EVENT_NEWLINENUM :
  636.                 $this->linenum = $data;
  637.             break;
  638.             case PHPDOCUMENTOR_EVENT_NEWFILE :
  639.                 $this->linenum = 0;
  640.                 $this->curfile = $data;
  641.             break;
  642.             // debugging
  643.             case 1000000635 :
  644.                 phpDocumentor_out($this->curfile.' has '.$this->linenum.' lines'."\n");
  645.                 flush();
  646.             break;
  647.         }
  648.     }
  649.  
  650.     /**
  651.      * add a new warning to the {@link $warnings} array
  652.      * @param integer $num error number from {@link Errors.inc}
  653.      * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num
  654.      */
  655.     function addWarning($num)
  656.     {
  657.         $a array('','','','');
  658.         if (func_num_args()>1)
  659.         {
  660.             for($i=1;$i<func_num_args();$i++)
  661.             {
  662.                 $a[$i 1func_get_arg($i);
  663.             }
  664.         }
  665.         $this->warnings[new RecordWarning($this->curfile,$this->linenum,$num,$a[0],$a[1],$a[2],$a[3]);
  666.         $this->lastwarning = count($this->warnings1;
  667.     }
  668.  
  669.     /**
  670.      * add a new error to the {@link $errors} array
  671.      * @param integer $num error number from {@link Errors.inc}
  672.      * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num
  673.      */
  674.     function addError($num)
  675.     {
  676.         $a array('','','','');
  677.         if (func_num_args()>1)
  678.         {
  679.             for($i=1;$i<func_num_args();$i++)
  680.             {
  681.                 $a[$i 1func_get_arg($i);
  682.             }
  683.         }
  684.         $this->errors[new RecordError($this->curfile,$this->linenum,$num,$a[0],$a[1],$a[2],$a[3]);
  685.         $this->lasterror = count($this->errors1;
  686.     }
  687.     
  688.     /**
  689.      * add a new error to the {@link $errors} array and returns the error string
  690.      * @param integer $num error number from {@link Errors.inc}
  691.      * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num
  692.      */
  693.     function addErrorReturn($num)
  694.     {
  695.         $a array('','','','');
  696.         if (func_num_args()>1)
  697.         {
  698.             for($i=1;$i<func_num_args();$i++)
  699.             {
  700.                 $a[$i 1func_get_arg($i);
  701.             }
  702.         }
  703.         $this->errors[new RecordError($this->curfile,$this->linenum,$num,$a[0],$a[1],$a[2],$a[3],false);
  704.         $this->lasterror = count($this->errors1;
  705.     }
  706.     
  707.     /**
  708.      * Get sorted array of all warnings in parsing/conversion
  709.      * @return array 
  710.      */
  711.     function &returnWarnings()
  712.     {
  713.         usort($this->warnings,array($this,"errorsort"));
  714.         return $this->warnings;
  715.     }
  716.     
  717.     /**
  718.      * Get sorted array of all non-fatal errors in parsing/conversion
  719.      * @return array 
  720.      */
  721.     function &returnErrors()
  722.     {
  723.         usort($this->errors,array($this,"errorsort"));
  724.         return $this->errors;
  725.     }
  726.     
  727.     /**
  728.      * @access private
  729.      * @param RecordError|RecordWarning
  730.      * @param RecordError|RecordWarning
  731.      */
  732.     function errorsort($a$b)
  733.     {
  734.         if (!$a->filereturn -1;
  735.         if (!$b->filereturn 1;
  736.         if ($a->file == $b->file)
  737.         {
  738.             if ($a->linenum == $b->linenumreturn 0;
  739.             if ($a->linenum $b->linenumreturn -1;
  740.             return 1;
  741.         }
  742.         return strnatcasecmp($a->file,$b->file);
  743.     }
  744.     
  745.     /**
  746.      * Get the error message of the last error
  747.      * @return string 
  748.      */
  749.     function returnLastError()
  750.     {
  751.         return $this->errors[$this->lasterror]->output(true);
  752.     }
  753.  
  754.     /**
  755.      * Get the warning message of the last warning
  756.      * @return string 
  757.      */
  758.     function returnLastWarning()
  759.     {
  760.         return $this->warnings[$this->lastwarning]->output(true);
  761.     }
  762. }
  763.  
  764. /**
  765.  * @global ErrorTracker $GLOBALS['phpDocumentor_errors'] 
  766.  * @name $phpDocumentor_errors
  767.  */
  768. $GLOBALS['phpDocumentor_errors'new ErrorTracker;
  769.  
  770. /**
  771.  * @param integer $num error number from {@link Errors.inc}
  772.  * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num
  773.  * @see ErrorTracker::addError()
  774.  */
  775. function addError($num)
  776. {
  777.     global $phpDocumentor_errors;
  778.     $a array('','','','');
  779.     if (func_num_args()>1)
  780.     {
  781.         for($i=1;$i<func_num_args();$i++)
  782.         {
  783.             $a[$i 1func_get_arg($i);
  784.         }
  785.     }
  786.     $phpDocumentor_errors->addError($num,$a[0],$a[1],$a[2],$a[3]);
  787. }
  788.  
  789. /**
  790.  * like {@link addError()} but exits parsing
  791.  * @param integer $num error number from {@link Errors.inc}
  792.  * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num
  793.  * @global ErrorTracker repository for all errors generated by phpDocumentor
  794.  * @see ErrorTracker::addError()
  795.  */
  796. function addErrorDie($num)
  797. {
  798.     global $phpDocumentor_errors;
  799.     $a array('','','','');
  800.     if (func_num_args()>1)
  801.     {
  802.         for($i=1;$i<func_num_args();$i++)
  803.         {
  804.             $a[$i 1func_get_arg($i);
  805.         }
  806.     }
  807.     $phpDocumentor_errors->addErrorReturn($num,$a[0],$a[1],$a[2],$a[3]);
  808.     die($phpDocumentor_errors->returnLastError());
  809. }
  810.  
  811. /**
  812.  * @param integer $num warning number from {@link Errors.inc}
  813.  * @param string $data... up to 4 string parameters to sprintf() into the error string for error number $num
  814.  * @global ErrorTracker repository for all errors generated by phpDocumentor
  815.  * @see ErrorTracker::addWarning()
  816.  */
  817. function addWarning($num)
  818. {
  819.     global $phpDocumentor_errors;
  820.     $a array('','','','');
  821.     if (func_num_args()>1)
  822.     {
  823.         for($i=1;$i<func_num_args();$i++)
  824.         {
  825.             $a[$i 1func_get_arg($i);
  826.         }
  827.     }
  828.  
  829.     $phpDocumentor_errors->addWarning($num,$a[0],$a[1],$a[2],$a[3]);
  830. }
  831. ?>

Documentation generated on Tue, 24 Oct 2006 09:22:26 -0500 by phpDocumentor 1.3.1