index b0ef7ea7654f2a45b273765176e2ab807d934d99..691faf43e0ed342224067e82bcc9f69676258247 100644 (file)
*/
class My_Parser extends Parser
{
+ var $parent = NULL;
+
+ var $registeredExtensions_ =array();
+
+ function My_Parser($parent)
+ {
+ $this->registeredExtensions_ = array();
+ $this->parent = $parent;
+ }
function execute()
{
}
+ /* Check if there are errors, collect them and return them */
+ function check()
+ {
+ return($this->tree_->check());
+ }
+
+
/* Initiate parser, but use some other
* classes, that are rewritten.
*/
function parse($script)
{
+ $script = preg_replace("/^###GOSA/","",$script);
+
+ $this->registeredExtensions_ = array();
$this->status_text = "incomplete";
$this->script_ = $script;
- $this->tree_ = new My_Tree(@Scanner::scriptStart());
+ $this->tree_ = new My_Tree(@Scanner::scriptStart(),$this);
$this->tree_->setDumpFunc(array(&$this, 'dumpToken_'));
- $this->scanner_ = new Scanner($this->script_);
+ $this->scanner_ = new My_Scanner($this->script_);
$this->scanner_->setCommentFunc(array($this, 'comment_'));
if ($this->commands_($this->tree_->getRoot()) &&
$this->scanner_->nextTokenIs('script-end'))
{
+ $this->scanner_->nextToken();
return $this->success_('success');
}
function get_sieve_script()
{
- return($this->tree_->get_sieve_script());
+ return("###GOSA\n".$this->tree_->get_sieve_script());
}
}
return strval($token);
}
+
+
+ function dumpParseTree()
+ {
+ return $this->tree_->execute();
+ }
}
?>