<?xml version="1.0"?>
<?xml-stylesheet
href="http://www.w3.org/2000/08/w3c-synd/style.css" type="text/css"
?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel rdf:about="http://pear.php.net/bugs/search.php">
    <title>PEAR Bug Search Results</title>
    <link>http://pear.php.net/bugs/search.php?cmd=display&amp;package_name%5B0%5D=PHP_Parser</link>
    <description>Search Results</description>
    <dc:language>en-us</dc:language>
    <dc:creator>pear-webmaster@lists.php.net</dc:creator>
    <dc:publisher>pear-webmaster@lists.php.net</dc:publisher>
    <admin:generatorAgent rdf:resource="http://pear.php.net/bugs"/>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
    <items>
     <rdf:Seq>
      <rdf:li rdf:resource="http://pear.php.net/bug/19980" />
      <rdf:li rdf:resource="http://pear.php.net/bug/13998" />
      <rdf:li rdf:resource="http://pear.php.net/bug/13092" />
      <rdf:li rdf:resource="http://pear.php.net/bug/11316" />

     </rdf:Seq>
    </items>
  </channel>

  <image rdf:about="http://pear.php.net/gifs/pearsmall.gif">
    <title>PEAR Bugs</title>
    <url>http://pear.php.net/gifs/pearsmall.gif</url>
    <link>http://pear.php.net/bugs</link>
  </image>

    <item rdf:about="http://pear.php.net/bug/19980">
      <title>PHP_Parser: Bug 19980 [Open] missing deps</title>
      <link>http://pear.php.net/bugs/19980</link>
      <content:encoded><![CDATA[<pre>PHP_Parser Bug
Reported by spuhler
2013-06-17T06:55:09+00:00
PHP: Irrelevant OS: Linux Package Version: 

Description:
------------
using pear-make-rpm-spec doesn't list requires that provide these files:

pear(PEAR/PackageFileManager.php) not found
pear(PHP/Parser/DocblockParser.php) not found
pear(PHP/Parser/DocblockParser/Tokenizer.php)  not found</pre>]]></content:encoded>
      <description><![CDATA[<pre>PHP_Parser Bug
Reported by spuhler
2013-06-17T06:55:09+00:00
PHP: Irrelevant OS: Linux Package Version: 

Description:
------------
using pear-make-rpm-spec doesn't list requires that provide these files:

pear(PEAR/PackageFileManager.php) not found
pear(PHP/Parser/DocblockParser.php) not found
pear(PHP/Parser/DocblockParser/Tokenizer.php)  not found</pre>]]></description>
      <dc:date>2013-06-17T22:16:03+00:00</dc:date>
      <dc:creator>thomas &amp;#x61;&amp;#116; btspuhler &amp;#x64;&amp;#111;&amp;#x74; com</dc:creator>
      <dc:subject>PHP_Parser Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/13998">
      <title>PHP_Parser: Bug 13998 [Open] Parser tries to parse pass '__halt_compiler()' directive</title>
      <link>http://pear.php.net/bugs/13998</link>
      <content:encoded><![CDATA[<pre>PHP_Parser Bug
Reported by jldupont
2008-05-28T01:02:43+00:00
PHP: 5.2.4 OS: Windows Package Version: 0.2.1

Description:
------------
The parser tries to parse pass a '__halt_compiler()' directive which generates an exception when the content isn't PHP code.

Test script:
---------------
&lt;?php
require 'PHP/Parser.php';

$content = file_get_contents( __FILE__ );

$result = PHP_Parser::parse( $content );

__halt_compiler();

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

Actual result:
--------------
Syntax Error on line 51: token '&lt;' while parsing rule:End of Input top_statement_list T_HALT_COMPILER LPAREN RPAREN SEMI 
Fatal error: Uncaught exception 'Exception' with message 'Unexpected LESSTHAN(&lt;), expected one of: T_INCLUDE,T_INCLUDE_ONCE,T_EVAL,T_REQUIRE,T_REQUIRE_ONCE,...' in C:\xampp\php\PEAR\PHP\Parser\Core.php:7102
Stack trace:
#0 C:\xampp\php\PEAR\PHP\Parser\Core.php(7204): PHP_Parser_Core-&gt;yy_syntax_error(34, '&lt;')
#1 C:\xampp\php\PEAR\PHP\Parser.php(251): PHP_Parser_Core-&gt;doParse(34, '&lt;', Object(PHP_Parser_Tokenizer))
#2 C:\Documents and Settings\Jean-Lou Dupont\My Documents\workspace_e\php-aop\trunk\tests\PHP_Parser\php_parser.php(7): PHP_Parser::parse('&lt;?php??/*?? * @...')
#3 {main}
  thrown in C:\xampp\php\PEAR\PHP\Parser\Core.php on line 7102</pre>]]></content:encoded>
      <description><![CDATA[<pre>PHP_Parser Bug
Reported by jldupont
2008-05-28T01:02:43+00:00
PHP: 5.2.4 OS: Windows Package Version: 0.2.1

Description:
------------
The parser tries to parse pass a '__halt_compiler()' directive which generates an exception when the content isn't PHP code.

Test script:
---------------
&lt;?php
require 'PHP/Parser.php';

$content = file_get_contents( __FILE__ );

$result = PHP_Parser::parse( $content );

__halt_compiler();

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

Actual result:
--------------
Syntax Error on line 51: token '&lt;' while parsing rule:End of Input top_statement_list T_HALT_COMPILER LPAREN RPAREN SEMI 
Fatal error: Uncaught exception 'Exception' with message 'Unexpected LESSTHAN(&lt;), expected one of: T_INCLUDE,T_INCLUDE_ONCE,T_EVAL,T_REQUIRE,T_REQUIRE_ONCE,...' in C:\xampp\php\PEAR\PHP\Parser\Core.php:7102
Stack trace:
#0 C:\xampp\php\PEAR\PHP\Parser\Core.php(7204): PHP_Parser_Core-&gt;yy_syntax_error(34, '&lt;')
#1 C:\xampp\php\PEAR\PHP\Parser.php(251): PHP_Parser_Core-&gt;doParse(34, '&lt;', Object(PHP_Parser_Tokenizer))
#2 C:\Documents and Settings\Jean-Lou Dupont\My Documents\workspace_e\php-aop\trunk\tests\PHP_Parser\php_parser.php(7): PHP_Parser::parse('&lt;?php??/*?? * @...')
#3 {main}
  thrown in C:\xampp\php\PEAR\PHP\Parser\Core.php on line 7102</pre>]]></description>
      <dc:date>2008-05-28T01:02:43+00:00</dc:date>
      <dc:creator>pear &amp;#x61;&amp;#116; jldupont &amp;#x64;&amp;#111;&amp;#x74; com</dc:creator>
      <dc:subject>PHP_Parser Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/13092">
      <title>PHP_Parser: Bug 13092 [Verified] $lastcom undefined in Core.y line 1085</title>
      <link>http://pear.php.net/bugs/13092</link>
      <content:encoded><![CDATA[<pre>PHP_Parser Bug
Reported by shangxiao
2008-02-09T10:23:27+00:00
PHP: 5.2.5 OS: Mac OS X 10.4 Package Version: 0.2.1

Description:
------------
It appears that $lastcom needs to be defined with $this-&gt;lex-
&gt;getLastComment() on line 1085 in Core.y.</pre>]]></content:encoded>
      <description><![CDATA[<pre>PHP_Parser Bug
Reported by shangxiao
2008-02-09T10:23:27+00:00
PHP: 5.2.5 OS: Mac OS X 10.4 Package Version: 0.2.1

Description:
------------
It appears that $lastcom needs to be defined with $this-&gt;lex-
&gt;getLastComment() on line 1085 in Core.y.</pre>]]></description>
      <dc:date>2008-10-26T08:45:40+00:00</dc:date>
      <dc:creator>shang &amp;#x64;&amp;#111;&amp;#x74; xiao &amp;#x64;&amp;#111;&amp;#x74; sanders &amp;#x61;&amp;#116; gmail &amp;#x64;&amp;#111;&amp;#x74; com</dc:creator>
      <dc:subject>PHP_Parser Bug</dc:subject>
    </item>
    <item rdf:about="http://pear.php.net/bug/11316">
      <title>PHP_Parser: Feature/Change Request 11316 [Open] 'doc' will set null when an doc-comment placed before the declaretion</title>
      <link>http://pear.php.net/bugs/11316</link>
      <content:encoded><![CDATA[<pre>PHP_Parser Feature/Change Request
Reported by hshimooka
2007-06-14T15:44:39+00:00
PHP: 5.2.2 OS: CentOS4.5 Package Version: 0.2.0

Description:
------------
An element 'doc' will be set null when an doc-comment placed before the function/method declaretion, but set the doc-comment when placed after the declaretion.

Test script:
---------------
o test.php
&lt;?php
require_once 'Parser.php';
$r = PHP_Parser::staticParseFile('mini.php');
$data = $r-&gt;data;
var_dump($data);


o mini.php
&lt;?php
/**
 * hogehoge
 */
class testClass {
    /**
     * @var $_type
     * @string
     */
    var $_type;

    /**
     * setType1
     * @param int $type
     */
    function setType1($type = null)
    {
        $this-&gt;_type = $type;
    }

    function setType2($type = null)
    {
        $this-&gt;_type = $type;
    }
    /**
     * setType2
     * @param int $type
     */
}

/**
 * setType3
 * @param int $type
 */
function setType3($type = null)
{
    $this-&gt;_type = $type;
}

function setType4($type = null)
{
    $this-&gt;_type = $type;
}
/**
 * setType4
 * @param int $type
 */


Expected result:
----------------
The doc-comment string will be set.

Actual result:
--------------
array
  0 =&gt; 
    array
      'type' =&gt; string 'class' (length=5)
      'startline' =&gt; int 5
      'endline' =&gt; int 35
      'modifiers' =&gt; 
        array
          empty
      'name' =&gt; string 'testClass' (length=9)
      'extends' =&gt; 
        array
          empty
      'implements' =&gt; 
        array
          empty
      'info' =&gt; 
        array
          0 =&gt; 
            array
              'type' =&gt; string 'var' (length=3)
              'name' =&gt; string '$_type' (length=6)
              'line' =&gt; int 10
              'default' =&gt; null
              'modifiers' =&gt; 
                array
                  0 =&gt; string 'public' (length=6)
              'doc' =&gt; string '/**
     * @var $_type
     * @string
     */' (length=45)
              'parseddoc' =&gt; null
              'docline' =&gt; int 6
          1 =&gt; 
            array
              'type' =&gt; string 'method' (length=6)
              'name' =&gt; string 'setType1' (length=8)
              'startline' =&gt; int 16
              'endline' =&gt; int 21
              'parameters' =&gt; 
                array
                  0 =&gt; 
                    array
                      'typehint' =&gt; string '' (length=0)
                      'param' =&gt; string '$type' (length=5)
                      'isreference' =&gt; boolean false
                      'default' =&gt; string 'null' (length=4)
              'modifiers' =&gt; 
                array
                  0 =&gt; string 'public' (length=6)
              'info' =&gt; 
                array
                  0 =&gt; 
                    array
                      'uses' =&gt; string 'var' (length=3)
                      'name' =&gt; string '' (length=0)
              'doc' =&gt; null
              'parseddoc' =&gt; null
              'docline' =&gt; null
          2 =&gt; 
            array
              'type' =&gt; string 'method' (length=6)
              'name' =&gt; string 'setType2' (length=8)
              'startline' =&gt; int 21
              'endline' =&gt; int 29
              'parameters' =&gt; 
                array
                  0 =&gt; 
                    array
                      'typehint' =&gt; string '' (length=0)
                      'param' =&gt; string '$type' (length=5)
                      'isreference' =&gt; boolean false
                      'default' =&gt; string 'null' (length=4)
              'modifiers' =&gt; 
                array
                  0 =&gt; string 'public' (length=6)
              'info' =&gt; 
                array
                  0 =&gt; 
                    array
                      'uses' =&gt; string 'var' (length=3)
                      'name' =&gt; string '' (length=0)
              'doc' =&gt; null
              'parseddoc' =&gt; null
              'docline' =&gt; null
      'doc' =&gt; string '/**
 * setType3
 * @param int $type
 */' (length=39)
      'parseddoc' =&gt; boolean false
      'docline' =&gt; int 31
  1 =&gt; 
    array
      'type' =&gt; string 'function' (length=8)
      'startline' =&gt; int 35
      'endline' =&gt; int 40
      'returnsref' =&gt; boolean false
      'name' =&gt; string 'setType3' (length=8)
      'parameters' =&gt; 
        array
          0 =&gt; 
            array
              'typehint' =&gt; string '' (length=0)
              'param' =&gt; string '$type' (length=5)
              'isreference' =&gt; boolean false
              'default' =&gt; string 'null' (length=4)
      'info' =&gt; 
        array
          0 =&gt; 
            array
              'uses' =&gt; string 'var' (length=3)
              'name' =&gt; string '' (length=0)
      'doc' =&gt; string '' (length=0)
      'parseddoc' =&gt; boolean false
      'docline' =&gt; int -1
  2 =&gt; 
    array
      'type' =&gt; string 'function' (length=8)
      'startline' =&gt; int 40
      'endline' =&gt; int 48
      'returnsref' =&gt; boolean false
      'name' =&gt; string 'setType4' (length=8)
      'parameters' =&gt; 
        array
          0 =&gt; 
            array
              'typehint' =&gt; string '' (length=0)
              'param' =&gt; string '$type' (length=5)
              'isreference' =&gt; boolean false
              'default' =&gt; string 'null' (length=4)
      'info' =&gt; 
        array
          0 =&gt; 
            array
              'uses' =&gt; string 'var' (length=3)
              'name' =&gt; string '' (length=0)
      'doc' =&gt; string '/**
 * setType4
 * @param int $type
 */' (length=39)
      'parseddoc' =&gt; boolean false
      'docline' =&gt; int 44</pre>]]></content:encoded>
      <description><![CDATA[<pre>PHP_Parser Feature/Change Request
Reported by hshimooka
2007-06-14T15:44:39+00:00
PHP: 5.2.2 OS: CentOS4.5 Package Version: 0.2.0

Description:
------------
An element 'doc' will be set null when an doc-comment placed before the function/method declaretion, but set the doc-comment when placed after the declaretion.

Test script:
---------------
o test.php
&lt;?php
require_once 'Parser.php';
$r = PHP_Parser::staticParseFile('mini.php');
$data = $r-&gt;data;
var_dump($data);


o mini.php
&lt;?php
/**
 * hogehoge
 */
class testClass {
    /**
     * @var $_type
     * @string
     */
    var $_type;

    /**
     * setType1
     * @param int $type
     */
    function setType1($type = null)
    {
        $this-&gt;_type = $type;
    }

    function setType2($type = null)
    {
        $this-&gt;_type = $type;
    }
    /**
     * setType2
     * @param int $type
     */
}

/**
 * setType3
 * @param int $type
 */
function setType3($type = null)
{
    $this-&gt;_type = $type;
}

function setType4($type = null)
{
    $this-&gt;_type = $type;
}
/**
 * setType4
 * @param int $type
 */


Expected result:
----------------
The doc-comment string will be set.

Actual result:
--------------
array
  0 =&gt; 
    array
      'type' =&gt; string 'class' (length=5)
      'startline' =&gt; int 5
      'endline' =&gt; int 35
      'modifiers' =&gt; 
        array
          empty
      'name' =&gt; string 'testClass' (length=9)
      'extends' =&gt; 
        array
          empty
      'implements' =&gt; 
        array
          empty
      'info' =&gt; 
        array
          0 =&gt; 
            array
              'type' =&gt; string 'var' (length=3)
              'name' =&gt; string '$_type' (length=6)
              'line' =&gt; int 10
              'default' =&gt; null
              'modifiers' =&gt; 
                array
                  0 =&gt; string 'public' (length=6)
              'doc' =&gt; string '/**
     * @var $_type
     * @string
     */' (length=45)
              'parseddoc' =&gt; null
              'docline' =&gt; int 6
          1 =&gt; 
            array
              'type' =&gt; string 'method' (length=6)
              'name' =&gt; string 'setType1' (length=8)
              'startline' =&gt; int 16
              'endline' =&gt; int 21
              'parameters' =&gt; 
                array
                  0 =&gt; 
                    array
                      'typehint' =&gt; string '' (length=0)
                      'param' =&gt; string '$type' (length=5)
                      'isreference' =&gt; boolean false
                      'default' =&gt; string 'null' (length=4)
              'modifiers' =&gt; 
                array
                  0 =&gt; string 'public' (length=6)
              'info' =&gt; 
                array
                  0 =&gt; 
                    array
                      'uses' =&gt; string 'var' (length=3)
                      'name' =&gt; string '' (length=0)
              'doc' =&gt; null
              'parseddoc' =&gt; null
              'docline' =&gt; null
          2 =&gt; 
            array
              'type' =&gt; string 'method' (length=6)
              'name' =&gt; string 'setType2' (length=8)
              'startline' =&gt; int 21
              'endline' =&gt; int 29
              'parameters' =&gt; 
                array
                  0 =&gt; 
                    array
                      'typehint' =&gt; string '' (length=0)
                      'param' =&gt; string '$type' (length=5)
                      'isreference' =&gt; boolean false
                      'default' =&gt; string 'null' (length=4)
              'modifiers' =&gt; 
                array
                  0 =&gt; string 'public' (length=6)
              'info' =&gt; 
                array
                  0 =&gt; 
                    array
                      'uses' =&gt; string 'var' (length=3)
                      'name' =&gt; string '' (length=0)
              'doc' =&gt; null
              'parseddoc' =&gt; null
              'docline' =&gt; null
      'doc' =&gt; string '/**
 * setType3
 * @param int $type
 */' (length=39)
      'parseddoc' =&gt; boolean false
      'docline' =&gt; int 31
  1 =&gt; 
    array
      'type' =&gt; string 'function' (length=8)
      'startline' =&gt; int 35
      'endline' =&gt; int 40
      'returnsref' =&gt; boolean false
      'name' =&gt; string 'setType3' (length=8)
      'parameters' =&gt; 
        array
          0 =&gt; 
            array
              'typehint' =&gt; string '' (length=0)
              'param' =&gt; string '$type' (length=5)
              'isreference' =&gt; boolean false
              'default' =&gt; string 'null' (length=4)
      'info' =&gt; 
        array
          0 =&gt; 
            array
              'uses' =&gt; string 'var' (length=3)
              'name' =&gt; string '' (length=0)
      'doc' =&gt; string '' (length=0)
      'parseddoc' =&gt; boolean false
      'docline' =&gt; int -1
  2 =&gt; 
    array
      'type' =&gt; string 'function' (length=8)
      'startline' =&gt; int 40
      'endline' =&gt; int 48
      'returnsref' =&gt; boolean false
      'name' =&gt; string 'setType4' (length=8)
      'parameters' =&gt; 
        array
          0 =&gt; 
            array
              'typehint' =&gt; string '' (length=0)
              'param' =&gt; string '$type' (length=5)
              'isreference' =&gt; boolean false
              'default' =&gt; string 'null' (length=4)
      'info' =&gt; 
        array
          0 =&gt; 
            array
              'uses' =&gt; string 'var' (length=3)
              'name' =&gt; string '' (length=0)
      'doc' =&gt; string '/**
 * setType4
 * @param int $type
 */' (length=39)
      'parseddoc' =&gt; boolean false
      'docline' =&gt; int 44</pre>]]></description>
      <dc:date>2007-06-14T15:44:39+00:00</dc:date>
      <dc:creator>shimooka &amp;#x61;&amp;#116; doyouphp &amp;#x64;&amp;#111;&amp;#x74; jp</dc:creator>
      <dc:subject>PHP_Parser Feature/Change Request</dc:subject>
    </item>
</rdf:RDF>
