summaryrefslogtreecommitdiffstats
path: root/src/Components/ExpressionArray.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Components/ExpressionArray.php')
-rw-r--r--src/Components/ExpressionArray.php14
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;
}