public function process($tokens) { $expression = ""; $expressionList = array(); foreach ($tokens as $token) { if ($this->isCommaToken($token)) { $expression = parent::process(trim($expression)); $expression['delim'] = ','; $expressionList[] = $expression; $expression = ""; } else { if ($this->isCommentToken($token)) { $expressionList[] = parent::processComment($token); } else { switch (strtoupper($token)) { // add more SELECT options here case 'DISTINCT': case 'DISTINCTROW': case 'HIGH_PRIORITY': case 'SQL_CACHE': case 'SQL_NO_CACHE': case 'SQL_CALC_FOUND_ROWS': case 'STRAIGHT_JOIN': case 'SQL_SMALL_RESULT': case 'SQL_BIG_RESULT': case 'SQL_BUFFER_RESULT': $expression = parent::process(trim($token)); $expression['delim'] = ' '; $expressionList[] = $expression; $expression = ""; break; default: $expression .= $token; } } } } if ($expression) { $expression = parent::process(trim($expression)); $expression['delim'] = false; $expressionList[] = $expression; } return $expressionList; }
protected function processSelectExpression($unparsed) { $processor = new SelectExpressionProcessor(); return $processor->process($unparsed); }