1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php namespace Sieve;
- require_once('SieveToken.php');
- use Exception;
- class SieveException extends Exception
- {
- protected $token_;
- public function __construct(SieveToken $token, $arg)
- {
- $message = 'undefined sieve exception';
- $this->token_ = $token;
- if (is_string($arg))
- {
- $message = $arg;
- }
- else
- {
- if (is_array($arg))
- {
- $type = SieveToken::typeString(array_shift($arg));
- foreach($arg as $t)
- {
- $type .= ' or '. SieveToken::typeString($t);
- }
- }
- else
- {
- $type = SieveToken::typeString($arg);
- }
- $tokenType = SieveToken::typeString($token->type);
- $message = "$tokenType where $type expected near ". $token->text;
- }
- parent::__construct('line '. $token->line .": $message");
- }
- public function getLineNo()
- {
- return $this->token_->line;
- }
- }
|