match(Lexer::T_IDENTIFIER); $parser->match(Lexer::T_OPEN_PARENTHESIS); $this->string = $parser->ArithmeticPrimary(); $parser->match(Lexer::T_COMMA); $this->delimiter = $parser->ArithmeticPrimary(); $parser->match(Lexer::T_COMMA); $this->count = $parser->ArithmeticFactor(); $parser->match(Lexer::T_CLOSE_PARENTHESIS); } /** * @param \Doctrine\ORM\Query\SqlWalker $sqlWalker * @return string */ public function getSql(SqlWalker $sqlWalker) { return sprintf( 'SUBSTRING_INDEX(%s, %s, %s)', $this->string->dispatch($sqlWalker), $this->delimiter->dispatch($sqlWalker), $this->count->dispatch($sqlWalker) ); } }