/usr/share/gosa/plugins/personal/mail/sieve/class_My_Parser.inc is in gosa-plugin-mail 2.7.4-4.3~deb7u2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | <?php
/* String used to indent the different code blocks */
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;
var $registeredExtensions_ =array();
function My_Parser($parent)
{
$this->registeredExtensions_ = array();
$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)
{
$script = preg_replace("/^###GOSA/","",$script);
$this->registeredExtensions_ = array();
$this->status_text = "incomplete";
$this->script_ = $script;
$this->tree_ = new My_Tree(@Scanner::scriptStart(),$this);
$this->tree_->setDumpFunc(array(&$this, 'dumpToken_'));
$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');
}
return $this->status_;
}
function get_sieve_script()
{
return("###GOSA\n".$this->tree_->get_sieve_script());
}
function save_object()
{
$this->tree_->save_object();
}
function dumpParseTree()
{
return $this->tree_->execute();
}
}
?>
|