| @@ 201-231 (lines=31) @@ | ||
| 198 | } |
|
| 199 | ||
| 200 | $state = 1; |
|
| 201 | } elseif ($state === 1) { |
|
| 202 | if ($token->type === Token::TYPE_KEYWORD) { |
|
| 203 | if ($token->value === 'VALUE' |
|
| 204 | || $token->value === 'VALUES' |
|
| 205 | ) { |
|
| 206 | ++$list->idx; // skip VALUES |
|
| 207 | ||
| 208 | $this->values = Array2d::parse($parser, $list); |
|
| 209 | } elseif ($token->value === 'SET') { |
|
| 210 | ++$list->idx; // skip SET |
|
| 211 | ||
| 212 | $this->set = SetOperation::parse($parser, $list); |
|
| 213 | } elseif ($token->value === 'SELECT') { |
|
| 214 | $this->select = new SelectStatement($parser, $list); |
|
| 215 | } else { |
|
| 216 | $parser->error( |
|
| 217 | __('Unexpected keyword.'), |
|
| 218 | $token |
|
| 219 | ); |
|
| 220 | break; |
|
| 221 | } |
|
| 222 | $state = 2; |
|
| 223 | $miniState = 1; |
|
| 224 | } else { |
|
| 225 | $parser->error( |
|
| 226 | __('Unexpected token.'), |
|
| 227 | $token |
|
| 228 | ); |
|
| 229 | break; |
|
| 230 | } |
|
| 231 | } elseif ($state == 2) { |
|
| 232 | $lastCount = $miniState; |
|
| 233 | ||
| 234 | if ($miniState === 1 && $token->value === 'ON') { |
|
| @@ 167-196 (lines=30) @@ | ||
| 164 | } |
|
| 165 | ||
| 166 | $state = 1; |
|
| 167 | } elseif ($state === 1) { |
|
| 168 | if ($token->type === Token::TYPE_KEYWORD) { |
|
| 169 | if ($token->value === 'VALUE' |
|
| 170 | || $token->value === 'VALUES' |
|
| 171 | ) { |
|
| 172 | ++$list->idx; // skip VALUES |
|
| 173 | ||
| 174 | $this->values = Array2d::parse($parser, $list); |
|
| 175 | } elseif ($token->value === 'SET') { |
|
| 176 | ++$list->idx; // skip SET |
|
| 177 | ||
| 178 | $this->set = SetOperation::parse($parser, $list); |
|
| 179 | } elseif ($token->value === 'SELECT') { |
|
| 180 | $this->select = new SelectStatement($parser, $list); |
|
| 181 | } else { |
|
| 182 | $parser->error( |
|
| 183 | __('Unexpected keyword.'), |
|
| 184 | $token |
|
| 185 | ); |
|
| 186 | break; |
|
| 187 | } |
|
| 188 | $state = 2; |
|
| 189 | } else { |
|
| 190 | $parser->error( |
|
| 191 | __('Unexpected token.'), |
|
| 192 | $token |
|
| 193 | ); |
|
| 194 | break; |
|
| 195 | } |
|
| 196 | } |
|
| 197 | } |
|
| 198 | ||
| 199 | --$list->idx; |
|