index f0a3f9d89729b0d9867f7c54842ed356cd5e5371..912422360f1cedd5cc95741e3c2ff4375ed6fa2d 100644 (file)
<?php
+define("SIEVE_INDENT_TAB"," ");
+
+/* This class is inherited from the original 'Parser'
+ * class written by Heiko Hund
+ */
class My_Parser extends Parser
{
+ var $parent = NULL;
+
+ function My_Parser($parent)
+ {
+ $this->parent = $parent;
+ }
+
+ function execute()
+ {
+ $ret = $this->dumpParseTree();
+ return($ret);
+ }
+
+
+ /* 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)
{
$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_->setCommentFunc(array($this, 'comment_'));
return $this->status_;
}
+
+ function get_sieve_script()
+ {
+ return($this->tree_->get_sieve_script());
+ }
+
+
+ function save_object()
+ {
+ $this->tree_->save_object();
+ }
+
+
+ /* Should be obsolete in the end. */
function dumpToken_(&$token)
{
if (is_array($token))
}
return strval($token);
}
+
+
+ function dumpParseTree()
+ {
+ return $this->tree_->execute();
+ }
}
?>