93 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?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
 | 
						|
 * position.
 | 
						|
 * 
 | 
						|
 * @author Marco Marchiò <marco.mm89@gmail.com>
 | 
						|
 */
 | 
						|
class SourceLocation implements \JSONSerializable
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Start position
 | 
						|
     * 
 | 
						|
     * @var Position 
 | 
						|
     */
 | 
						|
    public $start;
 | 
						|
    
 | 
						|
    /**
 | 
						|
     * End position
 | 
						|
     * 
 | 
						|
     * @var Position 
 | 
						|
     */
 | 
						|
    public $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
 | 
						|
     */
 | 
						|
    #[\ReturnTypeWillChange]
 | 
						|
    public function jsonSerialize()
 | 
						|
    {
 | 
						|
        return array(
 | 
						|
            "start" => $this->start,
 | 
						|
            "end" => $this->end
 | 
						|
        );
 | 
						|
    }
 | 
						|
} |