* @license http://www.gnu.org/copyleft/gpl.html GNU GPL * @copyright (C) 2005 Nigel McNie * @version 1.1.0 * */ /** Get the Keyword XML Parser class for use by Javascript_XML_Parser */ require_once 'lib/class.keywordxmlparser.php'; /** * Extends Keyword_XML_Parser as a class to get Javascript keywords from * a katepart syntax XML file * * @package scripts * @author Nigel McNie * @since 0.1.1 * @version 1.1.0 * @see Keyword_XML_Parser */ class Javascript_XML_Parser extends Keyword_XML_Parser { /**#@+ * @var boolean * @access private */ /** * Whether we are currently in the block of the XML file * with items of the correct type */ var $_valid; /** * Whether we should add the next CDATA we encounter. This * is made true when we encounter an ITEM node */ var $_addKeyword; /**#@-*/ /** * Called when the start tag of a node of the * XML document is encountered * * @param resource XML Parser resource * @param string The name of the node encountered * @param array Any attributes the node has */ function startHandler ($xp, $name, $attributes) { if ('LIST' == $name) { if ($attributes['NAME'] == $this->_keywordGroup) { $this->_valid = true; } else { $this->_valid = false; } } if ($this->_valid && 'ITEM' == $name) { $this->_addKeyword = true; } else { $this->_addKeyword = false; } } /** * Called when CDATA is encountered * * @param resource XML Parser Resource * @param string The CDATA encountered */ function cdataHandler ($xp, $cdata) { if ($this->_addKeyword) { array_push($this->_keywords, trim($cdata)); } $this->_addKeyword = false; } } ?>