diff options
Diffstat (limited to 'src/Components/JoinKeyword.php')
-rw-r--r-- | src/Components/JoinKeyword.php | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/src/Components/JoinKeyword.php b/src/Components/JoinKeyword.php index 55b69ae..0b5aae9 100644 --- a/src/Components/JoinKeyword.php +++ b/src/Components/JoinKeyword.php @@ -151,7 +151,7 @@ class JoinKeyword extends Component if ($state === 0) { if (($token->type === Token::TYPE_KEYWORD) - && (!empty(static::$JOINS[$token->keyword])) + && !empty(static::$JOINS[$token->keyword]) ) { $expr->type = static::$JOINS[$token->keyword]; $state = 1; @@ -163,22 +163,25 @@ class JoinKeyword extends Component $state = 2; } elseif ($state === 2) { if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword === 'ON') { - $state = 3; - } elseif ($token->keyword === 'USING') { - $state = 4; - } else { - if (($token->type === Token::TYPE_KEYWORD) - && (!empty(static::$JOINS[$token->keyword])) - ) { - $ret[] = $expr; - $expr = new self(); - $expr->type = static::$JOINS[$token->keyword]; - $state = 1; - } else { - /* Next clause is starting */ - break; - } + switch($token->keyword) { + case 'ON': + $state = 3; + break; + case 'USING': + $state = 4; + break; + default: + if (!empty(static::$JOINS[$token->keyword]) + ) { + $ret[] = $expr; + $expr = new self(); + $expr->type = static::$JOINS[$token->keyword]; + $state = 1; + } else { + /* Next clause is starting */ + break; + } + break; } } } elseif ($state === 3) { |