* @copyright  2002-2007 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.3
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @since      1.2
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - rename class to ParserCode
 */
class parserCode extends parserStringWithInlineTags
{
    /**
     * performs the conversion of code tags
     *
     * @param Converter &$c the converter object
     *
     * @return string the converted code block
     * @uses Converter::ProgramExample()
     * @todo CS cleanup - rename method to convert()
     */
    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;
    }
}
/**
 * Used for <> in a description
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage DescHTML
 * @author     Greg Beaver 
 * @copyright  2002-2007 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.3
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @since      1.2
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - rename class to ParserPre
 */
class parserPre extends parserStringWithInlineTags
{
    /**
     * performs the conversion of code tags
     *
     * @param Converter &$c the converter object
     *
     * @return string the converted pre block
     * @uses Converter::PreserveWhiteSpace()
     * @todo CS cleanup - rename method to convert()
     */
    function Convert(&$c)
    {
        return $c->PreserveWhiteSpace(rtrim(ltrim(parent::Convert($c,
            false, false), "\n\r")));
    }
}
/**
 * Used for <> in a description
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage DescHTML
 * @author     Greg Beaver 
 * @copyright  2002-2007 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.3
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @since      1.2
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - rename class to ParserB
 */
class parserB extends parserStringWithInlineTags
{
    /**
     * performs the conversion of bold tags
     *
     * @param Converter &$c the converter object
     *
     * @return string the converted pre block
     * @uses Converter::Bolden()
     * @todo CS cleanup - rename method to convert()
     */
    function Convert(&$c)
    {
        return $c->Bolden(parent::Convert($c));
    }
}
/**
 * Used for <> in a description
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage DescHTML
 * @author     Greg Beaver 
 * @copyright  2002-2007 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.3
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @since      1.2
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - rename class to ParserI
 */
class parserI extends parserStringWithInlineTags
{
    /**
     * performs the conversion of italic tags
     *
     * @param Converter &$c the converter object
     *
     * @return string the converted pre block
     * @uses Converter::Italicize()
     * @todo CS cleanup - rename method to convert()
     */
    function Convert(&$c)
    {
        return $c->Italicize(parent::Convert($c));
    }
}
/**
 * Used for <> in a description
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage DescHTML
 * @author     Greg Beaver 
 * @copyright  2002-2007 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.3
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @since      1.2
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - rename class to ParserDescVar
 */
class parserDescVar extends parserStringWithInlineTags
{
    /**
     * performs the conversion of variable tags
     *
     * @param Converter &$c the converter object
     *
     * @return string the converted pre block
     * @uses Converter::Varize()
     * @todo CS cleanup - rename method to convert()
     */
    function Convert(&$c)
    {
        return $c->Varize(parent::Convert($c));
    }
}
/**
 * Used for <> in a description
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage DescHTML
 * @author     Greg Beaver 
 * @copyright  2002-2007 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.3
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @since      1.2
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - rename class to ParserSamp
 */
class parserSamp extends parserStringWithInlineTags
{
    /**
     * performs the conversion of sample tags
     *
     * @param Converter &$c the converter object
     *
     * @return string the converted pre block
     * @uses Converter::Sampize()
     * @todo CS cleanup - rename method to convert()
     */
    function Convert(&$c)
    {
        return $c->Sampize(parent::Convert($c));
    }
}
/**
 * Used for <> in a description
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage DescHTML
 * @author     Greg Beaver 
 * @copyright  2002-2007 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.3
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @since      1.2
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - rename class to ParserKbd
 */
class parserKbd extends parserStringWithInlineTags
{
    /**
     * performs the conversion of keyboard tags
     *
     * @param Converter &$c the converter object
     *
     * @return string the converted pre block
     * @uses Converter::Kbdize()
     * @todo CS cleanup - rename method to convert()
     */
    function Convert(&$c)
    {
        return $c->Kbdize(parent::Convert($c));
    }
}
/**
 * Used for <
> in a description
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage DescHTML
 * @author     Greg Beaver 
 * @copyright  2002-2007 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.3
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @since      1.2
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - rename class to ParserBr
 */
class parserBr extends parserStringWithInlineTags
{
    /**
     * performs the conversion of linebreak tags
     *
     * @param Converter &$c the converter object
     *
     * @return string the converted pre block
     * @uses Converter::Br()
     * @todo CS cleanup - rename method to convert()
     */
    function Convert(&$c)
    {
        return $c->Br($this->getString());
    }
}
/**
 * Used for lists <> and <>
 *
 * @category   ToolsAndUtilities
 * @package    phpDocumentor
 * @subpackage DescHTML
 * @author     Greg Beaver 
 * @copyright  2002-2007 Gregory Beaver
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @version    Release: 1.4.3
 * @link       http://www.phpdoc.org
 * @link       http://pear.php.net/PhpDocumentor
 * @since      1.2
 * @todo       CS cleanup - change package to PhpDocumentor
 * @todo       CS cleanup - rename class to ParserList
 */
class parserList extends parserStringWithInlineTags
{
    /**
     * @var boolean
     */
    var $numbered;
    /**
     * @var integer
     */
    var $items = 0;
    /**
     * Constructor - create a new list
     *
     * @param integer $numbered a reference number for the new list
     */
    function parserList($numbered)
    {
        $this->numbered = $numbered;
    }
    
    /**
     * add an item to a list
     *
     * @param parserStringWithInlineTags $item the item to add
     *
     * @return void
     */
    function addItem($item)
    {
        $this->value[$this->items++] = $item;
    }
    
    /**
     * add a list
     *
     * @param parserList $list the list to add
     *
     * @return void
     */
    function addList($list)
    {
        $this->value[$this->items++] = $list;
    }
    
    /**
     * performs the conversion of list tags
     *
     * @param Converter &$c the converter object
     *
     * @return string the converted pre block
     * @uses Converter::ListItem() enclose each item of the list
     * @uses Converter::EncloseList() enclose the list
     * @todo CS cleanup - rename method to convert()
     */
    function Convert(&$c)
    {
        $list = '';
        foreach ($this->value as $item) {
            $list .= $c->ListItem(trim($item->Convert($c)));
        }
        return $c->EncloseList($list, $this->numbered);
    }
}
?>