| @@ -347,107 +347,107 @@ discard block | ||
| 347 | 347 | // $0 = $len | 
| 348 | 348 | $len = \count($tokens) - 1; | 
| 349 | 349 |          switch ($yystate) { | 
| 350 | - case 1: | |
| 351 | -            $yytext = preg_replace_callback('{(?:\\\\["bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4})}', array($this, 'stringInterpolation'), $yytext); | |
| 352 | - $yyval->token = $yytext; | |
| 353 | - break; | |
| 354 | - case 2: | |
| 355 | -            if (strpos($yytext, 'e') !== false || strpos($yytext, 'E') !== false) { | |
| 356 | - $yyval->token = \floatval($yytext); | |
| 357 | -            } else { | |
| 358 | - $yyval->token = strpos($yytext, '.') === false ? \intval($yytext) : \floatval($yytext); | |
| 359 | - } | |
| 360 | - break; | |
| 361 | - case 3: | |
| 362 | - $yyval->token = null; | |
| 363 | - break; | |
| 364 | - case 4: | |
| 365 | - $yyval->token = true; | |
| 366 | - break; | |
| 367 | - case 5: | |
| 368 | - $yyval->token = false; | |
| 369 | - break; | |
| 370 | - case 6: | |
| 371 | - return $yyval->token = $tokens[$len-1]; | |
| 372 | - case 13: | |
| 373 | -            if ($this->flags & self::PARSE_TO_ASSOC) { | |
| 374 | - $yyval->token = array(); | |
| 375 | -            } else { | |
| 376 | - $yyval->token = new stdClass; | |
| 377 | - } | |
| 378 | - break; | |
| 379 | - case 14: | |
| 380 | - $yyval->token = $tokens[$len-1]; | |
| 381 | - break; | |
| 382 | - case 15: | |
| 383 | - $yyval->token = array($tokens[$len-2], $tokens[$len]); | |
| 384 | - break; | |
| 385 | - case 16: | |
| 386 | -            if (PHP_VERSION_ID < 70100) { | |
| 387 | - $property = $tokens[$len][0] === '' ? '_empty_' : $tokens[$len][0]; | |
| 388 | -            } else { | |
| 389 | - $property = $tokens[$len][0]; | |
| 390 | - } | |
| 391 | -            if ($this->flags & self::PARSE_TO_ASSOC) { | |
| 392 | - $yyval->token = array(); | |
| 393 | - $yyval->token[$property] = $tokens[$len][1]; | |
| 394 | -            } else { | |
| 395 | - $yyval->token = new stdClass; | |
| 396 | - $yyval->token->$property = $tokens[$len][1]; | |
| 397 | - } | |
| 398 | - break; | |
| 399 | - case 17: | |
| 400 | -            if ($this->flags & self::PARSE_TO_ASSOC) { | |
| 401 | - $yyval->token =& $tokens[$len-2]; | |
| 402 | - $key = $tokens[$len][0]; | |
| 403 | -                if (($this->flags & self::DETECT_KEY_CONFLICTS) && isset($tokens[$len-2][$key])) { | |
| 404 | - $errStr = 'Parse error on line ' . ($yylineno+1) . ":\n"; | |
| 405 | - $errStr .= $this->lexer->showPosition() . "\n"; | |
| 406 | - $errStr .= "Duplicate key: ".$tokens[$len][0]; | |
| 407 | -                    throw new DuplicateKeyException($errStr, $tokens[$len][0], array('line' => $yylineno+1)); | |
| 408 | -                } elseif (($this->flags & self::ALLOW_DUPLICATE_KEYS) && isset($tokens[$len-2][$key])) { | |
| 409 | - $duplicateCount = 1; | |
| 410 | -                    do { | |
| 411 | - $duplicateKey = $key . '.' . $duplicateCount++; | |
| 412 | - } while (isset($tokens[$len-2][$duplicateKey])); | |
| 413 | - $key = $duplicateKey; | |
| 414 | - } | |
| 415 | - $tokens[$len-2][$key] = $tokens[$len][1]; | |
| 416 | -            } else { | |
| 417 | - $yyval->token = $tokens[$len-2]; | |
| 418 | -                if (PHP_VERSION_ID < 70100) { | |
| 419 | - $key = $tokens[$len][0] === '' ? '_empty_' : $tokens[$len][0]; | |
| 420 | -                } else { | |
| 421 | - $key = $tokens[$len][0]; | |
| 422 | - } | |
| 423 | -                if (($this->flags & self::DETECT_KEY_CONFLICTS) && isset($tokens[$len-2]->{$key})) { | |
| 424 | - $errStr = 'Parse error on line ' . ($yylineno+1) . ":\n"; | |
| 425 | - $errStr .= $this->lexer->showPosition() . "\n"; | |
| 426 | - $errStr .= "Duplicate key: ".$tokens[$len][0]; | |
| 427 | -                    throw new DuplicateKeyException($errStr, $tokens[$len][0], array('line' => $yylineno+1)); | |
| 428 | -                } elseif (($this->flags & self::ALLOW_DUPLICATE_KEYS) && isset($tokens[$len-2]->{$key})) { | |
| 429 | - $duplicateCount = 1; | |
| 430 | -                    do { | |
| 431 | - $duplicateKey = $key . '.' . $duplicateCount++; | |
| 432 | - } while (isset($tokens[$len-2]->$duplicateKey)); | |
| 433 | - $key = $duplicateKey; | |
| 434 | - } | |
| 435 | - $tokens[$len-2]->$key = $tokens[$len][1]; | |
| 436 | - } | |
| 437 | - break; | |
| 438 | - case 18: | |
| 439 | - $yyval->token = array(); | |
| 440 | - break; | |
| 441 | - case 19: | |
| 442 | - $yyval->token = $tokens[$len-1]; | |
| 443 | - break; | |
| 444 | - case 20: | |
| 445 | - $yyval->token = array($tokens[$len]); | |
| 446 | - break; | |
| 447 | - case 21: | |
| 448 | - $tokens[$len-2][] = $tokens[$len]; | |
| 449 | - $yyval->token = $tokens[$len-2]; | |
| 450 | - break; | |
| 350 | + case 1: | |
| 351 | +            	$yytext = preg_replace_callback('{(?:\\\\["bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4})}', array($this, 'stringInterpolation'), $yytext); | |
| 352 | + $yyval->token = $yytext; | |
| 353 | + break; | |
| 354 | + case 2: | |
| 355 | +            	if (strpos($yytext, 'e') !== false || strpos($yytext, 'E') !== false) { | |
| 356 | + $yyval->token = \floatval($yytext); | |
| 357 | +            	} else { | |
| 358 | + $yyval->token = strpos($yytext, '.') === false ? \intval($yytext) : \floatval($yytext); | |
| 359 | + } | |
| 360 | + break; | |
| 361 | + case 3: | |
| 362 | + $yyval->token = null; | |
| 363 | + break; | |
| 364 | + case 4: | |
| 365 | + $yyval->token = true; | |
| 366 | + break; | |
| 367 | + case 5: | |
| 368 | + $yyval->token = false; | |
| 369 | + break; | |
| 370 | + case 6: | |
| 371 | + return $yyval->token = $tokens[$len-1]; | |
| 372 | + case 13: | |
| 373 | +            	if ($this->flags & self::PARSE_TO_ASSOC) { | |
| 374 | + $yyval->token = array(); | |
| 375 | +            	} else { | |
| 376 | + $yyval->token = new stdClass; | |
| 377 | + } | |
| 378 | + break; | |
| 379 | + case 14: | |
| 380 | + $yyval->token = $tokens[$len-1]; | |
| 381 | + break; | |
| 382 | + case 15: | |
| 383 | + $yyval->token = array($tokens[$len-2], $tokens[$len]); | |
| 384 | + break; | |
| 385 | + case 16: | |
| 386 | +            	if (PHP_VERSION_ID < 70100) { | |
| 387 | + $property = $tokens[$len][0] === '' ? '_empty_' : $tokens[$len][0]; | |
| 388 | +            	} else { | |
| 389 | + $property = $tokens[$len][0]; | |
| 390 | + } | |
| 391 | +            	if ($this->flags & self::PARSE_TO_ASSOC) { | |
| 392 | + $yyval->token = array(); | |
| 393 | + $yyval->token[$property] = $tokens[$len][1]; | |
| 394 | +            	} else { | |
| 395 | + $yyval->token = new stdClass; | |
| 396 | + $yyval->token->$property = $tokens[$len][1]; | |
| 397 | + } | |
| 398 | + break; | |
| 399 | + case 17: | |
| 400 | +            	if ($this->flags & self::PARSE_TO_ASSOC) { | |
| 401 | + $yyval->token =& $tokens[$len-2]; | |
| 402 | + $key = $tokens[$len][0]; | |
| 403 | +                	if (($this->flags & self::DETECT_KEY_CONFLICTS) && isset($tokens[$len-2][$key])) { | |
| 404 | + $errStr = 'Parse error on line ' . ($yylineno+1) . ":\n"; | |
| 405 | + $errStr .= $this->lexer->showPosition() . "\n"; | |
| 406 | + $errStr .= "Duplicate key: ".$tokens[$len][0]; | |
| 407 | +                    	throw new DuplicateKeyException($errStr, $tokens[$len][0], array('line' => $yylineno+1)); | |
| 408 | +                	} elseif (($this->flags & self::ALLOW_DUPLICATE_KEYS) && isset($tokens[$len-2][$key])) { | |
| 409 | + $duplicateCount = 1; | |
| 410 | +                    	do { | |
| 411 | + $duplicateKey = $key . '.' . $duplicateCount++; | |
| 412 | + } while (isset($tokens[$len-2][$duplicateKey])); | |
| 413 | + $key = $duplicateKey; | |
| 414 | + } | |
| 415 | + $tokens[$len-2][$key] = $tokens[$len][1]; | |
| 416 | +            	} else { | |
| 417 | + $yyval->token = $tokens[$len-2]; | |
| 418 | +                	if (PHP_VERSION_ID < 70100) { | |
| 419 | + $key = $tokens[$len][0] === '' ? '_empty_' : $tokens[$len][0]; | |
| 420 | +                	} else { | |
| 421 | + $key = $tokens[$len][0]; | |
| 422 | + } | |
| 423 | +                	if (($this->flags & self::DETECT_KEY_CONFLICTS) && isset($tokens[$len-2]->{$key})) { | |
| 424 | + $errStr = 'Parse error on line ' . ($yylineno+1) . ":\n"; | |
| 425 | + $errStr .= $this->lexer->showPosition() . "\n"; | |
| 426 | + $errStr .= "Duplicate key: ".$tokens[$len][0]; | |
| 427 | +                    	throw new DuplicateKeyException($errStr, $tokens[$len][0], array('line' => $yylineno+1)); | |
| 428 | +                	} elseif (($this->flags & self::ALLOW_DUPLICATE_KEYS) && isset($tokens[$len-2]->{$key})) { | |
| 429 | + $duplicateCount = 1; | |
| 430 | +                    	do { | |
| 431 | + $duplicateKey = $key . '.' . $duplicateCount++; | |
| 432 | + } while (isset($tokens[$len-2]->$duplicateKey)); | |
| 433 | + $key = $duplicateKey; | |
| 434 | + } | |
| 435 | + $tokens[$len-2]->$key = $tokens[$len][1]; | |
| 436 | + } | |
| 437 | + break; | |
| 438 | + case 18: | |
| 439 | + $yyval->token = array(); | |
| 440 | + break; | |
| 441 | + case 19: | |
| 442 | + $yyval->token = $tokens[$len-1]; | |
| 443 | + break; | |
| 444 | + case 20: | |
| 445 | + $yyval->token = array($tokens[$len]); | |
| 446 | + break; | |
| 447 | + case 21: | |
| 448 | + $tokens[$len-2][] = $tokens[$len]; | |
| 449 | + $yyval->token = $tokens[$len-2]; | |
| 450 | + break; | |
| 451 | 451 | } | 
| 452 | 452 | |
| 453 | 453 | return new Undefined(); | 
| @@ -456,24 +456,24 @@ discard block | ||
| 456 | 456 | private function stringInterpolation($match) | 
| 457 | 457 |      { | 
| 458 | 458 |          switch ($match[0]) { | 
| 459 | - case '\\\\': | |
| 460 | - return '\\'; | |
| 461 | - case '\"': | |
| 462 | - return '"'; | |
| 463 | - case '\b': | |
| 464 | - return \chr(8); | |
| 465 | - case '\f': | |
| 466 | - return \chr(12); | |
| 467 | - case '\n': | |
| 468 | - return "\n"; | |
| 469 | - case '\r': | |
| 470 | - return "\r"; | |
| 471 | - case '\t': | |
| 472 | - return "\t"; | |
| 473 | - case '\/': | |
| 474 | - return "/"; | |
| 475 | - default: | |
| 476 | -            return html_entity_decode('&#x'.ltrim(substr($match[0], 2), '0').';', ENT_QUOTES, 'UTF-8'); | |
| 459 | + case '\\\\': | |
| 460 | + return '\\'; | |
| 461 | + case '\"': | |
| 462 | + return '"'; | |
| 463 | + case '\b': | |
| 464 | + return \chr(8); | |
| 465 | + case '\f': | |
| 466 | + return \chr(12); | |
| 467 | + case '\n': | |
| 468 | + return "\n"; | |
| 469 | + case '\r': | |
| 470 | + return "\r"; | |
| 471 | + case '\t': | |
| 472 | + return "\t"; | |
| 473 | + case '\/': | |
| 474 | + return "/"; | |
| 475 | + default: | |
| 476 | +            	return html_entity_decode('&#x'.ltrim(substr($match[0], 2), '0').';', ENT_QUOTES, 'UTF-8'); | |
| 477 | 477 | } | 
| 478 | 478 | } | 
| 479 | 479 | |
| @@ -198,36 +198,36 @@ | ||
| 198 | 198 | private function performAction($avoiding_name_collisions, $YY_START) | 
| 199 | 199 |      { | 
| 200 | 200 |          switch ($avoiding_name_collisions) { | 
| 201 | - case 0:/* skip whitespace */ | |
| 202 | - break; | |
| 203 | - case 1: | |
| 204 | - return 6; | |
| 205 | - case 2: | |
| 206 | - $this->yytext = substr($this->yytext, 1, $this->yyleng-2); | |
| 207 | - | |
| 208 | - return 4; | |
| 209 | - case 3: | |
| 210 | - return 17; | |
| 211 | - case 4: | |
| 212 | - return 18; | |
| 213 | - case 5: | |
| 214 | - return 23; | |
| 215 | - case 6: | |
| 216 | - return 24; | |
| 217 | - case 7: | |
| 218 | - return 22; | |
| 219 | - case 8: | |
| 220 | - return 21; | |
| 221 | - case 9: | |
| 222 | - return 10; | |
| 223 | - case 10: | |
| 224 | - return 11; | |
| 225 | - case 11: | |
| 226 | - return 8; | |
| 227 | - case 12: | |
| 228 | - return 14; | |
| 229 | - case 13: | |
| 230 | - return 'INVALID'; | |
| 201 | + case 0:/* skip whitespace */ | |
| 202 | + break; | |
| 203 | + case 1: | |
| 204 | + return 6; | |
| 205 | + case 2: | |
| 206 | + $this->yytext = substr($this->yytext, 1, $this->yyleng-2); | |
| 207 | + | |
| 208 | + return 4; | |
| 209 | + case 3: | |
| 210 | + return 17; | |
| 211 | + case 4: | |
| 212 | + return 18; | |
| 213 | + case 5: | |
| 214 | + return 23; | |
| 215 | + case 6: | |
| 216 | + return 24; | |
| 217 | + case 7: | |
| 218 | + return 22; | |
| 219 | + case 8: | |
| 220 | + return 21; | |
| 221 | + case 9: | |
| 222 | + return 10; | |
| 223 | + case 10: | |
| 224 | + return 11; | |
| 225 | + case 11: | |
| 226 | + return 8; | |
| 227 | + case 12: | |
| 228 | + return 14; | |
| 229 | + case 13: | |
| 230 | + return 'INVALID'; | |
| 231 | 231 | } | 
| 232 | 232 | } | 
| 233 | 233 | } | 
| @@ -113,18 +113,18 @@ | ||
| 113 | 113 | case '.': | 
| 114 | 114 | break; | 
| 115 | 115 | |
| 116 | - case '..': | |
| 117 | -                if (empty($parts)) { | |
| 118 | - throw new LogicException( | |
| 119 | - 'Path is outside of the defined root, path: [' . $path . ']' | |
| 120 | - ); | |
| 121 | - } | |
| 122 | - array_pop($parts); | |
| 123 | - break; | |
| 124 | - | |
| 125 | - default: | |
| 126 | - $parts[] = $part; | |
| 127 | - break; | |
| 116 | + case '..': | |
| 117 | +                	if (empty($parts)) { | |
| 118 | + throw new LogicException( | |
| 119 | + 'Path is outside of the defined root, path: [' . $path . ']' | |
| 120 | + ); | |
| 121 | + } | |
| 122 | + array_pop($parts); | |
| 123 | + break; | |
| 124 | + | |
| 125 | + default: | |
| 126 | + $parts[] = $part; | |
| 127 | + break; | |
| 128 | 128 | } | 
| 129 | 129 | } | 
| 130 | 130 | |