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;
}