基础代码
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
/**
|
||||
* This file is part of the Peast package
|
||||
*
|
||||
* (c) Marco Marchiò <marco.mm89@gmail.com>
|
||||
*
|
||||
* For the full copyright and license information refer to the LICENSE file
|
||||
* distributed with this source code
|
||||
*/
|
||||
namespace Peast\Syntax;
|
||||
|
||||
/**
|
||||
* This class represents a location in the source code with start and end
|
||||
* positon.
|
||||
*
|
||||
* @author Marco Marchiò <marco.mm89@gmail.com>
|
||||
*/
|
||||
class SourceLocation implements \JSONSerializable
|
||||
{
|
||||
/**
|
||||
* Start position
|
||||
*
|
||||
* @var Position
|
||||
*/
|
||||
protected $start;
|
||||
|
||||
/**
|
||||
* End position
|
||||
*
|
||||
* @var Position
|
||||
*/
|
||||
protected $end;
|
||||
|
||||
/**
|
||||
* Returns the start position
|
||||
*
|
||||
* @return Position
|
||||
*/
|
||||
public function getStart()
|
||||
{
|
||||
return $this->start;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the start position
|
||||
*
|
||||
* @param Position $position Start position
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setStart(Position $position)
|
||||
{
|
||||
$this->start = $position;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the end position
|
||||
*
|
||||
* @return Position
|
||||
*/
|
||||
public function getEnd()
|
||||
{
|
||||
return $this->end;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the end position
|
||||
*
|
||||
* @param Position $position End position
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setEnd(Position $position)
|
||||
{
|
||||
$this->end = $position;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a serializable version of the object
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function jsonSerialize()
|
||||
{
|
||||
return array(
|
||||
"start" => $this->getStart(),
|
||||
"end" => $this->getEnd()
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user