diff options
Diffstat (limited to 'src/Components/FieldDefinition.php')
-rw-r--r-- | src/Components/FieldDefinition.php | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/Components/FieldDefinition.php b/src/Components/FieldDefinition.php index 717cc4f..4df98cb 100644 --- a/src/Components/FieldDefinition.php +++ b/src/Components/FieldDefinition.php @@ -171,7 +171,7 @@ class FieldDefinition extends Component * 4 --------------------[ REFERENCES ]------------------> 4 * * 5 ------------------------[ , ]-----------------------> 1 - * 5 ------------------------[ ) ]-----------------------> -1 + * 5 ------------------------[ ) ]-----------------------> 6 (-1) * * @var int */ @@ -197,6 +197,9 @@ class FieldDefinition extends Component if ($state === 0) { if (($token->type === Token::TYPE_OPERATOR) && ($token->value === '(')) { $state = 1; + } else { + $parser->error('An opening bracket was expected.', $token); + break; } } elseif ($state === 1) { if (($token->type === Token::TYPE_KEYWORD) && ($token->value === 'CONSTRAINT')) { @@ -231,13 +234,12 @@ class FieldDefinition extends Component $expr = new FieldDefinition(); if ($token->value === ',') { $state = 1; - continue; } elseif ($token->value === ')') { + $state = 6; ++$list->idx; break; } } - } // Last iteration was not saved. @@ -245,12 +247,16 @@ class FieldDefinition extends Component $ret[] = $expr; } + if (($state !== 0) && ($state !== 6)) { + $parser->error('A closing bracket was expected.', $list->tokens[$list->idx - 1]); + } + --$list->idx; return $ret; } /** - * @param FieldDefinition[] $component The component to be built. + * @param FieldDefinition|FieldDefinition[] $component The component to be built. * * @return string */ |