| @@ 241-257 (lines=17) @@ | ||
| 238 | $this->columns = ExpressionArray::parse($parser, $list); |
|
| 239 | $state = 1; |
|
| 240 | } |
|
| 241 | } elseif ($state === 1) { |
|
| 242 | if ($token->type === Token::TYPE_KEYWORD |
|
| 243 | && $token->keyword !== 'FROM' |
|
| 244 | ) { |
|
| 245 | $parser->error('Unexpected keyword.', $token); |
|
| 246 | break; |
|
| 247 | } elseif ($token->type === Token::TYPE_KEYWORD |
|
| 248 | && $token->keyword === 'FROM' |
|
| 249 | ) { |
|
| 250 | ++$list->idx; // Skip 'FROM' |
|
| 251 | $this->from = ExpressionArray::parse($parser, $list); |
|
| 252 | ||
| 253 | $state = 2; |
|
| 254 | } else { |
|
| 255 | $parser->error('Unexpected token.', $token); |
|
| 256 | break; |
|
| 257 | } |
|
| 258 | } elseif ($state === 2) { |
|
| 259 | if ($token->type === Token::TYPE_KEYWORD |
|
| 260 | && stripos($token->keyword, 'JOIN') !== false |
|
| @@ 296-310 (lines=15) @@ | ||
| 293 | $parser->error('Unexpected keyword.', $token); |
|
| 294 | break; |
|
| 295 | } |
|
| 296 | } elseif ($state === 3) { |
|
| 297 | if ($token->type === Token::TYPE_KEYWORD |
|
| 298 | && $token->keyword === 'WHERE' |
|
| 299 | ) { |
|
| 300 | ++$list->idx; // Skip 'WHERE' |
|
| 301 | $this->where = Condition::parse($parser, $list); |
|
| 302 | $state = 4; |
|
| 303 | } elseif ($token->type === Token::TYPE_KEYWORD) { |
|
| 304 | $parser->error('Unexpected keyword.', $token); |
|
| 305 | break; |
|
| 306 | } else { |
|
| 307 | $parser->error('Unexpected token.', $token); |
|
| 308 | break; |
|
| 309 | } |
|
| 310 | } elseif ($state === 4) { |
|
| 311 | if ($multiTable === true |
|
| 312 | && $token->type === Token::TYPE_KEYWORD |
|
| 313 | ) { |
|