diff options
Diffstat (limited to 'src/Components/ExpressionArray.php')
-rw-r--r-- | src/Components/ExpressionArray.php | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/Components/ExpressionArray.php b/src/Components/ExpressionArray.php index f108ad8..a64f64a 100644 --- a/src/Components/ExpressionArray.php +++ b/src/Components/ExpressionArray.php @@ -1,7 +1,7 @@ <?php /** - * Parses a a list of expressions delimited by a comma. + * Parses a list of expressions delimited by a comma. * * @package SqlParser * @subpackage Components @@ -14,7 +14,7 @@ use SqlParser\Token; use SqlParser\TokensList; /** - * Parses a a list of expressions delimited by a comma. + * Parses a list of expressions delimited by a comma. * * @category Keywords * @package SqlParser @@ -73,13 +73,21 @@ class ExpressionArray extends Component && ((~$token->flags & Token::FLAG_KEYWORD_FUNCTION)) && ($token->value !== 'DUAL') && ($token->value !== 'NULL') + && ($token->value !== 'CASE') ) { // No keyword is expected. break; } if ($state === 0) { - $expr = Expression::parse($parser, $list, $options); + if ($token->type === Token::TYPE_KEYWORD + && $token->value === 'CASE' + ) { + $expr = CaseExpression::parse($parser, $list, $options); + } else { + $expr = Expression::parse($parser, $list, $options); + } + if ($expr === null) { break; } |