| @@ 159-173 (lines=15) @@ | ||
| 156 | } elseif ($state === 3) { |
|
| 157 | $ret->type = $token->value; |
|
| 158 | $state = 4; |
|
| 159 | } elseif ($state === 4) { |
|
| 160 | if ($token->value === 'MAXVALUE') { |
|
| 161 | $ret->expr = $token->value; |
|
| 162 | } else { |
|
| 163 | $ret->expr = Expression::parse( |
|
| 164 | $parser, |
|
| 165 | $list, |
|
| 166 | array( |
|
| 167 | 'parenthesesDelimited' => true, |
|
| 168 | 'breakOnAlias' => true, |
|
| 169 | ) |
|
| 170 | ); |
|
| 171 | } |
|
| 172 | $state = 5; |
|
| 173 | } elseif ($state === 5) { |
|
| 174 | $ret->options = OptionsArray::parse($parser, $list, static::$OPTIONS); |
|
| 175 | $state = 6; |
|
| 176 | } elseif ($state === 6) { |
|
| @@ 211-226 (lines=16) @@ | ||
| 208 | } |
|
| 209 | ||
| 210 | $state = 1; |
|
| 211 | } elseif ($state === 1) { |
|
| 212 | $ret->field = Expression::parse( |
|
| 213 | $parser, |
|
| 214 | $list, |
|
| 215 | array( |
|
| 216 | 'breakOnAlias' => true, |
|
| 217 | 'parseField' => 'column', |
|
| 218 | ) |
|
| 219 | ); |
|
| 220 | if ($ret->field === null) { |
|
| 221 | // No field was read. We go back one token so the next |
|
| 222 | // iteration will parse the same token, but in state 2. |
|
| 223 | --$list->idx; |
|
| 224 | } |
|
| 225 | $state = 2; |
|
| 226 | } elseif ($state === 2) { |
|
| 227 | if ($token->type === Token::TYPE_OPERATOR) { |
|
| 228 | if ($token->value === '(') { |
|
| 229 | ++$brackets; |
|
| @@ 124-140 (lines=17) @@ | ||
| 121 | ); |
|
| 122 | break; |
|
| 123 | } |
|
| 124 | } elseif ($state === 2) { |
|
| 125 | $expr->new = Expression::parse( |
|
| 126 | $parser, |
|
| 127 | $list, |
|
| 128 | array( |
|
| 129 | 'breakOnAlias' => true, |
|
| 130 | 'parseField' => 'table', |
|
| 131 | ) |
|
| 132 | ); |
|
| 133 | if (empty($expr->new)) { |
|
| 134 | $parser->error( |
|
| 135 | 'The new name of the table was expected.', |
|
| 136 | $token |
|
| 137 | ); |
|
| 138 | } |
|
| 139 | $state = 3; |
|
| 140 | } elseif ($state === 3) { |
|
| 141 | if (($token->type === Token::TYPE_OPERATOR) && ($token->value === ',')) { |
|
| 142 | $ret[] = $expr; |
|
| 143 | $expr = new self(); |
|