StringExpression ::= StringPrimary | "(" Subselect ")"
public StringExpression ( ) : Doctrine\ORM\Query\AST\StringPrimary | ||
return | Doctrine\ORM\Query\AST\StringPrimary | | \Doctrine]ORM\Query\AST\Subselect |
public function parse(\Doctrine\ORM\Query\Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $lexer = $parser->getLexer(); if ($lexer->isNextToken(Lexer::T_DISTINCT)) { $parser->match(Lexer::T_DISTINCT); $this->isDistinct = true; } // first Path Expression is mandatory $this->pathExp = array(); if ($lexer->isNextToken(Lexer::T_IDENTIFIER)) { $this->pathExp[] = $parser->StringExpression(); } else { $this->pathExp[] = $parser->SingleValuedPathExpression(); } while ($lexer->isNextToken(Lexer::T_COMMA)) { $parser->match(Lexer::T_COMMA); $this->pathExp[] = $parser->StringPrimary(); } if ($lexer->isNextToken(Lexer::T_ORDER)) { $this->orderBy = $parser->OrderByClause(); } if ($lexer->isNextToken(Lexer::T_IDENTIFIER)) { if (strtolower($lexer->lookahead['value']) !== 'separator') { $parser->syntaxError('separator'); } $parser->match(Lexer::T_IDENTIFIER); $this->separator = $parser->StringPrimary(); } $parser->match(Lexer::T_CLOSE_PARENTHESIS); }
public function parse(Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->expr1 = $parser->StringExpression(); //SingleValuedPathExpression(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); }
public function parse(\Doctrine\ORM\Query\Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->datetime = $parser->ArithmeticExpression(); $parser->match(Lexer::T_COMMA); $this->fmt = $parser->StringExpression(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); }
public function parse(\Doctrine\ORM\Query\Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->value = $parser->StringPrimary(); $parser->match(Lexer::T_COMMA); $this->regexp = $parser->StringExpression(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); }
/** * @override */ public function parse(\Doctrine\ORM\Query\Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->basePrimary = $parser->StringExpression(); $parser->match(Lexer::T_COMMA); $this->exponentPrimary = $parser->ArithmeticPrimary(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); }
/** * Define the parser * * @param Parser $parser */ public function parse(Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->subjectExpression = $parser->StringExpression(); $parser->match(Lexer::T_COMMA); $this->findExpression = $parser->StringPrimary(); $parser->match(Lexer::T_COMMA); $this->replaceExpression = $parser->StringPrimary(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); }
/** * @param Parser $parser */ public function parse(Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->column = $parser->StringPrimary()->value; $parser->match(Lexer::T_COMMA); $this->cond = $parser->StringPrimary()->value; $parser->match(Lexer::T_COMMA); $this->value = $parser->StringExpression()->value; $parser->match(Lexer::T_CLOSE_PARENTHESIS); }
/** * @param \Doctrine\ORM\Query\Parser $parser */ public function parse(\Doctrine\ORM\Query\Parser $parser) { $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->value = $parser->ArithmeticPrimary(); $parser->match(Lexer::T_COMMA); $this->delimiter = $parser->StringExpression(); $parser->match(Lexer::T_COMMA); $this->count = $parser->SimpleArithmeticExpression(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); }
/** * @param \Doctrine\ORM\Query\Parser $parser */ 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->ArithmeticExpression(); // parse second parameter if available if (Lexer::T_COMMA === $lexer->lookahead['type']) { $parser->match(Lexer::T_COMMA); $this->fmt = $parser->StringExpression(); } $parser->match(Lexer::T_CLOSE_PARENTHESIS); }
/** * @inheritdoc */ public function parse(Parser $parser) { $lexer = $parser->getLexer(); $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->listaggField = $parser->StringPrimary(); if ($lexer->isNextToken(Lexer::T_COMMA)) { $parser->match(Lexer::T_COMMA); $this->separator = $parser->StringExpression(); } $parser->match(Lexer::T_CLOSE_PARENTHESIS); if (!$lexer->isNextToken(Lexer::T_IDENTIFIER) || strtolower($lexer->lookahead['value']) != 'within') { $parser->syntaxError('WITHIN GROUP'); } $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_GROUP); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->orderBy = $parser->OrderByClause(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); if ($lexer->isNextToken(Lexer::T_IDENTIFIER)) { if (strtolower($lexer->lookahead['value']) != 'over') { $parser->syntaxError('OVER'); } $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); if (!$lexer->isNextToken(Lexer::T_IDENTIFIER) || strtolower($lexer->lookahead['value']) != 'partition') { $parser->syntaxError('PARTITION BY'); } $parser->match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_BY); $this->partitionBy[] = $parser->StringPrimary(); while ($lexer->isNextToken(Lexer::T_COMMA)) { $parser->match(Lexer::T_COMMA); $this->partitionBy[] = $parser->StringPrimary(); } $parser->match(Lexer::T_CLOSE_PARENTHESIS); } }