00001 <?php 00002 /**************************************************************************** 00003 * Copyright (C) 2008 by Vladlen Y. Koshelev * 00004 * * 00005 * This program is free software; you can redistribute it and/or modify * 00006 * it under the terms of the GNU Lesser General Public License as * 00007 * published by the Free Software Foundation; either version 3 of the * 00008 * License, or (at your option) any later version. * 00009 * * 00010 ****************************************************************************/ 00011 00015 final class SyntaxErrorException extends BaseException 00016 { 00017 private $errorLine = null; 00018 private $errorPosition = null; 00019 00020 public function __construct( 00021 $message, $errorLine = null, $errorPosition = null, $code = 0 00022 ) 00023 { 00024 parent::__construct($message, $code); 00025 00026 $this->errorLine = $errorLine; 00027 $this->errorPosition = $errorPosition; 00028 } 00029 00030 public function getErrorLine() 00031 { 00032 return $this->errorLine; 00033 } 00034 00035 public function getErrorPosition() 00036 { 00037 return $this->errorPosition; 00038 } 00039 00040 public function __toString() 00041 { 00042 return 00043 '[error at line ' 00044 .(Assert::checkInteger($this->errorLine) ? $this->errorLine : 'unknown') 00045 .', position ' 00046 .(Assert::checkInteger($this->errorPosition) ? $this->errorPosition : 'unknown') 00047 .": {$this->message}] in: \n". 00048 $this->getTraceAsString(); 00049 } 00050 } 00051 ?>