Updated sql-parser library to udan11/sql-parser@e1b91ed. Signed-off-by: Dan Ungureanu <udan1107@gmail.com>
74 lines
1.9 KiB
PHP
74 lines
1.9 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Defines a component that is later extended to parse specialized components or
|
|
* keywords.
|
|
*
|
|
* There is a small difference between *Component and *Keyword classes: usually,
|
|
* *Component parsers can be reused in multiple situations and *Keyword parsers
|
|
* count on the *Component classes to do their job.
|
|
*
|
|
* @package SqlParser
|
|
*/
|
|
namespace SqlParser;
|
|
|
|
/**
|
|
* A component (of a statement) is a part of a statement that is common to
|
|
* multiple query types.
|
|
*
|
|
* @category Components
|
|
* @package SqlParser
|
|
* @author Dan Ungureanu <udan1107@gmail.com>
|
|
* @license http://opensource.org/licenses/GPL-2.0 GNU Public License
|
|
*/
|
|
abstract class Component
|
|
{
|
|
|
|
/**
|
|
* Parses the tokens contained in the given list in the context of the given
|
|
* parser.
|
|
*
|
|
* @param Parser $parser The parser that serves as context.
|
|
* @param TokensList $list The list of tokens that are being parsed.
|
|
* @param array $options Parameters for parsing.
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public static function parse(
|
|
Parser $parser, TokensList $list, array $options = array()
|
|
) {
|
|
// This method should be abstract, but it can't be both static and
|
|
// abstract.
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Builds the string representation of a component of this type.
|
|
*
|
|
* In other words, this function represents the inverse function of
|
|
* `static::parse`.
|
|
*
|
|
* @param mixed $component The component to be built.
|
|
*
|
|
* @return string
|
|
*/
|
|
public static function build($component)
|
|
{
|
|
// This method should be abstract, but it can't be both static and
|
|
// abstract.
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Builds the string representation of a component of this type.
|
|
*
|
|
* @see static::build
|
|
*
|
|
* @return string
|
|
*/
|
|
public function __toString()
|
|
{
|
|
return static::build($this);
|
|
}
|
|
}
|