diff options
-rw-r--r-- | src/Components/CaseExpression.php | 41 | ||||
-rw-r--r-- | src/Components/JoinKeyword.php | 2 | ||||
-rw-r--r-- | src/Statements/CreateStatement.php | 2 |
3 files changed, 24 insertions, 21 deletions
diff --git a/src/Components/CaseExpression.php b/src/Components/CaseExpression.php index eb91f5f..19061db 100644 --- a/src/Components/CaseExpression.php +++ b/src/Components/CaseExpression.php @@ -129,10 +129,10 @@ class CaseExpression extends Component case 'END': $state = 3; // end of CASE expression ++$list->idx; - break; + break 2; default: $parser->error('Unexpected keyword.', $token); - break; + break 2; } } else { $ret->value = Expression::parse($parser, $list); @@ -148,43 +148,46 @@ class CaseExpression extends Component $new_value = Expression::parse($parser, $list); $state = 2; $ret->compare_values[] = $new_value; - break; + break; case 'ELSE': ++$list->idx; // Skip 'ELSE' $ret->else_result = Expression::parse($parser, $list); $state = 0; // last clause of CASE expression - break; + break; case 'END': $state = 3; // end of CASE expression ++$list->idx; - break; + break 2; default: $parser->error('Unexpected keyword.', $token); - break; + break 2; } } - } else if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword === 'THEN') { + } else { + if ($token->type === Token::TYPE_KEYWORD + && $token->keyword === 'THEN' + ) { ++$list->idx; // Skip 'THEN' $new_result = Expression::parse($parser, $list); $state = 0; $ret->results[] = $new_result; - } else { + } elseif ($token->type === Token::TYPE_KEYWORD) { $parser->error('Unexpected keyword.', $token); + break; } - break; } } elseif ($state === 2) { if ($type === 0) { - if ($token->type === Token::TYPE_KEYWORD) { - if ($token->keyword === 'THEN') { - ++$list->idx; // Skip 'THEN' - $new_result = Expression::parse($parser, $list); - $ret->results[] = $new_result; - $state = 1; - } else { - $parser->error('Unexpected keyword.', $token); - } + if ($token->type === Token::TYPE_KEYWORD + && $token->keyword === 'THEN' + ) { + ++$list->idx; // Skip 'THEN' + $new_result = Expression::parse($parser, $list); + $ret->results[] = $new_result; + $state = 1; + } elseif ($token->type === Token::TYPE_KEYWORD) { + $parser->error('Unexpected keyword.', $token); + break; } } } diff --git a/src/Components/JoinKeyword.php b/src/Components/JoinKeyword.php index 0b5aae9..786092d 100644 --- a/src/Components/JoinKeyword.php +++ b/src/Components/JoinKeyword.php @@ -179,7 +179,7 @@ class JoinKeyword extends Component $state = 1; } else { /* Next clause is starting */ - break; + break 2; } break; } diff --git a/src/Statements/CreateStatement.php b/src/Statements/CreateStatement.php index 3b705c3..808109e 100644 --- a/src/Statements/CreateStatement.php +++ b/src/Statements/CreateStatement.php @@ -507,7 +507,7 @@ class CreateStatement extends Statement // This is used instead of `++$brackets` because, // initially, `$brackets` is `false` cannot be // incremented. - ++$brackets; + $brackets = $brackets + 1; } elseif ($token->value === ')') { --$brackets; } |