/** * {@inheritdoc} */ public function parse(Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->parameters[self::PARAMETER_KEY] = $parser->ArithmeticPrimary(); $parser->match(Lexer::T_AS); $parser->match(Lexer::T_IDENTIFIER); $lexer = $parser->getLexer(); $type = $lexer->token['value']; if ($lexer->isNextToken(Lexer::T_OPEN_PARENTHESIS)) { $parser->match(Lexer::T_OPEN_PARENTHESIS); /** @var Literal $parameter */ $parameter = $parser->Literal(); $parameters = array($parameter->value); if ($lexer->isNextToken(Lexer::T_COMMA)) { while ($lexer->isNextToken(Lexer::T_COMMA)) { $parser->match(Lexer::T_COMMA); $parameter = $parser->Literal(); $parameters[] = $parameter->value; } } $parser->match(Lexer::T_CLOSE_PARENTHESIS); $type .= '(' . implode(', ', $parameters) . ')'; } if (!$this->checkType($type)) { $parser->syntaxError(sprintf('Type unsupported. Supported types are: "%s"', implode(', ', $this->supportedTypes)), $lexer->token); } $this->parameters[self::TYPE_KEY] = $type; $parser->match(Lexer::T_CLOSE_PARENTHESIS); }
public function parse(Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->dateTime = $parser->ArithmeticPrimary(); $parser->match(Lexer::T_COMMA); $this->interval = $parser->Literal()->value; $parser->match(Lexer::T_COMMA); $this->unit = $parser->Literal()->value; $parser->match(Lexer::T_CLOSE_PARENTHESIS); }
/** * {@inheritdoc} */ public function parse(Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->fieldName = $parser->Literal()->value; $parser->match(Lexer::T_COMMA); $this->columnExpression = $parser->StateFieldPathExpression(); $parser->match(Lexer::T_COMMA); $this->strategy = (int) $parser->Literal()->value; $parser->match(Lexer::T_CLOSE_PARENTHESIS); }
/** * @override */ public function parse(\Doctrine\ORM\Query\Parser $parser) { $lexer = $parser->getLexer(); $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->date = $parser->Literal(); if (Lexer::T_COMMA === $lexer->lookahead['type']) { $parser->match(Lexer::T_COMMA); $this->modifier = $parser->Literal(); } $parser->match(Lexer::T_CLOSE_PARENTHESIS); }
public function parse(Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->formatter = $parser->Literal(); $parser->match(Lexer::T_COMMA); $this->date = $parser->ArithmeticPrimary(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); }
/** * Parse function * * @param \Doctrine\ORM\Query\Parser $parser Parser * * @return void */ public function parse(\Doctrine\ORM\Query\Parser $parser) { $parser->match(\Doctrine\ORM\Query\Lexer::T_IDENTIFIER); $parser->match(\Doctrine\ORM\Query\Lexer::T_OPEN_PARENTHESIS); $this->relevanceSearchWords = $parser->Literal(); $parser->match(\Doctrine\ORM\Query\Lexer::T_COMMA); $this->relevanceTitleField = $parser->SingleValuedPathExpression(); $parser->match(\Doctrine\ORM\Query\Lexer::T_COMMA); $this->relevanceTextField = $parser->SingleValuedPathExpression(); $parser->match(\Doctrine\ORM\Query\Lexer::T_CLOSE_PARENTHESIS); }
/** * {@inheritdoc} */ public function parse(Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->column = $parser->ArithmeticPrimary(); $parser->match(Lexer::T_COMMA); $this->pattern = $parser->StringPrimary(); $parser->match(Lexer::T_COMMA); $this->caseInsensitive = 'true' === strtolower($parser->Literal()->value); $parser->match(Lexer::T_CLOSE_PARENTHESIS); }
/** * (non-PHPdoc) * @see \Doctrine\ORM\Query\AST\Functions\FunctionNode::parse() */ public function parse(\Doctrine\ORM\Query\Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); do { $this->_aColumns[] = $parser->StateFieldPathExpression(); $parser->match(Lexer::T_COMMA); } while ($parser->getLexer()->isNextToken(Lexer::T_IDENTIFIER)); $this->_oNeedle = $parser->InParameter(); while ($parser->getLexer()->isNextToken(Lexer::T_STRING)) { $this->_oMode = $parser->Literal(); } $parser->match(Lexer::T_CLOSE_PARENTHESIS); }