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; } }