public ConditionalExpression ( ) : Doctrine\ORM\Query\AST\ConditionalExpression | ||
return | Doctrine\ORM\Query\AST\ConditionalExpression |
public function ConditionalExpression()
{
$conditionalTerms = array();
$conditionalTerms[] = $this->ConditionalTerm();
while ($this->_lexer->isNextToken(Lexer::T_OR)) {
$this->match(Lexer::T_OR);
$conditionalTerms[] = $this->ConditionalTerm();
}
// Phase 1 AST optimization: Prevent AST\ConditionalExpression
// if only one AST\ConditionalTerm is defined
if (count($conditionalTerms) == 1) {
return $conditionalTerms[0];
}
return new AST\ConditionalExpression($conditionalTerms);
}
public function parse(\Doctrine\ORM\Query\Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); // (2) $parser->match(Lexer::T_OPEN_PARENTHESIS); // (3) $this->var1 = $parser->ConditionalExpression(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); // (3) }