SelectExpression.php 807 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
<?php
/**
 * SelectExpression  = (Expression | "(" Subselect ")" ) [["AS"] identifier]
 */
class Doctrine_Query_Production_SelectExpression extends Doctrine_Query_Production
{
    public function execute(array $params = array())
    {
        if ($this->_isSubquery()) {
            $this->_parser->match('(');
            $this->Subselect();
            $this->_parser->match(')');
        } else {
            $this->Expression();
        }

        if ($this->_isNextToken(Doctrine_Query_Token::T_AS)) {
            $this->_parser->match(Doctrine_Query_Token::T_AS);
            $this->_parser->match(Doctrine_Query_Token::T_IDENTIFIER);
        } elseif ($this->_isNextToken(Doctrine_Query_Token::T_IDENTIFIER)) {
            $this->_parser->match(Doctrine_Query_Token::T_IDENTIFIER);
        }
    }
}